Введите с клавиатуры символьную строку и определите верно ли что она представляет собой правильную
В статье представлены задачи различных типов: подсчет частоты появления символа в строке; поиск подстроки в строке, замена найденной подстроки на другую строку; выделение слов из строки, нахождение числа слов в строке, нахождение минимальной (максимальной) длины слова в строке; сравнение и сортировка строк и др.
Все приведенные программы написаны на языке программирования PascalABC.
С помощью функции копирования и операции конкатенации составить из частей слова “информатика” слово “торт”.
var s, ns: string;
Подсчитать, сколько раз среди символов заданной строки встречается буква “а”.
for i:=1 to length(s) do
if s[i]='а' then k:=k+1;
writeln('Буква “а” встречается ', k, ' раз(а)');
Найти долю пробелов в строке A.
for i:=1 to length(a) do
if a[i]=' ' then k:=k+1;
writeln('Доля пробелов в строке ', d);
Заменить все буквы “а” на буквы “б” в заданной строке.
for i:=1 to length(s) do
Из заданной строки получить новую, повторив каждый символ дважды.
var s, ns: string;
for i:=1 to l do begin
for i:=1 to 2*l do write(ns[i]);
Дано слово. Вывести слово, содержащее те же символы, но расположенные в обратном порядке.
for i:=length(s) downto 1 do write(s[i]);
Проверить, является ли заданное слово палиндромом.
i, l, m, k: integer;
if k=1 then writeln('Слово “', s, '” не палиндром')
else writeln('Слово “', s, '” палиндром');
Строка X состоит из нескольких предложений, каждое из которых кончается точкой, восклицательным или вопросительным знаком. Определить количество предложений в строке X.
for i:=1 to length(x) do
writeln('В строке ', k, ' предложений');
Проверить правильность расстановки скобок в формуле. Расстановку считать правильной, если число открывающих скобок равно числу закрывающих скобок.
i, ko, kz: integer;
for i:=1 to length(f) do begin
if f[i]='(' then ko:=ko+1;
if f[i]=')' then kz:=kz+1;
if ko=kz then writeln('Правильная расстановка скобок')
else writeln('Неправильная расстановка скобок');
Проверить правильность расстановки скобок в формуле. Учитывать порядок скобок.
Способ 1
until (k<0) or (i>length(f));
if k=0 then writeln('Правильная расстановка скобок')
else writeln('Неправильная расстановка скобок');
Способ 2
for i:=1 to length(f) do begin
if (k=0) and (z=0) then
writeln('Правильная расстановка скобок')
writeln('Неправильная расстановка скобок');
В заданной строке подсчитать количество букв латинского алфавита.
write('Введите строку символов: ');
for i:=1 to length(s) do
writeln('В строке “', s, '” ', k, ' латинских букв');
Подсчитать количество цифр в заданной строке.
write('Введите строку символов: ');
for i:=1 to length(s) do
for j:=1 to 10 do
if s[i]=c[j] then k:=k+1;
writeln('В строке “', s, '” ', k, ' цифр');
Из заданной строки получить новую, удалив из нее все пробелы.
var s, ns: string;
for i:=1 to length(s) do
if s[i]<>' ' then begin
for i:=1 to k do write(ns[i]);
Из заданной строки получить новую, удалив все буквы латинского алфавита.
var s, ns: string;
for i:=1 to length(s) do
if (s[i]<'A') or (s[i]>'Z') and (s[i]<'a') or (s[i]>'z') then begin
for i:=1 to k do write(ns[i]);
Подсчитать, сколько раз встречается в тексте заданный фрагмент.
for i:=1 to length(t) do
if copy(t, i, length(f))=f then k:=k+1;
writeln('Фрагмент “', f, '” встречается в тексте ', k, ' раз(а)');
Проверить, является ли частью данного слова слово “сок”. Ответ должен быть “да” или “нет”.
for i:=1 to length(s) do
if copy(s, i, 3)='сок' then f:=1;
if f=1 then writeln('да')
В заданной строке всюду “1999” заменить на “2000”.
for i:=1 to length(a) do
if copy(a,i,4)='1999' then begin
Ввести с клавиатуры строку, содержащую фамилию, имя и отчество. Слова в строке разделять одним пробелом. Получить новую строку, содержащую фамилию и инициалы.
var s, f, i, o: string;
write('Введите фамилию, имя и отчество: ');
Подсчитать количество слов в исходной строке. Слова считать отделенными друг от друга одним пробелом.
for i:=1 to length(s) do
if s[i]=' ' then k:=k+1;
writeln('Количество слов в строке ', k);
Подсчитать количество слов в исходной строке. Слова считать отделенными друг от друга одним или несколькими пробелами.
for i:=1 to length(s) do begin
if (s[i]<>' ') and (f=0) then f:=1;
if (s[i]=' ') and (f=1) then begin
writeln('Количество слов в строке ', k);
Проверить цепочку слов на совпадение первой буквы следующего слова с последней буквой предыдущего слова.
write('Введите слова через пробел: ');
for i:=2 to length(s)-1 do
if f=0 then writeln('Совпадают')
else writeln('Не совпадают');
Определить наименьшую длину слова в заданной строке. Слова считать отделенными друг от друга одним или несколькими пробелами.
Читайте также: