Buscar

Aula02 Algoritmosp1

Prévia do material em texto

Programação de Computadores
Algoritmos - Parte 1
Prof. Dr. Erivelton Geraldo Nepomuceno
Depto. Engenharia Elétrica
Sala 4.23 EL – Prédio do DEPEL
http://www.ufsj.edu.br/nepomuceno 
nepomuceno@ufsj.edu.br 
1/26
PORTUGOL:
CONCEITOS, REGRAS E CONVENÇÕES
2/26
Constante
● Valor fixo que não se modifica
● Pode ser
○ Numérica
■ Ex.: 25; 2,5; π; 7,8 x 103; -25; -2,5; -π; -7,8 x 103;
○ Lógica
■ Booleana, binária (apenas dois estados possíveis )
■ Conceitos de SIM/NÃO; VERDADEIRO/FALSO; ON/OFF
■ Sintaxe PORTUGOL: verdadeiro, falso
○ Literal
■ Qualquer seqüência de caracteres
■ PORTUGOL: Sempre será colocada entre aspas duplas (“”)
■ Ex.: “ENG. ELÉTRICA”; “2”; “KM660”; “A&%J”; “15/03/12”
3/26
Fixando: Ex. 1.1.4
● Identifique o tipo das constantes:
○ 21
○ “BOLA”
○ “VERDADEIRO”
○ 0,21 x 102
○ falso
4/26
Variáveis
● Representação simbólica de valores
● Na matemática: incógnitas
● Nos algoritmos:
○ Valores que se modificam ao longo do tempo
○ Apenas 1 valor a cada vez
○ Correspondem uma posição/espaço na memória
○ Identificada pelo identificador
■ Ex.: cálculo da área de um retângulo: Área = base.altura, 
podemos usar os identificadores A, b, h
5/26
Formação dos identificadores
● Seqüência de caracteres, exclusivamente de letras ou 
dígitos
● Não são permitidos símbolos ou espaços
○ Exceção: <_> (underscore)
○ Primeiro caractere sempre uma letra
○ Que seja representativas de seu conteúdo
● Exemplos:
PERMITIDOS:
A X5
NOTA A32B
MATRÍCULA FIG3H5
NÃO PERMITIDOS:
5B K-7
E(13) NOTA[1]
A:B BD!
6/26
Fixando: Ex. 1.2.3.1
■ Quais identificadores são válidos?
VALOR SALÁRIO-LÍQUIDO B248
X2 NOTA*DO*ALUNO A1B2C3
2X MARIA KM/H
XYZ NOMEDAEMPRESA SALA215
“NOTA” AH! M{A}
7/26
Fixando: Ex. 1.2.3.1
■ Quais identificadores são válidos?
VALOR SALÁRIO-LÍQUIDO B248
X2 NOTA*DO*ALUNO A1B2C3
2X MARIA KM/H
XYZ NOMEDAEMPRESA SALA215
“NOTA” AH! M{A}
8/26
Declaração de variáveis
● Variáveis só podem armazenar um tipo
● Sintaxe PORTUGOL:
● Ex.:
declare <lista de identificadores> <nome do tipo>
declare NOTA, CODIGO, X5 numérico
declare TESTE, SIM lógico
declare NOME, END1, END2, F1F2 literal
9/26
COMANDOS
DESCRIÇÃO DE UMA AÇÃO A SER EXECUTADA A 
CADA MOMENTO
10/26
Comentário
● Texto livre explicativo
● Auxilia na compreensão do algoritmo
● Implementado em todas as linguagens e ignorado pelo 
computador
● Sintaxe PORTUGOL: entre chaves { }
● Ex.:
declare MAT, {número de matrícula do aluno}
NOTA, {total de pontos obtidos no semestre}
COD {código da disciplina}
11/26
Expressões aritméticas
● Definição
○ Operadores são aritméticos
○ Operandos são constantes ou variáveis do tipo numérico
● Sintaxe PORTUGOL: a mesma da matemática
● Exemplos:
OPERAÇÕES BÁSICAS:
ADIÇÃO SUBTRAÇÃO
MULTIPLICAÇÃO DIVISÃO
POTENCIAÇÃO RADICIAÇÃO
X + Y X - Y X + 10
10 × NOTA TOTAL/N A × B + C
SOMA2 √P TOT/M + KX
12/26
IMPORTANTE!
● Não omitir operador de multiplicação
○ Ex.: AB + C significa:
○ A x B + C ou variável AB + variável C ?
● Prioridade das operações: mesma da 
matemática:
○ Potenciação e radiciação
○ Multiplicação e divisão
○ Adição e subtração
● Para alterar a priorização: parênteses ( )
○ Não usar colchetes ou chaves
○ Símbolo de divisão é a barra: /
○ Não usar ÷
13/26
Funções matemáticas
● Todas linguagens implementam funções matemáticas, 
que podem ser usadas no PORTUGOL:
● X e Y podem ser resultado de operações aritméticas 
básicas ou mesmo de outras funções, desde que 
respeitados os domínios das funções
FUNÇÕES DE VALORES NÚMERICOS X e Y:
LOG(X) LN(X) EXP(X) ABS(X)
TRUNCA(X) ARREDONDA(X) SINAL(X)
RESTO(X,Y) QUOCIENTE(X,Y)
SEN(X) COS(X) TAN(X)
14/26
Expressões lógicas
● Definição
○ Operadores lógicos
○ Operandos: relações, constantes ou variáveis lógicas
● Resultado: valor lógico
● Presente em estruturas de controle de fluxo e 
condicionais
15/26
Relações
● Expressões relacionais
● Comparações entre valores do mesmo tipo
● Exemplo
EXPRESSÕES RELACIONAIS:
= igual a ≠ diferente de
< menor que > maior que
≤ menor ou igual a ≥ maior ou igual a
“JOSÉ”“AZUL”121
“PEDRO”“BRANCO”211
falsofalsoverdadeiro“JOSÉ”“VERDE”134
verdadeiroverdadeirofalso“PAULO”“AZUL”521
NOME ≠ “JOSÉ”COR = 
“AZUL”
X2 +Y > ZNOMECORZYX
RELAÇÕESVARIÁVEIS
falso verdadeirofalso
verdadeiroverdadeiro falso
16/26
Operadores lógicos
● Conectivos usados na formação de novas proposições 
a partir de outras já conhecidas
○ E → para a conjunção
○ OU → para a disjunção
○ NÃO → para a negação
● Sintaxe PORTUGOL:
e
ou
não
17/26
Conjunção
● A conjunção é verdadeira se e somente se ambas as 
proposições são verdadeiras
● Exemplo:
CONSIDERANDO AS PROPOSIÇÕES:
p: OK, onde OK é uma variável lógica cujo conteúdo é verdadeiro
q: A = 0, onde o valor de A é 3
r: TESTE, onde TESTE é uma variável lógica cujo conteúdo é falso
s: B ≠ 1, onde o conteúdo de B é 2
OPERE:
p e s p e r q e s q e r
verdadeiro falso falso falso
18/26
Disjunção
● A disjunção é verdadeira se e somente pelo menos 
uma das proposições for verdadeira
● Exemplo:
CONSIDERANDO AS PROPOSIÇÕES:
p: OK, onde OK é uma variável lógica cujo conteúdo é verdadeiro
q: A = 0, onde o valor de A é 3
r: TESTE, onde TESTE é uma variável lógica cujo conteúdo é falso
s: B ≠ 1, onde o conteúdo de B é 2
OPERE:
p ou s p ou r q ou s q ou r
verdadeiro verdadeiro verdadeiro falso
19/26
Negação
● A negação é verdadeira se a proposição for falsa e 
vice-versa → inversão do sentido lógico
● Exemplo:
CONSIDERANDO AS PROPOSIÇÕES:
p: OK, onde OK é uma variável lógica cujo conteúdo é verdadeiro
q: A = 0, onde o valor de A é 3
r: TESTE, onde TESTE é uma variável lógica cujo conteúdo é falso
s: B ≠ 1, onde o conteúdo de B é 2
OPERE:
não r não p
verdadeiro falso
20/26
Tabelas verdade
FFF
FVF
FFV
VVV
p e qqp
FFF
VVF
VFV
VVV
p ou qqp
VF
FV
não pp
CONJUNÇÃO DISJUNÇÃO
NEGAÇÃO
PRIORIDADE DAS OPERAÇÕES:
1. aritmético
2. relacional
3. não
4. e
5. ou 21/26
Exemplos em PORTUGOL
CONSIDERANDO:
X, Y e Z contendo os valores númericos 2, 5 e 9, respectivamente
Variável literal NOME contendo o valor “MARIA”
Variável lógica SIM contendo o valor lógico falso
OPERE:
X + Y > Z e NOME = “MARIA”
SIM ou Y ≥ X
não SIM e QUOCIENTE(Z, Y) + 1 = X
NOME = “JORGE” e SIM ou X2 < Z + 10
verdadeiro
verdadeiro
falso
verdadeiro
22/26
Expressões literais
● Definição
○ Operandos são variáveis do tipo literal
○ Muito diversas
● Variam de linguagem para linguagem
● Concatenção
○ União de conteúdos
○ A | B
23/26
Comandos de atribuição
● Fornece um valor a uma determinada variável
● A natureza do valor tem que ser compatível com o tipo da variável
● Sintaxe PORTUGOL
● Exemplos
identificador ← expressão
K ← 1
COR ← “VERDE”
TESTE ← falso
A ← B
MÉDIA ← SOMA/N
TESTE ← COR = “VERDE” e não A > B
Primeiro se avalia a 
expressão e só depois 
se faz a atribuição!
24/26
Comandos de entrada e saída
● Comandos para interagir com o usuário
● Entrada: recebe os dados usuário (teclado, mouse)
○ Sintaxe PORTUGOL
● Saída: mostra dados ao usuário (monitor)
● Exemplo: considere variáveis NOME e NOTA, respectivamente literal 
e numérica
leia <lista de identificadores>
escreva <lista de identificadores>
escreva NOME, “-”, NOTA
PAULO-85
25/26
Algoritmo{Seqüência de Fibonacci}
 declare T1, T2, NT, L numérico
 T1 ← 1
 T2 ← 1
 escreva “Querido usuário, informe L: ”
 leia L
 se T1 < L
 então escreva T1 
 fim sese T2 < L
 então escreva T2 
 fim se
 repita
 NT ← T1 + T2
 se NT >= L
 então interrompa
 fim se
 escreva NT
 T1 ← T2
 T2 ← NT
 fim repita
fim algoritmo
26/26

Continue navegando