Удалить латинские буквы из текста. - Pascal ABC
Формулировка задачи:
Тема такая: Нужна прога которая при вводе информации удаляет все латинские буквы. Я вот сделал код:
В итоге при выполнении пишет что цикл for должен описываться в заголовке цикла, и пишет еще Индекс находится вне границ массива. Если например убрать эти строки for e:=1 to length(s) do
if s[e] in ['a'..'z'] then delete(s,e,1);
То работает и фильтрует только большие буквы.
Листинг программы
- program p3;
- var
- i,e:byte;
- s:string;
- begin
- write('Введите текст:');
- readln(s);
- for i:=1 to length(s) do
- if s[i] in ['A'..'Z'] then delete(s,i,1);
- for e:=1 to length(s) do
- if s[e] in ['a'..'z'] then delete(s,e,1);
- write('Изменённый текст: ',s);
- writeln;
- end.
Решение задачи: «Удалить латинские буквы из текста.»
textual
Листинг программы
- var i,e:byte;
- s:string;
- begin
- write('Введите текст:');
- readln(s);
- for i:=length(s) downto 1 do
- if s[i] in ['A'..'Z','a'..'z'] then delete(s,i,1);
- writeln('Изменённый текст: ',s);
- end.
Объяснение кода листинга программы
В данном коде происходит следующее:
- Объявляются переменные: i, e - оба типа byte; s - тип string.
- Выводится сообщение
Введите текст:
. - Считывается введенный пользователем текст и сохраняется в переменную s.
- Запускается цикл for, который проходит по каждому символу во входной строке, начиная с индекса length(s) и до 1 (включительно).
- Внутри цикла проверяется, является ли текущий символ латинской буквой. Если да, то он удаляется из строки с помощью функции delete(s,i,1), где i - текущий индекс символа.
- После завершения цикла выводится измененная строка с помощью функции writeln(s).
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д