7.1 Задания для лабораторной работы на тему: работа со списками
Вариант №1
Написать программу вычисления номера элемента в списке.
Вариант №2
Написать программу замены всех вхождений элемента в список на заданную константу.
Вариант №3
Написать программу замены N-го элемента в списке на заданную константу.
Вариант №4
Написать программу удаления N-го элемента в списке.
Вариант №5
Написать программу удаления M элементов из списка, начиная с N-ой позиции.
Вариант №6
Написать программу объединения двух списков в третий так, чтобы нечетные (по номеру) элементы были из первого cписка, а четные - из второго.
Вариант №7
Написать программу разделения списка на два так, чтобы нечетные (по номеру) элементы были в первом cписке, а четные - во втором.
Вариант №8
Написать программу разделения списка на два так, чтобы в первом cписке были элементы с первого до N-го, а во втором - с N+1 до последнего.
Вариант №9
Написать программу разделения списка на два так, чтобы в первом списке были элементы с первого до заданного значения элемента, а во втором - остальные.
Вариант №10
Написать программу вставки заданного элемента в список на N-ую позицию.
Вариант №11
Написать программу замены элементов списка, номера которых заданы другим списком, на произвольную константу.
Вариант №12
Написать программу удаления из списка всех вхождений заданного элемента.
Вариант №13
Написать программу удаления элементов из списка, номера которых заданы другим списком.
Вариант №14
Написать программу объединения двух списков в третий так, чтобы одинаковые элементы из разных списков не повторялись.
Вариант №15
Написать программу инвертирования списка.
Вариант №16
Написать программу вставки в список другого списка, начиная с N-ой позиции.
Вариант №17
Написать программу определения номера позиции в списке, с которого начинается заданный подсписок.
Вариант №18
Написать программу замены m элементов списка, начиная с N-ой позиции, на произвольную константу.
Вариант №19
Написать программу подсчета количества вхождений элемента в список.
Вариант №20
Написать программу вычисления числа элементов списка, после заданного.
Вариант №21
Написать программу вычисления числа элементов списка, после N-ой позиции.
Вариант №22
Написать программу замены всех четных (по номеру) элементов списка, на произвольную константу.
Вариант №23
Написать программу замены всех нечетных (по номеру) элементов списка, начиная с N-ой позиции, на произвольную константу.
Вариант №24
Написать программу вставки m раз в список произвольной константы, начиная с N-ой позиции.
Вариант №25
Написать программу создания нового списка, путем дублирования всех элементов исходного списка.
Вариант №26
Написать программу разделения исходного списка по N-му элементу и соединения полученных частей в новый список таким образом, чтобы первая часть стала второй, а вторая - первой.
Вариант №27
Написать программу разделения исходного списка на три части: с первого по N-ый элемент, с N+1 по M-ый и с M+1 элемента до конца списка.
Вариант №28
Написать программу удаления из исходного списка N элементов с конца списка.
Вариант №29
Написать программу замены на заданную константу N элементов исходного списка, считая с конца списка.
Вариант №30
Написать программу дописывания заданной константы N раз в конец списка.
7.2 Задания для лабораторной работы на тему: решение логических головоломок
Вариант №1
Три друга заняли первое, второе и третье места на школьной олимпиаде. Друзья учатся в разных классах (7, 8 и 9), зовут их по-разному, и они участвовали в олимпиадах по разным предметам. Алексей участвовал в олимпиаде по химии, и он выступил лучше, чем девятиклассник. Семиклассник Сергей выступил лучше участника олимпиады по физике. Участник олимпиады по математике занял первое место. Одного из них зовут Иван. Кто из них в каком классе учится, и кто, в какой олимпиаде участвовал?
Вариант №2
Трое хищников – волк, медведь и лиса пошли на охоту. У них разный возраст и они охотились на разную дичь. Медведь любит рыбу, и поймал дичи больше, чем тот, кому 2 года. Трехлетний волк поймал больше, чем любитель зайцев. Тот, кто любит кур, поймал больше всех. Одному из них 4 года. Определите, у кого какой возраст и кто какую дичь предпочитает.
Вариант №3
Три друга – Иван, Дмитрий и Степан преподают биологию, физику и химию в школах Москвы, Санкт-Петербурга и Киева. Иван – не в Москве, Дмитрий – не в Санкт-Петербурге. Москвич не преподаёт физику. Тот, кто живёт в Санкт-Петербурге, преподаёт химию. Дмитрий не преподаёт биологию. Кто, в каком городе живёт и что преподаёт?
Вариант №4
Три ученика – Коля, Миша и Андрей сидят в классе за партами первого ряда. У них разный цвет волос и они любят разные предметы. Миша любит физику и сидит ближе к классной доске, чем рыжий. Блондин Коля сидит ближе к классной доске, чем любитель литературы. Тот, кто любит математику, сидит за первой партой. Один из них брюнет. Определите, у кого какой цвет волос, и кто какой предмет предпочитает.
Вариант №5
Три друга заняли первое, второе и третье места в соревнованиях универсиады. Друзья разной национальности, зовут их по-разному, и любят они разные виды спорта. Майкл предпочитает баскетбол и играет лучше, чем американец. Израильтянин Саймон играет лучше теннисиста. Игрок в крикет занял первое место. Кто из них австралиец? Каким видом спорта увлекается Ричард?
Вариант №6
Кондратьев, Давыдов и Фёдоров живут на одной улице. Один из них - столяр, другой – маляр, третий – водопроводчик. У столяра самый большой дом из троих и у него нет автомобиля. Федорову нравится машина Кондратьева и его дом меньше, чем у маляра. Определите, кто чем занимается, у кого есть машина.
Вариант №7
Браун, Гриффит, Клеменс и Грин - четверо студентов университетов разных стран приехали на международный фестиваль молодёжи и студентов. Один из них – канадец, второй – американец, третий – англичанин, четвёртый – австралиец. Браун и Клеменс были на концерте, в котором принимал участие их знакомый англичанин. Гриффит и австралиец знакомы, так как пели дуэтом под аккомпанемент их знакомого американца. Австралиец пригласил к себе в гости своего знакомого Грина и собирается пригласить своего знакомого Брауна. Определите национальности студентов.
Вариант №8
В одном театре работают четыре актёра: Смирнов, Снегов, Морев и Никитин. Один из них играет роль Отелло, другой – короля Лира, третий – Ромео, четвёртый – Гамлета. Смирнов – не Отелло и не Гамлет. Морев – не Ромео и не Отелло. Никитин – не Гамлет, не Отелло. Снегов не играет ни Гамлета, ни Ромео. Если Морев играет Гамлета, то Смирнов не играет короля Лира. Кто из актёров кого играет?
Вариант №9
Пол, Джон и Джордж – три музыканта. Один из них – гитарист, другой – ударник, третий – пианист. Каждый из них выступает в составе одной из рок-групп - «Ромашка», «Василёк» или «Колокольчик». Тот, кто выступает в составе «Ромашки», не гитарист. Джон выступает в составе не «Василька». Пол – выступает в составе не «Ромашки». Ударник выступает в составе рок-группы «Василёк». Джон не пианист. На каком инструменте играет каждый из трёх музыкантов, и в составе какой рок-группы выступает?
Вариант №10
Лена, Коля, Марина и Саша работают на одном предприятии конструктором, технологом, экономистом и дизайнером. Лена и Марина учились вместе с экономистом. Коля и дизайнер в обеденный перерыв часто играют в теннис с технологом. Дизайнер постоянно сталкивается по работе с Леной и иногда с Сашей. Кто кем работает?
Вариант №11
Трое мальчиков Костя, Фома и Марат дружили с тремя девочками – Женей, Светой и Мариной. Но вскоре компания разделилась на пары, потому что оказалось, что Света ненавидит ходить на лыжах. Костя, Женин брат, часто катается со своей подружкой на лыжах. А Фома бежит на свидание к Костиной сестре. С кем же проводит время Марат?
Вариант №12
В комнате женского общежития живут четыре девушки: Мира, Мона, Мод и Мэри. Как-то раз они собрались все вместе, причём каждая занималась своим делом. Одна делала маникюр, другая – расчёсывала волосы, третья – прихорашивалась перед зеркалом, а четвёртая – читала. Точно о них известно следующее: Мира не делала маникюр и не читала. Мод не прихорашивалась перед зеркалом и не делала маникюр. Мэри не читала и не занималась маникюром. Мона не читала и не прихорашивалась перед зеркалом. Если Мод читала, то Мэри прихорашивалась перед зеркалом. Кто из девушек делала маникюр, кто расчёсывала волосы, кто прихорашивалась перед зеркалом, а кто читала?
Вариант №13
«Динамо», «Торпедо» и «Спартак» - команды-участники розыгрыша кубка по футболу из Челябинска, Краснодара и Самары. Команда из Челябинска забила меньше всех мячей. «Динамо» забила мячей больше, чем команда из Краснодара, а «Торпедо» меньше «Спартака». За какие города выступают названные команды?
Вариант №14
В одном купе поезда ехали три пассажира – мистер Джонс, мистер Смит и мистер Робинсон. Один из них житель Чикаго, другой живёт в Детройте, третий – в Окленде. За разговорами выяснилось, что мистер Джонс из Чикаго старше, чем тот, у кого нет детей. Житель Детройта самый старый. Мистер Смит, у которого двое детей, старше, чем житель Окленда. У одного из них только один ребенок. Определите, кто из какого города и у кого сколько детей.
Вариант №15
Билл, Джон и Ричард играют в одном оркестре. Они владеют разными музыкальными инструментами и выступают в костюмах разных цветов. Джон играет на саксофоне и находится ближе к дирижёру, чем тот, кто выступает в белом костюме. Билл на концерт одевает чёрный костюм и сидит ближе к дирижёру, чем флейтист. Альтист сидит к дирижёру ближе всех. Один из друзей приходит на концерт в костюме синего цвета. Определите, кто какими инструментами владеет, и в каком костюме выступает.
Вариант №16
Петров, Семёнов и Арбузов – пилот, штурман и бортинженер. Один из них летает на самолёте ТУ-134, другой на АН-24, третий на ИЛ-76. Тот, кто летает на ТУ-134, не штурман. Семёнов работает не на АН-24. Петров – не на ТУ-134. Бортинженер летает на АН-24. Семёнов не пилот. У кого какая профессия, и какой самолёт?
Вариант №17
Андреев, Борисов и Николаев – поэт, композитор и художник. У поэта нет бороды, и он зарабатывает меньше всех. Андреев считает, что Николаеву очень идет борода. Андреев зарабатывает больше композитора. Определите, кто является поэтом, кто композитором, кто художником и у кого есть борода.
Вариант №18
За столиком в кафе познакомились три девушки: Алёна, Светлана и Марианна. Одна из них работает парикмахером в Салоне красоты, другая – модельером в Доме Мод, третья – медсестрой в санатории. Также выяснилось, что парикмахер – самая молодая из троих, Марианна старше модельера, а Светлана младше Алёны. Определите профессии девушек.
Вариант №19
В одном институте учатся три друга – Липатов, Кондратьев и Зайцев. Один из них будущий физик, второй – математик, третий – программист. У физика нет ни братьев, ни сестёр. Он самый младший из друзей. Зайцеву нравится сестра Липатова, и он старше математика. Определите будущие профессии друзей.
Вариант №20
У Васи, Вани, Славы и Вовы живут дома собака, кошка, морская свинка и попугай. Вася и Слава знакомы с хозяином кошки. Ваня и хозяин собаки часто ходят в кино с хозяином попугая. Хозяин собаки постоянно встречается в школе с Васей и иногда с Вовой. У кого какое животное?
Вариант №21
Трое коллег – Костя, Митя и Артем пошли в ресторан. У них разное семейное положение и они любят разные блюда. Митя любит рыбу и получает больше, чем тот, кто холостой. Разведенный Костя получает больше, чем любитель пельменей. Тот, кто любит плов, получает больше всех. Один из них женат. Определите, у кого какое семейное положение, и кто какое блюдо предпочитает.
Вариант №22
В книжный магазин пришли четыре подруги: Соколова, Ястребова, Орлова и Голубева. Одна из них искала книгу «Поющие в терновнике», другая – «Финансиста», третья – «Охоту на овец», четвёртая – «Заводной апельсин». Соколова не искала книги «Поющие в терновнике» и «Заводной апельсин». Орлова – не искала книги «Охота на овец» и «Поющие в терновнике». Голубева не искала книги «Заводной апельсин» и «Поющие в терновнике». Если Ястребова искала книгу «Поющие в терновнике», то Голубева искала книгу «Финансист». Ястребова не искала книги «Заводной апельсин» и «Охота на овец». Какая девушка, какую книгу искала?
Вариант №23
Боб, Джек и Рональд часто ходят в кино. Они любят разные жанры и предпочитают разные кинотеатры. Джек любит комедии и садится ближе, чем тот, кто ходит в кинотеатр «Звезда». Боб ходит в кинотеатр «Самара» и сидит ближе, чем любитель триллеров. Тот, кто любит боевики, сидит к экрану ближе всех. Один из друзей ходит в кинотеатр «Огонек». Определите, кто какой жанр любит, и в какой кинотеатр предпочитает ходить.
Вариант №24
Кукушкина, Петухова и Галкина – модельер, менеджер и страховой агент. Одна из них водит форд, другая рено, третья ауди. Тот, кто ездит на форде, не менеджер. Петухова ездит не на рено. Кукушкина – не на форде. Страховой агент ездит на рено. Петухова не модельер. У кого какая профессия, и какой автомобиль?
Вариант №25
Три семейные пары– Ивановы, Петровы и Сидоровы купили путевки за 2000$, 3000$ и 5000$ в Турцию, Италию и Испанию. Ивановы поехали не в Турцию, Петровы – не в Италию. Те, кто поехали в Турцию, не платили за путевку 5000$. Те, кто поехали в Италию, заплатили 3000$. Петровы не платили за путевку 2000$. Кто в какой стране отдыхал и кто сколько заплатил за путевку?
Вариант №26
«Тройка» думает, что «Туз» не в своём уме. «Четвёрка» думает, что «Тройка» и «Двойка» обе не могут быть не в своём уме. «Пятёрка» думает, что «Туз» и «Четвёрка» либо оба не в своём уме, либо оба в своём уме. «Шестёрка» думает, что «Туз» и «Двойка» оба в своём уме. «Семёрка» думает, что «Пятёрка» не в своём уме. «Валет» думает, что «Шестёрка» и «Семёрка» обе не могут быть не в своём уме. В своём ли уме «Валет»?
Вариант №27
Король думает, что королева думает, что она не в своём уме. В своём ли уме король?
Вариант №28
Антон, Максим и Дима учатся в художественной школе. Каждый ученик художественной школы рисует или портреты, или пейзажи, или натюрморты и у каждого ученика один любимый художник - И.Репин, И.Шишкин или А.Рублёв. Антон рисует портреты и учится лучше, чем тот, кто любит И.Репина. Максим любит И.Шишкина и учится лучше, чем тот, кто рисует пейзажи. Тот, кто рисует натюрморты, учится лучше всех. Определите, кто из учеников художественной школы, что рисует и у кого какой любимый художник.
Вариант №29
На экскурсию в Эрмитаж приехали трое туристов – Кузнецов, Смирнов и Попов. Один из них из Казани, другой – из Самары, третий – из Москвы. Выяснилось, что житель Казани купил билет самым первым из троих. Кузнецов из Самары купил билет раньше, чем тот, кто живет в гостинице №1. Смирнов, живущий в гостинице №2, купил билет раньше, чем москвич. Один из них живет в гостинице №3.
Определите, кто из какого города, и кто в какой гостинице живет.
Вариант №30
Тони, Майкл и Джон – спортсмены. Один из них боксер, второй футболист, третий – пловец. Один из них любит снег, второй любит дождь, третий любит солнечную погоду. Тот, кто любит солнечную погоду, не боксер. Тони не любит снег. Майкл – не любит солнечную погоду. Футболист любит снег. Тони не пловец. У кого какая любимая погода и кто каким спортом занимается?
7.3 Задания для лабораторной работы на тему: получение структурированной информации из базы данных.
Текст задания.
1. Создать базу данных о заданной предметной области в виде множества фактов языка Пролог (не менее 5 фактов). Информацию о каждом компоненте БД представить в виде структуры.
2. Разработать набор предикатов, осуществляющих взаимодействие с БД, при помощи которых можно реализовать все типы запросов, приведенные в варианте задания. Найденные решения записать в виде фактов внутренней базы данных Пролога.
3. Предусмотреть проверку факта, являющегося ответом на запрос в БД. Если такой факт существует, то выдать его в качестве ответа на запрос. Если такого факта не существует в базе данных, то запустить запрос на выполнение и записать результат в БД.
Вариант №1.
Предметная область – семья. Каждая семья может быть описана структурой из трех компонент: мужа, жены и детей. Каждый член семьи может быть описан структурой: имя, отчество, фамилия, год рождения, пол, ежемесячный доход. Для детей добавить поле «близнец».
Реализовать следующие типы запросов:
1. Проверить, существует ли в БД заданный человек (по ФИО);
2. Найти всех работающих детей;
3. Найти всех работающих мужей, чей доход больше чем у жены;
4. Найти всех людей, которые не работают и родились до указанного года;
5. Найти число семей, у которых есть близнецы.
Вариант №2.
Предметная область – семья. Каждая семья может быть описана структурой из трех компонент: мужа, жены и детей. Каждый член семьи может быть описан структурой: имя, отчество, фамилия, год рождения, пол, ежемесячный доход. Для детей добавить поле «близнец».
Реализовать следующие типы запросов:
1. Найти всех близнецов;
2. Найти всех детей, родившихся в заданном году;
3. Найти всех работающих жен, чей доход больше заданной суммы;
4. Найти фамилии людей, у которых есть заданное число детей.
5. Найти самого старшего ребенка в БД.
Вариант №3.
Предметная область – семья. Каждая семья может быть описана структурой из трех компонент: мужа, жены и детей. Каждый член семьи может быть описан структурой: имя, отчество, фамилия, год рождения, пол, ежемесячный доход. Для детей добавить поле «близнец».
Реализовать следующие типы запросов:
1. Найти всех людей, чей доход меньше заданного;
2. Найти всех детей, младше заданного возраста;
3. Найти всех неработающих жен, которые родились позже заданного года;
4. Найти всех детей, у которых разница в возрасте родителей превышает заданную величину;
5. Подсчитать количество семей, у которых нет близнецов.
Вариант №4.
Предметная область – библиотека. Каждая книга может быть описана структурой: название, автор, список изданий, число экземпляров. Автор может быть описан структурой: имя, фамилия, год рождения. Издание может быть описано структурой: издательство, номер издания, год издания, количество страниц, цена.
Реализовать следующие типы запросов:
1. Найти автора, у которого книга имеет самый ранний год издания;
2. Найти все книги, изданные более одного раза (проверка по номеру издания);
3. Найти все книги, изданные в заданном издательстве за последние десять лет;
4. Найти все книги заданного автора;
5. Найти все книги, цена которых превышает заданную сумму.
Вариант №5.
Предметная область – библиотека. Каждая книга может быть описана структурой: название, автор, список изданий, число экземпляров. Автор может быть описан структурой: имя, фамилия, год рождения. Издание может быть описано структурой: издательство, номер издания, год издания, количество страниц, цена.
Реализовать следующие типы запросов:
1. Найти книгу, у которой минимальная цена;
2. Найти все книги, изданные только один раз (проверка по номеру издания);
3. Найти всех авторов, родившихся позже указанного года;
4. Найти все издательства, в которых была издана указанная книга;
5. Найти все книги, количество страниц в которых не превышает заданного значения.
Вариант №6.
Предметная область – библиотека. Каждая книга может быть описана структурой: название, автор, список изданий, число экземпляров. Автор может быть описан структурой: имя, фамилия, год рождения. Издание может быть описано структурой: издательство, номер издания, год издания, количество страниц, цена.
Реализовать следующие типы запросов:
1. Найти книгу, у которой максимальное число страниц;
2. Найти все книги, изданные в заданном издательстве;
3. Найти всех авторов, книги которых имеют цену, находящуюся в заданном диапазоне;
4. Найти все книги, которые имеются в нескольких экземплярах;
5. Найти все издательства, выпускавшие книги после указанного года.
Вариант №7.
Предметная область – страны мира. Каждая страна может быть описана структурой: название, площадь, географическое положение, население. Географическое положение может быть описана структурой: часть света, материк, океаны, моря, горные хребты. Население может быть описано структурой: численность, государственный язык, национальный состав. Национальный состав может быть описан структурой: национальность, численность, процент от всего населения.
Реализовать следующие типы запросов:
1. Найти страну, у которой максимальная численность населения;
2. Найти все страны, находящиеся на указанном материке с населением больше заданной величины;
3. Найти все страны, у которых однородный национальный состав (численность основной национальности более 90%);
4. Найти все страны, имеющие выход к указанному морю;
5. Найти все страны с указанным государственным языком.
Вариант №8.
Предметная область – страны мира. Каждая страна может быть описана структурой: название, площадь, географическое положение, население. Географическое положение может быть описана структурой: часть света, материк, океаны, моря, горные хребты. Население может быть описано структурой: численность, государственный язык, национальный состав. Национальный состав может быть описан структурой: национальность, численность, процент от всего населения.
Реализовать следующие типы запросов:
1. Найти страну, которую омывает больше всего морей;
2. Найти все страны, на территории которых находится указанный горный хребет;
3. Найти все страны, у которых число национальностей превышает заданную величину;
4. Найти все горные хребты, находящиеся на территории указанной страны;
5. Найти все страны, у которых численность населения меньше заданной величины.
Вариант №9.
Предметная область – страны мира. Каждая страна может быть описана структурой: название, площадь, географическое положение, население. Географическое положение может быть описана структурой: часть света, материк, океаны, моря, горные хребты. Население может быть описано структурой: численность, государственный язык, национальный состав. Национальный состав может быть описан структурой: национальность, численность, процент от всего населения.
Реализовать следующие типы запросов:
1. Найти страну, у которой максимальная плотность населения;
2. Найти все моря, которые омывают территорию указанной страны;
3. Найти страну, у которой численность ни одной из национальностей не превышает 50%;
4. Найти все страны, имеющие выход к указанному океану;
5. Найти все страны, у которых название части света совпадает с названием материка.
Вариант №10.
Предметная область – биржа труда. Каждая вакансия может быть описана структурой: название предприятия, должность, ежемесячный доход, требования к соискателю, список соискателей. Каждый соискатель может быть описан структурой: фамилия, имя отчество, соответствие требованиям. Требования к соискателю и соответствие требованиям могут быть описаны одной структурой: образование, возраст, пол, владение иностранными языками, умение работать на ПК, стаж работы по специальности.
Реализовать следующие типы запросов:
1. Найти должность, для которой существует максимальное число соискателей;
2. Найти все должности для мужчин, с высшим образованием и свободно владеющих иностранным языком;
3. Найти все предприятия, предлагающие доход выше указанного уровня;
4. Найти всех соискателей, умеющих работать на ПК, и имеющих стаж работы более 5 лет;
5. Найти предприятия, у которых есть заданная вакансия.
Вариант №11.
Предметная область – биржа труда. Каждая вакансия может быть описана структурой: название предприятия, должность, ежемесячный доход, требования к соискателю, список соискателей. Каждый соискатель может быть описан структурой: фамилия, имя отчество, соответствие требованиям. Требования к соискателю и соответствие требованиям могут быть описаны одной структурой: образование, возраст, пол, владение иностранными языками, умение работать на ПК, стаж работы по специальности.
Реализовать следующие типы запросов:
1. Найти всех соискателей, которые соответствуют требованиям по заданной должности;
2. Подсчитать количество соискателей, имеющих высшее образование;
3. Найти все должности для соискателей, указанной специальности;
4. Найти все должности для мужчин с ежемесячным доходом выше указанного значения;
5. Найти все должности, для которых не требуется высшего образования.
Вариант №12.
Предметная область – биржа труда. Каждая вакансия может быть описана структурой: название предприятия, должность, ежемесячный доход, требования к соискателю, список соискателей. Каждый соискатель может быть описан структурой: фамилия, имя отчество, соответствие требованиям. Требования к соискателю и соответствие требованиям могут быть описаны одной структурой: образование, возраст, пол, владение иностранными языками, умение работать на ПК, стаж работы по специальности.
Реализовать следующие типы запросов:
1. Найти должность, у которой минимальный ежемесячный доход;
2. Найти все должности для мужчин, с указанным уровнем образования, владеющих хотя бы одним иностранным языком;
3. Найти предприятия, для вакансий которых нет соискателей;
4. Найти все должности для женщин, не старше указанного возраста;
5. Найти все должности, для которых требуется знание иностранного языка.
Вариант №13.
Предметная область – служба знакомств. Каждый клиент может быть описан структурой: фамилия, имя, отчество, характеристика клиента, требования к партнеру, список возможных партнеров. Характеристика клиента и требования к партнеру могут быть описаны одной структурой: возраст, образование, национальность, ежемесячный доход, владение жилой площадью, наличие детей, отсутствие вредных привычек. Возможный партнер может быть описан следующей структурой: фамилия, имя, отчество, характеристика партнера. Характеристика партнера может быть описана структурой, одинаковой со структурой характеристики клиента.
Реализовать следующие типы запросов:
1. Подсчитать количество клиентов в БД;
2. Найти всех клиентов, с указанным уровнем образования, имеющих жилую площадь, без вредных привычек;
3. Найти всех возможных партнеров с указанной национальностью;
4. Найти всех клиентов, которым необходим партнер, не старше указанного возраста и не имеющий детей;
5. Найти клиента, которому требуется самый молодой партнер.
Вариант №14.
Предметная область – служба знакомств. Каждый клиент может быть описан структурой: фамилия, имя, отчество, характеристика клиента, требования к партнеру, список возможных партнеров. Характеристика клиента и требования к партнеру могут быть описаны одной структурой: возраст, образование, национальность, ежемесячный доход, владение жилой площадью, наличие детей, отсутствие вредных привычек. Возможный партнер может быть описан следующей структурой: фамилия, имя, отчество, характеристика партнера. Характеристика партнера может быть описана структурой, одинаковой со структурой характеристики клиента.
Реализовать следующие типы запросов:
1. Найти всех клиентов, для которых требования к партнеру совпадают с характеристикой партнера;
2. Найти всех партнеров указанного клиента, у которых есть дети;
3. Найти всех клиентов с заданным уровнем дохода и младше указанного возраста;
4. Найти самого старого клиента службы знакомств;
5. Найти всех клиентов, у которых нет жилой площади и есть вредные привычки.
Вариант №15.
Предметная область – служба знакомств. Каждый клиент может быть описан структурой: фамилия, имя, отчество, характеристика клиента, требования к партнеру, список возможных партнеров. Характеристика клиента и требования к партнеру могут быть описаны одной структурой: возраст, образование, национальность, ежемесячный доход, владение жилой площадью, наличие детей, отсутствие вредных привычек. Возможный партнер может быть описан следующей структурой: фамилия, имя, отчество, характеристика партнера. Характеристика партнера может быть описана структурой, одинаковой со структурой характеристики клиента.
Реализовать следующие типы запросов:
1. Найти самого молодого возможного партнера в БД;
2. Найти клиента, у которого нет возможных партнеров;
3. Найти всех клиентов указанной национальности, не старше указанного возраста;
4. Найти всех партнеров указанного клиента без вредных привычек;
5. Найти всех клиентов, у которых нет детей, и которым подходит партнер, имеющий детей.
Вариант №16.
Предметная область – спортивные соревнования. Каждое соревнование может быть описано структурой: ранг соревнований, вид спорта, год проведения, страна проведения, список команд - участников. Команды - участники могут быть описаны следующей структурой: название команды, страна, результаты соревнований. Результаты соревнований могут быть описаны списком структур: название команды – соперника, страна, тип результата (выигрыш, проигрыш, ничья).
Реализовать следующие типы запросов:
1. Найти ранг соревнования, в котором участвовало минимальное число команд, в заданном году и в заданном виде спорта;
2. Найти все команды указанного ранга соревнований и года проведения, у которых не было ни одного проигрыша;
3. Найти всех соперников указанной команды в соревнованиях заданного ранга в заданном году;
4. Найти вид спорта, в котором проводились соревнования в заданном году;
5. Найти все команды указанной страны, участвовавшие в соревнованиях заданного ранга.
Вариант №17.
Предметная область – спортивные соревнования. Каждое соревнование может быть описано структурой: ранг соревнований, вид спорта, год проведения, страна проведения, список команд - участников. Команды - участники могут быть описаны следующей структурой: название команды, страна, результаты соревнований. Результаты соревнований могут быть описаны списком структур: название команды – соперника, страна, тип результата (выигрыш, проигрыш, ничья).
Реализовать следующие типы запросов:
1. Найти вид спорта, в котором участвовало максимальное число команд, в заданном году и в заданном ранге соревнований;
2. Найти все страны, где проводились чемпионаты мира по указанному виду спорта.
3. Найти всех соперников указанной команды в соревнованиях определенного ранга в заданном году;
4. Найти все соревнования, проводившиеся в заданном году;
5. Найти все команды, у которых были ничьи.
Вариант №18.
Предметная область – спортивные соревнования. Каждое соревнование может быть описано структурой: ранг соревнований, вид спорта, год проведения, страна проведения, список команд - участников. Команды - участники могут быть описаны следующей структурой: название команды, страна, результаты соревнований. Результаты соревнований могут быть описаны списком структур: название команды – соперника, страна, тип результата (выигрыш, проигрыш, ничья).
Реализовать следующие типы запросов:
1. Найти год, в который участвовало максимальное число команд, в заданном виде спорта и в заданном ранге соревнований;
2. Найти вид спорта, в котором выступает заданная команда;
3. Найти все команды, которые участвовали в Олимпийских играх по определенному виду спорта;
4. Найти все команды, участвовавшие в соревнованиях в заданном году;
5. Найти все команды определенной страны, у которых были выигрыши.
Вариант №19.
Предметная область – видеотека. Каждая видеокассета может быть описана структурой: название фильма, год создания, киностудия, атрибуты фильма. Атрибуты фильма могут быть описаны структурой: автор сценария, режиссер, список фамилий исполнителей главных ролей, премии. Премии могут быть описаны списком из следующих структур: название фестиваля, год проведения.
Реализовать следующие типы запросов:
1. Найти фильм, получивший больше всего премий;
2. Подсчитать число фильмов указанного режиссера;
3. Найти всех режиссеров, фильмы которых создавались на заданной киностудии;
4. Найти все фильмы, определенного актера за указанный период времени;
5. Найти всех сценаристов, в фильмах которых снимался определенный актер.
Вариант №20.
Предметная область – видеотека. Каждая видеокассета может быть описана структурой: название фильма, год создания, киностудия, атрибуты фильма. Атрибуты фильма могут быть описаны структурой: автор сценария, режиссер, список фамилий исполнителей главных ролей, премии. Премии могут быть описаны списком из следующих структур: название фестиваля, год проведения.
Реализовать следующие типы запросов:
1. Найти сценариста, в фильме которого снялось минимальное число актеров;
2. Найти режиссеров и сценаристов, у которых есть фильмы, получившие премии;
3. Найти все фильмы указанного режиссера, снятого на определенной киностудии;
4. Найти всех исполнителей главных ролей указанного фильма;
5. Найти все киностудии, которые работали с указанным режиссером.
Вариант №21.
Предметная область – видеотека. Каждая видеокассета может быть описана структурой: название фильма, год создания, киностудия, атрибуты фильма. Атрибуты фильма могут быть описаны структурой: автор сценария, режиссер, список фамилий исполнителей главных ролей, премии. Премии могут быть описаны списком из следующих структур: название фестиваля, год проведения.
Реализовать следующие типы запросов:
1. Найти режиссера, у которого фильм получил максимальное число премий;
2. Найти все фильмы, получившие премии, в которых снимался указанный актер;
3. Найти все фильмы определенного сценариста, снятые в указанном году.
4. Найти количество актеров, снимавшихся на определенной киностудии;
5. Найти всех актеров, снимавшихся в фильмах определенного сценариста.
Вариант №22.
Предметная область – учебная группа факультета. Каждая учебная группа может быть описана структурой: название факультета, код специальности, номер группы, состав группы. Состав группы может быть описан списком структур, описывающих отдельного студента: фамилия, имя, отчество, обучение на военной кафедре, сводная ведомость. Сводная ведомость может быть описана списком из следующих структур: предмет, оценка.
Реализовать следующие типы запросов:
1. Подсчитать число групп определенной специальности;
2. Найти оценку определенного студента по заданному предмету;
3. Найти группу, которая сдала больше всего предметов в сессию;
4. Найти всех студентов, имеющих задолженности;
5. Подсчитать число студентов, обучающихся на военной кафедре.
Вариант №23.
Предметная область – учебная группа факультета. Каждая учебная группа может быть описана структурой: название факультета, код специальности, номер группы, состав группы. Состав группы может быть описан списком структур, описывающих отдельного студента: фамилия, имя, отчество, обучение на военной кафедре, сводная ведомость. Сводная ведомость может быть описана списком из следующих структур: предмет, оценка.
Реализовать следующие типы запросов:
1. Подсчитать общее число студентов на указанном факультете;
2. Найти группу, у которой больше всего отличников;
3. Найти все предметы, которые изучала определенная группа;
4. Найти всех студентов, не обучающихся на военной кафедре;
5. Найти все группы, изучавшие определенный предмет.
Вариант №24.
Предметная область – учебная группа факультета. Каждая учебная группа может быть описана структурой: название факультета, код специальности, номер группы, состав группы. Состав группы может быть описан списком структур, описывающих отдельного студента: фамилия, имя, отчество, обучение на военной кафедре, сводная ведомость. Сводная ведомость может быть описана списком из следующих структур: предмет, оценка.
Реализовать следующие типы запросов:
1. Подсчитать средний балл сессии по указанной группе;
2. Найти группу, в которой минимальное число студентов;
3. Найти все предметы в указанной группе, по которым сдавался экзамен;
4. Найти код специальности указанной группы;
5. Найти всех студентов, обучающихся на военной кафедре.
Вариант №25.
Предметная область – база данных продажи автомобилей. Каждый автомобиль может быть описана структурой: марка автомобиля, страна фирмы-изготовителя, список фирм-продавцов. Фирма-продавец может быть описана структурой: название фирмы, страна, список имеющихся моделей. Модель может быть описана структурой: наименование модели, цена, список имеющихся расцветок.
Реализовать следующие типы запросов:
1. Найти марку автомобиля, которую продает больше всего фирм;
2. Подсчитать число стран, в которых продаются автомобили заданной марки;
3. Найти все фирмы, продающие автомобили заданной марки;
4. Найти все модели автомобилей, цена которых ниже заданной;
5. Найти все фирмы, которые продают автомобили заданной модели.
Вариант №26.
Предметная область – база данных продажи автомобилей. Каждый автомобиль может быть описана структурой: марка автомобиля, страна фирмы-изготовителя, список фирм-продавцов. Фирма-продавец может быть описана структурой: название фирмы, страна, список имеющихся моделей. Модель может быть описана структурой: наименование модели, цена, список имеющихся расцветок.
Реализовать следующие типы запросов:
1. Найти марку и модель автомобиля, у которой минимальная цена;
2. Подсчитать число расцветок автомобиля заданной модели у определенного продавца;
3. Найти все страны-изготовителя, выпускающие автомобили заданной марки;
4. Найти все марки автомобилей, продающиеся в заданной стране;
5. Найти все фирмы, которые продают автомобили заданной расцветки.
Вариант №27.
Предметная область – база данных продажи автомобилей. Каждый автомобиль может быть описана структурой: марка автомобиля, страна фирмы-изготовителя, список фирм-продавцов. Фирма-продавец может быть описана структурой: название фирмы, страна, список имеющихся моделей. Модель может быть описана структурой: наименование модели, цена, список имеющихся расцветок.
Реализовать следующие типы запросов:
1. Найти марку и модель автомобиля, у которой максимальное число расцветок;
2. Подсчитать число фирм, в которых продаются автомобили заданной марки;
3. Найти все фирмы, продающие автомобили в заданной стране;
4. Найти все марки автомобилей, выпускающиеся в заданной стране;
5. Найти все фирмы, которые продают автомобили заданной цены.
Вариант №28.
Предметная область – расписание движения самолетов. Каждый рейс может быть описан структурой: название авиакомпании, номер рейса, пункт отлета, пункт прилета, время отлета, время прилета, список пунктов промежуточных посадок, список тарифов. Тариф может быть описан структурой: тип класса салона, цена.
Реализовать следующие типы запросов:
1. Найти авиакомпанию, у которой максимальная стоимость билета по заданному маршруту;
2. Подсчитать число авиакомпаний, самолеты которых летают в заданный город (включая промежуточные посадки);
3. Найти все номера рейсов, улетающих до указанного времени;
4. Найти все авиакомпании, самолеты которых летают из указанного города;
5. Найти все рейсы, на которые есть билеты эконом класса.
Вариант №29.
Предметная область – расписание движения самолетов. Каждый рейс может быть описан структурой: название авиакомпании, номер рейса, пункт отлета, пункт прилета, время отлета, время прилета, список пунктов промежуточных посадок, список тарифов. Тариф может быть описан структурой: тип класса салона, цена.
Реализовать следующие типы запросов:
1. Найти авиакомпанию, у которой минимальная продолжительность полета по заданному маршруту;
2. Подсчитать число рейсов, совершающих промежуточную посадку в заданном пункте;
3. Найти все авиакомпании, у которых есть билеты бизнес класса;
4. Найти все рейсы, прилетающие в указанный пункт до заданного времени;
5. Найти все рейсы, летающие по заданному маршруту.
Вариант №30.
Предметная область – расписание движения самолетов. Каждый рейс может быть описан структурой: название авиакомпании, номер рейса, пункт отлета, пункт прилета, время отлета, время прилета, список пунктов промежуточных посадок, список тарифов. Тариф может быть описан структурой: тип класса салона, цена.
Реализовать следующие типы запросов:
1. Найти авиакомпанию, у которой максимальное число тарифов на заданный маршрут;
2. Подсчитать число рейсов, улетающих из заданного города до указанного времени;
3. Найти все авиакомпании, у которых есть билеты класса люкс;
4. Найти все рейсы, у которых цена билета ниже заданной;
5. Найти все авиакомпании, у которых время полета меньше заданного.
7.4 Задания для лабораторной работы на тему: решение задачи.
Вариант №1
Решение задачи коммивояжера: задан перечень городов и заданы стоимости проезда между ними.
Требуется найти такой маршрут обхода всех городов, чтобы суммарная стоимость проезда была минимальной и в каждом городе, кроме начального, коммивояжёр побывал только один раз.
Вариант №2
Решение задачи о рюкзаке: пусть An - объем предмета, Bn - стоимость предмета, объем рюкзака - V, n – число имеющихся предметов, m – число предметов, уложенных в рюкзак.
Требуется заполнить рюкзак так, чтобы:
Вариант №3
Решение задачи о кратчайшем связывающем дереве: пусть заданы все расстояния aij - между i-м и j-м городом на карте.
Требуется построить систему дорог между городами так, чтобы суммарная длина дорог Lsum ® min ииз любого города можно было бы попасть в любой другой город.
Вариант №4
Решение задачи о разбиении множеств.
Требуется разделить множество A={A1, A2,...An} на два подмножества B и C таким образом, чтобы:
B=
C= ,
где m+l=n и BÇC=0, A=BÈC.
Требуется найти такой вариант, когда .