program bn5;
const n=4;
var a:array[1..n,1..n] of real;
i,j,min:integer;
begin
randomize;
for i:=1 to n do for j:=1 to n do a[i,j]:=random(1000);
writeln('Staryj masyv:');
for i:=1 to n do for j:=1 to n do write(a[i,j]:4:0);
writeln;
writeln('Novyj masyv:');
min:=a[i,1]; {пишет Type mismatch}
for i:=1 to n do for j:=1 to n do
if a[i,j]>min then min:=a[i,j];
for i:=1 to n do for j:=1 to n do
for i:=1 to n do for j:=1 to n do write(a[i,j]-20:4:0);
readln
end.
Отнять мин. елемент массива А(4,4) от всех елм. массива
От всех елементов массива А(4,4) отнять минимальный елемент массива. Вывести старый и новый массив.
Я чет вообще не понимаю что надо зделать.. я так понял елементы массива нужно сгенирить там random(100) например
как найти минимальный ? пишу типа этого:
Код:
Неполучаеться :(
Спасибо.
Код:
var a:array[1..n,1..n] of real;
i,j,min:integer;
.......................................
min:=a[i,1]; {пишет Type mismatch}
i,j,min:integer;
.......................................
min:=a[i,1]; {пишет Type mismatch}
смотри внимательнее, ты пытаешься засунуть действительное число в переменную целого типа, поэтому и вылетает ошибка. еще ты со знаком ошибся надо не >, а <.
вот чуток подправил код:
Код:
const
n=4;
var
a:array[1..n,1..n] of real;
i,j:integer;
min:real;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(1000);
writeln('Staryj masyv:');
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
writeln;
writeln('Novyj masyv:');
min:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if a[i,j]<min then min:=a[i,j];
for i:=1 to n do
for j:=1 to n do
a[i,j]:=a[i,j]-min;
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
readln;
end.
n=4;
var
a:array[1..n,1..n] of real;
i,j:integer;
min:real;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(1000);
writeln('Staryj masyv:');
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
writeln;
writeln('Novyj masyv:');
min:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if a[i,j]<min then min:=a[i,j];
for i:=1 to n do
for j:=1 to n do
a[i,j]:=a[i,j]-min;
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
readln;
end.
вот как-то так все и будет.
P.S. в качестве пожелания: оформляй код так, чтобы он был более читабельным.
я один цикл удалил, а операцию отнимания зделал при выводе
Код:
const
n=4;
var
a:array[1..n,1..n] of real;
i,j:integer;
min:real;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(1000);
writeln('Staryj masyv:');
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
writeln;
writeln('Novyj masyv:');
min:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if a[i,j]<min then min:=a[i,j];
for i:=1 to n do
for j:=1 to n do
write(a[i,j]-min:4:0);
readln;
end.
n=4;
var
a:array[1..n,1..n] of real;
i,j:integer;
min:real;
begin
randomize;
for i:=1 to n do
for j:=1 to n do
a[i,j]:=random(1000);
writeln('Staryj masyv:');
for i:=1 to n do
for j:=1 to n do
write(a[i,j]:4:0);
writeln;
writeln('Novyj masyv:');
min:=a[1,1];
for i:=1 to n do
for j:=1 to n do
if a[i,j]<min then min:=a[i,j];
for i:=1 to n do
for j:=1 to n do
write(a[i,j]-min:4:0);
readln;
end.
так как сделал ты элементы массива не изменятся, ты просто не преобразуешь массив, а создаешь вроде как вид, что сделал это. так что если кому то это будешь защищать как лабу, то могут прикопаться.
но мне как то постоянно хочеться укоротить код ) так что пусть будет пока