Loading…

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

Like this presentation? Why not share!

Aula de programacao_final.dizando

on

  • 6,637 views

 

Statistics

Views

Total Views
6,637
Views on SlideShare
6,637
Embed Views
0

Actions

Likes
0
Downloads
84
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Aula de programacao_final.dizando Aula de programacao_final.dizando Presentation Transcript

  • Faculdade de Ciências Universidade Agostinho Neto Curso: Ciências da Computação PROGRAMAÇÃO I
  • •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
  • Í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
  • Conceito de Algoritmo 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  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
  • Formas de Representação de Algoritmos Dentre as formas de representação de algoritmos mais conhecidas podemos citar:  Descrição Narrativa;  Fluxograma convencional;  Pseudocodigo, tambem conhecida como linguagem estruturada.
  • Descriçao Narrativa Nesta forma de representação os algoritmos são expressos directamente em linguagem natural Receita de Bolo Tomando um Banho 1. Misture os ingredientes 1. Entrar no banheiro e tirar a roupa 2. Unte a forma com manteiga 2. Abrir a torneira do chuveiro 3. Despeje a misture na forma 3. Entrar na agua 4. Se houver coco ralado 4. Ensaboar-se então despeje sobre a mistura 5. Sair da agua 5. Leve a forma ao forno 6. Fechar s torneira 6. Enquanto não estiver pronto 7. Enxugar-se deixa a forma no forma 8. Vestir-se 7. Retire do forno 8. Deixar esfriar
  • Formas de Representação de Algoritmos Descriçao Narrativa Troca de pneu furado Calculo da media de um aluno 1. Afrouxar ligeiramente as porcas 1. Obter as suas 2 notas de prova 2. Suspender o carro 2. Calcular a media aritmetica 3. Retirar as porcas e o pneu 3. Se a media for maior que 7, 4. Colocar o pneu reserva 4. O aluno foi aprovado 5. Apertar as porcas 5. Senao 6. Baixar o carro 6. Aluno reprovado 7. Dar o aperto final nas porcas
  • Formas de Representação de Algoritmos Fluxograma Convencional  É 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 Inicio e fim de programa Operação de saida Decisão Operação de atribuição Operação de entrada de dados
  • Formas de Representação de Algoritmos Fluxograma Convencional (Exemplo) inicio N1, N2 Calculo da media de um aluno sob a forma de um fluxograma Media(N1 +N2)/2 Partindo do simbolo inicial, há sempre um único caminho orintado a ser seguido, Media representando a existencia de uma >=7 única sequencia de execução das instruções. Aprovado reprovado Fim
  • Formas de Representação de Algoritmos Pseudocodigo 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 A forma geral da representação de um algoritmo na forma de Algoritmo e uma palavra que indica o inicio pseudocodigo da difinição de um algoritmo em forma de pseudocodigo. <nome_do_algoritmo> e um nome Algoritmo simbolico dado ao algoritmo com a finalidade <nome_do_algoritmo> de distingui-lo dos demais. <declaração de variaveis> consiste em uma <declaracao_de_variaveis> porção opcional onde são declaradas as <subalgoritmos> variaveis globais usadas no algoritmo principal e, eventualmente, nos Inicio subalgoritmos. Inicio e Fim são respectivamente as palavas <corpo do algoritmo> que delimitam o inicio e o termino do conjunto de instruções do corpo do algoritmo. Fim
  • Formas de Representação de Algoritmos Pseudocodigo (Exemplo) Representação do algoritmo do calculo da media de um aluno, na forma de um pseudocodigo. 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
  • 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).
  • 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
  • Tipo de Dados Temos três tipos de dados: 1. Dados Numéricos 2. Dados Cadeia de caracteres 3. Dados Lógicos
  • 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
  • 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.
  • Tipos de Dados 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
  • 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.
  • Variáveis Ex: Basicamente, uma variável possui • SALARIO  correcto três atributos: um nome, um tipo de • 1ANO  incorrecto dado associado a mesma e a • A CASA  incorrecto informação por ela guardada. • SAL/HORA  incorrecto • SAL_HORA  correcto  O nome da variável deve • _DESCONTO  incorrecto necessariamente começar com uma letra;  O nome da variável não pode conter nenhum símbolo especial excepto o sublinha (_).
  • Variáveis 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 chave VAR 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 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
  • 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.
  • Expressões Conceito 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 Matemática Computacional
  • 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
  • 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 **
  • Expressões 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 Operadores aritméticos e + binário Adição 4 sua ordem de prioridade - 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
  • 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 <=
  • Expressões Operadores Relacionais (Exemplo) 1. Tendo A = 7 e B = 10, temos Símbolo utilizado para comparação entre expressões. Expressão Resultado A=B F A <> B V sim Idade>=100 A>B F A<B V A >= B F não A <= B V
  • 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) E (AND): Uma expressão E é verdadeira operador tipo operação prioridade se todas condições forem verdadeiras. OU/OR: Uma expressão OU é verdadeiras se pelo menos uma das OU (OR) BINARIO Disjunção 3 condições for verdadeiras. NÃO(NOT): Uma expressão NÃO E (AND) BINARIO Conjunção 2 inverte o valor da expressão ou condição. NÃO(NOT) UNARIO Negação 1 Operadores lógicos e sua relação de prioridade
  • Expressões Tipo de Expressões 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 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
  • 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
  • Expressões Regras de avaliação de expressões 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 Operadores Aritméticos (Exemplo) Exemplos: a) 1+7*2**2-1=28 b) 3*(2+7)/(5+1) solução: Solução: 1+7*4-1 3*9/(5+1) 1+28-1 3*9/6 29-1 27/6 28 4.5 c) 3*(1-2)+4*2=5 (tpc)
  • 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 i) ( ) A + B/C q) ( )X<L1/RUA b) ( ) A+B+Z j) ( ) A+X/Z c) ( ) NOME + RUA k) ( ) AB=L1 d) ( ) AB l) ( )(A=B) e) ( )JAY m) ( )X+Y/A f) ( )NOME RUA n) ( )X=Z/A g) ( ) L1 OU L2 o) ( )L1**L2 h) ( )RUA<> NOME p) ( )A+B/L2
  • Expressões(Exercícios) 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))
  • Comandos de entrada e saída de dados
  • 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
  • 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 Algoritmo EscreveMsg VAR msg: caractere INICIO INICIO ESCREVA(“Olá Programadores”) ou msg “Olá Programadores” FIM ESCREVA(msg) FIM
  • 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”.
  • Estrutura de Controlo • Estrutura Sequencial • Estrutura de Selecção • Estrutura de Repetição
  • 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
  • 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
  • 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
  • Selecção Simples 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”
  • Em diagrama de blocos ficaria assim: Sim Aprovado Não
  • Estrutura de Selecção Selecção composta “Se <condição> Senão ” 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”
  • Em diagrama Se (media >= 10.0 ) então Não Sim ESCREVA “ Aprovado(a)” Media >=10.0 Senão Reprovado Aprovado ESCREVA “ Reprovado(a)” Fim_Se 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.
  • Estrutura de Selecção Selecção encadeada 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.
  • Estrutura de Selecção Selecção Encadeada Heterogênea 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.
  • 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 comando V // Comando Verdade Fim_Se Senão comando F // Comando Falsidade Fim_Se Fim_Se Fim_Se
  • Selecção encadeada Heterogênea Exemplo 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
  • 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
  • Estrutura de Selecção Selecção encadeada Homogênea 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.
  • 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 > Esta construção segue um padrão: Então Se < condição2>  Após cada Então existe outro Se Então Se < condição3>  Não existem “Senões” Então cmd;  O cmd é executado somente Fim_Se quando todas as condições forem Fim_Se ao mesmo tempo Verdadeiras Fim_Se Equivalente a: Se (<condição1> e <condição2> e <condição3> ) Então cmd; Fim_Se
  • 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: Se ( X = V1 ) Não se trata de uma estrutura encadeada Então C1 Todas as condições serão avaliadas, portanto Fim_Se ocorrerá testes desnecessário Se (X = V2 ) Para reduzir a quantidade de testes será Então C2 necessário transforma-lo em estrutura encadeada Fim_Se Se (X = V3 ) Se ( X = V1 ) Então C3 Então C1 Fim_Se Senão Se ( X = V2 ) Então C2 Senão Se ( X = V3 ) Então C3 Fim_Se Fim_Se Fim_Se
  • Selecção de multipla escolha: ESCOLHA … CASO 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 o conteúdo da variável X seja igual ao caso V2: C2; valor Vn, então, o comando Cn será caso V3: C3; executado; caso contrário, serão Fim_escolha inspeccionados os outros casos até ser encontrada uma igualdade ou terminarem os casos.
  • Selecção de multipla escolha – Cont.  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
  • Exemplo 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: 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
  • 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
  • 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)