Division pascal

Résolu/Fermé
zak1050 -  
yahyakz123 Messages postés 16 Statut Membre -
Bonjour,
voilà je suis nouveau question pascal et je voudrais savoir pourquoi ce code si simple est faux??
Code :
program fois(output);
var a,b,c : integer;
begin
readln (a) ;
readln (b) ;
c := a/b ;
writeln('egal a ',c,'!!') ;
readln ;
end.

ils me mettent "erreur type mismatch
merci
Configuration: Aidez moi plz

5 réponses

  1. KX Messages postés 19031 Statut Modérateur 3 020
     
    Dans un premier temps, il te faut trouver le pgcd entre le numérateur et le dénominateur, puis tu simplifie en haut et en bas par ce nombre (p=pgcd(a,b); a'=a/p; b'=b/d; et a/b=a'/b')
    function pgcd(a,b:integer):integer;
    begin
    if b=0	then result:=a
    	else result:=pgcd(b,a mod b);
    end;
    
    type quotient = record
    		a,b:integer
    		end;
    
    function simplifier(q:quotient):quotient;
    var p:integer;
    begin
    p:=pgcd(q.a,q.b);
    result.a:=q.a div p;
    result.b:=q.b div p;
    end;
    Remarque : selon ce que tu veux faire, il faudrait rajouter des conditions pour prendre en compte les cas où numérateur et/ou dénominateur sont négatifs ou nuls...
    2
  2. chuka Messages postés 980 Statut Membre 379
     
    Salut,
    je connais pas le pascal mais:
    Si a et b sont des entiers, le résultat a/b ne sera pas un entier(a part si a=b), or 'c 'est declaré comme entier.....
    @+
    0
  3. KX Messages postés 19031 Statut Modérateur 3 020
     
    utilise a div b pour avoir le quotient de la division euclidienne et a mod b pour avoir le reste...
    exemple : 7 div 2=3 et 7 mod 2=1 car 7=2*3+1

    pour avoir un résultat "exact" : utilise var r:real; a,b:integer; r:=real(a)/real(b);
    exemple : real(7)/real(2)=3.5
    0
  4. zak1050
     
    merci beaucoup pour vos réponse mais j'ai une autre question,
    je souhaiterai avoir un code pour pouvoir simplifier des fraction,merci
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. yahyakz123 Messages postés 16 Statut Membre 2
     
    salut,

    c'est très facile de faire la division en tp7
    tu dois avoir des variable declaré en réel(real) et pas entier(integer)

    yahyakz123
    0