Арифметические операции языка Pascal ABC
СТРУКТУРА ПРОГРАММЫ. ОПИСАНИЕ ПЕРЕМЕННЫХ В PASCAL ABC
Цель работы Изучить структуру программы. Освоить работу пользователя по описанию переменных различных типов при работе в интегрированной среде PASCAL ABC 7.0.
ЗНАК | ВЫРАЖЕНИЕ | ОПЕРАЦИЯ |
+ | A+B | СЛОЖЕНИЕ |
_ | A – B | ВЫЧИТАНИЕ |
* | A*B | УМНОЖЕНИЕ |
/ | A/B | ДЕЛЕНИЕ |
DIV | A div B | ЦЕЛОЕ ДЕЛЕНИЕ |
MOD | A mod B | ОСТАТОК ОТ ЦЕЛОГО ДЕЛЕНИЯ |
Функция | Функция |
Frac(x) | Дробная часть х |
Int(x) | Целое |
Ln(x) | Натуральный логарифм |
Pi | Постоянная величина π |
Abs(x) | Абсолютное значение (модуль числа) |
Arctan(x) | Арктангес х |
Cos(x) | Косинус х |
Exp(x) | е - экспанента |
Random | Случайное число от 0 до 1 |
Random(n) | Случайное число от 0 до n |
Odd(x) | True , если х – нечетное False , если х – четное |
Sin(x) | Синус х –(в радианах) |
Sqr(x) | Квадрат аргумента |
Sqrt(x) | Квадратный корень |
Trunc(x) | Ближайшее целое, не превышающие аргумент по модулю (отсекание дробной части числа x) |
Round(x) | Округление до ближайшего целого аргумента |
Задания 1
Вычислить месячные выплаты m по займу в s рублей на n лет под процент p. Вычисления выполняются по формулам:
Наберите текст программы:
Выполнить самостоятельно:
1. Заданы длины трех сторон треугольника a , b , c . Вычислить периметр и площадь треугольника по формуле Герона
2. Вычислить значение выражения по формуле (все переменные принимают действительные значения):
1. Запустите программу на выполнение и проверьте её работу;
2. Просмотрите результат выполнения программы;
Для выполнения часто встречающихся операций и преобразований данных, относящихся к разным типам, существуют заранее определенные функции, которые называются СТАНДАРТНЫМИ. Для обращения к функции необходимо задать ее имя и в скобках список аргументов (параметров).
Прежде чем перейдем к стандартным функциям, сначала ознакомимся с правилами их использования:
- 1. Имя функции записывается прописными буквами латинского алфавита.
- 2. Аргумент функции записывается в круглых скобках после имени функции.
- 3. Аргументом функции может быть константа, переменная, или арифметическое выражение того же типа
Теперь рассмотрим некоторые стандартные функции:
Функция Действие Тип Х Тип возвращаемого значения
SQRT(X) вычисляет квадратный корень из аргумента Х действительный действительный
SQR(X) вычисляет квадрат аргумента Х целый действи-тельный целый действи-тельный
RANDOM(X) возвращает случайное число, перед вызовом функции желательно использовать в программе оператор RANDOMIZE включающей случайную инициализацию генератора случайных чисел целый, положительный соответствует типу переменной принимающей значение
SIN(X) вычисляет синус аргумента Х действительный действительный
COS(X) вычисляет косинус аргумента Х действительный действительный
ABS(X) вычисляет абсолютное значение (модуль) аргумента Х целый действи-тельный целый действи-тельный
ODD(X) проверяет Х на четность длинное целое логический
ORD(X) определяет порядковый номер символа Х любой тип кроме действительного длинное целое
CHR(X) определяет символ стоящий по порядковому номеру Х byte символьный
PRED(X) определяет предыдущее значение по отношению к Х любой тип кроме действительного тот же тип
SUCC(X) определяет последующее значение по отношению к Х любой тип кроме действительного тот же тип
ARCTAN(X) вычисляет арктангенс аргумента Х действительный действительный
EXP(X) вычисляет экспоненту от аргумента Х действительный действительный
LN(X) вычисляет натуральный логарифм от Х действительный действительный
TRUNC(X) находит целую часть от Х действительный длинное целое
ROUND(X) округляет Х в сторону ближайшего целого действительный длинное целое
INT(X) возвращает целую часть аргумента Х действительный действительный
FRAC(X) возвращает дробную часть аргумента Х действительный действительный
DEC(X,N) уменьшает значение переменной Х на заданное число N любой тип кроме действительного тот же тип
INC(X,N) увеличивает значение переменной Х на заданное число N любой тип кроме действительного тот же тип
PI возвращает значение числа - действительный
- 1. ORD(‘R’)=82; ORD(5)=5;
- 2. CHR(68)=’D’; можно вызывать эту функцию через #, если аргумент функции константа (#68="D");
- 3. PRED(‘N’)=’M’; PRED(87)=86;
- 4. SUCC(‘S’)=’T’; SUCC(87)=88;
- 5. PI=3.141592653897932385;
- 6. ROUND(3.1415)=3;
- 7. LN(1)=0.000;
- 8. SQRT(36)=6.000;
- 9. SIN(90*pi/180)=1.000.
Замечание:
В тригонометрических функциях аргумент должен быть задан только в радианной мере угла.
Например: 11 div 5 = 2 10 div 3 = 3 2 div 3 = div 4 = div -5 = div 5 = div -5 = 3 10 mod 5 = 0 11 mod 5 = 1 10 mod 3 = 1 14 mod 5 = 4 17 mod - 5 = mod 5 = mod -5 = -2
0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" class="link_thumb"> 6 Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целому b. А именно, а кратно b тогда и только тогда, когда а mod b = 0 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом"> 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целому b. А именно, а кратно b тогда и только тогда, когда а mod b = 0"> 0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом" title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом"> title="Взаимосвязь между операциями div и mod Аргументы операций div и mod целые числа. Для а>0 и b>0 справедливо: A mod b = a – (a div b)*b (a div b)*b + (a mod b) = a Обратите внимание операцию mod можно использовать, чтобы узнать, кратно ли целое а целом">
Определить кол-во оставшихся слив, если их делили на 5 человек write (Кол-во слив = "); readln (a); b:= a mod 5; writeln(Осталось,b, слив);
Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно = Меньше или равно Больше или равно"> = Меньше или равно Больше или равно"> = Меньше или равно Больше или равно" title="Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно"> title="Операции отношения Не равно Меньше = Равно Больше = Меньше или равно Больше или равно">
Вычислить гипотенузу прямоугольного треугольника (длина катетов - a и b) write ("a="); readln (a); write ("b="); readln (b); c:= sqrt (sqr(a) + sqr(b)); writeln ("c=", с:5:2);
Вычислить модуль разности чисел a и b write ("a="); readln (a); write ("b="); readln (b); c:= abs (a - b); writeln ("модуль=", с);
Экспонента и логарифм Exp (x) ln x (натуральный логарифм) Ln (x) e x (экспонента числа, e) Exp (b*Ln (a)) ab ab
Примеры использования DIV и MOD: Операции DIV и MOD часто используются для анализа чисел, например, для получения цифр, из которых состоит число. Задача: Ввести с клавиатуры какое-нибудь трехзначное число. Определить сумму его цифр и вывести эти цифры в обратном порядке.
Пусть переменная а содержит значение заданного числа. Цифры числа а обозначим так: i - количество сотен; j – количество десятков; k - количество единиц; s – сумма этих цифр. Program MyNamber; Uses Crt; Var a, i, j, k, s: integer; Begin clrscr; Writeln (Задайте 3-х значное число); Readln (a); i:=a div 100; {количество сотен} j:=a div 10 mod 10; {десятков} k:=a mod 10; {количество единиц} s:=i+j+k; Writeln (Сумма цифр числа,a,=,s); Writeln (k, j, i); Readln; End.
Стандартные функции Функция ПаскаляМатематическая запись Название Abs(x)|Х||Х| Абсолютная величина числа Х (модуль) Sqr(x)Х2Х2 Возведение числа в квадрат Exp(x)exex Экспонента Sqrt (x) x Вычисление квадратного корня Exp(b*ln(a)) abab Возведение числа в степень Round (x) Округляет до ближайшего целого числа Trunc (x) Отсекает дробную часть Sin(x)sinx Вычисление синуса Cos(x)сosx Вычисление косинуса
Ответы 1.1,68 4.2,06 5.1,10 6.2,16 7.3,05 8.0,10
2.Дано трёхзначное число. В нём зачеркнули первую слева цифру и приписали её справа. Вывести полученное число.(Например,) 3.Дано трёхзначное число. Вывести число, полученное при перестановке цифр десятков и единиц исходного числа. (Например,)
Арифметические функции
Арифметические функции можно использовать только с величинами целого и вещественного типа.
Функция |
Назначение |
Тип результата |
abs (x) |
абсолютное значение аргумента |
совпадает с типом аргумента |
sqr (x) |
квадрат аргумента |
совпадает с типом аргумента |
sqrt (x) |
квадратный корень аргумента |
вещественный |
cos (x) |
косинус аргумента |
вещественный |
sin (x) |
синус аргумента |
вещественный |
arctan (x) |
арктангенс аргумента |
вещественный |
exp (x) |
вещественный |
|
натуральный логарифм |
вещественный |
|
int (x) |
целая часть числа |
вещественный |
frac (x) |
дробная часть числа |
вещественный |
Функции преобразования типов
Эти функции предназначены для преобразования типов величин, например, символа в целое число, вещественного числа в целое и т.д.
Функции для величин порядкового типа
8 Оператор присваивания
Данный оператор предписывает запомнить некоторое значение в переменой. Значение и идентификатор переменой разделены парой знаков := . Типы объектов с обеих сторон знака := должны строго совпадать, за исключением того случая, когда тип переменой - REAL, а тип выражения - INTEGER. Общий вид оператора: < переменная >:= < выражение >
Операторы ввода/вывода
Немногие программы обходятся без ввода данных и совсем нет таких, которые не выводят полученные результаты.
Ввод данных с клавиатуры выполняется операторами: READ и READLN. Формат: Read (список переменных);
Readln (список переменных);
Буквы ln добавляются в конце оператора для того, чтобы курсор автоматически переходил на следующую строку при выводе на экран текстов или результатов выполнения программы. Например:
Readln (x, y, z); Read (beta, gamma);
При выполнении оператора READ(READLN) программа останавливается и ждет, пока нужное количество чисел не будет введено с клавиатуры
Вывод данных на экран дисплея выполняется операторами: WRITE и WRITELN. Формат:
Write (список выражений); Writeln (список выражений);
Выражение в списке разделяются запятыми. Значения выражений сначала вычисляются, а затем выводятся на экран. При выводе вещественных значений можно указать, сколько десятичных цифр следует сохранить в дробной части числа, причем количество цифр указывается вслед за шириной поля после двоеточия.
Для того чтобы прокомментировать выводимые значения, в список вывода можно помещать строки любых символов, заключенные в апострофы.
9. Условный оператор if . Общий вид if <условие> then<действие 1>; else <действие 2>;
Оператор if может быть использован и без второй части
Если необходимо выполнить несколько условий, то тогда используем такие виды записи (условие 1) and (условие 2)- в этом случае должно выполнятся и 1 и 2
(условие 1) or (условие 2) – в этом случае выполняется выбор.Скобки обязательны!
В программировании, довольно часто приходиться выполнять однотипные действия, причем в задачах разного уровня и класса. И для ускорения процесса написания кода эти действия выносят в специальные подпрограммы – стандартные функции. Обращение к такой подпрограмме происходит по ее имени, а в скобках указывается значение аргумента. В следующей таблице указаны те стандартные функции, которые используются в языке программирования Pascal.
Функция | Назначение |
ABS(x) | Вычисление абсолютного значения x: |х| |
SQR(x) | Вычисление квадрата x: x*x |
SIN(x) | Вычисление синуса x: sin x |
COS(x) | Вычисление косинуса x: cos x |
ARCTAN(x) | Вычисление арктангенса x: arctg x |
EXP(x) | Вычисление экспоненты (числа Е) в степени x |
EXP10(x) | Вычисление 10 в степени x |
LN(x) | Вычисление натурального логарифма x |
LOG(x) | Вычисление десятичного логарифма x |
SQRT(x) | Вычисление квадратного корня из x |
A DIV B | Вычисление частного при делении А на В с отбрасыванием остатка |
A MOD B | Нахождение остатка от делении А на В |
TRUNC(x) | Нахождение целой части x |
RANDOM(x) | Псевдослучайное число в интервале |
ROUND(x) | Округление значения x в сторону ближайшего целого |
ODD(x) | Проверяет аргумент на нечетность. Результат TRUE, если аргумент нечетный, FALSE – если четный. |
ORD(x) | Возвращает порядковый номер аргумента и, как следствие, преобразует величину порядкового типа в величину целого типа. |
CHR(x) | Определение символа языка Паскаль по его порядковому номеру |
SUCC(x) | Нахождение элемента, идущего после данного в перечне допустимых элементов |
PRED(x) | Нахождение элемента, идущего перед данным в перечне допустимых элементов |
FRAC(X) | Возвращает дробную часть x |
INT(X) | Возвращает целую часть x |
Pi | Значение математической постоянной π |
EOF(x) | Возвращает TRUE, если файл находится в стоянии “конец файла”, иначе FALSE, если нет конца файла |
Выражения
Выражение состоит из переменных, констант, полей в записях, указателей функций, круглых скобок и знаков операций. Для корректной записи выражений необходимо знать не только как обозначаются те или иные операции, функции и т. п., но также стоит предусмотреть приоритеты их выполнения, математические и логические правила, а также некоторые тонкости самого языка. Для более углубленного изучения выражений, стоит рассмотреть несколько примеров.
1) 12+3*3=21 (12+3)*3=45
Как видите выражения в Pascal , имеют такой же приоритет, как и в математике, а с помощью круглых скобок его можно изменить.
2) (a >1) and (a <=20)
Такое логическое выражение возвращает истину, лишь в том случае, когда истинны оба выражения, т. е. если a входит в диапазон от 1 до 20 включительно. Стоит обратить внимание на скобки, здесь они необходимы для изменения приоритета, так как у операторов сравнения он низший.
3) (a+3>0) and (a+3<15) or (b>1) and (b<10)
Условие вернет истину, тогда когда истинными будут два условия слева или справа от OR , а также если они оба будут истинными.
Логическая операция OR (или) суть дизъюнкция в логики и поэтому имеет следующую таблицу истинности:
X | Y | X or Y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Ложь имеет место только когда X и Y ложны (нули). В том случае, чтобы истина возвращалась только тогда, когда одно из условий верно следует применить оператор XOR (исключающее или).