[quote="Oleg_D"]Для начала давайте объясним всем, что речь идёт о задачах 24-В и 24-Г:
24-В) Для введенной пользователем строки напечатать позиции всех встречающихся в ней символов, кроме пробелов, в алфавитном порядке. Для символов, которые встречаются несколько раз, напечатать позиции в одной строке.
- Код: Выделить всё
var S: string;
c: char;
i: integer;
flag: boolean; { признак для печати очередной строки }
begin
Write('S = '); Readln(S);
{ Char(33) - первый символ после пробела }
for c:=Char(33) to Char(255) do begin
flag:= false;
for i:=1 to Length(S) do if c=S[i] then begin
if not flag then Write(c, ' - ');
Write(i,' ');
flag:= true;
end;
if flag then Writeln;
end;
Readln;
end.
Добрый день, подскажите пожалуйста, почему в этом варианте решения программа при проработки этих строк:
" if not flag then Write(c, ' - ');
Write(i,' ');"
Выводит на экран "c" один раз, хотя когда прогоняешь ее по строчкам, то по идеи она должна была бы напечатать эту букву столько раз сколько она там стретилась.
Спасибо за ответ