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.



Может кто дать подсказку где ошибка?

Задать свой вопрос
Данил Заскалов
Что программка обязана делать? Она дважды продублирована?
Даниил Патерский
добавил
Лидия
Матрица будет заполняться целыми числами, а заданная величина будет дробной?
1 ответ

Твоя исправленная программка:

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.

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт