Pascal abc div mod

В чем заключается вопрос: Что такое операции mod и div в языке Pascal. Как с нами работать?

Сложность : легкая .

Постараюсь быть краток, сразу стоит сказать что эти операции работают только с целыми числами, т.е. integer и т.д.
Сначала операция div:
Эта операция используется для того чтобы найти целую часть от деления, как это понять? Допустим у нас есть код:

n у нас будет равно 1. Почему? Как я и сказал div ищет целую часть от деления, т.е. у нас делится 12 на 10, это будет равно 1.2. Целая часть от деления равна 1. Вот это и делает операция div, если допустим 12 div 2, ответ 6.0, целая часть уже равна 6. Т.е. мы как бы делим 12 на 10, но в ответ записывается только целая часть от деления.

Дальше операция mod:
Эта операция уже ищет остаток от деления. Не думайте что это дробная часть, НЕ ПУТАЙТЕ!

Допустим есть код:

Тут остаток от деления равен 2. Другой пример, допустим следующее :

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

Обычно начинают искать с последний цифры, у нас это 3. Чтобы её оторвать надо сделать следующее:

Т.е. мы 123 делим на 10, ответ 12.3 , а остаток равен 3. Первая цифра есть. Дальше 2. Тут делается так, сначала убирается последняя цифра, т.е. 3, с помощью div, а потом с помощью mod ищем 2-ую цифру:

Т.е. сначала у нас из-за div будет 12, а потом с помощью mod у нас появится 2. Ну а последнюю цифру можно найти так:

Вот как то так. Может вы сразу не поймете, но тут надо немного по практиковаться. Удачи! Спасибо за внимание!

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

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

Читайте также:  Arris cm820b что это такое

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

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

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

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

Комментарии

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;

program prog1;
uses crt;

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

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

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

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

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

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 имеют одинаковую четность».

Читайте также:  Xerox phaser 3300 mfp сетевое сканирование

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.

Всем привет, как дела? Че делаешь? ммм ясно, понятно. Не будем долго и дружелюбно общаться, проходите, присаживайтесь по удобнее, чувствуйте себя как дома. На улице с каждым днем солнце порабощает планету, мне это нравится, с нетерпением жду прихода молодой теплой, походу грязной и с множеством воды, весны. Но есть и свои плюсы: тепло, птицы, растительность, легкая куртка. А как вы относитесь к весне?
В этой части поговорим о еще двух функциях DIV и MOD, в прошлой части мы говорили об математических операциях, сегодняшние функции тоже по сути ими являются. Поехали =)

DIV, MOD или обычное деление

DIV и MOD похожи на обычное деление, но все таки они для чего то существуют, значит разница быть должна. Вспомним начальную школу и математику, когда вы только-только учились умножать и делить, когда вы еще не подозревали, что судьба вас свяжет с программированием и будете работать "тыж программистом" или же помбуром. Шутки в сторону, так вот вспомним деление "столбиком". Возьмем число 23 и разделим его столбиком, как учили в школе, на число 10.

Вот таким образом мы разделили число 23 на 10. У нас осталась в целой части число 2, а в остатке число 3. Проще говоря наш ответ стал равен двум целым и трем десятых(2.3). Отлично, это было обычное деление, но как будет выглядеть это в случае с MOD и DIV?

MOD — если мы делим число с помощью функции MOD, то в ответ у нас пойдет остаток. По примеру выше, если бы мы делили не обычным делением, а с помощью mod, то ответ у нас был бы 3.

Читайте также:  Схема контроллера акб ноутбука

DIV — соответственно наоборот, если мы делим в с помощью DIV то в ответ пойдет только целая часть — 2.

Pascal

Откроем PascalABC и напишем заготовку

Объявим две переменные с целочисленным типом данных

Дальше присвоим переменной "a" какое-либо значение и переменную "b" приравняем к переменной "a".

Отлично, теперь выведем ответ на действие обычного деления на число 100

Теперь проделаем тоже деление, но вместо обычного используем DIV и MOD. Переменную "a" делим с помощью функции DIV, а переменную "b" соответственно функцией MOD и посмотрим что получится.

Как видим, div вывел в ответ целую часть, а mod — остаток.

Разделим число на тысячи, сотни, десятки и единицы

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

Присвоим переменной "a" числовое значение.

Дальше присвоим переменной "b" действие — деление переменной "a" на число 1000 с помощью функции div.

  1. program chislo;
  2. var
  3. a,b: integer;
  4. begin
  5. a:= 4321;
  6. b:= a div 1000;
  7. a:= a-b*1000;
  8. end.

Теперь напишем команду вывода с новой строки.

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

И добавим команду вывода в самое начало

  1. program chislo;
  2. var
  3. a,b: integer;
  4. begin
  5. a:= 4321;
  6. writeln( ‘ Число " ‘+a+’ " состоит из’ );
  7. b:= a div 1000;
  8. a:= a-b*1000;
  9. writeln( b+’ тысячи’ );
  10. b:= a div 100;
  11. a:= a-b*100;
  12. writeln( b+’ сотен’ );
  13. b:= a div 10;
  14. a:= a-b*10;
  15. writeln( b+’ десятков’ );
  16. b:= a div 1;
  17. a:= a-b;
  18. writeln( b+’ единиц’ );
  19. end.

Запустим программу и увидим его выполнение

  1. Число "4321" состоит из
  2. 4 тысячи
  3. 3 сотен
  4. 2 десятков
  5. 1 единиц

Заключение

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

Оцените статью
Добавить комментарий

Adblock
detector