TIAGO SANTOS
SANTOS.T.J.DOS@GMAIL.COM
Introdução à Lógica de Programação
Tópicos Preliminares
Agenda
• Linguagem algorítmica
• Variáveis
• Operadores e Expressões
• Comandos de Entrada e Saída
Linguagem algorítmica
Linguagem algorítmica
• Linguagem algorítmica (pseudocódigo): Linguagem estruturada para representação de um algoritmo
• Sem padrão definido: Livros sobre o tema assumem padrões distintos, mas as estruturas possuem a
mesma finalidade
• Padrão adotado nesta disciplina:
• VisuAlg: https://www.apoioinformatica.inf.br/produtos/visualg
Linguagem algorítmica - VisuAlg
• Estrutura básica:
algoritmo "<Nome do algoritmo>"
var
[declaração das variáveis]
[definição dos subprogramas]
inicio
[expressões, comandos ...]
fimalgoritmo
Linguagem algorítmica - VisuAlg
• Palavras reservadas: Palavras com significado próprio dentro da linguagem algorítmica
• algoritmo: Especifica o início da definição do algoritmo
• var: Especifica a região de declaração de variáveis
• inicio: Especifica a região das instruções (comandos, expressões ...) do algoritmo
• fimalgoritmo: Especifica o fim da definição do algoritmo
Variáveis
Variáveis
• Servem para armazenar informação
• Essas informações podem variar no tempo
• Armazenam apenas informação de um único tipo de dado
• Declaração:
var
<identificador>: <tipo>
Variáveis - Tipo
• inteiro: informação numérica pertencente ao conjunto dos números inteiros
• Ela tem 15 anos de idade
• Eu posso 2 carros
• real: informação numérica pertencente ao conjunto dos números reais
• O valor de π é 3.14
• Ela tem 1.82 metro de altura
• numerico: inteiro ou real
Variáveis - Tipo
• caractere: informação constituída por um conjunto de caracteres
• Havia um aviso no muro: “Não jogue lixo aqui!”
• Em época de eleição sempre tem em muros: “Vote em mim.”
• logico: informação que pode assumir apenas dois estados (verdadeiro ou falso)
• A televisão está ligada: verdadeiro
• O usuário respondeu positivamente: falso
Variáveis - Identificador
• Regras para nomenclatura de um identificador:
1. Caracteres permitidos:
• A, B, C, ..., X, Y, Z
• a, b, c, ..., x, y, z
• 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
• _
2. O primeiro caractere não pode ser numérico 3. Não pode existir dois identificadores iguais
independentemente de tipo
4. Não pode utilizar palavras reservadas
Variáveis - Identificador
• Dependendo da linguagem não existe diferença entre letras maiúsculas e minúsculas
• VisuAlg: NomeDaVariavel = NOMEdaVARIAVEL
• Sempre criar identificadores autoexplicativos:
• n1, ni e n3 – Não são identificadores autoexplicativos
• nota1, notaInterdisciplinar, nota3 – São identificadores autoexplicativos
Variáveis - Identificador
• Quais identificadores não são válidos?
• %deDesconto
• porcentagem de Desconto
• porcentagemDeDesconto
• ValorServiço
• ValorServico
• Real
• logico
• VelocidadeKm/h
• VelocidadeKmPorH
• 1Opcao
• primeiraOpcao
• 13salario
Variáveis - Identificador
• Quais identificadores não são válidos?
• %deDesconto
• porcentagem de Desconto
• porcentagemDeDesconto
• ValorServiço
• ValorServico
• Real
• logico
• VelocidadeKm/h
• VelocidadeKmPorH
• 1Opcao
• primeiraOpcao
• 13salario
Variáveis - Identificador
• Quais identificadores não são válidos?
• %deDesconto (símbolo especial %)
• porcentagem de Desconto (espaço em branco)
• ValorServiço (uso do ç)
• Real (palavra reservada)
• logico (palavra reservada)
• VelocidadeKm/h (símbolo especial /)
• 1Opcao (Não começou com letra ou _)
• 13salario (Não começou com letra ou _)
Variáveis - Declaração
var
<identificador>: <tipo>
• Exemplo:
var
endereco, complemento: caractere numero: inteiro
eApartamento: logico
imovelLatitude, imovelLogitude: real
Variáveis - Atribuição
<identificador> <- <valor>
• Exemplo:
endereço <- "Rua Cais do Apolo"
complemento <- "Condomínio Solar BL 4 APT 102"
Numero <- 97
eApartamento <- verdadeiro imovelLatitude <- 3.5587
imovelLogitude <- 1.5578
Operadores e Expressões
Operadores aritméticos
Operador Tipo Função Expressões
- Unário Negativação - 2 - 2.5
+ Binário Adição 3 + 2 = 5 6.25 + 2.5 = 8.75
– Binário Subtração 3 – 2 = 1 6.25 – 2.5 = 3.75
* Binário Multiplicação 3 * 2 = 6 6.25 * 2.5 = 15.625
\ ou / Binário Divisão 3 \ 2 = 1 6.25 / 2.5 = 2.5
^ Binário Potenciação - 6.25 ^ 2.5 = 97.65625
% Binário Resto de divisão 3 % 2 = 1 -
Operadores aritméticos
Prioridade Operadores
1º Parênteses mais internos
2º - (unário)
3º ^
4º * / \
5º %
6º + -
Operadores aritméticos
• Exemplos:
algoritmo "Operadores Aritméticos Inteiros"
varnumInt1, numInt2, numInt3, resultado: inteiro Inicio
numInt1 <- 16 numInt2 <- 5 numInt3 <- 3
resultado <- numInt1 \ numInt2 % numInt3 resultado <- (numInt1 \ numInt2) % numInt3 resultado <- numInt1 \ (numInt2 % numInt3) fimalgoritmo
Operadores aritméticos
• Exemplos:
algoritmo "Operadores Aritméticos Reais"
varnumReal1, numReal2, numReal3, resultado: real Inicio
numReal1 <- 16 numReal2 <- 5 numReal3 <- 3
resultado <- numReal1 / numReal2 ^ numReal3 resultado <- (numReal1 / numReal2) ^ numReal3 resultado <- numReal1 / (numReal2 ^ numReal3) fimalgoritmo
Operadores aritméticos
• Exemplos:
algoritmo "Operadores Unários"
varnumInt1, numInt2: inteiro numReal1, numReal2: real Inicio
numInt1 <- -16 numInt2 <- 5
numInt1 <- numInt1 + 1 numInt2 <- - numInt2 + 1 numReal1 <- -16
numReal2 <- 5
numReal1 <- numReal1 + 1 numReal2 <- -numReal2 + 1 fimalgoritmo
Operadores lógicos
Operador Função
nao Negação
e Conjunção
ou Disjunção não-exclusiva
Operadores lógicos - Tabela verdade
• “É o conjunto de todas as possibilidades
combinatórias entre os valores de diversas variáveis lógicas, as quais se encontram em apenas duas
situações (Verdadeiro ou Falso), e um conjunto de operadores lógicos.”
Operação de negação (nao)
p nao p
F V
V F
Operadores lógicos - Tabela verdade
Operação de conjunção (e)
p q p e q
F F F
F V F
V F F
V V V
Operadores lógicos - Tabela verdade
Operação de disjunção não-exclusiva (ou)
p q p ou q
F F F
F V V
V F V
V V V
Operadores lógicos
Prioridade Operadores
1º Parênteses mais internos
2º nao
3º e
4º ou
Operadores lógicos - Tabela verdade
(p ou q) e nao(p e q)
p q p ou q p e q nao(p e q) (p ou q) e nao(p e q)
F F
F V
V F
V V
Operadores lógicos - Tabela verdade
(p ou q) e nao(p e q)
p q p ou q p e q nao(p e q) (p ou q) e nao(p e q)
F F F
F V V
V F V
V V V
Operadores lógicos - Tabela verdade
(p ou q) e nao(p e q)
p q p ou q p e q nao(p e q) (p ou q) e nao(p e q)
F F F F
F V V F
V F V F
V V V V
Operadores lógicos - Tabela verdade
(p ou q) e nao(p e q)
p q p ou q p e q nao(p e q) (p ou q) e nao(p e q)
F F F F V
F V V F V
V F V F V
V V V V F
Operadores lógicos - Tabela verdade
(p ou q) e nao(p e q)
p q p ou q p e q nao(p e q) (p ou q) e nao(p e q)
F F F F V F
F V V F V V
V F V F V V
V V V V F F
Operadores lógicos - Tabela verdade
Operação de disjunção exclusiva (xou)
p q p ou q
F F F
F V V
V F V
V V F
Operadores relacionais
Operador Função Expressões
= Igual a 3 = 3 - Verdadeiro 3 = 4 - Falso
> Maior que 5 > 4 - Verdadeiro 4 > 5 - Falso
< Menor que 3 < 6 - Verdadeiro 6 < 3 - Falso
>= Maior ou igual a 5 >= 3 - Verdadeiro 3 >= 3 - Falso
<= Menor ou igual a 3 <= 5 - Verdadeiro 5 <= 3 - Falso
<> Diferente de 8 <> 9 - Verdadeiro 8 <> 8 - Falso
Operadores relacionais
• nao(2 < 5) = (2 >= 5)
• nao(2 = 2) = (2 <> 2)
• nao(2 > 5) = (2 <= 5)
Operadores
• Verdadeiro = Falso
• Verdadeiro <> Verdadeiro
• “Texto” = “Texto”
• “Texto” <> “Texto”
• “a” < “b”
• “b” > “a”
Operadores
Prioridade Operadores
1º Parênteses mais internos
2º Operadores aritméticos
3º Operadores relacionais
4º Operadores lógicos
Operadores
• 2 < 5 e 16 \ 3 = 5
• 2 < 5 ou 15 \ 3 <> 5
Operadores
• 2 < 5 e 16 \ 3 = 5 2 < 5 e 5 = 5
Verdadeiro e 5 = 5
Verdadeiro e Verdadeiro Verdadeiro
Operadores
• 2 < 5 ou 15 \ 3 <> 5 2 < 5 ou 5 <> 5
Verdadeiro ou 5 <> 5 Verdadeiro ou Falso Verdadeiro
Comandos de Entrada e
Saída
Comando de entrada e saída
algoritmo "Comando de Entrada e Saída"
varvalorReal: real
valorInteiro: inteiro valorLogico: logico
valorCaractere: caractere Inicio
leia(valorReal) leia(valorInteiro) leia(valorLogico) leia(valorCaractere)
escreval("Valor real:", valorReal)
escreval("Valor inteiro:", valorInteiro) escreval("Valor logico:", valorLogico)
escreva("Valor caractere:", valorCaractere) fimalgoritmo
Resumindo ...
• Linguagem algorítmica
• VisuAlg
• Variáveis
• Tipo
• Identificador
• Declaração
• Atribuição
• Operadores e Expressões
• Aritmético
• Lógico
• Tabela verdade
• Relacional
• Comandos de Entrada e Saída
• leia
• escreva
• escreval
TIAGO SANTOS
SANTOS.T.J.DOS@GMAIL.COM
Introdução à Lógica de Programação
Tópicos Preliminares