17/08/10 12:50
Poggi Marco
Ho letto il tuo programma.
Il difetto sta nel ciclo del sorteggio: ad ogni iterazioneestrai 2 giocatori.
Inoltre la condizione d' uscita del ciclo interno, è errata.
Dovresti fare in questo modo;
Inoltre, ti suggerisco di utilizzare i file binari.
Il difetto sta nel ciclo del sorteggio: ad ogni iterazioneestrai 2 giocatori.
Inoltre la condizione d' uscita del ciclo interno, è errata.
Dovresti fare in questo modo;
program casuale; uses crt; const n=30; type VStr=array[1..n]of string; Mstr=array[1..n,1..2]of string; var lung,j:word; vs:VStr; cal:Mstr; fr:text; procedure OrdinaCasuale(var v:VStr; fine:word); var i,pos:word; temp:string; begin for i:=1 to fine-1 do begin pos:=i+random(fine-i); // estrae un giocatore temp:=v[i]; // scambio dei giocatori v[i]:=v[pos]; v[pos]:=temp; end; end; procedure campionato(var mv:Mstr; v:VStr; fine:word); var i,j:word; begin i:=1; j:=1; while i<fine-1 do begin mv[j, 1]:=v[i]; mv[j, 2]:=v[i+1]; i:=i+2; j:=j+1 end; end; begin assign(fr,'gioca.txt'); reset(fr); lung:=0; while not eof(fr) do begin lung:=lung+1; readln(fr,vs[lung]); end; close(fr); randomize; OrdinaCasuale(vs, lung); Campionato(cal, vs, lung); for j:=1 to lung do // stampo il vettore writeln(j,'-',vs[j]); writeln; for j:=1 to (lung div 2) do // stampo le selezioni: writeln(cal[j, 1]:15,' VS ',cal[j, 2]:15); readln; end.
Inoltre, ti suggerisco di utilizzare i file binari.
Ultima modifica effettuata da Poggi Marco 17/08/10 13:28
aaa