Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





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

Пример 2.6.
Стандартные функции с вещественными переменными

Program AllFunc;
var
А.В; real;
begin .
А: =2.0;
B:=Sqr(A); writeln('Sqr(2.0) = '.В);
B:=Abs(-А); writeln('Abs(-2.0)= '.В);
B:=Sqrt (A); {Вычисление квадратного корня }
writeln('Sqrt(2)='.В);
B:=Sin (A); { Вычисление синуса }
{Зададим вывод вещественного числа не в экспоненциальной, а в обычной форме. На экране под значение переменной "В" закажем 6 позиций. Из них 3 позиции выделим для цифр справа от десятичной точки}
writeln('Sin(2)='.В:6:3);
B:=Cos (А); { Вычисление косинуса }
writeln('Cos(2)=',В:б:3);
B:=Arctan (А); { Вычисление арктангенса }
writeln('Arctan(2)='.В);
B:=Ln(A); { Вычисление логарифма }
writeln('Ln(2)=',В);
В:=Ехр (А); { Возведение числа е в степень А }
wnteln('Exp(2)=',В);
B:=Pi; { Вычисление числа Пи }
Writeln('Pi=" .В)
end.

 

При запуске программа выведет на экран следующее:

Sqr(2.0)= 4.0000000000Е+00
Abs(-2.0)= 2.0000000000Е+00
Sqrt(2)= 1.4142135624Е+00
Sin(2)= 0.909
Cos(2)=-0.416
Arctan(2)= 1.1071487178E+00
Ln(2)= 6.9314718056E-01
Exp(2)= 7.3890560989E+00
Pi= 3.1415926536E+00

 

ЗАМЕЧАНИЕ
Вы, вероятно, заметили, что Паскаль содержит мало функций. Он не умеет вычислять даже те функици, которые вычисляет обычный инженерный калькулятор! Что же это за язык программирования, скажете вы! Ответ на это прост: Паскаль разрабатывался не для вычислений (как, например, Фортран), а для обучения.

 

Запись математических выражений

Имеющихся в Паскале функций достаточно для вычисления других, более сложных. Вот несколько примеров:
tg x = sin x/cos x,
ctg x = cos x/sin x,
logy x = ln x/ln y,
xy = ey ln x

Например, чтобы вычислить (2х + 3)1+cos x, мы напишем на Паскале:
ехр( (1+cos(х)) * ln(2*х+3) )

Обратите внимание на то, что при записи выражений на языке Паскаль нужно тщательно задумываться о приоритетах операций.
Например, выражение «x+1, деленное на 2x», записанное в виде х+1/2х, содержит сразу три ошибки.

Во-первых, приоритет операции деления выше, чем у сложения, поэтому для правильного вычисления числителя его надо взять в скобки: (х+1).
Во-вторых, Паскаль не понимает, что означает 2х. Это мы привыкли, что в математике операцию умножения в таких случаях опускают. Паскалю требуется, чтобы она была указана явно: (х+1)/2*х. Но даже это выражение все еще содержит ошибку. Дело в том, что умножение и деление имеют одинаковый приоритет и выполняются слева направо. Значит, при такой записи сначала выполнится деление, а потом результат будет умножен на х.

Нужно либо поставить знаменатель в скобки и написать (х+1)/(2*х), либо, для ленивых, поставить вместо умножения деление: (х+1)/2/х. Порядок вычисления в этом случае будет не такой, как требует условие, однако результат будет таким же: ведь поделить на 2х — это все равно, что поделить сначала на 2, а потом результат поделить на х.

ЗАПОМНИТЕ.
Аргументы функции всегда пишутся в скобках. То есть, если у функции нет аргументов (как у Pi, например), то скобки после ее имени не нужны. Если же аргументы есть, то после имени функции вы должны обязательно открыть скобку, перечислить аргументы и не забыть закрыть скобку.
Например, sin 2х в Паскале нужно записывать как sin(2*x).

 

Задание 2.8.
Напишите программу для вычисления дискриминанта квадратного уравнения. Коэффициенты задайте в программе через оператор присваивания.
Продумаем алгоритм решения данной задачи (рис. 2.6).
Запишите каждый шаг алгоритма на языке Паскаль.

 

Рис. 2.6. Алгоритм выполнения задания 2.8

 

Задание 2.9. Вычислите выражение:




 

Комментарии:

2011-01-10 ответил Анна

А почему не пишите в конце - как надо вычислять выражения - в смысле на Паскале. Это что домашнее задание? Все-равно должен быть ответ, а то сидишь, паришься.



2011-01-25 ответил Николай.

Ув. Анна! Всё очень прямо и умно излагается - я похожим образом учил Бейсику школьников - очень эффективно! Если же написать решения - большинство париться перестанут - возникнут разрывы в понимании - всё здание науки разрушится!



2011-02-05 ответил Эрик

Напишите пожалуйста, как решить задание 2.9 его же надо в Паскале решить, ведь так?



2011-03-23 ответил Иван

Почему в задании 2.9, при написании выражения, паскаль постоянно выдает ошибку 88 и указывает на место между арктанг. и скобкой?



2011-04-24 ответил Владимир

У меня получилось решить задание 2,9 ответ 7,344643,,,,,,, и т.д. Я думаю это верный ответ



2011-09-24 ответил Ляйсан

А у меня получилось 7.34236637704112



2011-10-02 ответил Иван

7.34236637704112



2013-10-15 ответил Саша

7.34236637704112



2013-11-14 ответил Просто Я

123



2013-11-14 ответил Просто Я

Ой сорри Ничайно



2013-11-14 ответил Виталий

Формула вычисления задания 2.9 должна так выглядеть: d:=Sqrt(Sqr(Arctan(Sin(a/b))+c))? А то у меня значение выражения равно 54.1586



2015-11-02 ответил эльдар

у меня почему то так: d:=sqrt(sqr(arctan(sin(a/b)+c))); 1.55234610732824



2015-11-02 ответил эльдар

ошибися. вот так: d:=sqrt(sqr(arctan(sin(a/b)))+c);



2016-01-18 ответил snap

7.34236637704112 d:=sqrt(sqr(arctan(sin(a/b)))+c);



2016-08-24 ответил Роман

А мне кажется правильная формула: y:= sqrt(sqr(arctan)*(sin*(3.15/6.1))+53.7) Ответ: 7.3280283842245



2016-10-14 ответил Михмих

7.34236637704112 вспомнить бы еще что такое арктангенс в квадрате



2017-01-17 ответил Sazon

Как решить задание 2.8, самый главный вопрос еще, в программирование математика очень нужна? Дело в том что все как то в моей тупой башке не укладывается. все эти вычисления косинусов, дискриминантов((((




Добавить свой комментарий:


Введите значение:
 









   
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru