Вопрос задан 29.07.2023 в 11:22.
Предмет Информатика.
Спрашивает Матюшёнок Стефания.
Pascal ABC Дана строка, состоящая из маленьких английских букв и цифр. Удалить гласные буквы в
конце строки от последней не гласной буквы или цифры (конечные гласные буквы). Вывести преобразованную строку и количество удаленных символовОтветы на вопрос
Отвечает Оганян Михаил.
Const
gl='aeiouy';
var
s:string;
i,l,n,p:integer;
begin
Write('Введите строку: '); Readln(s);
l:=Length(s);
for i:=l downto 1 do
if pos(s[i],gl)=0 then begin
p:=i+1; n:=l-p+1;
Delete(s,p,n);
Writeln(s); Writeln('Удалено символов: ',n);
break
end
end.
gl='aeiouy';
var
s:string;
i,l,n,p:integer;
begin
Write('Введите строку: '); Readln(s);
l:=Length(s);
for i:=l downto 1 do
if pos(s[i],gl)=0 then begin
p:=i+1; n:=l-p+1;
Delete(s,p,n);
Writeln(s); Writeln('Удалено символов: ',n);
break
end
end.
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Для решения этой задачи в Pascal ABC (или Pascal) нужно выполнить следующие шаги:
- Написать функцию, которая будет проверять, является ли символ гласной буквой.
- Написать основную программу, которая будет считывать строку, обрабатывать ее и выводить результат.
Вот код на Pascal ABC:
pascalfunction IsVowel(ch: char): boolean; const Vowels: set of char = ['a', 'e', 'i', 'o', 'u']; begin Result := ch in Vowels; end; procedure RemoveTrailingVowels(var str: string; var removedChars: integer); var i, lastNonVowelIndex: integer; begin removedChars := 0; lastNonVowelIndex := -1; // Найдем индекс последней не гласной буквы или цифры for i := Length(str) downto 1 do begin if not (IsVowel(str[i]) or (str[i] in ['0'..'9'])) then begin lastNonVowelIndex := i; Break; end; end; // Удаляем конечные гласные буквы if lastNonVowelIndex >= 1 then begin removedChars := Length(str) - lastNonVowelIndex; if removedChars > 0 then Delete(str, lastNonVowelIndex + 1, removedChars); end; end; var inputStr: string; removedCharsCount: integer; begin Write('Введите строку из маленьких английских букв и цифр: '); Readln(inputStr); RemoveTrailingVowels(inputStr, removedCharsCount); Writeln('Преобразованная строка: ', inputStr); Writeln('Количество удаленных символов: ', removedCharsCount); end.
Как это работает:
- Функция
IsVowelпроверяет, является ли переданный символ гласной буквой. - Процедура
RemoveTrailingVowelsнаходит индекс последней не гласной буквы или цифры в строке, а затем удаляет все символы справа от этого индекса. - Основная программа считывает входную строку, вызывает процедуру
RemoveTrailingVowelsи выводит результат на экран.
Пример работы программы:
Введите строку из маленьких английских букв и цифр: abcd1234aeiou Преобразованная строка: abcd1234 Количество удаленных символов: 5
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
