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

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

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

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

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

textual
Листинг программы
{$mode objfpc}
uses
  Crt, Classes, StrUtils;
 
const
  Delims = [' ', #10, #13, '.', ','];
var
  ch : char;
  s, st, res : string;
  i : integer;
begin
  readln(ch);
  with TStringList.Create do
  try
    Delimiter := #0;
    LoadFromFile('d:\test\in.txt');
    s := Text;
    for i := 1 to WordCount(s, Delims) do
    begin
      st := ExtractWord(i, s, Delims);
      if st[1] = ch then res := res + st + ' ';
    end;
    Text := res;
    SaveToFile('d:\test\out.txt');
  finally
    Free;
  end;
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
Похожие ответы