Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program tixeo;
- {$mode objfpc}
- uses Sysutils,crt;
- var
- mathites,apontes1:array[1..40] of string;
- kodikos,apontes:array[1..40] of integer;
- skip,retry,istxt,first_time,is_sorted,is_fixed:boolean;
- ans,ans2:string;
- txtfl:textfile;
- linetxt:string;
- jk,f,j,i,kl,lucky,full,lkod,k:integer;
- Function txtload():boolean;
- begin
- assignfile(txtfl,'mathites.txt');
- Try
- reset(txtfl);
- k:=1;
- writeln('***********************************');
- while not eof(txtfl) do
- begin
- readln(txtfl,mathites[k]);
- writeln(mathites[k]);
- k:=k+1;
- end;
- writeln('**********************************');
- close(txtfl);
- writeln('Auti einai i lista twn mathitwn pou fortothike apo to mathites.txt');
- readln;
- txtload:=true;
- clrscr;
- except
- writeln('Error,elexte oti iparxei file me onoma mathites.txt kai einai ston idio fakelo me to executable.');
- writeln('*********************************************');
- writeln('*****Fortothike o proepilegmenos pinakas*****');
- writeln('*********************************************');
- txtload:=false;
- end;
- end;
- Function is_apontas(a:integer):boolean;
- begin
- is_fixed:=false;
- for i:=1 to length(kodikos) do
- begin
- if (a=apontes[i]) and (is_fixed=false) and (a<>0) then
- is_fixed:=true;
- is_apontas:=true;
- end;
- if (is_fixed=false) and (a<>0) then is_apontas:=false;
- end;
- Procedure clear_mathites();
- begin
- for i:=1 to length(mathites) do
- mathites[i]:='';
- end;
- Procedure show_kodikos();
- begin
- for jk:=1 to length(kodikos) do
- if (kodikos[jk]<>0) then
- writeln(mathites[kodikos[jk]]);
- end;
- Procedure show_apontes();
- begin
- for kl:=1 to length(apontes) do
- begin
- if apontes[kl]<>0 then
- begin
- //if (is_apontas(apontes[kl])) then
- writeln(mathites[apontes[kl]]);
- end;
- end;
- end;
- Procedure init_mathites();
- begin
- clear_mathites();
- if (istxt=false) then
- begin
- mathites[1]:='Athos Costa';
- mathites[2]:='Thiseas Panagiotis Leonidou';
- mathites[3]:='Zenonas Michaelides';
- mathites[4]:='Christos Hadjisofokleous';
- mathites[5]:='Giannis Pergantis';
- mathites[6]:='Alexandros Rodosthenus';
- mathites[7]:='Panagiotis Papadopoulos';
- mathites[8]:='Panagiotis Panagiotou';
- mathites[9]:='Dimitris Erotokritou';
- mathites[10]:='Nikolas Koupatos';
- mathites[11]:='Panagiotis Pentaliotis';
- mathites[12]:='Alexandros Alexandrou';
- mathites[13]:='Alexei Korsakov';
- mathites[14]:='Stauros Epifaniou';
- mathites[15]:='Irini Soteriadi';
- mathites[16]:='Giannis Kritikos';
- mathites[17]:='Xristodoulos Kwnstantinidis';
- mathites[18]:='Orestis Stefanou';
- end
- else
- begin
- if (txtload()=false) then
- begin
- istxt:=false;
- init_mathites();
- end
- else
- writeln('Oi mathites fortothikan epitixws apo to mathites.txt');
- end;
- end;
- Function get_mathites_count():integer;
- begin
- f:=0;
- for i:=1 to length(mathites) do
- if mathites[i]<>'' then f:=f+1;
- get_mathites_count:=f;
- end;
- Function get_used_space():integer;
- begin
- f:=0;
- for i:=1 to length(kodikos) do
- if kodikos[i]<>0 then f:=f+1;
- get_used_space:=f;
- end;
- Procedure first_sort();
- begin
- for i:=1 to length(kodikos) do
- begin
- if kodikos[i]<>0 then
- begin
- apontes[i]:=kodikos[i];
- end;
- end;
- end;
- Procedure update_mathites();
- begin
- for i:=1 to length(apontes1) do
- begin
- for kl:=1 to length(mathites) do
- begin
- if (apontes1[i]=mathites[kl]) then
- begin
- apontes1[i]:=mathites[kl];
- //mathites[kl]:='';
- end;
- end;
- end;
- end;
- Procedure show_list();
- begin
- for i:=1 to length(mathites) do
- if mathites[i]<>'' then writeln(i,' - ',mathites[i]);
- write('Dose ton kodiko tou mathiti:');
- readln(kodikos[j]);
- apontes[j]:=kodikos[j];
- j:=j+1;
- end;
- begin
- first_time:=true;
- is_sorted:=false;
- j:=1;
- write('Tha thelate na fortothun oi mathites apo to arxeio mathites.txt?(y/n)');
- readln(ans2);
- if ans2='y' then istxt:=true
- else istxt:=false;
- repeat
- clrscr;
- //j:=j+1;
- if first_time=true then
- begin
- init_mathites();
- while (skip=false) do
- begin
- write('Kyrie Elia yparxei apontas mathitis?(y/n)(-1 gia eksodo):');
- readln(ans);
- if ans='y' then
- begin
- show_list();
- end
- else
- skip:=true;
- end;
- if is_sorted=false then
- begin
- is_sorted:=true;
- //first_sort();
- end;
- end
- else
- begin
- {*if is_sorted=false then
- begin
- is_sorted:=true;
- first_sort();
- end;*}
- update_mathites();
- writeln('Mathites pou idi vgikan ston pinaka:');
- writeln('**********************************************');
- show_kodikos();
- writeln('**********************************************');
- writeln();
- writeln('----------------------------------------------');
- writeln('Apontes:');
- show_apontes();
- writeln();
- writeln('Patiste enter gia na epilegei neos mathitis');
- readln();
- end;
- first_time:=false;
- skip:=false;
- randomize();
- full:=get_mathites_count();
- lkod:=length(kodikos);
- //if length
- if get_used_space()< full then
- begin
- repeat
- retry:=false;
- lucky:=random(full)+1;
- for i:=1 to lkod do
- begin
- if (kodikos[i]=lucky) or (mathites[lucky]='') then
- begin
- retry:=true;
- lucky:=random(full)+1; //+1 prp na mpei
- //writeln(lucky);
- end;
- end;
- until retry=false;
- if ans<>'-1' then
- begin
- writeln('---------------------------------------------');
- writeln('O tixeros mathitis einai:',mathites[lucky]);
- kodikos[j]:=lucky;
- writeln('---------------------------------------------');
- j:=j+1;
- end; //if ans<>'-1'
- end //if get_used_space()
- else if get_used_space() = full then
- begin
- writeln('Oloi oi mathites pou itan diathesimoi vgikan ston pinaka');
- ans:='-1';
- end;
- readln;
- until ans='-1';
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement