5. AP-Praktikum und Mathepraktikum

Zu den folgenden drei Aufgaben, die morgen abgenommen werden, poste ich nun die fertigen Programmlösungen, ob diese immer auf das Optimale ausgelegt sind, lasse ich jetzt mal außen vor! Jedenfalls erfüllen sie die Aufgaben zu 100% und entsprechen den Vorgaben.

Die Aufgaben sind unter folgendem Link zu finden:
5. AP-Praktikum

Lösung Aufgabe 1:

#include <stdio.h>
#include <math.h>

int main() {

double  i, j, k, l, m, afk, zins, zinssatz, edk, jahr;

printf(“Geben Sie das Anfangskapital ein: n”);
scanf(“%lf”, &afk);
printf(“Geben Sie den Zinssatz ein: n”);
scanf(“%lf”, &zins);
printf(“Geben Sie das angestrebte Endkapital ein: n”);
scanf(“%lf”, &edk);

zinssatz=(zins/100)+1;
jahr=1;
j=1;
k=afk*zinssatz;
zins=k-afk;

for(i=1; i<=2; i++) printf(“n”);
printf(“Jahr”);
for (i=1; i<=15; i++) printf(” “);
printf(“Kapital am 01.01.”);
for (i=1; i<=15; i++) printf(” “);
printf(“Zinsen”);
for (i=1; i<=15; i++) printf(” “);
printf(“Kapital am 31.12.n”);
for(i=1; i<=2; i++)
{
for (m=1; m<=100; m++) printf(“-“);
printf(“n”);
}

for(l=afk; afk<edk;)
{
if(j==10)
{
printf(“n”); j=1;
}

if(jahr<10)
{
for(i=1; i<=2; i++) printf(” “);
printf(“%.0lf”, jahr);
}
else if(jahr<100)
printf(” %.0lf”, jahr);
else printf(“%.0lf”, jahr);

for(i=1; i<=17; i++) printf(” “);
printf(“%10.2lf”, afk);
for(i=1; i<=17; i++) printf(” “);
printf(“%10.2lf”, zins);
for(i=1; i<=16; i++) printf(” “);
printf(“%10.2lf”, k);
printf(“n”);

afk=k;
k=afk*zinssatz;
zins=k-afk;

                j=j++;
jahr=jahr++;
}
return 0;
}

Lösung Aufgabe 2:

public class Kokosnuss {
public static void main(String[] args)
{

int i, kokosnüsse, x, y, z;

y=0;
i=0;

while (i <= 1000)
{
kokosnüsse=i;
x=0;
z=i;
while(x!=3)
if(i%3==1)
{
i=((i-1)/3)*2; x=++x;
}
else x=3;
if(i%3==1)
{
y=++y;
TextIO.putln(y+”. Möglichkeit, der Haufen enthält “+kokosnüsse+” Kokosnüsse.”);
}
z=++z;
i=z;
}
}
}

Lösung Aufgabe 3:

#include <stdio.h>
#include <math.h>

int main() {

unsigned int x, y, z, zahl;

printf(“Legen Sie den Zahlenbereich fest, in dem Sie die größte Ratezahl eingeben!n”);
scanf(“%u”, &x);

zahl = zuf(x);
while(zahl == 0)
zahl = zuf(x);

y=0;
z=1;
while(y!=zahl)
{       system(“clear”);
if(y==0)
printf(“”);
else if (zahl>y)
printf(“Die gesuchte Zahl ist größer als %u!n”, y);
else printf(“Die gesuchte Zahl ist kleiner als %u!n”, y);
printf(“Dies ist Ihr %u. Versuch!n”, z);
printf(“n”);
printf(“Geben Sie eine Zahl ein:n”);
scanf(“%u”, &y);
if(y==zahl)
{
printf(“Die gesuchte Zahl war %u!n”, zahl);
return 0;
}
z=++z;
}
}

Bei der Aufgabe 3 war ein C-Programm für die Zufallszahlenerzeugung vorgegeben, dieses musste beim kompilieren dann mit in den Programmcode eingebunden werden. Dies wird auf der Konsole über folgenden Aufruf realisiert gcc Raten.c zuf.c, dabei steht das C-Programm welches mit eingebunden werden soll als letztes in dem Aufruf. Eine Alternative hierzu wäre noch der Unix-Befehl make mit einer entsprechend vorher erstellten Make-Datei.

Am letzten Freitag hat das zweite Mathepraktikum statt gefunden, eine interessante Aufgabe bestand darin das Collatz-Problem mit Maple für unser eigenes Geburtsjahr abzubilden. Einer der möglichen Lösungsansätze für die Abbildung in Maple sieht folgendermaßen aus:

c1:= n -> 3*n+1;
c2:= n -> n/2;

i:=”Geburtsjahr”;
x:=0;
while i > 1 do
if (i mod 2) = 0
then i := c2(i): x:=x+1: printf(“%d, “, i);
else i := c1(i): x:=x+1: printf(“%d, “, i);
fi:
od;
printf(“nn%d. Durchläufe”, x);

Dabei werden erstmals die beiden Funktionen definiert, um diese einfacher im Hauptprogramm verwenden zu können. Im Hauptprogramm selber wird getestet, ob es sich um eine gerade oder ungerade Zahl handelt. Nach dieser Prüfung wird dann die entsprechende Funktion angewandt und der Zähler für die Durchläufe um 1 erhöht. Die berechneten Zahlen sowie die Durchläufe werden ausgegeben, um die Ergebnisse verfolgen zu können. Da das Collatz-Problem immer wieder zum Schluss auf die Zahlenfolge 4, 2, 1 hinausläuft, bricht die Schleife dem entsprechend bei der ersten 1 ab. Ansonsten würde das Programm endlos lange laufen. Allerdings betrachet dieses Programm das Collatz-Problem nur für alle natürlichen Zahlen.

Facebooktwittergoogle_pluslinkedinmail

Leave a Reply