Hallo ,
Ich hab 2 wichtige Fragen & zwar zu 1.: System.out.printf
Auf dem "Arbeitsblatt" steht folgendes:
Variablenliste: Die Variablenliste wird in formatierter Form auf dem Bildschirm ausgegeben. Der Cursor bleibt auf dem Bildschirm nach der Ausgabe stehen, Zeilenvorschübe müssen durch Platzhalterzeichen erzwungen werden.
Formatierungszeichenkette: In Gänsefüßchen eingschlossen werden der auszugebende konstante Text sowie Platzhalter für die Variablen der Variablenliste & Zeilenvorschübe angegeben.
Platzhalter: %n -neue Zeile
%4d -Ganze Zahhl, die inges 4 Stellen rechtsbündig steht
%10.2f -Gleitkommazahl, die insgesamt 10 Stellen mit 2 Nachkommastellen rechtsbündig steht
%10s - Zeichenkette, die insge 10 Stellen rechtsbündig steht
Ein Bsp. dazu:
Ich kann mir leider überhaupt nicht begreiflich machen, was das bedeuten soll. Kann es mir bitte jemand in "nicht-Computer-Sprache" erklären?
2.
Frage: antwort = getString().charAt(0);
String ist hier doch eigentlich die Kontobezeichnung. Auf welche Zeichenkette bezieht sich denn hier charAt(0) ? Etwa auf das J aus (J/N)? Falls ja, warum ist das so? Kann mir das bitte jemand noch einmal an einem Beispiel erklären?
Okay, das ist jetzt alles ziemlich lang geworden. & für euch sind das sicherlich lächerliche Fragen.. aber ich arbeite erst seit gestern mit Java. Als bitte Verständnis
Ganz liebe Grüße & Dankeschön im Voraus!
Anna
Ich hab 2 wichtige Fragen & zwar zu 1.: System.out.printf
Auf dem "Arbeitsblatt" steht folgendes:
Variablenliste: Die Variablenliste wird in formatierter Form auf dem Bildschirm ausgegeben. Der Cursor bleibt auf dem Bildschirm nach der Ausgabe stehen, Zeilenvorschübe müssen durch Platzhalterzeichen erzwungen werden.
Formatierungszeichenkette: In Gänsefüßchen eingschlossen werden der auszugebende konstante Text sowie Platzhalter für die Variablen der Variablenliste & Zeilenvorschübe angegeben.
Platzhalter: %n -neue Zeile
%4d -Ganze Zahhl, die inges 4 Stellen rechtsbündig steht
%10.2f -Gleitkommazahl, die insgesamt 10 Stellen mit 2 Nachkommastellen rechtsbündig steht
%10s - Zeichenkette, die insge 10 Stellen rechtsbündig steht
Ein Bsp. dazu:
Java:
import java.io.*; // für die java-spezifische Ein- und Ausgabe
public class erloeskostengewinn
extends getxx // für die münster-spezifischen Eingaberoutinen
{
public static void main(String args[]) throws IOException
{
int anz, i;
String [] status = new String[51];
String [] name = new String[51];
double [] erloes = new double[51];
double [] kosten = new double[51];
double [] gewinn = new double[51];
double [] provision = new double[51];
// Ein Vektor mit 50 Elementen ist von 0 bis 49 indiziert.
// Um den Index 50 zu ermöglichen, wird 51 bei der Dimensionierung angegeben
double ges_gew, ges_prov;
char antwort;
// ********** Eingabebereich **********
antwort = 'J';
i = 0;
while ((antwort == 'J') && (i <= 50)) // i<=50, weil erst DANACH i erhöht wird und somit max. 51 erreicht
{
i++;
System.out.print("Name : "); name[i] = getString();
System.out.print("Erloese : "); erloes[i] = getDouble();
System.out.print("Kosten : "); kosten[i] = getDouble();
System.out.println();
System.out.print("Noch ein Mitarbeiter (J/N) ");
antwort = getString().toUpperCase().charAt(0);
System.out.println();
}
// ********* Verarbeitungsbereich **********
anz = i;
ges_gew=0.0; ges_prov=0.0;
for (i=1; i<=anz; i++)
{
gewinn[i]=erloes[i]-kosten[i];
if (gewinn[i]>=50000)
{
status[i]="Guter Gewinn";
provision[i]=gewinn[i]*15.0/100.0;
}
else
{
if (gewinn[i]>0)
{
status[i]="Gewinn";
provision[i]=gewinn[i]*10.0/100.0;
}
else
{
if (gewinn[i]==0)
{
status[i]="Null";
provision[i]=0.0;
}
else
{
status[i]="Verlust";
provision[i]=0.0;
}
}
}
ges_gew=ges_gew+gewinn[i];
ges_prov=ges_prov+provision[i];
}
// ********** Ausgabebereich **********
System.out.println(); System.out.println();
System.out.println(" Name Erloes Kosten Gewinn Status Provision");
System.out.println("================================================================");
for (i=1; i<=anz; i++)
{
System.out.printf("%10s %9.2f %9.2f %9.2f %13s %9.2f %n",
name[i], erloes[i], kosten[i], gewinn[i], status[i], provision[i]);
}
System.out.println("----------------------------------------------------------------");
System.out.printf("Gesamtgewinn: %9.2f Provisionen: %9.2f",ges_gew,ges_prov);
System.out.println();
}
}
Ich kann mir leider überhaupt nicht begreiflich machen, was das bedeuten soll. Kann es mir bitte jemand in "nicht-Computer-Sprache" erklären?
2.
Java:
/*
Aufgabenstellung:
Ermittlung des Kontostandes am Ende der Zinsperiode bei gegebenem
Zinssatz und Anfangskapital
Unterschiedliche Soll- und Habenzinssätze sind zu berücksichtigen.
Die Ermittlung ist für mehrere Konten vorzunehmen, wobei Soll-
und Habenzins nur einmalig einzugeben sind.
Am Ende ist anzuzeigen, wie viele Soll- und wie viele Habenkonten
behandelt wurden (absolut und in Prozent) sowie jeweils die Summe der
entsprechenden Beträge.
Variablenliste:
Habenzinssatz in % numerisch, Gleitkomma zinssatz_haben
Sollzinssatz in % numerisch, Gleitkomma zinssatz_soll
Anfangskapital numerisch, Gleitkomma k0
Endkapital numerisch, Gleitkomma k1
Kontobezeichnung alphanumerisch kontobezeichnung
Antwort alphanumerisch antwort
Anzahl Sollkonten numerisch, Festkomma anz_soll
Anzahl Habenkonten numerisch, Festkomma anz_haben
Prozent Sollkonten numerisch, Gleitkomma proz_soll
Prozent Habenkonten numerisch, Gleitkomma proz_haben
Summe Sollkonten numerisch, Gleitkomma summe_soll
Summe Habenkonten numerisch, Gleitkomma summe_haben
Struktogramm:
+----------------------------------------------+
| Eingabe zinssatz_haben, zinssatz_soll |
+----------------------------------------------+
| anz_soll=0; anz_haben=0; |
+----------------------------------------------+
| summe_soll=0.0; summe_haben=0.0; |
+----------------------------------------------+
| antwort='J' |
+----------------------------------------------+
| Solange antwort=='J' |
| +-------------------------------------------+
| | Eingabe kontobezeichnung, k0 |
| +-------------------------------------------+
| | \ k0 > 0 ? / |
| | J \ / N |
| +---------------------+---------------------+
| | k1 = k0 * (1 + | k1 = k0 * (1 + |
| | (zinssatz_haben/100)| (zinssatz_soll/100) |
| +---------------------+---------------------+
| | anz_haben + 1 | anz_soll + 1 |
| +---------------------+---------------------+
| | summe_haben + k0 | summe_soll + k0 |
| +---------------------+---------------------+
| | Ausgabe kontobezeichnung, k1 |
| +-------------------------------------------+
| | Ausgabe Frage, Eingabe antwort |
+--+-------------------------------------------+
| proz_soll=anz_soll/(anz_soll+anz_haben)*100 |
+----------------------------------------------+
| proz_haben=anz_haben/(anz_soll+anz_haben)*100|
+----------------------------------------------+
| Ausgabe anz_soll, anz_haben |
+----------------------------------------------+
| Ausgabe proz_soll, proz_haben |
+----------------------------------------------+
| Ausgabe summe_soll, summe_haben |
+----------------------------------------------+
*/
import java.io.*; // für die java-spezifische Ein- und Ausgabe
public class konto11
extends getxx // für die münster-spezifischen Eingaberoutinen
{
public static void main(String args[]) throws IOException {
double zinssatz_haben, zinssatz_soll;
double k0, k1;
String kontobezeichnung;
char antwort; // nur ein Buchstabe
int anz_soll, anz_haben;
double proz_soll, proz_haben;
double summe_soll, summe_haben;
System.out.print("Habenzinssatz in Prozent...... "); zinssatz_haben = getDouble();
System.out.print("Sollzinssatz in Prozent....... "); zinssatz_soll = getDouble();
anz_soll=0; anz_haben=0;
summe_soll=0.0; summe_haben=0.0;
antwort = 'J';
while (antwort == 'J')
{
System.out.println();
System.out.print("Kontobezeichnung.............. "); kontobezeichnung = getString();
System.out.print("Kapital zu Beginn............. "); k0 = getDouble();
if (k0 > 0)
{
k1 = k0 * (1 + zinssatz_haben / 100);
anz_haben = anz_haben + 1; // auch anzhaben++; möglich
summe_haben = summe_haben + k0;
}
else
{
k1 = k0 * (1 + zinssatz_soll / 100);
anz_soll = anz_soll + 1; // auch anzsoll++; möglich
summe_soll = summe_soll + k0;
}
System.out.println();
System.out.printf("Konto: %10s%nKontostand am Ende: %10.2f%n%n",
kontobezeichnung, k1);
System.out.print("Noch ein Konto (J/N)... "); antwort = getString().charAt(0);
System.out.println();
}
proz_soll = (double) anz_soll / (anz_soll + anz_haben) * 100;
proz_haben = (double) anz_haben / (anz_soll + anz_haben) * 100;
// ACHTUNG: ohne (double) wird der Quotient erst wieder in INT umgewandelt,
// bevor er in die double-Variable eingetragen wird,
// d.h. es käme stets 0 als Prozentwert heraus
System.out.println(); System.out.println();
System.out.printf("Anzahl Sollkonten: %d in %%: %6.1f%n",anz_soll, proz_soll);
System.out.printf("Anzahl Habenkonten:%d in %%: %6.1f%n",anz_haben, proz_haben);
System.out.printf("Summe Betrag Sollkonten: %10.2f%n", summe_soll);
System.out.printf("Summe Betrag Habenkonten:%10.2f%n", summe_haben);
}
}
Frage: antwort = getString().charAt(0);
String ist hier doch eigentlich die Kontobezeichnung. Auf welche Zeichenkette bezieht sich denn hier charAt(0) ? Etwa auf das J aus (J/N)? Falls ja, warum ist das so? Kann mir das bitte jemand noch einmal an einem Beispiel erklären?
Okay, das ist jetzt alles ziemlich lang geworden. & für euch sind das sicherlich lächerliche Fragen.. aber ich arbeite erst seit gestern mit Java. Als bitte Verständnis
Ganz liebe Grüße & Dankeschön im Voraus!
Anna