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

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

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

Автор: Игорь22 13.05.2007 20:02

Вот задача:
Вычислить сумму элементов любой строки двумерного массива А[m,n], стоящих на четных местах. M=3, n=7. Вывести исходный массив А, номер строки, исходную сумму и рассматриваемую строку, в которой все подходящие элементы заменены нулями.

Позарез нужно сделать ее, пропаду, если не сдам ее!
У меня никак не получается сделать ее как надо, подскажите если кто знает, очень благодарен буду. Ниже выкладываю свою версию решения, подправьте что не так.

 
Var A:array[1..50,1..70] of real;
I,j,m,n:integer;
Begin
Writeln(‘vvedite chislo strok m i stolbcov n’);
Readln(m,n);
Writeln(‘vvedite elementi massiva A po strokam’);
For i:=1 to m do
For j:=1 to n do readln(A[I,j]);
Writeln(‘ishodniy massiv A’);
For i:=1 to m do
Begin
For j:=1 to n do write (A[I,j]:7:1);
Writeln
end;



Автор: мисс_граффити 13.05.2007 20:25

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


{ввод массива}
{вывод массива}
sum:=0;
writeln('stroka 1');
for j:=1 to n do
begin
if (j mod 2=0) then
begin
sum:=sum+A[1,j];
A[1,j]:=0;
end;
write(A[1,j]:7:1);
end;
writeln('sum=',sum);


набирала здесь, не проверяла.

Добавлено через 3 мин.
Можно использовать цикл с предусловием/постусловием. Сделать шаг равным 2, тогда можно обойтись без условия.

Автор: Игорь22 14.05.2007 1:19

Ой, спасибо огоромное за поддержку! И что так быстро откликнулась!
Просто мне очень надо это понимаешь... Проще говоря учусь я, в этом не очень то разбираюсь (предмет естесственно не профилирующий, 2 семестра идет всего) так вот это осталось сдать только:)

Можно поподробней, раз уж на то пошло. Что мне надо написать после той части программы что я написал? (если она верная) Хотя бы как-то подходилос под тот текст задачи что я выше написал.
Очень жду!

Автор: мисс_граффити 14.05.2007 2:15

blink.gif я же написала, ЧТО тебе надо добавить.
куда уж подробнее - готовый код....
ввод массива/вывод массива - это именно то, что у тебя есть.

Автор: Игорь22 14.05.2007 18:04

я ввел все как ты написала и вот что получилось:



ishodniy massive A
1.0 2.0 3.0 4.0 5.0 6.0 7.0
8.0 9.0 10.0 11.0 12.0 13.0 14.0
15.0 16.0 17.0 18.0 19.0 20.0 21.0
stroka 1
15 0.0 17.0sum= 1.6000000000E+01




Это правильно? При этом я брал m=3 и n=7, и перебирал все числа от 1 до 21 smile.gif

Автор: Beseech 14.05.2007 18:46

Млин,ну прально канешь...Только можешь нулей поменьше сделать и всё,если надо... cool.gif

Автор: мисс_граффити 14.05.2007 23:20

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

writeln('sum=',sum:0:2);


Добавлено через 3 мин.
с количеством строк/столбцов запутались, кажется.
я почему-то решила, что m - это количество столбцов....
исправила.

Автор: Игорь22 15.05.2007 17:13

А я и сам не знаю где строки а где столбцы, наверно оставлю как первый раз ты написала.
Огромное спасибо.

Ой, а тут ещё один вопросик есть, только... более сложный, не знаю, может поможешь?
Это касается этой же задачи, и ещё одной, но на проще чуть (одномерные массивы)
Нужно правильно алгоритмы составить (блок схемы что ли..) Поможешь? или может знаешь где посмотреть, я весь нет перерыл ничего по этому нет.

Автор: мисс_граффити 15.05.2007 19:37

поищи по форуму, выкладывали программки, которые рисуют блок-схемы по коду.

Автор: Игорь22 15.05.2007 23:26

Я и не знал, что такие проги есть:) вводишь код и они по нему блок-схему создают? Если так то очень удобно, щас поищу.

Автор: Игорь22 18.05.2007 21:28

Может все-таки кто сможет помочь, край нужна схема к той задаче, я в первом посте написал...

Автор: Tan 18.05.2007 23:34

Программа avtoshema в помощь тебе, о ней уже писали, ищи по соответствующему ключу.

Автор: Игорь22 20.05.2007 19:08

Спасибо!!!