# Flächeninhalt eines Rechtecks berechnen



## SamyMZ (18. Feb 2010)

Hallo

bin gerade hier fleißig am üben und würde gerne wissen ob dies richtig ist wenn ich den Flächeninhalt eines Rechtecks ausrechnen will
was nur aus Höhe und Breite besteht
Für eventuelle Korrekturen wäre ich sehr dankbar

```
Public static void main (String[]arg 
  int Breite = a
  int Länge = b
  fläche (int a, int b)
  fläche= a*b
System.out.print
```

und falls es falsch bitte kurz erklären


----------



## eRaaaa (18. Feb 2010)

SamyMZ hat gesagt.:


> und falls es falsch bitte kurz erklären



sorry aber da ist jede Zeile falsch 

von wo kommt a und b?
Wo ist die Methode fläche? (bzw fläche (int a, int b) <--- so ruft man keine Methoden auf...)
Wo sind die Semikolons am Ende ?
Public --> pulic 
Wo sind die Klammern wie { }
System.out.print <-- ???:L???:L


----------



## SamyMZ (18. Feb 2010)

weiß nicht genau wie man diese klammern { } schreibt
hab die eben nur kopiert
kann mir das vielleicht jemand sagen
also ich soll einfach nur ein programm schreiben in dem der flächeninhalt eines rechtecks berechnent
und hoffentlich sieht man da ein bisschen guten willen
bin ja bei null und geb mir ja mühe
und jemand kann mir da ein bisschen helfen


----------



## Marco7757 (18. Feb 2010)

{ = AltGr + ä
} = AltGr + $

Auf der Tastatur suchen kannst du selber


----------



## Landei (18. Feb 2010)

An dem Programm ist aber auch _alles_ falsch.


```
public class Test {
   public static int berechneFlaeche(int a, int b) {
      return a*b;
   }

   public static void main(String[] args) {  
       int breite = 42;
       int hoehe = 23;
       int flaeche = berechneFlaeche(breite, hoehe);
       System.out.println("Die Fläche eines Rechtecks mit der Höhe " + 
          hoehe + " und der Breite " + breite + " ist " + flaeche);
   }
}
```


----------



## SamyMZ (18. Feb 2010)

DANKE
aber wo kommt denn die 42 und 23 her
und es muss doch irgendwo multipliziert werden oder???


----------



## eRaaaa (18. Feb 2010)

SamyMZ hat gesagt.:


> DANKE
> aber wo kommt denn die 42 und 23 her


;(


> und es muss doch irgendwo multipliziert werden oder???


Siehe Zeile 3 -> Aufruf Zeile 9

--> :rtfm:


----------



## SamyMZ (18. Feb 2010)

hab noch ein paar weitere Fragen, aber hab zu denen keinen Lösungsansatz
darf ich die trotzdem stellen??
ohne gegen die regeln des forums zu verstoßen


----------



## agentone (18. Feb 2010)

SamyMZ hat gesagt.:


> also ich soll einfach nur ein programm schreiben in dem der flächeninhalt eines rechtecks berechnent



das klingt wie: lehrer hat gesagt -> ich soll machen...



> würde gerne wissen ob dies richtig ist



Hast du keinen Java-Compiler?

Ich würde vorschlagen, dass du dir mal ein Java-Anfänger-Buch kaufst!


----------



## Landei (18. Feb 2010)

Ich denke, du bist reif für die Insel...


----------



## SamyMZ (18. Feb 2010)

ich lern gerade für ne uniklausur
für wirtschaftsinformatik und das ist mein allerletzter versuch
der letzte schein und dann bin ich mit der uni fertig
hab mir ein buch gekauft und auch in der bibliothek in literatur geguckt
aber kapier nicht so wirklich um was es geht
und die klausur ist nächsten mittwoch
und das meiste kann ich ja halbwegs
hab nur mit java und den komplexitäten meine probleme


----------



## SamyMZ (18. Feb 2010)

seid ihr denn auch so gnädig und helft mir
ich muss ja auch nicht wirklich kapieren um was es geht
da die klausuraufgaben jedes jahr sehr ähnlich sind
und wenn ich die aufgaben kann wäre das schon ne riesen hilfe
und ich geb mir auch mühe und versuche nen ansatz zu finden


----------



## Marco7757 (18. Feb 2010)

Du musst an der Klausur programmieren und willst das in einer Woche lernen? Na dann viel Spass. Zieh dir irgendwo die absoluten Basics rein (Operanden, Schleifen, Ausnahmen, Methoden usw...)

Wenn du das für Java nicht immer Internet findest (gibts sicher irgendwo), dann versuch es halt mal mit einer anderen Programmiersprache, die Basics sind (meist) die gleichen.


----------



## SamyMZ (18. Feb 2010)

Das Programmieren ist nur ein Teil der Klausur
und eigentlich sind die Aufgaben ja relativ einfach
nur für mich halt nicht

und ich hock da schon seit 2 wochen dran


----------



## SamyMZ (18. Feb 2010)

früher in der Schul war halt für mich Chemie ein totales Rätsel
und jetzt halt leider Java
und dieses Forum ist echt meine letzte Hoffnung
und wenn ihr mir nur bei 5-6Aufgaben die relativ flott gehen helfen würdet dann wäre mir schon extremst geholfen


----------



## Marco7757 (18. Feb 2010)

Dann stell die Aufgaben mal rein!


----------



## SamyMZ (18. Feb 2010)

OK DANKE

Was macht das folgende Programm 


```
Public static void main (String[] arg  {
  long zahl = 4711 ;
  long val = 0 ;
  while ( zahl>0) {
     val = val + zahl % 10 ;
     zahl = zahl / 10;
     }
System.out.print (" zahl: + val);
}
```


----------



## eRaaaa (18. Feb 2010)

...also so etwas wie zahl/ 10 kannst du dir doch sicher denken? 
zahl % 10 --> Division mit Rest ? Wikipedia

Zusammen mit dem Ergebnis welches dir das Programm ausgibt (wobei sich dort noch ein kleiner Fehler eingeschlichen hat), solltest du das also leicht selbst herausfinden ?!


----------



## Marco7757 (18. Feb 2010)

Das Programm startet eine Schleife. Diese wird solange ausgeführt, wie die Variable zahl Grösser als 0 ist.
In der Schleife wird zur Variable val der Rest aus der Rechnung zahl/10 (geteilt durch) addiert. Also beim ersten Schleifendurchlauf: 0+4711/10
Da Punktrechnungen stärker als Strichrechnungen binden (Mathematik), wird zuerst der Rest berechnet, danach addiert.
Danach wird die Variable zahl durch 10 geteilt und die Schleife beginnt von vorne.

Ausgabe ganz am Ende: 0 : 13

Korrigierte Version:

```
public static void main (String[] arg)  {
  long zahl = 4711 ;
  long val = 0 ;
  while ( zahl>0) {
     val = val + zahl % 10 ;
     zahl = zahl / 10;
   }
System.out.print (zahl+": "+ val);
}
```


----------



## SamyMZ (18. Feb 2010)

DANKE
und wie kommst du auf 0 und 13
darf ich denn noch ne zweite Aufgabe fragen??


----------



## Marco7757 (18. Feb 2010)

val+(zahl%10) 

10%7 --> 10/7 = 1, Rest 3 ..., also 4711/10 --> Rest 1

val + 1

Danach 4711 durch 10 teilen, ergibt 471 und die Schleife wiederholen.

Klar darfst du noch ne zweite Frage stellen ...


----------



## eRaaaa (18. Feb 2010)

zahl = 4711
val =0

Begin Schleife:

val += 4711%10 --> 0+1 = 1
zahl= zahl/10 --> 471
--------

val += 471%10 --> 1+1 = 2
zahl = zahl/10 --> 47
--------

val += 47%10 --> 7+2 = 9
zahl = zahl/10 --> 4
--------

val += 4%10 --> 9+4 = 13
zahl = zahl/10 --> 0
--------

Ende Schleife:

val = 13

.......


----------



## SamyMZ (18. Feb 2010)

Was macht das folgende Programm und welche Komplexität hat es??

```
public static void main (String[] arg) {
   feld  = new int [] (7,3,2,47,11)
   int anz=5;
   int zahl;
   int zahl1;
   for ( int i=0 < anz; -1 ; j++)
      {
        zahl=feld [j];
        zahl1=feld [j+1]
       if (zahl1 < zahl)
            {feld [j] = zahl 1;
              feld [j+1] = zahl;
              }
         }
   }
```


----------



## SamyMZ (18. Feb 2010)

Was macht das folgende Programm und welche Komplexität hat es??

```
public static void main (String[] arg) {
   feld  = new int [] (7,3,2,47,11)
   int anz=5;
   int zahl;
   int zahl1;
   for ( int i=0 < anz; -1 ; j++)
      {
        zahl=feld [j];
        zahl1=feld [j+1]
       if (zahl1 < zahl)
            {feld [j] = zahl 1;
              feld [j+1] = zahl;
              }
         }
   }
```


----------



## SamyMZ (18. Feb 2010)

da war ein fehler drin 
das problem geht so


```
public static void main (String[] arg) {
   feld  = new int [] (7,3,2,47,11);
   int anz=5;
   int zahl;
   int zahl1;
   for ( int i=0 < anz; -1 ; j++)
        for (int j=0; j<anz-1; j+++
           {
             zahl=feld [j];
             zahl1=feld [j+1]
             if (zahl1 < zahl)
                  {feld [j] = zahl 1;
                   feld [j+1] = zahl;
              }
         }
   }
```


----------



## ireas (18. Feb 2010)

SamyMZ hat gesagt.:


> da war ein fehler drin
> das problem geht so
> 
> 
> ...



Das kann so nicht sein. Da fehlen vorne und hinten Klammern, die i-for-Schleife wird nicht verwendet, und einen +++-Operator kenne ich auch nicht. Gibt’s die Aufgaben nicht irgendwo online, wo Du hinlinken könntest?

Übrigens: Du kannst Deine Posts auch bearbeiten, indem Du auf „Ändern“ klickst – Du mußt nicht immer nochmal neu schreiben!


----------



## mg_666 (18. Feb 2010)

Wieso machst Du einfach nicht mal ein paar Ausgaben rein, die Du dann in der Konsole bestaunen kannst?


----------



## ireas (18. Feb 2010)

Ich vermute mal, das Programm soll so aussehen:


```
public static void main (String[] arg) {
    feld = new int[](7, 3, 2, 47, 11);
    int anz = 5;
    int zahl;
    int zahl1;

    for (int i = 0; i < anz - 1 ; i++) {
        for (int j = 0; j < anz - 1; j++) {
            zahl = feld[j];
            zahl1 = feld[j+1]
            if (zahl1 < zahl) {
                feld[j] = zahl1;
                feld[j+1] = zahl;
            }
        }
    }
}
```

Das wäre dann ein Algorithmus, der die gegebene Liste aufsteigend sortieren soll. Wenn ich richtig gucke, dann hat der O(n^2).


----------



## SamyMZ (18. Feb 2010)

Was macht das folgende Programme und welche Komplexität hat es??


```
public static void main(String[] arg) {
   feld = new int [] {7,3,2,47,11};
   int anz=5;
   int zahl;
   int zahl1;
   for(int i=0;i<anz;i++) 
        for(int j=0;j<anz-1;j++)
            { 
             zahl = feld[j]; 
             zahl1=feld[j+1]; 
             if(zahl1 < zahl) 
                 {
                   feld[j]=zahl1; 
                   feld[j+1] = zahl; 
                   } 
               }
 }
```

hab das eben nochmal aus der datei kopiert
die aufgabe stammt von der uniseite und da kann man nur drauf zugreifen wenn man an der uni student ist
aber hab das eben kopiert und hier eingefügt


----------



## ireas (18. Feb 2010)

Sag Deinem Prof mal, daß er einen grausigen Stil hat … Die Antwort, die ich oben gegeben habe, dürfte aber stimmen. Oder hatte ich Tomaten auf den Augen? *g*


----------



## SamyMZ (18. Feb 2010)

ok danke
aber kannst du mir das vielleicht bitte ein bisschen ausführlicher erklären
auf die aufgabe gibt es immerhin 9 Punkte also 9minuten


----------



## ireas (18. Feb 2010)

Das Programm macht bildlich gesprochen folgenes:

Du hast eine Liste mit Zahlen. Diese Liste hat n Einträge. Dann macht das Programm n mal Folgendes: Es nimmt jeden Eintrag und vergleicht den mit seinem Nachfolger. Ist der Eintrag größer als der Nachfolger, werden die beiden vertauscht.

Das kannst Du ja jetzt gedanklich etwas machen, dann merkst Du, was passiert.


----------



## SamyMZ (18. Feb 2010)

OK DANKE

nächste Aufgabe
hoffentlich reiz ich hier die Netiquette nicht zu sehr aus

Gegeben sei folgendes Programm. n sei die Eingabe.

```
x=2;
y=n;
z=0;
i=0;
while i<n do
    while z =/ (ungleich) y do
           if z>2
           {
                x=x+1;
             }
             z=z+1;
          end;
          =i+1;
          z=0;
end
```


i. Wie groß ist der Aufwand in Elementaroperationen T(n) für n>10? (7 min)
ii. Wie ist die asymptotische Laufzeitkomplexität (in Abhängigkeit von n)? (3 min)
iii. Welchen Wert hat die Variable x am Ende der Programmausführung (es kann davon
ausgegangen werden, dass n>10)? (5 min)


----------



## ireas (18. Feb 2010)

I. Da bin ich mir noch nicht sicher, T(n) ist auf jeden Fall größer 2n. Dazu kommt noch die innere while-Schleife, aus der ich spontan nicht ganz schlau werde.
II. T(n) dürfte Element von O(n) sein, allerdings ist das von I. abhängig …
III. Ausprobieren! Himm mal Stift und Papier und rechne das mal für ein beliebiges n > 10 aus.


----------



## SamyMZ (18. Feb 2010)

OK DANKE DANKE!!!!
es gibt noch ein paar Aufgaben
aber werde mich jetzt mal an die Lösungsvorschläge setzen um versuchen die irgendwie nachvollziehen zu können
ich bin da später oder morgen wieder
da


----------



## partsch (19. Feb 2010)

```
x=2;
y=n;
z=0;
i=0;
while i<n do
    while z =/ (ungleich) y do
           if z>2
           {
                x=x+1;
             }
             z=z+1;
          end;
          =i+1;
          z=0;
end
```
 Wenn das wirklich Java - Code sein soll, dann ist das ein Verbrechen!!!


----------



## agentone (20. Feb 2010)

@partsch
Nimm mal die Semikolons raus und stell das dann ins VisualBasic-Forum.


----------

