Graphique f(x)=x^p

Signaler
Messages postés
1
Date d'inscription
vendredi 6 janvier 2006
Statut
Membre
Dernière intervention
21 octobre 2006
-
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
-
On me demande de réaliser un programme affichant sous forme textuelle des graphiques représentant les fonction du type f(x)=x^p,
à partir des paramètres x, p, ux (unité de l'axe X: chaque unité représentera une colonne sur l'axe X) et uy (unité de l'axe y: chaque unité représentera une ligne sur l'axe Y) qui seront lis sur input..

En gros ça devra ressembler à ça:
^
|                                                                                           ...
|                                                                                X
|                                                                      X
|                                                               X
|                                                       X
|                                          X
+--------------------------------------------------------------------->

On me conseille d'utiliser la fonction double pow(double x, double y)

Comment je dois m'y prendre ?

Merci d'avance.

9 réponses

Messages postés
192
Date d'inscription
dimanche 16 janvier 2005
Statut
Membre
Dernière intervention
28 février 2011
7
Avec une API ou directement dans la console?

--------------------
Quand la merde vaudra de l'or les pauvres naitrons sans trou cu cul. Coluche.
Mon projet : Squirrel's Cliff
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
faut travailler avec gotoxy ou fonction analogue :)

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Utiliser :

1. un changement de repère pour centrer votre repère.
En effet, sous WINDOWS on a
     (0,0) -------------------> +
           |               |
           |               |
           |----------------
           |
           V
           +

2. dessiner votre foction point par point avec la fonction SetPixel (hDC, x, y, RGB (255, 0, 0)).
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Ce que j'ai dit s'applique uniquement au mode graphique sous WINDOWS.
Messages postés
1787
Date d'inscription
lundi 22 novembre 2004
Statut
Membre
Dernière intervention
31 janvier 2009
2
oui mais il est en mode texte, c'est bien marqué :)

ULARGE_INTEGERJokyQi=QI("Joky"
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Donc rien à ajouter : gotoxy est la solution.

Une question quel environnement tu utilises?
car si utilise Visual C++ / DevC++

Je pense que la fonction gotoxy n'existe pas. Elle est définie dans le fichier "conio.h" de turbo C++.

Une solution pour s'en sortir :
ceci est la fonction gotoxy écrit avec l'API WINDOWS :


#include
<windows.h>


void
GotoXY(
int
x,
int
y)
{

     COORD coord;

     coord.X = x;

     coord.Y = y;     

     SetConsoleCursorPosition(
           
GetStdHandle(STD_OUTPUT_HANDLE), coord);



     return;
}
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
Il est aussi possible de construire le graph en créant directement des
chaines de caracteres et en les affichant dans la console.

Par exemple il faut faire quel que chose comme ca:


char graph[10][31];

for(i=0;i<10;i++)

{

    for(j=0;j<30;j++)

        graph[i][j]=' ';    //initialiser le graph avec des espaces

    graph[i][30]='\0';


for(i = 0; i<30; i++)

{

    aux=(int)pow(x,p);

    if (aux<10 && aux>0)

        graph[9-aux][i]='x';

}

for(i=0; i<10; i++) printf("%s\n", graph[i]);


C'est juste le code approximatif. Je paris qu'il y a plein de
fautes(desolé mais la je suis en pose de dejeuné :-D) mais on peut
comprendre le principe.

Bonne chance
Messages postés
2333
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
26 juillet 2013
36
Salut :

Je pense que votre solution n'est pas fonctionnelle.
Avec gotoxy les choses sont plus simples.

Il faut juste prendre en compte le chamgement de repère.

On va transformer (O, _x, _y) en (A, _x,-_y):


Remarque la notation _V veut dire vecteur V.




R.O.N. (O, _x, _y)          R.O.N. (A, _x, -_y)





O(0,0)


------------ x    = ==>      y
|                           |
|       .M(u, v)            |    .M(X,Y)
|                           |
|                           |
|   .


A(a, b)         


A(0,0)
|---------- x
 


y                  

Exprimons X et Y en fonction de (u, v, a, b):

_OM = u._x + v._y
_AM = X._x - Y._y  (*)

donc _AM = _AO + _OM (relation de chasles)
         = -a._x - b._y + u._x - v._y
         = (u - a)._x - (b + v)._y     (**)

L'identification de (*) et (**) donne :
X = u - a
Y = -(b + v)
C'est la transformation recherchée ...

Bonne chance ...
Cordialement.
Messages postés
212
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
28 mai 2011
2
n'est pas fonctionnelle? ca depend de ce qu'on demande de faire. En
tout cas a la fac je fesais toujours de cette facon et meme on nous
l'imposait.