1Info III - 17.12.03 Perlsous-programmessyntaxe de base sub foo { my $arg1 = shift; my $arg2 = shift; # do stuff with $arg1, $arg2,…, compute $result.

Slides:



Advertisements
Présentations similaires
GEF 243B Programmation informatique appliquée
Advertisements

Premier programme en C :
La boucle for : init7.c et init71.c
Les fonctions A quoi ça sert ?
Cours n° 7 Standard Template Library II.
Les tableaux. Tableau? Erreur de langage ! Un tableau est généralement une liste… Cest donc une liste de mêmes éléments : Liste de notes Liste de noms.
Portée des variables VBA & Excel
Fonctions & procédures
Chapitre 2 :Tableaux Pr. Aissam MESRAR Ecole ESIAM.
Chapitre 6: Les procédures et les fonctions
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
C.
Outils de développements
Liens PHP MySQL HTML MySQL
Fonctions Dans un programme : certaines opérations (ou séquences d'opérations) peuvent se répéter plusieurs fois : affichage de tableau, saisie, ou même.
Élise VAREILLES Introduction à la programmation en Perl There is more than one way to do it Élise VAREILLES
Algorithme et programmation
Faculté I&C, Claude Petitpierre, André Maurer Bases de données Javascript – SQL - LemanOS.
Chapitre III Héritage (début)
2ième Classe (Mercredi, 13 Octobre) C++ Intro CSI2572.
CPI/BTS 2 Programmation Web Introduction au PHP
ALGORITHMES RECURSIFS
OCaml - Les listes L3 MI.
Ecole Supérieure Privée de ingénierie et de technologie année universitaire :2013/2014 Cross-Plateform Cours JavaScript.
Faculté I&C, Claude Petitpierre, André Maurer 1 JavaCC Java compilers compiler (version générant du Javascript)
Les pointeurs Enormément utilisé en C/C++ ! Pourquoi? A quoi ça sert?
Structures de données IFT-2000
Révision des notions OO et Java Semaine 1 Jian-Yun Nie.
Manipulation de formulaires en Javascript
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.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
PHP Gestion des systèmes d’information Classe terminale
Eric Laporte Institut Gaspard-Monge Université de Marne-la-Vallée France Introduction à Perl.
IFT 6800 Atelier en Technologies d’information
Sémantique dénotationnelle
COURS DE PROGRAMMATION ORIENTEE OBJET :
Faculté I&C, Claude Petitpierre, André Maurer JavaCC Java compilers compiler (version générant du Javascript)
IFT-2000: Structures de données Piles et files Dominic Genest, 2009.
Structures de données IFT-10541
III. Récursivité Principe et exemples
PHP 2° PARTIE : FONCTIONS ET FORMULAIRE
Structures des données
Javascript 1° PARTIE : LES BASES
LES PILES ET FILES.
La notion de type revisitée en POO
Informatique de gestion – IO MER L3 – Pierre SOURNAC Informatique de Gestion part III – the macro rises L3 – IO MER
Créer des packages.
1 Structures des données. 2  Le tableau permettait de désigner sous un seul nom un ensemble de valeurs de même type, chacune d'entre elles étant repérée.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
 Syntaxe du langage PHP
Cours C++ Fonctions Surcharge d’opérateurs Passage d’arguments
420-B63 Programmation Web Avancée Auteur : Frédéric Thériault 1.
Tutorat en bio-informatique
Finder => Application => Utilitaires => Terminal Editor:pico Touches –Finder=>Applic.=> Utili. => Touches –~: Alt+N –|: Shift+Alt+N –[: Shift+ Alt+5 –{:
Les classes et les objets Les données finales class A { … private final int n = 20 ; // la valeur de n est définie dans sa déclaration … } class A { public.
1 File::Tabular Recherche et édition dans des fichiers tabulaires
06:34:37 Programmation Web PHP Fonctions associées aux tableaux Jérôme CUTRONA
Classe 1 CSI2572 Autres modificateurs de déclaration de variables: & volatile & register & static & auto & extern & const volatile Indique au compilateur.
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.
Cours 4 (14 octobre) Héritage. Chapitre III Héritage.
Conception de Programmes - IUT de Paris - 1ère année Conception de Programmes Objectifs et organisation du cours Introduction à la P.O.O.
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
CPI/BTS 2 Programmation Web Fonctions & Includes Prog Web CPI/BTS2 – M. Dravet – 02/11/2003 Dernière modification: 02/11/2003.
8PRO107 Éléments de programmation Les tableaux. Étude de cas 1 Description du problème : Lire une liste d’entiers et l’afficher d’abord dans le même ordre.
Conception de Programmes - IUT de Paris - 1ère année Les classes Introduction Déclaration d’une classe Utilisation d’une classe Définition des.
CPI/BTS 2 Programmation Web Tableaux Prog Web CPI/BTS2 – M. Dravet – 16/10/2003 Dernière modification: 16/10/2003.
Introduction à Perl … en trois heures. Plan  Syntaxe  variables  scalaires  listes  tables de hachages  spécial…  Plus de syntaxe  fonctions définies.
IFT359 – Programmation fonctionnelle Thème 07 Fermeture, affectation ou monades 1.
Informatique 1A Langage C 6 ème séance 1. Objectifs de la séance 6  Allocation dynamique de mémoire  Application à la création de tableaux 2.
ok.
Transcription de la présentation:

1Info III Perlsous-programmessyntaxe de base sub foo { my $arg1 = shift; my $arg2 = shift; # do stuff with $arg1, $arg2,…, compute $result. return $result; } my $res = foo($x, $y); my $res = est simplement ignoré my $res = foo($x);# $arg2 sera « undefined » = (1, 2); $res = Même chose que foo(1,2)!!!

2Info III Perlsous-programmesdéclarer les paramètres Pour préciser le nombre et le type des paramètres : sub { my $arg1 = shift; my $arg2 = shift; my $arg3 = shift; # le tableau $$arg3[1] … } my $res = foo($x, $y);# Erreur de compilation ici my $res = foo($x, $b)# Erreur de compilation ici my $res = foo($x, Ok # On peut aussi enlever les parenthèses si est déclarée : my $res = foo $x,

3Info III Perlsous-programmestypes de paramètres Les types de paramètres suivants sont possibles : $une variable scalaire sub foo($) { my $a = shift; …} foo $p; foo 3; foo asdf; référence à un tableau sub { my $aref = shift; …} \%une référence à un tableau associatif sub foo(\%) { my $href = shift; …} foo %p;

4Info III Perlréférences Utilisation dune référence à un tableau : my $aref le tableau lui-même $#$aref;# lindex du dernier élément $aref->[$i] ou $$aref[$i]# lélément $i du tableau Utilisation dune référence à un tableau associatif : my %h; my $href = \%h; %$href;# le tableau associatif $href->{$key} ou $$href{$key} # lélément $key de %h

5Info III Perlparamètres optionnels On peut utiliser ; pour séparer les paramètres optionnels : sub foo($$;$) { my $a = shift; my $b = shift; my $option = shift; # $option est « undefined » si le troisième paramètre # na pas de valeur $option = 0 if ! defined $option; # valeur par défaut … } foo $a, $b;foo $a, $b, 1;# ok foo $a;foo $a, $b, 1, 2;# erreurs

6Info III Perlnombre variable de paramètres On peut à la fin du prototype pour indiquer un nombre variable de paramètres : sub { my $a = shift; my $b = shift; le reste des paramètres foreach { … } … } foo $a, $b; foo $a, $b, 1; foo $a, $b, 1, ok foo($a, $b); foo($a, $b, 1); foo($a, $b, 1, ok foo $a; foo($a); foo; foo(); # erreurs

7Info III Perlsous-programmesexemples Exemple extrait de « perldoc perlsub » : sub max { my $max = foreach $foo { $max = $foo if $max < $foo; } return $max; } $bestday = max($mon,$tue,$wed,$thu,$fri); Exemple récursif : sub factoriel ($) { my $n = shift; return 1 if $n <= 1; return $n * factoriel($n-1); }

8Info III Perlsous-programmesutilisations On se sert de sous-programmes en Perl pour les mêmes raisons que dans les autres langages de programmation : Modularité du code Fonctions souvent utilisées Éviter la répétition du même code Récursivité etc.