// cours du 14/12/2002 : strucures repetitives / selection simple


/*

STRUCTURES REPETITIVES
----------------------

I: for (i=0;i<=4;i++) { ... ;};

II: while (condition, expression logique) { ... ;};
éxécuté 0 ou n fois

III: do  { ... ;} while (condition, expression logique);
éxécuté au moins 1 fois


si condition toujours fausse (voulu,erreur,...) :
	on dit que le code du corps est un code mort : il ne sera jamais éxécuté
si condition toujours vraie (voulu,erreur,...) :
	boucle infinie, le reste du programme n'est jamais execute
	la fin coincide avec la fin du programme.

IV:ces boucles peuvent comporter une instruction d'interruption


!!! importance de la verification des fins de boucles !!!

!!! importance de l'optimisation des corps de boucle  !!!
(exterioriser toutes les expressions qui n'evoluent pas)
(certaines operations plus performantes que d'autres)


SELECTION SIMPLE
----------------

IF (condition) {bloc1;} [{bloc2;}] ;

si condition est vraie alors on éxécute bloc1 sinon bloc2



opérateurs:
	logiques:
		et : &&
		ou : ||
		non : !
		xor : ^
	relationnels:
		égalité : ==
		inégal : !=
		sup : >
		inf : <
		sup ou egal: >=
		inf ou egal: <=


 */

#include "stdio.h"
 //#include "stdafx.h"

 
/* 
========================================

  exercice 1

========================================
 */
void exercice_1()
{
	int tab[10];  // = {10,11,12,13,14,15,16,17,18,19};
	int i;
	float produit;
    int somme;


    printf("\n   **EXERCICE 1  **:");
	printf("\nboucle for pour charger le tableau:");
	for (i=0;i<=9;i++)  // de I=0 jusqu'à I<=9
		{	
		printf("\n Element %i : ",(i+1));
		scanf("%d",&tab[i]);
		};


	printf("\nboucle for :");
	for (i=0;i<=9;i++)  // de I=0 jusqu'à I<=9
		{	
		printf("\n Element %i :  %i",i,tab[i]);	
		};

	printf("\nboucle while :");
	i=0;
	while (i<=9)  // tant que I<=9 ... faire
		{	
		printf("\n Element %i :  %i",i,tab[i]);
		i++;
		};

	printf("\nboucle do :");
	i=0;
	do
		{	
		printf("\n Element %i :  %i",i,tab[i]);
		i++;
		}
	while (i<=9);  // faire ... tant que I<=9

	printf("");


	produit=1;
	for (i=0;i<=9;i++)  // de I=0 jusqu'à I<=9
		{
			printf("\n produit X tab i = %f  %i",produit,tab[i]);	
			produit=produit *tab[i];
		};
	printf("\n produit = %f",produit);	

	printf("");

    somme=0; 
		for (i=0;i<=9;i++)  // de I=0 jusqu'à I<=9
		{
				
			somme=somme+tab[i];
		};
	printf("\n somme = %f",somme);	
    printf("\n moyenne = %f",(float)somme /10.0);  // 10.0 ou (float)10

	printf("");


};





 
/* 
========================================

  exercice 2

========================================
 */
void exercice_2()
{

	int tab[12]= {10,11,12,13,14,15,16,17,18,19,20,21};
	int i,min,max;
	
	min=32568;  // a valeur maxi pour qu'il reagisse au test
	max=-32568;  // a valeur mini pour qu'il reagisse au test

    printf("\n   **EXERCICE 2  **:");
	printf("\n:");

	for (i=0;i<=11;i++)
		{	
		if (tab[i]<min) {min=tab[i];};
		if (tab[i]>max) {max=tab[i];};
		};

	printf("\nmin= %i - max= %i",min,max);
	printf("");

};




 
/* 
========================================

  exercice 3 

========================================
 */
void exercice_3()
{

	int tab[12]= {-10,11,12,0,-14,15,16,0,18,19,20,-21};
	int i,neg=0,nul=0,pos=0;

    printf("\n   **EXERCICE 3  **:");
	printf("\n:");

	for (i=0;i<=11;i++)
		{	
		if (tab[i]<0) {neg++;};
		if (tab[i]>0) {pos++;};
		if (tab[i]==0) {nul++;};
		};

	printf("\nnegatif= %i - nul= %i - positif= %i",neg,nul,pos);
	printf("");

};



 
/* 
========================================

  exercice 4 

========================================
 */
void exercice_4()
{

	int tab[8]= {10,11,12,13,14,15,16,17};
	int tabsym[8];

	int i,j=7;

    printf("\n   **EXERCICE 4  **:");
	printf("\n:");

	for (i=0;i<=7;i++)
		{	
		tabsym[j]=tab[i];
		j=j-1;  // ou j--
		};
	printf("\n tableau permuté");

	for (i=0;i<=7;i++)
		{	
		printf("\nelement %i avant:%i   apres:%i",i,tab[i],tabsym[i]);
		};
	printf("\n");

};

 
/* 
========================================

  exercice 5 : tri

========================================
 */
void exercice_5()
{

	int tab[8]= {11,10,12,14,13,15,17,16};
	int tabtri[8];

	int i,j=7;

    printf("\n   **EXERCICE 5  **:");
	printf("\n:");

	for (i=0;i<=7;i++)
		{	
		tabtri[j]=tab[i];
		j--;
		};

	printf("\n");

};


void main()
{ 	printf("debut du programme");
	exercice_1();
	exercice_2();
	exercice_3();
	exercice_4();
        printf("fin du programme");

}