Переписать компоненты файла f в файл g, заменив при каждый восклицательный знак точкой - Free Pascal

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

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

Дано символьный файл f. Переписать компоненты файла f в файл g, заменив при этом каждый восклицательный знак точкой.

Решение задачи: «Переписать компоненты файла f в файл g, заменив при каждый восклицательный знак точкой»

textual
Листинг программы
program pr;
var
  f, g: file of char;
  i, n: integer;
  c: char;
begin
  assign(f, 'c:\fi.txt');
  assign(g, 'c:\se.txt');
  rewrite(g);
  rewrite(f);
  writeln('введите количетсов символов');
  readln(n);
  i := 1;
  while i <= n do
  begin
    readln(c);
    write(f, c);
    i := i + 1;
  end;
  close(f);
  reset(f);
  while not eof(f) do
  begin
    inc(i);
    read(f, c);
    if c = '!' then
    begin
      c := '.';
    end;
    write(g, c);
  end;
  close(f);
  close(g);
  writeln;
  writeln('Файл g');
  reset(g);
  while not eof(g) do
  begin
    inc(i);
    read(g, c);
    write(c);
  end;
  close(g);
end.

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

  1. Объявление переменных:
    • f, g: file of char; - файлы для чтения и записи
    • i, n: integer; - счётчики для отслеживания количества символов
    • c: char; - символ для чтения и записи
  2. Открытие файлов:
    • assign(f, 'c:\fi.txt'); - присваиваем файлу f имя 'c:\fi.txt'
    • assign(g, 'c:\se.txt'); - присваиваем файлу g имя 'c:\se.txt'
  3. Открытие файла g для записи:
    • rewrite(g); - очистка файла g и открытие его для записи
  4. Открытие файла f для чтения:
    • rewrite(f); - очистка файла f и открытие его для чтения
  5. Запрос на ввод количества символов:
    • writeln('введите количество символов');
    • readln(n); - считывание количества символов из файла
  6. Чтение символов из файла f и запись их в файл g:
    • i := 1; - счётчик символов
    • while i <= n do - цикл по количеству символов
      • readln(c); - считывание символа из файла f
      • write(f, c); - запись символа в файл g
      • i := i + 1; - увеличение счётчика символов
    • close(f); - закрытие файла f
  7. Чтение символов из файла f, замена восклицательного знака на точку и запись их в файл g:
    • reset(f); - возвращение файла f в начало
    • while not eof(f) do - цикл до достижения конца файла f
      • inc(i); - увеличение счётчика символов
      • read(f, c); - считывание символа из файла f
      • if c = '!' then - если символ равен восклицательному знаку
        • c := '.'; - заменяем символ на точку
      • write(g, c); - записываем символ в файл g
    • close(f); - закрытие файла f
  8. Чтение символов из файла g и их вывод на экран:
    • reset(g); - возвращение файла g в начало
    • while not eof(g) do - цикл до достижения конца файла g
      • inc(i); - увеличение счётчика символов
      • read(g, c); - считывание символа из файла g
      • write(c); - вывод символа на экран
    • close(g); - закрытие файла g
  9. Вывод сообщения о содержимом файла g:
    • writeln('Файл g'); - вывод сообщения
  10. Завершение программы:
    • halt; - завершение работы программы

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

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