Деление без 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.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4.25 из 5
Похожие ответы