Программирование на языке Паскаль
Структура программы на Турбо Паскаль
Программа на языке Паскаль состоит из заголовка, разделов описаний и раздела операторов. Заголовок программы содержит имя программы, например:
Program PRIM;
Описания могут включать в себя:
определяется служебным словом USES
и содержит имена подключаемых модулей (библиотек) как входящих в состав системы Turbo Pascal, так и написанных пользователем. Раздел описания модулей должен быть первым среди разделов описаний. Имена модулей отделяются друг от друга запятыми:
uses CRT, Graph;
, например:
label 3, 471, 29, Quit;
:
const K= 1024; MAX= 16384;
необходимо указать все переменные, используемые в программе, и определить их тип:
var P,Q,R: Integer;
A,B: Char;
F1,F2: Boolean;
Описание типов, процедур и функций будет рассмотрено ниже. Отдельные разделы описаний могут отсутствовать, но следует помнить, что в Паскаль - программе должны быть обязательно описаны все компоненты программы.
представляет собой составной оператор
, который содержит между служебными словами
begin.......end
последовательность операторов. Операторы отделяются друг от друга символом ;
. Текст программы заканчивается символом точка.
Кроме описаний и операторов Паскаль - программа может содержать комментарии, которые представляют собой произвольную последовательность символов, расположенную между открывающей скобкой комментариев { и закрывающей скобкой комментариев }.
Пример 1
program Primer; {вычисление суммы двух чисел}
var
x,y,s: integer;
begin
WriteLn('Введите через пробел два числа ');
ReadLn(x,y);
s := x + y;
WriteLn('Сумма чисел равна ',s);
end.
Константы
Константа
– это неизменяемая величина. И конечно, это совершенно не обязательно числовая величина.
Объявление константы
const
a=79;
d=4.5;
s=’hh’;
Константа обязательно
имеет значение. Нельзя включить в объявление константы переменные величины, так как их значение в блоке объявлений еще не определено. Объявление вполне может содержать выражения, в которых также будут присутствовать уже объявленные ранее константы.
a=’fgfgfg’;
s=a+’dsd’;
w=5.6;
q=w+7;
Переменные
Переменная
– это величина, имеющая имя, тип и значение. Значение переменной можно изменять во время работы программы.
В именах переменных МОЖНО
использовать
• латинские буквы (A-Z) (заглавные и строчные буквы не различаются);
• цифры (имя не может начинаться с цифры);
• знак подчеркивания _;
В именах НЕЛЬЗЯ
использовать
• русские буквы
• пробелы
• скобки, знаки +, =, !, ? и др.
•
Типы переменных:
Для обработки ЭВМ данные представляются в виде величин и их совокупностей. С понятием величины связаны такая важная характеристика, как ее тип.
В языке Паскаль тип величины задают заранее. Все переменные, используемые в программе, должны быть объявлены в разделе описания с указанием их типа. Обязательное описание типа приводит к избыточности в тексте программ, но такая избыточность является важным вспомогательным средством разработки программ и рассматривается как необходимое свойство современных алгоритмических языков высокого уровня.
Иерархия типов в языке Паскаль такая:
Простые типы данных
В таблице приведены простые типы данных Турбо Паскаль, объем памяти, необходимый для хранения одной переменной указанного типа, множество допустимых значений и применимые операции.
Идентификатор | Длина (байт) | Диапазон значений | Операции |
Целые типы | |||
integer | 2 | -32768..32767 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
byte | 1 | 0..255 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
word | 2 | 0..65535 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
shortint | 1 | -128..127 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
longint | 4 | -2147483648..2147483647 | +, -, /, *, Div, Mod, >=, <=, =, <>, <, > |
Вещественные типы | |||
real | 6 | 2,9x10-39 - 1,7x1038 | +, -, /, *, >=, <=, =, <>, <, > |
single | 4 | 1,5x10-45 - 3,4x1038 | +, -, /, *, >=, <=, =, <>, <, > |
double | 8 | 5x10-324 - 1,7x10308 | +, -, /, *, >=, <=, =, <>, <, > |
extended | 10 | 3,4x10-4932 - 1,1x104932 | +, -, /, *, >=, <=, =, <>, <, > |
Логический тип | |||
boolean | 1 | true, false | Not, And, Or, Xor, >=, <=, =, <>, <, > |
Символьный тип | |||
char | 1 | все символы кода ASCII | +, >=, <=, =, <>, <, > |
В Турбо Паскале пять структуированных типов:
Отрезок (диапазон значений)
любого порядкового типа может быть определен как интервальный (ограниченный) тип
. Отрезок задается диапазоном от минимального до максимального значения констант, разделенных двумя точками. В качестве констант могут быть использованы константы, принадлежащие к целому, символьному, логическому или перечисляемому типам.
Примеры отрезков:
Минимальное и максимальное значения констант называются нижней и верхней границами отрезка, определяющего интервальный тип. Нижняя граница должна быть меньше верхней.
Над переменными, относящимися к интервальному типу, могут выполняться все операции и применяться все стандартные функции, которые допустимы для соответствующего базового типа.
Оператор
– это команда языка программирования инструкция).
Оператор присваивания
– это команда для записи нового значения в переменную.
Математические операции
В таблице приведены основные математические операции Турбо Паскаль.
Символ операции | Название операции | Пример |
* | умножение | 2*3 (результат: 6) |
/ | деление | 30/2 (результат: 1.5E+01) |
+ | сложение | 2+3 (результат: 5) |
- | вычитание | 5-3 (результат: 2) |
div | целочисленное деление | 5 div 2 (результат: 2) |
mod | остаток от деления | 5 mod 2 (результат: 1) |
Логические операции
Над логическими аргументами в Турбо Паскаль определены следующие операции:
Результаты выполнения этих операций над переменными А и В логического типа приведены в таблице истинности.
A | B | not A | A and B | A or B | A xor B |
true | true | false | true | true | false |
true | false | false | true | true | |
false | true | true | false | true | true |
false | false | false | false | false |
Операции отношения
К операциям отношения в Турбо Паскаль относятся такие операции, как:
В операциях отношения могут принимать участие не только числа, но и символы, строки, множества и указатели.
Приоритет операций
Порядок вычисления выражения определяется старшинством (приоритетом) содержащихся в нем операций. В языке Паскаль принят следующий приоритет операций:
Порядок выполнения операций переопределить можно с помощью скобок. Например, 2*5+10 равно 20, но 2*(5+10) равно 30.
Основные математические функции
В этом разделе приведены основные математические функции, встроенные в системную библиотеку Турбо Паскаль.
Возвращает абсолютное значение числа X.
Cos(X)
Возвращает косинус числа X, где X - угол в радианах
Sin(X)
Возвращает синус числа X, где X - угол в радианах
ArcTan(X)
Возвращает арктангенc числа X.
Exp(X)
Возвращает число, равное eX
.
Ln(x)
Возвращает число, равное натуральному логарифму от числа X.
Pi
Число Пи.
Sqr(X)
Возвращает число, равное квадрату числа X.
и котангенс
в Турбо Паскале нет. Для их вычисления используйте выражение sin(x)/cos(x) (или cos(x)/sin(x) для котангенса). Функции возведения в произвольную степень в Турбо Паскале нет. Используйте многократное умножение для возведения в целочисленную степень, либо функции Exp
и Ln
для возведения в вещественную степень:
Примеры
:
Выражение | Запись на Паскале |
X3 | X*X*X |
X3,5 | Exp(3.5*Ln(X)) |
U2x | Exp(2*x*Ln(U)) |
Возвращает число, равное квадратному корню из числа X.
Trunc(X)
Возвращает число, равное целой части числа X.
(Происходит отбрасывание дробной части числа X.
Результат выполнения имеет тип Longint).
Frac(X)
Возвращает число, равное дробной части числа X.
Int(X)
Возвращает число, равное целой части числа X.
Результат выполнения функции - real.
Round(X)
Функция округляет число X. Возвращаемое значение имеет тип Longint.
Random(X)
Возвращает случайное целое число в диапазоне 0..X.
Random
Если аргумент опущен, то возвращается случайное вещественное число из интервала (0; 1).
Перед использованием random в программах рекомендуется сначала инициализировать генератор псевдослучайных чисел процедурой Randomize. В противном случае при каждом запуске программы будет генерироваться одна и та же последовательность случайных чисел.
Пример. Вывод на экран 5 случайных чисел в диапазоне -10..10.
var i: integer;
begin
randomize;
for i:=1 to 5 do writeln(random(21)-10);
end.
Увеличивает значение числа X на Y. Если число Y не указано, то увеличение происходит на 1.
Dec(X,Y)
Уменьшает значение числа X на Y. Если число Y не указано, то уменьшение происходит на 1.
Операторы ввода и вывода
Процедура производит последовательное чтение К значений исходных данных и присваивает эти значения переменным А1, А2, ..., АК
.
Read
(
A
1,
A
2,...
AK
);
В этом случае после ввода данных происходит перевод курсора на следующую строку:
ReadLn
(
A
1,
A
2,...
AK
);
Пустой оператор ReadLn позволяет приостановить работу программы до нажатия Enter:
ReadLn
;
Значения исходных данных могут отделяться друг от друга пробелами и нажатием клавиш табуляции и Enter.
Не допускается разделение вводимых чисел запятыми!
Например: Read(
a
,
b
);
- ввод значений двух переменных
Вывод данных
Вывод значений переменных А1
, А2
,..., АК
в строку экрана:
Write
(
A
1
,
A
2
,...
AK
);
WriteLn
(
A
1
,
A
2
,...
AK
);
WriteLn
(
A
:К:М);
где А
- переменная или выражение действительного типа, К
- ширина поля вывода, М
- число цифр дробной части выводимого значения. К и М - выражения или константы целого типа. В этом случае действительные значения выводятся в форме десятичного числа с фиксированной точкой.
Например:
Write(
a
); {
вывод значения переменной а
}
Writeln
(
a
); {
вывод значения переменной а
и переход на новую строку
}
Write(‘Hello!’); {
вывод
текста
}
Write
(‘
c
=’,
c
); {
вывод текста и значения переменной с
}
Оператор условного перехода
Задача:
Ввести два целых числа и вывести на экран наибольшее из них.
Идея решения:
надо вывести на экран первое число, если оно больше второго, или второе, если оно больше первого.
Особенность:
действия исполнителя зависят от некоторых условий
(если … иначе …
).
Условие
- это логическое выражение, в зависимости от которого выбирается одна из двух альтернативных ветвей алгоритма. Если значение условия истинно (TRUE), то будет выполняться оператор 1
,
записанный после ключевого слова then
. В противном случае будет выполнен оператор 2
, следующий за словом else
, при этом оператор 1
пропускается. После выполнения указанных операторов программа переходит к выполнению команды, стоящей непосредственно после оператора if.
else
точка с запятой никогда не ставится!
Следует помнить, что синтаксис языка допускает запись только одного оператора
после ключевых слов then и else, поэтому группу инструкций обязательно надо объединять в составной оператор
(заключать в операторные скобки begin ... end
). В противном случае возникает чаще всего логическая ошибка программы, когда компилятор языка ошибок не выдает, но программа тем не менее работает неправильно.
Оператор выбора
case выражение
of
вариант
: оператор
;
...
вариант
: оператор
;
end;
или
case выражение
of
вариант
: оператор
;
...
вариант
: оператор
;
else оператор
end;
, которое записывается после ключевого слова case, называется селектором
, оно может быть любого перечисляемого типа. вариант
состоит из одной или большего количества констант или диапазонов, разделенных запятыми. Они должны принадлежать к тому же типу, что и селектор, причем недопустимо более одного упоминания варианта
в записи инструкции case. Из перечисленного множества операторов
будет выбран только тот, перед которым записан вариант
, совпадающий со значением селектора. Если такого варианта
нет, выполняется оператор
, следующий за словом else (если он есть).
Пример
case ch of
'A'..'Z', 'a'..'z' : WriteLn('
Буква
');
'0'..'9' : WriteLn('
Цифра
');
'+', '-', '*', '/' : WriteLn('
Оператор
');
else WriteLn('Специальный символ')
end;
! |
Как писать рефераты Практические рекомендации по написанию студенческих рефератов. |
! | План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом. |
! | Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач. |
! | Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты. |
! | Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ. |
→ | Виды рефератов Какими бывают рефераты по своему назначению и структуре. |