PMG1719/Programmiersprachen/Seite Java

Aus ProgrammingWiki

Wiki-Quelltext dieser Seite.

<language>Java</language>
== Aufgabe 1 ==

Es soll eine Funktion '''ringarea''' definiert werden, die die Fläche berechnet, die zwischen den beiden konzentrischen Kreisen mit den Radien r1 und r2 liegt. 
 Dazu werden zunächst die Radien quadriert. 
 Diese werden von '''ringarea''' dann für die Berechnung benutzt.



<code id="5a9a80d3baf2f">

double ringarea (double r1, double r2)
{
double t1=Math.pow(r1,2);
double t2=Math.pow(r2,2);
double z=(t1-t2)*3.14;
return z;

}
</code>

<run id="5a9a80d3bb13c">
ringarea (3,3) 

</run>


== Aufgabe 2 ==
Ermitteln Sie die Summe einer beliebigen Anzahl natürlicher Zahlen:
<math>S=\sum^n_{i=0}i=1 + 2 + 3 + ... + n</math>.<br />


<code id="5a9a80d3bafb4">
int sumzahl (int n)
{
int summe = 0;

for (int i = 0; i<=n; i++) {
 summe = summe + i;
}
return summe;
}
</code>

<run id="5a9a80d3bb19b"> 
</run>


== Aufgabe 3 ==
Bei einer Mathematikolympiade wurde folgende Aufgabe gestellt:

 ''20 m Stoff werden auf einen Stab von 5 cm Durchmesser aufgewickelt.''<br>
 ''Der Stoff ist 1 mm dick.''
 ''Wie dick wird die Rolle?''

Eine Realisierung des Sachverhalts als Programm könnte folgendermaßen aussehen:

<code id="5a9a80d3bb040"> 
double dick () {
 double d;
 double l;
 l = 0.0;
 d = 0.05;
 while(l < 20){
  l = l + Math.PI * d;
  d = d + 0.002;
 }
 return d;
}


</code>
<run id="5a9a80d3bb1f7">
System.out.println("Die Rolle ist: "+dick()+"m dick.");

</run>



<font color="darkgreen">Sie werden festgestellt haben, dass unsere Lösung für die Problemstellung keinem Algorithmus entspricht. Es wird lediglich ein konkretes Problem durch Programmierung gelöst!</font>
<br>
<font color="darkgreen">'''Die Aufgabe wird im Folgenden also verallgemeinert. Der aufzustellende Algorithmus löst dann eine Klasse gleichartiger Probleme, wobei die Abarbeitung abhängig von den Eingaben eindeutig, endlich erfolgt und unter gleichen Bedingungen zum gleichen Ergebnis führt.'''</font>

'''''Stoff beliebiger Länge wird auf einen Stab mit beliebigem Durchmesser aufgewickelt.''<br>'''
'''''Der Stoff ist beliebig dick.'''''
'''''Wie dick wird die Rolle?''<br><br>'''

<code id="5a9a80d3bb0bb">
double RolleDurchmesser;
double StoffLaenge;
double StoffDicke;

double dick3 () {
 // hier ergänzen
 return 0.0;
}

</code>
<run id="5a9a80d3bb25b">
RolleDurchmesser = Double.parseDouble(JOptionPane.showInputDialog(null, "Welchen Durchmesser hat die Rolle in cm?"));
StoffLaenge      = Double.parseDouble(JOptionPane.showInputDialog(null, "Wie lang ist der Stoff in Meter?"));
StoffDicke       = Double.parseDouble(JOptionPane.showInputDialog(null, "Wie dick ist der Stoff in Millimetern?"));

System.out.println("Die Rolle ist: "+dick3()+"m dick.");

</run>

== Aufgabe 4 ==
Ein Turtlebeispiel

<canvas></canvas>

<run id="5a9a80d3bb2b5"> 
canvas.clear(); // Zeichenfläche löschen
turtle.move(200,100); // Turtle in die Mitte stellen
turtle.penWidth(5);
turtle.penColor(255,0,0);  
turtle.forward(50);  
turtle.right(90); 
turtle.penColor(255,255,0);  
turtle.forward(50);  
turtle.right(90); 
turtle.penColor(0,255,0);  
turtle.forward(50);  
turtle.right(90); 
turtle.penColor(0,0,255);  
turtle.forward(50);  
turtle.right(90);
turtle.hide();
</run>