Upload
joao-gomes
View
6.728
Download
0
Embed Size (px)
Citation preview
PROGRAMAÇÃO I
Faculdade de CiênciasUniversidade Agostinho Neto
Curso: Ciências da Computação
•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
Índice1. 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
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
Conceito de Algoritmo
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
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
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
É 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
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
Formas de Representação de AlgoritmosFluxograma 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
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
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
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
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.
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
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
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
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
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.
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
ComputacionalMatemática
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 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
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
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
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.
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
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
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
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
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
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)
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
INICIO
ESCREVA(“Olá Programadores”)
FIM
Algoritmo EscreveMsg
VAR msg: caractere
INICIO
msg “Olá Programadores”
ESCREVA(msg)
FIM
ou
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 Sequencial
• Estrutura de Selecção
• Estrutura de Repetição
Estrutura de Controlo
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 SequencialEx. 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
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
Em diagrama de blocos ficaria assim:
Sim
Não
Aprovado
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
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
ReprovadoAprovado
Se (media >= 10.0 ) então
ESCREVA “ Aprovado(a)”
Senão
ESCREVA “ Reprovado(a)”
Fim_Se
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.
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.
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
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
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
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.
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
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
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
valor Vn, 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.
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.
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
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)