Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 81; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.191.68.112 (0.006 с.) |