Martin Juvan: SPREMENLJIVO ŠTEVILO PARAMETROV. List za mlade matematike, fizike, astronome in računalnikarje

Similar documents
A L A BA M A L A W R E V IE W

Reševanje problemov in algoritmi

T h e C S E T I P r o j e c t

P a g e 5 1 of R e p o r t P B 4 / 0 9

176 5 t h Fl oo r. 337 P o ly me r Ma te ri al s

Ciril Velkovrh: List za mlade matematike, fizike, astronome in računalnikarje. ISSN Letnik 11 (1983/1984) Številka 3 Strani

Last 4 Digits of USC ID:

02/05/09 Last 4 Digits of USC ID: Dr. Jessica Parr

OH BOY! Story. N a r r a t iv e a n d o bj e c t s th ea t e r Fo r a l l a g e s, fr o m th e a ge of 9

P a g e 3 6 of R e p o r t P B 4 / 0 9

CLASS TEST GRADE 11. PHYSICAL SCIENCES: CHEMISTRY Test 4: Matter and materials 1

Ash Wednesday. First Introit thing. * Dómi- nos. di- di- nos, tú- ré- spi- Ps. ne. Dó- mi- Sál- vum. intra-vé-runt. Gló- ri-

CATAVASII LA NAȘTEREA DOMNULUI DUMNEZEU ȘI MÂNTUITORULUI NOSTRU, IISUS HRISTOS. CÂNTAREA I-A. Ήχος Πα. to os se e e na aș te e e slă ă ă vi i i i i

I M P O R T A N T S A F E T Y I N S T R U C T I O N S W h e n u s i n g t h i s e l e c t r o n i c d e v i c e, b a s i c p r e c a u t i o n s s h o

(C) Pavel Sedach and Prep101 1

The Periodic Table. Periodic Properties. Can you explain this graph? Valence Electrons. Valence Electrons. Paramagnetism

Executive Committee and Officers ( )

Solutions and Ions. Pure Substances

Chemistry 2 Exam Roane State Academic Festival. Name (print neatly) School

Circle the letters only. NO ANSWERS in the Columns!

CHEM 10113, Quiz 5 October 26, 2011

CHEM 108 (Spring-2008) Exam. 3 (105 pts)

Use precise language and domain-specific vocabulary to inform about or explain the topic. CCSS.ELA-LITERACY.WHST D

8. Relax and do well.

(please print) (1) (18) H IIA IIIA IVA VA VIA VIIA He (2) (13) (14) (15) (16) (17)

Made the FIRST periodic table

CHEM Come to the PASS workshop with your mock exam complete. During the workshop you can work with other students to review your work.

The exam must be written in ink. No calculators of any sort allowed. You have 2 hours to complete the exam. Periodic table 7 0

Ch. 9 NOTES ~ Chemical Bonding NOTE: Vocabulary terms are in boldface and underlined. Supporting details are in italics.

Using the Periodic Table

Lab Day and Time: Instructions. 1. Do not open the exam until you are told to start.

Lab Day and Time: Instructions. 1. Do not open the exam until you are told to start.

Element Cube Project (x2)

Advanced Placement. Chemistry. Integrated Rates

CHEM 10123/10125, Exam 2

Faculty of Natural and Agricultural Sciences Chemistry Department. Semester Test 1. Analytical Chemistry CMY 283. Time: 120 min Marks: 100 Pages: 6

MANY ELECTRON ATOMS Chapter 15

9/20/2017. Elements are Pure Substances that cannot be broken down into simpler substances by chemical change (contain Only One Type of Atom)

BROOKLYN COLLEGE Department of Chemistry. Chemistry 1 Second Lecture Exam Nov. 27, Name Page 1 of 5

K. 27 Co. 28 Ni. 29 Cu Rb. 46 Pd. 45 Rh. 47 Ag Cs Ir. 78 Pt.

INSTRUCTIONS: 7. Relax and do well.

Chem 6 Sample exam 2 (150 points total) NAME:

Guide to the Extended Step-Pyramid Periodic Table

CHEM 130 Exp. 8: Molecular Models

CHEM 107 (Spring-2005) Exam 3 (100 pts)

Software Process Models there are many process model s in th e li t e ra t u re, s om e a r e prescriptions and some are descriptions you need to mode

5 questions, 3 points each, 15 points total possible. 26 Fe Cu Ni Co Pd Ag Ru 101.


Instructions. 1. Do not open the exam until you are told to start.

Table of C on t en t s Global Campus 21 in N umbe r s R e g ional Capac it y D e v e lopme nt in E-L e ar ning Structure a n d C o m p o n en ts R ea

8. Relax and do well.

Nucleus. Electron Cloud

CHEM 251 (Fall-2003) Final Exam (100 pts)

8. Relax and do well.

[ ]:543.4(075.8) 35.20: ,..,..,.., : /... ;. 2-. ISBN , - [ ]:543.4(075.8) 35.20:34.

CHM 101 PRACTICE TEST 1 Page 1 of 4

Chemistry 431 Practice Final Exam Fall Hours

FINAL EXAM April 26, 2004

Radiometric Dating (tap anywhere)

Atoms and the Periodic Table

Welcome to the Public Meeting Red Bluff Road from Kirby Boulevard to State Highway 146 Harris County, Texas CSJ No.: December 15, 2016

Faculty of Natural and Agricultural Sciences Chemistry Department. Semester Test 1 MEMO. Analytical Chemistry CMY 283

POLYTECHNIC OF NAMIBIA

Circle the letters only. NO ANSWERS in the Columns! (3 points each)

CHEM 107 (Spring-2004) Exam 2 (100 pts)

CHEM 172 EXAMINATION 2. February 12, Dr. Kimberly M. Broekemeier NAME: l = 2r l = 8 1/2 r l = (4/3 1/2 )r. h = 6.

Circle ONLY the LETTER of your answer.

Lesson Ten. What role does energy play in chemical reactions? Grade 8. Science. 90 minutes ENGLISH LANGUAGE ARTS

8. Relax and do well.

Chemistry Higher level Paper 1

PHYSICAL SCIENCES GRADE : 10

8. Relax and do well.

Use precise language and domain-specific vocabulary to inform about or explain the topic. CCSS.ELA-LITERACY.WHST D

Instructions. 1. Do not open the exam until you are told to start.

K. 27 Co. 28 Ni. 29 Cu Rb. 46 Pd. 45 Rh. 47 Ag Cs Ir. 78 Pt.

Lab Day and Time: Instructions. 1. Do not open the exam until you are told to start.

NAME (please print) MIDTERM EXAM FIRST LAST JULY 13, 2011

Speed of light c = m/s. x n e a x d x = 1. 2 n+1 a n π a. He Li Ne Na Ar K Ni 58.

Chapter 3: Stoichiometry

Chemistry 1 First Lecture Exam Fall Abbasi Khajo Levine Mathias Mathias/Ortiz Metlitsky Rahi Sanchez-Delgado Vasserman

M10/4/CHEMI/SPM/ENG/TZ2/XX+ CHEMISTRY. Wednesday 12 May 2010 (afternoon) 45 minutes INSTRUCTIONS TO CANDIDATES

8. Relax and do well.

7. Relax and do well.

Chem 102H Exam 2 - Spring 2005

The 18 Electron Rule. References: Gray: chapter 5 OGN: chapter 18

610B Final Exam Cover Page

Boy Scout Troop 41 Bay Village, Ohio A C K N O W L E D G E M E N T S. F i f t i e t h A n n i v e r s a r y C e l e b r a t i o n

Metallurgical Chemistry. An Audio Course for Students

HANDOUT SET GENERAL CHEMISTRY II

Marks for each question are as indicated in [] brackets.

INSTRUCTIONS: CHEM Exam I. September 13, 1994 Lab Section

c. What is the average rate of change of f on the interval [, ]? Answer: d. What is a local minimum value of f? Answer: 5 e. On what interval(s) is f

CMSC 313 Lecture 17 Postulates & Theorems of Boolean Algebra Semiconductors CMOS Logic Gates

Spin Cut-off Parameter of Nuclear Level Density and Effective Moment of Inertia

M14/4/CHEMI/SPM/ENG/TZ1/XX CHEMISTRY. Monday 19 May 2014 (afternoon) 45 minutes INSTRUCTIONS TO CANDIDATES

PERIODIC TABLE OF THE ELEMENTS

8. Relax and do well.

1 of 5 14/10/ :21

PHYSICAL SCIENCES MARCH CONTROLLED TEST GRADE

CHEM 167 FINAL EXAM MONDAY, MAY 2 9:45 11:45 A.M GILMAN HALL

Transcription:

List za mlade matematike, fizike, astronome in računalnikarje ISSN 0351-6652 Letnik 28 (2000/2001) Številka 1 Strani 42 47 Martin Juvan: SPREMENLJIVO ŠTEVILO PARAMETROV Ključne besede: računalništvo, programiranje, podprogrami, parametri, heksadecimalni zapis. Elektronska verzija: http://www.presek.si/28/1430-juvan.pdf c 2000 Društvo matematikov, fizikov in astronomov Slovenije c 2010 DMFA založništvo Vse pravice pridržane. Razmnoževanje ali reproduciranje celote ali posameznih delov brez poprejšnjega dovoljenja založnika ni dovoljeno.

SPREMENLJIVO ŠTEVILO PARAMETROV Ra čunalništvo I P rakt i čno vsi programski jeziki poznajo podprograme, ki sprejmejo spremenljivo število par ametrov. Predvsem podprogrami za br anj e in izpisovanje imaj o zelo pogosto tako obliko, na primer read in write v pascalu ali pa scanf in printf v C-ju. Veliko jezikov pozna tudi konstrukte, ki pr ogramerju omogočajo, da sa m napiše podprogram e, ki sprejmejo spremenljivo število parametrov. V C-ju, na primer, take fun kcije sprogramiramo s p om o čjo ukazov iz standardne knjižni ce stdarg. h. V t em prispevku si bom o ogled ali, kakšne možnosti za sestavljanje ukazov s spremenljivim številom par ametrov nam nudi MSWLogo, r a zli č ic a loga, prilagoj en a za okolja W ind ows (glej http : / /vl ado. fmf.uni- l j.si/ educa/ logo). Logo pozna veliko vgraj enih ukazov, ki jih lahko pokl i č emo z r a zli č nim številom param et rov. Med pom emb nejšimi takimi ukazi so ukazi za izpisovanje PRI NT, SHOW in TYPE te r ukazi za sestavljanje besed oziroma seznamov WoRD, LI ST in SENTENCE. Vsak ukaz v logu im a do loč eno privzet o število paramet rov, to je tisto št evilo parametrov, s katerim lahko p okli č erno ukaz, ne da bi klic morali obdati z oklepaji. Na primer, pr avkar našteti uka zi za izpisovanj e pri vzeto sprejmejo en sa m param et er. Tako s klicem PRINT "Presek izpišemo besedo Pres ek. Če pa poskusimo na enak n ačin izpisati več besed, na primer PRINT "list "za "ml ade "matematike "fiz i ke "..., se izpiše le besed a list, to l mač pa nam s po roč i, da ne ve, kaj storit i z ostalimi besedami. Seveda, pri zgorn jem klicu ukaz PRI NT vzame le en param et er. Če ga želimo up orabi ti z več param etri, mor amo to logu poseb ej povedati. To storimo tako, da klic ukaza skupaj z vsemi param etri obdamo z okroglimi oklepaji. Na primer, z zapisom (PRINT "l ist "za "mlade "matemat i ke "f i z i ke "... ) dosežemo, da ukaz PRINT kot parametre pr ejme vseh šest besed in jih t udi izpiše. V logu za sestavljanje lastnih ukazov uporab ljamo vgra je ni ukaz TD. Splošna oblika tega ukaza v MSWLogu je TD im e :x1... :xn [ :y1 pv 1J... [ : ym pvm] '----v-----' ''-----".-- ----'' obvezni neo bvezni parametri in parametri njih ove pri vzete vrednosti [ : z ] '-v-" dodatn i pararnet.ri pš p ~ pr ivzeto št evilo parametrov

I Računalništvo Obvez ne parametre mor amo navesti pri vsakem klicu ukaza. Št evilo obve znih paramet rov je to rej najmanjše št evilo parametrov, s katerimi lah ko pok l ičemo ukaz. Neobveznih parametrov pri klicu ni nuj no navesti. Če jih (neka j) izpusti mo, bo ukaz namest o nji h uporabil privzete vrednosti. Del z dodatnimi parametri nam omogoča, d a ukaz pok l ičemo s poljubno veliko parametri. Zadnji del ukaza TO je število, ki do loči privzeto število parametrov za ukaz. Če tega števila ne navedemo, je pr ivzeto število parametrov enako številu obvezn ih parametrov. Poglejmo nekaj primerov. Najprej si bomo ogledali ukaz, ki nariše zaporedje dot ikajoč i h se krogov (glej spodnjo sliko). Ukaz bo imel dva obvezna parametra, število krogov il in po lmer krogov r. Da bo pr i upor abi več svobode, bomo dodali še neobvezni parameter zasuk, s katerim do loč i mo, za koliko je premica skoz i s r ed išči t renutnega in naslednjega kroga zas ukana glede na zveznico sre d išč prejšnj ega in trenutnega kroga (glej des ni del zgornje slike). Privzeta vrednost za zasuk bo O stopinj; tedaj vsa s redišča krogov ležijo na skup ni premici. Ukaz izgleda takole: TO krogi :n :r [:zasuk O] LO CALMAKE "pero POWNP REPEAT :n [ POWN CIRCLE : r RT : zasuk PENUP FD 2 * : r ] IF :pero [POWN] Zapomnimo si stanj e peresa. Spustimo pero in narišemo krog. Opra vimo zasuk. Pomik v sr edi š č e naslednjega kroga. Pero vrnem o v za četn o stanj e. Levi del zgornje slike narišemo na sre dino zaslona z ukazi CS RT 45 PU BK 200 PD krogi 5 50, sr ednji del pa dobimo s klicem es (krogi 5 50 36).

Ra čunalništvo I Drugi primer bo bolj rač u nsk i. Sestavili borno ukaz, ki bo kot obvezni par am et er dobil naravno število n > O, vrn il pa bo niz, ki bo predstavljal šestna jstiški zapis šte vila n. Šcstnajst iškemu zapisu pravimo tudi lwksadecimalni zapis. P ri njem po leg ob ičaj n ih števk 0,1,..., 9 kot št evke uporabljamo še črke A (= 10), B (=11), C (= 12), D (= 13), E (= 14) in F (= 15). Ta ko je 7DO šestnajstiški zapis števila 2000, saj je 7.16 2 + 13 16 + 0 1 = 1792 + 208 + 0 = 2000. Ukaz bo imel še neobvezni parameter d. Ta d oloči, koliko znakov im a beseda, ki jo vrne ukaz. Njegova privzeta vrednost bo ravno šte vilo števk, ki jih potrebuj emo za šest najstiški zapis števila n. To vrednost dobimo tako, da celemu delu šestna jstiškega logaritma števila n prištejemo 1. Ker logo ne pozna logaritmov z osnovo 16, si bomo pri r aču n anj u pomagali z deseti škirn logarit mom. V MSWL ogu ga vrne funk cija LOG 10. Če bo vrednost parametra d večja od št evila pot rebnih števk, bo mo rezultat na zače t ku z ničlami dop olnili do želene dolžine. Če pa bo vrednost paramet ra d manjša od števila števk, bo v rezultatu ma njkalo nekaj vodilnih števk. Tule je koda ukaza: TO sestnajst :n [ :d 1 + INT «LOG10 :n) / (LOG10 16) )] Vrne besedo, ki predstavlja zadnjih d števk šestnajstiškega zapisa števila n. Če je zapis krajši, je dopolnjen z ni člami. LOCALMAKE "stevke [O 1 2 3 4 5 6 7 8 9 A B C D E F] LOCALMAKE "beseda " REPEAT :d [ MAKE "bes eda WORD (ITEM ci + REMAINDER :n 16) :stevke) :beseda MAKE "n I NT :n / 16 ] OUTPUT :bes eda Klic sestnajst 2000 tako vr ne besedo 700, klica ( s e s t na j st 2000 5) in (sestnajst 2000 2) pa besed i 00700 oziroma DO. Kot vid imo pri gornjem ukazu, lahko za pri vzete vrednosti neobveznih parametrov d olo čimo po ljub ne izraze. V njih lahko uporablj am o vrednosti obveznih parametrov, pa tudi vrednosti predtem že nave denih neobveznih parametrov. Kot naslednji pri mer si oglejmo ukaz, s katerim bomo lahko narisali krožne kolobarje, kot so prikaza ni na naslednji sliki.

I Ra čunaln ištv o Ukaz bo ime l tri parametre, enega obveznega in dva neobvezna. Dodatno bomo še določ ili, da bo privzeto število parametrov enako 2. P rv i parameter bo po lmer zunanjega kroga, drugi parame ter bo po lme r notranjega kroga, tretji parameter pa barva v obliki RGB (seznam treh števil med O in 255), s katero bo obarvan kolobar. Privzeta vrednos t za po lmer notranjega kroga bo po lovica po lrnera zunanjega kroga, privzeta barva pa bo kar barva peresa ob klicu. TO kolobar :r l [ :r2 :rl / 2J t.barva PENCOLORJ 2 ; Zapomnimo si s t an j e peresa t er barvi pe r esa in zapolnj evanja. LOCALMAKE "pero POWNP LOCALMAKE "b_pe ro PENCOLOR LO CALMAKE "b_poln FLOODCOLOR ; Nastavimo izbrano bar vo peresa in barvo zapolnjevanja. SETPENCOLOR :barva SETFLOODCOLOR :barva ; Spus t i mo pero in nari šemo oba kroga. PD CI RCLE :r l CIRCLE :r 2 ; Premi k na sredi no med oba kroga, pobarvamo in se vr nemo. PU FD (: r l + :r2) / 2 FILL BK ( :r l + :r2) / 2 ; Vzpostavimo z ačet no st an je peresa in obeh barv. IF : pero [POWNJ SETPENCOLOR :b _pe ro SETFLOODCOLOR :b_poln P rv i kolob ar lah ko dobimo s klicem (kol obar 100). Klic moramo obdati z oklepaji, sicer t olmač javi, da manjka paramet er. Drug i kolobar narišemo s klicem kolobar 100 90. J e precej tanjši od prvega, saj je polmer not ranjega kroga kar l~) polmer a zunanjega kroga, pri prv em kolobarj u pa je bil ta polmer ~ zunanjega.

Ra čuna ln išt vo I Zadnji kolob ar je debelejši in je dobljen s klicem (kol obar 100 25 [195 195 195]). Seznam [195 195 195] v zapisu RGB d o lo ča bled odtenek sivine (p ribližno 20% črn e barve; č rno bar vo dobimo z [O O O], b elo pa z [255 255 255]). Na zadnje si oglejmo še ukaz, ki bo sprejel t udi do dat ne paramet re. Ukaz bo vzel zaporedje dveh ali več to č k (vsaka t o čka bo po d an a kot par, torej seznam, števil) in narisal lomljeno č r t o, sest avljeno iz daljic, pri čemer bo prva daljica potekala od pr ve do druge to čke, druga od druge do tretj e to č ke, itn. TO lomljenka :tcl :tc2 [ :tc] ; Zapomnimo si začetni položaj in stanj e peresa. LOCALMAKE "zacpol POS LOCALMAKE "per o POWNP PU SETPOS :tcl PD Premik v prvo to čko. SETPDS :t c2 Daljica do druge to čke. REPEAT COUNT :t c [ Zanka po dodatnih to čkah. SETPOS ITEM REPCOUNT :tc ] PU SETPOS : zacpol Vrnemo se na z ač e t n i položa j. IF :p ero [POWN] Vzpostavimo za č e tno st anje peresa. Ukaz ima dva obvezna parametra, neobveznih paramet rov nima, d op u š ča pa dodat ne parametre. Ko ukaz pok li čemo, moramo navest i vsaj dva parametra. To lmač poskrbi, da se dodat ni parametri zdru žijo v seznam in t a seznam je začetna vrednost sprem enljivke te. Če ukaz p o kl i č emo le z dve ma t o č kama, bo te prazen seznam. LOGO Ukaz lah ko uporabimo za izp isovanje z "velikimi" č r kam i. Na primer, zgorn ji nap is prikažemo na sredini zas lona z naslednjim za poredje m klicev: (LomLj enka [-330 120] [-330-120] [-210-120]) Clomljenka [-150-1 20] [-30-120] [-30 120] [-150 120] [-150-1 20]) Clomljenka [90 O] [150 O] [150-120] [30-120] [30 120] [150 120]) ( Loml.j enka [2 10-1 20] [330-120] [330 120] [210 120] [210-1 20])

Ra čunalništvo V primerih smo up orabili t udi nekaj manj zna nih logovih ukazov, ki jih nism o poseb ej razložili. Kratke razlage nj ihovega delovanja so zbrane v naslednjem seznamu: LO CALMAKE je ukaz, ki ust vari lokalno spreme nljivko in ji hkrati še priredi za č etno vrednost. Upo rabljamo ga kot kr aj ši za pis kombinacije ukazov LOCAL in MAKE. POWNP je ukaz, ki vrne true, č e je pero spu š čen o (pri premikanju želva pu šč a sled), in false sicer. V primerih smo z njegovo uporabo poskrbeli, da je bilo stanje peresa po koncu klica ukaza enako kot pred klicem. I NT je ukaz, ki vrn e celi del števila ("odreže decim alke" ). Tako klic I NT 3. 5 vrne 3, klic I NT -3.5 pa - 3. REMAI NDER je ukaz, ki vzame dve celi števili in vrne ost anek pri celoštevilskem deljenju pr vega števila z drugim. Pred znak ostanka je enak pred znaku prvega št evila (t o za nas sicer ni bilo pomembno, saj smo ukaz uporabljali le za poz it ivn a števila). V nekaterih drugih jezikih se enakovredna op eracija imenuje mod. FLOODCOLOR je ukaz, ki vrne trenutno veljavno barvo zapolnj evanja. To barvo lahko spremenimo z ukazom SETFLOODCOLOR. Zapolnjevanj e ("barvanje") opravimo z ukazom FILL. Novejše izvedbe MSWLoga pozn ajo dve ra z li či ci ukaza FILL. Obe z ač neta bar vati na mestu, kjer se nahaj a želva. Pri klicu FILL, t a je enakovreden klicu (FI LL "f alse), se barva "razlije" le po strnjenem obmo čj u, ki je obarvano enako kot pika, na kateri se je barvanje z ače lo. Pri klicu (FI LL "true) pa se barvanj e širi to liko časa, dokler ga ne zaustavijo pike, obarvane s trenutno barvo peresa. Na primer, zaporedje ukazov CS SETPC [O O OJ CIRCLE 100 SETPC [255 O oj FILL nari še črn krog in ga obarva, zaporedje CS SETPC [O O OJ CIRCLE 100 SETPC [255 O OJ (FI LL "true ) pa t udi nariše krog, nato pa obarva ves zaslon in ne samo kroga. Seveda, krog je narisan s č rno barvo, pr ed klicem ukaza FILL pa sm o barvo peresa spremenili na rd eče, tako da črno nari san krog bar vanja ne ustavi. REPCOUNT je ukaz, ki nam znotraj za nke REPEAT pove, v kateri ponov it vi zanke smo. Ta ukaz nam nadome š č a šte vec, ki ga ob ičaj no uporabljamo pri za nkah fo r v drugih programskih jezikih. Mimogrede, tudi MSW Logo po zna ukaz FOR. Martin Juvan