Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Тема 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 с.)