> Tous les forumsAutres langages

 probléme language c
Statut du sujet : NON RESOLU Imprimer
 BxG
  Posté le 27/10/2005 @ 15:30  
 Astucien

1335 Messages
Bonjour a tous, j'essais de me lancer dans kle language c mais j'ai déja un petit probléme: j'ai déja une erreur de syntaxe mais n'arive pas a la trouver, j'utilise turbo c++. /*Mon premier programme C*/ #include <stdio.h> main () int a, int i { i= 50 a= 50 int somme; result= i + a; return somme; printf ("bonjour \n"); printf ("julien"); return 0; } merci d'avance
 Afficher le profil de BxGEnvoyer un message privé à BxG
 
 
Publicité
 don diego  Posté le 27/10/2005 à 16:08  
Petit astucien

323 Messages
/* Tu as oblié le point virgule int a,i; /* Ensuite, pour afficher un entier fais ceci : printf("somme : %d",somme);
Afficher le profil de don diegoEnvoyer un message privé à don diego
 Revenir en haut de la page
 BxG  Posté le 27/10/2005 à 17:05  
Astucien

1335 Messages
ok merci sa marche, mais j'ai une autre question, comment faire un lien, proposer un choix a l'utilisateur et l'envoyer ou l'on veut?
Afficher le profil de BxGEnvoyer un message privé à BxG
  Revenir en haut de la page
 don diego  Posté le 27/10/2005 à 19:26  
Petit astucien

323 Messages
Qu'est-ce que t'appelle faire u lien? Pour proposer un choix à l'utilisateur, fais ceci : int nombre; scanf("Votre nombre : %d",&nombre);
Afficher le profil de don diegoEnvoyer un message privé à don diego
 Revenir en haut de la page
 letellier_40  Posté le 20/11/2005 à 02:50  
Petit astucien

9 Messages
Bonjor a tous J'ai un souci en programmation de language c.Mon prof nous a donner un exo et je n'arrive pas a le faire ca fait deja 5 jours que cherche mais rien.L'enonce est le suivant: "Soit n un nombre entier positif inferieur ou egal a 1000. Trouver tous les ensemble d'entiers strictement positif, tous different,dont la somme est n. Par exemple pour 8 on trouve {1.2.5},{1.3.4},{1.7},{2.6},{3.5},{8}.On rangera les entiers d'un ensemble, en suivant l'ordre croissant, dans un tableau d'au plus 50 nombres" Je vous remerci de votre aide.
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 letellier_40  Posté le 20/11/2005 à 02:52  
Petit astucien

9 Messages
Il dévore toutes choses, Oiseaux, bêtes, arbres, fleurs. Il ronge le fer, mord l'acier, Réduit les dures pierres en poudre, Met à mort les rois, détruit les villes, Et aplatit les plus hautes montagnes. Qu'est-ce que c'est ? Je pense que c le temps!!![confus]
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 breizhbugs  Posté le 20/11/2005 à 15:00  
Astucien

3001 Messages
Salut, voici un tout petit point de depart, je dois avouer que j'ai du mal aussi... const int STOP_TRUE = 0; const int STOP_FALSE = 1; int func(int n, int depart) { int tmp = n-depart; if (tmp == 0) { printf("%d ", depart); return STOP_TRUE; } else if (tmp > depart) { printf("%d ", depart); depart = depart+1; while (func(tmp, depart)==STOP_FALSE) depart=depart+1; } else return STOP_FALSE; return STOP_TRUE; } int _tmain(int argc, _TCHAR* argv[]) { int n; printf("nombre:"); scanf("%d", &n); if (func(n, 1) == STOP_TRUE) printf(" trouve\n"); else printf(" PAS trouve\n"); return 0; }
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 koala01  Posté le 23/11/2005 à 04:00  
Astucien

4715 Messages
Salut, Concernant le code de BxG, l'erreur vient, selon moi, de la position de la déclaration des variables a et i… En effet, ou bien, tu les déclares en tant que variables globales (avant la première fonction que tu crées, et juste après les inclusions de fichiers) ou bien tu les déclares en locales, c'est à dire dans le bloc d'une fonction (et donc plus précisément après la première ouverture de crochets), mais ne tout cas pas entre le nom d'une fonction et l'ouverture du bloc d'instruction qu'elle contient[clindoeil] La deuxieme erreur du premier code est la déclaration même de main()… En C, il est impératif de fournir un type de renvoi ET un type d'argument (donc un type AVANT le nom, et au minimum un type entre les parenthèses), même si le type est "void" (vide)… Les solutions sont donc du genre
pour une fonction qui ne renvoie rien et qui ne prend pas d'arguments void main(void) { } une fonction qui rnvoie un entier mais qui ne prend pas d'argument int main(void) { } une fonction qui prend n argument mais qui ne renvoi rien void main (type1 nom1, type2 nom2, ..., typen nomn) { } une fonction qui prend n arguments et qui renvoi un entier int main (type1 nom1, type2 nom2, ..., typen nomn) { }
Il faut savoir que, théoriquement la fonction principale (main) ne devrait pas renvoyer d'autre valeur qu'un entier… pour les autres fonctions, évidemment, le type peut s'adapter en fonction du renvoi prévu… Evidemment, si le type est "void" (vide), il ne faut pas mettre d'instruction return dedans, car le compilateur ne comprendrait pas que tu essaye de renvoyer une valeur alors que ce n'est pas prévu… Concernant maintenant le code de breizhbugs… Pourrais tu déjà nous indiquer le but recherché[question] En attendant, je peux déjà relever quelques erreurs: D'abord, tu n'a pas inclus de fichier… Le C++ est comme le C, c'est un langage certes puissant par ses fichiers d'entetes, mais tout à fait impuissant s'il n'y en a aucun d'inclus… Ensuite, le fait d'utiliser des valeurs de type _TCHAR (et une fonction _TMAIN)n'est peut etre pas ce qui se fait de mieux, car _TCHAR n'est pas à proprement parler un type d'origine (et que ca nécessite donc au minimum l'inclusion de l'entete dans laquelle on le trouve) On peut aussi estimer qu'il est généralement préférable de définir les fonctions avant la fonction principale, mais de ne les implétmenter qu'après … De plus, bien qu'il soit autorisé de ne pas utiliser les crochets quand un bloc d'instructions est composé d'une seule instruction, il apparait bien plus lisible en pratique de garder l'habitude de mettre les blocs d'instructions entre crochets, meme si il n'en contient qu'une . L'indentation correcte du code permet en outre de s'y retrouver bien plus facilement…(le BBCode [ code ] permet actuellement de présenter le code indenté[clindoeil]) On pourrait encore préciser qu'idéalement il ne devrait y avoir qu'un seul renvoi de valeur (instruction return) par fonction… De même, je ne suis pas particulièrement convaincu de la nécessité (ni meme de l'utilité) de la déclartation des deux constantes (si encore il s'agissait de valeurs plus complexes que simplement 1 ou 0… d'autant plus que le C++ dispose du type booleen)… Enfin, je ne suis pas persuadé du tout que la récursivité que tu essaies de mettre en oeuvre (et surtout de la manière dont tu essaie de l'implémenter) Ce dernier point nécessite peut etre une petite explication: Une fonction récursive n'est souvent qu'une manière académique détournée pour implémenter d'une boucle, qui, dans bien des cas (car des exceptions existent) peut être évitée. Une boucle dans la fonction récursive peut s'avérer utile, mais en tout cas il est exceptionnel que la récursivité fasse partie du test qui détermine si la boucle doit être réeffectuée ou non.
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 breizhbugs  Posté le 23/11/2005 à 12:02  
Astucien

3001 Messages
Salut koala, le fichier entete manquant est stdio.h et peut etre windows.h Le but etait d'aider "letellier_40" mais d'une part etant depressif et sous traitement je n'ai pas la concentration necessaire pour resoudre le probleme dans son ensemble et d'autre part ne voyant pas de reponse de sa part et apres quelque recherches j'ai vu que la solution a ete posté ailleurs sur un autre forum ( http://groups.google.fr/group/fr.comp.algorithmes/browse_thread/thread/5b4265f27aee2157/cb10a80edc28f6d8#cb10a80edc28f6d8 ). Enfin en ce qui concerne le _tmain, tu sais bien que les produits microsoft (Visual Studio C++ .net en l'occurence) en font toujours un peu trop...
Afficher le profil de breizhbugs Voir la configuration de breizhbugsEnvoyer un message privé à breizhbugs
 Revenir en haut de la page
 letellier_40  Posté le 23/11/2005 à 15:23  
Petit astucien

9 Messages
Bonjour tous le monde je tenais a vous remercier car vu l'algoritme que ca donne je n'ourai sans doute jamais trouver. MERCI a tous
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 letellier_40  Posté le 30/11/2005 à 13:52  
Petit astucien

9 Messages
Bonjour a tous Merci pour otre aide j'ai encore un souci en c[boom] j'ai un tableau de 25 valeur au maximum j'entre des valeurs et la je dois retrouver la plus grande suite croissante et afficher le rang de la premiere valeur de cette suite[confus]. Merci d'avance
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 letellier_40  Posté le 30/11/2005 à 13:53  
Petit astucien

9 Messages
Je tiens aussi a signaler que j'utilise DEV C++
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 koala01  Posté le 30/11/2005 à 15:12  
Astucien

4715 Messages
[nonnon]Il faudrait quand même veiller à ne pas espérer qu'on fasse tout le travail pour toi [clindoeil]… Surtout si c'est dans le cadre d'un exercice de cours (comment veux tu apprendre comme cela [question]) Allez, comme ma mansuétude est très large, et bien que je ne sois pas sur que ce soit un bon service à te rendre, je te fournis un nassichneiderman qui reprend un des algorithmes possibles pour ce travail sous forme de procédure (je ne dis pas qu'il ne doit pas être adapté), qu'il ne te restera plus qu'à transformer en C++… [img]http://koala01.free.fr/images/cherchesuite.PNG[/img] Pour ne pas *trop* te macher la tache, je te le fournis "en vrac", sans explications, et sans liste des variables utilisées [clindoeil]
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 letellier_40  Posté le 30/11/2005 à 17:18  
Petit astucien

9 Messages
je te remerci encore mais je comprend mieux sur des exemples concret plutot que sur de le teorie avec 50 ligne qui ne veulent rien dire. Merci encore. [approuve]
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 letellier_40  Posté le 30/11/2005 à 17:21  
Petit astucien

9 Messages
Je voudrai aussi savoir la reponse a l'enigme de don diego car j'ai proposer comme reponse le temps mais personne ma dis si c'etait ca ou pas?[confus]
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 letellier_40  Posté le 01/12/2005 à 14:24  
Petit astucien

9 Messages
Bonjour a tous Quel sont les arguments de <conio.h>? Merci pour votre reponse.
Afficher le profil de letellier_40Envoyer un message privé à letellier_40
 Revenir en haut de la page
 koala01  Posté le 01/12/2005 à 14:56  
Astucien

4715 Messages
Il n'y a pas d'arguments… C'est un fichier d'entete: c'est à dire qu'il doit etre inclus par une instruction de "précompilateur" sous la forme de [code]#include <conio.h>[/code]
Afficher le profil de koala01 Voir la configuration de koala01Envoyer un message privé à koala01
  Revenir en haut de la page
 toutit28  Posté le 14/12/2005 à 20:03  
Petit astucien

2 Messages
Bonjour, j'ai aussi un problème, J'ai fait un programme pour une puce PIC16F84A. Mon programme est une timer qui monte jusqu'a 999 et recommence... je voudrais le faire monter a 15 et ensuite, le faie redescendre, mais je ne sais plus quoi faire. ensuite, j,aimerais qu'il m'affiche FPA... entk, si vous pouviez au moins m'aider pour le décompte... Merci! Voici mon programme, selon moi, il faut modifier le if, mais je ne suis pas certain comment faire. Merci d'avance #include <pic1684.h> void interrupt inter (void); unsigned char time; int compteur=0; void lumiere (int numero); void main(void){ TRISA=0; TRISB=0; T0CS=0; PS0=0; PS1=0; PS2=1; PSA=0; GIE=1; TMR0=0; T0IE=1; do{ time=0; while(time<=61){ lumiere(compteur); } compteur=compteur+1; if(compteur>=999){ compteur=0; } } while(1); } void interrupt inter(void){ time=time+1; T0IF=0; } void lumiere(int numero) { unsigned int delai; int x,y,z; x=numero; y=numero; z=numero; PORTA=x/100; RB5=0; RB6=1; RB7=1; for(delai=1;delai<=1500;delai++); y=y%100; PORTA=y/10; RB5=1; RB6=0; RB7=1; for(delai=1;delai<=1500;delai++); PORTA=z%10; RB5=1; RB6=1; RB7=0; for(delai=1;delai<=1500;delai++); }
Afficher le profil de toutit28Envoyer un message privé à toutit28
 Revenir en haut de la page
 toutit28  Posté le 15/12/2005 à 01:27  
Petit astucien

2 Messages
quelqu'un? s'il vous-plait? =(
Afficher le profil de toutit28Envoyer un message privé à toutit28
 Revenir en haut de la page
Haut de la page 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsAutres langages

 
Forum PC Astuces© 1997-2008 WebastucesAller en haut de la page