На этой странице дано решение примеров Integer1 - Integer5 из задачника Абрамяна, в которых рассматривается преобразование простейших единиц измерения (1 - 3), а также расположение отрезков (4 - 5). Во всех примерах используется операция div деления нацело или mod - взятие остатка от целочисленного деления.
Integer1. Дано расстояние L в сантиметрах. Используя операцию деления нацело, найти количество полных метров в нем (1 метр = 100 см).
var
L: integer; { L - целочисленный тип данных }
begin
write('L = ');
readln(L); { <-- Вводим количество сантиметров }
writeln;
{ Выводим результат: L div 100 - целая часть при
делении L на 100, остаток отбрасывается }
writeln('Количество полных метров: ', L div 100);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647A **div** B
- целочисленное деление А на В Integer2. Дана масса M в килограммах. Используя операцию деления нацело, найти количество полных тонн в ней (1 тонна = 1000 кг).
var
M: integer; { M - целое количество килограмм }
begin
write('M = ');
readln(M); { <-- Вводим количество килограмм }
writeln;
{ Количество полных тонн равно [M/1000] - целая
часть при делении на 1000: }
writeln('Количество полных тонн = ', M div 1000);
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647A **div** B
- целочисленное деление А на В Integer3. Дан размер файла в байтах. Используя операцию деления нацело, найти количество полных килобайтов, которые занимает данный файл (1 килобайт = 1024 байта).
var
B: word; { B - количество байт }
begin
writeln('Введите размер файла (в байтах):');
readln(B); { <-- Вводим количество байт }
writeln;
writeln('Количество полных килобайтов: ', B div 1024);
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535A **div** B
- целочисленное деление А на В Integer4. Даны целые положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию деления нацело, найти количество отрезков B, размещенных на отрезке A.
var
A, B: word; { A, B - длины отрезков }
begin
write('A = ');
readln(A); { <-- Вводим A }
write('B = ');
readln(B); { <-- Вводим B, B < A }
writeln;
{ Очевидно, что количество отрезков B, которое помещается
на отрезке A, равно целой части при делении A на B: }
writeln('Отрезок длиной ', B, ' на отрезке длиной ', A,
' помещается ', A div B, ' раз');
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535A **div** B
- целочисленное деление А на В Посмотрите, как эта задача решается в примере While2.
Integer5. Даны целые положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию взятия остатка от деления нацело, найти длину незанятой части отрезка A.
Как упоминалось в задании Integer4 , количество максимально размещенных на А отрезков В равно A div B
. Поэтому можно было бы сначала найти общую длину занимаемых В отрезков - B*(A div B)
, а потом найти остаток как разницу: A - B*(A div B)
. Но поскольку А и В - целые, то можно просто найти остаток при делении А на В: A mod B
.
program Integer5;
var
A, B: word; { A, B - длины отрезков есть целые числа }
begin
write('A = ');
readln(A); { <-- Вводим A (длина первого отрезка) }
write('B = ');
readln(B); { <-- Вводим B (длина второго отрезка), B < A }
writeln;
{ Поскольку (A div B) - количество помещающихся
на A отрезков B, то (A mod B) - остаток: }
writeln('Длина незанятой части: ', A mod B);
readln
end.
**type** word;
: Представляет 16-битовое целое число без знака.Диапазон значений: 0 .. 65 535A **mod** B
- остаток при целочисленном делении А на В Посмотрите, как эта задача решается с помощью оператора While в примере While1.