Pawo

Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору blondenet ну тогда не знаю. А что именно неправильно? Если установлено, что нулей нет, попробуйте так: Код: var i,tmp,tmp2,num:integer; begin num:=0; write('1 член последовательности: '); readln(tmp); for i:=2 to 20 do begin write(i,' член последовательности: '); readln(tmp2); if ((tmp<0) and (tmp2>0)) or ((tmp>0) and (tmp2<0)) then num:=num+1; tmp:=tmp2; end; writeln('Знак меняется ',num,' раз'); end. | тупо по тестам должно пройти Добавлено: Код: var a:array[1..20]of integer; {a - массив} i,num:integer; {i - временная переменная; num - кол-во смен знаков} begin {---заполнение массива} for i:=1 to 20 do begin write('введите ',i,' член: '); readln(a[i]); end; {---подсчет количества смен знаков} num:=0; for i:=1 to 19 do if ((a[i]<0) and (a[i+1]>0)) or ((a[i]>0) and (a[i+1]<0)) then num:=num+1; {---вывод результата} writeln('знак меняется ',num,' раз'); readln; end. | Так проверьте (может в программе подразумевается, что должен быть именно исходный массив, который сначала надо считать, кроме тестов может человек проверяет) |