CCmi Parcours Seq5 Cor
CCmi Parcours Seq5 Cor
CCmi Parcours Seq5 Cor
Partie A – Algorithmique
1. Ecrire l’algorithme d’un sous-programme saisie_valeur qui demande à l’utilisateur une
valeur strictement supérieure à 3 et impaire et la retourne. On recommencera la saisie tant
que la valeur proposée ne respecte pas ces contraintes.
3 points
fonction saisie_valeur() : entier
préconditions : aucun
donnée : aucune entête : 1 point
donnée / résultat : aucune
résultat : entier
description : saisit et retourne une valeur strictement supérieure à 3 et impaire
variable locale : val : entier
début
faire
afficher (« Donnez un entier paire strictement positif »)
saisir (val) saisie : 0,5 point
tant que ((val<=3) ou (val modulo 2 = 0)) boucle : 1 point
retourner val retour : 0.5 pt
fin
début
pour i allant de 1 à h par pas de 1 faire
pour j allant de 1 à 2*i-1 par pas de 1 faire double boucle : 1.5 points
si (i =h) ou (j=1) ou (j=2*i-1) alors test : 1.5 points
afficher (c1)
sinon afficher (c2) affichage : 0.5 point
fin si
fin pour
affiche (saut de ligne)
fin pour
fin
2
On utilisera la fonction C/C++ rand( ) qui retourne une valeur aléatoire comprise entre 0 et
une constante RANDMAX très grande.
2 points au total
void combinaison_des (int & de1, int &de2, int &de3) entête 1.5 points
{
de1=rand()%6 +1;
de2=rand()%6 +1; utilisation du rand : 0.5 point
de3=rand()%6 +1;
}
2- Ecrire en langage C/C++ un sous-programme tri_des qui à partir des 3 entiers passés en
paramètres les trie par ordre décroissant.
Exemple : si de1=4 de2=5 de3=1
on aura le résultat du tri suivant : d1=5 de2=4 de3=1
3 points au total
void ordonne_des (int & de1, int &de2, int &de3) entete 1.5 points
{int tampon;
if (de1<de2)
{
tampon = de1;
de1 = de2;
de2 = tampon;
}
if (de1<de3) tri 1.5 points
{
tampon = de1;
de1 = de3;
de3 = tampon;
}
/* trier B et C */
if (de2<de3)
{
tampon = de2;
de2 = de3;
de3 = tampon;
}
}
3
3- Ecrire en langage C/C++ une fonction booléenne verifie_combinaison qui renverra
vrai si la combinaison des 3 dés fournis en paramètres est 4, 2, et 1, faux sinon.
1.5 points au total
bool combinaison_gagnante (int de1, int de2, int de3) entête 0.5 point
{
return ((de1==4)&&(de2==2)&&(de3==1)); test + return : 1 point
}