Java - Schule

Status
Für weitere Antworten geschlossen.

bolop

Registered +
Registriert
Juli 2005
Beiträge
27
hi


also wir lernen in der shcule java und schriebn bald eine arbeit darüber aber wir hatten schon unsere letzte stunde in informatik !

wir haben ein arbeitsblatt bekommen !

leider verstehe ich das nicht so ganz

...

mein prob. wie können die variablen gezählt werden die z.b. über durschschnitts temperatur liegen. (und dieser wert dan angezeigt werden)

????







mfg
 
Naja hmmm ich will jetzt mal nicht den pessimisten miemen, aber wenn du das nicht hinbekommst, wirds sehr schwierig werden :-(
Und Aufgabe 1 ist in der Regel auch immer die leichteste...
Naja soweit so gut.
Ein Java Problem ist es jedenfalls nicht,
das kann mit jeder Sprache gelöst werden.

Die Grundidee:
Array anlegen mit den Temperaturwerten und schon kanns losgehen.
Durschnittstemp:
Array von Anfang bis Ende durchlaufen und Werte aufsummieren, danach durch die Länge des Arrays teilen -> fertig
Die nächsten 3 Aufgaben sind prinzipiell immer das gleiche Schema nur mit anderer Prüfung.
Wieder Array von Anfang bis Ende durchlaufen und Wert prüfen mit Mittelwert, bei true, counter erhöhen.
Am Ende Ausgabe des counters.

Das wars.
Wenn ich fertig bin mit Pokern, kann ich das ganze noch in Source Code giessen :-D

*edit*
Bin zwar immer noch am Pokern, aber das ging auch nebenbei:
PHP:
class Test {
public static void main(String args[]) {
double[] MonatsTemp = { 21.0, 20.5, 20.0, 15.0, 16.0, 17.0, 18.0, 19.0, 
20.0, 19.5, 20.0, 21.0, 18.0, 19.0, 20.0, 18.0, 16.0, 15.0, 16.0, 
17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 18.0, 16.0, 14.0, 16.0 };
double mittelwert = 17.0;
/* Durchschnitt
* the old way
*/ 
double summe = 0.0;
for ( int i = 0; i < MonatsTemp.length; i++){
summe = summe + MonatsTemp[i]; 
}

/* the new way
* 
* Die "neue" foreach Schleife
* for( double tempelement: MonatsTemp){
summe = summe + tempelement;
}
* 
*/

double durchschnitt = summe / MonatsTemp.length ;

/* 
* Anzahl der Tage unter, über oder gleich dem Mittelwert
*/
int counter1 = 0;
int counter2 = 0;
int counter3 = 0;

for ( int i = 0; i < MonatsTemp.length; i++){
if(MonatsTemp[i] < mittelwert)
counter1++;
if(MonatsTemp[i] > mittelwert)
counter2++;
if(MonatsTemp[i] == mittelwert)
counter3++;
}


System.out.println("Die Durchschnittstemperatur liegt bei: " + durchschnitt + " Grad");
System.out.println("Anzahl Tage unter stat. Mittelwert: " + counter1);
System.out.println("Anzahl Tage über stat. Mittelwert: " + counter2);
System.out.println("Anzahl Tage gleich stat. Mittelwert: " + counter3);
}
}

Gibt noch einiges zu verbessern, aber hatte keine Lust mehr da noch gross weiter Zeit reinzuhängen. Das Ergebnis ist auch nicht auf Richtigkeit überprüft worden.
Naja und man kann eigentlich auch alles in eine Schleife hauen...
Es ist im Kommentar noch die neue foreach Schleife mit dabei, so würde man das derzeit machen, da es so eleganter ist. Etwas verständlicher mag aber die alte Version sein, deswegen hab ich die genommen.

Gruß,
stelzi
 
vielen dank

aber so weit wrane wir noch nicht im unterricht !

deshalb konnte ich das noch nicht aber ich fands super von dir das du mir das so shcnell geschrieben hast !

dein code ist jetzt bei uns stunden inhalt geworden big THX !


;)

mfg

PS: war natürlich alles rochtig auch von den werten her nochmal danke ich habs wenigsten jetzt verstanden
 
Ah, dann hab ich das irgendwie falsch verstanden.

Freut mich geholfen zu haben. Vielleicht ist ja einiges etwas klarer geworden,
auch wenn es net umbedingt das beste ist für den Lerneffekt die komplette Lösung hingeklatscht zu bekommen ;-)
Btw, die meiste und nervigste Arbeit war das Array anzulegen mit den ganzen Werten abgeschrieben von dem Angabenblatt ^^
 
SO wir ham ne arbeit geschriebn hehe hab 11 punkte reingehaune lief alles
super aber da gibts was was ich net versteht in dem letzten programm so ich
hab das mal eingesacannt und mein quellcode dazu geschmiert...!!!








Das ist zu aufgabe 3.1

PHP:
// Zinsberechnung4800
// Zweck: Klassenarbeit

public class Zinsberechnung4800{
// bennenung der class
static public void main(String[] args){
// Variablen zuweisen

double kapital = 4800;
double zinsen = 1.05;
double kapitalMitZinsen = kapital*zinsen;
double kapitalMitZinsenZwei = kapitalMitZinsen*zinsen;


//Ausgabe der Ergebnisse
System.out.println("Startkapital " +kapital+ " -- Zinsatz 5% " );
System.out.println("Erziehltes Kapital nach einem Jahr " +kapitalMitZinsen );
System.out.println("Erziehltes Kapital nach zwei Jahren " +kapitalMitZinsenZwei );

//abfrage und Ausgabe der Ergebnisse

if (kapitalMitZinsenZwei >= 5000)
{
System.out.println("Super Sie haben 5000 Euro oder mehr Gespart !!!");
}

else
{
System.out.println("Leider haben Sie noch nicht Gernug gespart das wird schon sparen Sie weiter.");
}
}
}





Das ist zu aufgabe 3.1

PHP:
// Zinsberechnung4000
// Zweck: Klassenarbeit

public class Zinsberechnung4000{
// bennenung der class
static public void main(String[] args){
// Variablen zuweisen

double kapital = 4000;
double zinsen = 1.05;
double kapitalMitZinsen = kapital*zinsen;
double kapitalMitZinsenZwei = kapitalMitZinsen*zinsen;


//Ausgabe der Ergebnisse
System.out.println("Startkapital " +kapital+ " -- Zinsatz 5% " );
System.out.println("Erziehltes Kapital nach einem Jahr " +kapitalMitZinsen );
System.out.println("Erziehltes Kapital nach zwei Jahren " +kapitalMitZinsenZwei );

//abfrage und Ausgabe der Ergebnisse

if (kapitalMitZinsenZwei >= 5000)
{
System.out.println("Super Sie haben 5000 Euro oder mehr Gespart !!!");
}

else
{
System.out.println("Leider haben Sie noch nicht Gernug gespart das wird schon sparen Sie weiter.");
}
}
}





Das ist zu aufgabe 4.2 HIER BEKOOMME ICH 2ERGEBNISSE AUSGEGEBEN WARUM ?

PHP:
/**
* Transportkosten
* Zweck: Klassenarbeit */


public class Transportkosten {
// bennenung der class

static public void main(String[] args) {
// Variablen zuweisen und Rechnung

double ware = 10;
double warenwertl = 193;
double warenwert2 = 194;
double transportl = 29;
double transport2 = ware*0.15;
//abfrage und Ausgabe der Ergebnisse

if (ware  System.out.println("Ihre Versandkosten betragen " +transportl+ " Euro");
}
if ((ware > warenwert2) && (transport2>79))
{
System.out.println("Ihre Versandkosten betragen 79 Euro. ");
}
else { System.out.println("Ihre Versandkosten betragen " +transport2+ " Euro");
}
}
}
 
Also wenn du nur die Lösung zu deinem Problem haben willst,
das ist ganz einfach:

Wenn deine erste If Abfrage (ware Also wird
System.out.println("Ihre Versandkosten betragen " +transportl+ " Euro");
und
System.out.println("Ihre Versandkosten betragen " +transport2+ " Euro");
natürlich immer zusammen ausgeführt.

das ganze müsste sich einfach damit beheben lassen:

PHP:
if (ware  System.out.println("Ihre Versandkosten betragen " +transportl+ " Euro");
}
else if ((ware > warenwert2) && (transport2>79))
{
System.out.println("Ihre Versandkosten betragen 79 Euro. ");
}
else { System.out.println("Ihre Versandkosten betragen " +transport2+ " Euro");
}
somit sind alle 3 Abfragen miteinander verkettet und es kann nur eine Anweisung ausgeführt werden.

Wenn ich mir mal die Aufgabe angeguckt habe, kann ich mir ja mal selber nen Code überlegen :-D

Ansonsten sind mir auf die schnelle 3 Feinheiten aufgefallen.
1. Ich hab noch nie Klassennamen mit Zahlen kombiniert gesehen. (Vielleicht liegt das auch nur daran das ich noch nie riesige Programme gesehen habe ^^)
2. Du schreibst immer static public void main
Der Konforme Code lautet aber public static void main
Funktionieren tut beides. Aber Imho ist man sich darüber eingekommen das es so notiert wird :-)
3. Für Werte die nur geprüft werden, solltest du in der Regel keine Variable verwenden. Also so Geschichten wie warenwert2 und warenwert1. Das führt oft nur zu Fehler, da du immer überprüfen musst was für einen Wert du der Variable eigentlich zugewiesen hast. Setze hier lieber den Wert, also 193 z.b. direkt in die If Abfrage. Somit siehst du immer sofort was an der Stelle ausgewertet wird.

P.S.:
Ausgerechnet die interessanteste Aufgabe (3.2) musstet ihr nicht programmieren ^^
 
P.S.:
Ausgerechnet die interessanteste Aufgabe (3.2) musstet ihr nicht programmieren ^^


dazu sollten wir ein strucktogramm schreiben schreiben^^

war ne mittlere Katastrophe..

ich hab das nicht verstanden wie man das umsetzten soll...

mal ne andere frage das sind ja alles ausgaben wie sihet das mit eingaben aus ist das viel schwieriger ?

mfg




-----

mal noch ne andere frage ich hab das bisher nicht verstanden wie das funktionieren soll

was GENAU bedeutet diese zeile:
------------------------------------
public static void main(String[] args)
------------------------------------

und ich hab manchmal auch shcon geshehen das leuet nicht args sondern arguments schreiben ist das ein untershcied oder nicht ?
 
mal ne andere frage das sind ja alles ausgaben wie sihet das mit eingaben aus ist das viel schwieriger ?

Kurz gesagt, ja! :-D
Siehst du ja dann in meinem Codebeispiel, da hab ich mal ein Eingabebeispiel angefügt. Allerdings kann in Java auf die unterschiedlichste Weise eine Eingabe vom Benutzer entgegen genommen werden. Etwas "einfacher" wirds dann mit GUI Unterstützung.

mal noch ne andere frage ich hab das bisher nicht verstanden wie das funktionieren soll

was GENAU bedeutet diese zeile:
------------------------------------
public static void main(String[] args)
------------------------------------

und ich hab manchmal auch shcon geshehen das leuet nicht args sondern arguments schreiben ist das ein untershcied oder nicht ?

Wie das genau heisst ist völlig egal. Als Anfänger sieht man das nicht ich weiss, denn diese Frage stellt sich am Anfang irgendwie jeder.
Aber wenn man genau hinschaut und zumindest schon mal Funktionen kennen würde. Dann würde man sehen das das einfach nur ein Variablenname ist. Der könnte heissen wies dir grade lustig ist.
Das heisst einfach nur das die Funktion als Eingabe einen Array von Strings bekommt.
Ich glaub man könnte es sogar weglassen. Bin mir da grade nicht sicher.
Naja jedenfalls brauchst du das dafür, falls du deinem Programm beim Aufruf Parameter übergeben willst, die es dann verarbeitet.
Hab das in meinem Beispielcode gleich eingebaut, dann siehste das schon ungefähr wies geht.

Nur damit das dann funktioniert muss man das Programm auch jetzt mit Parameter aufrufen.
Also in etwa so in die Kommandozeile (ausm stegreif)
"java Test 5000 10000"
Damit wird dann Test ausgeführt mit 5000 als Startbetrag und 10000 als Zielbetrag.


PHP:
class Test {
static public void main(String args[]) {

if(args.length == 2){

double einzahlung = Double.parseDouble(args[0]);
double zielbetrag = Double.parseDouble(args[1]);

double zinssatz = 0.015;
double zinsinc = 0.005; 
double sparbetrag = einzahlung;
int jahr = 0;

for(int i = 1; sparbetrag < zielbetrag; i++){
zinssatz = zinssatz + zinsinc;
sparbetrag = sparbetrag + sparbetrag * zinssatz; 
jahr = i;
}


System.out.println("Sie haben mit einem Betrag von " + einzahlung + " Euro zum sparen begonnen.");
System.out.println("Ihr Sparziel betrug " + zielbetrag + " Euro.");
System.out.println("Dieses haben sie nach " + jahr + " Jahren erreicht.");
System.out.println("Ihr aktuelles Sparguthaben beträgt " + sparbetrag + " Euro");
System.out.println("Ihr letzter erhaltener Zinssatz war " + zinssatz*100 + "%.");
}
else 
System.out.println("Sie haben das Programm mit falschen Parametern aufgerufen. GENAU 2 Argumente erlaubt!");

/*
* Eingabebeispiel

BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
String Text;
try {
System.out.print(
"Geben Sie bitte einen Text ein: ");
Text = input.readLine();
} 
catch(IOException e){ 
};
// Falls z.b. ein Integer erwartet wurde
int zahleingabe = Integer.parseInt(Text);

*
*/

}
}
 
keine reaktion des themenstarters!? :confused: :mad:
! einige aktuelle/offene threads werden wahrscheinlich auf eine hintere seite rutschen !

falls noch wer was wichtiges zu sagen hat, PN an mich und ich mach hier vielleicht wieder auf!?

~ C L O S E D ~

ceeyaa.mex​
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten