Решение 50 типовых задач по программированию на языке Pascal Дата размещения сборника в сети


Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal»


Download 1.52 Mb.
Pdf ko'rish
bet72/77
Sana03.02.2023
Hajmi1.52 Mb.
#1152062
TuriРешение
1   ...   69   70   71   72   73   74   75   76   77
Bog'liq
Задачи на Pascal

Данил Душистов: «Решение 50 типовых задач по программированию на языке Pascal» 
65 
игнорируются при вводе в переменные типа char и должны быть включены в последовательность 
(при этом каждый пробел добавляет к длине 1, а каждый enter – 2). 
Вернемся к разбору. Как же быть, если некоторый начальный фрагмент вводимого выражения 
станет заведомо неправильным, то есть, если в нем появятся лишние закрывающие скобки? Но тогда 
при появлении лишней («некомпенсируемой») закрывающей скобки переменная count станет равна 
–1, 
что можно оформить как условие выхода из цикла и поместить после первых двух операторов 
сравнения: 
if count = -1 then break; 
Какие результаты мы получим по завершении цикла? 
1) 
Цикл прошел по всем символам, но были найдены лишние открывающие скобки (то есть, 
count > 0)
, компенсирования которых мы ожидали, однако они так и не были скомпенсиро-
ваны и скобочная последовательность неправильная; 
2) 
Цикл прошел по всем символам (то есть, не было выхода), причем количество скобок обоих 
видов равно (то есть, count = 0) и скобочная последовательность, соответственно, правиль-
ная; 
3) 
Был осуществлен выход из цикла (то есть, нашли «некомпенсируемую» закрывающую 
скобку и count = –1) и последовательность неправильная. 
Выходит, правильный ответ даст вывод выражения count = 0 (оно истинно во 2-ом случае и 
ложно в 1-ом и 3-ем):
writeln(count = 0); 
Код: 
1.
program BracketSequence; 
2.
3.
var 
4.
count: integer; 
5.
i, n: byte; 
6.
c: char; 
7.
8.
begin 
9.
readln(n); 
10.
count := 0; 
11.
for i := 1 to n do begin 
12.
read(c); 
13.
if c = '(' then inc(count); 
14.
if c = ')' then dec(count); 
15.
if count = -1 then break 
16.
end; 
17.
writeln(count = 0) 
18.
end. 

Download 1.52 Mb.

Do'stlaringiz bilan baham:
1   ...   69   70   71   72   73   74   75   76   77




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling