Как делить в паскале
Перейти к содержимому

Как делить в паскале

  • автор:

Арифметические операции

К арифметическим относятся бинарные операции + , — , * , / для вещественных и целых чисел, бинарные операции div и mod для целых чисел и унарные операции + и — для вещественных и целых чисел. Тип выражения x op y , где op — знак бинарной операции + , — или * , определяется из следующей таблицы:

shortint byte smallint word integer longword int64 uint64 BigInteger single real decimal
shortint integer integer integer integer integer int64 int64 uint64 BigInteger single real decimal
byte integer integer integer integer integer longword int64 uint64 BigInteger single real decimal
smallint integer integer integer integer integer int64 int64 uint64 BigInteger single real decimal
word integer integer integer integer integer longword int64 uint64 BigInteger single real decimal
integer integer integer integer integer integer int64 int64 uint64 BigInteger single real decimal
longword int64 longword int64 longword int64 longword uint64 uint64 BigInteger single real decimal
int64 int64 int64 int64 int64 int64 uint64 int64 uint64 BigInteger single real decimal
uint64 uint64 uint64 uint64 uint64 uint64 uint64 uint64 uint64 BigInteger single real decimal
BigInteger BigInteger BigInteger BigInteger BigInteger BigInteger BigInteger BigInteger BigInteger BigInteger
single single single single single single single single single single real
real real real real real real real real real real real
decimal decimal decimal decimal decimal decimal decimal decimal decimal decimal

То есть, если операнды — целые, то результатом является самый короткий целый тип, требуемый для представления всех получаемых значений.

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

Для операции / данная таблица исправляется следующим образом: результат деления любого целого на целое имеет тип real .

Для операций div и mod выполняются эти же правила, но операнды могут быть только целыми. Правила вычисления операций div и mod — следующие:

x div y — результат целочисленного деления x на y . Точнее, x div y = x / y , округленное до ближайшего целого по направлению к 0;
x mod y — остаток от целочисленного деления x на y . Точнее, x mod y = x — (x div y) * y .

Унарная арифметическая операция + для любого целого типа возвращает этот тип. Унарная арифметическая операция — возвращает для целых типов, меньших или равных integer , значение типа integer , для longword и int64 — значение типа int64 , к uint64 унарная операция — не применима, для типов single и real — соответственно типы single и real . То есть так же результатом является самый короткий тип, требуемый для представления всех получаемых значений.

Умножение, деление, сложение, вычитание вещественных чисел в Pascal.

С вещественными числами можно производить операции умножения, сложения, вычитания, а также операцию деления. Причем операция деления отличается от операции Div. Деление вещественных чисел — это обычное математическое деление, в результате которого может получится как дробное, так и целое число.

program number11; uses crt; var a, b, c:real; begin clrscr; a:=17.3; b:=3.4; c:=a*b; writeln('a*b=',c:4:1); c:=a/b; writeln('a/b=',c:4:1); c:=a+b; writeln('a+b=',c:4:1); c:=a-b; writeln('a-b=',c:4:1); readln end.

В строке №8 записываем операцию умножения.

В строке №10 записываем операцию деления. Ее отличие от операции «Div» в том, делить можно дробные числа и результате операции могут получаться дробные числа. Запомните, что операция деления «/» не производится над переменными целого типа integer, т.к. в результате такой операции могут получиться дробные числа, и программа выдаст ошибку.

Строка №12 — операция сложения.

Строка №14 — операция вычитания.

В строках вывода сообщения на экран (№9, 11, 13, 15) для переменной «C» мы записали формат вывода «:4:1». (должно выводиться максимум 4 цифры и одна цифра после запятой).

operacii nad vethestvennihmi chislami

operacii nad vethestvennihmi chislami.

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

Действия над разными типами данных.

  • Если мы складывает, вычитаем или умножаем 2 числа, одно из которых вещественное (REAL), то и результат будет иметь тип REAL.
  • При делении ( / )получается вещественное число (REAL).
  • При целочисленном делении (DIV) или при вычислении остатка от целочисленного деления (MOD), получается целое число (INTEGER).
  • Функции Abs и Sqr определены для обоих типов данных, поэтому для целого аргумента результат будет INTEGER, а для вещественного аргумента – REAL.

Деление на Pascal

Program help_my_1;
Var a, b, d: real;
begin
Writeln(‘Введите два числа через пробел’);
readln(a,b);
d:=a/b;
writeln(a,’:’,b,’=’,d);
Writeln(‘Нажмите Enter’);
Readln;
end.

Похожие вопросы
Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Div, Mod, сложение, вычитание в Pascal.

Помимо операций умножения и сложения, над целочисленными переменными производятся операции Div (операция целочисленного деления), Mod (вычисление остатка от целочисленного деления), операция вычитания «-».

program number7; uses crt; var A,B,C: integer; begin clrscr; A:=17; B:=3; C:=A div B; writeln ('17 div 3 = ',C); C:=A mod B; writeln ('17 mod 3 = ',C); C:=A-B; writeln ('17-3 =',C); readln end.

В строке №8 используется операция Div. Это операция деления нацело, т. е. в результате получится целое число без остатка. Если 17 разделить на 3, то получится 5,66666… Здесь — целое число 5, оно и будет результатом операции div.
Строка №10. Операция Mod вычисляет остаток от целочисленного деления. Если мы разделим 17 на 3, то получится 5 – целое число и 2 – остаток. Таким образом, результатом операции Mod будет число 2
Теперь запишем нашу программу в Паскале и и запустим ее.

div mod

div mod.

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

Правила приоритета при выполнении операций в Паскале.

  • Сначала выполняются действия над переменными, которые стоят в скобках.
  • Затем вычисляются функции.
  • Затем умножение и деление.
  • Затем сложение и вычитание.

Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.

Комментарии

+9 # Irzorg 04.04.2012 17:46

помогите решить задачу 1811 mod 32 = 19! Как получается этот ответ, все испробывал, не могу получить!

+2 # Евгений 09.01.2015 18:56

Достаточно в выше показанной программе переменную А определить как 1811,а переменную В как 32 то переменная С (C:=A mod B) и определит искомые 19.

+67 # Administrator 05.04.2012 08:29

Делишь 1811 на 32, получается 56,59375. Из этого числа берем целое число, т.е. 56 и умножаем его на 32. Получится 1792. 1811-1792=19 Это и есть остаток от целочисленного деления.

+9 # Евгений 09.01.2015 13:08

Этому можно придать и иной смысл. Достато чно вспомнить мультфильм «тридцать восемь попугаев. Числ о,которым делят,становить ся мерой числа которое делят. И остаток 0.59375 выражает часть числа 32. Так что достаточно умножить 32 на 0.59375 что бы получилось искомые 19.

-181 # яю 23.04.2012 12:14
Забудь про паскаль.
И задачу тебе не нужно решать.
А если хочешь научиться, то начинай с Ассемблера.
+39 # Нео 02.12.2012 13:08
-27 оценка.
вижу никому не нравиться Ассамблер
+30 # Антон 23.02.2013 14:00
Ну просто обсуждается именно паскаль, а не ассемблер, поэтому и минусуют, что не по теме
+6 # alex 30.06.2012 14:04
🙂
8 строка: C := trunc(A/B);
10 cстрока: C := A — B * trunc(A/B);
-9 # помогите 28.01.2013 19:21

помогите решить задачу:дано 2 значное число,переверни те его справа налево.Допучсти м 32 ответ должен быть 23. или дано 78 ответ 87 заранее спосибо. )

+5 # Антон 23.02.2013 14:35

Program pr1;
var
x, y1, y2, y: integer;
begin
write (‘Введите двухзначное число: ‘);
readln (x);
y1:=(x mod 10)*10;
y2:=x div 10;
y:=y1+y2;
write (‘Число-перевёр тыш: ‘, y);
readln;
end.

-5 # Вадим 22.11.2015 06:30
А не легче в 7,8 и 9 строках сделать так: y1:=x div 10; y2:=x mod 10; writeln (y2,y1);
+4 # VladiMir 08.04.2015 19:38

uses
SysUtils;
var a,b: integer;
n: word;

begin
readln(n);
a:=n mod 10;
n:= n div 10;
b:=n mod 10;
n:= n div 10;
n:=a*10+b;
writeln(n);
readln;

-14 # dim 16.02.2013 12:43

program prog1;
uses crt;

begin
write (‘введите двухзначное число. ‘);
read(x);
z:=10;

y:=x div z;
c:=x mod z;
writeln (c,y);
readln
end.

0 # иришка* 18.02.2013 12:38

ребяята подскажите пожалуйста !очень надо как из числа 5264 получить число 2 типа третье от конца число помогите пожалуйста

-5 # Антон 23.02.2013 12:18

Program pr1;
var
x, y: integer;
begin
write (‘Введите число: ‘);
readln (x); //вводим 5264
y:=(x div 100)-(((x div 100) div 10)*10);
write (‘Третья цифра справа ‘, y);
end.

Программа всегда будет говорить, какая цифра стоит третьей

-5 # Антон 23.02.2013 13:58

Кстати, перед «end.» надо добавить «readln;», а то после вывода результата программа тут же закроется

0 # Виталий 16.11.2017 13:31

a:=a div 10;
b:=a div 10;
a:=a div 10;
b:=a mod 10;
writeln(b);

0 # Alexandr 19.02.2013 11:27

# Irzorg
Вот тебе схема как это делать в дальнейшем:
Допустим,что нам даны два числа x и y;
1)X mod Y=F;-Нам нужно узнать,что же за число получится при вычислении остатка от целочисленного деления;
2)X div Y=Z;Z-это результат целочисленного деления;
3)Z*Y=G;G-число,которое получилось в результате умножения результата целочисленного деления на число Y(Y дан нам в исходном выражении);
4)X-G=F;Где F конечный результат.
Надеюсь,что помог тебе.

-4 # ivan 20.03.2013 16:32
подсчитал все значения,на экран нужно вывести каждое двадцатое число,подскажит е пожалуйста
+1 # katya 21.03.2013 17:25

помогите решить задачу.
дано два цэлых числа: A, B. проверить истинное ли выражение » Каждое ис чисел А,В — непарное»

+2 # Casil 16.03.2018 10:40

Boolean4. Даны два целых числа: A, B. Проверить истинность высказывания: «Справедливы неравенства A > 2 и B ≤ 3».

var
A, B: integer;

begin
write(‘Введите A и B: ‘);
read(A,B);
writeln(‘Справе дливы неравенства A > 2 и B ≤ 3 — ‘,(A > 2) and (B = 0) or (B дливо двойное неравенство A B) and (B > C)));
end.
Boolean8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Каждое из чисел A и B нечетное — ‘, (A mod 2 0) and (B mod 2 0));
end.
Boolean9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) or (B mod 2 0));
end.
Boolean10°. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».

var
A, B: integer;

begin
write(‘Введите A, B: ‘);
read(A,B);
writeln(‘Хотя бы одно из чисел A и B нечетное — ‘, (A mod 2 0) xor (B mod 2 0));
end.
Boolean11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».

var
A, B: integer;
C: boolean;
begin
write(‘Введите A, B: ‘);
read(A,B);
C := ((A mod 2 0) and (B mod 2 0)) or ((A mod 2 = 0) and (B mod 2 = 0));
writeln(‘Числа A и B имеют одинаковую четность — ‘, C);
end.
Boolean12. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Каждое из чисел A, B, C положительное».

var
A, B, C: integer;
begin
write(‘Введите A, B и C: ‘);
read(A,B,C);
writeln(‘Каждое из чисел A, B, C положительное — ‘,(A > 0) and (B > 0) and (C > 0));
end.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *