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.
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]
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.
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...
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 ^^
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
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.
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...
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...
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...
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...
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...
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...
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...