Inscription / Connexion Nouveau Sujet
Niveau Licence-pas de math
Partager :

Algorithmique des Tableaux dans Programmation

Posté par
Sokkok
11-02-22 à 18:02

Bonjour , j'ai un exercice sur algorithmique des tableaux avec la programmation (Python) qui liée avec Math aussi ,
En fait ,j'ai pas très bien compris comment algorithm marche c'est à dire le code marche. j'ai la correction aussi, et je ne comprends pas pourquoi le code la fin quand on returne s ça donne 8 ? je sais on prend la valeur 7 + 1 sur n = 5741 mais je ne vois pas trop comment le code marche.

Pourriez vous m'expliquer en détaille s'il vous plaît.

Voici Exercise :
--------------------
Écrire une fonction (sommeChiffresRangPair) qui retourne la somme des chiffres de rang pair d'un nombre entier n passé en paramètre (le chiffre le plus à droite est considéré comme étant de rang 0). Par exemple, si n vaut 5741, la fonction retournera 8, c'est-à-dire 7 + 1.
-----------------------
Code correction :

def sommeChiffresRangPair (n):
    s = 0
    while n > 0:
        s += n % 10
        n //= 100
    return s

Posté par
carpediem
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:06

salut

ben il suffit d'exécuter ce code à la main avec un papier et un crayon

tour 0 : s = 0 et n = 5741
tour 1 : s = 0 + 1 = 1 et n = 57
tour 2 : s = 1 + 7 = 8 et n = 0
fin

Posté par
carita
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:16

bonsoir

(le chiffre le plus à droite est considéré comme étant de rang 0).

donc les chiffres de rang pair seront, pour 5741, les chiffres 1 et 7.

s += n % 10     

n%10 (modulo 10) va retourner le reste de la division de 5741 par 10
soit n%10 = 1
s += n % 10       cette instruction va ajouter ce reste à s

n //= 100  retourne le résultat entier de la division de n par 100 et le met dans n
si tu veux, cette instruction est équivalente à celle-ci : n = n//100

donc, après cette instruction, n contiendra 57.
...

Posté par
Sokkok
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:16

J'ai testé mais je toujours pas compris une chose

j'ai compris le tour 1 s : 0 +1 = 1 car on prend 5741 % 10 donc on obtient le reste 1

mais pour le tour 2  : s = 1 + 7 = 8 ???

Posté par
carita
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:17

oups
bonsoir carpediem
j'aurais du rafraichir la page...

Posté par
Sokkok
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:20

carita Oui  c'est lors j'ai fait calcul sur le papier j'ai trouvé  57 aussi le problème j'ai du mal à comprendre comment algorithm marche pour obtenir 8.

Posté par
Sokkok
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:24

carpediem C'est bon merci beaucoup ,

je vois pourquoi je suis bloqué parce que j'ai oublié on doit prendre la valeur du deuxième tour c'est à dire tour 2  qui n = 57 % 10 donc obtient le rest 5 et la valeur du tour 1 qui contient s = 1 donc 1+7 = 8

Posté par
carita
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:26

1 + 7 = 8 on est d'accord

ce qu'il faut bien savoir, c'est que l'opérateur composé +=
réalise 2 opérations en même temps : l'addition, ET l'affectation

s += n % 10    peut s'écrire plus simplement

s = s + n%10  ==> je calcule n%10  et j'additionne (je cumule) le résultat trouvé avec le contenu déjà existant de s

au 1er tour : s contient 1
au second tour, 57%10 = 7  ==> s va contenir 1 + 7, soit 8

Posté par
carita
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:26

ok messages croisés.

Posté par
Sokkok
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:28

Désolé 57%10 = 7

Merci beaucoup à vous deux pour explication

Posté par
carpediem
re : Algorithmique des Tableaux dans Programmation 11-02-22 à 18:54

de rien



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !