Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Отнять мин. елемент массива А(4,4) от всех елм. массива

27K
31 мая 2007 года
NazarB
8 / / 30.05.2007
Задача:
От всех елементов массива А(4,4) отнять минимальный елемент массива. Вывести старый и новый массив.

Я чет вообще не понимаю что надо зделать.. я так понял елементы массива нужно сгенирить там random(100) например
как найти минимальный ? пишу типа этого:

Код:
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.

Неполучаеться :(
Спасибо.
257
31 мая 2007 года
kosfiz
1.6K / / 18.09.2005
 
Код:
var a:array[1..n,1..n] of real;
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.

вот как-то так все и будет.

P.S. в качестве пожелания: оформляй код так, чтобы он был более читабельным.
27K
31 мая 2007 года
NazarB
8 / / 30.05.2007
kosfiz спасибо, в другой раз оформлю получше


я один цикл удалил, а операцию отнимания зделал при выводе

Код:
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.
257
31 мая 2007 года
kosfiz
1.6K / / 18.09.2005
так как сделал ты элементы массива не изменятся, ты просто не преобразуешь массив, а создаешь вроде как вид, что сделал это. так что если кому то это будешь защищать как лабу, то могут прикопаться.
27K
01 июня 2007 года
NazarB
8 / / 30.05.2007
ну да правильно, массив остаеться не измененным
но мне как то постоянно хочеться укоротить код ) так что пусть будет пока
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог