Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено" - Pascal
Формулировка задачи:
Всем доброго времени суток!
В одной компьютерной игре игрок выставляет в линию шарики разных цветов. Когда образуется непрерывная цепочка из трех и более шариков одного цвета, она удаляется из линии. Все шарики при этом сдвигаются друг к другу, и ситуация может повториться.
Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено". Естественно, непрерывных цепочек из трех и более одноцветных шаров в начальный момент может быть не более одной.
Помогите, пожалуйста, тут что-то не так:
Листинг программы
- var MAS:aRRay of LongInt;
- N, i:IntegeR;
- cur, c1, c2:Byte;
- begin
- readln(N);
- SetLength(MAS, N);
- for i:= loW(MAS) to HigH(MAS) do read(MAS[i]);
- cur:= MAS[loW(MAS)];
- c1:= 1;
- c2:= 0;
- for i:= loW(MAS) + 1 to HigH(MAS) do
- begin
- if (MAS[i] = cur) then inc(c1)
- else
- begin
- cur:= MAS[i];
- if (c1 > c2) then begin c2:= c1; c1:= 1; end;
- end;
- end;
- if (c1 > c2) then writeln(c1)
- else writeln(c2);
- end.
Ну или предложите свои решения, только, пожалуйста, на паскале.
Решение задачи: «Напишите программу, которая по данной ситуации определяет, сколько шариков будет сейчас "уничтожено"»
textual
Листинг программы
- until(n-i<3)or not f;
Объяснение кода листинга программы
В данном коде происходит следующее:
- Переменная
n
представляет собой количество шариков, которые уже былиуничтожены
. - Переменная
i
представляет собой количество шариков, которые еще не былиуничтожены
. - Переменная
f
представляет собой флаг, который указывает на то, была ли выполнена последняя итерация цикла. - Выражение
n-i<3
проверяет, было ли уничтожено меньше трех шариков. - Оператор
or
проверяет, не было ли выполненоnot f
, то есть не была ли выполнена последняя итерация цикла. - Если условие из пункта 4 или пункта 5 истинно, то цикл продолжается.
- Если условие из пункта 4 и пункта 5 ложно, то цикл завершается и переменная
f
устанавливается в значениеtrue
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д