0% ont trouvé ce document utile (0 vote)
502 vues5 pages

Exercice d'algorithmique et programmation

Ce document contient les détails d'un devoir de synthèse en algorithmique et programmation pour des étudiants de classe 4SI. Le devoir comprend trois exercices et un problème qui demande d'écrire un programme pour calculer le chiffre de chance à partir des noms et prénoms saisis.

Transféré par

PROF PROF
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
502 vues5 pages

Exercice d'algorithmique et programmation

Ce document contient les détails d'un devoir de synthèse en algorithmique et programmation pour des étudiants de classe 4SI. Le devoir comprend trois exercices et un problème qui demande d'écrire un programme pour calculer le chiffre de chance à partir des noms et prénoms saisis.

Transféré par

PROF PROF
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

MINISTERE DE L’EDUCATION ENSEIGNANT DEVOIR DE SYNTHESE N°1

LYCEE DOUZ BEN AMOR MOSBAH CLASSE : 4SI ** DATE : LE 03/12/2021

SECTION : SCIENCES DE L’INFORMATIQUE


EPREUVE : ALGORITHMIQUE ET PROGRAMMATION DURÉE : 3H NOMBRE DE PAGES : 4 COEF : 3

Nom : …………………………... Prénom : ……..………………… Num : ………….

Exercice 1 : (2.75 points)


Soit temps un type enregistrement, composé de trois champs Heures (avec 0≤ Heures ≤ 23), Minutes (avec
0≤ Minutes ≤ 59) et Secondes (avec 0 ≤ Secondes ≤ 59)
Questions :
1- Dresser le tableau de déclaration du type temps.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
2- Donnez les instructions algorithmiques correspondant aux traitements proposés, sachant que TP1 et TP2
sont deux variables de type temps.
 Saisir la variable TP1, en respectant les contraintes nécessaires.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
 Affecter le contenu de la variable TP1 à la variable TP2
……………………………………………………………………………………………………………
………………………………………………………………………….………………………………...
 Afficher le contenu de la variable TP1
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
………………………………………………………………………………………………………..…..

A.S. : 2020/2021 1
Exercice 2 : (4.75 points)
Dans un contexte informatique et pour chacune des propositions citées ci-dessous, mettre dans chaque case, la
lettre V si la proposition est correcte ou la lettre F dans le cas contraire.
1. L’équivalent Python de ouvrir ("[Link]", F) :
open ("[Link]", F)
F = open ("[Link]")
F = open ([Link])
2. La déclaration en Python d’un tableau de N caractères :
T = array([str]*N)
T = array([str()]*N)
T = array([""]*N,(str,150))
T = array([""]*N,"U")
3. La déclaration d’un enregistrement en Python :
Nom = { Nom = { } Nom = {
Champ1 : Type1, "Champ1" : Type1,
Champ2 : Type2, "Champ2" : Type2,
ChampN : TypeN "ChampN" : TypeN
} }

4. L’équivalent Python de Ecrire_nl ( F, ch) :


Dump (ch, F) [Link] (ch + "\n") write (F, ch + "\n")

5. L’instruction Python suivante el = {"T" : array ( [int]*5 ) } simule la déclaration :


D’un enregistrement
D’un Tableau
Déclaration fausse
6. L’instruction lire (nom_logique, ch) permet:
De lire la totalité d’un fichier typé
De lire la totalité d’un fichier texte
De lire la première ligne d’un fichier texte

Exercice 3 : (3.5 pts)


Deux mots sont des anagrammes si l’un est une permutation des lettres de l’autre.
Exemples :
Les mots suivants sont des anagrammes : (aimer et maire) ; (Arbre et Barre)
N.B : Par définition, deux mots vides sont des anagrammes.
Question:
Ecrire l’algorithme d’une fonction qui retourne Vrai si deux mots sont anagrammes sinon retourne
Faux.

A.S. : 2020/2021 2
Problème : (9 pts)
Pour calculer le chiffre de chance, on utilise les pyramides de chance qui sont construits à partir des lettres du
prénom et du nom de la manière suivante :
 Traduisez d’abord en chiffre les lettres du prénom et du nom selon le tableau de correspondance
suivant :
1 2 3 4 5 6 7 8 9
A B C D E F G H I
J K L M N O P Q R
S T U V W X Y Z
N.B. : Si le prénom ou le nom sont composés, considérez-le comme un seul (sans espaces)
 Notez chaque chiffre en dessous de la lettre qui lui correspond. Additionnez ensuite les chiffres deux
par deux (chiffre i + chiffre i+1) jusqu’à obtenir les pyramides renversées ci-dessous. A la pointe de
ces pyramides, vous obtenez les chiffres correspondant à votre prénom et à votre nom.
N.B. : si la somme dépasse 9, on additionne les chiffres de la somme
Exemple :
Pour le nom « HOUDA » et le prénom « BENMOHAMED »

A.S. : 2020/2021 3
Travail demandé :
On se propose d’écrire un programme qui permet :
 De lire N (4 ≤ N ≤ 10) noms et prénoms composés des lettres majuscules uniquement
 De créer et remplir un fichier texte nommé « [Link] » par les prénoms, les noms et les nombres de
chance.
N.B. : chaque ligne contiendra un prénom, un espace, un nom et son nombre de chance précédé par
« : ».
Exemple :
Soient les prénoms et les noms suivants : AHMED BENALI, MARIEM NAFFATI, IBAE
BENAMOR, NOUREDDINE MARZOUGUI
Le fichier « [Link] » sera le suivant :

Questions :
1. Ecrire un algorithme modulaire solution pour le problème.
2. Ecrire un algorithme solution pour chaque module envisagé.
N.B. : Chaque algorithme proposé doit être accompagné d’un tableau de déclaration des objets.

Bon Travail
A.S. : 2020/2021 4
Solutions
Exercice 3 :
def anagramme(ch1,ch2):
ch1=[Link]()
ch2=[Link]()
while (ch1!="")and(ch2!="")and([Link](ch1[0])>=0):
ch2=ch2[0:[Link](ch1[0])]+ch2[[Link](ch1[0])+1:len(ch2)]
ch1=ch1[1:len(ch1)]
return (ch1=="")and(ch2=="")
print(anagramme("aimer","maire"))

Problème :
from numpy import *

def chiffre_chance(ch):
T1=array([int]*len(ch))
for i in range(len(ch)):
T1[i]=(ord(ch[i])-64)%9
if T1[i]==0:T1[i]=9
while len(T1)>1:
T2=array([int]*(len(T1)-1))
for i in range(len(T1)-1):
T2[i]=T1[i]+T1[i+1]
if T2[i]>9:T2[i]=T2[i]%10 + T2[i]//10
T1=T2
return T1[0]

def verif(ch):
i=0
while ("A"<=ch[i]<="Z")and(i<(len(ch)-1)):
i=i+1
return ("A"<=ch[i]<="Z")
def saisie(ch1):
ch="5"
while (len(ch)==0) or not verif(ch):
ch=input(ch1+":")
return ch
def remplir(f,n):
for i in range(n):
prenom=saisie("Prénom")
nom=saisie("Nom")
s=chiffre_chance(prenom)+chiffre_chance(nom)
s=s//10 + s%10
[Link](prenom+" "+nom+":"+str(s)+"\n")
[Link]()

n=0
while not (n in range(4,11)):
n=int(input("N="))
f=open("[Link]","wt")
remplir(f,n)

A.S. : 2020/2021 5

Vous aimerez peut-être aussi