Programme tableau
Résolu/Fermé
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
-
13 mars 2016 à 16:28
el_clapotis Messages postés 11 Date d'inscription lundi 7 décembre 2015 Statut Membre Dernière intervention 26 avril 2016 - 18 mars 2016 à 21:39
el_clapotis Messages postés 11 Date d'inscription lundi 7 décembre 2015 Statut Membre Dernière intervention 26 avril 2016 - 18 mars 2016 à 21:39
A voir également:
- Programme tableau
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Programme demarrage windows 10 - Guide
5 réponses
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 018
13 mars 2016 à 16:34
13 mars 2016 à 16:34
Bonjour,
Je n'ai pas regardé en détail, mais il y a une erreur flagrante, c'est que tes deux boucles imbriquées utilisent la même variable i...
Je n'ai pas regardé en détail, mais il y a une erreur flagrante, c'est que tes deux boucles imbriquées utilisent la même variable i...
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 13/03/2016 à 19:03
Modifié par jisisv le 13/03/2016 à 19:03
Regarde ceci. Il y a plein d'améliorations à faire et de tests à effectuer.
Testé sous p2c (Pascal to C), fpc (FreePascal), BorlandPascal7.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
program redondance; var t:array[1..100] of real; n, cnt, i , j:integer; val :real; begin writeln('donnez la taille du tableau'); readln(n); for i:=1 to n do t[i] := 0 ; cnt := 1; for i:=1 to n do begin write('donnez la valeur (' , i:2 , '/', n:2, ') suivante:'); readln(val); j := 1; while ( ( j < cnt ) and ( t[j] <> val ) ) do begin j := j + 1; end; if (( j = cnt ) or ( cnt =1 )) then begin t[cnt] := val; cnt := cnt + 1 ; end; end; cnt := cnt - 1; for i:= 1 to cnt do writeln(t[i]); end.
Testé sous p2c (Pascal to C), fpc (FreePascal), BorlandPascal7.
Gates gave ^W sold you the windows.
GNU gave us the whole house.(Alexandrin)
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
Modifié par el_clapotis le 13/03/2016 à 19:50
Modifié par el_clapotis le 13/03/2016 à 19:50
merci beaucoup pour l'aide et pour ton temps;
je vais essayez de le comprendre et améliorer
c'est intéressant
je vais essayez de le comprendre et améliorer
c'est intéressant
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
Modifié par el_clapotis le 14/03/2016 à 16:15
Modifié par el_clapotis le 14/03/2016 à 16:15
ça marche c génialll;;; j'ai compris mes fautes
mais c trop sympa merci beaucoup
je souhaite me développer
mais c trop sympa merci beaucoup
je souhaite me développer
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
14 mars 2016 à 19:13
14 mars 2016 à 19:13
Pourquoi t'as rempli le tableau au début par des zéros ?
jisisv
Messages postés
3645
Date d'inscription
dimanche 18 mars 2001
Statut
Modérateur
Dernière intervention
15 janvier 2017
934
Modifié par jisisv le 14/03/2016 à 19:48
Modifié par jisisv le 14/03/2016 à 19:48
Il est vrai que dans la forme actuelle, c'est superflu.
Sans doute la boone habitude d'initialiser toutes les variables.
Par contre , il faudrait trouver une combine pour simplifier la condition
if (( j = cnt ) or ( cnt =1 )) then : supprimer le OU.
Si le compilateur est optimisé, ie code généré n'évaluera cependant le second derme du OU que si le premier terme est false
Sans doute la boone habitude d'initialiser toutes les variables.
Par contre , il faudrait trouver une combine pour simplifier la condition
if (( j = cnt ) or ( cnt =1 )) then : supprimer le OU.
Si le compilateur est optimisé, ie code généré n'évaluera cependant le second derme du OU que si le premier terme est false
Un traitement en temps réel; exclusion des éléments redondants et mise à jour du curseur de remplissage.
Une autre version consiste à saisir les éléments du tableau en vrac et effectuer des collisions sur les éléments redondants par décalage à gauche.
Une autre version consiste à saisir les éléments du tableau en vrac et effectuer des collisions sur les éléments redondants par décalage à gauche.
program Redondance; const Max = 100; type Tableau = array[1 .. Max] of Real; procedure Curseur(var N : Integer); begin Write('Donnez le nombre d''elements a saisir : N <= ', Max, ' : '); Readln(N); end; procedure Alimentation(var T : Tableau; var N : Integer); var I, J, sentinelle : Integer; EnCours : Real; Negatif : Boolean; begin Write('Donnez le premier element du Tableau : '); Readln(T[1]); Sentinelle := 1; Negatif := True; I := 2; while I <= N do begin Write('Donnez l''lement ', I, ' : '); ReadLn(EnCours); for J := 1 to Sentinelle do begin if Encours = T[J] then begin Negatif := False; Break; end; end; if Negatif then begin Sentinelle := sentinelle + 1; T[Sentinelle] := EnCours; end; Negatif := True; I := I + 1; end; N := Sentinelle; end; var T : Tableau; N, I : integer; begin Curseur(N); Writeln; Writeln('Alimenter les ', N, ' elements du tableau'); Writeln; Writeln('Exclusion des elements redondants'); Writeln('et affichage des elements distincts'); Writeln; Alimentation(T, N); Writeln; for I := 1 to N do Write(T[I]:6:2); ReadLn; end.
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
14 mars 2016 à 19:46
14 mars 2016 à 19:46
Je te remercie pour ton grand aide
T'as m'a donné une autre idée très intéressante
:)
T'as m'a donné une autre idée très intéressante
:)
Utilisateur anonyme
Modifié par rossi46du77 le 18/03/2016 à 20:27
Modifié par rossi46du77 le 18/03/2016 à 20:27
Salut,
Suite à ton alerte (la 3e). CCM ne supprime pas les topics à la demande et sans raisons valables (hors charte). Nous supprimons seulement lorsque des infos personnelles sont mentionnées, ce qui n'est pas le cas ici et contrairement à ce que tu dis dans ton alerte.
Le but d'un forum d'entraide (entre autres) c'est que les sujets résolus servent à d'autres avec un problème similaire.
@+
"Pouvoir du prisme lunaire transforme moi"
(Sailormoon - 1992-1997 - RIP).
Suite à ton alerte (la 3e). CCM ne supprime pas les topics à la demande et sans raisons valables (hors charte). Nous supprimons seulement lorsque des infos personnelles sont mentionnées, ce qui n'est pas le cas ici et contrairement à ce que tu dis dans ton alerte.
Le but d'un forum d'entraide (entre autres) c'est que les sujets résolus servent à d'autres avec un problème similaire.
@+
"Pouvoir du prisme lunaire transforme moi"
(Sailormoon - 1992-1997 - RIP).
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
el_clapotis
Messages postés
11
Date d'inscription
lundi 7 décembre 2015
Statut
Membre
Dernière intervention
26 avril 2016
18 mars 2016 à 21:39
18 mars 2016 à 21:39
OK Rossi j'ai tout compris.
et ce message est passé pour moi Metaref pas pour toi c'est moi qui a lancé l'alerte.
--
et ce message est passé pour moi Metaref pas pour toi c'est moi qui a lancé l'alerte.
--
13 mars 2016 à 16:52
13 mars 2016 à 17:11
Modifié par KX le 13/03/2016 à 18:43
13 mars 2016 à 18:33
A quoi sert la variable x?
Ce que tu dois faire dans la 2ème boucle, c'est comparer chaque élément du tableau à v.
Si tu trouve une égalité, tu ne fais rien, sinon tu ajoute v au tableau et incrémente cpt.
Tu dois aussi initialiser cpt à 1 car il y a au moins un élément.
Enfin tu affiche le tableau (for i:=1 to cpt do). A toi de jouer.
13 mars 2016 à 19:46
le x c'est comme une corbeille mais enfin il ne sert à rien
je vais essayez plus ,