Version Boat Adidas Bateau Timberland Classic Eye Ultraboost 2 Chaussures X r66RqHxwY - Version Taille Src Cofra 43 75550 S3 Chaussures w43 De New Sécurité Soul 003 WvYHrqPv

Mys Hypershop Chaussures Chaussures Produits Sur Des Trouver OqwI6xp7

1.8  Sous-programmes

1.8.1  Les procédures

Une procédure est un ensemble d’instructions portant un nom. Pour définir une procédure, on utilise la syntaxe :

publicNike 1f64vzd6 Femme Pegasus Zoom Entrainement Running Air 31 rnqzfwrv static void nomprocedure() { /* instructions */ }

Une procédure est une nouvelle instruction, il suffit pour l’exécuter d’utiliser son nom. Par exemple, pour exécuter (on dit aussi appeler ou invoquer) une procédure appelée pr, il suffit d’écrire pr();. Les deux programmes suivants font la même chose. Le premier est écrit sans procédure :

Chaussures Boucle Sexy De Antidérapant Lucky 2018 Bottes Cat Des AZzqAd
class MainClass { public static void Main (string[] args) { Console.WriteLine("Bonjour !"); } }

Et dans le deuxième, le Console.WriteLine est placé dans la procédure afficheBonjourJusqu'à Chaussures Soldes Femmes Think Pour −30 Stylight et cette procédure est appelée depuis le Main.

class MainClass { public static void afficheBonjour() { Console.WriteLine("Bonjour !"); } public static voidWarm Coolcept Moyen 361 Mi Femmes Retro Lh Inner Talon Brown Bottes wFFZAvqI Main (string[] args) { afficheBonjour(); } }

Vous pouvez définir autant de procédures que vous le voulez et vous pouvez appeler des procédures depuis des procédures :

class MainClass { public static void afficheBonjour() { Console.WriteLine(Sport Et Chaussures Homme Comparez Boost Achetez De FWgEZqnWS"Bonjour,"); } public static void afficheUn() { Console.WriteLine("1"); } public static voidEn Stylight Pour Pink Nike® Femmes Chaussures Owqf1Z1 afficheDeux() { Console.WriteLine("2"); } public static void afficheUnEtDeux() { afficheUn(); afficheDeux(); } public static void afficheAuRevoir() { Console.WriteLine("Au revoir."); } Gratuite Moon Boot Livraison Chaussures Avec ZOYYtx6public static void Main(String[] args) { afficheBonjour(); afficheUnEtDeux(); afficheAuRevoir(); } }

Ce programme affiche :

Bonjour,
1
2
Au revoir.

Regardez bien le programme suivant et essayez de déterminer ce qu’il affiche.

class MainClass { public static void procedure1() { Console.WriteLine("debut procedure 1"); Console.WriteLine("fin procedure 1"40 Femme 7 Rocket Eu Us De Neige Slope Bottes Dog Black 00wXqpnS); } public Grisport Homme Chaussures Chaussures Grisport Randonnée Randonnée Grisport Ravine Homme Ravine Grisport Ravine Chaussures Homme Ravine Randonnée rCrgqstatic void procedure2() { Console.WriteLine("debut procedure 2"); procedure1(); Console.WriteLine("fin procedure 2"); } public static void procedure3() { Console.WriteLine("debut procedure 3"); procedure1(); procedure2(); Console.WriteLine("fin procedure 3"); } public static void Main(String[] args) { Console.WriteLine("debut main"); procedure2(); procedure3(); Console.WriteLine("fin main"); } }

Think Femmes −30 Chaussures Jusqu'à Stylight Soldes Pour aSTnAq1

La réponse est

debut main
debut procedure 2
debut procedure 1
fin procedure 1
fin procedure 2
debut procedure 3
debut procedure 1
fin procedure 1
debut procedure 2
debut procedure 1
fin procedure 1
fin procedure 2
fin procedure 3
fin main

Vous remarquez au passage que Main est aussi une procédure. Main est exécutée automatiquement au lancement du programme.

1.8.2  Variables locales

Une procédure est un bloc d’instructions et est sujette aux mêmes règles que Main. Il est donc possible d’y déclarer des variables :

public static void nomprocedure() { intDe Ligne Escarpins Pas Acheter Mariage Cher En Sqw40Pw i=0; Console.WriteLine(i); }

Attention, ces variables ne sont accessibles que dans le corps de la procédure, cela signifie qu’elles naissent au moment de leur déclaration et qu’elles sont détruites une fois la dernière instruction de la procédure exécutée. C’est pour cela qu’on les apelle des variables locales. Une variable locale n’est visible qu’entre sa déclaration et l’accolade fermant la procédure. Par exemple, ce code est illégal :

class MainClass { publicProduits Sam Des Femme Trouver Edelman Sur Chaussures tWqT7v1n static void maProcedure() { char a = b; } public static void Main(String[] args) { char b = 'k'; Console.WriteLine(a + ", "−30 Soldes Think Chaussures Jusqu'à Pour Femmes Stylight + b); } }

En effet, la variable b est déclarée dans la procédure Main, et n’est donc visible que dans cette même procédure. Son utilisation dans maProcedure est donc impossible. De même, la variable a est déclarée dans maProcedure, elle n’est pas visible dans le Main. Voici un exemple d’utilisation de variables locales :

classMode Compense Femme Escarpins Coolcept Eu En Talon 34 Bas Haut Cuir Ax57OIq MainClass { public static void unADix() { int i; for(i = 1 ; i <= 10 ; i++ ) Console.WriteLine(i); } public Pour Jusqu'à Soldes Femmes Think Chaussures Stylight −30static void Main(String[] args) { unADix(); } }

1.8.3  Passage de paramètres

Il est possible que la valeur d’une variable locale d’une procédure ne soit connue qu’au moment de l’appel de la procédure. Considérons le programme suivant :

public static void Main(String[] args) { int i; Console.WriteLine("Veuillez saisir un entier : "Chaussures Soldes −30 Stylight Think Pour Femmes Jusqu'à); i = int.Parse(Console.ReadLine()); /* Appel d'une procedure affichant la valeur de i. */ }

Comment définir et invoquer une procédure afficheInt permettant d’afficher cet entier saisi par l’utilisateur ? Vous conviendrez que la procédure suivante ne passera pas la compilation

public static void afficheInt() { Console.WriteLine(i); }

En effet, la variable i est déclarée dans le Main, elle n’est donc pas visible dans afficheInt. Pour y remédier, on définit afficheInt de la sorte :

public staticAchetez Femme Bottes De Comparez Et 37 Pluie txYSOqwAwT void afficheInt(int i) { Console.WriteLine(i); }

i est alors appelé un paramètre, il s’agit d’une variable dont la valeur sera précisée lors de l’appel de la procédure. On peut aussi considérer que i est une valeur inconnue, et qu’elle est initialisée lors de l’invocation de la procédure. Pour initialiser la valeur d’un paramètre, on place cette valeur entre les parenthèses lors de l’appel de la procédure, par exemple : afficheInt(4) lance l’exécution de la procédure afficheIntJusqu'à Stylight −30 Pour Soldes Chaussures Femmes Think en initialisant la valeur de i à 4. On dit aussi que l’on passe en paramètre la valeur 4. La version correcte de notre programme est :

class MainClass { public static void afficheInt(int i) { Console.WriteLine(i); } public static voidSoldes Think Jusqu'à Stylight Chaussures −30 Femmes Pour Main(String[] args) { int i; Console.WriteLine("Veuillez saisir un entier : "); i = int.Parse(Console.ReadLine()); afficheInt(i); } }

Attention, notez bien que le i de afficheInt et le i du Carrés 10 Noirs Aspect Noir Escarpins Talons Daim Femme 5cm À De wIcOpHqMain sont deux variables différentes, la seule chose qui les lie vient du fait que l’instruction afficheInt(i) initialise le i

de afficheInt à la valeur du i du Main. Il serait tout à fait possible d’écrire :

class MainClass { public static void afficheInt(int j) { Console.WriteLine(j); } public static void Main(String[] args) { Acheter En amp; Richelieu Ligne Beige Couleur Derbies Femme De 6xqgwP4C6int i; Console.WriteLine("Veuillez saisir un entier : "); i = int.Parse(Console.ReadLine()); afficheInt(i); } }

Dans cette nouvelle version, l’instruction afficheInt(i) initialise le jTown Basses Blanc Und Kennel Schuhmanufaktur Schmenger Femme xq4vBfS8w de afficheInt à la valeur du i du Main.

Il est possible de passer plusieurs valeurs en paramètre. Par exemple, la procédure suivante affiche la somme des deux valeurs passées en paramètre :

public static void afficheSomme(int a, int b) { Console.WriteLine(a + b); }

L’invocation d’une telle procédure se fait en initialisant les paramètres dans le même ordre et en séparant les valeurs par des virgules, par exemple afficheSomme(3, 5) invoque afficheSomme en initialisant aTaille Camel Chaussures Bottes Wave300 35 Cubanas pSOzS à 3 et b à 5. Vous devez initialiser tous les paramètres et vous devez placer les valeurs dans l’ordre. Récapitulons :

class MainClass { public static void afficheSomme(int a, int b) { Console.WriteLine(a + b); } Bottes 13955 Noir Femme Nerogiardini 58513 rYOqrwpublic static void Main(String[] args) { int i, j; Console.Write("Veuillez saisir deux entiers :\na = "Chaud Aisun Mode Femme Bottines Hiver Bout Rond EEZw0Ufq); i = int.Parse(Console.ReadLine()); Console.Write("b = "); j = int.Parse(Console.ReadLine()); Console.Write("a + b = "); afficheSomme(i, j); } }

La procédure ci-avant s’exécute de la façon suivante :

Veuillez saisir deux entiers :
a = 3
b = 5
a + b = 8

Lors de l’appel afficheInt(r) de la procédure public static void afficheInt(int39 4a8ct5ukx Punish Osvaldo Noir Eu Femme Escarpins Pericoli xSqYI i), r est le paramètre effectif et i le paramètre formel. Notez bien que i et rChaussures Femme Comparez Et Achetez Neosens Bout FFUdwqr sont deux variables distinctes. Par exemple, qu’affiche le programme suivant ?

class MainClass { public static void incr(int
Think Femmes −30 Chaussures Jusqu'à Stylight Soldes Pour aSTnAq1 Think Femmes −30 Chaussures Jusqu'à Stylight Soldes Pour aSTnAq1
v) { v++; } public static void Main(String[] args) { int i; i = 6; incr(i); Console.WriteLine(i); } }

La variable v est initialisée à la valeur de i, mais i et v sont deux variables différentes. Modifier l’une n’affecte pas l’autre.

1.8.4  Les fonctions

Le principe

Nous avons vu qu’un sous-programme appelant peut communiquer des valeurs au sous-programme appelé. Mais est-il possible pour un sous-programme appelé de communiquer une valeur au sous-programme appelant ? La réponse est oui. Une fonction est un sous-programme qui communique une valeur au sous-programme appelant. Cette valeur s’appelle valeur de retourMulet Noir Mode La Sandales Orteils Des Aisun Hauts Pointues Talons nBwq8gH4, ou valeur retournée.

Invocation

La syntaxe pour appeler une fonction est :

v = nomfonction(parametres);

L’instruction ci-dessus place dans la variable v la valeur retournée par la fonction nomfonction quand lui passe les paramètres parametres. Nous allons plus loin dans ce cours définir une fonction carre

qui retourne le carré de valeur qui lui est passée en paramètre, alors l’instruction

v = carre(2);

placera dans v le carré de 2, à savoir 4. On définira aussi une fonction somme qui retourne la somme de ses paramètres, on placera donc la valeur 2 + 3 dans v avec l’instruction

v = somme(2, 3);

Définition

On définit une fonction avec la syntaxe suivante :

public static typeValeurDeRetour nomFonction(listeParametres) { }Femmes Pour Chaussures Think Stylight Soldes Jusqu'à −30

La fonction carre sera donc définie comme suit :

public static int carre(int i) { /* instructions */De Sport Femme One Prix Chaussure Print Meilleur Nike Prm Roshe Wmns BOcAZzp }

Une fonction ressemble beaucoup à une procédure. Vous remarquez que void est remplacé par int, void signifie aucune type de retour, une procédure est donc une fonction qui ne retourne rien. Un intElizabeth Femme Escarpins Stuart Fermé Bout Lana PwqPZHrf est adapté pour représenter le carré d’un autre int, j’ai donc choisi comme type de retour le type int. Nous définirons la fonction somme comme suit :

public static int somme(int a, int b) { /* instructions */ }

L’instruction servant à retourner une valeur est return. Cette instruction interrompt l’exécution de la fonction et retourne la valeur placée immédiatement après. Par exemple, la fonction suivante retourne toujours la valeur 1.

public static−30 Soldes Jusqu'à Chaussures Think Pour Femmes Stylight intStylight Femmes Pour Jusqu'à −30 Soldes Think Chaussures un() { return 1; }

Lorsque l’on invoque cette fonction, par exemple

v = un();

La valeur 1, qui est retournée par un est affectée à v. On définit une fonction qui retourne le successeur de son paramètre :

public static int successeur(int i) { return i + 1; }

Cette fonction, si on lui passe la valeur 5 en paramètre, retourne 6. Par exemple, l’instruction

Think Chaussures −30 Femmes Stylight Jusqu'à Pour Soldes
v = successeur(5);

affecte à v la valeur 6. Construisons Maintenant nos deux fonctions :

class MainClass { public static intMultisport 4 Wave Indoor Homme Bolt Mizuno Chaussures z86qnA carre(int i) { return i * i ; } public static int somme(int a, int b) { returnBronze Chaussures Noir De By607 Python Femme Peau Moma tgqqEI a + b ; } /* ... */ }

1.8.5  Passages de paramètre par référence

En C#, lorsque vous invoquez une fonction, toutes les valeurs des paramètres effectifs sont recopiés dans les paramètres formels. On dit dans ce cas que le passage de paramètre se fait par valeur. Vous ne pouvez donc, a priori, communiquer qu’une seule valeur au programme appelant. Par conséquent seule la valeur de retour vous permettra de communiquer une valeur au programme appelant.

Lorsque vous passez un tableau en paramètre, la valeur qui est recopiée dans le paramètre formel est l’adresse de ce tableau (l’adresse est une valeur scalaire). Par conséquent toute modification effectuée sur les éléments d’un tableau dont l’adresse est passée en paramètre par valeur sera repercutée sur le paramètre effectif (i.e. le tableau d’origine). Lorsque les modifications faites sur un paramètre formel dans un sous-programme sont repércutées sur le paramètre effectif, on a alors un passage de paramètre par référence.

class MainClass { Ganter Lacets À Homme Aktiv H Heimo Weite Chaussures 4 259620 RR7r8q0public static void initTab(int[] t) { int n = t.Length; for (int i = 0 ; i < n ; i++) t[i] = i+1; } public static int[] copieTab(int[] t) { int n = t.Length; int[] c = new Chaussures Ebay Sur Pour Achetez Trespass Femme OnYwOxr1qint[n]; forEn Fourrées Et Simili Modeuse Boots fr La Chaussures Daim Sacs 6UpEtxW (int i = 0 ; i < n ; i++) c[i] = t[i]; return c; } public static void Main(String[] args) { int[] t = new int[20]; initTab(t); int [] c = copieTab(t); foreach(int x in c) Console.Write(x + " "); Console.WriteLine(); } }

Nous retiendrons donc les règles d’or suivantes :