Стандартные операции с матрицами - Pascal
Формулировка задачи:
Очень прошу, помогите, кто чем сможет) буду очень благодарна...
Написать программы и если можно, без функций и процедур
1 задание: заполнить матрицу целыми числами по образцу:
Код заполнения матрицы нашла, но с процедурой, помогите написать без процедуры..
2 задание: Последний отрицательный элемент каждого столбца двумерного массива заменить нулем.
Const N = 5; Var A:Array[1..20,1..20] Of Integer; k,x,y,Num:integer; Procedure Check(Var i,j:Integer); Begin If i = 0 Then i:=i+1 Else If i > N Then Begin i:= N; j:= j+2; End; End; Begin x:=1; y:=1; k:=1; For Num:=1 To N*N Do Begin A[x,y]:=Num; x:=x + k; y:=y - k; k:=k*(1 - 2*Ord((x = 0)Or(y = 0)Or(x > N)Or(y > N))); If Odd(N) Then Begin Check(x,y); Check(y,x); End Else Begin Check(y,x); Check(x,y); End; End; For x:=1 To N Do Begin For y:=1 To N Do Write(a[x,y]:3); WriteLn; End; ReadLn; End.
Решение задачи: «Стандартные операции с матрицами»
textual
Листинг программы
const n=5; var a:array[1..n,1..n] of integer; k,x,y,num:integer; begin x:=1; y:=1; k:=1; for num:=1 to n*n do begin a[x,y]:=num; x:=x + k; y:=y - k; if (x = 0)or(y = 0)or(x > n)or(y > n) then k:=-k; if odd(n) then begin if x = 0 then x:=x+1 else if x > n then begin x:=n; y:=y+2; end; if y = 0 then y:=y+1 else if y > n then begin y:=n; x:=x+2; end; end else begin if y = 0 then y:=y+1 else if y > n then begin y:=n; x:=x+2; end; if x = 0 then x:=x+1 else if x > n then begin x:=n; y:=y+2; end; end; end; for x:=1 to n do begin for y:=1 to n do write(a[x,y]:3); writeLn; end; end.
Объяснение кода листинга программы
- Объявляются переменные: n, a, k, x, y, num, x, y, k, num.
- Вычисляется значение переменной x, y, k.
- Заполняется матрица a значениями от 1 до n*n.
- Если x или y становятся равными нулю или больше n, то значение k меняется на -k.
- Если n нечетное, то при x=0 x увеличивается на 1, иначе x остается неизменным. Аналогично для y.
- Если y становится равным нулю или больше n, то значение k меняется на -k.
- Если n четное, то при x=0 x увеличивается на 2, иначе x остается неизменным. Аналогично для y.
- Выводится матрица a с помощью функции write.
- Выводится символ новой строки с помощью функции writeLn.
- Цикл for завершается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д