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

0 голосов
75 просмотров

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


Информатика (305 баллов) | 75 просмотров
0

щас сделаю

Дан 1 ответ
0 голосов

Паскаль.

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

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.

(21 баллов)
0

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

0

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

0

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;