Дан текстовый файл 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.
Объяснение кода листинга программы
- Импортируется модуль CRT, который содержит функции для работы с консолью.
- Создается массив a размером 100 для хранения слов из файла.
- Задаются пути к файлам f и g, в которые происходит чтение и запись.
- Создается функция cardinality, которая считает количество элементов в множестве.
- В основной программе открываются файлы f и g, при этом файл g создается и перезаписывается.
- В цикле while считываются строки из файла f и разбиваются на отдельные слова, которые сохраняются в массиве a.
- В цикле for проверяются слова из массива a на соответствие условиям: длина слова больше 4 и меньше 6.
- Для каждого такого слова создается множество m, которое содержит все его символы.
- Функция cardinality вызывается для подсчета количества элементов в множестве m.
- Если количество элементов в множестве равно длине слова, то это слово записывается в файл g.
- В конце программы файлы f и g закрываются.