Задание звучит : Дана последовательность целых чисел, за которой следует ноль. Определить, число соседств чисел с одинаковыми знаками. Что нужно изменить в программе, чтобы выполнялось условие задачи. Program exapmle2;var x,y,k:integer;begin writeln('Эта программа определяет, число соседств чисел с одинаковыми знаками'); write('Введите число:'); read(x); y:=x; k:=0; while y<>0 do begin if x*y<0 then inc(k); if x*y>0 then inc(k); y:=x; read(y); end; writeln(' Число соседств ',k); writeln('нажмите Enter для завершения работы программы'); readln;end.
Чтобы выполнялось условие задачи, необходимо изменить условие в цикле while, чтобы программа проверяла знаки чисел до нуля и не сравнивала последнее введенное число с нулем.
Пример исправленного кода:
Program exapmle2; var x, y, k: integer; begin writeln('Эта программа определяет число соседств чисел с одинаковыми знаками'); write('Введите число:'); read(x); y := x; k := 0; while y <> 0 do begin if x * y < 0 then inc(k); if x * y > 0 then inc(k); x := y; read(y); end; writeln('Число соседств ', k); writeln('Нажмите Enter для завершения работы программы'); readln; end.
Чтобы выполнялось условие задачи, необходимо изменить условие в цикле while, чтобы программа проверяла знаки чисел до нуля и не сравнивала последнее введенное число с нулем.
Пример исправленного кода:
Program exapmle2;var
x, y, k: integer;
begin
writeln('Эта программа определяет число соседств чисел с одинаковыми знаками');
write('Введите число:');
read(x);
y := x;
k := 0;
while y <> 0 do
begin
if x * y < 0 then
inc(k);
if x * y > 0 then
inc(k);
x := y;
read(y);
end;
writeln('Число соседств ', k);
writeln('Нажмите Enter для завершения работы программы');
readln;
end.