Langage C : LES FONCTIONS (Cours et Exercices corrigés)
Monday, June 6, 2011     17:19
  • Mon @ IP: 54.92.155.160



retour

Poster un commentaire ou une réponse

LES FONCTIONS (Cours et Exercices corrigés)

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:37:31

En langage C les sous-programmes s'appellent des fonctions.

L'imbrication de fonctions n'est pas autorisée en C: une fonction ne peut pas être déclarée à l'intérieur d'une autre fonction. Par contre, une fonction peut appeler une autre fonction. Cette dernière doit être déclarée avant celle qui l'appelle.

Une fonction possède un et un seul point d'entrée, mais éventuellement plusieurs points de sortie (à l'aide du mot return).

Une variable connue uniquement d'une fonction ou de main() est une variable locale.
Une variable connue de tout le programme est une variable globale.


--------------FONCTIONS SANS PASSAGE D'ARGUMENTS ET NE RENVOYANT RIEN AU PROGRAMME.------



Une fonction ne renvoyant rien au programme est une fonction de type void.

Exemples et Exercices:

Exercice VII_1:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void bonjour() /* declaration de la fonction */
{
printf("bonjour\n");
}

void main() /* programme principal */
{
bonjour(); /* appel de la fonction */
printf("POUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:37:51

Le fichier d’en-tête est un fichier texte contenant uniquement la ligne suivante :
void bonjour(void) ;
c’est à dire la déclaration de la fonction bonjour, sous la forme de son prototype.
Ce fichier est lu par le compilateur, qui vérifie si l’on appelle correctement la fonction.

Exercice VII_2:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void bonjour() /* declaration de la fonction */
{
printf("bonjour\n");
}

void coucou() /* declaration de la fonction */
{
bonjour();/* appel d'une fonction dans une fonction */
printf("coucou\n");
}

void main() /* programme principal */
{
coucou(); /* appel de la fonction */
printf("POUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}

Le fichier d’en-tête contient maintenant les lignes suivantes :
void bonjour(void) ;
void coucou(void) ;

Exercice VII_3:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void carre() /* declaration de la fonction */
{
int n,n2;/* variables locales à carre */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n);
n2 = n*n ;
printf("VOICI SON CARRE: %d\n",n2);
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:38:12

void main() /* programme principal */
{
carre(); /* appel de la fonction */
printf("POUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}

Les variables n et n2 ne sont connues que de la fonction carré.

Le fichier d’en-tête contient maintenant les lignes suivantes :
void bonjour(void) ;
void coucou(void) ;
void carre(void) ;
Les déclarations inutiles sont ignorées.

Exercice VII_4:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void carre() /* declaration de la fonction */
{
int n, n2;/* variables locales a carre */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n);
n2 = n*n;
printf("VOICI SON CARRE: %d\n",n2);
}

void cube() /* declaration de la fonction */
{
int n, n3;/* variables locales a cube */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n);
n3 = n*n*n;
printf("VOICI SON CUBE: %d\n",n3);
}

void main() /* programme principal */
{
char choix;/* variable locale a main() */
printf("CALCUL DU CARRE TAPER 2\n");
printf("CALCUL DU CUBE TAPER 3\n");
printf("\nVOTRE CHOIX: ");
scanf("%c",&choix);

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:38:34

switch(choix)
{
case '2':carre();break;
case '3':cube();break;
}
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}
Les 2 variables locales n sont indépendantes l'une de l'autre.
La variable locale choix n'est connue que de main().

Le fichier d’en-tête contient maintenant les lignes suivantes :
void bonjour(void) ;
void coucou(void) ;
void carre(void) ;
void cube(void) ;

Exercice VII_5:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int n;/* variable globale, connue de tout le programme */

void carre() /* declaration de la fonction */
{
int n2; /* variable locale */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n);
n2 = n*n;
printf("VOICI SON CARRE: %d\n",n2);
}

void cube() /* declaration de la fonction */
{
int n3; /* variable locale */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n);
n3 = n*n*n;
printf("VOICI SON CUBE: %d\n",n3);
}

void main() /* programme principal */
{
char choix;/* variable locale a main() */
printf("CALCUL DU CARRE TAPER 2\n");


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:38:47

printf("CALCUL DU CUBE TAPER 3\n");
printf("\nVOTRE CHOIX: ");
scanf("%c",&choix);
switch(choix)
{
case '2':carre();break;
case '3':cube();break;
}
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE: ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:39:01

La variable globale n est connue de tout le programme (fonctions et main()).
La variable locale choix n'est connue que de main().
Le fichier d’en-tête n’a pas changé.
Un programme bien construit possède peu de variables globales.

Exercice VII_6:

Un programme contient la déclaration suivante:
int tab[10] = {1,2,4,8,16,32,64,128,256,512}; /* variable globale */
Ecrire une fonction de prototype void affiche(void) qui affiche les éléments du tableau, et leur adresse; la mettre en oeuvre dans main().
Actualiser le fichier d’en-tête en conséquence.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:39:25

--------FONCTION RENVOYANT UNE VALEUR AU PROGRAMME ET SANS PASSAGE D'ARGUMENTS--------


Dans ce cas, la fonction, après exécution, renvoie une valeur. Le type de cette valeur est déclaré avec la fonction. La valeur retournée est spécifiée à l'aide du mot réservé return.

Exemple et Exercice VII_7:

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int lance_de() /* declaration de la fonction */
{
int test; /* variable locale */
test = random(6) + 1;
return(test);
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:39:39

randomize();
resultat = lance_de();
/* resultat prend la valeur retournee par le sous-programme */
printf("Vous avez obtenu le nombre: %d\n",resultat);
printf("POUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Il faut ajouter au fichier d’en-tête la ligne suivante :
int lance_de(void) ;


Exercice VII_8:

Un programme contient la déclaration suivante:
float liste[8] = {1.6,-6,9.67,5.90,345,-23.6,78,34.6};/* variable globale */
Ecrire une fonction de prototype float min(void) qui renvoie le minimum de la liste.
Ecrire une fonction de prototype float max(void ) qui renvoie le maximum de la liste.
Les mettre en oeuvre dans main().
Actualiser le fichier d’en-tête en conséquence.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:40:17

-------------FONCTIONS AVEC PASSAGE D'ARGUMENTS----------------


Ce paragraphe traite directement du cas général: fonctions de type void ou non (renvoyant une valeur ou non).
Ces fonctions utilisent les valeurs de certaines variables du programme les ayant appelé: on passe ces valeurs au moyen d'arguments déclarés avec la fonction.

Exemple et Exercice VII_9:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int carre(int x) /* declaration de la fonction */
{ /* x est un parametre*/
int x2; /* variable locale */
x2 = x*x;
return(x2);
}

void main()
{
int n1, n2, res1, res2;/* variables locales */
printf("ENTRER UN NOMBRE: ");
scanf("%d",&n1);
res1 = carre(n1);
printf("ENTRER UN AUTRE NOMBRE: ");
scanf("%d",&n2);
res2 = carre(n2);
printf("VOICI LEURS CARRES: %d %d\n\n",res1, res2);
printf("POUR SORTIR FRAPPER UNE TOUCHE: ");
getch();
}

Dans le fichier d’en-tête, le prototype de la fonction carre devient int carre(int) ;

L’expression int carre(int) est appelée « prototype réduit » de la fonction.
L’expression int carre(int x) est appelée « prototype complet » de la fonction.

On peut ainsi appeler la fonction carre autant de fois que l'on veut avec des variables différentes.
x est un paramètre, ou argument: ce n'est pas une variable du programme.

S'il y a plusieurs arguments à passer, il faut respecter la syntaxe suivante:

Exemples: void fonction1(int x,int y)void fonction2(int a,float b,char c)


Exercice VII_10:

Ecrire une fonction de prototype int puissance(int a, int b) qui calcule ab, a et b sont des entiers (cette fonction n'existe pas en bibliothèque). La mettre en oeuvre dans main(). Actualiser le fichier d’en-tête en conséquence.

Exercice VII_11:

tab1 et tab2 sont des variables locales à main:
int tab1[10] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int tab2[10] = {-19,18,-17,16,-15,14,-13,12,-11,10,-9,8,-7,6,-5,4,-3,2,-1,0};
Ecrire une fonction de prototype void affiche(int *tab) qui permet d'afficher les 20 nombres suivant un tableau 4x5.
La mettre en oeuvre dans main() pour afficher tab1 et tab2.
Il faut ici ajouter la ligne void affiche(int *) ; dans le fichier d’en-tête.
On dit, dans ce cas, que l’on a passé le paramètre PAR ADRESSE.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:40:38

------------------RESUME SUR VARIABLES ET FONCTIONS-----------------


On a donc vu qu'une variable globale est déclarée au début du programme et qu'elle est connue de tout le programme. Les variables globales sont initialisées à 0 au début de l'exécution du programme, sauf si on les initialise à une autre valeur.

On a vu aussi qu'une variable locale (déclarée au début d'une fonction ou de main()) n'est connue que de cette fonction ou de main(). Une variable locale est encore appelée automatique.

Les variables locales ne sont pas initialisées (sauf si on le fait dans le programme) et elles perdent leur valeur à chaque appel à la fonction.
On peut allonger la durée de vie d'une variable locale en la déclarant static. Lors d'un nouvel appel à la fonction, la variable garde la valeur obtenue à la fin de l'exécution précédente. Une variable static est initialisée à 0 lors du premier appel à la fonction.

Exemple: int i;devient static int i;

Exercice VII_12:

Quelle sera la valeur finale de n si i est déclarée comme variable static, puis comme variable automatique ?

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int n;/* initialisee … 0 */

void calcul()
{
static int i; /* initialisee … 0 */
i++;
printf("i=%d\n",i);
n = n+i;
}

void main()
{
calcul();
printf("n= %d\n",n);
calcul();
printf("n= %d\n",n);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:43:43

--------------------LE PASSAGE DE PARAMETRES ENTRE FONCTIONS---------------------
--------------------OU ENTRE FONCTIONS ET PROGRAMME PRINCIPAL--------------------


En langage C, le passage de paramètre se fait uniquement par adresse. Autrement dit, une fonction ne peut pas modifier la valeur des variables locales à main() ou à une autre fonction. Elle ne peut modifier que le contenu de l'adresse de cette variable.

Exemple: Fonction permettant d'échanger la valeur de 2 variables:

Syntaxe qui conduit à une erreur:-----------------------Syntaxe correcte:

#include <stdio.h>--------------------------------------#include <stdio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h"
void ech(int x,int y)-----------------------------------void ech(int *x,int *y)
{-------------------------------------------------------{
int tampon;---------------------------------------------int tampon;
tampon = x;---------------------------------------------tampon = *x;
x = y;--------------------------------------------------*x = *y;
y = tampon;---------------------------------------------*y = tampon;
}-------------------------------------------------------}

void main()---------------------------------------------void main()
{-------------------------------------------------------{
int a = 5 , b = 8;--------------------------------------int a = 5 , b = 8 ;
ech(a,b);-----------------------------------------------ech(&a,&b);
printf(« a=%d\n », a) ;---------------------------------printf(« a=%d\n », a) ;
printf(« b=%d\n », b) ;---------------------------------printf(« b=%d\n », b) ;
}}
PASSAGE DES PARAMETRES--------------------------PASSAGE DES PARAMETRES
PAR VALEUR----------------------------------------PAR ADRESSE

a et b sont des variables locales à main(). La fonction ech ne peut donc pas modifier leur valeur. On le fait donc en passant par l'adresse de ces variables.

Expérimenter ces deux exemples, noter les résultats obtenus.
Dans un deuxième temps, afficher dans main() les adresses de a et de b et dans ech les adresses de x et de y (programme de gauche), les adresses x et y (programme de droite).

Le problème ne se pose pas lorsque le paramètre est un pointeur ou un tableau.

Exercice VII_13:

Saisir les 3 couleurs d'une résistance, afficher sa valeur.
Une fonction de prototype float conversion(char *couleur) calcule le nombre associé à chaque couleur.

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:44:20

Exercice VII_14:

Calculer et afficher les racines de ax2+bx+c=0.
Une fonction de prototype void saisie(float *aa,float *bb,float *cc) permet de saisir a,b,c.
Une fonction de prototype void calcul(float aa,float bb,float cc) exécute les calculs et affiche les résultats.
a, b, c sont des variables locales à main();
main() se contente d'appeler saisie(&a,&b,&c) et calcul(a,b,c).

Exercice VII_15:

Ecrire une fonction de prototype void saisie(int *tx) qui saisie des entiers (au maximum 20), le dernier est 13. Cette fonction renvoie au programme principal adr_debut et adr_fin, les adresses respectives du 1er nombre et du dernier nombre saisis.
- adr_debut et adr_fin sont des variables globales à tout le programme.
- Le programme principal appelle saisie(tab) et affiche la valeur de adr_debut et adr_fin en hexadécimal; tab est une variable locale à main().

Exercice VII_16:

Modifier la fonction de prototype void affiche(int *tx) de l'exercice VII_11 de sorte d'afficher les nombres en tableau 4x5 mais en s'arrêtant à adr_fin. Compléter le programme principal de l'exercice VII_15 par un appel à affiche(tab).

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:44:41

CORRIGE DES EXERCICES


Exercice VII_6:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

tab[10]={1,2,4,8,16,32,64,128,256,512};

void affiche()
{
int i;
printf("VOICI LES ELEMENTS DU TABLEAU ET LEURS ADRESSES:\n\n");
for(i=0;i<10;i++)
printf("ELEMENT Nø: = ADRESSE: %p\n",i,tab[i],tab+i);
}

void main()
{
affiche();
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE: ");
getch();
}

Exercice VII_8:

#include <stdio.h>
#include <conio.h> #include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */ float liste[8] = {1.6,-6,9.67,5.90,345,-23.6,78,34.6};

float max() {
float maxi;
int i; maxi = *liste;
for(i=0;i<8;i++) if(*(liste+i)>maxi) maxi = *(liste+i);
return(maxi);
}

float min()
{
float mini;
int i; mini = *liste;
for(i=0;i<8;i++) if(*(liste+i)<mini) mini = *(liste+i);
return(mini);
}

void main()
{
float rmin, rmax; rmax = max(); rmin = min(); printf("LE MAXIMUM VAUT: %f\n",rmax);
printf("LE MINIMUM VAUT: %f\n",rmin);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE");
getch(); }

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:45:04

Exercice VII_10:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int puissance(int x,int y)
{
int i,p=1;
for(i=1;i<=y;i++) p=x*p;
return(p);
}

void main()
{
int a,b,res;
printf("\nENTRER A: ");scanf("%d",&a);
printf("\nENTRER B: ");scanf("%d",&b);
res = puissance(a,b);
printf("\A PUISS B = %d\n",res);
printf("\n POUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}


Exercice VII_11:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void affiche(int *tab)
{
int i;
for(i=0;i<20;i++)
if((i+1)%5==0) printf("=\n",tab[i]);
else printf("= ",tab[i]);
printf("\n\n");
}

void main()
{
int tab1[20]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
int tab2[20]={-19,18,-17,16,-15,14,-13,12,-11,10,-9,8,-7,6,-5,4,-3,2,-1,0};
affiche(tab1);
affiche(tab2);
printf("\nPOUR CONTINUER FRAPPER UNE TOUCHE ");
getch();
}

Exercice VII_13:

#include <stdio.h>
#include <math.h>
#include <string.h>
#include <alloc.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

float conversion(char *couleur)
{
float x=10;
couleur = strupr(couleur); /* convertit en majuscules */
/* stricmp permet d'eviter l'utilisation de strupr */
if (strcmp("NOIR",couleur)==0) x=0;
if (strcmp("MARRON",couleur)==0) x=1;
if (strcmp("ROUGE",couleur)==0) x=2;
if (strcmp("ORANGE",couleur)==0) x=3;
if (strcmp("JAUNE",couleur)==0) x=4;
if (strcmp("VERT",couleur)==0) x=5;
if (strcmp("BLEU",couleur)==0) x=6;
return(x); /* x permet d'ajouter ‚ventuellement un contr“le d'erreur */
}

void main()
{
float r,c1,c2,c3;
char *coul1,*coul2,*coul3;
coul1 = (char*)malloc(8);
coul2 = (char*)malloc(8);
coul3 = (char*)malloc(8);
printf("\nENTRER LES 3 COULEURS DE LA RESISTANCE:\n");
printf("COULEUR1: ");gets(coul1);
printf("COULEUR2: ");gets(coul2);
printf("COULEUR3: ");gets(coul3);
c1=conversion(coul1);
c2=conversion(coul2);
c3=conversion(coul3);
r = (c1*10 + c2)*pow(10,c3);
if(r<1000) printf("\nVALEUR DE R: %4.0f KOHM\n",r);
if((r>=1000)&&(r<999999))
{
r=r/1000;
printf("\nVALEUR DE R: %7.0f KOHM\n",r);
}
if(r>=999999)

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:45:24

{
r=r/1e6;
printf("\nVALEUR DE R: %4.0f MOHM\n",r);
}
free(coul1);
free(coul2);
free(coul3);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice VII_14:

#include <stdio.h>
#include <math.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

void saisie(float *aa,float *bb,float *cc)
{
printf("\nENTRER A: ");scanf("%f",aa);
printf("\nENTRER B: ");scanf("%f",bb);
printf("\nENTRER C: ");scanf("%f",cc);
printf("\n");
}

void calcul(float aa,float bb,float cc)
{
float delta,x1,x2;
printf("\nA= %f B= %f C=%f\n",aa,bb,cc);
delta = bb*bb-4*cc*aa;
printf("\nDELTA = %f\n",delta);
if (delta<0) printf("\nPAS DE SOLUTION");
if (delta == 0)
{
x1=-(bb/aa/2);
printf("\UNE SOLUTION: X= %f\n",x1);
}
if (delta > 0)
{
x1=(-bb+sqrt(delta))/2/aa;
x2=(-bb-sqrt(delta))/2/aa;
printf("\DEUX SOLUTIONS: X1 = %f X2 = %f\n",x1,x2);
}
}
void main()
{
float a,b,c;
saisie(&a,&b,&c);
calcul(a,b,c);
printf("\n\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:45:41

Exercice VII_15:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int *adr_deb,*adr_fin;

void saisie(int *tx)
{
int i=0;
printf("SAISIE DES NOMBRES SEPARES PAR RETURN (dernier =13)\n");
do
{
printf("NOMBRE: ");
scanf("%d",tx+i);
i++;
}
while(*(tx-1+i)!=13);
adr_fin= (int*)(tx+i-1);
adr_deb=(int*)tx;
}

void main()
{
int tab[20];
saisie(tab);
printf("\nADR_DEB = %p ADR_FIN = %p\n",adr_deb,adr_fin);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}

Exercice VII_16:

#include <stdio.h>
#include <conio.h>
#include "c:\bc5\courc_C\teach_c\chap7\chap7.h" /* fichier d'en-tete */

int *adr_deb,*adr_fin;
void saisie(int *tx)
{
int i=0;
printf("SAISIE DES NOMBRES SEPARES PAR RETURN (dernier =13)\n");
do
{
printf("NOMBRE: ");
scanf("%d",tx+i);
i++;
}
while(*(tx-1+i)!=13);
adr_fin= (int*)(tx+i-1);
adr_deb= (int*)tx;
}

void affiche(int *tx)
{
int i;
printf("\n");
for(i=0;(tx+i)!=(adr_fin+1);i++)
if((i+1)%5==0)printf("]\n",tx[i]);
else printf("] ",tx[i]);
}

void main()
{
int tab[20];
saisie(tab);
affiche(tab);
printf("\n\nADR_DEB = %p ADR_FIN = %p\n",adr_deb,adr_fin);
printf("\nPOUR SORTIR FRAPPER UNE TOUCHE ");
getch();
}


Publicité

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:45:51

Les exécutables:

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:45:59

EXVII_1.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:46:16

EXVII_2.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:46:25

EXVII_3.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:46:33

EXVII_4.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:46:42

EXVII_5.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:46:55

EXVII_6.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:05

EXVII_7.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:13

EXVII_8.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:24

EXVII_9.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:33

EXVII_10.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:51

EXVII_11.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:47:59

EXVII_12.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:48:11

EXVII_13.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:48:21

EXVII_14.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:48:31

EXVII_15.CPP

  abdou1987 :
nb posts:722
nb discussions:131
inscrit le :02-12-2014
le 27-01-2015 à 14:48:42

EXVII_16.CPP

Poster un commentaire ou une réponse :
Poster
     Ajouter un document à la discussion:
       

Actualité informatique et High-Tech

16-10-2015               lire

Dropbox propose aussi un outil d'écriture collaborative à son service

16-10-2015               lire

Bientôt des DRM dans des JPEG

17-04-2015               lire

Google propose une requête pour retrouver son téléphone

17-04-2015               lire

Youtube prépare une offre payante sans publicité

17-04-2015               lire

Sony Pictures : Des milliers de mails et documents confidentiels dévoilés

07-04-2015               lire

T411 bloqué par les FAI français

07-04-2015               lire

NVIDIA publie un pilote correctif et met à jour SHIELD Hub ainsi que GeForce Experience

07-04-2015               lire

Linkedin acquiert la start-up Refresh

03-04-2015               lire

Chromebit, la clé USB Google et Asus qui transforme n’importe quel écran en ordinateur

03-04-2015               lire

Une personne aurait pu supprimer toutes les vidéos d’une chaine Youtube en quelques secondes

03-04-2015               lire

Firefox 37 apporte un cryptage complémentaire à HTTPS

03-04-2015               lire

Windows XP, ce système qui ne veut pas mourir

02-04-2015               lire

Piratage de Labio.fr : le laboratoire répond à nos questions et ne payera pas la rançon

02-04-2015               lire

AWS lance des instances géantes avec 48 To de stockage

02-04-2015               lire

WhatsApp ajoute les appels gratuits et illimités à son application

31-03-2015               lire

Nadim Kobeissi : de Cryptocat à Peerio, du piratage au doctorat

31-03-2015               lire

L'Université de Nantes inaugure son datacenter modulaire taillé pour le HPC

31-03-2015               lire

GitHub victime d’une attaque DDoS majeure

27-03-2015               lire

Googlinette : les recherches de Google en devinettes

27-03-2015               lire

F8 : Facebook ouvre Messenger au e-commerce

27-03-2015               lire

À la SNCF, une fuite de données simple comme une touche F5

23-03-2015               lire

Des satellites GPS de Boeing affectés par une erreur technique

23-03-2015               lire

Plus de 700 000 routeurs ADSL vulnérables au piratage

23-03-2015               lire

Twitter sous le coup d’une action collective pour discrimination

22-03-2015               lire

Les montres connectées étaient déjà présentes dans les films, séries et dessins animés

22-03-2015               lire

Une Audi autonome va traverser les USA de SF à New York

20-03-2015               lire

Éclipse du Soleil : comment la suivre en direct sur Internet

20-03-2015               lire

Projet Leap : des bus 2.0 à San Francisco

20-03-2015               lire

Nvidia dévoile Drive PX, un système de conduite autonome

17-03-2015               lire

Embarquez pour Apollo 11, expérience virtuelle hors du commun

16-03-2015               lire

Ce jour où Google a exposé les données de 282 867 domaines

16-03-2015               lire

Yahoo publie le code de son plug-in de chiffrement mail

16-03-2015               lire

Après un an sans mise à jour, HAWKEN revient à la vie

12-03-2015               lire

Le big data au service du séquençage ADN pour accélérer les diagnostics

12-03-2015               lire

Clap de fin pour PlayStation Mobile

12-03-2015               lire

Apple : retour à la normale après une panne de plus de 11 heures

12-03-2015               lire

Ericsson va supprimer 2 200 postes en Suède

12-03-2015               lire

Le plan de Fleur Pellerin contre le piratage sur Internet

10-03-2015               lire

Apple Watch, Watch Edition et Watch Sport : de 399 à 18.000 euros !

10-03-2015               lire

Apple présente le “nouveau MacBook” qui remplace le MacBook Air

09-03-2015               lire

Google développe une version d'Android pour la réalité virtuelle

09-03-2015               lire

Quand la MPAA demande à Google de déréférencer son propre site

09-03-2015               lire

Heroes of the Dorm : un tournoi HotS avec 450 000 $ de bourses d'études à gagner

09-03-2015               lire

1 milliard d'adresses mails volées, 2 pirates inculpés

09-03-2015               lire

VMware accusé de violation de code Linux

09-03-2015               lire

Les drones civils bientôt immatriculés ?

05-03-2015               lire

7 sites qui permettent d’envoyer des fichiers de + ou – 2 Go

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung56% des consommateurs inquiets pour leurs données en Europe

04-03-2015               lire

Smartphones : Apple passe en tête devant Samsung

04-03-2015               lire

MWC 2015 : Onevisage pésente un scan facial 3D pour smartphones

04-03-2015               lire

Caméras sportives : Xiaomi s'attaque au monopole GoPro

04-03-2015               lire

Yi Camera, la caméra embarquée de Xiaomi à moins de 60€

04-03-2015               lire

Faille FREAK : quand des connexions SSL/TLS se contentent d'un chiffrement RSA sur... 512 bits

04-03-2015               lire

Bientôt des pubs sur Google Play (Android)

28-02-2015               lire

En partenariat avec "Positive Technologies", Esprit a l'honneur d'inviter ses étudiants à la 1ère édition de l’événement ESPRIT HACK DAYS dans les locaux d'ESPRIT Chotrana 2 et ce le 03 et le 04 Mars 2015.

28-02-2015               lire

La direction des stages d’ESPRIT et Ernst & Young ont le plaisir d'inviter ses étudiants à la journée de l’entreprise du mercredi 4 mars 2015 dans la salle E5 d’ESPRIT Factory.

25-02-2015               lire

Adobe fête les 25 ans de son logiciel Photoshop

25-02-2015               lire

Linux 4.0 : gros numéro et petite version

Haut de page.