Определить, есть ли в последовательности два идущих подряд нулевых члена - 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; - происходит ожидание ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д