Algoritam za sortiranje niza metodom Selection sort – Jednostavan primer

Dragi takmičari,

Pre nekoliko dana sam vam poslao algoritam za sortiranje niza metodom selekcije (najjednostavniji ali i najsporiji algoritam). Kako bi bolje razumeli bre, ali sloenije algoritme, neophodno je da dobro razumemo najpre jednostavne (sporije), te vam zato aljem algoritamsko reenje sa prekidnom tačkom i test primerom, kako bi korak po korak, svako od vas na svom računaru testirao algoritam i pratio trenutne vrednosti elemenata.

Detaljnije na:

Pozdrav,
Dragan Ilić

Категорије:Razno

Takmicenje iz programiranja 2017 – Prirpeme – Testiranje programskog koda

Drage takmičarke i dragi takmičari,

Na jučeranjem času dodatne nastave, odnosno priprema za takmičenje objanjavali i testiranje programskog koda. Tačnije akcenat je bio na testiranje izvrnog (exe) programa, redirekciji ulaza/izlaza, odnosno pravljenju BATCH fajla za testiranje naeg programa za sve test primere koje je pripremila komisija i na osnovu kojih su predati zadaci ocenjeni.

Jedna od veoma dobrih osobina ovog takmičenja, to komisija svih ovih godina, posle svakog kruga takmičenja, odnosno objavljivanja preliminarnih rezultata dostavlja i sve test primere koji su korićeni prilikom ocenjivanja/bodovanja reenja zadataka takmičara, a koji ostaju distupni godinama nakon tog kruga takmičenja. Osim to svaki takmičar moe sam da se uveri kako mu je bodovan zadatak i koji test primeri su proli, a koji ne, moe mnogo toga i da nauči o tehnikama programirnja, a posebno o ispunjavanju zahteva navedenih u zadatku počev od ograničenja, pa kasnije sve do vremenske optimizacije.

U prilogu se nalazi detaljnije uputstvo kako da već sada i to čeće reavate i testirate svoja reenja zadataka. Naravno ostaje nam najtei deo – optimzacija vremena potrebnog za izvravanje programa. O tome ćemo postepeno kroz sledeća uputstva.

Pozdrav,
Dragan Ilić

Категорије:Razno

Zaokruzivanje na 2 decimale – Zadatak 082 – sa prilogom odnosno resenjem zadatka Sabiranje 3

Drage takmičarke i dragi takmičari,

S obzirom da smo večeras prvo objanjavali ovaj zadatak, prosleđujem vam ponovo ovaj mejl, ali sa prilogom.
Fajl iz priloga moete da uploadujete i proverite onlajn (za svih 5 unapred pripremljenih test primera prolazi) na:

Pozdrav,
Dragan Ilić

Категорије:Razno

Takmicenje iz programiranja 2017 – Prirpeme 6.cas – cetvrtak 18.01 posle 6.casa

Drage takmičarke i dragi takmičari,

Večar (petak 12.januar), odraćan je 5. čas dodatne nastave, odnosno priprema za 2. krug kvalifikacija na takmičenju iz programiranja, nakon 6.časa u gornjem kabinetu.

Neto detaljnije smo razjasnili celobrojne tipove podataka Integer, LongInt, Int64, Byte i Word u Pascal-u i malo u C# i direkntnim postavaljanjem koda na petlja.org za Sabiranje 1 i Sabiranje 2, kao i zaokruivanje broja na 2 decimale (Sabiranje 3).

to se tiče zadatka Sabiranje 4 samo smo naglasili da tako velike brojeve (sa hiljadu cifara) moramo da učitavamo i obrađujemo kao nizove (od po 1000) cifara, odnosno da ne postoje standardni tipovi podataka za tako velike brojeve.

Praktično rečeno, dodatno smo (konkretno na računaru) razjasnili jutronje mejlove u čijim su subject-ima bili i redovni zadaci za sadani 3. razred 043 i 082, a na tabli ukratko ispisali ključne razloge zato su tipovi podataka Byte, Integer, Word, LongInt i Int64 ba takvih opsega (0..255, -32000…32000, -2 milijarde..2 milijarde, odnosno <10^9 i sl), kao naredbu Write ( p : 5 : 2 ) i razliku između Read i RedaLn.

Pred kraj smo pokazali kako svako od vas moe da testira svoje reenje (svoj Exe fajl) zadatka redirekcijom odnonsno korićenjem datih (i preuzetih) unapred generisanih test primera (konkretno ba iz prvog kruga kvalifikacija svih 12 test primera za 1. zadatak) i prvi put napravili BATCH fajl.

Jo jednom smo naglasili da bi bilo dobro da svako od takmičara instalira:

Dogovor je da sledeće časove priprema za takmičenje odrimo u sledećim terminima:

  • četvrtak 18.01. posle 6.časa (gornji ili donji kabinet)
  • petak 19.01. posle 6.časa (gornji kabinet)
  • subota 20.01. od 10 do 12 sati (gornji kabinet)

A do četvrtka da svako od takmičara kod kuće prouči sve materijale koje smo do danas poslali mejlom i pripremi nova pitana.

Pozdrav,
Dragan Ilić

Категорије:Razno

Takmicenje iz programiranja 2017 – Pripreme – Nizovi – Sortiranje

Dragi takmičari,

Često (kao i u trećem zadatku) u takmičarskim zadacima se zahteva sortiranje niza.

Postoji mnogo metoda za sortiranje nizova. Danas krećemo sa najjednostavnijom i najlakom za učenje, razumevanje i pamćenje, ali takođe i najneoptimalnijom, odnosno najsporijom. Radi se o pojednostavljenoj metodi selekcije. Broj prolaza kroz algoritam je uvek isti skoro N*N i uopte ne zavisi od stepena različitosti elemenata.

U prilogu je algoritam i programski kod u Pascal-u. Obavezno istestirajte algoritam korak po korak, tako to ćete propratiti i trenutne vrednosti promenljivih.

Kada dobro proučite ovaj najlaki, ali i najsporiji metod, i kada budete imali vremena obavezno pogledajte i sledeće materijale:

Pozdrav,
Dragan Ilić

Категорије:Razno

Zaokruzivanje na 2 decimale – Zadatak 082

Drage takmičarke i dragi takmičari,

Neretko se u takmičarskim zadacima trai prikazivanje vrednosti izlaznih rezultata sa odeđenom preciznoću i brojem decimalnih cifara.
U konzolnim aplikacijama (koje su i jedine na takmičenju) prikazivanje i zaokruivanje vrednosti broja na određeni broj decimala je neto jednostavnije, naročito u Pascal-u.

1. to se preciznosti broja na određeni broj decimala tiče, treba samo voditi računa o izboru odgovarajućeg tipa realnih brojeva, kao to su:

  • Real
  • Double
  • Extended
  • ili zapis broja kao niz cifara, s tim to to podrazumava potpuno zasebne tehnike za sve traene operacije sa tim brojem (sabiranje, oduzimanje, mnoenje, deljenje, stepenovanje, korenovanje i sl), a pri tom, treba obratiti dodatnu panju na moguća prekoračenja i memorije i vremena.

2. to se tiče zaokruivanja broja na određeni broj decimala, koristi se jedan od sledećih postupaka:

  • Najlake i najčeće naredbom Write, odnosno Write, kojem se osim traenog argumenta (promenljive) dodaju jo 2 za ukupan broj cifara (pozicija, računajući i tačku i znak) i za broj decimalnih cifara:
    Write ( promenljiva, brojpozicija, brojdecimala);
    Vrednost promenljive ostaje ista, samo se prikaz zaokruuje na navedeni broj decimala.
  • Koričenjem funkcije Round (ili RoundTo) kojom se zaokruuje vrednost broja, odnosno promenljive na navedni broj decimala.

Postoji jo nekoliko načina. Kada budete imali vremena pregledajte materijale iz 082 zadatka koji je poslat kao redovan domaći zadatak sadanjim učenicima 3.razreda (u nastavku mejla).

Pozdrav,
Dragan Ilić

Категорије:Razno

3. Razred: 4.3. Zaokruzivanje na 2 decimale – Zadatak 082

Drage učenice i dragi učenici 3. razreda,

U toku polugođa bilo je dosta pitanja vezanih za zadatak 082. Nekoliko učenika je uspelo da rei ovaj zadatak.

Sada je pravo vreme da naučimo kako da prikazivanje vrednosti broja zaokruimo na 2 decimale. Ispod teksta zadataka dodato je uputstvo za reavanje zadatka po koracima:

Ovaj zadatak je pripremljen tako da vas korak po korak vodi kroz nekoliko često korićenih postupaka za zaokruivanje broja na nekoliko decimala. Poeljno je da ga reavate kao domaći zuadatak kod kuče na svojim računarima najkasnije do petka 19.januara.

Ukoliko imate bilo kakvih pitanja vezanih za ovaj zadatak, pripremite ih za sledeći čas.

Pozdrav,
Dragan Ilić

Категорије:Razno
%d bloggers like this: