Практикум семакин 2.pdf

  • pdf
  • 29.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Практикум семакин 2.pdf



ФГОС

И. Г. Семакин, Е. К. Хеннер,

Л. В. Шестакова инооргптип

УГЛУБЛЕННЫЙ УРОВЕНЬ Практикум для 10-1 1 классов

в 2-х частях

Часть 2

Москва

БИНОМ. Лаборатория знаний

2013

удк 004.9 ББК 32.97 сзо

Семакин И. Г.

СЗО Информатика. Углубленный уровень практикум для 10—11 классов в 2 ч. Ч. 2 / И. Г. Семакин, Е. К. Хеннер, Л. В. Шестакова. — М. : БИНОМ. Лаборатория знаний, 2013. — 120 с. : ил.

ISBN 978-5-9963-1643-4 (Ч. 2)

ISBN 9786-9963-1550-5

Компьютерный практикум входит в состав УМК по информатике для старшей школы (углубленный уровень) наряду с учебниками для 10 и 11 классов и методическим пособием. Учебники содержат ссылки на разделы практикума. Практикум включает 17 тематических разделов. Все практические задания предназначены для выполнения на компьютере с использованием системного и прикладного ПО, систем программирования, авторских электронных образовательных ресурсов. Задания разделены на три уровня сложности. Большое количество и разнообразие заданий в практикуме дает возможность учителю адаптировать содержание практической части учебного курса к профилю класса, уровню подготовки учеников, выделенному для курса объему учебного времени, уровню технического и программного обеспечения учебного процесса. Файлы для выполнения заданий, отмеченные значком диска, входят в состав электронного приложения, размещенного на сайте издательства (http://www.Lbz.ru). удк 004.9 ББК 32.97

Учебное изДание

Семакин Игорь Геннадьевич Хеннер Евгений Карлович

Шестакова Лидия Валентиновна

ИНФОРМАТИКА.

УГЛУБЛЕННЫЙ УРОВЕНЬ

Практикум для 10—11 классов В двух частях Часть вторая

Ведущий редактор Д. Ю. Усенков. Ведущий методист И. Л. Сретенская Художник Н. А. Новак

Технический редактор Е. В. Денюкова. Корректор Е. Н. Клитина Компьютерная верстка: Л. В. Катуркина

Подписано в печать 05.03.13. Формат 70х 100/16.

Усл. печ. л. 9,75. Тираж 5000 экз. Заказ 2435

При участии ООО Агентство печати «Столица» www.apstolica.ru; e-mail: apstolica@bk.ru

Издательство «БИНОМ. Лаборатория знаний» 125167, Москва, проезд Аэропорта, д. З

Телефон: (499) 157-5272, e-mail: binom@Lbz.ru http:/,/www.Lbz.ru, http://e-umk.Lbz.ru, http://metodist.Lbz.ru Отпечатано в ОАО «Первая Образцовая типография»,

филиал «УЛЬЯНОВСКИЙ ДОМ ПЕЧАТИ». 432980, г. Ульяновск, ул. Гончаровщ 14

ISBN 9786-9963-1643-4 (Ч. 2)

              ISBN 978-5-9963-1550-5                         БИНОМ. Лаборатория знаний, 2013

Раздел 14

Системология

Работа 14.1. Модели систем*

Цель работы: формирование навыков системного анализа, построения структурных схем и графов классификаций.

Задание 1 (уровень 2). Используя текстовый редактор, подготовьте небольшой отчет на тему «Модель черного ящика». Опишите проблему множественности вариантов модели «черного ящика» для одной и той же системы на примерах знакомых вам систем: радиоприемник, автомобиль, компьютер, столовая, школа и пр. (вы можете продолжить этот список). Перечислите при этом нежелательные входы и выходы. Установите, как можно устранить недостатки системы (нежелательные связи с внешней средой). Описание представьте в табличной форме.

Задание 2 (уровень 2). Используя текстовый редактор, подготовьте небольшой отчет на тему «Модель состава системы». Изобразите графическими средствами модели состава систем, рассмотренных в первом задании. Обоснуйте вашу модель с точки зрения ее назначения. Отметьте, какие составляющие системы в этой модели рассматриваются в качестве элементов, а какие — в качестве подсистем.

Задание З. Построение структурной схемы сложной системы.

Вариант 1 (уровень 1). Используя графические средства, воспроизведите схему, отражающую состав и структуру танкового батальона (рис. 14.1). Подсчитайте количество танков в роте и общее количество танков в батальоне.

Вариант 2 (уровень 2). Постройте граф, отображающий состав и структуру мотопехотного батальона (армия ФРГ образца 1970 г.) по следующему описанию.

Батальон на БМП (боевых машинах пехоты) имел численность

764 человека. Во главе батальона стоял командир, которому

* Подборка заданий составлена М. А. Плаксиным.

                   4                                                                                                                   Раздел 14. Системология

Рис. 14.1. Структура танкового батальона

подчинялись штаб и 5 рот: штабная и снабжения, минометная и три мотопехотные. Рота штабная и снабжения состояла из управления и трех взводов: штабного, связи и снабжения. В штабном взводе было четыре отделения: штабное, мотоциклистов, транспортное и разведывательное. Во взводе связи было три отделения радиосвязи и два отделения проводной связи. Во взводе снабжения было четыре отделения: материально-технического обеспечения, продовольственного снабжения, транспортное и санитарное.

Минометная рота состояла из управления, двух отделений передового наблюдения, отделения обеспечения и шести расчетов 120-мм минометов.

Каждая мотопехотная рота (163 чел.) имела в своем составе три мотопехотных взвода по 48 чел. Каждый взвод состоял из группы управления и четырех мотопехотных отделений по 10 чел. Отделение делилось на две группы: первая — командир Магиины, наводчик-оператор (БМП «Мардер» оснащался 20-мм


Модели систем

пушкой и двумя пулеметами) и механик-водитель; вторая командир отделения, пулеметчик, гранатометчик, огнеметчик и три стрелка.

Задание 4. Построение графов классификаций.

Вариант З (уровень 1). Используя графические средства, воспроизведите схему, отражающую классификацию геометрических объектов (рис. 14.2).

Рис. 14.2. Граф классификации геометрических объектов

Вариант 4 (уровень 2). Постройте граф классификации биологической системы по следующему описанию.

Согласно биологической классификации, выделяют три империи (надцарства): археобактерии, эукариоты и прокариоты. К империи эукариотов относятся царства грибов, растений и животных. К царству животных относятся типы членистоногих, моллюсков, иглокожих, кишечнополостных, хордовых и др. К типу хордовых относятся классы рыб, амфибий, рептилий, млекопитающих, птиц. К классу млекопитающих относятся отряды китов, ластоногих, хищных, грызунов, копытных и др. К отряду хищных относятся семейства медвежьих, енотовых, псовых, виверровых, кошачьих и др. К семейству псовых относятся роды лисиц, енотовидных собак, собак, фенеков, песцов и др. К роду собак относятся виды собак домашних, волков, шакалов, койотов. К виду собак домашних относятся овчарки, спаниели, водолазы, сенбернары, доги, болонки и др.

                6                                                                                                                    Раздел 14. Системология

Вариант 5 (уровень 2). Постройте граф классификации в русском языке по следующему описанию.

Предложения в русском языке классифицируются по составу, по интонации и по цели высказывания. По составу предложения делятся на нераспространенные и распространенные. Нераспространенные предложения состоят только из двух членов: подлежащего и сказуемого. Пример нераспространенного предложения: «Птицы прилетели». Распространенные предложения состоят из подлежащего, сказуемого и второстепенных членов предложения. Пример распространенного предложения: «Ранней весной прилетели первые птицы».

По интонации предложения делятся на восклицательные («Пришла весна!» ) и невосклицательные («Пришла весна. »).

По цели высказывания предложения делятся на повествовательные, вопросительные и побудительные. Повествовательное предложение: «Мы собрали много грибов и ягод». Вопросительное предложение: «Вы собрали много грибов и ягод?». Побудительное предложение: «Собирайте грибы и ягоды!».

Работа 14.2. Проектирование инфологической модели

Цель работы: выработка навыков самостоятельной реализации системного анализа в рамках определенной предметной области, построения инфологической модели.

Задание (уровень З). Выберите предметную область из предлагаемого ниже списка (он может быть дополнен вами или учителем). Проведите системный анализ выбранной предметной области и постройте инфологическую модель.

1.  Больница (стационарное отделение).

2.  Больница (поликлиника). З. Расписание уроков в школе.

4.      Библиотека (книги, читатели, библиотекари).

5.      Дорожно-транспортные происшествия (участники, машины, обстоятельства ДТП).

6.      Футбольный чемпионат (команды, график игр, результаты игр, футболисты).

7.      Городская телефонная сеть (АТС, абоненты, оплата, переговоры).

8.      Авиарейсы (самолеты, пилоты, рейсы, пассажиры).

Проектирование инфологической модели

9.      Отдел кадров предприятия (отделы, сотрудники, должности, зарплата

10.  Предприятие торговли (отделы, товары, продавцы, ...Э.

Темы для рефератов по разделу «Системология»

1.  Различные подходы к определению системы в науке.

2.  Системный подход и системный анализ.

З. Проблема систематизации в естественных науках.

4.   Проблема систематизации в гуманитарных науках.

5.   Классификация компьютерных информационных систем.

Раздел 15

Базы данных

Работа 15.1 . Знакомство с СУБД

Цель работы: освоение простейших приемов работы с готовой базой данных в среде СУБД MS Access: открытие базы данных, просмотр структуры БД в режиме «Конструктор», просмотр содержимого БД в режимах «Таблица» и «Форма», добавление записей через форму, быстрая сортировка таблицы, использование фильтра.

Примечание. Для выполнения этой работы предварительно должна быть подготовлена однотабличная база данных «Видеотека » , структура и содержание которой описаны в Приложении к данной работе, а также создана форма к этой БД. В дальнейшем таблицу, в которой хранятся сведения о видеодисках, и соответствующую форму мы будем называть «Видеодиски».

Справочная информация. Любые действия, выполняемые с базой данных, производятся на ЭВМ с помощью специальных программ — систем управления базами данных (СУБД). Существуют СУБД, ориентированные на программистов и на конечного пользователя. СУБД, ориентированные на программистов, фактически представляют собой системы программирования со своим специализированным языком, в среде которых программисты создают программы обработки баз данных. Далее с этими программами работают конечные пользователи. Примеры СУБД такого типа: FoxPro, Paradox и др.

СУБД Microsoft Access (MS Access) относится к системам, ориентированным на конечного пользователя. Она позволяет пользователю, не прибегая к программированию, легко выполнять основные действия с базой данных — создавать, редактировать и манипулировать данными. MS Access работает в операционной среде Windows и может использоваться как на автономном ПК, так и в локальной компьютерной сети. С помощью Access создаются и эксплуатируются персональные базы данных, а также корпоративные БД с относительно небольшим объемом данных. Однако для создания крупных промышленных информационных систем MS Access непригодна.


Среда Access (рис. 15.1) имеет интерфейс, характерный для УИпс1(Ж$-прилоэкений, и включает в себя следующие составляющие:

титульную строку с кнопками управления окном;

         главное меню;

         панель инструментов;  рабочее поле;

         строку состояния.

На рабочем поле демонстрируется окно документа, соответствующее выбранному режиму работы с БД. На рис. 15.1 показано окно, соответствующее режиму работы с таблицей БД. (Как и для любого приложения, в Access существует иерархия режимов, о ко-

Рис. 15.1. Среда MS Access с окном базы данных на рабочем поле

Данные, с которыми работает СУБД, также могут быть выстроены в иерархическую последовательность. На верхнем уровне этой иерархии находятся основные объекты MS Access: таблицы, запросы, формы, отчеты, макросы и модули.

Таблица основной тип объекта БД. Все остальные разновидности объектов являются производными от таблиц. Элементы данных, составляющих таблицу, это записи и поля. Свойства элементов таблицы определяются типами, форматами полей и некоторыми другими параметрами.

Форма вспомогательный объект, без которого, в принципе, можно обойтись. Формы создаются для повышения удобства пользователя при просмотре, вводе и редактировании данных в таблице.

Запрос результат обращения пользователя к СУБД для поиска данных, добавления, удаления и обновления записей. Результат поиска (выборки) данных представляется в табличном виде. Термином «запрос» также называют сами команды обращения к СУБД.

Отчет — документ, сформированный на основании информации, содержащейся в таблицах и запросах, и предназначенный для • вывода на печать.

Макросы и моДули объекты повышенной сложности, которые позволяют автоматизировать отдельные операции при работе с БД и при начальном знакомстве с MS Access могут не использоваться.

Еще одним, особым, видом данных является схема — описание структуры связей в многотабличной базе данных.

Режимы работы СУБД Access многообразны. Так же как и для других приложений Windows, иерархия режимов здесь реализована через главное меню. В этом приложении предусмотрены режимы общего характера: работа с файлами (меню Файл), работа с буфером обмена (меню Правка), режим настройки среды (меню Вид), справочный режим (меню Справка). Но основным является режим работы с базой данных. Он устанавливается после выбора в меню команды Файл, Создать базу данных или команды Файл, Открыть базу данных. Поскольку база данных всегда хранится в файле, в первом случае система потребует задать имя и место хранения файла, а во втором — указать существующий файл с базой данных.

После раскрытия на экране окна базы данных (рис. 15.1) становятся доступны режимы работы с основными объектами Access: таблицами, запросами, формами и отчетами, которые инициируются открытием соответствующих закладок в окне. В каждом из этих режимов предоставляются три командные кнопки: Открыть, Конструктор и Создать. Если соответствующий объект еще не создан, то доступна только кнопка Создать. Если в окне выделен какой-либо из существующих объектов, то доступны будут также кнопки Открыть и Конструктор: первая из этих двух кнопок позволяет просмотреть объект, а вторая — просмотреть или изменить структуру объекта.

Управление СУБД MS Access осуществляется через главное меню, при помощи кнопок на панели инструментов или в окнах,

а также через контекстное меню (раскрываемое правой кнопкой мыши). Набор доступных команд, как правило, носит контекстный характер, т. е. зависит от текущего режима работы. Задание 1 (уровень 1).

1.  Запустите на исполнение MS Access.

2.  Откройте базу данных «Видеотека» (файл, в котором хранится БД, будет указан учителем).

З. Установите режим работы с таблицей (вкладка Таблицы). Откройте таблицу «Кассеты» (кнопка Открыть). Изучите содержимое таблицы.

4.   Закройте таблицу. Перейдите в режим работы с конструктором таблицы (кнопка Конструктор).

5.   Последовательно перемещаясь от поля к полю, ознакомьтесь со свойствами полей — их типами, форматами и описаниями.

6.   Закройте «Конструктор».

Задание 2 (уровень 1).

1.  Перейдите в режим работы с формами (закладка Формы).

2.  Откройте форму «Кассеты» (рис. 15.2).

З. При помощи формы просмотрите последовательность записей. Перейдите на первую запись; на последнюю запись; на запись с указанным номером.

4.  Добавьте в конец таблицы еще одну запись о новой кассете: 21, «Сибирский цирюльник», Россия, 180, мелодрама, 25.12.99, выдана

5.  Закройте форму.

Рис. 15.2. Форма «Кассеты»

Раздел Базы данных

Задание З (уровень 1). Выполните сортировку записей в полной таблице.

1.  Отсортируйте таблицу в алфавитном порядке названий фильмов (ключ сортировки — поле «Фильм»). Для этого:

      выделите столбец «Фильм» (щелкнув мышью на его заголовке);

      используя контекстное меню или кнопку на панели инструментов, выполните сортировку таблицы.

2.  Отсортируйте таблицу по двум ключам: «Страна» и «Время» в порядке убывания. Для этого:

      выделите два столбца: «Страна» и «Время» (щелкните мышью на их заголовках, удерживая нажатой клавишу Shift);

      используя контекстное меню или кнопку на панели инструментов, выполните сортировку таблицы.

Обратите внимание: после сортировки записи с одинаковым значением поля «Страна» располагаются по убыванию значений в поле «Время». В данном случае поле «Страна» является первичным, а поле «Время» — вторичным ключом сортировки.

Задание 4 (уровень 1). Выполните отбор записей из таблицы с помощью фильтра.

1.  Откройте таблицу «Кассеты».

2.  С помощью фильтра выберите все кассеты, выданные клиентам. Для этого:

*         выберите в меню команду Записи, Фильтр, Изменить фильтр или нажмите кнопку

*         в появившемся шаблоне в поле «Выдана» щелчком мыши пометьте флажок (поставьте галочку);  выберите в меню команду Фильтр, Применить фильтр или нажмите кнопку

З. Аналогичным способом выберите все не выданные кассеты.

4. Выберите все фильмы, созданные в США.

                                                                                                                                 Pa3AeJI       Ba.3b1 aaHHb1X


Работа 15.2. Создание базы данных «Классный журнал»

Цель работы: освоение приемов работы с СУБД в процессе создания спроектированной базы данных.

Задание (уровень 1). Действуя по приведенной ниже инструкции, создайте базу данных «Классный журнал».

1.  Откройте файл для новой базы данных:

       выберите в меню команду Файл, Создать БД, Новая БД;

      


в файловом окне укажите путь и имя файла: «Классный журнал». На экране откроется окно (рис. 15.3).

Классный журнал : база данных (формат Access 2000)

 

 

 

а

             - пздание                   в режиме констоуктора

Создтме тмльв,' с гизощыо настфа тблп.ь пут— вода дее«х

 

Рис. 15.3. Окно управления базами данных

2.  Создайте таблицу «Ученики»:

       в режиме Таблицы выберите команду Создание таблицы в режиме конструктора (см. рис. 15.3);  в открывшемся окне Конструктора таблиц для всех полей таблицы «Ученики» укажите имена, типы и форматы полей:

Имя поля

Тип поля

Длина (Формат

НОМЕР уч

числовой

целый

ФАМИЛИЯ

текстовый

зо

имя

текстовый

15

пол

текстовый

1

АДРЕС

текстовый

 

ТЕЛЕФОН

текстовый

15

З. Назначьте главный ключ таблицы:

       выделите строку с именем поля «НОМЕР УЧ»;

      


выберите в меню команду Правка, Ключевое поле или нажмите на панели инструментов кнопку с иконкой «ключа»

Рис. 15.4. Выбор главного ключа таблицы

4.      Окно Конструктора таблиц с созданной таблицей показано на рис. 15.4. Сохраните таблицу под именем «Ученики».

5.      Аналогичным способом создайте таблицу, назначьте для нее главный ключ и сохраните таблицу под именем «Предметы» :

Имя поля

Тип поля

Длина (Формат)

НАЗВ_ЏРЕДМЕТА

текстовый

зо

УЧИТЕЛЬ

текстовый

 

6.      Создайте таблицу, назначьте для нее составной главный ключ и сохраните таблицу под именем «Оценки» :

Имя поля

Тип поля

Длина (Формат)

НОМЕР_УЧ

числовой

целый

НА В ПР

МЕТА

текстовый

зо

ддтд

дата

 

ОЦЕНКА

числовой

целый

При назначении составного ключа одновременно выделите поля «НОМЕР уч», «НАЗВ ПРЕДМЕТА» и «ДАТА» (с помощью мыши, удерживая нажатой клавишу Shift), а затем выберите в меню команду Правка, Ключевое поле.

7.      Свяжите таблицы «Ученики» и «Оценки». Для этого:


 выберите в меню команду Сервис, Схема данных. Откроется окно Добавление таблицы;  выделите название таблицы «Ученики» и выберите в меню команду Добавить;  выделите название таблицы «Оценки» и выберите в меню команду Добавить;  выберите в меню команду Закрыть;  в результате в окне Схема данных появятся образы двух таблиц. С помощью мыши перетащите ключевое поле «НОМЕР УЧ» из образа таблицы «Ученики» на одноименное поле в образ таблицы «Оценки» ;  откроется окно Изменение связей (рис, 15.5). Поочередно пометьте флажки: Обеспечение целостности данных, каскадное обновление связанных полей и каскадное удаление связанных записей. Тип отношения «один-ко-многим» будет выбран автоматически.

Изменение связей

 

Окно настройки связи между таблицами


8.      Аналогичным способом свяжите таблицы «Предметы» и «Оценки».

9.      Выберите в меню команду Создать. В окне Схема данных созданная схема будет иметь вид, показанный на рис. 15.6.


Рис. 15.6. Созданная схема базы данных

10.  Введите данные в таблицу «Ученики»:

       в режиме Таблицы выделите название таблицы «Ученики» ;

       нажмите кнопку Открыть. На экране появится бланк таблицы, содержащий заголовки полей и пустую строку;

       введите данные по образцу рис. 15.7.

Образец заполнения таблицы «Ученики»

11.  Аналогичным способом введите данные в таблицу «Предметы» по образцу рис. 15.8.

Рис. 15.8. Образец заполнения таблицы «Предметы»

12. 


Введите данные в таблицу «Оценки» по образцу рис. 15.9.

Образец заполнения таблицы «Оценки»

13.  Создайте форму для просмотра и редактирования данных в таблице «Ученики»:

 перейдите на вкладку Формы и нажмите кнопку Создать;  выберите способ создания формы — Мастер форм;  выберите таблицу «Ученики» ;  переместите все поля таблицы из окна Доступные поля в окно Выбранные поля и нажмите кнопку Далее;  пометьте радиокнопку В один столбец и нажмите кнопку Далее;  выберите стиль формы Стандартный и нажмите кнопку Далее;  задайте имя формы (оставьте предложенное по умолчанию имя «Ученики»);  пометьте радиокнопку Открытие формы для просмотра и ввода данных и нажмите кнопку Готово.


Примерный вид полученной в результате формы показан на рис. 15.10.

Рис. 15.10. Примерный вид созданной формы

14.  Сохраните базу данных на диске при помощи команды меню Файл, Сохранить.

Работа 15.3. Реализация запросов с помощью Конструктора

Цель работы: освоение приемов реализации запросов на выборку с помощью Конструктора запросов.

Справочная информация. Конструктор запросов — это удобное средство формирования запросов в СУБД MS Access, которое можно рассматривать как пользовательскую оболочку к языку за-


просов SQL. Для формирования запросов в Конструкторе используется табличная форма.

Окно Конструктора запросов показано на рис. 15.11.

Рис. 15.11. Конструктор запросов СУБД MS Access.

Запрос на получение списка учащихся

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

Бланк запроса — таблица в нижней части окна Конструктора. Столбцы относятся к полям, участвующим в формировании запроса. В первой строке бланка запроса указываются имена всех этих полей. Вторая строка содержит имена таблиц, из которых извлекается то или иное поле. Третья строка — признак сортировки (используется только для ключей сортировки). Флажки в четвертой строке указывают, нужно ли выводить то или иное поле на экран при выполнении запроса. В последующих строках таблицы формируется условие отбора.

Задание 1 (уровень 1). Получите список учеников класса, содержащий номер в журнале, фамилию и имя каждого ученика.

Соответствующая команда выборки на учебном языке запросов:

. выбрать УЧЕНИКИ. НОМЕР уч, УЧЕНИКИ. ФАМИЛИЯ, УЧЕНИКИ. ИМЯ сортировать УЧЕНИКИ . НОМЕР УЧ по возрастанию

1.  Перейдите к работе с Конструктором запросов:  выберите в списке объектов Запросы;

       выберите режим Создание запроса в режиме конструктора;

       нажмите кнопку Создать.

2.  Поместите в поле схемы запроса таблицу «Ученики» :

       в окне Добавление таблицы на вкладке Таблицы выберите название таблицы «Ученики»;

       выберите в меню команду Добавить, Закрыть. З. Заполните бланк запроса по образцу рис. 15.11.

4. Выполните запрос, выбрав в меню команду Запрос, Запуск. На экране появится таблица, показанная на рис. 15.12.

Рис. 15.12. Результат выполнения запроса на получение списка учащихся

4. Сохраните созданный запрос под именем «Список учеников».

Задание 2 (уровень 1). Выведите список всех оценок, полученных Волеговым Кириллом по всем предметам, включая даты получения этих оценок.

Соответствующая команда на учебном языке запросов:

. выбрать ОЦЕНКИ. НАЗВ ПРЕДМЕТА, ОЦЕНКИ. ДАТА, ОЦЕНКИ.

ОЦЕНКА где ОЦЕНКИ. НОМЕР УЧ=5 сортировать ОЦЕНКИ. НАЗВ ПРЕДМЕТА по возрастанию, ОЦЕНКИ. ДАТА по возрастанию

1.  В Конструкторе запросов постройте запрос по образцу рис. 15.13.

2.  Выполните созданный запрос (результат показан на рис. 15.14).

З. Сохраните запрос под именем «Оценки Волегова».

Рис. 15.13. Образец запроса на выборку оценок, полученных конкретным учащимся

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

15.09.2009

 

 

 

 

 

23.09.2009

 

4

 

 

 

 

10.09.2009

 

з

 

 

 

30.09.2009

 

4

Рис. 15.14. Результат выполнения запроса на выборку оценок, полученных конкретным учащимся

Задание З (уровень 1). Выведите список оценок, полученных по алгебре всеми учениками класса. Отсортируйте этот список по фамилиям учеников и по датам получения оценок.

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФАМИЛИЯ, ОЦЕНКИ. ДАТА, ОЦЕНКИ. ОЦЕНКА где ОЦЕНКИ. НАЗВ сортировать УЧЕНИКИ ФАМИЛИЯ по возрастанию, ОЦЕНКИ . ДАТА по возрастанию

1.  В Конструкторе запросов постройте запрос по образцу рис. 15.15.

2.  Выполните созданный запрос (результат показан на рис. 15.16).

Рис. 15.15. Образец запроса на выборку оценок всех учащихся по алгебре с учетом сортировки получаемого списка

 

 

 

 

 

 

 

 

 

 

 

 

 

Антонов

 

04.09.2009

4

 

 

 

23.09.2009

з

 

 

 

15.09.2009

2

 

 

 

23.09.2009

4

 

Волочкова

 

23.09.2009

5

 

Вяткин

 

11.099009

5

 

 

 

23.09.2009

4

Рис. 15.16. Результат выполнения запроса на выборку оценок всех учащихся по алгебре

З. Сохраните запрос под именем «Оценки по алгебре».

Задание 4 (уровень 1). Выведите список всех двоек, получен-

ных учениками класса, с указанием фамилии ученика, даты получения двойки, предмета и учителя. Отсортируйте этот список по фамилиям учеников.

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФАМИЛИЯ, ОЦЕНКИ. ДАТА, ОЦЕНКИ. НАЗВ_ПРЕДМЕТА, ПРЕДМЕТЫ УЧИТЕЛЬ где ОЦЕНКИ . ОЦЕНКА=2 сортировать УЧЕНИКИ . ФАМИЛИЯ по возрастанию

Для реализации этого запроса используются все три связанные таблицы.

25

1.  В конструкторе запросов постройте запрос по образцу рис. 15.17.

Рис. 15.17. Образец запроса на выборку всех полученных двоек

2.  Выполните созданный запрос (результат показан на рис. 15.18).

Рис. 15.18. Результат выполнения запроса на выборку всех полученных двоек

З. Сохраните запрос под именем «Двоечники».

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

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФАМИЛИЯ, УЧЕНИКИ. ИМЯ, ОЦЕНКИ. НАЗВ ПРЕДМЕТА, ОЦЕНКИ. ДАТА где (ОЦЕНКИ.

или ОЦЕНКИ. НАЗВ и ОЦЕНКИ. ОЦЕНКА=5 сортировать

УЧЕНИКИ . ФАМИЛИЯ по возрастанхоо

1. В конструкторе запросов постройте запрос по образцу рис. 15.19.

Обратите внимание на то, как в условии отбора реализуется сложное логическое выражение. Условия отбора, записанные в одной и той же строке таблицы, объединяются операцией «и». Условие во второй строке таблицы объединяется с условием пер-

Рис. 15.19. Образец запроса на выборку пятерок по алгебре и по истории

вой строки операцией «или». Такая реализация условия отбора в этом запросе равносильна раскрытию скобок в логическом выражении в команде на учебном языке:

или НАЗВ и ОЦЕНКА = 5

тождественно выражению

и ОЦЕНКА5 или НАЗВ и ОЦЕНКА = 5

2. Выполните созданный запрос (результат показан на рис. 15.20).

 

 

 

 

 

 

 

 

 

 

 

А

4 дАТХ

 

 

 

 

 

 

 

 

04.092009

 

Ветюжа

 

 

 

 

 

30.09.2009

15.09.2009

 

 

 

 

 

 

 

07.09.2009

 

Волочова

 

Настасья

 

 

 

23.09.2009

 

Волочкова

 

Настасья

Ис

 

15.09.2009

 

 

 

 

 

 

 

21.09.2009

 

 

 

 

 

 

 

11.09.2009

Рис. 15.20. Результат выполнения запроса на выборку пятерок по алгебре и по истории

З. Сохраните запрос под именем «Пятерки по алгебре и истории».

27

Задание 6 (уровень 1). Вычислите средние оценки для всех учеников по всем предметам. При этом выведите фамилию ученика, название предмета, среднюю оценку и ФИО учителя по данному предмету.

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ . ФАМ, ОЦЕНКИ. НАЗВ_ПРЕДМЕТА,

Avg (ОЦЕНКИ . ОЦЕНКА) , ПРЕДМЕТЫ . УЧИТЕЛЬ группировать УЧЕНИКИ . ФМ, ОЦЕНКИ. НАЗВ ПРЕДМЕТА, ПРЕДМЕТЫ. УЧИТЕЛЬ сортировать УЧЕНИКИ . ФАМ по возрастанию, ОЦЕНКИ . НАЗВ ПРЕДМЕТА по возрастанию

1.  В конструкторе запросов постройте запрос по образцу рис. 15.21.

Рис. 15.21. Образец запроса на вычисление средних оценок

Чтобы в конструкторе запросов появилась строка «Групповая операция», нужно в главном меню Access выбрать команду Вид, Групповые операции. При этом во всех полях новой строки бланка запроса по умолчанию будет установлено значение Группировка. Функция вычисления среднего значения (Avg) выбирается из списка, который раскрывается щелчком мыши на кнопке в этой строке в ячейке для поля «ОЦЕНКА».

2.  Выполните созданный запрос (результат см. на рис. 15.22).

28

З. Сохраните запрос под именем «Средние оценки».

Рис. 15.22. Результат выполнения запроса на вычисление средних оценок

Задание 7 (уровень 1). Получите список учеников, имеющих среднюю оценку по алгебре выше «четверки». При этом выведите фамилию ученика и среднюю оценку по алгебре. Отсортируйте полученный список по фамилиям.

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФИ, ОЦЕНКИ. НАЗВ ПРЕДМЕТА,

Avg (ОЦЕНКИ. ОЦЕНКА) группировать УЧЕНИКИ. ФМ, ОЦЕНКИ. НАЗВ_ПРЕДМЕТА где ОЦЕНКИ. НАЗВ_ПРЕДМЕТА =

“Алгебра” и Avg (ОЦЕНКИ. ОЦЕНКА) >4 сортировать

УЧЕНИКИ . ФАМ по возрастанию

1.  В конструкторе запросов постройте запрос по образцу рис. 15.23.

2.  Выполните созданный запрос (результат см. на рис. 15.24).

З. Сохраните запрос под именем «Средние оценки больше 4».


Рис. 15.23. Образец запроса на выборку учащихся, имеющих среднюю оценку по алгебре выше «четверки»

 

Волочкова

Алгебра

 

5

 

Вяткин

 

 

 

4,5

Рис. 15.24. Результат выполнения запроса на выборку учащихся, имеющих среднюю оценку по алгебре выше «четверки»

Работа 15.4. Расширение базы данных

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

Задание 1 (уровень 1). Дополните ранее созданную БД данными с четвертными оценками учеников.

1.  Создайте в БД новую таблицу «Итоги» следующей структуры:

Имя поля

Тип поля

Длина (формат)

НОМЕР уч

Числовой

Целое

НАЗВ_ПРЕДМЕТА

Текстовый

зо

1 ЧЕТВ

Числовой

Целое

2 ЧЕТВ

Числовой

Целое

З ЧЕТВ

Числовой

Целое

4 ЧЕТВ

Числовой

Целое

год

Числовой

Целое

2.  Свяжите эту таблицу с таблицами «Ученики» и «Предметы» через их общие поля. В результате должна получиться схема, показанная на рис. 15.25.

Рис. 15.25. Схема БД после добавления таблицы «Итоги»

З. Заполните таблицу «Итоги» данными по образцу рис. 15.26.

Рис. 15.26. Образец заполнения таблицы «Итоги»

                      Расширение базы данных                                                                                   31

Задание 2 (уровень 1). Получите список отличников по отдельным предметам. При этом выведите фамилию, имя ученика и предмет, по которому он имеет все пятерки за четверть.

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФАМИЛИЯ, УЧЕНИКИ . ИМЯ, ПРЕДМЕТЫ. НАЗВ ПРЕДМЕТА где ИТОГИ. 1 ЧЕТВ=5 и ИТОГИ. 2 ЧЕТВ=5 и ИТОГИ. З ЧЕТВ=5 и ИТОГИ. 4 ЧЕТВ=5 сортировать УЧЕНИКИ. ФАМИЛИЯ по возрастанию

1.  В конструкторе запросов постройте запрос по образцу рис. 15.27.

Рис. 15.27. Образец запроса на выборку отличников

2.  Выполните созданный запрос (результат показан на рис. 15.28).

 

ФАМИЛИЯ

имя

НАЗВ ПРЕДМЕТА

 

Волегов

 

 

 

Волочкова

Настасья

 

 

 

Волочкова

Настасья

и

 

Волочкова

Настасья

 

 

 

 

 

 

Рис. 15.28. Результат выполнения запроса на выборку отличников

Задание 2 (уровень 1). Вычислите суммы оценок по информатике у всех учеников и выведите полученный список по порядку убывания значений этой суммы.

Для выполнения этого задания в запросе в списке выводимых полей можно определить новое поле, для которого задано имя «СУММА» и формула вычисления его значений.

32

Соответствующая команда на учебном языке запросов:

. выбрать УЧЕНИКИ. ФАМИЛИЯ, СУММА: [ИТОГИ] . [1 ЧЕТВ]+ [ИТОГИ] . [ 2 ЧЕТВ]+ [ИТОГИ] . [3 ЧЕТВ]+ [ИТОГИ] . [4 ЧЕТВ] где ПРЕДМЕТЫ. НАЗВ ПРЕДМЕТА= ”информатика” сортировать СУММА по убыванию

1.  В конструкторе запросов постройте запрос по образцу рис. 15.29.

Рис. 15.29. Образец запроса на вычисление суммы оценок по информатике у всех учеников

Обратите внимание на двоеточие после имени вычисляемого поля и квадратные скобки в выражении для вычисления суммы. Имя поля, заключенное в скобки, обозначает значение этого поля.

2.  Выполните созданный запрос (результат показан на рис. 15.30).

 

ФАМИЛИЯ

СУММА

 

Волочкова

 

 

Антонов

1

 

Волнов

1

 

 

14

 

Веткина

1

 

 

 

Рис. 15.30. Результат выполнения запроса на вычисление суммы оценок по информатике у всех учеников


Работа 15.5. Самостоятельная разработка базы данных

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

Задание 1 (уровень 2). Даны описания отношений реляционной базы данных для информационной системы в определенной предметной области.

1.  Выберите типы для атрибутов.

2.  Используя конструктор таблиц, создайте соответствующие таблицы, организуйте связи между ними и постройте схему БД. З. Создайте формы для просмотра и заполнения таблиц.

4.   Заполните таблицы конкретными данными.

5.   Используя конструктор запросов, реализуйте указанные запросы к БД.

Вариант 1 (Кухня).

Повар (Номер, ФИО, Место_работы, Разряд).

Продукты (Шифр, Наименование, Цена, Количество).

Блюдо (Щцфр, Наименование, Номер_рецепта).

Изготовление (Номер повара,  Шифр блюда, Расход_продукта).

«Изготовление» показывает, какой повар какой продукт и в каком количестве использует для изготовления какого блюда. Реализовать следующие запросы к БД:

1)  вывести наименование самого дорогого блюда;

2)  вывести названия блюд, в которых используются все продукты; З) вывести ФИО всех поваров, которые изготовляют все блюда;

4)   вывести наименования продуктов, которые не используются для приготовления указанного блюда;

5)   вывести ФИО поваров, которые готовят те же блюда, что и указанный повар;

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

Вариант 2 (Поликлиника).

Врач (Номе.), ФИО, Категория, Специализация).

Больной (Щцфр, ФИО, Дата_рождения, Вес, Рост).

Лекарство (Шифр, Название, Изготовитель). Назначение (Номер врача, Шифр больного, Дозировка).

«Назначение» показывает, какому больному какой врач какое лекарство и в какой дозировке выписал.

Реализовать следующие запросы к БД:

1)  вывести ФИО больных, которым разные врачи выписали одно и то же лекарство в разной дозировке;

34

2)  вывести ФИО врачей, которые не выписывали указанное лекарство;

З) вывести названия лекарств, которые были выписаны всем больным;

4)   вывести специализации врачей, у которых лечился указанный больной;

5)   вывести ФИО самого высокого по росту больного из числа пациентов указанного врача;

6)   вывести названия лекарств, которые чаще всего выписывает указанный врач.

Вариант З (Библиотека).

Книга (Цощеп, Название, Издательство, Год_издания, Количество страниц).

Автор (Номер, ФИО, Город_проживания),

Полка (Щцфр, Название, Место_нахождения).

Расстановка (Номер книги, Номер автора, Шифр полки, Количество).

«Расстановка» показывает, на какой полке какая книга какого автора имеется в каком количестве экземпляров.

Реализовать следующие запросы к БД:

1)   вывести ФИО авторов, книги которых стоят на разных полках;

2)   вывести названия полок, на которых стоят книги, изданные в указанном году;

З) вывести ФИО автора, книг которого больше всего в библиотеке;

4)   вывести название города, в котором живет автор, книга которого имеет больше всего страниц на данной полке;

5)   вывести ФИО авторов, книг которых нет на указанной полке;

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

Вариант 4 (Парикмахерская).

Клиент (Щцфр, ФИО, Возраст, Тип волос).

Мастер (Шифр, ФИО, Квалификация).

Прически (Шифр, Название, Цена, Время).

Заказы (Шифр. клиента, Шифр мастера, Шифр прически, дата, время).

«Заказы» показывают, какая прическа какому клиенту кем из мастеров была или будет сделана.

Реализовать следующие запросы к БД:

1)   вывести список клиентов с указанием суммы заказа для указанного мастера;

2)   вывести список квалификаций мастеров для указанного клиента;

З) вывести список названий причесок, выполненных указанным мастером для указанного клиента;

35

4)      вывести список причесок для указанного типа волос или возраста клиента;

5)      вывести ФИО и квалификацию мастера, выполнившего общее количество заказов на наибольшую сумму;

6)      вывести ФИО мастера, умеющего делать все прически;

7)      вывести ФИО клиентов, которые делали прически у всех мастеров;

8)      вывести прически, которые не делались указанному клиенту;

9)      вывести ФИО мастеров, которые больше всего загружены в указанный день;

10) вывести ФИО и возраст клиента, потратившего наибольшее количество денег.

Вариант 5 (Производство).

Рабочий (Щцфр, ФИО, Разряд, Место работы).

Детали (Щщфр, Наименование, Цена).

Изделие (Щцфр, Наименование, Номер проекта).

Изготовление (Шифр рабочего, Щцф2_дещадц, Шифр изделия, Количество деталей).

Реализовать следующие запросы к БД:

1)  вывести список рабочих, которые не участвовали в изготовлении указанного изделия;

2)  вывести список деталей, которые используются во всех изделиях;

З) вывести список изделий, в которых используются все детали;

4)      вывести список рабочих, которые не участвовали в изготовлении указанных изделий;

5)      вывести цену указанного изделия;

6)      вывести названия изделий, в которых используется указанная деталь;

7)      вывести ФИО рабочих, которые собирали указанное изделие;

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

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

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

Вариант 6 (Станция технического обслуживания автомашин ).

Мастер (Шифр, ФИО, квалификация).

Машины (Щцфр, Марка, Цвет, Пробег).

Услуги (Щцфр, Наименование, Цена, Время выполнения).

Заказы (Щцфп_мщсдепд, Шифр машины,  Дата).

Реализовать следующие запросы к БД:

1)   вывести список услуг, выполненных для указанной машины;

2)   вывести список мастеров, которые оказывали все услуги;

З) вывести список машин, которые ремонтировали все мастера;

4)       вывести список мастеров, которые не оказывали заданной услуги владельцам машин заданной марки;

5)       вывести список мастеров, которые не ремонтировали машин ни одной из заданных марок;

6)       вывести сумму, на которую оказал услуги указанный мастер в указанную дату;

7)       вывести список услуг, выполненных мастерами указанной квалификации;

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

9)       вывести марку машины, на ремонт которой было затрачено максимальное время или сумма;

10)   вывести список услуг, оказанных в указанную дату.

Вариант 7 (Магазин).

Товары (Щцфр, Наименование, Стоимость единицы измерения, Вид единицы измерения).

Отделы (ГПифр, Наименование, Этаж).

Продавцы (Шифр, ФИО, Возраст, Пол, Шифр отдела {где работает}).

Продажи (Щцфр_щодара, Щцфр_дродащд, Количество, Дата). «Продажи» показывают, какой товар в каком количестве, когда и кем из продавцов был продан.

Реализовать следующие запросы к БД:

1)      вывести список продавцов, работающих в самом высокорасположенном отделе;

2)      вывести этаж, на котором находится отдел с наибольшим количеством сотрудников;

3)      вывести дату с наибольшим количеством продаж;

4)      вывести список продавцов, которые продают все товары;

5)      вывести список отделов, в которых работают продавцы, не продающие товары;

6)      вывести список товаров, которые не продаются;

7)      вывести список товаров, которые не продаются заданными продавцами;

8)      вывести ФИО продавца, продавшего за указанный диапазон времени наибольшее количество товара;

9)      вывести информацию об указанном товаре (где, когда, кем и в каком количестве он был продан);

37

10)  вывести информацию об указанном отделе на указанную дату

(список товаров, список работников);

11)  вывести информацию о продажах по каждому дню за указанный диапазон времени для магазина в целом.

Вариант 8 (Агентство по обмену жилья).

Квартиры (Щцф», Количество комнат, Площадь, Район, Этаж, Признак спрос/предложение).

Абоненты (Шифр, ФИО, Шифр квартиры).

Агенты (Шифр, ФИО, Номер кабинета).

Обмены (Щцфр-квапмрыд, ЩцФрлдащцры-2, ЩщФп-д-ецща, Дата обмена, Сумма, уплаченная первой квартирой за вторую (может быть не положительной)).

«Обмен» показывает, когда, кем и какая квартира и на какую сумму была обменена.

Реализовать следующие запросы к БД:

1)   вывести список квартир, которые обменивали все агенты;

2)   вывести историю обменов указанной квартиры;

З) вывести список агентов, которые не обменивали квартир;

4)   вывести список абонентов, у которых площадь и количество комнат превышают указанные величины;

5)   вывести список обменов, совершенных указанным агентом;

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

7)   вывести список квартир для указанного района и указанного признака;

8)   вывести список агентов, работавших с указанным абонентом.

Задание 2 (уровень 2). Даны сведения по определенной предметной области. Создайте многотабличную базу данных, удовлетворяющую требованиям третьей нормальной формы. Заполните таблицы заданной информацией. Реализуйте указанные запросы. Вариант 1 (Кафедра).

В университете на кафедре высшей математики работают профессор Носова П. А., профессор Югов П. Л., доцент Борисов В. Р. и старший преподаватель Рагозина И. И. На кафедре прикладной математики работают профессор Егоров Т. А., доцент Шилов С. И. и ассистент Козлов В. В.

Рагозина И. И. имеет следующую учебную нагрузку: преподает дисциплину «Высшая алгебра» — читает лекции в группе ММ25 и ведет практику в группах ММ12 и ММ 13. Шилов С. И.

преподает дисциплину «Программирование» — лекции в группе ММ12, практика в группе ПМЗ4. Егоров Т. А. преподает дисциплину «Матмоделирование» — лекции в группах ПМ44 и ПМ45, а также читает лекции по курсу «Программирование» в группе ПМЗ4. Борисов В.Р. преподает дисциплину «Матанализ» — читает лекции в группе ММ 13. Носова П. А. читает лекции по матанализу в группе ММ 11. Козлов В. В. ведет практику по дисциплине «Численные методы» в группе ПМЗ1. Югов П. Л. преподает дисциплину «Теория функций» — читает лекции в группе ПМ2З. Учебное время распределяется следующим образом:  лекции по матанализу — 96 часа;  лекции по программированию — 32 часа;  практика по программированию — 64 часа;  лекции по теории функций — 64 часа;  лекции и практика по высшей алгебре — по 32 часа;  лекции по матмоделированию — 48 часов;  практика по численным методам — 64 часа.

Реализовать следующие запросы:

1)   получить список всех преподавателей кафедры прикладной математики с указанием должностей; отсортировать список в алфавитном порядке по фамилиям;

2)   получить список учебных дисциплин и форм занятий (лекция, практика), которые ведут сотрудники кафедры вышей математики;

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

4)   получить список практических занятий, которые ведут преподаватели кафедры прикладной математики, с указанием фамилий, должностей, групп, дисциплин и количеств часов; отсортировать список по возрастанию количеств часов.

Вариант 2 (Книжный магазин).

Интернет-магазин www.rimex.ru занимается продажей книг по почте (наложенным платежом или с предоплатой). Постоянные клиенты магазина имеют скидки от 1 до 5 0/0 . Клиент может заказать одновременно произвольное количество книг (это будет рассматриваться как один заказ).

В период с января по май 2007 г. клиентами интернет-магазина были сделаны следующие заказы:


 

80a

 

goa

611

0

0

08

6

6 8

a

6

 

0

628

do

BYH'LHeIf'LV

doeoyHOHhOH

HHawad8HNOOI_I

J09011

 

•8BYOYIf08

doeor40Hh0H

MHawadgHYOOI_I

m-IHYT180dH3-IMLI

BHdO•LOH

,1HedawKg

qHaWBY-HH80•LOH

                                                                                                        • VS-OHO-WOO

• OHH99H,I

•0ONHOHgqNRIf

                                                                             OHH99Hd

                                                                  •oHOYTOITI

H½O'LO

•dH¼B•LO

•dH¼BJO

               •W                                

·00MHOHBqyÄIf

                                                                ·0HOYIfêTII

•Il•LHWO

    'dH    0

 

 

 

 

 

 

 

 

 

 

                          6 91

                                                                                                     qwdêl_l

                          6 91

                                                             UHHHaIf                                                                                                                                                   

a-Il

•ICK

a018a

701~

                     11

                   9 C

•IfK

                                       99 

401fOJMOd•LO•11K

                                     701    9

                                     COI    9

BBY0daa,L•1.fK

                                   92   86

                                                              81-01 0110            a,L91_I

                                -OdL1                                                                                                                                    HVO

                         6 91

BHMHôIf

                   2 It

 

00W

001

BOIOOW

qwdôl_l

 

801tHY0d0d

801fHY0d0,1

Ë80H00HBO

 

'If•n

· •o Kh

•I_I•,L

                   •I.I•,L                                                  

 

•WH

V•IT880001f

•WII

  ·ㄣ0    

  · ·0     

 

 

2008·

2008·

200 10•21

200a70•gI

200870·

2008

2008706a

200 CO· I

200 10·gI

200a·10 I

200a 078

200a 0•

t008W0·61

00a70aC

 


Выполните нормализацию этой таблицы и создайте структуру базы данных, используя конструктор таблиц. Введите данные в таблицы.

Реализуйте следующие запросы к БД:

1)  вывести информацию о дате заказа, ФИО и городе клиента, а также ФИО авторов и названия книг для всех заказов, сделанных в январе—феврале 2007 г. клиентами-немосквичами; информацию отсортировать по дате заказа;

2)  вывести дату заказа, ФИО клиента, город его проживания, скидку, цену книги, а также информацию о стоимости заказа с учетом скидки (создать вычисляемое поле) для всех клиентов; отсортировать итоговую таблицу по дате;

З) вывести ФИО клиента, дату заказа, автора, название книги, цену и вид оплаты для заказов с предоплатой книг стоимостью от 100 до ЗОО рублей включительно; данные отсортировать по ФИО клиента;

4)   вывести информацию об общей сумме заказов на каждую из приведенных в БД дат (использовать кнопку Групповые операции и групповую операцию sum);

5)   вывести общую стоимость всех сделанных заказов для каждого отдельного клиента (использовать кнопку Групповые операции и групповую операцию sum).

Задание З (уровень З). В следующих вариантах заданий описана предметная область, для которой создается информационная система, и основные требования к базе данных. Постройте инфологическую модель данных; разработайте схему реляционной базы данных; заполните БД самостоятельно подобранной (придуманной) вами информацией; постройте не менее семи различных запросов к БД, в которых будут использоваться простые и сложные условия выбора и•сортировки, групповые операции, вычисляемые поля. Вариант 1 (Пансионат).

Разработайте базу данных для распределения и учета свободных мест в пансионате. Пансионат имеет несколько корпусов, каждый из которых содержит разное количество мест разного типа в различных номерах (одноместных, многоместных, люкс, полулюкс). Места могут быть свободными, занятыми или закрытыми на ремонт. В путевках, продаваемых в пансионат, указаны такие атрибуты, как корпус, тип места, дата заезда, длительность пребывания. Возможно кратковременное поселение на более дорогое место с соответствующей доплатой. Система должна обеспечить распределение мест в соответствии с проданными путевками, по-

Работа 15.5. Самостоятельная разработка базы данных                                                            41

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

Вариант 2 (Больница).

Разработайте базу данных для справочно-учетной системы стационара больницы. В стационар поступает больной с некоторым диагнозом (из имеющегося списка) и направляется в палату. В процессе лечения он получает некоторые процедуры и проходит обследования. Соответствующие назначения делает врач. Больной может переводиться из одной палаты в другую в соответствии с его состоянием. База данных должна хранить всю необходимую информацию от поступления больного до его выписки.

Вариант З (Экзамены).

Разработайте реляционную базу данных «Расписание экзаменов». В БД должна содержаться информация о сдаче экзаменов группами разных специальностей и курсов, о принимающих экзамены преподавателях и аудиториях. Необходимо решить задачу составления расписания экзаменов для групп по дням, преподавателям и аудиториям. Между экзаменами необходимо выдерживать паузу в определенное количество дней, зависящее от конкретного экзамена. Экзамены не должны проводиться в воскресные и праздничные дни. Не должно быть «конфликта аудиторий» (когда разные группы сдают экзамены в одно и то же время в одной и той же аудитории) и «конфликта преподавателей» (когда один и тот же преподаватель принимает экзамен в одно и то же время у разных групп).

Вариант 4 (Семейный бюджет).

Разработайте реляционную базу данных «Семейный бюджет». В БД должна содержаться информация о расходах семьи на одежДУ, мебель, еду, развлечения, отдых и т. д. Необходимо вести учет пополнений и трат семейного бюджета, делать прогнозы на блиэкайшее будущее о пополнениях и необходимых тратах, заказе необходимых продуктов с учетом калорийности и требуемого их разнообразия.

Вариант 5 (ЛТагазин игрушек).

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

42

Темы для рефератов по разделу

«Информационные системы и базы данных»

1.  Информационные справочные системы в человеческом

обществе.

2.  История развития технологий баз данных. З. Базы данных в Интернете.

4.   Геоинформационные системы.

5.   Проектирование и программирование баз данных.

6.   СУБД ORACLE.

7.   Информационная система «Галактика».

8.   Информационная система «Консультант плюс».

9.   Информационная система «Гарант плюс».

Раздел 16

Программирование. Часть 2

Работа 16.1. Программирование линейных алгоритмов на Паскале

Цель работы: освоение приемов программирования на Паскале линейных алгоритмов.

Задание.

Для каждой вычислительной задачи составить два варианта программы: 1) с вводом исходных данных с клавиатуры и выводом на экран; 2) с вводом исходных данных из текстового файла и выводом результатов в другой текстовый файл.

Для каждой задачи на составление логических выражений составьте программу, выводящую значение TRUE, если указанное высказывание является истинным, или FALSE — в противном случае (условный оператор использовать нельзя!).

Вычислительные задачи (уровень 1).

1.  Вычислите длину окружности и площадь круга одного и того же заданного радиуса R

2.  Вычислите расстояние между двумя точками с заданными координатами на плоскости: (хр У1) и (Ч, у».

3.  Дана длина ребра куба. Найдите площадь грани, площадь полной поверхности и объем этого куба.

4.  Три резистора с значениями сопротивлений Т, R2, R3 соединены параллельно. Найдите сопротивление всей цепи.

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

6 Вычислите корни квадратного уравнения ах2 + Ьх + с = О с заданными коэффициентами а, Ь и с (предполагается, что а О и дискриминант уравнения неотрицателен).

7.       Найдите площадь равнобедренной трапеции с основаниями а и Ь и углом се при большем основании а.


Задачи на составление логических выражений (уровень 1).

8.       Треугольник со сторонами а, Ь, с является равносторонним.

9.       Целое число является четным двузначным числом.

10.  Треугольник со сторонами а, Ь, с является равнобедренным.

11.  Среди чисел а, Ь, с есть хотя бы одна пара взаимно противоположных чисел.

12.  Заданные числа х и у являются координатами точки, лежащей в первой координатной четверти.

13.  Заданные числа с и являются, соответственно, квадратом и кубом числа а.

14.  Заданное натуральное число лт является двузначным и кратно К.

Вычислительные задачи (уровень 2).

15.  Заданы координаты трех вершин треугольника: (хр И), (ч, у», (хз, уз). Найдите его периметр и площадь.

16.  Найдите произведение всех цифр заданного четырехзначного числа.

17.  Вычислите площадь и периметр правильного У-угольника, описанного вокруг окружности радиуса R (лт — целого типа, R — вещественного типа).

18.  Дано натуральное число Т, которое представляет собой длительность прошедшего времени в секундах. Выведите заданное значение длительности в часах, минутах и секундах в следующей форме: НН ч ММ мин SS с.

19.  Дано действительное число R вида nnn.ddd (по три цифровых разряда в дробной и целой частях). Поменяйте местами дробную и целую части числа и выведите полученное новое значение.

20.  Составьте программу для перевода радианной меры угла в градусы, минуты и секунды.

21.  С начала суток часовая стрелка повернулась на у градусов (О у < 360, у — вещественное число). Определите количество полных часов и полных минут, прошедших с начала суток. Сформулируйте и решите обратную задачу.

Задачи на составление логических выражений (уровень 2).

22.  (хт, У1) и (ху !/2) — координаты левой верхней и правой нижней вершин прямоугольника. Точка А(х, у) принадлежит этому прямоугольнику.

линейных алгоритмов на Паскале

23.  Заданное четырехзначное число читается одинаково слева направо и справа налево.

24.  В заданном натуральном трехзначном числе лт имеется четная цифра.

25.  Сумма каких-либо двух цифр заданного трехзначного натурального числа лт равна его третьей цифре.

26.  Сумма цифр заданного четырехзначного числа лт превосходит произведение цифр этого числа на 1.

27.  Сумма двух последних цифр заданного трехзначного числа лт меньше заданного числа К, а первая цифра — больше 5.

28.  Среди первых трех цифр дробной части заданного вещественного числа имеется нуль.

Вычислительные задачи (уровень З).

29.  Дан произвольный треугольник АВС, для которого определен следующий набор характерных параметров: а, Ь, с — стороны треугольника; а, р, у — углы (в градусах); h — высота, опущенная на сторону с; S — площадь; Р — периметр треугольника. По трем заданным параметрам вычислить все остальные (сочетания параметров определяются вариантами задания). Примечание: входные (исходные) и выходные значения углов должны быть представлены в градусной мере.

с

в с

Варианты заДания;

10) а,11) а,12) а, 13) s,14) п, а, р; 15) ь,

Задачи на составление логических выражений (уровень З).

30.  Целая и дробная части заданного вещественного числа одинаковы.

31.  Заданы координаты трех точек плоскости. Эти точки не лежат на одной прямой.

32.  Первые две цифры в дробной части заданного вещественного числа совпадают с записью целой части этого числа.

33.  Точка с координатами (х, у) принадлежит части плоскости, леэкащей между прямыми у = т и у = п (т п).

34.  Шахматный король за один ход может переместиться с одного заданного поля на другое (где каждое поле задано двумя координатами — целыми числами от 1 до 8).

35.  Шахматный ферзь за один ход может переместиться с одного заданного поля на другое (где каждое поле задано двумя координатами — целыми числами от 1 до 8).

Работа 16.2. Программирование алгоритмов с ветвлением

Цель работы: освоение приемов программирования на Паскале алгоритмов с ветвлением.

Вычислительные задачи (уровень 1).

1.      Даны два угла треугольника (в градусах). Определите, существует ли такой треугольник, и если да, то является ли он прямоугольным .

2.      На плоскости ХОУ задана своими координатами точка А. Укажите, где она расположена: на какой оси или в каком координатном углу.

3.      Грузовик выехал из одного города в другой со скоростью  км/ч. Через t ч в этом же направлении выехал легковой автомобиль со скоростью 02 км/ч. Составьте программу, определяющую, догонит ли легковой автомобиль грузовик через t1 ч после своего выезда.

4.      Напишите программу для вычисления суммы большего и меньшего из трех заданных чисел.

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

6.      Для четырех заданных чисел найдите значение max(min(a, Ь), min(c, d)).


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

Вычислительные задачи (уровень 2).

8.      Заданы размеры А и В прямоугольного отверстия и размеры х, у, z кирпича. Определите, пройдет ли кирпич через отверстие.

9.      Два расположенных в первом квадранте координатной плоскости прямоугольника со сторонами, параллельными осям координат, заданы координатами своих левого верхнего и правого нижнего углов. Для первого прямоугольника это точки (хт, У1) и (ху О), для второго — (хз, уз), (х4 , О). Составьте программу, определяющую, пересекаются ли данные прямоугольники, и если да, то вычисляющую площадь их общей части.

10. В небоскребе лт этажей и всего один подъезд. На каждом этаже по З квартиры. Лифт может останавливаться только на нечетных этажах. Человек садится в лифт и набирает номер нужной ему квартиры М. Вычислите, на какой этаж лифт должен доставить пассажира.

11.


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

12. Известно, что из четырех чисел Ч, ау аз и а4 одно отличается от трех других, равных между собой. Запишите порядковый номер этого числа в переменную п.

13. Составьте программу, проверяющую, не приводит ли суммирование двух целых чисел А и В к переполнению (т. е. к результату, большему, чем 32767). Если возникает переполнение, то надо сообщить об этом, иначе — вывести сумму заданных чисел.

Вычислительные задачи (уровень З).

14. На плоскости заданы координаты вершин четырехугольника. Определите, является ли он: а) ромбом; б) параллелограммом; в) прямоугольником; г) квадратом.

15. Для двух треугольных пирамид, заданных длинами ребер, определите, у какой из них площадь полной поверхности больше и на сколько.

16. Дана точка А(х, у). Определите, принадлежит ли она треугольнику с вершинами в точках (хт, Щ), (х2, џ2), (хз, уз).

17. Напишите программу, определяющую, будут ли прямые „41х + В1У + Ст = О и „42х + В2У + С2 О перпендикулярными. Если нет, то найдите угол между ними.

18. Заданы координаты вершин прямоугольника: (хр И), (х2, У2), (хз, уз), (х4 , у4). Определите площадь части прямоугольника, расположенной в первой координатной четверти.

19.


Найдите координаты точек пересечения прямой у = Кх + Ь и окружности радиуса R с центром в начале координат. Определите, в каких координатных четвертях находятся эти точки пересечения. Если точек пересечения нет или прямая касается окружности, то выдайте соответствующее сообщение.

20. Дана точка А(х, у). Определите, принадлежит ли она прямоугольнику с вершинами в точках (ч, Щ), (Ч, у», (хз, уз),

Задачи на определение принадлежности точки заданной области (уровень 2). Составьте программу, определяющую для точки с заданными координатами (Х, У), принадлежит ли она заштрихованной области. Вид области определяется вариантом задания. Варианты заДания:



Pa3aeJ116. IIporpaMMupoBaHHe. t-IacTb

13 ·

14 ·

15 ,

16 ·

17 ·

18 ·

19 ·

20.

Задачи на использование оператора выбора (уровень 1).

1.  Для каждой введенной цифры (от О до 9) выведите соответствующее ей название на английском языке (О — zero, 1 — опе, 2 — two и т. д.).

2.  Составьте программу, которая по заданному числу (от 1 до 12) выводит название соответствующего месяца на английском языке.

З. Напишите программу, которая по введенному числу номеру класса (от 1 до 11) выдает соответствующее сообщение: «Привет, К-классник». Например, если К = 1, то должно выдаваться сообщение «Привет, первоклассник», при 4 — сообщение «Привет, четвероклассник» и т. д.

4.      Составьте программу, позволяющую получить словесное описание школьных оценок (1 — «плохо», 2 — «неудовлетворительно», З — «удовлетворительно», 4 — «хорошо», 5 — «отлично»).

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

1 б.

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

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

8.      Напишите программу, которая по номеру дня недели (целое число от 1 до 7) выдает расписание уроков в вашем классе в этот день.

Задачи на использование оператора выбора (уровень 2).

9.      Составьте программу, которая по заданному году и номеру месяца определяет количество дней в этом месяце.

10. Элементами круга являются радиус (первый элемент), диаметр (второй элемент) и длина окружности (третий элемент). Составьте программу, которая по номеру элемента запрашивает соответствующее числовое значение и вычисляет площадь КРУга.

11. Элементами прямоугольного равнобедренного треугольника являются: 1) катет а; 2) гипотенуза Ь; З) высота, опущенная из вершины прямого угла на гипотенузу h; 4) площадь S. Составьте программу, которая по заданному номеру и числовому значению соответствующего элемента вычисляет значения всех остальных элементов треугольника.

12. В старояпонском календаре был принят 12-летний цикл, годы в пределах которого носили названия животных: крысы, коровы, тигра, зайца, дракона, змеи, лошади, овцы, обезьяны, курицы, собаки и свиньи. Напишите программу, которая для введенного номера года печатает его название по старояпонскому календарю. (Для справки: 1996 г. — год крысы — являлся началом очередного цикла.)

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

14. Напишите программу, которая по введенному числу — номеру месяца (от 1 до 12) выдает все приходящиеся на этот месяц праздничные дни. Например, если введено число 1, то это 1 января (Новый год) и 7 января (Рождество).


15. Дано натуральное число „У. Если оно делится на 4, то выведите на экран запись: лт = 4 х К (где К — соответствующее частное); если остаток от деления на 4 равен 1, то выведите запись: лт = 4 х К + 1; если остаток от деления на 4 равен 2, то запись: лт 4 х К + 2; если остаток от деления на 4 равен З, то запись: —4 х К + З. Например: 12 4 х 3, 22 = 4 х 5 + 2.

16. Элементами равностороннего треугольника являются: 1) сторона а; 2) площадь S; З) высота h; 4) радиус вписанной окружности 5) радиус описанной окружности R. Составьте программу, которая по заданному номеру и значению соответствующего элемента вычисляет значения всех остальных элементов треугольника.

Работа 16.3. Программирование циклических алгоритмов на Паскале

Цель работы: освоение приемов программирования на Паскале циклических алгоритмов.


Суммы и произведения числовых последовательностей (уровень 2).

1.  Дано натуральное число N. Вычислите значение выражения:

2.  Дано натуральное число N. Вычислите значение выражения:

1 1     1 sin 1 sin 1 + sin 2 sin1 + sin2 + + sin лт

З. Дано натуральное число N. Вычислите произведение первых лт сомножителей:

4.   Дано натуральное число п. Вычислите значение выражения:

5.   Вычислите значение выражения:

(1 + sin О, 1)(1 + sin О, 2) х х (1 + sin 10).

6.   Дано натуральное число N. Вычислите значение выражения:

cos1 cos1 + cos 2 sin1 sin 1 + sin 2

7.   Дано действительное число х. Вычислите значение выражения:

х11 х13

11! 13! •

8.     Даны натуральное число п и действительное число х. Вычислите значение выражения:

S = sinx + sin sin х + + sin sin ... sin х.

п раз

9.     Дано действительное число х. Вычислите значение выражения:

                                           (х           -          - 7) х х (х - 63)


(х — 2)(х — 4)(х — 8) х х (х — 64)

10.Дано натуральное число п, Вычислите значение выражения:

S = 1-2 +2 -3-4     • (п +1)      х 2п.

11.Дано натуральное число п. Вычислите значение выражения:

                               1       1

                                              1-—                                  где п>2.

                                                              22             32

12.Вычислите значение выражения по схеме Горнера:

у = х10 + 2х 9 + 3х8 + +10х +11.

13.Числа Фибоначчи ( [п) определяются формулами

                                        '         = К-1 + Т-2 при п = 2, з, .

Для заданного значения р определите значение f .

14.Даны натуральные числа п и К. Вычислите значение выражения:

Итерационные циклы (уровень 2).

1.  Дан числовой ряд и некоторое малое число Е (например,  — 0,00001). Найдите сумму членов ряда, модуль которых больше или равен заданному значению г. Общий вид формулы для вычисления п-го члена ряда определяется вариантом задания .

Варианты заДания:

1.   

2n — 1

1

                                                        1    1

                             10П                                                                             п!

                  п!                                 

                       п!                                           

п! 10.


 3пп

п!

     11.                                               12.

х2П+1

13.   ап

2.  Найдите наименьший номер члена последовательности, заданной рекуррентной формулой, для которого выполняется условие: — ап 1 < Е (где Е — некоторая малая величина). Выведите на экран этот номер и все элементы ар где i 1, 2

14.   ап — arctg ап_1 + 1,

1 ап—1

16.             — —tg Ч -1,    — 0,5.

17.             = —cos ап_1, а1 0,5.

2

18.

2ап—1

ап—1 + ап—2

              19.     2.

2

х

21. ап

2а:-1

Циклы при обработке целых чисел (уровень 2).

1.  Натуральные числа а, Ь, с называются числами Пифагора, если выполняется условие: а 2 + 6 2 8. Выведите на экран все числа Пифагора, меньшие заданного числа N.

2.  Даны два натуральных числа т и п. Определите, есть ли в записи числа т цифры, одинаковые с цифрами в записи числа п.


З. Найдите наибольшую и наименьшую цифры в записи заданного натурального числа.

4.       Дано натуральное число N. Найдите и выведите на экран все числа в интервале от 1 до лт — 1, у которых сумма всех цифр совпадает с суммой цифр заданного числа. Если же таких чисел нет, то выведите слово «нет». Пример: для лт 44 это числа 17, 26 и 35.

5.       Дано натуральное число N. Найдите и выведите на экран все числа в интервале от 1 до лт — 1, у которых произведение всех цифр совпадает с суммой цифр заданного числа. Если же таких чисел нет, то выведите слово «нет». Пример: для лт = 44 это числа 18 и 24.

6.       Дано натуральное число лт (N > 9). Определите количество нулей, идущих подряд в младших разрядах данного числа. Пример: для лт = 1020000 количество таких нулей равно 4.

7.       Дано натуральное число лт (N > 9). Определите количество нулей в записи числа, кроме нулей в его младших разрядах. Пример: для лт 10025000 количество таких нулей равно 2.

8.       Натуральное число М называется совершенным, если оно равно сумме всех своих делителей, включая 1, но исключая само себя. Выведите на экран все совершенные числа, меньшие заданного числа N.

9.       Дано целое число п > 2. Выведите на экран все простые числа из диапазона [2, п].

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

11.  Дано натуральное число N. Определите количество цифр в записи этого числа, которые имеют наименьшее значение. Пример: для лт = 4548 количество цифр с наименьшим значением равно двум (две цифры 4).

12.  Дано натуральное число N. Определите количество цифр в записи этого числа, которые имеют наибольшее значение. Пример: для лт 1808 количество цифр с наибольшим значением равно двум (две цифры 8).

13.  Дано натуральное число N. Получите новое число М, которое образуется из числа лт путем замены его последней цифры на значение наименьшей цифры в записи числа N. Пример: для лк 128452 получаем М = 129451.

14.  Дано натуральное число N. Получите новое число М, которое образуется из числа лт путем замены его последней цифры на значение наибольшей цифры в записи числа N. Пример: для ЛТ = 128452 получаем М = 128458.

15. 


ПалинДром это сочетание символов, которое читается одинаково слева направо и справа налево. Например, числа 4884 и 121 являются палиндромами. Составьте программу, определяющую, является ли заданное натуральное число палиндромом.

Циклы при обработке целых чисел (уровень З).

16.  Дано натуральное число К. Выведите на экран К-10 цифру последовательности 12345678910111213 в которой записаны подряд натуральные числа.

17.  Дано натуральное число К. Выведите на экран К-ю цифру последовательности 149162536 в которой записаны подряд квадраты натуральных чисел.

18.  Составьте программу для перевода заданного натурального числа п в шестнадцатеричную систему счисления.

19.  Дано натуральное число п. Переставьте его цифры так, чтобы получить наибольшее по величине число, записанное теми же цифрами.

20.  Дано натуральное число п. Переставьте его цифры так, чтобы получить наименьшее по величине число, записанное теми же цифрами.

Работа 16.4. Программирование с использованием подпрограмм

Цель работы: освоение программирования на Паскале подпрограмм-функций и подпрограмм-процедур и их использования при решении задач.

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

Задание 1 (уровень 1).

1.  Составьте программу для вычисления наибольшего общего делителя и наименьшего общего кратного двух натуральных чисел НОК(А, В) =

2.  Вычислите площадь правильного шестиугольника со стороной а, используя подпрограмму для вычисления площади треугольника.


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

4.      Даны две дроби: — (где А, В, С, D — натуральные чис-

ла). Составьте программу для выполнения операции деления дроби на дробь. Ответ должен иметь вид несократимой дроби.

5.      Даны две дроби: — (где А, В, С, D — натуральные чис-

ла). Составьте программу для выполнения операции умножения дроби на дробь. Ответ должен иметь вид несократимой дроби.

6.      Даны две дроби:  (где А, В, С, D — натуральные чис-

ла). Составьте программу для выполнения операции вычитания второй дроби из первой. Ответ должен иметь вид несократимой дроби.

7.      Даны числа Х, У, 74, Т — длины сторон четырехугольника. Вычислите его площадь, если угол между сторонами с длинами Х и У — прямой.

8.      Дано простое число. Найдите следующее за ним простое число.

9.      Для заданного натурального числа п найдите его наименьший нечетный натуральный делитель К (К * 1).


с использованием подпрограмм

Задание 2 (уровень 2).

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

1

11.  Напишите программу для вычисления суммы 1 + — + — + + — для заданного числа п. Результат представьте в виде несократимой дроби — (где р и q — натуральные числа).

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

13.  Имеется лента из автобусных билетов. Номер билета шестизначный, номера билетов идут подряд, увеличиваясь на 1. Составьте программу, определяющую количество счастливых билетов на этой ленте, если наименьший номер билета равен N, а наибольший — М. Билет считается счастливым, если сумма первых трех его цифр равна сумме последних трех цифр.

14.  Из заданного числа вычли сумму его цифр. Из результата вновь вычли сумму его цифр и т. д. Определите, через сколько повторов таких действий получится нуль.

15.  Два простых числа называются «близнецами», если они отличаются друг от друга на 2 (например, числа 41 и 43). Выведите на экран все пары «близнецов» из отрезка [п, 2n], где п — заданное натуральное число, большее 2.

16.  На отрезке [100; N] (где 2 10 < лт е: 2 31 ) найдите количество чисел, составленных из цифр а, Ь, с.

17.  Найдите все натуральные п-значные числа, цифры в которых образуют строго возрастающую последовательность (например, это числа 1234 и 5789).

Задание З (уровень З).

18.  Дано четное число п > 2. Проверьте для него. гипотезу Гольдбаха: каждое четное п может быть представлено в виде суммы двух простых чисел.

19.  Составьте программу для разложения заданного натурального числа на простые множители. Например, 200 = 23 х 5 2 .

20.  Дано натуральное число п. Найдите все меньшие этого значения п числа Мерсенна. (Простое число называется числом Мерсенна, если оно может быть представлено в виде 2Р — 1, где р — тоже простое число. Например, 31 = 2 5 — 1 — число Мерсенна.)

21.  Два натуральных числа называются «дружественными»,“ если каждое из них равно сумме всех делителей другого числа (кроме него самого). Например, числа 220 и 284 являются «дружественными». Найдите все пары «дружественных» чисел, не превышающих заданное число N.

22.  Натуральное число, в записи которого содержится п цифр, называется числом Армстронга, если сумма его цифр, возведенная в степень п, равна самому числу. Найдите все числа Армстронга от 1 до заданного значения К.

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

24.  Составьте программу для нахождения чисел из интервала [М; М, имеющих наибольшее количество делителей.

25.  Дано натуральное число п > 1. Определите длину периода десятичной записи дроби 1/n.

Работа 16.5. Программирование обработки массивов

Цель работы: освоение приемов программирования на Паскале для обработки одномерных и двумерных массивов.

Одномерные массивы

Задание 1 (уровень 1).

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

2.  Дан массив из лт действительных чисел. Подсчитайте, сколько в нем содержится отрицательных, подожительных и нулевых элементов.

З. Даны действительные числа а а , ап. Поменяйте местами первый наибольший элемент с последним наименьшим элементом.

4.      В заданном одномерном массиве попарно поменяйте местами элементы, стоящие на четных местах, с соседними элементами, стоящими на нечетных местах.

5.      Задана последовательность {Xi} из вещественных чисел. Вычислите элементы последовательности {Si} по формуле:

где М среднее арифметическое значение последовательности Х.

6.      Задан массив из целых чисел. Вычислите сумму его элементов, порядковые номера которых совпадают с значениями самих этих элементов.

7.      Определите, сколько процентов от всего количества элементов заданной последовательности целых чисел составляют нечетные элементы.

8.      Дан массив X[N] целых чисел. Не используя другие массивы, переставьте его элементы в обратном порядке. Задание 2 (уровень 2).

9.      Задана последовательность из лт вещественных чисел. Вычислите сумму чисел, порядковые номера которых являются простыми числами.

10.  Последовательность Ч, 02 , , ап состоит из нулей и единиц. Переместите в начало этой последовательности все нули, а затем — все единицы.

11.  Даны действительные числа Ч, ау , 02п. Найдите значение тах(ат + + а.гп_1, , сп + Ч +1

12.  Дана последовательность действительных чисел а1 ... а Вставьте в нее заданное действительное число Ь так, чтобы последовательность осталась неубывающей.

13.  Дана последовательность целых чисел Ч, Ч, а п. Найдите в ней такие пары чисел а а что а. + а = т (где т — заданное целое число).

14.  Даны координаты п точек на плоскости: (Х1 , У1), ..., (хп, Уп) (п 30). Найдите номера двух точек, расстояние между которыми максимально (такая пара точек — единственная).

15.  Дан массив, состоящий из п натуральных чисел. Получите из него новый массив, элементами которого являются элементы исходного, оканчивающиеся на заданную цифру К.

16.  Дан массив целых чисел. Найдите в этом массиве минимальный элемент т и максимальный элемент М. Выведите на экран по возрастанию все целые числа из интервала (т; М), которые не входят в заданный массив.

17.  Даны две последовательности: ар а,д,

(где т < п). В каждой из них значения элементов различны. Определите, верно ли, что все элементы второй последовательности входят в первую последовательность.

18.  Дана последовательность вещественных чисел. Выведите на экран значения и номера элементов: наибольшего, наименьШеГО и наименее отличающегося от среднего арифметического значения.

62

19.  Сформируйте массив простых чисел, не превышающих заданного натурального числа N.

20.  Сформируйте массив простых множителей заданного числа. Задание З (уровень З).

21.  В одномерном массиве переместите все отрицательные элементы в начало массива, а все остальные — в его конец с сохранением порядка их следования друг за другом. Дополнительный массив не используйте.

22.  В одномерном массиве с четным количеством элементов (2N) содержатся координаты лт точек плоскости, которые располагаются в следующем порядке: хр Щ, х2, У2, хз, уз, и т. д. Определите:

а) минимальный радиус окружности с центром в начале координат, которая содержит все эти точки;

б) внутренний и внешний радиусы кольца с центром в начале координат, которое содержит все эти точки;

в) номера точек, которые могут являться вершинами квадрата;

г) номера точек, которые могут являться вершинами равнобедренного треугольника;

д) номера наиболее и наименее удаленных друг от друга точек;

е) три точки, являющиеся вершинами треугольника, для которого разность количеств точек вне его и внутри является минимальной.

23.  Дана последовательность целых чисел. Найдите количество различных чисел в этой последовательности.

24.  На плоскости п точек заданы своими координатами; задана также окружность радиуса R с центром в начале координат. Укажите:

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

б) множество всех треугольников, содержащихся внутри окружности.

25.  Разделите заданный массив на две части, поместив в первую часть элементы, большие среднего арифметического их суммы, а во вторую меньшие (указанные части массива не сортируйте).

26.  Даны две последовательности: 01 а.2 ... ап и b1 b2 ... Ь Получите из них новую последовательность чисел так, чтобы она тоже была неубывающей. Дополнительный массив не используйте.

27.  Сортировка вставками. Дана последовательность чисел , ап. Требуется расположить в ней числа в порядке возрастания. Делается это так. Пусть а а 0 i — уже упорядоченная часть исходной последовательности, т. е. 01 02 ас Берется следующее число Щ+1 и вставляется в эту упорядоченную последовательность так, чтобы новая последовательность также была возрастающей. Этот процесс производится до тех пор, пока все элементы от i + 1 до п не будут расставлены на нужные места. Примечание. Место размещения очередного элемента в отсортированной части последовательности нужно определять с помощью двоичного поиска (соответствующий алгоритм оформите в виде отдельной функции).

28.  Алгоритм сортировки фон Неймана. Отсортируйте массив ..., ап по неубыванию с помощью алгоритма сортировки слияниями:

1)       каждая пара соседних элементов объединяется («сливается») в одну группу из двух элементов (последняя группа может состоять только из одного элемента);

2)       каждая пара соседних двухэлементных групп сливается в одну четырехэлементную группу и т. д.

При каждом очередном слиянии новая укрупненная группа упорядочивается.

29.  Шейкер-сортировка. Алгоритм «пузырьковой» сортировки легко улучшить, запоминая, производился ли на данном проходе какой-либо обмен элементов. Если нет, то это означает, что сортировка завершена, и работу программы можно закончиты Еще одно улучшение заключается в периодическом изменении направления сортировки, что позволяет бороться с некоторой асимметрией «пузырькового» метода. Напишите программу, реализующую данный улучшенный алгоритм.

Двумерные массивы

Задание 1 (уровень 1).

1.  Вычислите сумму и количество положительных элементов матрицы A[N, М, находящихся над главной диагональю.

2.  Дана целая квадратная матрица п-го порядка. Определите, является ли она магическим квадратом (т. е. одинаковы ли суммы элементов во всех ее строках и столбцах).

3.  Определите, является ли заданная целая квадратная матрица П-го порядка симметричной относительно главной диагонали.

4.  Дана целочисленная квадратная матрица. Найдите в каждой ее строке наибольший элемент и поменяйте его местами с элементом главной диагонали в этой же строке.

5.  Упорядочите по возрастанию элементы каждой строки матрицы размерами п х т.

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

7.       Квадратная матрица, симметричная относительно главной диагонали, задана верхним треугольником в виде одномерного массива. Восстановите исходную матрицу и выведите ее на экран по строкам.

8.       Дана матрица порядка п и число К. Разделите элементы К-й строки матрицы на диагональный элемент, расположенный в этой строке.

9.       Для целочисленной квадратной матрицы найдите количество элементов, кратных заданному значению К, и наибольший из этих элементов.

10.  Найдите наибольший и наименьший элементы прямоугольной матрицы и поменяйте их местами.

11.  В заданной действительной квадратной матрице порядка п найдите сумму элементов строки, в которой расположен элемент с наименьшим значением (предполагается, что он единственный).

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

13.  Определите наименьший элемент каждой четной строки матрицы А[М, М.

Задание 2 (уровень 2).

14.  Дана квадратная матрица. Переставьте в ней строку с максимальным элементом на главной диагонали со строкой с заданным номером т.

15.  Определите номера строк матрицы R[M, М, в которых хотя бы один элемент равен заданному значению с, и умножьте элементы этих строк на заданное значение d.

16.  Дана матрица B[N, М]. Найдите в каждой ее строке максимальный и минимальный элементы и поменяйте их местами с первым и последним элементами этой строки соответственно.

17.  Элемент матрицы назовем сеДловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в сво-


ем столбце или, наоборот, является наибольшим в своей строке и наименьшим в своем столбце. Для заданной целой матрицы размерами п х т выведите на экран индексы всех ее седловых точек.

18.  Дана вещественная матрица размерами п х т. Переставляя ее строки и столбцы, добейтесь, чтобы наибольший элемент (или один из наибольших элементов, если их несколько) оказался в верхнем левом углу.

19.  Дана квадратная матрица A[N, М. Запишите в ней на место отрицательных элементов нули, а на место положительных единицы. Выведите на печать нижнюю треугольную матрицу в общепринятом виде.

20.  Дана действительная матрица размерами п х т, все элементы которой различны. В каждой строке выбирается элемент с наименьшим значением, а затем среди этих чисел выбирается наибольшее. Определите индексы этого элемента.

21.  Дана действительная квадратная матрица порядка лт (N — нечетное), все элементы которой различны. Найдите наибольший элемент среди стоящих на главной и побочной диагоналях и поменяйте его местами с элементом, стоящим на пересечении этих диагоналей.

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

23.  Дана прямоугольная матрица. Найдите в ней строку с наибольшей и строку с наименьшей суммой элементов. Выведите на печать найденные строки и суммы их элементов.

24.  В заданной действительной квадратной матрице порядка п найдите наибольший по модулю элемент. Получите квадратную матрицу порядка п — 1 путем отбрасывания из исходной матрицы строки и столбца, на пересечении которых расположен найденный элемент.

25.  Расположите столбцы заданной матрицы D[M, N] в порядке возрастания элементов К-й строки (1 К М).

Задание З (уровень 3).

26.  Среди столбцов заданной целочисленной матрицы, содержащих только элементы, по модулю не превышающие 10, найдите столбец с минимальным произведением элементов.

27.  Для заданной квадратной матрицы найдите такие значения Ь, что К-я строка матрицы совпадает с К-м столбцом.

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

29.  Составьте программу, которая заполняет квадратную матрицу порядка п натуральными числами 1, 2, 3, , п2 , записывая их в нее «по спирали». Например, для п 5 получается матрица:

1 '2 3 4 5 16 17 18 19 6

15 24 25 20 7

14 23 22 21 8

13 12 11 10 9

30.  Среди строк целочисленной матрицы, содержащих только нечетные элементы, найдите строку с максимальной суммой модулей элементов.

31.  Подсчитайте количество строк заданной целочисленной матрицы лт х N, являющихся перестановками чисел 1, 2, лт (т. е. содержащих каждое из чисел 1, 2, лт ровно один раз).

Работа 16.6. Программирование обработки строк символов

Цель работы: освоение приемов программирования на Паскале для обработки символьных строк.

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

Задание 1 (уровень 1).

1.  Дана строка, заканчивающаяся точкой. Подсчитайте количество слов в этой строке.

2.  Дана строка, содержащая английский текст. Найдите в ней количество слов, начинающихся с буквы «Ь».

З. В заданной строке замените все двоеточия («:») точкой с запятой («;»). Подсчитайте количество сделанных замен.

4.      Дана строка длиной п символов. Преобразуйте ее, заменив звездочками все двоеточия (с.»), встречающиеся среди первых п/2 символов (), и заменив точками все восклицательные знаки, встречающиеся среди символов, стоящих после п/2 символов.

строк символов

5.      В заданной строке удалите символ двоеточия («:») и подсчитайте количество удаленных символов.

6.      Дана строка символов, среди которых есть одна открывающаяся и одна закрывающаяся скобки. Выведите на экран все символы, расположенные внутри этих скобок.

7.      Дана строка, содержащая некоторый текст. Найдите длины самого короткого и самого длинного слов.

8.      Дана строка, содержащая текст, заканчивающийся точкой. Выведите на экран все слова, содержащие три буквы. Если таких слов нет, то выведите сообщение об этом.

9.      Дана строка. Преобразуйте ее, удалив каждый символ «*» и повторив дважды подряд каждый другой символ.

10.  Дана строка. Подсчитайте количество букв «К» в последнем ее слове.

11.  Определите, сколько раз в тексте встречается заданное слово.

Задание 2 (уровень 2).

12.  Дана строка-предложение на английском языке. Преобразуйте эту строку так, чтобы каждое слово в ней начиналось с заглавной буквы.

13.  Дана строка. Подсчитайте, сколько в ней имеется различных символов. Выведите эти символы на экран.

14.  Дана строка. Подсчитайте длину самой длинной последовательности подряд идущих букв «а».

15.  Имеется строка, содержащая буквы латинского алфавита и цифры. Выведите на экран длину самой длинной последовательности цифр, идущих подряд.

16.  Дана строка. Выведите на экран те ее слова, которые содержат хотя бы одну букву «К».

17.  Дана строка. Найдите в ней слова, которые начинаются и оканчиваются одной и той же буквой.

18.  Строка содержит одно слово. Проверьте, читается ли оно одинаково справа налево и слева направо (т.е. является ли это слово палиндромом).

19.  В текстовом сообщении слова зашифрованы: каждое из них записано наоборот. Расшифруйте заданное сообщение.

20.  Статистика. Дан некоторый текст. Напишите программу, определяющую процентное соотношение строчных и прописных букв к общему числу символов в нем.


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

Задание З (уровень 3).

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

23.  Из заданной символьной строки выберите символы, которые встречаются в ней только один раз, и выведите их на экран в том порядке, в котором они встречаются в тексте.

24.  Расстояние межДу Двумя словами равной длины — это количество знаковых позиций, символами в которых различаются эти слова. В заданном предложении найдите пару слов заданной длины с максимальным расстоянием.

25.  Форматирование текста. Дан текст, состоящий из предложений, разделяемых точками. Напишите программу, выполняющую форматирование текста по следующим правилам:

      


после каждой точки в конце предложения должен стоять хотя бы один пробел;

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

Примечание: исходный текст может быть как на русском, так и на английском языке.

26.  Лишние пробелы. Дана строка, состоящая из слов, разделенных пробелами. Напишите программу, удаляющую лишние пробелы. Пробел считается лишним, если он:  стоит в начале строки;

       стоит в конце строки;  следует за другим пробелом (т. е. несколько пробелов подряд надо заменить одним пробелом).

27.  Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Выведите на экран строку, содержащую те же самые слова (разделенные одним пробелом), но расположенные в обратном порядке.

28.  Дана строка-предложение. Зашифруйте ее, разместив вначале все символы, расположенные на четных местах, а затем в обратном порядке все символы, расположенные на нечетных местах. Например, строка «Программа» превратится в «ргамамроП»). Запрограммируйте решение обратной задачи (расшифровку строки).

Задачи на «длинную арифметику» (уровень З).

«Длинными числами» называют целые числа, значения которых выходят за допустимый диапазон для величин целых типов (больше значения MaxInt). Для их представления используются символьные строки.

29.  Составьте программу для сравнения двух «длинных» многозначных чисел на «больше», «меньше», «равно».

30.  Составьте программу, суммирующую два натуральных п-значных числа (п > 20).

31.  Составьте программу для вычисления степеней чисел вида ап (а > MaxInt, п > 10).

32.  Составьте программу для вычисления значения 264 — 1. В записи результата нужно сохранить все значащие цифры.

33.  Составьте программу для вычисления значения факториала числа 100 (100!).

Работа 16.7. Программирование обработки записей


Цель работы: освоение приемов программирования на Паскале для обработки величин комбинированного типа — записей.

Исходя из условия задачи, требуется определить структуру комбинированного типа данных и типы полей. Исходные данные нужно разместить в текстовом файле. В программе нельзя использовать массивы записей. Результаты нужно выводить на экран и в текстовый файл.

Задание 1 (уровень 1).

1.  Из заданного списка спортсменов получите данные о тех из них, кто занимается плаванием (в том числе возраст и сколько лет они занимаются спортом).

2.  Из ассортимента конфет, выпускаемых кондитерской фабрикой, выберите те, стоимость которых составляет от 100 до 200 рублей за 1 кг. Требуется указать срок их годности и номера магазинов, в которых они имеются в продаже.

З. Получите список учеников музыкальной школы, которые учатся играть на скрипке. Требуется указать, сколько лет они занимаются музыкой и принимали ли участие в каких-либо конкурсах.

4.      Получите фамилии детей данного детского сада, которые родились в указанном месяце. Требуется указать их возраст и номера групп.

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

6.      Получите анкетные данные учеников, участвовавших в олимпиаде по информатике и заработавших не менее 30 баллов.

7.      Даны результаты переписи населения. Получите фамилии, имена и подсчитайте общее число жителей, родившихся после 1990 г.

8.      В сведениях об экспортируемых товарах указывается наименование товара, страна, импортирующая товар, и объем поставляемой партии в штуках. Получите список стран, в которые экспортируется заданный товар, и определите общий объем его экспорта.

9.      Сведения о сотрудниках включают фамилию, имя, отчество, дату рождения, полученное образование, домашний адрес и профессию. 1) Получите ФИО всех сотрудников с высшим образованием. 2) Получите сведения о сотрудниках, имеющих данную профессию и родившихся не раньше указанной даты.

10. 


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

Задание 2 (уровень 2),

11.  Имеются сведения о датах рождения сотрудников учреждения. Определите:

а) самого молодого сотрудника;

б) самого старшего сотрудника;

Получите список всех сотрудников, родившихся весной.

12.  Вычислите средний балл учеников класса, если известны оценки каждого ученика по математике, русскому языку и физике. Получите список учеников, имеющих средний балл выше среднего в классе.

13.  Среди работников данного предприятия наидите тех, чья заработная плата за месяц ниже средней по предприятию. Получите список работников, которые проработали на предприятии 60лее 10 лет, с указанием их фамилии, зарплаты, стажа работы и должности.

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

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

16.  Составьте программу для назначения стипендии студентам по результатам сессии, используя следующие правила:

1)      если все оценки    5, то назначается повышенная стипендия;

2)      если студент имеет оценки 4 и 5, то назначается обычная стипендия;

З) если есть хотя бы одна оценка З, то стипендия не назначается.

В результате работы программы должен формироваться список группы с оценками и средним баллом каждого студента, а также два списка фамилий студентов — с повышенной и обычной стипендией.

17. 


В таблице хранятся следующие данные об учениках: фамилия, имя, отчество, рост, вес. Вычислите средний рост учеников, а также рост самого высокого и самого низкого учеников. Подсчитайте, сколько учеников могут заниматься в баскетбольной секции, если рост баскетболиста должен быть больше 170 см.

18.  В столовой предлагается лт комплексных обедов, состоящих из Q блюд. Известна стоимость и калорийность каждого блюда. Определите, сколько стоит самый дешевый и самый дорогой обед; сколько калорий содержит самое калорийное блюдо.

19.  лт спортсменов-многоборцев принимают участие в соревнованиях по М видам спорта. По каждому виду спорта спортсмен набирает определенное количество очков. Вычислите, сколько очков в сумме набрал каждый спортсмен после окончания соревнований. Вычислите разницу в очках для спортсменов, занявших первое и последнее места.

20.  лг учеников проходили тестирование по М темам некоторого предмета. Определите, сколько очков набрал каждый ученик по всем темам. Вычислите средний балл, полученный учениками, и разницу между лучшим результатом и средним баллом.

21.  Сведения о результатах сессии содержат следующую информацию: название предмета, номер группы, номер зачетной книжки, фамилию, имя, отчество студента, его оценки по итогам экзаменов. Сформируйте отдельные списки отличников, хорошистов, троечников и двоечников.

Задание З (уровень З).

22.  На аптечном складе хранятся лекарства. Сведения о лекарствах содержатся в специальной ведомости, включающей: наименование лекарственного препарата, количество, цену, срок хранения (в месяцах). Определите, сколько стоит самый дорогой и самый дешевый препарат; сколько препаратов хранится на складе; какой препарат имеет срок хранения более З месяцев; сколько стоят все препараты, хранящиеся на складе.

23.  Торговый склад производит уценку хранящейся продукции. Если продукция хранится на складе дольше п месяцев, то она уценивается в 2 раза, а если срок хранения превысил т (т < п) месяцев, но не достиг п, — то в 1,5 раза. Получите ведомость уценки товаров, которая должна содержать следующую информацию: наименование товара, количество товара, цену товара до уценки, срок хранения товара, цену товара после уценки, общую стоимость товаров до уценки, общую стоимость товаров после уценки. Вычислите максимальный и минимальный сроки хранения товаров на складе, максимальную и минимальную цену товаров до уценки и после уценки.

24. 


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

а) пассажира, багаж которого имеет средний вес какой-либо одной вещи, отличающийся не более чем на т кг от общего среднего веса этой вещи для всех пассажиров;

б) количество пассажиров, имеющих более двух вещей, и пассажиров, количество вещей у которых превосходит среднее количество вещей на одного пассажира;

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

25.  Имеются сведения о книгах в библиотеке: фамилия автора, название и год издания. Требуется:

а) получить названия книг данного автора, изданных начиная с 1960 г.;

б) определить, имеется ли в библиотеке хотя бы одна книга, содержащая в своем названии слово «информатика», и если да, то вывести сведения обо всех таких книгах;

в) вывести сведения о книгах, которые имеют несколько изданий (т. е. автор и название одни и те же, а годы издания различны).


1)      б. 7.

26.  Сведения об игрушках, хранящихся на складе детского магазина, включают название игрушки, ее стоимость в рублях и возрастные границы (например, какая-то игрушка может предназначаться для детей от двух до пяти лет). Требуется:

а) получить названия игрушек, цена которых не превышает 500 руб. и которые подходят детям пяти лет;

б) определить стоимость самого дорогого конструктора;

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

г) получить названия игрушек, которые подходят детям как четырех, так и десяти лет;

д) определить, можно ли подобрать любую игрушку, кроме мяча, подходящую ребенку трех лет;

е) получить название самой дешевой игрушки;

ж) получить название самой дорогой игрушки для детей до четырех лет;

з) получить названия игрушек для детей четырех-пяти лет;

и) получить название самой дешевой игрушки, подходящей детям двух-трех лет;

л) определить стоимость самой дорогой куклы;

м) определить стоимость всех кукол для детей шести лет;

н) определить, для детей какого возраста предназначается конструктор;

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

27. Имеются сведения о программах телепередач на неделю, где указаны: день недели, время, канал, вид и название телепередачи. Требуется:

а) получить названия телепередач, которые идут в указанный день в указанный промежуток времени;

б) получить названия телепередач, которые идут в указанный день на указанном канале;

в) получить информацию об указанном фильме; если он отсутствует в телепрограмме, то вывести на экран сообщение: «такой передачи на данной неделе нет»;

г) определить, на каком канале и в какое время будет транслироваться развлекательная передача «Поле чудес»;

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

е) получить названия телепередач, транслируемых в указанное время на разных каналах;

ж) получить название самой длительной по времени передачи в понедельник;

з) в каждый день недели определить передачу, которая завершает эфир.

28. Имеются сведения о людях, которые ищут работу, при этом указываются ФИО, специальность, опыт работы, образование, пол и возраст соискателя. Требуется:

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

б) найти работников с высшим экономическим образованием не старше 35 лет;

в) найти сотрудников, имеющих опыт работы в сфере торговли;

г) вывести полную информацию обо всех женщинах, возраст которых составляет от 20 до 40 лет;

д) определить средний возраст всех мужчин, ищущих работу;

е) выяснить, кого в базе данных больше — женщин или мужчин с высшим образованием;

ж) найти п самых молодых работников.

Работа 16.8. Рекурсивные методы программирования

Цель работы: освоение приемов использования в программах на Паскале рекурсивно определенных функций и процедур.

Задание 1 (уровень 1). Вычислите сумму первых М элементов числовой последовательности, заданной рекуррентной формулой, используя рекурсивно определенную функцию.

= arctg ап_1 + 1,

1

, 01 = 2.

                  = —tg ап_1,         = 0,5.

2сп-1

, (11 = 1 а

Задание 2 (уровень 2), Дана общая формула элементов числовой последовательности. Вычислите сумму первых М ее элементов. Для этого опишите частично-рекурсивную функцию и используйте рекурсивно определенную подпрограмму.

(—1)Пп

1.

2

2п-1

з.

10П 4.

п!

(-1)П2П п!

п!

б.

(2n) !

Задание З (уровень З). Решите задачи, используя рекурсивную подпрограмму.

1.  Даны натуральное число п и вещественное положительное число К. Вычислите значение выражения:

2.  Дано число х и числовой массив {а а а а }. Вычислите по схеме Горнера значение алгебраического многочлена:

у = апхп + ап_1ХП 1 + ап_2ХП 2 + + ЧХ + Ч.

З. Опишите функцию С(т, п), где О т п, для вычисления биномиального коэффициента С: по формуле: с2 =с: = 1; с: О < т < п. Получите значение

4.      Найдите сумму цифр заданного натурального числа.

5.      Подсчитайте количество цифр в заданном натуральном числе.

6.      Опишите рекурсивную функцию  которая методом деления отрезка пополам находит с точностью г корень уравнения f(x) = О на отрезке [а, Ь] (считая, что Е > О, а < Ь, f(a) х f(b) с: О, f(x) непрерывна и монотонна на отрезке [а, Используя эту функцию, найдите корень уравнения sin 2х — [п х О на отрезке [1, 2] с точностью 10-5

7.      Опишите функцию min(X) для определения минимального элемента линейного массива Х, введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива Х начиная с К-го. С помощью этой функции найдите минимальный элемент массива, введенного с клавиатуры.

8.      Опишите рекурсивную логическую функцию ), проверяющую, является ли симметричной часть строки S, начинающаяся с i-r'0 и заканчивающаяся ј-м ее элементом. Протестируйте эту функцию на любом своем примере исходных данных.

9.      Составьте программу для нахождения числа, получаемого из заданного натурального числа записью его цифр в обратном порядке. Например, для числа 1234 получается число 4321.

10.  Составьте программу для перевода заданного натурального числа в р-ичную систему счисления (2 р 9).

11.  Дана символьная строка, представляющая собой запись натурального числа в р-ичной системе счисления (2 р 9). Составьте программу для перевода этого числа в десятичную систему счисления.

12.  Опишите рекурсивную логическую функцию, которая возвращает значение TRUE, если ее аргумент — простое число. Протестируйте эту функцию на любом своем примере исходных данных.

13.  Опишите функцию, которая удаляет из строки все лишние пробелы. Пробелы считаются лишними, если их более двух подряд, если они стоят в конце строки после последней точки или если они стоят после открывающегося парного знака препинания. Протестируйте эту функцию на любом своем примере исходных данных.

14.  Разработайте функцию для вычисления определителя матрицы порядка п (1 п 20). Протестируйте эту функцию на любом своем примере исходных данных.

Объектно-ориентированное программирование

15.  Дано п различных натуральных чисел. Выведите на экран все перестановки этих чисел.

Работа 16.9. Объектно-ориентированное программирование

Цель работы: освоение приемов описания классов при объектноориентированном программировании на Паскале.

Задание 1 (уровень 1).

1. Постройте систему классов для описания плоских геометрических фигур круга, квадрата и прямоугольника. Предусмотрите методы для создания таких объектов, учета их перемещения на плоскости, изменения размеров и вращения на заданный угол. Реализуйте программу для тестирования этой системы классов.

2 Постройте описание класса, содержащего информацию о почтовом адресе некоторой организации. Предусмотрите возможности раздельного изменения составных частей адреса, создания и уничтожения объектов этого класса. Реализуйте программу для тестирования этого класса.

Задание 2 (уровень 2). Составьте описание класса для объектов-векторов, задаваемых координатами их концов в трехмерном пространстве. Обеспечьте возможности выполнения операций сложения и вычитания векторов с получением нового вектора (суммы или разности), вычисления скалярного произведения двух векторов, длины вектора, косинуса угла между векторами. Реализуйте программу для тестирования этого класса.

Задание 3 (уровень З).

1.  Составьте описание класса для определения одномерных массивов целых чисел (векторов). Предусмотрите возможности обращения к отдельному элементу массива с контролем выхода за пределы индексов, задания произвольных границ индексов при создании объекта и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов, умножения и деления всех элементов массива на скаляр, печати (вывода на экран) элементов массива по индексам и всего массива. Реализуйте программу для тестирования этого класса.

2.  Составьте описание класса для определения одномерных массивов символьных строк фиксированной длины. Предусмотрите возможности обращения к отдельным строкам массива по их

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

З. Составьте описание класса алгебраических многочленов от одной переменной, задаваемых степенью многочлена и массивом коэффициентов. Предусмотрите методы для вычисления значения многочлена для заданного аргумента, операции сложения, вычитания и умножения многочленов с получением нового объекта-многочлена, печати (вывода на экран) описания многочлена. Реализуйте программу для тестирования этого класса.

Работа 16.10. Визуальное программирование

Цель работы: освоение приемов составления программ с графическим интерфейсом средствами визуального программирования в системе Delphi.

Задание 1 (уровень 1).

1. Напишите программу, которая пересчитывает скорость ветра из метров в секунду в километры в час. Рекомендуемый вид формы приведен на рис. 16.1. Программа должна быть спроектирована так, чтобы пользователь мог ввести в поле Скорость только целое положительное число.

Поле вво      Инструкция (Edlt)пользователя

                         Поле ввода                                                                                                       Кнопка,

(Label)при нажатии на которую производится перерасчет

Рис. 16.1

* Некоторые из приведенных здесь задач заимствованы из книги: Кульпин, Н. Б. Delphi в задачах и примерах. СПб.: БХВ-Петербург, 2005. — 288 с., ил.


2. Напишите программу, вычисляющую сопротивление электрической цепи, состоящей из двух резисторов, которые могут быть соединены последовательно или параллельно. Рекомендуемый вид формы приведен на рис. 16.2. Если величина сопротивления превышает 1 ООО Ом, то результат должен быть выведен в килоомах.

Инструкция для                                                                                                   Поле ввода

пользователя

компонент (Edit 1 )

(Label 1)

ЦЫЦ которая рстсит из

Название поля

 

Второе поле

(Label 2)

 

ввода компонент

Название второго

 

Кнопка

поля (Label З)

 

для подсчета

Зависимые переключатели

gj:t•.

сопротивления

(Button 1 )

(Radi0 Button 1

 

Поле вывода

и Radio Button 2)

 

(Label 4)

Рис. 16.2

З. Напишите программу, вычисляющую стоимость поездки на автомобиле (например, на дачу). Рекомендуемый вид формы приведен на рис. 16.3.

 

 

 

 

Расстот•фё. к; •

енр бензин&етрюмин! .

отребле"е бензина тТТ>ОВ н-ДОО ку)

Edit 1

LabeI 1

Label 2Edit2

Label ЗEdit3

CheckBox 1utton 1

Label 4

Рис. 16.3

4.   Спроектируйте интерфейс и напишите программу, вычисляющую скорость (в км/ч), с которой бегун пробегает дистанцию, по заданным значениям времени и длины дистанции. Количество минут задается целым числом, количество секунд — дробным.

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

6.   Спроектируйте интерфейс и напишите программу, вычисляющуко путь, пройденный свободно падающим телом за t секунд. Программу составьте так, чтобы можно было вычислять пройденный путь не с начала падения тела.

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

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

9.  


Спроектируйте интерфейс и напишите программу, преобразующую введенный текст путем замены всех строчных букв на прописные.

Задание 2 (уровень 2).

1. Напишите программу, формирующую список городов, введенных пользователем в одной строке. Примерный вид формы показан на рис. 16.4

Инструкция пользователяButton 1 Label 1

Button 2

Поле ввода

Edit 1

Button З

Название списка

Label З

Счетчик введенных городов

Список(Label 5)

(UstBox 1)

Рис. 16.4

2. Составьте анкету для студентов со следующими вопросами: 1) сколько вам лет; 2) на каком факультете вы учитесь; З) в какой группе вы учитесь; 4) нравится ли вам учиться. Результат анкетирования должен быть представлен тут же и содержать итоговую информацию по результатам анкетирования всех студентов, заполнивших анкету на данный момент.

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

4.   Спроектируйте интерфейс и напишите программу, вычисляющую силу тока в электрической цепи, которая состоит из лт параллельно соединенных проводников одинакового сопротивления. Программа должна быть спроектирована так, чтобы кнопка «вычислить» была доступна только после ввода пользователем величины сопротивления.

5.  


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

Рис. 16.5

6.   Спроектируйте интерфейс и напишите программу, вычисляющую стоимость покупки. Пользователь вводит код товара и количество единиц товара. Программа должна формировать список купленных товаров.

7.   Напишите программу, формирующую туристический маршрут, который состоит из 5 пунктов. Названия пунктов и стоимость экскурсий в каждом пункте выбираются из выпадающего списка. Полный путь маршрута и суммарная стоимость экскурсий должны выводиться в поле Мето.

Задание З (уровень 3).

1.  Напишите программу, вычисляющую доход по вкладу. Программа должна обеспечивать расчет как простых, так и сложных процентов, при этом простые проценты начисляются в конце срока вклада, а сложные начисляются ежемесячно и прибавляются к первоначальной сумме вклада, так что в следующем месяце проценты начисляются уже на новую сумму.

2.  Напишите программу для смешивания цветов в цветовой системе RGB с использованием полос прокрутки. Рекомендуемый вид формы показан на рис. 16.6.

                                                           зрасный                                            '.G

7$

Рис. 16.6

3.  Напишите программу, определяющую скидку на покупку автомобиля по следующим данным: возраст (старше 10 лет) скидка 10 0/0 , аварийная — 30 0/0 , таможня (не уплачены тамоэкенные пошлины) — 10 0/0 , пробег по РФ — 5 0/0 . Наличие ситуации, при которой предоставляется соответствующая скидка, вводится при помощи флажков. Рекомендуемый вид формы показан на рис. 16.7 (левая часть формы).


 

 

 

 

Введите название машины и отметь ее характеристики назваевзе машины

Г Старше 10лет

• р1?Аварьвнэя

7

Проверить

Уд4йить

Подсчитать

Добавить

Рис. 16.7

4.  Усовершенствуйте программу «Стоимость машины»: реализуйте список, в который можно добавить автомобиль (с его характеристиками) или удалить, а также проверить, какая скидка предоставляется на него. Рекомендуемый вид формы представлен на рис. 16.7.

5.  Напишите программу, позволяющую для имеющегося текста менять тип, размер, цвет шрифта, а также его расположение на форме (т, е. обеспечивать выравнивание по левому, правому краю или по центру). Длина текста может быть более 256 символов.

6.  Напишите программу, вычисляющую стоимость покупки с учетом скидки. Скидка 1 % предоставляется, если сумма покупки больше ЗОО руб.; 2 % — если сумма больше 500 руб.; 3 0/0 — если сумма больше 1000 руб. Информация о предоставлении скидки (процент и абсолютная величина) должна выводиться в диалоговом окне.

7.  Напишите программу, вычисляющую сумму покупки. Пользователь вводит название каждого товара и его цену. Предусматривается также возможность предоставления скидки для сотрудника компании; для постоянного клиента; для покупателя, представившего дисконтную карту. Программа должна формировать список покупаемых товаров.

8.  Напишите программу, отображающую вводимый текст в окне, размер которого можно регулировать полосой прокрутки.

Работа 16.11 . Проекты по программированию*

Цель работы: создание сложного программного продукта с использованием проектной методики разработки.

Примечание: проекты могут выполняться как индивидуально, так и коллективно.

Проект 1 . Волчий остров

Волчий остров размером 20 х 20 заселен дикими кроликами, волками и волчицами. Имеется по несколько представителей каждого вида. Кролики довольно глупы: в каждый момент времени они с одинаковой вероятностью 1/9 передвигаются в один из восьми соседних квадратов (за исключением участков, ограниченных береговой линией) или сидят неподвижно. Каждый кролик с вероятностью 0,2 превращается в двух кроликов. Каждая волчица передвигается случайным образом, пока в одном из соседних восьми квадратов не окажется кролик, за которым она охотится. Если волчица и кролик оказываются в одном и том же квадрате, то волчица съедает кролика и получает одно очко. В противном случае она теряет 0,1 очка. Волк ведет себя подобно волчице до тех пор, пока в соседних квадратах не исчезнут все кролики; тогда, если волчица находится в одном из восьми близлежащих квадратов, волк гонится за ней. Если волк и волчица окажутся в одном квадрате и там нет кролика, которого нужно съесть, они производят потомство случайного пола. В начальный момент времени все волки и волчицы имеют 1 очко. Волки и волчицы с нулевым количеством очков умирают.

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

Проект 2. Задача об инфекции стригущего лишая*.

Промоделируйте процесс распространения инфекции стригущего лишая по участку кожи размером п х п клеток (число п — не-

* Задания подобраны А. П. Шестаковым (Семакин И. Г., Шестаков А. П. Основы алгоритмизации и программирования. М.: Издательский центр «Академия», 2008).

** Ван Тассел Д. Стиль, разработка, эффективность, отладка и испытание программ. М.: Мир, 1981.

четное). Предполагается, что исходной зараженной клеткой кожи является центральная. В каждую единицу времени пораженная инфекцией клетка может с вероятностью 0,5 заразить любую из соседних здоровых клеток. По прошествии шести единиц времени зараэкенная клетка становится невосприимчивой к инфекции, возникший иммунитет действует в течение последующих четырех единиц времени, а затем клетка оказывается здоровой.

В ходе моделирования описанного процесса нужно выдавать на экран текущее состояние моделируемого участка кожи в каждом интервале времени, отмечая зараженные, невосприимчивые к инфекции и здоровые клетки.

Проект З. Построение с помощью циркуля и линейки.

Составьте программу, автоматизирующую процесс построения фигур на плоскости с помощью циркуля и линейки. Программа должна уметь выполнять следующие команды:

*                    отметить произвольную точку и обозначить ее;  построить прямую, проходящую через две точки;

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

Программа должна содержать 10—15 стандартных задач на построение из школьного курса геометрии, предлагать их для решения и контролировать процесс построения и полученное решение. Проект 4. Морской бой.

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

Проект 5. «Математико» * (итальянская игра).

Имеется набор из 52 карточек, на которых записаны числа от 1 до 13, причем карточки с каждым из этих чисел встречаются четырежды. Имеется квадратное поле с 25 клетками. Разработайте программу, позволяющую имитировать игру человека с компьюте-

* КорДемский Б. А. Математическая смекалка. СПб.: Манускрипт, 1994. 496 с.

ром по следующим правилам. Программа случайным образом выбирает какую-либо из имеющихся карточек и выдает записанное на ней число. Каждый игрок (человек и компьютер) по очереди заносит это число в одну из клеток квадрата. Так продолжается до тех пор, пока не будут заполнены все клетки квадрата.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

12

4

13

12

(20)

                                                           (20) (50) (10)                       (10) (10) (160)

Задача игрока — размещать числа в клетках так, чтобы после заполнения квадрата набрать наибольшее количество очков, которые выставляются в соответствии с приведенной ниже таблицей. Запрограммируйте интерфейс для данной игры и разработайте для компьютера как одного из игроков наиболее оптимальную стратегию заполнения квадрата с целью выигрыша.

Комбинации чисел

В ряду или столбце

по диагонали

За два одинаковых числа

10 очков

20 очков

За две пары одинаковых чисел

20 очков

30 очков

За три одинаковых числа

40 очков

50 очков

За три одинаковых числа и два других одинаковых числа

80 очков

90 очков

За четыре одинаковых числа

160 очков

170 очков

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

50 оччков

60 очков

За три раза по 1 и два раза по 13

100 очков

110 очков

За числа 1, 13, 12, 11 и 10, не обязательно расположенных по порядку

150 очков

160 очков

За четыре единицы

200 очков

210 очков

87

Проект 6. Заполнение готовых форм информацией из базы данных.

Имеется база данных, содержащая сведения о некоторой группе людей (каждая запись содержит до 10 полей). Составьте программу, которая, используя сведения из базы данных, позволяет заполнять некоторые документы (стандартные письма, приглашения, визитки, отчеты и т. д.), вписывая эти сведения в нужные места в указанных документах в соответствующих падежах, лицах, временах и т. д.

Проект 7. Карточные игры.

Составьте программу, которая раздает игральные карты заданному количеству игроков (одним из игроков является человек, за остальных играет компьютер) и моделирует игру «в дурака». Компьютерная программа играет случайным образом, без анализа уже вышедших карт. Количество игроков не превышает шести.

Проект 8. «Крестики-нолики»

Составьте программу, позволяющую играть на бесконечном поле в «крестики-нолики»:

а) игроку с компьютером;

б) двум игрокам.

Если в качестве игрока выступает компьютер, то он всегда делает первый ход, а на очередном своем ходе анализирует ситуацию, рассчитывает возможные действия противника на 1—2 хода вперед и по результатам такого анализа выбирает наиболее оптимальный ход.

Проект 9. «Быки и коровы»

Составьте программу, позволяющую играть в «Быки и коровы» :

а) игроку с компьютером;

б) двум игрокам.

В этой игре ведущий задумывает четырехзначное число, все цифры которого различны (причем первая цифра отличается от нуля). Остальные играющие должны отгадать задуманное число. Выигрывает тот, кто первым отгадает число. Для этого играющие по очереди называют ведущему свои варианты ответа, а ведущий сообщает им о количестве «быков» и «коров» в названном числе («бык» — в записи названного числа есть цифра, которая есть в задуманном числе и стоит в нем в нужной позиции; «корова» — в записи названного числа есть цифра, которая имеется в задуман-

ном числе, но стоит не в той позиции). Например, если задумано число 3275, а названо число 1234, то в названном числе имеется один «бык» (цифра 2) и одна «корова» (цифра З). Число является отгаданным, если имеется 4 «быка».

Проект 10. Числовые головоломки

Составьте программу, которая:

1)     предлагает игроку числовые головоломки типа «ОДИН + ОДИН = МНОГО» из некоторого набора (до 30 головоломок);

2)     позволяет решить головоломку;

З) контролирует правильность решения.

Проект 11. Графики

Составьте программу, которая предлагает пользователю список функций для построения графиков (например: у ах2 + Ьх + с; у asin х + Ь и т. д. — до 25 вариантов). После выбора функции, задания коэффициентов и отрезка, на котором выполняется построение, программа строит указанный график. После этого значения коэффициентов и положение графика можно менять (например, с помощью клавиш управления курсором), при этом график перестраивается заново и выводится обновленное уравнение соответствующей кривой.

Проект 12. Игра «Две лисы и двадцать кур»

На поле указанной формы находятся две лисы и 20 кур (начальное положение показано на рисунке). Куры могут перемещаться на один шаг вверх, влево или вправо, но не назад и не по диагонали. Лисы также могут перемещаться только на один шаг, но вверх, вниз, влево и вправо. Лиса может съесть курицу (как в игре в шашки): если в горизонтальном или вертикальном направлении за курицей на один шаг имеется свободное поле, то лиса перепрыгивает через курицу и берет ее. Лисы всегда обязаны есть кур и, если у них есть выбор, обязаны осуществлять наиболее длинное их поедание (если два поедания имеют одинаковую длину, то выбирается один из них по желанию лисы).

Составьте программу, которая играет за лис. Игрок перемещает кур. Противники делают ходы по очереди, причем куры начинают игру. Куры выигрывают партию, если девяти из них удается занять девять полей, образующих верхний квадрат игры. Лисы выигрывают, если им удастся съесть 12 кур, так как в этом случае оставшихся кур недостаточно, чтобы занять девять верхних полей.

89

Проект 13. Программа «Игры со спичками»

Составьте программу, которая:

1)      предлагает игроку головоломки со спичками из некоторого набора (до 30 головоломок);

2)      позволяет решить головоломку, передвигая спички; З) контролирует правильность решения.

Проект 14. Графика в Turbo Pascal

Составьте программу, демонстрирующую все графические возможности Turbo Pascal и обучающую работе с основными графическими процедурами и функциями. Программа должна контролировать усвоение изученного материала (в виде теста или в какойлибо другой форме).

Проект 15. Игра в слова

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

Тематикой игры могут быть (по выбору играющего человека) названия городов, животных, растений и т. д. (не менее 5 вариантов). Для игры компьютер использует собственную базу данных (для каждой тематики свою), хранящуюся в виде текстового файла. Если названное человеком слово отсутствует в базе, то уточняется, правильно ли оно названо, и в случае правильности слово заносится в базу, иначе уточняется.

Проект 16. Ребусы

Выбрав какой-либо школьный предмет (информатику, математику и т. д.), подберите ребусы по нему и предложите их пользователю для решения. Программа должна позволять выбрать тот или иной ребус, контролировать его решение и подводить итоги при завершении игры.


Раздел 17

Моделирование

Работа 17.1 . Компьютерное моделирование свободного падения

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

Задание 1 (уровень 1). Используя электронную таблицу, приведенную в учебнике (S 3.2.3, табл. 3.1), выполните расчеты для парашютиста, прыгающего с неподвижно висящего объекта (воздушного шара или вертолета). Определите по результатам проведенных расчетов зависимость высоты парашютиста и скорости его движения от времени (от начала полета до момента приземления).

При вычислениях используйте следующие значения параметров, определяемых формой и размером тела (см. S 3.2.2): с1 30, Ь 0,4 м, = 0,5. Массу тела задайте самостоятельно из диапазона 50—100 кг.

Задание 2 (уровень 1). Выполните задание 1, используя программу на Паскале, приведенную в учебнике (S 3.2.3, программа Sharik).

Задание З (уровень 2). Парашютист прыгает с некоторой высоты и летит, не раскрывая парашюта. На какой минимальной высоте он должен раскрыть парашют, чтобы иметь к моменту приземления безопасную скорость (не более 10 м/с)?

Задание 4 (уровень 2). Парашютист прыгает с некоторой высоты и летит, не раскрывая парашюта. Через какое максимальное время он должен раскрыть парашют, чтобы иметь к моменту приземления безопасную скорость (не более 10 м/с)?

Задание 6 (уровень З). Исследуйте зависимость наибольшей высоты прыжка от площади поперечного сечения парашюта (входит в К2), при которой скорость приземления была бы безопасной (не более 10 м/с). Значение массы парашютиста выберите самостоятельно. Отобразите полученную зависимость в графической форме.

92

7 З). Промоделируйте процесс падения тела с заданными характеристиками (масса, форма) в средах различной плотности. Изучите влияние вязкости среды на характер движения. Разработайте программу, которая выводит на экран графики зависимости скорости движения тела и пройденного им пути от времени.

Задание 8 (уровень З). Глубинная бомба, установленная на взрыв через заданное время, сбрасывается со стоящего неподвижно противолодочного корабля. Исследуйте связь между глубиной, на которой произойдет взрыв, и формой корпуса бомбы (сферический, полусферический, каплевидный и др.).

Задание 9 (уровень З). Глубинная бомба, установленная на взрыв на заданной глубине, сбрасывается со стоящего неподвижно противолодочного корабля. Исследуйте связь между временем достижения заданной глубины и формой корпуса бомбы (сферический, полусферический, каплевидный и др.).

Работа 17.2. Численный расчет баллистической траектории

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

Задание 1 (уровень 1). Используя электронную таблицу, приведенную в учебнике для 11 класса (S 3.2.5, табл. 3.2), постройте траектории и найдите временнАе зависимости горизонтальной и вертикальной составляющих скорости и перемещения для тела массой 1 кг, брошенного под углом 450 к горизонту с начальной скоростью 10 м/с: 1) в воздухе;

2) в воде.

Сравните результаты с получаемыми без учета сопротивления среды (их можно получить численно из той же модели или аналитически).

Задание 2 (уровень 1). Выполните задание 1, используя программу на Паскале, приведенную в учебнике для 11 класса (S 3.2.5, программа Pushka).

Задание З (уровень 2). Исследуйте зависимость горизонтальной дальности полета тела от одного из коэффициентов сопротивления среды, зафиксировав все остальные параметры. Представьте полученную зависимость в графической форме.

17. З. Моделирование расчетов стрельбы по цели

Задание З (уровень 2). Найдите вид зависимости максимальной высоты траектории от одного из коэффициентов сопротивления среды, зафиксировав все остальные параметры. Представьте полученную зависимость в графической форме.

Задание 4 (уровень З). Разработайте модель подводной охоты. На расстоянии r под угдом подводный охотник видит неподвижную акулу. На сколько метров выше нее надо целиться, чтобы гарпун попал в цель?

Задание 5 (уровень З). Промоделируйте движение исследовательского зонда, выстреленного под углом к горизонту. В верхней точке траектории над зондом раскрывается тормозной парашют, после чего зонд плавно опускается до земли.

Задание 6 (уровень З). Глубинная бомба, установленная на взрыв через заданное время, сбрасывается с движущегося противолодочного корабля. Исследуйте зависимость глубины, на которой произойдет взрыв, и пройденным расстоянием по горизонтали до взрыва от формы корпуса бомбы (сферический, полусферический, каплевидный и др.).

Задание 7 (уровень З). Составьте и отладьте программу на Delphi с оконным интерфейсом для расчета траектории полета снаряда с выводом на экран графического изображения траектории (по аналогии с рис. 3.12 в учебнике для 11 класса).

Работа 17.3. Моделирование расчетов стрельбы по цели

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

Задание 1 (уровень 1). С помощью электронной таблицы вычислите углы настильной и навесной стрельбы в пустоте для попадания в цель, расположенную на расстоянии 1500 м и на высоте 200 м, при начальной скорости снаряда ЗОО м/с и радиусе цели 1 м. Проверьте полученные результаты на учебной программе «Полет снаряда, выпущенного из пушки».

Задание 2 (уровень 2). Напишите программу на Паскале, которая будет сообщать, можно ли попасть в цель, находящуюся на заданном расстоянии L от пушки и заданной высоте Н над горизонтом, при заданном угле прицела (10 и скорости вылета снаряда Уо. Рассматривается полет в пустоте.

Задание З (уровень 2). Используя программу Stre1ba (учебник для 11 класса, S 3.2.7), проведите исследование влияния величины шага по времени на точность расчетов полета снаряда в пустоте и в атмосфере.

4 З). Составьте программу, аналогичную программе Stre1ba (учебник для 11 класса, S 3.2.7), которая будет рассчитывать угол прицела для навесной стрельбы по заданной цели при фиксированной величине начальной скорости снаряда. Протестируйте программу на примере полета снаряда в пустоте для данных расчета из S 3.2.6 учебника для 11 класса (навесной прицел). Для тех же значений (Н = 200 м, L 700 м, = 125,23 м/с, R = 10 м, r = 0,08 м) рассчитайте угол прицела для попадания в цель по навесной траектории. Сравните полученные результаты с результатами эксперимента в учебной программе «Полет снаряда, выпущенного из пушки».

Задание 5 (уровень З). Выполните расчет начальной скорости вылета снаряда из пушки при заданном угле прицела ао для попадания в цель, удаленную от пушки на расстояние L по горизонтали и расположенную на высоте Н по вертикали. Определите время полета снаряда. Выполните вычисления для полета снаряда как в пустоте, так и в атмосфере. Для тестирования используйте параметры расчетов, приведенные в S 3.2.7.

Пояснение: в отличие от расчетов, выполняемых по программе Stre1ba (учебник для 11 класса, S 3.2.7), где задается фиксированная величина начальной скорости и подбирается угол прицела, здесь нужно зафиксировать угол прицела и подбирать (методом половинного деления) начальную скорость.

Работа 17.4. Численное моделирование распределения температуры

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

Задание 1 (уровень 1). Используя электронную таблицу для моделирования распределения температуры в прямоугольной области с изотермическими границами (учебник для 11 класса, S 3.3.3, рис. 3.25), проведите вычислительный эксперимент при следующих значениях температуры на границах: верхняя граница — 20 ос, нижняя граница — О ос, левая и правая границы 15 ос. По результатам расчетов постройте графики распределения температур в двух горизонтальных и двух вертикальных сечениях прямоугольной области.

Задание 2 (уровень 1). Выполните задание 1, используя программу на Паскале, приведенную в учебнике для 11 класса (S 3.3.4, программа Терто).


Численное моделирование распределения температуры

З (уровень 1). С помощью программы на Delphi для построения изолиний, приведенной в учебнике для 11 класса (S 3.3.5), постройте изотермы для прямоугольной области и случая границ с постоянными температурами: одна из длинных границ имеет температуру О ос, другая — температуру 20 ос, короткие границы имеют температуру 10 ос.

Задание 4 (уровень 1). С помощью программы на Delphi для построения изолиний, приведенной в учебнике для 11 класса (S 3.3.5), воспроизведите вычислительный эксперимент № 2 по расчету поля температур для квадратной области с линейным распределением температур на границе и вычислительный эксперимент № З для вытянутой прямоугольной области с линейным распределением температур на границах (оба эксперимента — см. учебник для 11 класса, S 3.3.6).

Задание 5 (уровень 2). Внесите изменения в программу на Паскале для решения задачи теплопроводности (учебник для 11 класса, S 3.3.4, программа Терто), чтобы обеспечить возможность моделирования распределения температуры в квадратной области для случаев:

а) теплоизолированных боковых границ и изотермических

вертикальных границ;

б) теплоизолированных вертикальных границ и изотермических боковых границ;

в) наличия внутреннего источника тепла.

Протестируйте созданные программы.

Задание 6 (уровень 2). Внесите изменения в электронную таблицу для расчета поля температур (учебник для 11 класса, S 3.3.3, рис. 3.25), чтобы реализовать решение одномерной задачи: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня длиной 1 м на сетке в 10 ячеек при постоянной температуре О ос на правом и 20 ос на левом его конце.

Задание 7 (уровень 2). Преобразуйте программу на Паскале для расчета поля температур (учебник для 11 класса, S 3.3.4, программа тер1о), чтобы реализовать решение одномерной задачи: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня длиной 1 м на сетке в 10 ячеек при постоянной температуре О ос на правом и 20 ос на левом его конце.

8 З). Внесите изменения в электронную таблицу для расчета поля температур (учебник для 11 класса, S 3.3.3, рис. 3.25), чтобы реализовать решение одномерной задачи с внутренним источником тепла: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня при наличии в его средней точке источника тепла с температурой 30 ос и при постоянной температуре на его концах: О ос — на правом и 20 ос — на левом конце.

Задание 9 (уровень З). Внесите изменения в электронную таблицу для расчета поля температур (учебник для 11 класса, S 3.3.3, рис. 3.25), чтобы реализовать решение одномерной задачи с внутренним источником тепла: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня при наличии в его средней точке источника тепла с температурой 30 ос и при постоянной температуре на его правом конце О ос; левый конец стержня теплоизолирован.

Задание 10 (уровень З). Преобразуйте программу на Паскале для расчета поля температур (учебник для 11 класса, S 3.3.4, программа тер1о), чтобы реализовать решение одномерной задачи с внутренними источниками тепла: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня при наличии в его средней точке источника тепла с температурой 30 ос и при постоянной температуре на его концах: О ос — на правом и 20 ос — на левом конце.

Задание 11 (уровень З). Преобразуйте программу на Паскале для расчета поля температур (учебник для 11 класса, S 3.3.4, программа тер1о), чтобы обеспечить решение одномерной задачи с внутренними источниками тепла: рассматривается теплопроводный стержень, через боковую поверхность которого не происходит теплоотдача (имеется теплоизоляция). Проведите моделирование распределения температуры вдоль стержня при наличии в его средней точке источника тепла с температурой 30 ос и при постоянной температуре на его правом конце, равной О ос; левый конец стержня теплоизолирован.

12 (уровень З). Электрическое (электростатическое) поле принято изображать графически путем построения линий равного потенциала (изолиний) либо силовых линий (см. учебник физики; в трехмерном случае линии равного потенциала заменяются поверхностями равного потенциала). Потенциал электрического поля, создаваемого одиночным зарядом (1, на расстоянии r от

него имеет значение ф —, где = 8,85 • 10—12 ф/м (так на4пго r зываемая «электрическая постоянная»). Разработайте программу для построения изолиний электростатического поля, создаваемого одиночным электрическим зарядом, в квадратной области, в центре которой находится этот заряд. Сетка должна содержать нечетное количество линий — так, чтобы заряд находился в центральном узле сетки. Предварительно необходимо, пользуясь приведенной формулой, составить таблицу значений потенциала в каждом узле сетки.

Задание 13 (уровень З). Разработайте программу для построения изолиний электростатического поля, создаваемого двумя электрическими зарядами в прямоугольной области, в которой эти заряды симметрично расположены в узлах сетки (см. рис. 17.1). Постройте изолинии для случаев (11 = (12 и q1 — О . (Поскольку потенциал — скалярная характеристика электрического поля, потенциалы полей от различных зарядов в любой точке пространства арифметически суммируются с учетом знака.)

Рис. 17.1

Работа 17.5. Задача об использовании сырья

Цель работы: ознакомиться с графическим методом и возможностями табличного процессора Excel для решения задач об использовании сырья.


Задание 1 (уровень 1). Найдите максимум функции z = 4х1 + 3х2 (Xi О) при условиях:

Решите задачу графическим методом и с помощью функции Поиск решения Microsoft Excel.

Задание 2 (уровень 1). По построенной математической модели к задаче № 7 (см. вопросы и задания к S 3.4.1 учебника для 11 класса) получите решение с помощью табличного процессора Excel, используя инструмент Поиск решения.


Задание З (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Трикотажная фабрика для производства свитеров и кофточек использует чистую шерсть, эластан и вискозу, запасы которых составляют соответственно 95, 80 и 75 кг. Количество трикотажного сырья (в кг), необходимое для изготовления 10 изделий, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства изделий, обеспечивающий получение максимальной прибыли.

Вид сырья

Затраты сырья на 10 изделий

Свитер

Кофточка

Шерсть

2

5

Эластан

5

2

Вискоза

5

1

Прибыль

4

5

Задание 4 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Швейная фабрика для пошива пальто и курток использует драп, подкладочную ткань и отделочную ткань, запасы которых составляют соответственно 98, 62 и 76 мГ . Количество ткани (в м2), необходимое для изготовления 10 изделий, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства изделий, обеспечивающий получение максимальной прибыли.

Вид сырья

Затраты сырья на 10 изделий

Пальто

Куртка

Драп

2

7

Подкладочная ткань

з

2

Отделочная ткань

4

1

Прибыль

2

5


Задание 5 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Для производства кетчупа и соуса используются томатная паста, крахмал и сухие овощи, запасы которых составляют соответственно 32, 52 и 44 кг. Количество сырья (в кг), необходимое для изготовления 10 кг кетчупа и 10 кг соуса, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства продуктов, обеспечивающий получение максимальной прибыли.

Вид сырья

Затраты сырья на 10 кг продукта

Кетчуп

Соус

Томатная паста

1

2

Крахмал

4

1

Сухие овощи

з

2

Прибыль

5

6

Задание 6 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Мебельная фабрика для производства комодов и шкафов использует дерево, пластик и стекло, запасы которых составляют соответственно 41, 77 и 75 м 2 . Количество сырья, необходимое для изготовления 10 изделий, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства изделий, обеспечивающий получение максимальной прибыли.

Вид сырья

Затраты сырья на 10 изделий

Шкаф

Комод

Дерево

2

з

Пластик

2

7

Стекло

5

2

Прибыль

7

6


Задание 7 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. При производстве кормов для птиц используются витаминная мука, просо и овес, запасы которых составляют соответственно 32, 29 и 45 кг. Количество сырья, необходимое для изготовления 10 кг кормов, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства кормов, обеспечивающий получение максимальной прибыли.

Вид сырья

Затраты сырья на 10 кг кормов

Корм для попугаев

Корм для канареек

Витаминная мука

1

4

Просо

2

з

Овес

5

2

Прибыль

8

7

Задание 8 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. На четырех станках обрабатываются два вида изделий. Каждое изделие проходит обработку на каждом станке. В таблице заданы нормы загрузки оборудования в пересчете на единицу продукции и фонд полезного времени работы станков. Составьте оптимальный план загрузки оборудования, обеспечивающий максимальную прибыль.


Станки

Нормы загрузки оборудования

фонд времени по загрузке оборудования

Вид изделия

 

 

 

5

5

80

 

2

1

18

 

 

2

16

 

1

 

8

Доход от реализации

7

15

 

ПоДсказка: в этой задаче ресурсом является время. В качестве ограничений на этот ресурс используется фонд времени по загрузке оборудования.


Задание 9 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Строительная фирма производит и устанавливает «под ключ» дачные домики двух типов (серия А, серия В). Возведение каждого домика требует определенных трудозатрат для производства комплектующих, монтажа домика и внутренней отделки. Производственные мощности фирмы и ее персонал дают возможность выделять ежемесячно 65 человеко-дней на производство комплектующих, 75 человеко-дней на монтаж домиков и 105 человеко-дней на внутреннюю отделку. В таблице заданы трудозатраты и доход, который фирма получает от реализации каждого типа домиков. Сколько домиков каждого типа должна производить фирма, чтобы получить максимальную прибыль?

Вид деятельности

Трудозатраты, чел.-дней

Серия А

Серия В

Производство комплектующих

5

2

Монтаж домиков

5

4

Внутренняя отделка

5

7

Прибыль

7

4

ПоДсказка: в этой задаче в качестве ресурса выступают трудозатраты. Ограничения накладываются на этот ресурс.


Задание 10 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. На звероферме выращиваются черно-бурые лисы и песцы. Для обеспечения нормальных условий их выращивания используется три вида кормов. Количество корма каждого вида, которое должны получать животные, приведено в таблице. В ней также указаны запасы корма каждого вида, которые могут быть использованы зверофермой, и прибыль от реализации одной шкурки лисицы и песца. Сколько животных надо вырастить, чтобы получить максимальную прибыль от реализации шкурок?

Вид корма

Количество единиц корма, которое ежедневно должны получать

Запасы

кормов

Лисица

Песец

 

2

з

180

п

4

1

240

ш

 

7

426

Прибыль от реализации одной шкурки

160

120

 

Задание 11 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Фирма сдает в аренду складские помещения двух типов. Стоимость аренды зависит от типа арендуемого помещения и месяца. Финансовые возможности торговой фирмы, арендующей складские помещения, ограничены и составляют в марте не более 75 тыс. условных денежных единиц, в апреле — не более 39 тыс. условных денежных единиц, в мае — не более 113 тыс. условных денежных единиц. Фирма-арендодатель получает прибыль от сдачи помещений в аренду. Найдите план аренды складских помещений, обеспечивающий максимальную прибыль фирме-арендодателю.

Месяц

Арендная ставка, тыс. усл. денежных единиц/м2

Тип складского помещения

 

 

Март

2

5

Апрель

з

1

Май

7

 

Прибыль

5

8

Подсказка: в этой задаче в качестве ресурса выступают деньги. Ограничения накладываются на этот ресурс.


Задание 12 (уровень 2). Постройте математическую модель и решите графическим методом и с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. При производстве грунта для домашних растений используются три вида почвы, запасы которой составляют соответственно 60, 92 и 72 кг. Количество почвы, необходимое для изготовления 10 кг грунта каждого типа, а также прибыль, получаемая от их реализации, приведены в таблице. Составьте план производства грунта, обеспечивающий получение максимальной прибыли.

Вид почвы

Количество почвы на 10 кг грунта

Грунт универсальный

Грунт для кактусов

 

1

4

 

2

з

ш

5

2

Прибыль

8

7

Задание 13 (уровень З). Постройте математическую модель и решите с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую задачу. Инвестиционная компания рассматривает в качестве объектов для инвестирования два проекта: проект — производство энергосберегающих ламп, проект П — производство приборов учета воды. Финансовые возможности фирмы позволяют ей инвестировать в 1-м квартале не более 20 тыс. условных денежных единиц, во 2-м квартале — не более 25 тыс. условных денежных единиц, в 3-м квартале — не 60лее 30 тыс. условных денежных единиц. Какой из проектов целесообразно выбрать, чтобы получить максимальную прибыль?

 

Потребность в денежных средствах, тыс. усл. денежных единиц

Тип проекта

 

 

1-й квартал

10,8

9,45

2-й квартал

10,8

12,15

3-й квартал

13,5

14,85

Ожидаемая прибыль

23

20


ПоДсказка: необходимо ввести в рассмотрение двоичные переменные Х1 и Х2, каждая из которых принимает только два значения: нуль, если соответствующий проект не выбирается для инвестирования, и единицу, если проект выбирается для инвестирования. Целевая функция имеет вид: 7, 23 • Х1 + 20 • Х2. К модели необходимо добавить ограничение, связанное с двоичным видом переменных Х1 и Х2. Это можно сделать в окне добавления ограничений инструмента Поиск решения (рис. 17.2).

Рис. 17.2

Работа 17.6. Транспортная задача

Цель работы: ознакомиться с возможностями табличного процессора Excel для решения транспортной задачи.

Задание 1 (уровень 2). Постройте математическую модель и решите с помощью табличного процессора Excel, используя инструмент Поиск решения, следующую транспортную задачу. На складах имеются запасы груза, который необходимо доставить в магавины в определенном объеме. Вариант 1:

Запасы груза на складах

Склады

 

 

 

аз

 

 

Запасы груза

245

315

 

670

 

710

Потребность в грузе в магазинах

 

 

 

Магазины

 

62

 

 

 

 

 

Объем груза

150

200

240

 

370

360

620


17-6. Транспортная задача

Удельные стоимости

 

 

 

 

 

 

 

 

500

470

820

560

650

1000

 

900

1150

870

790

350

800

 

460

560

290

780

830

870

380

420

470

920

910

990

 

Вариант 2:

Запасы груза на складах

Склады

 

 

 

 

Запасы груза

830

455

375

500

Потребность в грузе в магазинах

Магазины

 

 

 

 

 

 

Объем груза

450

275

390

255

270

520

Удельные стоимости перевозки

 

 

 

 

 

 

 

 

580

770

420

960

850

700

 

800

1050

670

980

890

1100

 

660

680

590

780

740

570

580

320

870

730

410

1000

 

Вариант З:

Запасы груза на складах

Склады

 

 

 

 

Запасы груза

 

100

20

75

Потребность в грузе в магазинах

Магазины

 

 

 

 

Объем груза

зо

80

95

35

Удельные стоимости

 

 

 

 

 

 

 

 

 

10

 

10

 

12

10

 

 

 

 

11

 

 

 

 

 

Вариант 4:

Запасы груза на складах

Склады

 

 

 

 

Запасы груза

45

85

20

90

Потребность в грузе в магазинах

 

 

Магазины

 

 

 

 

Объем груза

25

60

35

120

Удельные стоимости перевозки

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

 

 

 

 

 

 

 

10

12

 

Вариант 5:

Запасы груза на складах

Склады

 

 

 

 

Запасы груза

65

80

35

90

Потребность в грузе в магазинах

 

 

Магазины

 

 

 

 

Объем груза

60

50

85

75

Работа 17 „б. Транспортная задача

Удельные стоимости

 

 

 

 

 

 

8

10

6

5

02

4

з

5

9

аз

11

4

4

8

 

5

5

з

6

Задание 2 * (уровень З). Фирма, имеющая собственный автопарк, занимается перевозкой грузов из различных населенных пунктов. После доставки груза автомобили ожидают новой заявки на перевозку груза в том городе, куда был доставлен груз. Расстояния между городами, количество свободных машин и заявки на машины приведены в таблице. Составьте план перегона порожних автомобилей, обеспечивающий их минимальный суммарный пробег.

Пункты доставки грузов

Расстояние между городами, км

Количество свободных машин (шт)

Москва

Нижний

Новгород

Рязань

Калуга

Пермь

1907

1506

1780

1650

4

Екатеринбург

2011

1950

1890

1788

з

Челябинск

2500

2120

1960

1854

 

Курган

2450

2100

1970

1790

1

Заявки на машины (шт)

2

з

з

6

 

ПоДсказка: обозначив как Х iJ. количество машин, перегоняемых из ј-го города в ј-й, в качестве целевой функции нужно рассматривать суммарный пробег порожних автомобилей:

               1907 • ХИ +1506 •      +1780 • ХИ +1650 хи +

+ 2011 •  +1950 • хи +1890 • хи +1788 • + + 2500 •  +2120 • хи +1960 • хзз +1854 • + + 2450 • +2100 • хо +1970 +1790. хи.

* Урубков А. Р., ФеДотов И. В. Методы и модели оптимизации управленческих решений: учебное пособие. М.: Изд-во «Дело» АНХ, 2009.


Работа 17.7. Задачи теории расписаний

Цель работы: освоить методы решения задач теории расписаний (задачи о шлюзе и о двух станках).

Задание 1 (уровень 1). Воспроизведите решение задачи о шлюзе из S 3.4.3 учебника для 11 класса с помощью табличного процессора Excel.

Задание 2 (уровень 2). Составьте программу на Паскале для решения задачи о шлюзе и протестируйте ее работу на исходных данных, приведенных в S 3.4.3 учебника для 11 класса.

Задание З (уровень 2). Вычислите календарное время обработки деталей на двух станках. Исходные данные (время обработки Ьй детали на первом и на втором станках) представлены в таблице. Используйте «ручную» реализацию алгоритма Джонсона, а также программу на Паскале, приведенную в S 3.4.3 учебника для 11 класса.

Вариант 1:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (42)

1

з

4

2

7

 

з

12

5

4

9

8

5

2

10

Вариант 2:

№ детали

Время обработки детали на первом станке (41)

Время обработки детали на втором станке (42)

1

12

5

2

9

8

з

7

6

4

9

8

5

2

10

Задачи теории расписаний

Вариант З:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (ti2)

1

9

8

2

5

 

З

4

з

4

7

12

5

10

4


Вариант 4:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (42)

1

8

4

2

2

5

з

з

4

4

7

6

5

1

8

Вариант 5:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (42)

1

9

8

2

2

7

з

4

11

4

5

4

5

12

2

Вариант 6:

№ детали

Время обработки детали на первом станке (Ъ)

Время обработки детали на втором станке (42)

1

з

4

2

7

6

з

12

10

4

9

8

5

12

5

Вариант 7:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (42)

1

12

5

2

10

8

з

7

6

4

9

8

5

2

10

Вариант 8:

№ детали

Время обработки детали на первом станке (ti1)

Время обработки детали на втором станке (ti2)

1

9

8

2

5

6

з

4

з

4

10

4

5

7

12

Вариант 9:

№ детали

Время обработки детали на первом станке (41)

Время обработки детали на втором станке (Ъ)

1

8

4

2

2

7

з

з

5

4

7

8

5

1

5

Вариант 10:

№ детали

Время обработки детали на первом станке (41)

Время обработки детали на втором станке (42)

1

9

7

2

з

8

з

4

11

4

5

4

5

12

з

Задачи из теории игр

Работа 17.8. Задачи из теории игр

Цель работы: ознакомиться с методом решения задач конечных игр с полной информацией.

Задание 1* (уровень 2). Имеются две кучки камней и З камня. Два игрока ходят по очереди. За один ход игрок либо увеличивает количество камней в какой-то кучке в 3 раза, либо добавляет 2 камня в какую-то кучку. Выигрывает игрок, после хода которого в одной из кучек становится не менее 24 камней. В распоряжении игроков имеется неограниченное количество камней. Кто выиграет в этой игре — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?

Задание 2 (уровень 2). Имеются две кучки камней и 2 камня. Два игрока ходят по очереди. За один ход игрок либо увеличивает количество камней в какой-то кучке в З раза, либо добавляет З камня в какую-то кучку. Выигрывает игрок, после хода которого в одной из кучек становится не менее 24 камней. В распоряжении игроков имеется неограниченное количество камней. Кто выиграет в этой игре — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?

Задание З (уровень 2). Имеются две кучки камней и 2 камня. Два игрока ходят по очереди. За один ход игрок либо увеличивает количество камней в какой-то кучке в З раза, либо добавляет 1 камень в какую-то кучку. Выигрывает игрок, после хода которого в одной из кучек становится не менее 16 камней. В распоряжении игроков имеется неограниченное количество камней. Кто выигрывает в этой игре — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?

Задание 4 (уровень 2). Имеются три кучки камней и 4 камня. Два игрока ходят по очереди. Ход состоит в том, что игрок либо удваивает количество камней в какой-то кучке, либо добавляет по 2 камня в каждую из кучек. Выигрывает игрок, после хода которого в одной из кучек становится не менее 15 камней либо количество камней во всех трех кучках становится не менее 25. В распоряжении игроков имеется неограниченное количество камней. Кто выигрывает в этой игре — игрок, делающий первый

* Варианты заданий 1—4 взяты из книги: Самылкина Н. Н. Готовимся к ЕГЭ по информатике. Элективный курс: учебное пособие. М. БИНОМ. Лаборатория знаний, 2008.

ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?

Задание 5* (уровень 2). Имеются две кучки камней и З камня. Два игрока ходят по очереди. Ход состоит в том, чтобы добавить 4 камня в большую кучку либо утроить количество камней в меньшей. Если камней в кучках поровну, то добавлять камни можно только в одну из них. Игрок проигрывает, если сумма камней в обеих кучках становится больше или равна 22. Кто выигрывает в этой игре — игрок, делающий первый ход, или игрок, делающий второй ход? Каким должен быть первый ход выигрывающего игрока?

Работа 17.9. Моделирование экологической системы

Цель работы: проведение исследования динамики экологической системы «хищник-жертва» с помощью электронных таблиц и программирования на Паскале.

Задание 1 (уровень 1). Проведите моделирование динамики системы «хищник-жертва» при значениях параметров: r = 5, а = 0,1, q = 2, f = 0,6, = 150, Со =50, используя уравнения (3.56) из S 3.4.5 учебника для 11 класса. Объясните полученные результаты.

Задание 2 (уровень 2). Проведите моделирование динамики численности популяций в системе «хищник-жертва», используя уравнения (3.56) из 9.4.5 учебника для 11 класса, при значениях параметров: r 5, а 0,1, (1 = 2, f = 0,6. Проанализируйте зависимость исхода эволюции от соотношения значений параметров  И со.

Задание З (уровень 2). Проведите моделирование динамики численности популяций в системе «хищник—жертва», используя уравнения (3.56) из S 3.4.5 учебника для 11 класса, при значениях параметров: r = 5, а == 0,1, (1 = 2, No = 100, Со = 6. Проанализируйте зависимость результатов моделирования от значения параметра f в диапазоне от 0,1 до 2.

Задание 4 (уровень З). Рассматриваемая в S 3.4.5 учебника для 11 класса модель (3.56) предсказывает сопряженные колебания численности жертв и хищников. Исследуйте зависимость запаздывания амплитуды колебаний численности хищников от амплитуды колебаний численности жертв в зависимости от значений пара-

* Вариант 5 взят из книги: Информатика: ЕГЭ 2011. Контрольные тренировочные материалы с ответами и комментариями (Серия «Итоговый контроль: ЕГЭ»). М.; СПб. : Просвещение, 2011.

Имитационное моделирование

метра а. Значения остальных параметров зафиксируйте по своему усмотрению.

Задание 5 (уровень З). Рассматриваемая в S 3.4.5 учебника для 11 класса модель (3.56) предсказывает сопряженные колебания численности жертв и хищников. Исследуйте зависимость запаздывания амплитуды колебаний численности хищников от амплитуды колебаний численности жертв в зависимости от значений параметра q. Значения остальных параметров зафиксируйте по своему усмотрению.

Задание 6 (уровень З). Рассматриваемая в S 3.4.5 учебника для 11 класса модель (3.56) предсказывает сопряженные колебания численности жертв и хищников. Исследуйте зависимость запаздывания амплитуды колебаний численности хищников от амплитуды колебаний численности жертв в зависимости от значений параметра f. Значения остальных параметров зафиксируйте по своему усмотрению.

Задание 7 (уровень З). Рассматриваемая в S 3.4.5 учебника для 11 класса модель (3.56) предсказывает сопряженные колебания численности жертв и хищников. Исследуйте зависимость запаздывания амплитуды колебаний численности хищников от амплитуды колебаний численности жертв в зависимости от значений параметра r. Значения остальных параметров зафиксируйте по своему усмотрению.

Работа 17.10. Имитационное моделирование

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

Задание 1 (уровень 1). Пользуясь программой для построения последовательности псевдослучайных чисел, распределенных в соответствии с законом Пуассона, постройте такие последовательности для различных значений параметра п, входящих в формулу 3.62 (см. S 3.5.2 учебника для 11 класса; п = 4, 6, 8), сравните соответствующие гистограммы распределений и сделайте качественные выводы о влиянии параметра п на вид распределения.

Задание 2 (уровень 1). Пользуясь электронной таблицей (см. рис. 3.58 в S 3.5.4 учебника для 11 класса), проведите серию экспериментов при различных соотношениях среднего времени ожидания в очереди и обслуживания клиента. Выясните, при каких соотношениях указанных параметров наступает кризис очереди, описанный в учебнике (см. S 3.5.5, рис. 3.62, 3.63).

Задание 3 (уровень 1). Пользуясь программой на Паскале (см. S 3.5.5 учебника для 11 класса), проведите серию экспериментов при различных соотношениях среднего времени ожидания в очереди и обслуживания клиента. Объем каждой выборки должен составить 10 ООО единиц.

Задание 4 (уровень 2). Измените программу для получения последовательности псевдослучайных чисел, приведенную в S 3.5.3 учебника для 11 класса, для имитации нормального (гауссова) распределения. Постройте несколько гистограмм распределения, полученного методом отбора-отказа, для различных выборок из 10 ООО точек в каждой.

Задание 5 (уровень З). На междугородной телефонной станции две телефонистки обслуживают общую очередь заказов. Очередной заказ обслуживает телефонистка, которая освободилась первой. Если обе телефонистки в момент поступления заказа заняты, то звонок аннулируется, и клиенту требуется звонить снова. Промоделируйте этот процесс, считая входные потоки пуассоновскими.

Задание б (уровень З). В травмпункте работает один врач. Длительность лечения больного и промежутки времени между поступлениями больных — случайные величины, распределенные по пуассоновскому закону. По тяжести травм больные делятся на две категории; поступление больного любой категории — случайное событие с равновероятным распределением. Врач сначала занимается больными с тяжелыми травмами (в порядке их поступления), а затем, если таковых нет, — больными с легкими травмами. Промоделируйте этот процесс и оцените среднее время ожидания в очереди больных каждой категории.

Задание 7 (уровень З). Одна ткачиха обслуживает группу станков, осуществляя по мере необходимости краткосрочное вмешательство, длительность которого — случайная величина. Какова вероятность простоя сразу двух станков? Как велико среднее время простоя одного станка?

Задание 8 (уровень З). В городском автохозяйстве имеются две ремонтные зоны. Одна обслуживает ремонты краткой и средней продолжительности, другая — средней и длительной (т. е. среднесрочный ремонт может осуществлять любая из этих зон). По мере поломок в автохозяйство доставляют транспорт; промежуток времени между его доставками — пуассоновская случайная величина. Продолжительность ремонта — случайная величина с нормальным законом распределения. Промоделируйте эту систему. Определите среднее время ожидания в очереди транспорта, требующего краткосрочного, среднесрочного и длительного ремонта.

Имитационное моделирование

Задание 9 (уровень З). На телефонной станции используется обычная система: если абонент занят, то очередь не формируется, и надо звонить снова. Промоделируйте следующую ситуацию: три абонента пытаются дозвониться до одного и того же владельца номера и в случае успеха разговаривают с ним некоторое случайное по длительности время.

Задание 10 (уровень З). Промоделируйте ситуацию, описанную в предыдущей задаче, но со следующим изменением: если в момент попытки дозвона телефон абонента занят, то формируется очередь.

Задание 11 (уровень З). При обслуживании запросов к базе данных в локальной компьютерной сети, организованной по принципу «клиент-сервер», рабочая станция (клиент) посылает серверу запрос на обработку данных и ждет, пока сервер обработает этот запрос. При так называемой распределенной обработке данных сервер имеет монопольный доступ к единственной в системе базе данных; при простейшей организации работы системы «клиентсервер» каждый последующий запрос начинает обрабатываться только после завершения транзакции, связанной с предыдущим запросом.

Промоделируйте работу этой системы в следующих случаях:

1)   нормальное (гауссово) распределение промежутков времени между поступлениями клиентских запросов на сервер и равновероятное распределение продолжительностей транзакций;

2)   нормальное распределение промежутков времени между поступлениями клиентских запросов на сервер и пуассоновское распределение продолжительностей транзакций;

З) пуассоновское распределение промежутков времени между поступлениями клиентских запросов на сервер и равновероятное распределение продолжительностей транзакций;

4) пуассоновское распределение промежутков времени между поступлениями клиентских запросов на сервер и нормальное распределение продолжительностей транзакций.


Оглавление

Раздел 14. Системология

Работа 16.1. Программирование линейных алгоритмов

 

 

на Паскале. . . .                                                            

 43

Работа 16.2.

Программирование алгоритмов

 

 

с ветвлением .       

 46

Работа 16.3.

Программирование циклических алгоритмов

 

 

на Паскале

. 53

Работа 16.4.

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

 

 

подпрограмм . . .

58

Работа 16.5.

Программирование обработки массивов. ,

. 60

Работа 16.6.

Программирование обработки строк

 

 

символов •

66

Работа 16.7.

Программирование обработки записей 69

Работа 16.8.

Рекурсивные методы программирования. . . . . 74

Работа 16.9.

Объектно-ориентированное программирование  77

Работа 16.10. Визуальное программирование ......... •                     78

Работа 16.11. Проекты по программированию . . . .  84

Работа 14.1. Модели системз Работа 14.2. Проектирование инфологической модели .

Раздел 15. Базы данных .8

Работа 15.1.

Знакомство с СУБД     

Работа 15.2.

Создание базы данных

 

 

«Классный журнал»               • •               

 15

Работа 15.3.

Реализация запросов

 

 

с помощью Конструктора           

 20

Работа 15.4.

Расширение базы данных             

 29

Работа 15.5.

Самостоятельная разработка базы данных.      

 33

Часть 2

43

Раздел 16. Программирование.

Оглавление


Раздел 17. Моделирование91


Работа 17.1.

Компьютерное моделирование свободного

 

 

падения         

   91

Работа 17.2.

Численный расчет баллистической

 

 

траектории         

   92

Работа 17.3.

Моделирование расчетов стрельбы

 

 

по цели..             , .         

 93

Работа 17.4.

Численное моделирование распределения

 

 

температуры          

   94

Работа 17.5.

Работа 17.6.

Работа 17.7.

Работа 17.8.

Работа 17.9.

Задача об использовании сырья .            

   97

Работа 17.10.                                                      

Транспортная задача . . . 104 Задачи теории расписаний. . 108

Задачи из теории игр                                         . 111

Моделирование экологической системы. . . . . 112 Имитационное моделирование 113

Для заметок