• Aucun résultat trouvé

Changement de bases – algorithmes. 1L 1)

N/A
N/A
Protected

Academic year: 2022

Partager "Changement de bases – algorithmes. 1L 1)"

Copied!
1
0
0

Texte intégral

(1)

Changement de bases – algorithmes. 1L

1) Boucles.

(2)

Faire fonctionner « à la main » les boucles :

1.1) N← 1

TANTQUE N<10 AFFICHER (N) N← N+1 FINTANTQUE

1.2) A← 0 N← 1

TANTQUE N<10 A← A+N*10^N N← N+1

AFFICHER (A) FINTANTQUE

(3)

1.2

AFFECTER UNE VARIABLE

Qu'obtient-on à l'écran lorsque l'on programme l'algorithme suivant ? (Tester l'algorithme pas à pas)

Demander A Demander B

Affecter la valeur de A à B Affecter la valeur de B à A Afficher A

Afficher B 1.3

EFFECTUER UNE SOMME

Qu'obtient-on à l'écran lorsque l'on programme les algorithmes suivants ? (Tester l'algorithme pas à pas)

exemple 1 :

Entrée Demander A

Traitement Affecter la valeur de A à S

Faire 10 fois la procédure suivante Affecter la valeur de S+1 à S Sortie Afficher S

exemple 2 :

Donner à S la valeur 0

Demander une valeur positive à A Début de la boucle

Donner à S la valeur S+A Donner à A la valeur A-1

Recommencer au début de la boucle jusqu'à ce que A=0 Afficher S

2) De la base 10 à la base B ≤ 10.

2.0 Découverte :

Le programme suivant donne l'écriture en base B d'un nombre entier N écrit en base 10.

1. Déterminer l'écriture de 2123 en base 5.

2. Donner les valeurs successives du dividende N, du quotient Q et du reste R.

(4)

Etapes N (dividende) Q (quotient) R (reste) 2123 424 5 3  

424 84 5 4   84 16 5 4   16 3 5 1   3 0 5 3  

3. Qu'est ce qui provoque l'arrêt de cette suite de divisions ? Autrement dit, quel est le test d'arrêt ?

4. La fonction INT de la calculatrice donne la partie entière d'un nombre.

A l'aide de cette fonction, comment obtient-on le quotient de la division euclidienne de N par B ? En déduire le reste de la division.

2.1) Algorithme de base à compléter Demander …

Demander …

Affecter la valeur de N à Q Tant que ……… faire

Affecter la valeur de ………. à Q Affecter la valeur de ………. à R Afficher ….

Affecter la valeur de …. à N

Fin TantQue

* Le nombre apparaît en commençant par les chiffres de droite : il faut écrire le résultat.

Exercice : Faire fonctionner cet algorithme « à la main » avec N = 12 et B = 5

Voici comment cet algorithme peut se traduire en langage machine :

Commentaires TI CASIO

Il faut avant tout ouvrir une page pour écrire le programme.

La calculatrice attend que vous donniez un nom au programme. Le curseur est un A, ce qui veut dire qu’elle fonctionne en mode alphabétique, comme une machine à écrire.

Vous pouvez maintenant commencer l’écriture du programme.

La calculatrice vous demandera de rentrer une valeur N puis une valeur B. Elle stockera ces valeurs dans la mémoire N et dans la mémoire B.

Tant que le contenu de Q est strictement positif, la calculatrice remplace le nombre N par Q.

Elle fait la division euclidienne de N par B et ne garde que la partie entière.

Elle calcule le reste de la division euclidienne de N par B et le stocke dans la mémoire R.

PRGM NEW

Ecrire : BASE Puis taper sur ENTER La calculatrice affiche : PROGRAM :BASE

:DISP "N"

:INPUT N :DISP "B"

:INPUT B :NQ :While Q>0 :Int(N/B)Q :N–Q*BR :Disp R :Pause

MENU PRGM NEW

Ecrire : BASE Puis taper sur EXE La calculatrice affiche :

====BASE ====

"N"

?N

"B"

?B NQ

While Q>0

Int(N/B)Q N–QBR R

QN

(5)

La calculatrice arrête le programme lorsque Q=0. :QN

:End WhileEnd

"FIN"

Stop Quitter après le dernier mot du programme sans rien écrire

de plus. QUIT QUIT

2.2) Algorithme amélioré.

Voici un algorithme de passage de la base 10 à la base B : DEBUT

NombreN BaseB 0I 0A

TANT QUE N 0

A+RESTE(N/B) 10 IA

QUOTIENT de la division de N par B N I+1I

FIN TANT QUE AFFICHER (A) FIN

Questions :

1. Tester cet algorithme pour N =111 et B=5 (Ecrire toutes les étapes).

2. Précisez ce que l'utilisateur obtient sur l'écran de la calculatrice pour un nombre N.

Cet algorithme fonctionne-t-il pour une base supérieure ou égale à 10 ? Justifier.

2.3) Sur une calculatrice CASIO ou T.I.

Les instructions RESTE et QUOTIENT n'existent pas il faut

utiliser Frac et Int qui donnent respectivement la partie fractionnaire et entière d'un nombre :

RESTE (N/B) se traduit par : Frac(N/B)×B

QUOTIENT (N/B) se traduit par : Int (N/B)

Si le quotient D est déjà calculé alors RESTE(N/B) se traduit par N – B×D CASIO

=== BASE B ===

"NOMBRE"?→N

"BASE"?→B 0→A

0→I

While N>0

A + Frac(N/B) x B ×10^I→A Int (N/B)→N

I+1→I WhileEnd A▲

"FIN"

Stop

TEXAS INSTRUMENTS PROGRAM:BASE B :Prompt N

:Prompt B :0→A :0→I

:While N>0 :int(N/B)→D

:A+(N-D*B)*10^I→A :D→N

:I+1→I :End :Disp A

(6)

3) D 'une base B ≤ 10 à la base 10.

3.1) L'algorithme.

Si un nombre s'écrit abc en base B alors il représente le nombre c×B0 b×B1 a×B2 d'où l'algorithme ci-contre.

* Le RESTE (N/10) permet d'obtenir le chiffre de droite.

* Le QUOTIENT (N/10) donne le nombre « sans son chiffre de droite » .

DEBUT N ← nombre B ← base I ← 0 M← 0

TANT QUE N>0

M← M + RESTE (N/10)*B^I N← QUOTIENT (N/10) I ← I + 1

FIN TANT QUE AFFICHER (M) FIN

3.2) Avec une calculatrice.

CASIO.

=== BASE B /10 ===

"NOMBRE"?→N

"BASE"?→B 0→I

0→M While N>0

Frac (N÷10)×10×B^I+M→M Int(N/10)→N

I+1→I WhileEnd M▲

TEXAS INSTRUMENTS PROGRAM:BASE B/10 :Prompt N

:Prompt B :0→I :0→M :While N>0

:frac(N/10)*10*B^I+M→M :int(N/10)→N

:I+1→I :End :Disp M

Références

Documents relatifs

A priori, il serait possible que la suite de Syracuse de certaines valeurs de départ n’atteigne jamais la valeur 1, soit qu’elle aboutisse à un cycle différent du cycle trivial,

I scan est utilisé pour des données qui ne sont pas en matrice I ?scan pour les détails.. I Pour importer d’un

Dans ce cadre, les arêtes d’un graphe sont annotées, en plus des propriétés usuelles, par des élé- ments d’un semi-anneau ; quand une requête est évaluée, le fait de

Pour une naïve et belle démonstration, on pourra utiliser la figure ci- contre : Il suffit, dans le cas de figure donné, d’exprimer l’aire du

C'est ce q u e j'ai surtout essayé de faire dans ce Chapitre en me plaçant successiveineni à deux points de vue différents, l'un général (deuxième Partie), l'autre plus

On ne consid` ere que des d’espaces vectoriels sur le corps R , cependant tous les r´ esultats ci dessous s’appliqueraient pour des espaces vectoriels sur C.. D´

Il existe donc un vecteur pour lequel la forme quadratique prend une valeur strctement positive et une valeur n´ egative ou nulle... On dit aussi que la forme quadratique Φ est

Créer une commande prix(p,c) qui renvoie le prix a payer pour le client, p étant le prix de l’article et c le code saisit par l’utilisateur.. Vous testerez le programme avec p = 199,