ВВЕРХ
ВНИЗ

Деление нацело и взятие остатка

На этой странице дано решение примеров Integer1 - Integer5 из задачника Абрамяна, в которых рассматривается преобразование простейших единиц измерения (1 - 3), а также расположение отрезков (4 - 5). Во всех примерах используется операция div деления нацело или mod - взятие остатка от целочисленного деления.

Integer1. Дано расстояние L в сантиметрах. Используя операцию деления нацело, найти количество полных метров в нем (1 метр = 100 см).

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
var
  L: integer; { L - целочисленный тип данных }

begin
  write('L = ');
  readln(L); { <-- Вводим количество сантиметров }
  writeln;
  { Выводим результат: L div 100 - целая часть при 
  делении L на 100, остаток отбрасывается }
  writeln('Количество полных метров: ', L div 100);
  readln
end.

Integer2. Дана масса M в килограммах. Используя операцию деления нацело, найти количество полных тонн в ней (1 тонна = 1000 кг).

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
var
  M: integer; { M - целое количество килограмм }

begin
  write('M = ');
  readln(M); { <-- Вводим количество килограмм }
  writeln;
  { Количество полных тонн равно [M/1000] - целая 
  часть при делении на 1000: }
  writeln('Количество полных тонн = ', M div 1000);
  readln
end.

Integer3. Дан размер файла в байтах. Используя операцию деления нацело, найти количество полных килобайтов, которые занимает данный файл (1 килобайт = 1024 байта).

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
var
  B: word; { B - количество байт }

begin
  writeln('Введите размер файла (в байтах):');
  readln(B); { <-- Вводим количество  байт }
  writeln;
  writeln('Количество полных килобайтов: ', B div 1024);
  readln
end.

Integer4. Даны целые положительные числа A и B (A > B). На отрезке длины A размещено максимально возможное количество отрезков длины B (без наложений). Используя операцию деления нацело, найти количество отрезков B, размещенных на отрезке A.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
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.

Посмотрите, как эта задача решается в примере 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.

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
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.

Посмотрите, как эта задача решается с помощью оператора While в примере While1.




Яндекс.Метрика