Страница 1 из 1

Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 18:23
Ronaldu
ВСЕМ привет! помогите с решением задачи! двумерные массивы не очень понимаю. В общем, звучит так: Дан массив a[1..3,1..4]. Найти сумму элементов каждой строки массива, кратных К (К вводится с клавиатуры).

program asd2;
const
m=3;
n=4 ;
var k,i,j,s:integer;
a:array[1..m,1..n] of integer;
begin
for i:=1 to n do
begin
s:=0;
for j:=1 to m do
readln (a[i,j]);
writeln (k);
for j:=1 to m do
begin
if a[i,j]mod K=0 then
s:=s+a[i,j];
end;
writeln (s,' Fuck');
end;
end.


что тут не так?? заранее спасибо!

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 19:24
Кату
Строкой
writeln (k);
выводится на экран число k. А оно по заданию должно вводится с клавиатуры. Правильно будет
readln (k);

Обычно при записи a(i,j) имеют в виду элемент матрицы i-ой строки j-ого столбца. Тогда по заданию есть 3 строки из 4 элементов, и в программе m и n надо поменять местами.

Кстати, в программе есть цикл
for j:=1 to m do readln (a[i,j]);
т.е. каждая строка матрицы тоже должна вводиться с экрана.

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 19:33
Ronaldu
а как по-вашему должна выглядеть? я попробовал исправить, при вводе массива вводится 1 строка и, в общем, скорее я ошибся

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 20:07
Ronaldu
все, я разобрался!!!
в итоге так получилось!!

program asd2;
const
n=3;
m=4;
var k,i,j,s:integer;
a:array[1..n,1..m] of integer;
begin
for i:=1 to n do
for j:=1 to m do
readln (a[i,j]);
s:=0;
writeln ('BBEgu K');
readln (k);
for i:=1 to n do
for j:=1 to m do
begin
if a[i,j]mod k=0 then
s:=s+a[i,j];
end;
writeln (s,' Fuck');
end.

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 20:11
Кату
Наверно, примерно так.

program asd2;
const
m=3;
n=4 ;
var k,i,j,s:integer;
a:array[1..m,1..n] of integer;
begin
Writeln('Enter k'); //Пользователь должен указать число к, нажать Enter
Readln(k);
for i:=1 to m do
begin
Writeln('Enter ',i,' string'); //Пользователь указывает 4 числа, после набора каждого числа нажимая Enter
for j := 1 to n do Readln(a[i,j]);
Writeln('You enter: ');
for j := 1 to n do Write(a[i,j],' '); //Здесь пользователь проверяет указанные числа
Writeln;
s = 0;
for j := 1 to n do
if ( a[i,j] mod k = 0 ) then s := s + a[i,j];
Writeln('Sum ',s);
end;
End.

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 20:17
Ronaldu
СПАСИБО, Katy!!!!!!!!!!!!!

Re: Помогите! Прога по двумерным массивам!

Добавлено: 14 фев 2008, 22:39
Кату
Сам же и разобрался ) а я еще и задание не так поняла. Рада, что все получилось.

Re: Помогите! Прога по двумерным массивам!

Добавлено: 15 фев 2008, 12:02
Хыиуду
Можно немного оптимизировать
вместо
for i:=1 to M do
if i mod K=0 then <вывести строку i>
сделать
i:=0;
while i*K<=M do
begin
<вывести строку i*K>
i:=i+1;
end;

работает более оптимально, если строк много, а К большое