- •А.И. Газейкина Основы структурного программирования на языке Паскаль
- •Тема 1. Линейные программы 4
- •Некоторые стандартные функции языка Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 2. Разветвляющиеся программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 3. Циклические программы Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 4. Обработка данных строкового типа Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 5. Система типов языка Паскаль Краткое изложение теоретического материала
- •Тема 6. Перечисляемый тип Краткое изложение теоретического материала
- •Тема 7. Тип-диапазон Краткое изложение теоретического материала.
- •Тема 8. Множество (множественный тип) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 9. Массивы в языке Паскаль Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 10. Графика в языке Паскаль Краткое изложение теоретического материала
- •Контрольные задания
- •Тема 11. Подпрограммы в языке Паскаль Краткое изложение теоретического материала
- •Процедуры в языке Турбо Паскаль
- •Функции в языке Турбо Паскаль
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 12. Тип данных запись (Record) Краткое изложение теоретического материала
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 13. Работа с файлами в языке Паскаль Краткое изложение теоретического материала
- •Текстовые файлы
- •Примеры решаемых задач
- •Типизированные файлы
- •Примеры решаемых задач
- •Контрольные задания
- •Тема 14. Динамические переменные в языке Паскаль Краткое изложение теоретического материала Статические и динамические переменные
- •Указатели
- •Типизированные указатели
- •Нетипизированные указатели
- •Динамические структуры данных
- •Примеры решаемых задач
- •Контрольные задания
- •Список литературы
Примеры решаемых задач
Пример 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.