Другие языки программирования и технологии

Процедуры и функции!!! Pascal!!!

найти решение задач 1. Составить программу из двух частей, в основной программе ввести элементы двумерного массива 3 на 7. В процедуре или функции подсчитать количество элементов равных нулю, сумму положительных и сумму отрицательных элементов массива. результат вывести в основную программу. 2. составить программу из двух частей. в основной программе ввести элементы двумерного массива 5 на 5. в функции вычислить произведение элементов стоящих на побочной диагонали. результат вывести в основную программу. 3. Составить программу из двух частей. в основной программе ввести элементы одномерного массива (15). В процедуре создать новый массив из переделанного в начале массива должны быть элементы равные нулю, остальные ненулевые. результат вывести в основную программу.
_D
_Kill_ Ds@_
386
1 программа:
const
R = 3;
C = 7;
var
A : array [1..R, 1..C] of Integer;
Row, Col : Integer;
Kol0, SumP, SumO : Integer;

procedure Raschet(var Kol0, SumP, SumO : Integer);
var
Row, Col : Integer;
begin
Kol0 := 0; SumP := 0; SumO := 0;
for Row := 1 to R do
for Col := 1 to C do
if A[Row, Col] = 0 then Kol0 := Kol0 + 1
else if A[Row, Col] > 0 then SumP := SumP + A[Row, Col]
else SumO := SumO + A[Row, Col];
end;

begin
WriteLn('Введите элементы массива: ');
for Row := 1 to R do for Col := 1 to C do begin Write('A[', Row, ',', Col, '] = '); ReadLn(A[Row, Col]); end;
Raschet(Kol0, SumP, SumO);
WriteLn('Количество равных нулю : ', Kol0);
WriteLn('Сумма положительных : ', SumP);
WriteLn('Сумма отрицательных : ', SumO);
end.
2 программа:
const
RC = 5;
var
A : array [1..RC, 1..RC] of Integer;
Row, Col : Integer;

function Raschet : Integer;
var
N, P : Integer;
begin
P := 1;
for N := 1 to RC do
P := P * A[N, RC + 1 - N];
Raschet := P;
end;

begin
WriteLn('Введите элементы массива: ');
for Row := 1 to RC do for Col := 1 to RC do begin Write('A[', Row, ',', Col, '] = '); ReadLn(A[Row, Col]); end;
WriteLn('Произведение элементов побочной диагонали = ', Raschet);
end.
3 программа:
const
Kol = 15;
var
A, B : array [1..Kol] of Integer;
Pos : Integer;

procedure Peredelay;
var
PosA, PosB : Integer;
begin
PosB := Kol;
for PosA := Kol downto 1 do
if A[PosA] <> 0 then
begin
B[PosB] := A[PosA];
PosB := PosB - 1;
end;
while PosB > 0 do
begin
B[PosB] := 0;
PosB := PosB - 1;
end;
end;

begin
WriteLn('Введите элементы массива: ');
for Pos := 1 to Kol do begin Write('A[', Pos, '] = '); ReadLn(A[Pos]); end;
Peredelay;
WriteLn('Исходный массив: ');
for Pos := 1 to Kol do Write(A[Pos], ' '); WriteLn;
WriteLn('Новый массив: ');
for Pos := 1 to Kol do Write(B[Pos], ' '); WriteLn;
end.
Алексей Шубин
Алексей Шубин
56 278
Лучший ответ