Определить сколько раз последовательность из N произвольных чисел меняет знак. Сохранить...

0 голосов

Определить сколько раз последовательность из N произвольных чисел меняет знак. Сохранить в новом файле последовательность одного знака максимальной длины. Паскаль. Не массив


спросил от Начинающий (305 баллов) в категории Информатика
оставил комментарий от (21 баллов)

щас сделаю

1 Ответ
0 голосов
ответил от (21 баллов)

Паскаль.

Сменой знака считается переход от отрицательного к нулю, от нуля к положительному, от отрицательного к положительному и наоборот. По крайней мере в условии не сказано обратное.

program progr1;

var count,i,n,x,znak,znak_old:integer;
begin
write('n-> '); readln(n);
count:=0;
for i:=1 to n do
begin
write(i,'-> '); readln(x);
if x < 0 then znak:=-1;
if x>0 then znak:=1;
if x=0 then znak:=0;
if i < > 1 then
if znak < > znak_old then count:=count+1;
znak_old:=znak;
end;
write('count=',count);
readln;
end.

оставил комментарий от Начинающий (305 баллов)

последовательность одного знака максимальной длины
а как это найти?

оставил комментарий от Доцент (53.1k баллов)

не оптимально

оставил комментарий от Начинающий (305 баллов)

var i,max,b:integer;
yes:boolean;
begin
yes:=false; K:=0; a:=0; max:=0;
for i:=0 to lst1.Items.Count-2 do
begin
if strtoint(lst1.Items[i])*strtoint(lst1.Items[i+1])<0 then<br>begin
k:=k+1;
if a>max then begin
max:=a; a:=0; b:=i; end;
end
else
a:=a+1;
end;

...