Problème avec des conditions dans if
Résolu
glennog
Messages postés
293
Date d'inscription
Statut
Membre
Dernière intervention
-
glennog Messages postés 293 Date d'inscription Statut Membre Dernière intervention -
glennog Messages postés 293 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je veux poser la condition suivante dans mon application, ( pour savoir si les différents d'un tableau sont consecutifs ou non ) ,
j'ai fais :
j'ai aussi essayé avec les codes suivants :
et enfin , j'aimerais savoir , comment placer les begin et les end , lorsque je veux faire les
je veux poser la condition suivante dans mon application, ( pour savoir si les différents d'un tableau sont consecutifs ou non ) ,
j'ai fais :
if tabeau[i+1] <> tableau[i] +1 then ,
j'ai aussi essayé avec les codes suivants :
if ( tableau[i+1] ) <> ( tableau[i] +1 )mais , sa me donne toujours pas le resultat souhaité , pourriez vous m'indiquer , comment est ce que je dois m'y prendre pour que l'application puisse comparer tableau[i] et tableau[i+1] ???
et enfin , j'aimerais savoir , comment placer les begin et les end , lorsque je veux faire les
if condidion else ?
A voir également:
- Problème avec des conditions dans if
- Mise en forme conditionnelle excel plusieurs conditions - Guide
- Excel champ calculé avec condition - Forum Excel
- Mise en forme conditionnelle avec 2 conditions ✓ - Forum Bureautique
- Je ne suis pas un robot confidentialité - conditions ✓ - Forum Windows 8 / 8.1
- Libreoffice calc si plusieurs conditions ✓ - Forum LibreOffice / OpenOffice
4 réponses
non , je ne verifie pas si les cases du tableau ont les mêmes valeurs ( selon ton code ) , mais plutot , si la valeur de la case suivante , est égale à la valeur du tableau de la case précédente + 1 ( c'est différent avec le code que tu m'a donné )
Dans ce cas les deux codes que tu as donné sont corrects. À part peut-être que tu devrais regarder avec = plutôt que <> (c'est le contraire)
if tableau[i+1] = tableau[i]+1 then ...
alors , il y 'a une erreur dans mon code , mais je ne la vois pas , je mets l'énoncé et ce que j'ai saisis , pourrais tu m'aider à trouver l'erreur , je ne sais pas mais apparemment une erreur s'est glissée :
Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au fur et à
mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments du tableau sont tous
consécutifs ou non.
Par exemple, si le tableau est :
12 13 14 15 16 17 18
ses éléments sont tous consécutifs. En revanche, si le tableau est :
9 10 11 15 16 17 18
ses éléments ne sont pas tous consécutifs.
maintenant voici mon code :
mais à chaque fois que je mets les elements élements de mon tableu, il ressort toujours que les elements de mon tableau ne sont pas consecutifs , ( en ( d'autres mots , mon booleen resultat ) vaut toujours false , pourriez vous m'indiquer ou se trouve l'erreur et m'aider à optimiser le resultat ???
merci
Ecrivez un algorithme qui permette de saisir un nombre quelconque de valeurs, et qui les range au fur et à
mesure dans un tableau. Le programme, une fois la saisie terminée, doit dire si les éléments du tableau sont tous
consécutifs ou non.
Par exemple, si le tableau est :
12 13 14 15 16 17 18
ses éléments sont tous consécutifs. En revanche, si le tableau est :
9 10 11 15 16 17 18
ses éléments ne sont pas tous consécutifs.
maintenant voici mon code :
program notes ; uses crt; type table= array[1..100] of integer; var tableau : table ; i , n : integer; controle , resultat : boolean; PROCEDURE demandernombre( var tableau3 : table); begin writeln(' Veuillez saisir le nombre de nombres'); readln(n); writeln; (* saisie des nombres dans le tableau *) for i:= 1 to n do begin writeln('Veuillez saisir le nombre ', i); readln(tableau3[i]); end; end; FUNCTION verifiertableau ( tableau1 : table ; n1 : integer ; var controle : boolean) : boolean; begin controle := true; (* maintenant , je verifie les différents élements du tableau *) writeln ( tableau1[i] , ' ' ); if tableau[i] <> tableau[i] +1 then begin controle := false; end; (* j'assigne la valeu à retourner *) verifiertableau := controle; end; begin clrscr; demandernombre(tableau); resultat := verifiertableau(tableau,n,controle); if resultat = true then begin writeln(' les elements du tableau sont consecutifs'); else begin wr iteln(' les elements du tableau ne sont pas consecutifs '); end; readln; end.
mais à chaque fois que je mets les elements élements de mon tableu, il ressort toujours que les elements de mon tableau ne sont pas consecutifs , ( en ( d'autres mots , mon booleen resultat ) vaut toujours false , pourriez vous m'indiquer ou se trouve l'erreur et m'aider à optimiser le resultat ???
merci
Avant même les erreurs de logique il faudrait corriger les erreurs de compilation.
Dans les 10 dernières lignes, il te manque un "end" avant le else, et tu as écris "wr iteln", c'est le genre d'erreurs qui ne pardonnent pas !
Au niveau de la logique tu as écris if tableau[i] <> tableau[i] +1, c'est forcément faux car un entier n'est jamais égal à lui même +1. L'idéal ce serait que tu fasses ce que tu dis !
Mais après tu as une autre erreur, bien plus grave, c'est que ton "tableau" est une variable globale, ça n'a rien à voir avec le paramètre "tableau1" de ta fonction !
Il faut autant que possible enlever les variables globales qui conduisent systématiquement les débutants à faire des erreurs inextricables. Par exemple dans ton cas avec des i et des n qui ne sont jamais initialisés et qui font donc n'importe quoi !
Dans les 10 dernières lignes, il te manque un "end" avant le else, et tu as écris "wr iteln", c'est le genre d'erreurs qui ne pardonnent pas !
Au niveau de la logique tu as écris if tableau[i] <> tableau[i] +1, c'est forcément faux car un entier n'est jamais égal à lui même +1. L'idéal ce serait que tu fasses ce que tu dis !
Mais après tu as une autre erreur, bien plus grave, c'est que ton "tableau" est une variable globale, ça n'a rien à voir avec le paramètre "tableau1" de ta fonction !
Il faut autant que possible enlever les variables globales qui conduisent systématiquement les débutants à faire des erreurs inextricables. Par exemple dans ton cas avec des i et des n qui ne sont jamais initialisés et qui font donc n'importe quoi !
oups , une erreur s'est glissée quand je recopiais le code ( manuellement ) car ne pouvant pas le copier directement à partir de L'IDE , j'avais plutot mis ,
tu dois avoir raison , sans doute que c'est le end , que j'avais oublié de mettre, quant au ' writeln ' je ne m'étais pas trompé à ce niveau dans l'IDE , c'est juste en recopiant le code manuellement , que je me suis trompé
merci de tes commentaires .
if tableau[i] <> tableau[i+1] +1 then
tu dois avoir raison , sans doute que c'est le end , que j'avais oublié de mettre, quant au ' writeln ' je ne m'étais pas trompé à ce niveau dans l'IDE , c'est juste en recopiant le code manuellement , que je me suis trompé
merci de tes commentaires .