{VERSION 5 0 "IBM INTEL LINUX" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Output" 2 20 "" 0 1 0 0 255 1 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 259 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 260 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 261 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 262 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 263 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 264 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 265 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 266 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 267 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 268 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 269 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 270 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 271 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 272 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 273 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 274 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 275 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 276 "" 1 18 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 277 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 278 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 279 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 280 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 281 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 282 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 283 "" 0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 284 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 285 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 286 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 287 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 288 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 289 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 290 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 291 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 292 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 293 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 294 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 295 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 296 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 297 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 298 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 299 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 300 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 301 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 302 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 303 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 304 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 305 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 306 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 307 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 308 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 309 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 310 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 311 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 312 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 313 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 314 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 315 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 } {CSTYLE "" -1 316 "" 0 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0 }{CSTYLE "" -1 319 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 320 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{CSTYLE "" -1 321 "" 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Out put" -1 11 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Maple Output" -1 12 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 256 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Maple Output" -1 257 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }1 3 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 258 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 2 1 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }{PSTYLE "Normal" -1 259 1 {CSTYLE "" -1 -1 "T imes" 1 48 0 0 0 1 2 2 2 2 2 2 1 1 1 1 }3 1 0 0 0 0 1 0 1 0 2 2 0 1 } {PSTYLE "Normal" -1 260 1 {CSTYLE "" -1 -1 "Times" 1 12 0 0 0 1 1 2 2 2 2 2 1 1 1 1 }1 1 0 0 0 0 1 0 1 0 2 2 0 1 }} {SECT 0 {EXCHG {PARA 259 "" 0 "" {TEXT 256 78 "Aula Pr\341tica sobre E lementos Algor\355tmicos, Representa\347\365es de N\372meros e Erros \+ " }}{PARA 0 "" 0 "" {TEXT -1 1 "\n" }}{PARA 0 "" 0 "" {TEXT 316 18 "SO LU\307\303O 29.03.2004" }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 " " }}{PARA 0 "" 0 "" {TEXT 261 25 "I. Elementos Algor\355tmicos" }} {PARA 0 "" 0 "" {TEXT 257 1 " " }{TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 265 83 "1. Examinamos inicialmen te exemplos de uso de elementos algor\355tmicos b\341sicos como: " }} {PARA 0 "" 0 "" {TEXT 262 43 "1.1. atribui\347\343o de valores a vari \341veis \":=\"" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 50 "var := 5; \nprint(var); \nvar:=var+var; \nprin t(var);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$varG\"\"&" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"\"&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%$varG \"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#5" }}}{EXCHG {PARA 0 "" 0 " " {TEXT 258 39 "1.2. Comando condicional \"if then else\"" }{TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "if var < 10 then \n \+ print(2* var) \nelse \n print(3* var) \nend if;" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"#I" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 263 132 "1.3. C omando de repeti\347\343o \"for i from by while do end do\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 146 "for i from 0 by 2 while i <= var do \n print(i) \nend do;\n\nacum:= 0;\nfor i f rom 1 by 1 while i <= var do \n acum := acum + i \nend do; \nprint(ac um);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"%" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acu mG\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"\"$" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#>%%acumG\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"#:" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"#@" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"#G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acum G\"#O" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"#X" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%acumG\"#b" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\" #b" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 264 121 "1.4 Defini\347\343o de fu n\347\365es e/ou procedimentos \" := proc() end proc\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 192 "suma := proc(n) \n local a cum, i : integer;\n acum:=0; \n for i from 1 by 1 whil e i <= n do \n acum := acum + i \n end do; \n \+ return acum;\nend proc;" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "suma(1 0);\nsuma(100);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%%sumaGf*6#%\"nG6$ %%acumG%\"iG6\"F+C&%(integerG>8$\"\"!?(8%\"\"\"F3F+1F29$>F/,&F/F3F2F3O F/F+F+F+" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#b" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"%]]" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 266 219 "2. A se guir, definimos uma fun\347\343o para o m\341ximo divisor com\372m - m dc, entre dois n\372meros inteiros positivos.\n Avalie o comportame nto desta fun\347\343o. Para isto insira um comando \"print(aloc,bloc) \" em algum local adequado" }}{PARA 258 "" 0 "" {TEXT -1 72 " da fun \347\343o e realize testes com alguns argumentos inteiros de entrada. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 600 "mdc := proc(a,b) \n \+ local aux, aloc, bloc: integer; # aloc e bloc s\343o copias locai s\n # dos par\342metros a e b q ue permitem\n # o manuseio dos \+ argumentos de entrada\n # que p assam por valor.\n aloc := a; bloc := b; \n while aloc > 0 do \n if aloc < bloc then \n aux := aloc; aloc \+ := bloc; bloc := aux;\n end if;\n while aloc >= bloc do \n aloc:= aloc - bloc; \n end do; \n en d do;\n return bloc; \nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%$mdcGf*6$%\"aG%\"bG6%%$auxG%%alocG%%blocG6\"F-C'%(integerG>8%9 $>8&9%?(F-\"\"\"F7F-2\"\"!F1C$@$2F1F4C%>8$F1>F1F4>F4F??(F-F7F7F-1F4F1> F1,&F1F7F4!\"\"OF4F-F-F-" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "mdc(132,18);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "mdc(3132,30018);" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 5 "Aten\347 " }{TEXT 319 1 "\343" }{TEXT -1 15 "o com valores n" }{TEXT 320 1 " \343" }{TEXT -1 28 "o positivos! Teste mdc(1,0)." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 2 " " }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT 268 226 "3. A seguir, definimos uma vers\343o recursiva \+ para o m\341ximo divisor com\372m - mdc, entre dois n\372meros inteiro s positivos.\n Avalie o comportamento desta fun\347\343o. Para isto insira um comando \"print(aloc,b)\" em algum local adequado" }}{PARA 258 "" 0 "" {TEXT -1 72 " da fun\347\343o e realize testes com algun s argumentos inteiros de entrada." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 394 "mdcRec := proc(a,b) \n local aux, aloc: integ er;\n if a = 0 then return b \n else if a < b then retur n mdcRec(b,a)\n else aloc := a; \n while \+ aloc >= b do \n aloc:= aloc - b;\n \+ print(aloc,b); \n end do; \n \+ return mdcRec(aloc,b); \n end if;\n end if; \nend p roc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%'mdcRecGf*6$%\"aG%\"bG6$%$au xG%%alocG6\"F,C$%(integerG@%/9$\"\"!O9%@%2F1F4O-F$6$F4F1C%>8%F1?(F,\" \"\"F>F,1F4FF<,&FF4!\"\"-%&printG6$F " 0 "" {MPLTEXT 1 0 15 "mdcRec(132,18);" }{TEXT -1 0 "" }} {PARA 11 "" 1 "" {XPPMATH 20 "6$\"$9\"\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#'*\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#y\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#g\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#U\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#C\"#=" } }{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"'\"#=" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#7\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"'F#" } }{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"!\"\"'" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"'" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "mdc Rec(132,17);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"$:\"\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#)*\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 $\"#\")\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#k\"#<" }}{PARA 11 " " 1 "" {XPPMATH 20 "6$\"#Z\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#I \"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"#8\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"%\"#8" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"*\"\"% " }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"&\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"\"\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"$\" \"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"#\"\"\"" }}{PARA 11 "" 1 " " {XPPMATH 20 "6$\"\"\"F#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6$\"\"!\"\" \"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 267 120 "4. Ago ra iremos a constroir uma fun\347\343o para convers\343o de n\372meros em nota\347\343o decimal para nota\347\343o em bin\341rio - \"dec2bin \"." }}{PARA 0 "" 0 "" {TEXT -1 4 " " }{TEXT 269 137 "Para isto uti lizaremos fun\347\365es espec\355ficas de Maple que permitem realizar \+ divis\343o inteira (trunc(a/b)) e computar o resto m\363dulo a mod b. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 82 " E xperimente computar o resto da divis\343o entre 107 e 10 e entre 107 e 4, p. ex." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 23 "107 mod 10; \+ \n107 mod 4;" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"(" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"$" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 80 " Experimente agora computar a divis\343o inteira entre \+ 107 e 10 e 107 e 4, p. ex." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 32 "trunc(107 / 10); \ntrunc(107/4); " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#5" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"#E" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 27 " Para implementar a fun\347\343o " }{TEXT 270 7 "dec 2bin" }{TEXT -1 96 " iremos a precisar dividir a entrada (um n\372mero em nota\347\343o d\351cimal) por 2, quanto seja poss\355vel." }} {PARA 0 "" 0 "" {TEXT -1 77 " Observe a seq\374\352ncia de divis\365es por dois realizadas no seguinte comando for:" }}}{PARA 11 "" 1 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 89 "entrada := 3 5; \ni:= entrada;\nwhile i > 0 do\n print(i mod 2); \n i := trunc(i/ 2);\nend do;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(entradaG\"#N" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"#N" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"#<" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\")" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\"#" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG \"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#\"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\"!" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 134 "Ob serve que os bits da sa\355da aparecem em seq\374\352ncia reversa. Pa ra fornecer a transla\347\343o corretamente utilizamos strings e o com ando de" }}{PARA 0 "" 0 "" {TEXT -1 28 "concatena\347\343o de strings \+ cat." }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 187 "entrada := 35; \ni := entrada;\nsaida := ``;\nwhile i > 0 do\n if i mod 2 = 1 then saida := cat(`1`,saida) \n else saida := cat(`0`,saida) \n end if; \n i \+ := trunc(i/2);\nend do;\nprint(saida);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(entradaG\"#N" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"#N" } }{PARA 11 "" 1 "" {XPPMATH 20 "6#>%&saidaG%!G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"#<" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\" \")" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\"%" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%\"iG\"\"#" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG \"\"\"" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"iG\"\"!" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%'100011G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 136 "Pode-se agora constroir uma fun\347\343o que parcialmente realiza o t rabalho de transla\347\343o desejado: uma fun\347\343o que denominare mos decInt2bin," }}{PARA 0 "" 0 "" {TEXT -1 138 "que trasnforma inteir os em nota\347\343o d\351cimal em bin\341rio. Para isto utilizaremos \+ exatamente os truques anteriores. Examine a fun\347\343o embaixo" }} {PARA 0 "" 0 "" {TEXT -1 134 "e realize alguns testes. Mas n\343o esq ue\347a que o nosso desejo \351 realizar efetivamente uma transforma \347\343o de n\372meros em d\351cimal a nota\347\343o" }}{PARA 0 "" 0 "" {TEXT -1 122 "bin\341ria e isto inclui o tratamento de fra\347\365e s. Realize alguns testes, como p. ex. decInt2bin(1025), decInt2bin(33 3), etc." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 251 "decInt2bin := proc(entrada) \nlocal i :: int, saida :: string;\ni:= trunc(entrada);\nsaida := ``;\nwhile i > 0 do\n if i mod 2 = 1 then saida := cat(`1`,saida) \n else saida := cat(`0`,said a) \n end if; \n i := trunc(i/2);\nend do;\nreturn saida;\nend proc; " }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%+decInt2binGf*6#%(entradaG6$'%\" iG%$intG'%&saidaG%'stringG6\"F/C&>8$-%&truncG6#9$>8%%!G?(F/\"\"\"F;F/2 \"\"!F2C$@%/-%$modG6$F2\"\"#F;>F8-%$catG6$%\"1GF8>F8-FG6$%\"0GF8>F2-F4 6#,$F2#F;FDOF8F/F/F/" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "dec Int2bin(1025);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%,10000000001G" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "decInt2bin(1023);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%+1111111111G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 "decInt2bin(333);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#% *101001101G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 135 "Para realizar a t ransla\347\343o da parte fracion\341ria o truque \351 id\352ntico, mas iremos ir multiplicando a fra\347\343o do n\372mero de entrada por do is" }}{PARA 0 "" 0 "" {TEXT -1 127 "em cada itera\347\343o, limitando \+ o n\372mero de itera\347\365es ao n\372mero de bits reservado para rep resentar a parte fracion\341ria do n\372mero. " }}{PARA 0 "" 0 "" {TEXT -1 111 "Observe as seguintes instru\347\365es, onde nos estamos \+ reservando 16 bits para a representa\347\343o da parte fracion\341ria. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 263 "entrada := 35.5625; \nfracent:= frac(entrada);\nfrac ao := ``;\nfor i from 1 by 1 while i <= 16 do\n fracent := 2 * fracen t;\n if fracent >= 1 then fracao := cat(fracao,`1`); fracent := frace nt - 1; \n else fracao := cat(fracao,`0`) \n end if; \nend do;\nprin t(fracao);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(entradaG$\"'DcN!\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"%Dc!\"%" }}{PARA 11 " " 1 "" {XPPMATH 20 "6#>%'fracaoG%!G" }}{PARA 11 "" 1 "" {XPPMATH 20 "6 #>%(fracentG$\"&]7\"!\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracent G$\"%+D!\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"%+]!\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"&++\"!\"%" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\" \"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# >%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\" \"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(fracentG$\"\"!F&" }}{PARA 11 "" 1 "" {XPPMATH 20 "6# %11001000000000000G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 137 "Pode-se a gora constroir uma fun\347\343o que parcialmente realiza o trabalho de transla\347\343o desejado: uma fun\347\343o que denominaremos decFra c2bin," }}{PARA 0 "" 0 "" {TEXT -1 138 "que trasnforma a parte fracion \341ria de um n\372mero em nota\347\343o d\351cimal em bin\341rio. Pa ra isto utilizaremos exatamente os truques anteriores. " }}{PARA 0 " " 0 "" {TEXT -1 52 "Examine a fun\347\343o embaixo e realize alguns te stes.\n " }}{PARA 0 "" 0 "" {TEXT -1 80 "Realize alguns testes, como \+ p. ex. decFrac2bin(1025.1), decFrac2bin(333.5), etc." }}{PARA 0 "" 0 " " {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 358 "decFrac2 bin := proc(entrada) \n local i :: integer, fracent :: real, fracao : : string;\n fracent:= frac(entrada);\n fracao := `.`;\n for i from \+ 1 by 1 while i <= 16 do\n fracent := 2 * fracent;\n if fracent > = 1 then fracao := cat(fracao,`1`); fracent := fracent - 1; \n else fracao := cat(fracao,`0`) \n end if; \n end do;\n return fracao; \nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%,decFrac2binGf*6#%(en tradaG6%'%\"iG%(integerG'%(fracentG%%realG'%'fracaoG%'stringG6\"F2C&>8 %-%%fracG6#9$>8&%\".G?(8$\"\"\"F?F21F>\"#;C$>F5,$F5\"\"#@%1F?F5C$>F;-% $catG6$F;%\"1G>F5,&F5F?F?!\"\">F;-FK6$F;%\"0GOF;F2F2F2" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "decFrac2bin(0.1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%2.0001100110011001G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "decFrac2bin(333.5);" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#%2.1000000000000000G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 21 "d ecFrac2bin(123.625);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%2.10100000000 00000G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT 271 14 "\nQuest\343o (4): " } {TEXT -1 132 "Agora, defina uma fun\347\343o \"dec2bin\" que realize o trabalho completo de transformar um n\372mero em d\351cimal na sua re presenta\347\343o bin\341ria." }}{PARA 0 "" 0 "" {TEXT -1 83 "Para ist o utilize as fun\347\365es decInt2bin e decFrac2bin, previamente espec ificadas. " }}{PARA 0 "" 0 "" {TEXT -1 65 "Observa\347\343o: n\343o p recisa colar as fun\347\365es! Unicamente invoca-las." }}{PARA 0 "" 0 "" {TEXT -1 100 "Verifique a sua fun\347\343o com entradas espec\355 ficas como \"dec2bin(3334.111)\", dec2bin(1024.625)\", etc.\n" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 73 "dec2bin := proc(n)\n retur n cat(decInt2bin(n),decFrac2bin(n));\nend proc;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(dec2binGf*6#%\"nG6\"F(F(O-%$catG6$-%+decInt2binG6#9$ -%,decFrac2binGF/F(F(F(" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 16 " dec2bin(1023.1);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%<1111111111.00011 00110011001G" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 276 8 "II Erros" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 272 181 "5. (Relacionado com exerc\355 cio de leitura 7) Utilize varia\347\365es das fun\347\365es fornecidas para computar o erro abs\363luto e o erro relativo na representa\347 \343o bin\341ria com 24 d\355gitos de 1/10." }}{PARA 0 "" 0 "" {TEXT -1 124 "Dever\341, inicialmente, estender a fun\347\343o \"decFrac2bin \" de um jeito que a representa\347\343o da parte fracion\341ria seja \+ com 24 bits." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 90 "Logo dever\341 computar o valor em d\351cimal da representa\347 \343o bin\341ria de 1/10 com 24 d\355gitos. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 142 "O m\363dulo da diferen \347a entre 1/10 e este valor ser\341 o erro abs\363luto. O erro rela tivo ir\341 se computar dividindo o erro absoluto pelo m\363dulo da " }}{PARA 0 "" 0 "" {TEXT -1 13 "aproxima\347\343o. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 145 "Define-se uma nova fun\347\343o identica \340 \"decFra c2bin\", exceto que realizamos 24 itera\347\365es para gerar 24 bits n a representa\347\343o fracion\341ria do n\372mero." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 361 "decFrac2bin24 := proc(entrada) \n local i :: \+ integer, fracent :: real, fracao :: string;\n fracent:= frac(entrada) ;\n fracao := `.`;\n for i from 1 by 1 while i <= 24 do\n fracent := 2 * fracent;\n if fracent >= 1 then fracao := cat(fracao,`1`); \+ fracent := fracent - 1; \n else fracao := cat(fracao,`0`) \n end if; \n end do;\n return fracao;\nend proc;" }}{PARA 12 "" 1 "" {XPPMATH 20 "6#>%.decFrac2bin24Gf*6#%(entradaG6%'%\"iG%(integerG'%(fra centG%%realG'%'fracaoG%'stringG6\"F2C&>8%-%%fracG6#9$>8&%\".G?(8$\"\" \"F?F21F>\"#CC$>F5,$F5\"\"#@%1F?F5C$>F;-%$catG6$F;%\"1G>F5,&F5F?F?!\" \">F;-FK6$F;%\"0GOF;F2F2F2" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "decFrac2bin24(.1);" }{TEXT -1 0 "" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#%:.000110011001100110011001G" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 97 "O erro absoluto, calcula-se como o m \363dulo da diferen\347a entre este \372ltimo valor em decimal e 1/10: " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "erroabs := abs(0.1 - (1/16 + 1/32 + 1/2^8 + 1/2^9+ 1 /2^12 + 1/2^13 + 1/2^16 + 1/2^17 + 1/2^20+ 1/2^21 + 1/2^24));" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%(erroabsG$\"%wN!#6" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 82 "Neste resultado podem aparecer alguns erros dev ido \340s limita\347\365es da representa\347\343o " }{TEXT 321 15 "pon to flutuante" }{TEXT -1 21 " de n\372meros no Maple." }}{PARA 0 "" 0 " " {TEXT -1 125 "A mantissa \351 por defeito limitada a dez digitos. P ara incrementar o n\372mero de digitos na mantissa atribuimos um valor maior " }}{PARA 0 "" 0 "" {TEXT -1 41 "\340 vari\341vel reservada do \+ Maple \"Digits\". " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 " " {TEXT -1 108 "Embaixo atribuimos o valor de 30 digitos e logo recomp utamos o valor do erro absoluto. Observe a diferen\347a." }}{PARA 0 " " 0 "" {TEXT -1 0 "" }}}{PARA 11 "" 1 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "Digits :=30; " }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'DigitsG\"#I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 113 "erroabs := abs(0.1 - (1/16 + 1/32 + 1/2^8 + 1/2^9+ 1/2^12 + 1/2 ^13 + 1/2^16 + 1/2^17 + 1/2^20+ 1/2^21 + 1/2^24));" }}{PARA 11 "" 1 " " {XPPMATH 20 "6#>%(erroabsG$\"9+++]PM_'oyid$!#J" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 38 "erroacumulado := erroabs*100*60*60*10;" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%.erroacumuladoG$\"?++++++]P%[rKguG\" !#I" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }{TEXT -1 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {PARA 11 "" 1 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 "" 0 "" {TEXT 273 213 "6. (Relacionado com exerc\355cio de leitura 7) Supondo o erro computa do em 5, compute o erro acumulado em 100 horas e determine a desvia \347\343o em espa\347o supondo que s\343o percorridos 1676 metros a c ada d\351cima de segundo." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 22 "erroacumulado * 1.676;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?++++++D\"y+$3Nyd@!#I" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 " " }}}{EXCHG {PARA 258 "" 0 "" {TEXT -1 42 "7. Trabalho de leitura extr aido da p\341gina " }{TEXT 260 43 "Some disasters Caused by Numerical \+ Errors: " }{TEXT -1 61 "http://dutita0.twi.tudelft.nl/users/vuik/wi211 /disasters.html" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT 259 24 "Patriot Missile Failure\n" }}{PARA 0 "" 0 "" {TEXT -1 261 "Em Fevereiro 25 de 1991, durante a Primeira Guerra do Golfo, uma \+ bateria de m\355sseis norte americana Patriot em Dahran, Saudi Arabi a, falho interceptando um m\355ssil Iraquiano Scud. O Scud atingiu bar racas da Armada americana matando 28 soldados. Um reporte da " } {TEXT 292 27 "General Accounting office, " }{TEXT -1 27 "GAO/IMTEC-92- 26, intitulado" }{TEXT 294 91 " \"Patriot Missile Defense: Software Pr oblem Led to System Failure at Dhahran, Saudi Arabia\"" }{TEXT -1 1636 " relata as causas da falha. Parece que a causa foi um calculo in adequado do tempo devido a erros na aritm\351tica do computador. Espec ificamente, o tempo em d\351cimas de segundo como medido pelo rel\363g io interno do sistema era multiplicado por 1/10 para produzir tempo \+ em segundos. Este c\341lculo era realizado utilizando um registro de \+ 24 bits. Em particular, o valor 1/10, que tem uma expans\343o em bin \341rio infinita, era arredondado com 24 bits. O pequeno erro de arre dondamento, quando multiplicado por n\372meros grandes fornecido o tem po em d\351cimas de segundo, gerava erros significativos. Com efeito, o Patriot tinha sido ativado por cerca de 100 horas, e c\341lculos si mples mostram que o erro resultante no tempo devido \340 propaga\347 \343o deste erro de arredondamento era de cerca de 0.34 segundos. (O \+ n\372mero 1/10 \351 igual a 1/2^4+1/2^5+1/2^8+1/2^9+1/2^12+1/2^13+.... Em outras palavras, 1/10 \351 0.0001100110011001100110011001100.... \+ \n\nAgora, o registro do Patriot armazena 0.00011001100110011001100 in troduzindo um erro de 0.0000000000000000000000011001100... em bin\341r io, ou cerca de 0.000000095 em decimal. \n\nMultiplicando pelo n\372me ro de d\351cimas de segundo em 100 horas temos 0.000000095\327100\3276 0\32760\32710=0.34. Um Scud viaja a cerca de 1,676 metros por segundo , e assim neste tempo viaja mais de m\351dio quilometro. \n\nIsto era \+ suficiente para que o Scud estivesse fora do \"raio de alcance\" que o Patriot pode atingir. Ironicamente, o fato que c\341lculos errados de tempo tenham sido aprimorados em algumas partes do c\363digo, mas n \343o em todas, contribuiu para o problema, sempre que isto implicou q ue as imprecis\365es n\343o fossem integralmente canceladas." }}{PARA 0 "" 0 "" {TEXT -1 63 "\nO seguinte par\341grafo \351 extra\355do do r elat\363rio GAO/IMTEC-92-26.\n" }}{PARA 0 "" 0 "" {TEXT 274 1336 "The \+ range gate's prediction of where the Scud will next appear is a functi on of the Scud's known velocity and the time of the last radar detecti on. Velocity is a real number that can be expressed as a whole number \+ and a decimal (e.g., 3750.2563...miles per hour). Time is kept continu ously by the system's internal clock in tenths of seconds but is expre ssed as an integer or whole number (e.g., 32, 33, 34...). The longer t he system has been running, the larger the number representing time. T o predict where the Scud will next appear, both time and velocity must be expressed as real numbers. Because of the way the Patriot computer performs its calculations and the fact that its registers are only 24 bits long, the conversion of time from an integer to a real number ca nnot be any more precise than 24 bits. This conversion results in a lo ss of precision causing a less accurate time calculation. The effect o f this inaccuracy on the range gate's calculation is directly proporti onal to the target's velocity and the length of the the system has bee n running. Consequently, performing the conversion after the Patriot h as been running continuously for extended periods causes the range gat e to shift away from the center of the target, making it less likely t hat the target, in this case a Scud, will be successfully intercepted. \n" }{TEXT -1 22 "\nDescri\347\343o adatada de " }{TEXT 275 27 "The P atriot Missile Failure" }{TEXT -1 22 ", Douglas N. Arnold. \n" }}} {EXCHG {PARA 258 "" 0 "" {TEXT -1 169 "8. Para computar o inverso mult iplicativo de um n\372mero utilizando unicamente opera\347\365es b\341 sicas como suma, substra\347\343o e multiplica\347\343o, pode utilizar -se o seguinte truque:" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 19 " Suponha, dado um " }{TEXT 293 2 "a " }{TEXT -1 38 "diferente de zero, desejamos computar " }{TEXT 295 3 "1/a" }{TEXT -1 26 ". Considere a fun\347\343o: " }}{PARA 0 "" 0 "" {TEXT 296 51 " f(x) := x (2-ax) " }}{PARA 0 "" 0 " " {TEXT -1 15 "e observe que " }{TEXT 297 12 "f(1/a) = 1/a" }{TEXT -1 17 "; i.e., 1/a \351 um " }{TEXT 298 10 "ponto fixo" }{TEXT -1 16 " da fun\347\343o f. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 22 "Assim, para aproximar " }{TEXT 299 3 "1/a" }{TEXT -1 33 ", bastar\341 buscar um argumento de " }{TEXT 300 2 "f," }{TEXT -1 1 " " }{TEXT 301 3 "x, " }{TEXT -1 8 "tal que " }{TEXT 302 5 "f(x) \+ " }{TEXT -1 32 "seja suficientemente pr\363ximo de " }{TEXT 303 1 "x" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 35 "Um m\351todo iterativo para aproximar " }{TEXT 304 3 "1/a " }{TEXT -1 22 ", estaria baseado em: " }}{PARA 0 "" 0 "" {TEXT -1 60 " iniciando de um ponto " }{TEXT 305 2 "x0" }{TEXT -1 25 " (selecionado pr\363ximo de " }{TEXT 306 3 "1 /a" }{TEXT -1 40 ", por algum crit\351rio emp\355rico), computar" }} {PARA 0 "" 0 "" {TEXT -1 51 " \+ " }{TEXT 307 78 "x1 := f(x0); \n \+ x2 := f(x1); " }}{PARA 0 "" 0 "" {TEXT 308 63 " x3 := f(x2);" } {TEXT -1 6 " etc. " }}{PARA 0 "" 0 "" {TEXT -1 52 " \+ at\351 atingir um " }{TEXT 309 14 "xk := f(xk-1)," } {TEXT -1 5 " com " }{TEXT 310 2 "xk" }{TEXT -1 12 " pr\363ximo de " } {TEXT 311 4 "xk-1" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 277 122 "Manualmente, realize 8 i tera\347\365es do processo descrito para computar uma aproxima\347\343 o de 1/273, iniciando do ponto x0=0.001." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 38 "Inicialmente definimos uma fun\347\343o \"f\":" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "f := x -> x * (2 - 273*x);" }} {PARA 11 "" 1 "" {XPPMATH 20 "6#>%\"fGf*6#%\"xG6\"6$%)operatorG%&arrow GF(*&9$\"\"\",&\"\"#F.*&\"$t#F.F-F.!\"\"F.F(F(F(" }}}{EXCHG {PARA 0 " " 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 36 "Computamos f(x0); \+ f(f(x0)); f^8(x0):" }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 37 "\"%\" denota o \372ltimo valor computado. " }}{PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 44 "f(0.00 1);f(%);f(%);f(%);f(%);f(%);f(%);f(%);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"%Fozl.Im$!#K" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?= I(Q3u'*Hm.Im.Im$!#K" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?+jO+jO+jO+j O+jO!#K" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }}{PARA 0 "" 0 "" {TEXT -1 51 "Observe que o resultado final obtido corresponde a:" }} {PARA 0 "" 0 "" {TEXT -1 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 30 "f(f(f(f(f(f(f(f(0.001))))))));" }}{PARA 11 "" 1 "" {XPPMATH 20 " 6#$\"?+jO+jO+jO+jO+jO!#K" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 31 "Compa re com o resultado direto:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "evalf(1/273);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?+jO+jO+jO+jO+ jO!#K" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "" 0 "" {TEXT -1 0 "" }{TEXT 278 83 "9. Defin a uma fun\347\343o/procedimento geral, denominado \"apxinv\", que dado s argumentos " }{TEXT 279 1 "a" }{TEXT 280 6 " e um " }{TEXT 281 2 "x0 " }{TEXT 282 79 " inicial realize 20 itera\347\365es do processo descr ito fornecendo a aproxima\347\343o de " }{TEXT 283 3 "1/a" }{TEXT 284 1 "." }{TEXT -1 95 " \nVerifique o comportamento da sua fun\347\343o \+ para calcular valores como 1/273, 1/1000, 100, etc. " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 258 "" 0 "" {TEXT -1 30 "10. Observe que uma me dida do " }{TEXT 312 14 "erro absoluto " }{TEXT -1 81 "no processo pre cedente, pode ser estimada utilizando o m\363dulo da diferen\347a entr e " }{TEXT 313 2 "xk" }{TEXT -1 3 " e " }{TEXT 314 4 "xk-1" }{TEXT -1 70 ". Se esta diferen\347a \351 suficientemente pequena, estaremos pr \363ximos do " }{TEXT 285 10 "ponto fixo" }{TEXT -1 178 " da fun\347 \343o. Modifique a sua fun\347\343o/procedimento, criando uma nova f un\347\343o \"apxinvMod\", de maneira que sejam realizadas itera\347 \365es at\351 atingir um erro absoluto menor ou igual que " }{TEXT 315 6 "10^-10" }{TEXT -1 1 "." }}{PARA 0 "" 0 "" {TEXT -1 0 "" }} {PARA 0 "" 0 "" {TEXT -1 153 "Verifique a sua fun\347\343o com diversa s entradas como p. ex. apxinvMod(273,0.0001), apxinvMod(1000,0.001), e tc. Seja cuidadoso, pois sele\347\365es inadequadas da" }}{PARA 0 "" 0 "" {TEXT -1 54 "aproxima\347\343o inicial podem gerar computa\347 \365es infinitas!" }}}{PARA 0 "" 0 "" {TEXT -1 0 "" }}{EXCHG {PARA 0 " > " 0 "" {MPLTEXT 1 0 152 "apxinv := proc(a,x0)\n local i :: integer, xk :: real;\n xk := x0;\n for i from 1 to 20 do\n xk := xk * (2 \+ - xk * a);\n end do;\n return xk;\nend proc;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%'apxinvGf*6$%\"aG%#x0G6$'%\"iG%(integerG'%#xkG%%realG 6\"F0C%>8%9%?(8$\"\"\"F7\"#?%%trueG>F3*&F3F7,&\"\"#F7*&F3F79$F7!\"\"F7 OF3F0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "apxinv(273,0.0 01);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?+jO+jO+jO+jO+jO!#K" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 41 "apxinv(1000,0.00001);apxinv( 1000,0.0011);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?&**************** *************!#L" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?++++++++++++++ 5!#K" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "apxinv(1/100,100.1) ;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?++++++++++++++5!#F" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 258 "" 0 "" {TEXT 286 149 "11. Sim ilarmente ao exerc\355cio 9, defina um mecanismo, baseado unicamente e m opera\347\365es b\341sicas, para computar a ra\355z quadrada de n \372meros positivos. " }}{PARA 0 "" 0 "" {TEXT -1 24 "Para computar \+ a raiz de " }{TEXT 287 1 "a" }{TEXT 288 2 ", " }{TEXT -1 18 " utilize \+ a fun\347\343o " }}{PARA 0 "" 0 "" {TEXT 290 107 " \+ f(x) = x ( 2 - x ^2 / a)" }{TEXT -1 7 ", cujo " }{TEXT 291 10 "ponto fixo" } {TEXT -1 13 " \351 a raiz de " }{TEXT 289 1 "a" }{TEXT -1 1 "." }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 158 "apxsqrt := proc(a,x0)\n lo cal i :: integer, xk :: real;\n xk := x0;\n for i from 1 to 10 do\n \+ xk := xk * (2 - xk * xk / a);\n end do;\n return xk;\nend proc;" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#>%(apxsqrtGf*6$%\"aG%#x0G6$'%\"iG%(i ntegerG'%#xkG%%realG6\"F0C%>8%9%?(8$\"\"\"F7\"#5%%trueG>F3*&F3F7,&\"\" #F7*&F3F=9$!\"\"F@F7OF3F0F0F0" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 17 "apxsqrt(3,1.712);" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?#\\v1U` D#oEz)e3Ar\"!#H" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 15 "evalf(sq rt(3));" }}{PARA 11 "" 1 "" {XPPMATH 20 "6#$\"?^TjWFNHx)ov!30K " 0 "" {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}}{MARK "94 0 0" 0 } {VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }