Le Deal du moment : -23%
(Black Friday) Apple watch Apple SE GPS 44mm ...
Voir le deal
199 €

Hello C#

4 participants

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par Baron Robert de la etc. Jeu 23 Nov - 12:07

Pire que moi j'vous dis , un psychorigide , le VOO !!! sifflote sifflote
Baron Robert de la etc.
Baron Robert de la etc.

Fonction : Grammar nazi, diptèro-sodomite, écolo-nanar, capilotracteur, opposant à la pensée rance de droite !
Messages : 21483
Date d'inscription : 10/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 12:09

On plaisante pas avec l'informatique. C'est tout notre avenir qui est en jeu !Tu parles une bonne tempête solaire et tout grille !!!
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 12:57

les noms et prénoms sont tellement secrets que plus rien ne s'affiche à droite Very Happy
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 13:04

Si si, ça devrait marcher avec le dernier code que je t'ai donné (et que je remets plus bas).
Mais parfois, au lieu d’exécuter, quand t'appuies sur "run", il recompile, il faut donc appuyer sur "run" une seconde fois !
Le code complet:
Code:
class Personne
{
  string nom;
  string prenom;
  
  public Personne(string argument1, string argument2)
  {
    prenom = argument1;
    nom = argument2;
  }
  
  public void Afficher()
  {
    Console.WriteLine(prenom + " " + nom);
  }
}

class MainClass {
  public static void Main (string[] args) {
    Personne p1 = new Personne("Archie", "De Monpucier");
    p1.Afficher();
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 13:07

effectivement il recompilait....sinon c'est ok
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 13:10

Bon... Est-ce que tu as compris le principe ?
On crée le modèle (une personne a un nom et un prénom).
Puis on crée des objets à partir de ce modèle (une personne Archie, une personne Bob, une personne Jeff, etc...).
On choisit ce qui peut être modifié, vu, etc... de l’extérieur de la classe.
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 13:20

On peut appliquer ça à quoi par exemple
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 13:21

De quoi tu parles ? De la POO ou d'un concept en particulier ?
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 13:38

Alors, dans le programme, on affiche le nom directement dans l'objet. C'est pas très propre...
Chaque classe a une méthode publique ToString qui renvoie une chaîne de caractères.
Par défaut, elle renvoie le nom de l'objet.

Avec ce code:
Code:
class Personne
{
  string nom;
  string prenom;
  
  public Personne(string argument1, string argument2)
  {
    prenom = argument1;
    nom = argument2;
  }
}

class MainClass {
  public static void Main (string[] args) {
    Personne p1 = new Personne("Archie", "De Monpucier");
    Console.WriteLine(p1);
  }
}

La ligne "Console.WriteLine(p1);" demande "affiche la Personne p1". Le programme ne peut pas savoir comment on veut qu'il affiche les données, parce qu'un programme, c'est con.

Il faut donc réécrire la fonction qui transforme l'objet en texte.

Code:
 override public string ToString()
  {
    return prenom + " " + nom;
  }
"override" signifie on remplace celle qui existe déjà, ToString() est le nom de la méthode (méthode = fonction), return indique ce qui va être envoyé, et ici, on veut le prénom, puis un espace, puis le nom.

Code complet:
Code:
class Personne
{
  string nom;
  string prenom;
  
  public Personne(string argument1, string argument2)
  {
    prenom = argument1;
    nom = argument2;
  }
  
  override public string ToString()
  {
    return prenom + " " + nom;
  }
}

class MainClass {
  public static void Main (string[] args) {
    Personne p1 = new Personne("Archie", "De Monpucier");
    Console.WriteLine(p1);
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 13:57

et Bob qui est dispensé de C++ Ca m'énerve ! carton
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 14:02

Ca fonctionne....Mais je fatigue du cerveau...De plus c'est l'heure de la sieste
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 14:19

Alors, je vais te parler d'un dernier truc pour aujourd'hui: les énumérations.

Tu te rappelles des types de donnée ?
On a la chaîne de caractères (string) qui peut être un mot, une phrase, etc...
Le nombre entier (int) par exemple pour l'âge de la personne, ou ce qu'il a en banque en centimes.
Le nombre à virgule (float) par exemple pour la taille de la personne.
Mais il y a d'autres données dont le résultat est un choix parmi une liste.
Par exemple, le mois en cours, c'est janvier, ou février, ou mars, etc...
La situation matrimoniale de la personne, c'est célibataire, ou mariée, divorcée, veuve, etc...

On va rajouter le genre de la personne. On proposera le choix entre mâle, femelle, trans ou calamar. On écrit une énumération comme ça:

Code:
enum Genre
  {
    male,
    femelle,
    trans,
    calamar
  }

On peut donc créer une donnée du type "Genre" et lui donner une des 4 valeurs existantes.
On modifiera aussi le constructeur pour prendre en compte le genre de la personne:

Code:
Genre genre;
  
  public Personne(string argument1, string argument2, Genre argument3)
  {
    prenom = argument1;
    nom = argument2;
    genre = argument3;
  }
 
On utilisera le genre lors de l'affichage, en précisant Mme. pour les nanas, M. pour les gars, et rien pour les autres comme ça (pour faire un test, c'est bien sûr avec if - les conditionnelles):

Code:
override public string ToString()
  {
    string nomComplet = "";
    if (genre == Genre.male) nomComplet += "M. ";
    else if (genre == Genre.femelle) nomComplet += "Mme. ";
    nomComplet += prenom + " " + nom;
    return nomComplet;
  }

Et voici le code complet avec tests !

Code:
using System;

class Personne
{
  string nom;
  string prenom;
  Genre genre;
  
  public enum Genre
  {
    male,
    femelle,
    trans,
    calamar
  }
  
  public Personne(string argument1, string argument2, Genre argument3)
  {
    prenom = argument1;
    nom = argument2;
    genre = argument3;
  }
  
  override public string ToString()
  {
    string nomComplet = "";
    if (genre == Genre.male) nomComplet += "M. ";
    else if (genre == Genre.femelle) nomComplet += "Mme. ";
    nomComplet += prenom + " " + nom;
    return nomComplet;
  }
}

class MainClass {
  public static void Main (string[] args) {
    Personne p1 = new Personne("Archie", "De Monpucier", Personne.Genre.male);
    Personne p2 = new Personne("Catherine", "Dusudouest", Personne.Genre.femelle);
    Personne p3 = new Personne("Pierrick", "Fatima", Personne.Genre.trans);
    Console.WriteLine(p1);
    Console.WriteLine(p2);
    Console.WriteLine(p3);
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 14:27

cheers bravo bravo bravo
Comment tu fais pour te rappeler toute cette procédure????
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 14:31

Bah c'est mon métier !

C'est comme demander à un cuisinier comment il se rappelle la recette de sa sauce !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 14:34

L'enfant Voodoo a écrit:Bah c'est mon métier !

C'est comme demander à un cuisinier comment il se rappelle la recette de sa sauce !

Bref, à force de pratiquer, pratiquer et pratiquer encore...
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 14:38

Tu veux que je te montre le deuxième "pilier" sifflote de la POO: après l'encapsulation des données, l'héritage ?
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 14:54

envoie
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 15:08

(J'vais devenir bon en POO ! Geek )
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 15:38

Alors, une classe peut avoir des "enfants". Un "enfant" est une classe qui possède tout ce que la classe mère a, plus ce qu'on lui rajoute.

Par exemple, 100 veut faire un simulateur de foot: les joueurs sont des personnes, mais ont en plus un numéro, un nombre de buts, de cartons, etc...

Nous, on va faire un gestionnaire de groupes de rock, et un musicien est une personne qui joue d'un instrument.

Pour déclarer une Classe fille d'une autre, on écrit comme ça:
Code:
class Musicien : Personne
Ce qui veut dire: on a une classe Musicien qui hérite de la classe Personne.
Le Musicien a donc déjà un nom, un prénom et un genre.
On va lui ajouter un instrument:
Code:
string instrument;

Il faut maintenant un constructeur.
Comme un Musicien est une Personne, il doit appeler le constructeur de la Personne, comme ça:
Code:
public Musicien(string argument1, string argument2, Genre argument3, string argument4) : base (argument1, argument2, argument3)
  {
    instrument = argument4;
  }

Le mot "base" se réfère à la classe mère.

On veut également afficher l'instrument lorsqu'on affiche le musicien. C'est donc dans la méthode ToString():

Code:
override public string ToString()
  {
    return base.ToString() + " (" + instrument + ")";
  }
Grâce à "base", on a le nom normal, puis on ajoute l'instrument.

Et voilà un code complet:
Code:
using System;

class Personne
{
  string nom;
  string prenom;
  Genre genre;
  
  public enum Genre
  {
    male,
    femelle,
    trans,
    calamar
  }
  
  public Personne(string argument1, string argument2, Genre argument3)
  {
    prenom = argument1;
    nom = argument2;
    genre = argument3;
  }
  
  override public string ToString()
  {
    string nomComplet = "";
    if (genre == Genre.male) nomComplet += "M. ";
    else if (genre == Genre.femelle) nomComplet += "Mme. ";
    nomComplet += prenom;
    if (!String.IsNullOrEmpty(nom)) nomComplet += " " + nom;
    return nomComplet;
  }
}

class Musicien : Personne
{
  string instrument;
  
  public Musicien(string argument1, string argument2, Genre argument3, string argument4) : base (argument1, argument2, argument3)
  {
    instrument = argument4;
  }
  
  override public string ToString()
  {
    return base.ToString() + " (" + instrument + ")";
  }
}

class MainClass {
  public static void Main (string[] args) {
    Musicien m1 = new Musicien("Jimi", "Hendrix", Personne.Genre.male, "guitare");
    Musicien m2 = new Musicien("Gilbert", "Montagne", Personne.Genre.male, "piano et chant");
    Console.WriteLine(m1);
    Console.WriteLine(m2);
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 15:46

cheers cheers cheers
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 15:48

M. Jimi Hendrix (guitare)
M. Gilbert Montagne (piano et chant)
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 16:24

Ouhais !
Demain, je te montre comment on fait une classe "groupe de rock" avec différents musiciens !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 17:22

Quelle chance j'ai sifflote
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 17:36

Oui mais tu n'en profites pas, je suis sûr que t'as rien compris et que tu ne fais même pas l'effort d'essayer !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 18:04

L'enfant Voodoo a écrit:Oui mais tu n'en profites pas, je suis sûr que t'as rien compris et que tu ne fais même pas l'effort d'essayer !

Détrompe toi....
Primo...Si je ne comprends pas, je demande
Secundo, si je ne voulais pas en profiter je t'aurais envoyé caguer Very Happy
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Jeu 23 Nov - 18:06

archibald de montpucier a écrit:Primo...Si je ne comprends pas, je demande
Ouhais mais j'ai résumé en expliquant mal et avec des exemples pourris plusieurs semaines de cours d'un informaticien "normal".
Si tu comprends mon bordel, c'est que tu es surhumain !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Jeu 23 Nov - 18:15

C'est vrai qu'il faut te suivre....Mais c'est le vocabulaire qui est inhumain pour un néophyte, le reste ça se digère...avec un peu d'attention
Mais j'ai tout noté dans un fichier ésssprès C++ Very Happy
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 8:27

Alors, quand tu reviendras, tu me diras comment faire une Classe "groupe de rock".
Pas le programme, juste quelles propriétés elle aurait.
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 8:36

L'enfant Voodoo a écrit:Alors, quand tu reviendras, tu me diras comment faire une Classe "groupe de rock".
Pas le programme, juste quelles propriétés elle aurait.

Vite fait alors...
Nombre de musicos
mâles/femelles/calamars
âges
orientation sexuelle sifflote
instruments

A+ Very Happy
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 8:50

archibald de montpucier a écrit:Vite fait alors...
Nombre de musicos
mâles/femelles/calamars
âges
orientation sexuelle sifflote
instruments
Oui mais non !
Les noms, genres, instruments, etc... on a déjà tout ça dans la classe "Musicien" qu'on a écrit hier, du coup on n'a plus besoin de s'en occuper !

Un groupe, on pourrait le résumer à:
- Nom de groupe,
- Genre (si on veut),
- Année de création,
- liste de Musiciens (donc la classe Groupe sera composée d'objets de la classe Musicien).
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 12:03

ok on reprend donc la suite de hier...
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 13:07

Oui !
On commence par les trucs les plus simples.

On crée la classe Groupe:
Code:
class Groupe
{
}

Dedans, il nous faut les propriétés: on va commencer avec le nom du groupe (du texte, donc une string) et l'année de création (un nombre entier).

Code:
 string nom;
  int anneeCreation;

Ensuite, il nous faut un constructeur, qui permettra de créer un groupe. Pour créer le groupe, on aura besoin de son nom et son année.

Code:
 public Groupe(string leNom, int annee)
  {
    nom = leNom;
    anneeCreation = annee;
  }

Et voilà ! La classe est en place en quelques lignes.
On va rajouter une fonction qui va afficher le groupe. D'abord le nom, puis en dessous, l'année entre parenthèses.

Code:
 public void Afficher()
  {
    Console.WriteLine(nom);
    Console.WriteLine("(" + anneeCreation + ")");
  }

Et voilà !

La classe complète ici:
Code:
class Groupe
{
  string nom;
  int anneeCreation;
  
  public Groupe(string leNom, int annee)
  {
    nom = leNom;
    anneeCreation = annee;
  }
  
  public void Afficher()
  {
    Console.WriteLine(nom);
    Console.WriteLine("(" + anneeCreation + ")");
  }
}

Et, pour finir, un code complet qui crée deux groupes et les affiche:
Code:
using System;

class Groupe
{
  string nom;
  int anneeCreation;
  
  public Groupe(string leNom, int annee)
  {
    nom = leNom;
    anneeCreation = annee;
  }
  
  public void Afficher()
  {
    Console.WriteLine(nom);
    Console.WriteLine("(" + anneeCreation + ")");
  }
}

class MainClass {
  public static void Main (string[] args) {
    Groupe beatles = new Groupe("The Beatles", 1960);
    Groupe cannibal = new Groupe("Cannibal Corpse", 1988);
    
    beatles.Afficher();
    Console.WriteLine(); // pour sauter une ligne
    cannibal.Afficher();
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 13:30

J'ai rajouté deux musiciens en t'attendant
using System;

class Personne
{
string nom;
string prenom;
Genre genre;

public enum Genre
{
male,
femelle,
trans,
calamar
}

public Personne(string argument1, string argument2, Genre argument3)
{
prenom = argument1;
nom = argument2;
genre = argument3;
}

override public string ToString()
{
string nomComplet = "";
if (genre == Genre.male) nomComplet += "M. ";
else if (genre == Genre.femelle) nomComplet += "Mme. ";
nomComplet += prenom;
if (!String.IsNullOrEmpty(nom)) nomComplet += " " + nom;
return nomComplet;
}
}

class Musicien : Personne
{
string instrument;

public Musicien(string argument1, string argument2, Genre argument3, string argument4) : base (argument1, argument2, argument3)
{
instrument = argument4;
}

override public string ToString()
{
return base.ToString() + " (" + instrument + ")";
}
}

class MainClass {
public static void Main (string[] args) {
Musicien m1 = new Musicien("Jimi", "Hendrix", Personne.Genre.male, "guitare");
Musicien m2 = new Musicien("Gilbert", "Montagne", Personne.Genre.male, "piano et chant");
Musicien m3 = new Musicien("Dede", "Lecalamar", Personne.Genre.calamar, "batterie");
Musicien m4 = new Musicien("Kate", "dusudouest", Personne.Genre.femelle, "chant");
Console.WriteLine(m1);
Console.WriteLine(m2);
Console.WriteLine(m3);
Console.WriteLine(m4);
}
}
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 13:32

input
clear

Mono C# compiler version 4.0.4.0



M. Jimi Hendrix (guitare)
M. Gilbert Montagne (piano et chant)
Dede Lecalamar (batterie)
Mme. Kate dusudouest (chant)
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 13:47

Et maintenant, on va ajouter nos musiciens au groupe !
Combien un groupe à de musiciens ? On sait pas... Donc on va utiliser une liste.

On crée puis on construit une liste comme ça:
Entre < et >, on indique le type de ce qu'on veut créer. Ici, on met notre classe Musicien (mais on peut créer une liste de nombres, de textes, etc... Si on veut faire un festival, on crée une liste de Groupes).

Code:
List<Musicien> musiciens= new List<Musicien>();

On a créé une liste vide.
Pour ajouter un élément à la liste, on utilise Add (ajouter):
Code:
musiciens.Add(new Musicien("Kate", "", Personne.Genre.femelle, "chant"));

On crée donc une fonction dans notre groupe permettant d'ajouter un élément dans la liste.

Code:
public void AjouterMusicien(Musicien m)
  {
    musiciens.Add(m);
  }

On pourra donc créer un groupe et ajouter des membres comme ça:
Code:
   Groupe antikal = new Groupe("Antikal", 2017);
    antikal.AjouterMusicien(new Musicien("Dede", "", Personne.Genre.calamar, "batterie"));

Et voilà un code complet qui crée deux groupes avec ses membres et les affiche:
Code:
using System;
using System.Collections.Generic;

class Personne
{
  string nom;
  string prenom;
  Genre genre;
  
  public enum Genre
  {
    male,
    femelle,
    trans,
    calamar
  }
  
  public Personne(string argument1, string argument2, Genre argument3)
  {
    prenom = argument1;
    nom = argument2;
    genre = argument3;
  }
  
  override public string ToString()
  {
    string nomComplet = "";
    if (genre == Genre.male) nomComplet += "M. ";
    else if (genre == Genre.femelle) nomComplet += "Mme. ";
    nomComplet += prenom;
    if (!String.IsNullOrEmpty(nom)) nomComplet += " " + nom;
    return nomComplet;
  }
}

class Musicien : Personne
{
  string instrument;
  
  public Musicien(string argument1, string argument2, Genre argument3, string argument4) : base (argument1, argument2, argument3)
  {
    instrument = argument4;
  }
  
  override public string ToString()
  {
    return base.ToString() + " (" + instrument + ")";
  }
}

class Groupe
{
  string nom;
  int anneeCreation;
  List<Musicien> musiciens= new List<Musicien>();
  
  public Groupe(string leNom, int annee)
  {
    nom = leNom;
    anneeCreation = annee;
  }
  
  public void AjouterMusicien(Musicien m)
  {
    musiciens.Add(m);
  }
  
  public void Afficher()
  {
    Console.WriteLine(nom);
    Console.WriteLine("(" + anneeCreation + ")");
    if (musiciens.Count > 0)
    {
      Console.WriteLine(musiciens.Count + " membres:");
      foreach (Musicien m in musiciens)
        Console.WriteLine(" - " + m);
    }
    
  }
}

class MainClass {
  public static void Main (string[] args) {
    Groupe beatles = new Groupe("The Beatles", 1960);
    beatles.AjouterMusicien(new Musicien("John", "Lennon", Personne.Genre.male, "piano"));
    beatles.AjouterMusicien(new Musicien("George", "Harrison", Personne.Genre.male, "guitare"));
    beatles.AjouterMusicien(new Musicien("Paul", "McCartney", Personne.Genre.male, "basse"));
    beatles.AjouterMusicien(new Musicien("Ringo", "Starr", Personne.Genre.male, "batterie"));
    
    Groupe antikal = new Groupe("Antikal", 2017);
    antikal.AjouterMusicien(new Musicien("Dede", "", Personne.Genre.calamar, "batterie"));
    antikal.AjouterMusicien(new Musicien("Kate", "", Personne.Genre.femelle, "chant"));
    antikal.AjouterMusicien(new Musicien("Archie", "", Personne.Genre.male, "basse"));
    antikal.AjouterMusicien(new Musicien("Voodoo", "", Personne.Genre.male, "guitare"));
    
    beatles.Afficher();
    Console.WriteLine(); // pour sauter une ligne
    antikal.Afficher();
  }
}
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 13:54

Mono C# compiler version 4.0.4.0

The Beatles
(1960)
4 membres:
- M. John Lennon (piano)
- M. George Harrison (guitare)
- M. Paul McCartney (basse)
- M. Ringo Starr (batterie)

Antikal
(2017)
4 membres:
- Dede (batterie)
- Mme. Kate (chant)
- M. Archie (basse)
- M. Voodoo (guitare)
cheers cheers cheers
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 14:00

Donc, on a un objet (Groupe) qui est composé d'objets (Musicien) qui héritent d'autres objets (Personne).
La POO, c'est comme jouer aux Lego !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Ven 24 Nov - 14:08

Ok j'ai compris le principe mais ce sont toutes ces séquences ;.=() etc etc et ce vocabulaire qui sont indigestes pour un néophyte russianroulette
Mais bon avec le temps on prend l'habitude je présume...
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Ven 24 Nov - 14:16

Alors, on peut détailler toute ligne que tu comprends pas.

'=' signifie affecter, c'est l'opération la plus basique de la programmation.

using System;

Code:
class MainClass {
  public static void Main (string[] args) {
    int a;
    a = 5;
    Console.WriteLine(a);
    a = 8;
    Console.WriteLine(a);
    int b = a + 2;
    Console.WriteLine(b);
  }
}

Dans ce programme on crée une valeur entière a (int).
Puis, avec =, on lui donne la valeur 5.
On l'affiche.
Puis, avec =, on lui donne la valeur 8.
On l'affiche.
Puis, on crée une autre valeur entière b (int).
Avec =, on lui donne la valeur a + 2. Comme a est = à 8, ça donne 10.
On l'affiche.
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Sam 25 Nov - 8:21

Bon, Archie, on fait quoi comme programme maintenant ?
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 8:36

Dans un supermarché....
Classes/listes
- A rayon boucherie / boeuf-porc-veau
- B rayon fruits et légumes / salade-pdt-avocat
- C rayon produits frais / beurre-yahourt-fromage

Sortir les dates limite de consos sachant que chacune est différente

archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Sam 25 Nov - 8:47

Alors, comment est-ce que tu aborderais le problème ?

Quelles classes avec quelles propriétés ?
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 9:06

L'enfant Voodoo a écrit:Alors, comment est-ce que tu aborderais le problème ?

Quelles classes avec quelles propriétés ?

Ca demande reflexion scratch WC cheers
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Sam 25 Nov - 9:22

Ouhais ! C'est la phase qui précède la programmation ! L'analyse, l'architecture...
Il y a un domaine consacré à ça: L'UML, et en particulier les diagrammes de classe.
https://fr.wikipedia.org/wiki/Diagramme_de_classes

On réfléchit aux classes et à leur rapport avec les autres.

Par exemple, sur ce forum, on aurait les classes:
- Utilisateur (avec un login, un mot de passe, puis tout le profil...),
- Message (avec un Utilisateur - celui qui l'a écrit - et la date et l'heure),
- Topique (qui est une liste de Messages),
- Sous-Forum (qui a un nom comme "Laboratoire du Geek", une description, une liste de Topiques, un Utilisateur modérateur, etc...),
- ...
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 9:31

CLASSES : les produits avec comme caractéristiques les dates de préemption
Création de 3 groupes de produits
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 9:33

wikipedia.org/wiki/Diagramme_de_classes

très instructif...et pédagogique sifflote
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Sam 25 Nov - 9:46

archibald de montpucier a écrit:CLASSES : les produits avec comme caractéristiques les dates de préemption
Création de 3 groupes de produits
Oui, on pourrait avoir une classe Produit, avec comme caractéristiques le nom du produit, sa description et sa date de péremption.
Puis une classe Groupe de produits qui aura une liste de produits de même type.

Dans la pratique, tout sera dans une base de données, bien entendu, et on pourra faire des requêtes assez facilement pour trouver les produits périmés, ceux qui vont être périmés dans les 3 prochains jours, ceux pour les vegans, etc...
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 11:59

bravo Imagine un hyper avec des milliers de produits...

Sinon c'est repos ce week end...?
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par L'enfant Voodoo Sam 25 Nov - 15:23

C'est repos pour moi, toi tu peux programmer ton magasin !
L'enfant Voodoo
L'enfant Voodoo

Fonction : Influenceur nihiliste
Messages : 13995
Date d'inscription : 09/04/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par archibald de montpucier Sam 25 Nov - 16:15

L'enfant Voodoo a écrit:C'est repos pour moi, toi tu peux programmer ton magasin !
Ok... Very Happy
Vous êtes en train de boire du Fanta dans des crânes?
archibald de montpucier
archibald de montpucier

Fonction : Majordome révoqué pour filouterie d'aliment (art 315-5 du code pénal) Fait la manche pour survivre
Messages : 21059
Date d'inscription : 16/05/2016

Revenir en haut Aller en bas

Hello C# - Page 2 Empty Re: Hello C#

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Page 2 sur 3 Précédent  1, 2, 3  Suivant

Revenir en haut


 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum