Перевести код с PascalABC.NET - Free Pascal

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

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

Помогите перевести код в Паскаль.
Листинг программы
  1. var
  2. str1: array of string;
  3. str2: array of string := (',', ' ', '.', #13);
  4. chr1: char;
  5. i: integer;
  6. begin
  7. readln(chr1);
  8. str1 := System.IO.File.ReadAllText('in.txt').Split(str2, System.StringSplitOptions.RemoveEmptyEntries);
  9. foreach str: string in str1 do
  10. if (str[1] = chr1) then
  11. System.IO.File.AppendAllText('out.txt', str + ' ');
  12. end.

Решение задачи: «Перевести код с PascalABC.NET»

textual
Листинг программы
  1. {$mode objfpc}
  2. uses
  3.   Crt, Classes, StrUtils;
  4.  
  5. const
  6.   Delims = [' ', #10, #13, '.', ','];
  7. var
  8.   ch : char;
  9.   s, st, res : string;
  10.   i : integer;
  11. begin
  12.   readln(ch);
  13.   with TStringList.Create do
  14.   try
  15.     Delimiter := #0;
  16.     LoadFromFile('d:\test\in.txt');
  17.     s := Text;
  18.     for i := 1 to WordCount(s, Delims) do
  19.     begin
  20.       st := ExtractWord(i, s, Delims);
  21.       if st[1] = ch then res := res + st + ' ';
  22.     end;
  23.     Text := res;
  24.     SaveToFile('d:\test\out.txt');
  25.   finally
  26.     Free;
  27.   end;
  28. end.

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

  1. {$mode objfpc} - это препроцессорная директива, которая указывает компилятору использовать режим объектно-ориентированного программирования
  2. uses Crt, Classes, StrUtils; - это описание модулей, которые необходимы для работы программы. Crt - модуль для работы с консолью, Classes - модуль для работы с классами, StrUtils - модуль для работы со строками.
  3. const Delims = [' ', #10, #13, '.', ',']; - это определение константы Delims, которая содержит символы-разделители.
  4. var ch : char; s, st, res : string; i : integer; - это описание переменных, которые будут использоваться в программе.
  5. readln(ch); - это чтение символа из консоли и сохранение его в переменной ch.
  6. with TStringList.Create do - это создание нового объекта TStringList и его присваивание переменной.
  7. try - это начало блока try-except, который используется для обработки исключений.
  8. Delimiter := #0; - это установка разделителя в пустую строку.
  9. LoadFromFile('d:\test\in.txt'); - это загрузка содержимого файла 'in.txt' в объект TStringList.
  10. s := Text; - это присваивание переменной s значения объекта TStringList.
  11. for i := 1 to WordCount(s, Delims) do - это цикл, который будет выполняться от 1 до количества слов в строке s, разделенных символами из Delims.
  12. st := ExtractWord(i, s, Delims); - это извлечение i-го слова из строки s с помощью функции ExtractWord.
  13. if st[1] = ch then res := res + st + ' '; - это проверка, совпадает ли первый символ извлеченного слова с символом ch. Если да, то слово добавляется к переменной res.
  14. Text := res; - это присваивание значения переменной res объекту TStringList.
  15. SaveToFile('d:\test\out.txt'); - это сохранение содержимого объекта TStringList в файл 'out.txt'.
  16. finally - это начало блока finally в блоке try-except.
  17. Free; - это освобождение памяти, занятой объектом TStringList.
  18. end; - это конец блока try-except.
  19. end. - это конец программы.
  20. Это код, который читает строку из консоли, разбивает ее на слова и ищет слова, начинающиеся на определенный символ, затем сохраняет результат в файл.

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


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

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

10   голосов , оценка 4.4 из 5

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

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

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