Jump to content
La fin ?! Elle est là ! ×
×
×
  • Create New...

Les Bases du C#


reZo
 Share

Recommended Posts

Niveau requis Débutant

Temps estimé : 30 minutes

Bonjour,

 

Bon, on va analyser un petit bout de code reflétant le théorème de Pythagore. Je vais vous expliquer le déroulement de la lecture du code et ce que veux dire les variables utilisées.

 

Révélation

 

Révélation

231653code-pythagore.png

 

Les "usings" sont les 'bases' qui seront utilisés lorsque vous allez coder. C'est entre autre, la structure de la "maison".

namespace CodePythagore // test 
'name space' est le nom donné au programme qui va suivre ; les doubles " // " signifient juste que ce qui être après les doubles // sera une note.
class Program
On définie la classe 'program' ; une 'class' est un extrait de code (en général); on définit des classes en fonction de sur quoi on va travailler.
static double LongueurHypothenuse(double a, double b)
Alors là, ça se complique. 'static double' signifie juste que 'double' est définit en tant que variable statique (oui c'est contradictoire) elle est fixée en tant que 'double'. Ce qui est entre parenthèse sont nos variables de base 'a' et 'b'.
double sommeDescarres = a * a + b * b;
           double resultat = Math.Sqrt(sommeDescarres);
           return resultat;
           Console.WriteLine("Le resultat est" + resultat);
Dans le screen j'ai oublier la dernière ligne. Alors là c'est simple, on donne un nom à notre variable de calcul 'double' => sommeDescarres , puis on lui donne une variable qui est = a * a + b * b. A notre variable de calcul on lui affecte un second nom 'resultat', qui va calculer la racine de (sommeDescarres). 'return' signifie simplement qu'on fait les calculs et qu'il nous faut quelque chose pour l'afficher, c'est pourquoi on a " Console.WriteLine("Le resultat est" + resultat); " vous devriez avoir compris ce que ça affiche. On a " + résultat " car notre variable 'resultat' a fait le calcul et donc va afficher le resultat.
+ resultat

 

 
Cordialement,
Hey hey
  • J'adore 1
Link to comment
Share on other sites

  • Replies 5
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

  • Retraité

Mauvaise section, je déplace.

 

Ceci étant, le titre du sujet n'est pas vraiment raccord avec ce que tu nous y présente.

 

Ensuite, certains points présentés sont soit mal/trop peu expliqués soit tout simplement erronés : 

  • Les using permettent l'accès aux objets (class, enum, interface,...) présents dans des namespaces
     
  • namespace n'est pas le nom donné au programme. Un namespace est un espace nommé dans lequel sont définis divers objets (class, enum, interface,...). Il s'agit d'un mécanisme d'organisation interne du programme.
     
  • Pour le passage sur "static double LongueurHypothenuse(double a, double b)", il aurait été intéressant que tu expliques le principe de fonction/méthode/procédure.
     
  • La ligne que tu as rajouté devrait se trouver en dessous du "return" sinon elle n'est jamais atteinte.
     
  • "puis on lui donne une variable qui est = a * a + b * b." Techniquement le terme n'est pas variable mais valeur.
     
  • "A notre variable de calcul on lui affecte un second nom 'resultat', qui va calculer la racine de (sommeDescarres)." Non. On crée une seconde variable temporaire nommée 'resultat' à laquelle on affecte la valeur retournée par l'appel à la fonction Math.Sqrt(double d) avec la variable 'sommeDescarres' comme paramètre. 
     
  • "'return' signifie simplement qu'on fait les calculs" Non. 'return ;' signifie que  sera la valeur retournée par la fonction.
     

Après, mais ca c'est mon avis, tu devrais nommer plus explicitement les paramètres formels de "LongueurHypothenuse" et ne surtout pas inclure de Console.Write dans la fonction. Dans un programme il est préférable de bien séparer calcul et affichage. Personnellement, j'aurai donné le code suivant :

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CodePythagore
{
    class Program
    {
         static void Main(string[] args)
         {
              double longueur1 = 3.0;
              double longueur2 = 4.0;
              double longueur3;

              longueur3 = LongueurHypothenuse(longueur1, longueur2);

              Console.WriteLine("Dans un triangle rectangle dont les côtés sont de longueurs " + longueur1 + " et " + longueur2 + ", l'hypothénuse est de longueur " + longueur3);
         }

         static double LongueurHypothenuse(double longueurPremierCote, double longueurDeuxiemeCote)
         {
              double sommeDesCarres = longueurPremierCote * longueurPremierCote + longueurDeuxiemeCote * longueurDeuxiemeCote;
              double resultat = Math.Sqrt(sommeDesCarres);

              return resultat;
         }
    }
}

 

 

java style =)

Link to comment
Share on other sites

Mauvaise section, je déplace.

 

Ceci étant, le titre du sujet n'est pas vraiment raccord avec ce que tu nous y présente.

 

Ensuite, certains points présentés sont soit mal/trop peu expliqués soit tout simplement erronés : 

  • Les using permettent l'accès aux objets (class, enum, interface,...) présents dans des namespaces
     
  • namespace n'est pas le nom donné au programme. Un namespace est un espace nommé dans lequel sont définis divers objets (class, enum, interface,...). Il s'agit d'un mécanisme d'organisation interne du programme.
     
  • Pour le passage sur "static double LongueurHypothenuse(double a, double b)", il aurait été intéressant que tu expliques le principe de fonction/méthode/procédure.
     
  • La ligne que tu as rajouté devrait se trouver en dessous du "return" sinon elle n'est jamais atteinte.
     
  • "puis on lui donne une variable qui est = a * a + b * b." Techniquement le terme n'est pas variable mais valeur.
     
  • "A notre variable de calcul on lui affecte un second nom 'resultat', qui va calculer la racine de (sommeDescarres)." Non. On crée une seconde variable temporaire nommée 'resultat' à laquelle on affecte la valeur retournée par l'appel à la fonction Math.Sqrt(double d) avec la variable 'sommeDescarres' comme paramètre. 
     
  • "'return' signifie simplement qu'on fait les calculs" Non. 'return ;' signifie que  sera la valeur retournée par la fonction.
     

Après, mais ca c'est mon avis, tu devrais nommer plus explicitement les paramètres formels de "LongueurHypothenuse" et ne surtout pas inclure de Console.Write dans la fonction. Dans un programme il est préférable de bien séparer calcul et affichage. Personnellement, j'aurai donné le code suivant :

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace CodePythagore
{
    class Program
    {
         static void Main(string[] args)
         {
              double longueur1 = 3.0;
              double longueur2 = 4.0;
              double longueur3;

              longueur3 = LongueurHypothenuse(longueur1, longueur2);

              Console.WriteLine("Dans un triangle rectangle dont les côtés sont de longueurs " + longueur1 + " et " + longueur2 + ", l'hypothénuse est de longueur " + longueur3);
         }

         static double LongueurHypothenuse(double longueurPremierCote, double longueurDeuxiemeCote)
         {
              double sommeDesCarres = longueurPremierCote * longueurPremierCote + longueurDeuxiemeCote * longueurDeuxiemeCote;
              double resultat = Math.Sqrt(sommeDesCarres);

              return resultat;
         }
    }
}

 

 

 

Salut,

Tous ce que tu as dis, je le sais, mais pour l'expliquer à des débutants, je ne savais pas trop comment m'y prendre.

En relisant il y a des points erronés, c'est vrai. Et à vrai dire, je ne sais pas comment l'expliquer en Français  :D

Toute fois, merci d'avoir lu.

Link to comment
Share on other sites

  • Retraité

A mon sens pour voir les bases, il faudrait commencer par définir le concept de programme puis d'instruction, enchainer sur le concept de variable et les différents types existant en C#, détailler ensuite les opérateurs de calcul, puis voir la syntaxe des structures conditionnelles, puis celle des boucles et finalement introduire le concept de fonction. Ca fait déjà une très bonne entrée en matière.

 

Après, j'avoue que la programmation n'est pas toujours des plus simple à expliquer (je pense avoir passé au moins une heure à rédiger ma précédente réponse) d'autant plus avec un language objet tel que le C# qui même dans un code simple simple comme ici présente des éléments de mécanismes plus complexes (namespace, static, ...).

java style =)

Link to comment
Share on other sites

A mon sens pour voir les bases, il faudrait commencer par définir le concept de programme puis d'instruction, enchainer sur le concept de variable et les différents types existant en C#,  détailler ensuite les opérateurs de calcul, puis voir la syntaxe des structures conditionnelles, puis celle des boucles et finalement introduire le concept de fonction. Ca fait déjà une très bonne entrée en matière.

 

Après, j'avoue que la programmation n'est pas toujours des plus simple à expliquer (je pense avoir passé au moins une heure à rédiger ma précédente réponse) d'autant plus avec un language objet tel que le C# qui même dans un code simple simple comme ici présente des éléments de mécanismes plus complexes (namespace, static, ...).

 

Tout à fait, j'aurai du introduire de la sorte.

J'y penserai à l'avenir, merci à toi

Link to comment
Share on other sites

 Share



Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.