Aula de programacao_final.dizando

7,355 views
7,105 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
7,355
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
97
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Aula de programacao_final.dizando

  1. 1. PROGRAMAÇÃO I Faculdade de Ciências Universidade Agostinho Neto Curso: Ciências da Computação
  2. 2. •Avaliação Prova Escrita (Exame) projecto Media Final = 60% Exame +40% Projecto • Aulas 2 Aulas Semanal 1 Aula de Laboratorio Semanal Docente: Msc. Dikiefu Fabiano Curso: Ciência da computação
  3. 3. Índice 1. Introdução 1. Conceito de Algoritmo. 2. Formas de Representação de Algoritmos 3. Descrição Narrativa 4. Fluxograma Convencional 5. Pseudocodigo 2. Tipos de Dados 3. Variáveis 1. Armazenamento de dados na memoria 2. Conceito e utilidade de variáveis 3. Definição de variáveis em algoritmo 4. Mapeamento de variáveis na memoria 4. Expressões 1. Conceitos 2. Operadores 3. Tipo d expressões 4. Avaliação de expressões
  4. 4. Algoritmo é um conjunto finito de regras, bem definidas, para a solução de um problema em um tempo finito e com um número finito de passos. Serve como modelo para programas, pois sua linguagem é intermediaria a linguagem humana e as linguagens de programação, sendo então, uma boa ferramenta na validação da lógica de tarefas a serem automatizadas. Os algoritmos, servem para representar a solução de qualquer problema, mas no caso de processamento de dados, eles devem seguir as regras basicas de programação para que sejam compatíveis com as linguagens de programação. Conceito de Algoritmo
  5. 5.  Para se ter um algorimo é necessario: Um número finito de passos; Cada passo esteja precisamente definido, sem possiveis ambiguidades; Existam zero ou mas entradas tomadas de conjuntos bem definidos; Existam uma ou mas saida; Exista uma condição de fim sempre atingida para quaisquer entradas e num tempo finito.  Algoritmos não se aprendem: Copiando algoritmo Estudando algoritmo  Algoritmos so se aprendem: Construindo algoritmos Testando algoritmos Conceito de Algoritmo
  6. 6. Dentre as formas de representação de algoritmos mais conhecidas podemos citar:  Descrição Narrativa;  Fluxograma convencional;  Pseudocodigo, tambem conhecida como linguagem estruturada. Formas de Representação de Algoritmos
  7. 7. Nesta forma de representação os algoritmos são expressos directamente em linguagem natural Descriçao Narrativa Receita de Bolo Tomando um Banho 1. Misture os ingredientes 2. Unte a forma com manteiga 3. Despeje a misture na forma 4. Se houver coco ralado então despeje sobre a mistura 5. Leve a forma ao forno 6. Enquanto não estiver pronto deixa a forma no forma 7. Retire do forno 8. Deixar esfriar 1. Entrar no banheiro e tirar a roupa 2. Abrir a torneira do chuveiro 3. Entrar na agua 4. Ensaboar-se 5. Sair da agua 6. Fechar s torneira 7. Enxugar-se 8. Vestir-se
  8. 8. Formas de Representação de Algoritmos Descriçao Narrativa Troca de pneu furado Calculo da media de um aluno 1. Afrouxar ligeiramente as porcas 2. Suspender o carro 3. Retirar as porcas e o pneu 4. Colocar o pneu reserva 5. Apertar as porcas 6. Baixar o carro 7. Dar o aperto final nas porcas 1. Obter as suas 2 notas de prova 2. Calcular a media aritmetica 3. Se a media for maior que 7, 4. O aluno foi aprovado 5. Senao 6. Aluno reprovado
  9. 9.  É uma representação gráfica de algoritmo onde formas geométricas diferentes implicam acções (instrucões comandos) distintas.  Tal propriedade facilita o entendimento das ideias contidas nos algoritmos e justifica sua popularidade.  Esta forma é aproximadamente intermediária a descrição narrativa e ao pseudocodigo (sub item seguinte), pois é menos imprecisa que a primeira e, no entanto, não se preocupa com detalhes de implementação do programa. Formas de Representação de Algoritmos Fluxograma Convencional
  10. 10. Formas de Representação de Algoritmos Fluxograma Convencional Inicio e fim de programa Decisão Operação de saida Operação de entrada de dadosOperação de atribuição
  11. 11. Formas de Representação de Algoritmos Fluxograma Convencional (Exemplo) Calculo da media de um aluno sob a forma de um fluxograma Partindo do simbolo inicial, há sempre um único caminho orintado a ser seguido, representando a existencia de uma única sequencia de execução das instruções. inicio N1, N2 Media(N1 +N2)/2 Media >=7 Aprovado reprovado Fim
  12. 12. Esta forma de representação de algoritmo é rica em detalhes, como a definição dos tipos das variáveis usadas no algoritmo. Por assemelhar-se bastante a forma em que os programas são escritos, encontra muita aceitação. Na verdade, esta representação e suficientemente geral para permitir a tradução de um algoritmo nela representado para uma linguagem de programação especifica seja praticamente directa. Formas de Representação de Algoritmos Pseudocodigo
  13. 13. Formas de Representação de Algoritmos Pseudocodigo Algoritmo <nome_do_algoritmo> <declaracao_de_variaveis> <subalgoritmos> Inicio <corpo do algoritmo> Fim Algoritmo e uma palavra que indica o inicio da difinição de um algoritmo em forma de pseudocodigo. <nome_do_algoritmo> e um nome simbolico dado ao algoritmo com a finalidade de distingui-lo dos demais. <declaração de variaveis> consiste em uma porção opcional onde são declaradas as variaveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos. Inicio e Fim são respectivamente as palavas que delimitam o inicio e o termino do conjunto de instruções do corpo do algoritmo. A forma geral da representação de um algoritmo na forma de pseudocodigo
  14. 14. Representação do algoritmo do calculo da media de um aluno, na forma de um pseudocodigo. Formas de Representação de Algoritmos Pseudocodigo (Exemplo) Algoritmo Calculo_Media Var N1, N2, MEDIA: real Inicio leia N1, N2 MEDIA (N1+N2)/2 Se media >= 7 então Escreva “Aprovado” Senao Escreva “Reprovado” Fim-se Fim
  15. 15. Formas de Representação de Algoritmos Sintese Há diversas formas de representação de algoritmo. Essas formas diferem entre si pela quantidade de detalhes de implementação que fornecem ou, inversamente, pelo grau de abstracção que possibilitam com a relação a implementação do algoritmo em termos de linguagem de programação especifica. Dentre as principais formas de representação de algoritmos destacam se: Descrição narrativa; Fluxograma convencional; Pseudocodigo (ou linguagem estruturada).
  16. 16. 2 Aula –Teórica 1.Tipos de Dados 2.Variáveis i. Armazenamento de dados na memoria ii. Conceito e utilidade de variáveis iii.Definição de variáveis em algoritmo iv.Mapeamento de variáveis na memoria 3. Expressões i. Conceitos ii. Operadores iii.Tipo d expressões iv.Avaliação de expressões
  17. 17. Tipo de Dados Temos três tipos de dados: 1. Dados Numéricos 2. Dados Cadeia de caracteres 3. Dados Lógicos
  18. 18. Tipos de Dados Os dados numéricos são divididos em duas classes: os inteiros e os reais Dados numéricos inteiros São aqueles que não possuem componentes decimais ou fraccionários, podendo ser positivo ou negativo (conjunto e ). Ex: 15 – numero inteiro positivo - 20 – numero inteiro negativo 0 – numero inteiro Dados numéricos reais São aqueles que podem possuir componentes decimais ou fraccionários, podem também ser positivo ou negativos. (conjunto ). Ex: 15.75 – numero real positivo com duas casas decimais -20.4 – numero real negativo com uma casa decimal 0.0 – numero real com uma casa decimal 0. - numero real com zero casa decimal
  19. 19. Tipos de Dados Cadeia Caracteres  O tipo cadeia de caracteres é constituído por uma sequencia de caracteres contendo letras, dígitos e /ou símbolos especiais.  Este tipo de dados é também chamado alfanumérico, do inglês string.  Usualmente, os cadeia de caracteres são representados nos algoritmos pela colecção de caracteres, delimitado em seu inicio e termino com o carácter aspas (“”).  Diz-se que o dado do tipo cadeia de caracteres possui um comprimento dado pelo numero de caracteres nele contido.
  20. 20. Cadeia de Caracteres(Exemplos)  “QUAL ?” – cadeia de caracteres de comprimento 6  “ ” – cadeia de caracteres de comprimento 1  “qUaL ?!$” – cadeia de caracteres de comprimento 8  “1-2+3=4” – cadeia de caracteres de comprimento 7  “0” – cadeia de caracteres de comprimento 1 Tipos de Dados
  21. 21. Dados Lógicos (booleanos) • O tipo de dado lógico é usado para representar dois únicos valores possíveis:Verdadeiro (V) e falso (F). • É comum encontrar-se em outras referencias outros tipos de pares de valores lógicos como sim/não, 1/0, true/false.
  22. 22. Variáveis Basicamente, uma variável possui três atributos: um nome, um tipo de dado associado a mesma e a informação por ela guardada.  O nome da variável deve necessariamente começar com uma letra;  O nome da variável não pode conter nenhum símbolo especial excepto o sublinha (_). Ex: • SALARIO  correcto • 1ANO  incorrecto • A CASA  incorrecto • SAL/HORA  incorrecto • SAL_HORA  correcto • _DESCONTO  incorrecto
  23. 23. Todas as variáveis utilizadas em algoritmo devem ser definidas antes de serem utilizadas. Isto é necessário para permitir que o compilador reserve um espaço na memória para as mesmas. Sintaxe: VAR <nome_da_variavel>:<tipo_da_variavel> VAR <nome_da_variavel>:<tipo_das_variaveis>.  A palavra chaveVAR deverá estar presente sempre e estará uma única vez na definição de um conjunto de uma ou mais variáveis; Exemplo: VAR NOME : caracter IDADE: inteiro SALARIO: real TRABALHA : lógico Variáveis
  24. 24. Variáveis Exercícios Classifica os dados especificados abaixo de acordo com seu tipo, assinalando com I os dados do tipo inteiro, com R os reais, com C o caractere, com B os lógicos (booleanos), e com N aqueles para os quais não e possível definir o tipo de dado ( ) 0.21 ( ) 1 ( )V ( )”0” ( )1% ( ) “jose” ( ) 0.35 ( ) F ( ) T ( ) 0.001 ( ) +3257 ( ) “- 0.0” ( ) “F” ( ) +3 ( )”abc” ( ) 12F ( ) C ( ) Maria ( ) +36
  25. 25. Variáveis Exercícios Explique o que esta errado nos identificadores incorrectos ( ) valor ( ) _b248 ( ) nota *do *aluno ( ) a1b2c3 ( ) 3X4 ( ) Maria ( ) Km/h ( ) xyz ( ) nome empresa ( ) sala_04 ( )”nota” ( ) ah! Supondo que as variáveis NB, NA, NMAT e SX sejam utilizadas para armazenar a nota, o nome, o numero de matricula e o sexo de um aluno, declare-as correctamente, associando o tipo adequado ao dado que será armazenado.
  26. 26. O conceito de expressão em termos computacionais esta intimamente ligado ao conceito de expressão (ou formula) matemática, onde um conjunto de variáveis e constantes numéricas relacionam-se por meio de operadores aritméticos compondo uma formula que, uma vez avaliada resulta num valor. Ex.: area = base * altura * 0,5 ou area = (base * altura) /2 Expressões Conceito Computacional Matemática
  27. 27. Expressões Operadores  Operadores são elementos operacionais que actuam sobre operandos e produzem um determinado resultado.  Temos três tipos de operadores:  Aritméticos  Relacionais  Lógicos  De acordo com o número de operandos sobre os quais os operadores actuam, os últimos podem ser classificados em:  Binários  unários
  28. 28. Expressões Operadores Aritméticos Os operadores aritméticos são utilizados para obter resultados aritméticos. Além da adição, subtracção, multiplicação e divisão, podem utilizar também o operador para exponenciação. Operação Símbolo Adição + Subtracção – Multiplicação * Divisão / Exponenciação **
  29. 29. Expressões aritméticas: são aquelas cujo o resultado da avaliação é do tipo numérico, seja ele real ou inteiro. Somente o uso de operadores aritméticos e variáveis numéricas é permitido em expressões deste tipo. operador tipo operação prioridade + binário Adição 4 - binário subtracção 4 * binário multiplicação 3 / binário divisão 3 * * binário exponenciação 2 + unário Manutenção de sinal 1 - unário Inversão de sinal 1 Operadores aritméticos e sua ordem de prioridade Expressões
  30. 30. Expressões Operadores Relacionais Os operadores relacionais são utilizados para comparação de números e caracteres. Estes operadores sempre retornam valores lógicos (Verdadeiro ou Falso/ True ou False) Para se estabelecer prioridade no que diz respeito a qual operação executar primeiro, utiliza-se os parênteses. Operador Símbolo Igual a = Diferente de <> Ou != ou Maior que > Menor que < Maior ou igual que >= Menor ou Igual que <=
  31. 31. Expressões Operadores Relacionais (Exemplo) 1.Tendo A = 7 e B = 10, temos Expressão Resultado A = B F A <> B V A > B F A < B V A >= B F A <= B V Símbolo utilizado para comparação entre expressões. Idade>=100 sim não
  32. 32. Expressões Tipo de Expressões Expressões lógicas: são aquelas cujo resultado da avaliação é um valor lógico (V ou F) operador tipo operação prioridade OU (OR) BINARIO Disjunção 3 E (AND) BINARIO Conjunção 2 NÃO(NOT) UNARIO Negação 1 Operadores lógicos e sua relação de prioridade E (AND): Uma expressão E é verdadeira se todas condições forem verdadeiras. OU/OR: Uma expressão OU é verdadeiras se pelo menos uma das condições for verdadeiras. NÃO(NOT): Uma expressão NÃO inverte o valor da expressão ou condição.
  33. 33. Expressões cadeia de caracteres: são aquelas cujo o resultado da avaliação é uma cadeia de caracteres. Os tipos de operadores existentes variam de uma linguagem de programação para outra, não havendo uma padronização. Ex.: “ANG”+”OLA” e o resultado da avaliação é ANGOLA. Expressões Tipo de Expressões
  34. 34. Expressões Linearização de Expressões Para a construção de algoritmos todas as expressões aritméticas devem ser linearizados, ou seja, colocadas em linha. Ex: Matemática Computacional  (2/3+(5-3))+1
  35. 35. Expressões Operadores Especiais (MOD e DIV) MOD  Retorna o resto da divisão entre 2 números inteiros DIV  retorna o valor inteiro que resulta da divisão entre dois números inteiros. 13 DIV 2 = 6 13 MOD 2 = 1
  36. 36. Regras são essenciais para a correcta avaliação de expressões.  Operadores de maior prioridade devem ser avaliados primeiro. Em caso de empate, a avaliação se faz da esquerda para direita.  O uso de parênteses em expressões força a avaliação das mesmas com maior prioridade.  Os diversos tipos de operadores devem ser avaliados na seguinte sequencia dentro de uma expressão complexa: primeiro os aritméticos e literais; a seguir, os relacionais e, por ultimo os lógicos. Expressões Regras de avaliação de expressões
  37. 37. Expressões Operadores Aritméticos (Exemplo) Exemplos: a) 1+7*2**2-1=28 solução: 1+7*4-1 1+28-1 29-1 28 c) 3*(1-2)+4*2=5 (tpc) b) 3*(2+7)/(5+1) Solução: 3*9/(5+1) 3*9/6 27/6 4.5
  38. 38. Expressões (Exercícios) 1. Dada a declaração de variáveis: VAR A, B, C: inteiro X,Y,Z: real NOME, RUA: caractere L1, L2: lógico Classifique as expressões seguintes de acordo com o tipo de dado do resultado da sua avaliação, em I (inteiro), R (real), C(caractere), B(lógico) ou N (quando não pode defini-la). a) ( ) A+B+C b) ( ) A+B+Z c) ( ) NOME + RUA d) ( ) AB e) ( )JAY f) ( )NOME RUA g) ( ) L1 OU L2 h) ( )RUA<> NOME i) ( ) A + B/C j) ( ) A+X/Z k) ( ) AB=L1 l) ( )(A=B) m) ( )X+Y/A n) ( )X=Z/A o) ( )L1**L2 p) ( )A+B/L2 q) ( )X<L1/RUA
  39. 39. Para as mesmas variáveis declaradas no exercício 1, as quais são dadas os valores seguintes: A=1, B=2, C=3, X=2.0,Y=10.0, Z=-10, L1=V, L2=F, NOME=“Pedro”, RUA=“Amilcar” a) A+B/C b) A+B+C c) A/B/C d) X**B e) -(X**B ) f) NOME + RUA g) L1 OU L2 h) (L2 E (NÃOL1)) Expressões(Exercícios)
  40. 40. Comandos de entrada e saída de dados
  41. 41. Comandos de entrada e saída de dados O computador não é uma máquina isolada, pois ele precisa se comunicar com o mundo exterior através do vídeo, impressora, teclado, discos, etc. Para realizar esta comunicação existem comandos que permitem que informações sejam exibidas, como também existem comandos que permitem que informações sejam colocadas na memória do computador através do teclado do PC. Com esta finalidade, utilizaremos os comandos de entrada e saída. Os comandos que iremos estudar são: LEIA ESCREVA
  42. 42. Comandos de entrada e saída de dados Exemplos: 1. Escreva um algoritmo para ler um valor numérico do teclado e atribui-lo a uma variável de tipo numérica. Algoritmo LerNumero VAR num: INTEIRO INICIO LEIA(num) FIM 2. Escreva um algoritmo para escrever na tela uma mensagem Algoritmo EscreveMsg INICIO ESCREVA(“Olá Programadores”) FIM Algoritmo EscreveMsg VAR msg: caractere INICIO msg “Olá Programadores” ESCREVA(msg) FIM ou
  43. 43. Blocos Um bloco pode ser definido como um conjunto de acções com uma função definida. Ele serve também para definir os limites nos quais as variáveis declaradas em seu interior são conhecidas. Para delimitar um bloco, utilizamos os delimitadores “início” e “fim”.
  44. 44. • Estrutura Sequencial • Estrutura de Selecção • Estrutura de Repetição Estrutura de Controlo
  45. 45. Estrutura Sequencial A estrutura sequencial de um algoritmo corresponde ao facto de que o conjunto de acções primitivas será executado em uma sequencia linear de cima para baixo e da esquerda para direita. Ex.: ALGORITMO Exemplo_Sequencial INICIO acção 1 acção 2 . . . acção n FIM
  46. 46. Estrutura Sequencial Ex. 2: Faça um algoritmo que calcule a média aritmética entre 3 notas quaisquer fornecidas por um utilizador. Sol. ALGORITMO media VAR N1, N2, N3, MA: REAL INICIO //Entrada de dados LEIA (N1,N2,N3) //processamento MA  (N1,N2,N3)/3 //Saída de dados ESCREVA(MA) FIM
  47. 47. Estrutura de Selecção Uma estrutura de selecção permite a escolha de um grupo de acções (bloco) a ser executado quando determinadas condições, representadas por expressões lógicas ou relacionaionais são ou não satisfeitas. As principais estruturas de decisão são:  Selecção simples  Selecção composta  Selecção encadeada
  48. 48. Se <condição> Então A estrutura de Selecção "Se <condição> então" normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando “Se” então executa determinado comando. Se <condição> Então comando Fim_Se O algoritmo abaixo determina que o aluno estará aprovado somente se a sua média for maior ou igual a 10.0. Se (MEDIA >= 10.0) Então ESCREVA “APROVADO” Selecção Simples
  49. 49. Em diagrama de blocos ficaria assim: Sim Não Aprovado
  50. 50. A estrutura de Selecção "Se … Senão", funciona exactamente como a estrutura "Se Então", com apenas uma diferença, em "Se…Então" somente podemos executar comandos caso a condição seja verdadeira, diferente de "Se … Senão" pois sempre um comando será executado independente da condição, ou seja, caso a condição seja "verdadeira" o comando da condição será executado, caso contrário o comando da condição "falsa" será executado Em algoritmo ficaria assim: Se MÉDIA >= 10.0 Então ESCREVA “APROVADO” Senão ESCREVA “REPROVADO” Selecção composta “Se <condição> Senão ” Estrutura de Selecção
  51. 51. Em diagrama Não Sim No exemplo acima está sendo executada uma condição que, se for verdadeira, executa o comando "APROVADO", caso contrário executa o segundo comando "REPROVADO". Podemos também dentro de uma mesma condição testar outras condições. Media >=10.0 Reprovado Aprovado Se (media >= 10.0 ) então ESCREVA “ Aprovado(a)” Senão ESCREVA “ Reprovado(a)” Fim_Se
  52. 52. Selecção encadeada Estrutura de Selecção Selecção encadeada ocorre quando uma determinada acção ou bloco deve ser executado se um grande conjunto de possibilidades ou combinações de situações for satisfeita.
  53. 53. Selecção Encadeada Heterogênea Estrutura de Selecção A estrutura de selecção encadeada heterogênea ocorre quando não conseguimos identificar um padrão lógico de construção em uma estrutura de selecção encadeada.
  54. 54. Se <condição 1> Então Se <condição 2> Então Inicio // bloco verdade 1 comando 1 … comando n Fim // bloco verdade 1 Fim_Se Senão Se <condição 3> Então Inicio // bloco verdade 2 comando 1 … comando n Fim // bloco verdade 2 Senão Se <condição 4> Então Se <condição 5> Então comandoV // ComandoVerdade Fim_Se Senão comando F // Comando Falsidade Fim_Se Fim_Se Fim_Se
  55. 55. Exemplo Selecção encadeada Heterogênea Dados três valores A, B, C, verificar se eles podem ser os comprimentos dos lados de um triângulo, se forem, verificar se compõem um triangulo equilátero, isósceles ou escaleno. Informar se não compuserem nenhum triângulo. Análise: Triângulo:(A<B+C) e (B<A+C) e (C < A+B) // Todos lados iguais Equilátero: (A=B) e (B=C) Isósceles: (A=B) ou (A=C) ou (B=C) //dois lados iguais Escaleno: (A<>B) e (B<>C) e (A<>C) // todos lados diferentes
  56. 56. Selecção Encadeada Heterogênea – cont. Algoritmo triangulo VAR A, B, C: INTEIRO INICIO 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“ Triângulo Equilátero” SENÃO Se (A=B) ou (A=C) ou (B=C) Então ESCREVA“ Triângulo Isósceles” Senão ESCREVA“ Triângulo Escaleno” Fim_Se Fim_Se SENÃO ESCREVA“ Estes valores não formam um triângulo” FIM_SE FIM
  57. 57. Selecção encadeada Homogênea Estrutura de Selecção Chamamos de estrutura de selecção encadeada homogénea a construção de diversas estruturas de Selecção encadeadas que seguem um determinado padrão lógico.
  58. 58. Selecção encadeada Homogênea – Se Então Se Suponhamos que pretendemos executar um comando cmd num algoritmo se forem satisfeitas as condições condição1, condição2, condição3. Então temos: Se < condição1 > Então Se < condição2> Então Se < condição3> Então cmd; Fim_Se Fim_Se Fim_Se Equivalente a: Se (<condição1> e <condição2> e <condição3> ) Então cmd; Fim_Se Esta construção segue um padrão: Após cada Então existe outro Se Não existem “Senões” O cmd é executado somente quando todas as condições forem ao mesmo tempoVerdadeiras
  59. 59. Selecção encadeada Homogênea – Se Senão Se Suponhamos que em determinado algoritmo uma variável X possa assumir apenas 3 valores, V1, V2 e V3, e que exista um comando diferente que será executado para cada valor armazenado em X: Não se trata de uma estrutura encadeada Todas as condições serão avaliadas, portanto ocorrerá testes desnecessário Para reduzir a quantidade de testes será necessário transforma-lo em estrutura encadeada Se ( X =V1 ) Então C1 Fim_Se Se (X =V2 ) Então C2 Fim_Se Se (X =V3 ) Então C3 Fim_Se Se ( X =V1 ) Então C1 Senão Se ( X =V2 ) Então C2 Senão Se ( X =V3 ) Então C3 Fim_Se Fim_Se Fim_Se
  60. 60. Quando um conjunto de valores discretos precisa ser testado e acções diferentes são associados a esses valores, estamos diante de uma selecção encadeada homogénea do tipo Se-Senão-Se. Esta situação é frequente na construção de algoritmos que dependem de alternativas, logo, utilizaremos uma específica para estes casos, a selecção de múltipla escolha. Escolha X caso V1: C1; caso V2: C2; caso V3: C3; Fim_escolha Selecção de multipla escolha: ESCOLHA … CASO Caso o conteúdo da variável X seja igual ao valorVn, então, o comando Cn será executado; caso contrário, serão inspeccionados os outros casos até ser encontrada uma igualdade ou terminarem os casos.
  61. 61.  Para executar um comando que possui mais de um valor em que se verifica sua necessidade, agrupamos todos esses valores em um único caso.  Para executar um comando que se verifica com todos os valores, excepto os discriminados caso a caso, incluímos outra situação: caso contrário Escolha X caso V1: C1; caso V2,V3: C2; caso V4: C3; caso contrário: C4; Fim_escolha Selecção de multipla escolha – Cont.
  62. 62. Construa um algoritmo que, tendo dados de entrada o preço de um produto e o seu código de origem, mostre o preço junto da sua procedência. Caso o código não seja nenhum dos especificado, o produto deve ser encarado como importado. Siga a tabela de códigos a seguir: Exemplo Código de Origem Procedência 1 Cunene 2 Uíge 3 Moxico 4 Benguela 5 ou 6 Lunda Norte 7, 8 ou 9 Kuando Kubango 10 até 20 Huambo 25 até 30 Cabinda
  63. 63. Exemplo Algoritmo preco_origem VAR preco: REAL origem: INTEIRO INICIO leia(preco, origem) escolha origem caso 1: Escreva(preco,“ – produto de Cunene”) caso 2: Escreva(preco,“ – produto de Uíge”) caso 3: Escreva(preco,“ – produto de Moxico”) caso 4: Escreva(preco,“ – produto de Benguela”) caso 5,6: Escreva(preco,“ – produto de Lunda Norte”) caso 7,8,9: Escreva(preco,“ – produto de Kuando Kubango”) caso 10 … 20 : Escreva(preco,“ – produto de Huambo”) caso 20 … 30 : Escreva(preco,“ – produto de Cabinda”) caso contrário: Escreva(preco,“ – produto Importado”) fim_escolha FIM
  64. 64. Exercícios 1.Escreva um algoritmo que leia três valores inteiros e diferentes e mostre-os em ordem decrescente. Utilize para tal uma selecção encadeada. 2.Desenvolva um algoritmo que calcule as raízes de uma equação do 2ºgrau, na forma Ax2+Bx+C, levando em consideração a existência de raízes reais. 3.Tendo dados de entrada a altura e o sexo de uma pessoa, construa um algoritmo que calcule seu peso ideal, utilizando as seguintes fórmulas: • Para homens: (72.7 * h) – 58; • Para mulheres: (62.1 * h) – 44.7; 4.Faça um algoritmo que leia o ano de nascimento de uma pessoa, calcule e mostre sua idade e, também, verifique e mostre se ela já tem idade para votar (16 anos ou mais) e para conseguir carta de condução(18 anos ou mais). 5.Escreva um algoritmo que leia o código de um determinado produto e mostre a sua classificação. Utilize a seguinte tabela como referencias: (exercício 2.6 pag.46)

×