++ - 1 M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.

Slides:



Advertisements
Présentations similaires
Hiver 2010JGA Beaulieu GEF 243B Programmation informatique appliquée Structure de base des programmes en C.
Advertisements

Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Rappels C.
Calculs de complexité d'algorithmes
C.
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
Tableaux Certains problèmes nécessitent beaucoup de variables du même type. Exemple : relevé de températures matin et soir dans 10 villes pour 10 jours.
5. Les structures répétitives
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Section VI Structures répétitives (suite)
Points importants de la semaine Les commentaires. Les variables. Les instructions conditionnelles. Les instructions itératives (les boucles).
Regrouper des éléments de même type et pouvoir y accéder à laide dun identificateur et dun indice. Objectif des tableaux.
Langage C Révision.
ALGORITHMES RECURSIFS
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Introduction à la programmation (420-PK2-SL) cours 12 Gestion des applications Technologie de linformation (LEA.BW)
Récursivité.
Algorithmique et Programmation
Les éléments de base de l’algorithmique
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Python La structure itérative
ALGORITHMIQUE en classe de seconde
TRAITEMENT DE STRUCTURES
Les Classes les structures en C (struct) regroupent des variables : structuration de l'analyse mais problèmes de cohérence problèmes de sécurité d'accès.
Leçon 2 : Surcharge des opérateurs IUP 2 Génie Informatique Méthode et Outils pour la Programmation Françoise Greffier Université de Franche-Comté.
Les pointeurs Modes d’adressage de variables. Définition d’un pointeur. Opérateurs de base. Opérations élémentaires. Pointeurs et tableaux. Pointeurs et.
IFT-2000: Structures de données
Conteneurs STL.
Instruction sélective switch-case Instruction répétitive do-while For
1 La récursion. Nous avons vu qu'un programme est constitué d'un ensemble de fonctions. Il est possible pour une fonction donnée d'appeler une autre fonction.
Tutorat en bio-informatique Le 21 novembre Exercices 2 et 3 (MAT1400) - solutions Chapitre 11.7, Analyse - concepts et contextes vol. 2 27) Cherchez.
Plan troisième cours Instruction sélective Instruction répétitive
Les Opérateurs Ils régissent toutes les opérations ou transformations sur les valeurs des variables. Opérateur d'affectation Opérateurs arithmétiques Opérateurs.
Structures de données IFT-2000
Les fichiers texte en C++
Faculté Polytechnique de Mons
L’essentiel du langage C
Structures des données
Le langage C Structures de données
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
9ième Classe (Mardi, 4 novembre) CSI2572. H Nous avons vu comment utiliser les directives #define #ifndef #endif Pour s’assurer de l’inclusion unique.
- énergie bornée (tend vers 0 lorsque
O-notation 1. Introduction 2. O-notation 3. Opérations 3.1 Somme 3.2 Produit 4. Règles générales 5. Exemple 6.Analyse des algorithmes récursifs 6.1 Dilatation.
Les adresses des fonctions
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Les types composés Les enregistrements.
Les surcharges d'opérateurs
TABLEAUX des POINTEURS TRAITEMENT DE STRUCTURES
Le cours Les exercices Le formulaire d’examen
Cours LCS N°4 Présenté par Mr: LALLALI
Conception de Programmes - IUT de Paris - 1ère année – Cours 8 – Les entrées/sorties Comment fonctionnent les opérateurs > pour les types élémentaires.
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Cours d'algorithmique 10 / Intranet 1 19 décembre 2006 Cours d’Algorithmique Logique de Hoare (fin) : Les boucles et les invariants.
Introduction à la programmation (420-PK2-SL) cours 8
8PRO107 Éléments de programmation Les adresses et les pointeurs.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
PRO-1027 Programmation Scientifique en C
Algorithmique Tableaux de données
Algorithmique Algorithmique  Pascal
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
C++ BY AURÉLIEN MODULO MARION. PLAN DES TROIS PRÉSENTATIONS C++ avancé C++ orienté objet Bases de C++
Introduction à la programmation
Introduction à la programmation (420-PK2-SL) cours 9 Gestion des applications Technologie de l’information (LEA.BW)
Informatique 2A Langage C 5ème séance. Déroulement de la séance 5 1 ère partie Étude des chaînes de caractères 2 ème partie Les structures 3.
Informatique 2A Langage C 2 è séance. Objectifs de la séance 2 Début de la modularité avec les fonctions Création d’une première bibliothèque.
Coding party Écrire un programme qui élève un nombre au carré Écrire un programme qui teste si un nombre est pair Écrire un programme qui calcule la factorielle.
Transcription de la présentation:

M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner. Pour vous aider, l'ordinateur vous dira si vous êtes trop haut ou trop bas. Dès que vous l'aurez trouvé, il vous dira combien de coups vous avez dû jouer pour arriver à la bonne solution.  TP1_1  Exercice 3.11 #include using namespace std; void main() { int chiffre, chifAcher; // chifAcher : c'est le chiffre que l'on cherche cout<<"Entrez le chiffre positif (entre 1 et 100) a chercher : "; cin >> chifAcher; cout<<"Entrez votre chiffre positif "<<endl; cin >> chiffre; if (chiffre>chifAcher) cout << "Votre chiffre est Trop Haut \n"; else if (chiffre == chifAcher) cout << "Bravo c'est trouve \n"; else cout << "Votre chiffre est Trop Bas \n"; } Pour vous aider voici le début Etape 1:

M. BENJELLOUN : 2005 Problème 1 : Cachez chifAcher au voisin == > donc Ajout l’équivalent de cls (effacer écran) Problème 2 : ++ Testez chifAcher dans [ 0, 100] et chiffre >0 == > do..while Problème 3 : ++ Testez au moins 5 x. Mais problème : si on le trouve, on continu comme même. Problème 4 : ++ 5 fois ce n'est pas assez donc tant que l'on ne trouve pas la réponse. (rep=false). En plus, il faut compter le nombre d'essais. Problème 5 : ++ Remplacez chifAcher par l'ordinateur: c'est lui qui génère le chiffre entre 0 et 100 aléatoirement. Pour vous aider dans la génération du nombre aléatoire, voici des bouts de code que vous devrez incorporer dans votre programme.

M. BENJELLOUN : 2005 #include //pour utiliser srand() et rand()..... int nbr; cout<<"Entrez un chiffre positif pour initialiser le generateur de nombre aleatoire : "; do cin>>nbr; while(nbr<0); srand(nbr); //on initialise le générateur de chiffre aléatoire avec nbr do //une boucle pour nous donner un nombre aléatoire entre 0 et 100. chifAcher=rand(); while(chifAcher>100); // pour que chifAcher soit entre 0 et 100

M. BENJELLOUN : 2005 si a=b=c=0 Il y a une infinité de solutions réelles si a=b=0 et c !=0 Il n'y a aucune solution si a=0, b!=0 et c !=0 une racine réelle de valeur -c/b si a!=0, b!=0 et c !=0 delta = b*b - 4.0*a*c si delta=0//racine double racine1 = racine2 = -b/(2*a) sinon si delta > 0 //2 racines réelles temp = sqrt(delta) racine1 = (-b + temp)/(2*a) racine2 = (-b - temp)/(2*a) sinon 2 racines complexes conjuguées temp = sqrt(-delta) reel = -b/2*a imag = temp/2*a afficher("z1 = reel + imag*i") afficher("z1 = reel - imag*i") Écrire un programme C++ qui calcule les racines d'un polynôme du second degré à coefficients réels. Examinez toutes les possibilités (racines réelles, complexes, doubles, infinité ou inexistence de solutions). a*x*x + b*x + c = 0 sqrt(x) = racine carrée de x,  TP1_2

M. BENJELLOUN : 2005 Demande un entier N  [ 1, Nmax ]. Nmax est une constante = 10. Tant que N  [ 1, Nmax ], redemander l’introduction de N. Si l’utilisateur se trompe plus de z=3 fois, le programme s’arrête. Calcule et affiche la factorielle de N. Saisit N réels, les range dans un tableau. Calcule et affiche la somme. Saisit NxN caractères, les range dans une matrice. Affiche en MAJUSCULE caractère par caractère ce qui se trouve dans la matrice. Regrouper les 3 programmes (2.1, 2.2 et 2.3) en un seul. Utiliser un menu pour le choix avec switch_case. Un programme qui :  TP

M. BENJELLOUN : 2005 Écrire un programme qui transforme le TP2 en utilisant des fonctions et qui gère en boucle un menu de choix. Écrire un programme qui traite un vecteur de nombres entiers (taille max = 20) et qui gère en boucle le menu de choix suivant : 1 : Saisie du vecteur et Affichage de ses données 2 : Calcul de la moyenne des données du vecteur 3 : Calcul du minimum des données du vecteur 4 : Calcul du maximum des données du vecteur 5 : Calcul du PGCD du (maximum, minimum) 6 : Tri à bulles du vecteur et Affichage 7 : Quitter Les points 1 à 6 seront chacun traités par au moins une fonction.  TP3_1  TP3_2

M. BENJELLOUN : 2005 "Combien de nombres dans le vecteur(entre 1 et NMAX )? " ----  N boucle{ menu(); 1 :saisie_vect(???); Affichage(???); 2 :moy = moyenne(???); 3 :Mini = Min_Vect(???); 4 :Maxi = Max_Vect(???); 5 :pgcd = pgcd(Maxi, Mini, ???); 6 : Tri(????); Affichage(???); } Afficher : moyenne=moy; Min=Mini; Max=Maxi; PGCD= pgcd; Tri à bulles while(???){ for j = 0 to …. { if (tab[j] > tab[j+1] ) { } …… tab[j] < tab[j+1] j tab[j]  TP3_2 suite Apres boucle

M. BENJELLOUN : 2005  TP4 Écrire un programme qui gère en boucle et qui effectue les opérations suivantes : 1 : Saisie d’1 vecteur Vect1 et Affichage de ses données 2 : Calcul de la moyenne des carrés des données du vecteur Vect1:(  x i 2 )/ Nvect1 3 : Calcul du minimum et du maximum des données de Vect1 (1 seule fonction) 4 : Tri à bulles du vecteur des entiers Vect1 et Affichage 5 : Tri à bulles d’1 vecteur Vect2 des noms (Saisie et Affichage) 6 : Quitter Les points 1 à 5 seront chacun traités par au moins une fonction. La taille max. pour Vect1 et Vect2 est de 20. Les nombres Nvect1 et Nvect2 <= (taille_max) doivent être demandés et testés dans les fonctions de Saisie. On évitera l’utilisation de return dans les fonctions. Il faut plutôt utiliser les pointeurs.

M. BENJELLOUN : 2005 qui gère en boucle le menu de choix suivant : 1 : Saisie des enregistrements 2 : Affichage des données 3 : Tri suivant le code 4 : Tri suivant le nom 5 : Effacer un élément selon le nom 6 : Ajouter un élément selon le nom 7 : Sauvegarder sur fichier 8 : Lecture du fichier et affichage 9 : Quitter Écrire un programme : qui traite un tableau d’enregistrements (taille max = 20) dont chaque élément comprend les informations suivantes : un nom (char Tab[20]), un Rec Utilisez les règles de bonnes pratiques déjà étudiées, telles que l’indentation syntaxique, la programmation modulaire, … Le menu sera affiché via une fonction, les choix seront traités via l’instruction case. Les points 1 à 8 seront chacun traités par au moins une fonction. On utilisera la recherche dichotomique pour la localisation aux points 5 et 6. Le point 8 utilisera un vecteur crée dynamiquement pour recevoir les données se trouvant dans le fichier. struct Rec { charcode; floatprix; };  TP5&6