Лабораторная работа №1. Вычисление арифметических выра- жений

Цель работы

- получение навыков в построении алгоритмов линейной структуры;

- изучение правил записи арифметических выражений на алгоритмическом языке Turbo-Pascal;

- получение навыков в использовании встроенных математических функций.

Краткие теоретические сведения

Программа - это некий набор инструкций, адресованный компьютеру и точно предписывающий ему, как следует решать задачу. Более строгим определением программы является следующее. Программа на Pascal- это последовательность лексических единиц, называемых лексемами, и которые условно можно разделить на несколько классов, а именно: идентификаторы, числа без знака, специальные знаки, символьные константы, директивы, метки[1,2,3].

Идентификатор - это произвольная последовательность букв или цифр, начинающаяся с буквы.

Идентификаторы служат для обозначения констант, переменных, типов, полей, процедур, функций и программ.

Константа - это идентификатор константы, целое или действительное число, строка.

Число без знака является вещественным, если в его состав входит точка или символ Е. Все остальные числа считаются целыми. Например, числа 23, 5, -16 - целые константы, 18.04, 0.02, 0.11Е+01, 3.5Е-03 - вещественные константы.

Именованная константа - это фиксированное значение, которому при объявлении константы в разделе описания дается имя. Например, в разделе описания объявляются следующие константы:

Const

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Согласно объявлению, константы Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru и Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru имеют тип integer(целочисленный), а Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru - тип real(вещественный).

Переменная - это имя ячейки памяти, в которой в каждый момент времени может храниться только одно значение.

Все переменные, используемые в программе, должны быть объявлены в разделе описания программы. Посредством объявления имен переменных устанавливается не только факт их существования, но и задается их тип. Например,

Var

n: integer;

a,b,x: real;

Арифметическое выражение - одна или несколько констант, переменных или функций, объединенных знаками операций и скобками при необходимости.

Все значения переменных должны быть определены в разделе описаний программы до их появления в арифметическом выражении. Операнды в арифметическом выражении могут быть типа integer, real, byte.

В табл. 1.1 приведены знаки арифметических операций и указаны типы операндов и результата.

Таблица 1.1

Операция Действие Тип операндов Тип результата
+ сложение integer, real integer, real
- вычитание integer, real integer, real
Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru умножение integer, real integer, real
/ деление integer, real real
div деление нацело integer integer
mod вычисление остатка от деления integer integer


Все знаки арифметических операций являются бинарными, кроме знаков “+” и “-”. Знаки “+” и “-” могут быть унарными и располагаться перед операндами.

Операции в арифметическом выражении выполняются слева направо в соответствии с их приоритетом. Наивысший приоритет, например, имеют операции умножения и деления, а операции сложения и вычитания низший приоритет.

Выполнить в первую очередь операцию с более низким приоритетом можно, если использовать скобки. Например, в выражении Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru , выполнится умножение операндов “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ” и “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ”, а далее вместо операции деления сначала будет выполнена операция сложения операндов “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ” и “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ”, а только потом будет выполнена операция деления произведения Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru .

При написании арифметических выражений следует помнить некоторые правила, основными из которых являются следующие.

Запрещено последовательное размещение знаков двух арифметических операций.

Операции с более высоким приоритетом выполняются раньше, чем операции с более низким приоритетом.

Если все операции имеют одинаковый приоритет, то они выполняются последовательно слева направо в Pascal 7.0.

Выражение в круглых скобках выполняются в первую очередь.

Операция “ - ” имеет самый низкий приоритет. Поэтому в выражении, Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru сначала вычисляется произведение операндов “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ” и “ Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru ”, а затем изменяется знак результата на противоположный.

Для выполнения часто встречающихся вычислительных операций в языке Pascal имеется ряд заранее разработанных стандартных программ, которые можно использовать в выражениях как готовые элементы. Такие стандартные программы называют стандартными функциями. При обращении к функции следует указать ее имя, после которого в круглых скобках записать аргумент или аргументы этой функции, разделяя их запятыми.

При записи арифметических выражений в качестве операндов могут использоваться имена стандартных арифметических функций. Перечень основных арифметических функций представлен в табл. 1.2.

Таблица 1.2

Функция Назначение Тип результата
Abs(x) Абсолютное значение аргумента Совпадает с типом х
Arctan(x) Арктангенс аргумента real
Cos(x) Косинус аргумента real
Exp(x) Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru real
Frac(x) Дробная часть числа real
Int(x) Целая часть числа real
Ln(x) Натуральный логарифм real
Pi Значение величины Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru real
Sin(x) Синус аргумента real
Sqr(x) Квадрат аргумента Совпадает с типом х
Sqrt(x) Квадратный корень аргумента real

В Pascal при написании программы используются простые и составные операторы. К числу простых операторов относится оператор присваивания.

В соответствии с оператором присваивания вычисляется выражение, стоящее в левой части, и результат присваивается переменной, стоящей в правой части. Для этого используется специальный знак « - :=» .

Формат

<идентификатор>:=<выражение>;

Идентификатор переменной в левой части оператора и значение результата выполнения выражения в правой части должны быть одного типа. Однако, разрешается переменной типа realприсваивать результат типа integer. Например, операторами присваивания являются

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Записанные операторы присваивания позволяют вычислить значения по следующим формулам:

Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru

Пример программы на Pascal

Задача 1.

Вычислить значение Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru , если Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru .

Program st1;

Var

a,b,c,x,y:real;

Begin

read(a,b,c,x);

writeln(a,b,c,x);

y:=a Лабораторная работа №1. Вычисление арифметических выра- жений - student2.ru 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. Что такое стандартные математические функции и назовите известные Вам.

Наши рекомендации