Algo pour faire la division entre 2 entier positifs sans MOD/DIV
elkhadra
Messages postés
10
Statut
Membre
-
nicocorico Messages postés 846 Statut Membre -
nicocorico Messages postés 846 Statut Membre -
Bonjour,
je veux un algo/programme qui permet de faire la division entre 2 entier positifs sans utiliser le DIV et le MOD (trouver le quotient de la division et son reste)
Merci
j'ai essayer avec cette algo mais j'ai un problème pour 24/2 j'obtiens qt=11.5 et reste=1:
je veux un algo/programme qui permet de faire la division entre 2 entier positifs sans utiliser le DIV et le MOD (trouver le quotient de la division et son reste)
Merci
j'ai essayer avec cette algo mais j'ai un problème pour 24/2 j'obtiens qt=11.5 et reste=1:
program division;
uses wincrt;
var x,y,i,reste:integer;
qt:real;
begin
writeln('entre 2 nombre entier positifs');
readln(x,y);
if y>x then begin
x:=x+y;
y:=x-y;
x:=x-y;
end;
if x=y then
begin
qt:=1;
reste:=0;
end;
for i:=1 to x do
begin
if (x/i)=y then
begin
qt:=x/y;
reste:=0;
end
else
begin
qt:=(x-1)/y;
reste:=1;
end;
end;
writeln('le quotient de la division est ',qt:0:2,' et le reste est ',reste);
end.
A voir également:
- Div en algorithme
- Algorithme euromillion excel gratuit - Forum Excel
- Un algorithme sur excel ou un logiciel à programmer - Forum Logiciels
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Algorithme : toutes les combinaisons possibles dans un tableau de 2 par 7 ✓ - Forum VB / VBA
- Div c++ - Télécharger - Langages
2 réponses
Bonjour,
Heeu, le but est de se passer de la division ou bien de réellement éviter "div"? Car la fonction "/" est un div en virgule flottante, la division est donc toujours là...
Si l'idée est bien de se passer de la division, il ne reste plus qu'à compter le nombre d'occurrences de cette manière:
Heeu, le but est de se passer de la division ou bien de réellement éviter "div"? Car la fonction "/" est un div en virgule flottante, la division est donc toujours là...
Si l'idée est bien de se passer de la division, il ne reste plus qu'à compter le nombre d'occurrences de cette manière:
program division;
uses wincrt;
var x,y, qt:integer;
begin
writeln('entre 2 nombre entier positifs');
readln(x,y);
Qt:= 0;
// On calcule x/y par itération en comptant simplement le nombre de passages
While x >= y do
begin
Dec(x, y);
Inc(Qt);
end;
// x contient le reste et Qt le quotient.
writeln('le quotient de la division est ',qt,' et le reste est ', x);
end.
et contrairement a ton programme celui-ci marche bien avec les entiers négatifs , je veux dire que si on fait la division de -28 sur 3 il va dire que qt=-9 et reste=-1
mais dans ton prog il écrit qt=0 , reste=-28
voila le prgm:
Et là ton résultat est juste bien sûr, mais je ne comprend pas le rapport avec l'énoncé? Il m'a semblé comprendre que tu voulais un programme effectuant une division sans utiliser la fonction de division, et donc par itération...
Or, ton programme ne fait rien d'autre que d'utiliser la division dans ce cas, non?
En fait au lieu d'utiliser "div" tu utilises sa version en virgule flottante qui s'écrit "/", et tu tronques le résultat, revenant à l'utilisation d'un "div" donc...
Ton programme revient strictement à ça:
Donc tu utilises ce que tu ne dois pas utiliser dans ton exercice!
Mets ton énoncé si tu veux, on sera fixé sur ce qui t'es demandé précisément...
Merci a toi , mais j'ai pas encours compris le principe de l'itération !