Autor Beitrag
melanie05
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 15.10.09 16:38 
Erstellen Sie ein C#-Konsol-Programm zur Berechnung der Fakultäten natürlicher Zahlen mit
maximal 10000 Dezimalstellen. Verwenden Sie dazu einen int-Vektor der Länge 2000, der die
Dezimalstellen aufnimmt. Bei der Gefahr des Überlaufs eines Vektorelements bilden Sie einen
Übertrag, der in das nachfolgende Element eingetragen wird.
Zur Ausgabe sind die Vektorelemente aufzubereiten und unter Ausnutzung der vollen Bildschirmbreite
in der richtigen Reihenfolge auszugeben.
ich habe bis jetzt das prenzip bzw den Algoritmus nicht kapiert bin Anfänger .
bin sehr dankbar für jede hilffe
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Do 15.10.09 17:02 
Hallo

also Int32 hat einen Wertebereich von -2.147.483.648 bis 2.147.483.647. wie du leicht siehst sind das deutlich weniger als 100000 Stellen um genau zu sein nur 10.
Du sollst quasi ein Array von Integerzahlen erstellen [int1,int2,in3, .... int1000].
Wenn es nun in einem Integerwert einen Überlauf gibt also n! * (n+1) > 214483647 musst du die "übergelaufene Stelle" in mit deinem nächsten Element in dein Array Packen.

Mal als Beispiel wenn Int nur einen Wertebereich von 0 bis 9 hätte mit Array von 5 Integern:
Fac(1) = [1,0,0,0,0]
Fac(2) = [2,0,0,0,0]
Fac(3) = [6,0,0,0,0]
Hier kommt jetzt der Überlauf -> 24
Fac(4) = [4,2,0,0,0]

Jetzt musst du die Berechnung die du im normalen Schulaltag mit einem Zehnersystem durchführst quasi "nur" auf ein System mit Basis 2.147.483.648 überführen ;-)

PS.: Anstatt ein Integerarray int[], ist natürlich List<int> deutlich sbesser aber deine Aufgabe heißt Integerarray mit 2000 also:

int[] intArray = new int[2000];

(hierbei wirst du dir vielleicht in einer Variablen noch speichern müssen welches Intergerwert der letzte gefüllte war, für die nächste Berechnung.)
melanie05 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 15.10.09 22:06 
hallo
ich werde mich freuen auf mehrere antworten ,bzw mehr cod !
bitte um Hilfe.
melanie05 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Do 15.10.09 22:24 
user profile iconmelanie05 hat folgendes geschrieben Zum zitierten Posting springen:
Erstellen Sie ein C#-Konsol-Programm zur Berechnung der Fakultäten natürlicher Zahlen mit
maximal 10000 Dezimalstellen. Verwenden Sie dazu einen int-Vektor der Länge 2000, der die
Dezimalstellen aufnimmt. Bei der Gefahr des Überlaufs eines Vektorelements bilden Sie einen
Übertrag, der in das nachfolgende Element eingetragen wird.
Zur Ausgabe sind die Vektorelemente aufzubereiten und unter Ausnutzung der vollen Bildschirmbreite
in der richtigen Reihenfolge auszugeben.
ich habe bis jetzt das prenzip bzw den Algoritmus nicht kapiert bin Anfänger .
bin sehr dankbar für jede hilffe



user profile iconNemag hat folgendes geschrieben Zum zitierten Posting springen:
Hallo

also Int32 hat einen Wertebereich von -2.147.483.648 bis 2.147.483.647. wie du leicht siehst sind das deutlich weniger als 100000 Stellen um genau zu sein nur 10.
Du sollst quasi ein Array von Integerzahlen erstellen [int1,int2,in3, .... int1000].
Wenn es nun in einem Integerwert einen Überlauf gibt also n! * (n+1) > 214483647 musst du die "übergelaufene Stelle" in mit deinem nächsten Element in dein Array Packen.

Mal als Beispiel wenn Int nur einen Wertebereich von 0 bis 9 hätte mit Array von 5 Integern:
Fac(1) = [1,0,0,0,0]
Fac(2) = [2,0,0,0,0]
Fac(3) = [6,0,0,0,0]
Hier kommt jetzt der Überlauf -> 24
Fac(4) = [4,2,0,0,0]

Jetzt musst du die Berechnung die du im normalen Schulaltag mit einem Zehnersystem durchführst quasi "nur" auf ein System mit Basis 2.147.483.648 überführen ;-)

PS.: Anstatt ein Integerarray int[], ist natürlich List<int> deutlich sbesser aber deine Aufgabe heißt Integerarray mit 2000 also:

int[] intArray = new int[2000];

(hierbei wirst du dir vielleicht in einer Variablen noch speichern müssen welches Intergerwert der letzte gefüllte war, für die nächste Berechnung.)



user profile iconmelanie05 hat folgendes geschrieben Zum zitierten Posting springen:
hallo
danke nemag.
ich werde mich freuen auf mehrere antworten ,bzw mehr cod !
wie wird der rest im c# code berechnet .
bitte um Hilfe.
Nemag
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 132
Erhaltene Danke: 2



BeitragVerfasst: Fr 16.10.09 10:07 
Hallo

wie du an diversen Thread hier im Forum siehst, sind wir nicht da um deine Hausaufgaben zu machen. Aber wir helfen dir gerne bei konkreten Problemen.

Hier mal eine Buchempfehlung openbook.galileocomp...ng.de/visual_csharp/ damit du dich mit der Programmierung mit C# vertraut machen kannst.

Du kannst ja erstmal mit kleinen Sachen anfangen und dann an schwierigen Stellen nachfragen.
Programmier zum Beispiel erstmal die Fakultät mit einem Integer (inkl. Eingabe der Zahl -> ReadLine()) und darauf bauen wir dann auf.

MfG

Ps.: Deine letzte Antwort ist glaub ich kontraproduktiv zum Lösen deiner Aufgabe ;-)