Vous êtes sur la page 1sur 3

Lycée Secondaire Rafeha Devoir de Prof. : Mme Harbaoui Zammel K.

contrôle N°2
Classe :4 Si ( Trimestre 2 ) Matière : Programmation
<< Créer sur le bureau ,un dossier portant votre nom_prenom pour enregistrer votre travail >>

Exercice N°1(4 pts)


On veut écrire un programme Python qui permet de :
• Saisir un entier n (2≤n≤20)
• Remplir un tableau à une dimension T par n entiers strictement supérieurs à 100
• Afficher les éléments de T qui sont divisible par 13.
NB : un nombre est divisible par 13 si (le nombre de dizaine) + (4*chiffre des unités) est un multiple de
13 .
Exemple : 117 est-il divisible par 13?
Nombre de dizaines : 11, Chiffre des unités : 7, 11+(4×7) = 39 ➔ 39 est divisible par 13 ➔117 est
divisible par 13.

Exercice N°2(8 pts)


On veut écrire un programme Python qui permet de :
• Saisir un entier L (2≤L≤20), un entier C (2≤C≤20)
• Remplir un tableau à deux dimensions (représentant numérateur d’une fraction) T1 par L*C
entiers distincts et strictement supérieurs à 10 ;
• Remplir un tableau à deux dimensions (représentant dénominateur d’une fraction) T2 par L*C
entiers distincts et strictement supérieurs à 10
• Afficher toutes les fractions qui sont irréductible ; Une fraction est irréductible si son numérateur
(T1[i, j]) et son dénominateur (T2[i, j]) sont premiers entre eux ; deux nombres entiers naturels
(T1[i, j]) et (T2[i, j]) sont dits 'premiers entre eux' si leur PGCD est égal à 1
NB : Un entier est dit distinct s’il est composé de chiffres distincts (différents) exemple : 1273

Exercice N°3(8 pts)


Soit la fonction :

et (Un) est une suite définie par :

On veut écrire un programme Python qui permet de :


• Remplir un fichier « terme0.dat » contenant n (2≤n) U0 de type réel
• Pour chaque élément U0 du fichier « terme0.dat », déterminer les K (K>=5) premiers termes de
cette suite et les mettre dans un fichier textes « suite.txt » sur une même ligne en commençant
par U0.
Exemple : Pour n=4 , K=6
« terme0.dat » « suite.txt »
1 1 / 0,66666667 / 0,43209877 / 0,36022563/ 0,34891459 / 0,34749245
1,25 1,25/0,984375 / 0,65128454 / 0,42541879 / 0,358997593/ 0,348755783
1,5 1,5 / 1,45833333 / 1,36716339 / 1,18513798 / 0,888195983 / 0,566896932
1,75 1,75 /2,11979167 / 3,50843976 / 14,7286365 / 1065,374467 / 403074755,1

Page 1 sur 3
CORRECTION
Exercice N°1
from numpy import array def affich(n,t):
#------------------------------------------------- for i in range(n):
def saisie(): if verif(t[i]):
arret=True print(t[i]," est divisible par 13")
while arret: def verif(x):
n=int(input("entrer la taille du tableau= ")) while not(10<=x<=99):
if (2<=n<=20): u=x%10
arret=False x=(x//10) + (4*u)
return n return x%13==0
def remplir(n,t): #-----------------PP--------------------------------
for i in range(n): n=saisie()
t[i]=int(input("t["+str(i)+"]=")) t=array([0]*n)
while t[i]<100: remplir(n,t)
t[i]=int(input("t["+str(i)+"]=")) affich(n,t)
Exercice N°2
from numpy import array def PGCD(x,y):
#---------------------------------------------------- while (x != y):
def saisie(): if x>y:
arret=True x=x-y
while arret: else:
n=int(input()) y=y-x
if (2<=n<=20): return x
arret=False def affich(t1,t2,l,c):
return n for i in range(l):
def distinct(x): for j in range(c):
i=-1 if PGCD(t1[i,j],t2[i,j])==1:
ch=str(x) print("(",t1[i,j],",",t2[i,j],")")
arret=True #-----------------PP--------------------------------
while arret: print("nombre de lignes= ")
i+=1 l=saisie()
ok=ch[(i+1):].find(ch[i]) print("nombre de colonnes= ")
if (ok!=-1) or (i==len(ch)-1): c=saisie()
arret=False print("remplir 1ére matrice ")
return ok t1=array([[0]*c]*l)
def remplir(t,l,c): remplir(t1,l,c)
for i in range(l): print("remplir 2eme matrice ")
for j in range(c): t2=array([[0]*c]*l)
t[i,j]=int(input("t["+str(i)+","+str(j)+"]= ")) remplir(t2,l,c)
while not(t[i,j]>0 and distinct(t[i,j])==-1): print("affichage des fractions irreductible")
t[i,j]=int(input("t["+str(i)+","+str(j)+"]= affich(t1,t2,l,c)
"))
Exercice N°3
def saisie_n(): def saisie_k():
arret=True arret=True
while arret: while arret:
n=int(input("entrer la taille du 1er fichier: ")) k=int(input("entrer le nombre de terme: "))
if (2<=n): if (5<=k):
arret=False arret=False
return n return k
#-------------------------------------------------- #---------------------------------------------------
def remplir_d(f,n): def calcul(a):
for i in range(n): return ((a*a*a)+1)/3
x=float(input("entrer le réel numéro "+str(i+1)+":"))
dump(x,f)
f.close()

Page 2 sur 3
def remplir_t(f,n,s,k): #-----------------PP-------------------------------
f=open("term0.dat","rb") from pickle import *
for i in range(n): n=saisie_n()
x=load(f) f=open("term0.dat","wb")
ch=str(x) remplir_d(f,n)
for j in range(k): k=saisie_k()
x=round(calcul(x),3) s=open("suite.txt","w")
ch=ch+" / "+str(x) remplir_t(f,n,s,k)
s.write(ch+"\n") affich(s,n)
s.close()
f.close()
#---------------------------------------------------
def affich(s,n):
s=open("suite.txt","r")
for i in range(n):
ch=s.readline()
print(ch)
s.close()

Page 3 sur 3

Vous aimerez peut-être aussi