cette page est consacrée a la programmation, en c++, j'y ai mis mes différents TP:
(bien sûr vue de ma! manière) |
(inactif)suite |
il s'agit d'une première approche
au c++:
*)réaliser le jeu suivant en c++: l'ordinateur et le joueur choisisse un nombre a tour de rôle, le nombre ne peut prendre que 3 valeur{0, 1 ou 2}, si la différence entre les deux nbre choisi vaut: 2: alors le joueur qui a proposer le plus grand nbre gagne 1point. |
|
1: alors c'est
le joueur qui a proposer le plus petit nbre qui gagne 1 point.
0: aucun point n'est marquer. celui qui totalise 10 point le premier gagne le jeu, l'humain peut aussi sortir directement du jeu en introduisant un nbre négatif. |
le programme: (code source)
/*------------------------------------------------------------------------*/ /* fichier: jeu.ccp */ /* description: jeu pour l'initiation au turbo c++. */ /* remarque: on aurai pu utiliser le graphisme, ça serais super! */ /* pour que ce programme fonctionne en visuelle c++ il faut */ /* désactiver l'instruction clrscr()et getch() */ /*----------------------------------------------------------------------- */ #include <stdio.h> //pour
les fonctions printf et scanf.
|
écrire un programme qui dit si un nbre est parfait ou non.
remarque: un nbre parfait est un nbre au quelle la somme de ces diviseurs est égale a lui même exemple{6, les diviseur sont 1,2,3 et on a:1+2+3=6}
le programme: (code source)
/*------------------------------------------------------------------------*/ /* fichier: premier. ccp */ /* description: programme en turbo c++ qui calcul si un nbre est premier. */ /* remarque: même chose: */ /* pour que ce programme fonctionne en visuelle c++ il faut */ /* désactiver l'instruction clrscr()et getch() */ /*----------------------------------------------------------------------- */ #include <stdio.h> //pour
les fonctions printf et scanf. |
écrire les sous programme suivant:
1)lecture_vect(float tab[],int taille): qui lit un vecteur tab de taille 'taille'
2)affiche_vect(float tab[],int taille): qui affiche le vecteur tab de taille 'taille'
3)fonction : cherche_vect(float tab[], int taille, float val): qui recherche un élément val dans un vecteur tab de taille 'taille', si l'élément existe cherche_vect retourne son indice, sinon elle retourne -1.
le programme: (code source)
#include<stdio.h> #include<conio.h> float a[5]; float x; int n=5; int indice; void lecture_vect(float tab[],int taille); void affiche_vect(float tab[],int taille); int cherche_vect(float tab[], int taille, float val); ////////////////////////// /**programme principale**/ ////////////////////////// main() { clrscr(); lecture_vect(a,n); affiche_vect(a,n); printf("\n donner la valeur a chercher\n"); scanf("%f",&x); printf("\n voici l'indice de la valeur %d",cherche_vect(a,n,x)); getch(); } ///////////////////////////////// /**fin du programme principale**/ ///////////////////////////////// // début du 1er sous programme // ///////////////////////////////// void lecture_vect(float tab[],int taille) { int i; for(i=0;i<taille;i++) { scanf("%f",&tab[i]); } } ///////////////////////////// //fin du 1er sous programme// ///////////////////////////// /////////////////////////////// /////debut du 2eme sous programme///// /////////////////////////////// void affiche_vect(float tab[],int taille) { int i; for(i=0;i<taille;i++) { printf("%f .",tab[i]); } } ////////////////////////// ////debut de la fonction///////// ////////////////////////// int cherche_vect(float tab[], int taille, float val) { int i=0; int j=0; while(j==0 && i<taille) { if( tab[i] == val ) { j=i; } i=i+1; } if (j==0) { j=-1; } return (j+1); } |
écrire un sous programme qui donne la puissance d'un nombre entier.
écrire un programme récursif qui calcul le factorielle d'un nbre.
écrire un programme récursif qui donne une solution au problème des tours d'anoî.
le programme: (code source)
/* puissance d'un nbre entier */
#include<stdio.h> |
|
/* factorielle d'un
nbre */
#include<stdio.h> |
|
/* problème d'anoî */
#include<stdio.h> |
définir 3 type d'enregistrement:
le premier élève contenant 3 champs : le numéro de l'élève, le nom et son numéro de classe.
le deuxième module contenant 3 champs : le numéro du module, le nom et son coefficient.
le 3eme note contenant 3 champs: le numéro de l'élève, le nom de matière et sa note.
afficher chaque enregistrement et finalement calculer la moyenne de chaque élève
ainsi que la moyenne de la classe dans chaque module.
le programme: (code source)
#include<stdio.h>
#include<conio.h>
#include<math.h>
typedef struct //pour
définir la structure.
{int numel;char nom[12];int class;}eleve;
typedef struct
{int numat;char mat[12];int coef;}matiere;
typedef struct
{int numel;int numat;int note;}noter;
main()
{
char y;
eleve e[2]; //on remarque que élève est devenu un type prédéfinie
matiere n[2];
noter nt[4];
int i,j,k=0;
float moy[3]={0,0,0};
float moy0;
clrscr();
//********************remplissage du 1er enregistrement********************/
for(i=0;i<2;i++)
{
printf("\ndonner le numero de l'eleve nø=
");
scanf("%d",&e[i].numel);
printf("\ndonner son nom= ");
scanf("%s",&e[i].nom);
printf("\ndonner son numero de classe= ");
scanf("%d",&e[i].class);
}
printf("\n*** en attente.... apuiller sur une touche
!");
y=getch();
clrscr();
//*******************remplissage du 2eme enregistrement********************/
printf("\n **** enregistrement numero 2:
****\n");
for(i=0;i<2;i++)
{
printf("\ndonner le numero de matiere nø=
");
scanf("%d",&n[i].numat);
printf("\ndonner le nom de la matierre= ");
scanf("%s",&n[i].mat);
printf("\ndonner sont coeficient= ");
scanf("%d",&n[i].coef);
}
printf("\*** en attente.... apuiller sur une touche
!");
y=getch();
//******************affichage du 1er et 2eme enregistrement************************/
clrscr();
printf("\n -*-*-*-*-*-** voici le 1er enregistrement
**-*-*-*-*-*-\n");
for(i=0;i<2;i++)
{
printf("num=%d nom=%s
class=%d\n",e[i].numel,e[i].nom,e[i].class);
}
printf("\n -*-*-*-*-*-** voici le 2eme enregistrement
**-*-*-*-*-*-\n");
for(i=0;i<2;i++)
{
printf("numat=%d matiere=%s coef=%d\n",n[i].numat,n[i].mat,n[i].coef);
}
printf("\n*** en attente.... apuiller sur une touche
!");
y=getch();
//**********************************************************************/
//*****************remplissage du 3eme enregistrement*******************/
//************************puis l'afficher*******************************/
//**********************************************************************/
clrscr();
printf("\nil sagit maintenent de remplir les notes
!\n");
printf("\n\n\n");
printf("\*** en attente.... apuiller sur une touche
!");
y=getch();
clrscr();
for(i=0;i<2;i++)
{
printf("\neleve numero=ø%d ------*****------ nom :
%s\n",e[i].numel,e[i].nom);
for(j=0;j<2;j++)
{
printf("\ndonner sa note en %s =
",n[j].mat);
scanf("%d",&nt[k].note);
nt[k].numel=e[i].numel;
nt[k].numat=n[j].numat;
k=k+1;
}
}
printf("\napuiller sur une touche pour voir
l'enregistrement");
y=getch();
clrscr();
printf("\n -*-*-*-*-*-** voici l'enregistrement
**-*-*-*-*-*-\n");
for(i=0;i<4;i++)
{
printf("numel=%d numat=%d
note=%d\n",nt[i].numel,nt[i].numat,nt[i].note);
}
printf("\n\n\n\n");
printf("calcul des moyennes... apuiller sur une touche pour visualiser les
resultats");
printf("\*** en attente.... apuiller sur une touche
!");
y=getch();
clrscr();
//***********************************************************************/
//*********************calcule des moyennes******************************/
//***********************************************************************/
j=0;
for(i=0;i<2;i++)
{
printf("\neleve numero=ø%d ------*****------ nom :
%s\n",e[i].numel,e[i].nom);
moy0=((float)nt[j].note*n[0].coef+nt[j+1].note*n[1].coef)/(n[0].coef+n[1].coef);//ici
(float) force le type
moy[0]=(float)nt[j].note+moy[0];
moy[1]=(float)nt[j+1].note+moy[1];
j=2;
printf("\nsa moyenne est de : %f",moy0);
printf("\n\n");
}
for(i=0;i<2;i++)
{
printf("\nla moyenne de la classe en %s est de :
%f",n[i].mat,moy[i]/2);
}
printf("\napuiller sur une touche pour
terminer...");
getch();
}
il est demander de crée une liste et d'insère de nouveau élément par la tête à l'aide de la procédure insert_debu:
le programme: (code source)
#include<stdio.h>
#include<conio.h>
// ************************************
// ********partie déclaration *********
// ************************************
typedef struct list
{int info;list* suivant;};
int i,y,x;
list** al;//declaration du pointeur sur le pointeur de la liste
//qu'on vas utiliser dans la fonction
list* l;//la tete
list* noeud;//creation du pointeur sur la liste
void insert_debu(list** p,int x);//declaration de la fonction
// *************************************
// ******* programme principal *********
// *************************************
main()
{
clrscr();
l=NULL;//initialiser la tete a 0
for(i=1;i<=4;i++)
{
printf("\ndonner y= ");
scanf("%d",&y);
al=&l;//pour effectuer les changement dans l et non dans une copie
insert_debu(al,y);//appelle de la fonction
}
// ******affichage******
printf("\nvoici la liste\n");
for(i=1;i<=4;i++)
{
printf("n=%d ; ",l->info);
l=l->suivant;
printf(" adresse %d\n",l);
}
getch();
}
// ********************************************************
// *******fin du programme principale**********************
// ********************************************************
// *************************
// ******** debut de sous programme ********
// *************************
void insert_debu(list** p,int y)
{
list* nov;
nov=new list;//creation du nouveau noeud
nov->info=y;
nov->suivant=*p;//donner la valeur de l'ancien noeud au nouveau noeud
*p=nov;//affecte la tête au noeud
printf("adresse %d",*p);
}
//
***********************
// ******** fin du sous programme ********
// ***********************