Corrigé Bac. S – Spécialité ISN
NB14/12/2014 1/3
Programmation – Algorithmique C
SPE - ISN Ecrire des programmes simple en langage C .
Durée du TP : 2 heures.
Organisation : Les manipulations se feront à l’aide du compilateur QTCreator
Exercice de révision :
Ecrire un programme qui dessine un carré à l’écran de coté n
#include <iostream>
using namespace std;
int n;
int quitter() {
cout << "Appuyer sur la toucher ENTREE pour finir!" << endl;
return 0;
}
void ecrire_premiere_ligne(int cote) {
cout<<"\xDA";
for (int i=1;i<cote-1;i++)cout<<"\xc4";
cout<<"\xBF"<<endl;
}
void ecrire_ligne_intermediaire(int cote) {
cout<<"\xB3";
for (int i=1;i<cote-1;i++)cout<<" ";
cout<<"\xB3"<<endl;
}
void ecrire_derniere_ligne(int cote) {
cout<<"\xC0";
for (int i=1;i<cote-1;i++)cout<<"\xc4";
cout<<"\xD9"<<endl;
}
void aller_a_la_ligne() {
cout<<endl;
}
int main() {
cout<<"Donner une valeur sup\x82rieure \x85"<< " 0 : ";
cin>>n;
ecrire_premiere_ligne(n);
for (int i=1;i<n-1;i++)ecrire_ligne_intermediaire(n);
ecrire_derniere_ligne(n);
aller_a_la_ligne();
//--- quitter();
}
Exercice 2
Ecrire un algorithme puis le code source d’un programme qui permet de saisir deux nombres a et b et qui restitue le nombre le plus grand.
#include <iostream>
using namespace std;
int val1,val2;
bool a_superieura_b(int a, int b) {bool result;
if (a>b) result=true;
else
result=false;
return result;
}
int quitter() {
Corrigé Bac. S – Spécialité ISN
NB14/12/2014 2/3
cout << "Appuyer sur la toucher ENTREE pour finir!" << endl;
return 0;
}
int main() {
cout<<"Donner le premier nombre : ";
cin>>val1;
cout<<"Donner le deuxieme nombre diff\x82rent du premier : ";
cin>>val2;
if (a_superieura_b(val1,val2)) {cout<<"Le plus grand nombre est "<<val1;}
else {cout<<"Le plus grand nombre est "<<val2;}
cout<<endl;
//--- quitter() ;
}
Exercice 3
Ecrire un algorithme, puis le code source d’un programme qui détermine si un nombre saisi est premier ou non.
#include <iostream>
using namespace std;
int n;
int quitter() {
cout << "Appuyer sur la toucher ENTREE pour finir!" << endl;
return 0;
}
bool est_nombre_entier(int valeur) {
if (valeur==1)return true;
else {int i=2;
while ((valeur%i!=0) && (valeur!=i)) i++;
if (i==valeur) return true;
else return false;
} }
int main() {
cout<<"Saisir un nombre entier :"<<endl;
cin>>n;
if (est_nombre_entier(n)) cout<<n<<" est un nombre premier";
else cout<<n<<" n'est pas un nombre premier";
cout<<endl;
//--- quitter() ;
}
Exercice 4
Ecrire un algorithme puis le code source d’un programme, qui converti un mot de 8 bits en valeur décimale.
#include <iostream>
#include <math.h>
using namespace std;
char n[8];
int quitter() {
cout << "Appuyer sur la toucher ENTREE pour finir!" << endl;
return 0;
}
int decimal(char chaine[8]) { int resultat;
int bit;
resultat=0;
for (int i=0;i<8;i++)
Corrigé Bac. S – Spécialité ISN
NB14/12/2014 3/3
{
if (chaine[7-i]=='0') bit=0;
else bit=1;
resultat=resultat+bit*powf(2,i);
}
return resultat;
}
int main() {
cout<<"Saisir un mot binaire de 8 bits : ";
cin>>n;
cout<<"La valeur d\x82\cimale correspondante est "<<decimal(n)<<endl;
//--- quitter() ;
}