Тип занятия- комбинированное занятие
Тема занятия- «Модуль. Модуль CRT»
Цели занятия
обучающая- систематизировать знания
учащихся; осуществить контроль за качеством усвоения полученных знаний;
изучение приемами создания пользовательских моделей программиста; изучение
стандартных процедур и функций модуля CRT;
закрепление
предыдущего материала «Подпрограммы функции и процедуры»
развивающая- развивать умение обобщать и
анализировать учебный материал; развивать чувство ответственности к учебе;
развивать речь;
воспитательная- воспитывать
активность.
Методическое оснащение
- демонстрационные плакаты (см
приложение А);
- карточки (см. приложение Б, В, Г).
ХОД ЗАНЯТИЯ
1. Организационный момент – 3 мин.
2. Актуализация опорных знаний.
2.1 Тест по ранее изученной теме
«Подпрограммы» (см. приложение Б) (10 мин)
2.2 Фронтальный
опрос: (7 мин)
В это время 4 студентов работают по индивидуальному
заданию (см. приложение В). Один человек у доски оформляет домашнее задание.
-чем
отличаются подпрограмма функция от подпрограммы процедура
(Заголовок, Вызов, Процедуры может иметь несколько результатов работы (несколько
параметров переменных), а функция может иметь единственный результат простого
типа)
-каким
критерием необходимо пользоваться при выборе способа оформление подпрограммы?
(Если подпрограмма должна изменить значение только
одной переменной основной программу, то ее следует оформить как функцию, в
остальных случаях подпрограмму следует оформлять как процедуру)
- Найдите ошибку в программе (см. приложение Г)
-наличие оператора какого вида обязательно в
подпрограмме функция?
(NAME := E; где NAME – имя подпрограммы функция; e-
выражение значение которого является результатом работы функции)
3. Изучение материала (25 мин)
3.1 Пользовательские модули
Довольно часто при
написании программ можно обнаружить, что некоторые пользовательские процедуры
и функции используются довольно часто. Поэтому часто используемые подпрограммы
удобно оформить в виде модуля свободно пользоваться ими в любой программе.
Модуль- это автономно компилируемая
программная единица, включающая в себя различные компоненты раздела описаний
(типы, константы, переменные, процедуры и функции) и некоторые исполняемые
инструкции инициирующей части.
Модули
представляют собой инструмент для разработки библиотек прикладных программ и
средства модульного программирования. Особенность модулей заключается в том,
что компилятор размещает их программный код в отдельном сегменте памяти, что
дает возможность создавать большие программы.
Модуль имеет
следующую структуру:
unit <имя модуля>
Interface < интерфейсная часть>
Implementation < исполняемая часть>
Begin
<инициирующая часть>
end.
Имя модуля- это идентификатор по которому происходит обращение основных программ к
данному модулю.
Интерфейсная часть содержит объявление всех глобальных объектов модуля, которые
могут использоваться другими программами. подпрограммы задаются полным
описанием своего заголовка.
Исполняемая часть содержит описание всех подпрограмм. Параметры процедур и
функций можно не указывать.
Часть инициализации может содержать операторы подготовки основной программы к
работе или отсутствовать вообще (в этом случае begin не указывается, а ставиться только end.)
Пример.
Найти значения выражения max(a+b,a-b), min(a+b, a-b).
Unit MAXMIN;
interface
function min(a,b: integer):integer;
function max(a,b: integer):integer;
implementation
function min(a,b: integer):integer;
begin
if a<b then min:=a else min:=b;
end;
function max(a,b: integer):integer;
begin
if a>b then max:=a
else max:=b;
end;
end.
Program A;
Uses MaxMin;
var a,b: integer;
begin
writeln(‘введите два целых числа’);
readln(a,b);
writeln(‘min=’,min(a+b,a-b));
writeln(‘max=’,max(a+b,a-b));
end.
3.2
Стандартные модули (25 мин)
В языке ТР 7.0
имеется 8 стандартных модулей, в которых содержится большое число разнообразных
типов, процедур и функций.
Модуль System – системный модуль, который подключается к любой программе
автоматически (все остальные модули становятся доступными только после указания
их имен в списке модулей, открываемом словом Uses)
Модуль Printer делает доступным вывод
текстов на принтер
Модуль Dos обеспечивает доступ к средствам Dos
Модуль Overlay необходим при разработке больших
программ с перекрытием
Модули Turbo 3 и Graph3 введены для совместимости в версией Turbo Pascal3.0
Модуль Graph- обеспечивает управление графическим
режимом экрана
Модуль Crt- обеспечивает управление текстовым
режимом экрана и звуком.
3.3 Модуль CRT
В модуль CRT входят процедуры установки режимов и
окон, управления цветом текста и фоном, управления выводом текста, работой с
клавиатурой, управления курсором, звуком, временем.
Интерфейс
|
Описание
|
Procedure ClrScr
|
Очищает экран и перемещает курсор в верхний левый
угол
|
Procedure
Windows(x1,y1, x2, y2: byte)
|
Определяет окно вывода в текстовом режиме. (x1, y1) и (x2,y2) –координаты верхнего левого и
нижнего правого углов окна
|
Procedure
TextBackground (color: byte)
|
Выбор цвета фона. Color- код цвета или соответствующая константа
|
Procedure
TextColor (Color:byte)
|
Выбор цвета символов. Color- код цвета или соответствующая константа
|
Fuction
KeyPressed: Boolean
|
Определяет была ли нажата клавиша. Возвращает true, если нажата, и false, если нет
|
Function ReadKey: char
|
Чтение символа из буфера клавиатуры. Возвращает код символа нажатой
клавиши
|
Procedure
GotoXY(X,Y: integer)
|
Перемещает курсор в указанные координаты окна
вывода.
|
Procedure Sound(Hz: Word)
|
Включает звук динамика с заданной частотой Hz
|
Procedure NoSound
|
Выключает звук динамика
|
Procedure Delay(MS: word)
|
Задержка исполнения программы на заданное число
миллисекунд MS
|
Цветовая
шкала
0
|
Black
|
черный
|
8
|
DrakGray
|
Темно-серый
|
1
|
Blue
|
синий
|
9
|
LigthBlue
|
Светло-синий
|
2
|
Green
|
зеленый
|
10
|
LigthGreen
|
Светло-зеленый
|
3
|
Cyan
|
Голубой
|
11
|
LigthCyan
|
Светло-голубой
|
4
|
Red
|
Красный
|
12
|
LigthRed
|
Светло-красный
|
5
|
Magenta
|
Фиолетовый
|
13
|
LigthMagenta
|
Светло-фиолетовый
|
6
|
Brown
|
Коричневый
|
14
|
Yellow
|
Светло-коричневый
|
7
|
LigthGray
|
Светло-серый
|
15
|
White
|
белый
|
Пример. Написать программу ввода
символов с клавиатуры, чтобы ввод каждого символа сопровождался звуком. выход
из программы- ввод символа «!».
4. Подведение итогов (20 мин)
4.1 Самостоятельная работа (См.
приложение Д)
4.2 Краткая беседа по пройденному
материалу.
5. Задание на дом - работа с опорным
конспектом, [181-187,262-274,1]
6. Используемая литература
1. Гуденко Д, Петроченко Д., Сборник задач по
программрованию, СПб.: Питер, 2003
2. Культин Н., Программирование в Turbo Pascal и Delphi, СПб.: БХВ-Петербург, 2001.
3. Попов В.Б., Turbo Pascal
для школьников, М.: Финансы и статистика, 2004
4. Самостоятельные работы, тесты и диктанты
по информатике, Серия «Информатика в школе», М.: Информатика и образование,
2000
Приложение А
Процедуры и функции модуля CRT
Интерфейс
|
Описание
|
Procedure ClrScr
|
Очищает экран и перемещает курсор в верхний левый
угол
|
Procedure
Windows (x1,y1, x2, y2: byte)
|
Определяет окно вывода в текстовом режиме. (x1, y1) и (x2,y2) –координаты верхнего левого и
нижнего правого углов окна
|
Procedure
TextBackground (color: byte)
|
Выбор цвета фона. Color- код цвета или соответствующая константа
|
Procedure
TextColor (Color:byte)
|
Выбор цвета символов. Color- код цвета или соответствующая константа
|
Fuction
KeyPressed: Boolean
|
Определяет была ли нажата клавиша. Возвращает true, если нажата, и false, если нет
|
Function ReadKey: char
|
Чтение символа из буфера клавиатуры. Возвращает код
символа нажатой клавиши
|
Procedure
GotoXY(X,Y: integer)
|
Перемещает курсор в указанные координаты окна
вывода.
|
Procedure Sound(Hz: Word)
|
Включает звук динамика с заданной частотой Hz
|
Procedure NoSound
|
Выключает звук динамика
|
Procedure Delay(MS: word)
|
Задержка исполнения программы на заданное число
миллисекунд MS
|
Продолжение приложения А
Структура
модуля
Unit <имя модуля>
Interface < интерфейсная часть>
Implementation < исполняемая часть>
Begin
<инициирующая
часть>
end.
Продолжение приложения А
Цветовая
шкала
Код
|
Константа
|
Цвет
|
Код
|
Константа
|
Цвет
|
0
|
Black
|
черный
|
8
|
DrakGray
|
Темно-серый
|
1
|
Blue
|
синий
|
9
|
LigthBlue
|
Светло-синий
|
2
|
Green
|
зеленый
|
10
|
LigthGreen
|
Светло-зеленый
|
3
|
Cyan
|
Голубой
|
11
|
LigthCyan
|
Светло-голубой
|
4
|
Red
|
Красный
|
12
|
LigthRed
|
Светло-красный
|
5
|
Magenta
|
Фиолетовый
|
13
|
LigthMagenta
|
Светло-фиолетовый
|
6
|
Brown
|
Коричневый
|
14
|
Yellow
|
Светло-коричневый
|
7
|
LigthGray
|
Светло-серый
|
15
|
White
|
белый
|
Приложение Б
ТЕСТ
По теме «Подпрограммы»
Вариант 1
1.
Где располагаются
подпрограммы
А. Под основной программой
Б. После заголовка программы перед разделом описания
В. После раздела описания перед основной программой
2.
Верно ли высказывание :
«Подпрограмма имеет ту же структуру, что основная программа».
А. Да Б. Нет
3.
При описании заголовка
подпрограммы указываются
А. Фактические параметры Б.
Формальные параметры
4.
Для передачи данных из
основной программы в подпрограмму используются
А. Параметры - значение Б.
Параметры - переменные
В. Параметры - функции Г.
Параметры - процедуры
5.
Результат работы
подпрограмма процедура передается через
А. Параметры - значение Б.
Параметры - переменные
В. Параметры - функции Г. Имя
Д. Параметры - процедура
6.
Сколько результатов работы
подпрограмма функция
А. Несколько Б. Один результат
простого типа
В. Только два Г. Один результат любого типа
7.
Что напечатает следующая
программа?
Var a,b,c,d: integer;
Function func(x,y,z: integer) : integer;
Var w: integer;
Begin
w:= x+y;
If y< z+1 then w:=w+1;
Func:=w;
End;
BEGIN
a:=5; b:=4; c:=2;
d:=func(a,b,c);
writeln(d);
d:=func(b,c,d);
writeln(d);
END.
Продолжение приложения Б
ТЕСТ
По теме
«Подпрограммы»
Вариант 2
1.
Подпрограмма-
А. Программа, написанная под
основной программой.
Б. Любой частичный алгоритм,
описанный как самостоятельная структура.
В. Любой частичный алгоритм.
2.
Верно ли высказывание:
«Операторы, расположенные в подпрограмме выполняются только в том случае, если
в основной программе есть оператор вызова подпрограммы»
А. Да Б. Нет
3.
При вызове подпрограммы
указываются
А. Фактические параметры Б.
Формальные параметры
4.
Для передачи данных из
подпрограммы в основную программу используются
А. Параметры - значение Б.
Параметры - переменные
В. Параметры - функции Г.
Параметры - процедуры
5.
Результата работы
подпрограмма функция передается через
А. Параметры - значение Б.
Параметры - переменные
В. Параметры - функции Г. Имя
Д. Параметры - процедура
6.
Сколько результатов работы
подпрограмма процедура
А. Несколько Б. Один результат
простого типа
В. Только два Г. Один
результат любого типа
7.
Что напечатает следующая
программа?
Var
a,b: integer;
Procedure
Func( x,y,z: integer; Var w: integer);
Begin
w:= x+y;
If y< z+1 then w:=w+1;
End;
BEGIN
a:=2; b:=5; c:=4;
func(a,b,c,d);
writeln(d);
func(b,c,d,d);
writeln(d);
END.
Приложение Д
В приведенной ниже программе, использующей функцию программиста для
вычисления сопротивления цепи, имеется ошибка. Найдите их.
Var r1,r2,r3: real;
Function Sopr(r1,r2,r3: real): real;
Begin
Sr:=(r1+r2+r3)/(r1*r2*r3);
End;
BEGIN
Readln(r1,r2,r3);
Writeln(sr(r1,r2,r3));
END.
Приложение В
Вариант 1
Написать модуль с описаниями гиперболических функций
- синус
гиперболический
- косинус
гиперболический
Найти значение выражения
Вариант 2
Написать модуль с описаниями гиперболических функций
- тангес
гиперболический
- котангес
гиперболический
Найти значение выражения
Вариант 3
Написать модуль с описаниями обратных гиперболических функций
- ареасинус
гиперболический
- ареатангес
гиперболический
Найти значение выражения
Вариант 4
Написать модуль с описаниями обратных гиперболических функций
- ареакосинус
гиперболический
- ареатангес
гиперболический
Найти значение выражения
Приложения Г
Программа
и процедура, вызываемая из основной программы для вычисления объема шара и
площади его поверхности, выглядит так:
Program p;
Var r,s,v: real;
Procedure SharVS( r,s,v: real);
Begin
V:= (4*pi*r*r*r)/3;
S:=4*pi*r*r;
End;
BEGIN
S:=0; V:=0;
Write(‘Задайте радиус шара и нажмите <Enter>’);
Readln(r);
SharVS(r,s,v);
Writeln(‘Радиус ’, r:6:3);
Writeln(‘Объем ’, v:6:3);
Writeln(‘Площадь’, s:6:3);
END.
Пример работы
программы.
Задайте
радиус шара и нажмите <Enter> 5
Радиус
5.000
Объем
0.000
Площадь
0.000
В чем ошибка?
Приложение Д
В приведенной ниже программе, использующей функцию программиста для
вычисления сопротивления цепи, имеется ошибка. Найдите их.
Var r1,r2,r3: real;
Function Sopr(r1,r2,r3: real): real;
Begin
Sr:=(r1+r2+r3)/(r1*r2*r3);
End;
BEGIN
Readln(r1,r2,r3);
Writeln(sr(r1,r2,r3));
END.
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.