Débutante en C

Débutante en C - C - Programmation

Marsh Posté le 07-10-2004 à 22:20:36    

Bonjour tout le monde
Je viens de commencer la programmation en C à l'université et je me sens complètement perdue... On a déjà un premier exo à faire qui n'a pas l'air bien dur, mais pourtant je bloque dessus. Si vous pouviez m'aider je vous en serai très reconnaissante...  :( Je suis un peu désespérée...
 
Voici l'énnoncé:
 
Ecrire un programme qui :  
saisit (en utilisant scanf)  un texte, ligne par ligne,  
remplace dans la ligne chaque lettre par la lettre qui la suit dans l'alphabet (a suit z).  
et chaque chiffre par le chiffre qui le précéde (9 précéde 0).  
puis l'affiche (en utilisant printf) en faisant précéder chaque ligne par son numéro suivi de 2 points (:) et d'un espace.  
On supposera que le nombre maximal des lignes de textes à traiter est de 10, et que le nombre maximal de caractères par ligne est de 80. La fin de ligne est indiquée par \n et la fin de texte par un point (.).  
Indication:  
Une macro qui permet CHIFFRE(X) qui renvoie vrai si X est un CHIFFRE  
Une macro LETTRE_MAJ(X) qui renvoie vrai si X est une lettre majuscule  
Une macro LETTRE_MIN(X) qui renvoie vrai si X est une lettre minuscule  
Une macro LETTRE(X) qui renvoie vrai si X est une lettre  
Une macro SUIVANT(X,INF,SUP) qui donne le suivant de X, si  INF<=X<=SUP  
Une macro PRECEDENT(X,INF,SUP) qui donne le precedent de X, si  INF<=X<=SUP  
Une macro LIRE_LIGNE(X) qui lit une ligne (par scanf) et la stocke sous forme de chaine dans X
 
Merci beaucoup  :jap:  

Reply

Marsh Posté le 07-10-2004 à 22:20:36   

Reply

Marsh Posté le 07-10-2004 à 22:21:11    

bongour :love:

Reply

Marsh Posté le 07-10-2004 à 22:22:56    

t'en ai ou de ton programme là ? tu bloques sur quoi ? la structure principale où la transformation à faire sur chaque ligne ?
 
les macros, c'est à tua des les écrire ?

Reply

Marsh Posté le 07-10-2004 à 22:23:20    

Reply

Marsh Posté le 07-10-2004 à 22:25:22    

ouputain Taz a pété un cable [:wam]
 
fille + demande réalisation d'exo complet, ca lui a grillé le cerveau :/
 
Isa -> il faut nous dire sur quoi tu as besoin d'aide exactement, la réalisation d'exercices ou de programmes complets est "inderdit" par la charte du forum


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 07-10-2004 à 22:37:39    


 
Merci de m'avoir répondu aussi vite Taz
 
Oui les macros c'est à moi de les écrire.
 
Voilà où j'en suis:
 
#include <stdio.h>
#include <string.h>
 
#define MAX 100
 
 
main()
{
  char text[MAX];
  printf("entrez un texte\n" );
  scanf("%[a-z,A-Z,0-9]40c",text);
  /*remplace(text);*/
  printf("\t Texte entre:\t %40c",text);
}
 
 :sweat:  
 
J'ai écrit une fonction remplace mais je crois que c complètement faux.
Je vous demande pas de m'écrire le programme mais de m'expliquer, si possible... :??:  
 
MErci beaucoup  

Reply

Marsh Posté le 07-10-2004 à 22:39:38    

tu veux pas commencer par écrire une par une les macros ? si on te parle de macros (même si les macros c'est sale), c'est pour que tu décomposes le problème.

Reply

Marsh Posté le 07-10-2004 à 22:41:52    

Citation :


Une macro qui permet CHIFFRE(X) qui renvoie vrai si X est un CHIFFRE  
Une macro LETTRE_MAJ(X) qui renvoie vrai si X est une lettre majuscule  
Une macro LETTRE_MIN(X) qui renvoie vrai si X est une lettre minuscule  
Une macro LETTRE(X) qui renvoie vrai si X est une lettre  
Une macro SUIVANT(X,INF,SUP) qui donne le suivant de X, si  INF<=X<=SUP  
Une macro PRECEDENT(X,INF,SUP) qui donne le precedent de X, si  INF<=X<=SUP  
Une macro LIRE_LIGNE(X) qui lit une ligne (par scanf) et la stocke sous forme de chaine dans X  


 
Je passe sur le fait que des fonctions c'est mieux et que c'est débile de vous faire traavilel comme ça ..
 
Soit :
Pour ttes les macros qui teste les caractéres, je te propose de te documenter sur le code ASCII et de regarder comment les minuscules/majuscules sont différenciées.
 

Reply

Marsh Posté le 07-10-2004 à 22:43:58    


oh my fucking god! [:rofl2]


Message édité par schnapsmann le 07-10-2004 à 22:44:40

---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 07-10-2004 à 22:44:53    

attend, quand tu te pointes avec un pseudo 133+ comme ça ...

Reply

Marsh Posté le 07-10-2004 à 22:44:53   

Reply

Marsh Posté le 07-10-2004 à 22:47:47    

J'ai justement commencé par écrire les macros, mais je pense que c'est faux ce que j'ai écrit... donc si je comprends bien, il faut que je connaisse la table ASCII
 
par exemple pour la macro qui vérifie les chiffres ça s'écrirait comme ça?
 
#define CHIFFRE(X) ((x>=0)&&(x<=9)?true:false)
 
(en remplacant 0 et 9 par leurs code ASCII)

Reply

Marsh Posté le 07-10-2004 à 22:48:39    

i$@ a écrit :


(en remplacant 0 et 9 par leurs code ASCII)


à savoir '0' et '9' en C dans le texte  :o


---------------
From now on, you will speak only when spoken to, and the first and last words out of your filthy sewers will be "Sir!"
Reply

Marsh Posté le 07-10-2004 à 22:49:24    

#define CHIFFRE(X) (( (x) >= '0' ) && ( (x) <= '9' ) ? true : false )
ca devrait etre ca :)

Reply

Marsh Posté le 07-10-2004 à 22:49:30    

faut voir ce que tu as comme marge de manoeuvre. Il se trouve dans la bibliothèque standard du C, y a déjà des fonctions pour faire pas mal de trucs
 
http://www.dinkumware.com/manuals/ [...] ctype.html
 
notemment pour déterminer si un caractère représente un chiffre et faire des conversion min/maj_uscules

Reply

Marsh Posté le 07-10-2004 à 22:50:05    

Taz : je pense que c'est pas le but de 'lexo malheureusement

Reply

Marsh Posté le 07-10-2004 à 22:50:37    

Joel F a écrit :

#define CHIFFRE(X) (( (x) >= '0' ) && ( (x) <= '9' ) ? true : false )
ca devrait etre ca :)

allez va-t-en y a pas de booléen en C ... et superbe pléonasme ton truc :o
 
 
#define CHIFFRE(X) isdigit(X)
 
:P

Reply

Marsh Posté le 07-10-2004 à 22:51:21    

Joel F a écrit :

Taz : je pense que c'est pas le but de 'lexo malheureusement

je sais pas, si j'étais prof, c'est des points direct à celui qui réutilise au lieu de réinventer.

Reply

Marsh Posté le 07-10-2004 à 22:52:26    

ben oui ais là ils DEBUTENT, la quasi totalité touchent à un compilo pr la premiere fois ...
 
perso moi je ferais comme ça aussi.

Reply

Marsh Posté le 07-10-2004 à 22:55:39    

Merci à vous tous
Merci pour le lien Taz

Reply

Marsh Posté le 07-10-2004 à 22:56:44    

Taz a écrit :

allez va-t-en y a pas de booléen en C


 
le C a 22h du soir c pas ca >.<

Reply

Marsh Posté le 07-10-2004 à 22:57:23    

roooo ptain, ce topic, faudrait le mettre en sticky :eek2:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 07-10-2004 à 23:13:18    

Taz a écrit :

allez va-t-en y a pas de booléen en C ... et superbe pléonasme ton truc :o
 
 
:P


suffit de definir deux macros de plus :whistle:  
A+,


Message édité par gilou le 07-10-2004 à 23:13:30

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Marsh Posté le 07-10-2004 à 23:34:19    

Je le crois pas, Taz qui est doux et gentil avec quelqu'un !!! :ouch:

Reply

Marsh Posté le 07-10-2004 à 23:35:52    

Rasthor a écrit :

Je le crois pas, Taz qui est doux et gentil avec quelqu'un !!! :ouch:


[mode=maternelle][section=1]Taz il a une amoureuze[/section][/mode]
 [:cupra]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
Reply

Marsh Posté le 08-10-2004 à 00:25:43    

Taz a écrit :

allez va-t-en y a pas de booléen en C ... et superbe pléonasme ton truc :o
 
 
#define CHIFFRE(X) isdigit(X)
 
:P


 
et le type _Bool c'est Christophe Lambert en 3D :??:

Reply

Marsh Posté le 08-10-2004 à 00:27:58    

ben comme tu vois, c'est du C99, et le milieu scolaire découvre à peine les subtilités de l'ANSI. le _Bool montre bien que c'est un fonctionnalité de démonstration pour le moment.
 
Le C99 c'est bien, mais quand tu débutes, t'as souvent du mal à faire la différence entre extension du compilateur et vraie norme, donc c'est bien de coller à l'ANSI :)

Reply

Marsh Posté le 08-10-2004 à 00:32:06    

D'accord, mais il n'empêche que le C99 est une vraie norme, et que c'est la norme ANSI.
 
 
J'espère qu'ils vont sortir une troisième édition du K&R C99 et Embedded C :(


Message édité par printf le 08-10-2004 à 00:33:38
Reply

Marsh Posté le 08-10-2004 à 00:35:31    

tu me feras pas dire le contraire. C'est juste que quand tu découvres qu'il y a une norme, s'il y en a plusieurs ...
 
du reste, imagine la tête de son prof si elle se pointe avec des 'bool' ... déjà que son enseignant est sans doute ignorant de la moitié des fonctions de la bibliothèque standard définies par l'ANSI ...

Reply

Marsh Posté le 08-10-2004 à 00:37:11    

Il risque d'avoir les bool :D
 
 
 
(bon, elle était facile celle-là :o)

Reply

Marsh Posté le 08-10-2004 à 00:38:42    

Citation :

saisit (en utilisant scanf)  un texte

j'en tremble encore :/

Reply

Marsh Posté le 08-10-2004 à 03:20:56    

OMG

Reply

Marsh Posté le 08-10-2004 à 07:28:20    

Bon ben voilà, on sait comment poser une question à Taz en C/C++ sans se faire envoyer bouler. [:ddr555]


Message édité par el muchacho le 08-10-2004 à 07:57:20
Reply

Marsh Posté le 08-10-2004 à 08:33:36    

el muchacho a écrit :

Bon ben voilà, on sait comment poser une question à Taz en C/C++ sans se faire envoyer bouler. [:ddr555]


C surtout. Si elle avait sorti ses macros pourries avec du c++, Taz aurait été impitoyable.

Reply

Marsh Posté le 08-10-2004 à 09:44:31    

perduE... reconnaissantE...désespéréE...  
 
Rien que ça suffit :D
 
Et puis faut être gentil et ça passe tout seul :)
 

Reply

Marsh Posté le 08-10-2004 à 09:51:33    

En plus ça marche pour les autres langages:
http://forum.hardware.fr/hardwaref [...] 8501-1.htm
 
Tiens, je vais me créer un multi pour quand j'aurais des questions. :)

Reply

Marsh Posté le 08-10-2004 à 09:54:22    

Tu oublies débutantE.
 
Et il faut être gentilLE et ça passe tout seul.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 08-10-2004 à 12:20:57    

Taz a écrit :

tu me feras pas dire le contraire. C'est juste que quand tu découvres qu'il y a une norme, s'il y en a plusieurs ...
 
du reste, imagine la tête de son prof si elle se pointe avec des 'bool' ... déjà que son enseignant est sans doute ignorant de la moitié des fonctions de la bibliothèque standard définies par l'ANSI ...


Morceaux cocasses ... [:joce]

Reply

Marsh Posté le 08-10-2004 à 12:24:36    

printf a été plus rapide que toi :o

Reply

Marsh Posté le 08-10-2004 à 12:59:18    

Bonjour les gars  :hello:  
Je bosse tjrs le C et je galère toujours.
A +

Reply

Marsh Posté le 08-10-2004 à 13:06:19    

Quoique pour un premier exo, c'est pas si simple... :)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed