programmation en pascal "aidez moi svp"
Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

programmation en pascal "aidez moi svp"



  1. #1
    invite8fa7543b

    programmation en pascal "aidez moi svp"


    ------

    1tp : soit l’ expression suivante : a and b or not c
    Etablir la table de vérité de cette expression en utilisant :
    -des simples affectations
    -des boucles for
    -des boucles while
    2tp : soit un graphe représentant les différentes villes d’un pays
    Ecrire un programme qui gère les différents voyages en répondant aux questions du genre :
    -l’existence d’un chemin entre deux villes
    -la distance à parcourir entre deux villes
    -tous les chemins entre 2 villes en précisant les différentes distances
    -le chemin le plus cour entre deux villes

    -----

  2. #2
    cristolab

    Re : programmation en pascal "aidez moi stp"

    Bonjour,

    Pour ton TP1. Je te propose en fait de créer un Type Tableau de Boolean Tridimensionnel qu'il faudra ensuite alimenter avec des boucles toute betes.

    Code:
    ...
    type TTabVerite = array [False..True, False..True, False.. True] of Boolean;
    ...
    function MaFonction(a,b,c : Boolean) : Boolean;
    begin
      Result := (a and b) or not c;
    end;
    ...
    procedure RemplirTableVerite;
    var
      ACpt, BCpt, CCpt : boolean;
      MaTabledeVerite  : TTabVerite;
    
    begin
      For ACpt := False to True do begin
        For BCpt := False to True do begin
          For Cpt := False to True do begin
            MaTabledeVerite[ACpt,BCpt,CCpt] := MaFonction(ACpt,BCpt,CCpt);
          end;
        end;
      end;
    end;
    (Tu peux remplacer à souhait, les boucles For par des while si c'est nécessaire pour ton exo)
    Ensuite il ne te reste plus qu'a améliorer un peu la dernière procédure pour afficher proprement le résultat, mais ta table de vérité est rempli !

    Pour le TP2 Ca m'a l'air un peu plus sioux que le précédent.
    Les graphes j'en ai fait en cours il y a 10 ans de ca, c'est un peu loin, mais pour implémenter une telle notion il faut forcément passer par des listes dynamiques ou équivalent.
    SI tu connais un peu la programmation objet en Pascal tu peux commencer par créer une classe TRoute, qui contiendra 3 propriétés : Sa longueur (integer par exemple) , Sa ville de Depart (Pointeur sur TVille), Sa Ville d'Arrivee (Pointeur sur Tville).
    Tu peux créer une Classe TVille (qu'il faudra déclarer une 1ere fois en forward avant d'avoir déclarer le Type TRoute).
    Cette classe TVille aura donc les propriétés que tu souhaites (nom, etc..) mais surtout une liste dynamique de pointeurs vers des objets TRoutes.
    Quand tu créeras une route d'une Ville A vers une Ville B, il faudra donc créer une Instance de TRoute, lui donner sa distance, et lui affecter les références respectives des Villes A et B... Ensuite Ajouter cette nouvelle Instance TRoute dans la liste des routes de l'instance Ville A ainsi que dans celle de l'instance Ville B.
    Ensuite il te reste à implémenter les méthodes (les fonctions et procédures) de tes classes ...
    Voilà moi c'est comme çà que j'aborderai à peu prés le problème.
    Par contre si tu es encore en turbo pascal, pour les listes Dynamiques, il va peut être falloir que tu les créer toi même... Alors que sous Delphi il existe plusieurs classes de liste très pratique !

    Bon Courage !

  3. #3
    invite8fa7543b

    Re : programmation en pascal "aidez moi stp"

    Citation Envoyé par cristolab Voir le message
    ... Je te propose ...
    "merci bcp"


    .
    Dernière modification par gienas ; 25/04/2009 à 18h01. Motif: Réparé et raccourci la citation

  4. #4
    yoda1234

    Re : programmation en pascal "aidez moi stp"

    @ chouchoutik:

    Je te rappelle certaines règles: http://forums.futura-sciences.com/ph...ces-forum.html
    Les forumeurs ne sont pas là pour pallier à une certaine forme de paresse. Tu n'as même eu la décence de montrer que tu avais un peu travaillé.
    De plus, ton premier message n'était pas très courtois et donc hors charte.
    Je te rappelle le passage qui te concerne:
    La courtoisie est de rigueur sur ce forum : pour une demande de renseignements bonjour et merci devraient être des automatismes.
    Merci d'en tenir compte à l'avenir
    Là où l'ignorance est un bienfait, c'est de la folie d'être sage (Thomas Gray).

  5. A voir en vidéo sur Futura
  6. #5
    invite8fa7543b

    Re : programmation en pascal "aidez moi svp"

    pour le premier tp j'aimerai bien que vous m'aidez a modifier mon programme celui qui concerne la boucle "whille".
    programme TDV3;
    Code:
    uses crt;
    var a,b,c: boolean;
    begin
    clrscr;
    a:=false;
    While a=false do
    begin
    for b:=false to true do
    for c:=false to true do
    writeln (a and b or not c);
    a=true;
    end;
    a:=true;
    while a=true do
    begin
    for b:=false to true do
    for c:=false to true do
    writeln (a and b or not c);
    a:=false;
    readln;
    end;
    readln;
    end.
    Dernière modification par yoda1234 ; 27/04/2009 à 21h07.

  7. #6
    invite8fa7543b

    Re : programmation en pascal "aidez moi svp"

    je veu le rendre parfait.

  8. #7
    cristolab

    Re : programmation en pascal "aidez moi svp"

    Salut,



    Code:
    uses crt;
    
    var a,b,c: boolean;
    // penses à indenter ton code (plus lisible, moins d'erreur)
    begin
    clrscr;
    a:=false;
    // boucle inutile, tu devrais avoir un WARNING ou un HINT lors de la compilation 
    
    //  a=false en pascal ca equivaut à not a
    While a=false do
    begin
    for b:=false to true do
    for c:=false to true do
    writeln (a and b or not c);
    // ???  a:= True ! 
    a=true;
    end;
    // Inutile , on vient de le faire
    a:=true;
    // a = true equivaut à a
    while a=true do
    begin
    for b:=false to true do
    for c:=false to true do
    writeln (a and b or not c);
    a:=false;
    // Inutile
    readln;
    end;
    readln;
    Bon... Comment dire...
    D'abord tes While ne servent à rien du tout !
    Ensuite ton résultat va être une suite de 1 et de 0 qui ne voudront rien dire (ajoute le contenu de a, b et c à ton writeln pour chaque resultat )
    Je te conseille de remettre le for à la place des while a.
    Et tu peux utiliser un while pour demander si on réaffiche la table de vérité ou non !

    Code:
    var
      continuons : boolean;
      strResultat : String;
    
    ////////////////////////////////////////////////////
    function BoolToStr(param : Boolean) : String
    begin
      if Param then 
        Result := '1'
      else
        Result := '0';
    end;
    
    ////////////////////////////////////////////////////
    begin
    continuons := True;
    while continuons do 
      begin
        for a ...
          for b...
            for c...
              writeln ('[a]=' + BoolToStr(a) + ';[b]=' + ...
            ...
        write ('Voulez vous recommencer ? (o/n) :');
        readln(strResultat);
        continuons := ( strResultat = 'o' );
      end;
    end.
    Inspire toi de ce code, mais ne copie pas directement car j'ai rien testé !

    Bon Courage

  9. #8
    invite8fa7543b

    Exclamation Re : programmation en pascal "aidez moi svp"

    g commencé a travaillé le 2éme tp é voila mon trvail,je voudrais un conseil de votre part:
    program graphe;
    uses crt;
    type probleme=record
    existance: boolean;
    distance_entre_ville: integer;
    chemin_le_plus_court: string;
    end;
    indice=(annaba,alger,djijel,co nstantine,setif);
    mat = array[indice,indice] of probleme;
    var i,j:indice; m:mat; tr:boolean;
    begin
    tr:=false;
    if i=j then m[i,j]:=tr
    else m[i,j]:=not tr;
    redaln;
    writeln('entrez les deux villes');
    m[annaba,alger].probleme.distance_ entre_ville:=600;
    m[annaba,contantins].probleme.distance_ entre_ville:=156;
    m[annaba,djijel].probleme.distance_ entre_ville:=255;
    m[annaba,setif].probleme.distance_ entre_ville:=287;
    m[alger,setif].probleme.distance_ entre_ville:=300;
    m[alger,constantine].probleme.distance_ entre_ville:=431;
    m[alger,djijel].probleme.distance_ entre_ville:=359;
    m[setif,constantine].probleme.distance_ entre_ville:=131;
    m[setif,djijel].probleme.distance_ entre_ville:=137;
    m[constantine,djijel].probleme.distance_ entre_ville:=141;
    readln;
    writeln ('le chemin les plus court');
    m[annaba,alger].probleme.le_chemin_plus_court :=????
    *pour la 2 éme kestion le programme n'a pa accepté l'instruction
    else m[i,j]:=not tr;il me donne l'indication suivante:type mismatch!!!
    malgré ke je considére ke ce ke g écrit é juste.
    *pour la 3 kestion g aucune idée pour commencé le travail!!
    ce ki m'étonne c' le choix entre la défintion du chemin le plus court par la dimension des villes ou de la route ki méne entre les villes??
    est il possible de déclaré un de ces deux choix dans l'entete
    merci.

  10. #9
    invite8fa7543b

    Re : programmation en pascal "aidez moi svp"

    en tp2 la 3 kestion est:le chemin le plus court.

  11. #10
    JPL
    Responsable des forums

    Re : programmation en pascal "aidez moi svp"

    chouchoutik : pour une bonne lisibilité les codes doivent être indentés, ce qui permet aussi d'éviter des erreurs (regarde ce qu'a écrit cristolab) et présentés ici dans une balise Code
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. aidez-moi svp
    Par inviteb4c4eeec dans le forum Technologies
    Réponses: 4
    Dernier message: 05/04/2009, 16h38
  2. [Divers] Aidez-moi svp
    Par invite4be6fefd dans le forum Biologie
    Réponses: 1
    Dernier message: 10/02/2009, 15h45
  3. aidez moi svp !!
    Par pegas111 dans le forum Sécurité et malwares : désinfectez votre machine
    Réponses: 20
    Dernier message: 22/06/2008, 10h59
  4. aidez moi svp
    Par invite433dfdc9 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 28/08/2006, 09h27
  5. aidez moi svp!!
    Par invite90c5841c dans le forum Orientation après le BAC
    Réponses: 3
    Dernier message: 28/11/2004, 18h05
Découvrez nos comparatifs produits sur l'informatique et les technologies.