140 likes | 225 Views
Mreže i algoritmi (priprema za labose). mr.sc. Domagoj Mikac. Generator ulaznih scenarija. Generator automatski zadaje zadatak i generira dvije datoteke koje predstavljaju ulaz u algoritam Svaki student ima dva jedinstvena ulazna problema koja mora riješiti zadanim algoritmom.
E N D
Mreže i algoritmi(priprema za labose) mr.sc. Domagoj Mikac
Generator ulaznih scenarija • Generator automatski zadaje zadatak i generira dvije datoteke koje predstavljaju ulaz u algoritam • Svaki student ima dva jedinstvena ulazna problema koja mora riješiti zadanim algoritmom IM - Auditorne vježbe - Ak.god. 2006/2007
Priprema za vježbu • Priprema je obavezan dio izvještaja • Priprema mora sadržavati • Opis i objašnjenje svih koraka algoritma koji je potrebno implementirati u sklopu zadanog zadatka • Proizvoljno zadani problem od nekoliko čvorova (5-10) • Ručno riješiti problem pomoću opisanog algoritma • Izvještaji bez pripreme se ne prihvaćaju IM - Auditorne vježbe - Ak.god. 2006/2007
Format ulaznih datoteka (zadatak 1 – 7) • Jednostavna tekstualna datoteka • Podaci odvojeni tabulatorom • Podaci o čvorovima koje treba povezati u stablo 12 1 72 93 5 2 2 25 8 3 36 24 7 4 78 74 4 5 47 48 7 6 65 20 3 7 94 45 1 8 90 3 2 9 30 37 6 10 8 88 7 11 82 14 4 12 27 68 7 Broj čvorova Index čvora x koordinata y koordinata težina w IM - Auditorne vježbe - Ak.god. 2006/2007
Format ulaznih datoteka zadatak 8 i 9 • Jednostavna tekstualna datoteka • Podaci odvojeni tabulatorom • Podaci o čvorovima i granama 6 10 1 10 40 2 30 60 3 30 20 4 70 60 5 70 20 6 90 40 1 1 2 2 2 1 3 1 3 2 3 3 4 2 4 4 5 2 5 1 6 3 4 2 7 3 5 3 8 4 5 1 9 4 6 4 10 5 6 3 Broj čvorova Broj grana Indeks, x, y Indeks grane Indeks 1. čvora Indeks 2. čvora duljina (težina) grane IM - Auditorne vježbe - Ak.god. 2006/2007
Funkcija za učitavanje ulazne datoteke (zadatak 1 – 5) void UcitajScenarij(char *FileName) { FILE *f; int i; int indeks,x,y,w; // parametri cvora f = fopen(FileName,"rt"); fscanf(f,"%d",&n); // iz datoteke procitamo broj cvorova u mrezi X_Cvor = new int[n]; // fomiramo X vektor za koordinate cvorova Y_Cvor = new int[n]; // fomiramo Y vektor za koordinate cvorova I_Cvor = new int[n]; // fomiramo vektor za indekse cvorova for (i=0;i<n;i++) { fscanf(f,"%d\t%d\t%d\t%d\n",&indeks,&x,&y,&w); //citamo parametre cvora i iz datoteke X_Cvor[i] = x; // spremamo X koordinatu u vektor Y_Cvor[i] = y; // spremamo Y koordinatu u vektor I_Cvor[i] = indeks; // parametar W nam ne treba } fclose(f); } IM - Auditorne vježbe - Ak.god. 2006/2007
Implementacija algoritma • Svaki student bi trebao samostalno implementirati traženi algoritam u programskom jeziku po vlastitom izboru • Ukoliko imate problema s implementacijom, možete “posuditi” tuđi kod za dobivanje rezultata • Obavezno navedite ime i prezime autora programa • Obavezno pošaljite vlastiti kod koji ste pokušali napraviti ali ne radi. U izvještaju dokumentirajte problem koji se javlja u vašem programu. • Prikazivanje tuđeg rada kao vlastitog kažnjavat će se strože nego nepredavanje vježbe IM - Auditorne vježbe - Ak.god. 2006/2007
Izlazne datoteke s rezultatima • Vaš program po završetku proračuna treba stvoriti izlaznu datoteku s rezultatima • Za svaki ulazni scenarij, program stvara jednu izlaznu datoteku • Izlazne datoteke moraju biti formatirane prema specifikaciji (Dodatak A) i moraju se moći učitati pomoću programa za vizualizaciju rezultata • Svaki student mailom šalje dvije datoteke s rezultatima • Ime datoteke mora biti: [mat_br]_Zx_Sy.txt • x = redni broj zadatka • y = scenarij (1 ili 2) IM - Auditorne vježbe - Ak.god. 2006/2007
Format izlazne datoteke (zadaci 1 – 7) • Popis grana koje tvore stablo • Podaci odvojeni tabulatorom 13 0 9 12 1 9 1 2 9 14 3 14 3 4 12 2 5 2 13 6 13 6 7 6 10 8 13 11 9 11 5 10 5 4 11 4 7 12 7 8 Broj grana Indeks grane Indeks 1. čvora Indeks 2. čvora IM - Auditorne vježbe - Ak.god. 2006/2007
Format izlazne datoteke (zadatak 8) • Popis grana koje tvore najkraći put • Podaci odvojeni tabulatorom • Zapis identičan kao za zadatke 1-7 13 0 9 12 1 9 1 2 9 14 3 14 3 4 12 2 5 2 13 6 13 6 7 6 10 8 13 11 9 11 5 10 5 4 11 4 7 12 7 8 Broj grana Indeks grane Indeks 1. čvora Indeks 2. čvora IM - Auditorne vježbe - Ak.god. 2006/2007
Format izlazne datoteke (zadatak 9) • Popis svih najkraćih puteva, za sve parove čvorova • Podaci odvojeni tabulatorom 6 1 2 1 2 4 3 1 2 4 2 4 3 2 4 4 3 Broj putova Čvorovi koji tvore put IM - Auditorne vježbe - Ak.god. 2006/2007
Funkcija za snimanje izkazne datoteke (zadatak 1 – 5) void SnimiRezultat(char *FileName) { int i; FILE *f; f = fopen(FileName,"wt"); fprintf(f,"%d\n",n-1); for (i=0;i<n-1;i++) // imamo n-1 granu koja tvori stablo { fprintf(f,"%d\t%d\t%d\n",i,E1_C1[i],E1_C2[i]); } fclose(f); } IM - Auditorne vježbe - Ak.god. 2006/2007
Vizualizacija rezultata • Prikaz rezultata nije potrebno implementirati u programu • Koristite gotovu aplikaciju za vizualizaciju ulaznih scenarija i rezultata • Hvatanje prozora Alt+PrintScrn IM - Auditorne vježbe - Ak.god. 2006/2007
Slanje kodova i rezultata • Kod algoritma i izlazne datoteke potrebno je poslati na im@tel.fer.hr • Mailove šaljite s FER-ovog mail servera, a ne s yahoo, hotmail, vip, iskon i sl. jer se može dogoditi da ne stigne mail • Nemojte slati izvršne datoteke (EXE i sl.), nego ih ZIP-ajte pa onda pošaljite • Izvještaji moraju sadržavati: • Pripremu • Grafički prikaz rješenja zadanih problema • Ukupnu težinu stabla (zadaci 1-7) odnosno ukupnu duljinu puteva (zadatak 8 i 9) • Zakašnjeli izvještaji i kodovi se ne priznaju IM - Auditorne vježbe - Ak.god. 2006/2007