SlideShare une entreprise Scribd logo
DUT SRC – IUT de Marne-la-Vallée
             28/11/2012
       INF120 - Algorithmique




          Cours 4
Entrées-sorties et fonctions




                                      Philippe Gambette
A propos du QCM 4


 Tableau de tableaux d'entiers tab
                                     tab[0][0]


                    tab
                                1    3   5   7
                tab[0]          2    4   6   8

            tab[0][1]
Sources

 • Le livre de Java premier langage, d'A. Tasso
 • Cours INF120 de J.-G. Luque
 • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html
Plan du cours 4 – Entrées-sorties et fonctions

 • Résumé de l'épisode précédent
 • Les entrées-sorties
 • Les fonctions
Plan du cours 4 – Entrées-sorties et fonctions

 • Résumé de l'épisode précédent
 • Les entrées-sorties
 • Les fonctions
Résumé de l'épisode précédent

 Tableaux :
 - pour stocker un ensemble de valeurs de même type
 - une valeur par case
 - nombre de cases fixé à l'initialisation du tableau
 - boucle pour parcourir le tableau


 Boucles :
 - boucle Tant que et boucle Pour tout
 - attention à l'initialisation et la condition d'arrêt (premier et dernier passage
 dans la boucle)
Plan du cours 5 – Entrées-sorties et fonctions

 • Résumé de l'épisode précédent
 • Les entrées-sorties
 • Les fonctions
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur :

  - périphériques de saisie d'entrées : clavier, souris, joystick, webcam, Wii
  remote, Kinect...

  - périphérique d'affichage des sorties : écran, vidéo-projecteur,
  imprimante...


  Différent des variables d'entrée / variable de sortie dans la
  “communication entre algorithmes”.
La souris

    La “minute culturelle”

    L'invention de la souris
    1952 Trackball (boule de commande)
         Tom Cranston et Fred Longstaff
         (Marine Royale Canadienne)
    1963 Souris mécanique
         Douglas Engelbart et Bill English
         (Stanford Research Institute)
    1977 Souris optique
         Jean-Daniel Nicoud et André Guignard
         (Ecole polytechnique fédérale de Lausanne)



                                             Photo : http://en.wikipedia.org/wiki/File:DATAR_trackball.jpg
La souris

    La “minute culturelle”

    L'invention de la souris
    1952 Trackball (boule de commande)
         Tom Cranston et Fred Longstaff
         (Marine Royale Canadienne)
    1963 Souris mécanique
         Douglas Engelbart et Bill English
         (Stanford Research Institute)
    1977 Souris optique
         Jean-Daniel Nicoud et André Guignard
         (Ecole polytechnique fédérale de Lausanne)



                                  Photo : http://cerncourier.com/cws/article/cern/28358/1/cernbooks2_12-00
                                             Plus d'infos sur http://fr.wikipedia.org/wiki/Souris_(informatique)
La souris

    La “minute culturelle”

    L'invention de la souris
    1952 Trackball (boule de commande)
         Tom Cranston et Fred Longstaff
         (Marine Royale Canadienne)
    1963 Souris mécanique
         Douglas Engelbart et Bill English
         (Stanford Research Institute)
    1977 Souris optique
         Jean-Daniel Nicoud et André Guignard
         (Ecole polytechnique fédérale de Lausanne)



                    Image : Jeremykemp, Pbroks13, http://fr.wikipedia.org/wiki/Fichier:Mouse_mechanism_diagram.svg
                            Photo Stéphane Magnenat (User:Nct) http://en.wikipedia.org/wiki/File:SmakyMouseAG.jpeg
Autres périphériques d'entrée

          La “minute xkcd”




          http://xkcd.com/243
          http://xkcd.free.fr?id=243
Autres périphériques d'entrée

    La “minute culturelle”

                                           Données
                                           transmises par
                                           la WiiRemote :
                                           image de
                                           profondeurs




                                http://www.youtube.com/watch?v=0awjPUkBXOU
Autres périphériques d'entrée

    La “minute culturelle”

                                          Données
                                          transmises par
                                          la Kinect :
                                          image de
                                          couleurs +
                                          profondeurs




                                http://www.youtube.com/watch?v=v0G0Cb7Zqjk
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier

  Souris à 1 bouton

  Webcam

  Kinect

  Ecran
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton

  Webcam

  Kinect

  Ecran
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton    deux entiers (abscisse et ordonnée) + un booléen (clic ou pas)

  Webcam

  Kinect

  Ecran
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton    deux entiers (abscisse et ordonnée) + un booléen (clic ou pas)

  Webcam               image, donc tableau de tableaux de couleurs RGB

  Kinect

  Ecran
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton    deux entiers (abscisse et ordonnée) + un booléen (clic ou pas)

  Webcam               image, donc tableau de tableaux de couleurs RGB

  Kinect               image + tableau de tableaux d'entiers (profondeur)

  Ecran                Si ligne de commande :
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton    deux entiers (abscisse et ordonnée) + un booléen (clic ou pas)

  Webcam               image, donc tableau de tableaux de couleurs RGB

  Kinect               image + tableau de tableaux d'entiers (profondeur)

  Ecran                Si ligne de commande :
                       chaîne de caractères

                       Si interface graphique :
Les entrées-sorties

  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères

  Souris à 1 bouton    deux entiers (abscisse et ordonnée) + un booléen (clic ou pas)

  Webcam               image, donc tableau de tableaux de couleurs RGB

  Kinect               image + tableau de tableaux d'entiers (profondeur)

  Ecran                Si ligne de commande :
                       chaîne de caractères

                       Si interface graphique :
                       image, donc tableau de tableaux de couleurs RGB
Les entrées-sorties
                                                                           en pseudo-code
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères         chaîne de caractères

                       reponseALaQuestion(questionAAfficher)
                       affiche la question questionAAfficher et renvoie une chaîne de
                       caractères.



  Ecran                Si ligne de commande :
                       chaîne de caractères
Les entrées-sorties
                                                                             en pseudo-code
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères           chaîne de caractères

                       reponseALaQuestion(questionAAfficher)
                       affiche la question questionAAfficher et renvoie une chaîne de
                       caractères.
                       Exemple : reponseALaQuestion(“Quel est votre nom”) me laisse taper
                       mon nom au clavier et renvoie “Gambette”

  Ecran                Si ligne de commande :
                       chaîne de caractères chaîne de caractères

                       Affiche(chaineAAfficher)
                       affiche la chaîne de caractères chaineAAfficher
                       et ne renvoie rien.
Les entrées-sorties
                                                                                 en Java
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères
                       Scanner lectureClavier = new Scanner(System.in);
                       String stringLu = lectureClavier.next();
                       LectureClavier.next() renvoie une chaîne de caractères.



  Ecran                Si ligne de commande :
                       chaîne de caractères
Les entrées-sorties
                                                                                 en Java
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères
                       Scanner lectureClavier = new Scanner(System.in);
                       String stringLu = lectureClavier.next();
                       LectureClavier.next() renvoie une chaîne de caractères.
                       int intLu = lectureClavier.nextInt();
                       LectureClavier.nextInt() renvoie un entier.

  Ecran                Si ligne de commande :
                       chaîne de caractères
Les entrées-sorties
                                                                                 en java
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères
                       Scanner lectureClavier = new Scanner(System.in);
                       String stringLu = lectureClavier.next();
                       LectureClavier.next() renvoie une chaîne de caractères.
                       int intLu = lectureClavier.nextInt();
                       LectureClavier.nextInt() renvoie un entier.

  Ecran                Si ligne de commande :
                       chaîne de caractères
                       String chaineAAfficher=”blabla”;
                       System.out.println(chaineAAfficher);
                       affiche la chaîne de caractères questionAAfficher, puis
                       retourne à la ligne, mais ne renvoie rien.
Les entrées-sorties
                                                                                  en java
  Entrées-sorties dans la communication ordinateur – utilisateur

  Quel type de données utiliser en algorithmique pour coder les entrées-
  sorties ?


  Périphérique         Type de données transmises

  Clavier              chaîne de caractères
                       Scanner lectureClavier = new Scanner(System.in);
                       String stringLu = lectureClavier.next();
                       LectureClavier.next() renvoie une chaîne de caractères.
                       int intLu = lectureClavier.nextInt();
                       LectureClavier.nextInt() renvoie un entier.

  Ecran                Si ligne de commande :
                       chaîne de caractères
                       String chaineAAfficher=”blabla”;
                       System.out.print(chaineAAfficher);
                       affiche la chaîne de caractères questionAAfficher, et ne
                       renvoie rien.
Plan du cours 5 – Entrées-sorties et fonctions

 • Résumé de l'épisode précédent
 • Les entrées-sorties
 • Les fonctions
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5

   somme

   opposé

   inverse

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles                sortie
   cosinus         cosinus(1.047)=0.5

   somme

   opposé                       cosinus(1.047) ≈ cosinus(π/3) = cosinus(60°)
                                                              = x/y
   inverse                                                    = 0.5/1

   différence                                     y
                                                      60°
   estPositif
                                                      x
   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant

   somme

   opposé

   inverse

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant

   somme           somme(2,3)=5         2 entiers           entier

   opposé

   inverse

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles                sortie
   cosinus         cosinus(1.047)=0.5   flottant                         flottant

   somme           somme(2,3)=5         2 entiers                        entier

   opposé
                                           Les “nombres à virgule” se notent avec un point
   inverse                                 aux Etats-Unis
                       La virgule sépare les paramètres d'une fonction
   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant
                                        2 entiers           entier
   somme           somme(2,3)=5
                                        2 flottants         flottant
   opposé

   inverse

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant
                                        2 entiers           entier
   somme           somme(2,3)=5
                                        2 flottants         flottant
   opposé          opposé(4)=-4         entier              entier
                                        flottant            flottant
   inverse

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant
                                        2 entiers           entier
   somme           somme(2,3)=5
                                        2 flottants         flottant
   opposé          opposé(4)=-4         entier              entier
                                        flottant            flottant
   inverse         inverse(10)=0.1      flottant            flottant

   différence

   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5   flottant            flottant
                                        2 entiers           entier
   somme           somme(2,3)=5
                                        2 flottants         flottant
   opposé          opposé(4)=-4         entier              entier
                                        flottant            flottant
   inverse         inverse(10)=0.1      flottant            flottant
                                        2 entiers           entier
   différence      différence(2,3)=-1
                                        2 flottants         flottant
   estPositif

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction        exemple               entrées possibles   sortie
   cosinus         cosinus(1.047)=0.5    flottant            flottant
                                         2 entiers           entier
   somme           somme(2,3)=5
                                         2 flottants         flottant
   opposé          opposé(4)=-4          entier              entier
                                         flottant            flottant
   inverse         inverse(10)=0.1       flottant            flottant
                                         2 entiers           entier
   différence      différence(2,3)=-1
                                         2 flottants         flottant
   estPositif      estPositif(-5)=FAUX   entier              booléen

   partieEntière

   moyenne

   min
Les fonctions

   La “minute mathématique”
   fonction      exemple               entrées possibles   sortie
   cosinus       cosinus(1.047)=0.5    flottant            flottant
                                       2 entiers           entier
   somme         somme(2,3)=5
                                       2 flottants         flottant
   opposé        opposé(4)=-4          entier              entier
                                       flottant            flottant
   inverse       inverse(10)=0.1       flottant            flottant
                                       2 entiers           entier
   différence    différence(2,3)=-1
                                       2 flottants         flottant
   estPositif    estPositif(-5)=FAUX   entier              booléen

   partieEntière partieEntière(5.6)=5 flottant             entier

   moyenne                   PartieEntière(10)= 10 =10

   min                       PartieEntière(5.6)= 5.2 =5
Les fonctions

   La “minute mathématique”
   fonction      exemple               entrées possibles   sortie
   cosinus       cosinus(1.047)=0.5    flottant            flottant
                                       2 entiers           entier
   somme         somme(2,3)=5
                                       2 flottants         flottant
   opposé        opposé(4)=-4          entier              entier
                                       flottant            flottant
   inverse       inverse(10)=0.1       flottant            flottant
                                       2 entiers           entier
   différence    différence(2,3)=-1
                                       2 flottants         flottant
   estPositif    estPositif(-5)=FAUX   entier              booléen

   partieEntière partieEntière(5.6)=5 flottant             entier

   moyenne       moyenne(2,4,6)=4      3 flottants         flottant

   min
Les fonctions

   La “minute mathématique”
   fonction      exemple               entrées possibles      sortie
   cosinus       cosinus(1.047)=0.5    flottant               flottant
                                       2 entiers              entier
   somme         somme(2,3)=5
                                       2 flottants            flottant
   opposé        opposé(4)=-4          entier                 entier
                                       flottant               flottant
   inverse       inverse(10)=0.1       flottant               flottant
                                       2 entiers              entier
   différence    différence(2,3)=-1
                                       2 flottants            flottant
   estPositif    estPositif(-5)=FAUX   entier                 booléen

   partieEntière partieEntière(5.6)=5 flottant                entier

   moyenne       moyenne(2,4,6)=4      3 flottants            flottant
                                       tableau d'entiers      entier
   min           min({6,2,4,3})=2      tableau de flottants   flottant
Les fonctions

   La “minute mathématique”
   fonction         exemple             entrées possibles   sortie
   somme           somme(2,3)=5         flottant            flottant
                                        entier              entier
   opposé          opposé(4)=-4         flottant            flottant
                                        2 entiers           entier
   différence      différence(2,3)=-1
                                        2 flottants         flottant

                Fonction différence
                Entrées : 2 entiers a et b
                Sortie : entier
                Début
                    Renvoyer ...
                Fin
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   somme           somme(2,3)=5         flottant            flottant
                                        entier              entier
   opposé          opposé(4)=-4         flottant            flottant
                                        2 entiers           entier
   différence      différence(2,3)=-1
                                        2 flottants         flottant

                Fonction différence
                Entrées : 2 entiers a et b
                Sortie : entier
                Début
                    Renvoyer somme(a,opposé(b))
                Fin
Les fonctions

   La “minute mathématique”
   fonction        exemple              entrées possibles   sortie
   somme           somme(2,3)=5         flottant            flottant
                                        entier              entier
   opposé          opposé(4)=-4         flottant            flottant
                                        2 entiers           entier
   différence      différence(2,3)=-1
                                        2 flottants         flottant

                Fonction différence
                Entrées : 2 flottants a et b
                Sortie : flottant
                Début
                    Renvoyer somme(a,opposé(b))
                Fin
Les fonctions

 Les fonctions = les algorithmes

 Un ou plusieurs paramètres en entrée...


 Une sortie...
Les fonctions

 Les fonctions = les algorithmes

 Un ou plusieurs paramètres en entrée...
 ou aucun

 Une sortie...
 ou aucune
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien

 Déclaration des fonctions après la fonction main()
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;                  En ligne de commande :
                              java TP1 toto 1 10.5
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }                         Le tableau arg est alors :
                              {”toto”,”1”,”10.5”}
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;        type de variable renvoyée par la fonction
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;                        entrées de la fonction
       i=5;                            précédées de leur type
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;        type de variable renvoyée par la fonction
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Toujours une fonction main() qui ne renvoie rien
 et qui prend en entrée les paramètres du programme

 Déclaration des fonctions après la fonction main()

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }                            appel de la fonction addition
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;                        pas la même variable i
       return i;                     même si elles ont la
    }                                même valeur !
    public static int addition(int i, int j){
       return i+j;
    }
 }
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }
    public static int addition(int i, int j){
       return i+j;
    }
 }
         définition de la fonction addition
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }                 déclaration de la fonction addition
    public static int addition(int i, int j){
       return i+j;
    }
 }
         définition de la fonction addition
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }
    public static int inc(int i){
       i=i+1;
       return i;
    }                 déclaration de la fonction addition
    public static int addition(int i, int j){
       return i+j; renvoi du résultat en sortie
    }
 }
         définition de la fonction addition
Les fonctions en Java

 Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction
 n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs.

 Variables locales

 public class TP1{
    public static void main(String[] arg){
       int i,j;
       i=5;
       j=34;
       System.out.print("i+1="+inc(i)+",i="+i+",
       j="+j+", somme : "+addition(i,j));
    }                           appel de la fonction addition
    public static int inc(int i){
       i=i+1;
       return i;
    }                 déclaration de la fonction addition
    public static int addition(int i, int j){
       return i+j; renvoi du résultat en sortie
    }
 }
         définition de la fonction addition

Contenu connexe

Tendances

Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage PythonAziz Darouichi
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Aziz Darouichi
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en JavaAziz Darouichi
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Aziz Darouichi
 
Slides octave1
Slides octave1Slides octave1
Slides octave1issaslide
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfacesAziz Darouichi
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaAziz Darouichi
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Emeric Tapachès
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcoursedu
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Aziz Darouichi
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithmebadr zaimi
 

Tendances (20)

Les algorithmes de tri
Les algorithmes de triLes algorithmes de tri
Les algorithmes de tri
 
Algo tri
Algo triAlgo tri
Algo tri
 
Chapitre1: Langage Python
Chapitre1: Langage PythonChapitre1: Langage Python
Chapitre1: Langage Python
 
langage C++
langage C++langage C++
langage C++
 
Chap1V2019: Cours en C++
Chap1V2019: Cours en C++Chap1V2019: Cours en C++
Chap1V2019: Cours en C++
 
Chapitre 2: String en Java
Chapitre 2:  String en JavaChapitre 2:  String en Java
Chapitre 2: String en Java
 
Formation python
Formation pythonFormation python
Formation python
 
Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références Chapitre4: Pointeurs et références
Chapitre4: Pointeurs et références
 
Slides octave1
Slides octave1Slides octave1
Slides octave1
 
Part1
Part1Part1
Part1
 
Tp introduction java
Tp introduction javaTp introduction java
Tp introduction java
 
Chap 6 : classes et interfaces
Chap 6 : classes et interfacesChap 6 : classes et interfaces
Chap 6 : classes et interfaces
 
Chap1: Cours en C++
Chap1: Cours en C++Chap1: Cours en C++
Chap1: Cours en C++
 
Chapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en JavaChapitre 11: Expression Lambda et Référence de méthode en Java
Chapitre 11: Expression Lambda et Référence de méthode en Java
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2Algorithmique_et_programmation_part3_V2
Algorithmique_et_programmation_part3_V2
 
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.comcours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 
Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019Chapitre2fonctionscppv2019
Chapitre2fonctionscppv2019
 
Cours algorithme
Cours algorithmeCours algorithme
Cours algorithme
 

En vedette

INF220 - Algo DUT SRC1 - Cours 1 - 2013
INF220 - Algo DUT SRC1 - Cours 1 - 2013INF220 - Algo DUT SRC1 - Cours 1 - 2013
INF220 - Algo DUT SRC1 - Cours 1 - 2013PGambette
 
Correction de la question 5 de l'exercice 2 du TD3 (M1202)
Correction de la question 5 de l'exercice 2 du TD3 (M1202)Correction de la question 5 de l'exercice 2 du TD3 (M1202)
Correction de la question 5 de l'exercice 2 du TD3 (M1202)PGambette
 
INF120 - Algo DUT SRC1 - Cours 3 (2012)
INF120 - Algo DUT SRC1 - Cours 3 (2012)INF120 - Algo DUT SRC1 - Cours 3 (2012)
INF120 - Algo DUT SRC1 - Cours 3 (2012)PGambette
 
INF120 - Algo DUT SRC1 - Cours 1
INF120 - Algo DUT SRC1 - Cours 1INF120 - Algo DUT SRC1 - Cours 1
INF120 - Algo DUT SRC1 - Cours 1PGambette
 
INF220 - Algo DUT SRC1 - Cours 1
INF220 - Algo DUT SRC1 - Cours 1INF220 - Algo DUT SRC1 - Cours 1
INF220 - Algo DUT SRC1 - Cours 1PGambette
 
M1202 Algorithmique & programmation Java - Cours 1 2013
M1202 Algorithmique & programmation Java - Cours 1 2013M1202 Algorithmique & programmation Java - Cours 1 2013
M1202 Algorithmique & programmation Java - Cours 1 2013PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3PGambette
 
INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)PGambette
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5PGambette
 
INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2PGambette
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1PGambette
 
INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2PGambette
 

En vedette (20)

INF220 - Algo DUT SRC1 - Cours 1 - 2013
INF220 - Algo DUT SRC1 - Cours 1 - 2013INF220 - Algo DUT SRC1 - Cours 1 - 2013
INF220 - Algo DUT SRC1 - Cours 1 - 2013
 
Correction de la question 5 de l'exercice 2 du TD3 (M1202)
Correction de la question 5 de l'exercice 2 du TD3 (M1202)Correction de la question 5 de l'exercice 2 du TD3 (M1202)
Correction de la question 5 de l'exercice 2 du TD3 (M1202)
 
INF120 - Algo DUT SRC1 - Cours 3 (2012)
INF120 - Algo DUT SRC1 - Cours 3 (2012)INF120 - Algo DUT SRC1 - Cours 3 (2012)
INF120 - Algo DUT SRC1 - Cours 3 (2012)
 
INF120 - Algo DUT SRC1 - Cours 1
INF120 - Algo DUT SRC1 - Cours 1INF120 - Algo DUT SRC1 - Cours 1
INF120 - Algo DUT SRC1 - Cours 1
 
INF220 - Algo DUT SRC1 - Cours 1
INF220 - Algo DUT SRC1 - Cours 1INF220 - Algo DUT SRC1 - Cours 1
INF220 - Algo DUT SRC1 - Cours 1
 
M1202 Algorithmique & programmation Java - Cours 1 2013
M1202 Algorithmique & programmation Java - Cours 1 2013M1202 Algorithmique & programmation Java - Cours 1 2013
M1202 Algorithmique & programmation Java - Cours 1 2013
 
INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3INF240 - Bases de données DUT SRC1 - Cours 3
INF240 - Bases de données DUT SRC1 - Cours 3
 
INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)INF120 - Algo DUT SRC1 - Cours 1 (2012)
INF120 - Algo DUT SRC1 - Cours 1 (2012)
 
INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5INF120 - Algo DUT SRC1 - Cours 5
INF120 - Algo DUT SRC1 - Cours 5
 
INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4INF120 - Algo DUT SRC1 - Cours 4
INF120 - Algo DUT SRC1 - Cours 4
 
INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2INF240 - Bases de données DUT SRC1 - Cours 2
INF240 - Bases de données DUT SRC1 - Cours 2
 
INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1INF240 - Bases de données DUT SRC1 - Cours 1
INF240 - Bases de données DUT SRC1 - Cours 1
 
INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2INF220 - Algo DUT SRC1 - Cours 2
INF220 - Algo DUT SRC1 - Cours 2
 
LES JOINTURES
LES JOINTURESLES JOINTURES
LES JOINTURES
 
Tunisia_En
Tunisia_EnTunisia_En
Tunisia_En
 
pjuin2005
pjuin2005pjuin2005
pjuin2005
 
juin2005
juin2005juin2005
juin2005
 
mars2005_SIG
mars2005_SIGmars2005_SIG
mars2005_SIG
 
mars2005_BD
mars2005_BDmars2005_BD
mars2005_BD
 
fev2004rgph2004
fev2004rgph2004fev2004rgph2004
fev2004rgph2004
 

Similaire à INF120 - Algo DUT SRC1 - Cours 4 (2012)

1-Architecure des ordinateurs --2022.pdf
1-Architecure des ordinateurs --2022.pdf1-Architecure des ordinateurs --2022.pdf
1-Architecure des ordinateurs --2022.pdfazatourirabya2017
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotiqueMicrosoft
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODwebmasterref68
 
Bill redirect manual_fr
Bill redirect manual_frBill redirect manual_fr
Bill redirect manual_frtopomax
 
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...FootballLovers9
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)salmazen
 
Exploiter un poste informatique1
Exploiter un poste informatique1Exploiter un poste informatique1
Exploiter un poste informatique1fangaucatic
 
Développement avec Java Micro Edition
Développement avec Java Micro EditionDéveloppement avec Java Micro Edition
Développement avec Java Micro EditionSylvain Wallez
 
Initiation ordinateur
Initiation ordinateurInitiation ordinateur
Initiation ordinateurcamelia55
 
Introduction&composants
Introduction&composantsIntroduction&composants
Introduction&composantsAnissa Teyeb
 
Algorithmique graphique
Algorithmique graphiqueAlgorithmique graphique
Algorithmique graphiqueTheYacine
 
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...Aurélia Rostaing
 
ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2Jérôme Esnault
 
Formation python
Formation pythonFormation python
Formation pythonj_lipaz
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011Jouhadi mehdi
 

Similaire à INF120 - Algo DUT SRC1 - Cours 4 (2012) (20)

1-Architecure des ordinateurs --2022.pdf
1-Architecure des ordinateurs --2022.pdf1-Architecure des ordinateurs --2022.pdf
1-Architecure des ordinateurs --2022.pdf
 
.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique.NET Microframework: du code, de l’électronique, de la robotique
.NET Microframework: du code, de l’électronique, de la robotique
 
Présentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HODPrésentation Arduino par Christian, F5HOD
Présentation Arduino par Christian, F5HOD
 
Bill redirect manual_fr
Bill redirect manual_frBill redirect manual_fr
Bill redirect manual_fr
 
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
manuel-de-cours-culture-et-techniques-avancees-du-numerique-2eme-annee-31-08-...
 
Theme1 (1)
Theme1 (1)Theme1 (1)
Theme1 (1)
 
Exploiter un poste informatique1
Exploiter un poste informatique1Exploiter un poste informatique1
Exploiter un poste informatique1
 
JavaSwing.pdf
JavaSwing.pdfJavaSwing.pdf
JavaSwing.pdf
 
Développement avec Java Micro Edition
Développement avec Java Micro EditionDéveloppement avec Java Micro Edition
Développement avec Java Micro Edition
 
Initiation ordinateur
Initiation ordinateurInitiation ordinateur
Initiation ordinateur
 
Introduction&composants
Introduction&composantsIntroduction&composants
Introduction&composants
 
Algorithmique graphique
Algorithmique graphiqueAlgorithmique graphique
Algorithmique graphique
 
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...
L'intelligence artificielle appliquée aux Archives : LectAuRep (Lecture autom...
 
Chapitre 1
Chapitre 1Chapitre 1
Chapitre 1
 
ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2ADT SOFAVR jesnault 01-10-12 final presentation 2
ADT SOFAVR jesnault 01-10-12 final presentation 2
 
Formation python
Formation pythonFormation python
Formation python
 
Materiel informatique 2011
Materiel informatique 2011Materiel informatique 2011
Materiel informatique 2011
 
Datalogger finale
Datalogger finaleDatalogger finale
Datalogger finale
 
Cours algo1 (1)
Cours algo1 (1)Cours algo1 (1)
Cours algo1 (1)
 
Cours algo1
Cours algo1Cours algo1
Cours algo1
 

Dernier

Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24BenotGeorges3
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfTOP AUTO CIV
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxMartin M Flynn
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxbibliogard
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfGERESO
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Technologia Formation
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptxschneiderbeatrice78
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptxSAIDALI701276
 
Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielM2i Formation
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurNdeyeAminataDond
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?sashaflor182
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016ImnaTech
 
support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...ABDELHADI ENNAIR
 

Dernier (13)

Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
Newsletter SPW Agriculture en province du Luxembourg du 17-05-24
 
Cahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdfCahier-de-Charges-Communication-Digitale-1-1.pdf
Cahier-de-Charges-Communication-Digitale-1-1.pdf
 
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptxSainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
Sainte Jeanne d'Arc, patronne de la France 1412-1431.pptx
 
Bilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptxBilan schéma pour réun concertation SDLP V4.pptx
Bilan schéma pour réun concertation SDLP V4.pptx
 
Résultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdfRésultats enquête RH 2024 Fonction Publique.pdf
Résultats enquête RH 2024 Fonction Publique.pdf
 
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
Présentation Webinaire Cohésion - Concevoir et mettre en place une CMDB, comm...
 
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
1-IMP-Tuto-Recherche simple avancée-V4-20240425-BS.pptx
 
Épreuve de leçon SII.pptx
Épreuve de leçon  SII.pptxÉpreuve de leçon  SII.pptx
Épreuve de leçon SII.pptx
 
Formation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distancielFormation M2i - Prise de parole face caméra : performer en distanciel
Formation M2i - Prise de parole face caméra : performer en distanciel
 
Cours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieurCours mécanique des fluides de l’ingénieur
Cours mécanique des fluides de l’ingénieur
 
Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?Comment enseigner la langue française en Colombie?
Comment enseigner la langue française en Colombie?
 
Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016Guide d'utilisation Microsoft PowerPoint 2016
Guide d'utilisation Microsoft PowerPoint 2016
 
support de formation Consignation et déconsignation des energies et produits...
support de formation  Consignation et déconsignation des energies et produits...support de formation  Consignation et déconsignation des energies et produits...
support de formation Consignation et déconsignation des energies et produits...
 

INF120 - Algo DUT SRC1 - Cours 4 (2012)

  • 1. DUT SRC – IUT de Marne-la-Vallée 28/11/2012 INF120 - Algorithmique Cours 4 Entrées-sorties et fonctions Philippe Gambette
  • 2. A propos du QCM 4 Tableau de tableaux d'entiers tab tab[0][0] tab 1 3 5 7 tab[0] 2 4 6 8 tab[0][1]
  • 3. Sources • Le livre de Java premier langage, d'A. Tasso • Cours INF120 de J.-G. Luque • Cours de J. Henriet : http://julienhenriet.olympe-network.com/Algo.html
  • 4. Plan du cours 4 – Entrées-sorties et fonctions • Résumé de l'épisode précédent • Les entrées-sorties • Les fonctions
  • 5. Plan du cours 4 – Entrées-sorties et fonctions • Résumé de l'épisode précédent • Les entrées-sorties • Les fonctions
  • 6. Résumé de l'épisode précédent Tableaux : - pour stocker un ensemble de valeurs de même type - une valeur par case - nombre de cases fixé à l'initialisation du tableau - boucle pour parcourir le tableau Boucles : - boucle Tant que et boucle Pour tout - attention à l'initialisation et la condition d'arrêt (premier et dernier passage dans la boucle)
  • 7. Plan du cours 5 – Entrées-sorties et fonctions • Résumé de l'épisode précédent • Les entrées-sorties • Les fonctions
  • 8. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur : - périphériques de saisie d'entrées : clavier, souris, joystick, webcam, Wii remote, Kinect... - périphérique d'affichage des sorties : écran, vidéo-projecteur, imprimante... Différent des variables d'entrée / variable de sortie dans la “communication entre algorithmes”.
  • 9. La souris La “minute culturelle” L'invention de la souris 1952 Trackball (boule de commande) Tom Cranston et Fred Longstaff (Marine Royale Canadienne) 1963 Souris mécanique Douglas Engelbart et Bill English (Stanford Research Institute) 1977 Souris optique Jean-Daniel Nicoud et André Guignard (Ecole polytechnique fédérale de Lausanne) Photo : http://en.wikipedia.org/wiki/File:DATAR_trackball.jpg
  • 10. La souris La “minute culturelle” L'invention de la souris 1952 Trackball (boule de commande) Tom Cranston et Fred Longstaff (Marine Royale Canadienne) 1963 Souris mécanique Douglas Engelbart et Bill English (Stanford Research Institute) 1977 Souris optique Jean-Daniel Nicoud et André Guignard (Ecole polytechnique fédérale de Lausanne) Photo : http://cerncourier.com/cws/article/cern/28358/1/cernbooks2_12-00 Plus d'infos sur http://fr.wikipedia.org/wiki/Souris_(informatique)
  • 11. La souris La “minute culturelle” L'invention de la souris 1952 Trackball (boule de commande) Tom Cranston et Fred Longstaff (Marine Royale Canadienne) 1963 Souris mécanique Douglas Engelbart et Bill English (Stanford Research Institute) 1977 Souris optique Jean-Daniel Nicoud et André Guignard (Ecole polytechnique fédérale de Lausanne) Image : Jeremykemp, Pbroks13, http://fr.wikipedia.org/wiki/Fichier:Mouse_mechanism_diagram.svg Photo Stéphane Magnenat (User:Nct) http://en.wikipedia.org/wiki/File:SmakyMouseAG.jpeg
  • 12. Autres périphériques d'entrée La “minute xkcd” http://xkcd.com/243 http://xkcd.free.fr?id=243
  • 13. Autres périphériques d'entrée La “minute culturelle” Données transmises par la WiiRemote : image de profondeurs http://www.youtube.com/watch?v=0awjPUkBXOU
  • 14. Autres périphériques d'entrée La “minute culturelle” Données transmises par la Kinect : image de couleurs + profondeurs http://www.youtube.com/watch?v=v0G0Cb7Zqjk
  • 15. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier Souris à 1 bouton Webcam Kinect Ecran
  • 16. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton Webcam Kinect Ecran
  • 17. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton deux entiers (abscisse et ordonnée) + un booléen (clic ou pas) Webcam Kinect Ecran
  • 18. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton deux entiers (abscisse et ordonnée) + un booléen (clic ou pas) Webcam image, donc tableau de tableaux de couleurs RGB Kinect Ecran
  • 19. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton deux entiers (abscisse et ordonnée) + un booléen (clic ou pas) Webcam image, donc tableau de tableaux de couleurs RGB Kinect image + tableau de tableaux d'entiers (profondeur) Ecran Si ligne de commande :
  • 20. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton deux entiers (abscisse et ordonnée) + un booléen (clic ou pas) Webcam image, donc tableau de tableaux de couleurs RGB Kinect image + tableau de tableaux d'entiers (profondeur) Ecran Si ligne de commande : chaîne de caractères Si interface graphique :
  • 21. Les entrées-sorties Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Souris à 1 bouton deux entiers (abscisse et ordonnée) + un booléen (clic ou pas) Webcam image, donc tableau de tableaux de couleurs RGB Kinect image + tableau de tableaux d'entiers (profondeur) Ecran Si ligne de commande : chaîne de caractères Si interface graphique : image, donc tableau de tableaux de couleurs RGB
  • 22. Les entrées-sorties en pseudo-code Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères chaîne de caractères reponseALaQuestion(questionAAfficher) affiche la question questionAAfficher et renvoie une chaîne de caractères. Ecran Si ligne de commande : chaîne de caractères
  • 23. Les entrées-sorties en pseudo-code Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères chaîne de caractères reponseALaQuestion(questionAAfficher) affiche la question questionAAfficher et renvoie une chaîne de caractères. Exemple : reponseALaQuestion(“Quel est votre nom”) me laisse taper mon nom au clavier et renvoie “Gambette” Ecran Si ligne de commande : chaîne de caractères chaîne de caractères Affiche(chaineAAfficher) affiche la chaîne de caractères chaineAAfficher et ne renvoie rien.
  • 24. Les entrées-sorties en Java Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Scanner lectureClavier = new Scanner(System.in); String stringLu = lectureClavier.next(); LectureClavier.next() renvoie une chaîne de caractères. Ecran Si ligne de commande : chaîne de caractères
  • 25. Les entrées-sorties en Java Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Scanner lectureClavier = new Scanner(System.in); String stringLu = lectureClavier.next(); LectureClavier.next() renvoie une chaîne de caractères. int intLu = lectureClavier.nextInt(); LectureClavier.nextInt() renvoie un entier. Ecran Si ligne de commande : chaîne de caractères
  • 26. Les entrées-sorties en java Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Scanner lectureClavier = new Scanner(System.in); String stringLu = lectureClavier.next(); LectureClavier.next() renvoie une chaîne de caractères. int intLu = lectureClavier.nextInt(); LectureClavier.nextInt() renvoie un entier. Ecran Si ligne de commande : chaîne de caractères String chaineAAfficher=”blabla”; System.out.println(chaineAAfficher); affiche la chaîne de caractères questionAAfficher, puis retourne à la ligne, mais ne renvoie rien.
  • 27. Les entrées-sorties en java Entrées-sorties dans la communication ordinateur – utilisateur Quel type de données utiliser en algorithmique pour coder les entrées- sorties ? Périphérique Type de données transmises Clavier chaîne de caractères Scanner lectureClavier = new Scanner(System.in); String stringLu = lectureClavier.next(); LectureClavier.next() renvoie une chaîne de caractères. int intLu = lectureClavier.nextInt(); LectureClavier.nextInt() renvoie un entier. Ecran Si ligne de commande : chaîne de caractères String chaineAAfficher=”blabla”; System.out.print(chaineAAfficher); affiche la chaîne de caractères questionAAfficher, et ne renvoie rien.
  • 28. Plan du cours 5 – Entrées-sorties et fonctions • Résumé de l'épisode précédent • Les entrées-sorties • Les fonctions
  • 29. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 somme opposé inverse différence estPositif partieEntière moyenne min
  • 30. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 somme opposé cosinus(1.047) ≈ cosinus(π/3) = cosinus(60°) = x/y inverse = 0.5/1 différence y 60° estPositif x partieEntière moyenne min
  • 31. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant somme opposé inverse différence estPositif partieEntière moyenne min
  • 32. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant somme somme(2,3)=5 2 entiers entier opposé inverse différence estPositif partieEntière moyenne min
  • 33. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant somme somme(2,3)=5 2 entiers entier opposé Les “nombres à virgule” se notent avec un point inverse aux Etats-Unis La virgule sépare les paramètres d'une fonction différence estPositif partieEntière moyenne min
  • 34. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé inverse différence estPositif partieEntière moyenne min
  • 35. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse différence estPositif partieEntière moyenne min
  • 36. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant différence estPositif partieEntière moyenne min
  • 37. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant estPositif partieEntière moyenne min
  • 38. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant estPositif estPositif(-5)=FAUX entier booléen partieEntière moyenne min
  • 39. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant estPositif estPositif(-5)=FAUX entier booléen partieEntière partieEntière(5.6)=5 flottant entier moyenne PartieEntière(10)= 10 =10 min PartieEntière(5.6)= 5.2 =5
  • 40. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant estPositif estPositif(-5)=FAUX entier booléen partieEntière partieEntière(5.6)=5 flottant entier moyenne moyenne(2,4,6)=4 3 flottants flottant min
  • 41. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie cosinus cosinus(1.047)=0.5 flottant flottant 2 entiers entier somme somme(2,3)=5 2 flottants flottant opposé opposé(4)=-4 entier entier flottant flottant inverse inverse(10)=0.1 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant estPositif estPositif(-5)=FAUX entier booléen partieEntière partieEntière(5.6)=5 flottant entier moyenne moyenne(2,4,6)=4 3 flottants flottant tableau d'entiers entier min min({6,2,4,3})=2 tableau de flottants flottant
  • 42. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie somme somme(2,3)=5 flottant flottant entier entier opposé opposé(4)=-4 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant Fonction différence Entrées : 2 entiers a et b Sortie : entier Début Renvoyer ... Fin
  • 43. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie somme somme(2,3)=5 flottant flottant entier entier opposé opposé(4)=-4 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant Fonction différence Entrées : 2 entiers a et b Sortie : entier Début Renvoyer somme(a,opposé(b)) Fin
  • 44. Les fonctions La “minute mathématique” fonction exemple entrées possibles sortie somme somme(2,3)=5 flottant flottant entier entier opposé opposé(4)=-4 flottant flottant 2 entiers entier différence différence(2,3)=-1 2 flottants flottant Fonction différence Entrées : 2 flottants a et b Sortie : flottant Début Renvoyer somme(a,opposé(b)) Fin
  • 45. Les fonctions Les fonctions = les algorithmes Un ou plusieurs paramètres en entrée... Une sortie...
  • 46. Les fonctions Les fonctions = les algorithmes Un ou plusieurs paramètres en entrée... ou aucun Une sortie... ou aucune
  • 47. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien Déclaration des fonctions après la fonction main()
  • 48. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } }
  • 49. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; En ligne de commande : java TP1 toto 1 10.5 System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } Le tableau arg est alors : {”toto”,”1”,”10.5”} public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } }
  • 50. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } }
  • 51. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; type de variable renvoyée par la fonction } public static int addition(int i, int j){ return i+j; } }
  • 52. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; entrées de la fonction i=5; précédées de leur type j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; type de variable renvoyée par la fonction } public static int addition(int i, int j){ return i+j; } }
  • 53. Les fonctions en Java Toujours une fonction main() qui ne renvoie rien et qui prend en entrée les paramètres du programme Déclaration des fonctions après la fonction main() public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } appel de la fonction addition public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } }
  • 54. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } }
  • 55. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; pas la même variable i return i; même si elles ont la } même valeur ! public static int addition(int i, int j){ return i+j; } }
  • 56. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } public static int addition(int i, int j){ return i+j; } } définition de la fonction addition
  • 57. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } déclaration de la fonction addition public static int addition(int i, int j){ return i+j; } } définition de la fonction addition
  • 58. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } public static int inc(int i){ i=i+1; return i; } déclaration de la fonction addition public static int addition(int i, int j){ return i+j; renvoi du résultat en sortie } } définition de la fonction addition
  • 59. Les fonctions en Java Visibilité des variables : toute variable déclarée à l'intérieur d'une fonction n'est valable que dans cette fonction et ne peut pas être utilisée ailleurs. Variables locales public class TP1{ public static void main(String[] arg){ int i,j; i=5; j=34; System.out.print("i+1="+inc(i)+",i="+i+", j="+j+", somme : "+addition(i,j)); } appel de la fonction addition public static int inc(int i){ i=i+1; return i; } déclaration de la fonction addition public static int addition(int i, int j){ return i+j; renvoi du résultat en sortie } } définition de la fonction addition