Определить количество таких ситуаций, если имеется N1 ящиков с отходами А и N2 ящиков с отходами В - Pascal ABC

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

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

Здравствуйте, нужно решить задачу, в паскале не сильно разбираюсь. На заводе имеется два типа отходов А и В. Первый из них радиоактивен. Отходы пакуются в ящики, которые складируются друг на друга (штабелем). При этом известно, что если в штабеле находится подряд 3 или более ящиков с отходами А, то возникает взрывоопасная ситуация. Определить кол-во таких ситуаций, если имеется N1 ящиков с отходами А и N2 ящиков с отходами В и все эти ящики сложены в один штабель. Суть задачи, в принципе, понятна, надо объявить массив с нулями и единицами, и подсчитать кол-во ситуаций, когда встречаются подряд 3 или более единицы. Писал задачу на с++( и там куча недоработок), но на паскале я плох, заранее спасибо.

Решение задачи: «Определить количество таких ситуаций, если имеется N1 ящиков с отходами А и N2 ящиков с отходами В»

textual
Листинг программы
var a:array[1..100] of byte;
    n,i:byte;
begin
randomize;
repeat
write('Введите количество ящиков от 3 до 100 n=');
readln(n);
until n in [3..100];
writeln('Последовательность ящиков');
for i:=1 to n do
 begin
  a[i]:=random(2);
  write(a[i]:2);
 end;
writeln;
i:=1;
while (i<n-1)and(a[i]*a[i+1]*a[i+2]=0) do inc(i);
if i>n-2 then write('Нет взрывоопасной ситуации')
else  write('Есть взрывоопасная ситуация')
end.

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

  1. Переменная a объявляется как массив байтов размером 100 элементов.
  2. Объявляются две переменные n и i типа байт.
  3. В блоке repeat-until пользователю предлагается ввести количество ящиков от 3 до 100.
  4. После получения корректного значения переменной n выводится сообщение Последовательность ящиков и в цикле for создается последовательность ящиков от 1 до n, где каждому ящику присваивается случайное значение от 0 до 1.
  5. Значения элементов массива a выводятся на экран в цикле for.
  6. В цикле while проверяется наличие взрывоопасной ситуации, т.е. последовательности из трех нулей подряд. Если такая последовательность найдена, то увеличивается переменная i, которая ищет следующий нулевой элемент.
  7. Если взрывоопасная ситуация найдена и i меньше n-2, то выводится сообщение Есть взрывоопасная ситуация. В противном случае выводится сообщение Нет взрывоопасной ситуации.

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


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

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

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