![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Тема 4. Обработка данных строкового типа
Примеры решаемых задач Пример 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.
Темы 5 - 8. Система типов языка Pascal. Перечисляемый тип,
Примеры решаемых задач Пример 1. Составить программу, которая выведет на экран числа от 1 до 9 в случайном порядке. Алгоритм: Будем использовать множество для хранения тех чисел, которые уже выведены на экран. Сначала это множество пустое. Затем девять раз должны повторяться следующие действия: выбор случайного числа (функция Random) осуществляется до тех пор, пока не будет выбрано число, которого нет в множестве; после чего это число выводится на экран и включается в множество. Программа: Program S1; Uses Crt; Type Numbers = 1..9; { тип-диапазон } SetNumbers = Set Of Numbers; { тип–множество чисел (от 0 до 9) } Var Sn: SetNumbers; I, N: Numbers; Begin Clrscr; Randomize; { инициализируем датчик случайных чисел } Sn:= [ ]; { множество выбранных чисел – сначала пустое } For I:= 1 To 9 Do { девять раз повторяем следующие действия: } Begin Repeat { повторяем формирование } N:= random(9) + 1 { целого числа из интервала от 1 до 9} Until not N in Sn; {пока не получим число, которого нет в множестве Sn } Writeln (N); { выводим полученное число на экран } Include(Sn, N) { включаем это число в множество Sn } End; Readln End.
|
||||||
Последнее изменение этой страницы: 2021-04-05; просмотров: 71; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.189.185.42 (0.015 с.) |