cours-info/Cours.md
2019-05-29 16:46:40 +02:00

4.0 KiB

Outils

  • Atom (plugin: script)

Liens

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

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 ET NON

Entiers

Une variable de type entier peut prendre comme valeur l'ensemble des nombres entiers signés. Les opérations associées sont les opérations usuelles +,-,*,/.

Réels

Une variable de type réel peut prendre comme valeur l'ensemble des nombres réels. Les opérations associées sont les opérations usuelles +,-,*,/.

Caractères

Une variable de type char peut prendre comme valeur l'ensemble des caractères imprimables. On notera les valeurs entre apostrophe (', quote). On considère souvent que les caractères sont ordonnés dans l'ordre alphabétique.

Chaines de caractères

Une variable de type chaine de caractères peut prendre comme valeur tout suite de caractères (y compris vide). On notera les valeurs entre guillemets (", double quote). Le type en java est noté String. L'operation + permet de concaténer (fusionner) des chaines de caractères.

"Hello" + "World"

= "HelloWorld"

Attention

Les valeurs :

  • "1" qui est une chaine de caractères
  • '1' qui est un caractère
  • 1 qui est un entier
  • 1.0 qui est un réel

sont différentes et ne seront pas codées de la même manière dans la mémoire de la machine.

Comparaison

Les opérateurs <, ≤, ==, !=, >, ≥ permettent de comparer les valeurs de type entier, réel et caractère. Le résultat de cette comparaison est une valeur booléenne.

Structure de contrôle