Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Base de C# 2023

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 27

Ecole Nationale des

Sciences Appliquées,
Université Ibn Zohr,
Agadir

Base de
programmation C#

Filière : 2ème année GInfo

Prof : H. EL BOUJAOUI

Année : 2023-2024
Introduction

C# est un langage de programmation orienté objet qui a été développé


spécifiquement pour le Framework .NET.

C# est dérivé de C++ et ressemble à Java : syntaxe, logique et


concept assez proches. Il en reprend les majeures caractéristiques,
tout en simplifiant son utilisation.

La compilation du code C#
Syntaxe générale de C#

Une instruction en code C# se termine par un point-virgule.

Console.WriteLine("Hello World !!");

Un bloc de code est délimité par des accolades { et }.

class Program
{
static void Main(string[] args)
{
Console.WriteLine("Hello World !!");
}
}
Les commentaires dans C#

// Un commentaire sur une ligne

/* Ceci est un commentaire sur


plusieurs lignes */

/// Pour la documentation automatique

Le mot-clé using permet d’inclure un espace de nom comme


raccourci dans le programme

using System;

Console.WriteLine(DateTime.Now);
Les variables
Les principaux types de base du framework .NET
Type Description
byte Entier de 0 à 255
short Entier de -32768 à 32 767
int Entier de -2 147 483 648 à 2 147 483 647
long Entier de -9 223 372 036 854 775 808 à 9 223 372 036 854 775 807
float Nombre simple précision de -3,402823e38 à 3,402823e38
Nombre double précision de -1,79769313486232e308 à
double
1,79769313486232e308
decimal Nombre décimal convenant particulièrement aux calculs financiers
char Un caractère
string Une chaine de caractère
bool Une valeur booléenne (vrai ou faux)
Classes associées aux types de base

Type Classe associée


byte System.Byte
short System.Int16
int System.Int32
long System.Int64
float System.Single

double System.Double

decimal System.Decimal
char System.Char
string System.String
bool System. Boolean
int note;
note = 14; int est un alias de
int noteetudiant = 15; System.Int32
int noteEtudiant = 17;
Console.WriteLine(noteetudiant);
Console.WriteLine(noteEtudiant);

Int a = 16;
Int b;
b = a + 2;
a++;
a--;
a += 10;
a /= 2;
Les chaînes de caractères

En C#, une chaîne de caractères est un objet de la classe String de


l’espace de noms System.
string est un alias de System.String.

La propriété Length donne la taille d’une chaîne de caractères.


L’opérateur + permet de concaténer les chaînes.

string s1 = "Bon";
string s2;
s2 = s1 + "jour";
s2 += " Monsieur";
char c = s1[0];
if (s1 == s2) .....
Caractères de contrôle dans les chaîne de caractères

\n À la ligne
\t Tabulation
string phrase = "Mon prénom est \"Ali\"";
horizontale Console.WriteLine(phrase);
\v Tabulation verticale Console.WriteLine("Passe\nà\nla\nligne");
\b Retour arrière
\r Retour de chariot
\f form feed
string fichier = "c:\\repertoire\\fichier.cs";
\\ backslash //On peut aussi utiliser la syntaxe suivante
\’ Guillemet simple string fichier = @"c:\repertoire\fichier.cs";
\" Guillemet double
\0 Caractère de valeur
nulle
Opérations d’entrée/sortie
Write affiche une chaîne.
WriteLine affiche une chaîne avec un retour en la ligne.
ReadLine lit la chaîne de caractères tapés au clavier.

Exemples d’instructions d’affichage

Console.WriteLine("Bonjour");
int i=10;
Console.WriteLine(i);
int i=10;
Console.WriteLine("i vaut " + i);
int i=10, j=5;
Console.WriteLine("i = " + i + " et j = " + j);
int i=10, j=5;
Console.WriteLine("i = {0} et j = {1}", i, j);
int i=10, j=5;
Console.WriteLine(i + j);
int i=10, j=5;
Console.WriteLine("Somme = " + i + j);
int i=10, j=5;
Console.WriteLine("Somme = " + (i + j));
int i=10, j=5;
Console.WriteLine("Somme = {0}", i + j);
int i=10, j=5;
Console.WriteLine("Somme = " + i*j);
int i=10, j=5;
Console.WriteLine(i + j + "Somme = ");
Exemples de lecture d’entiers et de réels
string s = Console.ReadLine();
int i = Int32.Parse(s);
string s = Console.ReadLine();
double d = Double.Parse(s);
Instructions conditionnelles

if (condition) bool estVrai = true;


if (estVrai)
{
Console.WriteLine("C'est vrai !");
Instructions; else
} Console.WriteLine("C'est faux !");
else
bool estVrai = true;
{ if (!estVrai)
Instructions; Console.WriteLine("C'est faux !");
} else
Console.WriteLine("C'est vrai !");

string login = "Nicolas";


string motDePasse = "test";
if (login == "Nicolas" && motDePasse == "test")
Console.WriteLine("Bienvenue Nicolas");
else
Console.WriteLine("Login incorrect");
switch (variable) switch (civilite)
{
{ case "M." :
case valeur_1: Console.WriteLine("Bonjour monsieur");
Instructions; break;
break; case "Mme":
case valeur_2: Console.WriteLine("Bonjour madame");
break;
Instructions; case "Mlle":
break; Console.WriteLine("Bonjour mademoiselle");
default : break;
Instructions; default:
break; Console.WriteLine("Bonjour inconnu");
break;
} }
Les boucles

for (initialisation; test continuation; suite) int i;


{ for (i= 0; i< 10; i++)
Instructions; {
} Console.WriteLine("i=" + i);
}

for (int i= 0; i< 10; i++)


{
Console.WriteLine("i=" + i);
}

int[] chiffres = { 0,1, 2, 3, 4, 5, 6, 7, 8, 9};


for (int i = chiffres.Lenght; i > 0; i -= 2)
{
Console.WriteLine(chiffres[i-1]);
}
foreach (Type variable in collection)
{
Instructions;
}

string[] Jours ={ "Lundi", "Mardi", "Mercredi", "Jeudi",


"Vendredi", "Samedi", "Dimanche" };
foreach (string jour in Jours)
{
Console.WriteLine(jour);
}

La boucle foreach est une boucle en lecture seule.


int i = 0;
while (condition) while (i < 10)
{ {
Instructions; Console.WriteLine("i=" + i);
i++;
} }

do int i = 0;
{ do
{
Instructions; Console.WriteLine("i=" + i);
} while (condition); i++;
} while (i < 10)
Les instructions break et continue
int i = 0;
while (true) Le mot clé break permet
{ de sortir de la boucle dès
if (i >= 10) qu’une condition est
{
break;
vérifiée.
}
Console.WriteLine("i=" +i);
i++;
}

for (int i = 0; i < 20; i++)


Le mot clé continue {
if (i % 2 == 0)
permet de passer à
{
l’itération suivante d’une continue;
boucle. }
Console.WriteLine(i);
}
Les listes List<string> jours = new List<string>();
// Ajout des éléments à la liste
jours.Add("Lundi");
jours.Add("Mardi");
jours.Add("Mercredi");
jours.Add("Jeudi");
foreach (string jour in jours)
{
Console.WriteLine(jour);
}
// Suppression d’un élément
jours.RemoveAt(1);
// L’indice d’un élément
int indice = jours.IndexOf("Mercredi");

List<string> jours = new List<string> { "Lundi", "Mardi",


"Mercredi", "Jeudi", "Vendredi", "Samedi", "Dimanche" };
Les tableaux

string[] jours = new string[7]; double[] t1 = new double[3];


jours[0] = "Lundi"; t1[0] = 2.5;
jours[1] = "Mardi"; t1[1] = 3;
jours[2] = "Mercredi"; t1[2] = 3.5;
jours[3] = "Jeudi"; int[] t2 = {1, 2, 3, 4,5};
jours[4] = "Vendredi";
jours[5] = "Samedi"; int[,] t = new int[2, 3];
jours[6] = "Dimanche"; int[,] t = {{1, 2, 3}, {4, 5, 6}};

string[] jours = new string[] { "Lundi", "Mardi", "Mercredi",


"Jeudi", "Vendredi", "Samedi", "Dimanche" };
for (int i = 0; i < jours.Length; i++)
{
Console.WriteLine(jours[i]);
}
Fonctions et Procédures
Une fonction (méthode) regroupe un ensemble d’instructions
pouvant prendre des paramètres et pouvant renvoyer une
valeur.
type_de_retour nom_de_fonction(arguments)
{
instructions;
return valeur à renvoyer;
}

Les paramètres d'une méthode doivent être utilisés avec le


bon type.
Le mot-clé return permet de renvoyer une valeur du type de
retour de la méthode
Une fonctions qui ne renvoie rien est appelée procédure. Elle
se préfixe par le mot-clé void.
Exemple d’une fonction qui calcul le prix TTC
class Program
{
public static double calcTTC(double ht, double niv_tva)
{
double tmpTtc = ht * (1 + niv_tva);
return tmpTtc;
}
static void Main(string[] args)
{
const double tva = 0.1;

Console.WriteLine("Entrer votre prix HT:");


double pht = double.Parse(Console.ReadLine());

double pttc = calcTTC(pht, tva);

Console.WriteLine("Prix TTC:"+pttc.ToString());
Console.WriteLine("Press any key to continue...");
Console.ReadKey(true);
}
}
Passage par valeur
class Program
{
public static void permutation(double a, double b)
{
double c = a;
a = b;
b = c;
}
static void Main(string[] args)
{
double a = 6;
double b = 10;

permutation(double a, double b);

Console.WriteLine("a = " + a);


Console.WriteLine("b = " + b);
Console.ReadKey();
}
}

Résultat : a=? et b=?


Passage par référence
class Program
{
public static void permutation(ref double a, ref double b)
{
double c = a;
a = b;
b = c;
}
static void Main(string[] args)
{
double a = 6;
double b = 10;

permutation(ref a, ref b);

Console.WriteLine("a : " + a);


Console.WriteLine("b : " + b);
Console.ReadKey();
}
}

Résultat : a=? et b=?


Passage par référence sans valeur d’initialisation

class Program
{
public static void affectation(int a, out int b)
{
b = a;
}
static void Main(string[] args)
{
int a = 6;
int b;

affectation(a, out b);

Console.WriteLine("a : " + a);


Console.WriteLine("b : " + b);
Console.ReadKey();
}
}
Utilisation du débogueur

Pour voir en détail comment un programme s'exécute, nous pouvons


l'exécuter étape par étape, en cliquant sur Déboguer, Pas à pas principal.
Pas à pas principal exécute un appel de méthode sans exécuter chaque
ligne de la méthode.

Pour exécuter chaque ligne de la méthode, il faut utiliser Pas à pas


Détaillé.

Passer la souris sur un nom de variable dans le code fera apparaître


une boîte contenant la valeur actuelle de cette variable.

Nous pouvons définir un point d'arrêt pour arrêter l'exécution à un


moment donné.
Exercice : Compiler le programme suivant puis utiliser le débogueur
et corriger les erreurs observées.

public class sommeCarre


{
public static void Main()
{
int sum = 0;
int count = 1;
Console.Write("Enter the number of squares to sum :");
int high = int.Parse(Console.ReadLine());
while (count <= high)
sum += count*count;
Console.WriteLine("The sum of the first {0} squares is {1} ",
high, sum);
}
}
Exercice 1:

Ecrivez un programme qui permet de trouver le maximum et le


minimum d'une suite de nombres non négatifs entrés par l'utilisateur.

Exercice 2:

Ecrivez un programme qui permet de compter les nombres négatifs


dans une suite de nombres saisis par un utilisateur.

Exercice 3:

Écrivez un programme qui calcul la moyenne d'une suite de nombres


non négatifs entrés par l'utilisateur. L’entrée sera terminée quand
l'utilisateur saisit un nombre négatif.

Vous aimerez peut-être aussi