Другие языки программирования и технологии

паскаль. помогите понять одну формулу в программе. внутри...

Вот условия программы:

Имеется 9-ти этажный дом. На каждую лестничную площадку выходит 4 квартиры. Создать программу, которая по номеру квартиры определяет номер подъезда и этаж.

к - это квартика, р - подъезд, е - этаж.

собственно непонятны две формулы по которым находят подъезд и этаж. можете объяснить на более понятном языке как это действует, находится.

щас скину скрин с кодом.
Anuar Tulegenov
Anuar Tulegenov
40
Здесь надо знать математику, что такое частное и остаток.
div целочисленное деление
mod делит но в результате остаток от деления
Алексей Ширшиков
Алексей Ширшиков
72 971
Лучший ответ
Если тебе непонятно, почему там -1 и +1, так это потому, что квартиры и этажи нумеруются с 1, а не с 0, потому мы сначала вычитаем единицу, а потом в конце прибавляем обратно после вычислений.
Сергей Ефремов
Сергей Ефремов
60 088
Давай от обратного мыслить у нас дом в котором икс подъездов
9 этажей
по 4 квартиры на площедке
если количество квартир одинаково на всех 9 этажах тогда
в каждом подъезде 9*4=36 квартир
то есть чтобы определить номер подъезда нужно получить целое от деления на 36
иными словами можно тупо отнимать 36 если число больше 36
есть функция div которая выполняет целочисленное деление
Дальше номер подъезда у нас получиться индексирован с нуля то есть чтобы актуальный номер подъезда с единицы получить нужно добавить единицу.
дальше размышлять устал.
В общем проще написать код чем разбираться в чужом
Влад Алипов
Влад Алипов
85 878
(k-1)div 36 -количество целых подъездов вмещающих 36 квартир, при к=36 получаем
число 0,те 36 квартира полностью попадает в 0 подъезд, что в нашей обычной нумерации есть 1 подъезд, поэтому +1 в конце добавляем. (к-1) потому что 36 квартира должна быть в 0 подъезде, вместе с 35.
Аналогичные рассуждения и по этажам, операция mod оставляет количество квартир не вместившихся в целые подъезды а деление на 4 дает этаж (с 0,поэтому +1).