Определить, есть ли в последовательности два идущих подряд нулевых члена - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

помогите плиз Задача 2 Даны натуральное n и целые числа c1, c2, … , cn. Имеются ли в последовательности c1, c2, … , cn: а) два идущих подряд нулевых члена; б) три идущих подряд нулевых члена?

Решение задачи: «Определить, есть ли в последовательности два идущих подряд нулевых члена»

textual
Листинг программы
program leonta_1;
uses    crt;
CONST   n = 100;
var
        c        : array [1..n] of integer;
        i,k,m,j  : integer;
BEGIN
   clrscr;randomize;
   writeln('Исходный массив:');writeln;
   j:=0;k:=0;m:=0;
   for i:=1 to n do
       begin
         c[i]:=random(3);
         write(c[i]:7);
         if i mod 10 = 0 then writeln;
         if i>=2 then
           begin
             if (c[i]=0)and(c[i-1]=0) then
               begin
                 inc(j);
               end
                                      else
               begin
                 case j of
                      1 : begin inc(k);end;
                      2 : begin inc(m);end;
                 end;
                 j:=0;
               end;
           end;
       end;
    writeln;
    writeln('Два нуля подряд = ',k:5);
    writeln('Три нуля подряд = ',m:5);
   readln;
END.

Объяснение кода листинга программы

В данном коде на Turbo Pascal происходит проверка последовательности целых чисел, чтобы определить, есть ли в ней два или три подряд идущих нулевых элемента. Переменные в коде имеют следующие значения и названия:

  • n - константа, которая определяет максимальное количество элементов в массиве (равно 100 в данном случае).
  • c - массив целых чисел, в котором будут храниться значения.
  • i, k, m - переменные-счетчики, которые используются для отслеживания количества нулей в последовательности.
  • j - переменная-счетчик, которая используется для отслеживания количества нулей в последовательности, когда i равно 2 или 3.
  • randomize - функция, которая генерирует случайное число в заданном диапазоне.
  • write - функция, которая выводит значение переменной на экран.
  • readln - функция, которая читает ввод пользователя и выводит его на экран. В цикле for происходит следующее:
  • c[i]:=random(3) - каждый элемент массива c получает случайное значение от 0 до 2.
  • write(c[i]:7) - значение i-го элемента выводится на экран.
  • if i>=2 then
  • ...
  • if (c[i]=0)and(c[i-1]=0) then
  • ...
  • inc(j); - если текущий элемент и предыдущий элемент равны 0, то счетчик j увеличивается на 1.
  • end;
  • ...
  • j:=0; - после цикла j сбрасывается в начальное значение. Затем происходит вывод результатов:
  • writeln('Два нуля подряд = ',k:5); - выводится количество нулей, которые идут подряд.
  • writeln('Три нуля подряд = ',m:5); - выводится количество нулей, которые идут подряд.
  • readln; - происходит ожидание ввода пользователя.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 3.923 из 5
Похожие ответы