Заменить goto на процедуру - Pascal ABC

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

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

Доброе время суток. Подскажите пожалуйста, как заменить goto на процедуру. Код готовый, нужно только отредактировать, нашел тут на форуме похожий пример, но не совсем понял его. Заменять на if ... then... else?

Решение задачи: «Заменить goto на процедуру»

textual
Листинг программы
program qqq;
uses crt;
var a,s:string;
    k,i,j,n:integer;
begin
clrscr;
writeln('Введите строку из слов, разделенных пробелами');
readln(a);
write('Введите число К для поиска слов короче К k=');
readln(k);
writeln('Слова короче ',k,' символов');
n:=0;
i:=1;
while i<=length(a) do
if (a[i]<>' ')or((i=1)and(a[i-1]=' ')) then
 begin
  j:=i;
  s:='';
  while(j<=length(a))and(a[j]<>' ') do
   begin
    s:=s+a[j];
    j:=j+1;
   end;
  if length(s)<k then
   begin
    writeln(s);
    n:=1;
    end;
  i:=i+length(s);
 end
else i:=i+1;
if n=0 then write('Таких слов нет');
readkey;
end.

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

  1. Программа объявлена как qqq.
  2. Используется библиотека crt.
  3. Переменные a и s объявлены как строки (тип string).
  4. Переменные k, i, j, n объявлены как целые числа (тип integer).
  5. С помощью функции clrscr() очищается экран.
  6. Пользователю предлагается ввести строку из слов, разделенных пробелами.
  7. Пользователю предлагается ввести число К для поиска слов короче К.
  8. Выводится сообщение о том, какие слова будут найдены.
  9. Переменная n инициализируется значением 0.
  10. Переменная i инициализируется значением 1.
  11. Запускается цикл while, который выполняется, пока i меньше или равно длине строки a.
  12. Внутри цикла проверяется, является ли текущий символ в строке a непустым.
  13. Если текущий символ в строке a не является пустым, то переменной j присваивается значение i+1.
  14. Переменной s присваивается значение пустой строки (''').
  15. Запускается вложенный цикл while, который выполняется, пока j меньше или равно длине строки a и текущий символ в строке a не является пустым.
  16. Внутри вложенного цикла к переменной s добавляется текущий символ из строки a.
  17. После окончания вложенного цикла переменная j увеличивается на 1.
  18. Если длина строки s меньше или равна значению переменной k, то выводится строка s.
  19. Если длина строки s меньше k, то переменная n инициализируется значением 1.
  20. Цикл while завершается.
  21. Если переменная n равна 0, то выводится сообщение о том, что таких слов нет.
  22. Вызывается функция readkey(), чтобы пользователь мог нажать любую клавишу.

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

11   голосов , оценка 3.727 из 5
Похожие ответы