Aller au contenu
angelV

Dm informatique 1ère

Messages recommandés

Bonjour,

Ci-joint mon devoir maison.

Je ne comprends pas l'exercice 1, la partie 3 et 4 de l'exercice 3, et l'exercice 4.

Dans l'exercice 1, comment définit on une fonction en pytthon.

dans les partie 3 et 4, Qu'est qu'un nombre binaire non signé ? Comment dois -je procéder pour faire ces exercices. Comment expliciter ces termes techniques en language simple.

Dans l'exercice 4, la partie je ne comprends pas du tout le 1.2, 1.3, exercice 2 et 3. Comment orienter ma réflexion. Les termes  techniques ne dirigent pas la réflexion. 

J'ai réalisé l'exercice 2 complet.

J'ai fais l'exercice 3, partie 1 et 2.

Dans l'exercice 4, j'ai réussi à faire le 1.1. 

Merci pour votre aide.

dm_info.jpg

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour et bienvenue sur le site.

En attendant qu'un intervenant qualifié prenne le relais, quelques indications.

Exercice 1

1) En python la structure d'une fonction est

def nom(paramètres): paramètres est facultatitf

   suite d'instructions

 L'appel se fait par nom(...) ... le ou les paramètres auxquels on veut appliquer la fonction.

Par exemple, ici, en utilisant les fonctions de Python, on aurait

def conversion(texte):
  for car in texte:
    print(ord(car)) affiche la code ascii
    print(bin(ord(car))[2::]) affiche la conversion en binaire
    
conversion("L'an qui vient 1") appelle la fonction avec le texte à convertir

2) Ne pose pas de problème.

3) Non, car le code ASCII de base ne code pas les a=caractères accentués.

Exercice 3 Partie 3 Pour montrer que cette méthode ne convient pas.

4.1) A mon avis, non, d'après la définition 00000000 et 10000000 donnent tous les deux 0.

4.2)   3->00000011 -2->10000010

La somme des deux donne 10000100 soit -5 avec le mode de codage. Comme le résultat en décimal est 1, la méthode n'est pas bonne.

Exercice 3 Partie 4

5.1) N+Non(N)=11111111 donc N+Non(N)+1=0 (la somme des huitièmes bits donnerait 0 avec un report de 1, mais ce report est perdu car il n'y a pas de 9ème bit)

5.2) On prend le complément à 1 et on ajoute 1.

Exemple (non demandé)

3->00000011

2->00000010 complément à 1-> 11111101 +1->11111110

3-2->00000011+11111110=00000001 soit 1 en décimal.

Cette méthode donne bien le bon résultat.

5.3) Pour -17 :

17->00010001 complément à 1->11101110 +1->11101111

Je te laisse faire pour -119

5.4) Pour 10110101 :

On retranche 1->10110100 On prend le complément à 1->01001011 On convertit en décimal->75 Et on rajoute le signe moins->-75

 

N.B. : Avis à un informaticien "pur jus" ou à un mathématicien ? Ne pas hésiter à confirmer ou infirmer ce qui précède et, bien sur, à prendre la suite.

 

Modifié par julesx
Rajout de réponses

Partager ce message


Lien à poster
Partager sur d’autres sites

J'avais paré au plus pressé car la notion de nombre dyadique était également toute neuve pour moi. Là encore, ce qui suit est à prendre avec réserve.

1.1) a=13 -> en binaire 1101 ou en puissances de 2, 1*23+1*22+0*21+1*20.

1.2) En partant de l'écriture 1101, par analogie au système décimal, on fait apparaître une virgule (cf. le préambule) :

division de a par 2 -> 110,1

division de a par 4 -> 11,01

Dans le préambule, on surligne le nombre, ici, on ne peut pas le faire

1.3) La méthode que je suggère pour un nombre effectivement dyadique :

* S'il ne l'est pas sous la bonne forme, commencer par le mettre sous la forme a/2n en le multipliant par la puissance adéquate de 2 pour obtenir un entier au numérateur.

* Décomposer le numérateur en somme de puissances de 2.

* Diviser chaque terme par la puissance de 2 du dénominateur.

* Mettre le résultat sous forme de 1 et de 0 et placer une virgule pour séparer les termes correspondants aux puissances positives de celles correspondant aux puissances négatives.

Bon, à arranger selon ton goût. De toute façon, voir ci-après à titre d exemples.

2) 75/16=75/24

75=1*26+0*25+0*24+1*23+0*22+1*21+1*20.

75/16=1*22+0*21+0*20+1*2-1+0*2-2+1*2-3+1*2-4

75/16=100,1011

Je te laisse faire pour 101/8.

14,75 doit être converti !

14,75=59/4=59/2²

Ensuite on procède comme précédemment pour obtenir 1110,11.

Je te laisse également faire pour 30,5.

3) La réponse est non, regarde sur la toile le pourquoi du comment.

N.B. : Vérifie quand même les calculs, je ne suis pas infaillible.

Partager ce message


Lien à poster
Partager sur d’autres sites

La nuit portant conseil, petit complément à la question 1.3).

Si on veut aller plus vite, après avoir mis le nombre sous la forme a/2n, il suffit d'écrire a sous forme binaire et de placer la virgule devant les n chiffres en partant de la droite.

Exemple pour 101/8 :

101/8=101/23 

101 > 1100101

n=3 d'où l'écriture en binaire de 101/8 : 1100,101.

Partager ce message


Lien à poster
Partager sur d’autres sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement

×
×
  • Créer...