Операции целочисленного деления и нахождения остатка от деления в Паскаль
Автор: Виктор Трофимов, МОУ гимназия №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);
Автор: Александр Чернышов
Оцените статью, это очень поможет развитию сайта.
Проверка делимости одного числа на другое
Вводятся два целых числа не равных нулю. Проверить делится ли первое на второе. Вывести на экран сообщение об этом, а также остаток (если он есть) и частное (в любом случае).
Pascal
Язык Си
Python
проверка на делимость python
КуМир
Basic-256
var a,b: integer;
begin
readln(a);
readln(b);
if a mod b = 0 then
writeln(a,’ делится на ‘, b)
else begin
writeln(a,’ НЕ делится на ‘, b);
writeln(‘Остаток: ‘, a mod b);
end;
writeln(‘Частное: ‘, a div b);
end.
678
4
678 НЕ делится на 4
Остаток: 2
Частное: 169
680
5
680 делится на 5
Частное: 136
main() <
int a,b;
scanf(«%d%d»,&a,&b);
if (a%b == 0) printf(«%d делится на %d», a, b);
else <
printf(«%d НЕ делится на %d\n», a, b);
printf(«Остаток: %d», a%b);
>
printf(«\nЧастное: %d\n», a/b);
>
1011
11
1011 НЕ делится на 11
Остаток: 10
Частное: 91
455
5
455 делится на 5
Частное: 91
проверка на делимость python
a = int(input())
b = int(input())
if a%b == 0:
print(«%d делится на %d» % (a,b))
else:
print(«%d не делится на %d» % (a,b))
print(«Остаток: %d» % (a%b))
print(«Частное: %d» % (a//b))
678
23
678 не делится на 23
Остаток: 11
Частное: 29
678
3
678 делится на 3
Частное: 226
алг делимость
нач
цел a,b
ввод a,b
если mod(a,b) = 0 то
вывод a, » делится на «, b, нс
иначе
вывод a, » НЕ делится на «, b, нс
вывод «Остаток: «, mod(a,b), нс
все
вывод «Частное: «, div(a,b)
кон
144 14
144 НЕ делится на 14
Остаток: 4
Частное: 10
234 3
234 делится на 3
Частное: 78
input a
input b
if a%b = 0 then
print a + » делится на » + b
else
print a + » не делится на » + b
print «Остаток: » + (a%b)
endif
print «Частное » + a\b
567
10
567 не делится на 10
Остаток: 7
Частное 56
675
3
675 делится на 3
Частное 225
Делится ли число на 2,3,5
Установить, что: число n четное делится на 7, но не делится на 11 и 13 без остатка
Составить логические выражения, которые вступят значения TRUE (истина) только тогда, когда.
Если а делится на b или b делится на а, то вывести 1, иначе— любое другое число
Даны два целых числа а и b. Если а делится на b или b делится на а, то вывести 1, иначе— любое.
Найти натуральное число M такое, что M делится на N и сумма цифр M делится на N
256 мегабайт, 2 секунды Задано натуральное число N (1 ≤ N ≤ 100 000). Найдите натуральное.
Если a делится на b или b делится на a, то вывести 1, иначе – любое другое число
Доброго времени суток! В С++ недавно, но в универе уже задали такие задачи: 4)Даны два целых.
Если число делится на 6, то оно делится на 2 и на 3. Доказать на ИП 1-ого порядка
Чтобы доказать утверждение что если число делится на 6, то оно так делится на 2 и на 3, я введу.
Дано натуральное число n. Получить все такие натуральные q, что n делится на q2 и не делится на q3
Дано натуральное число n. Получить все такие натуральные q, что n делится на q2 и не делится на q3
Проверить гипотезу: если сумма цифр числа делится на 3, то и само число делится на 3
Проверить гипотезу: если сумма цифр числа делится на 3, то и само число делится на 3.
Число делится на 11, если разность между суммой цифр на четных и нечетных местах делится на 11
Число делится на 11, если разность между суммой цифр на четных и нечетных местах делится на 11.
Дано целое число N. Найдите все такие целые числа d, что N делится на d2 и не делится на d3.
Вроде все норм работает, по крайней мере числа находит, но почему-то если ввожу большие числа, моя.
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.
делиться число А на В без остатка
Помогите пожалуйста.
Не могу составить программки)
1.Даны числа А и В. Написать программу, которая будет проверять, делиться число А на В без остатка.
2.Написать программу нахождения произведения чисел, общий член которых равен (3*n-2)
1*4*7*10*. (3*n-2)
Очень нужна ваша помощь)
Заранее спасибо
Среди двузначных чисел найти те, сумма цифр которых равна n(0 3
эх, а подумать))
есть такие замечательные операции как div и mod
mod остаток от деления (10 mod 3=1)
div целочисленное деление (10 div 3=3)
Добавлено через 32 минуты
Процедуры: вывести трехзначные числа, сумма цифр которых делиться на 7, и само число делиться на 7
Ребят, нуждаюсь в помощи. Составить программу с применением процедур, которая выводит.
Как определить, делится ли число на «3» без остатка, не используя деления и определения остатка от деления
Написать подпрограмму, которая определяет, делится ли число на «3» без остатка, не используя.
Определите делится ли число десятков на число единиц без остатка
Определите делится ли число десятков на число единиц без остатка. Если делится, то определите.
Теперь вы знаете какие однокоренные слова подходят к слову Как написать в паскале не делится, а так же какой у него корень, приставка, суффикс и окончание. Вы можете дополнить список однокоренных слов к слову "Как написать в паскале не делится", предложив свой вариант в комментариях ниже, а также выразить свое несогласие проведенным с морфемным разбором.