Молоко в кувшине. Квас в банке. Вода в стакане Лимонад в бутылке
Доказательство простое. Начинаем с молока. По условию, оно не в бутылке, не в банке и не в стакане ("стакан стоит около банки и сосуда с молоком.") Значит в кувшине. Далее, по условию, в банке не лимонад и не вода. И теперь мы знаем, что и не молоко. Значит в банке квас. Далее, по условию, вода не в бутылке. А теперь мы знаем, что она и не в кувшине и не в банке. Значит вода в стакане. Ну и остаётся, что лимонад в бутылке. Вся остальная посуда уже занята.
program Project1; const //Множество разделителей слов. D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13]; var S, StrW, StrWMax : String; i, Pos1, Len, LenW, LenWMax, Cnt : Integer; begin repeat Writeln('Задайте текст:'); Readln(S); //Обработка текста. Len := Length(S); LenWMax := 0; StrWMax := ''; Cnt := 0; Pos1 := 0; for i := 1 to Len do begin //Пропускаем разделители. if S[i] in D then Continue; //Отслеживаем начало слова. if (i = 1) or (S[i - 1] in D) then Pos1 := i; //Отслеживаем конец слова. if (i = Len) or (S[i + 1] in D) then begin //Вычисляем длину слова. LenW := i - Pos1 + 1; //Выделяем слово. StrW := Copy(S, Pos1, LenW); //Если слово совпадает с текущим наибольшим по длине, //тогда увеличиваем счётчик. if StrW = StrWMax then begin Cnt := Cnt + 1; end else if LenW > LenWMax then begin //Если это очередное слово длиннее всех ранее найденных слов, то //запоминаем его и его длину и сбрасываем счётчик. StrWMax := StrW; LenWMax := LenW; Cnt := 1; end; end; end; //Показываем результат. if StrWMax <> '' then begin Writeln('Первое из самых длинных слов: "', StrWMax, '".'); Writeln('Это слово встречается в тексе ', Cnt, ' раз.'); end else begin Writeln('В строке нет слов.'); end; Writeln('Повторить - Enter, выход - любой символ + Enter.'); Readln(S); until S <> ''; end.
Молоко в кувшине.
Квас в банке.
Вода в стакане
Лимонад в бутылке
Доказательство простое. Начинаем с молока. По условию, оно не в бутылке, не в банке и не в стакане ("стакан стоит около банки и сосуда с молоком.") Значит в кувшине.
Далее, по условию, в банке не лимонад и не вода. И теперь мы знаем, что и не молоко. Значит в банке квас.
Далее, по условию, вода не в бутылке. А теперь мы знаем, что она и не в кувшине и не в банке. Значит вода в стакане.
Ну и остаётся, что лимонад в бутылке. Вся остальная посуда уже занята.
Находит саммое длинное слово