A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

BC-0505 Processamento da Informação

Apresentações semelhantes


Apresentação em tema: "BC-0505 Processamento da Informação"— Transcrição da apresentação:

1 BC-0505 Processamento da Informação
BC & T Universidade Federal do ABC

2 Estruturas de Repetição
Estruturas de repetição estão divididas em três tipos: Estrutura enquanto (while)‏ Estrutura repita (do while) Estrutura para (for)‏ Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

3 Estruturas de Repetição
Quando uma seqüência de comandos deve ser executada repetidas vezes usamos uma estrutura de repetição. A estrutura de repetição, assim como a de decisão, envolve sempre a avaliação de uma condição. Também conhecidas como laços de repetição ou loops. bloco Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

4 Ex.1 – Quantidade de Alunos Aprovados
Um arquivo chamado resultado.txt armazena o resultado final da disciplina de modo que cada linha tem duas colunas, a primeira tem o número de matrícula de todos os alunos e a segunda coluna a situação final do aluno: aprovado ou reprovado. Queremos determinar a quantidade de alunos aprovados. aprovado reprovado aprovado aprovado reprovado aprovado aprovado aprovado 4

5 Ex.1 – Quantidade de Alunos Aprovados
Um arquivo chamado resultado.txt armazena o resultado final da disciplina de modo que cada linha tem duas colunas, a primeira tem o número de matrícula de todos os alunos e a segunda coluna a situação final do aluno: aprovado ou reprovado. Queremos determinar a quantidade de alunos aprovados. Um solução: 1. Se não é fim do arquivo, leia uma linha do arquivo; 2. se a linha corresponde a um aluno aprovado então incremente o contador de alunos aprovados senão, volte para o passo 1. 5

6 Estrutura de Repetição ENQUANTO
A estrutura de repetição enquanto permite especificar instruções que devem ser repetida enquanto determinada condição for verdadeira Exemplo: enquanto não terminar o arquivo, leia linha e incremente contador de aprovados se for o caso. O corpo da estrutura enquanto pode ser uma instrução ou um bloco de execução bloco Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

7 Estrutura de Repetição ENQUANTO
Quando a condição da estrutura enquanto se tornar falsa, a ação (ou bloco de ações) da estrutura será pulada. O programa continuará com a ação imediatamente após a estrutura enquanto. IMPORTANTE: você deve sempre prever o comando, ou ação, que tornará falsa a condição do comando enquanto, caso contrário, seu programa entrará em loop infinito. bloco Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

8 Estrutura de Repetição ENQUANTO
bloco condição ? início V F Pseudolinguagem Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. enquanto <condição> faça <bloco_de_execução>

9 Ex. 2 – Números de Fibonacci
Leonardo de Pisa (ou Fibonacci, ) descreveu o crescimento de uma população de coelhos por uma sequência de números que agora é conhecida por sequência de Fibonacci: 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... Essa sequência é definida por F(1) = F(2) = 1 e se n > 2 então F(n) = F(n-1) + F(n-2). Dado um inteiro n>0, obter F(n), o n-ésimo número de Fibonacci. 9

10 Ex. 2 – Números de Fibonacci – Algoritmo
Esboço de uma solução: 1. Dado n; 2. se n=1 ou n=2, então responda “F(n)=1”; 3. senão, tome i igual a 2 e faça 3.2. i ← i+1; 3.3. F(i) ← F(i-1) + F(i-2); 3.4. se i<n então volte para 3.2; 4. responda “F(n)=” F(i). Obs: A linha 3.1 é executada apenas uma vez e a linha 3.3 aumenta o valor da variável i até que i=n e, nesse caso, o laço termina pois a condição na linha 3.4 torna-se falsa. Exercício: Resolver usando enquanto. 10

11 Ex. 2 – Números de Fibonacci – Pseudocódigo
Algoritmo Fibonacci inicio inteiro n, a, b, prox, cont; leia (n); a ← b ← 1; se ( n=1 n=2 ) entao escreva (b); fimentao senao 11

12 Ex. 2 – Números de Fibonacci – Pseudocódigo
inicio cont ← 2; enquanto ( cont <> n ) faça prox ← a + b; a ← b; b ← prox; cont ← cont + 1; fimenquanto fimsenao escreva(b); fimalgoritmo. 12

13 Ex. 3 – ENQUANTO aninhado Sabe-se que um número inteiro positivo da forma n³ é a soma de n números ímpares conscutivos. Por exemplo, 1^3 = 1 2^3 = 3+5 3^3 = 4^3 = , ... n^3 = k + (k+2) + (k+4) (k+2(n -1)), para algum k ímpar. Dado um inteiro n>0, determinar k tal que n³ pode ser escrito como soma de n ímpares consecutivos como descrito acima. 13

14 Ex. 3 – ENQUANTO aninhado Esboço de uma solução: 1. leia(n)‏ 2. k=1;
3. soma = k + (k+2) + (k+4) (k + 2(n -1)), para algum k; 4. se (soma = n³) então achou, responda k; 5. senão incrementa k de 2 e volta pra linha 3. Problema: Como avaliar k + (k+2) + (k+4) (k + 2(n -1))? 14

15 Ex. 3 – ENQUANTO aninhado Como avaliar k + (k+2) (k + 2(n -1))? Outro laço: 1. dado k, dado n e inicializadas com 0 as variáveis i e soma; 2. enquanto i <= 2(n-1) faça 2.1. soma ← soma + (k + i); 2.2. i← i+2; 15

16 Ex. 3 – Pseudocódigo Algoritmo Cubo como soma de ímpares consecutivos
início inteiro: n, soma, k, i; lógico: achou; leia ( n ); // n>=1 achou ← falso; k ← 1; enquanto ( ~achou ) faça

17 Ex. 3 – Pseudocódigo inicio i ← soma ← 0; enquanto ( i < 2*n ) faça
soma ← soma + (k + i); i ← i + 2; fimenquanto se ( soma = n^3 ) entao achou ← verdadeiro; fimentao senao k ← k + 2; fimsenao

18 Ex. 3 – Pseudocódigo fimenquanto escreva(k); fimalgoritmo

19 Estrutura de Repetição ENQUANTO
Características de funcionamento: Não é necessário o conhecimento prévio do número de repetições Executa a repetição enquanto a condição for verdadeira, testando-a desde seu início Os comandos do loop podem não ser executados instruções Validação inicial Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. enquanto <condição> faça <bloco> fimenquanto

20 Estrutura de Repetição ENQUANTO Controlada por Contador
O que indica quantas vezes uma repetição será realizada? A estrutura enquanto não oferece este recurso. Solução: uso de um contador, ou variável contadora, que tem um certo valor inicial (atribuído fora do laço) e é incrementada a cada repetição. Exemplo de contador: Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. inteiro cont; // declaração do contador cont  0; // inicialização do contador cont  cont + 1; // incrementa contador em uma unidade

21 Estrutura de Repetição ENQUANTO Controlada por Contador
O que indica quantas vezes uma repetição será realizada? A estrutura enquanto não oferece este recurso. Solução: uso de um contador, ou variável contadora, que tem um certo valor inicial (atribuído fora do laço) e é incrementada a cada repetição. Exemplo de contador: Associado ao CONTADOR, devemos ter: 1 – Atribuição de Valor Inicial 2 – Definição de Condição de Continuidade ou Parada do Laço de Repetição 3 – Definição de Passo (Incremento/Aumento ou Decremento/Diminuição) do Valor do Contador Os três itens devem ser construídos de forma a permitir que o Laço de Repetição realize o que se pede. Isto é responsabilidade do programador!!! Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. inteiro cont; // declaração do contador cont  0; // inicialização do contador cont  cont + 1; // incrementa contador em uma unidade

22 Exemplos de Contador Usamos i no exemplo 3: Usamos cont no exemplo 2:
enquanto ( i < 2*n ) faça inicio soma ← soma + (k + i); i ← i + 2; fimenquanto Usamos cont no exemplo 2: cont ← 2; enquanto ( cont <> n ) faça prox ← a + b; a ← b; b ← prox; cont ← cont + 1; Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

23 Estrutura de Repetição ENQUANTO Controlada por Sentinela
Valor de sentinela (finalizador, de sinal ou de flag) – valor especial que indica o final de entrada de dados. Usado pelo usuário para indicar final do laço de repetição. Exemplo: se a entrada de um problema é um sequência de inteiros positivos podemos usar -1 como sinal de fim da entrada. Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

24 Exercício Resolvido Uso do sentinela para indicar o fim da entrada de dados: Escreva um algoritmo que determine se números inteiros e positivos são pares, ou ímpares. Utilize a estrutura enquanto para permitir a entrada da seqüência de números. O último número, que não será considerado na análise, deve assumir o valor –1 (sentinela). Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

25 Exercício Resolvido Pseudocódigo
Algoritmo ParImpar início inteiro: valor, resto; string: mensagem; leia ( valor ); Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

26 Exercício Resolvido Pseudocódigo
enquanto ( valor  –1 ) faça resto  valor mod 2; se ( resto=0 )‏ então inicio mensagem  “Número par”; fimentao senão mensagem  “Número ímpar”; fimsenao escreva( mensagem); leia ( valor ); fimenquanto fimalgoritmo Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

27 Estrutura de Repetição ENQUANTO Controlada por Sentinela
Outro exemplo: em computação EOF é uma condição que indica fim-de-arquivo (End-Of-File). Concretamente, é um flag cujo valor de fato depende do sistema operacional e que não corresponde a um carater válido, usualmente é -1. Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

28 Ex. 1 – Uma Solução em Pseudocódigo
Um arquivo chamado resultado.txt armazena o resultado final da disciplina de modo que cada linha tem duas colunas, a primeira tem o número de matrícula de todos os alunos e a segunda coluna a situação final do aluno: aprovado ou reprovado. Queremos determinar a quantidade de alunos aprovados. aprovado reprovado aprovado aprovado reprovado aprovado aprovado aprovado 28

29 Ex. 1 – Uma Solução em Pseudocódigo
String: linha; inteiro: aprovados; aprovados ← 0; enquanto (~EOF(resultado.txt)) faça inicio leia (linha); se (linha termina em “aprovado”)‏ aprovados ← aprovados + 1; fimse fimenquanto escreva(aprovados); fimalgoritmo Obs.: EOF = “End Of File” = “Fim de Arquivo” Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

30 Estrutura de Repetição ENQUANTO em Java
// Não é padrão while <condição> <comando>; Pseudolinguagem enquanto <condição> faça <bloco> // Padrão com {} while <condição> { <comandos> } Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

31 Observação: Novos Operadores em Java
Algumas linguagens (Ex.: Java, C#, C++, C) contém operadores especiais para simplificar a atribuição de valores às variáveis As Estruturas de Repetição demandam o uso frequente de operadores associados às variáveis de controle Portanto, recomenda-se usar os seguintes operadores em Java (seja i uma variával): i++; ou ++i;: Se colocado sozinho em uma linha, equivale ao comando: i = i + 1; No caso de contador: adiciona 1 ao valor do contador i--; ou --i;: Se colocado sozinho em uma linha, equivale ao comando: i = i - 1; No caso de contador: subtrai 1 do valor do contador Para o caso de existir mais de um comando na mesma linha em que estes operadores, a colocação de “++” (ou “--”) antes ou depois da variável define a ordem em que as operações serão executadas. Em laços de repetição, deve-se usar “i++” ou “i—”.

32 Observação: Novos Operadores em Java
Existem ainda operadores em Java para outras operações aritméticas (sejam i e b duas variáveis): i+=b; Equivale ao comando: i = i + b; i-=b; Equivale ao comando: i = i - b; i*=b; Equivale ao comando: i = i * b; i/=b; Equivale ao comando: i = i / b; Estes operadores são menos utilizados, mas i++; e i--; são muito comuns na programação em Java!

33 Ex. 1 – Solução em Java import java.io.*; import java.util.*;
public class resultado { public static void main(String[] args) throws FileNotFoundException { String linha, arquivo="resultado.txt"; Scanner sc = new Scanner(new File(arquivo)); int aprovados = 0, total = 0; while ( sc.hasNext() ) { total = total + 1; //computa o numero de alunos linha = sc.nextLine() ; if ( linha.endsWith("aprovado") ){ aprovados = aprovados + 1; } Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

34 Ex. 1 – Solução em Java System.out.println("número de alunos matriculados: " + total); System.out.println("número de alunos aprovados: " + aprovados); System.out.println("número de alunos reprovados: " + (total- aprovados)); }//fim do main }//fim da classe Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

35 Ex. 2 – Solução em Java import java.util.*; public class fibonacci {
public static void main (String[] args) { Scanner s = new Scanner(System.in); int n=0, a=1, b=1, cont=2, prox=0; System.out.print("Entre n: "); n = s.nextInt(); if ( n==1 || n==2 ) System.out.println( "F("+n+")="+b ); else { while ( cont != n ) { prox = a + b; a = b; b = prox; cont = cont + 1; } Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

36 Ex. 2 – Solução em Java System.out.println("F("+n+")="+b);
}//fim do main }// fim da classe Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

37 Ex. 3 – Solução em Java import java.util.*; public class cuboXsoma {
public static void main (String[] args) { Scanner s = new Scanner(System.in); int n, soma, k, i; boolean achou=false; // achou o valor de k? System.out.print("Entre n: "); n = s.nextInt(); int cubo = n*n*n; //soma == cubo economiza operações comparado com //soma == n*n*n no condicional abaixo Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

38 Ex. 3 – Solução em Java k=1; //primero ímpar
while ( !achou ) {// enquanto não achou i=0; soma = 0; while ( i < 2*n ) { // avalia k + (k+2) (k + 2(n-1)) soma = soma + ( k + i ); i = i+2; } if (soma == cubo) { achou = true;} else {k = k+2;} // tome o próximo ímpar System.out.println("k = " + k); }//fim do main }fim da classe Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

39 Exercício Resolvido Jogo de Dados
Implemente um jogo de dados que: O jogador inicie o jogo com R$ 100,00 A cada jogada, o jogador jogue dois dados Se a soma dos números dos dados for 7 ou 11, o jogador recebe o dobro do que tenha apostado no momento Se a soma dos números não for 7 ou 11, o jogador perde R$ 20,00 O jogo acaba quando o saldo do jogador for menor ou igual a zero. Ou então quando o jogador decidir parar Ao final, escreva o total de dinheiro que o jogador tem, e quantas vezes ele ganhou e quantas vezes perdeu no jogo Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

40 Exercício Resolvido Jogo de Dados – Pseudocódigo
Algoritmo JogoDeDados início real: dinheiro, aposta; inteiro: dado1, dado2, soma, numVitoria, numDerrota; string: continua; dinheiro  100,00; numVitoria = 0; numDerrota = 0; escreva( “Deseja jogar?” ); leia ( continua ); Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

41 Exercício Resolvido Jogo de Dados – Pseudocódigo
enquanto ( (continua = “S”)  (dinheiro > 0) )‏ faça leia ( aposta ); dado1  randomico(1..6); dado2  randomico(1..6); soma  dado1 + dado2; se ( (soma = 7)  (soma = 11) )‏ então numVitoria  numVitoria + 1; dinheiro  dinheiro + 2*aposta; senão numDerrota  numDerrota + 1; dinheiro  dinheiro - 20; escreva( “Deseja jogar?” ); leia ( continua ); fimenquanto Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

42 Exercício Resolvido Jogo de Dados – Pseudocódigo
escreva( numVitoria ); escreva( numDerrota ); escreva( dinheiro ); fimalgoritmo Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

43 Exercício Resolvido Jogo de Dados – Solução em Java
import java.util.*; public class JogoDados { public static void main(String[] args) { double dinheiro, aposta; int dado1, dado2, soma, numVitoria, numDerrota; String continua = null; dinheiro = ; numVitoria = 0; numDerrota = 0; Scanner s = new Scanner(System.in); Scanner n = new Scanner(System.in); System.out.print("Deseja jogar? (s/n)"); continua = s.nextLine(); Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

44 Exercício Resolvido Jogo de Dados – Solução em Java
while ( continua.equals("s") && dinheiro > 0 ) { System.out.print("Digite sua aposta: "); aposta = n.nextDouble(); Random num = new Random(); dado1 = num.nextInt( 5 ) + 1; dado2 = num.nextInt( 5 ) + 1; soma = dado1 + dado2; System.out.print(" Dado 1 = " + dado1); System.out.println(" Dado 2 = " + dado2); Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

45 Exercício Resolvido Jogo de Dados – Solução em Java
if ( soma == 7 || soma == 11 ){ numVitoria = numVitoria + 1; dinheiro = dinheiro + 2*aposta; System.out.println("Vitorias = " + numVitoria); System.out.println(" Dinheiro = " + dinheiro); }// fim if else{ numDerrota = numDerrota + 1; dinheiro = dinheiro - 20; System.out.println("Derrotas = " + numDerrota); System.out.println("Dinheiro="+dinheiro); }//fim else System.out.print("Deseja jogar? (s/n)"); continua = s.nextLine(); } //fim while } // fim método } // fim da classe Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

46 Estruturas de Repetição
Estrutura enquanto (while)‏ Estrutura repita (do while) Estrutura para (for)‏ Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. 46

47 Estrutura de Repetição REPITA
Para realizar a repetição com teste no final deve ser utilizado a estrutura repita, que permite uma ação (ou bloco) ser executada enquanto uma determina condição seja verdadeira. Exemplo: soma nota, enquanto número de notas for menor que 10. O corpo da estrutura repita pode ser uma instrução única, ou um bloco de comandos Repita bloco Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. V F

48 Estrutura de Repetição REPITA
Pseudocódigo repita <bloco> enquanto <condição>; Bloco de Execução enquanto condição ? Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. V F

49 Ex. 1 – Números de Fibonacci
Reescrevendo a solução para números de Fibonacci 1. Dado n; 2. se n=1 ou n=2, então responda “F(n)=1”; 3. senão, tome i igual a 2 e faça 3.2. i ← i+1; 3.3. F(i) ← F(i-1) + F(i-2); 3.4. se i<n então volte para 3.2; 4. responda “F(n)=” F(i). Obs: Se n>2 então as linhas 3.2, 3.3 e 3.4 serão executadas pelo menos uma vez. 49

50 Ex. 1 – Números de Fibonacci – Pseudocódigo
Algoritmo Fibonacci_v2 inicio inteiro n, a, b, prox, cont; leia (n); a ← b ← 1; se ( n=1 n=2 ) entao escreva (b); fimentao senao 50

51 Ex. 1 – Números de Fibonacci – Pseudocódigo
inicio cont ← 2; repita prox ← a + b; a ← b; b ← prox; cont ← cont + 1; fim enquanto (i<>n); fimsenao escreva(b); fimalgoritmo. 51

52 Estrutura de Repetição REPITA em Java
// Não é padrão do comando; while ( condição ) ; Pseudocódigo repita <bloco> enquanto<condição>; Java // Padrão: com { } do { comandos; } while ( condição ) ; Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

53 Programação Java – do..while
Tem a mesma função que o laço while, só que o teste só é feito no final Pelo menos uma vez os comandos serão executados Note que, no do...while, o uso do “;” após a condição é obrigatório

54 Programação Java – do..while Ex. 3 – Soma dos Ímpares
A mesma observação vale no exemplo 3. Queremos avaliar k + (k+2) (k + 2(n -1)). A solução foi: 1. dados k e n; 2. i ← 0; 3. soma ← 0; 4. enquanto i <= 2(n-1) 4.1 soma ← soma + (k + i); 4.2 i← i+2; Como n >= 1 o primeiro teste de “i<=2(n-1)” sempre valerá. Exercício: Reescreva o pseudocódigo do exemplo 3 usando repita-enquanto no laço mais interno. 54

55 Exercício Resolvido Algoritmo Cubo como soma de ímpares consecutivos
início inteiro: n, soma, k, i; lógico: achou; leia ( n ); // n>=1 achou ← falso; k ← 1; enquanto ( ~achou ) faça

56 Exercício Resolvido inicio i ← soma ← 0; repita soma ← soma + (k + i);
i ← i + 2; fim enquanto (i < 2*n); se ( soma = n^3 ) entao achou ← verdadeiro; fimentao senao k ← k + 2; fimsenao

57 Exercício Resolvido fimenquanto escreva(k); fimalgoritmo

58 Estruturas de Repetição
Estrutura enquanto (while)‏ Estrutura repita (do while)‏ Estrutura para (for) Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. 58

59 Estrutura de Repetição PARA
Executa o bloco de instruções um número predeterminado de vezes; Pseudocódigo para V de vi até vf passo p faça <bloco_de_execução> V é a variável de controle vi é o valor inicial de V vf é o valor final de V (até onde ela vai chegar) p é o valor de incremento Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. 59

60 Estrutura de Repetição PARA
limite ? Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”. não sim 60

61 Ex. 3 – Soma dos Ímpares Pseudocódigo
No exemplo 3, queremos avaliar k + (k+2) (k + 2(n -1)). Usando a instrução para, podemos reescrever o pseudo código como soma ← 0; para i de 0 até 2*(n-1) passo 2 faça inicio soma ← soma + (k+i); fimpara Exercício: Escreva um algoritmo em pseudocódigo que recebe dois inteiros positivos, digamos k e n, e devole a soma dos n primeiros múltiplos de 5 maiores ou iguais a k. 61

62 Estrutura de Repetição PARA em Java
// Não é padrão for (V = vi; V <= vf; V = V + passo) comando; Pseudocódigo para V de vi até vf passo p faça <bloco_de_execução> Java // Padrão: com { } for (V = vi; V <= vf; V = V + passo) comando; Visto que uma das formas mais complexas do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”. Dos nossos argumentos. Isto dá a entender que nossa razão pode funcionar desordenadamente. Por isto, a lógica estuda e ensina a colocar o pensamente “em ordem”.

63 Exercício Proposto Usando as três opções de estruturas de repetição, resolva os exercícios a seguir sem alterar o código entre { } abaixo: { System.out.print (“i=” + i + “\t”); } Imprimir os números: Entre 1 e 10, inclusive (vale para todos os itens a seguir), em ordem crescente Entre 0 e 10, em ordem crescente Entre 0 e 20, em ordem crescente Pares entre 0 e 20, em ordem crescente Ímpares entre 0 e 20, em ordem crescente Entre 0 e 20, em ordem crescente e variando de 3 em 3 números Entre 0 e 20, em ordem crescente e variando de 5 em 5 números Entre 10 e 1, em ordem decrescente Entre 20 e 0, em ordem decrescente Pares entre 20 e 0, em ordem decrescente Entre 20 e 0, em ordem decrescente e variando de 4 em 4 números

64 Leitura Sugerida: FORBELLONE, A. L. V.; EBERSPACHER, H. F., Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados, Prentice Hall, 2005 Deitel, H. M. e Deitel, P. J.; JAVA – Como Programar; 6ª edição, Editora Pearson Prentice-Hall, 2005 64


Carregar ppt "BC-0505 Processamento da Informação"

Apresentações semelhantes


Anúncios Google