Intro cours, algorithmique

This commit is contained in:
Meutel 2019-05-29 16:28:35 +02:00
parent b830b55b0d
commit aa4e7dfbba

72
Cours.md Normal file
View 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)