Initiation au code : Base de l'algorithmie - Atelier en C#

50 %
50 %
Information about Initiation au code : Base de l'algorithmie - Atelier en C#
Technology

Published on February 19, 2014

Author: StphanieHertrich

Source: slideshare.net

Description

Coding - Initiation au code pour les vrais débutants
Partie 1 : Base de l'algorithmie - Atelier en C#

Cet atelier a été conçu dans le cadre d'une initiative menée conjointement par Girls in Tech Paris et Microsoft France.

Les slides correspondent à 3 cours de 3 heures.

Le programme et les explications ici : http://gitparis.com/2013/12/02/cours-de-coding-les-inscriptions-sont-ouvertes-voila-le-programme/

Bases d’algorithmie Atelier en C# 05/03/2014

4 parties Introduction Algorithmie Application mobile native Site Web

Deuxième partie (3 cours)

Agenda de l’atelier

Présentation de l’outil : la base

using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; namespace SayMyName { // Une classe : on verra plus tard ce que c'est class Program { // Une méthode (une fonctionnalité) static void Main(string[] args) { ENTREZ VOTRE CODE ICI } } }

Ex: - Afficher du texte à l’écran suivi d’un retour chariot : « Writeline » - Lire un texte tapé au clavier « ReadLine » Ex : classe « Console » pour toutes les fonctionnalités de la fenêtre d’exécution de l’application console: Console.WriteLine, Console.ReadLine

Console.ReadKey(); // Les paramètres Console.WriteLine("Who are you ?"); Console.ReadLine();

// Lit une chaine de caractères terminée par retour chariot (return) string name = Console.ReadLine(); // A vous ! Affichez “Nice to meet you xxx” Console.WriteLine("Nice to meet you "); Console.WriteLine(name); // ou Console.WriteLine("Nice to meet you " + name); // ou // …

// On veut afficher l'âge de la personne en le déduisant à partir de son année de naissance Console.WriteLine("When were you born ?"); // A vous : Récupérez l’année de naissance saisie dans une variable string year = Console.ReadLine(); // On va faire une soustraction : 2013 – year // pour cela, on a besoin d'avoir une valeur entière et non une chaine de caractères (texte) int yearNum = int.Parse(year); // Essayez de saisir une valeur non numérique…quel est le résultat ? On verra tout à l’heure comment résoudre ce problème //int age = 2013 - yearNum; // Mieux : int age = DateTime.Now.Year - yearNum; // A vous : Affichez l’age de la personne Console.WriteLine("You are " + age.ToString());

// Afficher un message différent selon que l'on soit jeune ou vieux // (à vous de décider l'âge à partir duquel on est vieux !) if(age < 40) { // A vous : petit message pour les jeunes mentionnant le nom de la personne Console.WriteLine("You are young, lucky " + name); } else { // A vous : petit message pour les vieux, mentionnant le nom de la personne Console.WriteLine("You are experienced, " + name); }

using using using using using System; System.Collections.Generic; System.Linq; System.Text; System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Who are you ?"); string name = Console.ReadLine(); Console.WriteLine("Nice to meet you " + name); Console.WriteLine("Entrez votre année de naissance:"); string annee = Console.ReadLine(); int anneeInt = int.Parse(annee); int age = DateTime.Now.Year - anneeInt; Console.WriteLine("You are " + age); if (age < 40) { // A vous : petit message pour les plus Console.WriteLine("You are young, lucky } else { // A vous : petit message pour les plus Console.WriteLine("You are experienced, } Console.ReadKey(); } } } jeunes mentionnant le nom de la personne " + name); agés, mentionnant le nom de la personne " + name);

// Créons un petit jeu. Le principe : // L’app choisit au hasard un nombre entre 1 et 20 et vous le fait deviner // A vous : développer c’est aussi savoir trouver l’information. Trouvez le nom de la classe qui permet de manipuler des nombres aléatoires // Question Bonus : quelle est la méthode permettant d’en générer un ? int randomed = new Random().Next(20) + 1; // A VOUS : Demander à l’utilisateur de saisir un nombre et stockez-le dans une variable Console.WriteLine("Pick a number :"); string picked = Console.ReadLine(); // Vérifier la validité de la saisie avec TryParse int pickedNum; int.TryParse(picked, out pickedNum); // Quelle est la signature de TryParse ? // Le code retour nous permet de savoir si va conversion a réussi ou non (type booléeen peut prendre 2 valeurs : true/false) bool isNumeric = int.TryParse(picked, out pickedNum);

// Puis on encadre ça avec une boucle pour réitérer la saisie jusqu'à ce qu'elle soit valide bool isNumeric = int.TryParse(picked, out pickedNum); while(isNumeric == false) { // A VOUS : Trouvez le code à écrire ici Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); isNumeric = int.TryParse(picked, out pickedNum); } // A votre avis, pourquoi n’a-t-on pas besoin de notre variable isNumeric ici ? while(int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); }

// A vous : Tant qu’on n’a pas trouvé on recommence // Trouvez la condition qui permet de refaire un essai de devinette while(pickedNum != randomed) { // A Vous : On aide l’utilisateur : on lui indique si c’est plus ou moins if(pickedNum > randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } // A VOUS : Qu’y a-t-il de remarquable dans le paragraphe suivant ? // Replace it by a function picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } } // On sort de la bouclez quand les 2 nombres sont identiques, donc on a gagné ! Console.WriteLine("Yes ! You found my number :" + randomed);

static void Main(string[] args) { int pickedNum; int randomed = new Random().Next(20) + 1; Console.WriteLine("Pick a number :"); string picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } while (pickedNum != randomed) { if (pickedNum > randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } Console.WriteLine("Pick a number :"); picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } } Console.WriteLine("Yes ! You found my number :" + randomed); Console.ReadKey(); }

/// <summary> /// Cette fonction renvoie un nombre saisi par l'utilisateur /// </summary> /// <returns></returns> static int PickANumber() { string picked; int pickedNum; picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } return pickedNum; }

pickedNum = PickANumber(); // Tant qu’on n’a pas trouvé on recommence while(pickedNum != randomed) { // On aide l’utilisateur : on lui indique si c’est plus ou moins if(pickedNum > randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } pickedNum = PickANumber(); // Replace it by a function //picked = Console.ReadLine(); //while (int.TryParse(picked, out pickedNum) == false) //{ // Console.WriteLine("Hey that's not a number, try again :"); // picked = Console.ReadLine(); //} } Console.WriteLine("Yes ! You found my number :" + randomed);

static void Main(string[] args) { int pickedNum; int randomed = new Random().Next(20) + 1; pickedNum = PickANumber(); while (pickedNum != randomed) { if (pickedNum > randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } pickedNum = PickANumber(); } Console.WriteLine("Yes ! You found my number :" + randomed); Console.ReadKey(); } static int PickANumber() { string picked; int pickedNum; Console.WriteLine("Pick a number :"); picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } return pickedNum; }

// // // // // // On crée des méthodes pour plusieurs raisons : - réutilisation - clarification (groupement fonctionnel et lisibilité du code) Normalement, quand on lit du code, on doit pouvoir comprendre ce qu'il fait -> importance du nommage -> architecture et découpage static void Main(string[] args) { NouvellePartie(); Console.ReadKey(); } static void NouvellePartie() { int pickedNum; int randomed = new Random().Next(20) + 1; pickedNum = PickANumber(); while (pickedNum != randomed) { // Essaie encore pickedNum = TryAgain(pickedNum, randomed); } // C'est Gagné YouWin(randomed); }

static void NouvellePartie() { int pickedNum; int randomed = new Random().Next(20) + 1; pickedNum = PickANumber(); while (pickedNum != randomed) { // Essaie encore pickedNum = TryAgain(pickedNum, randomed); } // C'est Gagné YouWin(randomed); }

class Program { public static int Randomed { get; set; } public static int PickedNum { get; set; } static void Main(string[] args) { NouvellePartie(); Console.ReadKey(); } static void NouvellePartie() { Randomed = new Random().Next(20) + 1; PickANumber(); while (PickedNum != Randomed) { // Essaie encore TryAgain(); } // C'est Gagné YouWin(); } static void YouWin() { Console.WriteLine("Yes ! You found my number :" + Randomed); } static void TryAgain() { if (PickedNum > Randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } PickANumber(); } static void PickANumber() { string picked; int pickedNum; Console.WriteLine("Pick a number :"); picked = Console.ReadLine(); while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } PickedNum = pickedNum; } }

/// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { int Randomed; int PickedNum; int NbEssais; public MainWindow() { InitializeComponent(); NouvellePartie(); } void NouvellePartie() { Randomed = new Random().Next(20) + 1; NbEssais = 1; tbInfo.Text = string.Empty; btValider.IsEnabled = true; tbEssais.Text = "Essai no " + NbEssais; }

private void Button_Click(object sender, RoutedEventArgs e) { NouvellePartie(); } private void btValider_Click(object sender, RoutedEventArgs e) { if(PickANumber() == true) { if(PickedNum == Randomed) { // C'est gagné YouWin(); } else { // Essaie encore TryAgain(); } } tbNombreSaisi.Clear(); }

static void PickANumber() { string picked; int pickedNum; bool PickANumber() { bool res; string picked = tbNombreSaisi.Text; int pickedNum; Console.WriteLine("Pick a number :"); picked = Console.ReadLine(); // Vérifie saisie if ((res = int.TryParse(picked, out pickedNum)) == false) { tbInfo.Text = "Ce n'est pas un nombre, réessaie..."; } else { PickedNum = pickedNum; } while (int.TryParse(picked, out pickedNum) == false) { Console.WriteLine("Hey that's not a number, try again :"); picked = Console.ReadLine(); } PickedNum = pickedNum; } return res; } static void TryAgain() { if (PickedNum > Randomed) { Console.WriteLine("It's less"); } else { Console.WriteLine("It's more"); } PickANumber(); } private void TryAgain() { NbEssais = NbEssais + 1; tbEssais.Text = "Essai no " + NbEssais; if (PickedNum > Randomed) { tbInfo.Text = "C'est moins"; } else { tbInfo.Text = "C'est plus"; } } static void YouWin() { Console.WriteLine("Yes ! You found my number :" + Randomed); } private void YouWin() { tbInfo.Text = "C'est gagné !!"; btValider.IsEnabled = false; }

Add a comment

Related presentations

Related pages

www.guidance-formations.com

Objectifs de la formation. Savoir administrer une boutique VirtueMart sous Joomla. Contenu de la formation Introduction. Présentation de Joomla et de ...
Read more

Des cours de programmation obligatoires à l'école, en ...

En Estonie, des écoles vont rendre obligatoire l'apprentissage de langages de programmation dès l'école primaire. Une mesure qui pourrait se ...
Read more

Initiation Au Traitement Du Signal Et Applications - Documents

Initiation au traitement du signal et applications Cours électif 2A CET 42 Notes de cours1 Frédéric SUR sur@loria.fr Département Génie Industriel ...
Read more

Les meilleurs livres Word - word.developpez.com

... les langages utilisés en base de ... une autre sur l'algorithmie VBA ... Word est considérablement monté en puissance au cours de ...
Read more

Apprendre à coder ? C'est pas gagné ! - Korben

... (et meme en premiere), l’algorithmie est censé ... une initiation au code? ... et apprendre le code c# ou php favoriserait cela vu que c’est en ...
Read more

Formation Excel VBA Toulouse, visual basic application ...

Atelier de dessin; Cycle PAO 70 h en CPF; ... La connaissance de l'algorithmie est un plus; ... Utilisation des fonctions Excel dans du code Visual Basic;
Read more

Formation Optimisation et Profiling des applications JAVA ...

... le stage met en évidence via de petits ateliers les impacts de l'algorithmie ... en termes d'appels de méthodes Atelier ... initiation à Java d ...
Read more

CAO / DAO / 3D | Artoris

... etc.), l’algorithmie, le concept d’objets, les machines virtuelles, ... Initiation à la programmation C#. ... Grille de base, grille en pixels, ...
Read more