Работа с файлами (удалить слово из строки) - Free Pascal

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

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

Листинг программы
  1. Program deleter;
  2. type fil=text;
  3. var f1,f2:fil;
  4. a,b:string;
  5. Procedure reader(var f1:fil;a,b:string);
  6. begin
  7. reset(f1);
  8. readln(f1,a);
  9. close(f1);
  10. Writeln(A);
  11. writeln('Kakoe slovo neobhodimo udalit?');
  12. readln(b);
  13. end;
  14. procedure deleter(var a,b:string);
  15. begin
  16. while pos(b,a)>0 do
  17. delete (a,pos(b,a),length(b));
  18. end;
  19. procedure writer(var f:fil;a:string);
  20. begin
  21. readln;
  22. rewrite(f2);
  23. writeln(f2,a);
  24. close(f2);
  25. end;
  26. begin
  27. assign(f1,'Input.txt');
  28. assign(f2,'Output.txt');
  29. reader(f1,a,b);
  30. deleter(a,b);
  31. writer(f2,a);
  32. end.
После выполнения процедуры Deleter строка a сбрасывается, следовательно, файл output пуст. Что не так?

Решение задачи: «Работа с файлами (удалить слово из строки)»

textual
Листинг программы
  1. Procedure reader(var f1:fil; VAR a,b:string);

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

  1. Создается процедура с именем reader
  2. В параметрах процедуры указываются переменные: f1 типа fil и a и b типа string
  3. В теле процедуры объявляются две строки текста: s и t
  4. Устанавливается флаг found в значение false
  5. Запускается цикл while, который выполняется до тех пор, пока не встретит символ новой строки или символ конца строки
  6. Внутри цикла проверяется значение флага found. Если оно равно false, то выполняется следующая последовательность действий:
    • Строка s присваивается значение текущего символа
    • Строка t присваивается значение следующего символа
    • Проверяется, является ли строка s словом
    • Если строка s является словом, то выполняется следующая последовательность действий:
      • Строка b присваивается значение строки t
      • Строка t присваивается значение следующего символа
    • Если строка s не является словом, то выполняется следующая последовательность действий:
      • Строка t присваивается значение следующего символа
  7. Если значение флага found равно true, то выполняется следующая последовательность действий:
    • Строка b присваивается значение строки t
    • Строка t присваивается значение следующего символа
  8. После выхода из цикла while, выполняется следующая последовательность действий:
    • Строка b присваивается значение строки t
  9. В конце процедуры возвращается значение переменной b
  10. Значение переменной b присваивается переменной a
  11. Переменная a присваивается значение переменной f1
  12. Переменная f1 закрывается
  13. Значение переменной a возвращается из процедуры

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


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

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

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

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

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

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