SlideShare uma empresa Scribd logo
1 de 65
Baixar para ler offline
PROGRAMAÇÃO I
Faculdade de Ciências
Universidade 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
Í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
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 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
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 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
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
Computacional
Matemá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 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
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
Reprovado
Aprovado
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
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.
 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)

Mais conteúdo relacionado

Mais procurados

Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dadosGelber Freitas
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaRegis Magalhães
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmospronatecvja
 
Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programaçãoRogerio de Moraes
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresRegis Magalhães
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmosMauro Pereira
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1engenhariadecomputacao
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoElaine Cecília Gatto
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascalangelicamenegassi
 

Mais procurados (20)

Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
02 algoritmos
02 algoritmos02 algoritmos
02 algoritmos
 
Lógica de Programação
Lógica de ProgramaçãoLógica de Programação
Lógica de Programação
 
Apostila logica algoritmos e estrutuara de dados
Apostila  logica algoritmos e estrutuara de dadosApostila  logica algoritmos e estrutuara de dados
Apostila logica algoritmos e estrutuara de dados
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Aula02
Aula02Aula02
Aula02
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Logica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A LogicaLogica Algoritmo 01 Introducao A Logica
Logica Algoritmo 01 Introducao A Logica
 
Prova algoritmos
Prova algoritmosProva algoritmos
Prova algoritmos
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Fundamentos de logica de programação
Fundamentos de logica de programaçãoFundamentos de logica de programação
Fundamentos de logica de programação
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Algoritmos e Programação
Algoritmos e ProgramaçãoAlgoritmos e Programação
Algoritmos e Programação
 
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis OperadoresLogica Algoritmo 03 Tipos Expressoes Variaveis Operadores
Logica Algoritmo 03 Tipos Expressoes Variaveis Operadores
 
Guia prático para criar algoritmos
Guia prático para criar algoritmosGuia prático para criar algoritmos
Guia prático para criar algoritmos
 
Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1Algoritmo e lógica de programação - Aula 1
Algoritmo e lógica de programação - Aula 1
 
Algoritmos - Lógica de Programação
Algoritmos - Lógica de ProgramaçãoAlgoritmos - Lógica de Programação
Algoritmos - Lógica de Programação
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Algoritmos e linguagem pascal
Algoritmos e linguagem pascalAlgoritmos e linguagem pascal
Algoritmos e linguagem pascal
 
Algoritimo - Raul
Algoritimo - RaulAlgoritimo - Raul
Algoritimo - Raul
 

Destaque

Coletanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-cColetanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-cWilson Kushima
 
300 ideias para programar
300 ideias para programar300 ideias para programar
300 ideias para programarAdrielle Dri
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programarrobinhoct
 
Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Pacc UAB
 
Logica programação
Logica programaçãoLogica programação
Logica programaçãoFIPA
 
Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programaçãoJucir
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Phpsofteam
 
Aula03 conceito de fluxogramas e seqenciamento de açoes
Aula03   conceito de fluxogramas e seqenciamento de açoesAula03   conceito de fluxogramas e seqenciamento de açoes
Aula03 conceito de fluxogramas e seqenciamento de açoesGrupo Tiradentes
 

Destaque (8)

Coletanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-cColetanea de-exercicios-resolvidos-em-liguagem-c
Coletanea de-exercicios-resolvidos-em-liguagem-c
 
300 ideias para programar
300 ideias para programar300 ideias para programar
300 ideias para programar
 
Ideias para programar
Ideias para programarIdeias para programar
Ideias para programar
 
Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2Aula 5 - Estruturas de seleção encadeada - parte 2
Aula 5 - Estruturas de seleção encadeada - parte 2
 
Logica programação
Logica programaçãoLogica programação
Logica programação
 
Algoritmos e programação
Algoritmos e programaçãoAlgoritmos e programação
Algoritmos e programação
 
Exercicios Php
Exercicios PhpExercicios Php
Exercicios Php
 
Aula03 conceito de fluxogramas e seqenciamento de açoes
Aula03   conceito de fluxogramas e seqenciamento de açoesAula03   conceito de fluxogramas e seqenciamento de açoes
Aula03 conceito de fluxogramas e seqenciamento de açoes
 

Semelhante a Aula de programacao_final.dizando

CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOMicrosoft
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosRodrigo Kiyoshi Saito
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturadoNaldo Falaschi
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em pptAndrei Bastos
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturadodasko
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoJose Augusto Cintra
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Robson Ferreira
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosJocelma Rios
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 

Semelhante a Aula de programacao_final.dizando (20)

01 logica
01 logica01 logica
01 logica
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Cap05
Cap05Cap05
Cap05
 
Logica Programação. ...
Logica Programação. ...Logica Programação. ...
Logica Programação. ...
 
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃOCURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
CURSO JAVA - AULA 1 - INTRODUÇÃO LÓGICA DE PROGRAMAÇÃO
 
Algoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmosAlgoritmos - Aula 02 - Construcao de algoritmos
Algoritmos - Aula 02 - Construcao de algoritmos
 
Aula02
Aula02Aula02
Aula02
 
Aula03
Aula03Aula03
Aula03
 
Algorítmo estruturado
Algorítmo estruturadoAlgorítmo estruturado
Algorítmo estruturado
 
Lógica de programação em ppt
Lógica de programação em pptLógica de programação em ppt
Lógica de programação em ppt
 
Algoritmo estruturado
Algoritmo estruturadoAlgoritmo estruturado
Algoritmo estruturado
 
Algoritmos e Lógica de Programação
Algoritmos e Lógica de ProgramaçãoAlgoritmos e Lógica de Programação
Algoritmos e Lógica de Programação
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
 
Algoritmo - tipos de dados
Algoritmo - tipos de dadosAlgoritmo - tipos de dados
Algoritmo - tipos de dados
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Aulas 13 e 14 - Algoritmos
Aulas 13 e 14 - AlgoritmosAulas 13 e 14 - Algoritmos
Aulas 13 e 14 - Algoritmos
 
FC-Logic
FC-LogicFC-Logic
FC-Logic
 
Fascículo1java
Fascículo1javaFascículo1java
Fascículo1java
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 

Aula de programacao_final.dizando

  • 1. PROGRAMAÇÃO I Faculdade de Ciências Universidade Agostinho Neto Curso: Ciências da Computação
  • 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. Í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.
  • 5. 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
  • 6.  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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10.  É 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
  • 11. 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
  • 12. 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
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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).
  • 17. 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
  • 18. Tipo de Dados Temos três tipos de dados: 1. Dados Numéricos 2. Dados Cadeia de caracteres 3. Dados Lógicos
  • 19. 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
  • 20. 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.
  • 21. 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
  • 22. 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.
  • 23. 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
  • 24. 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
  • 25. 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
  • 26. 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.
  • 27. 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
  • 28. 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
  • 29. 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 **
  • 30. 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
  • 31. 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 <=
  • 32. 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
  • 33. 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.
  • 34. 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
  • 35. 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
  • 36. 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
  • 37. 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
  • 38. 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
  • 39. 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
  • 40. 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)
  • 41. Comandos de entrada e saída de dados
  • 42. 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
  • 43. 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
  • 44. 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”.
  • 45. • Estrutura Sequencial • Estrutura de Selecção • Estrutura de Repetição Estrutura de Controlo
  • 46. 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
  • 47. 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
  • 48. 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
  • 49. 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
  • 50. Em diagrama de blocos ficaria assim: Sim Não Aprovado
  • 51. 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
  • 52. 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
  • 53. 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.
  • 54. 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.
  • 55. 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
  • 56. 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
  • 57. 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
  • 58. 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.
  • 59. 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
  • 60. 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
  • 61. 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.
  • 62.  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.
  • 63. 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
  • 64. 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
  • 65. 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)