Intro cours, algorithmique
This commit is contained in:
parent
b830b55b0d
commit
aa4e7dfbba
72
Cours.md
Normal file
72
Cours.md
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
# Outils
|
||||||
|
|
||||||
|
* Atom (plugin: script)
|
||||||
|
|
||||||
|
# Liens
|
||||||
|
|
||||||
|
* https://algo.developpez.com/tutoriels/initiation/
|
||||||
|
* ftp://ftp-developpez.com/marcel/cours-architecture.pdf
|
||||||
|
* https://marcel.developpez.com/cours/systeme/architecture-ordinateur/
|
||||||
|
|
||||||
|
# Thèmes
|
||||||
|
|
||||||
|
* Fonctionnement CPU (instructions, registre, adresse, assembleur)
|
||||||
|
* Mémoire (pile, tas, pointeur)
|
||||||
|
* Langage C (allocation, chaines, pointeur, erreurs)
|
||||||
|
* OS
|
||||||
|
* Algorithmique
|
||||||
|
* Langages (haut/bas niveau, interprétés, VM, shell, objet)
|
||||||
|
* Réseau (couches, TCP/IP, HTTP)
|
||||||
|
* Java (base du langage, classes, interfaces, Collections, generics, streams)
|
||||||
|
|
||||||
|
# Algorithmique
|
||||||
|
|
||||||
|
## Définitions
|
||||||
|
|
||||||
|
Un **algorithme** est une procédure de calcul bien définie qui prend en entrée un ensemble de valeurs et qui délivre en sortie un ensemble de valeurs.
|
||||||
|
|
||||||
|
Une **structure de données** est un moyen de stocker et d'organiser des données pour faciliter leur stockage, leur utilisation et leur modification.
|
||||||
|
|
||||||
|
L'**efficacité** d'un algorithme est mesurée par son coût (**complexité**) en temps et en mémoire.
|
||||||
|
|
||||||
|
La complexité d'un algorithme est :
|
||||||
|
|
||||||
|
* en temps, le nombre d'opérations élémentaires effectuées pour traiter une donnée de taille n ;
|
||||||
|
* en mémoire, l'espace mémoire nécessaire pour traiter une donnée de taille n.
|
||||||
|
|
||||||
|
![Courbes](https://algo.developpez.com/tutoriels/initiation/#LV-D)
|
||||||
|
|
||||||
|
Les instructions élémentaires sont : addition, multiplication, modulo et partie entière, affectation, instruction de contrôle.
|
||||||
|
|
||||||
|
Un **type abstrait** est un triplet composé :
|
||||||
|
|
||||||
|
* d'un nom ;
|
||||||
|
* d'un ensemble de valeurs
|
||||||
|
* d'un ensemble d'opérations définies sur ces valeurs.
|
||||||
|
|
||||||
|
Les types abstraits de base de l'algorithmique sont :
|
||||||
|
|
||||||
|
* entier (int)
|
||||||
|
* caractère (char)
|
||||||
|
* booléen (boolean)
|
||||||
|
* réel (double)
|
||||||
|
|
||||||
|
Une **variable** est un triplet composé :
|
||||||
|
|
||||||
|
* d'un type (déjà défini)
|
||||||
|
* d'un nom (a priori toute chaîne alphanumérique)
|
||||||
|
* d'une valeur.
|
||||||
|
|
||||||
|
Les **expressions** sont constituées à l'aide de variables déjà déclarées, de valeurs, de parenthèses et d'opérateurs du (des) type(s) de variables concernées.
|
||||||
|
|
||||||
|
L'**affectation** est l'instruction qui permet de stocker une valeur dans une variable.
|
||||||
|
|
||||||
|
## Types de base
|
||||||
|
|
||||||
|
### Booléens
|
||||||
|
|
||||||
|
Une variable de type booléen prend comme valeur VRAI (true) ou FAUX (false). Les opérations usuelles sont ET (&&), OU (||) et NON (!) qui sont données dans les tables qui suivent :
|
||||||
|
|
||||||
|
![OU](https://algo.developpez.com/tutoriels/initiation/images/10000000000000F000000047A81967DE0AE0CFB7.gif)
|
||||||
|
![ET](https://algo.developpez.com/tutoriels/initiation/images/10000000000000F00000003CD94585357F59CD48.gif)
|
||||||
|
![NON](https://algo.developpez.com/tutoriels/initiation/images/10000000000000A70000003C6EB52D563A7241F9.gif)
|
Loading…
Reference in New Issue
Block a user