Лабораторная работа № 1
Цель работы: получить первоначальные знания о языке ПаскальАВС; научиться писать арифметические и логические выражения, находить их значения и определять тип выражений.
Языки программирования, как и любые другие языки, имеют свой алфавит. Алфавит языка программирования Pascal состоит из символов трех видов:
1. Прописные и строчные буквы латинского алфавита: A, B, C, D, T, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, причем прописная и строчная буква считаются одним символом.
2. Арабские цифры 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.
3. Специальные символы: (, ), [, ], {, }, ’ (апостроф), . (точка), , (запятая), : (двоеточие), ; (точка с запятой), + (плюс), – (минус), * (звездочка), / (правый слеш), = (равно), > (больше), < (меньше), _ (знак подчеркивания), пробел (не имеет начертания).
Из символов алфавита составляются слова. Слова бывают двух типов:
– зарезервированные (служебные) – это слова, которые придумали разработчики языка программирования, вложили в них определенный смысл, который остается постоянным для всех
программ языка Паскаль (например, begin, while, For, Repeat);
– идентификаторы (имена) – это слова, которые придумывает программист, смысл этих слов сохраняется только в рамках одной программы. Идентификатор может состоять из букв и цифр, но на первом месте должна стоять буква. Также в именах можно использовать знак подчеркивания, но другие специальные символы использовать нельзя. Количество символов в них не должно превышать 126. Однако пользоваться очень длинными именами неудобно, поэтому на практике используют короткие имена.
Числовые константы – это:
1. Целые числа со знаком или без него. Например: 3458, –876, 37 105;
2. Вещественные числа, в которых целая часть от дробной отделяется точкой. Например, 3.5, –0.8713, 9801.003.
Переменная – это величина, которая может менять свое значение при выполнении программы. Каждой переменной программист дает свое имя – идентификатор. Константа – это величина, которая остается постоянной. Различают стандартные и пользовательские константы. Стандартные константы встроены в язык программирования. К ним можно отнести PI (), MaxInt (максимальное целое число 2 147 483 647), MaxReal (максимальное вещественное число 1,7 10308), MinReal (минимальное положительное вещественное число 4,94065645841247 10–324). Для констант пользователя в каждой программе дается имя и значение этой константы.
К арифметическим операциям относятся: + (сложение), – (вычитание), * (умножение), / (деление), mod (нахождение остатка при целочисленном делении), div (нахождение частного при целочисленном делении).
Тип результата операции зависит от типов величин (операндов), входящих в эту операцию.
1. Для операций mod и div операнды могут быть только целого типа, тип результата также целый.
2. Для операций сложения, вычитания и умножения справедливо следующее:
– если оба операнда целые, то тип результата целый;
– если оба или хотя бы один операнд вещественный, то тип результата вещественный.
3. Для операции деления тип результата всегда вещественный, независимо от типов операндов.
Числовые константы и числовые переменные, соединенные знаками арифметических операций и стандартных функций, образуют арифметические выражения.
Арифметические выражения могут быть довольно сложными, поэтому при их записи должны соблюдаться следующие правила:
1. Все величины, входящие в арифметическое выражение, должны быть записаны в одну строку.
2. Все знаки операций должны быть обязательно проставлены;
3. Для указания порядка выполнения действий используют круглые скобки с учетом общепринятой математической иерархии действий.
4. Нельзя писать два знака операций один за другим.
5. Нельзя писать две константы одна за другой.
6. Нельзя писать две переменные одна за другой.
При вычислении значений арифметических выражений необходимо знать числовые значения всех величин, входящих в это выражение и их типы. Тип значения арифметического выражения может быть:
– целым, если все операнды этого выражения целого типа и используются любые арифметические операции, кроме деления (/), а также стандартные функции, у которых значение аргумента и значение функции могут быть только целого типа;
– вещественным, если хотя бы один операнд вещественного типа или есть хотя бы одна операция деления (/) или одна функция, значением которой может быть только вещественное число.
Некоторые стандартные функции, типы аргумента и результата.
В языке Pascal очень много стандартных математических функций, в табл. 1.1 приведены только некоторые из них. При записи стандартной функции аргумент обязательно должен заключаться в круглые скобки. Аргументом функции может быть числовая константа, числовая переменная и арифметическое выражение. Значением функции является число.
Таблица 1.1
Обозначение функции |
Тип аргумента х |
Тип результата |
Операция |
Abs(x) |
Целый, вещественный |
Целый, вещественный |
Вычисление абсолютного значения х |
Sqr(x) |
Целый, вещественный |
Целый, вещественный |
Вычисление х2 |
Sqrt(x) |
Целый, вещественный |
Вещественный |
Вычисление квадратного корня из х |
Exp(x) |
Целый, вещественный |
Вещественный |
Вычисление ех |
Frac(x) |
Вещественный |
Вещественный |
Вычисление дробной части числа х |
Int(x) |
Вещественный |
Вещественный |
Вычисление целой части числа х |
Trunc(x) |
Вещественный |
Целый |
Нахождение целой части числа х по следующим правилам: 1) если х > = 0, то результат будет <= х; 2) если х < 0, то результат будет > х |
Succ(x) |
Целый |
Целый |
Выдает следующее за х значение |
Pred(x) |
Целый |
Целый |
Выдает предыдущее х значение |
Ln(x) |
Целый, вещественный |
Вещественный |
Вычисление Ln(x) |
Round(x) |
Вещественный |
Целый |
Округлить до ближайшего целого числа |
Sin(x) |
Целый, вещественный |
Вещественный |
Вычисление Sin(x) |
Cos(x) |
Целый, вещественный |
Вещественный |
Вычисление Cos(x) |
Tan(x) |
Целый, вещественный |
Вещественный |
Вычисление Tg(x) |
ArcSin(x) |
Целый, вещественный |
Вещественный |
Вычисление ArcSin(x) |
ArcCos(x) |
Целый, вещественный |
Вещественный |
Вычисление ArcCos(x) |
ArcTan(x) |
Целый, вещественный |
Вещественный |
Вычисление ArcTg(x) |
Odd(x) |
Целый |
Логический |
Выдает значение «Истина», если число х нечетное; значение «Ложь», если х – четное |
Random(x) |
Целый |
Целый |
Возвращает случайное целое число в диапазоне [0; х – 1] |
Random |
– |
Вещественный |
Возвращает случайное число в диапазоне [0; 1) |
Upcase(c) |
Символьный |
Символьный |
Возвращает символ с, преобразованный к верхнему регистру |
LowCase(c) |
Символьный |
Символьный |
Возвращает символ с, преобразованный к нижнему регистру |
Power(x, y) |
Вещественный |
Вещественный |
Возвращает х в степени у |
Ord(x) |
Символьный |
Целый |
Возвращает код символа х |
Chr(x) |
Целый |
Символьный |
Возвращает символ с кодом х |
Для вычисления значений других функций следует пользоваться тождествами:
𝑙𝑛𝑏
log𝑎
𝑏 = 𝑙𝑛𝑎
ax = exln a , если (a 0).
Операции отношений и логические выражения К операциям отношения относятся: > (больше), >= (больше или равно), < (меньше), <= (меньше или равно), = (равно), <> (не равно). С помощью этих операций составляют выражения, в которых обязательно должно быть два операнда. Операндами могут быть числовые константы, переменные и арифметические выражения. Например, А > B, X + Y <=7, 3 < 9, C = D + 2. Выражения, записанные с помощью операций отношения, являются простыми логическими выражениями. Значение такого выражения зависит от числовых значений, входящих в выражение, и может быть либо TRUE (истина), либо FALSE (ложь).
Простые логические выражения с помощью логических операций можно объединять в сложные.
Логические операции приведены в табл. 1.2.
Таблица 1.2
Запись операции на Pascal |
Суть операции |
Значение переменной А |
Значение переменной В |
Значение операции |
Not(A) |
Отрицание (нет) |
True False |
– – |
False True |
(A) and (B) |
Логическое умножение (союз и) |
True True False False |
True False True False |
True False False False |
(A) or (B) |
Логическое сложение (союз или) |
True True False False |
True False True False |
True True True False |
(A) xor (B) |
Исключенное или |
True True False False |
True False True False |
False True True False |
Примеры сложных логических выражений: (A > B) and (A > C), (A = D) or (X = Y).
Приоритетом (иерархией) называется очередность выполнения операций в выражении. Выполнение каждой операции происходит с учетом ее приоритета (табл. 1.3).
Таблица 1.3
Операция |
Приоритет |
Not (отрицание или изменение знака) |
Первый (высший) |
*, /, Div, Mod, And |
Второй |
+, –, or, xor |
Третий |
=, >, >=, <, <=, <> |
Четвертый |
1. Укажите ошибки в следующих именах переменных или констант пользователя:
− |
End (это служебное слово, оно не может быть именем); |
− |
34Sum (здесь на 1 месте стоит цифра); |
− |
Summa Chisel (в имени есть пробел); |
− |
zлr (в имени есть русская буква); |
− |
АВС (нельзя сказать, есть ли здесь ошибка, так как нельзя |
понять, это русские буквы или латинские, однако компьютер четко различает, на каком языке набраны символы);
− |
z_t_w (правильная запись имени); |
|
|
− |
Akwa (правильная запись имени); |
|
|
− |
hRk (правильная запись имени); |
|
|
− |
wW12 (правильная запись имени). |
|
|
2. |
Запиште следующие математические |
выражения |
на |
языке ПаскальАВС:
a) 𝑎2− 𝑏2
−
Ответ: на языке ПаскальАВС (sqr(a)-sqr(b))/sqrt(a-b)
𝑥2−𝑆𝑖𝑛𝑥
b) 𝑒 𝑡𝑔𝑥
Ответ: на языке ПаскальАВС exp(sqr(x)- sin(x)/tan(x)
c)
Ответ: на языке ПаскальАВС ln(x-5)/ln(2)+sqrt(4*a*c)
d)
− (𝑥−6)(𝑥−4)
(𝑥+8)(𝑥+2)
Ответ: на языке ПаскальАВС (-(x-6)*(x-4))/((x+8)*(x+2))
3. Выражения, записанные на языке ПаскальАВС, представьте в виде математических выражений:
a)
(–b + sqrt(sqr(b) – 4
* a * c))/(2 * a). Ответ:
b) − (x – 5)/((y + 3) * (z – 2)). Ответ:− 𝑥−5
(𝑦+3)(𝑧−2)
4. Определите тип результатов арифметических выражений:
− B + 5, если В целое число, то в результате получится целое число; если В вещественное число, то в результате получится вещественное число;
− (x + 5)/(sqr(y) + 2), независимо от значений x и y результат будет всегда вещественный, так как имеется операция / (деление).
5. |
Найдите значения выражений: |
− |
467 mod 23. Ответ: при делении 467 на 23 остаток будет равен 7; |
− |
467 div 23. Ответ: при делении частное будет равно 20; |
− |
(49/7+3)> 15. Ответ: значением этого выражения будет False; |
− |
(35 mod 8) < (345 mod 10). Ответ: значением этого |
выражения будет True.
6. При помощи формул языка Паскаль АВС запишите следующие математические утверждения:
− у равностороннего треугольника все стороны а, b, с равны. Ответ: (a = b) and (a = с);
− у равнобедренного треугольника две стороны равны.
Ответ: (a = b) or (a = c) or (b = c);
− треугольник существует, если длина одной стороны меньше суммы длин двух других сторон.
Ответ: (a b + c) and (b a + c) and (c a + b);
− запишите отрицание следующего выражения: 4 < х < 12.
Ответ: not ((x 4) and (x 12));
Контрольные вопросы
1. Из каких символов состоит алфавит языка программирования Паскаль АВС?
2. Что является зарезервированным словом?
3. Что является идентификатором?
4. Зачем нужны идентификаторы?
5. Что представляет собой константа?
6. Что представляет собой переменная?
7. Какие операции относятся к арифметическим?
8. Что обозначает операция mod?
9. Что обозначает операция div?
10. Что такое арифметическое выражение?
11. Правило записи арифметических выражений.
12. Для чего предназначена функция ODD? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
13. Для чего предназначены функции INT, FRAC? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
14. Для чего предназначены функции ROUND, TRUNC? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
15. Для чего предназначена функция ABS? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
16. Для чего предназначена функция RANDOM? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
17. Для чего предназначены функции ORD, CHR? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
18. Для чего предназначена функция UPCASE? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
19. Для чего предназначены функции SQR, SQRT? Какого типа должен быть аргумент и результат какого типа возвращает эта функция?
20. Какие существуют операции отношения?
21. Что называется простым логическим выражением?
22. Какие логические операции вы знаете?
23. Как называется операция (A) and (B)? Какие значения она может принимать?
24. Как называется операция (A) or (B)? Какие значения она может принимать?
25. Как называется операция (A) xor (B)? Какие значения она может принимать?
26. Как называется операция Not(A)? Какие значения она может принимать?
27. Каков порядок выполнения операций при вычислении значений выражений?
28. Записать тождество определения logb a = …
29. Записать тождество определения ax = …
30. Записать тождество определения a2 = …
31. Записать тождество определения a2/3 = …
Задания для самостоятельного выполнения
1. Укажите ошибки в следующих именах переменных: 3YTR;
NO UN; NBVЩ; VFD 9; ФAN; S_U L; RU,OP; WER.; XYZ(A;
A15B+C; SWET_#; –TY; (-1)KA; SPOL1; A2$
2. Запишите математические выражения на языке ПаскальАВС: − x 3 ;
− log10 x;
− |
𝑥4+𝑦4 |
|
|
|
− |
(𝑎 + 𝑏) ≤ (𝑎 + 𝑐) |
|
|
|
− |
a=b=c |
|
|
|
− |
ex + x2 - 1 𝑐+𝑑 |
|
|
|
− |
1+x5+arcsinx |
|
|
|
3. |
Выражения, записанные |
на |
языке |
ПаскальАВС, |
представьте в виде математических выражений:
− sqrt(p * (p – a) * (p – b) * (p – c));
− |
sqrt(sqr(x1 – x2) + sqr(y1 – y2)); |
− |
m * sqr(d)/g; |
− |
exp(sqr(x)) * sqr(y); |
− |
exp(3 * ln(7); |
− |
pi/(2 – arctan(x)). |
4. |
Вычислите значения следующих выражений: |
− 45 mod 37;
− 22 div 13;
− (59 mod 10)<(71 div 7);
− 15 mod 10;
− 63 div 3;
− (95 mod 5)>(84 div 4);
− (34 mod 2)<( 91 div 10); − 61 mod 20; − 98 div 38.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.