Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- {В заданной матрице поменять местами последний столбец и столбец, содержащий наименьший элемент матрицы}
- const {раздел объявления констант - он будет именно здесь}
- Izm=100;
- Type {раздел объявления типов - тоже будет тут и нигде иначе}
- Tind=1..Izm; {создаём тип «индекс», принимающий значение от 1 до 100}
- Telem=integer; {создаём тип «элемент»}
- TMas=array[TInd, Tind] of Telem; {создаём тип «массив» с индексом типа «индекс» и элементами типа «элемент»}
- {=========================================}
- Function Arrays (n, m: Tind; Mat: Tmas): TMas; {функция заполнения матрицы}
- {входные данные: количество строк и столбцов матрицы, матрица}
- {выходные данные: матрица}
- var
- i1, j1 : Tind; {переменные типа «индекс»}
- begin
- for i1:=1 to n do begin {пока не дошли до конца матрицы}
- writeln ('Введите указанное количество чисел: ', m); {выводим количество чисел в строке}
- for j1:=1 to m do begin {пока не кончились столбцы}
- read (Mat[i1,j1]); {считываем значение}
- end;
- end;
- Arrays:=Mat; {возвращаем полученную матрицу}
- end;
- {=========================================}
- procedure Visual (n, m: Tind; Mat: Tmas); {процедура визуализации, выводящая массив на экран}
- {входные данные: количество строк и столбцов матрицы, матрица}
- var
- i1, j1 : Tind;
- begin
- for i1:=1 to n do begin {переход по строкам}
- for j1:=1 to m do begin {переход по столбцам}
- write (' ',Mat[i1,j1]:7,' '); {выводим текущий элемент на экран}
- end;
- writeln; {доходя до конца строки, переходим на следующую строку}
- end;
- end;
- {=========================================}
- function Minimal (n, m: Tind; Mat: Tmas): Tind; {функция, находящая минимальный элемент матрицы}
- {входные данные: количество строк и столбцов матрицы, матрица}
- {выходные данные: номер столбца, содержащего минимальный элемент}
- var
- i1, j1, jmin: Tind; {объявляем переменные типа «индекс»}
- min: Telem; {переменные типа «элемент»}
- begin
- min:=Mat[1,1]; {принимаем за минимальное значение значение, содержащееся в первой ячейке матрицы}
- for i1:=1 to n do begin {перемещение по строкам}
- for j1:=1 to m do begin {перемещение по столбцам}
- if Mat[i1,j1]<=min then begin {если значение в ячейке меньше или равно минимуму}
- min:=Mat[i1,j1]; {то присваиваем ему данное значение}
- jmin:=j1; {и запоминаем номер столбца}
- end;
- end;
- end;
- writeln; {переходим на строку вниз}
- writeln (' Min = ',min); {выводим минимальное значение}
- Minimal:=jmin; {Возвращаем номер столбца, содержащего минимальный элемент}
- end;
- {=========================================}
- function Shanger (n, m: Tind; Mat: Tmas; jmin: Tind): Tmas; {функция, меняющая местами последнюю строку со строкой, содержащей наименьший элемент}
- {входные данные: количество строк и столбцов матрицы, матрица, номер строки, содержащей минимальный элемент}
- {выходные данные: матрица}
- var
- i1, j1 : Tind;
- a1: Telem; {переменные типа «элемент»}
- begin
- if jmin<>m then begin {если столбец не является последнем}
- for i1:=1 to n do begin {то для каждой ячейки из этого столбца}
- a1:=Mat[i1, jmin]; {заносим значение из ячейки в переменную}
- Mat[i1, jmin]:=Mat[i1, m]; {записываем в ячейку значение из той же строки последнего слобца}
- Mat[i1, m]:=a1; {куда заносим значение из переменной, то есть меняем значения из столбца с минимумом и конечного местами}
- end;
- end;
- writeln;
- Shanger:=Mat;
- end;
- {===========================================================================}
- {Ниже - раздел объявления глобальных переменных и тело главной процедуры}
- {===========================================================================}
- var
- n, m, jmin: Tind; {объявляем переменные типа «индекс»}
- Mat: Tmas; {матрица типа «массив»}
- {=========================================}
- begin
- Writeln ('Введите количество строк — целое положительное число: '); {Подсказка для пользователя — просим его ввести количество строк}
- Readln (n); {считываем}
- Writeln ('Введите количество столбцов — целое положительное число: '); {Просим ввести количество столбцов}
- Readln (m); {считываем}
- Mat:=Arrays(n, m, Mat); {присваиваем матрице результат работы функции}
- writeln; {опускаемся на строку вниз}
- Visual(n, m, Mat); {вызываем функцию, выводящую массив на экран}
- jmin:=Minimal(n, m, Mat); {находим номер столбца, содержащего минимальный элемент}
- writeln; {переходим на строку вниз — делаем пустую строку для красоты}
- Mat:=Shanger (n, m, Mat, jmin);
- Visual(n, m, Mat); {вызываем функцию, выводящую массив на экран}
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement