Metodika nastave računarstva 2



Profesor: dr. Miroslav Marić
Asistent: Sana Stojanović Đurđević


Оbaveštenje:

  • Rezultati ispitnog roka OKTOBAR: rezultati
  • Podeljene teme za predavanja:
    • Mladen Stanković 14h, digitron
    • Saša Stojanović 14h, digitron
    • Nikola Đurić 14h, notepad
    • Maja Milanić 14h, notepad
    • Nemanja Zirojević 16h, digitron
    • Ivan Čavić 16h, digitron
    • Anja Bošković 16h, notepad
    • Sanja Čeko 16h, notepad

Teme obrađene na vežbama:

Zadaci urađeni na vežbama:

  • Zadaci urađeni u verziji Visual Studio 2010
    1. Zadaci sa časa: cas I
      • Komponente Button, TextBox i MessageBox.
      • Štampanje poruka korisniku (sa zaglavljem i bez zaglavlja).
      • Pravljenje digitrona (sa 4 osnovne operacije, +, -, *, /).
      • Akcije na klik dugmeta i na promenu teksta u TextBox-u.
      Domaći:
      • Prepraviti program tako da može da radi sa realnim brojevima.
    2. Zadaci sa časa: cas II
      • Komponente ListBox i Label.
      • Funkcija tryParse, try-catch blok.
      • Pražnjenje liste, popunjavanje liste. Ispis u listBox-u svih brojeva od 1 do n, ispis parnih brojeva od 1 do n, ispis cifara broja n.
      • Menjanje labele. Ispis rezultata preko labele.
      • Računanje stepena broja x^y, za pozitivno y.
      • Ispis cifara u obrnutom i normalnom redosledu preko labele.
      Domaći:
      • Prepraviti zadatak sa prethodnog časa tako da koristi funkciju tryParse.
      • Dodati dugme koje ispisuje u listBox-u sve delioce broja n (raditi efikasan algoritam, delioce tražiti do korena od n).
      • Dodati dugme koje ispisuje u listBox-u sve brojeve manje od n koji su deljivi sa 3.
      • Dodati još jedan textBox koji će zadavati broj k. Dodati dugme koje će ispisivati u listBox-u sve brojeve manje od n koji su deljivi sa k.
      • Dodati dugme koje u labeli ispisuje sumu svih cifara broja n.
      • Dodati dugme koje u labeli ispisuje maksimalnu cifru broja n.
      • Dodati dugme koje u labeli ispisuje minimalnu cifru broja n.
      • Računanje stepena x^y za celobrojno x i y.
    3. Zadaci sa časa: cas III
      • Funkcija formLoad, pražnjenje labele.
      • Funkcije za računanje najvećeg zajedničkog delioca dva broja, zbir dva razlomka.
      • Funkcije koje računaju vrednosti: n!, rekurzivna funkcija, funkcija bez povratne vrednosti.
      Domaći:
      • Računanje vrednosti razlike, proizvoda i deljenja dva razlomka.
      • Računanje sume prvih n prirodnih brojeva, sume prvih n invertovanih prirodnih brojeva.
      • Prevođenje broja iz dekadne osnove u binarnu i obratno.
      • Rešavanje jednačine ax+b = 0.
      • Obrtanje broja (napisati funkciju int obrni(int n) koja vraća vrednost koja se dobija kada se broj pročita zdesna na levo).
    4. Zadaci sa časa: cas IV
      • Klase Graphics, Color, Pen i Point.
      • Funkcije createGraphic, DrawLine, komponenta ColorDialog.
      • Menjanje boje pozadine forme, biranje boje preko ColorDialog-a, crtanje linije, menjanje koordinate linije i debljine linije.
      • Crtanje paralelnih linija (na gore i na levo) sa zadavanjem pomeraja.
      Domaći:
      • Dodati dugmiće koji izračunavaju obim i površinu zadatog trougla.
      • Dodati dugme koje će nacrtati trougao koji je simetričan u odnosu na početni trougao kada se gleda u odnosu na liniju koja prolazi kroz teme B (u našem primeru je B(100,150)) a koja je paralelna y-osi.
      • Dodati dugme koje će crtati paralelno trougao nagore i nalevo (u jednom pomeraju da se trougao pomera i na gore i u levo, za isti pomeraj) dok trougao ne udari u gornju ili levu ivicu forme.
    5. Zadaci sa časa: cas V
      • Klasa SolidBrush, komponenta PictureBox.
      • Funkcije DrawRectangle, DrawEllipse, FillRectangle, FillEllipse.
      • Funkcije MouseDown, MouseUp
      • Komponente RadioButton, CheckBox.
      • Menjanje boje pictureBox-a, brisanje pictureBox-a, crtanje na pictureBox-u, dimenzije pictureBox-a.
      • Crtanje pune i prazne elipse i pravougaonika.
      • Crtanje pravougaonika gore-levo, gore-desno, dole-levo i dole-desno u odnosu na izabranu tačku na pictureBox-u.
      • Crtanje linije, elipse i pravougaonika koji su zadati pokretima miša. Pritisak miša označava početak objekta, puštanje miša označava kraj objekta.
      • Prikazivanje boje objekta preko pictureBox-a.
      • Crtanje kruga koji je zadat svojim centrom i tačkom na krugu.
      • Dugmići za biranje tipa objekta (linija, elipsa, pravougaonik ili krug).
      • Korišćenje komponente radioButton za biranje tipa objekta (linija, elipsa, pravougaonik ili krug).
      • Korišćenje komponente checkBox za biranje tipa objekta (pun ili prazan).
      • Korišćenje liste za biranje debljine olovke kojom se crta.
      Domaći:
      • Uraditi zadatak sa prošlog časa tako da se svi objekti iscrtavaju na pictureBox-u.
      • Dodati opcije učitavanja preko textBox-ova (za koordinate x1,y1,x2,y2, širinu i visinu i za debljinu linije).
      • Dodati dugmiće koji će crtati paralelno poslednji iscrtani objekat na desno i na dole (dva dugmeta, jedno za kretanje udesno, jedno za kretanje na dole) dok taj objekat ne udari u desnu, tj. donju ivicu pictureBox-a.
    6. Zadaci sa časa: cas VI
      • Komponenta ToolStrip i u okviru nje Button i ComboBox.
      • Svojstva DisplayStyle, CheckOnClick, BackColor. Funkcija DropDownClosed. Dimenzije forme.
      • Preko toolStrip-a prikazane sve opcije za crtanje linije, pravougaonika, elipse, kruga. Dodati dumići za biranje boje i prikazivanje boje linije. Dodat ComboBox za biranje debljine linije. Primeri ilustrovani samo sa linijom.
      • Prikaz izbora polja u kome se crtaju koncentrični objekti (centar, gore levo, gore desno, dole levo, dole desno), izbor debljine linije preko listBox-a, izbor pravougaonika ili elipse preko checkBox-a, izbor razmaka između dva objekta ili izbor broja koncentričnih objekata (kombinacija checkBox-a i dva listaBox-a).
      Domaći:
      • Dodati funkcionalnost za crtanje svih ostalih vrsta objekata.
      • Dodati dugme koje omogućava korisniku da izabere da li želi da se crta prazan ili popunjen objekat.
      • Dodati dugme za biranje boje popunjenih objekata.
    7. Zadaci sa časa: cas VII
      • Klasa String, funkcije IndexOf i Substring.
      • Komponente RichTextBox i FontDialog, funkcije Replace, ToLower, ToUpper. Parametri Text, SelectedText, SelectionLength, Font i SelectionFont.
      • Komponenta Timer, parametri Enabled, Interval. Parametar ReadOnly komponente TextBox.
      • Unošenje imena grada i poštanskog broja preko jednog textBox-a i razdvajanje na dve liste.
      • Unos podataka o studentima preko tri textBox-a (ime, prezime i ime roditelja) i upisivanje u listu u obliku "Petar M. Petrovic" (ime, prvo slovo imena roditelja i prezime).
      • Unošenje teksta preko RichTextBox-a i omogućavanje zamene stare reči novom rečju. Reči se zadaju preko dva textBox-a.
      • Dodavanje dugmića koji prebacuju sva slova u mala slova ako nema selektovanog teksta, odnosno koji prebacuju samo selektovan tekst u mala slova. Analogno za prebacivanje u velika slova.
      • Dodati dugme koje omogućava promenu fonta u selektovanom tekstu. Ako nema selektovanog teksta onda se promena fonta primenjuje na ceo tekst.
      • Program koji odbrojava od 100 do 0. U trenutku kada stigne do 0 prikazati MessageBox sa odgovarajućom porukom. Omogućiti korisniku da može da bira brzinu odbrojavanja.
      • Program koji odbrojava od početne do krajnje vrednosti koje korisnik sam zadaje preko dva textBox-a.
      Domaći:
      • Napisati program u kome korisnik ima mogućnost da unosi podatke o voću i povrću. Korisnik preko checkBox-a VOCKICE bira da li unosi podatke o voću ili o povrću. Ako unosi podatke o voću unositi ih u listBox1 i listBox2, a ako unosi podatke o povrću unositi ih u listBox3 i listBox4. Podaci o voću i povrću se unose preko textBox-a u obliku "IME CENA" (na primer: "jabuke 130", "paradajz 100"). Dodati dugme NAJSKUPLJE koje preko labele ispisuje koji je najskuplji proizvod i koja je njegova cena.
      • Napisati program koji odbrojava sa korakom K koji se zadaje preko listBox-a. Početna i krajnja vrednost brojača se zadaju preko dva textBox-a. Uvek se odbrojava od prve vrednosti ka drugoj. Odbrojavanje prikazati u labeli.
    8. Zadaci sa časa: cas VIII
      • Uvećavanje kuglice dok je pritisnut levi taster miša. Maksimalni dozvoljeni poluprečnik kuglice je 30.
      • Kretanje kuglice po pictureBox-u: levo-desno, gore-dole ili dijagonalno. Omogućen izbor pravca uz pomoć radioButton-a. Dodata mogućnost uvećanja i smanjenja kuglice u toku kretanja.
      Domaci:
      • Dodati mogućnost izbora boje kuglice i pictureBox u kome će u svakom trenutku biti prikazana boja kojom se crta. Dodati dugme za brisanje celog pictureBox-a.
      • Dodati radioButton-e koji omogućavaju korisniku da izabere objekat koji želi da nacrta: krug (sa centrom gde je kliknuto, poluprečnika R), elipsa (sa centrom gde je kliknuto, visine R, širine 2R), pravougaonik (sa centrom gde je kliknuto, visine R, širine 2R).
      • Dodati opciju da objekat koji se crta ne može da se iscrtava van ivica pictureBox-a.
      • U zadatku sa kretanjem kuglice dodati opciju da kuglica počne da se kreće, odnosno da stane, svaki put kada se klikne mišem na pictureBox.
      • Dodati jedno dugme "kreni-stani" koje će pokretati i zaustavljati kuglicu.
      • Omogućiti korisniku da može da nacrta više kuglica na pictureBox-u i da klikom na dugme "kreni-stani" pokreće dijagonalno kretanje poslednje dve iscrtane kuglice.
      • Dodati checkBox kojim korisnik može da bira da li se crta prazan ili popunjen objekat. Dodati dugmice za ubrzanje odnosno usporavanje kretanja objekta (na dva načina: prvo kroz menjanje intervala a onda kroz menjanje pomeraja, koristiti listBox).
    9. Zadaci sa časa: cas IX
      • Pomeranje pictureBox-a. Parametri Left i Top. Pomeranje levo-desno, gore-dole, dijagonalno, nasumicno.
      • Klasa Random, funkcija Next. Određivanje nasumice odabranog broja.
      • Promena pomeraja pictureBox-a preko listBox-a.
      • Simuliranje popunjavanja bazena vodom. Korišćenje klase Random za određivanje nasumice odabrane boje.
      • Simuliranje bacanja kamenčića u vodu i crtanje koncentričnih krugova koji tom prilikom nastaju. Početni krug je poluprečnika 5, debljine 5. Početni razmak izmedju krugova je 5. Razmak između krugova treba postepeno povećavati (za 5), debljinu krugova treba postepeno smanjivati (svaki drugi krug treba da bude za 1 uži nego prethodni), krugove treba iscrtavati sve sporije i sporije.
      Domaći:
      • Dodati mogućnost korisniku da bira uz pomoć RadioButton-a da li će se bazen puniti Crvenom, Zelenom, Plavom ili Random bojom.
      • Napisati program u kome korisnik crta kuglicu na mestu gde je kliknuto mišem. Kuglica se kreće uz pomoć tajmera u random pravcu. Svaki put kada korisnik klikne mišem iscrtava se nova kuglica koja započinje kretanje u nekom novom random pravcu. Dodati checkBox kojim se bira da li se crta prazna ili puna kuglica.
    10. Zadaci sa časa: cas X
      • Funkcija MouseMove.
      • Uvećavanje kuglice uz pomoć miša. Centar kuglice se određuje pritiskom miša, tačka na krugu se određuje mišem koji se pomera, kako se miš pomera tako se menja veličina kruga. Krug se konačno iscrtava kada korisnik pusti miša. Nije dopušteno iscrtavanje kuglice čije ivice izlaze van ivica forme.
      • Komponenta MenuStrip, funkcija Paint i funkcija Refresh.
      • Formiranje menija preko kog korisnik bira boju linija koje se iscrtavaju preko forme. Iscrtava se 10 vertikalnih linija određene boje u zavisnosti od odabira korisnika. U programu ponuditi opciju ispisivanja podataka o autoru programa.
      • Klasa StreamReader, System.IO, funkcije Peek, ReadLine i Close. Komponenta openFileDialog
      • Otvaranje datoteke i ispis broja parnih i broja neparnih brojeva u toj datoteci.
      • Svojstvo BackgroundImage, funkcija FromFile.
      • Otvaranje slike i postavljanje na pictureBox.
      Domaći:
      • Dodati opciju da korisnik bira da li se crta puna ili prazna kuglica. Dodati dugme na toolStrip-u uz pomoć kog korisnik može da bira boju kuglice.
      • Dodati mogućnost da kuglica nakon iscrtavanja započne kretanje po formi u random pravcu i da se odbija o ivice forme.
    11. Zadaci sa časa: cas XI
      • Napraviti program Digitron, u kojem će korisnik moći da vrši sve aritmetičke operacije nad realnim brojevima, kao i da briše unos i menja znak datom broju. Cifre i ostale funkcije digitrona se pozivaju klikom na odgovarajuće dugme, a broj i rezultat se prikazuju u textBox-u. Dodati i labelu koja će prikazivati vrednost prvog operanda kao i operaciju koju vršimo. Na kraju omogućiti korisniku da digitronom barata i pomoću tastature.
        • Klasa Button, povezivanje dugmića preko svojstva Click, svojstvo Name, funkcija Focus kojom održavamo uvek aktivnim textBox, funkcija PerformClick, svojstvo TextAlign, svojstvo MaximizeBox , svojstvo TabStop, funkcija KeyPress.
        • Detaljan opis rešenja.
      • Napraviti mali WordPad(Notepad). Aplikacija u sebi treba da sadrži jedan richTextBox, komponente menuStrip i toolStrip. MenuStrip treba da sadrži:
        • File komponentu, a ona u sebi: New, Open, Save i Exit (sve funkcionalne). (Klase: DialogResult, StreamReader, Application; komponente: openFileDialog, saveFileDialog; funkcije: DefaultExt, Filter, SaveFile, FileName, PlainText, Peek, ReadToEnd, ShowDialog, Close, Cancel, Exit, SelectedIndex) Za svaku ovu podkomponentu treba da se obezbedi sledeće: kada se pritisne Alt, treba da se podvuku slova N, O, S, X. Takođe, obezbediti prečice za svaku od njih u vidu komandi Ctrl+N, Ctrl+O itd…
        • Edit komponentu, a ona u sebi: Undo, Redo, Cut, Copy, Paste, Delete, Select All (sve funkcionalne). (funkcije: Undo, Redo, Cut, Copy, Paste, SelectedText, SelectAll)
        • Format komponentu, a ona u sebi: Selection Back Color, Fore color, Alignment (Left, Center, Right), Zoom (Zoom In, Zoom Out, Normal Size 100% - funkcija ZoomFactor), Indent (Increase Indent, Decrease Indent), Bullets (sve funkcionalne). (komponente: colorDialog; klase: HorizontalAlignment; funkcije: ShowDialog, SelectionBackColor, SelectionColor, Color, SelectionAlignment, ZoomFactor, SelectionIndent, SelectionBullet)
        U okviru jednog toolStrip-a treba da postoje:
        • dugmići za podebljana slova (Bold) i iskošena slova (Italic) i za njih obezbediti da bude vidljivo da je opcija izabrana; (klase: Font, FontStyle; funkcije: SelectionFont, Bold, Italic)
        • jedan ComboBox - koji omogućava biranje veličine slova; (funckija Focus)
        • jedan textBox - unosi se reč koju tražimo i pritiskom na Enter obezbediti da se obeležava tražena reč svuda u richTextBox-u;
        • dugmići Find Next i Find Previous (obezbediti pojedinačno traženje svake sledeće/prethodne reči pritiskom na odgovarajuće dugme) (klasa: RichTextBoxFinds(komande None i Reverse); funkcije: Find, IndexOf, LastIndexOf, TextLength)
      Domaći:
      • Ukoliko korisnik, nakon svog rada, želi da otvori neki fajl, dodati dijalog u kome će, pre otvaranja, moći da izabere da li želi da sačuva svoj rad ili ne (Yes/No). Ako je izabrano No, otvara se novi fajl, a ako je izabrano YES, prvo se sačuva prethodni, a zatim se otvori novi.
      • Podeliti Save na dve naredbe: Save (sačuvava trenutni fajl (ako je dobijen otvaranjem nekog već postojećeg)) i Save As (traži da se imenuje fajl i čuva ga).
      • Obezbediti prečice (u vidu komandi "Ctrl + nešto") za navedene komponente u Edit-u.
      • U menuStrip-u, u okviru komponente Format, napraviti komponentu Font.
      • Dodati na toolStrip-u opcije koje se nalaze u menuStrip-u.
  • Zadaci sa vežbi od prethodnih godina, urađeni u verziji Visual Studio 2005