Деление без div и mod - Turbo Pascal
Формулировка задачи:
написать программу которая без помощи div и mod делит целые числа
я написал, но если поставить целочисленный тип, программа не работает
Решение задачи: «Деление без div и mod»
textual
Листинг программы
var a, b, c, d: Word; begin repeat ReadLn(a,b); until (a<=$7fff) and (b<=$7fff); while a>=b do begin Inc(d); b:=b shl 1; end; repeat Dec(d); b:=b shr 1; while a>=b do begin Dec(a,b); Inc(c,1 shl d); end; until d=0; WriteLn('частное: ',c,' остаток: ',a); end.
Объяснение кода листинга программы
В данном коде задача состоит в делении двух чисел без использования операций деления и остатка. В первой строке объявляются четыре переменные: a, b, c и d типа Word. Затем в цикле repeat-until считываются два числа a и b с помощью функции ReadLn. Цикл while a>=b выполняет сдвиг числа b вправо на единицу и инкрементирует переменную d. Затем в цикле repeat-until выполняется обратный сдвиг числа b на единицу и уменьшение числа a на единицу с помощью функции Dec. Цикл while a>=b выполняет перенос единицы из числа a в число c с помощью операции инкремента и сдвига на число d. В конце программы выводится частное c и остаток a.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д