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

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

Algoritmos e Estruturas de Dados Prof. Me. Claudio Benossi Estruturas de Controle.

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados Prof. Me. Claudio Benossi Estruturas de Controle."— Transcrição da apresentação:

1 Algoritmos e Estruturas de Dados Prof. Me. Claudio Benossi Estruturas de Controle

2 Sumário vEstrutura Condicional vEstrutura de Repetição

3 Sumário vEstrutura Condicional vEstrutura de Repetição

4 Estrutura Condicional início separar ingredientes fim misturar ingredientes colocar massa no forno tirar bolo do forno vExecução seqüencial: Cada comando é executado seqüencialmente, na ordem em que são escritos.

5 início olhar o céu fim levar guarda- chuva usar roupa leve chuva? V F Estrutura Condicional vExecução seletiva ou condicional: Permite a escolha de um grupo de ações (bloco), quando certas condições são (ou não são) satisfeitas.

6 Estrutura Condicional vSimples vComposta vMúltipla escolha

7 Estrutura Condicional Simples início olhar o céu fim acender luz escuro? V F

8 se então fim se se então fim se Estrutura Condicional Simples vUtilizada quando precisamos testar uma certa condição antes de executar uma ação.

9 vExemplo: // declaração de variáveis: real N1, N2, NF, media // início do programa: ler(N1,N2,NF) media ← (N1 + N2 + NF) / 3.0 se (media ≥ 5.0) então escrever(“Aluno aprovado”) fim se fim programa // declaração de variáveis: real N1, N2, NF, media // início do programa: ler(N1,N2,NF) media ← (N1 + N2 + NF) / 3.0 se (media ≥ 5.0) então escrever(“Aluno aprovado”) fim se fim programa Estrutura Condicional Simples

10 Estrutura Condicional Composta início olhar a vovó fim Chamar caçador nariz grande? V Entregar cesta de comida F

11 se então senão fim se se então senão fim se Estrutura Condicional Composta vUtilizada em situações em que duas alternativas dependem da mesma condição, uma da condição verdadeira (então) e a outra da condição falsa (senão).

12 // declaração de variáveis: real N1, N2, NF, media // início do programa: ler(N1,N2,NF) media ← (N1 + N2 + NF) / 3.0 se (media ≥ 5.0) então escrever("Aluno aprovado") senão escrever("Aluno reprovado") fim se fim programa // declaração de variáveis: real N1, N2, NF, media // início do programa: ler(N1,N2,NF) media ← (N1 + N2 + NF) / 3.0 se (media ≥ 5.0) então escrever("Aluno aprovado") senão escrever("Aluno reprovado") fim se fim programa Estrutura Condicional Composta vExemplo:

13 Estrutura Condicional de Múltipla Escolha início ler signo fim áries? V Ganhará na loteria F touro? gêmeos? Não saia de casa hoje! Sorte no amor F F V V

14 se então senão se então senão se então.... senão fim se se então senão se então senão se então.... senão fim se switch caso x1: caso x2: caso x3:... default fim switch switch caso x1: caso x2: caso x3:... default fim switch Estrutura Condicional de Múltipla Escolha vUtilizada quando um conjunto de valores discretos e ações diferentes são associadas a cada um desses valores.

15 vO comando switch-case testa apenas igualdade vA corrente if-esle-if pode avaliar uma expressão de relação ou lógica Estrutura Condicional de Múltipla Escolha

16 switch (mês) caso 1: dias = 31 caso 2: dias = 28 caso 3: dias = 31 caso 4: dias = 30 caso 5: dias = 31 caso 6: dias = default: dias = 0 fim switch switch (mês) caso 1: dias = 31 caso 2: dias = 28 caso 3: dias = 31 caso 4: dias = 30 caso 5: dias = 31 caso 6: dias = default: dias = 0 fim switch vExemplo: Dado a variável inteira mês, determinar o número de dias ao mês correspondente. Estrutura Condicional de Múltipla Escolha

17 Sumário vEstrutura Condicional vEstrutura de Repetição

18 Estruturas de Repetição vPermitem que uma seqüência de comandos seja executada repetidamente, até que determinada condição de interrupção seja satisfeita. vSão também conhecidas como laços ou malhas. vCada repetição do conjunto de comandos é chamada iteração.

19 Estruturas de Repetição vA repetição de comandos em um laço pode seguir um dos seguintes critérios: wPor Condição (Verificação no início) wPor Condição (Verificação no fim) wPor Contagem

20 enquanto ( ) fazer fim fazer enquanto ( ) fazer fim fazer Estrutura de Repetição por Condição :: Verificação no início vPermite que comandos sejam repetidos enquanto uma condição não é atendida.

21 ... soma = 0 i = 1 enquanto (i ≤ N) fazer soma = soma + i i = i + 1 fim fazer soma = 0 i = 1 enquanto (i ≤ N) fazer soma = soma + i i = i + 1 fim fazer... Estrutura de Repetição por Condição :: Verificação no início vExemplo: wDado o valor de N, calcular a soma dos números inteiros de 1 a N.

22 fazer enquanto fim fazer fazer enquanto fim fazer Estrutura de Repetição por Condição :: Verificação no fim vPermite que comandos sejam repetidos até que uma condição seja atendida.

23 ... s = 0 i = 1 fazer s = s + i i = i + 1 enquanto (i ≤ N) fim fazer... s = 0 i = 1 fazer s = s + i i = i + 1 enquanto (i ≤ N) fim fazer... Estrutura de Repetição por Condição :: Verificação no fim vExemplo: wDado o valor de N, calcular a soma dos números inteiros de 1 a N.

24  Verificação no fim  O conjunto de instruções será executado pelo menos uma vez  Condição é verificada depois do conjunto de instruções  Verificação no fim  O conjunto de instruções será executado pelo menos uma vez  Condição é verificada depois do conjunto de instruções  Verificação no início  Condição é verificada antes do conjunto de instruções  Verificação no início  Condição é verificada antes do conjunto de instruções Estrutura de Repetição por Condição :: Verificação no fim × Verificação no início

25 para (início; fim; incremento) fim para para (início; fim; incremento) fim para Estrutura de Repetição por Contagem vPermite que comandos sejam repetidos um determinado número de vezes.

26 Estrutura de Repetição por Contagem  início : define qual a variável de controle da malha (contador) e seu valor inicial.  fim : define o valor final da variável de controle.  incremento : define como a variável de controle se altera a cada repetição.

27 ... soma = 0 para (i=1; N; incremento=1) soma = soma + i fim para... soma = 0 para (i=1; N; incremento=1) soma = soma + i fim para... Estrutura de Repetição por Contagem vExemplo: wDado o valor de N, calcular a soma dos números inteiros de 1 a N.

28 Estruturas de Repetição :: Considerações finais vNúmero de repetições pode ser indeterminado, mas não deve ser infinito (loop). vAs formas de laços de repetição são equivalentes entre si. vA escolha entre uma e outra é arbitrária.

29 s = 0 i = 1 enquanto (i ≤ N) fazer s = s + i i = i + 1 fim fazer s = 0 i = 1 enquanto (i ≤ N) fazer s = s + i i = i + 1 fim fazer s = 0 para (i=1; N; incremento=1) s = s + i fim para s = 0 para (i=1; N; incremento=1) s = s + i fim para atribuição-1 enquanto (condição) fazer instruções atribuição-2 fim fazer atribuição-1 enquanto (condição) fazer instruções atribuição-2 fim fazer para (atribuição-1; condição; atribuição-2) instruções fim para para (atribuição-1; condição; atribuição-2) instruções fim para Repetição por condição Repetição por contagem Estruturas de Repetição :: Considerações finais

30 Exemplo 1 vO IMC (Índice de Massa Corporal) é um critério da Organização Mundial da saúde para dar uma indicação sobre a condição de peso de uma pessoa adulta. vA fórmula é vElabore um algoritmo que leia o peso e a altura de um adulto e mostre sua condição. IMC em adultos Condição abaixo de 18,5 abaixo do peso entre 18,5 e 25 peso normal entre 25 e 30 acima do peso acima de 30 obeso

31 Exemplo 1 – Esboço vVariáveis: wEntrada: peso, altura  Tipo: real (float)  Intervalo: maior que zero wSaída: IMC  Tipo: real vComandos: wLer variáveis de entrada wChecar validade das variáveis de entrada wCalcular IMC wDeterminar condição

32 Exemplo 1 – Algoritmo início float peso, altura, imc ler(peso, altura) se ((peso ≤ 0) OU (altura ≤ 0)) então escrever("Valores Inválidos") senão imc = peso / (altura * altura) se (imc ≤ 18,5) então escrever("Abaixo do peso") senão se (imc ≤ 25) então escrever("Peso normal") senão se (imc ≤ 30) então escrever("Acima do peso") senão escrever("Obeso") fim se fim programa início float peso, altura, imc ler(peso, altura) se ((peso ≤ 0) OU (altura ≤ 0)) então escrever("Valores Inválidos") senão imc = peso / (altura * altura) se (imc ≤ 18,5) então escrever("Abaixo do peso") senão se (imc ≤ 25) então escrever("Peso normal") senão se (imc ≤ 30) então escrever("Acima do peso") senão escrever("Obeso") fim se fim programa verifica validade dos valores inseridos calcula IMC verifica posição na tabela

34 Exemplo 2 – Esboço vCrescimento da Anacleto: wAltura inicial:alt_a = 1,5 wAltura após cada ano:alt_a = alt_a + 0,02 vCrescimento de Felisberto: wAltura inicial:alt_f = 1,1 wAltura após cada ano:alt_f = alt_f + 0,03 vCondição de parada: alt_f > alt_a

35 Exemplo 2 – Algoritmo início inteiro ano = 0 floatalt_a = 1,5 float alt_f = 1,1 enquanto (alt_a > alt_f) fazer alt_a = alt_a + 0,02 alt_f = alt_f + 0,03 ano = ano + 1 fim fazer escrever(ano) fim programa início inteiro ano = 0 floatalt_a = 1,5 float alt_f = 1,1 enquanto (alt_a > alt_f) fazer alt_a = alt_a + 0,02 alt_f = alt_f + 0,03 ano = ano + 1 fim fazer escrever(ano) fim programa condições iniciais

36 Exemplo 3 vApresente dois algoritmos para calcular o valor da seguinte soma. wEstrutura de repetição por condição. wEstrutura de repetição por contagem.

37 Exemplo 3 – Termo geral Termo geral:

38 Exemplo 3 – Algoritmos início// Contagem float i float soma = 0 para ((i = 1); (i ≤ 10); (incremento = 1)) soma = soma + (-1)^(i+1)*(i)/(i*i) fim para escrever(soma) fim programa início// Contagem float i float soma = 0 para ((i = 1); (i ≤ 10); (incremento = 1)) soma = soma + (-1)^(i+1)*(i)/(i*i) fim para escrever(soma) fim programa termo geral início// Condição float soma, i soma = 0 i = 1 enquanto (i ≤ 10) fazer soma = soma + (-1)^(i+1)*(i)/(i*i) i = i + 1 fim fazer escrever(soma) fim programa início// Condição float soma, i soma = 0 i = 1 enquanto (i ≤ 10) fazer soma = soma + (-1)^(i+1)*(i)/(i*i) i = i + 1 fim fazer escrever(soma) fim programa termo geral

39 Exemplo 4 início inteiros: A, B, i, j ler(A) fazer para (i=1; i ≤ A; incremento=1) j = i enquanto (j ≤ A) fazer escrever(j) j = j + 1 fim fazer fim para B = A ler(A) enquanto ((A ≠ B) AND (A > 0)) fim fazer fim início inteiros: A, B, i, j ler(A) fazer para (i=1; i ≤ A; incremento=1) j = i enquanto (j ≤ A) fazer escrever(j) j = j + 1 fim fazer fim para B = A ler(A) enquanto ((A ≠ B) AND (A > 0)) fim fazer fim vO que será mostrado se inserirmos 4 e 0? vO que será mostrado se inserirmos 3, 2 e 2? vO que será mostrado se inserirmos 2, 1 e 0? vO que será mostrado se inserirmos 1 e 0?

40 Exemplo 5 vConstrua um algoritmo que verifique se um número fornecido pelo usuário é primo ou não.

41 Exemplo 5 – Esboço vO que é um número primo? w(divisível por ele mesmo) E (divisível por 1) wZero e Um não são primos vSe A é divisível por B, então (A % B = 0) vChecar divisibilidade entre número em teste e divisores. vRepetir teste, incrementando-se o divisor a partir de 2. vSe um dos resto for zero, não há necessidade de testar novos divisores  número em teste é primo. vNão há necessidade de testar divisores maiores que a metade do número em teste.

42 Exemplo 5 – Algoritmo :: Refinamento 1 início inteiro num, div, resto ler(num) div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa início inteiro num, div, resto ler(num) div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa testa divisibilidade determina primalidade de acordo com o resto

43 Exemplo 5 – Algoritmo :: Refinamento 2 início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa verifica validade dos valores inseridos testa divisibilidade determina primalidade de acordo com o resto

44 Exemplo 5 – Algoritmo :: Refinamento 3 início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão se ((num == 1) OU (num == 0)) então escrever("Não é primo") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão se ((num == 1) OU (num == 0)) então escrever("Não é primo") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa verifica validade dos valores inseridos testa divisibilidade determina primalidade de acordo com o resto 0 e 1 não são primos

45 Exemplo 5 – Algoritmo :: Refinamento 4 início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão se ((num == 1) OU (num == 0)) então escrever("Não é primo") senão se ((num == 2) OU (num == 3) OU (num == 5)) então escrever("É primo") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa início inteiro num, div, resto ler(num) se (num < 0) então escrever("Valor Inválido") senão se ((num == 1) OU (num == 0)) então escrever("Não é primo") senão se ((num == 2) OU (num == 3) OU (num == 5)) então escrever("É primo") senão div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então escrever("É primo") senão escrever("Não é primo") fim se fim programa verifica validade dos valores inseridos testa divisibilidade determina primalidade de acordo com o resto 0 e 1 não são primos 2, 3 e 5 são primos, mas não passariam no teste

46 Questões


Carregar ppt "Algoritmos e Estruturas de Dados Prof. Me. Claudio Benossi Estruturas de Controle."

Apresentações semelhantes


Anúncios Google