A voir également:
- Notation
- Notation player - Télécharger - Création musicale
- Crescendo notation musicale - Télécharger - Création musicale
- Notation musician - Télécharger - Création musicale
- Notation binaire - Guide
- Notation étoile excel - Forum Powerpoint
2 réponses
Utilisateur anonyme
Modifié le 30 juil. 2017 à 15:51
Modifié le 30 juil. 2017 à 15:51
Bonjour
comme il s'agit d'un algorithme en pseudo code, j'ai déplacé ta question dans le bon forum, cependant, par la suite je vais revenir au fait que tu l'as posté en C++
je suis incapable de noter sur 5, mais sur 1 oui:
Hormis l'incertitude sur l'index de départ (0 comme en C++, Java, C#, Delphi, etc.. ou 1 comme en VB si on le précise), en supposant que la division utilisée pour n/2 est une division entière donc tronque le résultat, ton algo ne marche pas.
En supposant que la division arrondit, ça ne marche pas non plus.
Au lieu de te servir de 2 variables, x et y, il ne t'en faut qu'une.
De plus dès que x ne vaut plus 0, il faut sortir de la boucle, ça n'est pas la peine de continuer. Là, on va évidement rentrer des palindromes de petite taille. 10 itérations au lieu de 2, c'est pas la mer à boire.
Mais imagine que tu doives faire un traitement compliqué sur 2 millions d'images, le but étant d'en trouver une qui ne correspond pas à une condition.
Si cette image est la 5eme, tu vas en calculer 1 999 994 pour rien.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
comme il s'agit d'un algorithme en pseudo code, j'ai déplacé ta question dans le bon forum, cependant, par la suite je vais revenir au fait que tu l'as posté en C++
je suis incapable de noter sur 5, mais sur 1 oui:
- 0 ça marche pas
- 1 ça marche.
variables n,x,y : entier mot : chaine debut ecrire("entrer un mot : ") lire(mot) 'je saisie kayak n:=len(mot) 'longueur de mot = 5 x:=0 y:=1 pour i=1 à n/2 'pour i = 1 (à supposer donc que l'index de départ est 1, pour la majorité des langages dont C++, l'index de départ est 0) à 2.5 (tronqué à 2 ou arrondi à 3?, on va supposer 2) lettre1 = milieu(mot,i,1)'juste pour décortiquer lettre2 = milieu(mot,n-i+1,1) si lettre1 = lettre2 alors 'pour i = 1 : lettre1 = k, lettre2 = k => x = 1, y reste à 1 'pour i = 2 : lettre1 = a, lettre2 = a => x = 1, y reste à 1 x:=1 sinon y:=0 finsi finpour si y:=0 alors 'dans le cas d'un palindrome y vaut 1 ecrire("Bravo! ce mot est un palindrome") sinon ecrire("Désolé, ce mot n'est pas un palindrome") finsi fin
Hormis l'incertitude sur l'index de départ (0 comme en C++, Java, C#, Delphi, etc.. ou 1 comme en VB si on le précise), en supposant que la division utilisée pour n/2 est une division entière donc tronque le résultat, ton algo ne marche pas.
variables n,x,y : entier mot : chaine debut ecrire("entrer un mot : ") lire(mot) 'je saisie kayak n:=len(mot) 'longueur de mot = 5 x:=0 y:=1 pour i=1 à n/2 'pour i = 1 (à supposer donc que l'index de départ est 1, pour la majorité des langages dont C++, l'index de départ est 0) à 2.5 (tronqué à 2 ou arrondi à 3?, on va supposer 3) lettre1 = milieu(mot,i,1)'juste pour décortiquer lettre2 = milieu(mot,n-i+1,1) si lettre1 = lettre2 alors 'pour i = 1 : lettre1 = k, lettre2 = k => x = 1, y reste à 1 'pour i = 2 : lettre1 = a, lettre2 = a => x = 1, y reste à 1 'pour i = 3 : lettre1 = y, lettre2 = y => x = 1, y reste à 1 x:=1 sinon y:=0 finsi finpour si y:=0 alors 'dans le cas d'un palindrome y vaut 1 ecrire("Bravo! ce mot est un palindrome") sinon ecrire("Désolé, ce mot n'est pas un palindrome") finsi fin
En supposant que la division arrondit, ça ne marche pas non plus.
Au lieu de te servir de 2 variables, x et y, il ne t'en faut qu'une.
si lettre1 different lettre2 alors x = x + 1 finsi
De plus dès que x ne vaut plus 0, il faut sortir de la boucle, ça n'est pas la peine de continuer. Là, on va évidement rentrer des palindromes de petite taille. 10 itérations au lieu de 2, c'est pas la mer à boire.
Mais imagine que tu doives faire un traitement compliqué sur 2 millions d'images, le but étant d'en trouver une qui ne correspond pas à une condition.
Si cette image est la 5eme, tu vas en calculer 1 999 994 pour rien.
Quand j'étais petit, la mer Morte n'était que malade.
George Burns
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
30 juil. 2017 à 15:23
30 juil. 2017 à 15:23
Bonjour,
Le problème avec les algorithmes c'est qu'il n'y a pas de règles universelles pour les écrires. Ici tu utilises des notations qui sont peut être connues de toi et ton prof mais que nous on ignore, donc on pourrait considérer que c'est faux alors que c'est vrai, et inversement on pourrait supposer que quelque chose est vrai alors que ton prof ne va pas le comprendre et ce sera faux.
De plus ça dépendra de ton niveau et ce que tu es censé savoir ou non.
En l'état ça ne vaut pas 5 c'est sûr, il y a plusieurs incohérences, même si dans l'esprit l'algorithme est le bon à part que son résultat est faux.
Je me lance, je dirais 3 (peut être 2 selon le niveau d'exigence).
Le problème avec les algorithmes c'est qu'il n'y a pas de règles universelles pour les écrires. Ici tu utilises des notations qui sont peut être connues de toi et ton prof mais que nous on ignore, donc on pourrait considérer que c'est faux alors que c'est vrai, et inversement on pourrait supposer que quelque chose est vrai alors que ton prof ne va pas le comprendre et ce sera faux.
De plus ça dépendra de ton niveau et ce que tu es censé savoir ou non.
En l'état ça ne vaut pas 5 c'est sûr, il y a plusieurs incohérences, même si dans l'esprit l'algorithme est le bon à part que son résultat est faux.
Je me lance, je dirais 3 (peut être 2 selon le niveau d'exigence).
30 juil. 2017 à 15:42
vu le code précédent c'est qu'il faut mettre car est réservé à l'affectation. Idem avec la boucle pour lequel on devrait avoir pour affecter i.
De plus, on ne sait pas ce qu'est censé faire et si ton prof connaît cette instruction, mais cela ressemble à un substring de 1 caractère, ce qui est inefficace, il vaudrait mieux utiliser une instruction qui récupère un seul caractère.
Et toujours selon le niveau d'exigence que l'on te demande d'avoir, il faudrait créer une fonction séparée pour le calcul du palindrome et ne pas y mélanger les instructions ecrire/lire qui sont là uniquement à des fins de tests (potentiellement inutile donc).
De plus il faudrait manipuler des booléens vrai/faux plutôt que les entiers 0/1 comme tu fais avec x et y.
30 juil. 2017 à 16:19