program makler; type jahr = 1600..2012; arten = (EFH,MFH,RH,REH,DHH,ETW, Sonstiges); ziffer = '0'..'9'; merkmale = (GaesteWC, Garage, Carport, Terrasse, Garten, Balkon, Kamin, Wintergarten, Einbaukueche, Parkett); objekttyp = record verkaeufer: string; plz : array[1..5] of ziffer; hausart: arten; zimmer: integer; baujahr: jahr; ausstattung : set of merkmale; preis: real; end; var objekt: objekttyp; function neu:objekttyp; var haus: objekttyp; i:integer; s,m:string; begin write('Geben Sie den Namen des Verkaeufers ein: '); readln(haus.verkaeufer); write('Nun benoetigen wir die PLZ des Objekts: '); for i:=1 to 5 do read(haus.plz[i]); readln(); write('Bitte geben Sie die Art des Objekts an: '); readln(s); if s= 'EFH' then haus.hausart:=EFH else if s ='MFH' then haus.hausart := MFH else if s ='RH' then haus.hausart := RH else if s ='REH' then haus.hausart := REH else if s ='DHH' then haus.hausart := DHH else if s ='ETW' then haus.hausart := ETW else begin writeln('Diese Hausart gibt es nicht!'); haus.hausart := Sonstiges end; write('Bitte geben Sie die Zimmerzahl an: '); readln(haus.zimmer); write('Bitte geben Sie das Baujahr an: '); readln(haus.baujahr); writeln('Bitte geben Sie jetzt die Ausstattungsmerkmale (nacheinander) an:'); haus.ausstattung := []; i:=1; while (not EOF) do begin write(i,': '); readln(m); if m = 'GaesteWC' then haus.ausstattung := haus.ausstattung +[GaesteWC] else if m='Garage' then haus.ausstattung := haus.ausstattung+[Garage] else if m='Carport' then haus.ausstattung := haus.ausstattung+[Carport] else if m='Garten' then haus.ausstattung := haus.ausstattung+[Garten] else if m='Terrasse' then haus.ausstattung := haus.ausstattung+[Terrasse] else if m='Balkon' then haus.ausstattung := haus.ausstattung+[Balkon] else if m='Wintergarten' then haus.ausstattung := haus.ausstattung+[Wintergarten] else if m='Kamin' then haus.ausstattung := haus.ausstattung+[Kamin] else if m='Einbaukueche' then haus.ausstattung := haus.ausstattung+[Einbaukueche] else if m='Parkett' then haus.ausstattung := haus.ausstattung+[Parkett]; i:=i+1; end; write('Und zum Schluss noch den Preis: '); readln(haus.preis); neu := haus; writeln('Danke fuer Ihre Angaben!'); end; procedure ausgabe(haus: objekttyp); var i:integer; begin writeln; writeln('Hier Ihre Angaben zum Objekt:'); writeln('Verkaeufer: ',haus.verkaeufer); write('Ort/Lage: '); for i:=1 to 5 do write(haus.plz[i]); writeln; writeln('Art des Objekts: ',haus.hausart,', Baujahr: ',haus.baujahr, ', Zimmeranzahl: ',haus.zimmer); write('Ausstattung: '); if GaesteWC in haus.ausstattung then write('GaesteWC, '); if Garage in haus.ausstattung then write('Garage, '); if Carport in haus.ausstattung then write('Carport, '); if Terrasse in haus.ausstattung then write('Terrasse, '); if Garten in haus.ausstattung then write('Garten, '); if Balkon in haus.ausstattung then write('Balkon, '); if Wintergarten in haus.ausstattung then write('Wintergarten, '); if Kamin in haus.ausstattung then write('Kamin, '); if Einbaukueche in haus.ausstattung then write('Einbaukueche, '); if Parkett in haus.ausstattung then write('Parkett, '); writeln(); writeln('Verkaufspreis: ',haus.preis:8:2); end; begin objekt:= neu; ausgabe(objekt); end.