1 / 50

Lógica de Programação

Lógica de Programação. Estruturas de Controle. 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

ferris
Download Presentation

Lógica de Programação

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 comando 1; comando n; 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 3.4 - 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 início escreva (“Aluno Aprovado !”); escreva (“Parabéns !”); fim; senão início escreva (“Aluno Reprovado !”); escreva (“Estude mais !”); fim; 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: (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”); senão escreva (“Triangulo Escaleno”); fimse; fimse; senão escreva (“Estes valores não formam um triângulo”); fimse; 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; fimse; fimse; fimse; É equivalente a: se <Cond1> e <Cond2> e <Cond3> e <Cond4> então W; fimse;

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

  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 10..20: escreva (Preço, “ – produto do Centro-Oeste”); caso 5, 6, 25..50: 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 0 1 2 3

  24. Repetição com Teste no Início Algoritmo 3.7 - 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 0 3 1 2 0 5 7 11 5 2 4

  26. Repetição com Teste no Início Algoritmo 3.8 - 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 3.9 - 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 3.10 - 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

  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 [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; 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 VCLASSE 7,8 5,3 9,1 9,8 6,5 4,7 1 2 3 4 5 6 7 8 9 38 39 40

  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) então NotaAcima ¬ NotaAcima + 1; fimse; . . . se (J > Média) então NotaAcima ¬ NotaAcima + 1; fimse; escreva (NotaAcima); fim.

  39. Vetores Algoritmo 4.2 – Notas acima da média usando vetor 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.

  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: MSALA 1 2 3 4 inteiro : A, B; MSALA [ 2, 3 ] ¬ 5; 7 12 1 MSALA [ 3, 2 ] ¬ 6; 10 5 2 MSALA [ 1, 2 ] ¬ 7; 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

  43. Matrizes Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado 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.

  44. Matrizes Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada 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.

  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 1 2 3 4 5 6

  48. Registro de Conjuntos • Declaração: tipo vDias = vetor [ 1 .. 6 ] 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: tipo regPassagem = registro inteiro: Número; caracter: Origem, Destino, Data, Horário; inteiro: Poltrona; real: Distância; fimregistro; Tipo vetPassagem = vetor [ 1 .. 44 ] 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;

More Related