INF1563 Programmation I


Introduction


Objectifs

Apprendre comment

Apprendre à programmer ≠ apprendre Java

Pourquoi Java ?

Mais le langage a beaucoup moins d'importance que la qualité du programme.

Comment installer Java ?

Programmes, ordinateurs, langages de programmation, algorithmes

Qu’est-ce qu’un programme ?

Qu’est-ce qu’un langage de programmation ?

Un langage de programmation est un ensemble de règles qui déterminent quand une séquence de symboles constitue un programme dans ce langage.

Deux types de règles

Exemple :

règles syntaxiques :
- le numéro de téléphone est écrit comme
   (chiffre chiffre chiffre)chiffre chiffre chiffre - chiffre chiffre chiffre chiffre
- les espaces ne sont pas permis
règles sémantiques :
- les premiers trois chiffres constituent le code régional
- les autres chiffres constituent le numéro local

Différents langages de programmation

Qu’est-ce qu’un ordinateur ?

Architecture de l’ordinateur

Stockage de l’information

Niveau d'abstractionExemples des informations
circuits électroniquesinterrupteur à deux états, on ou off
langage machineséquences de bits 1 ou 0
plus hautnombres décimaux (code de 5 = 101), réels,
caractères (ASCII : code de 'A' = 01000001), ...
élevévideos, images (noir et blanc : 1 bit/pixel), documents, blogs, ...

Avantages et inconvénients d'un langage de haut niveau

AvantagesInconvénients
programmation plus rapideincompréhensible pour l'unité centrale (CPU)
instructions plus riches et plus compréhensiblesdoit être traduit (ou interprété) en langage machine (processus de compilation)


concepts plus abstraits (variables, structures, ...)
les chances de se tromper beaucoup moins élevées

Qu’est-ce qu’un algorithme ?

L'ordinateur est stupide !

Il comprend des instructions très primitives. Si l'on veut qu'il fasse des choses plus avancées, il faut lui dire comment le faire, il faut lui fournir un algorithme.

Un algorithme est (cf. Wikipédia)

Problème : comment faire des muffins aux bananes ?

Ingrédients (les données)
uqo
Algorithme

Exécution séquentielle, parallèle, répartie

Si les opérations s’exécutent en séquence, on parle d’algorithme séquentiel. Si les opérations s’exécutent sur plusieurs processeurs en parallèle, on parle d’algorithme parallèle. Si les tâches s’exécutent sur un réseau de processeurs on parle d’algorithme réparti ou distribué.

Programmes ressemblent aux recettes

Tâche : additionner deux nombres et afficher le résultat à l'écran.

Le CPU utilise un accumulateur : mémoire "locale".

Programme :

  1. Lire le premier nombre du clavier et le placer dans la mémoire.
  2. Lire le deuxième nombre du clavier et le placer dans la mémoire.
  3. Charger le premier nombre de la mémoire dans l'accumulateur.
  4. Ajouter le deuxième nombre de la mémoire au nombre qui se trouve dans l'accumulateur, et placer le résultat dans l'accumulateur.
  5. Stocker le nombre qui se trouve dans l'accumulateur dans la mémoire.
  6. Afficher le résultat sur l'écran.