IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Free Pascal Discussion :

Problème pour mettre en lien mes fonctions et mes procédures


Sujet :

Free Pascal

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème pour mettre en lien mes fonctions et mes procédures
    Bonsoir,
    Ayant du mal à terminer mon programme, je me tourne vers vous.
    En effet, je n'arrive pas à relier mes fonctions et procédures afin de faire fonctionner mon programme qui est un quizz.
    Si vous avez quelques questions sur ce que j'ai voulu faire n'hésitez pas. (sachant que la procedure son et Tour2 ne sont pas terminées)
    Merci d'avance.

    Quizz.pas

  2. #2
    Responsable Pascal, Lazarus et Assembleur


    Avatar de Alcatîz
    Homme Profil pro
    Ressources humaines
    Inscrit en
    Mars 2003
    Messages
    7 937
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ressources humaines
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 7 937
    Points : 59 417
    Points
    59 417
    Billets dans le blog
    2
    Par défaut
    Bonjour et bienvenue,

    J'imagine que, depuis le 08/12, tu as dû avancer sur ton programme ? Sur le code source incomplet que tu as posté, voici quelques remarques.

    Tout d'abord, il n'y a pas de rapport fonctionnel entre le menu et le chargement du contenu des fichiers. Je retirerais donc l'appel du menu de la fonction Qaleatoire et je le placerais dans le programme principal :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    {Programme Principal}
    begin
            Numero := Menu;
    	Qaleatoire(TabQR,Numero);
    	ChoixTour(Numero,TabQR);
    end.
    Je pense, soit dit en passant, que le nom de la fonction "Qaleatoire" ne décrit pas ce qu'elle fait : comme elle charge le contenu de trois fichiers, tu pourrais par exemple l'appeler "ChargementTabQR".

    Au niveau du menu, tu lis trois variables entières puis tu les convertis en caractères avant de les concaténer pour retourner une valeur de type chaîne de caractères. Ne serait-il pas plus simple de lire directement des caractères ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var reponse1, reponse2, reponse3 : Char;
     
    writeln('Entrez le chiffre correspondant');
    readln(reponse2);
    if (reponse2<>'1') and (reponse2<>'2') and (reponse2<>'3') then
       repeat
         writeln('Veuillez entrer une commande correcte');
         read(reponse2);
       until (reponse2='1') or (reponse2='2') or (reponse2='3');
     
    // Valeur de retour :
    Menu:=reponse2+reponse3;
    Ensuite, tu effectues un readln avant la boucle et un autre read dans la boucle (en cas de réponse incorrecte). Tu peux simplifier tout cela, par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    writeln('Entrez le chiffre correspondant :');
    repeat
      readln(reponse3);
      if (reponse3<>'1') and (reponse3<>'2') and (reponse3<>'3') then
         writeln('Veuillez entrer une commande correcte : ');
    until (reponse3='1') or (reponse3='2') or (reponse3='3');
    Il n'y a que trois valeurs possibles ('1', '2' ou '3') mais imagine que tu en aies 10. Avoue que l'écriture des tests devient fastidieuse ! Tu peux donc utiliser l'opérateur in :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    until (reponse1 in ['1'..'3']);
    Je n'ai pas trop regardé le reste car il y a de grandes chances que tu l'aies retravaillé entre temps.
    Règles du forum
    Cours et tutoriels Pascal, Delphi, Lazarus et Assembleur
    Avant de poser une question, consultez les FAQ Pascal, Delphi, Lazarus et Assembleur
    Mes tutoriels et sources Pascal

    Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
    La tolérance atteindra un tel niveau que les personnes intelligentes seront interdites de toute réflexion afin de ne pas offenser les imbéciles. [Fiodor Mikhaïlovitch Dostoïevski]

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/05/2007, 20h31
  2. Problème pour la création d'une fonction
    Par jipé95 dans le forum C
    Réponses: 5
    Dernier message: 10/12/2006, 14h28
  3. Problème pour mettre un TChart sur QReport pour l'impression
    Par ghan77 dans le forum Composants VCL
    Réponses: 14
    Dernier message: 25/01/2006, 13h28
  4. Probléme pour mettre un renommer dynamiquement les colonnes
    Par bragon dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo