
- •Программирование на языке Turbo Pascal Материалы к урокам
- •Тема №1: этапы решения задач на эвм. Алгоритмизация. Основные понятия. Блок-схемы.
- •Свойства алгоритма
- •Элементы блок-схемы
- •Тема №2: работа в среде turbo-pascal. Транслятор. Набор текста программы. Справочная система. Выполнение и отладка программы.
- •Основные понятия:
- •Встроенные стандартные математические функции, используемые в Turbo Pascal.
- •Переменные. Описание переменных.
- •Тип переменных указывается после списка переменных через двоеточие (: ). Числовые переменные можно описать по-разному, в зависимости от вида (целые, вещественные) и значности чисел:
- •Простейшие операторы работы в текстовом режиме.
- •Нестандартный оператор очистки экрана:
- •Операторы ввода данных в переменные с клавиатуры:
- •Оператор ожидания нажатия на клавишу.
- •Целочисленные арифметические операции:
- •Функции, преобразования числовых переменных:
- •Получение случайных чисел.
- •Тема №4: программирование на языке turbo-pascal. Прорядковые типы данных. Ветвление. Операторы условного и безусловного перехода. Составление программ с использование ветвления и переходов.
- •Порядковые типы переменных (дополнительные сведения)
- •Функции, используемые для работы с порядковыми переменными.
- •Условный оператор (выбор одного из двух направлений)
- •Оператор 1, оператор 2 – какой либо оператор, в том числе и составной оператор, т.Е. Несколько операторов, объединенных операторными скобками begin end.
- •Ветвление на несколько направлений (оператор – переключатель, или оператор выбора или оператор варианта):
- •Операторы безусловного перехода goto и halt:
- •Тема №5: программирование на языке turbo-pascal. Организация циклов. Операторы циклов. Составление программ с использование операторов цикла.
- •Оператор цикла с параметром.
- •Цикл с предварительным условием
- •Цикл с последующим условием
- •Особенности и отличия операторов цикла
- •Примеры программ
- •Ответить на вопросы
- •Тема №6: программирование на языке turbo-pascal. Процедуры. Функции. Составление программ с использование процедур и функций. Рекурсия.
- •Тема №7: программирование на языке turbo-pascal. Основные графические операции языка turbo pascal. Составление программ с использование операторов графики.
- •Примеры программ:
- •Составить программу Абстракция, которая выводит на экран всевозможные графические фигуры.
- •Тема №8: программирование на языке turbo-pascal. Массивы, одномерные и вдухмерные. Составление программ с использованием массивов.
- •Задача MaxMin. Программа для поиска максимального и минимального элемента массива, с указанием их номеров (maxmin.Pas).
- •Сортировка массивов
- •Сортировка методом «пузырька»
- •Сортировка методом выбора
- •Поиск элемента в упорядоченном массиве
- •Тема №9: данные типа strung.
- •Тема №8: файлы. Типизированные файлы. Текстовые файлы.
- •Пример записи в текстовый файл:
- •Приложение 1. Структура типов данных
- •Приложение 2. Таблица кодов ascii
- •Назначение некоторых кодов ascii
- •Приложение 3. Расширенные ascii –коды клавиш
- •Приложение 4. Кодировка символов по модифицированной альтернативной кодировке символов госта (десятичный код-символ)
- •Содердание
Примеры программ:
Составить программу Абстракция, которая выводит на экран всевозможные графические фигуры.
program graphsb;
uses graph, crt;
var gd,gm,c:integer;
begin
gd:=detect;
initgraph (gd,gm,'');
setbkcolor (1); {Устанавливает цвет фона (1 - blue)}
setcolor (14); {Устанавливает текущий цвет (14 - yellow)}
circle (100,120,50); {Рисует окружность}
putpixel (100,120,14); {Рисует точку}
c:=getpixel (100,120); {Узнаёт цвет пикселя, в указанной координате}
setcolor (14);
line (100,150,200,200); {Рисует отрезок}
setcolor (1);
rectangle (250,100,350,70); {Рисует прямоугольник}
setfillstyle (5,14); floodfill (270,75,1); {Заливка прямоугольника по шаблону}
bar (400,400,500,350); {Рисует прямоугольник, закрашенный в текущем стиле}
setcolor (10); setlinestyle (0,0,3);
bar3d (100,300,200,250,15,true); {Рисует параллелепипед, закрашенный в текущем стиле}
setcolor (10); setlinestyle (1,0,3);
line (150,100,320,170); {Рисует утолщённую точечную линию}
setcolor (10); setlinestyle (0,0,3);
arc (300,350,0,175,70); {Рисует дугу окружности. Линия утолщённая.}
setcolor (9); setlinestyle (0,0,0);
ellipse (490,200,0,360,50,100); {Рисует эллипс. Нормальная толщина линии}
setfillstyle (7,14); floodfill (490,200,9);{Заливка эллипса по шаблону}
setcolor (12); setlinestyle (0,0,3);
ellipse (380,200,25,150,50,100); {Рисует дугу эллипса. Линия утолщённая}
sector (330,190,220,340,100,30); {Рисует закрашенный сектор эллипса}
setcolor (9);
pieslice (300,450,30,170,50); {Рисует круговой сектор}
setfillstyle (3,14); floodfill (300,445,9); {Заливка сектора}
setcolor (10);
lineto (550,450); {Проводит отрезок из текущей позиции в точку с координатами 550,450}
moveto (120,400); {Устанавливает курсор в точку с координатами 120,400}
setcolor (12);
lineto (350,250);
setcolor (14); settextstyle (4,0,4); {Стиль текста}
outtextxy (250,25,'Abstraction'); {Вывод текста}
repeat until keypressed;
closegraph; {Закрытие графического экрана}
clrscr; window (5,5,70,100); {Создание текстового окна}
textbackground (9); textcolor (15);
clrscr; writeln ('Цвет пикселя -',c);
writeln ('До свидания! Для завершения работы нажмите Enter.');
readln; end.
Составить программу, позволяющую текст, набранный обычным шрифтом, спроецировать в центр экрана и заменить каждый пиксель кругом
program graphtext;
uses crt,graph;
var gd,gm,i,j:integer;
begin
gd:=detect;
initgraph (gd,gm,''); {Инициализирует графическую систему}
outtextxy (1,1,'Mama'); {Выводит строку с позиции, имеющей координаты 1,1}
for i:=1 to 100 do
for j:=1 to 100 do
begin
if getpixel (i,j)=15 then
begin
setcolor (10);
circle (100+i*12,100+j*12,5);
setfillstyle (9,9); floodfill (100+i*12,100+j*12,10);
delay (700);
end;
end;
repeat until keypressed;
closegraph; {Закрытие графического экрана}
end.
Дополнительная информация.
Вывод на экран ломаной линии или закрашенного контура
DrawPoly(<количество точек>,<массив координат точек>); - выводит не экран в графическом режиме ломаную, соединяющую заданные координатами точки.
FillPoly(<количество точек>,<массив координат точек>); - выводит на экран закрашенный многоугольник, координаты вершин которого задаются в массиве.
Массив координат точек – одномерный массив типа Integer, где нечетные элементы содержат горизонтальные элементы (Х), а четные – вертикальные (У).
Количество точек определяет, сколько пар элементов массива необходимо использовать при выводе ломаной линии (многоугольника).
Чтобы оператором DrawPoly вывести многоугольник требуется за точку начала и конца ломаной линии принять определенную точку, координаты которой повторить в начале и конце массива. При этом количество точек должно равняться количеству вершин многоугольника плюс один.
Пример использования операторов:
Uses crt,graph;
const a:array[1..6]of integer=(100,100,300,200,400,400);{задание координат массива как констант}
var gd,gm,i:integer;{описание переменных для объявления графического режима и параметра цикла}
begin
gd:=detect; {объявления графического режима }
initgraph(gd,gm,'');
setcolor(5); {задание цвета линий}
setfillstyle(1,2);
fillpoly(3,a);{рисование закрашенного треугольника}
for i:=1 to 6 do{цикл для изменения массива с координатами точек}
if i mod 2 =0 then a[i]:=a[i]-80 else a[i]:=a[i]+100;
drawpoly(3,a);{рисование угла}
repeat until keypressed;
end.