1 / 21

Programiranje in algoritmi

Saša Divjak. Programiranje in algoritmi. Kar ni bilo povedano na predavanjih Kar ni bilo dovoj jasno Kar vas zanima. Začetek ob 20.00. Kaj bomo spoznali. Domača naloga Izgled datoteke PNG Branje binarnih datotek Tvorba povezanega seznama S ortiranje. Primer datoteke png. Editor.

chavez
Download Presentation

Programiranje in algoritmi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Saša Divjak Programiranje in algoritmi Karnibilopovedanonapredavanjih Karnibilodovojjasno Kar vas zanima Začetekob 20.00

  2. Kajbomospoznali • Domačanaloga • Izgleddatoteke PNG • Branjebinarnihdatotek • Tvorbapovezanegaseznama • Sortiranje

  3. Primer datotekepng Editor Learner.png Na srečo je možnodatoteko PNG prepoznatitudibrezustreznekončnice, tako da se pogleda, čedatotekavsebujevsepotrebne dele, zaprikazslike. Vsebinadatoteke PNG je sestavljenanasledečnačin: Najprej je t.i. magičnoštevilo, ki mu sledizaporedjablokov: magičnoštevilo, blok1, blok2 .... blokN

  4. Začetniblok Magičnoštevilo Magičnoštevilo je dolgo 8 bajtov in morabitisestavljenoizštevil: 137,80,78,71,13,10,26,10. Vsakblok je sestavljennasledečnačin: Najprej je podanadolžinapodatkovnegadelabloka v bajtih (4 bajti), tip bloka (4 bajti), sledipodatkovni del bloka (tolikobajtov, kot je podanadolžina) in povzetekbloka (4 bajti).

  5. Širina Višina širina = 0 * 2563 + 0 * 2562 + 0*2561 + 190*2560 = 190 višina= 0 * 2563 + 0 * 2562 + 1*2561+ 94*2560 = 350 Podatkovnidel pa vsebuješirinoslike (4 bajti), višinoslike (4 bajti), sledi pa še 5 polj o lastnostihslike (vsakpo en bajt):

  6. Learner.png 190 x 350 Pujsek.aaa 206 x 142 Zaba.aaa 86 x78 learner.png miska.jpg pujsek.aaa zaba.tif pujsek.gif pes.gif zaba.aaa veverica.bmp Datoteka z imenidatotek V programskemjeziku C napišite program, kikot argument ukaznevrsticedobiimetekstovnedatoteko, kivsebujeimenadatotek (vsakoime v svojivrstice, imenidaljše od 499 znakov in ne vsebujepresledkov), kijihželimopregledati. Na standardniizhod pa zatistedatotekeizseznama, kiustrezajopravilom o datotekah PNG, izpišiteimedatoteke in velikostslike. Primeridatotek

  7. learner.png miska.jpg pujsek.aaa zaba.tif pujsek.gif pes.gif zaba.aaa veverica.bmp learner.png 190 350 Začetekseznama pujsek.aaa 206 142 zaba.aaa Program najvsebujefunkcijo, kinapodlagiprejetegaimenadatoteke (vhodni parameter), vrnekazalecnastrukturo, kihraniimedatoteketervelikostslike oz. NULL, čedatoteka ne ustrezapravilom o datotekah PNG. Vrnjenestrukturehranite v povezanseznam 86 78

  8. Learner.png 190 x 350 Pujsek.aaa 206 x 142 Zaba.aaa 86 x78 learner.png 190 350 zacetekSeznama pujsek.aaa 206 142 zaba.aaa 86 Na standardniizhod pa zatistedatotekeizseznama, kiustrezajopravilom o datotekah PNG, izpišiteimedatoteke in velikostslike. 78

  9. Kakotvorimopovezaniseznam? • Seznam2.ppt Na mestu the številsizamisliteimedatoteke in velikostslike 0 1 2 3 4 5 6 7 8 0 head

  10. Izpispovezanegaseznama Nekajtemupodobnega node * ptr =head;while(ptr!=NULL){printf(“%d “, ptr->podatek);ptr=ptr->next;}printf(“\n”); WEB

  11. Kaj pa sortiranjeseznamov ? NEOBVEZNO: Izpisdatoteknajbourejenpošteviluslikovnihelementovslike od največje do najmanjše. Najprejnekaj o Bubble sort poljapodatkov Primer sortiranjapovezanegaseznama

  12. Spomnimo se šeenkratizpisaseznama… structlnode { int data; structlnode *next; } *head, *visit; 4 2 3 5 // tvorbaseznama, nanjkažekazalec head visit = head; while(visit != NULL) { printf("%d\t", visit->data); visit = visit->next; } visit head … in sioglejmosortiranjeseznama

  13. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  14. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  15. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  16. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  17. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  18. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  19. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  20. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 4 2 3 5 c b a e tmp head

  21. while (e != head->next) { c = a = head; b = a->next; while(a != e) { if(a->data > b->data) { if(a == head) { tmp = b -> next; b->next = a; a->next = tmp; head = b; c = b; } 2 4 3 5 c b a e tmp head

More Related