Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr - Free Pascal

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

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

Добрый день! Помогите пожалуйста с программой. Есть функция, которая считывает из файла строки. Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr. Подскажите, пожалуйста, как это сделать
Листинг программы
  1. Procedure Search(var str0:string; Nstr:integer);
  2. var
  3. f:text;
  4. prov, str:string;
  5. j:integer;
  6. begin
  7. assign(f,str0);
  8. reset(f);
  9. while not Eof(f) do
  10. begin
  11. readln(f,str);
  12. Nstr:=Nstr+1;
  13. prov:='';
  14. for j:=1 to length(str) do
  15. begin
  16. prov:=prov+str[j];
  17. if prov='Compiling' then
  18. ?????? <-----что делать здесь?
  19. end;
  20. end;
  21. end;

Решение задачи: «Как только встречается слово Compiling, нужно передать в основную программу переменную Nstr»

textual
Листинг программы
  1. Procedure Search(var str0:string; var Nstr:integer);
  2. var
  3. f:text;
  4. prov, str:string;
  5. j:integer;
  6.  
  7. begin
  8. assign(f,str0);
  9. reset(f);
  10. while not Eof(f) do
  11. begin
  12. readln(f,str);
  13. Nstr:=Nstr+1;
  14. prov:='';
  15. for j:=1 to length(str) do
  16. begin
  17. prov:=prov+str[j];
  18. if prov='Compiling' then Exit;
  19. end;
  20. end;
  21. end;
  22.  
  23.  
  24.  
  25. Procedure Output(var str0:string);
  26. var
  27.  f:text;
  28.  x,y,Nstr,i,j:integer;
  29.  str,str1,str2:string;
  30.  flag1,flag2:boolean;
  31. begin
  32. initgraph(x, y,' ');
  33. assign(f,str0);
  34. reset(f);
  35. Nstr:=1;
  36. Search(str0, Nstr);
  37. j:=0;
  38. while not Eof(f) do
  39. begin
  40. j:=j+1;
  41. if j>=Nstr then
  42. begin
  43. readln(f,str);
  44. flag1:=false;
  45. flag2:=false;
  46. for i:=1 to length(str) do
  47. begin
  48. if str[i]='(' then
  49. flag1:=true;
  50. if (str[i+1]=')') or (str[i+1]=',') then
  51. flag2:=true;
  52. if flag2=true then
  53. begin
  54. str1:=str1 + ' ';
  55. if str[i]='"' then
  56. str2:=str2+str[i+1];
  57. flag1:=false;
  58. flag2:=false;
  59. end;
  60. if flag1=true then
  61. str1:=str1 + str[i+1];
  62. end;
  63. end;
  64. end;
  65. end;

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

  1. Объявлены две процедуры: Search и Output.
  2. В процедуре Search используется переменная Nstr для подсчета количества строк в файле.
  3. В цикле while считывается каждая строка из файла до тех пор, пока не достигнется конец файла.
  4. Для каждой строки выполняется поиск слова Compiling. Если это слово найдено, то процедура завершается.
  5. В процедуре Output используется переменная Nstr, которая инициализируется значением 1.
  6. Вызывается процедура Search для поиска строки с словом Compiling.
  7. Если в строке найдено слово ( и закрывающая скобка ')', то начинается поиск следующего слова.
  8. Если в строке найдено слово ,, то предыдущее найденное слово считается именем и добавляется в результат.
  9. Если в строке найдено слово ```, то следующее слово считается продолжением предыдущего имени и добавляется в результат.
  10. Результат выводится на экран.

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


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

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

15   голосов , оценка 4.467 из 5

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

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

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