Partage
  • Partager sur Facebook
  • Partager sur Twitter

Exercice assembleur et dictionnaire python

    7 janvier 2020 à 22:46:28

    Bonjour, actuellement en première et j’ai 16ans et fais comme spécialité nsi mais je vous avouerez que je suis un peu perdu, il y a cette exercice avec le quel j’ai du mal s’il vous plaît , merci d’avance, cependant j’espère que vous arriverez à donner des programmes de vrais débutant et sans choses compliqués:

    Le fichier titanic.csv donne des informations sur un certain nombre de passagers du Titanic. Il s'agit d'un fichier de données avec la virgule comme séparateur et la première ligne comme descripteurs (Classe, Survivant, Lieu d'embarquement).

    On rappelle que le script ci-dessous, ouvre le fichier 'titanic.csv' et stocke chaque ligne sous forme de dictionnaire (avec les descripteurs comme clés) dans une liste. Ainsi chaque élément de la liste titanic est un dictionnaire représentant un passager.

    import csv

    reader = csv.DictReader(open('titanic.csv', 'r'))

    titanic = []

    for row in reader:

          titanic.append(dict(row))

    1. Ecrire un programme qui affiche le nombre de survivants de ce fichier.
    2. Ecrire un programme qui affiche le pourcentage de survivants de la classe 1.
    3. Ecrire un programme qui retourne un dictionnaire dont les clés sont les classes et les valeurs le pourcentage de survivants de cette classe.
    4. Ecrire un programme qui affiche le nom des passagers ayant embarqué à Cherbourg et qui ont survécu.

    Assembleur

    Nous avons vu en cours le programme permettant de multiplier deux nombres en langage assembleur: On avait utilisé @x, @y, @somme, @0, et @1 pour noter les adresses des variables et constantes en mémoire.

    L'adresse @0 pointe vers la valeur 0. L'adresse @1 pointe vers la valeur 1.

    On utilise les labels début:, vrai: et fin: pour les numéros d'instructions.

    Compléter le code assembleur:

    LDA @0

    MOV A R

    STR @somme

    début:

    LDA @y

    MOV A R

    JPP vrai:

    JMP fin:

    vrai:

    LDA @somme

    LDB @x

    ADD

    STR @somme

    LDA @y

    LDB @1

    SUB

    STR @y

    JMP début:

    fin:

    Compléter la grille suivante afin que ce programme soit réalisé par le processeur M999.

    Vous choisirez les cases correspondant à @x, @y, @somme, @0, @1, début:, vrai, et fin: (Il serait très gênant que deux élèves choisissent les mêmes cases...)

    Il y a cependant un fichier csv et une image mais je ne sais pas

    comment les joindre

    Merci d’avance !

    -
    Edité par YM8 8 janvier 2020 à 14:35:17

    • Partager sur Facebook
    • Partager sur Twitter
      8 janvier 2020 à 12:49:39

      Bonjour,

      Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
      Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

      Pour plus d'informations, nous vous invitons à lire les règles générales du forum

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: vb;">Votre code ici</pre>.

      Mauvais titre

      Le titre est un élément important qui ne doit pas être négligé. N'oubliez pas cette règle simple : le titre idéal résume la question que vous allez poser en une petite phrase. Il doit permettre aux visiteurs de se repérer facilement dans le forum visité et d'identifier le sujet à sa seule lecture.

      Vous pouvez utiliser divers préfixes comme [Erreur], [MySQL], [Compatibilité], etc... Aussi, pensez à consulter les règles propres à chaque forum (visibles dans les topics épinglés en haut des sections).

      De plus, choisir un bon titre permet de rendre plus faciles les recherches des autres membres.

      Les titres de type "besoin d'aide" ou "problème" ne sont pas tolérés.

      Pour modifier votre titre, éditez le premier message de votre sujet.

      (titre originel : Aide débutant)

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter
        8 janvier 2020 à 14:47:24

        Désolé mais je ne vois pas comment colorer le programme
        • Partager sur Facebook
        • Partager sur Twitter
          8 janvier 2020 à 17:46:44

          Le mieux c'est de créer de topic un pour le python et un pour l'asm.
          bref pour la question python tente de poster directement sur le forum en question.

          Pour l'asm ,c'est un asm inventé (M999 inconnu au bataillon) , pareil on ne sait pas sur quel machine ça tourne ?
          Alors tu imagine bien que l'aide que tu va avoir ici sera bien limité

          Pour le code a part une comparaison avant JPP vrai: à rajouter je vois pas (comparer Y à 0)
          y'a rien a rajouter (après je connais pas la syntaxe exact de cet assembleur).
          Mais grosso modo il regarde la valeur de Y qui est la valeur de multiplication et fait ensuite une addiction successive (en decrementant Y)

          Mais l'algo et le code écrit est très très mauvais , tu dira a ton prof qu'il sait clairement pas écrire en asm ;)
          Cet asm me semble étrange , il y a pas de decremente possible sur un second registre ?
          Les décalage binaire n'existe pas ?

          Bref juste des réflexions personnel sur le coté "pédagogique" de cet exo et de cet asm...


          -
          Edité par HelbaSama 8 janvier 2020 à 23:23:18

          • Partager sur Facebook
          • Partager sur Twitter
            8 janvier 2020 à 17:50:28

            YM8 a écrit:

            Désolé mais je ne vois pas comment colorer le programme

            Bonjour, voici le bouton en image :



            • Partager sur Facebook
            • Partager sur Twitter
              8 janvier 2020 à 23:04:46

              M999, Université de Lille on dirait.
              • Partager sur Facebook
              • Partager sur Twitter
                9 janvier 2020 à 16:47:21

                J’ai réussi l’exercice 1 mais je ne comprend rien pour l’assembleur
                • Partager sur Facebook
                • Partager sur Twitter
                  9 janvier 2020 à 22:25:19

                  Ca commence par "nous avons vu en cours". Si tu ne comprends rien, ça veut dire que tu dois revoir le cours, et sérieusement.

                  La stucture de la machine, le jeu d'instructions, la méthodologie de programmation en langage machine, tu ne va pas les inventer en lisant l'exercice.

                  -
                  Edité par michelbillaud 9 janvier 2020 à 22:28:16

                  • Partager sur Facebook
                  • Partager sur Twitter
                    10 janvier 2020 à 10:55:32

                    Je rejoins michelbillaud.
                    De plus je t'ai donné deja ce que faisait le programme (c'est un programme de multiplication)
                    Une multiplication c'est des additions successives , et la variable Y sert de compteur:
                    par exemple 2x256 donnera 2+2+2..Y fois (si Y fait 256).

                    Après je te donne une info complémentaire (qui pourrait attiser ta curiosité) , il existe de meilleur algo de multiplication , la plus courante/utilisé et une succession de décalage binaire.
                    Ici c'est un add/mul qui pourrait être vu comme du 16 bits (j'en sais rien , je connais pas ce proc, mais c'est l'impression que ça me donne) , ça veut dire que dans cet algo le pire cas ferait 65535 additions (et avec la décrémentation de Y , ça rajoute pas mal de calcul).
                    L'algo avec un décalage binaire ne fait que max 16 décalage /16 additions sur 16 bits ;)

                    -
                    Edité par HelbaSama 10 janvier 2020 à 15:13:15

                    • Partager sur Facebook
                    • Partager sur Twitter

                    Exercice assembleur et dictionnaire python

                    × 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.
                    • Editeur
                    • Markdown