<?xml version="1.0" encoding="UTF-8"?>
<eventos>
<topico>
<nome>Algoritimo Iterativo</nome>
<titulo>Algoritimo Iterativo</titulo>
<descritor>Algoritimo
Iterativo</descritor>
<lead>Mudanças entre
declarações positivas ou negativas sobre o estado atual do computador e
blocos de ações que levam ao proximo estado.</lead>
<link>link</link>
<origem>WAlgoritimoIterativo.xml</origem>
<referencia>referencia</referencia>
</topico>
<topico>
<titulo>Exemplo</titulo>
<desc>&lt;span style=&quot;font-weight: bold;&quot;&gt;Especificação:&lt;/span&gt;
Dada
uma lista de 3 elementos a saida consiste de um indice que tenha o
valor maximo dessa lista&lt;br&gt;
&lt;br&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Maximo (a,b,c)&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Precondição: Entrada tem 3 números a,b,c&lt;/li&gt;
  &lt;li&gt;m=a&lt;/li&gt;
  &lt;li&gt;retratoAtual: m é o máximo em {a}.&lt;/li&gt;
  &lt;li&gt;se (b&amp;gt;m)&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;m = b&lt;br&gt;
fim do se&lt;/li&gt;
  &lt;li&gt;retratoAtual:&amp;nbsp;m é o máximo em {a,b}.&lt;/li&gt;
  &lt;li&gt;se (c&amp;gt;m)&lt;br&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;m = c&lt;br&gt;
fim do se&lt;/li&gt;
  &lt;li&gt;retratoAtual:&amp;nbsp;m é o máximo em {a,b,c}.&lt;/li&gt;
  &lt;li&gt;retorna (m)&lt;/li&gt;
  &lt;li&gt;Póscondição: retorna o máximo em {a,b,c}.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;fim do algoritimo&lt;/span&gt;&lt;br&gt;
</desc>
</topico>
<topico>
<titulo>Estados para elaborar um algoritimo</titulo>
<desc>Pensar em sequencia de
instantâneos em vez de sequencia de ações. Partir da saida para a
entrada pensando de forma a temporal.&lt;br&gt;
&lt;br&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Sequencia de instantâneos&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Não perder de vista as variações do estado do
computador&lt;/li&gt;
  &lt;li&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;/span&gt;Uma
vez construida pode se ver todo o caminho claramente
&amp;nbsp;&lt;br&gt;
  &lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;&amp;nbsp;Póscondições&lt;/span&gt; e &lt;span style=&quot;font-weight: bold;&quot;&gt;Précondições&lt;/span&gt;
&lt;ul&gt;
  &lt;li&gt;Definir a solução do problema que deve ser resolvido&lt;/li&gt;
  &lt;li&gt;Retrato sobre a saida desejada (póscondição)&lt;/li&gt;
  &lt;li&gt;Retrato inicial sobre a entrada em particular (précondição)&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Começar no meio&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Começar com um retrato estatico sobre o estado que gostaria
que tivesse neste instante&lt;/li&gt;
  &lt;li&gt;Esse retrato não precisa dar o valor exato de cada variavel&lt;/li&gt;
  &lt;li&gt;Fornecer propriedades gerais e relações entre as diversas
estruturas de dados&lt;/li&gt;
  &lt;li&gt;Cada instantâneo torna-se parte de um laço&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Preencha com ações&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;São instantaneo com o tempo parado&lt;/li&gt;
  &lt;li&gt;Ainda não foi considerada nehuma ação&lt;/li&gt;
  &lt;li&gt;A etapa final é colocar ações (código) entre os
instantâneos consecutivos&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Um passo de cada vez
(passo do bebê)&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Cada um desses blocos de ações pode ser executado de
maneira completamente independente dos outros&lt;/li&gt;
  &lt;li&gt;É mais facilconsidrar um de cada vez do que com tudo ao
mesmo tempo&lt;/li&gt;
  &lt;li&gt;Pode se completar esses blocos em qq ordem que se
quiser&amp;nbsp;&lt;/li&gt;
  &lt;li&gt;Modificar um bloco sem se preocupar com efeito nos outros&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Você chegou de viagem&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;É assim que deve se preencher o codigo entre os
instantâneos entra o i-ésimo e o (i+1)-ésimo.&lt;/li&gt;
  &lt;li&gt;A unica coisa que se sabe é que o&amp;nbsp;&amp;nbsp;i-ésimo
é valido, isso é que garante a independencia dos blocos.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;De um passo&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Escrever um codigo simples para executar algumas ações
simples que mudam o estado de modo que&amp;nbsp;o (i+1)-ésimo instante
seja válido.&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Demosntração de cada passo&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Pode seer feita de um bloco de cada vez&lt;/li&gt;
  &lt;li&gt;Provar que ao para o tempo no&amp;nbsp; i-ésimo instante é
valido e para o tempo no (i+1)-ésimo instante é valido&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-weight: bold;&quot;&gt;Demonstração da correção
algoritimo&lt;/span&gt;&lt;br&gt;
&lt;ul&gt;
  &lt;li&gt;Se a entrada incial satisfaza a precondição e o codo
inteiro é executado, então no final, ostado será tal que a póscondição
fica satisfeita. Isso prova que o algoritimo funciona.&lt;/li&gt;
&lt;/ul&gt;
</desc>
</topico>
</eventos>