Zum Inhalt wechseln



- USB-Partner (Interessiert?) -
Foto

Jemand ahnung von INFORMATIK ??? [Pascal]


  • Please log in to reply
5 replies to this topic

#1
Kai.rockZ

Kai.rockZ

    Titelheld

  • Mitglied
  • 1.649 Beiträge
  • Vorname: Kai
  • Geschlecht:M
Hi ihr !
folgendes problem ich hab 3 Pascal Programme : die alle gehen :

nun soll ich das in 1 Programm machen ... wobei ich die einzelen sachen daraus auswähl...

geht darum das ein Array von Integer zahlen zufällig eingelesen wird und dann nach 3 verfahren sortiert werden soll : ( die einzlen proggys sind lauffähig !)

hier mal die 3 sachen :

PROGRAM feld_sortieren;

USES wincrt;

CONST n = 10;

TYPE ft = ARRAY [1..n] OF integer;

VAR feld:ft;



PROCEDURE erzeuge (VAR efeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

efeld[i]:=random(100)+1;

END;



PROCEDURE sortieren_dir_ausw(VAR sfeld:ft);

VAR i,pos,min,x:integer;

BEGIN

FOR x:=1 TO n DO

BEGIN

min:=feld[x];

pos:=x;

FOR i:=x+1 TO n DO

IF feld[i] < min

THEN BEGIN

min:=feld[i];

pos:=i;

feld[i]:=feld[x];

feld[x]:=min;

END;

END;

END;



PROCEDURE ausgabe(afeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

writeln(afeld[i]:8);

END;





BEGIN

randomize;

clrscr;

erzeuge(feld);

ausgabe(feld);

writeln;

writeln;

sortieren_dir_ausw(feld);

ausgabe(feld);

readln;

END.

ROGRAM sort_dir_einfg; {direktes Einf?gen}

USES wincrt;

CONST n = 10;

TYPE ft = ARRAY [1..n] OF integer;

VAR feld:ft;



PROCEDURE erzeuge (VAR efeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

efeld[i]:=random(100)+1;

END;



PROCEDURE sortieren_dir_einfg(VAR sfeld:ft);

VAR i,j,rette :integer;

BEGIN

FOR i:=2 TO n DO

BEGIN

rette:=sfeld[i];

j:=i-1;

WHILE (( j >= 1) AND (sfeld[j] > rette)) DO

BEGIN

sfeld[j+1]:=sfeld[j];

j:=j-1;

END;

sfeld[j+1]:=rette;

END;

END;



PROCEDURE ausgabe(afeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

writeln(afeld[i]:8);

END;





BEGIN

randomize;

clrscr;

erzeuge(feld);

writeln('Unsortiertes Feld:');

ausgabe(feld);

writeln;

writeln;

sortieren_dir_einfg(feld);

writeln('Sortiertes Feld:');

ausgabe(feld);

readln;

END.

PROGRAM quicksortx;

USES crt;

CONST n=10;

TYPE zahlen_feld=ARRAY[1..n] OF integer;

VAR a :zahlen_feld;

i :integer;

Procedure quicksort(ug,og :integer);

VAR li,re,test,hilf :integer;

BEGIN

IF ug <= og

THEN BEGIN

test:=a[(ug+og) DIV 2];

li:=ug;

re:=og;

WHILE li <= re DO

BEGIN

WHILE a[li] < test DO

inc(li);

WHILE a[re] >= test DO

dec(re);

IF li <= re

THEN BEGIN

hilf:=a[li];

a[li]:=a[re];

a[re]:=hilf;

inc(li);

dec(re);

END;

END;

quicksort(ug,re);

quicksort(li,og);

END;

END;



BEGIN (*OF HP*)

clrscr;

randomize;

FOR i:=1 TO n DO

a[i]:=random(1000)+1;

FOR i:=1 TO n DO

write(a[i]:4);

quicksort(1,n);

writeln;

FOR i:=1 TO n DO

write(a[i]:4);

readln;

END.

also das neue programm soll en Menü ham wo ich das auswähl wie sortiert wird...


danke für hilfe
  • 0

#2
Bine

Bine

    USB-Prellbock

  • Mitglied
  • 4.628 Beiträge
  • Geschlecht:W
von Informatik ja, von deinem Problem nicht.

Aender mal den Titel...nich jeder informatiker hat ahnung von Pascal :P
  • 0

Multidimensionale Ordnung wirkt nur auf den einfach gestrickten Betrachter wie Chaos, da er die Ordnung nicht erfassen kann.


#3
Kai.rockZ

Kai.rockZ

    Titelheld

  • Mitglied
  • 1.649 Beiträge
  • Vorname: Kai
  • Geschlecht:M
mein problem ist einfach die 3 programme in 1 zu bringen

titel wurd geändert :P
  • 0

#4
Synthor

Synthor

    Sub.FM addicted

  • USB-Security
  • 12.867 Beiträge
  • Geschlecht:M

mein problem ist einfach die 3 programme in 1 zu bringen  

titel wurd geändert /public/style_emoticons/default/wink.gif...


dann mach doch einfach am programmstart einmal readline, da gibste eine zahl zwischen 1 und 3 ein. eine simple if-abfrage wirste ja wohl noch hinbekommen?!

if(bla==1) {
sortieren1();
}
elseif(bla==2) {
sortieren2();
}
elseif(bla==3) {
sortieren3();
}

the end :banga:
hth :P
  • 0
Download your energy, upload your mind!
 
$P_UMFALLWAGEN=1003;

#5
Kai.rockZ

Kai.rockZ

    Titelheld

  • Mitglied
  • 1.649 Beiträge
  • Vorname: Kai
  • Geschlecht:M
so habs !!!

Program Sortieren_auf_verschiedenen_wegen;

uses wincrt;



CONST n = 10;

TYPE ft = ARRAY [1..n] OF integer;

VAR a,feld:ft;

c:char;

i:integer;





PROCEDURE erzeuge (VAR efeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

efeld[i]:=random(100)+1;

feld:=efeld

END;



PROCEDURE sortieren_dir_ausw(VAR feld:ft);

VAR i,pos,min,x:integer;

BEGIN

FOR x:=1 TO n DO

BEGIN

min:=feld[x];

pos:=x;

FOR i:=x+1 TO n DO

IF feld[i] < min

THEN BEGIN

min:=feld[i];

pos:=i;

feld[i]:=feld[x];

feld[x]:=min;

END;

END;

END;



PROCEDURE sortieren_dir_einfg(VAR sfeld:ft);

VAR i,j,rette :integer;

BEGIN

FOR i:=2 TO n DO

BEGIN

rette:=sfeld[i];

j:=i-1;

WHILE (( j >= 1) AND (sfeld[j] > rette)) DO

BEGIN

sfeld[j+1]:=sfeld[j];

j:=j-1;

END;

sfeld[j+1]:=rette;

END;

END;





procedure Bubblesort(var sort: ft);

var i, j,help: integer;

begin

for i := 1 to n-1 do

for j := n-1 downto i do

if sort[j] < sort[j-1] then

begin

help := sort[j];

sort[j] := sort[j-1];

sort[j-1] := sort[j];



end;

end;



PROCEDURE ausgabe(afeld:ft);

VAR i:integer;

BEGIN

FOR i:=1 TO n DO

writeln(afeld[i],' ',feld[i]);

END;





Procedure Menue;

begin

Writeln('Menue');

writeln('');

writeln('_1_ *Feld Erzeugen* ');

writeln('_2_ *Sortieren nach Auswählen* ');

writeln('_3_ *Sortieren nach Einfügen* ');

writeln('_4_ *Sortieren mit Bubblesort* ');

writeln('_5_ *Ausgabe* ');

writeln('_0_ *Beenden* ');

readln(c);



case c of

'1': erzeuge(a);

'2': sortieren_dir_ausw(a);

'3': sortieren_dir_einfg(a);

'4': bubblesort(a);

'5': ausgabe(a);

'0': i:=0;



end;

end;





Begin

randomize;

i:=1;

repeat

menue;

until i=0;

end.


kann mir das noch jmd verschönern , mit der ausgabe bin ich net so glücklich!!!
  • 0

#6
Synthor

Synthor

    Sub.FM addicted

  • USB-Security
  • 12.867 Beiträge
  • Geschlecht:M
die ausgabe verschönern?
was willst da noch verschönern?
so mit herzchen und so?! :roflmao:

spaß! :P
  • 0
Download your energy, upload your mind!
 
$P_UMFALLWAGEN=1003;




1 Besucher lesen dieses Thema

Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0