Строки, удвоение самого короткого слова в предложении - Pascal

Узнай цену своей работы

Формулировка задачи:

Вот моя программа, она находит самое короткое слово в предложении и выводит его, ещё нужно сделать так, чтобы она удваивала это слово и выводила результат, как это сделать? Помогите пжл
Листинг программы
  1. var s,sl,smin,s1,n: string;
  2. i,dmin,k,x: integer;
  3. begin
  4. writeln('Введите строку:');
  5. readln(s);
  6. s:=s+' '; sl:='';dmin:=length(s);
  7. for i:=1 to length(s) do
  8. if s[i]<>' ' then sl:=sl+s[i]
  9. else
  10. begin
  11. if (length(sl)<dmin) and (length(sl)<>0) then
  12. begin
  13. dmin:=length(sl);
  14. smin:=sl;
  15. end;
  16. sl:='';
  17. end;
  18. writeln ('Самое короткое слово "',smin,'" длиной в ',dmin,' символов');
  19. ?
  20. ?
  21. ?
  22. ?
  23. ?
  24. end.
Например, должно быть так: Введите строку: Иду гулять Самое короткое слово "Иду" длиной в 3 символов Получившееся строка: Иду Иду гулять

Решение задачи: «Строки, удвоение самого короткого слова в предложении»

textual
Листинг программы
  1. var s,sl,smin,smax: string;
  2.     i,dmin,nsl: integer;
  3.     dmax,nmsl:integer;
  4. begin
  5. writeln('Введите строку:');        
  6. readln(s);
  7. s:=s+' '; sl:='';dmin:=length(s);nsl:=1;dmax:=0;nmsl:=length(s);
  8. for i:=1 to length(s) do          
  9.     if s[i]<>' ' then sl:=sl+s[i]
  10.        else                        
  11.        begin                      
  12.        if (length(sl)<dmin) and (length(sl)<>0) then  
  13.           begin
  14.           dmin:=length(sl);        
  15.           smin:=sl;
  16.           nsl:=i-length(sl);
  17.           end;
  18.        if (length(sl)>dmax) and (length(sl)<>0) then  
  19.           begin
  20.           dmax:=length(sl);        
  21.           smax:=sl;
  22.           nmsl:=i-length(sl);
  23.           end;    
  24.        sl:='';                  
  25.        end;
  26. writeln ('Самое короткое слово "',smin,'" длиной в ',dmin,' символов');
  27. writeln ('Самое длинное слово "',smax,'" длиной в ',dmax,' символов');
  28. if dmin<>dmax
  29.  then begin
  30.        insert(smin+' ',s,nsl);
  31.        if nmsl>nsl then delete(s,nmsl+length(smin)+1,length(smax)+1)
  32.                    else delete(s,nmsl,length(smax)+1);
  33.       end;            
  34. writeln('Полученная строка');
  35. writeln(s)
  36. end.

Объяснение кода листинга программы

  1. Объявление переменных:
    • s, sl, smin, smax: string; - объявление строковых переменных
    • i, dmin, nsl: integer; - объявление целочисленных переменных
    • dmax, nmsl: integer; - объявление еще одной целочисленной переменной
  2. Инициализация переменных:
    • writeln('Введите строку:'); - вывод на экран приглашения для ввода строки
    • readln(s); - считывание строки с клавиатуры и запись в переменную s
    • s:=s+' '; sl:='';dmin:=length(s);nsl:=1;dmax:=0;nmsl:=length(s); - дополнение строки s пробелом, инициализация переменных sl, dmin, nsl, dmax, nmsl
  3. Цикл обработки строки:
    • for i:=1 to length(s) do - цикл перебора символов в строке
    • if s[i]<>' ' then sl:=sl+s[i] - добавление символов к sl до тех пор, пока не встретится пробел
    • if (length(sl)<dmin) and (length(sl)<>0) then - проверка на минимальную длину слова
    • if (length(sl)>dmax) and (length(sl)<>0) then - проверка на максимальную длину слова
    • sl:=''; - обнуление sl на каждой итерации
  4. Вывод результатов:
    • writeln ('Самое короткое слово',smin,'длиной в ',dmin,' символов'); - вывод самого короткого слова и его длины
    • writeln ('Самое длинное слово',smax,'длиной в ',dmax,' символов'); - вывод самого длинного слова и его длины
  5. Обработка результатов:
    • if dmin<>dmax then begin - начало блока условий
    • insert(smin+' ',s,nsl); - вставка самого короткого слова в строку s в позицию nsl
    • if nmsl>nsl then delete(s,nmsl+length(smin)+1,length(smax)+1) else delete(s,nmsl,length(smax)+1); - удаление самого длинного слова из строки
    • writeln('Полученная строка'); - вывод сообщения о полученной строке
    • writeln(s) - вывод результирующей строки
  6. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.714 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы