Лабораторная работа №4 Решение задачи на условный оператор и оператор выбора
Цель работы: Работа с оператором выбора
Теория:
Оператор CASE работает следующим образом. Сначала вычисляется значение выражение селектора, затем это значение сравнивается последовательно с метками. Если значение селектора совпадает с одной из меток, то выполняется оператор этой метки и управление передается оператору, следующему за оператором CASE. Если значение селектора не совпадает ни с одной меткой, то выполняется оператор следующий за ELSE.
CASE <селектор> OF
Список меток1: оператор1;
Список меток2: оператор2;
……………………………..
Список меток n: операторn;
ELSE оператор n +1;
END;
<селектор>-выражение простого типа, кроме вещественного;
список меток – список значений выражения селектора или одно его значение. Метки являются константами и должны быть такого же типа, что и селектор.
Задание:
1. По введенному дню недели определить, рабочий или выходной день.
2. По введенному номеру месяца определить, название месяца.
3. Для целого числа k от 1 до 9 напечатать значение переменной k римскими цифрами.
4. Для целого числа k от 1 до 99 напечатать фразу " мне k лет ", учитывая при этом , что при некоторых значениях k слово " лет " надо заменить на слово " год " или " года ".
5. Для натурального числа k напечатать фразу " мы нашли k грибов в лесу ", согласовав окончание слова " гриб " с числом k .
6. По введенному номеру месяца определить количество дней в месяце (год считать невисокосным).
7. В старояпонском календаре был принять 60-летний цикл, состоявший из пяти 12-летних подциклов. Подциклы обозначались названиями цвета: зеленый, красный, желтый, белый и черный. Внутри каждого подцикла годы носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. (1984 год-год зеленой крысы - был началом очередного цикла). Написать программу, которая вводит номер некоторого года нашей эры и печатает его название по старояпонскому календарю.
8.Пусть значения функции f (n) равно количеству букв в записи числа п русскими словами: f(1)=4(один),f(3)=3(три), f(42)=42 (сорок два) и т.п. Напечатать все натуральные числа п, меньшие 100, для которых f(n)=n.
9. По введенному натуральному числу п (п 100), обозначающему количество ворон, вывести надпись «На дереве п ворон», где ворона склоняется соответственно п: «ворон», «ворона», «вороны». В случае и, превышающего 100, вывести надпись «Ветка обломилась».
10. Группу детей, приехавшую в пионерский лагерь, распределяют по отрядам следующим образом:
6-7 лет - 5-й отряд,
7-9 лет - 4-й отряд,
9-11 лет - 3-й отряд,
11-13 лет - 2-й отряд,
13-15 (включительно) - 1-й отряд.
Составить программу, которая по вводимому возрасту определяет приезжающего ребёнка в отряд.
11. Написать программу, которая по значению входного параметра (целое число) определяет значение выходного параметра (строка) по следующей зависимости:
12. Написать программу, которая по набранным баллам (1-100) в результате некоторого тестирования, сообщает полученную оценку:
13. Дано целое положительное число п в диапазоне от 1 до 99. Определить его текстовый эквивалент. Например, при n=124 необходимо вывести «сто двадцать четыре».
Контрольные вопросы:
- Оператор выбора, формат оператора выбора
- Каким образом работает оператор выбора?
Лабораторная работа №5 Решение задачи на работу с множеством.
Цель работы: Написание программ с использованием множественного типа данных
Теория:
Множества относятся к структурированным типам. Множество- совокупность различных элементов одинакового типа. В отличие от массива порядок перечисления элементов во множестве не имеет значения, и количество элементов заранее
не определено. Количество элементов, входящих во множество, может меняться от 0 до 256. Значения множества задаются в квадратных скобках перечислением элементов через запятую.
Например:
[ ]- пустое множество;
[2, 3, 7,11] - множество из целых чисел;
['а', 'с', Т]; - множество из символов;
[1..10] - множество из элемента ограниченного типа;
[k,.2*k] - элемент множества задастся текущим значением переменной k.
Множество описывается следующим образом:
<имя>:8ЕТ OF <тип компонент>;
<тип компонент>- является базовым типом, может быть простым типом, кроме вещественного.
Множество можно задавать 2-мя способами.
1) сначала определить в разделе TYPE, затем в разделе
VAR
2) сразу определить в разделе VAR.
Значениями множества может быть только значения базового типа.
Операции над множествами
Для получения новых множественных значений используется 3 операции: объединение, пересечение и разность множеств.
1) Объединение: обозначается знаком «+». Объединением двух множеств является множество, составленное из элементов обоих множеств.
[2,7,3]+[1.7,4,5,2]=[2,7,3,1,4,5]
2) Пересечением двух множеств является множество, состоящее из элементов, одновременно входящих в оба множества. Обозначается знаком «*».
3) Разностью двух множеств является множество, состоящее из элементов 1-го множества, которые не являются элементами второго множества. Обозначается знаком « -.». [2,7,3] -[1,7,4,5,2] =[3]
Задание:
1. Даны следующие описания переменных:
type строка= pasked array [1..100]of char; Описать функцию счет(в), подсчитывающую общее количество цифр и знаков '+','-' и '*', входящих в строку s.
- Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значащая цифра в десятичной записи которых-1 или 2.
3. Даны следующие описания переменных: type месяц = 1..12; Описать функцию числодней (гп), определяющую количество дней в месяце m (не високосного года). Даны следующие описания переменных: type letters= set of 'a'., 'z';
- Описать процедуру printfa ), печатающую в алфавитном порядке все элементы множества Л, имеющего тип letters .
- Даны следующие описания переменных:
const n =10;
type номер= 1 ..п;
матрица = array [номер, номер] of real;
ном - set of номер;
Описать функцию sum ( A , si, s 2), вычисляющую сумму тех элементов матрицы А, номера строк и столбцов которых принадлежат соответственно непустым множествам si и s2 типа ном.
- Даны следующие описания переменных:
type деньнедели = (пн, вт, ср, чт, пт, сб, вс);
рабочийдень = пн..пт;
var wd: деньнедели;
t:boolean;
- Требуется переменной е присвоить значение true, если wd-рабочий день, и значение false иначе. Какими из следующих операторов правильно решается эта задача?
a) t:= wd in рабочийдень;
b) t:= wd in [рабочийдень];
c) t:= wd = рабочийдень;
d) t:= wdin [пн..пт];
e) t:= [wd]<=[nH..nr];
f) t:= [wd] - [пн..пт].
- He используя дополнительные переменные, поменять местами значения переменных-множеств А и В.
- Описать:
а) функцию digits ( n ), подсчитывающую количество различных (значащих) цифр в десятичной записи натурального числа п;
б) процедуру print (п). печатающую в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа п.
10. Дан текст из строчных латинских букв, за которым следует точка. Напечатать:
а) первые вхождения букв в текст, сохраняя их исходный взаимный порядок;
б) все буквы, входящие в текст не менее двух раз;
в) все буквы, входящие в текст по одному разу.
Контрольные вопросы:
- Что такое множество?
- Как описываются множества?
- Операции над множествами?