• Aucun résultat trouvé

Devoir Non Surveillé 1 – Informatique

N/A
N/A
Protected

Academic year: 2022

Partager "Devoir Non Surveillé 1 – Informatique"

Copied!
2
0
0

Texte intégral

(1)

DEVOIRNONSURVEILLÉ1 INFORMATIQUE

Devoir Non Surveillé 1 – Informatique

Vous compléterez le fichier dns1.py disponible sur mon site. Pour qu’une fonction soit correcte, il faut qu’elle réussisse tous les tests proposés par lesassert.

Exercice 1

On considère la suite de Fibonacci (Fn)nNdéfinie parF0=0,F1=1 et, pour toutn∈N, Fn+2=Fn+1+Fn

Compléter la fonctionfibonacci(n)donnée dans le scriptdns1.py. Cette fonction prend en paramètre un entiern et renvoie la valeur deFn.

Exercice 2

1. Écrire une fonctioncarre(x)qui prend en paramètre un réelxet renvoie la valeur dex2.

2. Écrire une fonctionsommeCarre(n,m)qui prend en paramètres deux entiers naturelsnÉmet renvoie la valeur de la somme

m

X

k=n

k2.

3. Modifier la fonction précédente pour qu’elle renvoie la valeur 0 lorsquen>m.

4. Plus généralement, écrire une fonctionsomme(f,n,m)qui prend en paramètres une fonction f et deux entiers naturelsnetmet renvoie la valeur de la somme

m

X

k=n

f(k).

Exercice 3 (questions indépendantes)

1. Écrire une fonctioncubes(n)qui prend en paramètre un entier naturelnet renvoie la liste desnpremiers cubes.

2. Écrire une fonctiondiv(n,b)qui prend en paramètres deux entiers naturelsnetbet qui renvoie la liste des entiers de‚0,n−1ƒqui sont divisibles parb.

3. Écrire une fonctionaddition(L1,L2)qui prend en paramètres deux listesL1etL2de même taille et qui renvoie la listeL3obtenue par addition terme à terme des éléments deL1etL2et la longueur de la listeL3.

4. Écrire une fonctionmoyenne(L)qui prend en paramètre une liste Ld’entiers et qui renvoie la moyenne des éléments de la liste.

5. Écrire une fonctionretourne(L)qui prend en paramètre une listeLet qui renvoie la liste retournée. Par exemple, retourne([1,3,4,7,6])renvoie[6,7,4,3,1]

G. BOUTARD 1 Lycée GAY-LUSSAC

(2)

INFORMATIQUE DEVOIRNONSURVEILLÉ1

Problème : Mastermind

Déroulement du jeu

1. L’ordinateur choisi une chaîne de caractères secrètes de 4 lettres différentes.

2. L’ordinateur demande à l’utilisateur d’entrer une chaîne de 4 lettres et donne :

• le nombre de lettres apparaissant dans la chaîne secrète et à la bonne place.

• le nombre de lettres apparaissant dans la chaîne secrète et à la mauvaise place.

3. L’étape 2 est répétée jusqu’à ce que l’utilisateur trouve la chaîne secrète.

Règle du jeu

Les chaînes de caractères ne peuvent pas comporter deux fois la même lettre et sont composées des lettres : a, b, c, d, e, f, g, h.

Programmation

1. Combien peut-on écrire de chaînes de caractères de longueur 4 composées des lettres a, b, c, d, e, f, g, h, sans répétition ?

2. Compléter le code de la question 2 du fichierdns1.pypour écrire une fonctionvalide(essai)qui prend en paramètre une chaîne de caractèresessaiet renvoieTruesiessaiest une chaîne de caractères vérifiant la règle du jeu etFalsesinon.

3. Écrire une fonctionsaisie()qui demande à l’utilisateur d’entrer une chaîne de caractères et repose la question jusqu’à ce qu’une chaîne de caractères vérifiant la règle du jeu soit entrée. La chaîne de caractères entrée par l’utilisateur sera renvoyée par la fonction.

4. Dans cette question, on suppose que les chaînes de caractères respectent la règle du jeu. Il y est inutile de le vérifier dans la fonction.

Écrire une fonction bienPlace(chaine1,chaine2)qui prend en paramètres deux chaînes de caractères et renvoie le nombre de caractères situés à la même position danschaine1etchaine2.

5. Dans cette question, on suppoe que les chaînes de caractères respectent la règle du jeu. Il y est inutile de le vérifier dans la fonction.

Écrire une fonction malPlace(chaine1,chaine2)qui prend en paramètres deux chaînes de caractères et renvoie le nombre de caractères présents danschaine1etchaine2mais pas à la même position.

La fonctioncombinaisonAleatoire()données dans le scriptdns1.pypermet de choisir aléatoirement une chaîne de caractères respectant la règle du jeu.

6. Écrire une fonctionjeu()qui :

• crée un chaîne de caractèressecrete;

• appelle la fonctionsaisie()et affiche le nombre de caractères bien placés et le nombre de caractères mal placés dans la chaîne entrée par le joueur ;

• recommence l’étape précédente jusqu’à ce que l’utilisateur trouve la chaîne secrète.

7. Modifier une ou plusieurs des fonctions précédentes pour que quand le joueur écrit la chaîne de caractères

"quit", la fonctionjeu()affiche la chaînesecreteet s’arrête.

8. Modifier la fonctionjeu()pour limiter le nombre d’essais à 10. Si le joueur ne trouve pas après 10 essais, la chaînesecreteest affichée et la fonctionjeu()se termine.

PCSI 2021 – 2022 2 G. BOUTARD

Références

Documents relatifs

On perd une partie

• Le traitement de liste est souvent réalisé à l’aide de fonctions récursives (il n’existe pas d’équivalent fonctionnel direct des boucles). • Calcul de la longueur

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

chaîne de caractères = suite d’octets Lecture fichier texte : lignes stockées dans une chaîne de caractères.. Lecture fichier binaire : données stockées dans une chaîne

Lecture fichier binaire : données stockées dans une chaîne de caractères... 3.2 str : chaîne d’octets (pas

8-10 : la méthode .extend() ajoute en bout de liste tous les éléments de la liste passée en argument ; liste a alors trois éléments?. Dans les exemples qui suivent, on crée de

Il est possible d’obtenir la longueur d’une chaine : len(mot) renvoie le nombre de caractères contenu dans le mot.. chaine1 in chaine2 renvoie vrai si chaine1

Écrire une fonction chainesEgales(chaine1,chaine2) qui renvoie le booléen True si les deux chaînes de caractères sont identiques et qui renvoie False dans le cas contraire.. Seules