Задачи по Pascal. Найти самое длинное слово предложения

Задачи по Pascal

Условие задачи : Найти самое длинное слово заданного предложения и вывести его длину.

Сложность : средняя .

Как мы будем решать эту задачу . Для начала создадим каркас нашей программы .

Стоит сказать что в программе Delphi лучше не делать там нужен какой то модуль который найти трудновато , так что качайте Turbo или FreePascal.

program prog1 ;
Uses crt;
begin

end.

Решать задачу мы будем следующим образом . Мы будем считывать каждый нажатый нами символ с клавиатуры , затем заносить его в переменную и потом в зависимости от условия , что то с ним делать .

Объявим переменные :

program prog1 ;
Uses crt;
var maxsl,sl:string;
    simvol:char;
    kol,maxkol:integer;
begin

end.

Переменные типа string нужны для того что бы в одну из них занести самое длинное слово а в другую мы будем заносить букву за буквой и затем получив слово проверять его на длину.

В переменную типа char мы будем заносить нашу букву , а затем прибавлять в переменной sl и таким образом у нас получиться слово .

В переменные типа integer мы будем заносить количество символов в слове .

Дальше мы задаём цикл repeat until , чтобы считывать символы с клавиатуры и будем вводить до тех пор пока не поставим точку .

Repeat
    simvol:=Readkey; {читаем нажатый символ. Нажимать Enter не нужно}
    Write(simvol); {выводим символ на экран}
  Until simvol='.';{нажатие клавиши "точка" - признак окончания ввода}

Ну просто вводить символы нам не нужно . Нам нужно найти самое длинное слово, для этого мы пишем в цикле условие :

if not(simvol=' ') and not(simvol='.') then
  begin
    inc(kol); {считаем кол-во букв, также можно написать kol:=kol+1}
    sl:=sl+simvol; {собираем слово по буквам}
  end

Оно проверяет что на данный момент у нас в переменной simvol , если не точка и не пустота , то мы начинаем собирать наше слово и увеличиваем количество символов на 1 .

Если эти два условия не выполняются not(simvol=’ ‘) and not(simvol=’.’) , то уже идет следующее :

else
  begin
    if length(sl) > maxkol then{ищем самое длинное слово}
      begin
        maxkol:=kol; maxs:=sl;
      end;
  sl:=''; k:=0;
end;

т.е. здесь мы просто работаем с нашим словом . Считываем его длину и записываем в переменную maxsl самое длинное слово и так пока мы не нажмем точку .

И нам остается только вывести наши результаты на экран .

Весь текст программы :

program prog1 ;
Uses crt;
var maxsl,sl:string;
    simvol:char;
    kol,maxkol:integer;
begin
ClrScr;
  Write('Vvedite vashy stroky : ');
  Repeat
    simvol:=Readkey;{читаем нажатый символ. Нажимать Enter не нужно}
    Write(simvol);{выводим символ на экран}
    if not(simvol=' ') and not(simvol='.') then
      begin
        inc(kol); {считаем кол-во букв, также можно написать kol:=kol+1}
        sl:=sl+simvol; {собираем слово по буквам}
      end
    else
      begin
        if length(sl)>maxkol then{ищем самое длинное слово}
          begin
            maxkol:=kol; maxs:=sl;
          end;
       sl:=''; k:=0;
    end;
  Until simvol='.';{нажатие клавиши "точка" - признак окончания ввода}
Writeln;
Writeln('Samoe dlinnoe slovo : ', maxsl);
Writeln('kol. simvolov v nem = ', maxkol);
Readln;
End.

cyber
Оцените автора
CyberLesson | Быстро освоить программирование Pascal и C++. Решение задач Pascal и C++
Добавить комментарий