Partage
  • Partager sur Facebook
  • Partager sur Twitter

L1 Algorithmique et Programmation

    28 décembre 2017 à 2:25:31

    Bonsoir,

    je suis en L1 SPI-EEA et comme vous pouvez le savoir , on a une matière qui est : 

    L1 Algorithmique et Programmation et avec laquelle j'ai beaucoup de mal.

    Est ce que quelqu'un aurait un site/livre/chaîne youtube à conseiller pour un débutant comme moi ?

    Ce que j' ai le plus de mal à comprendre ce sont les fonctions.

    Merci à vous.

    • Partager sur Facebook
    • Partager sur Twitter
      29 décembre 2017 à 15:36:41

      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        1 janvier 2018 à 23:12:34

        Okay je vous remercie je vais voir ça je reviendrais sur le forum si jamais j'ai des questions.
        • Partager sur Facebook
        • Partager sur Twitter
          3 janvier 2018 à 19:25:17

          Bonsoir, 

          Vous n'auriez pas un cours également sur les fonctions s'il vous plaît?

          Merci à vous.

          Ou sinon y'a également un exercice avec lequel j'ai du mal , si vous pouviez m'aider à sa résolution ce serait sympa svp merci.

          Voici l'exercice : 

          Cet exercice consiste à écrire un algorithme qui simule un jeu de dés. Le jeu commence par lancer deux dés et définir une valeur (la somme des deux dés) à éviter à tout prix. Le joueur va ensuite lancer les deux dés. Si la somme est différente de celle à éviter, il ajoute la valeur obtenue à son propre score.

          Si elle est égale à la valeur à éviter, le joueur a perdu. A chaque lancer, on affiche le score et on demande au joueur s'il veut continuer ou non.

          Exemples 

          Résultat du lancer : 2 et 5

          somme à éviter : 7

          résultat du lancer : 3 et 3

          score : 6

          voulez-vous rejouer (oui/non) ? oui

          résultat du lancer : 6 et 1 

          vous avez perdu!

          Merci à vous. 

          -
          Edité par mugen54 3 janvier 2018 à 19:38:03

          • Partager sur Facebook
          • Partager sur Twitter
            3 janvier 2018 à 20:11:59

            Vous n'auriez pas un cours également sur les fonctions s'il vous plaît?

            C'est quoi pour toi les fonctions ?

            Ou sinon y'a également un exercice avec lequel j'ai du mal

            Qu'as-tu déjà fait ? Et en quel langage l'as-tu implémenté ?

            • Partager sur Facebook
            • Partager sur Twitter

            Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

              3 janvier 2018 à 20:54:34

              C'est à dire quand ils demandent dans un exercice d'écrire en pseudo-code une fonction.

              J'ai du mal avec les "retourner"

              L'exercice c'est en pseudo-code et pour l'instant j'ai juste réussi à définir les variables

              mais pour le début de l'algo j'ai du mal.

              Merci à vous.

              • Partager sur Facebook
              • Partager sur Twitter
                3 janvier 2018 à 21:33:15

                J'ai fait ça vite fait en "pseudo code" (je ne sais pas si il y a des normes de pseudo code) :

                Fonction ValeurAEvitée =
                	Dé1 = Rand(0-6)
                	Dé2 = Rand(0-6)
                	renvoyer Dé1+Dé2
                Fin de Fonction
                
                Score = 0
                
                LABEL: Restart
                
                Dé1 = Rand(0-6)
                Dé2 = Rand(0-6)
                
                somme = Dé1+Dé2
                
                Si somme = ValeurAEvitée alors
                	Afficher "Perdu"
                	Score -= 1
                Sinon
                	Afficher "Vous avez gagné"
                	Score += 1
                	Afficher "Rejouer ? "
                	Replay = Question
                	Si Replay = oui alors
                		Aller au label Restart
                	Sinon
                		Afficher "Fin du jeu"

                J'espère que c'est claire :p

                Les "retourners" (return) servent a renvoyer le résultat d'une fonction en tant que variable ou constante.

                -
                Edité par vanaur 4 janvier 2018 à 23:34:21

                • Partager sur Facebook
                • Partager sur Twitter

                Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                  3 janvier 2018 à 23:06:05

                  Okay je vous remercie 

                  mais ça correspond à quoi "rand" ? 

                  merci à vous

                  • Partager sur Facebook
                  • Partager sur Twitter
                    3 janvier 2018 à 23:19:44

                    rand → random → aléatoire

                    rand(0-6) → nombre aléatoire entre 0 et 6, parce qu'un dé ne possède que 6 nombres

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                      4 janvier 2018 à 22:53:03

                      okay je vous remercie

                      On aurait pu le faire aussi sans fonction nan ?

                      -
                      Edité par mugen54 5 janvier 2018 à 1:20:07

                      • Partager sur Facebook
                      • Partager sur Twitter
                        4 janvier 2018 à 23:33:21

                        Oui, bien sûr, mais puisque tu disais avoir du mal avec les "retourner", j'ai faits un exemple qui les illustrait au travers de la fonction.

                        -
                        Edité par vanaur 4 janvier 2018 à 23:33:47

                        • Partager sur Facebook
                        • Partager sur Twitter

                        Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                          5 janvier 2018 à 1:19:52

                          Okay merci à vous.

                          Y'a aussi un autre exercice avec lequel j'ai du mal si ça vous dérange pas, c'est sur les tableaux 

                          Exercice : 

                          Ecrire un fragment d'algorithme (on ne demande pas d'écrire l'en-tête ni l'initialisation du tableau) qui affiche le contenu n entiers en respectant le format suivant. Les valeurs sont séparées par une virgule, et l'affichage commence et termine par un crochet

                          Par exemple, un tableau contenant cinq entiers de valeurs 4, 5, 12,-3 et 0 donnera l'affichage [4, 5, 12, -3, 0]

                          Merci à vous.

                          • Partager sur Facebook
                          • Partager sur Twitter
                            5 janvier 2018 à 8:15:27

                            L'utilisation d'une boucle sera alors requise, si ça peut te donner un indice. J'aimerais bien voir ce que tu as/vas faire pour résoudre l'exercice, c'est la meilleure façon d'entraîner. D'ailleurs si tu as des exercices, c'est que tu as vu de la matière par dessus, non ? Montre moi ce que tu as réaliser (ce n'est pas grave si il y a des erreurs ;) ), si tu ne sais pas ce que sont les boucles, tu peux toujours me demander ou aller voir sur internet, sachant qu'il y a plusieurs types de boucles, et qu'il y en aura une plus préférable à utiliser que les autres.
                            • Partager sur Facebook
                            • Partager sur Twitter

                            Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                              5 janvier 2018 à 22:32:49

                              sincèrement j'ai beau réfléchir je n"y rarrive pas lol 

                              vous n'auriez pas une piste ou quelque chose comme ça qui pourrait m'aider

                              Y' a un exercice sur les tableaux que l'on a corrigé en cours et que je ne comprends pas 

                              Exercice :

                              On rappelle que les différents caractères d'une chaîne de caractères peuvent être lus comme les cases d'un tableau. Ecrire des fonctions en pseudo langage pour réaliser les tâches suivantes : 

                              1) retourne Vrai si et seulement si son paramètre est un palindrome

                              Exemple : "radar" est un palindrome.

                              Voici la correction : 

                              Fonction palindrome(s : chaine de caractères) : booléen

                              Variables

                              n, i : entiers

                              Début

                              n <-- longueur [s]

                              Pour i allant de 0 à n/2 faire

                              si S[i] # S[n-i-1] alors

                              retourner Faux

                              Finsi

                              finpour

                              retourner Vrai

                              Fin

                              Finfonction

                              Si vous pouviez m'expliquer l'algorithme parce que je ne l'ai pas trop compris ce serait sympa ^^ 

                              merci à vous

                              • Partager sur Facebook
                              • Partager sur Twitter
                                5 janvier 2018 à 23:46:34

                                Tu peux me tutoyer si tu veux :)

                                On rappelle que les différents caractères d'une chaîne de caractères peuvent être lus comme les cases d'un tableau.

                                Vois les tableaux comme une série de cases possédantes des indexes, et dans lesquelles sont stoker des informations :

                                S : string = "radar"
                                → [r][a][d][a][r]

                                Les indexes de ce tableaux seraient alors :

                                0 -> [r]
                                1 -> [a]
                                2 -> [d]
                                3 -> [a]
                                4 -> [r]
                                // Il y a donc 5 caractères.

                                Retourne Vrai si et seulement si son paramètre est un palindrome

                                Un palindrome est un mot qui se lit dans les deux sans, voyons comment implémenter ça :

                                variables :
                                n : real
                                i : real
                                
                                n <-- longueur [S] 

                                On affecte la variable 'n' de la longueur de la chaine de caractère (radar → 5)

                                'n' aura alors comme valeur, la longueur de la chaine.

                                Pour i allant de 0 à n/2 faire
                                    si S[i] # S[n-i-1] alors
                                        retourner Faux
                                    Fin Si
                                Fin Pour

                                Si tu te souviens, on a déclaré plus haut la variable 'i', qui est du type integer, mais n'avait pas encore de valeurs.
                                La boucle Pour (comme je te le disais dans le message précédent) est celle qui va nous permettre de démarrer un conteur (ici, c'est 'i') allant de 0 à la moitié de la longueur de la chaine à vérifier ("radar", si je reprend l'exemple). Pourquoi la moitié ? Parce que les deux moitié d'un palindrome sont les mêmes.

                                Si les deux moitiés de la chaine entrée sont les mêmes, c'est que le mot est un palindrome, et c'est ce qu'on vérifie avec la condition (Si) :

                                Si S[i] # S[n-i-1] Alors
                                    retourner Faux
                                Fin Si

                                Si je traduis en langage plus compréhensible, cela donnerait ceci :

                                "Si la moitié de la chaine est différente (#) de l'autre moitié, alors la fonction renvoie Faux."

                                'S' étant (le tableau de) la chaine de caractère, et 'i' la valeur du conteur de la boucle, on vérifie si le caractère à l'indexe 'i' est le même que le caractère à l'indexe opposé, donc forcément, au bou du compteur, si un des caractères ne correspondait pas, on renvoyait Faux, puisque le mot n'aurait pas été un palindrome.

                                Il faut savoir que dès que tu renvoies une valeur, on quite la fonction, donc s'il n'y a pas eu de Faux qui a été renvoyé, la fonction peut continuer, et si elle continue, c'est implacablement parce qu'il n'y a pas eu d'erreurs, donc on peut renvoyer Vrai :

                                Retourner Vrai

                                Tu as mieux saisi le concept ?

                                _______________

                                Évidemment, j'ai simplifié les choses, et votre prof aussi, même si je n'aurais pas fait comme lui, son approche de diviser une chaine en 2 est bizarre, et n'est logiquement pas implémentable pour tous les cas de palindrome, m'enfin....

                                On dirait que votre prof (je ne sais pas si vous êtes plusieurs élèves) va vous faire de la prog fonctionnel, vu le pseudo-code qu'il vous a donné.

                                À mon avis, tu auras plus facile lorsque tu ferras du code concret. Rien ne vaut un petit bou de code qu'une grosse description !

                                LEXIQUE:

                                real → type entier
                                integer → type numérique indéfini
                                string → chaine de caractère
                                // → commentaire

                                -
                                Edité par vanaur 8 janvier 2018 à 20:39:51

                                • Partager sur Facebook
                                • Partager sur Twitter

                                Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                                L1 Algorithmique et Programmation

                                × 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