Vous en pensez quoi?
widi
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
kij_82 Messages postés 4089 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour tout le monde j'ai fait un algorithme pour un programme et je voudrais savoir ce que vous en pensez je vous donne l'algo et le programme:
algo:
1/ Description du résultat.
Afficher une zone rectangulaire dont la hauteur et la largeur est donnée par l’utilisateur. A l’intérieur de cette zone rectangulaire sera afficher un disque de centre, de rayon et de motif donnés.
2/ Idée de l’algorithme.
- Afficher la première largeur de la zone rectangulaire.
- Afficher les débuts de ligne
- Afficher le disque à l’endroit choisit par l’utilisateur
- Afficher les fins de ligne
- Afficher la deuxième largeur de la zone rectangulaire.
3/ Lexique local des variables.
colonne (entier) Intermédiaire (???)
ligne (entier) Intermédiaire (???)
longueur (entier) donnée
largeur (entier) donnée
abscisse (reel) donnée
ordonnée (réel) donnée
rayon (réel) donnée
motif (????) donnée
4/ Algorithme
Faire
Écrire « Entrez la largeur positive et inferieur à 80 de la zone d'affichage : »
Largeur affecté de Lire
Tant que 0<largeur<80
Ftant que
Faire
Ecrire « Entrez la longueur positive et inférieur a 60 de la zone d'affichage : »
longueur affecté de Lire
Tant que 0<longueur<60
Ftant que
Ecrire « Entrez l'abscisse du centre du cercle : »
Abscisse affecté de Lire
Ecrire « Entrez l'ordonnée du centre du cercle : »
ordonnée affecté de Lire
Faire
Ecrire « Entrez le rayon positif du cercle : »
rayon affecté de lire
Tant que rayon<0
Ftant que
Faire
Ecrire « Entrez le motif du cercle sauf ('+','-','|',' ') : »
motif affecté de Lire
Tant que motif = « + », motif = « - », motif = « | », motif = « »,
Ftant que
Ecrire « + »
Pour colonne de 1 à inférieur à la largeur
Ecrire « - »
Fpour
Écrire « + »
Ecrire « \n »
Pour ligne de 0 à inférieur à la longueur
Ecrire « | »
Pour colonne de 0 à inférieur à largeur
Si racine carré ((ordonnée-ligne)(ordonnée-colonne)+(abscisse-ligne)(abscisse-colonne))
Ecrire motif
Sinon
Ecrire « »
Fsi
Fpour
Ecrire « | »
Ecrire « \n »
Fpour
Pour colonne de 1 à inférieur ou égale à largeur
Ecrire « - »
Fpour
Ecrire « + »
Ecrire « \n »
Le programme:
#include <iostream>
#include <cmath>
using namespace std;
main (){
int colonne, ligne,longueur, largeur;
float abscisse,ordonnee,rayon;
char motif;
do
{
cout << "Entrez la largeur positive et inférieur à 80 de la zone d'affichage : "<<endl;
cin >> largeur;
}
while(largeur<0 || largeur>80);
do
{
cout << "Entrez la longueur positive et inférieur à 60 de la zone d'affichage : "<<endl;
cin >> longueur;
}
while(longueur<0 || longueur>60);
cout << "Entrez l'abscisse du centre du cercle : "<<endl;
cin >> abscisse;
cout << "Entrez l'ordonnée du centre du cercle : "<<endl;
cin >> ordonnee;
do
{
cout << "Entrez le rayon positif du cercle : "<<endl;
cin >> rayon;
}
while(rayon<0);
do
{
cout << "Entrez le motif du cercle sauf ('+','-','|',' ') : " << endl;
cin >> motif;
}
while(motif=='+' || motif=='-' || motif=='|' || motif==' ');
cout << '+';
for(colonne=1;colonne<=largeur;colonne++)
{
cout << '-';
}
cout << '+';
cout << endl;
for(ligne=0;ligne<longueur;ligne++)
{
cout << '|';
for(colonne=0;colonne<largeur;colonne++)
{
if(sqrt((ordonnee-ligne)*(ordonnee-ligne)+(abscisse-colonne)*(abscisse-colonne))<=rayon)
{
cout << motif;
}
else
{
cout << ' ';
}
}
cout << '|' << endl;
}
cout << '+';
for(colonne=1;colonne<=largeur;colonne++)
{
cout << '-';
}
cout << '+';
cout << endl;
}
Sinon j'ai aussi un problème pour le char motif je ne sais pas comment le définir dans mon lexique des variables.
Les endrois ou j'ai mis des ??? c que je suis pas sur de moi.
Merci de vos réponses
Ne faites pas attention à la mise en forme
Repondez moi svp je doit le rendre pour vendredi
algo:
1/ Description du résultat.
Afficher une zone rectangulaire dont la hauteur et la largeur est donnée par l’utilisateur. A l’intérieur de cette zone rectangulaire sera afficher un disque de centre, de rayon et de motif donnés.
2/ Idée de l’algorithme.
- Afficher la première largeur de la zone rectangulaire.
- Afficher les débuts de ligne
- Afficher le disque à l’endroit choisit par l’utilisateur
- Afficher les fins de ligne
- Afficher la deuxième largeur de la zone rectangulaire.
3/ Lexique local des variables.
colonne (entier) Intermédiaire (???)
ligne (entier) Intermédiaire (???)
longueur (entier) donnée
largeur (entier) donnée
abscisse (reel) donnée
ordonnée (réel) donnée
rayon (réel) donnée
motif (????) donnée
4/ Algorithme
Faire
Écrire « Entrez la largeur positive et inferieur à 80 de la zone d'affichage : »
Largeur affecté de Lire
Tant que 0<largeur<80
Ftant que
Faire
Ecrire « Entrez la longueur positive et inférieur a 60 de la zone d'affichage : »
longueur affecté de Lire
Tant que 0<longueur<60
Ftant que
Ecrire « Entrez l'abscisse du centre du cercle : »
Abscisse affecté de Lire
Ecrire « Entrez l'ordonnée du centre du cercle : »
ordonnée affecté de Lire
Faire
Ecrire « Entrez le rayon positif du cercle : »
rayon affecté de lire
Tant que rayon<0
Ftant que
Faire
Ecrire « Entrez le motif du cercle sauf ('+','-','|',' ') : »
motif affecté de Lire
Tant que motif = « + », motif = « - », motif = « | », motif = « »,
Ftant que
Ecrire « + »
Pour colonne de 1 à inférieur à la largeur
Ecrire « - »
Fpour
Écrire « + »
Ecrire « \n »
Pour ligne de 0 à inférieur à la longueur
Ecrire « | »
Pour colonne de 0 à inférieur à largeur
Si racine carré ((ordonnée-ligne)(ordonnée-colonne)+(abscisse-ligne)(abscisse-colonne))
Ecrire motif
Sinon
Ecrire « »
Fsi
Fpour
Ecrire « | »
Ecrire « \n »
Fpour
Pour colonne de 1 à inférieur ou égale à largeur
Ecrire « - »
Fpour
Ecrire « + »
Ecrire « \n »
Le programme:
#include <iostream>
#include <cmath>
using namespace std;
main (){
int colonne, ligne,longueur, largeur;
float abscisse,ordonnee,rayon;
char motif;
do
{
cout << "Entrez la largeur positive et inférieur à 80 de la zone d'affichage : "<<endl;
cin >> largeur;
}
while(largeur<0 || largeur>80);
do
{
cout << "Entrez la longueur positive et inférieur à 60 de la zone d'affichage : "<<endl;
cin >> longueur;
}
while(longueur<0 || longueur>60);
cout << "Entrez l'abscisse du centre du cercle : "<<endl;
cin >> abscisse;
cout << "Entrez l'ordonnée du centre du cercle : "<<endl;
cin >> ordonnee;
do
{
cout << "Entrez le rayon positif du cercle : "<<endl;
cin >> rayon;
}
while(rayon<0);
do
{
cout << "Entrez le motif du cercle sauf ('+','-','|',' ') : " << endl;
cin >> motif;
}
while(motif=='+' || motif=='-' || motif=='|' || motif==' ');
cout << '+';
for(colonne=1;colonne<=largeur;colonne++)
{
cout << '-';
}
cout << '+';
cout << endl;
for(ligne=0;ligne<longueur;ligne++)
{
cout << '|';
for(colonne=0;colonne<largeur;colonne++)
{
if(sqrt((ordonnee-ligne)*(ordonnee-ligne)+(abscisse-colonne)*(abscisse-colonne))<=rayon)
{
cout << motif;
}
else
{
cout << ' ';
}
}
cout << '|' << endl;
}
cout << '+';
for(colonne=1;colonne<=largeur;colonne++)
{
cout << '-';
}
cout << '+';
cout << endl;
}
Sinon j'ai aussi un problème pour le char motif je ne sais pas comment le définir dans mon lexique des variables.
Les endrois ou j'ai mis des ??? c que je suis pas sur de moi.
Merci de vos réponses
Ne faites pas attention à la mise en forme
Repondez moi svp je doit le rendre pour vendredi
4 réponses
Ca me semble plutot correct. Apres faut voir la facon dont on te l'a enseigné et ton prof.
Question perso : tu es dans quel établissement, IUT ? Quelle ville ?
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Question perso : tu es dans quel établissement, IUT ? Quelle ville ?
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~
Ben moi jui a Belfort. Et toi t'es ou?
Pour mes tit pb:
colonne et ligne on peut considerer ça comme des intermediaire non??
Et pour le programme je pourrais mettre koi comme commentaire pour ma formule, pour expliquer un peu ce que je fait.
Merci de vos réponses
Pour mes tit pb:
colonne et ligne on peut considerer ça comme des intermediaire non??
Et pour le programme je pourrais mettre koi comme commentaire pour ma formule, pour expliquer un peu ce que je fait.
Merci de vos réponses
ah ben c parfait alors tu peu me dire si mon algo va plaire a Mr Contassot????
Tu pense kil faut que je divise mon algo (1er partie creer le rectangle, 2ème partie creer le disque) ou comme ça c bon????
Et pour mes intermediaire c bon, c bien des intermediaire et pas otre chose????
Merci bcp de repondre assez vite je le redonne demain et j'aimerais avoir une bonne notes!!!!
Tu pense kil faut que je divise mon algo (1er partie creer le rectangle, 2ème partie creer le disque) ou comme ça c bon????
Et pour mes intermediaire c bon, c bien des intermediaire et pas otre chose????
Merci bcp de repondre assez vite je le redonne demain et j'aimerais avoir une bonne notes!!!!
Le truc pour les algo en fait, c'est les présenter avec un plan, comme il a du te montrer certainement une fois. Et s'il ne l'a pas fait, c'est simplement pour voir votre facon de penser et de résonner.
Normalement s'il vous a déjà montrer un algo de projet, ca doit se présenter sous cette forme :
1 : Enoncé
2 : Buts
3 : Idée de l'algo
4 : Algo
4.1 Partie 1
4.1.1
4.1.2
...
4.2 Partie 2
Tout se fait en fonction de l'idée de l'ago au départ. Celle-ci doit etre tres simple et résumer le fonctionnement global du projet. Dans ton cas c'est relativement simple puisque le traitement du projet ne nécessite pas beaucoup de boucle, d'appel, etc.
En gros pour ton projet, tu aurais une idée comme suis :
- L'utilisateur entre les données
- Affichage du rectangle
Puis tu dévelloppe ton algo à partir de ca de facon dégressive :
Partie 1 : Entrée des données par l'utilisateur
lexique local des variables :
....
algo :
demander à l'utilisateur d'entrer une valeur au clavier pour la longueur
longueur <-- l'utilisateur entre une valeur au clavier
...
Partie 2 : Afficher le rectangle
Ici tu fais un bref descriptif énoncant que cette partie peut se subdivisée en deux grandes partie : les calculs et l'affichage
(puis tu écris un algo générale)
lexique local des variables :
...
algo :
calculerRectangle()
afficherRectangle()
Sous-partie 1 : Fonction calculerRectangle
.... blabla et tu recommence, toujours de facon progressive.
Sous-partie 2 :
... idem.
Bref, voilà un résumé de la méthode à appliquer pour cet IUT, et je pense qu'elle est bonne, elle permet de ne rien oublier (en tout cas généralement on n'oublie rien en faisant ainsi, c'est mon avis apres...)
Pour ce qui est de ton devoir pour demain, laisse comme tu as fais pour l'instant, ca ne sert à rien de vouloir tout refaire pour le lendemain, tu risque de faire des erreurs et de rendre un truc plus pourri :D (conseil d'expert en la matière xD)
Bonne chance et t'inquiète pas trop va... c'est que le début !
* s'en va en ricannant *
Normalement s'il vous a déjà montrer un algo de projet, ca doit se présenter sous cette forme :
1 : Enoncé
2 : Buts
3 : Idée de l'algo
4 : Algo
4.1 Partie 1
4.1.1
4.1.2
...
4.2 Partie 2
Tout se fait en fonction de l'idée de l'ago au départ. Celle-ci doit etre tres simple et résumer le fonctionnement global du projet. Dans ton cas c'est relativement simple puisque le traitement du projet ne nécessite pas beaucoup de boucle, d'appel, etc.
En gros pour ton projet, tu aurais une idée comme suis :
- L'utilisateur entre les données
- Affichage du rectangle
Puis tu dévelloppe ton algo à partir de ca de facon dégressive :
Partie 1 : Entrée des données par l'utilisateur
lexique local des variables :
....
algo :
demander à l'utilisateur d'entrer une valeur au clavier pour la longueur
longueur <-- l'utilisateur entre une valeur au clavier
...
Partie 2 : Afficher le rectangle
Ici tu fais un bref descriptif énoncant que cette partie peut se subdivisée en deux grandes partie : les calculs et l'affichage
(puis tu écris un algo générale)
lexique local des variables :
...
algo :
calculerRectangle()
afficherRectangle()
Sous-partie 1 : Fonction calculerRectangle
.... blabla et tu recommence, toujours de facon progressive.
Sous-partie 2 :
... idem.
Bref, voilà un résumé de la méthode à appliquer pour cet IUT, et je pense qu'elle est bonne, elle permet de ne rien oublier (en tout cas généralement on n'oublie rien en faisant ainsi, c'est mon avis apres...)
Pour ce qui est de ton devoir pour demain, laisse comme tu as fais pour l'instant, ca ne sert à rien de vouloir tout refaire pour le lendemain, tu risque de faire des erreurs et de rendre un truc plus pourri :D (conseil d'expert en la matière xD)
Bonne chance et t'inquiète pas trop va... c'est que le début !
* s'en va en ricannant *
merci bcp oui je v laisser comme ça pour se soir, ça sert à rien de risquer .....
De plus on a pa encore appris comme ça ms il nous avai donné des exemples avec le projet quil faisait comme ça c pour ça que j'ai u l'idée.
Sinon pour les intermediaire c bon, c bien des intermediaire??????
Et je peut mettre koi comme commentaire à coté de ma formule pour préciser un peu.
Voila merci bcp
rpd encore une derniere fois STP
De plus on a pa encore appris comme ça ms il nous avai donné des exemples avec le projet quil faisait comme ça c pour ça que j'ai u l'idée.
Sinon pour les intermediaire c bon, c bien des intermediaire??????
Et je peut mettre koi comme commentaire à coté de ma formule pour préciser un peu.
Voila merci bcp
rpd encore une derniere fois STP
Oui il s'agit bien d'intermédiaire, je ne sais plus si c'est le mot exact mais il me semble qu'on utilisait ca aussi.
La formule, quelle formule ?
En tout cas, si j'ai un conseil à te donner, c'est de commenter à fond ton code. Même les choses qui te paraissent connes à première vue.
Les commentaires sont tres bien vu simplement parce que c'est un point très important au sein d'un programme, notemment lorsque ce dernier est repris par quelqun d'autre. Ca permet aux autres de comprendre pourquoi tu as fait de telle facon et pas d'une autre. Donc des commentaires sont les bienvenus, surtout pour des passages un peu chauds à comprendre ou plus techniques que d'autres. Pour l'instant ca ne te parle pas car tu n'en es qu'au début et c'est pas bien compliqué, mais tu verra très vite.
Bon courage et désolé j'ai pas pu répondre avant.
La formule, quelle formule ?
En tout cas, si j'ai un conseil à te donner, c'est de commenter à fond ton code. Même les choses qui te paraissent connes à première vue.
Les commentaires sont tres bien vu simplement parce que c'est un point très important au sein d'un programme, notemment lorsque ce dernier est repris par quelqun d'autre. Ca permet aux autres de comprendre pourquoi tu as fait de telle facon et pas d'une autre. Donc des commentaires sont les bienvenus, surtout pour des passages un peu chauds à comprendre ou plus techniques que d'autres. Pour l'instant ca ne te parle pas car tu n'en es qu'au début et c'est pas bien compliqué, mais tu verra très vite.
Bon courage et désolé j'ai pas pu répondre avant.
Je n'ai pas tout lu en détail, mais
serait raisonnablement remplacé par
On ne voit pas l'utilité d'extraire une racine carrée ici. Le carré du rayon ne varie pas.
Johan
sqrt((ordonnee-ligne)*(ordonnee-ligne)+(abscisse-colonne)*(abscisse-colonne))<=rayon)
serait raisonnablement remplacé par
//déclaration de R2 R2= rayon*rayon; //calculé à l'extérieur des boucles imbriquées (ordonnee-ligne)*(ordonnee-ligne)+(abscisse-colonne)*(abscisse-colonne)<=R2
On ne voit pas l'utilité d'extraire une racine carrée ici. Le carré du rayon ne varie pas.
Johan