Академический Документы
Профессиональный Документы
Культура Документы
Laporte
C# mode console
DAIGL TS1
Bases du langage C#
I. C# en mode console (mode texte)
? Avantages par rapport au mode graphique (Application Windows): - C'est un mode plus proche de l'approche algorithmique (pas de notions de composants, de proprits, d'vnements, ). Le programmeur dbutant matrise un peu mieux ce qu'il fait. - Permet d'crire simplement des programmes qui ne permettent qu'une interaction minime voire nulle avec l'utilisateur. ? Inconvnients : - Ne reflte pas la ralit des applications de gestion actuelles (toutes avec interface graphique) - Aspect plus rbarbatif (l'application se lance dans une fentre de commande) ? Ecrire une application en mode Console Pour crer une nouvelle application en mode console, la seule diffrence avec la cration d'une nouvelle application Windows c'est qu'il faut choisir comme type de modle Application Console et non Application Windows dans la bote de dialogue Nouveau Projet. A l'cran apparat alors le squelette du code de l'application. Evidemment, il n'y a pas de mode design pour crer une interface graphique. Dans la fentre Explorateur de solutions, on remarque que plusieurs fichiers sont gnrs automatiquement. Tous ces fichiers sont indispensables, nous les tudierons par la suite, mais dans un premier dans vous n'aurez travailler que sur un seul fichier, celui qui est ouvert par dfaut, dans lequel vont tre crites les instructions. Ce fichier d'extension ".cs" (cs comme C sharp) est appel par dfaut Class1.cs. Ce type de fichier qui contient le code du programme s'appelle fichier source. Les instructions de votre programme doivent tre crites l'intrieur des accolades du bloc appel static void Main(string []args), la place des commentaires (les lignes commenant par //). Nous verrons par la suite que nous pourrons placer du code en dehors de Main (en crant d'autres blocs de code) ou mme crer d'autres fichiers source concernant la mme application.
? Tant que vous tes novices en programmation et que vous ne matrisez pas les instructions qui sont gnres automatiquement par l'environnement de dveloppement, ne touchez pas ces instructions, surtout ne modifiez et ne supprimez rien, votre application risquerait alors de ne plus fonctionner. Ceci est valable dans n'importe quel mode (console ou graphique). Pour excuter un programme crit en mode console, il faut d'abord le gnrer, ce qui correspond la traduction des instructions crites en C# en instructions comprhensibles par la machine, ce qu'on appelle aussi la compilation.
S. Laporte
C# mode console
DAIGL TS1
Une fois la gnration russie (pas d'erreur de syntaxe), il faut lancer l'excution du programme par la commande Excuter sans dbogage (dans le menu dboguer ou par l'icne reprsentant un ! rouge, ou par Ctrl + F5). ? Attention, si vous choisissez la place la commande Dmarrer (flche ou F5) comme vous pouviez le faire avec les applications Windows, alors l'application va s'excuter mais la fentre se refermera immdiatement aprs, et on n'aura pas le temps de voir le rsultat.
Exemple de programme basique en mode console Ce programme ce contente d'afficher Bonjour dans la fentre d'excution. code source du programme
fentre d'excution
? L'affichage et la saisie en mode console Pour l'affichage et la saisie, on utilise un composant invisible (une classe) qui s'appelle Console, et qui possde des mthodes pour afficher du texte et saisir des chanes de caractre. L'affichage Comme il n'y a pas d'interface graphique avec des contrles pour crire du texte, ce sont des instructions particulires qui permettent de l'affichage lors de l'excution, en mode texte dans une fentre de commande.
Console.WriteLine( expression afficher ) ;
Cette instruction affiche la valeur de l'expression indique entre parenthses puis passe la ligne.
Console.Write( expression afficher );
Cette instruction fait la mme chose mais sans passer la ligne. L'affichage suivant se fera donc juste aprs ce qui est crit l'cran (sans mme un espace).
S. Laporte
C# mode console
DAIGL TS1
L'avantage des mthodes Write et WriteLine c'est qu'elles permettent d'afficher n'importe quel type d'expression, et pas seulement les expressions de type chane de caractre (contrairement au champ Text des contrles graphiques). Aucune conversion n'est ncessaire !
La saisie La saisie est plus dlicate que l'affichage. Pour rcuprer ce que l'utilisateur saisi au clavier, il faut d'abord dclarer une variable de type string (chane de caractre) qui va permettre de mmoriser la saisie. A cette variable, on affecte le rsultat de la mthode Console.ReadLine( ), qui est toujours une chane de caractre (mme si l'utilisateur a tap un nombre). Le rsultat de cette mthode est tout simplement ce que l'utilisateur a tap au clavier avant de valider par la touche Entre. ex :
string chainesaisie ; chainesaisie = Console.ReadLine(); Console.WriteLine("vous venez de saisi r la chane suivante : "+ chainesaisie);
Rsultat :
Si l'utilisateur saisit un nombre, celui-ci sera tout de mme considr comme une suite de caractre, et donc comme une chane (string). Autrement dit, il n'est pas possible de saisir directement une variable d'un autre type que string. ex : int unentier; unentier = Console.ReadLine( ) ; Impossible: provoque une erreur la gnration
Pour pouvoir rcuprer la valeur saisie dans une variable de type appropri, il faut effectuer une conversion par le composant (la classe) Convert et la mthode correspondante au type voulu. Plus exactement, on affecte la variable du bon type, le rsultat de la conversion de la chane saisie par Convert.To Exemple : saisie d'un entier et affichage de son carr
string chnb; int nb; //Dclarations
Console.WriteLine("tapez un nombre entier "); chnb = Console.ReadLine(); //Saisie dans une variable de type string nb = Convert.ToInt32(chnb); nb = nb*nb; //Conversion de cette variable en type int
Les principales mthodes de conversion sont les suivantes : ToString pour convertir une expression numrique en chane.
S. Laporte
C# mode console
DAIGL TS1
ToDouble ToInt32
Inutile de convertir une chane dans une autre chane !! pour convertir une chane ou un entier en rel (double). pour convertir une chane ou un rel en entier. Si la chane ne correspond pas un nombre entier, il y aura erreur l'excution. Convertir un rel (double) en entier enlve la partie dcimale (aprs la virgule).
Type de donnes byte int float double decimal char string bool
Equivalent Description en Algo Pour les petits entiers de 0 255 entier entier rel rel rel caractre chane boolen
Reprsente un entier non sign sur 8 bits. Pour les entiers signs de -200 milliards 200 milliards environ. Reprsente un entier sign sur 32 bits. Reprsente un nombre virgule flottante sur 32 bits (simple prcision). Reprsente un nombre virgule flottante sur 64 bits (double prcision). Pour les nombres trs grands, par exemple les valeurs montaires. Reprsente une valeur dcimale sur 96 bits. Reprsente un caractre Unicode sur 16 bits. reprsente une chane de caractres immuable longueur fixe de caractres Unicode. reprsente une valeur boolenne true ou false.
Rgles concernant le nom des variables Le nom d variable dclare en C# doit respecter les critres suivants afin d une tre valable : Le premier caractre est obligatoirement une lettre ou le caractre de soulignement "_" Le nom peut tre constitu de lettres, chiffres et du caractre de soulignement "_". Une distinction est faite entre les majuscules et les minuscules (on dit que C# est sensible la casse). TOTO, Toto et toto seront donc des noms de variables distincts. Les accents sont tolrs par C# mais non conseills par les bonnes techniques de programmation. Les mots rservs du langage C# ne peuvent pas tre utiliss comme noms de variables (int, for, if, ). On se rend compte qu'on utilise un mot rserv du langage car celui-ci apparat d'une couleur diffrente des autres variables.
S. Laporte
C# mode console
DAIGL TS1
Syntaxe de la dclaration En algorithmique nomvariable : type ex : Var x : entier bidule : chane Les variables sont dclares au dbut aprs le mot cl Var En C# type nomvariable ;
int x; string bidule; Les variables peuvent tre dclares n'importe o dans le code
Conversion de type
Les fonctions de conversions permettent de transformer une variable d'un type donn dans un autre type. Cela est en particulier utile pour manipuler des valeurs numriques saisies dans des contrles de texte. En effet, le texte des contrle est toujours du type string, mme si l'utilisateur y saisi un nombre. Et de la mme manire, une variable affecte la proprit Text d'un contrle doit tre de type string. Pour convertir toute variable en string on utilise la fonction suivante : Convert.ToString(variable convertir); De la mme manire, on peut convertir une variable dans n'import quel autre type. Par exemple : conversion en entier : Convert.ToInt32(variable convertir); conversion en rel : Convert.ToDouble(variable convertir); Si la variable ne peut tre convertie une erreur est renvoye. Par exemple, si l'utilisateur tape du texte alphabtique dans une zone de saisie et que ce texte doit tre converti en entier, le programme s'arrte en affichant une boite de dialogue d'erreur. Exemple complet : Supposons que nous ayons une zone de saisie appele txtBox et une tiquette lblResultat int nombreEntier; //conversion du texte de la zone de saisie pour l'affecter un nombre entier
nombreEntier = Convert.ToInt32(txtBox.Text) ;
//conversion du nombre en chane pour l'crire dans le Label
lblResultat.Text = Convert.ToString(nombreEntier) ;