CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche.

Slides:



Advertisements
Présentations similaires
Cours de C – Séance dexercices 19 Octobre Objectif Ecrire un serveur HTTP Sans gérer la partie réseau, on utilisera un utilitaire pour cela Serveur.
Advertisements

Cours de C – Séance dexercices 02 Octobre Protocole: client Protocole : – Requête client : GET /test.html HTTP/1.1\r\n Host: nom_de_l_hote\r\n Parameter:
Stockage de données.
Le langage Prolog Structures de données
GEF 243B Programmation informatique appliquée Types dérivés, structures et tableaux §
Ch 3: les structures simples. Objectif: -Distinguer entre les différents données (entrée, sortie..).
Immigration en Colombie-Britannique Source : Citoyenneté et Immigration Canada, Faits et chiffres 2006 – Aperçu de limmigration Nombre annuel dimmigrants.
Gestion de FICHIERS.
Mise en œuvre d’un programme
Prédicats prédéfinis Prédicats de type :
Analyse et Programmation Déclarative / Prolog
Comprendre l’ergonomie du module STSWEB
Systèmes Experts implémentation en Prolog
Fonctionnement du moteur Prolog
FLSI602 Génie Informatique et Réseaux
Section VIII Modularité Partie II
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
On parle darbre de recherche dune question *Racine de larbre : question *Nœuds : points de choix (formule à démontrer) *Passage dun nœud vers son fils.
Section VI Structures répétitives (suite)
Cours de programmation
Objets Opérateurs Listes
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
CSI2520 ?- insert(a, L, [b, a, d, a, f]). L = [b, d, a, f] ; L = [b, a, d, f] ; no Linsertion et le retrait sont 2 concepts complémentaires!
Partie 1 Etude de l'existant
Récursivité.
Analyser une phrase % extraire une phrase et retourner le reste
Chapitre IV LES STRUCTURES SIMPLES. Plan I- Les entrées II- Laffectation III- Les sorties.
Section XI Traitement de fichiers
Les éléments de base de l’algorithmique
Création d’un programme :
Les instructions PHP pour l'accès à une base de données MySql
Le Canada.
Les fichiers binaires en C++
FICHIERS : Définition : Algorithme général:
Fichiers et entrées / sorties Sauvegarde des programmes dans des fichiers. Compilation. Lecture et écriture de données dans des fichiers. Formatage des.
SEANCE 10 Python Entrée et sortie de fichiers Lycée Louis Vincent Lundi 20 janvier
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
CSI2520, Hiver 2007 Python Un langage de programmation par scripting et plus…
Operations de Base en C++ sur les Fichiers
CSI2520, Hiver 2007 Les entrées-sorties Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2)
CSI3525: Concepts des Langages de Programmation Notes # 6: Langages de Programmation Fonctionelle II: Introduction au ML.
CSI2520 Le langage Scheme (2) Un langage de programmation fonctionnelle.
Manipulation des fichiers dans le langage VB
Programmation logique Le Langage PROLOG
Les fichiers texte en C++
Animateur : Med HAIJOUBI
PHP & My SQL.
Le Canada.
Algorithmique Les structures Rappel L'enchaînement séquentiel
PHP 3° PARTIE : GESTION DE FICHIERS ET DE REPERTOIRES
Prolog Listes Arbres en prolog Structures : bases de données
CSI2520  Cette fonction permet d’attribuer une valeur à une variable (set! nombre (+ 3 4)) (set! nombre (+ 1 nombre)) En SCHEME, les fonctions dont le.
Décomposition et paramétrage des algorithmes
Labo 4 : Les structures et les entrées et sorties
 Syntaxe du langage PHP
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
1 Quatrième journée Les flots de données Les entrées/sorties Les flots de données Les entrées/sorties.
Les sockets.
Chapitre 1 L’autonomisation. Le Pouvoir Qu’est-ce c’est le pouvoir? Qu’est-ce c’est le pouvoir? la capacité, la force, et la capacité de faire quelque.
Objets Opérateurs Listes
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
 Formulaires HTML : traiter les entrées utilisateur
Tutorat en bio-informatique Le 12 octobre Exercices 3 et 4 (MAT1400) - solutions La série du binôme (chap. 8.8) –Trouver la série entière et le.
Elaboré par Ahmed BESSAIDI
1 PHP 5 Notions fondamentales (niveau 1 cours #3) Formation continue – Cégep de Sainte-Foy François G Couillard.
Algorithmique Tableaux de données
Géographie du Canada 1232 Qu’est-ce que tu sais vraiment de ce pays?
Les capitales des provinces canadiennes Exercice de révision.
M. BENJELLOUN : 2005 Le but final est de programmer un jeu où l'ordinateur choisira un nombre aléatoire entre 0 et 100 que vous devez deviner.
Informatique 2A Langage C 4ème séance
Transcription de la présentation:

CSI2520 Ecriture sur l'écran ou dans un fichier Lecture à partir du clavier ou dun fichier Affichage de termes : *write(1+2) affiche 1+2 *write(X). affiche la valeur courante de X sur le flot de sortie courant (par défaut l'écran), *nl permet de passer à la ligne suivante. *writeln(X) :- write(X), nl. *tab tel que tab(N) affiche N espaces

CSI2520 Affichage de termes (suite) : *display/1 agit comme write/1 mais en affichant la représentation sous forme darbre *Ex : write(3+4), nl, display(3+4), nl. Affiche : 3+4 +(3,4) YES

CSI2520 Lecture de termes : *read/1 admet nimporte quel terme en argument. *Il lit un terme au clavier et lunifie avec son argument. Le terme lu doit être obligatoirement suivi dun point. Certains systèmes Prolog affichent un signe dinvite lorsque le prédicat read/1 est utilisé. *Exemple : ?- read(X). : a(1,2). YES {X = a(1,2)}

CSI2520 age(X, Y) :- write('Give the age of '), write(X), write(': '), read(Y). ?- age(teddy, Z). Give the age of teddy: 22. Z = 22 Yes ?- age(teddy, 22). Give the age of teddy: 23. No ?- read(abc). :23. No ?- read(X + Y). : X = 2 Y = 3 Yes

CSI2520 lire des expressions arithmétiques, les évaluer et les imprimer jusqu'à ce que lutilisateur rentre « fin » au clavier. calculateur :- repeat, % boucle read(X), % lecture expression eval(X,Y), % évaluation write(Y), nl, % affichage Y = fin, !. % condition d'arrêt eval(fin, fin) :- !. % cas particulier eval(X, Y) :- Y is X. % calcul dexpressions

CSI2520 Le predicat repeat laisse toujours un point de choix derrière lui. repeat. repeat :- repeat. Exemple dutilisation : ?- calculateur. : : 3+2* : fin. fin YES

CSI2520 test :- repeat, write(SVP, entrer un nombre), read(X), (X=:=42).

CSI2520 En écriture : *mode write : son contenu est effacé avant que Prolog y écrive. *mode append : Prolog écrira à partir de la fin du fichier. Ouverture dun fichier : prédicat open/3 *argument 1 : nom du fichier *argument 2 : mode douverture write, append ou read *argument 3 : variable qui va recevoir un identificateur de fichier appelé flux ou stream.

CSI2520 Tous les prédicats read, write et autres vus auparavant admettent un second argument : le flux identifiant le fichier. *Ex : write(Flux, X). où Flux est un identificateur de fichier *Ex : read(Flux,X), get(Flux, X), get0(Flux,X) *Fermeture du fichier : prédicat close/1 qui prend en argument le flux associé au fichier.

CSI2520 ecrire(T) :- open( test.pl, append, Flux), (*ouverture*) write(Flux, T), nl(Flux), (*écriture*) close(Flux). (*fermeture*)

CSI2520 see(Filename), le fichier est lentrée courante. seen. La console redevient lentrée courante. tell(Filename), le fichier est la sortie courante. told. La console redevient la sortie courante.

CSI2520 put(CodeASCII) : imprime le caractère correspondant au code ASCII. get0(Code) : unifie la variable avec le code ASCII du caractère entré. get(Code) : même chose que get0, mais saute par-dessus les espaces.

CSI2520 capitale(ontario,toronto). capitale(quebec,quebec). capitale(cb,victoria). capitale(alberta,edmonton). capitale(terre-neuve,st-jean). capitale(nouvelle-ecosse,halifax). capitale(saskatchewan,regina). capitale(manitoba,winnipeg). capitale(nouveau-brunswick,fredericton). capitale(ipe,charlottetown). start:-write('Les Capitales du Canada'),nl,demander. demander:-write('Province? '),read(Province),reponse(Province). reponse(stop):-write('merci'),nl. reponse(Province):-capitale(Province,Ville),write('la capitale de '), write(Province),write(' est '),write(Ville),nl,nl,demander.

CSI2520 ?- start. Les Capitales du Canada Province? ontario. la capitale de ontario est toronto Province? cb. la capitale de cb est victoria Province? stop. merci true.

CSI2520 Comme en programmation fonctionnelle, la liste est une structure de donnée de base : [1, 2, 3, 4] [] la liste vide ; [Head | Tail] la tete et le reste de la liste ; [1, 2, "trois"] une liste de 3 éléments ; [1, 2 | Tail] une liste dau moins deux éléments.

CSI2520 ?- [T | Q] = [1, 2, 3, 4]. T= 1, Q= [2,3,4] ?- [1 | [2,3,4]] = L. L= [1,2,3,4] ?- [1,2,3 | [4]] = L. L= [1,2,3,4] ?- [T | Q] = [1]. T= 1, Q= [] ?- [T | Q] = []. no

CSI2520 readline(Line) :- get0(Ch), readline(Ch, Line). readline(10, []). readline(Ch, [Ch | RestOfLine]) :- Ch \= 10, get0(NextCh), readline(NextCh, RestOfLine). Lire des caractères en créant une liste, jusquà la fin dune ligne (code 10 )

CSI2520 cons(X, Y, [X|Y]). ?- cons(1, [2,3,4], L). L= [1,2,3,4] ?- cons(X, Y, [1,2,3,4]). X= 1, Y= [2,3,4] ?- cons(1, [2,3,4], [1,2,3,4]). yes

CSI2520 notre-append([],Y,Y). notre-append([A|B],Y,[A|W]) :- notre-append(B,Y,W). ?- notre-append([1,2], [3,4], L). L= [1,2,3,4] ?- notre-append(X, [3,4], [1,2,3,4]). X= [1,2] ?- notre-append([1,2], [3,4], [1,2,3,4]). yes

CSI2520 notre-reverse([],[]). notre-reverse([H|T],L) :- notre-reverse(T,LL), notre-append(LL,[H],L). ?- notre-reverse([1,2,3,4],L). L= [4,3,2,1] ?- notre-reverse(L,[1,2,3,4]). L= [4,3,2,1]

CSI2520 renverser([],L,L)-!. renverser([H|T],L,R):- renverser(T,[H|L],R). notre-reverse([H|T],L,R) :- renverser(L,[],R). Sans la coupe, il y aurait une boucle infinie après la première solution de: ?- notre-reverse(L,[1,2,3,4]).

CSI2520 notre-member(X,[X|L]). notre-member(X,[Y|L]) :- notre-member(X,L).

CSI2520 notre-length([],0). notre-length([X|L],N) :- notre-length(L,NN), N is NN+1.

CSI2520 notre-insert(A,L,[A|L]). notre-insert(A,[X|L], [X|LL]) :- notre-insert(A,L,LL). ?- insert(c, [a, b], L). L = [c, a, b] ; L = [a, c, b] ; L = [a, b, c] ; no