Outils logiciels de base
ELE002
ELE002 Outils logiciels de base
• Objectifs pédagogiques
Acquérir les bases de la programmation et savoir utiliser quelques logiciels parmi les plus courants. Cet enseignement est organisé à partir de cours et de travaux pratiques.
• Capacité et compétences acquises
Connaissances des outils informatiques du technicien .
• Organisation
Nombre de crédits enseignements : 8 ECTS Type de la formation : Cours
• Contenu de la formation Première partie
La programmation en langage C
Les principes, les variables, l'affectation, les instructions élémentaires, les boucles.
Les fonctions, les tableaux et les pointeurs.
L'utilisation de logiciels Le système d'exploitation.
Présentation de linux.
Deuxième partie
La programmation en langage C
Les chaines de caractères, les structures et les fichiers.
L'utilisation de logiciels Le traitement de texte.
Le tableur.
Initiation à Matlab
Les exercices sont effectués en séance par les auditeurs sur ordinateurs.
Objectifs
• Apprendre à programmer en langage C
• Appréhender la structure des systèmes informatiques
• Utiliser les environnements de développement
• Connaître les outils informatiques utiles au domaine de l’Électronique tels que :
- Matlab (et ses alternatives gratuites)
- Excel, Word, etc.
Supports
• Polycopié " Outils logiciels de base" ; code ELE002 ; C. Alexandre & C. Pautot Environ 10€
• CDROM (vendu 1€) contenant le cours en version pdf ainsi que d'autres cours et les
logiciels utilisés durant l'année (Codeblocks,
Visual studio, Octave, Scilab, OpenOffice, …)
Déroulement
• Bases du langage C (3 à 4 séances)
• Programmation "d'algorithmes élémentaires" (5 à 6 séances)
• Fonctions, pointeurs et tableaux en C (7 à 8 séances)
• Projet Mastermind (3 à 4 séances)
• 1
erExamen (fin février ou début mars)
• Chaînes de caractères, structures, fichiers (7 à 8 séances)
• Introduction à Matlab (Octave, Excel, ...)
• 2
ièmeExamen (début juin)
• Examen de rattrapage (mi juin)
Bases du langage C (3 à 4 séances)
• Structure d'un système informatique (ordinateur, µP, DSP, …)
• Programmation en langage "évolué" (langage C)
• Programme
• Environnement de développement (Codeblocks)
Structure d'un système informatique
µP
Mémoire permanente : Disque dur (lenteur)
ROM (Read Only Memory)
RAM
(
Random Access Memory)Clavier, capteurs, …
Ecran, afficheurs,
commandes, …
Programmation en langage "évolué"
Les premières machines étaient programmées en "langage machine" :
Suite d'instructions exprimées en binaire et directement exécutables par le système.
Exemple :
Charger une valeur depuis la case mémoire 68 après celle pointée par le registre 3 dans le registre 8 :
100011 00011 01000 000000000001000100 op | rs | rt | adresse
Inconvénient : très difficile pour l'homme habitué aux langages évolués Alternative :
100011 00011 01000 000000000001000100 35 3 8 68
Langage Assembleur
Idée : utiliser des mnémoniques :
100011 00011 01000 000000000001000100 load r3 r8 68
Exemple tiré de Wikipedia :
.global _start
BONJ: .ascii "Bonjour\n" ; Définition en mémoire de la chaîne à afficher.
_start: mov $4 , %eax ; Mettre 4 dans le registre eax (appel système '''Write'')
mov $1 , %ebx ; Mettre 1 dans le registre ebx (descripteur de fichier ''STDOUT'') mov $BONJ , %ecx ; Mettre l'adresse mémoire de notre chaîne dans ecx
mov $8 , %edx ; Mettre la taille de la chaîne dans edx
int $0x80 ; Interruption 0x80, exécutant un appel système sous Linux) mov $1 , %eax ; Mettre 1 dans eax (appel système ''Exit'')
mov $0 , %ebx ; Mettre 0 dans ebx (valeur de retour du programme)
int $0x80 ; Interruption 0x80, exécutant un appel système sous Linux)
Inconvénient : pénible, peu productif et surtout "non portable"
Langage évolué
Exprimer les tâches à exécuter dans un langage simple dont les règles syntaxiques sont claires et faciles à retenir pour l'Homme.
Exemple : y=2*x+b
Inconvénient : Nécessité de traduire les instructions de haut niveau en langage machine (traduction automatique sous optimalité)
Avantages : productivité accrue, portabilité
Le langage C est le langage évolué le plus utilisé. Il en existe d'autres : Fortran, Pascal, Ada,
Programmation rigoureuse et résultats de grande valeur (majorité des applications)
Très bonne protection du code
Tendance : Langages interprétés (traduction à la volée) :
Basic, langage de script (sh, PHP, Perl, Python, Tcl, …), Java, Matlab, …
Programmation rapide mais exécution plus lente et nécessité d'un interpréteur
Protection difficile
Programme
Code source écrit par le programmeur :
#include <stdio.h>
#include <stdlib.h>
int main() {
printf("Bonjour\n");
return 0;
}