Паскаль как найти дробную часть числа

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

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

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

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

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

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

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

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

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

Как в языке Pascal выводить дробную часть числа?
Например мне надо записать на Pascal следующие числа (в дробной части указать до 4 цифр):

  1. 6,38
  2. 5!

Deleted's user avatar

Deleted

3611 золотой знак5 серебряных знаков13 бронзовых знаков

задан 11 авг 2014 в 16:37

mango44's user avatar

mango44mango44

1833 серебряных знака16 бронзовых знаков

1 ответ

Format('%.4f', [x]); // дробное число с точностью до 4-го знака

ответ дан 11 авг 2014 в 18:50

kot-da-vinci's user avatar

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
  • 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 
___
Введите основание треугольника:
...
Введите высоту треугольника:
...
Периметр треугольника = ... 
___
Введите основание треугольника:
...
Введите высоту треугольника:
...
Периметр треугольника = ... 

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

проверь себя

Как написать программу нахождения дроби от числа на языке Паскаль?

%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

Содержание

  1. Целая часть числа
  2. Дробная часть числа
  3. Программирование. Стандартные функции Pascal-Паскаль
  4. Стандартные функции Pascal-Паскаль
  5. Операторы действия
  6. Ввод и вывод данных
  7. Программирование
  8. Исходники Pascal (127)
  9. Справочник
  10. Арифметические операции
  11. Другие операции с числами
  12. Выводы :

Функция 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 Отбрасывание дробной части числа

Порядок вычислений в выражениях следующий:

  1. вычисляются подвыражения, заключенные в скобки;
  2. затем выполняются операции с наибольшим приоритетом; обычно используются следующие уровни приоритетов (в порядке убывания):
    • возведение в степень;
    • мультипликативные операции: * , / , 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)

    Операторы действия

    Операторы действия — это средства языка, позволяющие изменять в процессе выполнения программы состояние вычислений. Самый простой оператор действия — оператор присваивания.

    Пример оператора присваивания

    Оператор присваивания, несмотря на кажущуюся простоту, имеет очень важное алгоритмическое значение.

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

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

    Еще один оператор действия, хотя его можно лишь условно назвать таковым: он не выполняет никакого действия, это — пустой оператор (в Паскале он обознается знаком “;”). В Паскале оператором действия является также оператор процедуры. Последний из простейших операторов действия — оператор останова, который прерывает работу программы (в Паскале это оператор 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.

    Это были самые важные и часто используемые операции в паскале для работы с числами ( переменными ). Найти другие вы можете на этой странице.

    Выводы :

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

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