%!PS-Adobe-2.0 %%Creator: dvips(k) 5.86 Copyright 1999 Radical Eye Software %%Title: java-exercise.dvi %%Pages: 2 %%PageOrder: Ascend %%BoundingBox: 0 0 596 842 %%EndComments %DVIPSWebPage: (www.radicaleye.com) %DVIPSCommandLine: dvips java-exercise.dvi %DVIPSParameters: dpi=600, compressed %DVIPSSource: TeX output 2007.09.20:2000 %%BeginProcSet: texc.pro %! /TeXDict 300 dict def TeXDict begin/N{def}def/B{bind def}N/S{exch}N/X{S N}B/A{dup}B/TR{translate}N/isls false N/vsize 11 72 mul N/hsize 8.5 72 mul N/landplus90{false}def/@rigin{isls{[0 landplus90{1 -1}{-1 1}ifelse 0 0 0]concat}if 72 Resolution div 72 VResolution div neg scale isls{ landplus90{VResolution 72 div vsize mul 0 exch}{Resolution -72 div hsize mul 0}ifelse TR}if Resolution VResolution vsize -72 div 1 add mul TR[ matrix currentmatrix{A A round sub abs 0.00001 lt{round}if}forall round exch round exch]setmatrix}N/@landscape{/isls true N}B/@manualfeed{ statusdict/manualfeed true put}B/@copies{/#copies X}B/FMat[1 0 0 -1 0 0] N/FBB[0 0 0 0]N/nn 0 N/IEn 0 N/ctr 0 N/df-tail{/nn 8 dict N nn begin /FontType 3 N/FontMatrix fntrx N/FontBBox FBB N string/base X array /BitMaps X/BuildChar{CharBuilder}N/Encoding IEn N end A{/foo setfont}2 array copy cvx N load 0 nn put/ctr 0 N[}B/sf 0 N/df{/sf 1 N/fntrx FMat N df-tail}B/dfs{div/sf X/fntrx[sf 0 0 sf neg 0 0]N df-tail}B/E{pop nn A definefont setfont}B/Cw{Cd A length 5 sub get}B/Ch{Cd A length 4 sub get }B/Cx{128 Cd A length 3 sub get sub}B/Cy{Cd A length 2 sub get 127 sub} B/Cdx{Cd A length 1 sub get}B/Ci{Cd A type/stringtype ne{ctr get/ctr ctr 1 add N}if}B/id 0 N/rw 0 N/rc 0 N/gp 0 N/cp 0 N/G 0 N/CharBuilder{save 3 1 roll S A/base get 2 index get S/BitMaps get S get/Cd X pop/ctr 0 N Cdx 0 Cx Cy Ch sub Cx Cw add Cy setcachedevice Cw Ch true[1 0 0 -1 -.1 Cx sub Cy .1 sub]/id Ci N/rw Cw 7 add 8 idiv string N/rc 0 N/gp 0 N/cp 0 N{ rc 0 ne{rc 1 sub/rc X rw}{G}ifelse}imagemask restore}B/G{{id gp get/gp gp 1 add N A 18 mod S 18 idiv pl S get exec}loop}B/adv{cp add/cp X}B /chg{rw cp id gp 4 index getinterval putinterval A gp add/gp X adv}B/nd{ /cp 0 N rw exit}B/lsh{rw cp 2 copy get A 0 eq{pop 1}{A 255 eq{pop 254}{ A A add 255 and S 1 and or}ifelse}ifelse put 1 adv}B/rsh{rw cp 2 copy get A 0 eq{pop 128}{A 255 eq{pop 127}{A 2 idiv S 128 and or}ifelse} ifelse put 1 adv}B/clr{rw cp 2 index string putinterval adv}B/set{rw cp fillstr 0 4 index getinterval putinterval adv}B/fillstr 18 string 0 1 17 {2 copy 255 put pop}for N/pl[{adv 1 chg}{adv 1 chg nd}{1 add chg}{1 add chg nd}{adv lsh}{adv lsh nd}{adv rsh}{adv rsh nd}{1 add adv}{/rc X nd}{ 1 add set}{1 add clr}{adv 2 chg}{adv 2 chg nd}{pop nd}]A{bind pop} forall N/D{/cc X A type/stringtype ne{]}if nn/base get cc ctr put nn /BitMaps get S ctr S sf 1 ne{A A length 1 sub A 2 index S get sf div put }if put/ctr ctr 1 add N}B/I{cc 1 add D}B/bop{userdict/bop-hook known{ bop-hook}if/SI save N @rigin 0 0 moveto/V matrix currentmatrix A 1 get A mul exch 0 get A mul add .99 lt{/QV}{/RV}ifelse load def pop pop}N/eop{ SI restore userdict/eop-hook known{eop-hook}if showpage}N/@start{ userdict/start-hook known{start-hook}if pop/VResolution X/Resolution X 1000 div/DVImag X/IEn 256 array N 2 string 0 1 255{IEn S A 360 add 36 4 index cvrs cvn put}for pop 65781.76 div/vsize X 65781.76 div/hsize X}N /p{show}N/RMat[1 0 0 -1 0 0]N/BDot 260 string N/Rx 0 N/Ry 0 N/V{}B/RV/v{ /Ry X/Rx X V}B statusdict begin/product where{pop false[(Display)(NeXT) (LaserWriter 16/600)]{A length product length le{A length product exch 0 exch getinterval eq{pop true exit}if}{pop}ifelse}forall}{false}ifelse end{{gsave TR -.1 .1 TR 1 1 scale Rx Ry false RMat{BDot}imagemask grestore}}{{gsave TR -.1 .1 TR Rx Ry scale 1 1 false RMat{BDot} imagemask grestore}}ifelse B/QV{gsave newpath transform round exch round exch itransform moveto Rx 0 rlineto 0 Ry neg rlineto Rx neg 0 rlineto fill grestore}B/a{moveto}B/delta 0 N/tail{A/delta X 0 rmoveto}B/M{S p delta add tail}B/b{S p tail}B/c{-4 M}B/d{-3 M}B/e{-2 M}B/f{-1 M}B/g{0 M} B/h{1 M}B/i{2 M}B/j{3 M}B/k{4 M}B/w{0 rmoveto}B/l{p -4 w}B/m{p -3 w}B/n{ p -2 w}B/o{p -1 w}B/q{p 1 w}B/r{p 2 w}B/s{p 3 w}B/t{p 4 w}B/x{0 S rmoveto}B/y{3 2 roll p a}B/bos{/SS save N}B/eos{SS restore}B end %%EndProcSet TeXDict begin 39158280 55380996 1000 600 600 (java-exercise.dvi) @start %DVIPSBitmapFont: Fa cmti12 12 11 /Fa 11 123 df99 DII<14FE137FA3EB01FC1300 1301A25CA21303A25CA21307A25CA2130FA25CA2131FA25C157F90393F83FFC091388F81 F091381E00F802387F4948137C5C4A137EA2495A91C7FCA25B484814FE5E5BA200031401 5E5BA2000714035E5B1507000F5DA249130F5E001F1678031F1370491480A2003F023F13 F0EE00E090C7FC160148023E13C01603007E1680EE070000FEEC1E0FED1F1E48EC0FF800 38EC03E02D467AC432>104 D<143C147E14FE1301A3EB00FC14701400AE137C48B4FC38 03C780380703C0000F13E0120E121C13071238A21278EA700F14C0131F00F0138012E0EA 003F1400A25B137EA213FE5B12015BA212035B141E0007131C13E0A2000F133CEBC038A2 1478EB807014F014E0EB81C0EA0783EBC7803803FE00EA00F8174378C11E>I110 DI114 DI<137C48B4140726 03C780EB1F80380703C0000F7F000E153F001C1600130712385E0078157EEA700F5C011F 14FE00F0495B12E0EA003FEC00015E5B137E150301FE5C5BA2150700015D5BA2150F0003 5D5BA2151F5EA2153F12014BC7FC6D5B00005BEB7C0390383E0F7EEB1FFEEB03F090C712 FE5DA214015D121F397F8003F0A24A5A4848485A5D48131F00F049C8FC0070137E007813 F8383801F0381E07C06CB4C9FCEA01FC294078AB2F>121 D<027C130749B4130F49EB80 0E010F141E49EBC03CEDE03890393F03F07890397C00FDF00178EB3FE00170EB03C001F0 148049130790C7EA0F00151E5D5D5D4A5A4A5A4A5A4AC7FC141E5C5C5C495A495A495A49 C8FC011E14F04914E05B491301485A4848EB03C0D807B0130701FEEB0F80390FCF801F3A 1F07E07F00393E03FFFED83C015B486C5B00705C00F0EB7FC048011FC7FC282D7BAB28> I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fb cmbx12 12 20 /Fb 20 122 df40 D<12F07E127E7E6C7E6C7E6C7E7F6C7E6C7E12007F137F80133F806D7EA26D7EA26D7EA2 801303A2801301A280A27F1580A4EC7FC0A615E0A2143FAE147FA215C0A6ECFF80A41500 5BA25CA213035CA213075CA2495AA2495AA2495A5C137F91C7FC13FE5B1201485A485A5B 485A485A48C8FC127E12F85A1B647ACA2C>I65 D<903801FFE0011F13FE017F6D7E 48B612E03A03FE007FF84848EB1FFC6D6D7E486C6D7EA26F7FA36F7F6C5A6C5AEA00F090 C7FCA40203B5FC91B6FC1307013F13F19038FFFC01000313E0000F1380381FFE00485A5B 127F5B12FF5BA35DA26D5B6C6C5B4B13F0D83FFE013EEBFFC03A1FFF80FC7F0007EBFFF8 6CECE01FC66CEB8007D90FFCC9FC322F7DAD36>97 DIIIII<137C48B4FC4813804813C0A24813E0A56C13C0A2 6C13806C1300EA007C90C7FCAAEB7FC0EA7FFFA512037EB3AFB6FCA518467CC520>105 D108 D<90277F8007FEEC0FFC B590263FFFC090387FFF8092B5D8F001B512E002816E4880913D87F01FFC0FE03FF8913D 8FC00FFE1F801FFC0003D99F009026FF3E007F6C019E6D013C130F02BC5D02F86D496D7E A24A5D4A5DA34A5DB3A7B60081B60003B512FEA5572D7CAC5E>I<90397F8007FEB59038 3FFF8092B512E0028114F8913987F03FFC91388F801F000390399F000FFE6C139E14BC02 F86D7E5CA25CA35CB3A7B60083B512FEA5372D7CAC3E>II<90387F807FB53881FFE0028313F0028F13F8ED8FFC9138 9F1FFE000313BE6C13BC14F8A214F0ED0FFC9138E007F8ED01E092C7FCA35CB3A5B612E0 A5272D7DAC2E>114 D<90391FFC038090B51287000314FF120F381FF003383FC0004913 3F48C7121F127E00FE140FA215077EA27F01E090C7FC13FE387FFFF014FF6C14C015F06C 14FC6C800003806C15806C7E010F14C0EB003F020313E0140000F0143FA26C141F150FA2 7EA26C15C06C141FA26DEB3F8001E0EB7F009038F803FE90B55A00FC5CD8F03F13E026E0 07FEC7FC232F7CAD2C>II118 DI121 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fc cmbx12 14.4 27 /Fc 27 119 df47 D<932601FFFCEC01C0047FD9FFC013030307B600F81307 033F03FE131F92B8EA803F0203DAE003EBC07F020F01FCC7383FF0FF023F01E0EC0FF94A 01800203B5FC494848C9FC4901F8824949824949824949824949824990CA7E494883A248 4983485B1B7F485B481A3FA24849181FA3485B1B0FA25AA298C7FC5CA2B5FCAE7EA280A2 F307C07EA36C7FA21B0F6C6D1980A26C1A1F6C7F1C006C6D606C6D187EA26D6C606D6D4C 5A6D6D16036D6D4C5A6D6D4C5A6D01FC4C5A6D6DEE7F806D6C6C6C4BC7FC6E01E0EC07FE 020F01FEEC1FF80203903AFFE001FFF0020091B612C0033F93C8FC030715FCDB007F14E0 040101FCC9FC525479D261>67 D70 D<027FB71280A591C76C90C7FCB3B3B3EA07F0EA1FFC487E487EA2B57EA44C5AA34A485B 7E49495BD83FF8495BD81FE05DD80FFC011F5B2707FF807F90C8FC000190B512FC6C6C14 F0011F14C0010101F8C9FC39537DD145>74 D77 D80 D82 D<91260FFF80130791B500F85B010702FF5B011FEDC03F49EDF07F9026FFFC006D5A4801 E0EB0FFD4801800101B5FC4848C87E48488149150F001F824981123F4981007F82A28412 FF84A27FA26D82A27F7F6D93C7FC14C06C13F014FF15F86CECFF8016FC6CEDFFC017F06C 16FC6C16FF6C17C06C836C836D826D82010F821303010082021F16801400030F15C0ED00 7F040714E01600173F050F13F08383A200788200F882A3187FA27EA219E07EA26CEFFFC0 A27F6D4B13806D17006D5D01FC4B5A01FF4B5A02C04A5A02F8EC7FF0903B1FFFC003FFE0 486C90B65AD8FC0393C7FC48C66C14FC48010F14F048D9007F90C8FC3C5479D24B>I<00 3FBC1280A59126C0003F9038C0007F49C71607D87FF8060113C001E08449197F49193F90 C8171FA2007E1A0FA3007C1A07A500FC1BE0481A03A6C994C7FCB3B3AC91B912F0A55351 7BD05E>I86 DI97 DI<913801FFF8021FEBFF8091B612F0010315FC010F9038C00FFE903A1F FE0001FFD97FFC491380D9FFF05B4817C048495B5C5A485BA2486F138091C7FC486F1300 705A4892C8FC5BA312FFAD127F7FA27EA2EF03E06C7F17076C6D15C07E6E140F6CEE1F80 6C6DEC3F006C6D147ED97FFE5C6D6CEB03F8010F9038E01FF0010390B55A01001580023F 49C7FC020113E033387CB63C>I<4DB47E0407B5FCA5EE001F1707B3A4913801FFE0021F 13FC91B6FC010315C7010F9038E03FE74990380007F7D97FFC0101B5FC49487F4849143F 484980485B83485B5A91C8FC5AA3485AA412FFAC127FA36C7EA37EA26C7F5F6C6D5C7E6C 6D5C6C6D49B5FC6D6C4914E0D93FFED90FEFEBFF80903A0FFFC07FCF6D90B5128F0101EC FE0FD9003F13F8020301C049C7FC41547CD24B>I<913803FFC0023F13FC49B6FC010715 C04901817F903A3FFC007FF849486D7E49486D7E4849130F48496D7E48178048497F18C0 488191C7FC4817E0A248815B18F0A212FFA490B8FCA318E049CAFCA6127FA27F7EA218E0 6CEE01F06E14037E6C6DEC07E0A26C6DEC0FC06C6D141F6C6DEC3F806D6CECFF00D91FFE EB03FE903A0FFFC03FF8010390B55A010015C0021F49C7FC020113F034387CB63D>I103 DI<137F497E000313E0487FA2487F A76C5BA26C5BC613806DC7FC90C8FCADEB3FF0B5FCA512017EB3B3A6B612E0A51B547BD3 25>I108 DII<913801FFE0021F13FE91B6 12C0010315F0010F9038807FFC903A1FFC000FFED97FF86D6C7E49486D7F48496D7F4849 6D7F4A147F48834890C86C7EA24883A248486F7EA3007F1880A400FF18C0AC007F1880A3 003F18006D5DA26C5FA26C5F6E147F6C5F6C6D4A5A6C6D495B6C6D495B6D6C495BD93FFE 011F90C7FC903A0FFF807FFC6D90B55A010015C0023F91C8FC020113E03A387CB643>I< 90397FE003FEB590380FFF80033F13E04B13F09238FE1FF89139E1F83FFC0003D9E3E013 FEC6ECC07FECE78014EF150014EE02FEEB3FFC5CEE1FF8EE0FF04A90C7FCA55CB3AAB612 FCA52F367CB537>114 D<903903FFF00F013FEBFE1F90B7FC120348EB003FD80FF81307 D81FE0130148487F4980127F90C87EA24881A27FA27F01F091C7FC13FCEBFFC06C13FF15 F86C14FF16C06C15F06C816C816C81C681013F1580010F15C01300020714E0EC003F0307 13F015010078EC007F00F8153F161F7E160FA27E17E07E6D141F17C07F6DEC3F8001F8EC 7F0001FEEB01FE9039FFC00FFC6DB55AD8FC1F14E0D8F807148048C601F8C7FC2C387CB6 35>I<143EA6147EA414FEA21301A313031307A2130F131F133F13FF5A000F90B6FCB8FC A426003FFEC8FCB3A9EE07C0AB011FEC0F8080A26DEC1F0015806DEBC03E6DEBF0FC6DEB FFF86D6C5B021F5B020313802A4D7ECB34>I118 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fd cmtt12 12 41 /Fd 41 123 df<00085B003EEB07C0007FEB0FE0A24814F0A26C14E0B3A2007E1307003E 14C0A20008EB01001C1E75BD33>34 D<140FEC3F80147F14FF491300495AEB07F8495A49 5A495A495A49C7FC5B12015B485A12075B120F5B121F5BA2123F5BA2127F90C8FCA45A5A AD7E7EA47F123FA27F121FA27F120F7F12077F12036C7E7F12007F6D7E6D7E6D7E6D7E6D 7EEB03FE6D7E6D1380147F143FEC0F00194D6FC433>40 D<127812FE7E7F6C7E6C7EEA0F F06C7E6C7E6C7E6C7E6D7E133F80131F6D7E801307801303801301A2801300A28080A415 80143FAD147F1500A45C5CA213015CA213035C13075C130F5C495A133F5C137F49C7FC48 5A485A485A485AEA3FE0485A485A90C8FC5A1278194D78C433>I44 D<007FB612FEA2B8FCA36C15FEA228077BA133>I< 121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B0B6C8A33>I<167816F8ED01FCA2 1503A2ED07F8A2ED0FF0A2ED1FE0A216C0153FA2ED7F80A2EDFF00A24A5AA25D1403A24A 5AA24A5AA24A5AA25D143FA24A5AA24AC7FCA2495AA25C1303A2495AA2495AA25C131FA2 495AA2495AA249C8FCA25B1201A2485AA2485AA2485AA25B121FA2485AA2485AA248C9FC A25AA2127CA2264D7AC433>I<121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F00C7FC B3A3121FEA3F80EA7FC0EAFFE0A5EA7FC0EA3F80EA1F000B2B6CAA33>58 D<007FB71280A2B812C0A36C16806C1600CBFCA9003FB7FC481680B812C0A36C1680A22A 177CA933>61 D<007FB512F8B7FC16C082826C813A03F8000FFCED03FE15016F7E82A2EE 3F80A7EE7F00A25E4B5AA2ED07FCED1FF890B65A5E1680828216F89039F8000FFCED01FE 6F7EEE7F80163F17C0161FA2EE0FE0A7161F17C0A2163FEE7F8016FF4B1300150F007FB6 5AB75A5E16E05E6C4AC7FC2B3D7DBC33>66 D<91391FE00780DAFFFC13C00103EBFF0F01 0F148F4914FF5B90387FF81F9038FFC00748497E4848487E497F485A167F485A49143F12 1F5B003F151F5BA2127F90C8EA0F8093C7FCA25A5AAD7E7EA36DEC0F80003FED1FC0A27F 121F7F000F153F6D15806C7E167F6C6CECFF007F3A01FF8003FE6C6D485A90397FF81FF8 6DB55A6D5C6D5C010391C7FC010013FCEC1FE02A3F7CBD33>I<49B512F84914FC16FEA2 16FC6D14F890C7EA7F00B3B3A5123C127EB4FCA25D5D1401397F8007FC9038F01FF86CB5 FC6C5C6C14C000035CC649C7FCEB1FF0273E79BC33>74 D<387FFFF8B57E80A25C6C5BD8 01FCC9FCB3B3A3EE03E0EE07F0A9007FB7FCB8FCA46C16E02C3D7DBC33>76 DI<90381F FFF890B6FC000315C0000F15F0A24815F83A3FFC003FFC01E013074913034848EB01FEA2 90C8FCA500FE157FB3AC6C15FF6C15FEA46D1301A36C6CEB03FC01F0130F01FC133F6CB6 12F86C15F0A2000315C0C61500011F13F8283F7BBD33>79 D<007FB57EB612F815FE8182 6C812603F8007FED3FF0ED0FF815076F7E1501A26F7EA74B5AA215034B5A150FED3FF0ED FFE090B65A5E93C7FC5D8182D9F8007F153F6F7E150F821507AA173E177FA416F8030313 FF267FFFC014FEB538E001FF17FC81EE7FF86C49EB3FF0C9EA0FC0303E7EBC33>82 D<003FB712F84816FCB8FCA43AFE000FE001A8007CED00F8C71500B3B3A40107B512C049 804980A26D5C6D5C2E3D7EBC33>84 D97 DIIIIIII<14E0EB03F8A2497EA36D5AA2EB00E091C8FCAA383FFFF8487FA47EEA0001B3AD007F B612C0B712E016F0A216E06C15C0243E78BD33>I<1570EC01FCA2EC03FEA3EC01FCA2EC 00701500AA90383FFFFC4913FE90B5FCA27F7F90C7FCB3B3A9140115FCA21218007EEB03 F81407B414F0140F9038803FE090B512C06C14806C14006C5B6C13F8000113E01F557BBD 33>II<383FFFFC487FB5FCA27E7EC7FCB3 B3AD003FB612F84815FCB712FEA26C15FC6C15F8273D7ABC33>I<02FC137E3B7FC3FF01 FF80D8FFEF01877F90B500CF7F15DF92B57E6C010F13872607FE07130301FC01FE7F9039 F803FC01A201F013F8A401E013F0B3A53C7FFE0FFF07FF80B548018F13C0A46C486C0107 1380322C80AB33>I<4AB4FC263FFC0713C0267FFE1F13F000FF017F7F91B5FC6CB67E6C EC07FEC6EBF801ECF0004A7F4A7F5CA291C7FCA35BB3A43B3FFFF80FFFFC486D4813FEB5 6C4813FFA26C496C13FE6C496C13FC302C7FAB33>III114 D<90381FFE0F90B5EA8F80000314FF12 0F5A5AEBF007387F800190C7FC00FE147F5A153FA37E007FEC1F0001C090C7FCEA3FF8EB FFC06C13FF6C14E0000314F8C680011F13FF01001480020713C0EC007FED1FE0007C140F 00FEEC07F01503A27EA27F15076D14E06D130F6DEB3FC09038FE01FF90B61280160000FD 5C00FC14F8D8F83F13E0D8780790C7FC242E79AC33>III<3B3FFFC00FFFF0 486D4813F8B56C4813FCA26C496C13F86C496C13F0D801F8C7EA7E006D14FE00005DA26D 1301017E5CA2017F13036D5CA2EC8007011F5CA2ECC00F010F5CA36D6C485AA3ECF03F01 0391C7FCA26E5A0101137EA2ECFCFE01005BA214FF6E5AA36E5AA26E5A6E5A2E2B7EAA33 >I<3B7FFF8007FFF8B56C4813FC6E5AA24A7E6C496C13F8D80FC0C7EA0FC06D141F0007 1680A56D143F00031600A3EC0FC0EC1FE0A23A01F83FF07EA3EC7FF8147CA20000157C90 39FCFCFCFCA3ECF87CA2017C5C017D137EECF03EA2017F133FA26D486C5AA3ECC00F9039 0F8007C02E2B7EAA33>I<3B3FFFC07FFF80486DB512C0B500F114E0A26C01E014C06C49 6C13803B00FE000FE000017F495AEB3F804B5A6D6C48C7FC90380FE07E903807F0FEECF1 FC903803FBF8EB01FF6D5B5D6E5A143F6E5A143F814A7E14FF903801FBF0ECF9F8903803 F1FCEB07E0157E90380FC07F011F6D7E90383F801F02007F496D7E01FE6D7E484813033B 7FFFC03FFFE0B56C4813F0A46C496C13E02C2B7DAA33>I<000FB712804816C05AA31780 0180C713004B5A4B5A4B5A4B5A6CC7485AC8485A4B5A4BC7FC4A5A4A5A4A5A4A5A4A5A4A 5A4A5A4AC8FC495A495A495A495A495A495A495A49C7EA0F804848EC1FC0485A485A485A 485A485A48B7FCB8FCA46C16802A2B7DAA33>122 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fe cmr12 12 54 /Fe 54 124 df<4AB4FC020F13E091387F80F8903901FC001C49487FD907E0130F494813 7F011FECFF80495A49C7FCA25B49EC7F00163E93C7FCACEE3F80B8FCA3C648C7FC167F16 3FB3B0486CEC7FC0007FD9FC1FB5FCA330467EC536>12 D<140C141C1438147014E0EB01 C01303EB0780EB0F00A2131E5BA25B13F85B12015B1203A2485AA3485AA348C7FCA35AA2 123EA2127EA4127CA312FCB3A2127CA3127EA4123EA2123FA27EA36C7EA36C7EA36C7EA2 12017F12007F13787FA27F7FA2EB0780EB03C01301EB00E014701438141C140C166476CA 26>40 D<12C07E12707E7E7E120F6C7E6C7EA26C7E6C7EA21378137C133C133E131E131F A2EB0F80A3EB07C0A3EB03E0A314F0A21301A214F8A41300A314FCB3A214F8A31301A414 F0A21303A214E0A3EB07C0A3EB0F80A3EB1F00A2131E133E133C137C13785BA2485A485A A2485A48C7FC120E5A5A5A5A5A16647BCA26>I<121EEA7F8012FF13C0A213E0A3127FEA 1E601200A413E013C0A312011380120313005A1206120E5A5A5A12600B1D78891B>44 DI<121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A0A78891B>I<16 18163C167CA2167816F8A216F01501A216E01503A216C01507A21680150FA2ED1F00A215 1E153EA2153C157CA2157815F8A25D1401A24A5AA25D1407A25D140FA292C7FC5CA2141E 143EA2143C147CA25CA25C1301A25C1303A25C1307A25C130FA291C8FC5BA2133EA2133C 137CA2137813F8A25B1201A25B1203A2485AA25B120FA290C9FC5AA2121E123EA2123C12 7CA2127812F8A25A126026647BCA31>I<143014F013011303131F13FFB5FC13E7130712 00B3B3B0497E497E007FB6FCA3204278C131>49 DI<49B4FC010F13E0013F13FC9038FE01FE3A01F0007F80D803C0EB3FC048C7 EA1FE0120EED0FF0EA0FE0486C14F8A215077F5BA26C48130FEA03C0C813F0A3ED1FE0A2 ED3FC01680ED7F0015FE4A5AEC03F0EC1FC0D90FFFC7FC15F090380001FCEC007FED3F80 ED1FC0ED0FE016F0ED07F816FC150316FEA2150116FFA3121EEA7F80487EA416FE491303 A2007EC713FC00701407003015F80038140F6C15F06CEC1FE06C6CEB3FC0D803E0EB7F80 3A01FE01FE0039007FFFF8010F13E0010190C7FC28447CC131>I<121EEA7F80A2EAFFC0 A4EA7F80A2EA1E00C7FCB3A5121EEA7F80A2EAFFC0A4EA7F80A2EA1E000A2B78AA1B>58 D<121EEA7F80A2EAFFC0A4EA7F80A2EA1E00C7FCB3A5121E127FEAFF80A213C0A4127F12 1E1200A512011380A3120313005A1206120E120C121C5A5A12600A3E78AA1B>I64 D<16C04B7EA34B7EA34B7EA34B7EA3ED19FEA3ED30FF A203707FED607FA203E07FEDC03FA2020180ED801FA2DA03007F160FA20206801607A24A 6D7EA34A6D7EA34A6D7EA20270810260147FA202E08191B7FCA249820280C7121FA249C8 7F170FA20106821707A2496F7EA3496F7EA3496F7EA201788313F8486C83D80FFF03037F B500E0027FEBFFC0A342477DC649>I67 DIII73 D<010FB512FEA3D9000313806E130080B3B3AB123F487E487EA44A5A1380130000 6C495A00705C6C13076C5C6C495A6CEB1F802603E07FC7FC3800FFFCEB1FE027467BC332 >I76 D78 DI82 D<003FB912F8A3903BF0001FF8001F01806D481303003EC71500 48187C0078183CA20070181CA30060180CA5481806A5C81600B3B3A54B7EED7FFE49B77E A33F447DC346>84 DI87 D89 D97 DII<16 7FED3FFFA315018182B3EC7F80903803FFF090380FC07C90383F000E017E1307496D5AD8 03F87F48487F5B000F81485AA2485AA2127FA290C8FC5AAB7E7FA2123FA26C7EA2000F5D 7F6C6C5B00035C6C6C9038077F806C6C010E13C0013F011C13FE90380FC0F8903803FFE0 9026007F0013002F467DC436>IIIIII< 143C14FFA2491380A46D1300A2143C91C7FCADEC7F80EB3FFFA31300147F143FB3B3AA12 3E127F39FF807F00A2147EA25C6C485A383C01F06C485A3807FF80D801FEC7FC195785C2 1E>IIII<3901FC01 FE00FF903807FFC091381E07F091383801F8000701707F0003EBE0002601FDC07F5C01FF 147F91C7FCA25BA35BB3A8486CECFF80B5D8F83F13FEA32F2C7DAB36>II<3901FC03FC00FF90380FFF8091383C07E091387001F83A 07FDE000FE00030180137FD801FFEC3F8091C7EA1FC04915E049140F17F0160717F81603 17FCA3EE01FEABEE03FCA3EE07F8A217F0160F6D15E0EE1FC06D143F17806EEB7E00D9FD C05B9039FCF003F891383C0FE091381FFF80DA03FCC7FC91C9FCAE487EB512F8A32F3F7D AB36>I<3903F803F000FFEB1FFCEC3C3EEC707F0007EBE0FF3803F9C000015B13FBEC00 7E153C01FF13005BA45BB3A748B4FCB512FEA3202C7DAB26>114 D<90383FE0183901FFFC383907E01F78390F0003F8001E1301481300007C1478127800F8 1438A21518A27EA27E6C6C13006C7E13FC383FFFE06C13FC6C13FF6C14C06C14E0C614F0 011F13F81300EC0FFC140300C0EB01FE1400157E7E153EA27EA36C143C6C147C15786C14 F86CEB01F039F38003E039F1F00F8039E07FFE0038C00FF01F2E7DAC26>I<1306A5130E A4131EA3133E137EA213FE12011207001FB512F0B6FCA2C648C7FCB3A4150CAA017E131C 017F1318A26D133890381F8030ECC070903807E0E0903801FFC09038007F001E3E7EBC26 >III< B500E0B539E03FFF80A30007903C000FFE000FFC00D803FCD903F8EB03F8F001E0120103 015D6D80000060A26D6E13036DD9037E91C7FCA20280017F5B013FD9063F1306A2D91FC0 6E5AED0C1FA2D90FE06E5AED180FA2D907F06E5AED3007A2D903F86E5AED6003A2902601 FCE06D5AEDC00117FCD900FFECFD80ED800017FF027F92C8FC92C77EA26E147E023E143E A2021E143C021C141CA2412C7EAA46>III<003FB612E0A29038 C0003F90C713C0003CEC7F800038ECFF00A20030495A0070495AA24A5A0060495AA24A5A 4A5AA2C7485A4AC7FC5B5C495A13075C495A131F4A1360495A495AA249C712C0485AA248 5A485A1501485A48481303A24848EB07804848131F00FF14FF90B6FCA2232B7DAA2B>I< B9FCA23002809B31>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Ff cmbx12 17.28 37 /Ff 37 121 df<16F04B7E1507151F153FEC01FF1407147F010FB5FCB7FCA41487EBF007 C7FCB3B3B3B3007FB91280A6395E74DD51>49 D<913801FFF8021FEBFFC091B612F80103 15FF010F16C0013F8290267FFC0114F89027FFE0003F7F4890C7000F7F48486E7FD807F8 6E148048486E14C048486E14E048486F13F001FC17F8486C816D17FC6E80B56C16FE8380 A219FFA283A36C5BA26C5B6C90C8FCD807FC5DEA01F0CA14FEA34D13FCA219F85F19F04D 13E0A294B512C019804C14004C5B604C5B4C5B604C13804C90C7FC4C5A4C5A4B13F05F4B 13804B90C8FC4B5AED1FF84B5A4B5A4B48143F4A5B4A48C8FC4A5A4A48157E4A5A4A5AEC 7F8092C9FC02FE16FE495A495A4948ED01FCD90FC0150749B8FC5B5B90B9FC5A4818F85A 5A5A5A5ABAFCA219F0A4405E78DD51>I<92B5FC020F14F8023F14FF49B712C04916F001 0FD9C01F13FC90271FFC00077FD93FE001017F49486D8049C86C7F484883486C6F7F14C0 486D826E806E82487FA4805CA36C5E4A5E6C5B6C5B6C495E011FC85A90C95CA294B55A61 4C91C7FC604C5B4C5B4C5B4C5B047F138092260FFFFEC8FC020FB512F817E094C9FC17F8 17FF91C7003F13E0040713F8040113FE707F717F7113E085717FA2717F85A285831A80A3 1AC0EA03FCEA0FFF487F487F487FA2B57EA31A80A34D14005C7E4A5E5F6C495E49C8485B D81FF85F000F5ED807FE92B55A6C6C6C4914806C01F0010791C7FC6C9026FF803F5B6D90 B65A011F16F0010716C001014BC8FCD9001F14F0020149C9FC426079DD51>II<01C0EE01C0D801F816 0F01FF167F02F0EC07FFDAFF8090B5FC92B7128019006060606060606095C7FC17FC5F17 E0178004FCC8FC16E09026FC3FFCC9FC91CBFCADED3FFE0203B512F0020F14FE023F6E7E 91B712E001FDD9E00F7F9027FFFE00037F02F801007F02E06EB4FC02806E138091C8FC49 6F13C04917E07113F0EA00F090C914F8A219FC83A219FEA419FFA3EA03F0EA0FFC487E48 7E487FA2B57EA319FEA35C4D13FC6C90C8FC5B4917F8EA3FF001804B13F06D17E0001F5E 6C6C17C06D4B1380D807FC92B512006C6C4A5B6C6C6C01075B6C01E0011F5BD97FFE90B5 5A6DB712C0010F93C7FC6D15FC010115F0D9003F1480020301F0C8FC406078DD51>II65 D69 D72 DI<020FB812F0A691C70001EC8000B3B3B3ACEA03FCEA0FFF487F487F487FA2B57EA4 5E96C7FCA36C49495B604A5B6C90C75C6C484A5B01F84A5BD80FFE4A5B6C6C6C90B55A00 01D9F80749C8FC6C90B65A013F15F0010F15C001014AC9FCD9001F13C044647CE153>I< BB7E1AFCF2FFC01BF81BFE757ED800010280C7001F80070114F0736C7F081F7F747F747F 7414807414C0A27414E0A21DF0A27513F8A41DFCA91DF8A498B512F0A21DE0A25014C01D 8062501400505B505B087F5B4FB512E0071F5C93B9C7FC1BFC1BF01B8008F0C8FC04C0CC FCB3B3A2B97EA65E627AE16E>80 D83 D<001FBEFCA64849C79126E0000F148002E0180091C8171F498601F81A0349864986A249 1B7FA2491B3F007F1DC090C9181FA4007E1C0FA600FE1DE0481C07A5CA95C7FCB3B3B3A3 021FBAFCA663617AE070>I87 D89 D<913803FFFE027FEBFFF00103B612FE01 0F6F7E4916E090273FFE001F7FD97FE001077FD9FFF801017F486D6D7F717E486D6E7F85 717FA2717FA36C496E7FA26C5B6D5AEB1FC090C9FCA74BB6FC157F0207B7FC147F49B612 07010F14C0013FEBFE004913F048B512C04891C7FC485B4813F85A5C485B5A5CA2B55AA4 5FA25F806C5E806C047D7F6EEB01F96C6DD903F1EBFF806C01FED90FE114FF6C9027FFC0 7FC01580000191B5487E6C6C4B7E011F02FC130F010302F001011400D9001F90CBFC4943 7CC14E>97 D<903807FF80B6FCA6C6FC7F7FB3A8EFFFF8040FEBFF80047F14F00381B612 FC038715FF038F010014C0DBBFF0011F7FDBFFC001077F93C76C7F4B02007F03F8824B6F 7E4B6F13804B17C0851BE0A27313F0A21BF8A37313FCA41BFEAE1BFCA44F13F8A31BF0A2 4F13E0A24F13C06F17804F1300816F4B5A6F4A5B4AB402075B4A6C6C495B9126F83FE001 3F13C09127F00FFC03B55A4A6CB648C7FCDAC00115F84A6C15E091C7001F91C8FC90C800 0313E04F657BE35A>I<92380FFFF04AB67E020F15F0023F15FC91B77E01039039FE001F FF4901F8010113804901E0010713C04901804913E0017F90C7FC49484A13F0A2485B485B 5A5C5A7113E0485B7113C048701380943800FE0095C7FC485BA4B5FCAE7EA280A27EA280 6C18FCA26C6D150119F87E6C6D15036EED07F06C18E06C6D150F6D6DEC1FC06D01E0EC7F 806D6DECFF00010701FCEB03FE6D9039FFC03FFC010091B512F0023F5D020F1580020102 FCC7FCDA000F13C03E437BC148>II<92380FFFC04AB512FC020FECFF80023F15E091B712F8 0103D9FE037F499039F0007FFF011F01C0011F7F49496D7F4990C76C7F49486E7F484980 48844A804884485B727E5A5C48717EA35A5C721380A2B5FCA391B9FCA41A0002C0CBFCA6 7EA380A27EA27E6E160FF11F806C183F6C7FF17F006C7F6C6D16FE6C17016D6C4B5A6D6D 4A5A6D01E04A5A6D6DEC3FE0010301FC49B45A6D9026FFC01F90C7FC6D6C90B55A021F15 F8020715E0020092C8FC030713F041437CC14A>III<903807FF80 B6FCA6C6FC7F7FB3A8EF1FFF94B512F0040714FC041F14FF4C8193267FE07F7F922781FE 001F7FDB83F86D7FDB87F07FDB8FC0814C7F039FC78015BE03BC8003FC825DA25DA25DA4 5DB3B2B7D8F007B71280A651647BE35A>II<903807FF80B6FCA6C6FC7F7FB3B3B3B3ADB712E0A62364 7BE32C>108 D<902607FF80D91FFFEEFFF8B691B500F00207EBFF80040702FC023F14E0 041F02FF91B612F84C6F488193267FE07F6D4801037F922781FE001F9027E00FF0007FC6 DA83F86D9026F01FC06D7F6DD987F06D4A487F6DD98FC0DBF87EC7804C6D027C80039FC7 6E488203BEEEFDF003BC6E4A8003FC04FF834B5FA24B5FA24B94C8FCA44B5EB3B2B7D8F0 07B7D8803FB612FCA67E417BC087>I<902607FF80EB1FFFB691B512F0040714FC041F14 FF4C8193267FE07F7F922781FE001F7FC6DA83F86D7F6DD987F07F6DD98FC0814C7F039F C78015BE03BC8003FC825DA25DA25DA45DB3B2B7D8F007B71280A651417BC05A>I<9238 07FFE092B6FC020715E0021F15F8027F15FE494848C66C6C7E010701F0010F13E04901C0 01037F49496D7F4990C87F49486F7E49486F7E48496F13804819C04A814819E048496F13 F0A24819F8A348496F13FCA34819FEA4B518FFAD6C19FEA46C6D4B13FCA36C19F8A26C6D 4B13F0A26C19E06C6D4B13C0A26C6D4B13806C6D4B13006D6C4B5A6D6D495B6D6D495B01 0701F0010F13E06D01FE017F5B010090B7C7FC023F15FC020715E0020092C8FC030713E0 48437CC151>I<902607FF80EBFFF8B6010FEBFF80047F14F00381B612FC038715FF038F 010114C09227BFF0003F7FC6DAFFC0010F7F6D91C76C7F6D496E7F03F86E7F4B6E7F4B17 804B6F13C0A27313E0A27313F0A21BF885A21BFCA3851BFEAE4F13FCA41BF861A21BF061 1BE0611BC06F92B512801B006F5C6F4A5B6F4A5B03FF4A5B70495B04E0017F13C09226CF FC03B55A03C7B648C7FC03C115F803C015E0041F91C8FC040313E093CBFCB3A3B712F0A6 4F5D7BC05A>I114 D<913A3FFF8007800107B5 EAF81F011FECFE7F017F91B5FC48B8FC48EBE0014890C7121FD80FFC1407D81FF0801600 485A007F167F49153FA212FF171FA27F7F7F6D92C7FC13FF14E014FF6C14F8EDFFC06C15 FC16FF6C16C06C16F06C826C826C826C82013F1680010F16C01303D9007F15E0020315F0 EC001F1500041F13F81607007C150100FC81177F6C163FA2171F7EA26D16F0A27F173F6D 16E06D157F6D16C001FEEDFF806D0203130002C0EB0FFE02FCEB7FFC01DFB65A010F5DD8 FE0315C026F8007F49C7FC48010F13E035437BC140>II<902607FFC0ED3FFEB60207B5FCA6C6EE0007 6D826D82B3B3A260A360A2607F60183E6D6D147E4E7F6D6D4948806D6DD907F0ECFF806D 01FFEB3FE06D91B55A6E1500021F5C020314F8DA003F018002F0C7FC51427BC05A>III<007FB600C0017FB512F8A6D8001F01F8C70007EBF000 6D040190C7FC6D6D5D6D6D4A5A6D6D4A5A70495A6D4C5A6E7F6E6D495A6E6D495A7049C8 FC6E4A5A6E6D485A6E6D485A6E13FFEF8FF06EEC9FE06FEBFFC06F5C6F91C9FC5F6F5B81 6F7F6F7F8481707F8493B57E4B805D4B80DB0FF37FDB1FE17F04C080153F4B486C7F4B48 6C7F4A486D7F4A486D7F4A5A4B6D7F020F6E7F4A486D7F4A486D804A5A4AC86C7F49486F 7F4A6F7F0107707FEB3FFFB600F049B7FCA650407EBF55>I E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fg cmr12 14.4 11 /Fg 11 117 df<120FEA3FC0EA7FE012FF13F0A213F8A3127F123FEA0F381200A5137813 70A313F013E0A2120113C0120313801207EA0F00121EA25A5A12300D23768B21>44 D48 D50 D<121EA2121F13F090B812C0A4481780A218005FA2003CC9123C00385E0078167017 F000704B5A5F16034C5A94C7FC485D161E5EC9123816785E5E15014B5A5E15074BC8FCA2 151E153E153C157C157815F8A24A5AA21403A25D1407A2140FA25D141FA3143FA3147F5D A414FFA65BAC6D90C9FC143C32537AD03B>55 D83 D98 D101 D<01FFD907FEEC03FFB590 261FFFC0010F13E0037F01F0013F13F8912701F80FFC9038FC07FE913D03C003FE01E001 FF000390260700019038038000C6010E6D6C48C76C7E6D48DA7F8E6E7E4A159CA24ADA3F F86E7E02605D14E04A5DA34A5DB3AD2601FFE0DAFFF0EC7FF8B6D8C07F9026FFE03FB512 F0A45C347CB363>109 D<90397F8007FCB590387FFF800281B512E0913987F00FF89139 8F8003FC000390399E0001FFC601BC6D7FD97FF86E7E4A6E7E4A6E7E4A140F844A6E7EA2 717EA3717EA4711380AB4D1300A44D5AA24D5AA2606E140F4D5A6E5D6E4A5A6E4A5A02BC 4AC7FC029E495A028FEB07FC913987E01FF00281B512C0DA807F90C8FCED0FF892CAFCB1 3801FFE0B612C0A4394B7DB341>112 D<01FFEB1F80B5EB7FF0913801FFF8913803E1FC 91380783FE0003EB0F07C6131EEB7F1C1438143091387003FC91386000F0160014E05CA4 5CB3AA8048487EB612F0A427347DB32E>114 D116 D E %EndDVIPSBitmapFont %DVIPSBitmapFont: Fh cmr17 20.74 21 /Fh 21 119 df58 D67 D<92B8FCA5DB000714800400EBFE00715A173FB3B3B3B3AAEA03C0EA0FF0EA3FFC487EA2 B5FCA44D5AA3495E6C4815FF5B01E05E003CC85A003E5F4C5B7E6C6C4A90C7FC4C5A6C6C 5DD803F04A5A6C6C4A5AD8007EECFFC06D6C485B90270FF007FEC8FC0103B512F8010014 C0DA0FFCC9FC407979F551>74 D76 D80 D<913803FF80021F13F891B512FE903A03FC01FF80903A07E0003FE0D91F80EB0FF8013E C76C7E496E7E01F06E7E48486E7F717E4848153F4982D807A06F7E13FC487E6D6F7E80A2 717EA46C90C8FC6C5A6C5ACAFCA6EE07FF0303B5FC157F913903FFFE07021F138091387F F800903801FFC0010790C7FCEB1FFCEB3FF0EBFFE0485B485B4890C8FC5B485A485AA248 5A1A0E485AA312FF5B170FA4171FA26D153F007F163B177B6DDBF1FE131C003F16E16C6C 14016C6C912603C0FF13386C6CEC0F806C6C6C903A1F007F80706C6D017CECE1E028007F F803F8EB3FFF011FB500E06D1380010391C7000713009026003FF8EC01FC474D79CB4F> 97 D 99 D101 DII<13 1EEB7F80497E487F487FA66C5B6C5B6D5A011EC7FC90C8FCB3A7EB01F0EA07FFB5FCA512 01EA007F133FA2131FB3B3B3A3497EEBFFFEB612FCA51E727AF12A>105 D108 DIII<02F849B47ED803 FF021F13F8B5027F13FE923A01FC01FF80923A07E0003FE0031FC76C7E033EEC0FFCC602 78EC03FE013F496E7E90261FF9E06E7FDAFBC0826DB4486F7E92C96C7E737E5C4A707E86 4A160786851B80A2851BC0A2851BE0A5F27FF0AEF2FFE0A54F13C0A34F1380A21B006162 6E160F626E161F626E4C5A4F5A6F5EDAFBC015FFDAF9E04A5BDAF8F04A48C7FC03784A5A 6F4A5A031FEC3FF06F6CEBFFC0922603F80790C8FC0300B512FC043F13E0DC07FEC9FC93 CBFCB3A7497EEB7FFFB77EA54C6C7BCA58>I114 DI<1407A85CA65CA35CA35CA25CA25BA25B5B5B5B5B5B48B712FE120FB8FCA3D800 0190C9FCB3B3A2EF01C0B0EF03806D7FA3027FEC0700815F6E6C130E021F141E6F131C6E 6C5B6E6C13F8913901FF01F09139007FFFC0031F5BDB03FCC7FC326B7EE93D>I<02F8EE 0F80D803FFEE3FFFB5030FB5FCA5C6EE000F013F1603011F82A2010F82B3B3A660A460A3 601307606E150E0103161E606E4B7F010116706D6C03F07F6FD903E013F86E6C4948EBFF F8DA1FE0EB1F00DA0FFE13FE0203B512F8DA007F13E0030790C7EBC0004D4C7ACA58>I< B600F84AB512FCA5000191C9003F13C026007FFC040F13006D4817FC011F715A62010F71 5A6E5F13074F5A6D7E97C7FC6E5E6D170EA26F151E6D171C81027F5EA26F1578023F1670 81021F5EA26F1401020F5E8102074B5AA26F1407020393C8FC816E150EA270131E6E151C 82037F5CA2701378033F147082031F5CA2EEF801030F5CA26F6C485AA2EEFE07030391C9 FCA2705A6F130E178E6F139CA217FC705AA2705AA3705AA2705AA3705AA24E4B7EC953> I E %EndDVIPSBitmapFont end %%EndProlog %%BeginSetup %%Feature: *Resolution 600dpi TeXDict begin %%PaperSize: A4 %%EndSetup %%Page: 1 1 1 0 bop 273 253 a Fh(Concepts)51 b(of)i(Programming)e(Languages:)69 b(P)l(arallel)1137 461 y(Programming)51 b(in)i(Ja)l(v)-9 b(a)1380 990 y Fg(Septem)m(b)s(er)36 b(20,)i(2007)-104 1421 y Ff(1)161 b(In)l(tro)t(duction)-104 1640 y Fe(F)-8 b(or)37 b(this)g(assignmen)m(t)g(t)m(w)m(o)i(programs,)f(written)f(in)g (Ja)m(v)-5 b(a,)39 b(m)m(ust)f(b)s(e)g(compiled)d(and)j(run,)h(studied) f(and)-104 1760 y(analyzed,)i(and)f(then)g(the)g(studen)m(t)h(is)e(exp) s(ected)j(to)d(write)g(another)h(t)m(w)m(o)g(programs)e(in)h(Ja)m(v)-5 b(a)39 b(and)f(run)-104 1881 y(them.)k(The)31 b(purp)s(ose)g(of)f(this) f(assignmen)m(t)h(for)f(the)i(studen)m(t)g(is)f(to)f(get)h(some)g(exp)s (erience)h(implemen)m(ting)-104 2001 y(concurren)m(t)j(programs)e(in)g (Ja)m(v)-5 b(a.)42 2121 y(T)d(o)33 b(get)f(the)g(Ja)m(v)-5 b(a)32 b(soft)m(w)m(are)h(a)m(v)-5 b(ailable)30 b(to)i(y)m(ou)h(on)f (the)g(computers)h(of)e(our)h(departmen)m(t)h(y)m(ou)g(should)-104 2242 y(add)g Fd(javac)h Fe(to)e Fd(wi)p 602 2242 31 4 v 37 w(packages)j Fe(in)m(to)d(the)h Fd(.tcshrc)h Fe(\014le)e(in)g(y)m (our)h(home)f(directory:)-104 2362 y Fd("set)52 b(wi)p 260 2362 V 38 w(packages=\(...,javac,...\)")p Fe(.)42 2482 y(This)33 b(assignmen)m(t)g(has)f(three)i(parts:)15 2679 y(1.)49 b(A)33 b(simple)e(Ja)m(v)-5 b(a)32 b(applet)g(is)g (studied.)15 2880 y(2.)49 b(Another)32 b(simple)e(Ja)m(v)-5 b(a)32 b(program)e(is)h(studied,)i(whic)m(h)f(uses)h(threads)f(to)g (implemen)m(t)d(a)j(solution)e(to)140 3001 y(a)i(problem)g(in)m(v)m (olving)f(sev)m(eral)i(b)s(eer)g(drink)m(ers)h(and)e(a)h(toilet.)15 3202 y(3.)49 b(Tw)m(o)26 b(simple)e(Ja)m(v)-5 b(a)25 b(programs)g(m)m(ust)g(b)s(e)h(written,)h(whic)m(h)e(use)i(threads)f (to)f(implemen)m(t)e(the)j(readers-)140 3322 y(writers)33 b(problem.)42 3519 y(All)e(examples)i(can)g(b)s(e)f(found)h(on)g(the)g (Course)g(Do)s(cumen)m(ts)g(section)g(on)f(blac)m(kb)s(oard.)-104 3851 y Ff(2)161 b(A)54 b(Simple)g(Ja)l(v)-9 b(a)55 b(Applet)-104 4070 y Fe(Lo)s(ok)37 b(at)f Fd("Ogen.html")k Fe(in)c Fd("Java.zip")p Fe(.)59 b(This)37 b(will)d(sho)m(w)k(an)f(applet)f (with)h(t)m(w)m(o)g(ey)m(es)i(follo)m(wing)34 b(the)-104 4190 y(cursor)47 b(mo)m(v)m(emen)m(ts)h(within)d(a)i(sp)s(eci\014ed)g (range.)86 b(Notice)46 b(ho)m(w)h(eac)m(h)h(pupil)d(mo)m(v)m(es)i (within)f(its)g(o)m(wn)-104 4310 y(ey)m(ehole)33 b(to)g(follo)m(w)e (the)i(cursor)g(mo)m(v)m(emen)m(ts.)42 4431 y(Y)-8 b(ou)41 b(can)g(\014nd)g(the)g(source)h(for)e(this)h(program)e(in)h(the)h (zip\014le)f(in)g Fd("Ogen.java")k Fe(together)c(with)h(a)-104 4551 y(cop)m(y)34 b(of)e(the)h(\014le)f Fd("Ogen.html")j Fe(and)e(a)f(mak)m(e\014le)h Fd("Makefile")p Fe(.)42 4672 y(Cop)m(y)50 b(these)g(three)g(\014les)f(to)f(a)h(directory)g(of)f (y)m(our)i(o)m(wn)f(and)g(study)h(the)f(mak)m(e\014le)g(to)f(\014nd)i (out)-104 4792 y(ho)m(w)36 b(y)m(ou)h(can)f(compile)d(the)j(program)f (y)m(ourself)h(and)f(execute)j(it)d(with)g(the)h(help)g(of)f(a)g(w)m (eb-bro)m(wser)j(or)-104 4912 y(appletview)m(er.)42 5033 y(Then)32 b(study)g(the)f(ja)m(v)-5 b(a)30 b(source)i(and)f(try)g(to)f (\014nd)h(out)g(wh)m(y)h(the)f(ey)m(e-pupils)g(nev)m(er)h(come)e(out)h (of)f(their)-104 5153 y(ey)m(eholes;)k(y)m(ou)f(do)g(not)f(ha)m(v)m(e)i (to)e(submit)g(an)h(answ)m(er)h(for)e(this.)-104 5485 y Ff(3)161 b(A)54 b(Simple)g(Example)g(Ja)l(v)-9 b(a)55 b(Program)e(with)g(Threads)-104 5704 y Fe(Cop)m(y)34 b(the)f(\014les)g(of)40 b Fd("Beer)p 895 5704 V 38 w(drinkers")35 b Fe(to)e(a)g(directory)g(of)f(y)m(our)i(o)m(wn)f(and)g(study)h(the)g (mak)m(e\014le)e(to)h(\014nd)-104 5824 y(out)f(ho)m(w)i(y)m(ou)f(can)g (compile)d(the)j(program)f(y)m(ourself)h(and)f(execute)j(it.)42 5945 y(This)h(time)d(the)j(program)d(runs)j(directly)e(as)i(a)e(ja)m(v) -5 b(a)35 b(application)e(program,)h(and)h(not)g(as)g(an)g(applet)-104 6065 y(within)d(a)g(w)m(eb-bro)m(wser)j(or)d(appletview)m(er.)1856 6129 y(1)p eop %%Page: 2 2 2 1 bop 42 -150 a Fe(Analyze)33 b(the)g(ja)m(v)-5 b(a)32 b(source)h(co)s(de)g(for)f(this)g(program)f(and)h(\014nd)h(out)f(ho)m (w)h(this)f(program)f(implemen)m(ts)-104 -29 y(a)e(solution)f(for)h (the)h(problem)e(explained)i(in)e(the)i(source)h(\014le.)42 b(Once)30 b(again,)f(there)h(is)f(no)h(need)g(to)f(submit)-104 91 y(a)j(rep)s(ort)h(for)f(this)g(assignmen)m(t.)-104 422 y Ff(4)161 b(W)-13 b(rite)53 b(a)i(Simple)f(Ja)l(v)-9 b(a)54 b(Program)g(with)f(Threads)g(Y)-13 b(ourself)-104 641 y Fe(Inspired)33 b(b)m(y)h(the)f(programs)e(ab)s(o)m(v)m(e)j(y)m (ou)f(are)g(exp)s(ected)h(to)e(write)h(t)m(w)m(o)g(simple)e(Ja)m(v)-5 b(a)32 b(program)g(y)m(ourself.)-104 928 y Fc(The)45 b(Readers/W)-11 b(riters)46 b(Problem)-104 1112 y Fe(Tw)m(o)30 b(kinds)f(of)f(pro)s(cesses)j({)e(readers)g(and)g(writers)g({)g(share)g (a)g(database.)42 b(W)-8 b(riters)29 b(execute)i(transactions)-104 1233 y(that)h(up)s(date)g(the)g(database;)h(reader)f(transactions)g (access)i(the)e(database)h(without)e(mo)s(difying)e(it.)43 b(The)-104 1353 y(database)36 b(is)g(assumed)g(initially)c(to)j(b)s(e)h (in)f(a)g(consisten)m(t)i(state)f(\(i.e.)53 b(one)36 b(in)f(whic)m(h)h(relations)e(b)s(et)m(w)m(een)-104 1474 y(data)45 b(are)h(meaningful\).)79 b(Eac)m(h)47 b(transaction,)h(if)c (executed)k(in)c(isolation,)i(transforms)f(the)h(database)-104 1594 y(from)32 b(one)h(consisten)m(t)h(state)f(to)g(another.)44 b(T)-8 b(o)33 b(preclude)g(in)m(terference)h(b)s(et)m(w)m(een)h (transactions,)e(a)g(writer)-104 1714 y(pro)s(cess)j(m)m(ust)g(ha)m(v)m (e)g(exclusiv)m(e)g(access)h(to)e(the)h(the)f(database.)52 b(Assuming)35 b(no)g(writer)f(is)h(accessing)h(the)-104 1835 y(database,)d(an)m(y)g(n)m(um)m(b)s(er)g(of)f(readers)i(ma)m(y)e (concurren)m(tly)i(execute)h(transactions.)-104 2121 y Fc(First)45 b(Program)-104 2306 y Fe(Implemen)m(t)32 b(the)h(Readers/W)-8 b(riters)33 b(problem)e(\(describ)s(ed)i(ab)s(o)m (v)m(e\))h(using)f Fb(monitors)p Fe(.)-104 2593 y Fc(Second)44 b(Program)-104 2778 y Fe(Implemen)m(t)28 b(the)i(Readers/W)-8 b(riters)29 b(problem)f(\(describ)s(ed)i(ab)s(o)m(v)m(e\))g(using)g Fb(monitors)e Fe(giving)f(priorit)m(y)h(to)-104 2898 y(the)37 b(writers;)i(i.e.)55 b(if)36 b(a)g(writer)g(w)m(an)m(ts)i(to)f (en)m(ter)g(the)g(database)g(but)g(has)g(to)g(w)m(ait)f(then)h(no)g (reader)g(ma)m(y)-104 3018 y(en)m(ter,)g(and)e(of)f(course)i(the)f (writer)g(still)d(has)k(to)e(w)m(ait)h(for)f(the)h(curren)m(t)h (readers)g(in)e(the)h(database)h(to)e(b)s(e)-104 3139 y(\014nished.)-104 3426 y Fc(Monitors)45 b(and)g(Condition)h(V)-11 b(ariables)45 b(in)g(Ja)l(v)-7 b(a)-104 3610 y Fe(Ev)m(ery)31 b(ob)5 b(ject)30 b(in)e(Ja)m(v)-5 b(a)29 b(with)g Fa(synchr)-5 b(onize)g(d)38 b Fe(metho)s(ds)29 b(acts)h(as)f(a)g Fb(monitor)p Fe(.)40 b(Unfortunately)29 b(Ja)m(v)-5 b(a)29 b(do)s(es)-104 3731 y(not)j(allo)m(w)f(the)i(use)h(of)e(more)g(than)h(one)f Fb(condition)k(v)-6 b(ariable)32 b Fe(p)s(er)h(ob)5 b(ject.)42 3851 y(Y)-8 b(ou)33 b(can)g(use)g(the)g(follo)m(wing)d(sync)m (hronization)j(metho)s(ds:)15 4063 y(1.)49 b Fb(w)m(ait\(\))p Fe(:)42 b(blo)s(c)m(ks)32 b(the)h(in)m(v)m(oking)g(thread.)15 4262 y(2.)49 b Fb(notify\(\))p Fe(:)42 b(reactiv)-5 b(ates)33 b(one)f(thread)h(blo)s(c)m(k)m(ed)h(in)d(a)i Fb(w)m(ait\(\))p Fe(.)15 4462 y(3.)49 b Fb(notifyAll\(\))p Fe(:)40 b(reactiv)-5 b(ates)32 b(all)f(threads)i(blo)s(c)m(k)m(ed)h(in)d(a)i Fb(w)m(ait\(\))p Fe(.)-104 4793 y Ff(5)161 b(Ho)l(w)53 b(to)g(submit)-104 5012 y Fe(Y)-8 b(our)37 b(programs)f(should)h(b)s(e) g(submitted)g(together)g(with)g(a)f(mak)m(e\014le)h(and)g(a)g(written)g (rep)s(ort)g(in)f(whic)m(h)-104 5132 y(y)m(ou)d(explain)f(y)m(our)h (programs,)f(to)g(Thijs)h(v)-5 b(an)32 b(Ommen)g(\(m)m(v)m (ommen@liacs.nl\).)-104 5463 y Ff(6)161 b(Some)52 b(Hin)l(ts)-104 5682 y Fe(T)-8 b(o)33 b(stop)g(an)f(endless)i(Ja)m(v)-5 b(a)32 b(program,)g(use)h Fd("CTRL-C")p Fe(.)42 5802 y(If)47 b(y)m(ou)g(w)m(an)m(t)h(to)e(kno)m(w)h(more)f(ab)s(out)g(the)h (Ja)m(v)-5 b(a)47 b(language,)i(just)e(visit)e Fd(http://java.sun.com)p Fe(.)-104 5922 y(Among)d(other)i(things)f(y)m(ou)h(ma)m(y)f(\014nd)h (there)f(an)h(on-line)d(collection)g(of)i(Ja)m(v)-5 b(a)43 b(tutorials)f(at)h Fd(http://)-104 6043 y(java.sun.com/docs/books/t)q (uto)q(rial)q(/ind)q(ex.h)q(tml)p Fe(.)1856 6129 y(2)p eop %%Trailer end userdict /end-hook known{end-hook}if %%EOF