Работа с массивами - Pascal (80183)
Формулировка задачи:
Помогите решить задание, это не выполнимое задание.
Вариант 2
1. Поменять местами строки 5 и 6. Вывести получившийся массив на экран.
2. Поменять местами столбцы 3 и 4. Вывести получившийся массив на экран.
3. Изменить порядок элементов в строке 8 на обратный. Вывести по-лучившийся массив на экран.
4. Изменить порядок элементов в столбце 1 на обратный. Вывести по-лучившийся массив на экран.
5. Осуществить перестановку соседних элементов в 2ом столбце. Вы-вести получившийся массив на экран.
6. Обменять половины строки 3 местами. Вывести получившийся мас-сив на экран.
7. Транспонировать матрицу:
1 1 1 1 1 1 1 1
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
Решение задачи: «Работа с массивами»
textual
Листинг программы
const n=8; var a:array[1..n,1..n] of integer; i,j:integer; procedure Swap(var a,b:integer); var t:integer; begin t:=a;a:=b;b:=t; end; procedure InitMatrix(b:boolean); var i,j,k:integer; begin for i:=1 to n do for j:=1 to n do begin k:=k+1; if b then a[i,j]:=k else a[i,j]:=i; end; end; procedure PrintMatrix; var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do write(a[i,j]:4); writeln; end; end; begin writeln('1. Поменять местами строки 5 и 6. Вывести получившийся массив на экран.'); InitMatrix(false); PrintMatrix; for j:=1 to n do Swap(a[5,j],a[6,j]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('2. Поменять местами столбцы 3 и 4. Вывести получившийся массив на экран.'); InitMatrix(true); PrintMatrix; for i:=1 to n do Swap(a[i,3],a[i,4]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('3. Изменить порядок элементов в строке 8 на обратный. Вывести по-лучившийся массив на экран.'); InitMatrix(true); PrintMatrix; for j:=1 to n div 2 do Swap(a[8,j],a[8,n-j+1]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('4. Изменить порядок элементов в столбце 1 на обратный. Вывести по-лучившийся массив на экран.'); InitMatrix(false); PrintMatrix; for i:=1 to n div 2 do Swap(a[i,1],a[n-i+1,1]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('5. Осуществить перестановку соседних элементов в 2ом столбце. Вы-вести получившийся массив на экран.'); InitMatrix(false); PrintMatrix; for i:=1 to n-1 do if odd(i) then Swap(a[i,2],a[i+1,2]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('6. Обменять половины строки 3 местами. Вывести получившийся мас-сив на экран.'); InitMatrix(true); PrintMatrix; for j:=1 to n div 2 do Swap(a[3,j],a[3,n div 2+j+n mod 2]); writeln('Полученная матрица:'); PrintMatrix; readln; writeln('7. Транспонировать матрицу:'); InitMatrix(false); PrintMatrix; for i:=1 to n-1 do for j:=i+1 to n do Swap(a[i,j],a[j,i]); writeln('Полученная матрица:'); PrintMatrix; readln; end.
Объяснение кода листинга программы
- Инициализация переменной
a
- двумерного массива размером 8x8, переменныхi
иj
для циклов. - Процедура
Swap
для обмена значений переменных. - Процедура
InitMatrix
для заполнения массиваa
числами или последовательными значениями в соответствии с параметромb
. - Процедура
PrintMatrix
для вывода массиваa
на экран. - Инициализация массива
a
и вывод исходного массива на экран. - Обмен элементов строк 5 и 6, вывод получившегося массива на экран.
- Аналогично обмен столбцов 3 и 4, вывод получившегося массива на экран.
- Изменение порядка элементов в строке 8 на обратный, вывод получившегося массива на экран.
- Аналогично изменение порядка элементов в столбце 1, вывод получившегося массива на экран.
- Перестановка соседних элементов во 2 столбце, вывод получившегося массива на экран.
- Обмен половин строки 3 местами, вывод получившегося массива на экран.
- Транспонирование матрицы (перестановка элементов, главная диагональ становится главной основной), вывод получившегося массива на экран.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д