Сформировать массив по заданному правилу и произвести с ним заданные действия - Turbo Pascal
Формулировка задачи:
Написать программу, которая заполняет массив из 5х5 элементов: в 1-й строке число 1, во 2-й – число 2, в 3-й – число 3 и т.д. Поменять местами:
a)Первую и последнюю строку;
b)Первую строку и последний столбец;
c)Первый и последний столбец;
d)Последнюю строку и первый столбец.
Помогите пожалуйста.
Решение задачи: «Сформировать массив по заданному правилу и произвести с ним заданные действия»
textual
Листинг программы
uses crt; const nmax=20; type mas=array[1..nmax,1..nmax] of integer; var a:mas; i,j,n:integer; c:char; procedure print(var x:mas;n:integer); var i,j:integer; begin for i:=1 to n do begin for j:=1 to n do write(x[i,j]:4); writeln; end; end; procedure swapa(var x:mas;n:integer); var j,tmp:integer; begin for j:=1 to n do begin tmp:=x[1,j]; x[1,j]:=x[n,j]; x[n,j]:=tmp; end; end; procedure swapb(var x:mas;n:integer); var i,j,tmp:integer; begin for i:=1 to n do for j:=1 to n do begin tmp:=x[1,j]; x[1,j]:=x[i,n]; x[i,n]:=tmp; end; end; procedure swapc(var x:mas;n:integer); var i,tmp:integer; begin for i:=1 to n do begin tmp:=x[i,1]; x[i,1]:=x[i,n]; x[i,n]:=tmp; end; end; procedure swapd(var x:mas;n:integer); var i,j,tmp:integer; begin for i:=1 to n do for j:=1 to n do begin tmp:=x[n,j]; x[n,j]:=x[i,1]; x[i,1]:=tmp; end; end; begin repeat write('Ïîðÿäîê Г¬Г*òðèöè n='); readln(n); until n in [1..nmax]; writeln('ГЊГ*òðèöГ* :'); for i:=1 to n do begin for j:=1 to n do begin a[i,j]:=i; write(a[i,j]:4); end; writeln; end; writeln; repeat writeln('a)Ïåðâóþ ГЁ ïîñëåäГ*ГѕГѕ ñòðîêó'); writeln('b)Ïåðâóþ ñòðîêó ГЁ ïîñëåäГ*ГЁГ© ñòîëáåö'); writeln('c)Ïåðâûé ГЁ ïîñëåäГ*ГЁГ© ñòîëáåö'); writeln('d)ÏîñëåäГ*ГѕГѕ ñòðîêó ГЁ ïåðâûé ñòîëáåö'); readln(c); case c of 'a','A':begin swapa(a,n); writeln('ÍîâГ*Гї Г¬Г*òðèöГ* :'); print(a,n); end; 'b','B':begin swapb(a,n); writeln('ÍîâГ*Гї Г¬Г*òðèöГ* :'); print(a,n); end; 'c','C':begin swapc(a,n); writeln('ÍîâГ*Гї Г¬Г*òðèöГ* :'); print(a,n); end; 'd','D':begin swapd(a,n); writeln('ÍîâГ*Гї Г¬Г*òðèöГ* :'); print(a,n); end; end; writeln('Г…ГҐГ№ГҐ Г°Г*Г§ ? Y/N'); readln(c); until (c='n') or (c='N'); readkey; end.
Объяснение кода листинга программы
Этот код написан на языке Turbo Pascal и выполняет следующие действия:
- Считывает от пользователя количество строк для формирования массива (n).
- Формирует массив по заданному правилу.
- Выполняет операции с массивом:
swapa(a,n)
меняет местами элементы массива по строкам.swapb(a,n)
меняет местами элементы массива по столбцам.swapc(a,n)
меняет местами элементы массива по столбцам.swapd(a,n)
меняет местами элементы массива по столбцам.
- Выводит на экран результаты операций.
- Повторяет цикл до тех пор, пока пользователь не введет 'n' или 'N'.
- Ждет ввода пользователя для завершения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д