probleme de débutant - C - Programmation
Marsh Posté le 20-05-2006 à 11:29:33
Deja poste le code dans des balises code stp, et rajoute les morceaux qui manquent, car ce que tu as poste ne compilera pas
Marsh Posté le 20-05-2006 à 11:45:06
- 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.
Marsh Posté le 20-05-2006 à 11:49:54
C'est moi ou il te manque la fin de tes lignes o_0 ?
Citation : system super |
euh... l'inverse plutôt :-/
Marsh Posté le 20-05-2006 à 12:13:53
woard a écrit : je suis vraiment débutant en langage C ; c'est mon premier langage informatique |
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...
Des références sur mon site.
Marsh Posté le 20-05-2006 à 12:33:42
woard a écrit : merci de bien vouloir me répondre et peut etre me dire mes erreur si il y en a |
Il me semble en distinguer ptet une ou deux (mais rien de bien certain)
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 : |
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 : |
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é)
Marsh Posté le 20-05-2006 à 12:56:35
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
Marsh Posté le 20-05-2006 à 13:14:54
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
Marsh Posté le 20-05-2006 à 13:31:45
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... |
Ben j'ai commence par le C aussi
Marsh Posté le 20-05-2006 à 16:29:25
woard a écrit : merci pour tout vos conseil |
http://fr.lang.free.fr/cours/Langa [...] e_v2.0.pdf
Marsh Posté le 20-05-2006 à 17:51:10
J'ai bien aimé l'intro !
Bref, Yet Another Crappy Tutorial...
Marsh Posté le 20-05-2006 à 20:18:51
Emmanuel Delahaye a écrit : J'ai bien aimé l'intro ! |
Yes...
Emmanuel Delahaye a écrit :
|
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 :
|
Euh, oui. Je fais pas trop le distinguo...
Emmanuel Delahaye a écrit :
|
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... |
Marsh Posté le 20-05-2006 à 20:38:47
Marsh Posté le 23-05-2006 à 10:10:36
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...
Marsh Posté le 23-05-2006 à 10:46:22
MS-DOS_1991 a écrit :
euh... l'inverse plutôt :-/ |
euh oui
j'ai oublié un mot (édité)
Marsh Posté le 23-05-2006 à 10:54:44
Emmanuel Delahaye a écrit :
|
Sve@r a écrit : |
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 ?
Marsh Posté le 23-05-2006 à 13:42:28
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 ? |
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...
Marsh Posté le 23-05-2006 à 20:39:11
Emmanuel Delahaye a écrit : |
tu as dit
Citation : Un peu trop orienté Unix [...] confusion byte/octet |
la je comprends que sous unix byte = octet
Marsh Posté le 23-05-2006 à 20:49:15
skelter a écrit : tu as dit
|
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...
Marsh Posté le 23-05-2006 à 21:00:55
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)
Marsh Posté le 23-05-2006 à 21:26:45
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 : |
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 : |
Marsh Posté le 23-05-2006 à 21:46:11
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 ...)
Marsh Posté le 23-05-2006 à 22:25:06
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 !
Marsh Posté le 23-05-2006 à 22:36:34
Emmanuel Delahaye a écrit : Toutes les plateformes non GNU C et non C90. Je suis trop fort ! |
et non C99
Marsh Posté le 23-05-2006 à 22:46:34
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 ...
Marsh Posté le 23-05-2006 à 22:58:28
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 :
|
qui s'utilise
Code :
|
Marsh Posté le 23-05-2006 à 22:59:13
skelter a écrit : et non C99 |
Marsh Posté le 23-05-2006 à 23:06:09
Emmanuel Delahaye a écrit : Le truc connu et portable est
|
Ah ouais ...
Marsh Posté le 20-05-2006 à 11:15:17
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