Как пишется деление на паскале

С вещественными числами можно производить операции умножения, сложения, вычитания, а также операцию деления. Причем операция деления отличается от операции 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.




български (bg)


Deutsch (de)
English (en)

español (es)


français (fr)



日本語 (ja)
한국어 (ko)





русский (ru)






中文(中国大陆)‎ (zh_CN)


Присвоение и операции

1E — Assignment and Operations (author: Tao Yue, state: unchanged)

После того, как вы объявили переменную, вы можете хранить в ней значения. Это называется присвоением.

Для присвоения значения переменной используйте следующий синтаксис:

имя_переменной := выражение;

Обратите внимание, что в отличие от других языков, в которых операция присвоения обозначается просто знаком равенства, Pascal использует двоеточие со знаком равенства, как это делается в большинстве систем компьютерной алгебры.

Выражение может быть либо единственным значением:

либо арифметической последовательностью:

some_real := 37573.5 * 37593 + 385.8 / 367.1;

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

Операция Действие Операнды Результат
+ Сложение или унарный плюс real или integer real или integer
Вычитание или унарный минус real или integer real или integer
* Умножение real или integer real или integer
/ Вещественное деление real или integer real
div Целочисленное деление integer integer
mod Деление по модулю (остаток от деления) integer integer

div и mod работают только с integer.
Вещественное деление / работает как с real, так и с integer, но результат всегда будет real.
Другие операции работают и с real, и с integer. Когда смешиваются integer и real, результат всегда будет real, поскольку в противном случае будет потеря данных. Именно поэтому Pascal использует две разные операции для деления и целочисленного деления. 7 / 2 = 3.5 (real), но 7 div 2 = 3 (и 7 mod 2 = 1, поскольку это остаток).

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

var
  some_int : integer;
  some_real : real;

Тогда после выполнения следующего блока операторов:

some_int := 375;
some_real := some_int;

some_real будет иметь значение 375.0.

Изменение одного типа данных на другой называется приведением типа. Современные компиляторы Pascal поддерживают явное приведение типа в стиле языка C, с несколько отличающимся синтаксисом. Однако, приведение типов обычно используется в низкоуровневых ситуациях или в связи с объектно-ориентированным программированием, и студенту-новичку в программировании, нет небходимости его использовать. Здесь вы сможете найти информацию о приведении типов в GNU Pascal manual.

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

Не пытайтесь использовать две операции одну за другой, как в следующем примере:

Это может иметь правильный смысл для вас, поскольку вы пытаетесь выполнить умножение на отрицательное число -2. Однако, Pascal будет путаться — он не будет знать, что делать: умножать или вычитать. Вы можете избежать этого, используя для проясненя ситуации скобки:

some_real := 37.5 * (-2);

Компьютер соблюдает тот-же порядок операций, который соблюдаете вы, выполняя арифметические операции. Умножение и деление (* / div mod) идут до сложения и вычитания (+ -), а скобки всегда имеют приоритет. Таким образом, например, значение выражения 3.5*(2+3) будет 17.5.

Pascal не может выполнять стандартные арифметические операции с типом Boolean. Есть специальный набор логических операций. Вы также не должны применять арифметические операции к символам.

Язык программирования Pascal

Целочисленная арифметика языка Паскаль (например, в версии Turbo Pascal 7.0) основана на использовании пяти стандартных целых типов: Byte, Word, ShortInt, Integer, LongInt.

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

Cо всеми целыми типами связан набор из пяти основных арифметических операций: +, -, *, div, mod.

Первые три, из перечисленных операций, имеют обычный смысл сложения, вычитания и умножения, соответственно, а последние две определяются так: A div B — частное от деления нацело, A mod B — остаток от деления нацело двух целых чисел A и B.

При этом, для неотрицательных А и В (В‡0), частное A div B показывает, сколько раз делитель — число B, содержится в делимом — числе A; в то же время, остаток A mod B показывает, сколько останется, если из делимого — числа А, вычесть все вхождения в него делителя — числа В.

15 div 6 = 2 (здесь 2 — частное. Оно показывает, сколько раз делитель — число 6, содержится в делимом — числе 15).

15 mod 6 = 3 (здесь 3 — остаток. Он показывает, сколько останется, если из числа 15, вычесть все вхождения в него числа 6).

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

В Паскале принято, что знак частного от целочисленного деления (А div В) определяется как и при обычном алгебраическом делении, а знак остатка (A mod B) — совпадает со знаком А.

В дальнейшем, для краткости, в данной статье, ограничимся рассмотрением только неотрицательных целых.

Для целых, неотрицательных A и B, операции div и mod (не путать их!) связаны простым соотношением: A mod B =A — (A div B)*B.

В качестве полезного для усвоения div и mod упражнения, проверьте это соотношение, например, на следующих парах чисел (А, В): (13, 5), (40,2), (40,6), (6,40), (1,1).

При этом, обычно используется несколько стандартных фактов и приёмов которые, для успешного решения таких задач, необходимо твёрдо усвоить:
(А mod B=0) — условие делимости целого A на целое B;
(A mod 2 =0) — условие чётности целого A (впрочем, в Паскале, это же условие правильней задать выражением not odd(A), которое может вычисляться быстрее);
(A mod 10) — значение последней цифры в десятичной записи целого А (например, 1234 mod 10 =4);
(A div 10) — число, десятичная запись которого получится отбрасыванием последней цифры в десятичной записи целого числа А (например, 1234 div 10 =123);

При рассмотрении выше перечисленных фактов и приёмов, важно их изучить, понять их внутренний смысл, а не просто заучить.

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

Задача1. Дано трёхзначное в десятичной записи натуральное число. Составить Паскаль-программу, печатающую число, которое получается записью цифр исходного числа в обратном (реверсном) порядке.

//Решение 1. Выделяем цифры и печатаем их в обратном порядке
program Revers1;
var a, sotni,desiatki,edinici: Byte;
begin
a:=154; // пример исходного значения
edinici:=a mod 10; //4
desiatki:=(a div 10) mod 10; //5
sotni:=a div 100; //1
Writeln(‘Исходное число: ‘, a); //154
Writeln(‘Полученное число: ‘, edinici,desiatki,sotni) //451
end.

//Решение 2. Выделяем цифры, составляем из них новое число и печатаем
program Revers2;
var a, b, sotni,desiatki,edinici: Byte;
begin
a:=154;
edinici:=a mod 10; //4
desiatki:=(a div 10) mod 10; //5
sotni:=a div 100; //1
b:= edinici*100 + desiatki*10 + sotni; //451
Writeln(‘Исходное число: ‘, a); //154
Writeln(‘Полученное число: ‘, b) //451
end.

В приведённых выше решениях, переменная a получает начальное значение в результате выполения оператора присваивания (a:=154 ), а не оператора ввода ( Readln(a) ), что было бы реалистичней. Это сделано только для того,чтобы Вам было удобней проследить за изменением значений переменных по мере выполнения соответствующих программ.

Задача2. Дано однозначное в десятичной записи натуральное число. Составить Паскаль-программу, печатающую двоичное его представление.

Предварительное замечание. Т.к. наибольшее удовлетворяющее условию задачи исходное число 9 содержит в двоичном представлении 4 цифры (910=10012), результирующее число так же будем считать четырёхзначным.

С учётом этого замечания, можно записать следующую программу.

//Выделяем дв. циф. и собираем в обратном порядке в 10-тичн. число
program DesToDv;
var A, B,C: Word;
begin
А:=5; // здесь мог бы быть оператор Readln(A)
Writeln(‘Исходное число в десятичном представлении: ‘, A); //5
С:=1; // 1
B:=0;
B:= B + C*(A mod 2); // 1
A:= A div 2; // 2
C:= C*10; // 10
B:= B + C*(A mod 2); // 01
A:= A div 2; // 1
C:= C*10; // 100
B:= B + C*(A mod 2); // 101
A:= A div 2; // 0
C:= C*10; // 1000
B:= B + C*(A mod 2); // 0101
Writeln(‘Его двоичная запись: ‘, B) // 0101
end.

Задача3. Дано четырёхзначное в двоичной записи натуральное число. Составить Паскаль-программу, печатающую его десятичное представление.

Эта задача является обратной к предыдущей и состоит в переводе небольшого натурального числа из двоичной системы счисления в десятичную.

Исходное число, хотя по смыслу и является двоичным, будет нами представляться в десятичной системе счисления, но при этом с использованием только цифр 0 и 1. Например, вместо (невозможного в Паскале) ввода числа восемь в виде 10002 будем вводить идентичное требуемому, по форме записи, десятичное число 1000 (тысяча).

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

//Выделяем «дв. цифры» и, умножая на степени двойки, складываем
program DvToDes;
var A, B: Word;
begin
А:=1011; // здесь мог бы быть оператор Readln(A)
Writeln(‘Исходное число в двоичном представлении: ‘, A);
stpn2:=1; // нулевая степень двойки
B:=0; //начальная сумма
B:= B + (A mod 10)*stpn2; // учли в сумме последн. разряд
A:= A div 10; // отрезали, получив 101
stpn2:= stpn2*2; // первая степень двойки
B:= B + (A mod 10)*stpn2; // учли предпоследний разряд
A:= A div 10; // отрезали, получив 10
stpn2:= stpn2*2; // вторая степень двойки
B:= B + (A mod 10)*stpn2; // учли разряд 0
A:= A div 10; // отрезали, получив 1
stpn2:= stpn2*2; // третья степень двойки
B:= B + (A mod 10)*stpn2; //учли перв. разряд исходного числа
Writeln(‘Его двоичная запись: ‘, B) // 13
end.

Автор: Виктор Трофимов, МОУ гимназия №5, г. Волгодонск, Ростовская обл.

В Паскале существует возможность использования трех методов определения кратности числа.

1. С помощью оператора div (целоисчисленное деление). Как это работает?

x := 10 div 2 (переменная x получит значение 5; процессор вычисляет пример 10 / 2 и выдает результат 5)

x := 10 div 3 (переменная x получит значение 3; вычисляется 10 / 3 = 3,33 и отбрасывается дробная часть, такова природа работы оператора div)

x := 10 div 4 (переменная x получит значение 2; 10 / 4 = 2,5 – и опять отбрасывается дробная часть).

2. С помощью оператора mod (остаток от деления).

Тут и понятно, остаток от деления числа, которое полностью делится на делитель, будет равен нулю.

x := 10 mod 2 (переменная x получит значение 0; процессор вычисляет по формуле 10 – ((10 div 2) * 2) = 0, то есть оператор mod возвращает пользователю остаток, который получится в результаты вычитания из делимого числа разницы между первым в сторону уменьшения делящимся нацело на делитель… эмм, надеюсь, понятно. Еще на примерах:

x := 10 mod 3 (переменная x получит значение 1; происходит следующее 10 div 3 = 3 (целое), дальше 10 – 3 (результат) * 3 (делитель) = 1)

x := 10 mod 4 (переменная x получит значение 2; вычисляется 10 – ((10 div 4) * 4)).

Внимательно изучите работу операторов div и mod, они важны для решения задач ГИА по информатике.

3. С помощью функции отбрасывания дробной части числа (не округления, а именно отбрасывания).

trunc(z), где z – вещественное число или математическое выражение.

Примеры:

x := trunc(3.33) (x получит значение 3; «удаляется» дробная часть)

x := trunc(10 / 3) (x получит значение 3, 10 / 3 = 3.33, отбрасываем «,33»)

x := trunc(10 / 2) (x получит значение 5, 10 / 2 = 5 (целое число))

x := trunc(10 / 4) (x получит значение 2, 10 / 4 = 2.5, отбрасываем дробную часть)

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

Если ((x mod 3) = 0), то число кратно трем (остаток от деления равен нулю).

Если ((x mod 8) = 0), то число кратно восьми и т.д.

Как найти цифру, на которую оканчивается число? Все просто, надо найти остаток от деления числа на 10.

Примеры:

Результатом 150 mod 10 будет число 0, т.к. 150 полностью делится на 10. 0 – это последняя цифра числа.

153 mod 10 вернет 3 (153 – ((153 div 10) * 10); 3 – эта цифра, на которую оканчивается число.

87 mod 10 вернет 7 – последнюю цифру числа.

33 mod 10 вернет 3 и т.д. Попробуйте сами: writeln(33 mod 10);

Автор:

В этой статье речь пойдет о целочисленном делении и делении с остатком.

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

То есть например 20 / 5 = 4, 55 / 6 = 9, 100 / 3 = 33 и т.д.

Согласитесь, что в некоторых случаях это очень удобно и практично. Теперь поговорим о реализации этого метода в Паскале. Тут все достаточно просто, открывать Америку не придется. В паскале за целочисленное деление отвечает оператор div. Теперь как это записывается в Pascal’e

z := x div y

x — число , которое будем делить на y (делимое)
y — число , на которое будем делить число x (делитель)
z — результат целочисленного деления (целочисленное частное)

Таким образом, вот такая запись (55 / 6) нацело = 9 в результате использования оператора div будет выглядеть так

z := 55 div 6

z будет равно 9. Запомните! При использовании оператора div дробная часть будет отброшена!

А сейчас поговорим о делении с остатком. Оно не особо отличается и главным здесь является то, что в результате отбрасывается как раз целая часть. То есть (40 / 6) с остатком = 4, (10 / 3) с остатком =1, (22 /5) с остатком = 2 и т.д. В паскале для этого есть оператор mod. Записывается он точно так же.

z := x mod y

x — число , которое будем делить на y (делимое)
y — число , на которое будем делить число x (делитель)
z — остаток

Например (40 / 6) с остатком = 4 с оператором mod будет такой

z := 55 mod 6

И как результат получим z=1 .

Кстати оператор mod часто используют, для определения кратности чисел (кратность — это делимость на какое-нибудь число нацело. То есть например говорят, что числа 3, 6, 9, 12, 21 кратны трем. Или числа 5,10,15,20 кратны 5). В статье нахождение четных элементов массива я упоминал о числах кратных двум (четных). Итак как эту кратность определить в паскале. Обратите внимание, что если число кратное, то у него есть остаток (точнее оно имеет в остатке ноль). Этим и стоит воспользоваться.

if v mod m = 0 then

Сейчас я привел пример условия, которое проверяет кратность, где v — это число, проверяемое на кратность по числу m. Например чтобы проверить,
является ли 40 кратным 4, используем оператор mod с условием и получим

if 40 mod 4 = 0 then

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

Типы данных в Паскале

Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.

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

Рассмотрим наиболее распространенные в Pascal типы данных.

Целочисленные типы данных в Паскаль

Тип Диапазон Требуемая память (байт)
byte 0..255 1
shortint -128..127 1
integer -32768.. 32767 2
word 0..65535 2
longint -2147483648..2147483647 4

Нужно иметь в виду, что при написании программ в паскале integer (в переводе с англ. целое) является наиболее часто используемым, так как диапазон значений наиболее востребуем. Если необходим более широкий диапазон, используется longint (long integer, в переводе с англ. длинное целое). Тип byte в Паскале используется, когда нет необходимости работать с отрицательными значениями, то же самое касается и типа word (только диапазон значений здесь значительно больше).

Примеры того, как описываются (объявляются) переменные в Паскале:

Pascal PascalABC.NET
1
2
3
4
5
6
7
8
program a1;
var x,y:integer; {целочисленный тип}
    myname:string; {строковый тип}
begin
x:=1; y:=x+16;
myname:='Петр';
writeln ('имя: ',myname, ', возраст: ', y)
end.
1
2
3
4
5
6
7
8
program a1;
begin
  var x, y: integer; {целочисленный тип}
  var myname: string; {строковый тип}
  x := 1; y := x + 16;
  myname := 'Петр';
  print($'имя: {myname}, возраст: {y}')
end.
Результат: 
имя: Петр, возраст: 17

При использовании PascalABC.NET наиболее часто используются следующие целочисленные типы:

Тип Длина, байт Диапазон допустимых значений
integer 4 -2 147 483 648 .. 2 147 483 647
int64 8 -9 223 372 036 854 775 808 .. 9 223 372 036 854 775 807
BigInteger переменная неограниченный

Комментарии в Паскале

Обратите внимание на то, как используются комментарии в Паскале. В примере комментарии, т.е. служебный текст, который «не видим» для компилятора, заключаются в фигурные скобки {}. Обычно комментарии делаются программистами с целью пояснения фрагментов кода. Для однострочных комментариев можно использовать два слэша //:

{Очень простая программа
для вывода слова "Привет"}
begin
// вывод 
write('Привет');
end.

Задача 5. Население Москвы равняется а=9000000 жителей. Население Нью-Васюков равняется b=1000 жителей. Напишите программу, которая определяет разницу в числе жителей между двумя городами. Используйте переменные величины.

[Название файла: L1task5.pas]

Вещественные типы данных в Паскаль

Вещественные числа в Паскале и вообще в программировании — это название дробных чисел.

Тип Диапазон Требуемая память (байт)
real 2.9 * 10E-39 .. 1.7 * 10E38 6
single 1.5 * 10 E-45 .. 3.4 * 10E38 4
double 5 * 10E-324 .. 1.7 * 10E308 8
extended 1.9 * 10E-4951 .. 1.1 * 10E4932 10

Тип real в Паскале — наиболее часто используемый из вещественных типов.

Выше были представлены простые типы данных в Паскаль, к которым относятся:

  • Порядковые
  • Целые
  • Логические
  • Символьные
  • Перечисляемые
  • Интервальные
  • Вещественные

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

  • в формате используется либо одно число, означающее число позиций, отводимых на это число в экспоненциальной форме;
  • p:=1234.6789;
    Writeln(p:12);  {_1.2346E+004}
  • либо два числа, первое из которых обозначает общий размер поля, отведенного под это число, второе — число знаков после запятой, т.е. точность.
  • p:=1234.6789;
    Writeln(p:6:2); {1234.68}

    Наряду с простыми типами в языке еще используются структурированные типы данных и указатели, которым будут посвящены последующие уроки по Паскалю.

    Приведение типов

    В pascalABC.Net в некоторых случаях можно значения одного типа присваивать переменным другого типа.

    Значения типов данных, которые занимают меньше памяти, можно присвоить переменным типа данных с бОльшей емкостью. Так, возможны следующие приведения:

    integer → int64
    int64  → real
    integer → BigInteger

    Пример использования операции приведения типов:

    var a := 10; // integer
    var b := 123456789012345; // int64
    var c := -3bi; // BigInteger
     
    var i := int64(a); // приведение integer → int64
    var x := real(b); // приведение int64  → real
    var p := BigInteger(a); // приведение integer → BigInteger

    Обратное приведение с помощью функций

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

    real → integer

    Пример:

    ##
    var x := Sqrt(3); // корень квадратный из 3, тип real
    var a := Trunc(x); // приведение к integer с отсечением дробной части. рез-т 1
    var b := Round(x); // приведение к integer с округлением до ближайшего целого. рез-т 2

    Константы в Паскале

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

    Объявление константы в Паскале происходит до объявления переменных (до служебного слова var) и выглядит следующим образом:

    Пример описания константы в Паскале:

    Pascal PascalABC.NET
    1
    2
    3
    4
    5
    6
    
    const x=17;
    var myname:string;
    begin
    myname:='Петр';
    writeln ('имя: ',myname, ', возраст: ', х)
    end.
    1
    2
    3
    4
    5
    
    const x = 17;
    begin
      var myname := 'Петр';
      print($'имя: {myname}, возраст: {x}')
    end.

    «Красивый» вывод целых и вещественных чисел

    Для того чтобы после вывода значений переменных оставались отступы, чтобы значения не «сливались» друг с другом, принято через двоеточие указывать какое количество символов нужно предусмотреть для вывода значения:

    Вывод целых чисел

    Вывод целых чисел

    Вывод вещественных чисел

    Вывод вещественных чисел

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

    ДЕЙСТВИЕ РЕЗУЛЬТАТ СМЫСЛ
    2 + 3 5 плюс
    4 — 1 3 минус
    2 * 3 6 умножить
    10 / 5 2 разделить
    10 ** 2 100 возведение в степень с результатом типа real
    17 div 5 3 целочисленное деление
    17 mod 5 2 остаток от целочисленного деления

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

    Порядок выполнения операций

    1. вычисление выражений в скобках;
    2. умножение, деление, div, mod слева направо;
    3. сложение и вычитание слева направо.

    порядок выполнения операций


    Канонический способ:

    var 
      a: integer;
      b: real;
     
    begin
      a := 1;
      writeln('a := 1; a = ',a);
      a += 2; // Увеличение на 2
      writeln('a += 2; a = ',a);
      a *= 3; // Умножение на 3
      writeln('a *= 3; a = ',a);
      writeln;
      b := 6;
      writeln('b := 6; b = ',b);
      r /= 2;
      writeln('b /= 2; b = ',b);
    end.

    Стандартные арифметические процедуры и функции Pascal

    Здесь стоит более подробно остановиться на некоторых арифметических операциях.

    • Операция inc в Паскале, произносимая как инкремент, это стандартная процедура pascal, которая обозначает увеличение на единицу.
    • Пример операции inc:

      1
      2
      3
      
      x:=1;
      inc(x); {Увеличивает x на 1, т.е. x=2}
      writeln (х)

      Более сложное использование процедуры inc:
      Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.

    • Аналогично работает процедура Dec в Паскале: Dec(x) — уменьшает x на 1 (декремент) или Dec(x,n) — уменьшает x на n.
    • Оператор abs представляет собой модуль числа. Работает следующим образом:
    • a:=-9;
      b:=abs(a); { b = 9}
    • Оператор div в паскале является часто используемым, так как целый ряд задач связан с действием деление нацело.
    • Остаток от деления или оператор mod в pascal тоже незаменим при решении ряда задач.
    • Заслуживающей внимания является стандартная функция odd Паскаля, которая определяет, является ли целое число нечетным. Т. е. возвращает true (истина) для нечетных чисел, false (ложь) для четных чисел.
    • Пример использования функции odd:

      1
      2
      3
      4
      
      begin
          WriteLn(Odd(5)); {True}
          WriteLn(Odd(4)); {False}
      end.
    • Функция exp в паскале возвращает экспоненту параметра. Записывается как exp(x), где x типа real.
    • Квадрат числа в Паскале вычисляется при помощи процедуры sqr.
    • Пример использования процедуры sqr в Pascal:

      1
      2
      3
      4
      5
      
      var x:integer;
      begin
      x:=3;
      writeln(sqr(x)); {ответ 9}
      end.
    • Операция возведение в степень в Паскале отсутствует как таковая. Но для того чтобы возвести в степень число можно использовать функцию exp.
    • Формула такая: exp(ln(a)*n), где а — число, n — степень (а>0).

      Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:

       WriteLn(Power(2,3)); {ответ 8}
    • Извлечь квадратный корень в Паскале можно при помощи процедуры sqrt.
    • Пример использования процедуры sqrt в Pascal:

      1
      2
      3
      4
      5
      
      var x:integer;
      begin
      x:=9;
      writeln(sqrt(x)); {ответ 3}
      end.

    Задача 6. Известны размеры спичечной коробки: высота — 12.41 см., ширина — 8 см., толщина — 5 см. Вычислить площадь основания коробки и ее объем

    (S=ширина * толщина, V=площадь*высота)

    [Название файла: L1task6.pas]

    Задача 7. В зоопарке три слона и довольно много кроликов, причем количество кроликов часто меняется. Слону положено съедать в сутки сто морковок, а кролику — две. Каждое утро служитель зоопарка сообщает компьютеру количество кроликов. Компьютер в ответ на это должен сообщить служителю общее количество морковок, которые сегодня нужно скормить кроликам и слонам.

    [Название файла: L1task7.pas]

    Задача 8. Известно, что x кг конфет стоит a рублей. Определите, сколько стоит y кг этих конфет, а также, сколько килограмм конфет можно купить на k рублей. Все значения вводит пользователь.

    [Название файла: L1task8.pas]

      

    В приведенных ниже примерах все функции имеют аргументы. Аргументы
    m и n имеют целочисленный тип,
    a и b – тип real,
    x и y – любой из этих типов.

    Abs(x) – возвращает абсолютное значение аргумента x;
    Ceil(x) - возвращает ближайшее целое, не меньшее, чем х;
    Floor(x) - возвращает ближайшее целое, не превышающее х;
    Frac(x) - возвращает дробную часть аргумента x;
    Max(x, y, …) – возвращает максимальное из значений x, y, …;
    Min(x, y, …) – возвращает минимальное из значений x, y, … ;
    Random(m) – возвращает случайное число из интервала [0 ; m-1];
    Random(a) – возвращает случайное число из интервала [0 ; a);
    Random(m, n) – возвращает случайное число из интервала [m ; n];
    Random(a, b) – возвращает случайное число из интервала [a ; b);
    Random2(m) – возвращает кортеж из двух случайных чисел в интервале [0 ; m-1];
    Random2(a) – возвращает кортеж из двух случайных чисел в интервале [0 ; a);
    Random2(m, n) – возвращает кортеж из двух случайных чисел в интервале [m ; n];
    Random2(a, b) – возвращает кортеж из двух случайных чисел в интервале [a ; b);
    Random3(m) – возвращает кортеж из трех случайных чисел в интервале [0 ; m-1];
    Random3(a, b) – возвращает кортеж из трех случайных чисел в интервале [a ; b);
    Round(x) - возвращает округленное до целых по правилам арифметики значение типа integer;
    Round(x, n) - возвращает значение х, округленное до n знаков в дробной части;
    Sign(x) – возвращает -1 при x < 0, 0 при x = 0 и 1 при x > 0;
    Sin(x) – возвращает sin(x) типа real;
    Sqr(a) – возвращает a2;
    Sqr(m) – возвращает m2 типа int64;
    Sqrt(x) – возвращает √x типа real;
    Trunc(a) – возвращает целую часть значения a того же типа
    

    На чтение 3 мин. Опубликовано 04.07.2020

    В нашей статье мы разберем такие операции, как div и mod в Паскале. Сейчас вы узнаете, что это такое и зачем эти операции нужны.

    На фото изображено окно программы IDE PascalABC.Net.

    Вообще, div и mod очень похожи на обычное деление, которому нас учат в школе. Но если они зачем-то существуют, значит, все-таки отличия есть. И уже в самом начале очень хочется отметить, что обе операции работают только с целыми числами (integer).

    Оператор div в Pascal

    На самом деле здесь все довольно просто. Div применяется для поиска целой части от деления.

    Приведем в пример код, чтобы разобраться:

    program enteryourname1;
    uses crt;
    var
       n : integer;
    begin
       n := 9;
       n := n div 4;
    end.

    В итоге наше n будет равняться двум. Если делить 9 на 4, то выходит 2,25. То есть, применяя операцию div в Паскале, вы получите результат до запятой (целую часть числа).

    Оператор mod в Pascal

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

    Возьмем в пример все тот же код:

    program enteryourname2;
    uses crt;
    var
    n : integer;
    begin
    n := 9;
    n := n mod 4;
    end.

    В итоге мы получаем n, которое равно единице. Как так получилось? Когда мы делим 9 на 4, мы можем взять два раза по 4 (получается 8). Но у нас остается единица, которая не делится на 4. Такую вот “единицу” и будет искать mod, или, говоря по-другому, остаток от деления ваших чисел.

    Вообще, нередко mod в Паскале используют для того, чтобы определить кратности чисел. Обратите внимание, что число является кратным, если его остаток равняется нулю.

    Использование оператора div и mod при решении задач

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

    program enteryourname3;
    uses crt;
    var A,B,C: integer;
    begin
    clrscr;
    A := 13;
    B := 5;
    C := A div B;
    writeln (‘13 div 5 =  ‘, C);
    C := A mod B;
    writeln (‘13 mod 5 =  ‘, C);
    readln;
    end.

    Таким образом, используя div, мы получим ответ 2 (13 разделить на 5 равняется 2,6; нам же нужна только целая часть). А используя mod, получаем результат 3 (остаток от деления).

    Вот еще один пример:

    program enteryourname4;
    uses crt;
    var A,B,C: integer;
    begin
    clrscr;
    A := 290;
    B := 11;
    C := A div B;
    writeln (‘290 div 11 =  ‘, C);
    C := A mod B;
    writeln (‘290 mod 11 =  ‘, C);
    readln;
    end.

    Конечно, программа все сама посчитает. Но еще раз уточним: здесь div будет равняться 26 (берем только целую часть), а mod — 4 (остаток от деления).

    Надеемся, мы ответили на ваш вопрос, что же значат mod и div в программе Pascal, и тем самым смогли облегчить вашу работу в этой программе. Свои предложения вы можете оставить в комментариях.

    Понравилась статья? Поделить с друзьями:
  • Как пишется делегирование полномочий
  • Как пишется делегация или делигация
  • Как пишется делегатский мандат
  • Как пишется делать уроки на английском
  • Как пишется делать не уверенно