Notation
Fermé
theniet
-
Modifié le 30 juil. 2017 à 14:48
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 30 juil. 2017 à 16:19
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 30 juil. 2017 à 16:19
A voir également:
- Notation
- Notation player - Télécharger - Création musicale
- Notation binaire - Guide
- Notation musician - Télécharger - Création musicale
- Crescendo notation musicale - Télécharger - Création musicale
- Notation par étoile - Forum PHP
2 réponses
Whismeril
Messages postés
19028
Date d'inscription
mardi 11 mars 2003
Statut
Non membre
Dernière intervention
24 avril 2024
931
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
16734
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
24 avril 2024
3 015
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