- •Первый семестр
- •Дальнейшее обучение программированию (по семестрам)
- •Рекомендуемая литература
- •I семестр Лекция 1
- •1.1 Алгоритм. Понятие алгоритма
- •1.2 Алгоритмические языки
- •1.3 Запись алгоритма
- •1.4 Элементарные структуры
- •Лекция 2
- •2.1. Договоренности о синтаксисе
- •2.2. Текст программы на Turbo Pascal
- •2.3 Элементарные операции
- •2.4. Таблица перевода для структур
- •Алгоритм:
- •Текст программы
- •2.5 Практические рекомендации по решению задач
- •3.2. Частные случаи для структуры цикла
- •3.3 Массивы
- •Лекция 4
- •4.0 Требования к защите бальных задач
- •4.1 Начало систематического изложения Turbo Pascal (tp)
- •Лекция 5
- •5.1 Простые типы данных
- •5.1.1 Перечислимый тип
- •5.1.2 Интервальный тип
- •5.1.3 Целочисленные типы
- •5.1.4 Данные типа char
- •5.1.6 Вещественные типы данных
- •Лекция 6
- •6.1 Структура программы на Паскале
- •6.2 Процедуры для стандартного ввода/вывода
- •6.3 Массивы. Регулярный тип
- •6.4 Для работы с массивами – шаблоны
- •Лекция 7
- •7.1 Строки
- •7.2 Записи
- •Лекция 8
- •8.1 Множества
- •8.2 Файлы
- •8.3 Процедуры открытия и закрытия файлов:
- •8.4 Процедуры ввода/вывода:
- •Лекция 9
- •9.1 Текстовые файлы.
- •9.2 Проект программы:
- •9.3 Простейший сканер.
- •9.4 Копия любого файла
- •Лекция 10
- •10.1 Процедуры и функции
- •10.2 Передача параметров в процедуры и функции
- •10.3 Глобальные переменные. Перекрытие (экранирование)
- •10.4 Процедурные типы
- •10.6 Рекурсия. Косвенная рекурсия
- •Лекция 11
- •11.1 Статическая и динамическая память программы
- •11.2 Динамическая память (куча, heap) с точки зрения тр
- •11.3 Операции над указателями
- •11.4 Пояснения с помощью картинки
- •11.5 Динамическая цепочка
- •Лекция 12
- •12.1 Цикл жизни программы. Проект программы
- •12.2 Характеристики качества программ
- •12.3 Программное окружение
- •12.4 Модули
- •Пример Печать данного перечислимого типа. Вот простой пример модуля (пусть имя файла с представленным ниже текстом My_Unit.Pas):
- •12.5 Обзор модуля System
- •12.5.1 Процедуры и функции, обслуживающие файловую систему
- •Лекция 13
- •13.1 Модуль crt - средства работы с экраном, клавиатурой и др.
- •13.2 Обзор примеров программ
- •13.3 Процедуры и функции модуля Crt
- •Лекция 14
- •14.1 Модуль dos - работа с файловой системой.
- •14.1.1 Прерывания.
- •14.1.2 Процедуры и функции модуля Dos
- •Лекция 15
- •15.1 Модуль Graph.
- •15.1.1 Общие сведения:
14.1.2 Процедуры и функции модуля Dos
Процедуры даты и времени
GetDate - Возвращает текущую дату, установленную в DOS
GetFTime - Возвращает дату и время последней записи в файл
GetTime - Возвращает текущее время, установленное в DOS
PackTime - Преобразует запись в 4 байтовое упакованное значение даты и времени типа longint, используемое процедурой SetFTime. Поля записи DateTime не проверяются на диапазон
SetData - Устанавливает текущую дату в DOS
SetFTime - Устанавливает время и дату последней записи в файл
SetTime - Устанавливает текущее время в DOS
UnpackTime - Преобразует 4-х байтовое упакованное значение даты и времени, возвращаемое GetFTime, FindFirst или FindNext в распакованную запись типа DateTime
Процедуры обслуживания прерываний
GetIntVeс - Возвращает адрес, хранящийся в указанном векторе прерывания
Intr - Выполняет указанное программное прерывание
MSDos - Выполняет функцию операционной системы
SetIntVec - Устанавливает адрес для указанного вектора прерывания
Функция статуса диска
DiskFree - Возвращает число свободных байт на указанном диске
DiskSize - Возвращает полный объем указанного диска в байтах
Процедуры обработки файлов
FindFirst - Ищет в указанном или текущем справочнике первый файл, соответствующий заданному имени файла и набору атрибутов
FindNext - Возвращает следующий файл,соответствующий имени и атрибутам, указанным в предыдущем вызове FindFrst
GetFAttr - Возвращает атрибуты файла
SetFAttr Устанавливает атрибуты файла
FSplit - Разбивает имя файла на 3 составные части (справочник, имя файла, расширение)
Функции обработки файла
FExpand - Берет имя файла и возвращает полное имя файла (устройство, справочник, имя и расширение)
FSearch - Ищет файл в списке справочников
Процедуры обработки процессов
Exec - Выполняет заданную программу с указанной командной строкой
Keep - Завершает программу и оставляет ее в памяти (реализует прерывание "завершить и оставить резидентным"- TSR)
SwapVectors - Меняет сохраненные вектора прерываний с текущими векторами
Функции обработки процессов
DosExitCode - Возвращает код завершения подпроцесса
Функции управления средой
EnvCount - Возвращает число строк, содержащихся в среде DOS
EnvStr - Возвращает указанную строку среды
GetEnv - Возвращает значение указанной переменной среды
Дополнительные процедуры
GetCBreak - Возвращает состояние проверки Ctrl-Break в DOS
SetCBreak - Устанавливает состояние проверки Ctrl-Break в DOS
GetVerify - Возвращает состояние флага верификации в DOS
SetVerify - Устанавливает состояние флага верификации в DOS
Дополнительные функции
DosVersion - Возвращает номер версии DOS
Лекция 15
15.1 Модуль Graph.
На примере программы построения графика заданной функции
program Graphic;
uses Graph,Crt;
var Xmax,Ymax,Xmin,Ymin,hx,hy,x,y,xx1,xx2,yy1,yy2 : real;
Gd,Gm,xx,yy,mx,my,i,Color,x1,x2,y1,y2 : integer;
s : string[40];
function F(x : real) : real;
begin
F:=sin(10*x*x) {Функция, график которой строим}
end;
begin {Тело программы}
{ Начальные установки =======================================}
Color:=15;
writeln('Введите реальные координаты графика Xmax,Xmin,Ymax,Ymin');
readln(Xmax,Xmin,Ymax,Ymin);
writeln('Введите относительные координаты экрана x1,x2,y1,y2');
readln(xx1,xx2,yy1,yy2);
{ Установка графического режима =============================}
Gd:=Detect;
InitGraph(Gd,Gm,'d:\bp\BGI\');
i:=GraphResult;
if i<>grOk then
begin
writeln('Ошибка', i:3,'Нажмите любую клавишу');
repeat until KeyPressed; Exit
end;
{ Масштабирование ==========================================}
mx:=GetMaxX; my:=GetMaxY;
x1:=round(xx1*mx); x2:=round(xx2*mx); {Относительные координаты}
y1:=round(yy1*my); y2:=round(yy2*my); {выржаются в пикселах}
hx:=(x2-x1)/(Xmax-Xmin);
hy:=(y2-y1)/(Ymax-Ymin);
{ Рисуем оси координат =======================================}
xx:=x1-round(Xmin*hx);
if (xx>x1)and(xx<x2) then Line(xx,y1,xx,y2);
yy:=y1-round(Ymin*hy);
if (yy>y1)and(yy<y2) then Line(x1,yy,x2,yy);
{Подпись}
OutTextXY(x1,y2+round(0.1*my),'Pic.1. My picture');
{ Устанавливаем шкалы на оси и рисуем сетку ===================}
for i:=1 to 11 do
begin
xx:=x1+(i-1)*(x2-x1) div 10;
x:=Xmin+(Xmax-Xmin)/10*(i-1);
Str(x:5:2,s);
if odd(i) then OutTextXY(xx-20,y2+round(0.05*my),s);
Line(xx,y1,xx,y2);
yy:=y1+(i-1)*(y2-y1) div 10;
y:=Ymax-(Ymax-Ymin)/10*(i-1);
Str(y:5:2,s);
Line(x1,yy,x2,yy);
OutTextXY(x1-round(0.1*mx),yy-5,s);
end;
{ Рисуем график =============================================}
for i:=x1 to x2 do
begin
x:=Xmin+(i-x1-1)/hx;
y:=F(x);
yy:=y1+Round((Ymax-y)*hy);
PutPixel(i,yy,Color)
end;
{ Задержка ========================================}
repeat until KeyPressed;
CloseGraph
end.
Задание.
Заменить PutPixel на LineTo
Посмотреть, какие еще процедуры и функции имеются в модуле Graph
Задача «Часики» (CRT, Graph)