Скопировать из одного файла в другой слова с чётным количеством букв - PascalABC.NET
Формулировка задачи:
Всем привет.
Не работает программа.
Задание: Прочитать текст из файла f и записать в g все слова с четным количеством букв.
Скорее всего весь мой код - лютый бред, но другой алгоритм не могу придумать.
Листинг программы
- program Vvod_Vivod;
- var
- A: array[1..255] of char;
- i, k, id, z: integer;
- t, f: text;
- l: string;
- begin
- assign(t, 'd:\input.txt');
- reset(t);
- read(t, l);
- i := 1;
- while i < length(l) do
- begin
- if not (l[i] = ' ') then
- k := k + 1
- else
- begin
- if (k mod 2 = 0) then begin
- id := i;
- i := i - k - 1;
- while i < id do
- begin
- a[i] := l[i];
- i := i + 1;
- z := z + 1;
- end;
- k := 0;
- end;
- end;
- i := i + 1;
- end;
- close(t);
- assign(f, 'output.txt');
- rewrite(f);
- for i := 1 to z do
- begin
- write(f, a[i]);
- end;
- close(f);
- end.
Решение есть.
Листинг программы
- program Vvod_Vivod;
- var
- A: array[1..255] of char;
- i, k, id, z: integer;
- t, f: text;
- l: string;
- begin
- assign(t, 'd:\input.txt');
- reset(t);
- read(t, l);
- i := 1;
- z:=i;
- l:=l+' ';
- while i <= length(l) do
- begin
- if (l[i] <> ' ') then
- begin
- k := k + 1;
- writeln(k);
- end
- else
- begin
- if (k mod 2 = 0) then begin
- id := i;
- i := i - k - 1;
- writeln('I - ', i);
- while i < id do
- begin
- a[z] := l[i];
- i := i + 1;
- z := z + 1;
- end;
- end;
- k := 0;
- end;
- i := i + 1;
- end;
- close(t);
- assign(f, 'output.txt');
- rewrite(f);
- for i := 1 to z do
- begin
- write(f, a[i]);
- end;
- close(f);
- end.
Решение задачи: «Скопировать из одного файла в другой слова с чётным количеством букв»
textual
Листинг программы
- begin
- var d := (' .,!?:;''"/=<>{}[]()-+').ToCharArray;
- var G : Text; Rewrite(G, 'output.txt');
- foreach var S : String in ReadLines('input.txt') do
- foreach var W : String in S.ToWords(d) do
- if Not Odd(W.Length) then
- WriteLn(G, W);
- Close(G);
- end.
Объяснение кода листинга программы
Код на языке PascalABC.Net выполняет следующие действия:
- Создаёт переменную
d
типаarray of char
, которая содержит символы, обозначающие пробелы и знаки препинания. - Создаёт объект
Text
типаStreamWriter
для записи в файлoutput.txt
. - Открывает файл
input.txt
для чтения строк. - В цикле считывает строки из файла
input.txt
и разделяет каждую строку на слова с помощью методаToWords(d)
. - Вложенным циклом проверяет каждое слово на чётность длины с помощью функции
Odd(W.Length)
. Если длина слова чётная, то записывает его в файлoutput.txt
. - Закрывает файл
G
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д