Basculer le menu
Changer de menu des préférences
Basculer le menu personnel
Non connecté(e)
Votre adresse IP sera visible au public si vous faites des modifications.

« Php algo td5 » : différence entre les versions

De The Linux Craftsman
Page créée avec « = Introduction = On cherche à trouver tous les nombres premiers inférieurs à un entier n fixé. L’algorithme du crible d’Ératosthène consiste à barrer, dans la l... »
 
Ligne 36 : Ligne 36 :
= Partie A =
= Partie A =
== Exercice 1 ==
== Exercice 1 ==
Écrire une fonction ''init_tab(n)'' dont le paramètre est un entier ''n''. Cette fonction renvoie une liste ''T'' de taille ''n'' représentant les booléens « false », « false » puis « true ».
<u>Exemple :</u>
''init_tab(15)'' =
<div class="toccolours mw-collapsible mw-collapsed" style="width:700px">
<big>Exercice 1</big>
<source lang="text" style="border:1px solid black;font-size:130%" class="mw-collapsible-content">
FONCTION code_mot_chiffre(mot)
VAR
  resultat : liste d'entiers
  trouve: booléen
  i, j : entier
  j <- 0
  POUR TOUT j DE mot FAIRE
      i <- 0
      trouve <- faux
      TANT QUE !trouve
        SI alphabet[i] = mot[j]
            resultat[j] <- alphabet[mot[j]]
            trouve <- vrai
        FIN SI
        i++
      FIN TANT QUE
  FIN POUR
  RETOURNER resultat
FIN FONCTION
</source>
</div>
== Exercice 2 ==
== Exercice 2 ==
== Exercice 3 ==
== Exercice 3 ==

Version du 19 avril 2014 à 10:54

Introduction

On cherche à trouver tous les nombres premiers inférieurs à un entier n fixé. L’algorithme du crible d’Ératosthène consiste à barrer, dans la liste de 0 à n, tous les nombres qui ne sont pas premiers. Si l’on cherche tous les nombres premiers inférieurs à 15, l’algorithme procède de la manière suivante :

1. On barre les entiers 0 et 1 qui ne sont pas premiers ;

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

2. Puis on barre tous les multiples stricts de 2, (2 non compris) ;

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

3. Puis on barre tous les multiples stricts de 3 ;

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

4. Etc...

La méthode choisie ici consistera à mettre « false » pour une case barrée et « true » sinon. On utilise un tableau de booléens que l’on initialise ainsi : 1. On barre les entiers 0 et 1 qui ne sont pas premiers ;

false false true true true true true true true true true true true true true true

TAB[0]=false et TAB[1]=false car 0 et 1 ne sont pas premier, et on suppose au début que tous les autres nombres de 2 à 20 sont premiers. A la fin de l’algorithme, seuls les éléments d’indice premiers sont à « true », tous les autres sont passés à « false » (ce qui revient à les barrer).

Partie A

Exercice 1

Écrire une fonction init_tab(n) dont le paramètre est un entier n. Cette fonction renvoie une liste T de taille n représentant les booléens « false », « false » puis « true ».

Exemple :

init_tab(15) =

Exercice 1

FONCTION code_mot_chiffre(mot)
VAR
   resultat : liste d'entiers
   trouve: booléen
   i, j : entier
   j <- 0

   POUR TOUT j DE mot FAIRE
      i <- 0
      trouve <- faux
      TANT QUE !trouve
         SI alphabet[i] = mot[j]
            resultat[j] <- alphabet[mot[j]]
            trouve <- vrai
         FIN SI
         i++
      FIN TANT QUE
   FIN POUR

   RETOURNER resultat
FIN FONCTION

Exercice 2

Exercice 3

Partie B

Exercice 1

Exercice 2

Exercice 3