Правила записи математических выражений в паскале
Паскаль: функции на языке Pascal (Паскаль)
На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.
Арифметические функции (основные)
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. Написать функцию, которая вычисляет наибольшее из заданных трех значений. Функция с тремя параметрами.
Пример: Написать функцию на Паскале, которая складывает два любых числа
123456789101112 | var x,y:integer;function f(a,b:integer):integer;begin f:= a+b;end;begin writeln('pervoe chislo:'); readln(x); writeln('vtoroe chislo:'); readln(y); writeln('summa= ',f(x,y));end. |
var x,y:integer; function f(a,b:integer):integer; begin f:= a+b; end; begin writeln('pervoe chislo:'); readln(x); writeln('vtoroe chislo:'); readln(y); writeln('summa= ',f(x,y)); end.
В рассмотренном примере использования функции в Паскале: функция f имеет два целочисленных параметра — a и b. Через двоеточие в заголовке функции (строка 2) указано, что значение, вычисляемое функцией, будет тоже целочисленным. В теле функции вычисляемая сумма присваивается имени функции. А в основной программе вызов функции осуществляется в качестве параметра оператора writeln.
Таким образом, главное отличие функции от процедуры — это то, что функция производит какие-либо вычисления и выдает в программу результат в виде значения, в то время как процедура чаще всего выполняет какие-либо действия с результатом, например, выводит его на экран (функция этого делать не может).
Задача function 1. При помощи функции найти среднее арифметическое двух чисел (функция с двумя параметрами).
Пример: Составить программу с функцией для вычисления факториала числа.
Показать решение:
123456789101112131415 | var x:integer;function fact(a:integer):integer;var i: integer;begin if a |
Методические указания к лабораторной работе по курсу «Информатика» Основы алгоритмизации и программирования на языке
Сохрани ссылку в одной из сетей:
Арифметическиевыражения
Всеарифметические выражения на компьютерезаписываются в строчку, переноса недопускается
Знакиарифметических операций
+– знак суммы;
–– знак вычитания;
*– знак произведения;
/– знак деления.
При записи выражения используютсятолько круглые скобки. Если в выражениинеобходимо использовать несколькоскобок стоит обратить внимание на точто количество открытых скобок равноколичеству закрытых.
Примерызаписи арифметических выражений
Пример1.
Пример2.
Пример3.
Большие выражения для удобствазаписи можно разбивать на части, используядополнительные переменные и операциюприсваивание.
Пример4.
Для записи выраженияберем дополнительные переменные nи m.Переменной nприсваиваем значение верхней частивыражения и значению mприсваиваем значение nделенного на нижнюю часть выражения.
Выбратьв главном меню пункт «Правила записивыражений на языке Pascal». Далеезадание«Запись арифметических выражений»
Задание.Запишите приведенные ниже выражения всоответствии с правилами записиарифметических выражений в программировании.Все выражения записываются в одну строкус минимальным количеством скобок.
1) | 3) |
2) | 4) |
3.2Запись функций на языке Pascal
Функцией в математике называется переменнаявеличина, значение которой можетизменяться в зависимости изменениедругой величины (аргумента).
Название функции | Выполняемое действие | Тип функции | Запись функции в программе |
Sin | Определение синуса аргумента | Real | a := Sin (x) |
Cos | Определение косинуса аргумента | Real | a := Cos (x + y) |
Sqrt | Определение квадратного корня аргумента | Real | a := Sqrt (x) |
Sqr | Определение квадрата аргумента | Если аргумент целое число, то Integer иначе Real | a := Sqr (x) |
Abs | Определение абсолютного значения (модуля) аргумента | Если аргумент целое число, то Integer иначе Real | a := Abs (x) |
Exp | Определение экспоненты аргумента | Real | a := Exp (x) |
Ln | Определение натурального логарифма аргумента | Real | a := Ln (x) |
Round | Округление аргумента | В зависимости от того до чего округляем | a := Round (5.5) |
Trunc | Отбрасывание дробной части аргумента | Integer | a := Trunc (5.2) |
Функции тангенса вPascal не предусмотрено, поэтому ее принятозаписывать как Sin(x)/Cos(x).Данная функция является функциейвещественного типа.
3.3Примеры записи выражений с использованиемфункций в программе
Пример1.
Ранее мы уже говорили,что в Pascalфункция тангенса расписывается каксинус деленный на косинус. В приведенномпримере аргументом как синуса так икосинуса служит функция квадратногокорня sqrt(x),аргументом которого в свою очередьявляется переменная х.
Пример2.
Внешней функциейэтого выражения является квадратаргументом которому служит все выражение(sqrt(x)+sqr(x))заключенное в скобках, в котором, что впервом случае с квадратным корнем sqrt,что во втором случае с квадратом sqrаргументомявляется переменная х.
Пример3.
В данном примереаргументом абсолютного значения являетсявсе выражение заключенное в модуле1+sinx(1+sin(x)),где в свою очередь аргументом синусаsinявляется переменная х.
Пример4.В данном примереиспользовано две простые функцииэкспонента и натуральный логарифм.Аргументом экспоненты expявляется переменная величина х,а для натурального логарифма lnв качестве аргумента использованострогое значение 5.В остальном выражение оформляется поправилам записи арифметических выражений.
Обратите внимание, что практическиво всех приведенных примерах намииспользованы сложные функции, т.е. однафункция получается, вложена в другую,при оформлении выражения в программестоит учитывать этот факт, в противномслучае написанная вами программа будетвыполнена не корректно.
И еще один небольшой нюанс. Вчетвертом примере нами было использованозначение вещественного типа, впрограммировании подобные значениязаписываются с точкой.
3.4Правила записи функций с использованиемкомпьютерной системы алгоритмизациии программирования
Задание.Запишите приведенные ниже выражения всоответствии с правилами записи выраженийв программировании. Все выражениязаписываются в одну строку с минимальнымколичеством скобок.
1) | 2) | 4) |
3) | 5) |
Всоответствующую графу записать функциюна языке Pascalинажать ОК. Если функция введена не верно,то на экране появится соответствующаязапись. Одновременно указываетсяколичество верных ответов.
ЯзыкPascal – этоязык с сомой удобной структурой написанияпрограммы.
Структурапрограммы на языке Pascal
Program имя (идентификатор программы);
Begin– начало раздела действий
End– окончание раздела действий
3.5Идентификаторы языка Pascal
Идентификаторомназывается имя любой переменной впрограмме, будь то имя программы илиимена переменных, констант, типовиспользуемых в программе.
Идентификатор в Pascal может состоятьот одного до восьми символов. В качествесимволов для задания идентификатораиспользуются латинские буквы и цифры,первым символом обязательно должнабыть буква. В качестве имен нельзяиспользовать служебные слова языка.
3.6Разделы описаний
В начале работы программыкомпьютером будут прочитываться разделыописаний, и размещаться в оперативнуюпамять данные для дальнейшей обработки.
ВPascal существуют следующие разделыописаний:
Const– раздел описания констант.
Этотраздел используется в программе в томслучае, если необходимо использоватьв программе переменную, значение которойбудет оставаться неизменным в ходевыполнения всей программы.
Константав программе задается следующим образом:
= ;
Есликонстант несколько , то они перечисляютсячерез точку с запятой.
Впрограмме запись будет выглядеть так:
Const
Pi= 3.14;
n= -25;
a= 18;
Здесь:Const– служебное слово, указывающее на то,что далее описаны константы;
Pi,n, a – идентификаторы констант;
3.14;10; 18 – значения присвоенные идентификаторамконстант.
Прианализе этого фрагмента программыкомпилятор самостоятельно отнесетпервую константу Piк вещественному типу Real,оставшиеся константы аи nк целому типу данных Integer.
Var– раздел описания переменных
В отличие от констант, переменнаяименует объект программы, который можетизменять свое значение в ходе вычислений.
Переменныеописываются следующим образом:
:;
Переменныеодного типа записываются через запятую:
Var
a,b, c : Integer;
Еслив программе используются переменныеразличных типов, то они перечисляютсячерез точку с запятой:
Var
a,b, c, d : Integer;
x, y : Real;
Type– раздел описания типов
= ;
- Label – раздел описания меток;Procedure – раздел описания процедур;Function – раздел описания функций.
3.7Типы данных
Типыданных – это форма записи данных воперативную память, в соответствии сформой определяется количество ячеекна каждый тип.
Целыйтип данных
ВPascal существует пять базовых целых типов.
Разныецелые типы отличаются заданным диапазономзначений и соответственной количествомпамяти, которое выделяется под заданнуюпеременную в оперативно-запоминающемустройстве.
ТаблицаЦелые типы данных
Название | Кол-во памяти (байт) | Диапазон значений |
Byte | 1 | От 0 до 255 |
ShortInt | 1 | ОТ -128 до +127 |
Word | 2 | От 0 до 65535 |
Integer | 2 | От -32768 до +32767 |
LongInt | 4 | От -2147483648 до +2147483647 |
Операциицелого типа
Целыми являютсяоперации сложения, вычитания, умноженият.е. если xи yописаны как целые переменные то врезультате выполнения операций z:= x + y; z := x – y; z := x * yрезультат останется целым. Такжерезультат вычисления приобретет целыйтип при вычислении функции округленияRoundи функции отбрасывания дробной частиTrunc
Вещественный(действительный) тип данных
Вещественныйтип данных – это множество значений сдесятичной точкой.
ВPascal существует четыре базовых вещественныхтипа.
Вещественныетипы данных также как и целые типыразличаются заданным диапазоном значенийи количеством памяти занимаемой воперативно-запоминающем устройстве.
ТаблицаЦелые типы данных
Название | Кол-во памяти (байт) | Диапазон значений |
Real | 6 | От -39 до +38 |
Double | 8 | От -324 до +308 |
extended | 10 | От -4951 до +4932 |
comp | 8 | От -263 до +263 |
Существуетдве записи вещественных чисел, число сфиксированной точкой и число с плавающейточкой.
Операциивещественного типа
Операциями вещественноготипа могут быть все арифметическиеоперации. Операция деления являетсяоперацией только вещественного типадаже в том случае, если в качестверезульта вычисления подразумеваетсяцелое значение. Также результат вычислениябудет иметь строго вещественное значениепри использовании функции квадратногокорня sqrt.
Задание«Определение типа данных». Определитьтип выражения (целый или вещественный)
Выбрать в главном меню пункт«Типы данных». Далее задание «Определениетипа данных». Для указанных выраженийуказать тип данных (целый или вещественный).Нажать ОК.
Логическийтип данных
Логический тип данныхимеет всего два значения True(истина),False(ложь) иявляется упорядоченным типомTrue>False.
В программе логическийтип переменной задается служебнымсловом Boolean.
Существуют следующие логическиеоперации:
>– больше;
=– большелибо равно;
Правила записи математических выражений в паскале
В Турбо Паскале порядок вычисления выражения фиксируется по старшинству содержащихся в нем операций: В математике тем не менее возможно переопределить порядок выполнения операций при помощи скобок.
Турбо Паскаль — не исключение: 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.
В Турбо Паскале нет функции, чтобы возвести число в произвольную степень, поэтому, как и в математике, можно либо многократно умножать число на себя для возведения в целочисленную степень, либо воспользоваться функциями экспоненты и натурального логарифма, чтоб возвести число как в целочисленную, так и в вещественную степень (более эффективный способ):
Pascal-Паскаль
Замечание (это важно!)
- в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: xy= eylnx
- в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a
Математическое выражение: x3/2 — 7x + tg (x+2) Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2) Операторы действия — это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений.
Самый простой оператор действия — . := Пример оператора присваивания a:=15+5;{переменной a присваиваем математическое выражение.
Запись арифметических выражений в программе
Диаграмма последовательности позволяет отслеживать поведение взаимодействующих групп объектов.
Правила записи выражений на паскале
Например, в следующем операторе присваивания операндами являются три функции: sin, ln, cos.
Их запись такая же, как в математике.
Аргументы называются фактическими параметрами и являются в общем случае выражениями арифметического типа. Аргументы записываются в круглых скобках.
Одна константа или одна переменная — простейшая форма арифметического выражения. Например, запишем по правилам Паскаля следующее математическое выражение: На Паскале это выглядит так: Для того чтобы правильно записывать арифметические выражения, нужно соблюдать следующие правила: 1.
Все символы пишутся в строчку на одном уровне.
Операции и выражения в языке Паскаль
Специалисты рассчитают стоимость вашей работы Расчет стоимости придет на почту и по СМС Тип работы* Диплом МВА Магистерский диплом Дипломная работа (бакалавр/специалист) Дипломная работа (колледж/техникум) Аттестационная работа (ВАР/ВКР) Часть дипломной работы Сопроводительные материалы к диплому Курсовая с практикой Курсовая теория Отчёт по практике Реферат Реферат для аспирантуры Контрольная работа Задачи Кейсы Статья Тест Чертежи Эссе Бизнес-план Вопросы к экзамену Лабораторная работа, РГР Он-лайн помощь Поиск информации Презентация в PowerPoint Другое Далее Нажимая на кнопку, вы соглашаетесь с политикой конфиденциальности и на обработку персональных данных. Узнать стоимость Номер вашей заявки Прямо сейчас на почту придет автоматическое письмо-подтверждение с информацией о заявке.
Образовательный блог — всё для учебы
Например, результатом выражения 4 div 2 будет 2, а результатом выражения 17 div 4 будет 4; • результатом операции mod будет остаток от целочисленного деления операндов. Таким образом, выражение x mod у эквивалентно выражению x-(x div Y) *Y.
операции отношения; 4. логические операции; 5. скобки. В результате выполнения логической операции получается логическое значение True или False.
Знак Операция Операции Типы операндов Тип результата Пример not Отрицание Boolean Boolean not(C in MySet) and Конъюнкция (логическое И) Boolean Boolean A and В or
Формулы
Вариант 10
,
,
, где a=0,7, b=2, c=1. Вариант 11
,
,
, где a=0,3, b=4,5, c=0,2.
Вариант 12
,
,
, гдеa=2,1, b=0,6, c=1. Вариант 13
,
Методические указания к лабораторной работе по курсу «Информатика» Основы алгоритмизации и программирования на языке
В приведенном примере аргументом как синуса так и косинуса служит функция квадратного корня sqrt(x), аргументом которого в свою очередь является переменная х. Пример 2. Внешней функцией этого выражения является квадрат аргументом которому служит все выражение
(sqrt(x)+sqr(x)) заключенное в скобках, в котором, что в первом случае с квадратным корнем sqrt, что во втором случае с квадратом sqr аргументом является переменная х.
Если переменная t имела до выполнения этого оператора значение равное 7, то после исполнения оператора t:=t+1 значение переменной будет равно 8. Арифметические выражения Арифметические выражения строятся из арифметических констант, переменных, функций и операций над ними.
Правила записи и смысл арифметических выражений в Паскале почти не отличаются от обычной математической записи.В арифметических выражениях используются следующие операции и соответствующие знаки: Операция Знак операции Сложение + Вычитание — Умножение * Деление Деление целых чисел div Остаток от деления целых чисел mod Операции +, -, *, / имеют очевидный смысл. Результатом операции div будет целое значение, равное целой части результата деления первого числа на второе.
Математика в Pascal
Всем привет, в этот солнечный день снег решил отступить и дал слабину, наверное…
Выйдя на улицу, я услышал звуки птиц, видимо все таки весна скоро придет, да и рыжий кот во всю орет, тем самым подавая знаки прихода весеннего обострения.
Но нам не до этого, мы изучаем Pascal и сегодня на теме у нас математические знаки и математические операции в программировании. Так как мы новички, то мы продолжим рассматривать все это в Паскаль. Поехали =)
Обычные знаки
Для начала посмотрим как выглядят обычные операции сложения, вычитания, умножения и деления в Pascal, да и в большинстве других языках программирования.
Подготовим нашу рабочую область, запустим PascalABC и напишем заготовку.
Теперь объявим две переменные с целочисленным типом данных
- program znaki;
- var
- a,b: integer;
- begin
- end.
Теперь присвоим какое-нибудь значение в виде целого числа
- program znaki;
- var
- a,b: integer;
- begin
- a:= 100;
- b:= 5;
- end.
Теперь будем производить математические операции над числами. В других уроках мы использовали третью переменную для записи ответа в нее, в этот раз мы поступим проще и будем сразу выводить действие.
Для начала сложим два числа и выведем ответ
- program znaki;
- var
- a,b: integer;
- begin
- a:= 100;
- b:= 5;
- write( a+b );
- end.
- Вывод программы: 105
Теперь вычитание
- program znaki;
- var
- a,b: integer;
- begin
- a:= 100;
- b:= 5;
- write( a-b );
- end.
- Вывод программы: 95
Умножение
- program znaki;
- var
- a,b: integer;
- begin
- a:= 100;
- b:= 5;
- write( a*b );
- end.
- Вывод программы: 500
И деление
- program znaki;
- var
- a,b: integer;
- begin
- a:= 100;
- b:= 5;
- write( a/b );
- end.
- Вывод программы: 20
Это было просто, теперь рассмотрим другие, более сложные, но на самом деле такие же простые операции.
Число по модулю
Кто не помнит из курса школьной математики, то проще говоря это, когда из отрицательного числа получается положительное.
Функция называется ABS, пишем название функции и в скобках указываем число или же переменную.
- program znaki;
- var
- a: integer;
- begin
- a:= -100;
- write( abs(a) );
- end.
- Вывод программы: 100
Число в квадрате
Возводим число в квадратный корень или же по другому во вторую степень с помощью функции SQR.
- program znaki;
- var
- a: integer;
- begin
- a:= 6;
- write( sqr(a) );
- end.
- Вывод программы: 36
Квадратный корень числа
Делая действие, обратное действию SQR, то есть, если до этого мы возводили в квадрат, то сейчас выводим квадратный корень числа с помощью функции SQRT.
- program znaki;
- var
- a: integer;
- begin
- a:= 36;
- write( sqrt(a) );
- end.
- Вывод программы: 6
Возводим число в любую степень
До этого мы возводили во вторую степень, теперь функция POWER позволит возвести в любую другую степень. Сначала, пишем название функции, в скобках указываем число которое хотим возвести и через запятую степень, в которую хотим возвести число.
- program znaki;
- var
- a: integer;
- begin
- a:= 6;
- write( power(a, 3) );
- end.
- Вывод программы: 216
Следующее число
Функция SUCC возвращает следующее число или символ, относительно переменной. Если мы введем 10 то функция вернет 11, если введем 11 функция вернет 12 и тд.
- program znaki;
- var
- a: integer;
- begin
- a:= 6;
- write( succ(a) );
- end.
- Вывод программы: 7
Предыдущее число
Аналогично вышеописанной функции SUCC, функция PRED возвращает предыдущее число
- program znaki;
- var
- a: integer;
- begin
- a:= 6;
- write( pred(a) );
- end.
- Вывод программы: 5
Случайное число
Функция RANDOM возвращает случайное, рандомное число в диапазоне от нуля до введенного вами числа, введенное вами число не учитывается, так что если вы хотите например подобрать случайные числа от нуля до 10, то число 10 не будет включаться в диапазон, если же вы хотите, чтобы оно включалось, тогда вам нужен диапазон от нуля до 11, но в этом случае не будет включаться число 11 и тд.
- program znaki;
- var
- a: integer;
- begin
- a:= 100;
- write( random(a) );
- end.
- Вывод программы: 25 или любое другое число
Дробная часть числа
До этого мы работали с целыми числами теперь поработаем с вещественным типом данных. Чтобы вернуть дробную часть числа, нам потребуется функция FRAC.
- program znaki;
- var
- a: real;
- begin
- a:= 12.36;
- write( frac(a) );
- end.
- Вывод программы: 0.36
Целая часть числа
Теперь отделим от дробного числа целую часть в с помощью функции INT
- program znaki;
- var
- a: real;
- begin
- a:= 12.36;
- write( int(a) );
- end.
- Вывод программы: 12.00
Если функция INT возвращает вещественное число, то функция TRUNC возвращает целочисленную переменную
- program znaki;
- var
- a: real;
- begin
- a:= 12.36;
- write( trunc(a) );
- end.
- Вывод программы: 12
Округление числа
Если ты не знаешь как округлить число, в меньшую или в большую сторону, то тебе поможет функция ROUND
- program znaki;
- var
- a: real;
- begin
- a:= 12.56;
- write( round(a) );
- end.
- Вывод программы: 13
Заключение
На сегодня все, в следующей статье рассмотрим функцию DIV и MOD.
Всем спасибо.
Пока =)
Следующая статьяПредыдущая статья
Новая страница 1
Урок № 8
Тема: Встроенные математические функции языка Pascal. Правила записи математических выражений.
Вопросы темы:
Вариант 1 Вариант 2
Вариант 3 Вариант 4
Встроенные математические функции языка Pascal
Математическая запись | Запись на Pascal | Назначение |
cos x | cos(x) | Косинус x радиан |
sin x | sin(x) | Синус x радиан |
ex | exp(x) | Значение e в степени x |
[x] | trunc(x) | Целая часть числа x |
|x| | abs(x) | Модуль числа x |
x2 | sqr(x) | Квадрат числа x |
sqrt(x) | Квадратный корень из x | |
{x} | frac(x) | Дробная часть x |
arctg x | arctan(x) | Арктангенс числа x |
ln x | ln(x) | Натуральный логарифм x |
| Pi | Число П |
Возведение в степень (кроме возведения в квадрат и возведения в степень числа e) отсутствует. Для возведения в произвольную степень можно воспользоваться очевидным равенством: xy=ey ln x. Для возведения числа в натуральную степень можно написать собственную функцию. Например,
{Функция возведения числа X в натуральную степень N}
Function Stepen(X : Real; N : Integer) : Real;
Var I : Integer; St : Real;
Begin
St := 1;
For I := 1 To N Do St := St * X;
Stepen := St;
End;
Другой способ получить натуральное значение z=xy, где x, y — натуральные, это сделать так: Z := Round(Exp(Y * Ln(X))).
Примечание. Интересной является задача получения степени любого целого числа (за исключением нуля), если основание степени — неотрицательное целое, без использования развилки.
Одно из возможных решений : (–1)*Ord(Odd(Y)) * Exp(Y * Ln(X)) + Ord(Odd(Y+1)) * Exp(Y * Ln(X)).
Здесь Ord(K) — функция, возвращающая порядковый номер величины K в том или ином порядковом типе (в примере использовано свойство, что порядковый номер False равен 0, а порядковый номер True — 1).
Примеры записи математических выражений:
Математическая запись | Запись на школьном алгоритмическом языке |
x*y/z | |
x/(y*z) или x/y/z | |
(a**3+b**3)/(b*c) | |
(a[i+1]+b[i-1])/(2*x*y) | |
(-b+sqrt(b*b-4*a*c))/(2*a) | |
(x | 0.49*exp(a*a-b*b)+ln(cos(a*a))**3 |
x/(1+x*x/(3+(2*x)**3)) |
Как записываются арифметические выражения?
Арифметические выражения записываются по следующим правилам:
· Нельзя опускать знак умножения между сомножителями и ставить рядом два знака операций.
· Индексы элементов массивов записываются в квадратных (школьный АЯ, Pascal) или круглых (Basic) скобках.
· Для обозначения переменных используются буквы латинского алфавита.
· Операции выполняются в порядке старшинства: сначала вычисление функций, затем возведение в степень, потом умножение и деление и в последнюю очередь — сложение и вычитание.
· Операции одного старшинства выполняются слева направо. Например, a/b*c соответствует a/b*c. Однако, в школьном АЯ есть одно исключение из этого правила: операции возведения в степень выполняются справа налево.
Так, выражение 2**(3**2) в школьном АЯ вычисляется как 2**(3**2) = 512. В языке QBasic аналогичное выражение 232 вычислясляется как (23)2 = 64.
А в языке Pascal вообще не предусмотрена операция возведения в степень, в Pascal xy записывается как exp(y*ln(x)), а xyz как exp(exp(z*ln(y))*ln(x)).
Типичные ошибки в записи выражений:
Пропущен знак умножения между 5 и х Аргумент x функции sin x не заключен в скобки Не хватает закрывающей скобки |
Задания для работы
Задание 1
Запишите по правилам алгоритмического языка выражения:
a) | e) |
б) | ж) |
в) | з) |
г) | и) |
д) | к) |
Ответы:
Задание 2
Запишите в обычной математической форме арифметические выражения:
а)a/b**2;б)a+b/c+1;в)1/a*b/c;г)a**b**c/2;д)(a**b)**c/2;е)a/b/c/d*p*q;ж)x**y**z/a/b;з)4/3*3.14*r**3;и)b/sqrt(a*a+b);к)d*c/2/R+a**3; | л)5*arctg(x)-arctg(y)/4;м)lg(u*(1/3)+sqrt(v)+z);н)ln(y*(-sqrt(abs(x))));о)abs(x**(y/x)-(y/x)**(1/3));п)sqrt((x1-x2)**2+(y1-y2)**2);р)exp(abs(x-y))*(tg(z)**2+1)**x;c)lg(sqrt(exp(x-y))+x**abs(y)+z);т)sqrt(exp(a*x)*sin(x)**n)/cos(x)**2;у)sqrt(sin(arctg(u))**2+abs(cos(v)));ф)abs(cos(x)+cos(y))**(1+sin(y)**2); |
Ответы:
Логический операнд — это конструкция соответствующего языка программирования, которая задает правило для вычисления одного из двух возможных значений: True или False.
Чаще всего логические выражения используют в операторах присваивания или для записи того или иного условия. Составными частями логических выражений могут быть: логические значения (True, False); логические переменные; отношения.
Например, 1) Y:=True; 2) Z:=False; 3) LogPer:=A > B; 4) Log1:=(A = B) And (C , =,
Вариант 2.
1. . Преобразуйте выражения из линейной формы в арифметическую.
C=(b-w)/(a**2-2*b)-(w-b)/(a=b**2)+(b**3-a+w)/(a+b**2-w);
H=d**3-3*b-7.2*e*w+a**3*w*c;
2. Запишите арифметическое выражение в линейной форме.
Вариант 3.
1. Преобразуйте выражения из линейной формы в арифметическую.
W=(x/100.1+x/25)**2+a/(b-3.7*(b-3));
Z=(b-w)/(a**2-2*b)-(a+b**2-a+w)/(a+b**2-w);
2. Запишите арифметическое выражение в линейной форме.
Вариант 4.
1. Преобразуйте выражения из линейной формы в арифметическую.
B=9*a-(3*x)/z**2+(9*a+3*x)/(z**2);
X=42*a**2-(55.752*b)/28+a/(b-3.7(b-3);
2. Запишите арифметическое выражение в линейной форме.
Сайт управляется системой uCoz
Выражения Паскаль
Какую структуру имеют выражения Паскаль? Выражения Паскаль задают определенное правило, по которому вычисляется некоторое значение. В состав выражений входят:
- знаки операций
- константы
- указатели функций
- переменные
- скобки
Математические операции Паскаль:
Приведем стандартные математические операции в Паскале:
+ — сложение (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 уменьшается на единицу).