Outils pour utilisateurs

Outils du site


bloc1:fichesavoirsfonction1

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
bloc1:fichesavoirsfonction1 [2021/11/11 22:14] – [Aller plus loin avec plusieurs paramètres] techer.charles_educ-valadon-limoges.frbloc1: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:
 </WRAP> </WRAP>
  
-===== Utiliser une fonction qui renvoie un résulat (une valeur)=====+===== Utiliser une fonction qui renvoie un résultat (une valeur)=====
 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'exercice et modifiez-le de cette manière afin de renvoyer un résultat.+Reprenez le programme de l'exercice et modifiez-le de cette manière afin de renvoyer un résultat.
 </WRAP> </WRAP>
 ===== 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;+  // plus de déclaration de la variable correct à faire //bool correct = false;
   // saisie du nombre à chercher   // saisie du nombre à chercher
-  valeur = saisie("Entrez le nombre à chercher "); // -> 1er appel de la fonction saisie() avec un message en paramètre+  valeur = saisie("Entrez le nombre à chercher"); // -> 1er appel de la fonction saisie() avec un message en paramètre
   Console.Clear();   Console.Clear();
   // saisie du premier essai   // saisie du premier essai
Ligne 358: Ligne 361:
 </code> </code>
  
-  * 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. +  * 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://github.com/ctecher/FonctionC_cor.git
 +</WRAP>
 +
 +==== 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("Erreur de saisie : saisissez un nombre entier");
 +            }
 +        }
 +        return chiffre;
 +    }
 +
 +    public static void Main(string[] args)
 +    {
 +        // déclaration
 +        int valeur = 0, essai = 0, nbre = 1;
 +
 +        // saisie du nombre à chercher
 +        valeur = saisie("Entrez le nombre à chercher = ");
 +
 +        Console.Clear();
 +        // saisie du premier essai
 +        essai = saisie("Entrez un essai = ");
 +
 +        // boucle sur les essais
 +        while (essai != valeur)
 +        {
 +            // test de l’essai par rapport à la valeur à chercher
 +            if (essai > valeur)
 +            {
 +                Console.WriteLine(" --> trop grand !");
 +            }
 +            else
 +            {
 +                Console.WriteLine(" --> trop petit !");
 +            }
 +            // saisie d’un nouvel essai
 +            essai = saisie("Entrez un essai = ");
 +            // compteur d’essais
 +            nbre++;
 +        }
 +        // valeur trouvée
 +        Console.WriteLine("Vous avez trouvé en " + nbre + " fois !");
 +        Console.ReadLine();
 +    }
 +}
 +</code>
  
 ==== Aller plus loin avec plusieurs paramètres ==== ==== Aller plus loin avec plusieurs paramètres ====
Ligne 372: Ligne 440:
 </WRAP> </WRAP>
  
-<WRAP center round todo> 
-**Exercice 3 :** 
- 
-  * Reprenez le programme de l'exercice 2 à partir de ce dépôt Git : https://github.com/ctecher/FonctionExercice2.git; 
-  * 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> 
  
bloc1/fichesavoirsfonction1.1636665252.txt.gz · Dernière modification : 2021/11/11 22:14 de techer.charles_educ-valadon-limoges.fr