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

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

Lógica de Programação Estruturas de Controle. Nesta aula Estrutura Sequencial Estrutura de Seleção Estrutura de Repetição Objetivos Apresentar o conceito.

Apresentações semelhantes


Apresentação em tema: "Lógica de Programação Estruturas de Controle. Nesta aula Estrutura Sequencial Estrutura de Seleção Estrutura de Repetição Objetivos Apresentar o conceito."— Transcrição da apresentação:

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

2 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 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 Algoritmo 3.1 – Modelo geral

5 Estrutura sequencial 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. Algoritmo Média Aritmética

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 então início // início do bloco verdade comando 1; comando 2;... comando n; fim; // fim do bloco verdade fimse; Quando a for verdadeira o bloco verdade é executado Quando a for falsa o bloco verdade não é executado

8 Seleção Simples 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. Algoritmo Média Aritmética com Aprovação

9 Seleção Composta se 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 comando 1; comando n; fim; // fim do bloco falsidade fimse; Quando a for verdadeira o bloco verdade é executado Quando a for falsa o bloco falsidade é executado

10 Seleção Composta 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 início escreva (Aluno Aprovado !); escreva (Parabéns !); fim; senão início escreva (Aluno Reprovado !); escreva (Estude mais !); fim; fimse; fim. Algoritmo Média Aritmética com aprovação e reprovação

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: (AB) e (B<>C) e (A<>C) É triângulo?É equilátero?É isósceles?É escaleno?Ações VVFFEquilátero VFV-Isósceles VFFVEscaleno F---Não é triângulo

15 Seleção Encadeada Heterogênea início inteiro: A, B, C; // tamanho dos lados leia (A, B, C); se (A

16 Seleção Encadeada Homogênea se – então – se se então se então W; fimse; É equivalente a: se e e e então W; fimse; Cond1Cond2Cond3Cond4Ação VVVVW

17 Seleção Encadeada Homogênea se X=V1 então C1; fimse; se X=V2 então C2; fimse; se X=V3 então C3; fimse; se X=V4 então C4; fimse; X=V1X=V2X=V3X=V4Ação VFFFC1 FVFFC2 FFVFC3 FFFVC4 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; X=V1X=V2X=V3X=V4Ação V---C1 FV--C2 FFV-C3 FFFVC4 se – senão – se

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 origemProcedência 1Sul 2Norte 3Leste 4Oeste 5 ou 6Nordeste 7, 8 ou 9Sudeste 10 até 20Centro-oeste 25 até 30Nordeste

20 Seleção de 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. Algoritmo 3.6 – Múltipla Escolha

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 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 0123

24 Repetição com Teste no Início 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. Algoritmo Média Aritmética para 50 alunos

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 0123 ACM X 524

26 Repetição com Teste no Início 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. Algoritmo Média Aritmética da turma de 50 alunos

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é ;

28 Repetição com Teste no Final 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. Algoritmo Média Aritmética da turma com Repita

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 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. Algoritmo Média Aritmética da turma com Para

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 EstruturaCondiçãoQuantidade de Execuções Condição de Existência EnquantoIníciozero ou muitasCondição verdadeira RepitaFinaluma ou muitasCondição falsa ParaNão tem((vf - vi) div p) + 1v <= 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 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 [1.. 40] 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; 6,57,85,3 VCLASSE VCLASSE [ 2 ] 7,8; VCLASSE [ 4 ] 5,3; 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 9,89,14,7

38 Vetores 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) então NotaAcima NotaAcima + 1; fimse;... se (J > Média) então NotaAcima NotaAcima + 1; fimse; escreva (NotaAcima); fim. Algoritmo 4.1 – Notas acima da média usando variáveis simples

39 Vetores início tipo Classe = vetor [1.. 10] 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; para X de 1 até 10 passo 1 faça se ( VClasse[X] > Média ) então NotaAcima NotaAcima + 1; fimse; fimpara; escreva (NotaAcima); fim. Algoritmo 4.2 – Notas acima da média usando vetor

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, 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; MSALA MSALA [ 3, 2 ] 6; MSALA [ 1, 2 ] 7; A 4; MSALA [ A, B ] 8; MSALA [ A, B-2 ] 9; MSALA [ A-2, B-2 ] 10; MSALA [ B, A ] 11; MSALA [ B-2, A ] 12; B 3;

42 Matrizes Exemplo: Cartão da Loteria Esportiva JgColuna 1EptColuna 2 1SantosCorinthians 2FlamengoFluminense 3PalmeirasSão Paulo 4VascoBotafogo 5PortuguesaXV de jaú 6São CaetanoXV de Piracicaba 7GrêmioInternacional 8HavaíFigueirense 9CoritibaAtlético-PR 10PaysandúJuventude 11Atlético-MGCruzeiro 12BrasiliensePonte Preta 13FortalezaGoiás 14EsportivoLondrina

43 Matrizes início tipo Loteria = vetor [1.. 14, 1.. 3] 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; fimse; fimpara; escreva (Jogo mais marcado:, nJogo, com, maisMar); fim. Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado

44 Matrizes início tipo Loteria = vetor [1.. 14, 1.. 3] 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; fimse; fimpara; escreva (Coluna mais marcada:, nColuna, com, maisMar); fim. Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada

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: 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: 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

50 Conjunto de Registros Declaraçã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 "Lógica de Programação Estruturas de Controle. Nesta aula Estrutura Sequencial Estrutura de Seleção Estrutura de Repetição Objetivos Apresentar o conceito."

Apresentações semelhantes


Anúncios Google