Лабораторная работа №1. Вычисление арифметических выра- жений
Цель работы
- получение навыков в построении алгоритмов линейной структуры;
- изучение правил записи арифметических выражений на алгоритмическом языке Turbo-Pascal;
- получение навыков в использовании встроенных математических функций.
Краткие теоретические сведения
Программа - это некий набор инструкций, адресованный компьютеру и точно предписывающий ему, как следует решать задачу. Более строгим определением программы является следующее. Программа на Pascal- это последовательность лексических единиц, называемых лексемами, и которые условно можно разделить на несколько классов, а именно: идентификаторы, числа без знака, специальные знаки, символьные константы, директивы, метки[1,2,3].
Идентификатор - это произвольная последовательность букв или цифр, начинающаяся с буквы.
Идентификаторы служат для обозначения констант, переменных, типов, полей, процедур, функций и программ.
Константа - это идентификатор константы, целое или действительное число, строка.
Число без знака является вещественным, если в его состав входит точка или символ Е. Все остальные числа считаются целыми. Например, числа 23, 5, -16 - целые константы, 18.04, 0.02, 0.11Е+01, 3.5Е-03 - вещественные константы.
Именованная константа - это фиксированное значение, которому при объявлении константы в разделе описания дается имя. Например, в разделе описания объявляются следующие константы:
Const
Согласно объявлению, константы и имеют тип integer(целочисленный), а - тип real(вещественный).
Переменная - это имя ячейки памяти, в которой в каждый момент времени может храниться только одно значение.
Все переменные, используемые в программе, должны быть объявлены в разделе описания программы. Посредством объявления имен переменных устанавливается не только факт их существования, но и задается их тип. Например,
Var
n: integer;
a,b,x: real;
Арифметическое выражение - одна или несколько констант, переменных или функций, объединенных знаками операций и скобками при необходимости.
Все значения переменных должны быть определены в разделе описаний программы до их появления в арифметическом выражении. Операнды в арифметическом выражении могут быть типа integer, real, byte.
В табл. 1.1 приведены знаки арифметических операций и указаны типы операндов и результата.
Таблица 1.1
Операция | Действие | Тип операндов | Тип результата |
+ | сложение | integer, real | integer, real |
- | вычитание | integer, real | integer, real |
умножение | integer, real | integer, real | |
/ | деление | integer, real | real |
div | деление нацело | integer | integer |
mod | вычисление остатка от деления | integer | integer |
Все знаки арифметических операций являются бинарными, кроме знаков “+” и “-”. Знаки “+” и “-” могут быть унарными и располагаться перед операндами.
Операции в арифметическом выражении выполняются слева направо в соответствии с их приоритетом. Наивысший приоритет, например, имеют операции умножения и деления, а операции сложения и вычитания низший приоритет.
Выполнить в первую очередь операцию с более низким приоритетом можно, если использовать скобки. Например, в выражении , выполнится умножение операндов “ ” и “ ”, а далее вместо операции деления сначала будет выполнена операция сложения операндов “ ” и “ ”, а только потом будет выполнена операция деления произведения .
При написании арифметических выражений следует помнить некоторые правила, основными из которых являются следующие.
Запрещено последовательное размещение знаков двух арифметических операций.
Операции с более высоким приоритетом выполняются раньше, чем операции с более низким приоритетом.
Если все операции имеют одинаковый приоритет, то они выполняются последовательно слева направо в Pascal 7.0.
Выражение в круглых скобках выполняются в первую очередь.
Операция “ - ” имеет самый низкий приоритет. Поэтому в выражении, сначала вычисляется произведение операндов “ ” и “ ”, а затем изменяется знак результата на противоположный.
Для выполнения часто встречающихся вычислительных операций в языке Pascal имеется ряд заранее разработанных стандартных программ, которые можно использовать в выражениях как готовые элементы. Такие стандартные программы называют стандартными функциями. При обращении к функции следует указать ее имя, после которого в круглых скобках записать аргумент или аргументы этой функции, разделяя их запятыми.
При записи арифметических выражений в качестве операндов могут использоваться имена стандартных арифметических функций. Перечень основных арифметических функций представлен в табл. 1.2.
Таблица 1.2
Функция | Назначение | Тип результата |
Abs(x) | Абсолютное значение аргумента | Совпадает с типом х |
Arctan(x) | Арктангенс аргумента | real |
Cos(x) | Косинус аргумента | real |
Exp(x) | real | |
Frac(x) | Дробная часть числа | real |
Int(x) | Целая часть числа | real |
Ln(x) | Натуральный логарифм | real |
Pi | Значение величины | real |
Sin(x) | Синус аргумента | real |
Sqr(x) | Квадрат аргумента | Совпадает с типом х |
Sqrt(x) | Квадратный корень аргумента | real |
В Pascal при написании программы используются простые и составные операторы. К числу простых операторов относится оператор присваивания.
В соответствии с оператором присваивания вычисляется выражение, стоящее в левой части, и результат присваивается переменной, стоящей в правой части. Для этого используется специальный знак « - :=» .
Формат
<идентификатор>:=<выражение>;
Идентификатор переменной в левой части оператора и значение результата выполнения выражения в правой части должны быть одного типа. Однако, разрешается переменной типа realприсваивать результат типа integer. Например, операторами присваивания являются
Записанные операторы присваивания позволяют вычислить значения по следующим формулам:
Пример программы на Pascal
Задача 1.
Вычислить значение , если .
Program st1;
Var
a,b,c,x,y:real;
Begin
read(a,b,c,x);
writeln(a,b,c,x);
y:=a x+sqr(b);
y:=y/(a+c);
writeln(y);
End.
1.3. Содержание задания
Задание 1
- разработать блок-схему алгоритма решения задачи вычисления функции, которая выбирается по варианту, указанному преподавателем (см. приложение А, таб. А.1);
- написать и отладить программу в соответствии с разработанным алгоритмом;
- выполнить тестирование программы, т.е. сравнить результаты с ручным счетом;
- задачи для самостоятельного решения представлены в Приложении Д.
Содержание отчета
- цель работы;
- задание;
- блок-схема алгоритма решения задачи;
- текст программы;
- результаты тестирования и результаты счета;
- выводы.
1.5. Контрольные вопросы
1. Дайте определение алгоритма решения задачи. Назовите способы записи алгоритма.
2. Изобразите графические элементы блок-схемы алгоритма и поясните их назначение.
3. Дайте определение программы. Опишите структуру программы на Pascal. Приведите пример алгоритма линейной структуры.
4. Какие символы включает алфавит языка Pascal, в каких форматах можно записывать числа в программе.
5. Дайте определение идентификатора, константы и переменной.
6. Дайте определение арифметического выражения и назовите знаки арифметических операций.
7. Укажите правила записи арифметических выражений.
8. Объясните назначение и правила использования операторов read и write, readln и writeln, а также различия между ними.
9. Что такое стандартные математические функции и назовите известные Вам.