Раздел: Стандартные функции Паскаля
Основы программирования Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее… |
Функция Int вычисляет целую часть значения с плавающей точкой. Синтаксис:
function Int(X: ValReal) : ValReal;
Функция возвращает целую часть вещественного числа Х. Тип данных возвращаемого значения является также вещественным числом.
О типе ValReal я рассказывал здесь.
Функция Frac возвращает дробную часть числа с плавающей точкой. Синтаксис:
function Frac(X: ValReal) : ValReal;
Целая часть числа
Как известно, вещественное число имеет целую часть и дробную часть. Например, число 3,14 можно произнести словами как “три целых, четырнадцать сотых”.
Соответственно, целая часть числа 3,14 – это число 3.
И, как вы теперь уже знаете, получить целую часть числа в Паскале можно с помощью функции Int:
x := Int(3.14);
Дробная часть числа
Если рассмотреть всё то же число 3,14, то его дробной частью будет число 0,14. То есть вещественное число состоит из двух частей, сумма которых и является вещественным числом:
3,14 = 3 + 0,14
Получить дробную часть числа в Паскале можно с помощью функции Frac:
y := Frac(3.14);
Пример программы, которая использует функции Int и Frac, приведён ниже:
program funcintfrac; {$mode objfpc}{$H+} var x, y : real; begin x := Int(3.14); //x = 3.00 WriteLn(x:0:2); y := Frac(3.14); //y = 0.14 WriteLn(y:0:2); ReadLn; end.
ВНИМАНИЕ!
Функции Int и Frac возвращают значение вещественного типа! Если же вы хотите далее
в своей программе работать с целой частью числа как с целочисленным значением,
то вам придётся преобразовать вещественный тип в целый. Сделать это можно, например,
с помощью уже известной нам функции Round:
var x, y : real; z : integer; begin x := Int(3.14); //x = 3.00 z := Round(x); //z = 3 WriteLn(z); ReadLn; end.
|
Как стать программистом 2.0
Эта книга для тех, кто хочет стать программистом. На самом деле хочет, а не просто мечтает. И хочет именно стать программистом с большой буквы, а не просто научиться кулебякать какие-то примитивные программки… |
|
Помощь в технических вопросах
Помощь студентам. Курсовые, дипломы, чертежи (КОМПАС), задачи по программированию: Pascal/Delphi/Lazarus; С/С++; Ассемблер; языки программирования ПЛК; JavaScript; VBScript; Fortran; Python и др. Разработка (доработка) ПО ПЛК (предпочтение – ОВЕН, CoDeSys 2 и 3), а также программирование панелей оператора, программируемых реле и других приборов систем автоматизации. |
Как в языке Pascal выводить дробную часть числа?
Например мне надо записать на Pascal следующие числа (в дробной части указать до 4 цифр):
- 6,38
- 5!
Deleted
3611 золотой знак5 серебряных знаков13 бронзовых знаков
задан 11 авг 2014 в 16:37
mango44mango44
1833 серебряных знака16 бронзовых знаков
1 ответ
Format('%.4f', [x]); // дробное число с точностью до 4-го знака
ответ дан 11 авг 2014 в 18:50
kot-da-vincikot-da-vinci
3,6102 золотых знака18 серебряных знаков32 бронзовых знака
3
На занятии будет объяснен алгоритм работы с функциями на Паскале, рассмотрены стандартные функции. Будут разобраны примеры использования функций с параметрами и без параметров.
Содержание:
- Стандартные функции языка 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
- описание формальных параметров (тех, значения которых передаются из основной программы в функцию):
- параметры-переменные — параметры, значения которых становятся доступны и в основной программе (возвращаются в программу)
- тип возвращаемого функцией результата описывается в конце заголовка функции через двоеточие:
- Вызывается функция в теле основной программы, только если ее имя фигурирует в каком-либо выражении. В отличие от процедуры, которая вызывается отдельно.
- Внутри функции можно объявлять и использовать локальные переменные:
- значение, которое является результатом, записывается в переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
Рассмотрим синтаксис:
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 | ||||
|
|
В рассмотренном примере функция имеет один параметр — 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 ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ... ___ Введите основание треугольника: ... Введите высоту треугольника: ... Периметр треугольника = ...
Потренируйтесь в решении задач по теме, щелкнув по пиктограмме:
Как написать программу нахождения дроби от числа на языке Паскаль?
%Maks%
Профи
(824),
закрыт
5 лет назад
Дополнен 5 лет назад
Не сраными ссылками пожалуйста.
Лучший ответ
Krab Bark
Искусственный Интеллект
(263402)
5 лет назад
Что такое дробь от числа?
var a,b:real;
begin
writeln(‘Дробь: ‘); readln(a);
writeln(‘Число: ‘); readln(b);
writeln(a*b);
end.
КубленОракул (95464)
5 лет назад
А может writeln(a/b); ?
Krab Bark
Искусственный Интеллект
(263402)
Сейчас подброшу монетку 😉
Остальные ответы
мастер шести путей
Просветленный
(25475)
5 лет назад
Если надо получить дробную часть числа то надо использовать функцию frac
Адам
Гуру
(2899)
5 лет назад
число кратное х функция div[x]
Похожие вопросы
На чтение 8 мин Просмотров 1.9к. Опубликовано 04.07.2019
Содержание
- Целая часть числа
- Дробная часть числа
- Программирование. Стандартные функции Pascal-Паскаль
- Стандартные функции Pascal-Паскаль
- Операторы действия
- Ввод и вывод данных
- Программирование
- Исходники Pascal (127)
- Справочник
- Арифметические операции
- Другие операции с числами
- Выводы :
Функция Int вычисляет целую часть значения с плавающей точкой. Синтаксис:
function Int(X: ValReal) : ValReal;
Функция возвращает целую часть вещественного числа Х. Тип данных возвращаемого значения является также вещественным числом.
О типе ValReal я рассказывал здесь.
Функция Frac возвращает дробную часть числа с плавающей точкой. Синтаксис:
function Frac(X: ValReal) : ValReal;
Целая часть числа
Как известно, вещественное число имеет целую часть и дробную часть. Например, число 3,14 можно произнести словами как “три целых, четырнадцать сотых”.
Соответственно, целая часть числа 3,14 — это число 3.
И, как вы теперь уже знаете, получить целую часть числа в Паскале можно с помощью функции Int:
Дробная часть числа
Если рассмотреть всё то же число 3,14, то его дробной частью будет число 0,14. То есть вещественное число состоит из двух частей, сумма которых и является вещественным числом:
Получить дробную часть числа в Паскале можно с помощью функции Frac:
Пример программы, которая использует функции Int и Frac, приведён ниже:
Программирование. Стандартные функции Pascal-Паскаль
- Скачено бесплатно: 6955
- Куплено: 414
- Pascal-Паскаль->Программирование. Стандартные функции Pascal-Паскаль
Стандартные функции Pascal-Паскаль
Стандартные математические функции Турбо Паскаля | |||
---|---|---|---|
Обращение | Тип аргумента | Тип результата | Примечание |
Abs(x) | Real, integer | Тип аргумента | Модуль аргумента |
ArcTan(x) | Real, integer | Real | Арктангенс (значение в радианах) |
Cos(x) | Real, integer | Real | Косинус, угол в радианах |
Exp(x) | Real, integer | Real | Экспонента |
Frac(x) | Real | Real | Дробная часть числа |
Int(x) | Real, integer | Real | Целая часть числа |
Ln(x) | Real, integer | Real | Логарифм натуральный |
Pi | Нет | Real | 3,141592653 |
Sin(x) | Real, integer | Real | Синус, угол в радианах |
Sqr(x) | Real, integer | Тип аргумента | Квадрат аргумента |
Sqrt(x) | Real, integer | Real | Корень квадратный |
Random | Нет | Real | Псевдослучайное число в интервале [0, 1] |
Random(I) | Integer | Integer | Псевдослучайное число в интервале [0, I] |
Round(x) | Real | Integer | Округление до ближайшего целого |
Trunc(x) | Real | Integer | Отбрасывание дробной части числа |
Порядок вычислений в выражениях следующий:
- вычисляются подвыражения, заключенные в скобки;
- затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
- возведение в степень;
- мультипликативные операции: * , / , div , mod;
- унарные операции: + , — , abs , not;
- аддитивные операции: +, -;
- операции отношения: = , <>, , =;
- логические операции: and, or, not;
- операции с одинаковым приоритетом выполняются слева направо.
Хотя нет ограничений на сложность выражений, однако выражения, содержащие более 7 операндов, трудны для чтения и понимания и поэтому такие выражения не рекомендуется использовать.
- в Паскале нет стандартной операции или стандартной функции возведения в степень, поэтому используется следующее математическое тождество: x y = e ylnx
- в Паскале существует только стандартная функция вычисления натурального логарифма, поэтому используется следующее математическое тождество: logab= ln b/ln a
Математическое выражение: x 3/2 — 7x + tg (x+2)
Выражение на Паскале: exp(3*ln(x)/2)-7*x+sin(x+2)/cos(x+2)
Операторы действия
Операторы действия — это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия — оператор присваивания.
Пример оператора присваивания
Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.
Удобно считать, что выполнение присваивания переменной некоторого значения означает помещение этого значения в выделенный для переменной ящик. При этом каждый запоминающий ящик обладает следующими свойствами.
- В каждый момент времени в ящике может храниться не более одного значения.
- Каждый ящик способен хранить только значения одного и того же типа. Попытка поместить в ящик значение любого другого типа приводит к тому, что ящик отказывается принимать на хранение передаваемое ему значение — это расценивается как ошибка в программе.
- Значение, помещенное в ящик, будет храниться в нем до тех пор, пока в этот ящик не будет помещено новое значение (в момент присваивания соответствующей переменной этого нового значения) — при этом предыдущее содержимое ящика безвозвратно теряется (уничтожается).
- Находящееся в ящике значение считается текущим значением соответствующей переменной. Это текущее значение может быть выдано из ящика для использования сколько угодно раз, но при этом содержимое ящика не меняется: из него каждый раз выдается копия хранящегося значения с сохранением оригинала в ящике без какого-либо изменения.
- К началу выполнения программы содержимое всех запоминающих ящиков считается неопределенным; в частности, их нельзя считать и пустыми, поскольку эти ящики могли использоваться при выполнении предыдущих программ, после чего в ящиках могло что-то остаться.
Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это — пустой оператор (в Паскале он обознается знаком “;”). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия — оператор останова, который прерывает работу программы (в Паскале это оператор halt).
Ввод и вывод данных
Ввод данных с клавиатуры производится с помощью стандартной процедуры read( ) или ее разновидности readln( ). Элементы списка ввода — идентификаторы (имена) переменных, перечисляемые через запятую. При выполнении этого оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами (это важно!).
Пример ввода данных с клавиатуры
read(a,b,c);
readln(a,b,c);
Вывод данных на экран производится с помощью стандартной процедуры write( ) или ее разновидности writeln( ).
Список вывода может содержать константы, переменные, выражения, формат вывода. Выражения в списке вывода разделяются запятыми.
Пример вывода данных на экран
write(a,b,c);
writeln(a,b,c);
Окончание ln в имени процедуры означает, что курсор автоматически будет переведен в начало следующей строки экрана.
Программирование
Исходники Pascal (127)
Справочник
Справочник по паскалю: директивы, функции, процедуры, операторы и модули по алфавиту
Арифметические операции
Начнем , пожалуй , с самого простого — арифметические операции с числами в паскале. В паскаль встроены многие привычные нам арифметические операции ( Сложение , вычитание , умножение , деление и т.п ).
Как же осуществляются подобные операции с числами ?. Давайте разберем это на примере исходника одной программы.
200?’200px’:»+(this.scrollHeight+5)+’px’);”> program mypascal;
var
a,b:integer;
c:real;
begin
a:= a — b; // a-b = 7 — 4 = 3 , следовательно a = 3 , b = 4 , c = 0
b:= a + b; // a+b = 3 + 4 = 7 , a = 3 , b = 7 , c = 0
a:= b * 2; // b*2 = 7 * 2 = 14 , a = 14 , b = 7 , c = 0
c:= a / b; // a/b = 14 / 7 = 2 , a = 14 , b = 7 , c = 2
Результатом выполнения данной программы будет вывод на экран трех чисел 14 7 2. Разберемся в том , как это работает.
В начале программы мы объявляем 2 целочисленные ( integer ) переменные “a” и “b” , а также 1 переменную “c” вещественного ( real ) типа.
Зачем нам нужна вещественная переменная ? Для записи результата деления целочисленная переменная не подходит , так как у нас получается дробь , а не целое число.
Теперь мы присваиваем переменной “a” значение 7 , а переменной “b” значение 3
. Переменную “c” при этом оставляем нулевой ( она нам пока не понадобится ).
Далее (в блоке begin end) мы расписываем арифметические операции с нашими числами. Обратите внимание на то , что после символов // идет комментарий , который не компилируется программой.
Запомните : Строка a:= a — b; выглядит так a:= 7 — 4; , а не так 7:= 7 — 4;
Другие операции с числами
В паскале предусмотрены и многие другие операции с числами. Давайте разберем самые популярные из них.
1. Как найти квадрат числа в паскале ?
Для нахождения квадрата числа в паскале предусмотрена функция sqr(x) , где x — число.
Пример :
Результат : переменной “а” присваивается значение 25.
2. Как найти корень числа в паскале ?
Для нахождения корня числа в паскале предусмотрена функция sqrt(x) , где x — число.
Пример :
Результат : переменной “а” присваивается значение 5.
3. Как округлить число в паскале ?
Для того , чтобы округлить некоторое число используется операция round(x).
Пример :
Результат : переменной “а” присваивается значение 9.
4. Как убрать дробную часть у числа в паскале ?
Для того , чтобы отбросить дробную часть числа используется операция trunc(x).
Пример :
Результат : переменной “а” присваивается значение 25.
5. Как убрать целую часть у числа в паскале ?
Для того , чтобы отбросить целую часть числа используется операция frac(x).
Пример :
Результат : переменной “а” присваивается значение 0.2.
6. Как получить модуль числа в паскале ?
Чтобы получить модуль некоторого числа используется операция abs(x).
Пример :
Результат : переменной “а” присваивается значение 8.
Это были самые важные и часто используемые операции в паскале для работы с числами ( переменными ). Найти другие вы можете на этой странице.
Выводы :
Для работы с числами в паскале предусмотрено множество различных операций. Мы можем делать с числами все , что угодно ( складывать , умножать , возводить в квадрат и т.п ).