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/11 22:12] – [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 début du message à afficher (jusqu’au point d’interrogation inclus) | ||
- | * le premier caractère à contrôler ; | ||
- | * le 2ème caractère à contrôler. | ||
- | * Modifiez le contenu de la fonction pour prendre en compte ces paramètres. | ||
- | * Modifiez aussi les appels de la fonction, dans le Main, pour envoyer les bonnes valeurs. | ||
- | |||
- | </ | ||
bloc1/fichesavoirsfonction1.1636665168.txt.gz · Dernière modification : 2021/11/11 22:12 de techer.charles_educ-valadon-limoges.fr