Для
начала рассмотрим программу, которая должна была у вас получиться при выполнении
3 задания предыдущего урока.
Program SUMMA;
Var X,Y,K,Z: integer;
Begin
Write('Введите
три
числа
');
Readln(X,Y,K);
Z:=X+Y+K;
Write(Z);
End.
На этом примере видны основные
особенности записи программы:
1)всякая программа начинается с заголовка - слова PROGRAM и следующего за ним
названия программы; (в последних версиях Паскаля это предложение писать не
обязательно)
2)после заголовка располагается описательная часть программы;
3)между служебными словами BEGIN и END записывается алгоритм решения задачи;
4)команды (операторы) разделяются точкой с запятой ;
5)Русский текст заключается в апострофы ' ... ' ;
6)перечисляемые объекты разделяются запятой.
2.1
Имена и зарезервированные слова.
Текст программы записывается при помощи латинских букв, цифр и знаков. Буквы
допускаются прописные и строчные, причем для компилятора записи VAR, vAR, VaR
идентичны.
Особую роль в тексте программы играют имена и зарезервированные слова. Имена
применяются для обозначения программы и ее объектов. Имя может состоять из
любого количества букв или цифр, но должно начинаться с буквы. В имя можно
включать знак подчеркивания (например Prim_1). В программе SUMMA пять имен:
SUMMA, X, Y, K, Z. Программисты часто используют осмысленные имена в своих
программах. Это всегда полезно, а в сложных программах совершенно необходимо.
Зарезервированные слова применяют для обозначения операторов (команд) и других
элементов языка Паскаль. Их нельзя использовать в качестве имен и во всех
программах они имеют одинаковый смысл. Зарезервированными словами в нашем
примере являются слова: PROGRAM(программа), VAR(переменные), BEGIN(начало), READ(читать),
WRITELN(писать), END(конец).
2.2. Константы и переменные.
Данные, которыми оперирует программа, могут быть определены в ней как
неизменные, либо как способные изменять свое значение в ходе выполнения
программы. Первые называются константами, а вторые переменными. И переменные и
константы размещаются в памяти компьютера (в так называемой "ячейке памяти"). В
программе переменные должны быть описаны в предложении VAR (от слова
VARIABLE-переменная), а константы - в предложении CONST. У всякой величины
имеется три основных свойства: имя, значение, тип.
2.3. Тип INTEGER (целый).
И в жизни и в программировании очень полезно использовать понятие типа.
Предположим, вам сказали, что вы должны приобрести Джой. Больше ничего не
известно - сколько у него ног, предмет это или животное и т.д. в то же время
очень многое можно сообщить, добавив лишь одно слово, определяющее тип объекта
по имени Джой, например, Джой - собака, или Джой - человек, или Джой -
компьютер.
Любая константа или переменная, использованная в программе, принадлежит к
определенному типу. Тип задает множество допустимых значений переменных, внешний
вид констант, возможные операции над значениями.
Значения величины типа INTEGER в Паскале не может быть меньше -32768 или
больше 32767.
Константы целого типа записываются в виде последовательности цифр со знаком
или без него.
Переменные должны быть перечислены в описательной части программы в
предложении
VAR имя_переменной:INTEGER;
Над величинами целого типа допустимы арифметические операции: +(сложение),
-(вычитание), *(умножение), DIV(деление нацело), MOD(нахождение остатка от
целочисленного деления).
Все операции вырабатывают результат целого типа. Например,
15 DIV 4 = 3, 25 MOD 4 = 1.
Над целыми разрешено и обычное деление, оно обозначается косой чертой "/" и
дает результат вещественного типа.
2.4. Тип REAL(вещественный).
Константы вещественного типа (числа с дробной частью) изображаются с
десятичной точкой:
12.3, -1.5, -0.75 или в показательной форме: -0.45Е5, 6.7Е-10, 0.355Е6 (для
получения числа в обычном виде надо перенести запятую на число разрядов
указанных после Е вправо, если число положительное, влево, если отрицательное).
Например, 6.7Е-10=0.00000000067.
Вещественные переменные требуют описания предложением
VAR имя:REAL;
Над величинами вещественного типа допустимы арифметические операции:
+(сложение), -(вычитание), *(умножение), /(деление).
2.5. Оператор присваивания
Оператор присваивания придает переменной конкретное значение, например:
Х:=2; Y:=5,
одновременно уничтожая старое. Редкая программа обходится без оператора
присваивания.
Присваивать можно значение другой переменной или результат вычисления
арифметического выражения: A:=B; A:+B+C; X:=Y+2-Z.
Формат команды:
<имя переменной>:=<выражение>
Исполнение команды присваивания происходит в таком порядке: сначала
вычисляется <выражение>, затем полученное значение присваивается переменной.
Пример 1. Пусть
переменная А имела значение 6. какое значение получит переменная А после
выполнения команды: А:=2 х А - 1.
Решение. Вычисление выражения 2 х А - 1 при А=6 даст число 11. Значит новое
значение переменной А будет равно 11.
Пример 2.
Поменяйте между собой значения двух переменных А и В, воспользовавшись третьей
переменной R для временного хранения значения.
Решение.
Program prim2_2;
Var a, b, r: real;
begin
Write('Введите
два
числа
');
Readln(a,b);
R:=a;
A:=b;
B:=r;
Write(' a=' , a, ' b=' , b);
End.
Задачи.
1) Определить конечное значение переменных X и Y в результате выполнения
следующих алгоритмов:
а) Х:=2 б)Х:=1.5
Х:=Х х Х Х:=2 х Х + 1
Х:=Х х Х х Х Y:=X/2
Х:=Х х Х х Х х Х Y:=X + Y
X:=X - Y
2) Поменяйте между собой значения трех переменных X, Y и Z по схеме тройного
квартирного обмена: Х®Y®Z®X.
3) Присвойте переменной N ее собственное значение, увеличенное в N раз.
4) Чему равно Х в результате выполнения программы:
Х:=2;
Х:=Х+Х;
Х:=Х-Х
5) Указать значения значения величин a и b после выполнения следующих операторов
присваивания:
а) a:=5.8 б)a:=0
b:=-7.9 b:=-9.99
b:= а b:=a
a:=b a:=b
Для
начала проверьте правильность выполнения предыдущих заданий. И если не все
получилось, не огорчайтесь, не ошибается тот, кто ничего не делает.
1) а) Х=16777216
б) Х=-2 Y=6
2)Program prim2_2;
Var X,Y,Z,R: real;
Begin
Write('Введите три числа ');
Readln(X,Y,Z);
R:=X;
X:=Z;
Z:=Y;
Y:=R;
Write(' X=' , X, ' Y=' , Y, ' Z=', Z);
End.
3) N:=N*N
4) X=0
5) a) b=5.8; a=5.8
б) b=0; а=0
На
предыдущем уроке вы познакомились с представителями вещественного и целого
типов. На самом деле и тот и другой имеет несколько видов отличающихся
диапазоном допустимых значений.
В следующей таблице приведены 5 стандартных целых типов:
тип |
значение |
формат |
SHORTINT | -128..127 | Знаковый |
INTEGER | -32768..32767 | Знаковый |
LONGINT | -2147483648.. -2147483647 | Знаковый |
BYTE | 0..255 | Беззнаковый |
WORD | 0..65535 | Беззнаковый |
и 5 стандартных вещественных типов:
тип |
значение |
число значащих чисел |
REAL | 2.9*10-39..1.7*1038 | 11..12 |
SINGLE | 1.5*10-45..3.4*1038 | 7..8 |
DOUBLE | 5.0*10-324..1.7*10308 | 15..16 |
EXTENDED | 3.4*10-4932..1.1*104932 | 19..20 |
COMP | -2*1063+1..+2*1063-1 | 19..20 |
Арифметические выражения
Арифметические выражения строятся из имен переменных, констант, знаков операций
и круглых скобок так, как это принято в математике. При вычислении их значений
операции выполняются в порядке приоритета: *, /, DIV, MOD, а затем + и -.
Операции одинакового старшинства выполняются слева направо.
Наряду с переменными и константами в арифметические выражения можно включать
функции. При определении значения выражения, прежде всего, вычисляются
значения входящих в него функций. В Паскале имеются следующие стандартные
функции:
функция |
назначение |
тип результата |
ABS(X) | Абсолютное значение Х | Вещественный |
ARCTAN(X) | Арктангенс Х | Вещественный |
COS(X) | Косинус Х | Вещественный |
EXP(X) | ех | Вещественный |
FRAC(X) | Дробная часть Х | Вещественный |
INT(X) | Целая часть Х, обнуление дробной части | Вещественный |
LN(X) | Натуральный логарифм | Вещественный |
PI | Значение PI=3.1415926535897932385 | Вещественный |
ROUND(X) | Округление до ближайшего целого | Целый |
SIN(X) | Синус Х | Вещественный |
SQR(X) | Квадрат Х | Тип аргумента |
SQRT(X) | Квадратный корень Х | Вещественный |
TRUNC(X) | Отбрасывание дробной части | Целый |
Аргумент функции обязательно заключается в скобки.
Выражение на Паскале, как впрочем, и на других языках программирования,
записывается в одну строчку, а для сохранения порядка действий используются
скобки. Все действия должны быть указаны. Например, 2Х + XY надо записать как
2*Х + Х*Y.
Задания
1)
Найдите значения переменных, если это возможно. Учтите, что число 7.0 является
вещественным, т.к. оно имеет дробную часть, хотя и равную нулю. Операции MOD и
DIV можно выполнять только над целыми числами (Урок 2):
a) A:=21 DIV 5 b) A:= 2 MOD 3
B:= 20 MOD 5 B:= 36.0 MOD 6
C:= 14 DIV 6.0 C:= 81 DIV 0
D:= 14 MOD 0 D:= 38 DIV 6
E:= 5 MOD 13 E:= 3 DIV 2
2) Найдите значения переменных, если это возможно:
a) A:=SQR(100) b) A:=sqrt(9)
B:=sqrt(100) B:=SQR(9)
C:=SQR(-10) C:=SQRT(-9)
D:=SQRT(-10) D:=SQR(-9)
E:=SQR(0.9) E:=SQRT(0.0)
F:=SQRT(0) F:=SQR(0.1)
3) Найдите значения переменных, если это возможно:
a) A:=ROUND(6.9) b) A:=ROUND(15.39)
B:=ROUND(6.48) B:=ROUND(15.8)
C:=TRUNC(9.5) C:=TRUNC(-39)
D:=FRAC(9.5) D:=FRAC(39)
E:=INT(9.5) E:=INT(39)
F:=TRUNC(-17) F:=TRUNC(5.6)
G:=FRAC(17) G:=FRAC(-0.3)
H:=INT(-17) H:=INT(1.25)