Как в паскале найти степень от числа

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

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

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

Функция Power в Паскале (и многих других языках программирования) выполняет возведение числа в степень.

Синтаксис для вещественных чисел:


function Power(Base: Double; Expon: Double) : Double;

Синтаксис для целых чисел:


function Power(Base: LongInt; Expon: LongInt) : LongInt;

Эта функция возводит число Base в степень Expon и возвращает результат. В реальности функция возвращает результат выражения:


Exp(Expon * Ln(Base))

ВАЖНО!

Всё, что сказано выше, взято из официальной документации
FreePascal. Однако документация иногда расходится с действительностью. Во всяком случае, мой компилятор не соответствует документации. А именно:

  • В документации сказано, что функция объявлена в модуле SYSTEM. Однако без подключения модуля MATH компилятор выдаёт ошибку. Из этого следует, что на самом деле функция объявлена в модуле MATH.
  • В документации приведён синтаксис как для целых, так и для вещественных чисел. Однако на самом деле функция работает только с вещественными числами. При попытке использовать целые числа компилятор также выдаёт ошибку.
  • Возможно, в более новых версиях эти проблемы уже исправлены. Но у меня было именно так (версия FPC 3.0.0).

Пример использования функции Power

Пример приведён ниже:

program funcpower;

uses Math;        

var x, y, z : single;

begin
  x := 2;
  y := 3;
  z := Power(x, y);   //Z = X в степени Y
  WriteLn(z:0:2);  

  ReadLn;
end.

Здесь мы число 2 (переменная Х) возводим в степень 3 (переменная Y), то есть вычисляем следующую формулу:


Z = XY

Обратите внимание на подключенный модуль MATH.

Эта статья входит в раздел о подпрограммах модуля SYSTEM. И по идее описания функции Power здесь не должно быть. Но, так как в документации сказано, что функция Power объявлена в модуле SYSTEM, я решил включить данную статью именно в этот раздел (я же не виноват, что в документации косяк))).

Возведение в степень в Паскале

Возведение в степень в Паскале можно выполнить и без какой-то специальной функции,
используя функцию вычисления натурального логарифма
и функцию вычисления экспоненты.
О том, как это сделать, я рассказал здесь.

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

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


Exp(Expon * Ln(Base))

Однако, если мы будем делать именно так, эта формула будет неправильно работать с
отрицательными числами, потому что в документации сказано, что функция Ln работает только с положительными числами.

Так что функция Power в реальности несколько сложнее, чем приведённая выше формула.

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

Возведение в степень

Также напомню, что любое число в нулевой степени равно 1, а ноль в любой степени равен 0 (кроме нуля в нулевой — ноль в нулевой степени не определён, но мы будем возвращать в таких случаях ноль, хотя функция Power возвращает 1).

А теперь наш аналог функции Power:

function AVPower(Base: Double; Expon: Double) : Double;
var m     : byte;
    i     : integer;
    Res   : Double;
begin
  m := 0;
  if Expon < 0 then m := 1              //Отрицательная степень
  else if Expon = 0 then m := 2         //Нулевая степень
       else m := 3;                     //Положительная степень
  if Base < 0 then m := 10 + m          //Отрицательное число
  else if Base = 0 then m := 20 + m     //Число равно 0
       else m := 30 + m;                //Положительное число
  case m of
  11  :   //Отрицательное число, отрицательная степень
    begin //Если Expon - не целое число, то получаются комплексные числа
      Res := 1 / Exp(Abs(Expon) * Ln(Abs(Base)));
      i := Round(Expon);
      if Odd(i) then Res := -1 * Res;
    end;
  12, 32  :   //Нулевая степень
    Res := 1;
  13  :   //Отрицательное число, положительная степень
    begin //Если Expon - не целое число, то получаются комплексные числа
      Res := Exp(Expon * Ln(Abs(Base)));
      i := Round(Expon);
      if Odd(i) then Res := -1 * Res;
    end;
  21..23  :   //Число равно нулю
    Res := 0;
  31  :       //Положительное число, отрицательная степень
    Res := 1 / Exp(Abs(Expon) * Ln(Base));
  33  :       //Положительное число, положительная степень
    Res := Exp(Expon * Ln(Base));
  end;     

  AVPower := Res;
end;

Я сознательно немного всё усложнил, чтобы вас запутать )))

Пример использования функций Power и её аналога в программе:

x := 2;
y := 3;
z := Power(x, y);     //Z = X в степени Y
WriteLn(z:0:2); 

z := AVPower(x, y);   //Z = X в степени Y
WriteLn(z:0:2);

Здесь есть один подвох — если вы попытаетесь возвести отрицательное число в не целую степень, например, так:

-23,5

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

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

В реальных программах подобные ситуации надо дополнительно обрабатывать (хотя бы предупреждать пользователя о том, что при отрицательном основании и не целой степени функция вернёт неправильный результат).

Ещё в моей функции используется функция Odd, о которой я ещё не рассказывал. Вкратце скажу, что она определяет, является ли число чётным. Более подробно о ней расскажу в отдельной статье.

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

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

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

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

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

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

Мы уже знаем, какие существуют функции для целых переменных. Это – нахождение модуля числа (Функция Abc), а также возведение числа в квадрат (Функция Sqr). В этом уроке мы рассмотрим функции, применяемые к дробным числам. Это функции Sqr — квадрат числа, Abs — модуль числа, Sqrt — корень числа, а также известные всем математические функции Sin, Cos, Arctan, Ln, Exp, Pi.

Program number12;
uses crt;
var A, B:real;
begin
clrscr;
A:=2.0;
B:=Sqr(A);
writeln('Sqr(2.0)=',B:4:2);
B:=Abs(-A);
writeln('Abs(-2.0)=',B:4:2);
B:=Sqrt(A);
writeln ('Sqrt(2)=',B:4:2);
B:=Sin(A);
writeln('Sin(2)=',B:6:3);
B:=Cos(A);
writeln('Cos(2)=',B:6:3);
B:=Arctan(A);
writeln('Arctan(2)=',B:6:3);
B:=Ln(A);
writeln('Ln(2)=',B:10:9);
B:=Exp (A);
writeln('Exp (2)=',B:10:9);
B:=Pi;
writeln('Pi=',B:10:9);
readln
end.

В строке №7 записывается функция Sqr. Это функция возведения числа в квадрат.

В строке №9 записывается операция нахождения модуля числа.
Функции Sqr и Abs мы разбирали в уроке Abs, Sqr в Pascal.

В строке №11 записывается функция Sqrt. Данная функция подсчитывает корень числа, стоящего в скобках после слова Sqrt. В нашем случае функция Sqrt будет считать корень из числа «2».

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

Строка №15. Функция Cos подсчитывает косинус числа, стоящего в скобках после функции.

Строка №17. Функция Arctan вычисляет арктангенс числа, стоящего в скобках после записи функции.

Строка №19. Функция Ln подсчитывает логарифм числа, стоящего в скобках после записи функции.

Строка №21. Функция Exp возводит число «e» (экспонента — 2.72…) в степень, значение которой указывается в скобках после слова Exp. Т.е. в нашем случае число «e» будет возведено в степень «2».

Строка №23. Переменной «B» будет присвоено значение числа «?».

Funkcii Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi

Funkcii Sqr, Abs, Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi.

Дополнение к материалу.

  • Функции Sqrt, Sin, Cos, Arctan, Ln, Exp, Pi определены только для вещественных (дробных) чисел.
  • В Паскале не существует операции возведения в степень. Есть только операция возведения числа в квадрат (Sqr). Чтобы возвести число в степень используют операцию умножения. Например, чтобы возвести число 3 в 5-ю степень необходимо записать 3*3*3*3*3

Возведение в степень

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

{Пример
демонстрирует возведение числа Xв степеньN}

programStepen;

var

X,
Res: Real;

N,
I: Integer;

begin

{***
Ввод данных ***}

Write(‘Введите
значения X и N:’);

Readln(X,
N);

{***
Возведение в степень ***}

Res:= 1; {Присваиваем начальное значение
переменнойRes}

forI:= 1toNdo {Цикл возведения в степень}

Res
:= Res * X;

{***
Вывод результата на экран ***}

Writeln(‘X^N=’,
Res:5:2);

end.

Цикл возведения
в степень целесообразно применять, если
значение степени заранее неизвестно.

Если требуется
возвести число в квадрат или в куб, то
проще поступить следующим образом: Y
:=
X * XилиY := X
*
X * X.

Для возведения
числа «–1» в целую, положительную степень
рекомендуется следующий код:

ifOdd(N)then
{Если число нечетное… }

Y
:= –1

else{Иначе (если число четное)… }

Y:= 1;

Odd– это функция, возвращающая логический
результатTrue, если
аргумент является нечетным числом,
иначе возвращаетFalse.

3.6. Тип данных «массив» – объявление и использование

Массив —
упорядоченный набор данных для хранения
множества элементов одного типа,
идентифицируемых с помощью одного или
нескольких индексов. Количество
используемых индексов массива может
быть различным. Массивы с одним индексом
называют одномерными, с двумя — двумерными
и т.д. Одномерный массив соответствует
вектору в математике, двумерный —
матрице. Массивы с числом измерений >
2встречаются редко.

Формат объявления
переменных типа «массив» представлен
ниже:

var

<список
переменных> = array[<индексы>]of<тип данных>;

где <список
переменных>
– наименование одной
или нескольких переменных (через
запятую);

<индексы>– описание диапазона индексов для
каждого измерения массива, например:

— [1..10] –
соответствует одномерному массиву
(вектору), первый элемент которого имеет
индекс «1», а последний «10» (всего 10
элементов);

— [0..4] – соответствует
одномерному массиву, первый элемент
которого имеет индекс «0», а последний
«4» (всего 5 элементов);

— [1..5, 1..4] –
соответствует двухмерному массиву
(матрице), состоящему из 5 строк (индексация
от 1 до 5) и 4 столбцов (индексация от 1 до
4);

<тип данных>– любой тип данных, известный компиляторуPascal, например,Integer,Byte,Real,Boolean,Char,string, а также типы данных,
объявленные программистом.

Ниже приведены
примеры объявления переменных типа
«массив»:

{2
вектора из 10 элементов типа
Integer.
Индексация начинается с «1»}

Vect1,
Vect2: array[1..10]
of
Integer;

{Матрица
вещественных чисел 8 х 6. Индексация
начинается с «0»}

Matr:array[0..7, 0..5]ofReal;

{Список
из 20 строк.
Индексация начинается с «1»}

StrList:
array[1..20]
of string;

Во многих случаях
более удобным является однократное
объявление типа данных «массив» в начале
программы (в секции type).
Объявленный таким способом тип данных
в дальнейшем можно использовать при
описании переменных. Данный способ
имеет следующие преимущества:

— при необходимости
внесения изменений в объявление массива
достаточно это сделать в одном месте;

— переменные,
объявленные в секции varс использованием отдельного типа,
являются совместимыми, т.е. между ними
допускается операция присвоения «:=»;

— при использовании
в программе процедур и функций у
программиста появляется возможность
объявления параметров процедуры, имеющих
тип «массив».

Ниже представлен
пример объявления нового типа данных
«массив», а также переменных этого типа:

type

{Объявление
нового типа данных «матрица»}

TMatrix=array[1..10, 1..20]ofReal;

var

{Объявление
переменных типа
TMatrix}

Matrix1,
Matrix2, Matrix3: TMatrix;

…………………………………

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

{Установка
нового значения 3-го элемента вектора}

Vect[3]
:= 3.45;{Установка заданного числового
значения}

Vect[3]
:=Random;{Установка
случайного значения}

Readln(Vect[3]);{Значение вводится пользователем с
клавиатуры}

{Чтение
2-го элемента вектора}

Value:=Vect[2];{Присвоение в
переменную Value}

Writeln(Vect[2]);{Вывод на экран}

{Вычисление
суммы первых трех элементов}

Summa:=Vect[1] +Vect[2]
+Vect[3];

Ниже приведены
примеры чтения и записи элементов
двухмерного массива (матрицы):

{Установка
заданного значения элемента матрицы с
координатами 4, 3}

{индекс
4 – это номер строки матрицы, 3 – номер
столбца матрицы}

Matrix[4,
3] := 123.456;

Readln(Matrix[2,
4]);{Ввод элемента (2, 4) с клавиатуры}

Writeln(Matrix[I,J]);{Вывод элемента (I, J)
на экран}

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

for
I := 1 to
10 do
{цикл
по I от
1
до 10}

Vect[I]
:=Random;{I-му элементу
присваивается случайное число}

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

programFindMaxElement;

const
{Объявление
констант}

Rows
= 5; {Число строк матрицы}

Cols
= 4; {Число столбцов матрицы}

var

{Объявление
массива размером Rows x Cols}

Mas:
array[1..Rows,
1..Cols] of
Real;

I,
J: Integer; {Объявление переменных цикла}

MaxValue:
Real; {Максимальное значение}

MaxRowIndex:
Integer; {Номер строки максимального
значения}

MaxColIndex:
Integer; {Номер столбца максимального
значения}

begin

{Цикл
заполнения массива и вывода элементов
на экран}

forI := 1toRowsdo{Цикл по I (перебор
строк матрицы)}

begin{можно было обойтись и без этого
begin..end }

forJ := 1toColsdo{Цикл по J (перебор
столбцов матрицы)}

begin{а этот begin..end требуется обязательно}

{Присваиваем
элементу (I, J) случайное значение}

Mas[I,
J] := Random;

{Печатаем
значение элемента (все — на одной строке)}

Write(Mas[I,
J]:8:2, ‘ ‘);

ifJ = Colsthen{Если это последний столбец,
}

Writeln;
{то осуществляем перевод строки}

end;

end;{Данный begin..end здесь — для улучшения
читабельности кода}

{Перед
началом поиска максимального значения
переменная

MaxValue
уже должна иметь любое значение, но это
значение

не
должно быть больше, чем элементы матрицы.
Поэтому

достаточно
взять в качестве первоначального
значения

любой
элемент матрицы Mas, например самый
первый}

MaxValue
:= Mas[1, 1]; {Запоминаем первый элемент}

MaxRowIndex
:= 1; {Запоминаем номер строки 1-го элемента}

MaxColIndex
:= 1; {Запоминаем номер столбца 1-го
элемента}

{Цикл
поиска максимального элемента}

forI := 1toRowsdo{Цикл по I (перебор
строк матрицы)}

forJ := 1toColsdo{Цикл по J (перебор
столбцов матрицы)}

begin

{Если
текущий элемент (I, J) больше, чем MaxValue,

то
записываем этот элемент в MaxValue и сохраняем
его координаты}

if
Mas[I, J] > MaxValue then

begin

MaxValue
:= Mas[I, J];

MaxRowIndex
:= I;

MaxColIndex
:= J;

end;

end;

{Выводим
найденные значения на экран}

Writeln(‘Max
value=’, MaxValue:8:2, ‘;
Row=’,

MaxRowIndex,
‘; Col=’,
MaxColIndex);

Readln;

end.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]

  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #
  • #

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

Содержание:

  • Стандартные функции языка Pascal
    • Арифметические функции (основные)
    • Функции преобразования типов
  • Пользовательские функции 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
  • 1

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

  • параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
  • параметры-переменные в паскале

  • тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
  • тип функции

  • Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
  • Внутри функции можно объявлять и использовать локальные переменные:
  • локальные переменные в функции

  • значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
  • результат функции

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

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

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

Решение:

пример функции в паскале

Вызов функции:
вызов функции в паскале


PascalABC.NET:

Правила описания функции:

1. Мы должны написать тип значения, которое возвращает функция.
2. Переменная Result хранит результат функции.

function f(x: real): real;
begin
  Result := x * x + 1;
end;

Вызов функции стоит в выражении:

// основная программа
begin
 var x := 5;
 var r := Sqrt(x) + f(x);
end.

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

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

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

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

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

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

Функция суммы двух чисел на паскале

✍ Решение:

1
2
3
4
5
6
7
8
9
10
11
12
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

Пример: Составить программу с функцией для вычисления факториала числа.

Показать решение:

Pascal PascalABC.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
var x:integer;
function fact(a:integer):integer;
var i: integer;
begin
  if a<=1 then begin 
        fact:=1;exit;
  end;
  result:=2;
  for i:=3 to a do
     result:=result*i;
  fact:=result;
end;
begin
 writeln('число:');
 readln(x);
 writeln(fact(x));
end.
1
2
3
4
5
6
7
8
9
10
function Fact(n: integer): integer;
begin
  Result := 1;
  for var i:=1 to n do
    Result *= i
end;
begin
 var x:= readInteger('число:');
 println(x,'! = ',fact(x));
end.

В рассмотренном примере функция имеет один параметр — a. Вычисляемое функцией значение имеет целочисленный тип, это указывается в заголовке функции (строка 2). В теле функции в цикле for вычисляется факториал числа. Результат вычисления присваивается имени функции (строка 9). В теле программы для вывода результата функции она вызывается в операторе writeln (строка 14), который и выводит результат на экран.


PascalABC.NET:

Короткое определение функции:

function Sq(x: real) := x * x + 1;
 
begin
  var x := 10;
  var r := Sq(x) + Sq(2)
end.

Короткая запись

Если тело функции состоит только из одного оператора, PascalABC.NET позволяет использовать при описании сокращенный синтаксис, без ключевых слов begin и end:

1
2
3
4
5
6
##
function SumXY(x,y: real) := x + y;
// основная программа
begin
  Print (SumXY(9,2)); //11
end;

Задача function 2. Составить функцию, которая определяет сумму всех чисел от 1 до N и привести пример ее использования. N — параметр функции.

Пример:

Введите число:
100
сумма = 5050

Задача function 3. Составить функцию, которая определяет, сколько зерен попросил положить на N-ую клетку изобретатель шахмат (на 1-ую – 1 зерно, на 2-ую – 2 зерна (в два раза больше предыдущего результата), на 3-ю – 4 зерна, на 4-ю – 8 зерен…). N — параметр функции.

Пример:

Введите номер клетки:
28
На 28-ой клетке 134217728 зерен.

Задача function 4. Описать функцию IsDigit(A), которая возвращает истину, если целое число A представляет цифру (то есть A лежит в диапазоне 0–9). В основной программе вывести значение этой функции для N (N ≥ 0) данных чисел.

  
Пример:

Введите N:
3
Введите число:
2 >>> true
Введите число:
34 >>> false
Введите число:
4 >>> true

Задача function 5. Вычисление степени числа с помощью функции на языке Паскаль.

 
Пример:

Введите число:
3
Введите степень числа:
2
Результат 3^2 = 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 
___
Введите основание треугольника:
...
Введите высоту треугольника:
...
Периметр треугольника = ... 
___
Введите основание треугольника:
...
Введите высоту треугольника:
...
Периметр треугольника = ... 

Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:

проверь себя

Понравилась статья? Поделить с друзьями:
  • Как найти песню небо голубое солнце золотое
  • Как найти тело баржи
  • Как найти mi fit через приложение
  • В приложении сервисы google play произошла ошибка как исправить андроид xiaomi redmi
  • Как найти российского поставщика