Лабораторная работа №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 необходимо вывести «сто двадцать четыре».

 

Контрольные вопросы:

  1. Оператор выбора, формат оператора выбора
  2. Каким образом работает оператор выбора?

 

Лабораторная работа №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.

  1. Дано 100 целых чисел от 1 до 50. Определить, сколько среди них чисел Фибоначчи и сколько чисел, первая значащая цифра в десятичной записи которых-1 или 2.

3. Даны следующие описания переменных: type месяц = 1..12; Описать функцию числодней (гп), определяющую количество дней в месяце m (не високосного года). Даны следующие описания переменных: type letters= set of 'a'., 'z';

  1. Описать процедуру printfa ), печатающую в алфавитном порядке все элементы множества Л, имеющего тип letters .
  2. Даны следующие описания переменных:

const n =10;

type номер= 1 ..п;

матрица = array [номер, номер] of real;

ном - set of номер;

Описать функцию sum ( A , si, s 2), вычисляющую сумму тех элементов матрицы А, номера строк и столбцов которых принадлежат соответственно непустым множествам si и s2 типа ном.

  1. Даны следующие описания переменных:

type деньнедели = (пн, вт, ср, чт, пт, сб, вс);

рабочийдень = пн..пт;

var wd: деньнедели;

t:boolean;

  1. Требуется переменной е присвоить значение 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] - [пн..пт].

  1. He используя дополнительные переменные, поменять местами значения переменных-множеств А и В.
  2. Описать:

а) функцию digits ( n ), подсчитывающую количество различных (значащих) цифр в десятичной записи натурального числа п;

б) процедуру print (п). печатающую в возрастающем порядке все цифры, не входящие в десятичную запись натурального числа п.

10. Дан текст из строчных латинских букв, за которым следует точка. Напечатать:

а) первые вхождения букв в текст, сохраняя их исходный взаимный порядок;

б) все буквы, входящие в текст не менее двух раз;

в) все буквы, входящие в текст по одному разу.

Контрольные вопросы:

  1. Что такое множество?
  2. Как описываются множества?
  3. Операции над множествами?