Тип занятия- комбинированное занятие
Тема занятия- «Модуль. Модуль CRT»
Цели занятия
обучающая- систематизировать знания учащихся; осуществить контроль за качеством усвоения полученных знаний; изучение приемами создания пользовательских моделей программиста; изучение стандартных процедур и функций модуля CRT;
закрепление предыдущего материала «Подпрограммы функции и процедуры»
Методическое оснащение
- демонстрационные плакаты (см приложение А);
- карточки (см. приложение Б, В, Г).
ХОД ЗАНЯТИЯ
Организационный момент – 3 мин.
Актуализация опорных знаний.
2.1 Тест по ранее изученной теме «Подпрограммы» (см. приложение Б) (10 мин)
2.2 Фронтальный опрос: (7 мин)
В это время 4 студентов работают по индивидуальному заданию (см. приложение В). Один человек у доски оформляет домашнее задание.
-чем отличаются подпрограмма функция от подпрограммы процедура
(Заголовок, Вызов, Процедуры может иметь несколько результатов работы (несколько параметров переменных), а функция может иметь единственный результат простого типа)
-каким критерием необходимо пользоваться при выборе способа оформление подпрограммы?
(Если подпрограмма должна изменить значение только одной переменной основной программу, то ее следует оформить как функцию, в остальных случаях подпрограмму следует оформлять как процедуру)
- Найдите ошибку в программе (см. приложение Г)
-наличие оператора какого вида обязательно в подпрограмме функция?
(NAME := E; где NAME – имя подпрограммы функция; e- выражение значение которого является результатом работы функции)
Изучение материала (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
end;
function max(a,b: integer):integer;
begin
if ab 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 | белый |
Пример. Написать программу ввода символов с клавиатуры, чтобы ввод каждого символа сопровождался звуком. выход из программы- ввод символа «!».
Подведение итогов (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
Где располагаются подпрограммы
А. Под основной программой
Б. После заголовка программы перед разделом описания
В. После раздела описания перед основной программой
Верно ли высказывание : «Подпрограмма имеет ту же структуру, что основная программа».
А. Да Б. Нет
При описании заголовка подпрограммы указываются
А. Фактические параметры Б. Формальные параметры
Для передачи данных из основной программы в подпрограмму используются
А. Параметры - значение Б. Параметры - переменные
В. Параметры - функции Г. Параметры - процедуры
Результат работы подпрограмма процедура передается через
А. Параметры - значение Б. Параметры - переменные
В. Параметры - функции Г. Имя
Д. Параметры - процедура
Сколько результатов работы подпрограмма функция
А. Несколько Б. Один результат простого типа
В. Только два Г. Один результат любого типа
Что напечатает следующая программа?
Var a,b,c,d: integer;
Function func(x,y,z: integer) : integer;
Var w: integer;
Begin
w:= x+y;
If y
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
Подпрограмма-
А. Программа, написанная под основной программой.
Б. Любой частичный алгоритм, описанный как самостоятельная структура.
В. Любой частичный алгоритм.
Верно ли высказывание: «Операторы, расположенные в подпрограмме выполняются только в том случае, если в основной программе есть оператор вызова подпрограммы»
А. Да Б. Нет
При вызове подпрограммы указываются
А. Фактические параметры Б. Формальные параметры
Для передачи данных из подпрограммы в основную программу используются
А. Параметры - значение Б. Параметры - переменные
В. Параметры - функции Г. Параметры - процедуры
Результата работы подпрограмма функция передается через
А. Параметры - значение Б. Параметры - переменные
В. Параметры - функции Г. Имя
Д. Параметры - процедура
Сколько результатов работы подпрограмма процедура
А. Несколько Б. Один результат простого типа
В. Только два Г. Один результат любого типа
Что напечатает следующая программа?
Var a,b: integer;
Procedure Func( x,y,z: integer; Var w: integer);
Begin
w:= x+y;
If y
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.