Предмет: Информатика,
автор: SaintGosuGod
Даны целые числа t1,...,ti,...,tn . Имеются ли в последовательности: два идущих подряд нулевых члена; три идущих подряд отрицательных члена?
Привести алгоритм в виде блок-схемы и на алгоритмическом языке
SaintGosuGod:
псевдокод
арг (аргумент) лит (литерный) надо от нет
рез (результат) лог (логический) если до при
нач (начало) таб (таблица) то знач выбор
кон (конец) нц (начало цикла) иначе и ввод
цел (целый) кц (конец цикла) все или вывод
вещ (вещественный) длин (длина) пока не утв
Ответы
Автор ответа:
2
В отличии от блок-схемы, в программе использовано формирование членов последовательности посредством генератора случайных чисел.
Если нужен ввод с клавиатуры, достаточно удалить randomize и заменить
строку t:=Random(19)-9; { случайное значение на [-9;9] } на Read(t);
var
i,n,t,c0,cn:integer;
NoEnd:boolean;
begin
Randomize;
Write('Предельное количество членов последовательности: ');
Read(n);
c0:=0; cn:=0;
i:=1; NoEnd:=True;
Writeln('Члены последовательности');
while (i<=n) and NoEnd do begin
t:=Random(19)-9; { случайное значение на [-9;9] }
Write(t:3);
if t=0 then begin if c0<2 then Inc(c0) end
else begin
if c0<>2 then c0:=0;
if t<0 then begin if cn<3 then Inc(cn) end
else if cn<>3 then cn:=0
end;
NoEnd:=(c0<>2) or (cn<>3);
Inc(i)
end;
Writeln;
if c0>=2 then Writeln('В последовательности есть два нулевых члена подряд');
if cn>=3 then Writeln('В последовательности есть три отрицательных члена подряд')
end.
Тестовое решение:
Предельное количество членов последовательности: 200
Члены последовательности
3 -9 9 9 0 3 -4 -9 3 -3 8 -1 5 1 -6 -9 5 9 -1 5 -6 -2 -4 -5 -1 -8 7 1 1 -6 -3 2 -8 8 8 3 -2 -4 0 8 5 -1 6 -6 -2 5 4 6 9 3 9 -3 -7 -8 4 -5 5 5 1 -1 5 5 -1 -1 -9 -4 -3 7 2 0 3 0 0
В последовательности есть два нулевых члена подряд
В последовательности есть три отрицательных члена подряд
Блок-схема находится во вложении.
Если нужен ввод с клавиатуры, достаточно удалить randomize и заменить
строку t:=Random(19)-9; { случайное значение на [-9;9] } на Read(t);
var
i,n,t,c0,cn:integer;
NoEnd:boolean;
begin
Randomize;
Write('Предельное количество членов последовательности: ');
Read(n);
c0:=0; cn:=0;
i:=1; NoEnd:=True;
Writeln('Члены последовательности');
while (i<=n) and NoEnd do begin
t:=Random(19)-9; { случайное значение на [-9;9] }
Write(t:3);
if t=0 then begin if c0<2 then Inc(c0) end
else begin
if c0<>2 then c0:=0;
if t<0 then begin if cn<3 then Inc(cn) end
else if cn<>3 then cn:=0
end;
NoEnd:=(c0<>2) or (cn<>3);
Inc(i)
end;
Writeln;
if c0>=2 then Writeln('В последовательности есть два нулевых члена подряд');
if cn>=3 then Writeln('В последовательности есть три отрицательных члена подряд')
end.
Тестовое решение:
Предельное количество членов последовательности: 200
Члены последовательности
3 -9 9 9 0 3 -4 -9 3 -3 8 -1 5 1 -6 -9 5 9 -1 5 -6 -2 -4 -5 -1 -8 7 1 1 -6 -3 2 -8 8 8 3 -2 -4 0 8 5 -1 6 -6 -2 5 4 6 9 3 9 -3 -7 -8 4 -5 5 5 1 -1 5 5 -1 -1 -9 -4 -3 7 2 0 3 0 0
В последовательности есть два нулевых члена подряд
В последовательности есть три отрицательных члена подряд
Блок-схема находится во вложении.
Приложения:

Похожие вопросы
Предмет: Русский язык,
автор: Mirza0577
Предмет: Английский язык,
автор: Умопомрачительный16
Предмет: Немецкий язык,
автор: smurygin
Предмет: Литература,
автор: mish23
Предмет: Русский язык,
автор: jarbusinova