Примеры решаемых задач

Пример 1. Составить программу, которая определит, сколько раз заданная буква встречается во введенном предложении.

Программа:

Program S1;

Uses Crt;

Var P: String [80]; { предложение }

B: Char; { буква }

K, N, M: Integer;

Begin

Clrscr;

Write (‘Введите предложение ’);

Readln (P); { ввели предложение }

Write (‘Введите букву ’);

Readln (B); { ввели букву }

M:=0; { обнулили счетчик заданных букв }

N:= Length (P); { определили длину предложения }

For K:= 1 To N Do { перебираем все символы предложения

от первого до последнего }

If P[K]=B { если К-ый символ строки Р равен заданной букве}

Then M:= M+1; { увеличиваем счетчик букв }

Writeln (‘Буква ’, B, ‘ встречается в предложении ’, M, ‘ раз’);

{ вывели результат на экран }

Readln

End.

Пример 2. Составить программу, которая заменит во введенной строке один заданный символ на другой.

Программа:

Program S2;

Uses Crt;

Var P: String [80]; { строка}

B1, B2: Char; { буквы }

K, N, M: Integer;

Begin

Clrscr;

Write (‘Введите строку текста ’);

Readln (P); { ввели исходную строку }

Write (‘Введите символ, который надо заменить ’);

Readln (B1); { ввели первый символ }

Write (‘На что заменять? ’);

Readln (B2); { ввели второй символ }

N:= Length (P); { определили длину предложения }

For K:= 1 To N Do { перебираем все символы предложения

от первого до последнего }

If P[K]=B1 { если К-ый символ строки Р равен первому символу }

Then P[K]:= B2; { записываем на К-е место в строку Р второй символ }

Writeln (‘Получилась строка: ’, P); { вывели результат на экран }

Readln

End.

Пример 3. Составить программу, которая определит количество слогов во введенном слове.

Модель: количество слогов в слове равно количеству гласных букв в нем. Следовательно, нужно вычислить количество гласных букв во введенной строке.

Программа:

Program S3;

Uses Crt;

Const Glas = ‘АЕЁИОУЫЭЮЯаеёиоуыэюя’; { константа содержит все

гласные буквы }

Var W: String [20]; { слово }

K, N, M: Integer;

Begin

Clrscr;

Write (‘Введите слово ’);

Readln (W); { ввели слово }

N:= Length (W); { определили длину слова }

M:= 0; { обнулили счетчик слогов }

For K:= 1 To N Do { перебираем все буквы слова от первого

до последнего }

If Pos (W[K], Glas) > 0 { если К-ая буква слова W – гласная

(т.е.содержится в константе Glas) }

Then M:= M+1; { увеличиваем счетчик слогов }

Writeln (‘В слове ’, M, ‘ слогов’); { вывели результат на экран }

Readln

End.

Пример 4. Составить программу, которая удаляет все пробелы из введенной строки.

Программа:

Program S4;

Uses Crt;

Var S: String [80]; { исходная строка }

K: Integer;

Begin

Clrscr;

Write (‘Введите строку ’);

Readln (S); { ввели строку }

While Pos(‘ ‘, S)>0 Do { пока в строке S есть пробелы }

Begin

K:= Pos (‘ ‘, S); { определили позицию первого пробела

в строке S }

Delete (S, K, 1) { удалили пробел из строки S }

End;

Writeln (‘Получилась строка ’, S); { вывели результат на экран }

Readln

End.

Пример 5. Составить программу, которая определяет количество слов во введенном предложении и выводит их на экран в столбик, если слова разделены произвольным набором разделителей.

Модель: Разделитель – пробел либо знак препинания. Условие начала слова: на i-м месте находится разделитель, на i+1 – буква (т.е. не разделитель). Условие конца слова: на i-м месте находится не разделитель (т.е. буква), на i+1 – разделитель. Исключение могут составлять первое и последнее слова предложения. Применим искусственный прием: допишем в начало и конец введенного предложения по одному пробелу (пробел – это один из разделителей).

Алгоритм: Будем рассматривать символы парами, запоминать позицию в которой слово началось. Если слово закончилось, необходимо увеличить счетчик слов, выделить слово из предложения и вывести его на экран.

Программа:

Program S5;

Uses Crt;

Const R = ‘.,!?-():;’; { записали в константу все разделители }

Var S, W: String; { S – предложение, W – очередное слово }

N, K, L, A, B: Integer;

Begin

ClrScr;

Write (‘Введите предложение ’);

Readln (S); { ввели предложение }

S:= ‘ ‘+S+’ ‘; { дописали пробелы в начало и конец предложения }

N:= 0; { обнулили счетчик слов }

For K:= 1 To Length (S) - 1 Do { перебираем все символы предложения от первого до предпоследнего }

Begin

A:= Pos(S[K], R); { входит ли K-й символ в разделители}

B:= Pos(S[K+1], R); {входит ли K+1-й символ в разделители}

If (A>0) And (B=0) { если слово началось }

Then L:= K +1; { запоминаем позицию начала слова }

If (A=0) And (B>0) { если слово закончилось }

Then Begin

N:= N+1; { считаем его }

W:= Copy (S, L, K-L+1); { выделяем слово }

Writeln (W) { выводим слово на экран }

End

End;

Writeln (‘В предложении ’, N, ‘ слов ’); { выводим количество слов}

Readln

End.

Контрольные задания

4.1. Составить программу, которая удалит из введенной строки все разделители.

4.2. Составить программу, которая удалит из введенной строки все цифры.

4.3. Составить программу, которая определит, является ли перевертышем введенное

a. слово;

b. предложение.

4.4. Составить программу, которая вводит предложение и выводит те его слова, которые:

c. имеют заданную длину;

d. имеют длину больше заданной;

e. имеют длину меньше заданной;

f. начинаются с заданной буквы;

g. заканчиваются на заданную букву.

4.5. Составить программу, которая заменит во введенном предложении одно слово на другое (слова могут разделяться произвольным набором разделителей).

4.6. Составить программу, которая вычислит сумму чисел (не цифр!) во введенном предложении.

4.7. Составить программу, которая вводит две строки и выводит символы, которые содержатся как в первой, так и во второй строке.

4.8. Составить программу, которая вводит две строки и выводит символы первой строки, которых нет во второй.

4.9. Составить программу, которая вводит строку и заменяет в ней все группы пробелов на один пробел (т.е. удаляет все лишние пробелы).

4.10. Составить программу, которая вводит предложение и находит самое длинное слово в нем.

4.11. Составить программу, которая вводит предложение и находит самое короткое слово в нем.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: