Вопрос задан 24.10.2023 в 10:04. Предмет Информатика. Спрашивает Струдзюмова Екатерина.

Напишите, пожалуйста, программу на Free Pascal. Определить, является ли заданная строка

подпоследовательностью исходной строки. Без использования строковых функций. Можно использовать только функцию lenght(s).​
0 0
Перейти к ответам

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

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

var

 s, ss: string;

 ls, lss, i, j: integer;

 flag: boolean;

begin

 readln(s);

 readln(ss);

 i := 1;

 ls := Length(s);

 lss := Length(ss);

 flag := false;

 while i <= ls - lss + 1 do

 begin

   if s[i] = ss[1] then

   begin

     flag := true;

     for j := 1 to lss - 1 do

       if s[i + j] <> ss[j + 1] then

       begin

         i := i + j;

         flag := false;

         break

       end;

     if flag then

     begin

       write('является');

       exit;

     end;

   end;

   i += 1;

 end;

 write('не является');

end.

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

Конечно, вот программа на Free Pascal, которая определяет, является ли заданная строка подпоследовательностью исходной строки без использования строковых функций:

pascal
program SubsequenceCheck; var source, subsequence: string; i, j, sourceLen, subsequenceLen: integer; isSubsequence: boolean; begin // Ввод исходной строки write('Введите исходную строку: '); readln(source); // Ввод строки, которую нужно проверить как подпоследовательность write('Введите строку, которую нужно проверить: '); readln(subsequence); // Получение длины исходной строки и строки-подпоследовательности sourceLen := length(source); subsequenceLen := length(subsequence); // Инициализация флага, который будет указывать, является ли subsequence подпоследовательностью source isSubsequence := false; // Перебираем исходную строку i := 1; j := 1; while (i <= sourceLen) and (j <= subsequenceLen) do begin if source[i] = subsequence[j] then begin // Если символы совпадают, увеличиваем индексы обеих строк i := i + 1; j := j + 1; end else begin // Если символы не совпадают, увеличиваем только индекс исходной строки i := i + 1; end; // Если мы прошли по всей строке-подпоследовательности, она является подпоследовательностью if j > subsequenceLen then begin isSubsequence := true; break; end; end; // Вывод результата if isSubsequence then writeln('Строка "', subsequence, '" является подпоследовательностью строки "', source, '".') else writeln('Строка "', subsequence, '" не является подпоследовательностью строки "', source, '".'); end.

Эта программа сначала запрашивает у пользователя исходную строку и строку, которую нужно проверить как подпоследовательность. Затем она перебирает символы обеих строк и проверяет, является ли вторая строка подпоследовательностью первой. Результат выводится на экран.

0 0

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

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

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

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