В прошлом уроке мы рассматривали операторы сложения, вычитания, умножения и деления. Сегодня я предлагаю рассмотреть операторы квадрата, корня и модуля.
1. Оператор квадрата
Этот оператор возводит в квадрат заданное ему число или переменную. Обозначается, как “sqr” без кавычек. В программе пишется как sqr(a), где a – любая другая переменная или число.
Пример:
var a, c:integer;
begin
writeln ('Введите число');
readln (a);
c:=sqr(a);
writeln ('Квадрат равен ',c);
end.
2. Оператор корня
Этот оператор находит корень из переменной или числа. Обозначается, как “sqrt” , без кавычек. В программе пишется как sqrt(a), где a – любая другая переменная или число.
Пример:
var a, c:real;
begin
writeln ('Введите число');
readln (a);
c:=sqrt(a);
writeln ('Корень равен ',c);
end.
3. Оператор модуля
Данный оператор переводит число из обычного в число по модулю, то есть меняет его знак всегда на положительный. Обозначается, как “abs” без кавычек, в программе пишется, как abs(a), где a – любое число или другая переменная.
Пример:
var a, c:real;
begin
writeln ('Введите число');
readln (a);
c:=abs(a);
writeln ('Модуль равен ',c);
end.
На сегодня урок окончен, с другими уроками вы можете познакомиться в категории “Уроки паскаль”
Дата: 2011-12-18 19:47:31 Просмотров: 139674
Теги: Паскаль уроки Pascal
program geron_sqrt;
function geron(x: Real): Extended;
const
eps = 1.0E-100;
var
y, z: Real;
begin
y := 1.0;
{Цикл while выполняется до тех пор. пока, не будет достигнута
заданная точность вычисления квадратного корня}
while Abs(z – у) >= eps do
begin
z := у;
y := (y + x / у) / 2;
end;
geron := у;
end;
begin
WriteLn( ‘Алгоритм Герона для вычисления квадратного корня из двойки: ‘);
WriteLn(‘Geron(2.0) =’, geron(2.0));
WriteLn(‘Sqrt(2.0) =’, Sqrt(2.0));
Write(‘Нажмите <enter>’);
ReadLn;
end.
Никита ПодгорныйПрофи (717)
13 лет назад
Извените А нет прсто формулы вычисления кв. корня нет не вычисляется (корней нет ———————Кв. Корень/———да вычисляется
Степан Дмитриев
Знаток
(307)
С процедурами/функциями работать умеешь? Вот тебе готовая функция:
function Sqroot1( x: real) : real;
var
sp,i,inv : integer;
a,b : real;
begin
sp := 0;
inv := 0;
if(x<=0.F) then
Sqroot := 0.F;
{ argument less than 1 : invert it }
if(x<1.F) then
begin
x:=1.F/x;inv:=1;
end;
{ process series of division by 16 until argument is <16 }
while(x>16.F) do begin
sp := sp + 1;
x := x / 16.F;
end;
{ initial approximation }
a:=2.F;
{ Newtonian algorithm }
for i := ITNUM downto 1 do
begin
b:=x/a;
a := a+b;
a:=a*0.5F;
end;
{ multiply result by 4 : as much times as divisions by 16 took place }
while(sp>0) do begin
sp–;
a:=a*4.F;
end;
{ invert result for inverted argument }
if(inv) then
a:=1.F/a;
Sqroot1 := a;
end;
Как ее заюзать, думаю, понятно.
Раздел: Стандартные функции Паскаля
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее… |
Функция Sqrt в Паскале вычисляет квадратный корень числа. Синтаксис функции следующий:
function Sqrt(Х : ValReal) : ValReal;
Эта функция возвращает квадратный корень числа, переданного через параметр Х. Число Х должно быть положительным, иначе произойдёт ошибка во время выполнения программы (так написано в документации, но в моей версии компилятора ошибки не происходит, а функция в случае отрицательного параметра возвращает значение NaN).
Функция Sqr в Паскале вычисляет квадрат числа. Синтаксис функции для разных типов приведён ниже:
function Sqr(Х : LongInt) : LongInt; function Sqr(Х : QWord) : QWord; function Sqr(Х : ValReal) : ValReal;
Эта функция возвращает результат вычисления квадрата числа, переданного через параметр. То есть Sqr = х * х.
О типе ValReal я рассказывал здесь.
Квадрат числа
Здесь всё крайне просто. Квадрат числа Х равен произведению Х на Х. То есть функция Sqr на первый взгляд кажется бесполезной. Потому что во многих случаях проще написать так:
Х := Х * Х
чем
Х := Sqr(X)
Единственный случай, когда использование функции Sqr является обоснованным с точки
зрения упрощения кода, это когда в качестве параметра передаётся вещественное число
(константа) с большим количеством знаков после запятой, или очень большое целое число, или сложное выражение. Например:
Х := Sqr(5.3456753322)
будет написать проще, чем
Х := 5.3456753322 * 5.3456753322
Также возведение в квадрат числа в Паскале сложного выражения тоже будет проще, если использовать функцию Sqr:
X := Sqr(Y + 100 * Z / X)
Вычисление квадратного корня
Когда мы изучали функции вычисления экспоненты и
натурального логарифма, то мы узнали, что с их помощью можно возвести число в любую степень. То есть вычислить, в том числе, и корень любой степени.
Однако использование этих функций всё-таки немного сложновато. Поэтому для вычисления квадратного корня в Паскале имеется специальная функция (потому что квадратный корень приходится вычислять намного чаще, чем, например, корень n-й степени).
Эту функцию вы уже знаете – это функция Sqrt.
А здесь я напомню что такое квадратный корень для тех, кто подзабыл математику.
Итак, квадратный корень из числа А (корень 2-й степени) – это решение уравнения:
Х2 = А
То есть квадратный корень из числа А, это число Х, которое при возведении в квадрат даёт число А.
То есть если
Х * Х = √А
то
Х = А
ВАЖНО!
Число А может быть только положительным числом. Извлечение корня из отрицательного числа тоже возможно, но это уже будут комплексные числа.
|
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… |
|
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение – ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. |
Навигация
Главная
Скачать Turbo Pascal
Скачать справочник
Turbo Pascal Онлайн
Форум |
Группа ВК |
Чат
Лекции
Алфавитный указатель
Содержание справки
Язык Turbo Pascal
Стандартные модули
Функции и процедуры
Директивы компилятора
Примеры программ
Меню Turbo Pascal
Ада-2020. Современный Паскаль
Адское программирование
Статьи по Ада-2020
Отзывы и идеи
Об этом сайте
Чат
Войти
Форум
Загрузка…
Язык:
Русский
English
Sqrt (функция)
Возвращает квадратный корень аргумента.
Объявление
Function Sqrt(X : Real) : Real;
Режим
Windows, Real, Protected
Замечания
X – выражение вещественного типа. Результатом будет квадратный корень из X.
См. также
Лекция №2.2: Типы данных и операции
Sqr
Кубический корень
Квадратный корень в Wikipedia
Пример
Язык:
Русский
English
{Sqr.PAS}
{ Пример программы для функций Sqr и Sqrt }
begin
WriteLn(‘5 в квадрате равно ‘, Sqr(5));
WriteLn(‘Квадратный корень из 2-х равен ‘, Sqrt(2.0));
end.
Written on 08 Января 2009. Posted in Pascal
Страница 21 из 29
Вычисление квадратного корня из числа методом Герона
В программе geron_sqrt, предназначенной для вычисления квадратного корня из числа (в данном примере из двойки) методом Герона, используется подпрограмма-функция дегоп. Метод Герона — это метод последовательных приближений. Если задано число а и из него требуется приближенно вычислить квадратный корень, то вначале выбирается произвольное начальное приближение x0. Затем задается точность вычислений е > 0 и строится последовательность хn+1 = (хn + а / хn) / 2. Вычисления прекращаются при выполнении условия |xn+1 – хn| < е.
Алгоритму Герона можно придать следующий геометрический смысл (рис. 1.2). Изобразим график функции у = х2 и проведем прямую у = а. Если в точке (хn, хn2) провести касательную, то ее пересечение с прямой у – а даст значение хn+1. Обозначая (дельта)х = хn – xn+1 и (дельта)у = хn2 – а, получаем (дельта)y / (дельта)х – tg а. По формулам дифференциального исчисления tg а = dy / dх = 2хn, поэтому (хn2 – а)/(хn – хn+1) = 2хn, откуда и получается формула алгоритма Герона.
Рис. 1.2. Геометрическая иллюстрация алгоритма Герона
Цикл while в подпрограмме-функции дегоп выполняется до тех пор, пока не нарушится заданное в нем условие (неравенство). Невозможно заранее предугадать, когда это произойдет, и, следовательно, в такой ситуации цикл for был бы бесполезен. Подпрограмма дегоп вызывается в операторе WriteLn. Такой вызов функции в операторе вывода допускается. Во втором операторе вывода содержится обращение к встроенной функции вычисления квадратного корня. Таким образом, можно сравнить оба результата.
Листинг 1.9. Вычисление квадратного корня методом Герона
{$N+}
program geron_sqrt;function geron(x: Real): Extended;
const
eps = 1.0E-100;
var
y, z: Real;
begin
y := 1.0;
{Цикл while выполняется до тех пор. пока, не будет достигнута
заданная точность вычисления квадратного корня}
while Abs(z - у) >= eps do
begin
z := у;
y := (y + x / у) / 2;
end;
geron := у;
end;begin
WriteLn( 'Алгоритм Герона для вычисления квадратного корня из двойки:');
WriteLn('Geron(2.0) =', geron(2.0));
WriteLn('Sqrt(2.0) =', Sqrt(2.0));
Write('Нажмите <Enter>');
ReadLn;
end.
В подпрограмме-функции geron в условии оператора цикла while…do… используется функция вычисления абсолютного значения Abs. Здесь же мы встречаемся с отношением нестрогого неравенства. При программировании логических отношений в Паскале используются четыре специальных символа для обозначения строгих и нестрогих неравенств: <, >, <= и >=. Отношение неравенства программируется при помощи пары символов <>.
ПРИМЕЧАНИЕ Функция geron имеет свой собственный набор описаний — константы eps и переменных у, z. Эти величины локальны по отношению к geron, они «невидимы» из других процедур.