3
Введение
Pascal -- это императивный язык программирования, разработанный Никлаусом Виртом в 1970 в качестве языка обучения структурному программированию. Название языку дано в честь выдающегося французского математика, физика, литератора и философа Блеза Паскаля. Первоначально язык компилировался в байт-код, подобно языку Java.
Особенностями языка являются строгая типизация и наличие средств структурного (процедурного) программирования. Паскаль был одним из первых таких языков. По мнению Н. Вирта, язык должен способствовать дисциплинированию программирования, поэтому, наряду со строгой типизацией, в Паскале сведены к минимуму возможные синтаксические неоднозначности, а сам синтаксис интуитивно понятен даже при первом знакомстве с языком.
Тем не менее, первоначально язык обладал множеством недостатков: невозможность передачи функциям массивов переменной длины, отсутствие нормальных средств работы с динамической памятью, ограниченная библиотека ввода-вывода, отсутствие средств для подключения функций написанных на других языках, отсутствие средств раздельной компиляции и т. п.
Структура программы.
В программе,написанной на языке Pascal, могут быть следующие разделы :
* заголовок программы; program имя;
* список используемых модулей; uses cписок исп.модулей;
* раздел объявления переменных; var
* раздел объявления процедур и функций; procedure,function
Begin
* тело программы . End.
Заголовок программы состоит из зарезервированного слова program и имени программы (со списком параметров ,заключенных в круглые скобки). Завершается заголовок точкой с запятой.
Порядок размещения разделов произвольный. Разделы могут отсутствовать.
Тело программы начинается словом begin , а заканчивается словом end с точкой, которая является признаком конца программы.
const имя:тип=значение;
Обычные константы могут быть целого,вещественного,символьного,логического типа и типа string, типизированные константы- любого типа,кроме типа файл.
Раздел переменных:
В этом разделе должны быть описаны все переменные,встречающиеся в программе:
var список1:тип_1;
список2:тип_2;
список_1,список_2-перечень переменных через запятую. Тип переменной можно задать двумя способами :
а) указать имя типа из раздела type,
б) описать сам тип.
Раздел процедур и функций содержит описание процедур и функций,вызываемых в теле программы.
Подробнее см. раздел Процедуры и функции.
Тело программы содержит операторы языка Pascal.
Integer |
-32768..32767 |
знаковый |
2 |
|
Вещественные типы данныж.
Тип |
Диапазон |
Число знечащих цифр |
Размер в байтах |
|
real |
2.9*10^-39.. 1.7*10^38 |
11-12 |
6 |
|
Тип comp фактически является типом целых чисел увеличенного диапазона, однако порядковым не считается.
Типы single,double,extended,comp можно использовать в программах только при наличии арифметического сопроцессора или включенного эмулятора сопроцессора.
Нельзя присваивать переменной значение из описания другого типа.
В языке Паскаль нельзя непосредственно вводить и выводить на внешние устройства значения перечисляемых типов.
В следующем фрагменте с внешнего носителя вводится порядковый номер объекта из списка значений перечисляемого типа . Оператор case присваивает соответствующее значение переменной clr.
ВЫРАЖЕНИЯ
Выражения состоят из операндов , связанных знаками операций , и круглых скобок.
Операнды выражений:
Операндами являются константы,переменные,стандартные функции ( и написанные сам-но).
Строковые или символьные константы:
Cтрока символов- это последовательность любого, в том числе и равного нулю , количества символов , расположенных на одной строке и заключенных в апострофы ( ` ).
Максимальный размер строки- не более 126 символов.
Строка , состоящая из одного символа , называется символьной константой.
Если между апострофами нет ни одного символа, то такая строка называется нулевой строкой.
Переменными называются параметры программы, значения которых могут изменяться в процессе ее выполнения.
Все используемые в программе переменные должны быть определены с указанием их типов. Переменные определяются :
в разделе объявления переменных программы
в разделе объявления переменных подпрограммы
в разделе объявления переменных модуля
в заголовке подпрограммы
Раздел объявления переменных начинается зарезервированным словом var , за которым следуют объявления конкретных переменных,состоящие из имени переменной ( имен переменных, перечисленных через запятую,если они одного типа ),двоеточия и типа переменной ( переменных). Каждое объявление завершается точкой с запятой:
var
x,y,z:real;
i,j,s:integer;
В разделе объявления переменных наряду с предопределенными типами можно использовать типы,объявленные перед этим в разделе объявления типов , а также новые, вводимые только для конкретных переменных.
Переменные.объявленные не в программе, называются глобальными, т.к. они доступны во всех частях программы,в том числе и в подпрограммах, и размещаются в сегменте данных размером 65520 байтов.
Переменные, объявленные в подпрограмме ,называются локальными,т.к. доступны только этой подпрограмме, и размещаются в стековом сегменте. По умолчанию стековый сегмент имеет размер 16384 байта, но его можно изменять . Глобальные переменные постоянно находятся в памяти,локальные размещаются в стеке лишь на время выполнения програмы.
Cтандартные функции
арифметические функции
Знаки операций
Все операции в Pascale можно разбить на следующие группы:
арифметические операции
логические операции
операции с битами информации
операции со строками
операции отношения
адресная операция @
Функция |
Назначение |
Тип результата |
|
abs(x) |
Абсолютное значение аргумента |
Совпадает с типом х |
|
arctan(x) |
Арктангенс аргумента |
Вещественный |
|
cos(x) |
Косинус аргумента |
Вещественный |
|
exp(x) |
х е |
Вещественный |
|
Frac(x) |
Дробная часть числа |
Вещественный |
|
Int(x) |
Целая часть числа |
Вещественный |
|
Ln(x) |
Натуральный логарифм |
Вещественный |
|
Pi |
Значение величины pi=3.1415926535897932385 |
||
Sin(x) |
Синус аргумента |
Вещественный |
|
Sqr(x) |
Квадрат аргумента |
Совпадает с типом х |
|
Sqrt(x) |
Квадратный корень аргумента |
Вещественный |
|
Если в операциях используются несколько данных,то их типы должны быть либо идентичными, либо совместимыми.
Арифметические операции
Знак |
Операция |
Типы операндов |
Тип результата |
|
+ |
Сложение |
Целые Хотя бы один вещественный |
Целый Вещественный |
|
- |
Вычитание |
Целые Хотя бы один вещественный |
Целый Вещественный |
|
* |
Умножение |
Целые Хотя бы один вещественный |
Целый Вещественный |
|
/ |
Деление |
Целые или вещественные |
Вещественный |
|
div |
Деление целых чисел |
Целые |
Целый |
|
mod |
Остаток от деления целых чисел |
Целые |
Целый |
|
Знаки операций + ,- и * используются также и с другими типами операндов,но тогда они имеют другой смысл. При использовании знака операции,являющегося служебным словом, он должен быть отделен от операндов хотя бы одним разделителем: a mod b.
В Pascale имеется два вида вычисления логических выражений : полное и краткое. Полное вычисление означает,что вычисляется каждый операнд,даже если уже известен результат всего выражения.
Укороченное вычисление производится до тех пор,пока не станет известен результат всего выражения, после чего вычисление последующих операндов прекращается. Выбор выда вычисления осуществляется с помощью ключа компилятора $B.
Операции отношения.
Операции отношения предназначены для сравнения двух величин ( величины должны быть сравнимых типов). Результат сравнения имеет логический тип.
Операция |
Назначение |
|
= |
равно |
|
<> |
не равно |
|
< |
меньше |
|
<= |
меньше или равно |
|
> |
больше |
|
>= |
больше или равно |
|
Круглые скобки.
Круглые скобки используются для заключения в них части выражения,значения которой необходимо выполнить в первую очередь. В выражении может быть любое количество круглых скобок, причем количество открывающих круглых скобок должно быть равно количеству закрывающих. Части выражений, заключенные в круглые скобки, должны быть либо не пересекающимися, либо вложенными друг в друга.
Порядок вычисления выражений .
Группа |
Тип действий |
Операции или элементы |
|
1 |
Вычисления в круглых скобках |
( ) |
|
2 |
Вычисления значений функции |
Функции |
|
3 |
Унарные операции |
@,not,унарный +,унарный - |
|
4 |
Операции типа умножения |
*,/,div,mod,and,shl,shr |
|
5 |
Операции типа сложения |
+,-,or,xor |
|
6 |
Операции отношения |
=.<>,<,>,<=,>=,in |
|
Простые операторы
К простым операторам относятся те операторы, которые не содержат в себе других операторов:
оператор присваивания;
обращения к процедуре;
оператор безусловного перехода goto ;
пустой оператор.
Оператор присваивания
С помощью этого оператора переменной или функции присваивается значение выражения.
Для этого используется знак присваивания := , слева от которого записывается имя переменной или функции, которой присваивается значение ,а справа- выражение, значение которого вычисляется перед присваиванием.
Допустимо присваивание значений переменным и функциям любого типа, кроме типа файл. Тип выражения и тип переменной должны быть совместимы для присваивания.
X:=y;
z:=a+b;
r:=( i>0) and (i<100);
Оператор безусловного перехода goto . Использование меток.
Оператор goto позволяет изменить стандартный последовательный порядок выполнения операторов и перейти к выполнению программы, начиная с заданного оператора. Оператор, на который происходит переход, должен быть помечен меткой. Эта метка должна быть указана и в операторе goto.
Метки, используемые в паскале должны быть двух типов:
целым числом в пределах от 0 до 9999;
обычным идентификатором.
Структурированными операторами являются такие операторы, которые состоят из других операторов:
составной
условный оператор if
условный оператор case
оператор цикла repeat
оператор цикла while
оператор цикла for
оператор над записями with
Cоставной оператор
Составной оператор представляет из себя совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin и end;
begin
оператор1;
оператор2;
л с устройством CRT. F- файловая переменная типа text, связывающаяся с устройством CRT.
procedure ClrEof; |
Удаляет все символы от курсора (включительно) до конца строки,заполняя этот участок строки цветом фона. |
|
procedure ClrScr; |
Очищает текущее окно,заполняя его цветом фона и помещает курсор в его левый ерхний угол с координатами(1,1). |
|
procedure Delay(Ms:word); |
Задает задержку выполнения программы в Ms миллисекундах. |
|
procedure DelLine; |
Удаляет строку , в которой находится курсор. |
|
procedure GotoXY(X,Y:Byte); |
Перемещает курсор к элементу экрана с заданными координатами. X,Y-координаты элемента экрана (отсчитываются от левого верхнего угла текущего окна) |
|
procedure HighVideo; |
Устанавливает высокую яркость символов (заменяет цвета 0-7 на 8-15) |
|
procedure InsLine; |
Вставляет пустую строку на экране в месте расположения курсора и заполняет ее цветом фона. |
|
procedure LowVideo; |
Устанавливает малую яркость символов ( заменяет цвета 8-15 на 0-7) |
|
procedure NormVideo; |
Устанавливает первоначальную яркость символов,выводимых далее на экран. |
|
procedure NoSound; |
Выключает источник звука. |
|
procedure Sound(Hz:word); |
Запускает источник звука с частотой Hz герц. |
|
procedure TextBackGround(color:byte); |
Задает цвет фона. Color-задаваемый цвет фона. |
|
procedure TextColor(Color)Byte; |
Задает цвет символов.Color-задаваемый цвет символов. |
|
procedure TextMode( Mode:word); |
Устанавливает текстовый режим,увеличивает текущее окно до целого экрана,устанавливает переменным DirectVideo и CheckSnow значение true.Помещает значение текущего режима в переменную LastMode,запускает процедуру NormVideo . Mode- требуемый текстовый режим. |
|
procedure Window (X1,Y1,X2,Y2:Byte); |
Задает размеры окна на экране и помещает курсор в левый верхний угол окна с координатами (1,1) X1,Y1- координаты левого верхнего угла экрана X2,Y2- координаты правого нижнего угла экрана. Если хотя бы одна из координат недопустима, то процедура не выполняется. |
|
Function KeyPressed:boolean; |
Анализирует нажатие клавиши клавиатуры ( за исключением вспомогательных клавиш- Shift,Alt,NumLock и т.п.). Результат - true ,если клавиша на клавиатуре нажата и false - в противном случае. |
|
function Readkey:char; |
Считывает символ с клавиатуры и освобождает буфер клавиатуры от считанного символа. |
|
function WhereX:Byte; |
Возвращает текущую координату X курсора |
|
function WhereY:byte: |
Возвращает текущую координату Y курсора |
|
Пример программы, выполняющей вывод на экран дисплея меню следующего вида:
Выберите режим
Ввод и корректировка данных
Расчет свойств
Выбор состава
Графка
program menu;
uses Crt;label 1,2;
type
mas=array [1..4] of string[33];
const Stor :mas=( Ввод и корректировка данных , );
Р а с ч е т с в о й с т в ,
В ы б о р с о с т а в а ,
( Г р а ф и к а );
Выбор конкретного режима из этого меню осуществляется с помощью клавиш
При нажатии этих клавиш генерируется звук, продолжительностью 0.5 сек.
При этом строка,на которую падает выбор, выделяется цветом и фоном.
Выбор фиксируется с помощью клавиши ENTER
После этого выдается сообщение о выбранном режиме.
В программе используются возвращаемые коды клавиатуры:
клавиша |
код |
|
? |
0 75 |
|
? |
0 77 |
|
? |
0 72 |
|
? |
0 80 |
|
enter |
13 |
|
Коды цветов
Имя |
Значение |
Назначение |
|
Black |
0 |
Черный |
|
Blue |
1 |
Синий |
|
Green |
2 |
Зеленый |
|
Cyan |
3 |
Голубой |
|
Red |
4 |
Красный |
|
Magenta |
5 |
Фиолетовый |
|
Brown |
6 |
Коричневый |
|
LightGray |
7 |
Светло-серый |
|
DarkGray |
8 |
Темно-серый |
|
LightBlue |
9 |
Светло-синий |
|
LightGreen |
10 |
Светло-зеленый |
|
LightCyan |
11 |
Светло-голубой |
|
LightRed |
12 |
Розовый |
|
LightMagenta |
13 |
Светло-фиолетовый |
|
Yellow |
14 |
Желтый |
|
White |
15 |
Белый |
|
Комментарий до конца строки комментарии, могущие быть вложенными |
(*...*) или {...} |
|
Регулярное выражение идентификатора переменной |
[A-Za-z_][A-Za-z0-9_]* |
|
Регулярное выражение идентификатора функции |
[A-Za-z_][A-Za-z0-9_]* |
|
Присваивание значения переменной |
:= |
|
Объявление переменной |
variable: type |
|
Группировка выражений |
( ... ) |
|
Блок |
begin ... end |
|
Тождественное равенство |
= |
|
Тождественное неравенство |
<> |
|
Сравнение |
< > <= >= |
|
Определение функции |
function f(p1: type1, p2: type2, ...): returntype |
|
Вызов функции |
f(a, b, ...) |
|
Вызов функции без параметров |
f |
|
Последовательность |
; |
|
Если - то |
if condition then |
|
Если - то - иначе |
if condition then ... else ... |
|
Бесконечный цикл |
while true do ... |
|
! | Как писать курсовую работу Практические советы по написанию семестровых и курсовых работ. |
! | Схема написания курсовой Из каких частей состоит курсовик. С чего начать и как правильно закончить работу. |
! | Формулировка проблемы Описываем цель курсовой, что анализируем, разрабатываем, какого результата хотим добиться. |
! | План курсовой работы Нумерованным списком описывается порядок и структура будующей работы. |
! | Введение курсовой работы Что пишется в введении, какой объем вводной части? |
! | Задачи курсовой работы Правильно начинать любую работу с постановки задач, описания того что необходимо сделать. |
! | Источники информации Какими источниками следует пользоваться. Почему не стоит доверять бесплатно скачанным работа. |
! | Заключение курсовой работы Подведение итогов проведенных мероприятий, достигнута ли цель, решена ли проблема. |
! | Оригинальность текстов Каким образом можно повысить оригинальность текстов чтобы пройти проверку антиплагиатом. |
! | Оформление курсовика Требования и методические рекомендации по оформлению работы по ГОСТ. |
→ | Разновидности курсовых Какие курсовые бывают в чем их особенности и принципиальные отличия. |
→ | Отличие курсового проекта от работы Чем принципиально отличается по структуре и подходу разработка курсового проекта. |
→ | Типичные недостатки На что чаще всего обращают внимание преподаватели и какие ошибки допускают студенты. |
→ | Защита курсовой работы Как подготовиться к защите курсовой работы и как ее провести. |
→ | Доклад на защиту Как подготовить доклад чтобы он был не скучным, интересным и информативным для преподавателя. |
→ | Оценка курсовой работы Каким образом преподаватели оценивают качества подготовленного курсовика. |
Курсовая работа | Деятельность Движения Харе Кришна в свете трансформационных процессов современности |
Курсовая работа | Маркетинговая деятельность предприятия (на примере ООО СФ "Контакт Плюс") |
Курсовая работа | Политический маркетинг |
Курсовая работа | Создание и внедрение мембранного аппарата |
Курсовая работа | Социальные услуги |
Курсовая работа | Педагогические условия нравственного воспитания младших школьников |
Курсовая работа | Деятельность социального педагога по решению проблемы злоупотребления алкоголем среди школьников |
Курсовая работа | Карибский кризис |
Курсовая работа | Сахарный диабет |
Курсовая работа | Разработка оптимизированных систем аспирации процессов переработки и дробления руд в цехе среднего и мелкого дробления Стойленского ГОКа |
Курсовая работа | Физическое воспитание детей дошкольного возраста |
Курсовая работа | Учет и анализ основных средств и нематериальных активов |
Курсовая работа | Проблема дисграфии у детей и ее коррекция |
Курсовая работа | Пути увеличения капитала коммерческого банка |
Курсовая работа | Судебная власть в Российской Федерации |
Курсовая работа | Бизнес-план пекарни |
Курсовая работа | Договор аренды зданий и сооружений |
Курсовая работа | Понятие, исчисление и виды сроков в гражданском праве |
Курсовая работа | Управление муниципальной собственностью |
Курсовая работа | Железодефицитная анемия |
Курсовая работа | Организация финансового планирования ЗАО "Алтайвитамины" |
Курсовая работа | Совершенствование организации рабочих мест на предприятии |
Курсовая работа | Управление проектами |
Курсовая работа | Роль государства в рыночной экономике |
Курсовая работа | Основные направления совершенствования реализации молочной продукции ОАО Вимм-Билль-Данн |