Операции целочисленного деления и нахождения остатка от деления в Паскаль
Автор: Виктор Трофимов, МОУ гимназия №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);
Автор: Александр Чернышов
Оцените статью, это очень поможет развитию сайта.
В прошлом, первом уроке о паскале мы обсудили структуру программы и самые первые операторы, а также служебные слова. Сегодня я расскажу про основные операторы, с помощью которых уже можно написать первую программу.
X-это переменная, пусть она будет равна 2, в программе это будет выглядеть так:
Я думаю, что Вы уже заметили, что на деле она выглядит, как двоеточие со знаком равно (:=).
Операторы сложения, вычитания и умножения
На второе у нас пойдут операторы сложения, вычитания и умножения.
Сложение
С помощью данного оператора мы можем сложить два числа, в программе он пишется, как «+» без кавычек:
Тут мы переменной X присвоили 11, полученное сложением 5 и 6.
Вычитание
В этом операторе тоже ничего сложного нет, он выполняет вычитание двух чисел. В программе обозначается, как «-» без кавычек:
Выше мы x присвоили 3, полученное действием вычитания чисел 7 и 4.
Умножение
Данный оператор умножает два числа друг на друга, обозначается, как «*» также без кавычек:
В примере мы нашей переменной X присвоили число 16, полученное умножением восьми на два.
Простое деление выполняется с помощью оператора вида /, он просто делит одно число на другое. Данный оператор работает только с типом real!
В примере мы x присвоили 9,6, посредством деления 48 на 5.
2. Целочисленное деление
Данное делит число только на цело, то есть при таком способе деления невозможно получить десятичную или периодическую дробь. В программе пишется, как «div» без кавычек. Данный оператор работает только с типом integer!
В данном примере x у нас будет равно в итоге 9, а не 9,6, как это должно получиться при нормальном обычном делении.
3. Получение остатка
Данный способ позволяет получить не само число, которое должно получится, а остаток. Допустим при делении 48 на 5 мы получим 3 при таком способе деления. В программе обозначается, как «mod» без кавычек:
Теперь давайте попробуем написать простейший калькулятор, который выполняет с нашими двумя числами все действия сразу.
Итак, сегодня мы познакомились с операторами сложения, вычитания, умножения, тремя операторами деления, а также оператором присваивания. После сегодняшнего урока вы уже можете создавать свои простейшие программы на счёт.
Pascal: Занятие №1. Часть 3: Типы данных в Паскаль
Типы данных в Паскале
Паскаль — это типизированный язык программирования. Это означает, что переменные, в которых хранятся данные, имеют определенный тип данных. Т.е. программе напрямую надо указать, какие данные могут храниться в той или иной переменной: текстовые данные, числовые данные, если числовые — то целочисленные или дробные, и т.п. Это необходимо в первую очередь для того чтобы компьютер «знал», какие операции можно выполнять с этими переменными и как правильно их выполнять.
Например, сложение текстовых данных, или как это правильно называется в программировании — конкатенация — это обычное слияние строк, тогда как сложение числовых данных происходит поразрядно, кроме того, дробные и целые числа складываются тоже по-разному. То же самое касается и других операций.
Рассмотрим наиболее распространенные в 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 | |||||||||||||||||||||||||||||||||||||||||||||
Pascal | PascalABC.NET | |||||||||||||||||
ДЕЙСТВИЕ | РЕЗУЛЬТАТ | СМЫСЛ |
---|---|---|
2 + 3 | 5 | плюс |
4 — 1 | 3 | минус |
2 * 3 | 6 | умножить |
17 div 5 | 3 | целочисленное деление |
17 mod 5 | 2 | остаток от целочисленного деления |
Порядок выполнения операций
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:
Более сложное использование процедуры inc:
Inc(x,n) где x — порядкового типа, n — целого типа; процедура inc увеличивает x на n.
Пример использования функции odd:
begin WriteLn(Odd(5));
Пример использования процедуры sqr в Pascal:
var x:integer; begin x:=3; writeln(sqr(x)); <ответ 9>end.
Однако в компиляторе pascal abc возведение в степень осуществляется значительно проще:
Пример использования процедуры sqrt в Pascal:
var x:integer; begin x:=9; writeln(sqrt(x)); <ответ 3>end.
Как пишется остаток в паскале
Операции div и mod определены только для целочисленных операндов. Приведем пример их использования:
Примеры арифметических выражений мы приведем после рассмотрения стандартных функций языка Паскаль.
Табл. 3.2. Стандартные функции языка Паскаль
аргумента и результата
Модуль аргумента x
Integer (I) или Real (R)
Квадрат аргумента x
Остальные тригонометрические функции выражаются через эти
Экспонента и натуральный логарифм
Квадратный корень от аргумента x
Функция без аргументов, вернет число p
Функция отбрасывает дробную часть аргумента, аргумент не округляется
аргумент R, результат I
дробную часть своего
Округление вещественного числа до ближайшего целого
аргумент R, результат I
В табл. 3.2 x обозначает любую подходящую по типу переменную, либо результат вычисления выражения соответствующего типа, либо соответствующий по типу результат, вычисленный другой стандартной функцией.
Приведем примеры арифметических выражений.
Тип выражения определяется старшим из типов входящих в него операндов (т. е., стандартных функций, переменных, констант). Старшинство типов можно определить по табл. 2.1, напомню, что в первой строке таблицы находится самый младший тип.
Например, для переменных
выражение i +4* j имеет целый тип, и его результат можно записать в целую переменную. Выражение f + i *0.5 дает вещественный, результат, который должен быть записан в вещественную переменную.
Основы PascalABC.NET
Содержание
Синтаксис программ [ править ]
Минимальная структура программы:
Константы [ править ]
В данной секции располагаются определенные пользователем константы. Синтаксис объявления констант выглядит так:
Секция «var» [ править ]
Данная секция предназначена для переменных и массивов. Переменные объявляются так:
Простейшие типы [ править ]
Тип строка [ править ]
Операция | Описание |
---|---|
s1 + s2 | Объединение строк |
s1*n | Дублирование строки n раз |
Тип целое число integer [ править ]
Тип вещественное число real [ править ]
Декларация переменной типа real:
Пример присваивания переменной данного типа:
Тип символ [ править ]
Тип символ или «char» используется в основном для хранения одного любого символа вне зависимости от того, является ли данный символ буквой или цифрой. Объявление переменной символьного типа:
Данный раздел программы содержит все команды, выполняемые при ее запуске. Данная секция программы выглядит так:
Комментарии [ править ]
Массивы [ править ]
P. S. Для работы с массивами существует учебный модуль Arrays.
Статические [ править ]
Статические массивы имеют фиксированный размер. Общий синтаксис объявления данных массивов выглядит так:
Матрицы [ править ]
Двумерные [ править ]
, где N, M количество строчек и столбцов соответственно.
Трехмерные [ править ]
Трехмерный матрицы обладают третьим измерением:
N-мерные матрицы [ править ]
Декларация N-мерной матрицы:
, где A..Z означают количество элементов в соответствующем измерении.
Статические и динамические массивы [ править ]
Динамические массивы позволяют управлять количеством элементом в каждом из их измерений во время выполнения программы.
Пример объявления массива: | Статический | Динамический | Вызов SetLength (для динамического массива) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Векторный |
N-мерный массив | Общий синтаксис указания элемента массива | Пример | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Векторный |
Операция | Эквивалент в Паскале |
---|---|
≤ (меньше или равно) | |
≥ (больше или равно) | >= |
> (больше) | > |
= (равно) | = |
≠ (не равно) | <> |
Общий синтаксис сравнения двух величин:
Оператор case [ править ]
Оператор case используется для сопоставления значения некоторого выражения с константными значениями:
Оператор цикла while [ править ]
Оператор цикла позволяет выполнять группу операторов (или один) циклически пока условие является истинным.
Счетчик [ править ]
Оператор break [ править ]
Для выхода из цикла можно использовать break:
Новая итерация цикла [ править ]
Для завершения текущей итерации цикла и начала другой используйте оператор continue.
Функции [ править ]
Общий синтаксис описания функции:
Можно устанавливать значение переменной Result для указания возвращаемого значения.
Теперь вы знаете какие однокоренные слова подходят к слову Как пишется остаток в паскале, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как пишется остаток в паскале", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.