close

Вход

Забыли?

вход по аккаунту

код для вставкиСкачать
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Глава 7. Объектно-ориентированное программирование
Практические работы и проекты
Проект № 1.
Движение на дороге
1. Изучите материал § 48 учебника (создание объектов в программе).
2. Постройте программу, которая описана в тексте параграфа. Используя выбранную среду
программирования, изобразите движение машин по дороге в текстовом или графическом
режиме. Для этого дополните класс TCar.
3. *Добавьте в модель светофор, который переключается автоматически по программе
(например, 5 с горит красный свет, затем 1 с – жёлтый, потом 5 с – зеленый и т.д.). Измените
классы так, чтобы машина запрашивала у объекта Дорога местоположение ближайшего
светофора, а затем обращалась к светофору для того, чтобы узнать, какой сигнал горит. Машины должны останавливаться у светофора с запрещающим сигналом.
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Практическая работа № 62.
Скрытие внутреннего устройства объектов
1. Измените построенную ранее программу моделирования движения автомашин по дороге
так, чтобы все поля у объектов были закрытыми. Используйте свойства для доступа к данным.
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Проект № 2.
Иерархия классов (логические элементы)
1. Используя материалы § 50 учебника, постройте модуль, описывающий иерархию классов
логических элементов. Для проверки его работы напишите программу, которая строит таблицу истинности последовательного соединения логических элементов «И» и «НЕ».
2. Добавьте в иерархию классов элементы «исключающее ИЛИ», «И-НЕ» и «ИЛИ-НЕ». Вынесите всю построенную систему классов логических элементов в отдельный модуль
LogElement.
3. «Соберите» в программе RS-триггер из двух логических элементов «ИЛИ-НЕ», постройте его
таблицу истинности (обратите внимание на вариант, когда оба входа нулевые).
4. *Постройте новый класс TNOrTrigger, моделирующй RS-триггер на двух логических элементах «ИЛИ-НЕ». От какого класса лучше наследовать этот класс? Почему?
Ответ:
Как лучше включить в этот класс два элемента «ИЛИ-НЕ»? Будете ли вы использовать для
этого наследование?
Ответ:
5. *Выполните задания 3-4 для RS-триггера на двух логических элементах «И-НЕ». Определите,
при каких входах состояние сохраняется, а какие входные сигналы запрещены.
Ответ:
6. *Постройте логический элемент «шифратор», который выдает на выходы двоичное представление номера входа, на который подали сигнал. Обозначение и таблица истинности
шифратора «4 в 2» показаны ниже:
X4
X2
X1
X0
CD
C1
C0
X3 X2 X1 X0 C 1 C0
0 0 0 1 0 0
0 0 1 0 0 1
0 1 0 0 1 0
1 0 0 0 1 1
Все комбинации входов, которые не перечислены в таблице истинности, считаются запрещенными. Выполните следующие задания:
а) по таблице истинности составьте логическую схему шифратора; постарайтесь использовать минимальное число логических элементов;
б) добавьте в программу новый класс – модель шифратора (англ. coder), в которой будут
использованы уже имеющиеся классы логических элементов;
Будете ли вы использовать наследование? Почему?
Ответ:
в) напишите программу, которая строит таблицу истинности шифратора, используя построенную модель.
7. *Постройте модель логического элемента «дешифратор» (англ. decoder), который выполняет обратную операцию. Напишите программу, которая строит его таблицу истинности.
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
C1
C0
К.Ю. Поляков, Е.А. Еремин
DC
X4
X2
X1
X0
C1
0
0
1
1
C0 X3 X2 X1 X0
0 0 0 0 1
1 0 0 1 0
0 0 1 0 0
1 1 0 0 0
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Практическая работа № 63.
Создание формы в RAD-среде
1. Постройте программу с графической формой, описание которой приведено в § 52 учебника.
2. Определите обработчики событий
OnShow (вывод формы на экран) – установить размеры формы 400 на 100 пикселей;
OnClick (щелчок мыши по форме) – уменьшить ширину и высоту формы на 10 пикселей, если соответствующий размер больше, чем 100 пикселей;
OnResize (изменение размеров формы) – вывести размеры формы в заголовке окна.
3. *[Для Delphi] Найдите в Интернете, как ограничить пределы изменения размеров формы (то
есть установить минимальную и максимальную ширину и высоту). Добавьте эти возможности в программу.
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Практическая работа № 64.
Использование компонентов
1. Постройте программу для просмотра рисунков, описание которой приведено в § 53 учебника.
2. *Дополните программу так, чтобы рисунок, размер которого меньше, чем отведенное для
его поле, центрировался в рамках этого поля.
Подсказка: нужно «подложить» под компонент TImage панель (компонент TPanel), у компонента TImage отключить принудительное выравнивание, и менять положение и размеры
этого компонента при изменении размеров формы (можно использовать обработчик события OnResize панели, на которой лежит TImage).
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Практическая работа № 65.
Компоненты для ввода и вывода данных
1. Постройте программу «RGB-кодирование», описание которой приведено в § 53 учебника.
Добавьте в эту программу защиту от ввода слишком больших чисел (больших, чем 255).
2. *Добавьте в программу возможность обратного перевода цифровых кодов: введенное значение шестнадцатеричного кода должно преобразовываться в отдельные значения RGB,
например, из «#FF00CC» нужно получить R = 255, G = 0 и B = 204.
Возможно, вам будет полезно логическое свойство Focused, которое есть у компонентов,
принимающих ввод с клавиатуры. Оно равно True, если компонент имеет «фокус ввода»,
то есть пользователь вводит данные в это поле. Например, если Edit1 – это компонент
класса TEdit, можно написать
if Edit1.Focused then
{ компонент принимает ввод с клавиатуры }
else
{ компонент НЕ принимает ввод с клавиатуры }
3. Разработайте программу для перевода морских милей в километры (1 миля = 1852 м).
4. Разработайте программу для решения системы двух линейных уравнений. Обратите внимание на обработку ошибок при вычислениях.
5. Разработайте программу для перевода суммы в рублях в другие валюты.
6. Разработайте программу для перевода чисел и десятичной системы в двоичную, восьмеричную и шестнадцатеричную.
7. Разработайте программу для вычисления информационного объема рисунка по его размерам и количеству цветов в палитре.
8. Разработайте программу для вычисления информационного объема звукового файла при
известных длительности звука, частоте дискретизации и глубине кодирования (числу бит на
отсчёт).
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Практическая работа № 66.
Разработка компонентов
1. Постройте программу с компонентом TIntEdit, описание которой приведено в § 54 учебника.
2. *Найдите в Интернете информацию по установке нового компонента в палитру компонентов среды Lazarus (или Delphi) и выполните такую установку. Измените программу так, чтобы
она использовала компонент TIntEdit из палитры компонентов. Учтите, что при установке компонента в Lazarus потребуется пересборка всей среды (в Delphi – нет).
http://kpolyakov.spb.ru
17.03.2015
Информатика, 11 класс
К.Ю. Поляков, Е.А. Еремин
Проект № 3.
Модель и представление
1. Постройте программу с компонентами, описание которой приведено в § 55 учебника.
2. Измените программу так, чтобы она вычисляла выражения с вещественными числами (для
перевода вещественных чисел из символьного вида в числовой используйте функцию
StrToFloat).
3. Добавьте в программу обработку ошибок. Подумайте, какие ошибки может сделать пользователь. Какие ошибки могут возникнуть при вычислениях? Как их обработать?
*Сделайте обработку ошибок, используя исключения (Exception).
4. *Измените программу так, чтобы она вычисляла выражения со скобками. Подсказка: нужно искать последнюю операцию с самым низким приоритетом, стоящую вне скобок.
Предусмотрите сообщение об ошибке «Непарные скобки в выражении». Для обработки
этой ошибки используйте исключение – наследник класса Exception:
type EBracketException = class(Exception);
5. Постройте программу «Калькулятор» для выполнения вычислений с целыми числами (см. рисунок).
http://kpolyakov.spb.ru
1/--страниц
Пожаловаться на содержимое документа