View
228
Download
0
Category
Preview:
DESCRIPTION
c programmation tres bon fichier
Citation preview
Initiation au langage C#
Abdallah MOUJAHID PMP, COBIT V5 , ITIL V3, ISO 27002
Plan
Elments de base
Structures de contrle
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C# 2
Introduction
Langage de programmation cre par Anders Heljberg (Microsoft) en 2001
Langage orient objet, inspir de C++ et Java
Permet dutiliser le framework .NET de manire optimale
Dernire version: 4.6 (Framework) & 6.0 (Langage 07/2015)
Classement TIOB des langages les plus utiliss au monde: 4me en Septembre 2015 derrire Java, C et C++.
Elments de base
Dclaration & Assignation
Dclaration dune variable int a; int b = 5; double c = a + b;
Assignation dune valeur a = 6; c = a + 4 c += 9;
Dclaration dune constante const float PI = 3.14;
Commentaire // Commentaire sur une ligne /* * Commentaires sur plusieurs lignes */
Elments de base
Exemples de types existants
C# C / C++
int int
long long
char char
string String
bool bool
double double
float float
decimal float
Elments de base
Oprateurs
a + b Addition
a b Soustraction
a / b Division
a % b Modulo
a += b a est gal la somme de a et de b
a -= b a est gal la soustraction entre a et b
a == b Egal
a != b Diffrent
a > b Suprieur
a >= b Suprieur ou gal
a < b Infrieur
a
La mthode Main() (1/2)
Chaque assemblage excutable a au moins une mthode statique Main() dans une de ses classes.
Cette mthode reprsente le point dentre du programme, cest--dire que le thread principal cr automatiquement lorsque le processus se lance va commencer par excuter le code de cette mthode.
Il peut y avoir ventuellement plusieurs mthodes Main() (chacune dans une classe diffrente) par programme. Le cas chant, il faut prciser au compilateur quelle mthode Main() constitue le point dentre du programme.
8
Elments de base
La mthode Main() (2/2)
Le programme suivant ajoute les nombres passs en arguments en ligne de commande, et affiche le rsultat. Sil ny a pas dargument, le programme le signale :
Introduction C# 9
using System;
class Prog
{
static void Main(string[] args)
{
if (args.Length == 0)
Console.WriteLine("Entrez des nombres ajouter.");
else
{
long result = 0;
foreach( string s in args )
result += System.Int64.Parse(s);
Console.WriteLine("Somme de ces nombres
:{0}",result);
}
}}
Elments de base
Les espaces de noms
Une ressource dans le code source a la possibilit dtre dclare et dfinie lintrieur dun espace de noms.
Si une ressource nest dclare dans aucun espace de noms elle fait partie dun espace de noms global et anonyme.
10
using Foo1;
using Foo1.Foo2;
using System;
namespace Foo1
{
// ici les ressources de l'espace de noms
Foo1
namespace Foo2
{
// ici les ressources de l'espace de noms
Foo1.Foo2
}
// ici les ressources de l'espace de noms
Foo1
}
Elments de base
Organisation du code source
11
Projet
FichierN.cs
Fichier1.cs
Fichier2.cs
Namespace 1 Namespace 2
Ressource B
Namespace M
Ressource A Ressource C
Ressource D
Elments de base
Elments de base
Hello World !!!
Plan
Elments de base
Structures de contrle
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C# 13
Structures de contrle
Dfinition Une structure de contrle est un lment du programme
qui change le comportement par dfaut de lunit dexcution (du thread). Rappelons que ce comportement par dfaut est dexcuter les instructions les unes la suite des autres.
Trois familles de structures de contrles:
Les conditions, qui excutent (ou pas) un bloc de code qu une certaine condition, portant gnralement sur les tats de variables et dobjets.
Les boucles, qui excutent en boucle un bloc dinstructions. Le programmeur a le choix entre terminer de boucler aprs un certain nombre ditrations, ou terminer de boucler une certaine condition.
Les branchements ou sauts, qui permettent de rediriger directement vers une instruction particulire lunit dexcution.
Introduction C# 14
Structures de contrle
Les conditions Trois types de condition: if/else, switch, loprateur
ternaire ?:
Introduction C# 15
if( b == true ) // si b vaut true alors...
if( i >= 4 && i
Structures de contrle
Les boucles
Quatre types de boucle: while, do/while, for, foreach
Introduction C# 16
int i=0;int j=8;
while( i < 6 && j > 9 )
{
i++;j--;
}
int i=0;int j=8;
do
{
i++;j--;
}
while( i < 6 && j > 9)
for(int i = 1; i
Structures de contrle
Instructions conditionnelles
if / then / else
Permet dexcuter une instruction si une condition est vraie
if (a == 5)
Console.Write("a == 5");
else if (a == 10)
Console.Write("a == 10");
else
Console.Write("a != 5 && a != 10");
Une instruction peut tre remplace par un bloc
if (a == 5 || a == 10)
{
Console.Write("a == 5...");
Console.Write(ou a == 10");
}
if / then / else
Structures de contrle
Instructions conditionnelles
Oprateur ternaire
Exemple :
Equivalent :
if (b > 0)
a = 1;
else
a = 2;
a = (b > 0 ? 1 : 2);
Structures de contrle
Instructions conditionnelles
switch
Excute des instructions en fonction de la valeur dune variable
switch(a)
{
case 1:
Console.Write("a == 1");
break;
case 2:
Console.Write("a == 2");
break;
default:
Console.Write("a != 1 && a != 2");
break;
}
Structures de contrle
Instructions conditionnelles
Permettent dexcuter une instruction plusieurs fois
for
foreach
while
do / while
Structures de contrle
Instructions itratives
Boucle for
Exemple :
// Affiche les nombres de 1 10
for (int i = 1; i
Boucle foreach
Permet ditrer dans un ensemble de donnes
Exemple :
// Affiche les nombres de 1 10
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
foreach (int i in array)
{
Console.WriteLine(i);
}
Structures de contrle
Instructions itratives
Boucle while
Exemple :
// Affiche les nombres de 1 10
int a = 1;
while (a
Boucle do / while
Exemple :
Contrairement while, le bloc do / while est excut au moins 1 fois
// Affiche les nombres de 1 10
int i = 1;
do
{
Console.WriteLine(i);
i++;
} while (i
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SayMyName
{
// Une classe : on verra plus tard ce que c'est
class Program
{
// Une mthode (une fonctionnalit)
static void Main(string[] args)
{
ENTREZ VOTRE CODE ICI }
}
}
Ex:
- Afficher du texte lcran suivi dun retour chariot : Writeline
- Lire un texte tap au clavier ReadLine
Ex : classe Console pour toutes les fonctionnalits de la fentre dexcution de lapplication console:
Console.WriteLine, Console.ReadLine
Console.ReadKey();
// Les paramtres
Console.WriteLine("Who are you ?");
Console.ReadLine();
// Lit une chaine de caractres termine 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 dduisant partir de son anne de naissance Console.WriteLine("When were you born ?"); // A vous : Rcuprez lanne 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 entire et non une chaine de caractres (texte) int yearNum = int.Parse(year); // Essayez de saisir une valeur non numriquequel est le rsultat ? On verra tout lheure comment rsoudre ce problme //int age = 2013 - yearNum; // Mieux : int age = DateTime.Now.Year - yearNum; // A vous : Affichez lage de la personne Console.WriteLine("You are " + age.ToString());
// Afficher un message diffrent selon que l'on soit jeune ou vieux // ( vous de dcider 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); }
Quizz
Parmi les propositions ci-dessous, laquelle permet la lecture et
lcriture partir de la console?
a. System.Array
b. System.Output
c. System.ReadLine
d. System.Console
Quizz
La CLR est lquivalent de _________.
1. a. Java Virtual Machine
2. b. Common Language Runtime
3. c. Common Type System
4. d. Common Language Specification
Quizz
. Permet de traduire le code MSIL en code natif
a. JIT
b. CLS
c. IL
d. CTS
Quizz Lequel des lments suivants est une autre faon de rcrire l'extrait de code donn ci-dessous?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using 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 anne 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 jeunes mentionnant le nom de la personne
Console.WriteLine("You are young, lucky " + name);
}
else
{
// A vous : petit message pour les plus ags, mentionnant le nom de la personne
Console.WriteLine("You are experienced, " + name);
}
Console.ReadKey();
}
}
}
52
crire un programme qui saisit une valeur n et qui affiche le carr suivant (n = 5 dans lexemple) :
using System;
namespace Carre
{
class MainClass
{
public static void Main (string[] args)
{
Console.Write ("Saisir n : ");
int n = int.Parse(Console.ReadLine());
for (int i = 1 ; i
Plan
Elments de base
Structures de contrle
Tableaux
Classes & objets
Hritage, polymorphisme & interfaces
Exceptions
Autres lments de C#
Introduction C# 53
Suite dlments du mme type
Accessibles par un index
Type rfrence
index 3
index 0
Les tableaux
Tableaux 1 dimension
Dclaration :
Utilisation :
// Cre un tableau de 10 entiers
int[] array = new int[10];
for (int i = 0; i < array.Length; i++)
{
array[i] = i * i;
}
// Affiche 25
Console.Write(array[5]);
Les tableaux
Tableaux 2 dimensions
Dclaration :
Utilisation :
// Cre un tableau de 10x10 entiers
int[,] array = new int[10,10];
for (int i = 0; i < array.GetLength(0); i++)
for (int j = 0; j < array.GetLength(1); j++)
{
array[i, j] = i * j;
}
Les tableaux
Les types de tableaux sont tous des types rfrence. En fait chaque type de tableau est une classe qui hrite de la classe abstraite System.Array.
C# oblige tous les lments dun tableau avoir le
mme type. Cette contrainte peut tre facilement contourne. Il suffit de spcifier que les lments sont des rfrences vers une classe de base, pour quen fait, chaque lment puisse tre une rfrence vers un objet de nimporte quelle classe drive.
57
Les tableaux
58
Lire la dimension N d'un tableau T du type int (dimension maximale: 20 lments),
Remplir le tableau par des valeurs entres au clavier et affiche le tableau.
Copier ensuite toutes les composantes strictement positives dans un deuxime tableau TPOS et toutes les valeurs
strictement ngatives dans un troisime tableau TNEG.
Afficher les tableaux TPOS et TNEG.
Recommended