Пример 1 Изобразить состояние динамических переменных по каждой строчке операторов:
var p1,p2,p3:^Integer;
Begin
new(p1);
p1^:= 2;
new(p2);
p2^:= 3;
P1:= P2;
P2^:=nil;
Dispose(P2);
Пример 2 Что будет выведено на экран?
Program DPointer;
var p1,p2,p3:^Integer;
Begin
p1:=NIL; p2:=NIL; p3:=NIL;
New(p1); New(p2); New(p3);
p1^:=2; p2^:=4;
p3^:=p1^+Sqr(p2^);
writeln(p1^:3, p2^:3, p3^:3);
p1:=p2;
writeln(p1^:3, p2^:3, p3^:3);
End.
Пример 3. Изобразить структуры списков:
Односвязный список
Стек
Очередь
Кольцо
Двухсвязный список.
Пример 4: Изобразить состояние динамических переменных по каждой строчке операторов:
type tu= ^ tells;
type tells =record
i: integer;
n:tells;
end;
els, w: tu;
Begin
new(els,w);
els^.I:= 1;
els^.n:= nil;
w:= els;
els:= nil;
К п.2. Одной из областей, где необходимо использование указателей, является работа со списками, например, односвязными и двусвязными. Списки имеют начало и конец. Основные действия: создание, просмотр, вставка и удаление элемента в указанном месте списка.
Широкое распространение среди односвязных списков получили такие динамические структуры данных, как стеки, очереди и кольцеобразные списки. Стек организован таким образом, что программе доступна лишь его вершина: оттуда можно взять элемент или записать его туда. Таким образом, элементы можно извлечь из стека в порядке, обратном порядку их записи -"последний вошел - первый вышел". Очередь же реализует другой вариант доступа к данным - "первый вошел - первый вышел’. Новый элемент добавляется в конец очереди, а выбирается первый. Если последний элемент очереди связать с первым элементом, то получится замкнутый, кольцеобразный список..
Для работы с такими структурами при выполнении индивидуального задания рекомендуется использовать базовые процедуры:
создать список;
очистить список;
поместить элемент в список;
взять (удалить) элемент из списка;
просмотреть элементы списка.
Занятие № 3
Объектно-ориентированное программирование
Продолжительность занятия 4 часа
Цель работы: ознакомление с технологий ООП в системе программирования АВС-Pascal.
Программа работы
1. Ознакомиться с классами модулей ABCObjects, GraphABC и рассмотреть примеры программирования с их испрользованием.
2. Ознакомиться с индивидуальным заданием и нарисовать эскиз формы.
3. Создать новый класс (классы) -наследник графического элемента управления и составить программы, используя любые фрагменты программ из раздела меню среды «Помощь»
4..Отладить программу.
Таблица 5.- Индивидуальные задания
№ вар. | Графический элемент управления | Класс | Изображение | |
Кнопки | Действия | |||
1. | Светодиод | TLightDiod | Вкл, Выкл | Изменяет цвет |
2. | Сегмент индикатора | TSegment | Больше, Меньше | + _ |
3. | Лампочка | TLamp | Вкл, Выкл | Светится, не светится |
4. | Тумблер | TSwitch | При наведении мыши меняет положение | |
5. | Реостат прямоугольный (плавное изменение) | TVar | Влево Вправо | При нажатии кнопок перемещается на одно деление |
6. | Переключатель (фиксированные положения) | TSwitching | Больше Меньше | При нажатии перемещается на фиксированное значение |
Нагреватель прямоугольный | Tnagr | Три позиции | В зависимости от позиции меняет цвет | |
Экран мобильного телефона | TMob | Память Звонок | Высвечивается набранный номер. Меняет цвет | |
Экран монитора | TMon | Вкл Выкл | Высвечивается введенный текст, гасится экран | |
Штора окна | TStor | Верх Середина Низ | Открытие шторы на соответсвующую часть окна | |
Индикатор загрузки | TInd | Окно ввода, кнопка Загрузка | В зависимости от % перемещается полоска индикатора | |
Флюгер (вид сверху) | TFlug | Задание направления ветра С, СВ,СЗ и тд | Поворот флюгера | |
Маяк | TMajak | Кнопки режима 1 2 3 | Не светит, один луч, два луча. | |
Двери | TDwer | Кнопки откр закр переключатель дверь1 дверь2 | Закрытие открытие каждой двери | |
Ромб | TRomb | Кнопки вправо влево | Перемещение ромба | |
Круг | TKrug | Кнопка больше, меньше, цвет | Изменение диаметра и цвета | |
Указатель уровня | TUkUr | Вертикальный указатель и окно ввода | ||
Панель источника питания | TIstpit | Окно ввода, светодиоды от сети, вкл., от батареи | Напр есть (вкл) Напр > 200 от сети Напр > 200 от батар | |
Светофор | Tswet | Три лампы и кнопка переключения | Меняется цвет через желтый | |
Перемещение магнитных головок по компакт-диску | Tdisk | Окно ввода, круг диска, прямоугольник головок. | Перемещается по прямой на расстояние, пропорционально введенному номеру дорожки | |
Трехпрограммный радиоприемник. | Tradio | Окно ввода три разноцветных светодиода | В зависимости от введенной частоты один из светодиодов или ни один | |
Пульт телевизионный | Ttv | Две кнопки каналов, одна - выкл | Экран пуст или две разных заставки | |
Кодировщик | Tkod | Окно ввода, два светодиода | В зависимости от цифры 0-3 высвечивается двоичный код (1 –горит) | |
Имитатор эмоций | Timit | Кнопки безразличие, злость, радость | Изменяется пиктограмма лица и цвет | |
Три звезды | Tzwez | Кнопки перемещения и изменению цвета | Перемещается одна звезда и меняется ее цвет | |
Дорожный знак | Tznak | Кнопки изменения цвета и рисунка знака | Красный и синий цвет, «кирпич» и стоянка. | |
Две окружности-светофор переезда | Tpereezd | Кнопка переключения цвета | Поочередно мигают два фонаря | |
Очки | Tbrille | Кнопка переключения линз | Переключение с круглых на овальные | |
Скругленный прямоугольник | Trect | Копки управления | Изменение размера экрана монитора, включение и выключение | |
Панель прибора | Tprib | Окно ввода. Кнопка вкл индикатор вкл и уровня сигнала | При нажатой кнопке горит индикатор вкл, при превышении заданного значения загорается индикатор мах |