Prog 2 - 1. kolokvij 2014. - osvrt
Select messages from
# through # FAQ
[/[Print]\]

Forum@DeGiorgi -> Programiranje 1 i 2

#1: Prog 2 - 1. kolokvij 2014. - osvrt Autor/ica: shimijaLokacija: Spljit PostPostano: 22:39 pon, 5. 5. 2014
    —
Pokušat ću skrenuti pažnju na česte pogreške u 3. zadatku.
Za početak, i zadatke i rješenja 3. zadatka možete pronaći
na sljedećoj stranici
http://web.math.pmf.unizg.hr/~maerceg/prog2.html

Glavni dio a) dijela zadatka je bio shvatiti kako pročitati
odgovarajuće elemente matrice. Zapravo ista stvar je
napravljena u skripti za vježbe tako da ću samo istaknuti
nekoliko stvari.
U svojim rješenjima sam napisao kod koji linearno ovisi o
[tex]n[/tex] (jedna petlja), ali čak se i elegantnije može
riješiti kad imamo dvije petlje, tj. kvadratnu ovisnost o [tex]n[/tex].
Problem bi se sveo na to da za proizvoljne dvije točke u ravnini
moramo naći uvjet uz koji će ležati na nekom od dva dana
pravca, tj. treba naći jednadžbu pravaca. Vrlo jednostavno možete
dobiti da su dani pravci upravo
[dtex]
y=x +j-i \,, \quad y=-x+j+i \,,
[/dtex]
tj. ako su [tex]k[/tex] i [tex]l[/tex] indeksi proizvoljne točke
na danim pravcima u matrici, onda oni moraju zadovoljavati
[dtex]
l=k +j-i \,, \quad l=-k+j+i \,.
[/dtex]
Još trebamo paziti da ne "pobjegnemo" iz matrice pa zahtjevamo
[tex]k,l\in\{0,1,\dots,n-1\}[/tex]. Konačno, sljedeći kod
Kod:

zbroj=0;
for(k=0; k<n; k++)
   for(l=0; l<n; l++)
      if(l==k+j-i || l==-k+j+i)
         zbroj+=x[k][l];

bi bio dobar za jednu grupu. Ako želite još malo pojednostaviti uvjet,
lako možete vidjeti da je on ekvivalentan (što naravno ima i svoju
geometrijsku interpretaciju) s
Kod:

abs(k-i) == abs(l-j)


Ipak najčešće rješenje je bilo da se skup traženih točaka podijeli
na četiri skupa (zapravo se radi o četiri dužine) koje dobivamo s
[tex]x[i+k][j+k], \, x[i+k][j-k], \, x[i-k][j-k], \, x[i-k][j+k][/tex], gdje
je [tex]k[/tex] neki brojač u odgovarajućem rasponu. Ovdje su se
javljale tri česte greške. Prva je da se nije pazilo da se srednja
točka, [tex]x[i][j][/tex], ne broji više puta (često se brojala 4 puta),
ali za to sam samo uzimao jedan bod. To naravno ipak nije imalo utjecaja kod grupa s minimumom i maksimumom. Druga pogreška
je da se nije dobro pazilo na raspon brojača [tex]k[/tex], a treća
je da se nije pazilo da prvu i drugu koordinatu, tj. indeks, moramo istovremeno mijenjati. Konkretno, sljedeći kod
Kod:

for(k=i; k<n; k++)
   for(l=j; l<n; l++)
      zbroj+=x[k][l];

nije dobar.

Što se tiče b) dijela, naglasak je bio da se memorija pravilno
alocira i dealocira, te da se pravilno pozove funkcija jer
je ipak algoritam koji se javio bio nešto što se jako često javljalo
prošli semestar.
Već je bilo dosta pitanja i priče po forumu o mogućnosti deklariranja
matrice na način
Kod:

int n;
scanf("%d", &n);
double x[n][n];

ali to nisam prihvaćao kao dobro rješenje. Razlog je što za takvu
matricu funkcija iz a) dijela ne bi bila dobra, tj. program bi trebao
javiti pogrešku. Za razlog se samo prisjetite da smo kod funkcija
pisanih za statičke matrice uvijek eksplicitno morali navesti gornju
ogradu za drugu dimenziju matrice što bi značilo da bismo u prethodnom
slučaju morali napisati u prototip funkcije [tex]x[][n][/tex] što
naravno neće program progutati.
Naravno, i da nema prethodnog razloga, opet bismo vjerojatno
pokušali ne priznati gornji način deklaracije jer je naglašeno na
vježbama da se to neće priznavti na kolokviju.

M.E.

P.S. ako sam nešto krivo rekao, slobodno me ispravljajte
(jer ipak moje znanje iz programiranja nije puno veće od ovih slova Razz)

#2: komentar Autor/ica: div PostPostano: 16:08 uto, 6. 5. 2014
    —
Vjerujem da su ukupni rezultati kolokvija vrlo diskutabilni, a uvjeren sam da nije problem samo u studentima !!
Neznam dal se ocekivalo da studenti imaju klik na prvu za svaki zadatak,al definitvno 99% studenata taj klik niti je imalo niti je koji od zadataka bio za "klik".....sve u svemu jako lose koncipiran kolokvij...Kolokviji dok je glavni i odgovorni bio V. Sego su imali glavu i rep, bilo je tezih zadataka (sto je i normalno) ali i onih gdje se na prvu znalo sta se radi i gdje su studenti skupljali za prolaz... Ovaj kololvij se nemoze svrstat u najteze al u najlosije koncipirane sigurno ; vjerujem da je prosjek bodova po zadatcima sigurno losiji nego prijasnjih godina kada su vjezbe i predavanja drzali pravi programeri...mozda razlog lezi i u ovogodisnjem programiranju 1 koje je dopuatilo prolaz "bas svima" pa je s obzirom na takvo znanje nerealno ocekivat i neato bolje

#3: Re: komentar Autor/ica: mdokoLokacija: Heriot-Watt University, Edinburgh PostPostano: 16:42 uto, 6. 5. 2014
    —
div (napisa):
dok je glavni i odgovorni bio V. Sego

Kad je to točno V. Šego bio glavni i odgovorni na kolegiju? Kotacici rade 100 na sat

#4:  Autor/ica: div PostPostano: 16:47 uto, 6. 5. 2014
    —
Opcenito mislio sam na godinu/e kad je programerska ekipa bila: Doko,Bujanovic,Sego,Singer....A V. Sego je jedne godine bio i profesor i asiatent.. sve u svemu bez nekih igra rijeci mislim da se shvatila poanta komentara i nelogicnost programiranja ove godine !!!

#5:  Autor/ica: anabanana PostPostano: 6:03 čet, 8. 5. 2014
    —
pa gdje su ti rezultati?

#6:  Autor/ica: lukaa PostPostano: 8:45 čet, 8. 5. 2014
    —
na stranici kolegija,logicno Very Happy

#7:  Autor/ica: anabanana PostPostano: 9:04 čet, 8. 5. 2014
    —
da, da, vidim sad Smile nisu bili jutros



Forum@DeGiorgi -> Programiranje 1 i 2


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Stranica 1 / 1.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin