Работа со строками, нахождение слов в txt - Pascal ABC
Формулировка задачи:
Есть файл с некоторыми словами в *.txt файле. Надо составить программу, которая при вводе любых символов, узнавала можно ли из них составить слово, которое есть в *.txt. Спасибо.
Решение задачи: «Работа со строками, нахождение слов в txt»
textual
Листинг программы
type
charset = set of char;
var
f:text;
n,i,j:integer;
a,b:charset;
k:char;
s,s1:string;
begin
writeln('Введите символы');
readln(s1);
for i:=1 to length(s1) do begin
if s1[i]<>' ' then
a:=a+[s1[i]];end;
assign(f,'input.txt');reset(f);
while not Eof(f) do begin
readln(f,s1);
n:=length(s1);
for i:=1 to n do begin
if (s1[i] <> ' ') and (i<>n) then begin
s:=s+s1[i];
b:=b+[s1[i]];end
else begin
if a>=b then
writeln('Слово ',s,' из файла можно составить из введенных символов')
else
writeln('Слово ',s,' из файла нельзя составить из введенных символов');
s:='';
b:=[];
end;
end;
end;
close(f);
end.
Объяснение кода листинга программы
- В начале объявляются необходимые переменные: тип charset, переменные f, n, i, j, a, b, k, s и s1.
- Пользователю предлагается ввести символы. Введенные символы сохраняются в переменной s1.
- Переменная a инициализируется суммой символов введенных пользователем.
- Переменная b инициализируется пустым набором символов.
- Открывается файл 'input.txt' и сбрасывается буфер.
- Запускается цикл, пока не будет достигнут конец файла.
- В каждой итерации цикла считывается строка из файла и ее длина сохраняется в переменной n.
- Запускается вложенный цикл, который проходит по каждому символу строки.
- Если текущий символ не равен пробелу и он не последний символ строки, то к переменной s добавляется текущий символ, а к переменной b - сумма символов введенных пользователем.
- После окончания вложенного цикла, если сумма символов введенных пользователем больше или равна количеству символов в строке, выводится сообщение о том, что слово из введенных символов можно составить из символов строки. В противном случае выводится сообщение о том, что слово из введенных символов нельзя составить из символов строки.
- После окончания внешнего цикла файл закрывается.