Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.
Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?
Процедуры — мини-программы.
Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.
Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.
program superpuper; var очень много буковок; procedure ampersand; begin write('&&&&&&&&&&&&&&&&&&&&'); end; begin суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; суперсложный код; ampersand; end.
Функции в Паскале — мега переменные.
Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.
Пример: a:=sqr(4).
Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!
Структура функции представлена на картинке ниже.
Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.
Математические функции |
|||
Имя | Тип аргумента | Результат вычисления | Пример |
Abs(x) | Целый или Вещ. | Модуль х | Abs(-6) = 6 |
Sqrt(x) | Вещественный | Корень из х | Sqrt(25)=5 |
Sqr(x) | Целый и Вещ. | Квадрат х | Sqr(5)=25 |
Power(x, a) | Вещественный | Значение ха | Power(5,3)=125 |
Frac(x) | Вещественный | Дробная часть х | Frac(5.67)=0.67 |
Sin(x) | Вещественный | Синус х | Sin(45)=0.8509 |
Cos(x) | Вещественный | Косинус х | Cos(45)=0.5253 |
Arctan(x) | Вещественный | Арктангенс х | Arctan(5)=1.3734 |
Int(x) | Вещественный | Целая часть х | Int(5.67)=5.0 |
Random(x) | Целый | Случайное число (0..х-1) | Random(5)=4 |
Succ(x) | Порядковый | Следующий | Succ(10)=11 |
Pred(x) | Порядковый | Предыдущий | Pred(‘Z’)=’Y’ |
Математические процедуры |
|||
Inc(x, a) | Целый | X:=X+A | Inc(5)=6 |
Dec(x, a) | Целый | X:=X-A | Dec(25,20)=5 |
Преобразование типов |
|||
Trunc(x) | Вещественный | Целая часть х | Trunc(5.67)=5 |
Round(x) | Вещественный | Округление х до целого | Round(5.67)=6 |
Важно! Если х = 5.5, то результат – 6, а если х = 6.5, то результат тоже 6!? |
Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.
Div
Для того, чтобы найти частное от деления, мы используем операцию div.
Примеры:
- 25 div 20 = 1;
- 20 div 25 = 0;
- 39 div 5 = 7;
- 158 div 3 = 52.
Mod
Для того, чтобы найти остаток от деления, мы используем операцию mod.
Примеры:
- 25 mod 20 = 5;
- 20 mod 25 = 0;
- 39 mod 5 = 4;
- 158 mod 3 = 2.
Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:
Задача 1. Найти сумму цифр двухзначного числа.
Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.
program Sumoftwo; var Number, Num1, Num2, Sum: integer; begin write('Введите двухзначное число: '); read(Number); { Возьмем число 25 } Num1 := Number div 10; { 25 div 10 = 2 } Num2 := Number mod 10; { 25 mod 10 = 5 } Sum := Num1 + Num2; { 2 + 5 = 7 } write('Сумма двух чисел -- ', Sum); end.
Задача 2. Найти сумму цифр трехзначного числа.
Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.
program Sumoftree; var Number, Sum: integer; begin write('Введите трехзначное число: '); read(Number); { Возьмем число 255 } Sum := Number div 100 + Number mod 10 + Number div 10 mod 10; { 255 div 100 + 255 mod 10 + 255 div 10 mod 10 = 12 } write('Сумма трёх чисел -- ', Sum); end.
Вот и всё. На следующем уроке мы с вами начнём изучать особенности PascalABC.Net.
Что такое операции mod и div в Pascal? чем заключается вопрос: Что такое операции mod и div в языке Pascal. Как с нами работать?
Сложность : легкая .
Постараюсь быть краток, сразу стоит сказать что эти операции работают только с целыми числами, т.е. integer и т.д.
Сначала операция div:
Эта операция используется для того чтобы найти целую часть от деления, как это понять? Допустим у нас есть код:
123456var n : integer;begin n := 12; n := n div 10;end.
n у нас будет равно 1. Почему? Как я и сказал div ищет целую часть от деления, т.е. у нас делится 12 на 10, это будет равно 1.2. Целая часть от деления равна 1. Вот это и делает операция div, если допустим 12 div 2, ответ 6.0, целая часть уже равна 6. Т.е. мы как бы делим 12 на 10, но в ответ записывается только целая часть от деления.
Дальше операция mod:
Эта операция уже ищет остаток от деления. Не думайте что это дробная часть, НЕ ПУТАЙТЕ!
Допустим есть код:
123456var n : integer;begin n := 12; n := n mod 10;end.
12345var a , b , c : integer;begin end.
Обычно начинают искать с последний цифры, у нас это 3. Чтобы её оторвать надо сделать следующее:
1a := 123 mod 10;
Т.е. мы 123 делим на 10, ответ 12.3 , а остаток равен 3. Первая цифра есть. Дальше 2. Тут делается так, сначала убирается последняя цифра, т.е. 3, с помощью div, а потом с помощью mod ищем 2-ую цифру:
1b := 123 div 10 mod 10;
Т.е. сначала у нас из-за div будет 12, а потом с помощью mod у нас появится 2. Ну а последнюю цифру можно найти так:
1c := 123 div 100;
Вот как то так. Может вы сразу не поймете, но тут надо немного по практиковаться. Удачи! Спасибо за внимание!
Помимо операций умножения и сложения, над целочисленными переменными производятся операции 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
Теперь запишем нашу программу в Паскале и и запустим ее.
Дополнение к материалу.
Правила приоритета при выполнении операций в Паскале.
- Сначала выполняются действия над переменными, которые стоят в скобках.
- Затем вычисляются функции.
- Затем умножение и деление.
- Затем сложение и вычитание.
Операции, которые имеют одинаковый приоритет (сложение и вычитание, деление и умножение) выполняются слева направо, т.е. в порядке очереди.
В Паскале можно выполнять стандартные математические операции. Обычно для таких операций применяется целочисленный тип данных – integer. Только при выполнении операции деления ((/)) в результате может получиться вещественное число – real.
Для получения целой части частного в результате деления используется операция div. Дробная часть не выводится, например (14 ) (div ) (3 ) (= ) (4).
Для того, чтобы получить в результате деления остаток, используется операция mod.
Например, (14 ) (mod ) (3 ) (= ) (2).
Попробуем написать программу на языке программирования Паскаль, которая вычислит сумму цифр трёхзначного числа.
Будем использовать операции div и mod.
Пусть введённое число с клавиатуры – (x).
Получим первую цифру числа: (x ) (div ) (100).
Вторую цифру: (x ) (mod) (100 ) (div ) (10).
Третью цифру: (x ) (mod) (10).
Например, с клавиатуры ввели число (238).
(238 ) (div ) (100 ) (= ) (2)
(238 ) (mod ) (100 ) (div ) (10 ) (= ) (3)
(238 ) (mod ) (10 ) (= ) (8)
После нужно будет сложить полученные результаты и вывести ответ на экран.
В чем заключается вопрос: Что такое операции 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, в прошлой части мы говорили об математических операциях, сегодняшние функции тоже по сути ими являются. Поехали =)
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.
- program chislo;
- var
- a,b: integer;
- begin
- a:= 4321;
- b:= a div 1000;
- a:= a-b*1000;
- end.
Теперь напишем команду вывода с новой строки.
Тем самым мы разделили число на тысячи и вывели сколько содержится в нем тысяч, теперь тоже самое проделаем для сотен, десятков и единиц, изменив лишь пару значений и вывод.
И добавим команду вывода в самое начало
- program chislo;
- var
- a,b: integer;
- begin
- a:= 4321;
- writeln( ‘ Число ” ‘+a+’ ” состоит из’ );
- b:= a div 1000;
- a:= a-b*1000;
- writeln( b+’ тысячи’ );
- b:= a div 100;
- a:= a-b*100;
- writeln( b+’ сотен’ );
- b:= a div 10;
- a:= a-b*10;
- writeln( b+’ десятков’ );
- b:= a div 1;
- a:= a-b;
- writeln( b+’ единиц’ );
- end.
Запустим программу и увидим его выполнение
- Число “4321” состоит из
- 4 тысячи
- 3 сотен
- 2 десятков
- 1 единиц
Заключение
Вот и все на сегодня, думаю принцип работы понятен. Если что не так, сильно не ругайте, а пишите в комменты что и как. В следующей статье начнем изучение ветвящихся алгоритмов.
Всем спасибо.
Пока =)
Так как в воскресенье на сайте открывается новая рубрика — решение задач, мы с вами должны по-быстрому изучить основную часть математических операций, функций и процедур.
Давайте разберемся, что такое функция и процедура. Это подпрограмма — часть программы, выполняющая определенный алгоритм и допускающая обращение к ней из различных частей общей программы. В чем же разница между процедурой и функцией?
Процедуры — мини-программы.
Процедуры используются в случаях, когда в подпрограмме необходимо получить несколько результатов. Из картинки, расположенной ниже вы видите, как работает процедура. Входных данных может не быть вовсе, а может быть сто.
Например, программист хочет в своем суперкоде между блоками выходящих значений прописывать 20 амперсандов. Чтобы облегчить себе задачу, он напишет простую подпрограмму.
Функции в Паскале — мега переменные.
Функции отличается от процедуры тем, что после выполнения функции на ее месте в коде ставится одно число, буква, строка и т.д. Набор встроенных функций в языке Паскаль достаточно широк. Например, для того, чтобы подсчитать квадрат числа можно воспользоваться стандартной функцией sqr(x). Как вы, наверное, уже поняли sqr(x) требует лишь один фактический параметр — число.
Обратите внимание! Функции необходимо присваивать! Просто написав их в тексте программы, как процедуры, вы ничего не добьетесь!
Структура функции представлена на картинке ниже.
Если в программу необходимо включить новую уникальную функцию, ее надо описать также, как процедуру. Более подробно о том, как делать собственные процедуры и функции, мы поговорим через 10 уроков. Ниже вы видите таблицу основных стандартных функций и процедур в Паскаль.
Имя
Тип аргумента
Результат вычисления
Пример
Abs(x)
Целый или Вещ.
Модуль х
Abs(-6) = 6
Sqrt(x)
Вещественный
Корень из х
Sqrt(25)=5
Sqr(x)
Целый и Вещ.
Квадрат х
Sqr(5)=25
Power(x, a)
Вещественный
Значение х а
Power(5,3)=125
Frac(x)
Вещественный
Дробная часть х
Frac(5.67)=0.67
Sin(x)
Вещественный
Синус х
Sin(45)=0.8509
Cos(x)
Вещественный
Косинус х
Cos(45)=0.5253
Arctan(x)
Вещественный
Арктангенс х
Arctan(5)=1.3734
Int(x)
Вещественный
Целая часть х
Int(5.67)=5.0
Random(x)
Целый
Случайное число (0..х-1)
Random(5)=4
Succ(x)
Порядковый
Следующий
Succ(10)=11
Pred(x)
Порядковый
Предыдущий
Pred(‘Z’)=’Y’
Inc(x, a)
Целый
X:=X+A
Inc(5)=6
Dec(x, a)
Целый
X:=X-A
Dec(25,20)=5
Trunc(x)
Вещественный
Целая часть х
Trunc(5.67)=5
Round(x)
Вещественный
Округление х до целого
Round(5.67)=6
Важно! Если х = 5.5, то результат – 6, а если х = 6.5, то результат тоже 6!?
Очень странная ошибка.
Операции div и mod.
Иногда нам требуется найти частное либо же остаток от деления. В такие моменты на помощь нам приходят такие операции, как div и mod. Заметим, что эти операции выполняются только над целыми числами.
Для того, чтобы найти частное от деления, мы используем операцию div.
- 25 div 20 = 1;
- 20 div 25 = 0;
- 39 div 5 = 7;
- 158 div 3 = 52.
Для того, чтобы найти остаток от деления, мы используем операцию mod.
- 25 mod 20 = 5;
- 20 mod 25 = 0;
- 39 mod 5 = 4;
- 158 mod 3 = 2.
Чтобы окончательно понять, с чем мы имеем дело, решим следующую задачу:
Задача 1. Найти сумму цифр двухзначного числа.
Так как эта задача очень простая, мы с вами обойдемся блок-схемой и программой.
Блок-схема
Задача 2. Найти сумму цифр трехзначного числа.
Чуть усложненная версия предыдущей задачи. Самая большая сложность — вторая цифра.
Приоритет div и mod больше, чем приоритете + и -. Поэтому в данной программе можно обойтись без скобок.