Newsgroup: it.comp.lang.pascal
Titolo: chi mi dà una mano?

Ciao ragazzi, avrei bisogno di una mano...sto progettando un programma che
generi un calendario di calcio, date in input le squadre, per ora ho deciso
non mettere tante finezze tipo:
- Alternanza casa/trasferta per una squadra di giornata in giornata
- Squadre dispari
che metterò in futuro, però il problema è ke non mi funzia nemmeno quello
che ho fatto finora...chi mi aiuta?
Se volete posso postare il testo dell'intero programma (76 righe), oppure se
qualcuno è disposto ad aiutarmi in pvt glielo spedisco...
Grazie
--
L'importante della vita sono le scelte...
...c'è sempre un futuro alternativo
membro: 
www.alground.com
FORZA MANCHESTER UNITED!!!

 ha scritto nel messaggio
news:XjaYa.229825$lK4.6...@twister1.libero.it...
| Se volete posso postare il testo dell'intero programma (76 righe), oppure
se
| qualcuno č disposto ad aiutarmi in pvt glielo spedisco...
[...]
Posta pure sul ng e vediamo quello che si puo` fare.

David Beckham trasformava una punizione quando Cristian disse:
Eccolo quà....se volete vedere bene ingrandite questa finestra...
program campio;
uses crt;
type partita=record
            squa:string[20];{tab. che contiene tutte le partite di}
             squb:string[20];     {tutte le giornate}
             end;
     tabella=array[1..1000] of partita;
     vet=array[1..100] of string[20];   {vettore che contiene le squadre}
var tab:tabella;
    nsquadre,partite:integer;
    squadre:vet;
procedure carica(var squadre:vet; var nsquadre:integer; var
partite:integer);
var i,j:integer;
begin
 clrscr;
 repeat
  writeln('Inserisci il numero di squadre');
  readln(nsquadre);
 until (nsquadre mod 2=0) and (nsquadre>3);
 for i:=1 to nsquadre do
  begin
   writeln('Inserisci la ',i,'ø squadra');
   readln(squadre[i])
  end;
 partite:=(nsquadre div 2)*(nsquadre-1);
end;
procedure estrai(var tab:tabella; squadre:vet; partite,nsquadre:integer);
var i,a,x,y:integer;
    trovato:boolean;
begin
 randomize;
 trovato:=false;
 for i:=1 to partite do
  begin
   repeat
    randomize;
    repeat                     {estraggo le squadre finchè non sono diverse}
     x:=random(nsquadre);
     randomize;
     y:=random(nsquadre);
    until x<>y;
    a:=0;
    repeat      {controllo se la partita esiste già}
     a:=a+1;
     if (squadre[x]=tab[a].squa) and (squadre[y]=tab[a].squb) then
      trovato:=true;
    until (trovato) or (a>i-1);
    a:=((i mod partite)-1);
    if (not trovato) then   {controllo se nella stessa giornata le squadre}
     repeat                 {sono già impegnate}
      a:=a+1;
      if ((squadre[x]=tab[a].squa) or (squadre[y]=tab[a].squb)) then
       trovato:=true;
     until (a>i-1) or (trovato);
   until (not trovato);
   tab[i].squa:=squadre[x];     {sistemo le squadre}
   tab[i].squb:=squadre[y];
  end;
 readln;
end;
procedure stampa(tab:tabella;partite:integer);
var i:integer;
begin
 for i:=1 to partite do
  writeln(tab[i].squa,' - ',tab[i].squb);
 readln;
end;
{------------PROGRAMMA PRINCIPALE-------------}
begin
 clrscr;
 carica(squadre,nsquadre,partite);
 estrai(tab,squadre,partite,nsquadre);
 stampa(tab,partite);
 readln;
end.
Ringrazio tutti anticipatamente. Premetto che in informatica a scuola ho 10,
ma è solo da un anno che facciamo pascal, perciò non sono molto esperto...


 ma è solo da un anno che facciamo pascal, perciò non sono molto esperto...
Secondo me il problema e' un altro e se hai 10 in informatica
sai benissimo qual e' :)
Non hai analizzato a sufficienza il problema, ti sei buttato
sul codice senza documentarti... o sbaglio?
Ci sono metodi molto semplici e sicuri per generare un calendario
di calcio, senza ricorrere a tutti quei random/controlli/cicli/etc.
Chiariamo, non e' una critica, e' un consiglio che sei
liberissimo di ignorare :)
Te ne propongo uno:
Immagina le squadre disposte ai due lati di un lungo tavolo.
Prima giornata: ciascuno gioca contro chi ha di fronte.
Per fare i turni successivi: le squadre "ruotano" attorno al
tavolo lasciando ferma una squadra (sempre la stessa) e,
come in precedenza, ciascuno gioca contro chi ha di fronte.
Ripetendo questi semplici passi puoi generare tutto il
campionato, in modo veloce e con poche righe di codice.
Spero possa comunque tornarti utile, anche se poi
utilizzerai un sistema diverso :)

 ha scritto nel messaggio
news:dToYa.230632$Ny5.6...@twister2.libero.it...
| David Beckham trasformava una punizione quando Cristian disse:
Ehm... ma non le realizza con il Real adesso? ;-)
| Eccolo quà....se volete vedere bene ingrandite questa finestra...
[...]
| Ringrazio tutti anticipatamente. Premetto che in informatica a scuola ho
10,
| ma è solo da un anno che facciamo pascal, perciò non sono molto esperto...
Purtroppo non ho tempo per analizzare il sorgente. Allora... hai 10 in
informatica (beato te... nella nostra classe un compito tutto giusto
prendeva 9 in casi eccezionali, altrimenti 8 -_-), immagino che forse ti
secchera` fare gli algoritmi per quelle stupidaggini che si fanno a scuola
(e come darti torto!).
In questo caso pero` dovresti seguire l'ottimo consiglio di Bane: prima di
iniziare a scrivere il sorgente, analizza attentamente il problema ed
elabora una possibile soluzione. Fatto cio` il codice viene da solo.
Potresti addirittura utilizzare la soluzione proposta da Bane... se non hai
voglia di pensare ad un'altra possibilita`.
Ciao!
Cristian

 Cristian
ok ora proverò...


 prendeva 9 in casi eccezionali, altrimenti 8 -_-), immagino che forse ti
9? Cosi tanto? Il mio prof di sistemi ha l'abitudine di piazzarti un 8 se
fai un compito in assembly perfetto, e voto uguale mi ha portato la mia
interrogazione sigli interrupt dove gli ho spiegato vita-morte-miracoli dei
registri x86 =)
-- 
Qualsiasi
"We all know Linux is great...it does infinite loops in 5 seconds." Torvalds

 
Io 8 lo prendevo solo se spiegavo cose che non erano state dette in 
classe ...

Uh?!? Cos'e' questo? Un messaggio di Pavel Checov? Vediamo:

C'e' sempre qualche prof bastardo , per me il suddetto insegna
elettrotecnica =)


SECCHIONI DI MERDA!!
8, 9, 10 in matematica???? bah...

 ha scritto nel messaggio
news:u7QZa.39649$an6.1...@news1.tin.it...

Linux its the same s..t of Windows...B
Secondo me insegna Sistemi Automatici Super Turbo Alfetta 1.6 karburacion