1 / 19

Program za ispis kalendara u pojedinom mjesecu

Programski jezik Small Basic. Program za ispis kalendara u pojedinom mjesecu. Program 63Bzad72.sb na. Program ispisuje kalendar za svaki mjesec u godini koja nije prijestupna.

korene
Download Presentation

Program za ispis kalendara u pojedinom mjesecu

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. Programski jezik Small Basic Program za ispis kalendara u pojedinom mjesecu

  2. Program 63Bzad72.sb na • Program ispisuje kalendar za svaki mjesec u godini koja nije prijestupna. • Korisnik treba upisati koji dan u tjednu je 1. u mjesecu (1-ponedjeljak, 2-utorak, 3-srijeda, 4-četvrtak, 5-petak, 6-subota, 7-nedjelja), te za koji mjesec (upisati broj od 1 do 12) se ispisuje kalendar. • Program će ispisati kalendar.

  3. Nekoliko ispisa programa koji se mogu dobiti:

  4. O čemu moramo voditi računa? • Mjesec u godini koja nije prijestupna može imati 28, 30 ili 31 dan. • Datumi su jednoznamenkasti ili dvoznamenkasti brojevi, pa ćemo ispisivati u svaki treći stupac • Položaj 1. u mjesecu moramo odrediti ovisno o učitanom danu u tjednu • Sljedeća 3 reda sigurno imaju po 7 dana • U petom redu treba ispisati preostale datume u mjesecu • Ako smo u 5. redu već ispisali 7 dana, a ostalo je još dana u mjesecu preostale dane ispisujemo u 6. redu

  5. Varijable koje se koriste • prvi – broj od 1 do 7 – pamti dan u tjednu prvoga dana u mjesecu • mjesec – pamti mjesec • broj – broj dana u mjesecu • ispisano – koliko smo dana ispisali • dan – redni broj dana kojeg treba ispisati • broji_dan – broji koliko je dana ispisano u pojedinom retku

  6. Rješenje (1/6): Upis ulaznih vrijednosti: TextWindow.Title="PROGRAM ZA ISPIS KALENDARA" TextWindow.WriteLine("Upiši redni broj koji označava koji dan u tjednu je 1. u mjesecu") TextWindow.WriteLine("1-ponedjeljak, 2-utorak,3-srijeda, 4-četvrtak 5-petak, 6-subota, 7-nedjelja") TextWindow.Write("Prvi u mjesecu je:") prvi=TextWindow.ReadNumber() TextWindow.Write("Upiši mjesec za koji se kalendar ispisuje:") mjesec=TextWindow.ReadNumber()

  7. Rješenje (2/6): Određivanje broja dana u mjesecu: Ifmjesec=9Then broj=30 Gotobriši EndIf Ifmjesec=11Then broj=30 Gotobriši EndIf broj=31 briši: TextWindow.Clear() Ifmjesec=2Then broj=28 Gotobriši EndIf Ifmjesec=4Then broj=30 Gotobriši EndIf Ifmjesec=6Then broj=30 Gotobriši EndIf započinje ispis kalendara

  8. Rješenje (3/6): Ispis prvog retka Ako u varijabli prvi pamtimo redni broj prvog dana u mjesecu onda u prvom redu treba ispisati 8-prvi dana (Ako je prvi=1ispisujemo svih 7 dana, a ako je npr. prvi=6 ispisujemo samo 2 dana: subotu i nedjelju. dan=1 ispisano=0 stupac=(prvi-1)*3+3 Form=1To8-prvi TextWindow.CursorTop=4 TextWindow.CursorLeft=stupac TextWindow.Write(dan) dan=dan+1 stupac=stupac+3 ispisano=ispisano+1 EndFor Nakon ove Forpetlje u varijablidannalazi se broj dana kojeg sljedećeg treba ispisati, a u varijabli ispisano koliko smo dana ispisali.

  9. Rješenje (4/6): Ispis redaka u kojima ima 7 dana: stupac=3 Fork=0To2 Form=1To7 TextWindow.CursorTop=2+k TextWindow.CursorLeft=stupac TextWindow.Write(dan) dan=dan+1 stupac=stupac+3 ispisano=ispisano+1 EndFor stupac=3 EndFor Ifispisano=brojThen Gotokraj EndIf

  10. Rješenje (5/6): Ne možemo koristiti Forpetlju jer ne znamo koliko je dana preostalo. Dane ispisujemo dok nismo ispisali sve dane (dan<=broj) ili dok nismo ispisali cijeli tjedan (broji_dan<=7) broji_dan=1 stupac=3 povratak: TextWindow.CursorTop=5 TextWindow.CursorLeft=stupac TextWindow.Write(dan) dan=dan+1 broji_dan=broji_dan+1 stupac=stupac+3 ispisano=ispisano+1 Ifdan<=brojThen Ifbroji_dan<=7Then Gotopovratak EndIf EndIf

  11. Rješenje (6/6): Ako je ispisano=broj, onda smo ispisali sve potrebne dane i preskačemo na kraj programa. Inače, ispisujemo posljednji redak kalendara. Ifispisano=brojThen Gotokraj EndIf broji_dan=1 stupac=3 gore: TextWindow.CursorTop=6 TextWindow.CursorLeft=stupac TextWindow.Write(dan) dan=dan+1 broji_dan=broji_dan+1 stupac=stupac+3 Ifdan<=brojThen Gotogore EndIf kraj: TextWindow.WriteLine("")

  12. Zadaci za učenike: • Dopuni program tako da ispisuje kalendar i za prijestupnu godinu • Radne dane ispiši žutom bojom, a nedjelje crvenom • Na vrhu kalendara ispiši početna slova dana u tjednu: P, U, S, Č, P, S i N. • Dodaj naredbe koje ispisuju ime pojedinog mjeseca u godini.

  13. Rješenje (1/7): TextWindow.Title="PROGRAM ZA ISPIS KALENDARA" TextWindow.WriteLine("Upiši redni broj koji označava koji dan u tjednu je 1. u mjesecu") TextWindow.WriteLine("1-ponedjeljak, 2-utorak,3-srijeda, 4-četvrtak 5-petak, 6-subota, 7-nedjelja") TextWindow.Write("Prvi u mjesecu je:") prvi=TextWindow.ReadNumber() TextWindow.Write("Upiši mjesec za koji se kalendar ispisuje:") mjesec=TextWindow.ReadNumber() TextWindow.Write("Je li godinaprijestupna? 0-NE, 1-DA:") prijestupna=TextWindow.ReadNumber() Nove naredbe označene su svijetlo plavom podlogom.

  14. Rješenje (2/7): Ifmjesec=9Then broj=30 Gotobriši EndIf Ifmjesec=11Then broj=30 Gotobriši EndIf broj=31 briši: TextWindow.Clear() TextWindow.ForegroundColor=11 TextWindow.CursorTop=1 TextWindow.CursorLeft=11 Ifmjesec=2Then Ifprijestupna=1Then broj=29 Else broj=28 EndIf Gotobriši EndIf Ifmjesec=4Then broj=30 Gotobriši EndIf Ifmjesec=6Then broj=30 Gotobriši EndIf

  15. Rješenje (3/7): Ifmjesec=7Then TextWindow.Write("SRPANJ") EndIf Ifmjesec=8Then TextWindow.Write("KOLOVOZ") EndIf Ifmjesec=9Then TextWindow.Write("RUJAN") EndIf Ifmjesec=10Then TextWindow.Write("LISTOPAD") EndIf Ifmjesec=11Then TextWindow.Write("STUDENI") EndIf Ifmjesec=12Then TextWindow.Write("PROSINAC") EndIf Ifmjesec=1Then TextWindow.Write("SIJEČANJ") EndIf Ifmjesec=2Then TextWindow.Write("VELJAČA") EndIf Ifmjesec=3Then TextWindow.Write("OŽUJAK") EndIf Ifmjesec=4Then TextWindow.Write("TRAVANJ") EndIf Ifmjesec=5Then TextWindow.Write("SVIBANJ") EndIf Ifmjesec=6Then TextWindow.Write("LIPANJ") EndIf

  16. Rješenje (4/7): TextWindow.CursorTop=2 TextWindow.CursorLeft=3 TextWindow.ForegroundColor=15 TextWindow.WriteLine("P U S Č P S N") TextWindow.ForegroundColor=14 dan=1 ispisano=0 stupac=(prvi-1)*3+3 Form=1To8-prvi TextWindow.CursorTop=4 TextWindow.CursorLeft=stupac Ifstupac=21Then TextWindow.ForegroundColor=12 Else TextWindow.ForegroundColor=14 EndIf TextWindow.Write(dan) dan=dan+1 stupac=stupac+3 ispisano=ispisano+1 EndFor

  17. Rješenje (5/7): stupac=3 Fork=0To2 Form=1To7 TextWindow.CursorTop=5+k TextWindow.CursorLeft=stupac Ifstupac=21Then TextWindow.ForegroundColor=12 Else TextWindow.ForegroundColor=14 EndIf TextWindow.Write(dan) dan=dan+1 stupac=stupac+3 ispisano=ispisano+1 EndFor stupac=3 EndFor Ifispisano=brojThen Gotokraj EndIf

  18. Rješenje (6/7): broji_dan=1 stupac=3 povratak: TextWindow.CursorTop=8 TextWindow.CursorLeft=stupac Ifstupac=21Then TextWindow.ForegroundColor=12 Else TextWindow.ForegroundColor=14 EndIf TextWindow.Write(dan) dan=dan+1 broji_dan=broji_dan+1 stupac=stupac+3 ispisano=ispisano+1 IFdan<=brojThen Ifbroji_dan<=7Then Gotopovratak EndIf EndIf

  19. Rješenje (7/7): Ifispisano=brojThen Gotokraj EndIf broji_dan=1 stupac=3 gore: TextWindow.CursorTop=9 TextWindow.CursorLeft=stupac Ifstupac=21Then TextWindow.ForegroundColor=12 Else TextWindow.ForegroundColor=14 EndIf TextWindow.Write(dan) dan=dan+1 broji_dan=broji_dan+1 stupac=stupac+3 Ifdan<=brojThen Gotogore EndIf kraj: TextWindow.WriteLine("")

More Related