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

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

Algoritmos e Estruturas de Dados

Apresentações semelhantes


Apresentação em tema: "Algoritmos e Estruturas de Dados"— Transcrição da apresentação:

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

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

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

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

5 Estrutura Condicional
Execuçã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. início olhar o céu F chuva? V levar guarda-chuva usar roupa leve fim

6 Estrutura Condicional
Simples Composta Múltipla escolha

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

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

9 Estrutura Condicional Simples
Exemplo: // 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

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

11 Estrutura Condicional Composta
Utilizada 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). se <condição> então <ação1> senão <ação2> fim se

12 Estrutura Condicional Composta
Exemplo: // 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

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

14 Estrutura Condicional de Múltipla Escolha
Utilizada quando um conjunto de valores discretos e ações diferentes são associadas a cada um desses valores. switch <variável> caso x1: <ação1> caso x2: <ação2> caso x3: <ação3> ... default <ação default> fim switch se <cond_01> então <ação1> senão se <cond_02> então <ação2> senão se <cond_03> então <ação3> .... senão <ação default> fim se

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

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

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

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

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

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

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

22 Estrutura de Repetição por Condição :: Verificação no fim
Permite que comandos sejam repetidos até que uma condição seja atendida. fazer <ações> enquanto <condição> fim fazer

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

24 Estrutura de Repetição por Condição :: Verificação no fim × Verificação no início
Condição é verificada antes 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

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

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 Estrutura de Repetição por Contagem
Exemplo: Dado o valor de N, calcular a soma dos números inteiros de 1 a N. ... soma = 0 para (i=1; N; incremento=1) soma = soma + i fim para

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

29 Estruturas de Repetição :: Considerações finais
Repetição por condição Repetição por contagem 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 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

30 Exemplo 1 O 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. A fórmula é Elabore 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 Variáveis: Comandos: Entrada: peso, altura
Tipo: real (float) Intervalo: maior que zero Saída: IMC Tipo: real Comandos: Ler variáveis de entrada Checar validade das variáveis de entrada Calcular IMC Determinar 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") escrever("Obeso") fim se fim programa verifica validade dos valores inseridos calcula IMC verifica posição na tabela

33 Exemplo 2 Anacleto tem 1,50m e cresce 2cm por ano, enquanto Felisberto tem 1,10m e cresce 3cm por ano. Construa um algoritmo que calcule e imprima quantos anos serão necessários para que Felisberto seja maior que Anacleto.

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

35 Exemplo 2 – Algoritmo início inteiro ano = 0 float alt_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 Apresente dois algoritmos para calcular o valor da seguinte soma. Estrutura de repetição por condição. Estrutura de repetição por contagem.

37 Exemplo 3 – Termo geral 12 1 22 32 42 52 62 102 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 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 termo geral

39 Exemplo 4 O que será mostrado se inserirmos 4 e 0?
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 enquanto ((A ≠ B) AND (A > 0)) fim O que será mostrado se inserirmos 4 e 0? O que será mostrado se inserirmos 3, 2 e 2? O que será mostrado se inserirmos 2, 1 e 0? O que será mostrado se inserirmos 1 e 0?

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

41 Exemplo 5 – Esboço O que é um número primo?
(divisível por ele mesmo) E (divisível por 1) Zero e Um não são primos Se A é divisível por B, então (A % B = 0) Checar divisibilidade entre número em teste e divisores. Repetir teste, incrementando-se o divisor a partir de 2. Se um dos resto for zero, não há necessidade de testar novos divisores  número em teste é primo. Nã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 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") 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") 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") fim se fim programa verifica validade dos valores inseridos 0 e 1 não são primos testa divisibilidade determina primalidade de acordo com o resto

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") div = 2 enquanto ((div < num/2) AND (resto ≠ 0)) fazer resto = num % div div = div + 1 fim fazer se (resto ≠ 0) então fim se fim programa verifica validade dos valores inseridos 0 e 1 não são primos 2, 3 e 5 são primos, mas não passariam no teste testa divisibilidade determina primalidade de acordo com o resto

46 Questões


Carregar ppt "Algoritmos e Estruturas de Dados"

Apresentações semelhantes


Anúncios Google