Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo. Ich lerne gerade in Java zu programmieren und kenne mich noch sehr wenig aus. Habe eine Aufgabe bei der ich garnicht weiss wie ich anfangen soll,ich habe keinen Ansatz keine Ideen garnichts. Könnte mir vielleicht jemanden helfen?Bitte Bitte.LG
Die Aufgabe ist:
Das folgende Programm soll eine mathematische Funktion in der Konsole zeichnen. Im Programm selbst soll eine statische Funktion f(x) mit der Signatur static double f(double x) definiert werden,die z.B. return x*Math.sin(x)/2; berechnet. Weiters gibt es Variablen a und b für die linke und rechte Grenze der Darstellung. Skaliere die Differenz von b-a auf eine sinnvolle Breite von 80-100 Zeichen und ebenso in die vertikale Richtung von etwa 40-50 Zeichen (max(f(x))-min(f(x)) für jeden x aus [a,b]). Die Funktion selbst soll als "Kette" von zusammenhängenden *-Zeichen dargestellt werden.Beispiel:
***
** *****
* ***
* **
* *
* *
***
Es ist außerdem günstig Grenzen, sowie Minima und Maxima vertikaler Werte anzugeben.
Hallo. Ich lerne gerade in Java zu programmieren und kenne mich noch sehr wenig aus. Habe eine Aufgabe bei der ich garnicht weiss wie ich anfangen soll,ich habe keinen Ansatz keine Ideen garnichts. Könnte mir vielleicht jemanden helfen?Bitte Bitte.LG
Die Aufgabe ist:
Das folgende Programm soll eine mathematische Funktion in der Konsole zeichnen. Im Programm selbst soll eine statische Funktion f(x) mit der Signatur static double f(double x) definiert werden,die z.B. return x*Math.sin(x)/2; berechnet. Weiters gibt es Variablen a und b für die linke und rechte Grenze der Darstellung. Skaliere die Differenz von b-a auf eine sinnvolle Breite von 80-100 Zeichen und ebenso in die vertikale Richtung von etwa 40-50 Zeichen (max(f(x))-min(f(x)) für jeden x aus [a,b]). Die Funktion selbst soll als "Kette" von zusammenhängenden *-Zeichen dargestellt werden.
Es ist außerdem günstig Grenzen, sowie Minima und Maxima vertikaler Werte anzugeben.
Die Aufgabestellung verlangt, alle Werte f(x), mit x aus [a,b], zuerst zu sammeln, bevor sie ausgeben werden, damit das Minimum und Maximum ermittelt werden kann. Das ginge einfach mit einem Array, wobei dann die Indices x-Werte sind und Elemente y-Werte. Probier das mal.
Wo hast Du denn die Aufgabe her? Studierst Du zufällig in Hessen?
Und was ist das konkrete Problem? Hast Du noch nie einen Computer benutzt, noch nie was programmiert, oder kannst Du es vielleicht doch etwas konkreter sagen?
Schreibe eine statische Funktion. Kannst Du das? Sorge dafür, dass die Funktion korrekt rechnet und den gewünschten Wert zurückgibt.
Bau als nächstes die Grenzen ein und berechne alle notwendigen Werte.
Schreibe die Werte Zeile für Zeile in die Konsole.
Wenn Du da angekommen bist, dann schauen wir mal nach der positionierung und den "*".
Ich glaube ich habe es geschafft bin mir nicht sicher ob es auch richtig ist. funktionieren tut es aber.
Programmiert habe ich bis jetzt noch nie habe eine Vorlsung im März angefangen und kenne mich sehr wenig aus. Nein ich studiere nicht in Hessen sondern in Wien.
public static void main(String[] args) {
boolean debug_mode = false;
int breite = 100;
int hoehe = 20;
char graph[][] = new char[breite][hoehe];
int a = -20;
int b = 20;
double min = 9999;
double max = -9999;
//int range = Math.abs(a) + Math.abs(b);
int range = hoehe - 1;
double schrittweite= ((double) b- (double)a) / (double)breite;
int j_tmp = 0;
String linegraph = "";
Vielleicht könnten ihr mich bei einer anderen aufgabe jedoch helfen mit der ich auch nicht viel anfangen kann.
und zwar:
Eine beliebige Funktion ƒ : R ! R soll in einer separaten Methode static
double f(double x) angegeben werden. Gib eine Auswertungstabelle für diese Funktion
aus. Es soll der Anfangswert, der Endwert und die Schrittweite in Variablen vorgegeben
werden. Gib die Tabelle zeilenweise als formatierten String mit der Funktion
System.out.printf() auf die Art aus, dass die Zahlen am Komma untereinander
ausgerichtet sind, zwei Nachkommastellen haben und es eine vertikale Trennlinie gibt.
Beispiel:
x | f(x)
----------|------------
2.00 | 2.91
4.50 | 1.21
6.00 | 0.72
8.50 | -11.92
10.00 | -108.03
1. Du solltest Variablen und Methoden etwas sprechender benennen. Zum einen weißt Du dann immer auf den ersten Blick was gerade gemacht wird - auch nach einem halben Jahr. Zum anderen bekommt man als hilfsbereiter Forenteilnehmer schneller eine Idee, was Sache ist.
Deine Methode zur Berechnung der Werte heißt einfach nur "f". Klar, das ist bequem zu tippen. "computeFunction" oder ähnliches wäre aber bei weitem hilfreicher. Gleiches gilt für Variablen die einfach nur a oder b heißen.
2. Ich persönlich verwende nach if-Bedingungen immer geschweifte Klammern. Damit läuft man nicht Gefahr, daß man das mal vergisst, wenn eine if-Bedingung mehr als eine Zeile Code enthält. Das kann u. U. zu unschönen Fehler führen. Ist aber prinzipiell Deine Sache.
3. Alles in die main-Methode zu quetschen ist auch nicht schön, für einen Programmieranfänger aber wohl o.k..