Помощь - Поиск - Пользователи - Календарь
Полная версия: Готовый массив только
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
IlyasKaz
Переделать из вещественного в целочисленный заранее спасибо А то я догнать не могу как
uses crt; 
const n:=5;
var i,j:integer;
t,sum:real;
b:array[1..n,1..n] of real;
begin
clrscr;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
b[i,j]:=random;
write(b[i,j]:0:2,' ');
end;
writeln;
end;
for i:=1 to 5 do begin
for j:=1 to 5 do begin
t:=b[1,j];
b[1,j]:=b[5,j];
b[5,j]:=t;
end;
sum:=0;
for i:=1 to 5 do
begin
for j:=1 to 5 do
if (i+j-1<5)then
begin
sum:=sum+b[i,j];
end;

end;
end;
writeln;
writeln(sum:2:2);
writeln;
end


М
Теги! Правила Форума, п.5, и правила раздела Задачи, п.2
Lapp

Krjuger
b:array[1..n,1..n] of integer;
????????Maybe)


М
Теги..

Lapp
Цитата
????????Maybe)
нет, этого маловато

Ниже необходимые изменения помечены комментарием "тут"
Остальное - ошибки и советы
uses crt; 
const
n:=5;
var
i,j: integer;
t,sum: LongInt; // тут
b:array[1..n,1..n] of integer; // тут

begin
for i:=1 to 5 do begin
for j:=1 to 5 do begin
b[i,j]:=random(n*n); // тут
write(b[i,j]:0:2,' ');
end;
writeln;
end;
for i:=1 to 5 do // begin // ЗАЧЕМ делать обмен 5 РАЗ?? в любом случае, begin - лишнее
for j:=1 to 5 do begin // почему до 5? может, до n?
t:=b[1,j];
b[1,j]:=b[5,j];
b[5,j]:=t;
end;
sum:=0;
for i:=1 to 5 do begin
for j:=1 to 5 do
if (i+j-1<5)then begin // не нужно заключать один оператор в begin..end
sum:=sum+b[i,j];
end;
end;
//end; // лишний end, он уравновешивал тот begin, и все было еще хуже, чем казалось ))
writeln;
writeln(sum); // тут
writeln;
end. // точка

[исправлено]
Krjuger
Lapp извини конешно,но
b:array[1..n,1..n] of real;  // тут

ты ничего не изменил.
А разве не надо переделать сам массив из вещественного в целочисленный?
Цитата
// почему до 5? может, до n?

Ну как бы у него const n:=5; Ну можеть человеку нравится лазить по программе и менять в каждом цикле число,если вдруг не дай бог матрица станет не 5х5, а 6х6 например smile.gif
Lapp
Цитата(Krjuger @ 3.06.2011 12:54) *
Lapp извини конешно,но
b:array[1..n,1..n] of real;  // тут
ты ничего не изменил. А разве не надо переделать сам массив из вещественного в целочисленный?
Мой прогляд. Спасибо за указание, +1. Сейчас поправлю выше..

Цитата
Ну как бы у него const n:=5; Ну можеть человеку нравится лазить по программе и менять в каждом цикле число,если вдруг не дай бог матрица станет не 5х5, а 6х6 например smile.gif
Вопрос был к автору темы..
IUnknown
Андрей, что с тобой? В твоей программе еще как минимум 3 символа - лишние. Ну, рассказывать, какие именно - не буду (при смене типа данных с вещественного на целочисленный, первое, что делается - это изменяются форматы вывода), мало ли, может это домашнее задание топикстартеру smile.gif Или еще не выздоровел?
Lapp
Цитата(IUnknown @ 4.06.2011 2:54) *
Андрей, что с тобой? В твоей программе еще как минимум 3 символа - лишние. Ну, рассказывать, какие именно - не буду (при смене типа данных с вещественного на целочисленный, первое, что делается - это изменяются форматы вывода), мало ли, может это домашнее задание топикстартеру smile.gif Или еще не выздоровел?

lol.gif здоров, как бык (и умом приблизительно тоже)), спасибо, вчера был первый вечер без Т.

Я не буду говорить, что прога не моя.. Если бы я ограничился ответом на вопрос автора - тогда я можно было бы отбазариться - не мое дело. Но раз уж стал исправлять ошибки, надо делать это до конца..
Одну ошибку исправлю, вторая пусть все же остается ДЗ автору темы.. ))

const
n:=5; // здесь не буду исправлять.. ))
var
i,j: integer;
t,sum: LongInt; // тут
b:array[1..n,1..n] of integer; // тут

begin
for i:=1 to 5 do begin
for j:=1 to 5 do begin
b[i,j]:=random(n*n); // тут
write(b[i,j]:4,' '); // ТУТ
end;
writeln;
end;
for i:=1 to 5 do // begin // ЗАЧЕМ делать обмен 5 РАЗ?? в любом случае, begin - лишнее
for j:=1 to 5 do begin // почему до 5? может, до n?
t:=b[1,j];
b[1,j]:=b[5,j];
b[5,j]:=t;
end;
sum:=0;
for i:=1 to 5 do begin
for j:=1 to 5 do
if (i+j-1<5)then begin // не нужно заключать один оператор в begin..end
sum:=sum+b[i,j];
end;
end;
//end; // лишний end, он уравновешивал тот begin, и все было еще хуже, чем казалось ))
writeln;
writeln(sum); // тут
writeln;
end.


В следующий раз напишу "некоторые ошибки и советы" ))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.