Текст задания
Даны натуральное число N и вещественные числаa и b (a<b). Сформировать матрицуX(N,N),элементами которой являются вещественные случайные числа, равномерно распределенные на отрезке[a, b].Найти в матрице строку с минимальным элементом и поменять ее местами с первой строкой.
для решения задачи разработать следующие функции:
функцию ввода элементов вектора или матрицы в соответствии с индивидуальным заданием;
функцию обработки вектора или матрицы по правилу, определяемому индивидуальным вариантом;
функцию вывода вектора или матрицы на экран в общепринятом виде;
функцию main(),которая организует работу всех разработанных функций; в этой функции предусмотреть возможность многократного решения задачи с различными исходными данными.
Программу разработать в двух видах:
используя статическое распределение памяти для хранения исходного вектора или исходной числовой матрицы (предусмотреть некоторые максимально возможные значения параметров вектора или матрицы);
используя динамическое распределение памяти для хранения исходного вектора или исходной матрицы.
Предусмотреть вывод на экран вектора или матрицы, как вновь введенных, так и сформированных, а также проверку данных на соответствие диапазону, предусматриваемому для данного типа данных.
Входные данные:
Nможет принимать значения от 1 до 10.
aможет принимать значения от -100 до 100.
bможет принимать значения от -100 до 200.
Выходные данные:
N=3
a= -5E1
b= 5E1
Массив с
переставленными строками
41.9 -31.7 -17
7.61 -28.9 44.1
31.6 21.1 18.8
Сформированный массив
7.61 -28.9 44.1
41.9 -31.7 -17
31.6 21.1 18.8
значение min элемента массива: -31.7
номер строки содержащей min элемент: 2
2 Спецификация программы
При запуске программы пользователю предлагается ввести числа N– размерность массива и числаaиb– границы диапазона значений элементов массива. В программе ввода числа предусмотрен контроль от ввода некорректных данных. Далее предусмотрен эхо-контроль (печать введенного числа). Далее программа производит выводит сформированный массив. Затем выполняет поиск строки с минимальным элементом и меняет её с первой строкой.
После получения результата работы программы пользователю выдается сообщение: «Для продолжения нажмите клавишу 'Y'». Если пользователь желает продолжить работу необходимо нажать клавишу ‘Y’ и выполнение программы начнется заново. Прервать работу программы можно нажав клавишу ‘ESC’.
Конструктивно программа выполнена в виде пяти вызываемых функций и одной основной функции main(), которая осуществляет управление вызываемыми функциями и поддерживает диалог с пользователем.
Вызываемые функции:
double number(double min, double max, int pnt); функция ввода числа
void inX(int N,double a,double b,double **X); формирование входного массива
void pr_mas(int N,double **X, char* str); печать массива
void dec(int N,double **X,int minrow); Функция замены строки
int min_row(int N,double **X); Функция определения строки с мin элементом
Входные данные программы приведены в таблице 1.
Выходные данные программы приведены в таблице 2.
Таблица 1-Входные данные
char ch;
double **X; //указатель на массив
int N,i,minrow;
double a, b;
тип |
Идентификатор |
Диапазон |
назначение |
char |
ch |
0…255 |
Ответ на запрос на продолжение программы |
unsigned int |
N |
0…65535 |
Размерность массива |
double |
a,b |
8 байт |
Границы диапазона значений массива |
Таблица 2-Выходные данные
тип |
Идентификатор |
Диапазон |
назначение |
double |
X[i][j], i=0, m-1, j=0, n-1 |
8 байт*N*N |
Массив |