Inscription / Connexion Nouveau Sujet
Niveau algorithmique
Partager :

ALGOBOX et Booléens

Posté par
eloye
04-09-20 à 22:55

Bonjour,
Actuellement en formation de web developpeur, nous étudions l'algorithme mais avec  le logiciel ALGOBOX. Probleme, les cours papiers ne sont pas fait au langage algobox.. Etant Novice en algorithme, ce nouveau langage me perturbe surtout avec  algobox qui ne simplifie pas tout ...

Algobox nous restreint sur les chaines de caractères mais aussi sur les booléens.

[b]Enoncé de l'exercice : Recherche de la valeur x dans un tableau T de N éléments[/b]

Voici mon algorithme

FONCTIONS_UTILISEES
  FONCTION TAB ( )
    VARIABLES_FONCTION
      I EST_DU_TYPE NOMBRE
    DEBUT_FONCTION
    AFFICHER "Entrez le nombre de valeurs : "
    LIRE N
    POUR I ALLANT_DE 1 A N
      DEBUT_POUR
      AFFICHER "Entrez le nombre n° "
      AFFICHERCALCUL I
      LIRE T[I]
      FIN_POUR
    FIN_FONCTION
VARIABLES
  TROUVE EST_DU_TYPE NOMBRE
  T EST_DU_TYPE LISTE
  N EST_DU_TYPE NOMBRE
  x EST_DU_TYPE NOMBRE
DEBUT_ALGORITHME
  APPELER_FONCTION TAB()
  LIRE x
  I PREND_LA_VALEUR 0
  POUR I ALLANT_DE 1 A N
    DEBUT_POUR
    TANT_QUE (I<N ET TROUVE==0) FAIRE
      DEBUT_TANT_QUE
      SI (T[I]=x) ALORS
        DEBUT_SI
        TROUVE PREND_LA_VALEUR 1
        FIN_SI
        SINON
          DEBUT_SINON
          I PREND_LA_VALEUR I+1
          FIN_SINON
      FIN_TANT_QUE
       FIN_POUR
    SI (T[I]=x) ALORS
        DEBUT_SI
         AFFICHER* " VRAI ! "
      AFFICHER* " x appartient au tableau "
        FIN_SI
        SINON
          DEBUT_SINON
          AFFICHER* " FAUX ! "
          AFFICHER* " x n'appartient pas au tableau"
          FIN_SINON

FIN_ALGORITHME


Voici mon problème , la chaine suivante me rapporte toujours "VRAI" quelque soit le nombre X saisi

J'ai besoin de cet algorithme que je mettrais en fonction par la suite pour un autre exercice

Merci à vous

Posté par
eloye
re : ALGOBOX et Booléens 04-09-20 à 23:00

L'exercice en question sera le suivant (qui est à l'origine un exercice à faire sur PYTHON)

Recherche des K plus petits éléments
On considère T un tableau non trié de N entiers.

1. Écrivez un algorithme qui calcule les K plus petits éléments en procédant par recherches successives.

2. Écrivez un algorithme qui calcule les K plus petits éléments en triant le tableau au préalable (la fonction de tri par ordre croissant est donnée TRI(T); son coût est : nlog(N))

3. Comparez le temps mis par chacun des algorithmes pour K= 1..N.

Posté par
weierstrass
re : ALGOBOX et Booléens 04-09-20 à 23:49

Je ne connais pas  vraiment algobox, mais l'erreur viens sans doute du fait que la variable TROUVE n'est pas initialisée.

En arrivant à la ligne TROUVE==0, il va comparer <non initialisé> == 0, ce qui est faux (sauf si ALGOBOX initialise par défaut à 0, je ne connais pas)
Il faut donc mettre TROUVE PREND_LA_VALEUR 0 juste avant le TANT_QUE

ALGOBOX ait un débugger complet mais pour trouver des erreurs, tu peux  :
- Afficher des messages. Par exemple, tu peux mettre le message AFFICHER* "J'entre dans le TANT QUE" juste après le tant que. Ca te permettra de voir si ça coince au début du TANT QUE, ou si l'erreur est après...
- Utiliser le mode pas à pas, et voir exactement ce que fait l'algorithme.

Posté par
eloye
re : ALGOBOX et Booléens 05-09-20 à 08:17

Merci pour votre réponse.

Oui au début j'avais également initialisé TROUVE prend_la_valeur 0 mais le problème est toujours là
C est ce que je fais de temps en temps pour vraiment analyser d où vient le problème , j affiche des messages mais comme algobox et les tant que ne sont pas très compatibles, il me notifie que la boucle est sans fin ...

Posté par
weierstrass
re : ALGOBOX et Booléens 05-09-20 à 09:48

Je n'arrive pas à télécharger Algobox, mais je crois que l'erreur est ici :
T[I]=x
=>
T[I]==x

Posté par
flight
re : ALGOBOX et Booléens 05-09-20 à 10:21

salut

si je comprend bien cet exercice ,celaconsiste à trouver une valeur saisie dans un tableau de n elements  , le meilleur langage pour ca est excel vba ca la minpulation des chaines de caractères est plus aisée

Citation :
Sub chercher_valeur()
Dim t() As Variant  'tableau dynamique qui sera remplit au fur et à mesure
taille = InputBox("saisir la taille du tableau")
Do
k = k + 1
ReDim Preserve t(0 To n)
t(n) = InputBox("saisir la :" & n + 1 & "  ieme chaine ")
n = n + 1
Loop Until k = Val(taille)

recherche = InputBox("saisir la chaine à rechercher dans le tableau crée :") '
For i = 0 To UBound(t)
  If t(i) = recherche Then
    p = p + 1
  End If
Next
If p > 0 Then
MsgBox " chaine présente dans le tableau"
Else
MsgBox " chaine non présente dans le tableau"
End If

End Sub

Posté par
eloye
re : ALGOBOX et Booléens 06-09-20 à 02:12

Certes mais l exercice doit être effectué avec Algobox....



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !