Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача по двумерным массивам
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Игорь22
Вот задача:
Вычислить сумму элементов любой строки двумерного массива А[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;


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

{ввод массива}
{вывод массива}
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
Ой, спасибо огоромное за поддержку! И что так быстро откликнулась!
Просто мне очень надо это понимаешь... Проще говоря учусь я, в этом не очень то разбираюсь (предмет естесственно не профилирующий, 2 семестра идет всего) так вот это осталось сдать только:)

Можно поподробней, раз уж на то пошло. Что мне надо написать после той части программы что я написал? (если она верная) Хотя бы как-то подходилос под тот текст задачи что я выше написал.
Очень жду!
мисс_граффити
blink.gif я же написала, ЧТО тебе надо добавить.
куда уж подробнее - готовый код....
ввод массива/вывод массива - это именно то, что у тебя есть.
Игорь22
я ввел все как ты написала и вот что получилось:



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
Млин,ну прально канешь...Только можешь нулей поменьше сделать и всё,если надо... cool.gif
мисс_граффити
можешь исправить вывод суммы (чтобы столько нулей не было)
writeln('sum=',sum:0:2);


Добавлено через 3 мин.
с количеством строк/столбцов запутались, кажется.
я почему-то решила, что m - это количество столбцов....
исправила.
Игорь22
А я и сам не знаю где строки а где столбцы, наверно оставлю как первый раз ты написала.
Огромное спасибо.

Ой, а тут ещё один вопросик есть, только... более сложный, не знаю, может поможешь?
Это касается этой же задачи, и ещё одной, но на проще чуть (одномерные массивы)
Нужно правильно алгоритмы составить (блок схемы что ли..) Поможешь? или может знаешь где посмотреть, я весь нет перерыл ничего по этому нет.
мисс_граффити
поищи по форуму, выкладывали программки, которые рисуют блок-схемы по коду.
Игорь22
Я и не знал, что такие проги есть:) вводишь код и они по нему блок-схему создают? Если так то очень удобно, щас поищу.
Игорь22
Может все-таки кто сможет помочь, край нужна схема к той задаче, я в первом посте написал...
Tan
Программа avtoshema в помощь тебе, о ней уже писали, ищи по соответствующему ключу.
Игорь22
Спасибо!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.