Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено" - Pascal

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

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

Всем доброго времени суток! В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется непрерывная цепочка из трех и более шариков одного цвета, она удаляется из линии. Все шарики при этом сдвигаются друг к другу, и ситуация может повториться. Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено". Естественно, непрерывных цепочек из трех и более одноцветных шаров в начальный момент может быть не более одной. Помогите, пожалуйста, тут что-то не так:
Листинг программы
  1. var MAS:aRRay of LongInt;
  2. N, i:IntegeR;
  3. cur, c1, c2:Byte;
  4. begin
  5. readln(N);
  6. SetLength(MAS, N);
  7. for i:= loW(MAS) to HigH(MAS) do read(MAS[i]);
  8. cur:= MAS[loW(MAS)];
  9. c1:= 1;
  10. c2:= 0;
  11. for i:= loW(MAS) + 1 to HigH(MAS) do
  12. begin
  13. if (MAS[i] = cur) then inc(c1)
  14. else
  15. begin
  16. cur:= MAS[i];
  17. if (c1 > c2) then begin c2:= c1; c1:= 1; end;
  18. end;
  19. end;
  20. if (c1 > c2) then writeln(c1)
  21. else writeln(c2);
  22. end.
Ну или предложите свои решения, только, пожалуйста, на паскале.

Решение задачи: «Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено"»

textual
Листинг программы
  1. until(n-i<3)or not f;

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

В данном коде происходит следующее:

  1. Переменная n представляет собой количество шариков, которые уже были уничтожены.
  2. Переменная i представляет собой количество шариков, которые еще не были уничтожены.
  3. Переменная f представляет собой флаг, который указывает на то, была ли выполнена последняя итерация цикла.
  4. Выражение n-i<3 проверяет, было ли уничтожено меньше трех шариков.
  5. Оператор or проверяет, не было ли выполнено not f, то есть не была ли выполнена последняя итерация цикла.
  6. Если условие из пункта 4 или пункта 5 истинно, то цикл продолжается.
  7. Если условие из пункта 4 и пункта 5 ложно, то цикл завершается и переменная f устанавливается в значение true.

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


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

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

14   голосов , оценка 3.857 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы