Написать программу, проверяющую, можно ли из русских букв составить данное слово 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- строка, которая будет проверяться на возможность составления из символов массиваasr- строка, в которую будут сохраняться символы из массиваa, которые составляют строкуsb- логическая переменная для контроля наличия символа изsв массивеai,j,k,n,m- целочисленные переменные для использования в циклах
- Ввод размеров массива:
- Пользователю предлагается ввести значения
nиmдля создания массиваaразмеромn x m
- Пользователю предлагается ввести значения
- Ввод элементов массива:
- Пользователю предлагается ввести символы массива
aпострочно
- Пользователю предлагается ввести символы массива
- Ввод слова:
- Пользователю предлагается ввести проверяемое слово
s
- Пользователю предлагается ввести проверяемое слово
- Поиск символов из слова в массиве:
- Для каждой буквы в строке
sпроверяется, есть ли она в массивеa - Если символ найден, он добавляется в строку
srи удаляется из массиваa
- Для каждой буквы в строке
- Проверка результатов:
- Сравнивается исходное слово
sс сформированной строкойsr - Если строки равны, выводится
можно, иначенельзя
- Сравнивается исходное слово
- Ожидание нажатия клавиши:
- После вывода результата программа ожидает ввода любой клавиши перед завершением работы.