- •Реализация алгоритмов в системе программирования turbo pascal 7.0 Учебное пособие
- •Тема 1 Алгоритмы и способы их описания
- •Тема 2 Этапы подготовки и решения задач на эвм
- •Тема 3 Начало работы в системе Turbo Pascal 7.0
- •Начало работы с новой программой
- •Задание 1
- •Сохранение текстового файла программы на диске
- •Задание 2
- •Задание 3
- •Задание 4
- •Тема 4 Ввод исходных данных и вывод результатов вычислений
- •Упражнение 1.
- •Тема 5 Реализация линейных алгоритмов
- •Сложные выражения
- •Задание
- •Тема 6 Программирование разветвляющихся алгоритмов
- •Задание 1
- •Задание 2
- •Тема 7 Циклические алгоритмы с известным числом повторений
- •Задание
- •Тема 8 Циклические алгоритмы с неизвестным числом повторений
- •Задания
- •Задание
- •Тема 10 Работа с массивами
- •Задание
- •Задание
- •Тема 12 Записи
- •Задания
- •Тема 13 Работа с файлами
- •Задания
- •Задания
- •Тема 15 Алгоритмы построения графика аналитически заданной функции
- •Задание
- •Тема 16 Анимация изображений
- •Задание 1
- •Задание 2
- •Тема 17 Численные методы вычисления определённого интеграла
- •1. Метод прямоугольников
- •2. Метод трапеций
- •3. Метод Симпсона
- •Задания
- •Тема 18 Численные методы решения нелинейных уравнений
- •Задания
- •Тема 19 Численные методы решения обыкновенных дифференциальных уравнений
- •Задание
- •Оглавление
- •Литература
Задания
Вариант 1
а) Создать текстовый файл, в котором имеется 100 строк и в каждой строке содержится ее номер.
б) Создать программу, которая все числа в файле, кратные 10, заменяет символом «!».
Вариант 2
а) Создать файл, состоящий из 10 записей. Каждая запись должна иметь следующую структуру: фамилия, номер телефона, адрес. Заполните файл данными о студентах Вашей группы.
б) Создать программу, запрашивающую фамилию и выдающую из созданного ранее файла номер телефона и адрес.
Вариант 3
а) Создать файл, состоящий из 15 записей. Каждая запись должна иметь следующую структуру: фамилию, дату рождения (год, месяц, день). Заполните файл данными о студентах Вашей группы.
б) Создать программу, запрашивающую месяц рождения и выдающую из созданного ранее файла соответствующие данные, если таковые имеются.
Вариант 4
а) Создать файл, состоящий из 15 записей, в которых хранится информация о имеющихся в лаборатории химических реактивах. Каждая запись должна иметь следующую структуру: название вещества, масса или объем, степень очистки, номер шкафа, номер полки. Заполните файл данными.
б) Создать программу, запрашивающую название реактива и выдающую из созданного ранее файла соответствующие данные, если таковые имеются.
Вариант 5
Создать программу, которая обрабатывает текстовый файл таким образом, что начиная с третьей строки, все буквы «Р» заменяет на буквы «Л».
Вариант 6
Создать программу, которая обрабатывает текстовый файл таким образом, что символы каждой второй строки будут записаны в обратной последовательности.
Вариант 7
Создать программу, которая выводит на экран содержимое текстового файла и при этом гласные буквы выделяет красным цветом, а все остальные символы - синим.
Вариант 8
а) Создать программу, которая записывает в файл типа byte 1000 случайных чисел от 0 до 255 и программу, которая записывает такие же числа в текстовый файл.
б) Создать программу, которая выводит на экран содержимое текстового файла и его размер.
Вариант 9
Создать программу, которая выводит на экран сообщение «Привет!», причем информацию о цвете букв, фона, расположении надписи на экране берет из файла privet.cfg, созданного ранее.
Вариант 10
Создать программу, которая считывает текстовый файл и создает новый файл, вставляя в нем между всеми символами пробел.
Тема 14
Программирование в графическом режиме на языке Паскаль
При выводе на экран графической информации (линии, эллипсы, многоугольники, растровые изображения и др.) используется графический режим работы монитора, в котором изображение строится из пикселей (pixels) – точек на экране, каждая из которых может иметь свой цвет.
Для разработки программ, работающих в графическом режиме, в системе программирования Turbo Pascal существует стандартный модуль GRAPH.TPU, содержащий константы, типы, процедуры и функции (более 50-ти).
Кроме файла GRAPH.TPUдля разработки программ в графическом режиме требуется графический драйверEgavga.bgi (для адаптеров EGA и VGA), расположенные в папке..\BGIсистемы. Там же, в файлах *.chrнаходятся векторные шрифты для графического режима. Следует отметить, что в дистрибутивном пакете системыTurboPascalэти шрифты не имеют русских букв, однако можно найти и русифицированные*.chrфайлы, например, в системе Quattro Pro.
Для работы в графическом режиме следует выполнить действия:
скопировать в каталог с файлом программы драйвер egavga.bgi;
в разделе описания используемых модулей указать Uses Graph;
описать две переменные целого типа Gd, Gm: Var Gd,Dm:integer;
задать автоматический режим настройки графического драйвера: Gd:=Detect;
для переключения в графический режим вызвать процедуру InitGraph: InitGraph(Gd,Gm,'');
выполнить вывод на экран графической информации;
для выхода из графического режима вызвать процедуру ClоseGraph;
После переключения в графический режим вместо текстового курсора используется невидимый текущий указатель, который может быть установлен в определённой точке экрана с помощью задания графических координат. Для режима VGA640480 верхний левый угол экрана будет иметь координаты (0,0), а правый нижний угол (639,479).
Пример 1.Наберите текст программы, рисующей 5 концентрических окружностей в центре экрана.
Program Krug2;
Uses Graph;
Var
Gd,Gm,rad,xc,yc:integer;
begin
Gd:=Detect; { функция InitGraph должна выполнить } { автоопределение типа монитора (Gd) и его } { максимального разрешения (Gm)}
InitGraph(Gd,Gm,''); { инициализация графического режима }
if GraphResult <> 0 then { в случае ошибки инициализации }
begin
Writeln('Ошибка инициализации графического режима');
Writeln('В каталоге программы должен присутствовать драйвер egavga.bgi');
Writeln('или укажите путь к нему в IniGraph(Gd,Gm,<путь>)');
Halt(1);
end;
Case Gd of { анализируем тип дисплея }
{ и вычисляем координаты центра экрана }
9: begin { VGA монитор }
xc:=(640-1) div 2; yc:=(480-1) div 2;
end;
3: begin { EGA монитор }
xc:=(640-1) div 2; yc:=(350-1) div 2;
end;
end;
for rad:=1 to 5 do
Circle(xc,yc,rad*20); { рисуем окружности }
Readln;
CloseGraph; { возврат в текстовый режим }
end.
Ниже приведён перечень наиболее часто используемых процедур и функций для работы в графическом режиме.
Function GetMaxX:Integer; Возвращает максимальнуюx-координату (разрешение по горизонтали) текущего графического режима
Function GetMaxY:Integer;Возвращает максимальнуюy-координату (разрешение по вертикали) текущего графического режима
Function GetX:Integer;Возвращает текущуюx-координату указателя
Function GetY:Integer;Возвращает текущуюy-координату указателя
Procedure PutPixel(x,y,color:Word);Выводит на экран точку с координатами(x,y)и цветомcolor
Procedure SetColor(color:Word);Устанавливает цвет рисуемых далее линий
Procedure SetBkColor(color : Word); Устанавливает цвет фона
Procedure Line(xStart,yStart,xEnd,yEnd:Integer); Проводит прямую линию из точки (xStart,yStart) в точку (xEnd,yEnd)
Procedure LineTo(xEnd,yEnd:Integer);Проводит прямую линию из текущего положения указателя в точку с координатами(xEnd,yEnd)
Procedure MoveTo(x,y : Integer);Перемещает указатель в точку с координатами(x,y)
Procedure Circle(x,y,Radius : Integer);Рисует окружность с центром в точке(x,y)и радиусомRadius
Procedure Rectangle(x1,y1,x2,y2 : Integer);Рисует прямоугольник с координатами левого верхнего и правого нижнего угла(x1,y1)и(x2,y2)соответственно
Procedure Bar(x1,y1,x2,y2 : Integer);Рисует закрашенный прямоугольник с координатами левого верхнего и правого нижнего угла(x1,y1)и(x2,y2)соответственно
Procedure Ellipse(x,y, a1,a2, xRad,yRad : Integer);Рисует эллиптическую дугу с центром в точке(x,y), начальным и конечным угламиa1 и a2и радиусами по осямxRad, yRad; углы отсчитываются от положительного направления осихв градусах
Procedure FloodFill(x,y:integer; border:word);Закрашивает замкнутую область, внутри которой расположена точка(x,y), согласно текущему стилю заполнения. Параметрborderзадаёт цвет границы
Procedure SetFillPattern(parttern:byte; color:word); Устанавливает тип закраски и её цвет. Тип закраски выбирается из списка:EmptyFill– сплошное заполнение цветом фона;SolidFill- сплошное заполнение заданным цветом;LineFill– заполнение горизонтальными линиями;LtSlashFill-диагональное заполнение (/ / /);LtBkSlashFill- обратное диагональное заполнение (\ \ \);XhatchFill– косое клетчатое заполнение
Procedure SetLineStyle(Style,Pattern,color:word); задаёт стиль, палитру и толщину линий. Стили: Solidln - сплошная; Dotted - точечная; Dashed - пунктирная; Centerln - штрихпунктирная. Толщина линий: NormWidth – нормальная; ThickWidth – толстая. Параметр Pattern=0
Procedure OutTextXY(x,y:Integer; s:string); Выводит текстовую строку s начиная с точки с координатами (x,y)
Простейшие примеры работы с процедурами и функциями графического режима содержатся в справочной системе Turbo Pascal. Полный список констант, типов, процедур и функций модуля GRAPHсодержится также в файлеGraph.intв папке..\DOC.