Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прак. ОП 230115.doc
Скачиваний:
4
Добавлен:
17.11.2019
Размер:
369.66 Кб
Скачать

Контрольные вопросы и задания:

  1. Приведите примеры описаний массивов через разделы описания типов, констант и переменных.

  2. Что представляет собой индекс некоторого элемента?

  3. Можно ли в один и тот же массив записать как вещественные так и целые числа? Почему?

  4. С помощью random, получите случайные числа в диапазоне от -27 до 13.

  5. Охарактеризуйте операции ord и chr.

Рекомендуемая литература: 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.8, 2.3, 2.4, 2.5.

Практическое занятие №5

Тема: Процедуры и функции обработки строк

Цель: создание алгоритмов по обработке строковых данных, закрепление навыков по использованию строковых процедур и функций.

Вид работы: фронтальный.

Время выполнения: 2 часа.

Теоретический материал:

Строковые константы – это последовательность символов, заключенных в апострофы, например, ‘Пример’, ‘АВС 1А’. Переменные строкового типа описываются с помощью служебного слова String:

Var s1, s2: String[N];

При считывании значений строковых переменных с клавиатуры во избежание ошибок следует использовать оператор ввода Readln.

Для обработки строковых данных используется ряд стандартных процедур и функций. При этом Str, Str1,Str2 – переменные типа String, i,j – выражения типа integer;

Length(Str) – функция, вычисляющая длину переменной Str. Результат функции имеет целочисленный тип.

Copy(Str,i,j) – функция, которая выделяет из строки Str подстроку длиной j, начиная с позиции i.

Delete(Str,i,j) – процедура, которая удаляет из строки Str подстроку длиной j, начиная с позиции i.

Insert(Str1,Str2,i) – процедура, которая вставляет в строку Str1 строку Str2, начиная с позиции i.

Задания:

  1. Напишите программу для осуществления конкатенации двух строковых переменных, значения которых вводятся с клавиатуры.

  2. Подсчитайте сколько раз встречается буква 'w' в некоторой строке.

  3. Определите количество слов X в предложении Y. X и Y – строковые переменные, вводятся с клавиатуры.

  4. *Подсчитать количество слов в некотором предложении, начинающихся на букву ‘w’.

  5. *С клавиатуры вводится строка, содержащая как заглавные буквы, так и строчные. Переведите заглавные буквы в строчные и наоборот.

Ход работы: Для каждой задачи в тетрадь оформите блок-схему и листинг программы

1. Конкатенация – сложение строк, т.е. добавление данных одной строки в конец другой. Например:

s1:=’hello, ‘; s2:=’World’;

s3:=s1+s2;

Во второй строке была произведена конкатенация строк, при которой переменной s3 присвоено значение ‘hello, World’. Таким образом, решить задачу можно путём ввода значений двух строковых переменных с клавиатуры оператором readln и сложить их.

2. Для решения задачи вводится строковая переменная s. Открываем цикл по i от 1 до length(s), где length(s) – определение длины строки или количества символов в строке. В цикле проверяем через условный оператор если s[i]=’w’, то k:=k+1. После цикла выводим на экран значение переменной k, т.е. количество символов ‘w’ в предложении s.

3. Вводятся с клавиатуры значения переменных X и Y. Необходимо определить длину слова X, затем организуется цикл от 1 до последнего символа строки Y, в котором происходит проверка условия:

if copy(Y, i, n)=x then k:=k+1;

, где i – номер элемента (параметр цикла) в строке Y, n – длина слова X. С помощью условного оператора из строки Y с позиции i копируется количество символов, равное длине слова X, и подсчитывается сколько раз слово X встречается в строке Y (переменная k).

4. Эта задача является дополнительной. Для определения слов, начинающихся на букву ‘w’, необходимо:

а) определить, не является ли первая бука предложения буквой ‘w’ (используйте условный оператор);

б) открыть цикл для перебора символов в предложении, начиная со второго, по последний (параметрический цикл);

в) проверить, является ли символ с номер i символом ‘w’ и символ с номером i+1 – пробелом (оператор if с использованием логической операции and).

5. Эта задача является дополнительной. У каждого символа есть код, разница в кодах между заглавной и строчной латинской буквой составляет 32 единицы. Следовательно, в цикле проверяем каждый символ и увеличиваем его код на 32 или уменьшаем, в зависимости от того заглавная или строчная буква. Регистр буквы определяется по коду (коды заглавных букв находятся в интервале от 65 до 90, строчных – от 97 до 122) или по принадлежности к диапазону [‘A’; ‘Z’] или [‘a’; ‘z’].