Const n=5; m=4; var a:array[1..n,1..m] of integer; i,j,k,d,s:integer; begin Randomize; writeln('Оценки:'); for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(4)+2; write(a[i,j]:4); end; writeln; end; k:=0; s:=0; for i:=1 to n do begin d:=0; for j:=1 to m do begin if a[i,j]=2 then d:=d+1; s:=s+a[i,j]; end; if d>0 then k:=k+1; end; writeln('Количество неуспевающих = ',k); writeln('Средний группы = ',s/n/m); end.
Пример: Оценки: 5 3 3 5 3 4 2 2 4 5 5 5 2 4 4 2 5 2 3 3 Количество неуспевающих = 3 Средний группы = 3.55
Будем считать, что числа n, m заранее известны. Делать в Паскале динамические массивы - это очень большой геморрой. 1. PROGRAM Even var i, j, P: integer; var array A[1..n, 1..m] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива for i:=1 to n do // цикл по строкам begin P:=1; // произведение четных чисел for j:=1 to m do // цикл по столбцам begin if (A[i, j] mod 2 = 0) then P:= P*A[i, j]; // умножаем очередное четное число end; A[i, m] := P; // вместо последнего числа записываем произведение четных end; for i:=1 to n do for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива END.
2. PROGRAM MinMax var i, j, Q, min, nmin, max, nmax: integer; var array A[1..n, 1..m] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива for i:=1 to n do // цикл по строкам begin min:=A[i, 1]; nmin:=1; max:=A[i, 1]; nmax:=1; // начальные значения for j:=1 to m do // цикл по столбцам begin if (A[i, j] > max) then max:= A[i, j]; nmax = j;// устанавливаем максимум if (A[i, j] < min) then min:= A[i, j]; nmin = j;// устанавливаем максимум end; Q:=A[i, nmin]; A[i, nmin]:=A[i, nmax]; A[i, nmax]:=Q; // меняем их местами end; for i:=1 to n do for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива END.
3. PROGRAM Povorot var i, j, k, Q: integer; var array A[1..n, 1..m], B[1..m, 1..n] of integer; BEGIN for i:=1 to n do for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива for i=1 to m do // цикл по m строкам нового массива (их m, как столбцов в А) begin for j:=1 to n do // цикл по n столбцам нового массива (как строк в А) B[i, j]:=A[j, n-i+1]; // формируем новый массив end; for i:=1 to m do for j:=1 to n do writeln (B[i, j]); // цикл вывода конечного массива END.
var
a:array[1..n,1..m] of integer;
i,j,k,d,s:integer;
begin
Randomize;
writeln('Оценки:');
for i:=1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=random(4)+2;
write(a[i,j]:4);
end;
writeln;
end;
k:=0; s:=0;
for i:=1 to n do
begin
d:=0;
for j:=1 to m do
begin
if a[i,j]=2 then d:=d+1;
s:=s+a[i,j];
end;
if d>0 then k:=k+1;
end;
writeln('Количество неуспевающих = ',k);
writeln('Средний группы = ',s/n/m);
end.
Пример:
Оценки:
5 3 3 5
3 4 2 2
4 5 5 5
2 4 4 2
5 2 3 3
Количество неуспевающих = 3
Средний группы = 3.55
Делать в Паскале динамические массивы - это очень большой геморрой.
1. PROGRAM Even
var i, j, P: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
P:=1; // произведение четных чисел
for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] mod 2 = 0) then P:= P*A[i, j]; // умножаем очередное четное число
end;
A[i, m] := P; // вместо последнего числа записываем произведение четных
end;
for i:=1 to n do
for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива
END.
2. PROGRAM MinMax
var i, j, Q, min, nmin, max, nmax: integer;
var array A[1..n, 1..m] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i:=1 to n do // цикл по строкам
begin
min:=A[i, 1]; nmin:=1; max:=A[i, 1]; nmax:=1; // начальные значения
for j:=1 to m do // цикл по столбцам
begin
if (A[i, j] > max) then max:= A[i, j]; nmax = j;// устанавливаем максимум
if (A[i, j] < min) then min:= A[i, j]; nmin = j;// устанавливаем максимум
end;
Q:=A[i, nmin]; A[i, nmin]:=A[i, nmax]; A[i, nmax]:=Q; // меняем их местами
end;
for i:=1 to n do
for j:=1 to m do writeln (A[i, j]); // цикл вывода конечного массива
END.
3. PROGRAM Povorot
var i, j, k, Q: integer;
var array A[1..n, 1..m], B[1..m, 1..n] of integer;
BEGIN
for i:=1 to n do
for j:=1 to m do readln (A[i, j]); // цикл ввода начального массива
for i=1 to m do // цикл по m строкам нового массива (их m, как столбцов в А)
begin
for j:=1 to n do // цикл по n столбцам нового массива (как строк в А)
B[i, j]:=A[j, n-i+1]; // формируем новый массив
end;
for i:=1 to m do
for j:=1 to n do writeln (B[i, j]); // цикл вывода конечного массива
END.