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

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

Estruturas de Controle

Apresentações semelhantes


Apresentação em tema: "Estruturas de Controle"— Transcrição da apresentação:

1 Estruturas de Controle
Lógica de Programação Estruturas de Controle

2 Estruturas de Controle
Nesta aula Estrutura Sequencial Estrutura de Seleção Estrutura de Repetição Objetivos Apresentar o conceito de estrutura sequencial de fluxo de execução Explicar a aplicabilidade das estruturas de seleção, suas variações, combinações e equivalências Apresentar as estruturas de repetição, suas particularidades e equivalências

3 Estrutura Sequencial O Fluxo de Controle segue a mesma sequência linear da nossa escrita, ou seja: De cima para baixo; Da esquerda para direita Cada ação é seguida de um ; Objetiva separar uma ação da outra Indica que a próxima ação da sequência deve ser executada

4 Estrutura sequencial Algoritmo 3.1 – Modelo geral
início // declaração de variáveis // corpo do algoritmo ação 1; ação 2; ação 3; . ação n; fim. // fim do algoritmo

5 Estrutura sequencial Algoritmo 3.2 - Média Aritmética
início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual // entrada de dados leia (N1, N2, N3, N4); // processamento MA ¬ (N1 + N2 + N3 + N4) / 4; // saída de dados escreva (MA); fim.

6 Estruturas de Seleção São aquelas que permitem alterar o Fluxo de Execução, de forma a selecionar qual parte deve ser executada Essa “decisão” de execução é tomada a partir de uma condição, que pode resultar apenas em Verdade ou Falsidade Uma condição é representada por expressões relacionais ou lógicas As estruturas de seleção podem ser classificadas em simples, compostas ou encadeadas

7 Seleção Simples se <condição> então início // início do bloco verdade comando 1; comando 2; ... comando n; fim; // fim do bloco verdade fimse; Quando a <condição> for verdadeira o “bloco verdade” é executado Quando a <condição> for falsa o “bloco verdade” não é executado

8 Seleção Simples Algoritmo 3.3 - Média Aritmética com Aprovação
início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual // entrada de dados leia (N1, N2, N3, N4); // processamento MA ¬ (N1 + N2 + N3 + N4) / 4; // saída de dados escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado !”); fimse; fim.

9 Seleção Composta se <condição> então início // início do bloco verdade comando 1; comando n; fim; // fim do bloco verdade senão início // início do bloco falsidade fim; // fim do bloco falsidade fimse; Quando a <condição> for verdadeira o “bloco verdade” é executado Quando a <condição> for falsa o “bloco falsidade” é executado

10 Seleção Composta Algoritmo Média Aritmética com aprovação e reprovação início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual leia (N1, N2, N3, N4); MA ¬ (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado !”); escreva (“Parabéns !”); fim; senão escreva (“Aluno Reprovado !”); escreva (“Estude mais !”); fimse; fim.

11 Seleção Encadeada Ocorre quando uma seleção tem como ação uma outra seleção Uma seleção encadeada pode ser: Heterogênea: Quando não é possível identificar padrão de comportamento Homogênea: Quando é possível identificar padrão de comportamento se – então – se: quando depois de cada então ocorre outro se se – senão – se: quando depois de cada senão ocorre outro se

12 Seleção Encadeada Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo Caso positivo, verificar se compõem Triângulo equilátero Triângulo isósceles Triângulo escaleno A B C

13 Seleção Encadeada Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo Caso positivo, verificar se compõem Triângulo equilátero – três lados iguais Triângulo isósceles – dois lados iguais Triângulo escaleno – todos os lados diferentes A B C

14 Seleção Encadeada Triângulo: (A<B+C) e (B<A+C) e (C<A+B)
É equilátero? É isósceles? É escaleno? Ações V F “Equilátero” - “Isósceles” “Escaleno” “Não é triângulo” Triângulo: (A<B+C) e (B<A+C) e (C<A+B) Equilátero: (A=B) e (B=C) Isósceles: (A=B) ou (B=C) ou (A=C) Escaleno: (A<>B) e (B<>C) e (A<>C)

15 Seleção Encadeada Heterogênea
Algoritmo 3.5 – Tipos de Triângulo início inteiro: A, B, C; // tamanho dos lados leia (A, B, C); se (A<B+C) e (B<A+C) e (C<A+B) então se (A=B) e (B=C) então escreva (“Triangulo Equilátero”); senão se (A=B) ou (B=C) ou (A=C) então escreva (“Triângulo Isósceles”); escreva (“Triangulo Escaleno”); fimse; escreva (“Estes valores não formam um triângulo”); fim.

16 Seleção Encadeada Homogênea
se – então – se se <Cond1> então se <Cond2> então se <Cond3> então se <Cond4> então W; fimse; É equivalente a: se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W; Cond1 Cond2 Cond3 Cond4 Ação V W

17 Seleção Encadeada Homogênea
se X=V1 então C1; fimse; se X=V2 então C2; se X=V3 então C3; se X=V4 então C4; se X=V1 então C1; senão se X=V2 então C2; senão se X=V3 então C3; senão se X=V4 então C4; fimse; se – senão – se X=V1 X=V2 X=V3 X=V4 Ação V F C1 C2 C3 C4 X=V1 X=V2 X=V3 X=V4 Ação V - C1 F C2 C3 C4

18 Seleção de Múltipla Escolha
Seleções encadeadas homogêneas se-senão-se são bastante frequentes para o tratamento de listas de valor Para simplificar a escrita, pode-se utilizar o comando escolha. Adaptando o algoritmo anterior: escolha X caso V1: C1; caso V2: C2; caso V3: C3; caso V4: C4; fimescolha;

19 Seleção de Múltipla Escolha
Construa um algoritmo que, tendo como dados de entrada o preço de um produto e seu código de origem, mostre o preço junto de sua procedência Caso o código não seja nenhum dos especificados, o produto deve ser encarado como importado Siga a tabela de códigos abaixo Código de origem Procedência 1 Sul 2 Norte 3 Leste 4 Oeste 5 ou 6 Nordeste 7, 8 ou 9 Sudeste 10 até 20 Centro-oeste 25 até 30

20 Seleção de Múltipla Escolha
Algoritmo 3.6 – Múltipla Escolha início real: Preço; inteiro: Origem; leia (Preço, Origem); escolha Origem caso 1: escreva (Preço, “ – produto do Sul”); caso 2: escreva (Preço, “ – produto do Norte”); caso 3: escreva (Preço, “ – produto do Leste”); caso 4: escreva (Preço, “ – produto do Oeste”); caso 7, 8, 9: escreva (Preço, “ – produto do Sudeste”); caso : escreva (Preço, “ – produto do Centro-Oeste”); caso 5, 6, : escreva (Preço, “ – produto do Nordeste”); caso contrário: escreva (Preço, “ – produto importado”); fimescolha; fim.

21 Estruturas de Repetição
São aquelas que permitem executar mais de uma vez (repetir) um determinado trecho do algoritmo O trecho do algoritmo em repetição é também chamado de laço (ou “loop”) As repetições devem ser sempre finitas Quanto a quantidade de repetições, os laços podem ser Pré-determinados: Sabe-se antes a quantidade de execuções Indeterminados: Não se conhece a quantidade de execuções Quanto ao critério de parada, os laços podem utilizar Teste no início Teste no final Variável de controle

22 Repetição com Teste no Início
Laço que verifica antes de cada execução, se é “permitido” executar o trecho do algoritmo Trata-se de um laço que se mantém repetindo enquanto uma dada condição permanecer verdadeira enquanto <condição> faça comando 1; comando 2; ... comando n; fimenquanto;

23 Repetição com Teste no Início
Contador: Variável que reproduz o processo de contagem início inteiro: CON; CON ¬ 0; enquanto CON < 3 faça CON ¬ CON + 1; fimenquanto; fim. CON 3 2 1

24 Repetição com Teste no Início
Algoritmo Média Aritmética para 50 alunos início // declaração de variáveis real: N1, N2, N3, N4, // notas bimestrais MA; // média anual inteiro: CON; // contador CON ¬ 0; // inicialização do contador enquanto (CON < 50) faça // teste da condição de parada leia (N1, N2, N3, N4); MA ¬ (N1 + N2 + N3 + N4) / 4; escreva (MA); se (MA >= 7) então escreva (“Aluno Aprovado. Parabéns !”); senão escreva (“Aluno Reprovado. Estude mais !”); fimse; CON ¬ CON + 1; // incremento do contador fimenquanto; fim.

25 Repetição com Teste no Início
Acumulador: Variável que reproduz o processo de acumulação início inteiro: CON, X, ACM; CON ¬ 0; ACM ¬ 0; enquanto CON < 3 faça CON ¬ CON + 1; leia (X); ACM ¬ ACM + X; fimenquanto; fim. CON ACM X 1 3 2 11 5 7 4 5 2

26 Repetição com Teste no Início
Algoritmo Média Aritmética da turma de 50 alunos início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON ¬ 0; // inicialização do contador ACM ¬ 0; // inicialização do acumulador enquanto (CON < 50) faça // teste da condição de parada leia (MA); ACM ¬ ACM + MA; // soma em ACM os valores lidos em MA CON ¬ CON + 1; // incremento do contador fimenquanto; MAT ¬ ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim.

27 Repetição com Teste no Final
Laço que verifica depois de cada execução, se é “permitido” continuar executando o trecho do algoritmo Trata-se de um laço que se mantém repetindo até que uma dada condição se torne verdadeira repita comando 1; comando 2; ... comando n; até <condição>;

28 Repetição com Teste no Final
Algoritmo Média Aritmética da turma com Repita início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: CON; // contador CON ¬ 0; // inicialização do contador ACM ¬ 0; // inicialização do acumulador repita leia (MA); ACM ¬ ACM + MA; // soma em ACM os valores lidos em MA CON ¬ CON + 1; // incremento do contador até (CON >= 50); // teste da condição de parada MAT ¬ ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim.

29 Repetição com Variável de Controle
Laço simplificado para utilização em repetições de quantidade predeterminada Incorpora internamente o funcionamento de um contador de repetições para V de vi até vf passo p faça comando 1; comando 2; ... comando n; fimpara;

30 Repetição com Teste no Final
Algoritmo Média Aritmética da turma com Para início // declaração de variáveis real: MA, // média anual de dado aluno ACM, // Acumulador MAT; // Média Anual da Turma inteiro: V; // contador ACM ¬ 0; // inicialização do acumulador para V de 1 até 50 passo 1 faça leia (MA); ACM ¬ ACM + MA; // soma em ACM os valores lidos em MA fimpara; MAT ¬ ACM / 50; // calculo da média anual da turma escreva (“média anual da turma = “, MAT); fim.

31 Comparação entre Estruturas de Repetição
Aprendemos 3 maneiras de construir laços de repetição É importante perceber que existem laços mais adequados ou convenientes para cada situação Estrutura Condição Quantidade de Execuções Condição de Existência Enquanto Início zero ou muitas Condição verdadeira Repita Final uma ou muitas Condição falsa Para Não tem ((vf - vi) div p) + 1 v <= vf

32 Exercício Construa um algoritmo que permita fazer um levantamento do estoque de vinhos de uma adega, tendo como dados de entrada tipos de vinho, sendo T – vinho tinto B – vinho branco R – vinho rosê Especifique a porcentagem de cada tipo sobre o total geral de vinhos A quantidade de vinhos é desconhecida Utilize como finalizador F – fim

33 Lógica de Programação Estruturas de Dados

34 Estruturas de Dados Tópicos Vetores Matrizes Registros
Registro de Conjuntos Conjuntos de Registros

35 Estruturas de Dados Os tipos primitivos (inteiro, real, caracter e lógico) não são suficientes para representar todos os tipos de informação. Particularmente quando temos mais de uma informação relacionada. Ex: Lista dos nomes dos alunos de uma sala, endereço de alguém etc. Utilizaremos os tipos primitivos para construir outras estruturas de dados mais complexas.

36 Vetores Também denominados Estruturas compostas homogêneas unidimensionais Permitem a manipulação de um conjunto de informações de um mesmo tipo primitivo Declaração : tipo CLASSE = vetor [ ] de reais; CLASSE: VCLASSE; Onde: CLASSE: Nome do tipo que está sendo construído 1: Limite inicial do vetor 40: Limite final do vetor reais: Tipo primitivo base do vetor VCLASSE: Nome da variável criada cf o tipo construído

37 Vetores Manipulação: inteiro: A; VCLASSE [ 7 ] ¬ 6,5;
leia (A); // supondo que foi informado 6 VCLASSE [ A ] ¬ 9,8; VCLASSE [ A-1 ] ¬ 9,1; leia ( VCLASSE [ A+3 ] ); // supondo que foi informado 4,7 VCLASSE 7,8 5,3 9,1 9,8 6,5 4,7

38 Vetores Algoritmo 4.1 – Notas acima da média usando variáveis simples
início inteiro: NotaAcima; real: A, B, C, D, E, F, G, H, I, J, Média; NotaAcima ¬ 0; leia (A,B,C,D,E,F,G,H,I,J); Média ¬ (A + B + C + D + E + F + G + H + I + J)/10; se (A > Média) então NotaAcima ¬ NotaAcima + 1; fimse; se (B > Média) . . . se (J > Média) escreva (NotaAcima); fim.

39 Vetores Algoritmo 4.2 – Notas acima da média usando vetor início
tipo Classe = vetor [ ] de reais; Classe: VClasse; inteiro: NotaAcima, X; real: Soma, Média; Soma ¬ 0; NotaAcima ¬ 0; para X de 1 até 10 passo 1 faça leia ( VClasse[X] ); Soma ¬ Soma + VClasse[X]; fimpara; Média ¬ Soma / 10; se ( VClasse[X] > Média ) então NotaAcima ¬ NotaAcima + 1; fimse; escreva (NotaAcima); fim.

40 Matrizes Também denominadas Estruturas compostas homogêneas multidimensionais Permitem a manipulação de um conjunto de informações de um mesmo tipo primitivo Declaração: tipo SALA = matriz [1 .. 4, ] de inteiros; SALA: MSALA; Onde: SALA: Nome do tipo que está sendo construído 1: Limite inicial da primeira e da segunda dimensão 4: Limite final da primeira e da segunda dimensão inteiros: Tipo primitivo base da matriz MSALA: Nome da variável criada cf o tipo construído

41 Matrizes Manipulação: inteiro : A, B; MSALA [ 2, 3 ] ¬ 5;
inteiro : A, B; MSALA [ 2, 3 ] ¬ 5; 7 12 1 MSALA [ 3, 2 ] ¬ 6; 10 5 MSALA [ 1, 2 ] ¬ 7; 2 A ¬ 4; 6 11 B ¬ 3; 3 MSALA [ A, B ] ¬ 8; 9 8 MSALA [ A, B-2 ] ¬ 9; 4 MSALA [ A-2, B-2 ] ¬ 10; MSALA [ B, A ] ¬ 11; MSALA [ B-2, A ] ¬ 12;

42 Matrizes Exemplo: Cartão da Loteria Esportiva Jg Coluna 1 Ept Coluna 2
Santos Corinthians 2 Flamengo Fluminense 3 Palmeiras São Paulo 4 Vasco Botafogo 5 Portuguesa XV de jaú 6 São Caetano XV de Piracicaba 7 Grêmio Internacional 8 Havaí Figueirense 9 Coritiba Atlético-PR 10 Paysandú Juventude 11 Atlético-MG Cruzeiro 12 Brasiliense Ponte Preta 13 Fortaleza Goiás 14 Esportivo Londrina

43 Matrizes Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado início
tipo Loteria = vetor [ , ] de caracteres; Loteria: mLoteria; inteiro: I, J, maisMar, nJogo, marLin; maisMar ¬ 0; para I de 1 até 14 faça marLin ¬ 0; para J de 1 até 3 faça se mLoteria[ I, J] =‘x’; então marLin ¬ marLin + 1; fimse; fimpara; se marLin > maisMar então maisMar ¬ marLin; nJogo ¬ I; escreva (“Jogo mais marcado: “, nJogo, “com “, maisMar); fim.

44 Matrizes Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada início
tipo Loteria = vetor [ , ] de caracteres; Loteria: mLoteria; inteiro: I, J, maisMar, nColuna, marCol; maisMar ¬ 0; para J de 1 até 3 faça marCol ¬ 0; para I de 1 até 14 faça se mLoteria[ I, J] =‘x’; então marCol ¬ marCol + 1; fimse; fimpara; se marCol > maisMar então maisMar ¬ marCol; nColuna ¬ J; escreva (“Coluna mais marcada: “, nColuna, “com “, maisMar); fim.

45 Registros Também denominadas Estruturas compostas heterogêneas
Permitem a manipulação de um conjunto de informações de tipos primitivos diferentes Exemplo: Passagem de ônibus Número: 0001 De: ____________________ Para: _______________________ Data: ____ / ____ / _______ Horário: ________ : _________ Poltrona: ____________ Distância: ____________ km

46 Registros Declaração: Manipulação: tipo regPassagem = registro
inteiro: Número; caracter: Origem, Destino, Data, Horário; inteiro: Poltrona; real: Distância; fimregistro; regPassagem: Passagem; Manipulação: leia (Passagem); escreva (Passagem); leia (Passagem.Origem); escreva (Passagem.Destino); Passagem.Distância ¬ 500;

47 Registro de Conjuntos Combinação de estruturas heterogêneas com homogêneas Podem ser obtidas ao incluir num registro outro tipo de dados construído Exemplo: Registro de Estoque com Baixa semanal Nome: _____________________________________________ Código: ___________________ Preço: __________________ Baixa

48 Registro de Conjuntos Declaração: Manipulação:
tipo vDias = vetor [ ] de inteiros; tipo regProd = registro caracter: Nome; inteiro: Código; real: Preço; vDias: Baixa; fimregistro; regProduto: Produto; Manipulação: escreva (Produto.Nome); escreva (Produto.Código); escreva (Produto.Preço); escreva (Produto.Baixa [ 1 ]); Produto.Baixa [ 4 ] ¬ 500;

49 Conjunto de Registros Combinação de estruturas homogêneas com heterogêneas Podem ser obtidas ao formar um conjunto com outro tipo de dados construído Exemplo: Ônibus formado por Passagem Número: 0001 De: ____________________ Para: _______________________ Data: ____ / ____ / _______ Horário: ________ : _________ Poltrona: ____________ Distância: ____________ km 1 2 3 4 44

50 Conjunto de Registros Declaração: Manipulação:
tipo regPassagem = registro inteiro: Número; caracter: Origem, Destino, Data, Horário; inteiro: Poltrona; real: Distância; fimregistro; Tipo vetPassagem = vetor [ ] de regPassagem; vetPassagem: Ônibus; Manipulação: leia (Passagem [ 7 ]); escreva (Passagem [ 4 ]); leia (Passagem [12].Origem); escreva (Passagem [21].Destino); Passagem [34].Distância ¬ 500;


Carregar ppt "Estruturas de Controle"

Apresentações semelhantes


Anúncios Google