Работа со строками, нахождение слов в 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.

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

  1. В начале объявляются необходимые переменные: тип charset, переменные f, n, i, j, a, b, k, s и s1.
  2. Пользователю предлагается ввести символы. Введенные символы сохраняются в переменной s1.
  3. Переменная a инициализируется суммой символов введенных пользователем.
  4. Переменная b инициализируется пустым набором символов.
  5. Открывается файл 'input.txt' и сбрасывается буфер.
  6. Запускается цикл, пока не будет достигнут конец файла.
  7. В каждой итерации цикла считывается строка из файла и ее длина сохраняется в переменной n.
  8. Запускается вложенный цикл, который проходит по каждому символу строки.
  9. Если текущий символ не равен пробелу и он не последний символ строки, то к переменной s добавляется текущий символ, а к переменной b - сумма символов введенных пользователем.
  10. После окончания вложенного цикла, если сумма символов введенных пользователем больше или равна количеству символов в строке, выводится сообщение о том, что слово из введенных символов можно составить из символов строки. В противном случае выводится сообщение о том, что слово из введенных символов нельзя составить из символов строки.
  11. После окончания внешнего цикла файл закрывается.

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

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