Outils logiciels de base

publicité
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)
1er Examen (fin février ou début mars)
Chaînes de caractères, structures, fichiers (7 à 8 séances)
Introduction à Matlab (Octave, Excel, ...)
2ième Examen (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
Mémoire permanente :
Disque dur (lenteur)
ROM (Read Only Memory)
Clavier, capteurs, …
µP
RAM
Ecran, afficheurs,
commandes, …
(Random Access Memory)
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
_start: mov
mov
mov
mov
int
mov
mov
int
"Bonjour\n"
$4
, %eax
$1
, %ebx
$BONJ
, %ecx
$8
, %edx
$0x80
;
;
;
;
;
;
$1
$0
$0x80
; Mettre 1 dans eax (appel système ''Exit'')
; Mettre 0 dans ebx (valeur de retour du programme)
; Interruption 0x80, exécutant un appel système sous Linux)
, %eax
, %ebx
Définition en mémoire de la chaîne à afficher.
Mettre 4 dans le registre eax (appel système '''Write'')
Mettre 1 dans le registre ebx (descripteur de fichier ''STDOUT'')
Mettre l'adresse mémoire de notre chaîne dans ecx
Mettre la taille de la chaîne dans edx
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;
}
Puis traduit en code exécutable :
Code source
bonjour.c
compilation
Executable
traduction
Code objet
Bonjour.o
Bonjour.exe
Edition de liens
Environnements de développement
Téléchargement