- •ВВЕДЕНИЕ
- •1. ЭЛЕМЕНТЫ ЯЗЫКА ПАСКАЛЬ. ЛИНЕЙНЫЕ ПРОГРАММЫ
- •Стандартные функции
- •Функции преобразования типов
- •Порядок вычислений
- •Заданиe 1. Вычислить арифметические выражения
- •2. СТРУКТУРИРОВАННЫЕ ОПЕРАТОРЫ
- •2.1. Составной оператор
- •2.2. Условные операторы
- •2.3. Селективный оператор
- •2.4 Операторы цикла
- •Задание 2.1
- •Задание 2.2
- •Задание 3*
- •4. ПОДПРОГРАММЫ В ПАСКАЛЕ
- •4.1. Процедуры
- •4.2. Функции
- •Задание 4
- •5. МАССИВЫ
- •5.1. Одномерные масивы
- •5.2. Двумерные массивы
- •Задания 5.1
- •Задания 5.2
- •ГЛАВА 7. СОРТИРОВКА МАССИВОВ
- •Сортировка посредством простого выбора
- •Сортировка обменом (метод «пузырька»)
- •Сортировка включением
- •Быстрая сортировка
- •Задание 7.
1. ЭЛЕМЕНТЫ ЯЗЫКА ПАСКАЛЬ. ЛИНЕЙНЫЕ ПРОГРАММЫ
К основным элементам языка Паскаль относятся: переменные, константы и их типы, операции и функции. Кратко опишем основные типы данных в Паскале, некоторые стандартные функции, а также приоритет выполнения операций.
Целочисленные типы
Тип |
|
Диапазон значений |
|
|
Формат |
||
Shortint |
|
−128..127 |
|
|
1 байт со знаком |
||
|
|
|
|
|
|
|
|
Integer |
|
−32768..32767 |
|
2 байта со знаком |
|||
|
|
|
|
|
|
|
|
Longint |
|
−2147483648..2147483647 |
|
4 байта со знаком |
|||
|
|
|
|
|
|
|
|
Byte |
|
0..255 |
|
|
1 байт без знака |
||
|
|
|
|
|
|
|
|
Word |
|
0..65535 |
|
|
2 байта без знака |
||
|
|
Вещественные типы |
|
|
|||
|
|
|
|
|
|
||
Тип |
Диапазон значений |
|
Точность |
|
Формат |
||
|
|
|
|
|
|
||
Real |
|
2.9E−39..1.7E38 |
|
11−12 знаков |
6 байт |
||
Single |
|
1.5E−45..3.4E38 |
|
7−8 знаков |
|
4 байт |
|
|
|
|
|
|
|||
Double |
5.0E−324..1.7E308 |
|
15−16 знаков |
8 байт |
|||
Extended |
3.4E−4932..1.1E4932 |
|
19−20 знаков |
10 байт |
|||
|
|
|
|
|
|
||
Comp |
|
−9.2E18..9.2E18 |
|
19−20 знаков |
8 байт |
||
|
|
|
|
|
|
|
|
Стандартные функции
Арифметические функции
abs(x: real/integer): real/integer – вычисление абсолютного значения x; arctan(x: real): real – вычисление арктангенса x;
cos(x: real): real – вычисление косинуса x; sin(x: real): real – вычисление синуса x;
sqr(x: real/integer): real/integer – вычисление квадрата x; sqrt(x: real): real – вычисление квадратного корня из x;
3
exp(x: real): real – вычисление ex ;
ln(x: real): real – вычисление натурального логарифма x; frac(x: real): real – вычисление дробной части x;
int(x: real): real – выделение дробной части x без преобразования типа random(x: word): word – генерирует случайное число s в пределах
пределах
Примечание. Аргумент функции следует за именем функции и заключается в круглые скобки. Аргументом может быть константа, переменная или выражение. В тригонометрических функциях синуса и кусинуса аргумент задается только в радианной мере угла.
Функции преобразования типов
round(x: real): longint округление x до ближайшего целого числа trunc(x: real): longint выделяет целую часть x и преобразует его в longint
Порядок вычислений
Приоритет |
Типы действия |
операции |
|
1. |
Вычисление в круглых скобках |
2. |
Вычисление значений функции |
3. |
Умножение, деление, И (AND) |
4. |
Сложение, вычитание, ИЛИ (OR) |
5. |
Операции отношения (= , < > , < , > , <= , >= , in) |
|
|
Программа начинается с заголовка, имеющего следующий вид:
Program <имя программы>;
За ним идет раздел описаний, в котором должны быть описаны все идентификаторы (константы, переменные, типы, процедуры, функции, метки), которые будут использованы в программе. После
4
раздела описаний идет раздел операторов, который начинается со служебного слова begin и заканчивается служебным словом end. В этом разделе задаются действия над объектами программы, введенными в разделе описаний. Операторы в этом разделе отделяются друг от друга точкой с запятой. После последнего слова end ставится точка.
Program Example_1; var a,b,rez: integer; begin
writeln(‘Введите два числа через пробел’); readln(a,b);
rez:= a*b;
writeln(‘Их произведение равно’,rez); writeln(‘Нажмите <Enter>’); readln;
end.
Имя этой программы Example_1 (заметим, что в имени программы не должно быть пробелов, оно должно начинаться с буквы, состоять только из латинских букв, цифр и некоторых символов). Из разделов описания имеется лишь один – раздел переменных. Он начинается со служебного слова var, после которого идет последовательность объявления переменных, разделенных точкой с запятой. В каждом объявлении перечисляются через запятую имена переменных одного типа, после чего ставится двоеточие и указывается тип переменных. В нашем случае описаны три переменные целого типа.
После описательной части идет раздел операторов, начинающийся со служебного слова begin, после которого идут операторы языка. Первый встречающийся оператор – это writeln(‘текст’); – вывести на экран текст, заключенный между апострофами; ln добавляется в конце этого оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текста или результата выполнения программы.
5
Следующий оператор – это readln(a,b); – читать данные с клавиатуры. В данном случае необходимо ввести два целых числа через пробел, тогда переменной a присваивается значение, равное первому введенному числу, а переменной b присваивается значение, равное второму введенному числу. В конце этого оператора можно ставить ln.
Затем следует оператор присваивания: rez:=a*b; При выполнении этого оператора переменная rez получит значение, равное произведению числа a на число b. Так как в результате умножения двух целых чисел получается целое число, то переменная rez описана типом integer (значениями которого могут быть лишь целые числа).
Следующий оператор – это снова оператор writeln(‘текст’,rez) – он выведет на экран текст, заключенный между апострофами, а за ним значение переменной rez. Затем следующий оператор writeln выведет на экран сообщение: «Нажмите <Enter>», а оператор readln будет ожидать этого нажатия в окне выполнения. В конце раздела операторов стоит служебное слово End, после которого стоит точка.
Program Example_2; const a=12;b=45; var rez: integer; begin
rez:= a*b;
writeln(‘произведение равно’,rez); writeln(‘Нажмите <Enter>’); readln;
end.
Здесь вычисляется произведение чисел, заданных в виде констант. В отличие от первого примера, здесь имеется раздел констант. Он начинается со служебного слова const, после которого идет последовательность объявления констант, разделенных точкой с запятой.
6