Outils pour utilisateurs

Outils du site


Panneau latéral

Accueil

Select other language :


Apprentissage

Enseignements

Enseignements Département Informatique SI5 et Master IFI

Enseignements Département Bâtiment Polytech'Nice

Autres Formations française et étrangère

Activités administratives, Ingénierie et Innovation Pédagogiques

Apprentissage Département Informatique SI5/Master 2 ingénierie informatique EUR DS4H


Recherche

Valorisation de la Recherche

Dépôts Logiciels à l’Agence de Protection des Programme (APP)

Valorisation des résultats de recherche et transfert

Diffusion de la Culture scientifique et Technologique

Communications de presse

Séminaire ENSI Tunis

Pédagogie Innovante

Relations industrielles et socio-économique

Organisation de Manifestations

  • Conférence sur les FabLabs, Alexandre Schneider, Professeur Agrégé en Génie Mécanique, Université de Reims Champagne-Ardenne Web
  • Journées UbiMob'14 Site Web

Animation de la Recherche

U-Santé

Privé

Outils

Sources d'Informations

cours:cours_environnement_de_programmation_bat4

Ceci est une ancienne révision du document !


Cours d'environnement de programmation en informatique en BAT4

PREAMBULE


Un des trois Modules pour appréhender l'immotique

Préambule & Approche pédagogique

Outils de travaux pratiques

Cours et Tutoriaux sur la Programmation Objet en C#

Quelques références sur la Programmation orientée objet et C#

Pour aller plus loin

Auteur(s) : Luc Gervais

Editeur(s) : Eni, Collection : Ressources Informatiques

Date de parution : 11/09/2013 , EAN13 : 9782746082977

LES COURS PROGRAMMATION et ENVIRONNEMENT LOGICIEL


Séance 1 Introduction du langage C# hors objet : Introduction des outils de développement logiciel et mise en place de l'environnement du module

Durée : 2h
Résumé de la Séance :
  • Présentation des différents Projets Visual Studio
  • Démonstration d'un premier projet en mode terminal dit “Application Console” en C# sous Visual Studio
  • Démonstration d'un premier projet en mode graphique dit “Application Windows Forms” en C# sous Visual Studio
  • QCM sur vos connaissances en programmation pour nous aider à mieux adapter l'enseignement.
Tutorial : Développement sous Visual Studio
A FAIRE
Aidez-vous du tutorial pour créer votre premier programme en mode console, ce programme affiche Hello.
Compétences acquises :
  • Utiliser Visual Studio pour créer et exécuter un projet Win32 console (i.e. sur un terminal non graphique)

Séance 2 : Introduction du langage C# hors objet : Mise en œuvre de l'environnement de développement

Durée : 2h
Résumé de la Séance :
  • Mise en œuvre de l'environnement Visual Studio pour
    • La phase de création de projets consoles et solutions : structuration d'une solution et d'un projet, fichiers sources et fichiers binaires exécutables, sauvegarde et emplacement sur le disque…
    • La phase de rédaction du code source : complétion de code et corrections en cours de saisie
    • La phase de compilation/génération d'exécutable : messages d'erreurs et de warning à la compilation
    • La phase d'exécution en mode debug : exécution pas à pas principale ou détaillée, visualisation des variables et leurs états, breakpoints …
A FAIRE
  • Importer le programme de test de debugging et exécutez-le.
  • Placer un point d'arrêt au bon endroit pour comprendre quel est le bug.
  • Corriger le bug en complétant le programme pour qu'il affiche 0, 1 ou 2 solutions selon que le déterminant est négatif, nul ou positif.

Programme de test de debugging

  • Récupérer les coefficients du polynômes saisi au clavier avec conversion caractères vers double
CORRIGE

Calcul des racines d'une équation du 2d degré

Compétences acquises :
  • Utiliser le debugger de Visual Studio pour placer des points d'arrêts et visualiser des variables en cours d'exécution
  • Utilisation de l'instruction conditionnelle “If”
  • Conversion de types de données

Séance 3 : éléments du langage C# hors Objets et mise en oeuvre

Durée : 2h
Résumé de la Séance :
  • Revue des éléments du langage C# hors Objets et mise en oeuvre
    • Procédures et Fonctions
Comparaison entre C# et VBA
Code C# support de cours
A FAIRE
Écrire un programme de test de parité d'un nombre
  • Il faudra demander de saisir un nombre au clavier
  • Récupérer la valeur entière saisie
  • Écrire une fonction booléenne qui teste la parité d'un entier
  • Tester avec l'appel de cette fonction la parité de l'entier saisi et
  • Afficher selon le message “est pair” ou “est impair”

Nota : utiliser les fonctions de lecture écriture ci-dessus.

CORRIGE

Deux versions de la parité d'un nombre

Compétences acquises :
  • Écriture de fonctions, de procédures et réutilisation dans un programme
  • Conversion programme VBA vers C#

Séance 4 : éléments du langage C# hors Objets et mise en oeuvre :

Durée : 2h
Résumé de la Séance :
Code C# support de cours
A FAIRE
  • Application directe : calcul de nombre factoriel
  • Programme de calcul mental. Écrire un programme qui affiche des équations du type “x + 12 = 36” et qui demande à l'utilisateur quelle est la valeur de x. Le programme propose 10 équations en tout et affiche le score final, par exemple 3/10 si on a répondu correctement à 3 équations sur 10.
  • Programme de calcul mental (facultatif). L'utilisateur a maintenant 3 tentatives pour chaque équations. Le score est calculé ainsi : 3pts si la valeur est trouvée en une seule tentative, 2pts en 2 tentatives, 1pt en une tentative et Opt si la valeur n'est pas trouvée.

Code C# à compléter pour le calcul mental

CORRIGE

Calcul mental

Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence

Compétences acquises :
  • Boucles while
  • Lecture/écriture de données à la console
  • Utilisation du tirage aléatoire d'un entier
A FAIRE (en séance)
  • écrire une fonction qui renvoie le produit scalaire de deux vecteurs.
  • écrire un programme Colle qui prend des mots passés en paramètre du main et qui les colle séparés par _, lancer le programme dans le terminal (cmd). Exemple : Colle.exe il fait beau doit afficher il_fait_beau.
  • compléter le projet sur les tableaux en ajoutant la multiplication vectorielle(matrice par vecteur) ainsi que la lecture d'une matrice.

Séance 5 : éléments du langage C# hors Objets : types complexes

  • Types complexes : tableaux
Code C# support de cours
A FAIRE (en séance)
  • écrire une fonction qui renvoie le produit scalaire de deux vecteurs.
  • écrire un programme Colle qui prend des mots passés en paramètre du main et qui les colle séparés par _, lancer le programme dans le terminal (cmd). Exemple : Colle.exe il fait beau doit afficher il_fait_beau.
Compétences acquises :
  • manipulation de tableaux d'entiers

Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence


Travail personnel évalué

A FAIRE
  • compléter le projet sur les tableaux en ajoutant la multiplication vectorielle(matrice par vecteur) ainsi que la lecture d'une matrice.
DATES d'évaluation
  • Rendu de l'exercice par email avant le 24/10/17 minuit. Ce rendu prendra la forme :
    • d'un fichier .zip de l'arborescence des répertoires et de fichiers de votre solution Visual Studio
    • attaché à un mail dont l'objet sera le suivant : [RENDU TP MATRICES BAT4][<votre Nom>]
  • Sur questionnaire papier portant sur ce travail et qui vous sera distribué la semaine de retour des vacances

Pour préparer le contrôle de la rentrée

Séance 6 : Introduction du langage C# : types complexes

  • Types complexes : struct
Code C# support de cours
A FAIRE
  • Application directe : compléter le projet sur les rectangles en ajoutant le calcul de l'aire du rectangle (des 2 façons, avec ou sans struct)
  • DecoAndCo : On veut repeindre les murs d'un appartement en utilisant la même peinture dans toutes les pièces. On vous demande d'écrire un programme qui lit le pouvoir couvrant de la peinture (i.e. le nombre de m2 que le pot permet de couvrir) puis qui lit les caractéristiques des pièces de l'appartement (nom, hauteur, largeur, longueur), qui affiche pour chaque pièce la surface à peindre et le nombre de pots nécessaires. A la fin, le nombre de pots total est affiché.
CORRIGE

Déco And Co

Compétences acquises :
  • Créer et manipuler un struct
  • Passer d'un problème à un programme qui modélise ce problème
  • Décomposer un problème en parties ⇒ choix des fonctions ou procédures

Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence


Séance 7 : Premiers pas vers la programmation orientée Objet par l'exemple

  • Des structures aux objets …
    • et si on intégrait des procédures et des fonctions dans un type complexe ?
  • Introduction à la POO : Classes et Objets
  • Portage d'une application simple en C# programmée selon une approche procédurale vers une approche orientée objet
  • Définition d'une classe, ses attributs et ses méthodes
Code C# support de cours
A FAIRE
  • Application directe 1 : reprendre votre solution Polygone pour remplacer la struct Rectangle par une classe Rectangle
  • Application directe 2 : reprendre votre solution DecoAndCo pour remplacer la struct Piece par une classe Piece
  • DecoAndCo cont'd : il s'agit maintenant de repeindre la maison. Votre programme principal contient un tableau de pièces. On demande le nombre de pièces, on lit les caractéristiques des pièces à la console puis on affiche :
    • la surface au sol de la maison
    • la surface totale à peindre (on ne peint que les murs)
    • le nombre de pots de peintures nécessaires pour peindre la maison.
CORRIGE

Séance 8 : Séance Programmation orientée Objet en C# (4h)

  • champs et méthodes publics ou privés
  • Propriétés
  • Constructeurs

Exemple d'illustration du private versus public et de l'intérêt des propriétés

Solution de l'exemple d'illustration en C#, Gestion des chaines de caractères contenant un entier

Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence

A FAIRE
- Définissez dans la classe rectangle deux propriétés pour éviter qu'une longueur ou qu'une largeur soit inférieure ou égal à 0. - Écrire le constructeur par défaut qui initialise les côtés à 0.
CORRIGE

Classe Rectangle avec propriétés pour éviter qu'une longueur ou qu'une largeur soit inférieure ou égal à 0 et sortie de l'application dans le cas contraire

Compétences acquises :
  • Utilisation des propriétés (ex. public double largeur … get{}, set{} et mot clef value)
  • Remplacement du constructeur par défaut par un constructeur explicite (ex. public Rectangle(double la, double lo))

Séance 9 : Introduction à la programmation orientée Objet en C#

  • Héritage : l'héritage est un concept clé des langages orientés objet qui permet de factoriser et de mieux structurer le code. Nous allons juste aborder cette notion, sans rentrer dans toutes les possibilités offertes.

Pour les curieux, les explications détaillées sont là |https://docs.microsoft.com/fr-fr/dotnet/csharp/programming-guide/classes-and-structs/inheritance.

A FAIRE
  1. Exercice de cours : Écrire une classe “carré” qui contiendra les mêmes attributs et méthodes que la classe rectangle (héritage) puisqu'il s'agit d'un rectangle particulier. Trois objets seront alors instanciés et testés.
  2. Gestion de véhicules. On vous donne la classe Vehicule et la classe Voiture qui étend Vehicule. On vous donne aussi le programme qui gère un tableau de Voiture.
  • Vous devez créez la classe Moto. En plus des caractéristiques d'un véhicule, une moto a une cylindrée comprise entre 50 et 1000. Le permis nécessaire est le “AM” si la cylindrée est 50, le “A1” si la cylindrée est 125 et le “A2” sinon.
  • Ajoutez un tableau de motos dans le programme principal. Créez quelques motos et affichez toutes les voitures puis toutes le motos.
  • plutôt qu'utiliser un tableau de Voiture et un tableau de Moto, utilisez un tableau de Vehicule et pour y stocker aussi bien des Moto que des Voiture.

La solution des véhicules à compléter

Rappel : Vous trouverez des compléments d'information sur Cours Complet POO C# de Référence

CORRIGE

Classe Carre qui hérite Rectangle. Version avec new et override

Les véhicules avec héritage

Compétences acquises :
  • Héritage d'une classe (ex. Class Carre : Rectangle)
  • Écriture d'un constructeur dans la classe qui hérite (ex. public Carre©: base (c,c) dans le cas de la classe héritée Rectangle)
  • Champs protected plutôt que private pour les utiliser au travers de l'héritage
  • Surcharge d'une méthode dans la classe qui hérite avec le mots clef “new”
  • Utilisation d'une méthode de la classe héritée dans la classe qui hérite (ex. base.affiche())

Séance 10 : Programmation orientée Objet et Interface Graphique

Programmation d'une interface graphique dans un projet Winforms (Windows Forms) en trois temps :

  1. instanciation des objets graphiques (appelés aussi widgets)
    • illustration du concept d'instance de classe
  2. modification des propriétés des objets graphiques
  3. programmation du comportement de l'application dans les méthodes événementielles des objets graphiques

Tutoriel sur les projets de type WinForms avec VisualStudio.

A FAIRE
  1. Exercice de cours : construire pas à pas votre première interface graphique en suivant le tutoriel ci-dessus.
  2. Application : un compteur graphique.
    • créer une classe qui gère un compteur initialisé à 0, incrémentable avec incr(), réinitialisable avec reset(), lu avec val().
    • en suivant les étapes décrites ci-dessus, créer une interface graphique contenant un bouton qui changera de couleur et de nom quand la souris passera dessus (Rouge/“OUT” et Vert/“IN”)
    • Afficher dans la fenêtre principale le compteur qui s'incrémentera à chaque click sur ce bouton ci-dessus,
    • Ajouter un bouton de Reset pour réinitialiser le compteur à 0.
Compétences acquises : Après ces manipulations, vous devez être capables de créer des programmes C# similaires aux programmes que vous avez développés en mode console et leur rajouter des interfaces graphiques.

Autre référence : C# Programming Tutorial - Programming Winforms in C#


Séance 11 : Test en séance sur la programmation objet

  • Écriture d'une classe en mode console
  • QCM sur les objets + questions sur la classe que vous devez écrire.
Correction en mode console

Séance 12 : Interface graphique pour une application métier

  • Intégration d'un code métier dans une interface graphique
  • règles de bonnes structuration pour séparer l'affichage (interface graphique) du calcul (code métier):
    1. les objets métiers sont déclarés dans la classe Form1,
    2. ils sont initialisés dans le constructeur Form1(),
    3. les méthodes événementielles (par exemple, le clic souris) :
      • invoquent une méthode sur l'objet métier (par exemple, reset) et affichent l'information correspondante dans un composant graphique (par exemple la valeur 0)
      • ou à l'inverse, elles récupèrent une information d'un composant (par exemple, une nouvelle valeur) et invoquent une méthode de l'objet métier (par exemple, la méthode Set).
  • REMARQUE : la méthode d'affichage dans la console n'a plus lieu d'être utilisée dès lors que vous travailler avec des WinForms.
A FAIRE
Il s'agit de créer une interface graphique pour le compteur écrit lors de la séance de test.
  1. Finir le code du compteur (code métier), avec les deux versions : compteur qui peut prendre n'importe quelle valeur (Compteur_set), compteur qui ne peut être initialisé qu'à 0 (Compteur_non_set).
  2. Créez une interface (projet WinForm) contenant :
    • un TextBox (champ de texte modifiable) qui affiche la valeur du Compteur_set et un Label qui affiche la valeur du Compteur_non_set
    • 5 boutons : quit positionné en bas au centre de la fenêtre, reset et incr positionnés sous le Compteur_set, reset et incr positionnés sous le Compteur_non_set
    • comportement : appuyer sur reset remet le compteur correspondant à 0, appuyer sur incr l'incrémente et appuyer sur quit ferme la fenêtre.
  3. On aurait pu choisir d'afficher le Compteur_non_set dans un TextBox, comment faire pour que le comportement soit cohérent ?
Correction en mode console et graphique

Séance 13 : Utilisation d'Excel depuis un programme C#

Il s'agit d'utiliser une API pour lire/écrire des informations depuis/dans un fichier excel.

A FAIRE
  • télécharger la librairie suivante : ExcelLibray.dll, sauvez-la sur votre machine et dé-zipez-la pour récupérer ExcelLibray.dll
  • créer un projet console
  • indiquer que ce projet utilisera cette librairie. Pour cela, menu projet → ajouter une reference → parcourir et chercher le fichier ExcelLibray.dll
  • copier/coller le code qui se trouve dans le fichier Program.cs dans la classe Program. Program.cs
  • exécuter le programme et comprenez ce qu'il fait.

Nota 1 : vérifier que le fichier excel a bien été créé, s'il y a un problème de chemin, changer la variable path dans le programme Nota 2 : si vous interrompez l'exécution de votre programme C#, le fichier excel reste ouvert. Il faut donc tuer le processus excel qui a été créé via le gestionnaire des tâches.

Pour ceux qui veulent utiliser toutes les fonctionnalité de l'interopérabilité excel, voici la solution de la librairie excel, que vous pouvez étendre si besoin.

Cours sur l'interopérabilité avec Excel en C# Tutorial Utilisation d'Excel en C#


TP final

Ce TP est à faire en séance. A la fin de la séance, vous devrez impérativement envoyer une archive TPfinal.zip à votre responsable de TD dans un mail dont le sujet est : [BAT4] TP final. Ceux qui souhaitent aller plus loin pourront améliorer leur travail en envoyant un mail identique avec une version plus avancée au plus tard le vendredi 22 décembre.

Il s'agit d'afficher dans une interface WINFORM les informations calculées dans un fichier excel contenant le calcul de la classe d'énergie d'un bâtiment en fonction de son SHON et du volume consommé dans les différentes énergies (gaz, fuel …). Ce fichier provient en partie de l'ADEME. Les entrées de ce fichier excel sont le SHON et la consommation des différentes énergies. La sortie est une X en face de la classe énergétique (A, B, C,… G).
  • a minima, il faudra fournir un moyen de modifier le SHON et d'afficher la classe énergétique
  • il pourra être intéressant de permettre de modifier aussi les consommations énergétiques
  • l'affichage de la classe énergétique pourra être simplement un label
  • il pourra être intéressant d'afficher une flèche en face du logo des classes énergétiques de l'ADEME.

L'archive TPFinal.zip contient :

  • les fichier excel à traiter
  • la dll permettant de lire et écrire dans un fichier excel à partir de C#
  • un exemple d'utilisation de cette dll
  • l'image du logo de l'ADEME ainsi que l'image d'une flèche

Introduction aux bases de données. Exemple de MySQL (1h30 19/01/15) Site de Téléchargement et d'Installation de MySQL pour Windows

  • Installation et configuration de MySQL
  • Manipulation de MySQL

Introduction Base e données:MySQL

TD Utilisation de MySQL dans un Programme C# Utilisation de Scilab depuis un programme C#

exemple de projet C# utilisant les librairies scilab

Autres éléments de cours

Import de DLL
  • Import de DLL installée sur la machine (Références / ajouter référence)
  • Exemple avec System.Speech. Voir la solution.
Cours et illustrations des Notions de Programmation Orientée Objet en C#

Zone Enseignant

Années précédentes

cours/cours_environnement_de_programmation_bat4.1513154651.txt.gz · Dernière modification: 2017/12/13 09:44 par hcollavizza