Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Вывод двумерного массива и подсчет суммы каждой строки.

Автор: Legat1177 2.12.2010 16:47

Доброго времени суток всем!

есть решенная задача:

Заполните массив случайными числами и подсчитайте сумму по строкам, результат выведите на экран. (пример изображения приложил);

я ее решил таким образом:

uses crt;
const n=5;
var mas:array[1..n,1..n] of integer;
i,j:integer;
sum:integer;
Begin
clrscr;
randomize;
for i:=1 to n do
for j:=1 to n do
mas[i,j]:=random(10);
writeln('Вывод массива*');
for i:=1 to n do
begin
for j:=1 to n do
write(mas[i,j],' ');
writeln
end;
writeln('Вывод суммы элементов строк');
for i:=1 to n do begin
sum:=0;
for j:=1 to n do
sum:=sum+mas[i,j];
writeln(sum);
end;
readln;
End.


Но преподаватель хочет, чтобы сумма значений считалась сразу при вводе массива... "тогда не будет лишнего прогона по проге"

В этом у меня загвоздка. не понимаю куда нужно перетащить "считалку" и чтобы все осталось работать и выводилось так же как на примере? попробовал сам но у меня программа перестала нормально работать.
вот пример как должно быть:
Прикрепленное изображение

Автор: Client 2.12.2010 17:04

uses crt;
const n=5;
var mas:array[1..n,1..n] of integer;
i,j:integer;
sum:integer;
Begin
clrscr;
randomize;
for i := 1 to n do begin
sum := 0;
for j := 1 to n do begin
mas[i,j] := random(10);
sum := sum + mas[i,j];
write(mas[i,j]:3);
end;
writeln (' sum = ', sum);
end;
End.

Автор: Legat1177 2.12.2010 19:10

а как мне воткнуть надпись "вывод суммы элементов строк" чтобы она была под массивом и уже после нее вертикально шли суммы по каждой строке?

Автор: Client 2.12.2010 22:26

так тебе что именно надо? считать при вводе или вывести как на рисунке? или и то и другое? тогда надо сохранять суммы в массиве (отдельном).

Автор: Legat1177 2.12.2010 22:57

Цитата(Client @ 2.12.2010 18:26) *

так тебе что именно надо? считать при вводе или вывести как на рисунке? или и то и другое? тогда надо сохранять суммы в массиве (отдельном).

В том то и дело что нужно чтоб было как на картинке и в то же время считать сумму значений сразу при вводе массива.... может препод хочет того что невозможно сделать... blink.gif

Автор: volvo 2.12.2010 23:02

Ну, вот и считай сразу при вводе строки. И потом - сохраняй в доп. массив (до тех пор, пока не будет введена вся матрица).

По-моему, это ничуть не противоречит "хотению" твоего преподавателя... Считаться-то значения будут сразу, то есть для их вычисления не понадобится второй проход по матрице...

Автор: Legat1177 2.12.2010 23:04

Цитата(volvo @ 2.12.2010 19:02) *

Ну, вот и считай сразу при вводе строки. И потом - сохраняй в доп. массив (до тех пор, пока не будет введена вся матрица).

По-моему, это ничуть не противоречит "хотению" твоего преподавателя... Считаться-то значения будут сразу, то есть для их вычисления не понадобится второй проход по матрице...

Ок, сейчас попробую.

Добавлено через 3 мин.
Огромное спасибо! все получилось