• Nenhum resultado encontrado

Controles de Execução de Repetição

N/A
N/A
Protected

Academic year: 2019

Share "Controles de Execução de Repetição"

Copied!
25
0
0

Texto

(1)

Física Computacional

2011-2

I N T R O D U Ç Ã O À L Ó G I C A D E P R O G R A M A Ç Ã O

P R O F . L U Í S F E R N A N D O D E O L I V E I R A

UNIVERSIDADE DO ESTADO DO RIO DE JANEIRO INSTITUTO DE FÍSICA ARMANDO DIAS TAVARES

(2)

Controles de Execução de Repetição

Os comando que exercem o controle de repetição

podem ser classificados em repetição condicionada

ou repetição sequencial.

Este comandos já foram apresentados nas primeiras

aulas:

enquanto

(

teste

), fazer

/ fim enquanto

fazer

/ enquanto

(

teste

)

repetir

/ até que

(

teste

)

para

variável

de

valor inicial

até

valor final

com passo

valor

,

fazer

/ fim para

(3)

Controles de Execução de Repetição

O controle de repetição condicional

enquanto

(

teste

),

fazer

/

fim enquanto

tem a característica de repetir

um bloco de instruções enquanto o resultado de

teste

for

verdadeiro

.

Uma das possibilidades deste tipo de controle é a de

nunca entrar no bloco de instruções de repetição.

Se

teste

for

falso

logo de cara, o controle de repetição

falha e o bloco não é executado.

(4)

Controles de Execução de Repetição

O controle de repetição condicional

fazer

/

enquanto

(

teste

) tem a característica de repetir um bloco de

instruções enquanto o resultado de

teste

for

verdadeiro

como no comando anterior.

Diferente do comando anterior, o bloco de instruções

é executado pelo menos uma vez, pois o

teste

só é

avaliado no final do comando.

(5)

Controles de Execução de Repetição

O controle de repetição condicional

repetir

/

até que

(

teste

) tem a característica de repetir um bloco de

instruções enquanto o resultado de

teste

for

falso

diferente dos comandos anteriores.

Dito de outra forma, este controle repete o bloco de

instruções até que

teste

se torne

verdadeiro

.

O bloco de instruções é executado pelo menos uma

vez, pois o

teste

só é avaliado no final do comando

como em

fazer

/

enquanto

(

teste

).

(6)

Controles de Execução de Repetição

O controle de repetição sequencial

para

variável

de

inicio

até

fim

passo

valor

, fazer

/

fim para

para difere

dos demais comandos por ter o número de iterações

predefinido.

O parâmetro

variável

deve ser substituído pela

variável contadora, isto é, a variável numérica que irá

identificar as iterações.

Os valores

inicio

e

fim

correspondem aos valores

limítrofes para as contagens.

O valor

passo

é usado para incrementar a contagem

com valores diferentes da unidade.

(7)

Controles de Execução

Por exemplo, uma repetição sequencial iniciando

com valor

1

e terminando com

10

de

1 em 1

usando

uma variável contadora identificada pelo rótulo

cont

:

para cont de 1 até 10 passo 1, fazer {bloco de instruções}

fim para

O passo a passo da repetição ocorre da seguinte

forma:

A variável contadora

cont

recebe o valor inicial

1

;

O bloco de instruções é executado;

Ao terminar a execução do bloco, depara-se com a instrução

fim para;

(8)

Controles de Execução

Neste ponto, retornamos para o comando de repetição e se

atualiza o valor da variável contadora

cont

usando o valor de

passo, neste caso,

1

;

Compara-se o valor atualizado da variável contadora

cont

(que

é

2

) com o valor final de contagem (que é

10

);

Se o valor atualizado da variável contadora

cont

não for

superior ao valor final de contagem (

10

), então o comando de

repetição executa novamente o bloco de instruções;

 2 é menor que 10, logo o bloco será executado

O processo se repete até que a variável contadora

cont

assuma

o valor

11

;

Quando isto acontecer, o comando de repetição se encerra.

(9)

Controles de Execução

Resumindo:

O processo de contagem também pode ser

decrescente, basta que o valor de passo seja negativo.

9

continicio bloco de instruções contcont+passo

cont≤fim V

(10)

Controles de Execução

O comando de repetição sequencial é muito útil para

a implementação de operações matemáticas como

somatório e produtório:

y  0 {inicializa a variável y com valor 0}

para i de 1 até N, fazer

ler x {lê um valor de x de cada vez} y  y + x {atualiza o valor de y}

fim para

escrever y {apresenta o resultado do somatório}

10

(11)

Desenvolvimento de algoritmos

Usando o exemplo das médias das provas:

{declaração da variáveis e constantes}

declare prova numérico {nota de prova} declare teste numérico {nota de teste}

declare atividade numérico {nota de atividade} declare mpro numérico {média das provas} declare mtes numérico {média dos testes}

declare matv numérico {média das atividades} declare mpar numérico {média parcial}

declare pf numérico {nota prova final} declare mf numérico {média final} declare i numérico {contador}

(12)

Desenvolvimento de algoritmos

declare aprov literal constante (“Aprovar”) declare reprov literal constante (“Reprovar”)

{calcular média das provas}

mpro  0 {inicializa mpro com 0} para i de 1 até 3, fazer

escrever “Entre com nota da prova P”, i ler prova

mpro  mpro+prova fim para

mpro  mpro/3 {calcula a média das provas} {calcular média dos testes}

mtes  0 {inicializa mtes com 0} para i de 1 até 3, fazer {continua}

(13)

Controles de Execução

{continuação}

escrever “Entre com nota do teste T”, i ler teste

mtes  mtes+teste fim para

mtes  mtes/3 {calcula a média dos testes}

{calcular média das atividades}

matv  0 {inicializa matv com 0} para i de 1 até 7, fazer

escrever “Entre com nota da atividade A”, i ler atividade

matv  matv+atividade fim para {continua}

(14)

Desenvolvimento de algoritmos

{continuação}

matv  matv/7 {calcula a média das atividades}

{calcular média parcial}

mpar  (3*mpro+2*(mtes+matv))/7 {média parcial}

{avaliar a situação do aluno...}

se (mpar>=7), então {aprovação direta}

escrever “Média: ”, mpar, “ Situação: ”, aprov

senão se (mpar<4), então {reprovação direta} escrever “Média: ”, mpar, “ Situação: ”, reprov senão {caso a ser estudado...}

ler pf

mf  0,5*(mpar+pf) {continua}

(15)

Controles de Execução

{continuação}

se (mf>=5), então {aprovado em média final}

escrever “Média: ”, mf, “ Situação: ”, aprov

senão {reprovado em média final}

escrever “Média: ”, mf, “ Situação: ”, reprov fim se

fim se

(16)

Controles de Execução

Digamos que um pesquisador queira verificar o valor médio

(media

i

) de uma sequência de medidas (dado

i

) conforme ele

for inserindo os dados experimentais.

Vamos assumir inicialmente um único dado (n=1).

A média para um único dado é o próprio valor do dado:

 soma1 = dado1

 media1 = soma1/1 = dado1

Se forem dois valores (n=2):

 soma2 = dado1+dado2

 media2 = soma2/2 = (dado1+dado2)/2 = (soma1+dado2)/2 = (1*media1+dado2)/2

(17)

Controles de Execução

Se forem três dados (n=3)

 soma3 = dado1+dado2+dado3

 media3 = soma3/3 = (dado1+dado2+dado3)/3 =

= (soma2+dado3)/3 = (2*media2+dado3)/3

Se forem quatro dados (n=4)

 soma4 = dado1+dado2+dado3+dado4

 media4 = soma4/4 = (dado1+dado2+dado3+dado4)/4 = = (soma3+dado4)/4 = (3*media3+dado4)/4

Se forem M dados (n=M)

 somaM = dado1+dado2+...+dadoM

 mediaM = somaM/M = (dado1+dado2+...+dadoM)/M =

= (somaM-1+dado4)/4 = [(M-1)*mediaM-1+dadoM]/M

(18)

Controles de Execução

Generalizando,

 mediai = [(i-1)*mediai-1+dadoi]/i

Esta expressão tem uma forma recursiva: a informação atual é

uma composição da informação anterior mais um novo dado:

 media = [(i-1)*media+dado]/i

Se o número de dados é conhecido de antemão, podemos usar

um controle de repetição sequencial.

Senão, usaremos um controle de repetição condicional. O

critério de parada da repetição deverá ser definido. Um

exemplo: se todas as medidas são sempre positivas, então, um

indicador de fim poderia ser a inserção de um número

negativo.

(19)

Controles de Execução

Uma versão preliminar do

algoritmo...

{versão com controle de repetição sequencial}

declare dado numérico {dado}

declare media numérico {média dos dados} declare n numérico {total de dados} declare i numérico {contador}

escrever “Entre total de dados:” ler n

para i de 1 até n, fazer

escrever “Entre com o dado ”, i ler dado

media  ((i-1)*media+dado)/i

escrever “Média: ”, media fim para

(20)

Controles de Execução

{versão com controle de repetição condicional enquanto-fazer}

declare dado numérico {dado}

declare media numérico {média dos dados} declare i numérico {contador}

escrever “Para interromper, entre com um número negativo” i  1

escrever “Entre com dado ”, i ler dado

enquanto (dado>=0), fazer

media  ((i-1)*media+dado)/i escrever “Média: ”, media

{continua}

(21)

Controles de Execução

{continuação} i  i+1

escrever “Entre com dado ”, i ler dado

fim enquanto

(22)

Controles de Execução

{versão com controle de repetição condicional fazer-enquanto}

declare dado numérico {dado}

declare media numérico {média dos dados} declare i numérico {contador}

escrever “Para interromper, entre com um número negativo” i  1

fazer

escrever “Entre com dado ”, i ler dado

se (dado>=0), então

media  ((i-1)*media+dado)/i {continua}

(23)

Controles de Execução

{continuação}

escrever “Média: ”, media i  i+1

fim se

enquanto (dado>=0)

(24)

Controles de Execução

{versão com controle de repetição condicional repetir-até}

declare dado numérico {dado}

declare media numérico {média dos dados} declare i numérico {contador}

escrever “Para interromper, entre com um número negativo” i  1

repetir

escrever “Entre com dado ”, i ler dado

se (dado>=0), então

media  ((i-1)*media+dado)/i {continua}

(25)

Controles de Execução

{continuação}

escrever “Média: ”, media i  i+1

fim se

até (dado<0)

Referências

Documentos relacionados

Para um melhor entendimento da doença, foram estudados 53 animais num período compreendido entre janeiro de 2008 e outubro de 2012 e uma diversidade de informações

Para obter mais informações sobre como selecionar o alto-falante sem fio, em Ajuda, pressione a tecla colorida  Palavras-chave e.. procure

Portanto, DOGMATIL deve ser utilizado com cuidado caso você tenha fatores de risco para tromboembolismo (vide “Quais os males que este medicamento pode me causar?”). A sulpirida

Considerando os materiais didáticos fundamentais para as práticas pedagógicas, o presente texto objetiva apresentar pequenos recortes sobre a utilização de

As despesas financeiras abrangem desembolsos com juros sobre empréstimos, líquidos do desconto a valor presente das provisões, atualização de débitos tributários,

 A partir das categorias de impacto ambiental identificadas, descreve- se como funcionam os critérios de avaliação de cada categoria: forma de aplicação, pontuação

No caso do pedido de subsídio ter sido instruído com a fatura ou com a cópia do contrato de locação financeira que demonstrem a efetiva aquisição do veículo elétrico,

Falava que apesar da doença, agora ele se sentia melhor, pois tinha visto que não precisava ser tão radical quanto era.. Ouvia rock e ouvia