Программирование на Паскале.
На
главную
Примеры программ на Pascal
(Из рубрики: Начинающим о компьютерных
технологиях. Автор - NK)
nk-inform.narod.ru
Pascal | BASIC | ||
Настоящий компилятор. Мы получаем программу EXE, которую можно запустить на любом компьютере. | Программы работают внутри оболочки (правда, есть редкие исключения - например Turbo Basic). | ||
Исходник программы на Паскале остается работоспособным практически во всех версиях и в некоторых случаях даже в Delphi. | Существует огромное количество Бейсиков несовместимых друг с другом. | ||
Строгое отношение к типам данных одновременно дисциплинирует и защищает от ошибок. | Строгая типизация появилась только в последних версиях. | ||
Модульность программ, и их структурированность с использованием функций и процедур наглядна и логична. | Модульность и реальную процедурность поддерживают только последние версии. | ||
Переход с объектного Паскаля на Дельфи проходит довольно мягко. | VisualBasic
очень сильно отличается от обычного Бейсика, к тому же постоянно
меняется от версии к версии. |
Мое кратенькое руководство по программированию на Pascal не претендует
на истину в последней инстанции. При желании можно найти кучу
литературы, которая поможет вам усовершенствоваться на этом поприще.
Но, как сложны и утомительны бывают для начинающих фундаментальные
увесистые труды. Ведь весь тот объем, который в них заложен,
для простеньких программ может и не понадобиться. И как же тогда
занырнуть в этот удивительный омут программистских изысканий, не
слишком отягощая свои мозги объемной теорией?
Мой курс, как раз и предназначен для этого. Все будет очень просто и
доступно. Мы пройдемся по всем основным моментам
программирования на Паскале. Будет рассмотрено большое количество
примеров, которые помогут вам понять, как программы управляют
компьютером для получения нужного результата.
Для наших экспериментов подойдут практически любые версии
оболочек языка Pascal.
Предлагаются для рассмотрения следующие базовые темы основ программирования на Pascal.
1. Как создавать
программы.
2. Программирование на Паскале - что это
такое.
3. Программы работают с данными.
4. Переменные нужно объявлять.
5. Операция присваивания.
6. Простые примеры.
7. Построение выражений и встроенные
функции.
8. Технология алгоритмического
программирования.
9. Работа со строками.
10. Процедуры и функции.
11. Массивы.
12. Работа с файлами.
13. Графика на Pascal.
14. В заключение.
1. Как создавать программы? В начало
Рассмотрим
создание простой
программы: таблица умножения.
Компьютер может выполнять сложные вычисления, но,
для начала, научимся заставлять его выполнять простые. Как выглядит
столбик таблицы умножения знают все школьники. Создадим программу,
которая будет такой столбик выводить.
Просто внимательно посмотрите на две таблицы ниже. Если вы хотите научиться программировать, эти пути вам придется проходить каждый раз при создании своего очередного программистского шедевра.
Постановка задачи | Блок-схема | Программа | Комментарий | |
Начало программы
|
Var
A, B, C : Integer; Repeat
Until B > 10; | Объявление переменных
определенного типа Вывод на экран приглашения для ввода числа. Считывание числа введенного с клавиатуры в переменную А Присвоение переменной В значения равного 1. Цикл вычисления произведения. Вывод значений сомножителей и произведения на экран. Увеличение второго сомножителя Проверка величины сомножителя. Ожидание нажатия Enter перед выходом из программы. |
Теперь посмотрим, как это
работает.
Оболочка программы Turbo Pascal 6.0 | Ctrl + F9 - Запуск программы. | |
Только что я продемонстрировал вам на
практике фундаментальные положения программирования:
-
Постановка задачи (создание модели эксперимента).
- Формализация
(Перевод поставленной задачи на язык формул).
- Создание компьютерной
программы (создание программного кода).
- Компьютерный эксперимент
(запуск и выполнение программы).
- Анализ результата и
внесение корректировок при необходимости.
2. Программирование на Паскале - что это такое?
В начало
Программа -
это набор команд (инструкций), которые управляют работой
компьютера.
Инструкции
записываются в виде строк в редакторе программной среды Pascal (например
Turbo Pascal) и являются законченными командами. Несколько команд в
одной строке должны быть разделены точкой с запятой.
Команды
могут заставить компьютер:
- получить от пользователя какие то данные. (Ввод)
- отобразить данные на экране, записать в файл, распечатать на
принтере, передать в сеть. (Вывод)
- Выполнить какие то действия, например: арифметические,
алгебраические, логические. (Вычислительные
выражения).
- Перескочить в программе с одного места на другое или выполнить какой
то блок команд многократно (Ветвление и цикл).
-
Команды записываются на языке
программирования и, фактически, состоят из операторов и параметров.
| |
- Операторы
это слова или символы, которые зарезервированы в языке
программирования для выполнения
определенных функций и по другому назначению
использоваться не могут. | |
- Параметры уточняют или конкретизируют выполнение необходимых действий команды. |
Посмотрите
на пример выше и вам сразу станет ясно, где в команде операторы (Begin
- начать, Write - вывести, Repeat - повторять, := присвоить значение.)
И где параметры: (Выводить то, что в кавычках, прочитать в переменную и
тд).
Если команда
- вычислительное выражение, то в ней обычно присутствуют переменные и
арифметические или иные операции, которые выполняют необходимую
обработку данных.
Например: SUMM:=A+B; - суммирование двух чисел.
Нужно учитывать, что, называя переменные, мы должны подчинятся
определенным правилам. В имени только латиница и цифры и никаких точек,
запятых, пробелов и тд.
Как же
выглядит в общем виде "заявка"от человека с требованием к компьютеру:
выполнить определенные действия.
"Скелет"
программы на Паскале.
Слово
Var не является обязательным, но серьезных программ без переменных не
бывает.
Var
{Оператор Var обозначает начало
блока для объявления переменных.}
K : Integer;
{Oбъявление переменных}
{То, что в фигурных скобках, программа не обрабатывает, это комментарии
для пояснения действий программы}
Begin
Writeln(‘Введи К’);
{Приглашение ввести значение
переменной К}
Readln(K);
{Считывание значения, введенного с
клавиатуры, в переменную c именем K}
Writeln(‘Это
К = ’, K);
{Вывод на экран значения введенной
переменной K}
{Любая команда в Паскале завершается точкой с запятой.}
End.
{Begin и End обозначают начало и
конец, какого либо программного блока. End с точкой - конец программы.}
Посмотрите на пример.
В программе на
Паскале обязательными элементами являются только Begin и End. - c
точкой, все остальное - ваше творчество, Но прежде чем затевать
написание любой программы, вы должны
определиться с ее базовыми составляющими.
Состав программы | Выполняемые операции | Способы выполнения | |
Ввод | Нужно решить: какие данные (цифры, текст, изображения и т.д.) и как попадут в вашу программу. | - Будут заложены в самой
программе. - Будут введены с клавиатуры. - Будут взяты из файла. - Другие вырианты. | |
Обработка | Что и как вы будете делать с исходной
информацией, чтобы получить результат. |
-
Вычисление по формулам. - Шифрование, кодирование, сортировка, поиск. - Изменение свойств. - Другие действия. | |
Вывод | Что и куда выводить. | -
На экран. - На принтер - В файл. - Другой вариант . |
3. Программы работают с данными. В начало
Ту информацию, с которой работают программы
принято называть данными. И, в самом деле, мы передаем программе для
обработки числа, символы, текст, изображения.
Перед использованием данных программа должна отвести для них
место в памяти,а значит программист должен знать возможности различных
типов данных, а программа их потребности. Вот и настало время
рассказать о типах данных.
С какой же информацией-данными может работать Паскаль?
С объемными изображениями, физическими объектами, и запахами - конечно
же, это шутка. Все горазда прозаичнее.
Основные, но не все типы данных, которыми может пользоваться
язык программирования Pascal указаны в таблице.
Идентификатор | Занимаемое место в памяти | Диапазон значений |
Целые числа |
||
integer | 2 | -32768..32767 |
byte | 1 | 0..255 |
longint | 4 | -2147483648..2147483647 |
Вещественные числа | ||
real | 6 | 2,9x10-39 - 1,7x1038 |
extended | 10 | 3,4x10-4932 - 1,1x104932 |
Логический тип данных | ||
boolean | 1 | true, false |
Символьный тип данных |
||
char | 1 | все символы кода ASCII |
Структурированные типы данных | ||
массив - array | Сумма потребностей всех элементов | - |
строка - string | Можно указать, например - string[10] | - |
файл - file. | Зависит от определения его структуры | - |
4. Переменные нужно объявлять. В начало
Хотя данные, которые использует
программа могут быть неизменяющимися,
например: имя, адрес, номер квартиры, чаще используют данные
меняющиеся, например: вклад в банке, остаток на складе, скорость
автомобиля и т.д.
Некоторой
порции данных, которую программа использует, как единое целое, дали
название:
ПЕРЕМЕННАЯ.
Сказать проще для работы с данными программы
используют переменные, то
есть величины, которые могут менять свое значение. Каждая переменная в
любом языке имеет три характеристики.
Имя,тип, и значение.
Имя - это название
переменной, по которому к ней будет обращаться программа.
Тип
- указывает на то, какие данные в ней хранятся, например символьные или
числовые.
Значение - это то что конкретно
хранится в этой переменной, например
число 10 или 0.55. А если это символы то, например, буква А или слово
РОССИЯ.
Программа
должна знать, какие переменные будут в
ней использованы. А
для этого в программе выполняют объявление переменных Посмотрите на
пример.
Var
N : integer; c : char;
S1 : string;
A :
array[1..100] of integer;
После Var мы указываем имена
переменных и типы данных, которые они будут хранить.
В Паскале, в отличии от BASIC-а,
все переменные нужно объявлять явно, то есть нельзя использовать
переменную, которой нет в блоке объявлений.
Как я говорил, данные могут
быть, как изменяющимися, так и постоянными. Неизменяющиеся порции
данных называются константами и могут быть определены например так:
Const
Min = 0;
Max = 100;
RAZN = (Max - Min) div 2;
Beta = Chr(255);
Mess = 'Out of memory';
Schar = #13;
{Символ без видимого
представления}
Ln10 = 2.30258;
Number = ['0'..'9'];
{Константа в виде массива}
5. Операция присваивания. В начало
A:=10;
Да,
это выглядит именно так. В этой коротенькой строчке
переменной с именем A присваивается значение - число 10. Многие думают,
что прекрасно понимают, что в этом случае происходит с компьютером и
программой. А если это так, то дли-и-и-и-н-н-н-ы-е рассуждения об этом
вам не покажутся скучными.
Встретив
такую конструкцию, программа ищет в памяти
компьютера отведенный для этой переменной блок, на который будет
указывать имя этой переменной - в данном случае A. В этот блок, размер
которого определяется типом этой переменной: в данном случае числовым;
поместит значение этой переменной: в данном случае число 10. В
дальнейшем, когда в программе встретится где-то в выражении или другой
конструкции имя этой переменной то будет использоваться не символ A, а
значение этой переменной, то есть число 10 на которое и указывает имя
этой переменной, а это ничто иное, как A.
Program POGRESHNOST; Begin x := 1/3; y := 1/3; {x и y, казалось бы, равны, но...} POGR := abs(x-y); | ||
Program KUB; Begin
Write('Введи
целое число – размер ребра куба ');
V:=A*A*A; Readln; end. {В программе нечего объяснять} | ||
Uses Crt; {Вывод звукового сигнала Begin Sound(600); {включение звука, частота 600Гц} Delay(100); {Задержка 100мс} NoSound; {выключение звука} End.
| Поэкспериментируйте с частотой и длительностью и сможете услышать гудки и писки из своего компьютерного динамика. | |
Var
{Определение
максимального числа} Begin
Write('Введи 3 числа');
Max:=A; Writeln('MAX=',Max);< Readln; End. | ||
Uses Dos; {Определить версию операционной системы} Var Begin V:=DosVersion; WriteLn('OS-version: ',Lo(V),'.',Hi(V));
Readln; |
7. Построение выражений и встроенные функции. В начало
Любая программа что то вычисляет, или что то обрабатывает. Поэтому без программной конструкции вычислительное выражение не обходится практически ни одна из них. Выражения формируются из констант, переменных, функций, знаков операций и круглых скобок по определенным синтаксическим правилам.
Круглые
скобки используются для изменения
порядка вычисления частей выражения. Выражения без скобок вычисляются в
порядке, соогласно приоритета операций.
-
вычисление значений функций;
- унарные операции ( not,+,- );
- операции типа умножения ( *,/,div,mod,and );
- операции типа сложения ( +,-, or, xor );
- операции отношения ( =, <>, <,
>, <=, >= ).
Построение вычислительных выражений мы
рассмотрим на примере
использования встроенных функций языка Pascal.
VAR
X : Integer;
Y : Real;
Begin
Write('Введи число '); Readln(X);
Writeln('Модуль X =', ABS(X));
Writeln('Синус X=',SIN(X));
Write('Введи вещественное '); Readln(Y);
Writeln('Целая часть Y =', INT(Y));
Writeln('Корень из Y =', SQRT(Y):4:4);
Writeln('Случайное число =', RANDOM);
Writeln('Логарифм Y =', LN(Y));
Writeln('('Округленное Y =', ROUND(Y));
Writeln('Дробная часть Y =', FRAC(Y));
Writeln('Y без дробной части =', TRUNC(Y));
Inc(X);
Writeln('X+1=',X);
Dec(X);
Writeln('X-1=',X);
readln;
End.
В программе
показано использование часто употребляемых функций Паскаля.
Все остальные функции могут быть вами рассмотрены самостоятельно.
Достаточно нажать в оболочке Паскаля комбинацию клавиш Shift+F1 и вы
увидете очень подробную подсказку. Почти по каждой функции имеется
демонстрационный пример.
8. Технология алгоритмического программирования. В начало
Как это ни покажется банальным, но технология алгоритмического программирования, а Pascal использует именно такие технологии, базируется на методе последовательной детализации алгоритмов. (Не пугайтесь этой умной фразы). Это, всего-навсего, означает, что большой и сложный алгоритм, (другими словами порядок выполнения программы), разбивается на отдельные простые блоки, которые должны представлять собой стандартные алгоритмические структуры:1. Линейную
2. Ветвление
3. Циклическую
Их, для наглядности, представляют в виде блок-схем. Рассмотрим их и
примеры самых простых программ, которые эти структуры используют.
Алгоритмическая
структура
Program Date;
{Показ
сегодняшней даты и времени} |
||
Алгоритмическая
структура
Program
VETVLENIE;
{Программа тестирования знания дат} |
||
Алгоритмическая структура ЦИКЛ Program Tumn; {Таблица
умножения} |
Ветвление в программах
Формат
условного оператора на языке Паскаль:
If
<условие> Then <оператор 1> Else
<оператор 2>;
При
выполнении условия программа обрабатывает
первую группу операторов, при невыполнении вторую
If <условие> Then Begin
<группа операторов 1> end
{Внимание! Перед Else точка с
запятой не ставятся}
Else Begin < группа операторов 2> end;
Рассмотрим
пример
Из двух чисел выбрать наибольшее.
Program Example;
Var A,B,C : Real; {A,B
- для хранения аргументов, C - результат}
Begin
Writeln('Введите два числа');
Readln(A,B); {Вводим
аргументы с клавиатуры}
If A>B Then C:=A Else C:=B; {Если A>B, то результат - A, иначе
результат - B}
Writeln('Наибольшее = ',C); {Выводим результат на экран}
End.
Циклические
алгоритмы в программах
Описание конструкции | Пример | ||
Цикл с параметром (со счетчиком) FOR
|
Var n,x,y : longint; {Десять четных чисел и их квадраты} Begin x:=2; FOR n:=1 to 10 do Begin y := x*x; writeln (‘x и y = ’, x, ’ – ‘, y); x:= x+2; End<; Readln; End. | ||
Цикл с предусловием WHILE WHILE силы есть? DO | Var
x,y : longint; {Десять
четных чисел и их квадраты} Begin x:=2; WHILE x<=10 do Begin y := x*x; writeln (‘x и y = ’, x, ’ – ‘, y); x:= x+2 end; Readln; end. | ||
Цикл с постусловием REPEAT REPEAT | Var
x,y : longint;
{Десять четных чисел и их квадраты} Begin x:=2; REPEAT y := x*x; writeln (‘x и y = ’, x, ’ – ‘, y); x:= x+2 UNTIL x>10; Readln; end. |
В реальных программах алгоритмические структуры: линейная, ветвление и цикл используются очень активно, и без четкого понимания их функциональности сколь ни будь серьезные программы создать невозможно.
9. Работа со строками В начало
Объявление
переменной строчного типа.
Var
S : String [20]; {Квадратные скобки со значением указывают
максимальную длину строки}
Var st : String;
Begin
Write('Введи строку');
Readln(st);
if st[5] = ‘A’ then Writeln('Пятый символ в строке
это А');
end. {Обращаемся к
символу, как к элементу массива - строка}
Символ с индексом 0 является
байтом, указывающим длину строки.
ORD(st[0]) это
текущая длина строки, но можно
получить и так LENGTH(st).
К строкам можно применять
операцию
«+» – сцепление,
например:
st
:= ‘а’ + ‘b’; st := st + ‘с’; {st
содержит «abc»}
Стандартные процедуры и функции работы со
строками.
CONCAT(S1 [,S2, ... , SN] ) | – возвращает строку, сцепление строк-параметров S1, S2, …, SN. | |
COPY(ST, I, C) | – копирует из строки ST C символов, начиная с символа с номером I. | |
DELETE (ST, I, C) | – процедура; удаляет С символов из строки ST, начиная с символа с I. | |
INSERT (SB, ST, I) | – процедура; вставляет подстроку SB в строку ST, начиная с символа I. | |
POS (SB, ST) | – отыскивает в строке ST первое вхождение
подстроки SB и возвращает номер позиции, если подстрока не найдена,
возвращается ноль. | |
Str(X: арифметическое выражение; var st: string) | -
процедура преобразует численное выражение X в его строковое
представление и помещает результат в st. | |
Val(st: string; x: числовая переменная; var code: integer) | -
процедура преобразует строковую запись числа, содержащуюся в st, в
числовое представление. | |
UpCase(Переменная) | - позволяет преобразовывать любой символ из строчного в прописной. |
Примеры
использования строк очень хорошо проиллюстрированы в помощи к Pascal (Shift+F1)
10.
Процедуры и функции.
В начало
Вспомогательный
алгоритм, может быть оформлен,
как подпрограмма (Процедура). Затем эту
процедуру можно вызывать
по имени из любого места программы.
В общем виде оформление процедуры
можно представить
следующим образом.
Описание конструкции | Пример | ||
VAR
{Объявление переменных программы} x : Integer;s : String; Procedure MyProc(a : Integer; b : String); {Заголовок Процедуры. а и b – фиктивные параметры, работают внутри процедуры} Begin ..... {тело Процедуры} End; BEGIN ..... {x, s – фактические параметры} MyProc(x,s); {вызов Процедуры} .... END. | Program HelloAll; Procedure Hello(Name:string); Begin Writeln(‘Привет, ‘, Name, ‘!’); Writeln(Name, ‘ как дела?’); Writeln; End; Begin Hello(‘Катя’); Hello(‘Андрей’); Hello(‘Лена’); End. |
Пример
создания и использования
функции из помощи к Pascal.
Program Func;
function IntToStr(i: Longint): string;
{
Функция конвертирует число в строку }
var
string[11];
begin
Str(i, s);
IntToStr := s;
end;
WriteLn(IntToStr(-5322));
end.
Пояснение. Зачем
нужно конвертирование? Если у вас в программе VAR S :
String; K : Integer; N : Integer; То Если
даже Writeln(S,' - ',K); выдает на экран 5 - 7 то,
все равно, нельзя сделать N:=K + S; потому, что N
и S - разные типы данных, и S нужно сначала
попытаться конвертировать в число. Если эта длиннючая фраза вам
понятна, то вы преодолели серьезный рубеж в понимании, что такое типы
данных. Если пока что то туманно, продолжайте экспериментировать.
Понимание придет неожиданно постепенно.
Внимание.
Функция внутри
себя использует так называемые формальные переменные, которые не видны
из основной программы. А вот когда она (функция) вызывается, то
получает для обработки значения фактических переменных,
которые объявлены и используется вне функции.
Если в
программе требуется использовать 10, или 100, или 1000 однотипных
переменных, то они могут быть определены для использования в виде
массива.
Var Имя
переменной-массива : Array [
Диапазон индексов ]
Of
Тип элементов;
Примеры
описания массивов:
Var
S, BB : Array [1..40] Of Real;
N : Array ['A'..'Z'] Of Integer;
R : Array [-20..20] Of Word;
T : Array [1..40] Of Real;
Массив
- это переменная с индексом (номером). Имя у всех
переменных одно, но при обращении к каждой отдельной мы используем
соответствующий номер (индекс).
| |||
Program M1; Var A : Array [1..10] Of Integer; Begin A[1]:=7; {Заполняем массив значениями } A[2]:=32; A[3]:=-70; .............. {Трудоемкая задача?} A[10]:=56; Writeln(A[1],A[2],A[3], ?,A[10]) End. |
Program
M2; Var A : Array [1..10] Of Integer; I : Integer; Begin For I:=1 To 10 Do {Организуем цикл } Readln(A[I]); {вводим A[I] } For I:=1 to 10 Do {Выводим массив} Writeln(A[I],'-',I,’-й’); End. | Program M3; Const N=40; {Константа N будет содержать количество элементов массива} Var A : Array [1..N] Of Integer; I : Integer; Begin For I:=1 To N Do Begin A[I]:= Trunc(Random(256)); Write(A[I],'- *-'); End; End. {Массив из случайных чисел} |
Двумерные массивы
Массивы могут быть
многомерными. Двумерный массив принято называть
МАТРИЦЕЙ.
Пример объявления
двумерного массива
Данные
для долговременного хранения помещаются на диски в виде файлов.
Файл, как и любая переменная, должен быть объявлен, например так:
File of
Тип данных.
Это
означает,
что в файл на диск будут последовательно записываться порции данных
указанного типа.
Файл состоящий из символьных строк объявляется, как File: text;
где File - имя файловой
переменной.
Рассмотрим
пример с подробными комментариями.
Uses Crt; Var ch : char; F : text; Name, S : String; Begin Writeln('‘Список класса.’'); Assign(F, 'spis.txt'); Rewrite(F); repeat Write('‘Введи имя ученика: ’'); Readln(Name); Writeln(F, Name); Writeln('Дальше – любая клавиша. Esc- Выход.'); ch:=readkey; until ch=#27; Close(F); Assign(F, 'spis.txt'); Reset(F); while not Eof(F) do begin Readln(F,S); Writeln(S); end; Close(F); readln; End. | Дополнительные функции, расширяющие
возможности Паскаля, располагаются в модулях, которые перед
использованием нужно объявлять Назначаем файлу имя, которое будет являться именем файла на диске Перезапишем дисковый файл. Те данные, что хранились на диске под этим именем перестают существовать Заполняем файл списком класса, пока не будет нажата клавиша Esc Записать имя ученика в файл. Закрываем запись в файл. Операционная система фиксирует размер файла и разрешает работать с ним другим программам. Открываем доступ к файлу для чтения. Предупреждаем операционную систему, что будем читать из данного файла Будем читать, пока не встретим конец - End of file (Eof) Вывод на экран Закрывать доступ при чтении не обязательно, |
Важно!
Когда вы в программе собираетесь читать файл, вы
должны точно знать данные какого типа там хранятся.
13. Графика на Pascal. В начало
Овладение
основами работы с графикой на Паскале нельзя недооценивать. Мы
рассмотрим только самые азы применения графических возможностей в
программах. Итак, начнем...
Перед использованием
программной
графики мы должны перевести работу нашей видеосистемы (видеоконтроллера
и монитора) в соответствующий графический режим.
Группа команд включения графического режима имеет вид:
Gd := Detect;
InitGraph(Gd, Gm, '');
if GraphResult <> grOk then Halt(1);
Использование графического режима ...
CloseGraph;
Графические режимы различаются
разрешением (максимально отображаемым количеством точек по горизонтали
и вертикали) экрана и количеством возможных цветов.
Рассмотрим
полный пример программы вывода цветных точек до
нажатия любой клавиши
uses
Crt, Graph; {Объявление
дополнительных модулей, которые будет использовать наша программа}
Var
{Объявление необходимых переменных}
Gd, Gm : Integer;
Color : Word;
Begin {Начало программы}
Gd := Detect; InitGraph(Gd, Gm, ''); {Определение и включение графического режима}
if GraphResult
<> grOk then Halt(1);
Randomize;
{Перенастройка генератора случайных
чисел}
repeat
Color := Random(15);
{Выбор случайного цвета}
PutPixel(Random(640),
Random(480), Color);
{ Цветное «звездное» небо}
Delay(300);
{Задержка времени}
until KeyPressed;
{Ожидание нажатия любой клавиши}
CloseGraph;
{Закрытие графического режима}
end.
{Закрытие программы}
Научимся
рисовать различные геометрические фигуры.
Uses Crt, Graph;
const
Gray50 : FillPatternType = ($AA, $55, $AA, $55, $AA, $55, $AA, $55);
var
Gd, Gm : Integer;
Color : Word;
begin
Gd := Detect; InitGraph(Gd, Gm, '');
if GraphResult <> grOk then Halt(1);
Randomize;
repeat
SetColor(Random(GetMaxColor)+1);
Line(Random(400), Random(400), Random(400), Random(400));
{Линии}
Circle(Random(500), Random(500),
Random(200));
{Окружности}
SetFillPattern(Gray50, Random(15));
Bar(Random(400), Random(400), Random(400),
Random(400));
{Закрашенные
прямоугольники}
delay(9000);
until KeyPressed;
CloseGraph;
end.
Внимание!
Примеры создания графики
построены по
принципу программ хранителей экрана - выводят меняющееся изображения до
нажатия любой клавиши.
Я постарался охватить те разделы создания программ на языке
программирования Pascal которые наиболее часто используются в
инженерных расчетах и при написании учебных и других полезных
программ.
Для уяснения темы обратитесь к страничке примеров программ с
комментариями.
Примеры на
Паскале