Affection chaine de caractere - C - Programmation
Marsh Posté le 16-07-2007 à 11:48:15
merci; cela résoud mon problème mais j'en ai un secon
J'ai une autre structure dans le meme programme :
struct correction
{
float dilatation;
float pression;
}
J'acquière cette structure à partir d'un fichier texte et tout va bien. Mais dans cette structure, je vais devoir récupérer la valeure max et la valeure en ayant pour paramètre de référence un élément de la strucure decrite au paravant.
Donc je voulais faire qq chose du typre : chasse=caps[j]. PRESSIONA, mais la il me dit que chasse n'est pas un élément de capsule, puisque c'est un float defni avant
Donc comment puis je récupérer la valeure numérique de caps[j].pressionA dans une variable float?
Puis comment puis trouver mes deux valeures extremums dans ma structure? Je pensais à copier ma structure dans un tableau, mais je sais pas trop comment faire
Poouvez vous me filer un coup de souris
@micalement
Marsh Posté le 16-07-2007 à 11:49:22
Rien compris. D'après ce que tu marques, le membre de ta structure se nomme pression, pas pressionA ou PRESSIONA ou j'sais pas quoi.
Poste ton code (entre balises [cpp][/cpp] pour que ça puisse être lisible).
Marsh Posté le 16-07-2007 à 12:11:55
Ok, merci de m'aider
J'ai mis mon code et j'en suis là ou j'ai mis PROBLEME. Au debut, j'acquiere les données qui sonrt tout en bas de la fenetre dans ma structurecorrection mais le problème est que pour une correction, j'ai plusieures pressions. Moi je connais la pression, et je veux determlinater la dilatation max pour une pression et la dilatation min
Par exemple,k je lui rentyre 1008.9 pa et je veux avoir dilatation max = 0.0151 et dilalatation min = 0.0153.
0 l'heure actuelle, ces données se trouve,nt dans ma structure correction, mais je ne sais aps comment proceder pour extarire ces deux données.
Precisions, la pression que je lui rentre est PRESSIONA de la structure CAPSULE.
PS : je suis debutant est pas un crack en info
Merci
Code :
|
et voici le fichier que j'acquiere à la base ( pression et dilatation)
1009.1 0.0146
1009.1 0.0147
1009 0.0148
1009 0.0149
1009 0.015
1008.9 0.0151
1008.9 0.0152
1008.9 0.0153
1008.8 0.0154
1008.8 0.0155
1008.7 0.0156
1008.7 0.0157
1008.7 0.0158
1008.6 0.0159
Marsh Posté le 16-07-2007 à 13:48:42
ouah, du C/C++, des gets, du printf du kilo, du franglais, toussa
sinon à part ça c'est quoi le problème ? un erreur de compilation ou de 'code' ?
Marsh Posté le 16-07-2007 à 14:00:54
Il y a tellement d'erreurs dans ce code que je ne sais même pas par où commencer.
Comme je ne me sens pas le courage de commenter tout ça, je vais faire comme Taz, et te demander exactement où se situe l'erreur : problème de compilation, ou de comportement de programme ?
Et dans le second cas, indique exactement ce que tu attends et ce que produit le programme.
Marsh Posté le 16-07-2007 à 14:53:31
mais le code marche, ya pas de soucis ds l'ensemble. Mon problème est ligne 219. Je veux trier ma strucure correction, je voudrais en gros faire de ma strucure correction un tableau a 2 dimensions avec une colonne pression et une colonne dilatation
Marsh Posté le 16-07-2007 à 15:21:31
si c'est bon, je viens de trouver mais j'ai encore un problème
Travaillant avec des flottants, je voudrais tronquer mon nombre, par exemple 3.222222786456 deviendrait 3.2
Merci
Sinon, mon code est pourri?
Marsh Posté le 16-07-2007 à 15:33:07
arrete, il tourne. Je suis pas ingé en info, c'est pas trop mal qd meme je trouve
Marsh Posté le 16-07-2007 à 15:35:02
student a écrit : arrete, il tourne. Je suis pas ingé en info, c'est pas trop mal qd meme je trouve |
Ca dépend si tu t'alignes sur de la merde ou du bon code...
Marsh Posté le 16-07-2007 à 15:35:36
ba tu pose la question. i lte réponds. si tu le trouve bien tant mieux pour toi, mais demande pas l'avis des codeurs alors
Marsh Posté le 16-07-2007 à 15:46:02
vous etes pas sympas mais je prend votre remarque en compte car je veux progreser. Bon donc; si vous pouvez me dire ce qui est choquant que je corrige. Merci
Marsh Posté le 16-07-2007 à 16:44:03
dites, si je veux faire une comparaison entre deux float, je peux faire :
if ( TAB[][]=chasse)
{
}
else
{
};
ou dois je mattre == , le tab contient des float, et chasse est un float
merci
Marsh Posté le 16-07-2007 à 17:09:43
student a écrit : dites, si je veux faire une comparaison entre deux float, je peux faire : |
Tu ne peux pas comparer d'un coup tout ton tableau avec "chasse". Si tu veux savoir si la valeur "chasse" se trouve dans ton tableau, il te faut programmer un algo. Par exemple, cela pourrait être
- j'initialise un flag (une variable) à 0
- je balaye mon tableau "TAB" à l'aide de deux boucles imbriquées "i" et "j"
- if (TAB[i][j] == chasse) flag=1;
- en fin de boucle, if (flag == 1) cela veut dire que ta valeur y est
student a écrit : vous etes pas sympas mais je prend votre remarque en compte car je veux progreser. Bon donc; si vous pouvez me dire ce qui est choquant que je corrige. Merci |
Boaf, c'est l'ensemble tout entier qui est choquant. Ta fonction "main()" déclarée en void alors qu'elle est de type "int", ton gros paté dans le main() sans une seule ligne de commentaire (on n'a vraiment pas envie de lire), tes deux "gets(racine)" en ligne 140 et 141, tes 3 variables date[0], date[1] et date[2] sensées représenter jj/mm/aa (tu pourrais utiliser une structure plus parlante), tes noms de variables en majuscules (réservé aux macros), ta variable "s" (à quoi sert-elle ?), tes variables "intermédiaire" et "intermédiaires", bref c'est un tout...
On sent que t'as programmé ça "à l'arrache". Si t'avais commencé par penser au truc, t'aurais découpé ton pgm en modules (un module pour le menu, un module pour la saisie, etc) avec chaque module bien commenté, des noms de variables parlants style "pressionMin, pressionMax", etc...
Marsh Posté le 16-07-2007 à 17:20:03
oui bien sur, j'ai fais comme ça, voici le morceau
Code :
|
avant, TAB[a][0]=1036 et a=0;le probleme est que je ne sors jms de la boucle, je reste entre des A=0 et B=0. J'y ai passé 2 heures, je suis decu, si qq'un peut m'aider
Marsh Posté le 16-07-2007 à 17:28:44
student a écrit : oui bien sur, j'ai fais comme ça, voici le morceau
|
Je vois pas trop. Tu fais un "printf()" de a et de b au format "%f" ce qui tend à faire penser que "a" et "b" (tous deux indices de tableaux) sont des flottants. Je vois pas non plus où b a été initialisé.
Astuce: Termine TOUS tes "printf()" de débuging par un "\n". Cela t'affichera la chaîne immédiatement. Sinon elle est bufferisée dans le tampon de sortie qui n'est affiché que quand il est plein (ou quand il rencontre, plus tard, un "\n" )
Marsh Posté le 17-07-2007 à 13:42:44
BOn, je récidive. J'ai modifié mon prog, il marche impec.
Now, je veux faire une interface graphique. j'ai entendu aprler de win 32 et vu ca //www.winprog.org/tutorial/start.html
Je code en C sur une machine avec windows XP et j'ai microsoft visual C++ 6 . Bon, la première étape ne me parle pas de trop, et j'arrive meme pas au debur. comment dois je procéder pour trouver ce qui est dit : J'ai fait file - New ety apres je prenais tjs C header file comme je codais dans la fenetre dos
Merci de votre aide
Marsh Posté le 17-07-2007 à 14:33:21
ok, c'est un bon didactel
Maus quand je compile le code d'exemple dans mon source C, j'ai çà :
--------------------Configuration: win - Win32 Debug--------------------
Linking...
LIBCD.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Debug/win.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
win.exe - 2 error(s), 0 warning(s)
9a viens de quoi??
j'ai pris l'exemple du step 2 sur la page
Marsh Posté le 17-07-2007 à 14:36:06
Ça te dit que t'as pas de main().
Comme je n'ai pas lu le site en question, deux possibilités :
Marsh Posté le 17-07-2007 à 14:46:50
bon j'ai reussi a executer et jh'ai vite vu, mais c'esdt trop chaud vraiment. Ayant fait mon pgm ds la fenetre dos, y a t il un moyen de faire une belle interface de manière plus simple?
Marsh Posté le 17-07-2007 à 15:11:35
student a écrit : bon j'ai reussi a executer et jh'ai vite vu, mais c'esdt trop chaud vraiment. Ayant fait mon pgm ds la fenetre dos, y a t il un moyen de faire une belle interface de manière plus simple? |
oui, en laissant tomber Win32, et le C aussi tant que tu y es, et en utilisant un vrai langage avec un vrai toolkit graphique :
-C# et Winforms
-Java & Swing
-Python & PyQt
-...
si tu tiens à faire du C, alors oriente toi plutot vers GTK+ : http://fr.wikipedia.org/wiki/GTK+#Langages
Marsh Posté le 17-07-2007 à 15:33:13
bon, je vais me tourner vers GTK :
je suis le lien sur wikipedia et je vais sur :ftp.gimp.org dans le répertoire /pub/gtk mais apres je sais pas quoi prendre, il y en a plein sous gtk
Marsh Posté le 17-07-2007 à 16:17:42
student a écrit : je suis le lien sur wikipedia et je vais sur :ftp.gimp.org dans le répertoire /pub/gtk mais apres je sais pas quoi prendre, il y en a plein sous gtk |
pfffou... c'est pas gagné.
Kes t'es allé foutre sur ftp.gimp.org ? En suivant le lien donné par Harkonen t'arrives sur une fenêtre. En lisant un peu le contenu de la fenêtre (c'est pas dur, c'est écrit en français mais évidemment faut un peu se donner la peine) tu trouves rapidement (enfin ça dépend pour qui) un lien "download" qui t'amène directement à http://www.gtk.org/download. Là, t'as le choix entre différentes versions avec, à chaque fois
- pour zindoz
- pour Linux
...
Je sens que ce topic va partir en torche...
Marsh Posté le 17-07-2007 à 16:37:55
J'ai trouver ce tutoriel : http://gtk.developpez.com/cours/gt [...] gramme.php
Mais il n'y a aucune archive qui regroupe tous les pgm à installer
Marsh Posté le 17-07-2007 à 16:43:12
Stop.
Arrête-toi. Deux secondes. Souffle, arrête de cliquer partout et de t'éparpiller, tu vas partout mais tu ne te rends nul part.
Il te manque trop de notions, trop de bases, trop de tout.
Harko t'a filé un lien, je parie que tu ne l'as même pas lu. As-tu vu qu'il y a carrément un wikibook sur GTK ?
Marsh Posté le 17-07-2007 à 16:53:20
mais bien sur que je l'ai lu son lien, mais faut avouer que pour télécharger le package, il manque toutjours un truc ou il y a tjs un lien déféctueux
Je suis pas une chèvre non plus, mais bon, l'info c'esdt pas ma passion
Marsh Posté le 17-07-2007 à 17:16:51
Soit c'est pas ton boulot, et effectivement c'est par passion. Visiblement, ce n'est pas le cas.
Soit c'est ton boulot, et là je vois pas ce que tu fous dans cette galère, car manifestement il te manque beaucoup, beaucoup de clés pour parvenir à tes fins.
Je ne dis pas ça pour t'enfoncer, j'ai honnêtement mieux à faire. Mais si tu veux parvenir à tes fins, il faut que tu bouquines et que tu te documentes avant de continuer, sinon tu vas droit dans le mur.
Donc prends ton temps, lis les tutoriaux sur GTK mais aussi (et surtout) sur le C (parce que ton programme est tout sauf stable). Et sache enfin que réaliser une interface graphique est une tâche très consommatrice en temps, à plus fortes raisons lorsque l'on doit découvrir l'API (et le langage).
Marsh Posté le 18-07-2007 à 06:13:17
Oui, et puis surtout faire une interface sur un programme qui marche pas, c'est comme vouloir attaquer la deco de ta maison alors que les fondation s'enfoncent dans le sol.
Rien de mieux q dire que recommence tout et proprement, car meme si apres 200 heures de debug sur ton truc, tu arrives enfin a quelques chose, deja, tu aura mis plus de temps que de tout recommencer, et puis si jamais tu veux ajouter tel bout de code, tu sera aussi obligé de tout recommencer.
Et enfin, pour le l'interface, je te conseille vivement de faire de l'objet, mais la rien d'obligatoire.
Marsh Posté le 16-07-2007 à 10:06:41
Bonjour
J'ai une strucure magasin avec dedans
strucure magasin
{
...
...
char statut [10]
}
Puios je declare dansd mon main
struct magasin caps[5000];
char statua[10]={"bon"};
char statua[10]={"bad"};
et dans une fonction if je veux attrivuer "bon" ou " bad" à caps.[j]statut
( ju étant le paramètre dans une boucle
J'ai fait caps[j].statut=statuta et caps[j].statut=statutb mais ça ne marche pas, je ne sais pas trop comment attribuer le statutr
Merci de m'aider
Je dois rendre une ébazuche pour midi
Coirdialement