Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Funktsionalnoe_i_logicheskoe_programmirovanie.doc
Скачиваний:
32
Добавлен:
19.01.2023
Размер:
1.75 Mб
Скачать

Вариант 6

1. Имеется 3 вида напитков – сок, кофе и чай, 2 вида первых блюд – суп и пельмени, 3 вида вторых – плов, шницель и гуляш. Ваня сказал «Я возьму первое, второе и напиток», Маша – «Я хочу горячий напиток, пельмени и второе кроме плова», Руслан – «Я хочу сок и какое-нибудь второе или чай и какое-нибудь первое блюдо». Напишите программу, находящую все варианты меню для каждого из ребят.

2. По заданной дате (число и месяц) определить номер школьной учебной четверти или вид каникул.

3. Найти НОД двух целых чисел, используя алгоритм Евклида.

Вариант 7

1. В базе данных имеются записи о девушках в виде фактов девушка(имя, рост, цвет_волос, страна) (придумать базу самостоятельно). Майкл желает познакомиться с блондинками не выше 175 см, Филу нравятся только девушки по имени Мария, а Бобу нужна 1 любая уроженка Франции выше 160 см. Напишите программу, находящую нужных девушек согласно предпочтениям.

2. Проверить, являются ли 3 заданные числа сторонами равнобедренного треугольника.

3. Проверить, является ли заданное число степенью тройки, находя степени тройки до тех пор, пока не произойдет совпадения или превышения заданного числа.

Вариант 8

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

а) все сочетания вида камень-огранка

б) сочетание какого-либо камня со всеми огранками, кроме таблицы

в) все сочетания, в которых рубин огранен только кабошоном или таблицей.

2. Найти разность между максимальным и минимальным числом из трех заданных.

3. Найти число сочетаний для двух заданных чисел .

Вариант 9

1. Имеется 4 вида цветов – розы, гвоздики, астры и лилии, из них розы и лилии являются сильнопахнущими. Лилии бывают только белыми, остальные белыми, красными или розовыми. Напишите программу. находящую

а) все виды цветов

б) какой-то сильнопахнущий вид цветов розового цвета.

2. Написать программу, выводящую по заданному целому числу это число и слово «пингвин», согласованное с числом. («3 пингвина», «11 пингвинов» и т.д.)

3. Вычислить нечетный полуфакториал заданного числа.

Вариант 10

1. Имеются результаты матчей по волейболу – выигрыш, проигрыш или ничья для команд ФИРТа, ФАДа, АТС и ИНЭК (результаты придумать самостоятельно). Проверить, есть ли среди команд

а) выигравшие все матчи

б) не проигравшие ни одного матча

2. Проверить, есть ли среди 4 заданных чисел равные.

3. Найти сумму всех натуральных чисел, кратных 5, не превышающих заданного числа.

Пример выполнения работы

1. Имеется три вида материала – бязь, сатин и поплин, и три вида изделий – простыня, наволочка и пододеяльник. Написать программу, которая находит

а) все сочетания материалов и изделий

б) сочетания какого-нибудь изделия и всех материалов

в) все сочетания, если простыня должна быть только из поплина.

Решение:

Пример выполнения:

а) база знаний и цель:

Пример выполнения:

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

Пример выполнения:

в) база знаний та же самая:

2. Написать программу проверки, что три заданных числа образуют арифметическую прогрессию.

Решение: Три числа будут образовывать арифметическую прогрессию, если выполняется одно из двух условий:

1) разность между первым и вторым равна разности между вторым и третьим (убывающая прогрессия), после этого условия ставим отсечение, так как второе можно уже не проверять;

2) разность между вторым и первым равна разности между третьим и вторым (возрастающая прогрессия).

3. Найти частное от деления двух чисел, используя только операцию вычитания.

Решение:

В данном задании предполагается из делимого вычитать делитель, до тех пор делимое не станет меньше делителя. Ответом будет количество произведенных операций. Поясним на примере, пусть делимое 30, делитель 7:

30-7=23

23-7=16

16-7=9

9-7=2

Последний результат – 2 меньше 7, заканчиваем процесс, ответом будет 4 – количество произведенных вычитаний.

Наш основной предикат будет иметь три аргумента – два выходных и один для результата. Вспомогательный рекурсивный предикат будет иметь 4 аргумента – текущее делимое, делитель, аккумулятор для подсчета выполненных вычитаний и результат. Базу рекурсии пишем так: если текущее делимое меньше делителя, то переписать значение аккумулятора в результат (это достигается просто использованием одинаковых переменных в заголовке) и закончить процесс – отсечение в этом случае запрещает использовать вторую строку для согласования предиката. Шаг рекурсии – уменьшить значение делимого на величину делителя, увеличить значение аккумулятора на единицу, вызвать рекурсивно предикат с новыми аргументами.

Пример выполнения: