Post on 15-Dec-2018
Controle de Execução: Iteração 1
Laboratório de Programação
Dr. Italo Santiago Vega
Curso de GraduaçãoCiência da Computação
Pontifícia Universidade de São PauloCopyright © 1998-2004, Italo S. Vega
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 1-1
Semana Data Tópico
1 2004-02-18 Apresentação: algoritmo e computação. Bibliografia básica.Critérios de Avaliação.
2 2004-02-25 Recesso: Carnaval3 2004-03-03 Organização de programas. Ambiente de programação (Java).4 2004-03-10 BlueJ: apresentação e computação com objetos.5 2004-03-17 Variáveis e valores. Expressões com operações aritméticas.6 2004-03-24 Representação de computações. Entrada e saída. Seleção sim-
ples.7 2004-03-31 Seleção dupla.8 2004-04-07 Seleção múltipla.
I 9 2004-04-14 Repetição.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 2
Conteúdo
1 Repetição de Rotas 3
2 Repetição com Contador 5
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 3
1 Repetição de Rotas
A bifurcação de uma rota também pode ser utilizada para representar o caso onde um
determinado trecho deve serrepetido. Duas estruturas de repetição de passos
computacionais são comumente encontradas nos programas: repetição comcontadore
repetição comsentinela.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 4
Repetição com contador A estrutura de repetição com contador descreve um padrão
de execução de rotas onde um determinado trecho é repetidon vezes. O valor de uma
variável especial, conhecida porvariável-contador, ou simplesmente contador, é
sucessivamente comparado comn; quando o valor do contador se iguala an, a
repetição é encerrada. Desta forma, acondição de paradada repetição é denotada por
uma expressão (lógica ou relacional) envolvendo o valor do contador.
Repetição com sentinela A estrutura de repetição com sentinela descreve um padrão
de execução de rotas onde a repetição de um trecho é controlada por uma condição
estabelecida sobre umvalor-sentinela. A condição de parada da repetição é denotada
por uma expressão (lógica ou relacional) envolvendo o sentinela.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 5
2 Repetição com Contador
Um típico mapa de execução representando a repetição de uma seqüência de passos de
computação controlada por uma expressão envolvendo o valor de uma
variável-contador é mostrado na Figura a seguir.
a
i ← 0
bi++
[ i < n ] 2) Condição de entrada no ciclo.
c
1) Valor inicial do contador:
3) Atualização do contador:
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 6
O trecho do mapa correspondente à seqüência de passos a serem repetidos também é
conhecido porciclo. No caso da Figura anterior, ocorremdentrodo ciclo:
• (i) a avaliação da condição de entrada no ciclo, envolvendo o valor do contadori ;caso o valor do contador não tenha atingido o total de repetições:
• (ii) execução do passo de computação identificado porb, e
• (iii) atualização do valor do contadori .
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 7
Em relação à variável-contador, três pontos importantes são destacados neste mapa:
abbbbbbbbbbbbbbbbbcddddddddddddd
1) Definição do valor inicial da
variável-contadori : neste caso, o valor
inicial do contadori é definido comozero.
2) Condição de entrada no ciclo: “valor do
contador menor do que o valor limite
(denotado porn)”.
3) Atualização do contadori : neste caso,
incrementa-se o valor dei em uma unidade.
eeeeeeeeeeeeefggggggggggggggggghCopyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 8
No caso do mapa proposto, tem-se:
// trecho que passa por a
for( int i = 0; i < n; i++ ) {
// trecho que passa por b
}
// trecho que passa por c
Total de repetições do ciclo Em função destes elementos, pode-se determinar a
quantidade de repetições do trecho que cruza o passob. No caso deste mapa, supondo
n >= 0, o trecho será repetidon vezes.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 9
Exemplo 10.1 A escrita do valor"b" no monitor do computador por três vezes, pode
ser representada pelo mapa apresentado na Figura a seguir.
i ← 0
System.out.println( “b” )i++
[ i < 3 ]
main
1) Valor inicial do contador:
2) Condição de entrada no ciclo.
3) Atualização do contador:
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 10
Em termos de Java, o método poderia ser escrito como:
public class Repetidor {
public void repetirB {
for( int i = 0; i < 3; i++ ) {
System.out.println( "b" );
}
}
}
Esta codificação faz uso da variável-contadori , que inicia o ciclo com valor0.
Quando o valor desta variável for igual a3, o ciclo de passos é encerrado e a
computação termina. O ciclo contém dois passos: (1) apresentação do valor’b’ e (2)
incremento do valor da variável-contadori . ¨
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 11
Exercício 10.1 REPETIÇÃO SIMPLES
Tarefa 10.1.1 Crie o projeto ex10.1.
Tarefa 10.1.2 Crie a classeRepetidor , conforme mostrado no exemplo
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 12
Exercício 10.2 SOMATÓRIA DE n NÚMEROS Considere o problema de
calcular a soma dos primeirosn números, onde o valor den é estabelecido pelo
usuário no início da execução da computação:Σi : 1..n = 1+2+ ...+n.
Tarefa 10.2.1 Proponha um mapa contendo os passos de uma computação que
resulte no cálculo desta somatória de números.
Tarefa 10.2.2 Refaça o mapa proposto acrescentando os contextosIntervalo e
Somatoria :
• Intervalo – contém uma variáveln que armazena o limite superior do
intervalo.
• Somatoria – oferece o métodocalcular():int , que retorna a somatória
dos números do intervalo1.. s.n , sendos uma referência para um objeto da
classeIntervalo .
Tarefa 10.2.3 Crie o projeto ex10.2.
Tarefa 10.2.4 Crie as classesIntervalo eSomatoria , conforme o mapa de
execução elaborado anteriormente.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 13
Tarefa 10.2.5 Crie os objetoss:Intervalo e f:Somatoria . Façaf se referir
ao objetos . Envie a mensagems.mudarSuperior(10) seguida da mensagem
f.calcular() . O resultado correspondeΣi : 1..10= 1+2+ ...+10?
Tarefa 10.2.6 Preencha a seguinte tabela com a ajuda do programa:
n Somatória
20
30
100
Tarefa 10.2.7 Qual o resultado da computação quandon =−10? Como você
analisa tal situação?
Tarefa 10.2.8 Altere o mapa de modo a mostrar, também, a média destes primeiros
n números. Estes passos devem estar no contextoSomatoria .
Tarefa 10.2.9 Altere a implementação em Java, de modo a obter-se o efeito descrito
por este novo mapa. Quais os resultados da aplicação quando o usuário digita10para o
valor den? São os mesmos valores mostrados na execução da tarefa anterior?
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 14
Tarefa 10.2.10 Qual mensagem é emitida pelo compilador sobre a variável-contador
i , caso o método de cálculo da média contenha:
// Passos iniciais
for( int i = 1; i <= s.n; i++ ) {
// Acumulo a somatória do i-ésimo número
// na variável "somatoria".
}
// Mostro o total da somatória
System.out.println( "Media= " + (somatoria/i) );
// Passos complementares
Qual alteração faria este trecho de código compilar e produzir o resultado correto?
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 15
Exercício 10.3 SOMATÓRIA DOS NÚMEROS DE UM INTERVALO Considere oproblema de calcular a soma dos números de um intervalo:Σi : inferior ..superior = inferior +(inferior +1)...+ superior , supondoinferior ≤ superior .
Tarefa 10.3.1 Proponha um mapa contendo os passos de uma computação queresulte no cálculo desta somatória de números.
Tarefa 10.3.2 Refaça o mapa proposto acrescentando os contextosIntervalo eSomatoria :
• Intervalo – armazena nas variáveisinferior:int esuperior:int oslimites do intervalo de inteiros a serem processados.
• Somatoria – oferece o métodocalcular():int , que retorna a somatóriados números do intervalos.inferior .. s.superior , sendos umareferência para um objeto da classeIntervalo .
Tarefa 10.3.3 Crie o projeto ex10.3.
Tarefa 10.3.4 Crie as classesIntervalo eSomatoria , conforme o mapa deexecução elaborado anteriormente.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 16
Tarefa 10.3.5 Crie os objetoss:Intervalo e f:Somatoria . Façaf se referir
ao objetos . Envie a mensagems.mudarInferior(1) , seguida de
s.mudarSuperior(10) , seguida da mensagemf.calcular() . O resultado
correspondeΣi : 1..10= 1+2+ ...+10?
Tarefa 10.3.6 Preencha a seguinte tabela com a ajuda do programa:
inferior superior Somatória
1 10
5 10
−5 6
6 −5
Tarefa 10.3.7 Altere o mapa de modo a mostrar, também, amédiados números de
um particular intervalo.
Tarefa 10.3.8 Altere a implementação em Java, de modo a obter-se o efeito descrito
por este novo mapa.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 17
Tarefa 10.3.9 Preencha a seguinte tabela com a ajuda do programa:
inferior superior Média
1 10
5 10
−5 6
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 18
Exercício 10.4 INVESTIMENTO Um investidor fez um investimento de
$1000,00, com retorno de5%aa. O saldo do investimento no final don-ésimo ano
pode ser calculado por:
q = p(1+ i)n
onde:
• q é o saldo no final do anon
• p é o investimento inicial
• i é a taxa de retorno anual
• n é o total de anos do investimento
Tarefa 10.4.1 Assumindo que todo o retorno é reinvestido no final de cada ano,
proponha um mapa de execução que calcule e mostre o saldo em conta no final de cada
ano, durante os primeirosn anos.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 19
Tarefa 10.4.2 Refaça o mapa proposto acrescentando os contextos
AplicacaoFinaceira e Investidor :
• Investidor – armazena na variávelp:double o valor do investimento, e na
variáveln, o total de anos do investimento. A armazenagem deve ser feita pela
execução do métodoaplicar(novoP:double, novoN:double):void .
• AplicacaoFinaceira – oferece o métodocalcular():double , que
retorna o valor do saldoi.p ao final doi.n anos de investimento, supondo quei
é uma referência para um objeto da classeInvestidor . A taxa de retorno,
necessária para o cálculo do saldo, deve ser armazenada na variáveli:double .
Tarefa 10.4.3 Crie o projeto ex10.4.
Tarefa 10.4.4 Crie as classesInvestidor eAplicacaoFinaceira ,
conforme o mapa de execução elaborado anteriormente.
OBS:xy pode ser calculado, em Java, com:Math.pow(x,y) .
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 20
Tarefa 10.4.5 Crie os objetosze:Investidor ea:AplicacaoFinanceira .
Façaa] se referir ao objeto [[ze . Envie a mensagem
ze.aplicar(1000.00, 10) , seguida dea.calcular() . Qual o resultado
obtido?
Tarefa 10.4.6 Preencha a seguinte tabela:
p n i q
$100.0 1 1%
$1000.0 2 5%
$−100.0 1 1%
$100.0 −2 5%
Faça uma análise dos resultados obtidos.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 21
Exercício 10.5 PADRÕES DEDESENHO Para cada um dos seguintes padrões
de estrelas, proponha ummapa de execução, contextos de execuçãoapropriados e a
respectivaimplementação em Java, de modo que os padrões sejam apresentados no
monitor do computador. (Inspirado em Lewis & Loftus,Java Software Solutions:
Foundations of Program Design, 2001, Addison-Wesley.)
Tarefa 10.5.1
*********
********
*******
******
*****
****
***
**
*
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 22
Tarefa 10.5.2*
**
***
****
*****
******
*******
********
*********
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 23
Tarefa 10.5.3*
***
*****
*******
*********
*******
*****
***
*
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004
Controle de Execução: Iteração 23-1
Semana Data Tópico
1 2004-02-18 Apresentação: algoritmo e computação. Bibliografia básica.Critérios de Avaliação.
2 2004-02-25 Recesso: Carnaval3 2004-03-03 Organização de programas. Ambiente de programação (Java).4 2004-03-10 BlueJ: apresentação e computação com objetos.5 2004-03-17 Variáveis e valores. Expressões com operações aritméticas.6 2004-03-24 Representação de computações. Entrada e saída. Seleção sim-
ples.7 2004-03-31 Seleção dupla.8 2004-04-07 Seleção múltipla.
I 9 2004-04-14 Repetição.
Copyright c©1998-2004, Dr. Italo S. Vega Abril de 2004