arrays und rand() ... < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:19 Do 26.08.2010 | Autor: | Stift82 |
Aufgabe | Schreiben Sie ein C-Programm, das einen Vektor mit max. 50000 Elementen per Zufallsgenerator( rand() aus Bibliothek stdlib.h) mit positiven ganzen Zahlen im Bereich von 0-9999 füllt und diese nach dem Austauschverfahren in absteigender Reihenfolge sortiert (größter Wert steht am Anfang).
Die tatsächliche Anzahl der zu sortierenden Zahlen soll variabel sein, d.h. während der Programmausführung eingegeben werden. |
Hallo Leute,
ich bin noch C-Neuling und habe mal 2 Fragen zu der o.g. Aufgabe:
1. welches Austauschverfahren sollte ich am besten wählen und wie kann ich es programmieren? (Beispiele im Net zu Quick- und Bubblesort haben mir leider nichts genützt)
2. ich bekomme beim bereits programmierten Vektor im schwarzen Fenster einen failure ausgegeben(nach der letzten zufälligen Zahl des Vektors, "die Variable v wäre kaputt". Woran liegt das? (Programm siehe Anhang)
Liebe Grüße
Stift
Dateianhänge: Anhang Nr. 1 (Typ: doc) [nicht öffentlich]
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 19:41 Do 26.08.2010 | Autor: | felixf |
Moin Stift,
> Schreiben Sie ein C-Programm, das einen Vektor mit max.
> 50000 Elementen per Zufallsgenerator( rand() aus Bibliothek
> stdlib.h) mit positiven ganzen Zahlen im Bereich von 0-9999
> füllt und diese nach dem Austauschverfahren in
> absteigender Reihenfolge sortiert (größter Wert steht am
> Anfang).
> Die tatsächliche Anzahl der zu sortierenden Zahlen soll
> variabel sein, d.h. während der Programmausführung
> eingegeben werden.
>
> ich bin noch C-Neuling und habe mal 2 Fragen zu der o.g.
> Aufgabe:
>
> 1. welches Austauschverfahren sollte ich am besten wählen
> und wie kann ich es programmieren? (Beispiele im Net zu
> Quick- und Bubblesort haben mir leider nichts genützt)
Da in der Aufgabenstellung von "dem Austauschverfahren" die Rede ist, ist offenbar ein ganz spezielles Verfahren gemeint, was bei euch in der Vorlesung besprochen wurde. Schau doch da mal.
> 2. ich bekomme beim bereits programmierten Vektor im
> schwarzen Fenster einen failure ausgegeben(nach der letzten
> zufälligen Zahl des Vektors, "die Variable v wäre
> kaputt". Woran liegt das? (Programm siehe Anhang)
Ein kleiner Hinweis: Wenn du das Programm in einem lesbaren Format (z.B. als txt-Datei oder c-Datei) anhaengen wuerdest, wuerd das sicher die Bereitschaft erhoehen, dass es sich jemand anschaut.
LG Felix
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:51 Do 26.08.2010 | Autor: | Stift82 |
Hallo felixf,
danke für Tipps. Die angehängte Datei befindet sich noch in der Prüfung, wird aber bald angezeigt werden....
Den Stoff hatten wir leider noch nicht in der Vorlesung, ungünstiger Weise behandeln wir arrays erst einen Tag vor der Prüfung. Ich habe deshalb mir einen Teil schon erarbeitet. Nach dem was ich im Net gelesen habe, vermute ich das du das Verfahren Quicksort meinst, weil ich dort eine Eingrenzung mit links und rechts machen kann. Jedoch habe dieses Verfahren den komplizierten Beispielen im Net noch nicht verstehen können.
Stimmt, meine Vermutung?
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:00 Do 26.08.2010 | Autor: | felixf |
Moin!
> danke für Tipps. Die angehängte Datei befindet sich noch
> in der Prüfung, wird aber bald angezeigt werden....
Die Datei wird bereits angezeigt, da du angegeben hast der Urheber zu sein. Das meine ich aber nicht. Word-Dateien zu oeffnen ist fuer mich schon ein ziemlicher Aufwand, das mache ich nur wenn es sich nicht vermeiden laesst. Und bei C-Programmen ist es absolut ueberfluessig, sie als Word-Dokument zu speichern. So kannst du das Programm ja nichtmals kompilieren.
> Den Stoff hatten wir leider noch nicht in der Vorlesung,
> ungünstiger Weise behandeln wir arrays erst einen Tag vor
> der Prüfung. Ich habe deshalb mir einen Teil schon
> erarbeitet. Nach dem was ich im Net gelesen habe, vermute
> ich das du das Verfahren Quicksort meinst, weil ich dort
> eine Eingrenzung mit links und rechts machen kann. Jedoch
> habe dieses Verfahren den komplizierten Beispielen im Net
> noch nicht verstehen können.
Ich meine gar nichts, sondern hab darauf verwiesen dass die Antwort vermutlich in eurer Vorlesung steht. Da ich eure Vorlesung nicht kenne kann ich also hoechstens spekulieren, aber nichts weiter sagen. Ich denke nicht, dass mit dem Austauschverfahren QuickSort gemeint ist.
Ich tippe mal darauf, dass mit Austauschverfahren das gemeint ist, was im englischen mit Exchange Sort bezeichnet wird.
LG Felix
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:25 Do 26.08.2010 | Autor: | Stift82 |
Hallo felixf,
die Datei habe ich dir nochmal als .c-Datei angehangen und zu exchange sort scheinen gute Beispiele vorhanden zu sein im net, das werd ich erstmal versuchen...danke dir erstmal
Liebe Grüße
Mario
Dateianhänge: Anhang Nr. 2 (Typ: c) [nicht öffentlich]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 20:34 Do 26.08.2010 | Autor: | felixf |
Moin!
> 1. welches Austauschverfahren sollte ich am besten wählen
> und wie kann ich es programmieren? (Beispiele im Net zu
> Quick- und Bubblesort haben mir leider nichts genützt)
Das hat sich ja mittlerweile geklaert.
> 2. ich bekomme beim bereits programmierten Vektor im
> schwarzen Fenster einen failure ausgegeben(nach der letzten
> zufälligen Zahl des Vektors, "die Variable v wäre
> kaputt". Woran liegt das? (Programm siehe Anhang)
Du erzeugst 50001 Zufallszahlen, und speicherst sie in ein Array welches nur 50000 Elemente hat. Schau dir noch mal genau die Zeile an, in der die for-Schleife beginnt.
LG Felix
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:42 Do 26.08.2010 | Autor: | Stift82 |
Hallo,
ich danke dir felix, das Gleichheitszeichen habe ich aus der Endbedingung rausgenommen.
Dann noch einen schönen Abend.
Lg Mario
|
|
|
|