Hallo erstmal,
also folgendes, ich soll einen Programm entwickeln was einen Member der Woche berechnet, es handelt sich hierbei um ein Browsergame und die Punkte am anfang und am Ende der Woche werden Automatisch eingegeben, das Programm soll dann die Differenz aus diesen werten berechnen,
ES gibt allerdings drei Kategorien von Punkten und so müssen die Memeber Natürlich noch sortiert werden und das habe ich mit mehreren Tabellen lösen wollen,
welche dann Sortiert werden und das Aufsteigend, so das der mit dem Meisten zuwachs oben steht, und ich so mit nur die erste zeile aus jeder Spalte ausgeben muss.
So weit war mein plan er bricht allerdings immer ab, wenn es zum sorteiren kommt und nur wenn es mehr als 2 Mitglieder sein sollen.
Es war alles Strukturiert und übersichtlich, aber das kopieren und hier einfügen hat es alles wieder eingerückt, hoffe ihr kommt trotzdem klar damit.
Danke für die Hilfe
MfG
Quelle
ZitatAlles anzeigenprogram Memberberechnung; ///Löhr 1.0 //longint
//
//var Memberzahl,punkte1,punkte2,punkte3,zahl1,zahl2,zahl3:integer;
memberliste: array[1..100,1..4] of longint;
Memberliste50k: array[1..100,1..4] of longint;
Memberliste100k: array[1..100,1..4] of longint;
Memberliste300k: array[1..100,1..4] of longint;
tausch: array[1..1,1..4] of integer;
Procedure Zwischenausgabe;
var i,j:integer;
begin
for i:= 1 to Memberzahl do
for j:= 1 to 4 do
Writeln(Memberliste[i,j]);
Writeln(Memberliste50k[i,j]);
Writeln(Memberliste100k[i,j]);
Writeln(Memberliste300k[i,j]);
end;procedure Eingabe;
var i:integer;
begin
writeln(' Gesamte Memberzahl nennen ');
Readln (Memberzahl);
Writeln(' Das Erste von drei Punkte Kategorien eingeben (z.B. 50.000) ');
readln(punkte1);
Writeln(' Das Zweite von drei Punkte Kategorien eingeben (z.B. 100.000) ');
readln(punkte2);
Writeln(' Das Dritte von drei Punkte Kategorien eingeben (z.B. 300.000) ');
readln(punkte3);
for i:= 1 to Memberzahl do
begin
writeln('Namen des ',i,'. Members angeben');
readln(Memberliste[i,1]);
writeln('Anfangspunkte des ',i,'. Members angeben');
readln(Memberliste[i,2]);
writeln('Endpunkte des ',i,'. Members angeben');
readln(memberliste[i,3]);
Memberliste[i,4]:= Memberliste[i,3]-Memberliste[i,2];
end;
end;
procedure zuordnung;
var i,j:integer;
begin
for i:= 1 to memberzahl do
begin
if (Memberliste[i,3] <= punkte1 )
then
begin
for j:=1 to 4 do
begin
Memberliste50k[i,j]:=Memberliste[i,j];
end;
zahl1:=zahl1+1;
endelse if (memberliste[i,3] <= punkte2) and (memberliste[i,3] >= punkte1)
then
begin
for j:=1 to 4 do
begin
Memberliste100k[i,j]:=Memberliste[i,j];
end;
zahl2:=zahl2+1;
end
else if (memberliste[i,3] <= punkte3) and (memberliste[i,3] >= punkte2)
then
begin
for j:=1 to 4 do
begin
Memberliste300k[i,j]:=Memberliste[i,j];
end;
zahl3:=zahl3+1;
end else;
end;
end;
procedure sortieren1;
var
i,j,n,o:integer;
getauscht:boolean;
begin
repeat
getauscht:=false;
for i:= 1 to zahl1-1 do
begin
if (Memberliste50k[i,4]< Memberliste50k[i+1,4] )
then
begin
for j:= 1 to 4 do
begin
tausch[i,j]:= Memberliste50k[i,j];
Memberliste50k[i,j]:=Memberliste50k[i+1,j];
Memberliste50k[i+1,j]:=tausch[i,j];
getauscht:=true;end; end else;
end;for n:= 1 to 4 do
begin
for o:= 1to 4 do
begin
Tausch[n,o]:=0;
end;
end;until getauscht=false;
end;procedure sortieren2;
var
i,j:integer;
getauscht:boolean;
beginrepeat
getauscht:=false;
for i:= 1 to zahl2-1 do
begin
if (Memberliste100k[i,4]< Memberliste100k[i+1,4] )
then
begin
for j:=1 to 4 do
begin
tausch[i,j]:= Memberliste100k[i,j];
Memberliste100k[i,j]:=Memberliste100k[i+1,j];
Memberliste100k[i+1,j]:=tausch[i,j];
getauscht:=true;
end; end else;
end;
until getauscht=false;
end;
procedure sortieren3;
var
i,j:integer;
getauscht:boolean;
beginrepeat
getauscht:=false;
for i:= 1 to zahl3-1 do
begin
if (Memberliste300k[i,4]< Memberliste300k[i+1,4] )
then
begin
for j:= 1 to 4 do
tausch[i,j]:= Memberliste300k[i,j];
Memberliste300k[i,j]:=Memberliste300k[i+1,j];
getauscht:=true;
end else;end;
until getauscht=false;
end;
procedure sortierengesamt;
begin
if (Memberliste50k[1,2] >0) then
begin
sortieren1;
end else
if (Memberliste100k[1,2] >0) then
begin
sortieren2;
end else
if (Memberliste300k[1,2] >0) then
begin
sortieren3;
end else;end;
procedure Ausgabe;
begin
Writeln(' Der Gewinner aus der Kategorie bis ', punkte1,' Punkte ist: ');
writeln( Memberliste50k[1,1]);
writeln(' Mit einem Punktezuwachs von ', Memberliste50k[1,4]);
Writeln(' Der Gewinner aus der Kategorie bis ', punkte2,' Punkte ist: ');
writeln( Memberliste100k[1,1]);
writeln(' Mit einem Punktezuwachs von ', Memberliste100k[1,4]);
Writeln(' Der Gewinner aus der Kategorie bis ', punkte3,' Punkte ist: ');
writeln( Memberliste300k[1,1]);
writeln(' Mit einem Punktezuwachs von ', Memberliste300k[1,4]);
end;
procedure ini;
var i,j:integer;
begin
Memberzahl :=0;
punkte1:=0;
punkte2:=0;
punkte3:=0;for i:=1 to 100 do
begin
for j:=1 to 4 do
begin
memberliste[i,j] :=0;
Memberliste50k[i,j] :=0;
Memberliste100k[i,j]:=0;
Memberliste300k[i,j]:=0;
end;
End
end;
begin
ini;
eingabe;
zuordnung;
zwischenausgabe;
readln;
sortierengesamt;
Ausgabe;
readln;
end.