Capitulo 6 Iterações.

Slides:



Advertisements
Apresentações semelhantes
Introdução à Programação Um enfoque orientado a construção de modelos em programas baseados em objetos Gustavo Motta Departamento de Informática - UFPB.
Advertisements

Programação de Computadores
Soluções Iterativas com Laços
Construção de Aplicativos Computacionais METEOROLOGIA
Estruturas de Repetição
Métodos, Parâmetros, Argumentos e Contratos
PORTUGUÊS ESTRUTURADO E PSEUDOCÓDIGO
Capitulo 5 Decisões.
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 7 – Métodos avançados Capitulo 7 Métodos avançados.
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capítulo 2 Tipos de Dados.
Engenharia Informática Programação I & Estruturas de Dados e Algoritmos 2001/ Capitulo 3 – Introdução às classes Capitulo 3 Introdução às classes.
Capítulo 1 Introdução.
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE II Prof. Thiago Pereira Rique
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique
Introdução a Algoritmos Seqüenciais
Estruturas de repetição
Automato de Pilha.
Recursividade Conceitos e Aplicações.
Pascal comandos iterativos: FOR WHILE REPEAT Matrizes (tabelas)
Exercícios de revisão.
Introdução a Programação
Capítulo 3 - Russell e Norvig
Aula 7 Instrução de iteração while. 2003/2004 Introdução à Programação 2 passo [G][G] [¬G][¬G] Início da actividade Fim da actividade Actividade Transição.
Metodologia de Dijkstra para desenvolvimento de ciclos
Introdução a Computação e Cálculo Numérico
Unidade I: “Dê um mergulho rápido”
Sistemas de Produção Fatos: x, y Regras: x & y => p
Aula prática 4 Laços Monitoria de Introdução à Programação
Introdução à Programação Estruturas de Repetição
1 Funções de intervalo. Primeiro contacto com o C e o C++ Uma função de intervalo é uma aplicação f: [a,b] [a,b] definida de forma recursiva x n+1 =f(x.
Funções de intervalo. Primeiro contacto com o C e o C++
1. 2 História do C e C++ O C (e actualmente também o C++) é a linguagem que está na base do sistema operativo Unix (e todos os seus clones). Foi inventada.
IAED Tagus, 2009/2010 Introdução à Programação em C (I)
Linguagem de Programação I Parte III
Noções de estilo. Algumas convenções de escrita.
Material Didático Proposto
Estruturas de Repetição
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL Estruturas de Repetição Estruturas de Repetição - Repita até Repita c1 c2 cn.
PROGRAMAÇÃO I UNIDADE 4.
Entendendo as definições de classe
Seminário 1: Revisão de C
Matlab Mini Curso PET 2012.
Introdução à Programação de Computadores
Aula 4 – Java – Prof. Marcelo Heitor
Linguagem de Programação JAVA
Módulo I Capítulo 4: Operador de Repetição
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
BC-0505 Processamento da Informação
Programação I Aula 5 (Instruções de Repetição) Prof. Gilberto Irajá Müller Última atualização 24/3/2009.
Introdução à Linguagem C
Algoritmos Comandos de repetição.
Estruturas de Controlo Repetitivas
FACULDADE DE CIÊNCIAS SOCIAIS E TECNOLÓGICAS Tecnologia em Redes de Computadores Algoritmos e linguagens de programação 1 (aula 06) Prof. Alessandro Bernardo.
Ciclos for, while e do...while
Aula Prática 2 Monitoria IP/CC (~if669).
Aula Prática 5 Monitoria IP/CC (~if669). Roteiro 1. 1.Recursão 2. 2.Escopo de Variáveis 3. 3.Arrays 4. 4.Strings.
Introdução a Programação
Teste Estrutural. 2 Teste estrutural Teste baseado na estrutura do código Mais precisamente, –Critério de adequação baseia-se no código!
Profa. Maria Augusta Constante Puget
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
Estruturas de Controle [1] JAVA Faculdade Mauricio de Nassau Linguagem de Programação II Curso de Engenharia de Telecomunicações.
Estruturas de repetição ou ciclos
Prof. Tertuliano Estrutura Condicional em C++
MÉTODOS Dilvan Moreira (baseado no livro Big Java)
CONSTRUINDO CLASSES Dilvan Moreira (baseado no livro Big Java)
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Teste de Software 09: Teste Estrutural Marcelo d’Amorim
Módulo I Capítulo 4: Operador de Repetição
Transcrição da apresentação:

Capitulo 6 Iterações

Ciclo while while (condição) instruções; Repete o ciclo enquanto a condição é verdadeira while (balance < 2 * initial) { year++; balance = balance + balance * rate / 100; }

Programa DoubleInv.java public class DoubleInv { public double getYearsDoubleInv(double rate, double initialBalance) int year = 0; double balance = initialBalance; double interest = 0.0;

// keep accumulating interest until balance // doubles while (balance < 2 * initialBalance) { year++; interest = balance * rate / 100; balance = balance + interest; } return year; } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

Floxograma de um ciclo while

Erro comum : Ciclo Infinito while (year < 20) { balance = balance + balance * rate / 100; } while (year > 0) { year++; . . . } O ciclo nunca termina

Ciclo for for (init; condition; update) statement Exemplo: for (i = 1; i <= 10; i++) ... for (y = 20; y > 0; y--) ... Equivalente a: init; while (condition) { statement; update; }

Programa Invest.java public class Invest { public double getBalance(double rate) final double INITIAL_BALANCE = 10000; final int NYEARS = 20; double balance = INITIAL_BALANCE; double interest = 0.0;

for (int year = 1; year <= NYEARS; year++) { interest = balance * rate / 100; balance = balance + interest; System.out.println("year: " + year + " balance: " + balance); } return balance; } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

Floxograma de um ciclo for

Ciclo do do instruções; while (condição); Executa as instruções pelo menos uma vez Examplo: do { rate ++; } while (rate <= 0);

Floxograma de um ciclo do

Diferenças while : repete 0 ou mais vezes do ... while : repete 1 ou mais vezes for : repete n vezes

Erros comuns (1) O year deve iniciar a 0 ou 1 ? year = 0; while (balance < 2 * initial) { year++; balance = balance + balance * rate / 100; } System.out.println("Doubled after " + year + " years."); O year deve iniciar a 0 ou 1 ? O teste deve ser < ou <= ?

Erros comuns (2) Um ponto e virgula que não deve existir sum = 0; for (i = 1; i <= 10; i++); { sum = sum + i; } System.out.println(sum); Um ponto e virgula que falta for (i = 1; i <= 10; sum = sum + i++) System.out.println(sum);

Ciclos Aninhados (1) Tabela de potências x y 1 1 1 1 1 2 4 8 16 32 3 9 27 81 243 . . . Exemplo for (int x = 0; x <= ROWS; x++) { print row // usa outro ciclo }

Ciclos Aninhados (2) Ciclo detro de um ciclo: for (int x = 0; x <= ROWS; x++) { for (int y = 0; y <= COLS; y++) { compute value print value } System.out.println(); } Número de ciclos: ROWS * COLS

Programa Table.java public class Table { public void print() final int COLUMN_WIDTH = 10; int p = 0; for (int x = 1; x <= 10; x++) // print table row for (int y = 1; y <= 8; y++) p = (int)Math.pow(x, y);

// convert value to string String pstr = "" + p; // pad with spaces while (pstr.length() < COLUMN_WIDTH) { pstr = " " + pstr; } System.out.print(pstr); System.out.println(); } // End Class Nota: As regras de estilo no que toca aos comentários não foram seguidas apenas por falta de espaço.

“Loop and a Half” boolean done = false; while (!done) { if (line == null) { done = true; } else { process data } }

Sentinela (1) Marcam o fim de um ciclo Exemplo: 3.5 2.6 1.2 0 Ou melhor, usar uma sentinela não numérica como Q

Sentinela (2) boolean done = false; while (!done) { if (line.equalsIgnoreCase(“Q”)) { done = true; } else { process data } }

Separação de Palavras Separa a String em palavras (as palavras são delimitadas por espaços em branco) StringTokenizer tokenizer = new StringTokenizer(); while (tokenizer.hasMoreTokens()) { String token = tokenizer.nextToken(); process token }

Tipo de Dados : char char: recebe um único caracter Exemplos: 'A', '\u00E9' 'A‘ não é o mesmo que "A" String s = . . .; for (int i = 0; i < s.length(); i++) { char ch = s.charAt(i); process ch; }

Programa Reverse.java public class Reverse { public String reverse(String s) String r = ""; char ch; for (int i = 0; i < s.length(); i++) ch = s.charAt(i); r = ch + r; // add ch in front } return r; } // End Class

Números Aleatórios e Simulações Gerar números aleatórios: Random generator = new Random(); int n = generator.nextInt(CHOICES); double x = generator.nextDouble(); Exemplo (gerar números entre 1 e 6) int d = 1 + generator.nextInt(6);

Programa Dice.java import java.util.Random; public class Dice { public Dice() generator_ = new Random(); } public int cast() return 1 + generator_.nextInt(6); private Random generator_; } // End Class