Написать программу, проверяющую, можно ли из русских букв составить данное слово S - Pascal
Формулировка задачи:
Двумерный массив n×m содержит некоторые буквы русского алфавита, расположенные в произвольном порядке. Написать программу, проверяющую, можно ли из этих букв составить данное слово S. Каждая буква массива используется не более одного раза.
Помогите пожалуйста.
Решение задачи: «Написать программу, проверяющую, можно ли из русских букв составить данное слово S»
textual
Листинг программы
- var
- a:array[1..100,1..100] of char;
- s,sr:string;
- b:boolean;
- i,j,k,n,m:integer;
- begin
- write('n=');readln(n);
- write('m=');readln(m);
- writeln('Введите массив a[',n,',',m,'] по строкам');
- for i:=1 to n do begin
- for j:=1 to m do read(a[i,j]);
- readln;
- end;
- write('Введите слово:');readln(s);
- for k:=1 to length(s) do begin
- b:=false;
- for i:=1 to n do
- for j:=1 to m do
- if not b then if a[i,j]=s[k] then begin
- b:=true;
- sr:=sr+a[i,j];
- a[i,j]:=#0;
- end;
- end;
- if s=sr then writeln('можно') else writeln('нельзя');
- readln;
- end.
Объяснение кода листинга программы
- Объявление переменных:
a
- двумерный массив символов размером 100x100s
- строка, которая будет проверяться на возможность составления из символов массиваa
sr
- строка, в которую будут сохраняться символы из массиваa
, которые составляют строкуs
b
- логическая переменная для контроля наличия символа изs
в массивеa
i
,j
,k
,n
,m
- целочисленные переменные для использования в циклах
- Ввод размеров массива:
- Пользователю предлагается ввести значения
n
иm
для создания массиваa
размеромn x m
- Пользователю предлагается ввести значения
- Ввод элементов массива:
- Пользователю предлагается ввести символы массива
a
построчно
- Пользователю предлагается ввести символы массива
- Ввод слова:
- Пользователю предлагается ввести проверяемое слово
s
- Пользователю предлагается ввести проверяемое слово
- Поиск символов из слова в массиве:
- Для каждой буквы в строке
s
проверяется, есть ли она в массивеa
- Если символ найден, он добавляется в строку
sr
и удаляется из массиваa
- Для каждой буквы в строке
- Проверка результатов:
- Сравнивается исходное слово
s
с сформированной строкойsr
- Если строки равны, выводится
можно
, иначенельзя
- Сравнивается исходное слово
- Ожидание нажатия клавиши:
- После вывода результата программа ожидает ввода любой клавиши перед завершением работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д