Sie sind auf Seite 1von 2

*ehrstuhl fr 9onstru%tionslehre und =$D

bungsblatt 4a - Computertechnik I
Prsenzbung
1. Aufgabe: Arrays sortieren - Bubblesort Hufig mssen Felder oder ganze Datenstze sortiert werden. Hierzu gibt es eine ganze Reihe von Sortieralgorithmen, die sehr unterschiedlich performant sind. iner der einfachsten !ertreter ist der sog. "ubblesort#$lgorithmus. Hierbei steigen die %leineren lemente # wie "lasen im &asser # langsam im Feld nach oben und gr'(ere wandern dadurch nach unten. So sortiert "ubblesort ein -ahlen#Feld ?&erte@ der *nge % aufsteigend1 Start Fr i=1 bis k-1 tue { Wenn Wert[i] > Wert [i+1] { vertausche die ositionen von Wert[i] und Wert[i+1] ! ! Solan"e oben #$r ir"endein i% vertauscht &urde' "ehe (urck (u) Start. Ferti".

Schreiben Sie ein )rogramm ueb51.c, das ein double#Feld der *nge +, zunchst mit -ufallszahlen belegt. geben Sie diese Folge zum !ergleich aus. Dieses Feld soll mit "ubblesort aufsteigend sortiert und anschlie(end nochmals ausgegeben werden. /liedern Sie 0hr )rogramm in folgende Fun%tionen1 int main 2void3 int bubblesort2void3 4 4 Hauptprogramm1 soll das Feld vor und nach dem Sortieren ausgeben und die 5nterprogramme aufrufen Sortierfun%tion1 soll den "ubblesort#$lgorithmus anwenden !ertausche#Fun%tion1 wert7i8 soll an Stelle 6 wandern und umge%ehrt

int vertausche 2int i,int 634

Hinweis: $chten Sie auf folgende 9nac%pun%te: &elche !ariablen mssen global sein, welche lo%al; <'chten Sie die Fun%tionen per =all#b>#!alue oder per =all#b>#Reference aufrufen;

Kontextaufgaben fr daheim
2. Aufgabe: ortieren !on "atens#t$en% tructures Aun wollen Sie 0hren 2oder einen anderen3 Sortieralgorithmus natrlich im echten *eben verwenden. Die Sortierung von einfachen -ahlenfeldern ist aber in der )raBis oft nicht sehr hilfreich. !iel 'fter sind sogenannte Datenstru%turen zu verwalten, z.". diese hier1
ein 5nternehmen hat1 einen Aamen einen Hauptsitz ein *and 2Hauptsitz3 einen Cahresumsatz in <io D ein Cahresergebnis in <io D eine <itarbeiterzahl eine "ranche -eichen%ette -eichen%ette -eichen%ette double double int -eichen%ette

"evor man 6edem der $ttribute ein separates Feld zuweist E das natrlich bei der Sortierung durcheinander gert E definiert man lieber einen Datent>p unterneh)en als sog. Structure1 struct unterneh)en { char na)e[*5+], char hau-tsit([*5+], . char branche[*5+], !, Cedes 5nternehmen ist dann 2mit allen $ngaben3 ein Datum vom F>p unterneh)en. <ehrere Datenstze lassen sich leicht als Struct#$rra> definieren1 struct unterneh)en to-hundert[1//], Der -ugriff auf einzelne $ttribute einer Structure fun%tioniert so1 strc-0#to-hundert[1].na)e'12llian(1%, oder to-hundert[1].u)sat(=13*455, Aun %ann man mit diesen Datenstzen umgehen, wie mit gew'hnlichen int#$rra>s und die z.". bzgl. Aame sortierte Reihenfolge bleibt auch beim 5msatz erhalten. Schreiben Sie ein )rogramm ueb5*.c, das alle 5nternehmen der FopG,,#*iste 2bzgl. 5msatz3 aus der Datei 1//unterneh)en6leicht.t7t mit allen $ngeben einliest und in ein Struct#$rra> vom F>p unterneh)en ablegt. "estimmen Sie den /ewinn 6e $ngestellten zu 6eder Firma, und sortieren Sie die Datenstze absteigend bzgl. dieses )ro#9opf#/ewinns: Schreiben Sie das rgebnis in eine FeBtdatei. Die Datei 1//unterneh)en6sch&er.t7t enthlt die gleichen Daten wie die erste Datei. Aur dass die Firmen, *nder und "ranchen auch *eerzeichen enthalten %'nnen und die Daten zustzlich durch ein Semi%olon getrennt sind. &ie msste man den inlese#$lgorithmus modifizieren, um auch diese Datei sortieren zu %'nnen;

Das könnte Ihnen auch gefallen