Как составить программу для вычисления квадратного корня в паскале

Паскаль - Урок 3: операторы квадрата, корня и модуля

В прошлом уроке мы рассматривали операторы сложения, вычитания, умножения и деления. Сегодня я предлагаю рассмотреть операторы квадрата, корня и модуля.

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;

Как ее заюзать, думаю, понятно.

Раздел: Стандартные функции Паскаля

Основы программирования 2.0

Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать.
Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь.
Подробнее…

Функция 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

Как стать программистом 2.0

Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки…
Подробнее…

Помощь в технических вопросах

Помощь в технических вопросах

Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение – ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации.
Подробнее…

Навигация

Главная


Скачать Turbo Pascal
Скачать справочник
Turbo Pascal Онлайн


Форум |
Группа ВК |
Чат


Лекции
Алфавитный указатель
Содержание справки
Язык Turbo Pascal
Стандартные модули
Функции и процедуры
Директивы компилятора
Примеры программ
Меню Turbo Pascal


Ада-2020. Современный Паскаль
Адское программирование
Статьи по Ада-2020


Отзывы и идеи


Об этом сайте

Чат

Войти

Форум

Загрузка…

Язык:
Русский
English

Sqrt.png

 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, они «невидимы» из других процедур.

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