Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством символов больше 4 и меньш 6 - Pascal ABC

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

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

Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством символов >4 и <6, в которых нет повторяющихся символов. Если таких слов нет, то полностью переписать файл g в файл f.

Решение задачи: «Дан текстовый файл g. Создать новый файл f и записать в него все слова файла g с количеством символов больше 4 и меньш 6»

textual
Листинг программы
uses
  crt;
var
  a: array [1..100] of string;
  f, g: text;
  s, s1: string;
  j, i, n, n1: integer;
  m: set of char;
 
function cardinality(x: set of char): integer;
var
  i: integer;
  ch: char;
begin
  i := 0;
  for ch := #0 to #255 do
    if ch in x then
      inc(i);
  cardinality := i;
end;
 
begin
  clrscr;
  assign(f, 'test.txt');
  assign(g, 'out.txt');
  rewrite(g);
  reset(f);
  while not eof(f) do
  begin
    readln(f, s);
    s := s + ' ';
    n1 := length(s);
    n := 0;
    i := 1;
    while (i <= n1) do
    begin
      s1 := '';
      while (s[i] <> ' ') do
      begin
        s1 := s1 + s[i];
        i := i + 1;
      end;
      if (s1 <> '') then
      begin
        n := n + 1;
        A[n] := s1;
      end;
      i := i + 1;
    end;
    for i := 1 to n do
      if (length(a[i]) < 6) and (length(a[i]) > 4) then
      begin
        m := [];
        for j := 1 to length(a[i]) do
        begin
          include(m, a[i][j]);
        end;
//        writeln(cardinality(m));
        if length(a[i]) = cardinality(m) then
        begin
//          write(A[i], ' ');
          write(g, A[i], ' ');
        end;
      end;
  end;
  close(f);
  close(g);
end.

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

  1. Импортируется модуль CRT, который содержит функции для работы с консолью.
  2. Создается массив a размером 100 для хранения слов из файла.
  3. Задаются пути к файлам f и g, в которые происходит чтение и запись.
  4. Создается функция cardinality, которая считает количество элементов в множестве.
  5. В основной программе открываются файлы f и g, при этом файл g создается и перезаписывается.
  6. В цикле while считываются строки из файла f и разбиваются на отдельные слова, которые сохраняются в массиве a.
  7. В цикле for проверяются слова из массива a на соответствие условиям: длина слова больше 4 и меньше 6.
  8. Для каждого такого слова создается множество m, которое содержит все его символы.
  9. Функция cardinality вызывается для подсчета количества элементов в множестве m.
  10. Если количество элементов в множестве равно длине слова, то это слово записывается в файл g.
  11. В конце программы файлы f и g закрываются.

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

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