Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+лабораторные работы П2.docx
Скачиваний:
19
Добавлен:
01.07.2025
Размер:
1.09 Mб
Скачать

Лабораторная работа №4 Тема: Решение задач на условный оператор и оператор выбора

Цель: получение навыков в использовании условного оператора в программе и оператора варианта для реализации разветвляющихся алгоритмов.

Краткие сведения:

Условные операторы позволяют выбирать для выполнения те или иные части программы в зависимости от некоторых условий.

Для задания подобного рода разветвляющихся вычислительных процессов в языках программирования существуют условные операторы. Рассмотрим полный условный оператор Паскаля:

if B then S1 else S2

Здесь if (если), then (то) и else (иначе) являются служебными словами, В – логическое выражение, а S1 и S2 – операторы.

Выполнение такого условного оператора в Паскале сводится к выполнению одного из входящих в него операторов S1 или S2: если заданное в операторе условие выполняется (логическое выражение В принимает значение true), то выполняется оператор S1, в противном случае выполняется оператор S2.

Сокращенная форма записи условного оператора в Паскале:

if B then S

Правило выполнения сокращенного условного оператора Паскаля достаточно очевидно: если значение логического выражения В есть true, товыполняется оператор S; в противном случае никаких иных действий не производится.

В языке программирования Паскаль в условном операторе между then и else, а также после else по синтаксису может стоять только один оператор. Если же при выполнении (или невыполнении) заданного условия надо выполнить некоторую последовательность действий, то их надо объединить в единый, составной оператор, т.е. заключить эту последовательность действий в операторные скобки begin... end (это важно!).

Оператор выбора Паскаля

Оператор выбора Паскаля позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит ключ выбора – выражение любого порядкового типа.

Структура оператора выбора в Паскале такова:

Case <ключ_выбора> of <список_выбора> [else <оператор_иначе>] end

Здесь case, of, else, end – зарезервированные слова (случай, из, иначе, конец);

  • <ключ_выбора> - выражение порядкового типа;

  • <список_выбора> - одна или более конструкций вида:

    • <константа_выбора>: <оператор>;

  • <константа_выбора> - константа того же типа, что и выражение

    • <ключ_выбора>;

<операторы> - произвольные операторы Паскаля.

Оператор выбора Паскаля работает следующим образом. Вначале вычисляется значение выражения <ключ_выбора>, а затем в последовательности <список_выбора> отыскивается константа, равная вычисленному значению. Выполняется оператор, который следует за найденной константой, после чего оператор выбора завершает работу. Если в списке выбора не будет найдена константа, соответствующая вычисленному значению ключа выбора, управление передается операторам, стоящим за словом else. Часть else <оператор_иначе> можно опустить, тогда при отсутствии в списке выбора нужной константы не будет выполнено никаких действий, и оператор выбора просто завершит свою работу.

Пример программы с использованием Case of

Program dni_nedeli;

Var n: byte;

Begin

Readln(n);

Case n of

1: writeln(‘понедельник ’);

2: writeln(‘вторник ’);

3: writeln(‘среда ’);

4: writeln(‘четверг ’);

5: writeln(‘пятница ’);

6: writeln(‘суббота ’);

7: writeln(‘воскресенье’);

else writeln(‘дня недели с номером’, n,’нет’);

  end;

end.

Задания:

Вариант №1.

1.Дано четырехзначное целое число А. Ответить на вопрос, есть ли в записи этого числа цифра 5.

2. Дано целое число n, соответствующее количеству углов геометрической фигуры. Составить программу, которая по введенному числу n печатает название фигуры (например, при n=3 программа напечатает «треугольник», при n=5 – «пятиугольник», при n>8 – «многоугольник»). В случае если вводится число меньше 2, выводится сообщение об ошибке.

Вариант №2.

1. Студент сдал четыре экзамена и получил соответственно a, b, c, d баллов по каждому из экзаменов. Ответить на вопрос, средний балл студента меньше 8 или нет.

2. Даны два действительных положительных числа х и у. Арифметические действия над числами пронумерованы (1 — сложение, 2 — вычитание, 3 — умножение, 4 — деление). Составить программу, которая по введенному номеру выполняет то или иное действие над числами.

Вариант №3.

1. Дано четырехзначное целое число А. Ответить на вопрос, есть ли в записи этого числа цифра 0.

2 Дано целое число в диапазоне 20 – 69, определяющее возраст (в годах). Вывести строку – словесное описание указанного возраста, обеспечив правильное согласование числа со словом «год», например: 20 – «двадцать лет», 32 – «тридцать два года», 41 – «сорок один год».

Вариант №4.

1.Дано трехзначное целое число А. Ответить на вопрос, есть ли в записи этого числа четные цифры.

2.Вводится номер месяца 2006 года. Определить сколько дней в этом месяце.

Вариант №5.

1.Имеются три человека: у одного вес х пудов, у второго – у фунтов, у третьего – z кг. Кто из них самый тяжелый.

2. Локатор ориентирован на одну из сторон света («С» – север, «З» – запад, «Ю» – юг, «В» – восток) и может принимать одну из трех цифровых команд: -1 – поворот налево, 1 – поворот направо, 2 – поворот на 180 градусов. Дан символ C – исходная ориентация локатора и число N – посланная ему команда. Вывести ориентацию локатора после выполнения команды.

Вариант №6.

1.Дано четырехзначное целое число А. Ответить на вопрос, превосходит или нет сумма цифр этого числа данное число Х.

2. Пусть элементами прямоугольного равнобедренного треугольника являются:

1) катет а;

2) гипотенуза b;

3) высота h, опущенная из вершины прямого угла на гипотенузу;

4) площадь S.

Составить программу, которая по заданному номеру и значению соответствующего элемента вычисляла бы значение всех остальных элементов треугольника.

Вариант №7.

1.Имеется 3 магазина, в каждом имеется один и тот же товар одного и того же сорта, но разной стоимости: в первом магазине – а руб., во втором – в руб., в третьем – с руб. Определить, в каком магазине товар самый дешевый.

2.Имеется N корзин количеством от 30 до 50. Дать этому количеству корзин правильное наименование. (Использовать оператор Case).

Вариант №8.

1. Дано трехзначное целое число А. Ответить на вопрос, равны ли первая и последняя цифра этого числа.

2.Имеется стадо из N слонов от 15 до 30 штук. Дать числу N правильное наименование от слова «слон». (Использовать оператор Case).

Вариант №9.

1. Дано трехзначное целое число А. Ответить на вопрос, равны ли последняя и средняя цифра этого числа.

2.В Библиотеке имеется N книг от 200 до 300. Дать этому количеству книг правильное наименование от слова «книга». (Использовать оператор Case).

Вариант №10.

1. Дано трехзначное целое число А. Ответить на вопрос, равны ли первая и средняя цифра этого числа.

2. Для целого числа А: от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить на слово «год» или «года». Например, 11 лет, 22 года, 51 год.

Вариант №11.

1. Даны четыре числа a, b, c, d. Вычислить значение .

2. Написать программу, которая бы по введенному номеру единицы измерения (1 — дециметр, 2 — километр, 3 — метр, 4 — миллиметр, 5 — сантиметр) и длине отрезка L выдавала бы соответствующее значение длины отрезка в метрах.

Вариант №12.

1. Вычислить значение выражения , значения a, b, c, d вводятся с клавиатуры.

2.Человек родился в 1989 году. Какой это был знак Зодиака, если известно, что 2006 год – год Собаки, а знаки Зодиака идут в следующем порядке: Крыса, Бык, Тигр, Кот, Дракон, Змея, Лошадь, Коза, Обезьяна, Петух, Собака, Свинья.

Вариант №13.

1. Вычислить значение выражения , значения a, b, х вводятся с клавиатуры.

2. Пусть элементами равностороннего треугольника являются:

1) сторона а;

2) площадь S;

3) высота h;

4) радиус вписанной окружности r;

5) радиус описанной окружности R.

Вариант №14.

1. Вычислить значение выражения , значения a, b, c, d вводятся с клавиатуры.

2. Дано натуральное число A (A<20), определяющее сумму денег в рублях. Дать для этого числа наименование: "рубль", "рубля", "рублей".

Вариант №15.

1. Вычислить значение выражения , значения a, b, c, d вводятся с клавиатуры.

2. С клавиатуры вводится два целых числа, обозначающих возраст человека и его пол (1 – мужской, 2 –женский). Составить программу, которая в зависимости от введенных данных определяет принадлежность человека к определенной группе: от 0 до 13 – мальчик (девочка); от 14 до 20 – юноша (девушка); от 21 до 70 – мужчина (женщина); более 70 – старец (старушка).

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

1. Нарисовать синтаксическую диаграмму оператора IF.

2. Нарисовать синтаксическую диаграмму оператора CASE.

3. Какие из приведенных ниже операторов являются неправильными и почему?

а) IF A<B THEN A:=A*A ELSE B:=B*B ;

б) IF X AND Y THEN S:=S+1 ; ELSE S:=S-1 ;

в) IF R<>M THEN K=M ;

г) IF 5 THEN S:=S+1 ;

д) IF (A = B) AND P THEN P:=P+10.5 ;

4. Определить, что будет напечатано в результате выполнения следующих операторов :

K := 40; CASE K MOD 4 OF

0 : WRITELN (' K = 4M ');

1 : WRITELN (' K = 4M + 1');

2 : WRITELN (' K = 4M + 2');

3 : WRITELN (' K = 4M + 3');

END;

5. Определите, всегда ли оператор

IF B THEN S1 ELSE S2;

эквивалентен оператору

CASE B OF

TRUE : S1;

FALSE : S2;

END;

6. Что произойдет, если значение селектора не совпадает ни с одной из констант?