• Aucun résultat trouvé

FINAL LO11 lundi 23 juin 2008 Autorisée : une feuille A4, nominative, manuscrite, recto verso, non photocopiée

N/A
N/A
Protected

Academic year: 2022

Partager "FINAL LO11 lundi 23 juin 2008 Autorisée : une feuille A4, nominative, manuscrite, recto verso, non photocopiée"

Copied!
1
0
0

Texte intégral

(1)

FINAL LO11 lundi 23 juin 2008

Autorisée : une feuille A4, nominative, manuscrite, recto verso, non photocopiée

Vous rédigerez les exercices chacun sur une copie différente.

Exercice 1 : Etude de la conjecture de Goldbach

La conjecture de Goldbach est l’un des plus vieux problèmes non résolus de la théorie des nombres et des mathématiques. La conjecture s’énonce ainsi :

Tout nombre entier pair strictement supérieur à 2 peut être écrit comme la somme de deux nombres premiers.

(Le même nombre premier pouvant être utilisé plusieurs fois. On rappelle qu’un nombre premier est par définition strictement supérieur à 1.)

Par exemple :

4 = 2 + 2 ; 6 = 3 + 3 ; 8 = 3 + 5 ;10 = 3 + 7 ; 10= 5 + 5 ; 12= 5 + 7 ; 14=7 + 11 ; 14 = 7 + 7

etc.

1. Ecrire une fonction nommée « EST_PREMIER » qui détermine si un nombre est premier ou non selon le critère suivant :

« Pour décider si un nombre est premier on le divise par tous les nombres impairs inférieurs à sa racine carrée : s'il est divisible par l'un d'entre eux, il est composé, et sinon, il est premier. Le premier nombre premier est 2 ».

2. Ecrire une fonction nommée « T_NB_PREMIER » qui remplit un tableau NB_PREM avec les 50 premiers nombres premiers.

3. Ecrire une fonction nommée « SAISIE_NOMBRE » demandant à l’utilisateur un nombre entier pair positif inférieur à 2 fois la valeur du cinquantième nombre premier. On contrôlera tout ceci en précisant clairement la ou les erreurs éventuelles : nombre impair, nombre trop grand, …

4. Ecrire un programme principal utilisant les fonctions précédentes pour afficher toutes les possibilités et indiquer leur nombre.

Exemple :

Etude de la conjecture de Goldbach pour la valeur 88.

88 = 5 + 83 88 = 17 + 71 88 = 29 + 59 88 = 41 + 47

Nombre de cas : 4.

(2)

Exercice 2 Codage d’un message (à rédiger sur une autre copie)

Vous allez faire les algorithmes d’un programme et de ses fonctions, qui permettront à l’utilisateur de coder un message à envoyer ou de décoder un message reçu (qui aura été codé avec le même procédé).

On considèrera que tout ce fera en majuscules : vous n’aurez pas à vous en occuper, à aucun moment.

Procédé de codage : certains binômes de lettres seront transformés en trinôme de lettres.

Exemple :

« OU » sera transformé, ou aura été transformé en « CHE » « MM » sera transformé, ou aura été transformé en « NIT »

« NE » sera transformé, ou aura été transformé en « MIN »

« AS » sera transformé, ou aura été transformé en « ENT » etc..

C’est l’utilisateur qui en début de programme donnera les15 binômes et les 15 trinômes.

Ensuite on lui demandera une phrase, et s’il faut la coder ou la décoder et on lui affichera le résultat.

Exemple :

Codage de : ’’NE BOUGEZ PAS’’  ‘’MIN BCHEGEZ PENT’’

Décodage de : ‘’MIN BCHEGEZ PENT’’  ’’NE BOUGEZ PAS’’

Démarche à suivre :

 Ecrire l’algorithme d’une fonction nommée « déjà » qui recherchera si une chaîne est déjà stockée dans un tableau de chaînes de caractères partiellement rempli : elle renverra l’indice auquel elle aura stoppé la recherche.

 Ecrire l’algorithme d’une fonction nommée « saisie_codes » qui demandera les 15 correspondances (la chaîne à coder et le code) en vérifiant au fur et mesure avec message d’erreur et à l’aide de la fonction « déjà » :

o qu’il ne redonne pas une deuxième fois la même chaîne à coder, (par exemple 2 fois « OU »)

o ni un code déjà attribué (par exemple 2 fois « CHE »).

Vous mémoriserez les chaînes de 2 lettres dans un tableau nommé « ACOD » et les chaînes de 3 lettres dans un tableau nommé « COD »

ATTENTION : ces deux tableaux auront les mêmes dimensions : ils devront être prévu tous les deux pour recevoir 15 chaînes de quatre caractères (3 lettres +

‘\0’), ainsi au niveau des paramètres ils seront interchangeables.

 Ecrire l’algorithme d’une fonction nommée « saisie_phrase » qui demandera à l’utilisateur de taper une phrase, et s’il veut la coder ou la décoder (il devra taper C ou D : vous ferez un contrôle sans message d’erreur).

 Ecrire l’algorithme d’une fonction nommée « affichage » qui affichera le codage ou le décodage demandé : vous devrez la paramétrer pour qu’elle réalise ceci avec les mêmes instructions pour le codage ou le décodage (ne pas écrire un bloc pour le codage et un autre pour le décodage).

 Ecrire l’algorithme du programme principal qui pilotera le tout.

Les fonctions spécifiques au traitement des chaînes de caractères seront écrites en langage C dans l’algorithme.

Références

Documents relatifs

Votre travail consiste à proposer des solutions pour les mécanismes de transmission de puissance réalisant (a) le mouvement de translation longitudinal et (b) le

Une entreprise souhaite stocker les données de température de fonctionnement de machines-outils. Pour chaque machine, les températures de fonctionnement sont relevées régulièrement. La

Un boulanger souhaite enregistrer les commandes de ces clients, notamment pour pouvoir faire des statistiques (savoir quelles baguettes sont les plus achetées et à quel moment de

 la fonction nommée « base_10_vers_base_r » déterminera et renverra la décomposition en base r (r sera >=2 et <=9) d’un nombre N qui lui sera fourni en base 10 (vous

 fonction recherche_dans_premiere_ligne_du_tableau, qui recherchera dans la première ligne du tableau , le nombre qu’elle recevra,: elle renverra l’indice de colonne ([0,17])

Il sera tenu compte dans la correction de la présentation et de la rédaction correcte des démonstrations. Exercice 1 -

1) On utilise les coordonnées sphériques ( ρ, θ, φ ) avec θ longitude et

Document autorisé: une feuille de rappels (recto) manuscrite autorisée.  Toute réponse non justifiée sera ignorée.  Seules les explications claires et précises seront prises