Вопрос задан 01.12.2023 в 15:32. Предмет Информатика. Спрашивает Вишня Диана.

Pascal ABC Дана строка, состоящая из слов (разбитых пробелами) и строка символов. Необходимо

выяснить, можно ли из символов строки 2 получить слова из строки 1. Если можно, то вывести эти слова, иначе вывести NO. (буквы из набора можно использовать несколько раз) Входные данные Строка содержащая слова через пробел и строка с набором букв Выходные данные Слова, которые можно получить из символов второй строки или слово NO Для примера: Ввод hello i love you ieohuyvl Результат hello i love you
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Бортник Віталій.

Ответ:

var slova, bukvy, slovo : string;

   i, b, k, c, j, l, kolvo, dlina1, dlina2 : integer;

   a : array[1..50] of string;

begin

 Writeln('Введите слова');

 Readln(slova);

 Writeln('Введите буквы');

 Readln(bukvy);

 dlina1 := length(slova);

 dlina2 := length(bukvy);

 k := 1;

 for i := 1 to dlina1 do

   if slova[i] = ' ' then

     k := k + 1;

 writeln(k);

b := 1;

i := 1;

while i <= length(slova) do

begin

 if (slova[i] <> ' ') and (i <> length(slova)) then

   slovo := slovo + slova[i]

 else

 begin

   a[b] := slovo;

   slovo := '';

   b := b + 1;

 end;

i := i + 1;

end;

a[k] := a[k] + slova[length(slova)];

b := 0;

l := 0;

for i := 1 to 50 do

 if a[i] <> '' then

   begin

   slovo := a[i];

   for k := 1 to length(slovo) do

     for c := 1 to length(bukvy) do

       if slovo[k] = bukvy[c] then

         j := j + 1;

   if j = length(slovo) then

   begin

     writeln(slovo);

     l := l + 1;

     j := 0;

   end;

   end;

if l = 0 then

 writeln('NO');

end.

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Problem Description

The problem requires determining whether it is possible to form words from the characters in the second string, given a string consisting of words separated by spaces and a string of characters. If it is possible, the program should output the words that can be formed; otherwise, it should output "NO".

Approach

To solve this problem, we can follow these steps:

1. Split the first string into individual words. 2. Iterate through each word and check if it can be formed using the characters in the second string. 3. If a word can be formed, add it to a list of valid words. 4. After iterating through all the words, check if the list of valid words is empty. 5. If the list is not empty, output the valid words separated by spaces. 6. If the list is empty, output "NO".

Implementation

Here's an example implementation in Pascal ABC:

```pascal program WordFormation;

var inputString: string; characters: string; words: array of string; validWords: array of string; i, j, k: integer; valid: boolean;

begin // Read input string and characters readln(inputString); readln(characters);

// Split input string into words words := inputString.Split(' ');

// Iterate through each word for i := 0 to Length(words) - 1 do begin valid := true;

// Check if the word can be formed using the characters for j := 1 to Length(words[i]) do begin // Check if the character exists in the characters string if Pos(words[i][j], characters) = 0 then begin valid := false; Break; end else begin // Remove the used character from the characters string k := Pos(words[i][j], characters); Delete(characters, k, 1); end; end;

// If the word is valid, add it to the list of valid words if valid then SetLength(validWords, Length(validWords) + 1); validWords[Length(validWords) - 1] := words[i]; end;

// Check if any valid words were found if Length(validWords) > 0 then begin // Output the valid words separated by spaces for i := 0 to Length(validWords) - 1 do write(validWords[i], ' '); end else begin // Output "NO" if no valid words were found writeln('NO'); end; end. ```

Example

Input: ``` hello i love you ieohuyvl ```

Output: ``` hello i love you ```

Explanation

In the given example, the second string contains the characters "ieohuyvl". By using these characters, we can form the words "hello", "i", "love", and "you" from the first string. Therefore, the program outputs these words separated by spaces.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос