Petite aide en c++
bonjour tout le monde j'ai un programme à faire et je n'y arrive pas.
Je doit faire un programme qui permet de faire un "cadre". Enfaite l'utilisateur doit donner la largeur et la longueur de ce cadre.
Par exemple si l'utilisateur donne 3 pour la longueur et 5 pour la largeur ça donnera:
+-----+
| |
| |
| |
+-----+
Je doit faire ça avec un for non?
ça serai vraimen gentil de m'aider merci d'avance
Je doit faire un programme qui permet de faire un "cadre". Enfaite l'utilisateur doit donner la largeur et la longueur de ce cadre.
Par exemple si l'utilisateur donne 3 pour la longueur et 5 pour la largeur ça donnera:
+-----+
| |
| |
| |
+-----+
Je doit faire ça avec un for non?
ça serai vraimen gentil de m'aider merci d'avance
A voir également:
- Petite aide en c++
- Petite amie virtuelle en français gratuit - Accueil - Intelligence artificielle
- Petite croix snap - Forum Snapchat
- Petite cle en haut a droite samsung - Forum Samsung
- Apparition d'une clé d'entretien sur écran samsung s5 > sm-g800F ✓ - Forum Samsung
- Petite majuscule word ✓ - Forum Word
21 réponses
slt non le for est une boucle qui s'auto-incremente (de 1 si tu ne précise pas le Pas) d'une valeur définie à une autre valeur définie(et non une variable)...
Dsl je commence tout juste avec le c++
mais pour la largeur / longueur max tu peux utiliser differente choses
le tant que :
tant que la longueur ne depassepa la limite faire...
ou avec le si... ou d'autres encores.. mais apre je ne sai pa comme tu peu faire ton programme... dsl
mais pour la largeur / longueur max tu peux utiliser differente choses
le tant que :
tant que la longueur ne depassepa la limite faire...
ou avec le si... ou d'autres encores.. mais apre je ne sai pa comme tu peu faire ton programme... dsl
C'est facile.
D'abord tu déclare deux variables, une pour la longueur et une pour la largeur. Tu demande à l'utilisateur de leur donner une valeur.
Ensuite tu fait une boucle for qui démare à 1 et qui va jusqu'à la valeur de la variable de la largeur. Dans ta boucle tu affiche un "-" a chaque incrémentation.
Pour la largeur, tu fais la meme chose, mais en colone, c'est à dire tu affiche un | et un endl à chaque incrémentation.
D'abord tu déclare deux variables, une pour la longueur et une pour la largeur. Tu demande à l'utilisateur de leur donner une valeur.
Ensuite tu fait une boucle for qui démare à 1 et qui va jusqu'à la valeur de la variable de la largeur. Dans ta boucle tu affiche un "-" a chaque incrémentation.
Pour la largeur, tu fais la meme chose, mais en colone, c'est à dire tu affiche un | et un endl à chaque incrémentation.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
coucou, encore merci beaucoup pour votre aide donc j'ai fait ce que vous m'avez dit mais malheureusement ça fait pas ce que je veut voila mon programme:
#include <iostream>
using namespace std;
main ( ){
float lo, la, symb;
cout<<"Veuillez entrer la largeur de votre contour"<<endl;
cin>>la;
cout<<"Veuillez entrer la longueur de votre contour"<<endl;
cin>>lo;
for(lo=1; lo<=60;){
for(la=1; la<=80;){
cout<<"-";
}
cout<<"\n";
cout<<"|"<<endl;
}
}
les valeur 60 et 80 sont les deux valeurs que je ne doit pas depasser, le seul probléme c'est que les valeur que je rentre ne sont pas pris en compte doit y'avoir un problème mais j'arrive pas à faire autrement. Et sinon la variable symb el sert pour la suite repondez moi svp
#include <iostream>
using namespace std;
main ( ){
float lo, la, symb;
cout<<"Veuillez entrer la largeur de votre contour"<<endl;
cin>>la;
cout<<"Veuillez entrer la longueur de votre contour"<<endl;
cin>>lo;
for(lo=1; lo<=60;){
for(la=1; la<=80;){
cout<<"-";
}
cout<<"\n";
cout<<"|"<<endl;
}
}
les valeur 60 et 80 sont les deux valeurs que je ne doit pas depasser, le seul probléme c'est que les valeur que je rentre ne sont pas pris en compte doit y'avoir un problème mais j'arrive pas à faire autrement. Et sinon la variable symb el sert pour la suite repondez moi svp
Salut,
Tu n'as du bien comprendre le concept du for.
Donc ce qu'il faut que tu fasses, c'est utiliser lo et la, là tu les réinitialise à 1 avec ton for alors que l'utilisateur a mis des données dedans.
Perso je verrais ça:
Tu n'as du bien comprendre le concept du for.
for(truc à faire au début; condition à tester pour continuer ou terminer la boucle ; action à faire à chaque itération)
Donc ce qu'il faut que tu fasses, c'est utiliser lo et la, là tu les réinitialise à 1 avec ton for alors que l'utilisateur a mis des données dedans.
Perso je verrais ça:
//On est dans le main float lo, la, symb; int i,j; cout<<"Veuillez entrer la largeur de votre contour"<<endl; cin>>la; cout<<"Veuillez entrer la longueur de votre contour"<<endl; cin>>lo; if(lo>60) lo=60; if(la>80) la=80; for(i=0 ; i<lo; i++){ for(j=0; j<la; j++){ cout<<"-"; } cout<<"\n"; cout<<"|"<<endl; }
Salut.
Je ne sais pas où Lapinkiller à vue que les boucles s'incrémentaient toute seule, mais je pense que c'est faux, ou alors sur certain compilateur par très iso. Moi la boucle, je la verrai comme ça (je met pas le début):
Je ne sais pas où Lapinkiller à vue que les boucles s'incrémentaient toute seule, mais je pense que c'est faux, ou alors sur certain compilateur par très iso. Moi la boucle, je la verrai comme ça (je met pas le début):
cout<<'+'; for (int i=1;i<la-1;i++) cout<<'-'; cout<<"+\n"; for(int j=1;j<lo-1;j++) { cout<<'|'; for (int i=1;i<la-1;i++) cout<<' '; cout<<"|\n"; } for (int i=1;i<la-1;i++) cout<<'-'; cout<<"+\n"<<endl;sous condition que lo>2 et la>2
merci encore de votre aide le programme de lapinkiller ne fonctionnais pa exactement comme je voulais mais celui de char Snipeur fonctionne super bien à une détail pres.
Par exemple lorsque j'inscrit une largeur de 5 et une longueur de 3 ça me met:
+---+
| |
+---+
alors que je voudrais que ça me fasse:
+-----+
| |
| |
| |
+-----+
donc pour se faire j'ai deja enlever les -1 mais ça m'en ajoute que 1 dc voila si vous savez .....
Par exemple lorsque j'inscrit une largeur de 5 et une longueur de 3 ça me met:
+---+
| |
+---+
alors que je voudrais que ça me fasse:
+-----+
| |
| |
| |
+-----+
donc pour se faire j'ai deja enlever les -1 mais ça m'en ajoute que 1 dc voila si vous savez .....
tu enleve le -1, et tu commence à 0 au lieu de 1.
J'avais pas compris que ce que tu donnait c'etait la largeur hauteur intérieur.
J'avais pas compris que ce que tu donnait c'etait la largeur hauteur intérieur.
quand j'ai di que la boucle s'auto incrementait c'estque l'incrementation se trouvaitentre les parametre du for... il n'y a pas besoin de rajouter l"incrementation" apres dans la boucle comme c'est le car avec le while
sinon en effet au for il manque un paramatre: leparametre d'incrementation et n'oublie pas de declarer tes variables.
et pourquoi tu di que mon programme ne fonctionne pas , alors que je ne t'ai donne aucun pprogramme ???
sinon en effet au for il manque un paramatre: leparametre d'incrementation et n'oublie pas de declarer tes variables.
et pourquoi tu di que mon programme ne fonctionne pas , alors que je ne t'ai donne aucun pprogramme ???
Je vous remercie tous de m'aider (excuse Lapinkiller je me suis tromper de pseudo).
Tout mon programme marche comme je veux.
Maintenant je voudrais savoir comment on peut créer un disque en donnant le diametre et la position (ligne, colonne) car je doit l'inserer dans mon cadre.
Je ne veux pa un programme tout fait cela ne vas pa me faire apprndre, mais je voudrais que vous m'indiquiez au moins la direction a prendre car je ne voit pas du tout.
Je vous donne un tit exemple de disque:
#####
#########
###########
#############
#############
###############
###############
###############
###############
###############
#############
#############
###########
#########
#####
ce disque a un rayon de 7,5
Voila j'attend vos reponse merci
enfin la ça marche pas car kan je l'édite ça me mais tout à la ligne si vous voulez un exemple aller a l'adresse
http://cours-info.iut-bm.univ-fcomte.fr/C/1a/2005-2006/projets/projets1A.html
voila bye
Tout mon programme marche comme je veux.
Maintenant je voudrais savoir comment on peut créer un disque en donnant le diametre et la position (ligne, colonne) car je doit l'inserer dans mon cadre.
Je ne veux pa un programme tout fait cela ne vas pa me faire apprndre, mais je voudrais que vous m'indiquiez au moins la direction a prendre car je ne voit pas du tout.
Je vous donne un tit exemple de disque:
#####
#########
###########
#############
#############
###############
###############
###############
###############
###############
#############
#############
###########
#########
#####
ce disque a un rayon de 7,5
Voila j'attend vos reponse merci
enfin la ça marche pas car kan je l'édite ça me mais tout à la ligne si vous voulez un exemple aller a l'adresse
http://cours-info.iut-bm.univ-fcomte.fr/C/1a/2005-2006/projets/projets1A.html
voila bye
Salut. Si tu veux garder les espaces, met ton texte entre les balise de code
pour faire un cercle, il faut que tu sache combien de caratères il faut par ligne, et ensuite les retrancher aux espaces du cadre.
Pour savoir combien il faut de caractères, il faut faire un peu de math, en utilisant l'équation anonique du cercle : (x-x0)²+(y-t0)²=R²
(x0,y0) le centre du cercle, R son rayon
pour faire un cercle, il faut que tu sache combien de caratères il faut par ligne, et ensuite les retrancher aux espaces du cadre.
Pour savoir combien il faut de caractères, il faut faire un peu de math, en utilisant l'équation anonique du cercle : (x-x0)²+(y-t0)²=R²
(x0,y0) le centre du cercle, R son rayon
presque pareil : (x-x0)²+(y-t0)²<R²
très simplement, tu associe un repère à ton cadre.
donc, x0 c'est ta ligne, et y0 ta colonne.
Je ne te cache pas que c'est pas évident à mettre dans le cadre.
le mieux serai peut être d'utiliser une bib qui permet de positionner le curseur et d'écrire en écrasant ce qui a déjà été écrit.
Voir du coté de conio.h
donc, x0 c'est ta ligne, et y0 ta colonne.
Je ne te cache pas que c'est pas évident à mettre dans le cadre.
le mieux serai peut être d'utiliser une bib qui permet de positionner le curseur et d'écrire en écrasant ce qui a déjà été écrit.
Voir du coté de conio.h
#include <iostream> #include <math.h> void ecrire_rectangle(unsigned int largeur,unsigned int hauteur){ std::cout << '+'; for(unsigned int i=0;i<largeur;++i) std::cout << '-'; std::cout << '+' << std::endl; for(unsigned int j=0;j<hauteur;++j){ std::cout << '|'; for(unsigned int i=0;i<largeur;++i) std::cout << ' '; std::cout << '|' << std::endl; } std::cout << '+'; for(unsigned int i=0;i<largeur;++i) std::cout << '-'; std::cout << '+' << std::endl; } void ecrire_demi_disque(unsigned int rayon){ for(unsigned int j=0;j<2*rayon;++j){ for(unsigned int i=0;i<rayon;++i){ if(sqrt(i*i+(j-rayon)*(j-rayon))<rayon) std::cout << '#'; else break; } std::cout << std::endl; } } int main(){ unsigned int largeur=10,hauteur=4,rayon=8; ecrire_rectangle(largeur,hauteur); ecrire_demi_disque(rayon); return 0; }
Amusez vous bien ;)
Je vous remercie tous pour votre aide mais je ne connait pas du tout les fctions que vous me proproser, vous connaissez pas un tit site ou il explique un peu tout ça car la je nage et je desespere.
Merci
Merci
De quelles fonctions parles-tu ? Tu repars bien du code mis en <18> ?
sqrt = racine carrée
http://ww12.maconlinux.net
std::cout = la sortie standard
std::endl = retour chariot
<< = écrire
http://www.cplusplus.com/reference/iostream/
Bonne chance
sqrt = racine carrée
http://ww12.maconlinux.net
std::cout = la sortie standard
std::endl = retour chariot
<< = écrire
http://www.cplusplus.com/reference/iostream/
Bonne chance
Salut.
J'ai trouvé la réponse dans la nuit.
le mieux c'est de faire ton disque en même temps que le cadre.
quand tu rempli ton cadre avec les espace, tu rajoute un test, si la coordonnée que tu es en train de remplir est dans le disque, alors tu remplace l'espace par un dièse.
J'ai trouvé la réponse dans la nuit.
le mieux c'est de faire ton disque en même temps que le cadre.
quand tu rempli ton cadre avec les espace, tu rajoute un test, si la coordonnée que tu es en train de remplir est dans le disque, alors tu remplace l'espace par un dièse.
Ah ben c'est simple pourtant il suffit de miser les deux fonctions que j'ai donné.
dans dessiner rectangle, changer le bloc
par :
Pour la fonction "dans_disque" s'inspirer de mon ancienne fonction dessiner_disque + de la formule donnée <16>. Elle teste si pour des coordonnées si on est dans un disque de centre (xcentre,ycentre) et de rayon 'rayon'.
Je peux pas en dire plus parce que sinon ça revient à faire ton sujet à ta place.
Bonne chance
dans dessiner rectangle, changer le bloc
for(unsigned int j=0;j<hauteur;++j){ std::cout << '|'; for(unsigned int i=0;i<largeur;++i) std::cout << ' '; std::cout << '|' << std::endl; }
par :
for(unsigned int j=0;j<hauteur;++j){ std::cout << '|'; for(unsigned int i=0;i<largeur;++i){ if(dans_disque(xcentre,ycentre,rayon,i,j)) std::cout << '#' else std::cout << ' '; } std::cout << '|' << std::endl; }
Pour la fonction "dans_disque" s'inspirer de mon ancienne fonction dessiner_disque + de la formule donnée <16>. Elle teste si pour des coordonnées si on est dans un disque de centre (xcentre,ycentre) et de rayon 'rayon'.
Je peux pas en dire plus parce que sinon ça revient à faire ton sujet à ta place.
Bonne chance
Bonjour tout le monde je vous remercie de m'avoir aider mon projet touche à sa fin, une seule question me reste. Des personne m'ont conseillé d'initialiser mes variables je voudrais savoir à quoi sa sert, et comment je peut faire apparaitre cette initialisation dans mon algo (si il faut le faire.)
Voila je vous remerci des que j'ai fini le programme je le mettrai
Voila je vous remerci des que j'ai fini le programme je le mettrai
Salut.
initialisé les variable, ça n'a d'intéret que si ces valeurs ont des chances de ne pas être modifé dans la suite.
En théorie, ecrire int j; c'est strictement équivalent à "int j=0;" (j initialisé à 0) par contre, int *pj;pj= new int; *pj n'est pas initialisé, sa valeur peut être n'importe quoi !!
donc, après ça dépend du contexte/
initialisé les variable, ça n'a d'intéret que si ces valeurs ont des chances de ne pas être modifé dans la suite.
En théorie, ecrire int j; c'est strictement équivalent à "int j=0;" (j initialisé à 0) par contre, int *pj;pj= new int; *pj n'est pas initialisé, sa valeur peut être n'importe quoi !!
donc, après ça dépend du contexte/