IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Algorithmes à programmer


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 10
    Par défaut Algorithmes à programmer
    Bonjour,

    J'ai un DM d'Informatique à faire, et j'éprouve quelques difficultés.

    Pourriez-vous me dire si ce que j'ai fait jusqu'à présent est correct ?

    Pourriez-vous corriger ce qui ne va pas s'il vous plaît ?

    Merci beaucoup par avance, j'ai vraiment besoin d'aide...

    Voici ce que j'ai fait (l'énoncé est ci-dessous) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    # Exercice 1 :
     
    def recherche_mot(texte, mot):
    	if len(mot)>len(texte):
    		return -1
    	else:
    		for i in range (len(texte)-len(mot)):
    			for j in range len (mot):
    				if texte[i]==mot[j]:
    		return i
     
     
    def modifier_mot (texte, mot, indice):
    	debut = texte[0:(indice-1)]
    	fin = texte[indice:]
    	return (debut+mot+fin)
     
     
    def chercher_et_remplacer (texte, mot1, mot2):
    	i=recherche_mot(texte,mot1)
    	return (modifier_mot(texte,mot2,i))
     
     
    # Exercice 2 :
     
    def cesar (texte,cle):
    	codage=[]
    	for lettre in range len(texte):
    		nombre=ord(lettre)-65
    		nombre2=(nombre+cle)%26
    		lettre2=chr(nombre2+65)
    		codage.append(lettre2)
    	codage="".join(codage)
    	return(codage)
     
     
    def dechiffrer (texte,cle):
    	codage=[]
    	for lettre in range len(texte):
    		nombre=ord(lettre)-65
    		nombre2=(nombre-cle)%26
    		lettre2=chr(nombre2+65)
    		codage.append(lettre2)
    	codage="".join(codage)
    	return(codage)
     
     
    def chercher (texte, element):
    	for i in range len(texte):
    		if texte[i] == "element":
    			return i
    		else:
    			return -1
     
     
    def nombre_apparitions (texte):
    	L1=texte.split(',')
    	for k in range len(L1):
    		L2[k]=0
    	for lettre in range (len(L1)):
    		if lettre=="L1[0]":
    			L2[lettre] = L2[lettre] + 1
    	return(L1,L2)
     
     
    def tri (L1,L2):
    	for i in range (1, len(L1)):
    		for i in range ((1, len(L2)):
    			tmp1=L1[i]
    			tmp2=L2[i]
    			j=i-1
    			while j<=0 and tmp1>L1[j]:
    				L1[j+1]=L1[j]
    				j-=1
    			L1[j+1]=tmp1
    			L2[j+1]=tmp2
    	return (L1,L2)
    Nom : exo1-dm.png
Affichages : 189
Taille : 123,0 Ko

    Nom : exo2-dm.png
Affichages : 190
Taille : 90,9 Ko

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par pythet Voir le message
    Pourriez-vous me dire si ce que j'ai fait jusqu'à présent est correct ?
    Pour savoir si une fonction fait le boulot attendu, vous définissez un jeu de tests qui vous permet de lancer la fonction avec des arguments prédéfinis et vous comparez ce que retourne la fonction au résultat attendu.

    Citation Envoyé par pythet Voir le message
    Pourriez-vous corriger ce qui ne va pas s'il vous plaît ?
    Ce sont les tests qui permettent de voir ce qui ne va pas.
    Et si vous ne comprenez pas comment corriger ou le pourquoi d'une erreur, çà pourrait être un bon sujet de discussion...

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 10
    Par défaut
    Merci pour votre réponse.

    Justement, en les testant on s'aperçoit qu'ils ne fonctionnent pas...

    Pourriez-vous donc m'aider à corriger ce qui ne va pas svp ?

    Merci beaucoup par avance et bonne soirée !

  4. #4
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    Bonsoir,

    En imaginant que vous n'avez pas d'autres possibilités que celles présentées lors de vos cours, c'est à dire l'utilisation pur et dur des index et des boucles (sans slices ou autres méthodes de chaînes de caractères).

    Quelques remarques,


    • appelez la fonction len et assignez sa valeur dans une variable dont le nom est bien choisi, tel que length_text, length_word, ...
    • admettez une autre situation, comme text == word et le résultat attendu pour la fonction
    • utilisez la concaténation, pour regrouper une liste de caractères en un mot qui pourra être comparé tel que mot1 == mot2.
    • votre manière de faire ne peut être correcte que si len(mot) vaut 1, donc prendre en considération la remarque précédente en créant un mot par concaténation (opérateur + entre deux caractères)
    • à première vue on y est presque, ce qui veut dire que ce qui vous manque est la concaténation, qui est une base de la construction des chaînes en python


    Je n'ai lu que la 1ère fonction.

    Bonne continuation...

  5. #5
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 10
    Par défaut
    Merci pour la réponse !

    C'est cela, nous ne pouvons utiliser que des boucles !

    Donc pour ma première fonction il n'y a que la concaténation à modifier ? Le "contenu" est correct ?

    Merci encore et bonne soirée.

  6. #6
    Expert confirmé
    Avatar de fred1599
    Homme Profil pro
    Lead Dev Python
    Inscrit en
    Juillet 2006
    Messages
    4 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Lead Dev Python
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2006
    Messages : 4 062
    Par défaut
    En tout cas la logique est interrompu dès lors où vous écrivez,

    car vous comparez toujours qu'un seul caractères. Votre objectif est de comparer n caractères où n vaut len(word)

    .

  7. #7
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Salut,

    Citation Envoyé par pythet Voir le message
    Justement, en les testant on s'aperçoit qu'ils ne fonctionnent pas...

    Pourriez-vous donc m'aider à corriger ce qui ne va pas svp ?
    Le code que vous avez posté devrait se planter dès la ligne 8 pour une erreur de syntaxe, car vous y avez écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for j in range len (mot):
    Et Python devrait vous sortir un message d'erreur assez clair en montrant le contenu de la ligne.

    Vous l'avez écrit correctement à la ligne précédente, vous devriez savoir la corriger ainsi que toutes les autres erreurs du même style qu'il y a dans votre code.

    Ensuite, il y a une dizaine de fonctions dans votre code, je ne vais pas lire l'énoncé pour imaginer quels tests leur faire passer: çà c'est votre boulot.

    Et si vous avez des soucis pour comprendre une erreur ou la corriger, à vous de décrire le soucis que vous avez plutôt que de compter sur nous pour le découvrir.

    Le seul intérêt de ce genre d'exercice est de vous faire pratiquer, faire faire votre boulot par d'autres n'a aucun intérêt: autant attendre le corrigé du prof.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  8. #8
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2019
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2019
    Messages : 10
    Par défaut
    J'ai mis des parenthèses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for j in range (len (mot)):
    C'est mieux ?

    Et ensuite, j'ai encore une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return i
        ^
    IndentationError: expected an indented block

  9. #9
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 743
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 743
    Par défaut
    Citation Envoyé par pythet Voir le message
    Et ensuite, j'ai encore une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    return i
        ^
    IndentationError: expected an indented block
    Ah ben, il faut vous rappeler que les "blocks" sont fondamentaux à Python... et réfléchir à quel block devrait appartenir cette instruction pour la mettre à sa place.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. programmer un algorithme
    Par lesguignols dans le forum Algorithmes et structures de données
    Réponses: 21
    Dernier message: 28/05/2010, 01h40
  2. cours d'algorithme /programmation
    Par bidule123456 dans le forum Etudes
    Réponses: 6
    Dernier message: 08/08/2007, 17h52
  3. cherche l'algorithme d'un programme en language java
    Par rafik larbi dans le forum Langage
    Réponses: 19
    Dernier message: 06/06/2006, 21h05
  4. algorithme pour programmation linéare en nombre entier
    Par kious dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 09h17
  5. Programmation algorithme branch and bound en C
    Par mca_183 dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 13/01/2006, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo