Programmation - TP2


12/09/2017

Programme du jour

  • Rappel du TP précédent
  • Nouveauté : les tests
  • TP d'algo
  • TP en C
  • Autre nouveauté ?

Rappel : fontionnement minimaliste

2+3 ?

Mega résumé (+ erreurs)

Rappel : les algorithmes

  • Une solution claire à un problème
  • Langage strict sans ambiguité
  • Adaptable facilement en langage informatique

Exemple

Kenneth a 875€ de dépenses fixe par mois, dont 72% pour son loyer. Son loyer va augmenter de 10%, combien va-t-il devoir payer désormais ?

Joli dessin au tableau

Nouveautés en algorithme

Les tests en algorithmique

Exemple


Debut
	Entier age

	obtenir age
	si (age = 27)
		afficher "27 ans ? hou la... fais attention !"
	finsi
	afficher "Fin du programme"
Fin
		

Les tests en algorithmique


instruction
si (condition)
	instruction
	...
	instruction
finsi	
instruction
		
  • Le bloc d'instruction ne s'execute pas tout le temps
  • L'execution du bloc est liée à une condition.
  • Attention au finsi !
  • Décalage fortement conseillé !
  • Comment créer un condition ?
  • Les conditions

    Expression qui ne peut avoir que deux valeurs (aka Booléen) :

    • Vrai
    • Faux

    Construite avec des opérateurs relationels : > < ≤ ≥ = ≠

    Ou en combinant des conditions : non / ou / et

    Les tests avec alternative

    
    instruction
    si (condition)
    	instruction
    	...
    	instruction
    sinon
    	instruction	
    	...
    	instruction
    finsi
    instruction
    		

    Exemple

    
    Début
    	Entier age
    
    	obtenir age
    	si (age ≥ 18)
    		afficher "Vous êtes majeur"
    	sinon
    		afficher "Vous êtes mineur"
    	finsi
    	afficher "Fin du programme"
    Fin
    		

    Exemples

    
    si (age ≠ 27)
    	afficher "Votre age n'est pas maudit"
    finsi
    
    
    si ((age < 0) ou (age > 117))
    	afficher "Vous êtes un menteur"
    finsi
    		

    TP algo !

    Le C

    Obtenir en C

    
    int main(void) {
    	int entier;
    	float reel;
    	
    	scanf("%d", &entier);
    	scanf("%f", &reel);
    	printf("le nombre entier vaut %d.\n", entier);
    	printf("le nombre reel vaut %f.\n", reel);
    	printf("les nombres saisis sont %d et %f.\n", entier, reel);
    	system("pause");
    	return 0;
    }
    		

    Obtenir en C (précision)

    
    int main(void) {
    	int entier;
    	
    	printf("Entrez un nombre entier :");
    	scanf("%d", &entier);
    	printf("le nombre saisi est %d.\n", entier);
    	system("pause");
    	return 0;
    }
    		

    Les tests en C

    
    instruction;
    if (condition) {
    	instruction;	
    	...
    	instruction;			
    }
    instruction;
    		
    • Attention au accolades !

    Les conditions

    Opérateurs relationels :

    • >   <   <=   >=
    • ==   !=

    Ne pas confondre l'affectation et l'égalité

    Opérateurs logiques :     !   &&   ||

    Les tests avec alternative en C

    
    instruction;
    if (condition) {
    	instruction;	
    	...
    	instruction;			
    } else {
    	instruction;	
    	...
    	instruction;
    }
    instruction;
    		

    Exemples

    
    int main(void) {
    	int age;
    	scanf("%d", &age);
    	if (age >= 18) {
    		printf("Vous etes majeur\n");
    	} else {
    		printf("Vous etes mineur\n");
    	}
    	printf("Fin du programme\n");
    	return 0;
    }
    		

    Exemples

    
    if (age != 27) {
    	printf("Votre age n'est pas maudit\n");
    }
    
    
    if ((age < 0) || (age > 117)) {
    	printf("Vous etes un menteur\n");
    }
    		

    Suite du TP

    Nouveauté en algorithme : les boucles

    Exemple

    
    Debut
    	Entier compteur
    
    	pour compteur de 1 à 5
    		afficher compteur
    	finpour
    	afficher "Fin du programme"
    Fin
    	
    		
    • Le bloc d'instruction sera executée plusieurs fois
    • Attention au finpour
    • Décalage fortement conseillé
    • compteur doit être une variable de type entier

    précisions

    
    pour compteur de expr_debut à expr_fin
    	instruction
    	...
    	instruction
    finpour		
    		
    • Les expressions de début ou de fin peuvent être des valeurs fixes ou des variables

    Exemple

    
    Début
    	Entier i, debut, fin
    
    	obtenir debut
    	obtenir fin
    	pour i de debut à fin
    		afficher i
    	finpour
    Fin
    		

    Exemple

    
    Début
    	Entier i, somme
    
    	somme <- 0
    	pour i de 1 à 12
    		somme <- somme + i
    		afficher somme
    	finpour
    Fin
    		

    Nouveau TP