bloc1:fichesavoirsfonction1
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
bloc1:fichesavoirsfonction1 [2021/11/12 11:03] – [Aller plus loin avec plusieurs paramètres] techer.charles_educ-valadon-limoges.fr | bloc1:fichesavoirsfonction1 [2023/11/08 12:51] (Version actuelle) – techer.charles_educ-valadon-limoges.fr | ||
---|---|---|---|
Ligne 11: | Ligne 11: | ||
* et le contrôle de la saisie dans la boucle: | * et le contrôle de la saisie dans la boucle: | ||
- | <code c#> | + | <code c# fonction.cs> |
static void Main(string[] args) { | static void Main(string[] args) { | ||
// déclaration | // déclaration | ||
Ligne 139: | Ligne 139: | ||
==== Programme du nombre caché avec la procédure saisie ==== | ==== Programme du nombre caché avec la procédure saisie ==== | ||
<code c#> | <code c#> | ||
+ | |||
+ | static int essai; | ||
+ | |||
static void Main(string[] args) { | static void Main(string[] args) { | ||
// déclaration | // déclaration | ||
Ligne 189: | Ligne 192: | ||
</ | </ | ||
- | ===== Utiliser une fonction qui renvoie un résulat | + | ===== Utiliser une fonction qui renvoie un résultat |
Il est possible de ne pas utiliser la variable globale en transformant la fonction pour qu’elle **renvoie** (**retourne**) au programme appelant, la valeur saisie. | Il est possible de ne pas utiliser la variable globale en transformant la fonction pour qu’elle **renvoie** (**retourne**) au programme appelant, la valeur saisie. | ||
Ligne 274: | Ligne 277: | ||
**Exercice 2 :** | **Exercice 2 :** | ||
- | Reprenez le programme de l' | + | Reprenez le programme de l' |
</ | </ | ||
===== Rendre la fonction paramétrable ===== | ===== Rendre la fonction paramétrable ===== | ||
Ligne 331: | Ligne 334: | ||
// déclaration | // déclaration | ||
int valeur = 0, essai = 0, nbre = 1; | int valeur = 0, essai = 0, nbre = 1; | ||
- | bool correct = false; | + | |
// saisie du nombre à chercher | // saisie du nombre à chercher | ||
- | valeur = saisie(" | + | valeur = saisie(" |
Console.Clear(); | Console.Clear(); | ||
// saisie du premier essai | // saisie du premier essai | ||
Ligne 358: | Ligne 361: | ||
</ | </ | ||
- | * Les messages d’information **Entrez le nombre à chercher | + | * Les messages d’information **Entrez le nombre à chercher** et **Entrez un essai** sont maintenant transférés dans le paramètre **message** selon les besoins. |
La fonction est paramétrée et le code de la fonction **Main()** est nettement plus court. | La fonction est paramétrée et le code de la fonction **Main()** est nettement plus court. | ||
+ | <WRAP center round info> | ||
+ | Dépôt GitHub : https:// | ||
+ | </ | ||
+ | |||
+ | ==== Correction ==== | ||
+ | [[correction|Correction]] | ||
+ | <code c#> | ||
+ | using System; | ||
+ | class Program | ||
+ | { | ||
+ | static int saisie(string message) | ||
+ | { | ||
+ | bool correct = false; | ||
+ | int chiffre = 0; | ||
+ | while (!correct) | ||
+ | { | ||
+ | try | ||
+ | { | ||
+ | Console.Write(message); | ||
+ | chiffre = int.Parse(Console.ReadLine()); | ||
+ | correct = true; | ||
+ | } | ||
+ | catch | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | } | ||
+ | return chiffre; | ||
+ | } | ||
+ | |||
+ | public static void Main(string[] args) | ||
+ | { | ||
+ | // déclaration | ||
+ | int valeur = 0, essai = 0, nbre = 1; | ||
+ | |||
+ | // saisie du nombre à chercher | ||
+ | valeur = saisie(" | ||
+ | |||
+ | Console.Clear(); | ||
+ | // saisie du premier essai | ||
+ | essai = saisie(" | ||
+ | |||
+ | // boucle sur les essais | ||
+ | while (essai != valeur) | ||
+ | { | ||
+ | // test de l’essai par rapport à la valeur à chercher | ||
+ | if (essai > valeur) | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | else | ||
+ | { | ||
+ | Console.WriteLine(" | ||
+ | } | ||
+ | // saisie d’un nouvel essai | ||
+ | essai = saisie(" | ||
+ | // compteur d’essais | ||
+ | nbre++; | ||
+ | } | ||
+ | // valeur trouvée | ||
+ | Console.WriteLine(" | ||
+ | Console.ReadLine(); | ||
+ | } | ||
+ | } | ||
+ | </ | ||
==== Aller plus loin avec plusieurs paramètres ==== | ==== Aller plus loin avec plusieurs paramètres ==== | ||
Ligne 372: | Ligne 440: | ||
</ | </ | ||
- | <WRAP center round todo> | ||
- | **Exercice 3 :** | ||
- | |||
- | * Reprenez le programme de l' | ||
- | * Modifiez la fonction **saisie()** pour qu’elle reçoive 3 paramètres : | ||
- | * le **message à afficher** (jusqu’au point d’interrogation inclus) | ||
- | * le premier caractère à contrôler qui est **O**; | ||
- | * le 2ème caractère à contrôler qui est **N**. | ||
- | * Modifiez le contenu de la fonction **saisie()** pour prendre en compte ces paramètres. | ||
- | * Modifiez aussi les appels de la fonction, dans le **Main()**, pour envoyer les bonnes valeurs. | ||
- | </ | ||
- | |||
- | <WRAP center round todo> | ||
- | **Exercice 4 :** | ||
- | * Créez une nouveau projet à partir de ce dépôt Git https:// | ||
- | * Ajoutez la fonction **saisie()** écrite dans l’exercice précédent ; | ||
- | * Modifiez la fonction **Main()** pour utiliser la fonction **saisie()**. | ||
- | </ | ||
bloc1/fichesavoirsfonction1.1636711436.txt.gz · Dernière modification : 2021/11/12 11:03 de techer.charles_educ-valadon-limoges.fr