Division pascal

Résolu/Fermé
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. Modérateur
    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
    1. 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
      1. merci beaucoup pour vos réponse mais j'ai une autre question,
        je souhaiterai avoir un code pour pouvoir simplifier des fraction,merci
        0
        1. Modérateur
          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
          1. 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