Розв’язок задачі з Абрамова №812б
Сер 19
Всі умови | Умова: Дано текст, кожен символ якого може бути малою літерою, цифрою або одним із знаків +, -, *. Групою букв будемо називати таку сукупність послідовно розташованих букв, якій безпосередньо не передує і за якою безпосередньо не слід літера. Аналогічно визначимо групу цифр і групу знаків. З'ясувати, чи вірно, що в даному тексті більше груп букв, ніж груп знаків.
(С.А. Абрамов, Г.Г. Гнездилова,Е.Н. Капустина, М.И. Селюн. Задачи по программированию. - Вологда, 2000. - №812)
program Pr812; var SetA,SetB,SetC : set of char; c:char; s:string; i:integer; point, newpoint : 0..3; A : array [0..3] of integer; begin SetA := []; SetB := []; SetC := []; for c := 'a' to 'z' do SetA := SetA +[c]; for c := '0' to '9' do SetB := SetB +[c]; SetC := SetC+['*','-','+']; for i := 0 to 3 do A[i] := 0; write ('write string :'); string :" readln(s); point := 0; for i := 1 to length(s) do begin if s[i] in SetA then newpoint := 1 else if s[i] in SetB then newpoint := 2 else newpoint := 3; if newpoint <> point then inc(A[point]); point := newpoint; end; end; inc(A[point]); if A[1]>A[2] then writeln('YES') else writeln('NO'); readln; end.