faire un prog qui affiche une ligne, un carré, un triangle [C] - C - Programmation
Marsh Posté le 16-10-2005 à 19:29:58
Ta fonction "lig" telle que tu l'as écrite a pour but d'afficher 8 fois la lettre "g". Elle ne renvoie pas de valeur, elle ne fait qu'afficher à l'écran. Donc ton instruction "printf(lig(i))" n'est pas bonne parce que tu demandes d'afficher ce que "lig()" renvoie.
Tu n'as qu'à utiliser la fonction et faire tout simplement "lig(i)"
Pareil pour
reslig="lig(i)" |
. Tu places dans un "char" une chaîne complète. Ca ne peut pas marcher. Et même si ça marchait, cela ne placerait pas les 8 "g" dans "reslig" mais juste les lettres l i g ( i ). C'est comme quand tu écris "char mot[]="bonjour". Ca places les lettres b o n j o u r dans "mot".
"void lig(i)" => Ta fonction a besoin de connaître le type du paramètre "i". De plus, un paramètre passé à une fonction doit être un élément que la fonction ne connait pas d'avance. Toi, tu te sers de ce "i" comme d'un simple compteur de 1 à 8. Ce travail peut très bien être fait par une variable interne à la fonction.
Tu devrais relire tes cours. S'ils sont mal faits, tu as deux très bon cours de C ici...
http://fr.lang.free.fr/cours/Langa [...] e_v2.0.pdf
http://mapage.noos.fr/emdel
Marsh Posté le 17-10-2005 à 07:01:49
Voici l'algo du programme que je dois réaliser.
Code :
|
Voici le code après quelques modifications
Code :
|
La fonction lig() ne doit pas être bonne car quelqesoit la veleur de i que je donne, j'obtient toujours 8 charactères d'affiché à l'écran.
Marsh Posté le 17-10-2005 à 07:18:31
bosz28 a écrit : La fonction lig() ne doit pas être bonne car quelqesoit la veleur de i que je donne, j'obtient toujours 8 charactères d'affiché à l'écran.
|
En effet. Dans ta fonction, la boucle va de 1 à 8. On se demande à quoi sert le paramètre "int k"
On se demande même aussi si ton programme compile vu que "i" n'est pas défini !!!
Ensuite, ta fonction "car" n'est pas conforme à ta procédure.
Dans ta procédure "carré", tu as "N" entier en paramètre et "i" variant de "1" à "N".
Dans ta fonction "car", tu as "q" entier en paramètre et "q" variant de "1" à "8" !!!
Marsh Posté le 17-10-2005 à 07:20:20
Que dois-je modifier dans la fonction? je ne vois pas trop quoi faire. En faite je ne sais pas trop comment fonctionne la boucle for.
Marsh Posté le 17-10-2005 à 07:39:55
bosz28 a écrit : Que dois-je modifier dans la fonction? je ne vois pas trop quoi faire. En faite je ne sais pas trop comment fonctionne la boucle for. |
for (instruction1; instruction2; instruction3)
{
instruction i1;
instruction i2;
...
}
L'instruction 1 est exécutée une seule fois avant le début de boucle. Elle sert à initialiser la variable de boucle
L'instruction 2 est un test. Si le test est vrai, alors la boucle se fait
Les instructions i1, i2, etc sont alors exécutées
L'instruction 3 se fait juste avant le retour au test "instruction 2". Elle sert à modifier (incrémenter ou autre chose) la variable de boucle pour que la boucle,selon le test, recommence ou s'arrète
Exemple
for (i=0; i < 10; i++)
Et si tu lisais les liens que je t'ai donné où tout ça est déjà bien expliqué...
Voici la fonction "lig" écrite conformément à ton algo
Code :
|
Marsh Posté le 19-10-2005 à 17:50:35
bosz28 a écrit : Que dois-je modifier dans la fonction? je ne vois pas trop quoi faire. En faite je ne sais pas trop comment fonctionne la boucle for. |
Si tu capte pas trop la boucle for, au pire fait du while pour le moment, c'est moins abstrait a mon gout.
* Pour la ligne j'aurai fait :
Code :
|
* Pour le carré :
Code :
|
Pour le triangle c'est un peu plus complexe, mais ça reste fesable en tatonant. Disons que faut bien savoir le nombre de blanc et le nombre de caractere pour chaque ligne.
Apres t'assemble tes procedures et voilà.
* Pour le triangle (j'ai ressorti ça d'un TD ) :
Code :
|
Marsh Posté le 19-10-2005 à 18:44:27
MEI a écrit :
|
Pas du C...
Marsh Posté le 19-10-2005 à 18:49:40
C'est du C++ ???
J'ai jamais trop capté la différence, et vu qu'on apprend que le C++ dans mon IUT.
Puis, il utilise Turbo C++
Marsh Posté le 19-10-2005 à 19:07:23
MEI a écrit : C'est du C++ ??? |
Ben oui.
Citation : J'ai jamais trop capté la différence, et vu qu'on apprend que le C++ dans mon IUT. |
Peu importe.
Marsh Posté le 16-10-2005 à 18:42:58
Salut tout le monde!
Je dois faire un programme en C et j'utilise turbo C++ 1.0
Voici l'énoncé de mon exercice :
Ecrire un programme qui affiche 3 formes géométriques à partir de caractères, une ligne, un carré, un triangle, (une ligne séparera chaque forme) en demandant à l'utilisateur la taille qu'il souhaite.
Il faut définir et utiliser une fonction qui affiche une ligne de N caractères (N entre 1 et 8).
La saisie de la taille devra être valide (redemander un entier tant que la taille donnée n'est pas entre 1 et 8) : définir et utilisé une fonction de saisie valide.
Voici pour le moment le code que j'ai tapé mais qui me pose déja des soucis que je n'arive à résoudre :
Mais cela ne fonctionne pas! en effet, cela ne prend pas en compte le nombre que je donne et la fonction carré n'est pas exécuter! en plus quand je rentre une valeur, le charactère que j'ai pré-enregistrer pour les dessins sont raplacer par d'autres carachtères.