Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1344 connectés 

  FORUM HardWare.fr
  Programmation
  C

  probleme de débutant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme de débutant

n°1371005
woard
la tête lunaire
Posté le 20-05-2006 à 11:15:17  profilanswer
 

je suis vraiment débutant en langage C ; c'est mon premier langage informatique et je voudrai savoir pourquoi mon  programme ne reste pas quand je le compile pourtant je met systeme pause  j'utile comme IDE dev c++  
voici mon programme  
 
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
long suite( long a ,long b ,long nombreEntre )
{
     return a / b = nombreEntre
}
int main ( int argc, char** argv )
{
    long n, nombreEntre = 0;
   
 
       do {
       
        printf("que vaut Un+1 " );
        scanf("%ld", &a);
 
        printf("que vaut Un" );    
        scanf("ld", &b
         
        if ( nombreEntre> 1)
            printf("suite décroissante\n\n" );
        else if (nombreEntre < 1)
            printf("la suite est décroissante\n\n" );
}  
 
    system("PAUSE" );
}
 
 
merci de bien vouloir me répondre et peut etre me dire mes erreur si il y en a :jap:

mood
Publicité
Posté le 20-05-2006 à 11:15:17  profilanswer
 

n°1371009
Ace17
Posté le 20-05-2006 à 11:29:33  profilanswer
 

Deja poste le code dans des balises code stp, et rajoute les morceaux qui manquent, car ce que tu as poste ne compilera pas

n°1371013
_darkalt3_
Proctopathe
Posté le 20-05-2006 à 11:45:06  profilanswer
 

- system pas super, utilise un scanf pour appui sur une touche entrée par exemple.
- utilise code::blocks qui est plus récent et mis à jour.


Message édité par _darkalt3_ le 23-05-2006 à 10:46:49
n°1371015
MS-DOS_199​1
www.newbie-project.net
Posté le 20-05-2006 à 11:49:54  profilanswer
 

C'est moi ou il te manque la fin de tes lignes o_0 ?
 

Citation :

system super

euh... l'inverse plutôt :-/


---------------
Viendez sur le Newbie-Project et essayez le Newbie-Directory (nouveau)
n°1371023
Emmanuel D​elahaye
C is a sharp tool
Posté le 20-05-2006 à 12:13:53  profilanswer
 

woard a écrit :

je suis vraiment débutant en langage C ; c'est mon premier langage informatique
<...>
merci de bien vouloir me répondre et peut etre me dire mes erreur si il y en a :jap:


Il y a plein d'erreurs. Je te conseille de suivre une formation en C sérieuse, parce que visiblement, tu codes au hasard sans maitriser les bases. D'autre part, le C comme premier langage, faut oser...
 
http://mapage.noos.fr/emdel/images/c_warn.png
 
Des références sur mon site.
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1371031
Sve@r
Posté le 20-05-2006 à 12:33:42  profilanswer
 

woard a écrit :

merci de bien vouloir me répondre et peut etre me dire mes erreur si il y en a :jap:


Il me semble en distinguer ptet une ou deux (mais rien de bien certain) [:ddr555]
 
Bon, on y va
 

woard a écrit :

#include <time.h>


A quoi va te servir cet include vu que tu n'utilises aucune fonction de gestion de l'heure ???
 

woard a écrit :

return a / b = nombreEntre


Ici, tu veux assigner à "a/b" (une opération) une valeur particulière "nombreEntre". Es-tu certain d'avoir bien transcris ton algo ???
 

woard a écrit :


      printf("que vaut Un+1 " );
        scanf("%ld", &a);
 
        printf("que vaut Un" );    
        scanf("ld", &b


Mis à part que la fin du 2° scanf est manquante, où sont déclarées les variables "a" et "b" ???
Rappel: les variables d'une fonction doivent être déclarées dans la fonction ou bien en dehors de toute fonction si ce sont des globales
 

woard a écrit :


       if ( nombreEntre> 1)
            printf("suite décroissante\n\n" );
        else if (nombreEntre < 1)
            printf("la suite est décroissante\n\n" );


Mis à part qu'on ne sait pas comment est la suite si "nombreEntre" vaut "1", par quel miracle cette variable (elle-aussi non définie) récupère-t-elle une valeur ???
 
Dernière remarque: je suis étonné que "dev-c++" arrive à compiler ton code (il doit être vachement évolué)  :sol:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1371041
woard
la tête lunaire
Posté le 20-05-2006 à 12:56:35  profilanswer
 

merci pour tout vos conseil  
Emmanuel D elahaye  
si tu as de quoi maider pour faire une formation C sérieuse je suis tres tres prenant sa me donne hyper envie mais hélas je suis qu'en premiere et j'ai personne qui peut m'aider et j'ai du mal

n°1371046
Emmanuel D​elahaye
C is a sharp tool
Posté le 20-05-2006 à 13:14:54  profilanswer
 

woard a écrit :

si tu as de quoi maider pour faire une formation C sérieuse je suis tres tres prenant sa me donne hyper envie mais hélas je suis qu'en premiere et j'ai personne qui peut m'aider et j'ai du mal


- Ludique : http://www.siteduzero.com/tuto-3-8 [...] -en-c.html (Tutoriel C, malgré son nom...)
- Formel : http://www-clips.imag.fr/commun/be [...] NSI_C.html


Message édité par Emmanuel Delahaye le 20-05-2006 à 13:15:29

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1371049
gocho
Posté le 20-05-2006 à 13:31:45  profilanswer
 

Emmanuel Delahaye a écrit :

Il y a plein d'erreurs. Je te conseille de suivre une formation en C sérieuse, parce que visiblement, tu codes au hasard sans maitriser les bases. D'autre part, le C comme premier langage, faut oser...
 
http://mapage.noos.fr/emdel/images/c_warn.png
 
Des références sur mon site.


 
Ben j'ai commence par le C aussi [:spamafote]


---------------
Mon feedback
n°1371170
Sve@r
Posté le 20-05-2006 à 16:29:25  profilanswer
 

woard a écrit :

merci pour tout vos conseil  
Emmanuel D elahaye  
si tu as de quoi maider pour faire une formation C sérieuse je suis tres tres prenant sa me donne hyper envie mais hélas je suis qu'en premiere et j'ai personne qui peut m'aider et j'ai du mal


http://fr.lang.free.fr/cours/Langa [...] e_v2.0.pdf


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
mood
Publicité
Posté le 20-05-2006 à 16:29:25  profilanswer
 

n°1371198
Emmanuel D​elahaye
C is a sharp tool
Posté le 20-05-2006 à 17:51:10  profilanswer
 


J'ai bien aimé l'intro  !

  • Un peu trop orienté Unix (taille des données, confusion byte/octet, ).
  • Confusion entre fonctions standards et fonctions POSIX (fpurge(), strdup()...)
  • Parle de long long (chic, du C99), c'est bien, mais ne met pas de int à ses main(). Çaÿ mal...

Bref, Yet Another Crappy Tutorial...

Message cité 2 fois
Message édité par Emmanuel Delahaye le 20-05-2006 à 17:56:40

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1371250
Sve@r
Posté le 20-05-2006 à 20:18:51  profilanswer
 

Emmanuel Delahaye a écrit :

J'ai bien aimé l'intro  !


Yes... :bounce:  

Emmanuel Delahaye a écrit :

  • Un peu trop orienté Unix (taille des données, confusion byte/octet, ).

Ben oui, vu que le C a longtemps été associé à Unix (et que j'ai appris les 2 en même temps)...

Emmanuel Delahaye a écrit :

  • Confusion entre fonctions standards et fonctions POSIX (fpurge(), strdup()...)

Euh, oui. Je fais pas trop le distinguo...

Emmanuel Delahaye a écrit :

  • Parle de long long (chic, du C99), c'est bien, mais ne met pas de int à ses main(). Çaÿ mal...

Oui, il y a effectivement des refontes à faire. Ce tuto a été commencé il y a longtemps, à l'époque où le "int" était mis par défaut...

Emmanuel Delahaye a écrit :

Bref, Yet Another Crappy Tutorial...


 :cry:


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1371258
Emmanuel D​elahaye
C is a sharp tool
Posté le 20-05-2006 à 20:38:47  profilanswer
 


http://www.developpez.net/forums/images/smilies/calin.gif
 


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1372839
ciriak
Posté le 23-05-2006 à 10:10:36  profilanswer
 

le problème, c'est qu'on ne choisi pas de faire du C en premier langage, c'est la formation qui nous l'impose et quand il nous demande de faire un projet en 2 mois, on n'a pas le temps de faire un formation de 1 an...
 
faudrai en parler a l'éducation national...

n°1372880
_darkalt3_
Proctopathe
Posté le 23-05-2006 à 10:46:22  profilanswer
 

MS-DOS_1991 a écrit :


Citation :

system super

euh... l'inverse plutôt :-/


 
euh oui :D
j'ai oublié un mot :D (édité)


Message édité par _darkalt3_ le 23-05-2006 à 10:46:33
n°1372909
skelter
Posté le 23-05-2006 à 10:54:44  profilanswer
 

Emmanuel Delahaye a écrit :


  • Un peu trop orienté Unix (taille des données, confusion byte/octet, ).



 

Sve@r a écrit :


Ben oui, vu que le C a longtemps été associé à Unix (et que j'ai appris les 2 en même temps)...


 
j'ai du mal a voir le rapport avec unix, en fait vous affirmez qu'on ne peut pas porter unix sur une machine ne pouvant pas adresser des octets ? alors que c'est un peu la raison d'etre du c ?
 
A propos de c99, c'est vraiment utile d'apprendre toute les nouveautées  apportées par ce standard qu'aucun compilateur ne supporte totalement ?

n°1373129
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 13:42:28  profilanswer
 

skelter a écrit :

j'ai du mal a voir le rapport avec unix,


http://mapage.noos.fr/emdel/notes.htm#posix

Citation :

en fait vous affirmez qu'on ne peut pas porter unix sur une machine ne pouvant pas adresser des octets ?


 :ouch: Jamais dit ça. Ce que je dis c'est qu'en C, un char  (donc un byte) doit faire 8 bits minimum. Confondre byte et octet dans le contexte du langage C est une erreur fréquente, mais ça reste une erreur. Sur TMS320C54, les 'octets' font 16-bit. Sur DSP 56156, ils font 32-bit. Ca fait désordre...

Citation :

alors que c'est un peu la raison d'etre du c ?


La portabilité ? Oui.

Citation :

A propos de c99, c'est vraiment utile d'apprendre toute les nouveautées  apportées par ce standard qu'aucun compilateur ne supporte totalement ?


Je crains malheureusement que soit arrivé un peu tard. Les ténors (Microsoft, Borland) ne soutiennent plus le langage C comme ils l'ont fait dans le passé, Microsoft a même crée sa propre 'safe C library' assorties de menaces des pires maux si on utilise les fonctions standards du C, le tout hors C99.
 
http://www.microsoft.com/france/ms [...] urity.mspx
 
Je dirais que rien ne presse et qu'il vaut mieux apprendre à bien utiliser C90.
 
Mais ce n'est que mon avis...

Message cité 1 fois
Message édité par Emmanuel Delahaye le 23-05-2006 à 13:44:02

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373578
skelter
Posté le 23-05-2006 à 20:39:11  profilanswer
 

Emmanuel Delahaye a écrit :


 :ouch: Jamais dit ça.


 
tu as dit
 

Citation :

Un peu trop orienté Unix [...] confusion byte/octet


 
la je comprends que sous unix byte = octet

n°1373584
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 20:49:15  profilanswer
 

skelter a écrit :

tu as dit
 

Citation :

Un peu trop orienté Unix [...] confusion byte/octet


 
la je comprends que sous unix byte = octet


Je ne pourrais pas l'affirmer. C'est ce que laisse croire le site en question et j'ai rappelelé que vu du C, c'était une erreur...


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373591
skelter
Posté le 23-05-2006 à 21:00:55  profilanswer
 

ouai, en fait je pensais que unix etait aussi portable que le C (le C a été créé pour réécrire unix, c'est à ca qu'il doit sa portabilité ??), mais si c'etait vrai j'imagine que tout ce qui est POSIX pourrait faire partie de la bibliotheque standard et ce n'est pas le cas.
Pour revenir à C99, il ne serait pas plus restrictif au niveau de l'architecture cible vu que l'entete standard stdint.h fournit des types entier de 8 bits (meme 8,16,32,64 alors que sur certaine machine les tailles des mots ne sont pas forcement des multiple de 8), ca rend c99 moin portable du coup ? (et peut etre meme pour d'autre raisons)

n°1373603
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 21:26:45  profilanswer
 

skelter a écrit :

ouai, en fait je pensais que unix etait aussi portable que le C (le C a été créé pour réécrire unix, c'est à ca qu'il doit sa portabilité ??), mais si c'etait vrai j'imagine que tout ce qui est POSIX pourrait faire partie de la bibliotheque standard et ce n'est pas le cas.


J'ai cru comprendre que pour qu'une architecture soit POSIX (La norme qui défini UNIX canal Véritable :) ), il y a des contraintes matérielles minimales, à commencer par une MMU...
 
Il faut fouiller là-dedans si ça t'interesse... http://www.unix.org/version3/overview.html

Citation :


Pour revenir à C99, il ne serait pas plus restrictif au niveau de l'architecture cible vu que l'entete standard stdint.h fournit des types entier de 8 bits (meme 8,16,32,64 alors que sur certaine machine les tailles des mots ne sont pas forcement des multiple de 8), ca rend c99 moin portable du coup ? (et peut etre meme pour d'autre raisons)


Il faut bien lire la norme. Les types de taille fixes, et c'est logique, ne sont pas pas portables. Ils sont spécifiés pour les architectures qui les supporte. Sinon, on trouve les types connus avec des noms plus explicites comme
uint_least8_t etc.

Citation :


ISO/IEC 9899:TC2 Committee Draft — May 6, 2005 WG14/N1124
7.18.1.1 Exact-width integer types
1 The typedef name intN_t designates a signed integer type with width N, no padding
bits, and a two’s complement representation. Thus, int8_t denotes a signed integer
type with a width of exactly 8 bits.
2 The typedef name uintN_t designates an unsigned integer type with width N. Thus,
uint24_t denotes an unsigned integer type with a width of exactly 24 bits.
3 These types are optional. However, if an implementation provides integer types with
widths of 8, 16, 32, or 64 bits, no padding bits, and (for the signed types) that have a
two’s complement representation, it shall define the corresponding typedef names.
7.18.1.2 Minimum-width integer types
1 The typedef name int_leastN_t designates a signed integer type with a width of at
least N, such that no signed integer type with lesser size has at least the specified width.
Thus, int_least32_t denotes a signed integer type with a width of at least 32 bits.
2 The typedef name uint_leastN_t designates an unsigned integer type with a width
of at least N, such that no unsigned integer type with lesser size has at least the specified
width. Thus, uint_least16_t denotes an unsigned integer type with a width of at
least 16 bits.
3 The following types are required:
int_least8_t
int_least16_t
int_least32_t
int_least64_t
uint_least8_t
uint_least16_t
uint_least32_t
uint_least64_t
All other types of this form are optional.



---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373611
0x90
Posté le 23-05-2006 à 21:46:11  profilanswer
 

Tient en parlant de portabilité, y'a beaucoup de plateformes ou l'on ne trouve pas les variadic macro ? (soit dans la forme gnu, soit dans la forme c99, soit dans une autre forme ...)


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1373638
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 22:25:06  profilanswer
 

0x90 a écrit :

Tient en parlant de portabilité, y'a beaucoup de plateformes ou l'on ne trouve pas les variadic macro ? (soit dans la forme gnu, soit dans la forme c99, soit dans une autre forme ...)


Toutes les plateformes non GNU C et non C99. Je suis trop fort !

Message cité 2 fois
Message édité par Emmanuel Delahaye le 23-05-2006 à 22:58:57

---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373640
skelter
Posté le 23-05-2006 à 22:36:34  profilanswer
 

Emmanuel Delahaye a écrit :

Toutes les plateformes non GNU C et non C90. Je suis trop fort !


 
et non C99 [:aloy]

n°1373646
0x90
Posté le 23-05-2006 à 22:46:34  profilanswer
 

Emmanuel Delahaye a écrit :

Toutes les plateformes non GNU C et non C90. Je suis trop fort !


 
J'aurais imaginé que sur des plateformes non GNU, d'autres personnes ait eu besoin de variadic macro et aient implémenté quelque chose de simmilaire ...


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
n°1373655
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 22:58:28  profilanswer
 

0x90 a écrit :

J'aurais imaginé que sur des plateformes non GNU, d'autres personnes ait eu besoin de variadic macro et aient implémenté quelque chose de simmilaire ...


Le truc connu et portable est  

Code :
  1. #define PRINTF(a) a


qui s'utilise

Code :
  1. PRINTF (("x = %d\n", x));



---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373656
Emmanuel D​elahaye
C is a sharp tool
Posté le 23-05-2006 à 22:59:13  profilanswer
 

:cry:  


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/
n°1373659
0x90
Posté le 23-05-2006 à 23:06:09  profilanswer
 

Emmanuel Delahaye a écrit :

Le truc connu et portable est  

Code :
  1. #define PRINTF(a) a


qui s'utilise

Code :
  1. PRINTF (("x = %d\n", x));



 
Ah ouais ... [:pingouino]


---------------
Me: Django Localization, Yogo Puzzle, Chrome Grapher, C++ Signals, Brainf*ck.
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  probleme de débutant

 

Sujets relatifs
[C] [Debutant] Petit problème avec un programme tout bete[CSS débutant] Problème sur un bouton
debutant : probleme de boutonprobleme de debutant
[débutant inside] probleme lors de la construction d'un jeu de cartes.[URGENT] [C++ débutant] problème avec tableau a plusieurs dimensions
[JAVA - Débutant] - Probleme premier programme en JAVAProblème de débutant avec strcat
[DEBUTANT] Problème héritage(Debutant!) probleme d'allocation c99
Plus de sujets relatifs à : probleme de débutant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR