Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Mit Hilfe von Schleifen e-Funktion malen ... WIE????

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
04.06.2005, 23:14 Uhr
(un)wissender
Niveauwart


So, als letzte Hilfe einen Wert eingetragen mit dem *-Symbol.


C++:
#include <stdio.h>
#include <string.h>

int main()
{
    const float step = 0.25f; //<= 1.0!        
    const int y_max = 5, x_max = 5;
    int i,j;
    const int x_size = (int)(y_max / step), y_size = (int)(x_max / step);
    char content[x_size][y_size];
    //Wir wollen an x=4.53 und y=1.78 eine punkt zeichnen
    const float x = 4.53f, y = 1.78f;
    
    //mit punkten füllen
    for(i = 0; i < (int)(y_max / step); ++i)
    {
        for(j = 0; j < (int)(x_max / step); ++j)
        {
            content[i][j] = '.';
        }    
    }    
    //Sternchen für Wert, skalierten der indexe;
    content[(int)(((y_max / step) / y_max) * y)][(int)(((x_max / step) / x_max) * x)] = '*';
    
    //y-Achse + Werte
    printf(" y\n");
    printf("\n");
    printf(" ^\n");
    for(i = (int)(y_max / step) - 1; i >= 0; --i)
    {      
        if(0 == (i % (int)((y_max / step) / y_max)))
        {
            printf(("%d|"), i / (int)((y_max / step) / y_max));
        }
        else
        {          
            printf(" |");              
        }  
        
        for(j = 0; j < (int)(x_max / step); ++j)  
        {
            printf("%c", content[i][j]);  
        }  
        
           printf("\n");  
    }
    
    //x-Achse  
    printf("  ");
    for(i = 0; i < (int)(x_max / step); ++i)
    {      
        printf("-");
    }
    printf("> x\n");
    printf("  ");
    for(i = 0; i < (int)(x_max / step); ++i)
    {
        if(0 == (i % (int)((x_max / step) / x_max)))
        {
            printf(("%d"), i / (int)((x_max / step) / x_max));
        }  
        else
        {        
           printf(" ");            
        }      
    }
}


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
04.06.2005, 23:44 Uhr
Brownsuga



Hi,
langsam leuchtet mir ein wie eine schleife funktioniert. ist es denn auch möglich einen beliebigen wert für die formel y=a*exp(-x/b) einzugeben? also natürlich für a, b, x, y.
wie packe ich das dann in den code rein?
Thx alot!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
04.06.2005, 23:53 Uhr
(un)wissender
Niveauwart


Entweder einlesen mit scanf oder über die command line params übergeben bekommen.

C++:
int main(int args, char* args[]);


--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
05.06.2005, 14:19 Uhr
0xdeadbeef
Gott
(Operator)


Lauf Aufgabenstellung soll die X-Achse doch vertikal verlaufen, oder? Dann gehts auch deutlich einfacher:

C++:
#include <stdio.h>
#include <math.h>

int main(void) {
  double x, y, step, a, b, x0, x_end;
  int i;

  printf("step a b x_0 x_end: ");
  fflush(stdout);
  scanf("%lf %lf %lf %lf %lf", &step, &a, &b, &x0, &x_end);

  for(x = x0; x < x_end; x += step) {
    y = a * exp(-x * b);
    for(i = 0; i < y; ++i)
      putchar('.');
    puts("*");
  }

  return 0;
}


--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
05.06.2005, 14:43 Uhr
(un)wissender
Niveauwart


Ok, aber skaliert haste da nicht (führt zu Fehldarstellungen) und die Beschriftung fehlt auch.
Aber Brownsuga sollte mit dem Kram die Aufgabe jetzt wirlich hinbekommen.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: