// 30nov2002 : evolution informatique / structure générale d'un programme / structures de données simples / instructions et format entrées/sorties


/*

Programme utilisé : Visual C++ 6.0
Win32 - Console application

EVOLUTION DE L'INFORMATIQUE
---------------------------
-> distribuée, mobile, multimédia

langage C,conçu en 1972 pour Os Unix
langage procédural

langages de base :
	binaire
	assembleur
langages évolués :
	langages logiques : Prolog
		(à base de propositions,règles,faits)
	langages fonctionnels :Lisp
	langages procéduraux : C, Cobol, Pascal, Ada
	=>langages OO : C++, Ada95, Java, Smalltalk
	langages d'acteurs /d'agents

Packages Ada : ensemble de modules traitant d'un problème partculier.

Exécution des programmes:
	interprété : Javascript
	bytecode (machine virtuelle, code intermédiaire=>protabilité : Java
	compilé : C


STRUCTURE GENERALE D'UN PROGRAMME
---------------------------------

I:directives de programmes, importation de librairies standard C
II:composants modulaires passifs : fonctions et procédures
III:composant modulaire actif: programme principal Main


à l'intérieur d'une fonction /procedure:
	déclarations et initialisations
	traitements
	affichage et sauvegarde des résultats

STRUCTURES DE DONNEES SIMPLES EN C
----------------------------------
 = numerique simple (entier) : 
	[unsigned] int i; (stockage sur 32bits)
	[unsigned] short i; (stockage sur 16bits)
	[unsigned] long i; (stockage sur 64bits)
 = numérique réel :
	float j;
	double j;
 = caractère :
	char c;
 = adresse /pointeur : variable simple contenant l'adresse
		d'une autre variable
 = booléen :
	bool b; (en C++)


INSTRUCTIONS ET FORMATS D'ENTREE /SORTIE
---------------------------------------
lecture : SCANF(format de lecture, liste des variables lues);
ecriture : PRINTF(format d'ecriture, liste des variables à écrire);

pour le type CHAR:
lecture : GETCHAR(); renvoie le caractère lu
ecriture :PUTCHAR(variable caractere);


formats de lecture /ecriture :
	%d entier base 10 (décimal)
	%o entier base 8 (octal)
	%x entier base 16 (héxadécimal)
	%ld entier long

	%c caractère
	%s chaine (-> tableau de caracteres)
	%u numérique non signé
	%f float
	%mmEnn numérique avec mantisse et exposant
	%g reel
	%h short
	...




 */



 
/* 
partie I : directives et declarations visibles par l'ensemble des fonctions
 */

#include <stdio.h>
 //#include <stdafx.h>

int i;
float f;

 
/* 
partie II : fonctions
 */

void bonjour ()
{
	printf("\nBonjour\n");
}

 
/* 
partie III : programme principal
 */

void main ()
{
	bonjour();
	
	 
/* saisie d'un entier  */
	printf("\nValeur de i ? ");
	scanf("%d", &i);
	
	 
/* saisie d'un flotant  */
	printf("\nValeur de f ? ");
	scanf("%f", &f);

	 
/* affichage des valeurs saisies  */
	printf("\nLa valeur de i = %d",i);
	printf("\nLa valeur de f = %10.3f \n",f);
	 
/* OU  */
	printf("\nValeurs de i = %d et de f = %10.3f \n",i,f);
	 
/* OU  */
	printf("\nLa valeur de i = %d \nLa valeeur de f = %10.3f \n",i,f);

	 
/* affichage des adresses des variables  */
	printf("\nAdresse de i = %x",&i);
	printf("\nAdresse de f = %x \n",&f);

}