Правила записи математических выражений в паскале

Паскаль: функции на языке Pascal (Паскаль)

Правила записи математических выражений в паскале

Дата изменения: 27 марта 2020

На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.

Арифметические функции (основные)

ФункцияНазначениеТип результата
abs (x)абсолютное значение аргументасовпадает с типом аргумента
sqr (x)квадрат аргументасовпадает с типом аргумента
sqrt (x)квадратный корень аргументавещественный
cos (x)косинус аргументавещественный
sin (x)синус аргументавещественный
arctan (x)арктангенс аргументавещественный
exp (x)exвещественный
ln (x)натуральный логарифмвещественный
int (x)целая часть числавещественный
frac (x)дробная часть числавещественный

Функции преобразования типов

round (x)— округляет вещественное число до ближайшего целого.
trunc (x)— выдает целую часть вещественного числа, отбрасывая дробную.

Пользовательские функции Pascal

Функция в Паскале — это подпрограмма, которая в отличие от процедуры всегда возвращает какое-либо значение. Для этого в теле функции её имени присваивается вычисленное значение — результат, который она возвращает.

  • Функция – это подпрограмма, результатом работы которой является определенное значение.
  • Функции используются для:
    • выполнения одинаковых расчетов в различных местах программы;
    • для создания общедоступных библиотек функций.
  • Синтаксис:
  • заголовок начинается служебным словом function
  • описание формальных параметров (тех, значения которых передаются из основной программы в функцию):
  • параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
  • тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
  • Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
  • Внутри функции можно объявлять и использовать локальные переменные:
  • значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:

Рассмотрим синтаксис:

var …;{объявление глобальных переменных} function название (параметры): тип результата;var…; {объявление локальных переменных}begin… {тело функции}название:=результат; {результат вычислений всегда присваивается функции}end; begin… {тело основной программы}end.

var …;{объявление глобальных переменных} function название (параметры): тип результата; var…; {объявление локальных переменных} begin … {тело функции} название:=результат; {результат вычислений всегда присваивается функции} end; begin … {тело основной программы} end.

Пример: написать функцию, которая вычисляет наибольшее из заданных двух значений

Решение:

Вызов функции:

Задача function 0. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.

✍ Пример результата:

Введите три числа: 4 1 6 наибольшее = 6

Пример: Написать функцию на Паскале, которая складывает два любых числа

✍ Пример результата:

первое число: 2 второе число: 5 сумма = 7

✍ Решение:

123456789101112var x,y:integer;function f(a,b:integer):integer;begin f:= a+b;end;begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y));end.

var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('первое число:'); readln(x); writeln('второе число:'); readln(y); writeln('сумма= ',f(x,y)); end.

В рассмотренном примере использования функции в Паскале: функция f имеет два целочисленных параметра — a и b. Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln.

Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).

Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).

✍ Пример результата:

Введите два числа: 4 7 среднее арифметическое = 5,5 Пример: Составить программу с функцией для вычисления факториала числа.Показать решение:

1234567891011121314151617var x:integer;function fact(a:integer):integer;var i: integer;begin if a> true Введите число: 34 >>> false Введите число: 4 >>> trueЗадача function 5. Вычисление степени числа с помощью функции на языке Паскаль.  Пример: Введите число: 3 Введите степень числа: 2 Результат 32 = 9 Задача function 6. Описать функцию Calc(A, B, Operation) вещественного типа, выполняющую над ненулевыми вещественными числами A и B одну из арифметических операций и возвращающую ее результат. Вид операции определяется целым параметром Operation: 1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение. С помощью Calc выполнить для данных A и B операции, определяемые данными целыми N1, N2, N3.  Пример: Введите два числа: 5 7 Введите номер операции (1 — вычитание, 2 — умножение, 3 — деление, остальные значения — сложение): 2 Результат 5*7 = 35 * Из задачника М. Э. Абрамян (Proc22)

Самостоятельная работа

1 вариант: Описать функцию CircleS(R) вещественного типа, находящую площадь круга радиуса R (R — вещественное). С помощью этой функции найти площади трех кругов с данными радиусами. Площадь круга радиуса R вычисляется по формуле S=π∗R2. В качестве значения Пи использовать 3.14.* Из задачника М. Э. Абрамян (Proc18)Пример: Введите радиус: 5.2 Площадь круга = 16,328‬ ___ Введите радиус: 6.3 Площадь круга = 19,782‬‬ ___ Введите радиус: 7.1 Площадь круга = 22,294 2 вариант: Описать функцию TriangleP(a, h), находящую периметр равнобедренного треугольника по его основанию a и высоте h, проведенной к основанию (a и h — вещественные). С помощью этой функции найти периметры трех треугольников, для которых даны основания и высоты (периметр = сумме длин всех сторон). Для нахождения боковой стороны b треугольника использовать теорему Пифагора: b2=(a/2)2+h2.* Из задачника М. Э. Абрамян (Proc20)Пример: Введите основание треугольника: 6 Введите высоту треугольника: 5 Периметр треугольника = 17,83095 ___ Введите основание треугольника: … Введите высоту треугольника: … Периметр треугольника = … ___ Введите основание треугольника: … Введите высоту треугольника: … Периметр треугольника = … Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

Выражения Паскаль

Правила записи математических выражений в паскале

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

  • знаки операций
  • константы
  • указатели функций
  • переменные
  • скобки

Математические операции Паскаль:

Приведем стандартные математические операции в Паскале:

+     —   сложение (3+58=61)
—     —   вычитание (4-42=-38)
*     —   умножение (8*12=96)
/      —   деление (46/23=2)

Однако кроме этих стандартных операций в Паскале предусмотрены еще 2 математические операции:

div     — деление нацело (10/3=3)
mod   — деление с остатком (10/3=1)

Логические операции Паскаль:

В языке Паскаль присутствуют еще и логические операции над аргументами логического типа, например, у нас даны две логические переменные A и B. В таблице истинности запишем результат выполнения тех или иных логических операций:

Под not понимается логическое отрицание («НЕ»), and означает логическое умножение («И»), or подразумевает логическое сложение («ИЛИ»), xor раскрывает логическое «исключающее ИЛИ».

Операции отношения Паскаль:

Теперь поговорим об операциях отношения в Турбо Паскаль:

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

Приоритет операций Паскаль:

Как в математике, так и в программировании присутствует приоритет операций. В Турбо Паскале порядок вычисления выражения фиксируется по старшинству содержащихся в нем операций:

В математике тем не менее возможно переопределить порядок выполнения операций при помощи скобок. Турбо Паскаль — не исключение:

2*4-3   =  5,2*(7-10)  = -6

Математические функции Паскаль:

Приведем основные математические функции, которые разработчики Турбо Паскаль предусмотрели и вставили в системную библиотеку:

abs(n) — абсолютное значение числа n,

sin(n) — синус числа n, где n — угол в радианах,

cos(n) — косинус числа n, где n — угол в радианах,

В Турбо Паскале не предусмотрены функций тангенса и котангенса. Чтобы их вычислить, используют выражения  sin(x)/cos(x),  cos(x)/sin(x) соответственно.

atan(n) — арктангенс числа n,

exp(n) — число e = 2,718 в степени n,

ln(n) — натуральный логарифм числа n,

pi — число Пи = 3,14,

sqr(n) — квадрат числа n.

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

2(1.33) = exp(1.33*ln(2))

sqrt(n) — квадратный корень из числа n,

trunc(n) — число, равное целой части числа n (отбрасывается дробная часть числа n, результатом выполнения будет число с типом longint),

frac(n) — число, равное дробной части числа n,

int(n) — число, равное целой части числа n (в результате получается число с типом real),

round(n) — округление числа n (возвращаемое значение будет иметь тип longint),

random(n) — генератор псевдослучайных чисел в диапазоне 0 до n (если аргумент отсутствует, т.е. просто random, то в результате выполнения этой функции появится вещественное число от 0 до 1).

Если вы хотите использовать random в процессе выполнения программы, то нужно его инициализировать(другими словами, активировать) процедурой randomize, иначе при последующем запуске программы будет выводиться та же самая последовательность случайных чисел. Рассмотрим на примере программу, которая выводит на экран любые 7 чисел в диапазоне от -15 до 15:

program chislo;

var j: integer;

beginrandomize;

for j:=1 to 7 do

writeln(random(26)-10);

end.

inc(m,n) — увеличение значения числа m на n (если число n не указано, то число m увеличивается на единицу),

dec(m,n) — уменьшение значения числа m на n (если число n не указано, то число m уменьшается на единицу).

Программирование линейных алгоритмов. Практикум. Практическая работа № 3.1

Правила записи математических выражений в паскале

Элементы языка Паскаль и типы данных

Операции, функции, выражения

Оператор присваивания, ввод и вывод данных

Работа 3.1. Программирование линейных алгоритмов

Операции, функции, выражения

К числовым типам данных относятся группы вещественных и целочисленных типов. К ним применимы арифметические операции и операции отношений. Операции над данными бывают унарными (применимые к одному операнду) и бинарными (применимые к двум операндам).

Унарная арифметическая операция в Паскале одна. Это операция изменения знака. Ее формат:

Бинарные арифметические операции стандартного Паскаля описаны в табл. 3.3. В ней символ «I» обозначает целые типы, символ «R» — вещественные типы.

Стандартные функции и процедуры

В Паскале существует большое количество стандартных функций и процедур, к которым программист может обращаться в своих программах. Наиболее часто используются математические функции, например: sqrt(x) — квадратный корень, abs (х) — абсолютная величина, sin (х) и др. Часто используемые стандартные процедуры: Read(…) — процедура ввода, Write (…) — процедура вывода данных.

Стандартные функции и процедуры являются внешними подпрограммами по отношению к вызывающей их программе. Они объединены в модули, которые подключаются к основной программе и становятся доступными для использования. Наиболее часто используемые подпрограммы объединены в модуль под названием SYSTEM. Этот модуль подключается к программе автоматически.

Таблица 3.4 содержит описания стандартных математических функций Паскаля.

Для подключения других модулей необходимо в начале программы (после заголовка) записать строку:

Uses

Для управления символьным выводом на экран используется стандартный модуль CRT. К программе он подключается командой:

Uses CRT

В дальнейшем из этого модуля мы будем использовать процедуру очистки экрана для символьного вывода, обращение к которой производится оператором ClrScr.

Арифметические выражения

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

Например, рассмотрим математическое выражение:

На Паскале оно выглядит так:

(2*A + Sqrt(0.5*sin(X + Y))) / (0.2*C – ln(X – Y))

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

1. Все символы пишутся в строчку на одном уровне. Проставляются все знаки операций (нельзя пропускать знак *).

2. Не допускаются два следующих подряд знака операций. (Нельзя: А+-В; можно: А+ (-В).)

3. Операции с более высоким приоритетом выполняются раньше операций с меньшим приоритетом. Порядок убывания приоритетов: вычисление функции; унарная операция смены знака (-); *, /, div, mod;

+, -.

4. Несколько записанных подряд операций одинакового приоритета выполняются последовательно слева направо.

5. Часть выражения, заключенная в скобки, вычисляется в первую очередь. (Например, в выражении (А+В) * (C-D) умножение производится после сложения и вычитания.)

Не следует записывать выражения, не имеющие математического смысла, например: деление на нуль, логарифм отрицательного числа и т. п.

Пример. Цифрами сверху указан порядок выполнения операций:

Данное арифметическое выражение (на Паскале) соответствует следующему математическому выражению:

В Паскале нет операции или стандартной функции возведения числа в произвольную степень. Для вычисления ху рекомендуется поступать следующим образом:

а) если у — целое положительное значение, то его степень вычисляется через умножение; например х3 —> х*х*х; большие степени следует вычислять умножением в цикле; 

б) если у — целое отрицательное число, то степень вычисляется так: ху = (1/х)|y|; а при у = 0: х0 = 1.

в) если у — вещественное значение, не равное нулю, то используется следующая математическая формула: ху = еу1n(-х) На Паскале получим арифметическое выражение:

exp(Y*ln(х))

Очевидно, что в этом случае не допускается нулевое или отрицательное значение х. Для целого у такого ограничения нет.

На Паскале это выражение выглядит так:

ехр(1/3*ln(А+1))

Выражение имеет целочисленный тип, если в результате его вычисления получается величина целочисленного типа. Выражение имеет вещественный тип, если результатом его вычисления является вещественная величина.

Вопросы и задания

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

2. Запишите математические выражения, соответствующие следующим выражениям на Паскале:

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

4. Вычислите значения выражений:

5. Определите типы выражений:

Следующая страницаОператор присваивания, ввод и вывод данных

О правах человека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: