Académique Documents
Professionnel Documents
Culture Documents
Exo5_Q1_Fiche3
Algorithme Exo5_Q1_Fiche3
Variables
Entier N, Q, R, p, m, i, j
Début
Ecrire (' Donner le Nombre decimal ')
Lire (N)
Ecrire (' la représentation en base 3 est :’)
Si (N < 3) alors
Ecrire (N) ! en cas M < 3
Sinon
m0
p1
QN
Répéter ! détermination de la puissance 3^m
p p*3
mm+1
Q Q Div p ! Div est l’opération de la division entière
Jusqu’à (Q == 0)
m m-1
pp/3
Q N Div p
Ecrire (Q) ! affichage du dernier Reste de la division
! qui est ici le dernier Quotient non nul
Variables
Entier N, Q, R, p, m, i, j
Début
Ecrire (' Donner le Nombre decimal ')
Lire (N)
Ecrire ( ' la représentation en base 3 est :’)
Si (N < 3) alors
Ecrire (N) ! en cas M < 3
Sinon
m0
p1
QN
Tanque (Q < > 0) Faire ! détermination de la puissance 3^m
p p*3
mm+1 ! Div est l’opération de la division entière
Q Q Div p
F.F.T
m m-1
pp/3
Q N Div p
Ecrire (Q) ! affichage du dernier Reste de la division
! qui est ici le dernier Quotient non nul
!*****************************************
!programme qui affiche la représentation en base 3
!d'un nombre en base 10
!*****************************************
integer N, Q, R, p, m, i,j
write(*,*) ' Donner le Nombre decimal '
read(*,*) N
m = m-1
p=p/3
Q=N/p
write(*,"(i2,$)") Q ! affichage du dernier Reste de la division
! qui est ici le dernier Quotient non nul
! le symbole $ supprime le retour à la ligne
Réponse :
On ne peut pas utiliser la boucle ‘ pour …faire’ pour déterminer la puissance 3m parce qu’on ne
sait pas à l’avance le nombre d’itérations nécessaire pour calculer m.
Remarque 1:
Pour une représentation du nombre N dans une autre base b <= 9, il suffit de remplacer le nombre
3 par b.
!*********************************************
!programme qui affiche la représentation en base b <=9
!d'un nombre en base 10
!*********************************************
integer N, Q, R, p, m, i, j, b
write(*,*) ' Donner le Nombre decimal '
read(*,*) N
write(*,*) ' Donner la base '
read(*,*) b
write(*,*) ' la représentation en base ', b, ‘ est :’
if (N < b) then
write(*,*) N ! en cas M < b
Else
m=0
p=1
Q=N
do while (Q .ne. 0) ! détermination de la puissance b^m
p = p*b
m=m+1
Q=Q/p
end do
m = m-1
p=p/b
Q=N/p
write(*,"(i2,$)") Q ! affichage du dernier reste de la division
! qui est ici Q = N/p pour une division entière
! le symbole $ supprime le retour à la ligne
Algorithme Exo5_Fiche3
Variables
Entier N, Q, i, j, b
Tableau d’entier(1..100) R ! la dimension de R est choisie de manière arbitraire
Début
Ecrire (' Donner le Nombre decimal ')
Lire (N)
Ecrire (' Donner la base ')
Lire (b)
Ecrire (‘la représentation en base ‘, b, ‘ est :’ )
Si(N < b) alors
ecrire (N) ! en cas M < b
sinon
i0
QN
integer N, Q, i, j, b
integer, dimension (100) :: R
write(*,*) ' Donner Nombre decimal '
read(*,*) N
write(*,*) ' Donner base '
read(*,*) b
Variables
Entier N, i, Nbp, Nbn, Nbz
Réel Mp, Mn
Tableau de réel(1..100) V
Début
Ecrire (' Donner la longueur du vecteur ')
Lire (N)
Nbp 0
Nbn 0
Nbz 0
Mp 0
Mn 0
Ecrire (' Donner les elements du vecteur')
Pour i = 1, N, 1
Ecrire ("V(", i, ")= ")
Lire (V[i])
Si(V[i] > 0 ) alors
Nbp Nbp + 1
Mp Mp + V[i]
Fin si
Si(V[i] < 0 ) alors
Nbn Nbn + 1
Mn Mn + V[i]
Fin si
Si(V[i] == 0 ) alors
Nbz Nbz + 1
Fin si
F.F.P
Si(Nbp == 0)alors
Ecrire "pas d'éléments positif"
Sinon
Mp Mp / Nbp
Ecrire ('le nombre des éléments positifs est :', Nbp)
Ecrire ('la moyenne des éléments positifs est :', Mp)
Fin si
Si(Nbn == 0)alors
Ecrire ("pas d'éléments négatifs")
Sinon
Mn Mn / Nbn
Ecrire ('le nombre des éléments négatifs est :', Nbn)
Ecrire ('la moyenne des éléments négatifs est :', Mn)
Fin si
Ecrire ('le nombre des éléments nuls est :', Nbz)
Fin
Programme Exo6_Fiche3
!*************************************************
!programme qui calcule les nombres et les moyennes
!des éléments positifs, négatifs et nuls d'un vecteur
!*************************************************
integer N, i, Nbp, Nbn, Nbz
real Mp, Mn
real, dimension (100) :: V
write(*,*) ' Donner la longueur du vecteur '
read(*,*) N
Nbp = 0
Nbn = 0
Nbz = 0
Mp = 0
Mn = 0
if(Nbp == 0)then
write(*,*) "pas d'elements positif"
else
Mp = Mp / Nbp
write(*,*) 'le nombre des elements positifs est :', Nbp
write(*,*) 'la moyenne des elements positifs est :', Mp
end if
if(Nbn == 0)then
write(*,*) "pas d'elements negatifs"
else
Mn = Mn / Nbn
write(*,*) 'le nombre des elements negatifs est :', Nbn
write(*,*) 'la moyenne des elements negatifs est :', Mn
end if