• Aucun résultat trouvé

Cours algorithmique condition (if then else, suite) – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Cours algorithmique condition (if then else, suite) – Cours et formation gratuit"

Copied!
24
0
0

Texte intégral

(1)

Algorithmique - Programmation 1 Cours 1

Universit´e Henri Poincar´e CESS Epinal

Automne 2008

(2)

Introduction

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(3)

Introduction

Introduction

Qu’est ce que l’informatique ?

discipline tr`es jeune

discipline en constante ´evolution (performance des ordinateurs multipli´ee par 2 tous les 18 mois, cf loi de Moore)

discipline tr`es large (calcul, gestion, bases de donn´ees, bureautique, r´ealit´e virtuelle, robotique, productique, traitement de la langue, de la parole, de l’image, etc)

discipline ´evoluant dans un contexte ´economique `a forte croissance

discipline fortement li´ee aux t´el´ecommunications

(4)

Introduction

Introduction (suite)

D´efinition

Manipulation d’informations (qui constituent des mod`eles num´eriques ou symboliques) en vue de la r´esolution

(automatique ou interactive) de probl`emes (souvent d´ependants de donn´ees et/ou de param`etres)

(5)

A propos d’AP1

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(6)

A propos d’AP1

Objectifs du cours AP1

Pr´esentation d’un sous-domaine de l’informatique, `a savoir la programmation

→ d´eveloppement d’applications

Apprendre `a d´ecrire lar´esolution d’un probl`eme

→ d´eveloppement d’algorithmes

Apprendre `a r´esoudre un probl`eme en utilisant des

fonctions(donn´ee d’entr´ee trait´ee pour produire une sortie)

→ paradigme fonctionnel

Application : implantation d’algorithmes au moyen du langage de programmation caml

→ apprendre syntaxe et s´emantique d’un langage

Pourquoi pas apprendre `a aimer l’informatique ?

(7)

A propos d’AP1

Informations pratiques

10 s´eances de cours - TD - TP (20 heures de chaque)

Supports (cours, exercices, tps) disponibles en ligne sur la plateforme ARCHE (http://arche.uhp-nancy.fr)

TPs utilisant des logiciels libres (´editeur emacs + compilateur Ocaml) :

http://caml.inria.fr/ocaml/index.fr.html http://www.gnu.org/software/emacs/

Livre en ligne :

D´eveloppement d’applications avec Objective Caml http://www.pps.jussieu.fr/Livres/ora/DA-OCAML/

Evaluation : examen ´ecrit + TP not´e

(8)

Quelques concepts de base

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(9)

Quelques concepts de base

Programme

D´efinition (Programme)

[Vue symbolique] Description d’une relation fonctionnelle entre deux ensembles (donn´ees d’entr´ee et r´esultat).

[Vue pratique] Un programme est une liste d’instructions indiquant `a un ordinateur ce qu’il doit faire (implantation d’un algorithme dans un langage compr´ehensible par la machine).

Construction d’un programme

Validation d’un programme

Transformation d’un programme (compilation)

Ex´ecution d’un programme (interpr´etation)

(10)

Quelques concepts de base

Calcul et valeur

D´efinition (Calcul)

Application automatique de r`egles de transformation qui produisent une valeur finale (le r´esultat) `a partir de valeurs initiales (les donn´ees).

D´efinition (Valeur)

Objet informatique qui ne peut plus ˆetre transform´e par le m´ecanisme de calcul courant (donc d´efinition relative `a la notion de calcul).

(11)

Quelques concepts de base

Nom et affectation

D´efinition (Nom)

Symbole (parfois appel´e identifiant), d´efini par le programmeur, et d´enotant une valeur.

NB: l’orthographe d’un nom est soumise `a des r`egles strictes d´ependantes du langage de programmation utilis´e.

D´efinition (Affectation)

Association entre un nom et une valeur.

NB: dans de nombreux langages, l’affectation se fait au moyen de l’op´erateur =.x

(12)

Quelques concepts de base

Type

D´efinition (Type)

Un type est d´efini par :

un ensemble de valeurs

un ensemble d’op´erations sur ces valeurs

une expression de type (nom du type)

Exemples : entiers, caract`eres, r´eels, etc.

Caml est un langage dit fortement typ´e, car toute donn´ee manipul´ee a un certain type.

NB: la notion de type permet de v´erifier que les donn´ees manipul´ees sont bien celles attendues par le programme.

(13)

Quelques concepts de base

Inf´erence de type

D´efinition (Inf´erence de type)

D´eduction du type d’une expression `a partir d’un ensemble de r`egles.

Permet de d´etecter des instructions erron´ees (par exemple, somme d’un entier et d’un caract`ere).

(14)

Quelques concepts de base

Evaluation d’un programme

D´efinition (Evaluation)

Calcul de la valeur des expressions (≈ instructions) contenues dans un programme.

NB: En Caml, l’´evaluation est bas´ee sur la notion de r´e´ecriture, i.e. le remplacement successif des noms par les valeurs

auxquelles ils sont li´es, et des op´erations par leur r´esultat.

(15)

Premiers pas avec Caml

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(16)

Premiers pas avec Caml

Premiers pas avec Caml

Caml vs Ocaml (paradigme fonctionnel + paradigme objet)

Interpr´etation vs compilation (Toplevel de caml)

En mode interpr´et´e, Caml attend la saisie d’expressions et retourne pour chaque expression, sa valeur (´evaluation de l’expression)

L’´evaluation est provoqu´ee en ajoutant `a la fin de l’expression le suffixe “;;”

Exemple :

# 2 + 3;;

- : int = 5

(17)

Premiers pas avec Caml

Les types de base en Caml : les entiers

Valeurs: Nombres entiers relatifs (Z)

NB: Ensemble de taille finie (capacit´ee maximale, cf repr´esentation en m´emoire)

Notation Caml: int Op´erateurs: + - * / R`egles de typage:

•Siop est une op´eration sur les entiers, et quea etbsont des entiers, alors a op b est un entier

•Siaetbsont des entiers, alorsa < best de type bool´een (valeur de v´erit´e)

Evaluation:

R`egles de calcul usuelles sur les op´erateurs

(18)

Premiers pas avec Caml

Les types de base en Caml : les d´ecimaux

Valeurs: Nombres r´eels (IR)

NB: Ensemble de taille finie (capacit´ee maximale, cf repr´esentation en m´emoire)

Notation Caml: float, op´erateurs suffix´es par un point Op´erateurs: +. -. *. /.

R`egles de typage:

• Si op est une op´eration sur les r´eels, et que a et b sont des r´eels, alors a op b est un r´eel

•Si aetb sont des r´eels, alorsa < best de type bool´een (valeur de v´erit´e)

Evaluation:

R`egles de calcul usuelles sur les op´erateurs

(19)

Premiers pas avec Caml

Les types de base en Caml : les bool´eens

Valeurs: {true, false}

Notation Caml: bool

Op´erateurs: && (et logique), or (ou logique), not (non logique), = (´egalit´e 6= affectation) R`egles de typage:

• Si op est une op´eration sur les bool´eens, et que a et b sont des bool´eens, alors a op b est un bool´een

• Si a et b sont des bool´eens, alors a = b est de type bool´een

Evaluation:

R`egles de calcul usuelles sur les op´erateurs

(20)

Le branchement conditionnel

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(21)

Le branchement conditionnel

Condition (if then else)

• Notation Caml:

if <expression bool´eenne>

then

<expression>

else

<expression>

R`egles de typage:

•L’expression est bien typ´ee si l’expression derri`ere le if est de type bool, et les expressions derri`ere then et else sont de mˆeme type

•Le type de l’expression est celui des expressions qui suiv- ent le then ou le else

(22)

Le branchement conditionnel

Condition (if then else, suite)

Evaluation:

Une expression conditionnelle a une valeur, elle peut donc ˆetre utilis´ee l`a o`u on met des valeurs

(if b then e1 else e2) = e1 si b vaut true (if b then e1 else e2) = e2 si b vaut false Exemples:

• (Symbole de Kroneker) if i = j then 1 else 0

• (Valeur absolue) if a < 0 then -a else a

(23)

Fonctions

Plan

Introduction A propos d’AP1

Quelques concepts de base Premiers pas avec Caml Le branchement conditionnel Fonctions

(24)

Fonctions

Fonctions

Caml offre une notation proche des math´ematiques :

math´ematiques caml

f :D →R let f = function

y 7−→expr(y) y -> expr(y);;

carre : IN → IN x 7−→ x.x

let carre = function x -> x * x ;;

carre 2;;

carre (2+3);;

(carre 2)+3;;

Références

Documents relatifs

Le plus souvent, cela signifie qu’un objet dont la classe reste immuable, peut, dans certaines conditions, ˆetre rang´e dans une variable dont le type est une autre classe.. Un

Par exemple, pour d´eclarer une variable strNomDeFamille de type chaˆıne de caract`eres et lui attribuer la valeur ”Tavenard”, en VB, on a :. Dim strNomDeFamille as

Remplacer Accepte la sélection affichée dans la zone Suggestions, vous pouvez aussi modifier le texte dans la zone Erreur de grammaire, puis cliquez sur Remplacer. Si l'erreur est

Les méthodes de conception sont d’une aide limitée pour la maintenance (documentation). Rendu plus complexe par la multiplicité

Cette commande permet la recherche d’un valeur et l’affichage de la valeur à laquelle elle

Dans la suite, nous utiliserons pour toutes les structures de contrôle la forme avec les ac- colades mais il existe la forme sans accolades (et donc avec une seule instruction) que

Vous pouvez aussi utiliser le mot clé this pour référencer window (à condition qu'on ne soit ni dans une fonction de définition d'objets comme une fonction de création de tableau,

appliquer dans un ordre déterminé à un nombre fini de données, pour arriver en un nombre fini d’étapes, à un certain résultat, et cela indépendamment des données....