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

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

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

Автор: ГИДРА 21.06.2010 0:43

1)Дан одномерный массив А(9). Вычислить произведение членов, имеющих четные номера.

2)Дан двумерный массив В(4,4) Найти сумму его отрицательных элементов.


Люди добрые, помогите пожалуйста решить)))
Заранее благодарна всем, кто сможет мне помочь...


Автор: Unconnected 21.06.2010 2:28

Цитата
кто сможет мне помочь...


Наверное, уже есть кусочек кода? smile.gif

Автор: ГИДРА 21.06.2010 3:15

Вот "кусочки"... только не знаю правильно ли это.... и как полностью прописать, тоже не знаю(((





1)
//ввод массива опустим. вот то, что будет считать его:
//i, resoult - integer
//mass - наш массив

resoult:=1;
for i:=1 to 9 do begin
if (odd(i)) then
resoult:=resoult*mass[i];
end;
writeln(summ);

2)
//также опустим первую часть программы. только то, что считает.
//i,j,resoult - integer
//mass - наш массив

resoult:=0;
for i:=1 to 4 do begin
for j:=1 to 4 do begin
if (mass[i,j]<0) then
resoult:=resoult+mass[i,j];
end;
end;

Автор: Unconnected 21.06.2010 3:17

Мм ну и в чём проблема тогда?)

Автор: Lapp 21.06.2010 5:15

Цитата(Unconnected @ 21.06.2010 0:17) *
Мм ну и в чём проблема тогда?)
Unconnected любил пошутить. Бывало, прикопается - и все шутит, шутит.. ))

ГИДРА, любезная, пожалуйста, используй тэги, когда постишь код (Правила Форума, п.5, и правила раздела Задачи, п.2)

1.
- ты условие выполнила наоборот: считаешь произведение НЕчетных;
- если считаешь resoult (кстати, если ты имела в виду английское слово - буква o лишняя), то почему выводишь перевенную summ?
Вот так:
result:=1;
for i:=1 to 9 do if not odd(i) then result:=result*mass[i];
writeln(result);

Но лучше, конечно, сразу вести цикл по четным - зачем идти по всем, да еще проверку делать?
result:=1;
for i:=1 to 9 div 2 do result:=result*mass[i*2];
writeln(result);


2.
во втором действительно не видно проблем.. Разве что лишние ненужные beginы и endы и скобки.