23 заданиеprogram egsf;var A: array [1..3,1..7] of
23 задание
program egsf;
var
A: array [1..3,1..7] of integer;
T:real;
Amax,Amin:real;
i,j:integer;
Begin
Write('T=');
Read(T);
For j:=1 to 7 do
for i:=1 to 3 do
begin
write('A[',i,',',j,']');
Read(A[i,j]);
end;
j:=1;
Amax:=0;
Amin:=0;
while (7gt;j) or (Tgt;Amax-Amin) do
begin
begin
if (A[1,j]
Amin:=A[1,j];
if (A[2,j]
Amin:=A[2,j];
if (A[3,j]
Amin:=A[3,j];
if (A[1,j]gt;A[2,j]) and (A[1,j]gt;A[3,j]) then
Amax:=A[1,j];
if (A[2,j]gt;A[1,j]) and (A[2,j]gt;A[3,j]) then
Amax:=A[2,j];
if (A[3,j]gt;A[2,j]) and (A[3,j]gt;A[1,j]) then
Amax:=A[3,j];
end;
write( 'Amax-Amin=',Amax-Amin);
j:=j+1;
end;
end.
Может кто дать подсказку где ошибка?
Твоя исправленная программка:
program egsf;
var A: array [1..3,1..7] of integer;
T:real;
Amax,Amin:real;
i,j:integer;
begin
Write('T=');
Read(T);
For j:=1 to 7 do
for i:=1 to 3 do
begin
write('A[',i,',',j,']');
Read(A[i,j]);
end;
writeln;// Добавлен вывод массива
for i:= 1 to 3 do
begin
for j:=1 to 7 do
write(a[i,j]:4);
writeln
end;
writeln;
j:=1;
Amax:=0;
Amin:=0;
while (7gt;=j) and (Tgt;=Amax-Amin) do
begin
Amax:=0;
Amin:=0;
if (A[1,j]lt;A[2,j]) and (A[1,j]lt;A[3,j]) then Amin:=A[1,j];
if (A[2,j]lt;A[1,j]) and (A[2,j]lt;A[3,j]) then Amin:=A[2,j];
if (A[3,j]lt;A[2,j]) and (A[3,j]lt;A[1,j]) then Amin:=A[3,j];
if (A[1,j]gt;A[2,j]) and (A[1,j]gt;A[3,j]) then Amax:=A[1,j];
if (A[2,j]gt;A[1,j]) and (A[2,j]gt;A[3,j]) then Amax:=A[2,j];
if (A[3,j]gt;A[2,j]) and (A[3,j]gt;A[1,j]) then Amax:=A[3,j];
writeln( 'Amax-Amin=',Amax-Amin);
j:=j+1;
end;
end.
Будет работать для хоть какой матрицы:
const n=3;m=7;
var a:array [1..n,1..m] of integer;//массив из целых чисел
i,j,max,min,t:integer;//если массив из целых чисел, то max и min и их разность будут целыми числами; t тоже возьмём целое
begin
write('t = ');
readln(t);
writeln;
for i:= 1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=Random(9)+1;//массив задаётся автоматом
write(a[i,j]:3)
end;
writeln
end;
writeln;
for j:= 1 to m do
begin
max:=a[1,j];//за max элемент берётся 1-ый элемент в столбце
min:=a[1,j];//за min элемент берётся 1-ый элемент в столбце
for i:=1 to n do
begin
if a[i,j]gt;max then max:=a[i,j];//отыскиваем max элемент в столбце
if a[i,j]lt;min then min:=a[i,j]//разыскиваем min элемент в столбце
end;
if max-mingt;t then break;//прерываем цикл при нарушении условия
write (max-min:3)
end
end.
либо (если задачи с break)
const n=3;m=7;
var a:array [1..n,1..m] of integer;//массив из целых чисел
i,j,max,min,t:integer;//если массив из целых чисел, то max и min и их разность будут целыми числами; t тоже возьмём целое
begin
write('t = ');
readln(t);
writeln;
for i:= 1 to n do
begin
for j:=1 to m do
begin
a[i,j]:=Random(9)+1;//массив задаётся автоматом
write(a[i,j]:3);
end;
writeln
end;
writeln;
j:= 1;
max:=a[1,j];//за max элемент берётся 1-ый элемент в столбце
min:=a[1,j];//за min элемент берётся первый элемент в столбце
while (jlt;=m) and (max-minlt;=t) do
begin
max:=a[1,j];//за max элемент берётся 1-ый элемент в столбце (скидываем предыдущие значения)
min:=a[1,j];//за min элемент берётся первый элемент в столбце (скидываем прошлые значения)
for i:=1 to n do
begin
if a[i,j]gt;max then max:=a[i,j];;//разыскиваем max элемент в столбце
if a[i,j]lt;min then min:=a[i,j]//ищем min элемент в столбце
end;
if max-minlt;=t then write (max-min:3);//не печатаем разность превосходящую заданную t
j:=j+1
end
end.
-
Вопросы ответы
Статьи
Информатика
Статьи
Математика.
Физика.
Математика.
Разные вопросы.
Разные вопросы.
Математика.
Разные вопросы.
Математика.
Физика.
Геометрия.