Partage
  • Partager sur Facebook
  • Partager sur Twitter

[ERREUR DE DEBUTAN]1 er code: elaboration d'un Qcm

    21 février 2013 à 21:51:58

    Bonsoir,

    Dans le cadre d un pré mémoire j ai décider de me lancer et faire ma propre app sur ios

    L application est un QCM ( enfin j espére), elle est constitué:

    - de 2 label l un affichant la question et l autre la réponse

    - de 3 boutons : 1 pour vrai, 1 pour faux et le dernier pour afficher la question suivante

    Voila donc ce 1 er code:

    //
    //  XYZViewController.m
    //  Anatomie 1 vue
    //
    //  Created by Adrien Bara on 21/02/13.
    //  Copyright (c) 2013 Adrien Bara. All rights reserved.
    //

    #import "XYZViewController.h"

    @interface XYZViewController ()

    @end

    @implementation XYZViewController

    - (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
    {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self){
       
        // Créons 2 tableaux et armons les poiteur sur eux
       
        omTabQuest = [[NSMutableArray alloc]init];
        omTabRepon = [[NSMutableArray alloc]init];
       
       
        // Insertion des QUESTION REPONSE dans le Tableaux
        [omTabQuest addObject:@""];
        [omTabRepon addObject:@""];
        [omTabQuest addObject:@""];
        [omTabRepon addObject:@""];
        [omTabQuest addObject:@""];
        [omTabRepon addObject:@""];
        }


    //renvoi l adresse de l objet
        return self;

    }

    // Passer a la question suivante et revenir a la 1er
    - (IBAction)questionsuivante:(id)sender
    {
        indiceQuestCour++;
        if (indiceQuestCour == [omTabQuest count])
            indiceQuestCour = 0;
        }
       
    //lions la chaine a cette indice dans le tableaux des qu

    NSString *chaineQ = [omTabQuest objectAtIndex:indiceQuestCour];
    NSLog(@"affichage de la question: %@", chaineQ);

    //affichons la chaine dans le champ question
    [ovChampQuest setText:chaineQ];

    //vidon le champ de la reponse
    [ovChampRepon setText:@"???"];
     
     // Si vrai

     - (IBAction)vrai:(id)sender
    if (vrai == omTabRepon)
    {
    [ovChampRepon setText:@"correct"];
    else
    [ovChampRepon setText:@"faux"];
    }

     //si faux

     - (IBAction)faux:(id)sender

       if (faux == omTabRepon)
    {
    [ovChampRepon setText:@"correct"];
       else
    [ovChampRepon setText:@"faux"];
    }
    @end

    Voila les zone en rouge me pose problèmes...

    La première vient du fait que x code ne reconnait pas indiceQuestCour...

    La seconde est plus honteuse je ne sais poser une condition :/

    Enfin dernier problème qui est peut être lié au second... je dois donner des valeurs a mes boutons vrai et faux et je ne sait pas comment...

    Étant un xtrem noob en programmation,

    Je remercie par avance ceux qui prendrons le temps de me lire.

    • Partager sur Facebook
    • Partager sur Twitter
      22 février 2013 à 13:49:21

      1. IndicQuestCour doit être déclaré doit le .h

      @property (nonatomic, assign) int indicQuestCour;

      et le .m

      @synthesize indicQuestCour;

      Enfin  déclare le quelque part c'est pour ça qu'il est pas reconnu.

      2. En fait je crois que t'as un problème d'algo, tu dois faire :

      SI (champsReponse == (tableauReponse valeurAIndex:indicQuestCour))

      ALORS

      "OK"

      SINON

      "PAS OK"

      en gros tu compares "vrai" (on sait pas ce qu'il fout là) avec un tableau (omTabRepons).

      Faut que tu fasses un truc comme 

      if ([[omTabRepons objectAtIndex:indicQuestCour] isEqualToString:ovChampRepons.text])

      {

      // ton traitement

      }

      Tu regardes la valeur du tableau à l'index i et tu compares avec la valeur du champs texte du uilabel.

      • Partager sur Facebook
      • Partager sur Twitter
      Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
        22 février 2013 à 18:34:09

        Merci beaucoup, je vais essayer ça

        Douwee

        (je n arrive plus a me connecter au siteduzero :/ )

        • Partager sur Facebook
        • Partager sur Twitter
          22 février 2013 à 18:37:26

          c est curieux, je n arrive pas a me connecter mais pourtant il affiche mes messages a mon nom....bref

          J essai ça et je vous donne des nouvelles en espérant que celle ci soit bonne ;)

          • Partager sur Facebook
          • Partager sur Twitter
            22 février 2013 à 19:41:10

            Bon j ai régler le 1 er problème sans soucis, le 2 eme par contre je patauge...

            si quelqu'un a quelques conseils je suis preneur. Je n ais pas bien compris notamment comment relier la réponse a mes 2 boutons vrai et faux.

            N hésiter pas a m’arrêter si je dit des bêtises.

            -
            Edité par Douwee 22 février 2013 à 19:53:55

            • Partager sur Facebook
            • Partager sur Twitter
              23 février 2013 à 10:56:38

              Bonjour,

              A quoi correspond vrai et faux (en plus, créer deux éléments d'une même classe avec le même nom n'est pas top (vrai et la fonction vrai))? 

              -
              Edité par Lestrot 23 février 2013 à 10:57:49

              • Partager sur Facebook
              • Partager sur Twitter
                23 février 2013 à 12:15:49

                Pour le moment je les ais juste déclaré dans .h tel quel :

                {
                    int indiceQuestCour;
                   
                    NSMutableArray *omTabQuest;
                    NSMutableArray *omTabRepon;
                    IBOutlet UILabel *omChampQuest;
                    IBOutlet UILabel *omChampRepon;
                }

                @property (weak, nonatomic) IBOutlet UILabel *question;
                @property (weak, nonatomic) IBOutlet UILabel *reponse;


                - (IBAction)faux:(id)sender;
                - (IBAction)vrai:(id)sender;



                - (IBAction)questionsuivante:(id)sender;

                @end

                Ma question: comment relié une IBAction au tableau omTabRepon ? je suis tomber sur les booléen dans la documentation du zéro mais je ne sais absolument pas les utiliser.

                Dans mon idée je pouvais attribuer une valeur 1 a vrai 0 a faux et faire de meme pour le tableau réponse puis les comparer.

                très grossièrement je pensais a ça:

                si (tableauReponse == valeurUIButton);

                {

                [omChampRepon setText:@"Correct"]

                else

                [omChampRepon setText:@"Incorrect"]

                }

                Je commence a comprendre mes incohérences vienne t elle du .h devrais je déclarer mes 2 bouton comme des outlet puis leur attribuer des bool  ?

                • Partager sur Facebook
                • Partager sur Twitter
                  23 février 2013 à 20:05:40

                  Une IBAction est une action liée à l'UI (genre tu relies un IBAction sur un bouton sur l'event OnTouchEventUpInside par)

                  Je pensais avoir été assez clair sur mon point 2) en fait je vais préciser :

                  - tu relies une IBAction à ton bouton (bon ça apparemment tu l'as déjà fait)

                  - quand le clic est fait : tu fais :

                  SI la valeur du champs réponse EGAL valeur de l'objet dans le tableau tableauReponse à l'index courant

                  ALORS blabla

                  SINON blabla

                  C'est une histoire de tableau là pour le moment tu compares un tableau avec un champs NSString (techniquement même un UIBUtton) ce qui est super incohérent.

                  Revoie les structures de base et reposte si tu captes toujours pas on va pas te taper le code non plus lol

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!
                    24 février 2013 à 14:31:08

                    Oui sans problème merci beaucoup du temps que vous m'avez accorder,

                    vous m avez éclairci sur plusieurs point, je vais potasser tout ça, cela reste encore très abstrait pour moi.

                    Gros remerciment au site du Zero pour la diffusion gratuite et pédagogique du savoir ( d ailleurs je compte m acheter le livre sur les app ),

                    et ses membres pour leur gentillesses et leur patiences (vous êtes au top;) ).

                    • Partager sur Facebook
                    • Partager sur Twitter
                      10 mars 2013 à 23:11:43

                      Bonsoir je pense avoir bien avancer mais je continue de bloquer...

                      Comment comparer l'index i a la valeur du champs texte du uilabel ?

                      Le champs texte du uilabel est il automatiquement déclaré  ?

                      • Partager sur Facebook
                      • Partager sur Twitter
                        11 mars 2013 à 16:11:21

                        Voila une de mes tentatives:


                        - (IBAction)vrai:(id)sender;

                        {
                            NSArray *vrai = [ NSArray arrayWithObject:@"vrai"];
                           
                            if ([[omTabRepon objectAtIndex:indiceQuestCour] isEqualToArray:vrai])
                            {
                               
                                [omChampRepon setText:@"Correct"];
                            }
                          
                            else
                                [omChampRepon setText:@"incorrect"];
                        }

                        • Partager sur Facebook
                        • Partager sur Twitter
                          12 mars 2013 à 10:38:12

                          En fait je pense que tu devrais juste revoir les bases de la programmation même et pas forcément le langage.

                          isEqualToArray?.. pk tu fais ça? Pourquoi pour vérifier la valeur d'un élément d'un tableau (une chaine de caractère) que tu le compares avec un tableau?

                          • Partager sur Facebook
                          • Partager sur Twitter
                          Si mon aide vous a été utile, merci de mettre le sujet en résolu et mettre mon post en avant. Cheers!

                          [ERREUR DE DEBUTAN]1 er code: elaboration d'un Qcm

                          × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                          × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                          • Editeur
                          • Markdown