Bonjour,
j'essaye de faire l'exercice 1. Je suis bloqué car je ne vois pas comment faire...
je n'arrive pas à le programmer...
Pouvez-vous m'aider ?
Pièce jointe 588748
Merci d'avance.
Bonjour,
j'essaye de faire l'exercice 1. Je suis bloqué car je ne vois pas comment faire...
je n'arrive pas à le programmer...
Pouvez-vous m'aider ?
Pièce jointe 588748
Merci d'avance.
Bonjour.
Oui on peut t’aider 😁.
De rien.
P.s. : ici pour avoir vraiment de l’aide il faut poster son code source et expliquer les problèmes rencontrés 😉.
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Le problème c'est que je ne vois pas par quoi commencé...
Dernière modification par LittleWhite ; 19/01/2021 à 11h44. Motif: Pas besoin de citer l'intégralité du message précédent
Une première ligne qui demande un texte a l’utilisateur.
Une boucle qui extrait de ce texte tous les "mots" séparés par un espace. Un compteur initialisé à 1 sera affiché ainsi que le mot trouvé. A chaque mot trouvé on incrémente le compteur et on passe au suivant.
En partant de là je suppose quand-même que tu as eu un minimum de cours en C.
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Oui je suis en licence.
Merci, je ne voyais pas comment réaliser le programme. j'ai eu la même idée que vous mais c'est dans l'écriture que je suis bloqué...
j'ai commencé par :
je ne sais pas comment faire pour le compteur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> #include <stdlib.h> int main (void) { char chaine [100]; printf ("Entrez_100_caracteres_:_\n); While scnaf ("%c", chaine [k]); } chaine [8] = "\0"; printf ("La_chaine_est_:_%s\n", chaine); return EXIT_SUCCESS; }
Dernière modification par Invité ; 18/01/2021 à 19h06. Motif: Ajout des balises [CODE] mon code [/CODE] (bouton #)
Houla, ton code n'en ai pas un !
Pour commencer encadre ton code avec les balises [code](le # dans les icônes).
La fonction printf (); affiche un texte, c'est tout. Ton exercice te demande d'utiliser la fonction scanf (); -> documentation en français. Tu trouveras dans cette page toutes les réponses à tes questions quant à la gestion des entrées/sorties en console.
La boucle while (), si elle répète plusieurs instructions, doit encadrer ces dernières par des {}.. De plus elle attend une condition pour pouvoir sortir -> faq instruction while ();
Histoire que tu vois comment on écrit un code lisible et structuré voila une base de départ :
Quelques explications.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int main(int argc, char* argv[]) { char chaine [101]; printf ("Entrez 100 caracteres : "); scanf ("%100s", chaine); printf ("La chaine est : %s\n", chaine); return EXIT_SUCCESS; }
La chaîne doit contenir 101 caractères. scanf ("%100s", chaine); va autoriser 100 caractères + un caractère de fin \0. D'où 101.
Pourquoi j'utilise %s ? C'est demandé dans l'exercice. Le nombre 100 interdit le dépassement de tampon mémoire (longueur de la chaîne).
À ton clavier maintenant...
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
D'accord, merci beaucoup j'y vois déjà plus clair !!
Du coup maintenant pour introduire la fonction While, je l'écris après return EXIT_SUCCESS; ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 return EXIT_SUCCESS; } char chaine [] = "%100s" int i; int compteur = 0; while (i=0, chaine [i] !='\0';i++) { or (i = "0+1", chaine [i] !=' ') { printf ("%s", chaine [i]); } else printf ("\n"); }
Dernière modification par Invité ; 18/01/2021 à 19h05. Motif: Inutile de citer intégralement le message précédent
Sais-tu ce que fait l'instruction return EXIT_SUCCESS; ?
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Ha mince je me suis trompé... cette instruction nous remène a notre page de code.
ma boucle est bonne ou pas ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 char chaine [] = "%100s" int i; int compteur = 0; while (i=0, chaine [i] !='\0';i++) { or (i = "0+1", chaine [i] !=' ') { printf ("%s", chaine [i]); } else printf ("\n");
Dernière modification par LittleWhite ; 19/01/2021 à 11h44.
Compiles-tu ton code avant de nous le donner ?
L’instruction or n’existe pas !
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Ce n'est pas un devoir à rendre, c'est juste un exercice mais je n'y arrive pas... je ne comprends pas...
Pourriez-vous le faire et ensuite m'expliquer svp ?
Si vous avez un peu de temps![]()
C'est un exercice donné par le prof à faire pour demain !
Mais je n'y arrive pas...
Dernière modification par LittleWhite ; 19/01/2021 à 11h46. Motif: Pas besoin de citer l'intégralité du message précédent
Bonjour
Ouais bien sûr. Déjà on t'a dit de mettre ton code entre balises "code" mais malgré ça, tu as posté deux codes sans tenir compte de cette remarque ce qui a bien entamé notre dose de patience à ton égard. C'est plus un poil que tu as dans la main, c'est carrément de la moquette. T'as même pas été foutu de donner à ton post un titre qui résume ta problématique (ou alors ta problématique c'est clairement de pouvoir écrire un programme en C quel qu'il soit quoi).
Accessoirement ces codes sont tous deux plus horrible l'un que l'autre ce qu'on aurait pu croire impossible (si A est plus horrible que B alors B ne peut pas être plus horrible que A) mais que manifestement tu as réussi à faire. Comme quoi ...
Alors pour ta boucle
- il semble que tu confondes "while" et "for"
- il semble que tu confondes la virgule et le point-virgule
- l'instruction "or" n'existe pas
- i (un int) ne peut pas être égal à "0+1" (une string). En fait aussi bizarre que cela parraisse, cela peut arriver mais le résultat sera anarchique (une string étant un pointeur, une adresse, ça reste en effet un nombre)
- "=" c'est une affectation, pas une comparaison (mais peut-être voulais-tu réellement affecter l'adresse de "0+1" à l'entier "i"...)
- chaine étant une string, chaine[i] est un caractère donc le format de "printf" ne doit pas être "%s"
Et accessoirement, en plus de l'inutilité de la variable "compteur" non utilisée et de la parité des accolades ouvrantes/fermantes non respectée (on n'en n'est plus là n'est-ce pas ?) personne ne comprend pourquoi tu stockes la string "%100s" dans le tableau de char "chaine" mais là, l'instruction est correcte.
Ah ben les livres de C ne servent pas que de table basse pour mettre une bière dessus (oui je sais, aujourd'hui les livres de C on les télécharge mais je voyais mal comment faire un vanne à partir d'un tuto téléchargé , ou alors style "les tutos de C qu'on télécharge ne servent pas qu'à remplir le dossier bittorrent pour faire augmenter notre ratio tracker" mais bof).
Non. Sans parler du fait que ce serait injuste vis à vis des autres élèves qui, eux, travaillent honnêtement, ton prof te donnera le corrigé et te l'expliquera mieux que nous ne saurions le faire. Et accessoirement il aura un vrai aperçu de ton niveau en C plutôt que lui donner un aperçu du notre (ce dont il n'a bien entendu que faire) si tu lui donnais notre code sous ta signature.
Mon Tutoriel sur la programmation «Python»
Mon Tutoriel sur la programmation «Shell»
Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
Et on poste ses codes entre balises [code] et [/code]
Bon, histoire de clore le sujet et même si j'ai bien conscience que ce n'est pas t'aider de le faire, voila un code exemple qui ne colle pas parfaitement à l'énoncé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50 #include<stdlib.h> #include<stdio.h> int main(int argc, char* argv[]) { char chaine [101]; chaine [100] = '\0'; printf ("Entrez 100 caracteres : "); scanf ("%100c", chaine); printf ("La chaine est : %s\n", chaine); int compteur = 1; // Le compteur qui sera affiché devant chaque mot int index = 0; // la position du pcaractère actuellement pointé int position = 0; // Sauvegarde de la position du 1er caractère du prochain mot int i; // variable qui permet de remplir la chaîne mot [] avec le bon nbre de caractères char mot [100]; // mot actuellement affiché en face du compteur while (chaine [index] !='\0') { // Tant qu'on n'est pas arrivé à la fin du texte // Boucle d'extraction du prochain mot while (chaine [index]!= ' ' && index < 100) index++; // Vérification si on est pas à la fin du texte. Il n'y a pas de nouveau mot // à afficher. On sort du while (); principal. if (index-position==0) break; // À partir d'ici index pointe sur le dernier caractère du mot extrait. // La boucle suivante recopie les caractères à partir de la position "position" // jusqu'à "index". for (i=0; position < index; position++, i++) mot [i] = chaine [position]; // "mot" contient le mot à afficher. Ajout du terminateur '\0' pour rendre // cette chaîne conforme et utilisable avec printf (); mot [i++] = '\0'; // Affichage du compteur et du mot printf ("%d\t%s\n", compteur, mot); // Positionnement de l'index sur le caractère suivant. position est aussi // initialisé à la valeur d'index. (position de départ du nouveau mot) index++; position = index; // Le compteur est incrémenté compteur++; } return EXIT_SUCCESS; }~/Projects/test/src$ ./test
Entrez 100 caracteres : The book assumes some familiarity with basic programming concepts like variables, assignments statements, loops, and functions.
La chaine est : The book assumes some familiarity with basic programming concepts like variables, assignments statem
1 The
2 book
3 assumes
4 some
5 familiarity
6 with
7 basic
8 programming
9 concepts
10 like
11 variables,
12 assignments
13 statem
Utilisation de Glade avec Gtk+
Code::Blocks et Gtk+ sous Windows
Programmation orientée objet avec Gtk+ v3
- N'oubliez pas de consulter les FAQ Gtk et les cours et tutoriels Gtk
Partager