Глава 24, задачи В и Г

Книга адресована школьникам средних и старших классов, желающим испытать себя в «олимпийских схватках». Может быть полезна студентам-первокурсникам и преподавателям информатики.

Модераторы: Oleg_D, Модераторы

Re: Глава 24, задачи В и Г

Сообщение Oleg_D » 02.11.2016 22:18:02

Герман писал(а):Объясните, пожалуйста, на пальцах, какое условие является решающим для переменной FLAG?

Флаг здесь нужен для того, чтобы знать, найден ли символ впервые (Flag=false), или повторно (Flag=true). В первом случае печатаем и символ, и позицию, а во втором -- только позицию.
Oleg_D
постоялец
 
Сообщения: 391
Зарегистрирован: 09.05.2011 11:28:36

Re: Глава 24, задачи В и Г

Сообщение Герман » 03.11.2016 00:29:51

Спб.
Герман
новенький
 
Сообщения: 26
Зарегистрирован: 27.10.2016 11:11:41

Re: Глава 24, задачи В и Г

Сообщение xc6_egor » 02.12.2017 16:54:04

[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" один раз, хотя когда прогоняешь ее по строчкам, то по идеи она должна была бы напечатать эту букву столько раз сколько она там стретилась.

Спасибо за ответ
xc6_egor
незнакомец
 
Сообщения: 1
Зарегистрирован: 02.12.2017 16:49:04

Re: Глава 24, задачи В и Г

Сообщение MysticCoder » 03.12.2017 22:25:29

потому что перед write стоит проверка if not flag then, а flag устанавливается а true чуть ниже, при нахождении первого символа
MysticCoder
постоялец
 
Сообщения: 154
Зарегистрирован: 14.09.2013 00:20:28

Пред.

Вернуться в Книга "Песни о Паскале"

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru