1. Заголовок или название темы должно быть информативным ! 2. Все тексты фрагментов программ должны помещаться в теги [code] ... [/code] или [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ" и используйте ПОИСК ! 4.НЕ используйте форум для личного общения! 5. Самое главное - это раздел теоретический, т.е. никаких задач и программ (за исключением небольших фрагментов) - для этого есть отдельный раздел!
программа из Уроки от Дмитриева Эдуарда, помогите начинающему разобраться
Ну, допустим, произведение она как раз правильно считает... Неправильно вычисляется сумма... Смотри, почему... Вот твой код:
for j:=n downto 1 do begin if A[j] = 0 then nuln:=j else nuln:=0; { Вот эта ветка не нужна } end; for j:=1 to n do begin if A[j]=0 then nulk:=j else nulk:=0; { Эта, соответственно, тоже } end;
{ разве нужно сравнивать I и J, а не nuln и nulk ? } if j=i then summa:=0 else begin for j:=nuln to nulk do summa:=summa+A[j]; end;
Почему Else в обоих случаях не нужен? Потому, что тебе нужно найти позиции нулевых элементов, ненулевые ты должен просто игнорировать, а ты не игнорируешь, а обращаешь на них внимание...