Escolar Documentos
Profissional Documentos
Cultura Documentos
11/12/2020 1
Unidade II – Introdução aos Algoritmos
11/12/2020 2
Sumário da Unidade II
Algoritmo
Introdução a Álgebra Booleana
Operadores Lógicos
Expressões Lógicas
Operadores Aritméticos e Relacionais
Variáveis e Expressões
Sinal de Atribuição X Sinal de Igualdade
Comandos de Entrada e Saída
Utilizando Funções Pré-definidas
Estrutura geral de um Algoritmo
Estruturas Sequenciais
Estruturas de Decisão
Estruturas de Condicionais
Estrutura de Repetição Determinada e Indeterminada
Exercícios
11/12/2020 3
Algoritmo
Conjunto ordenado de passos
utilizados para resolver um problema;
Algoritmos são executados de cima
para baixo, da esquerda para direita,
observando cada linha que compõe o
algoritmo e executando de acordo com
cada instrução nele presente.
11/12/2020 4
Exemplo de Algoritmo
Originar uma chamada telefônica em um telefone
convencional:
1. Tirar o fone do gancho;
2. Escutar o sinal de linha;
3. Se houver sinal de linha para discar,
tecle os números do telefone e aguarde o
sinal;
4. Escutar o sinal (ocupado, chamando, mudo,
etc.);
5. Se ocupado ou mudo ou com interferência,
termine a ligação;
6. Se chamando, aguarde atendimento,
estabeleça conversão e após encerrada
termine a ligação.
11/12/2020 5
Introdução a Lógica Booleana
Objetivos:
Uma revisão da formulação apresentada
pela Álgebra de Boole é importante para os
usuários de circuitos à relés e
controladores programáveis;
Revisar os conceitos básicos da lógica
booleana visando a sua utilização em
projetos de circuitos.
11/12/2020 6
Variável e expressão booleana
Variável booleana é um literal que
representa o estado de alguma coisa
que possui somente dois estados: falso
ou verdadeiro, aberto ou fechado, está
presente ou não está presente, etc.
Expressão booleana é uma expressão
que relaciona uma ou mais variáveis
booleanas através dos operadores
booleanos (E, OU e negação).
11/12/2020 7
Operações Básicas
Negação (não)
A negação da proposição "A" é a proposição “não(A)", de maneira
que se "A" é verdade então “não(A)" é falsa, e vice-versa.
Conjunção (e / .)
A conjunção é verdadeira se e somente se TODOS os
operandos são verdadeiros.
Disjunção (ou / +)
A disjunção é falsa se e somente se
TODOS os operandos forem falsos.
11/12/2020 8
Prioridade dos operadores lógicos
1. Negação (não)
2. Conjunção (e)
3. Disjunção (ou)
11/12/2020 9
Expressões lógicas
Exemplos:
não(3!=3) Verdadeiro
11/12/2020 10
Operadores Aritméticos e Relacionais
OPERADORES ARITMÉTICOS
** Exponenciação
* Multiplicação
/ Divisão
+ Adição
- Subtração
OPERADORES RELACIONAIS
> Maior que
== Igual
=! Diferente 11/12/2020 11
Prioridade dos operadores
Lógicos:
1. Negação (não)
2. Conjunção (e / .)
3. Disjunção (ou / +)
Aritméticos
1. Exponenciação
2. Multiplicação e Divisão
3. Adição e Subtração
11/12/2020 12
Linearização de expressões
Para a construção de Algoritmos todas
as expressões aritméticas devem ser
linearizadas, ou seja, colocadas em
linhas.
2
3 5 3 1
(2/3+(5-3))+1=
Computacional
Matemática
11/12/2020 13
Modularização de expressões
É a divisão da expressão em partes,
proporcionando maior compreensão e
definindo prioridades para resolução da
mesma.
Exemplos de prioridades:
(2+2)/2 = 2
2+2/2 = 3
11/12/2020 14
Variáveis
São endereços de memória destinados a armazenar
informações temporariamente.
2 5 7
11/12/2020 15
Nomes de Variáveis
Nomes podem ser compostos de
algarismos, letras ou "_" ;
Evite usar nomes curtos ou com
apenas uma letra, pois isso dificulta a
manutenção do programa em
momentos futuros;
Não utilize acentos ou caracteres
especiais em variáveis.
11/12/2020 16
Expressões
São utilizadas para manipular valores e
variáveis, toda expressão retorna um
valor que também fica guardado em
uma variável;
Exemplos:
F = m * a
E = m * c * c
Volume = AreaBase * h
11/12/2020 17
Exercício 1
1) Qual o resultado de X e Y nas seguintes expressões:
X=1 + 7 * 2 ** 2 - 1
Y=3 * (1 - 2) + 4 * 2
2) Avalie as expressões abaixo sabendo que
x = 2 e y = 3 e calcule os valores e M e N:
M=3 * y - x ** 2 * (7 - y ** 2)
N=2 * x * (3 - y) / (x ** 2 - y )
3) Escreva as fórmulas a seguir como expressões
computacionais:
11/12/2020 18
Respostas dos Exercício 1
1)
1 + 7 * 2 ** 2 – 1 = 28
3 * (1 - 2) + 4 * 2 = 5
2) Para X = 2 e Y = 3
3 * y - x ** 2 * (7 - y ** 2) = 17
2 * x * (3 - y) / (x ** 2 - y ) = 0
3)
r = 2 * y ** 2 + 3 * z ou r = 2 * y * y + 3 * z
x = ( -b + (b * b - 4 * a * c) ** (½)) / (2 * a)
11/12/2020 19
Exercício 2
Sabendo que A=5, B=4, C=3 e D=6, dê o resultado de
X nas seguintes expressões:
X = B+D/2
X =(B+A) <= C
X =(C + B) > A
X =(A > C) E (C <= D)
X =((A+B) > 10) OU ((A+B) = (C+D))
X =((A >= C) E (D >= C))OU (A>=5)
Sabendo que A=V, B=F, C=F e D=V, dê o resultado
(R) das seguintes expressões:
R = A E B OU C E B OU A OU NÃO(NÃO(B) E D) E NÃO(A)
R =(NÃO(D E A OU NÃO(C)) E NÃO(D) E NÃO(A)) OU NÃO(C) OU (A)
R = A E B E C OU NÃO(A) E NÃO(B) E NÃO(C) OU D OU C
R = NÃO(A) E NÃO(B) OU NÃO(A) E B
R = (A E B E NÃO(C)) E (NÃO(A) OU NÃO(B) OU NÃO(C))
R = NÃO(NÃO(A E C) OU B OU D) OU C E NÃO(A E C E D)
R = NÃO(A) E B OU A E NÃO(B) OU A E B
11/12/2020 20
Fim da aula 1
11/12/2020 21
Tipos de dados
Todas variável deve possuir um determinado tipo de dado (domínio). Em algoritmos
INTEIRO: Admite somente números inteiros. Geralmente é utilizado para representar uma contagem (quantidade);
REAL: Admite números reais (com ou sem casas decimais). Geralmente é utilizado para representar uma
medição;
CARACTERE: Admite caracteres alfanuméricos. Os números quando declarados como caracteres tornam se
representativos e perdem a atribuição de valor. Um dado do tipo caractere sempre aparece entre aspas;
11/12/2020 22
Tipo de dados em Variáveis e
Expressões
11/12/2020 23
Declarando os tipos de dados
Ao criarmos uma variável é necessário que seu tipo seja explicitamente declarado, ou seja,
Exemplos:
C = A + B
Aluno = "Bernardo"
real M,N,P
Semestre = "1"
M = 1,77
N = 2,00
P = M + N
logico X,Y,Z
X11/12/2020
= V 24
Atribuindo valores a variáveis
Toda variável está preparada para receber um valor por vez,
esse valor é associado ao nome da variável, que guarda
provisoriamente esse valor utilizando a memória RAM do
computador;
O sinal de atribuição é representado por "="
Forma:
<tipo de dados> <nome_variável> = <expressão ou valor>
Exemplos:
real Nivel = 1.2
inteiro Idade = 8
caractere nome = “Fulano de tal”
caractere simboloNumero1=“1”
caractere simboloNumero2=“2”
caractere simbolos = simboloNumero1+simboloNumero2
inteiro calculoIdade = Idade+10
11/12/2020 25
Atribuição X Comparação
Atribuir é associar um valor a uma variável.
Ex:
inteiro Idade = 8
// o conteúdo da variável Idade É igual a 8 !
(Idade == IdadeMinima)
// o conteúdo da variável Idade é igual ao conteúdo da variável IdadeMinima ?
11/12/2020 26
Funções Internas
Uma função é um instrumento (subalgoritmo) que tem como objetivo retornar um valor ou uma
informação.
A chamada de uma função é feita através da citação do seu nome seguido opcionalmente de seu
seu interesse.
Processamento
X=9 x
Valor Inicial
Y=3
X Valor Final Y
11/12/2020 27
Funções pré-definidas
Funções recebem um parâmetro (valor) de um determinado
tipo, processam este parâmetro e retornam outro valor, que
pode ou não ser do mesmo tipo de dados;
As funções podem ser nativas, definidas pela própria
linguagem, ou podem ser escritas pelo programador, uma
função pode usar outras funções em seu processamento.
Exemplos de funções pré-definidas:
11/12/2020 28
Exercício
Considere os seguintes valores para as
variáveis: A = 5, C = -8, B = 10, D = 1.5.
Em seguida calcule o valor de X.
X = 2 * A MOD 3 – C DIV MAX(2,3)
X = (20 DIV 3 ) DIV 3
X = 30 MOD 4 * POT ( 3, 3 )
X = POT (-C, 2) + (D * 10) / A
X = MIN(POT (5, 3) - 4 / 2 + SQRT (9) / 2,POT(4,2)*LOG(B))
X = POT (B,2) - 4 * A * C
11/12/2020 29
Comandos de entrada/saída
Comando de Entrada (LEIA):
Instrução que diz ao computador que ele deverá LER valores
vindos do TECLADO e guarda-los em variáveis, para posterior
processamento.
Ex:
LEIA (A)
LEIA (A,B,C)
Comando de Saída (ESCREVA):
São instruções que dizem ao computador que ele deverá EXIBIR
na TELA, o valor armazenados nas variáveis que estão associadas
a instrução de saída.
Ex:
ESCREVA ("Algoritmos")
ESCREVA (A)
ESCREVA (A,B,C)
ESCREVA ("O Valor da área é:", Area)
11/12/2020 30
Exemplos
Exemplos com a instruções de ATRIBUIÇÃO e ENTRADA DE DADOS:
A = 2 // atribuição
LEIA (C)
Exemplos com ESCREVA:
A = 2
B = 7
LEIA (C)
ESCREVA (A)
11/12/2020 31
Estrutura Geral de um Algoritmo
ALGORITMO nomeAlgoritmo
tipodedados Variavel
comando1
comando2
...
comandoN
11/12/2020 32
Algoritmos / Exemplo1
Ex: Este algoritmo lê o nome e as quatro notas de um aluno e calcula sua média.
ALGORITMO EXEMPLO1
CARACTERE NOME
LEIA (NOME)
11/12/2020 33
Algoritmos / Exemplo2
O que faz esse algoritmo ?
ALGORITMO EXEMPLO2
PI = 3.1416
LEIA (RAIO)
AREA = PI * RAIO**2
}
11/12/2020 34
Exercícios – Estrutura Básica
Resolveros exercício da Lista 1 de
Algoritmos.
11/12/2020 35
Estruturas de decisão
Executam uma sequência de comandos de acordo com o
resultado de um teste. A estrutura de decisão pode ser simples
ou composta, baseada em um resultado lógico.
se <condição>
Composta
Simples {
se <condição>
<<comando1>>
{
}
<<comando1>>
senão
}
{
<<comando2>>
V F
comando1
comando1 comando2
{}
As chaves são usadas para
11/12/2020 36
delimitar blocos vinculados
Algoritmos / Exemplo3
Algoritmo EXEMPLO3
INTEIRO A,B,SOMA
LEIA (A,B)
SOMA = (A + B)
SE (SOMA>=14)
ESCREVA (“APROVADO”)
11/12/2020 37
Algoritmos / Exemplo4
ALGORITMO EXEMPLO4
CARACTERE NOME
LEIA (NOME)
SE (MEDIA>=6)
ESCREVA ("APROVADO")
SENAO
ESCREVA ("REPROVADO")
}
11/12/2020 38
ESCREVA (NOME, MEDIA)
Estruturas condicionais encaixadas
É possível utilizar comandos condicionais
internamente a outros comandos condicionais, isso
possibilita a execução de múltiplos testes.
Exemplo:
SE (<condição1>)
<<comando1>>
SENÃO SE (<condição2>)
{ <<comando2>>
SENÃO
<<comando3>>
11/12/2020 39
ALGORITMO EXEMPLO 5
{
real nota;
leia(nota)
se (nota<5.0) {
escreva("INSUFICIENTE");
}
senão se (nota<8.0) {
escreva("REGULAR");
}
senão se(nota<9.0) {
escreva("BOM");
}
senão {
escreva("EXCELENTE");
}
}
11/12/2020 40
Algoritmos / Exemplo5
ALGORITMO EXEMPLO5 (considerar que são 3 números diferentes)
INTEIRO A, B, C
LEIA (A, B, C)
{ ESCREVA (A) }
SENAO
{ ESCREVA (B) }
SENAO
{ ESCREVA (C) }
11/12/2020 41
ALGORITMO TRIANGULO
REAL A, B, C
LEIA (A, B, C)
SE (A<B+C){
SE (B<C+A){
SE (C<A+B){
SENÃO {
11/12/2020 42
}
ALGORITMO TRIANGULO
REAL A, B, C
LEIA (A, B, C)
SENÃO {
11/12/2020 43
Exercícios – Estruturas Condicionais
Resolver os exercício da Lista 2 de
Algoritmos.
11/12/2020 44
Estruturas de Repetição
São estruturas que permitem a
repetição de comandos. São baseadas
em uma condição, e podem ser de dois
tipos:
Repetição contada: quando a estrutura de
repetição usa uma variável de controle e
uma condição que irá determinar o
número de repetições ;
Repetição condicional: quando o número
de repetições depende exclusivamente
de uma condição.
11/12/2020 45
Repetição contada
Sequência de comandos executada repetidas vezes. A
estrutura de repetição, assim como a de decisão,
envolve sempre a avaliação de uma condição.
Forma Geral:
{}
As chaves são usadas para
a estrutura 11/12/2020 46
Algoritmos / Exemplo7
ALGORITMO EXEMPLO7
INTEIRO contador
PARA(contador=1;contador<=10;contador++)
ESCREVA ("TESTE")
11/12/2020 47
Algoritmos / Exemplo8
ALGORITMO "EXEMPLO8"
INTEIRO I,PAR
PAR=2
ESCREVA(PAR)
PAR=PAR+2
}
11/12/2020 48
Repetição Condicional
É usada para repetir N vezes uma ou mais instruções. Tendo como vantagem o fato de não ser
Forma Geral:
<comando1>;
...
<comandoN>;
{}
As chaves são usadas para
11/12/2020 49
Algoritmos / Exemplos 9a/9b
ALGORITMO EXEMPLO9A
ALGORITMO EXEMPLO9B
{
REAL SOMA, N
{
SOMA=0
LEIA(N)
REAL N,PAR
ENQUANTO (N>=0) FACA
{
N=1
SOMA=SOMA+N
LEIA(N) PAR=2
}
ESCREVA (PAR)
11/12/2020 50
Exercícios – Estruturas Condicionais
Resolver os exercício da Lista 3 de
Algoritmos.
11/12/2020 51
Referências bibliográficas
1. Costa, Renato. Lógica de Programação. Setembro de
2000.
2. Forbellone, A. L. V., Eberspacher, H., F., Lógica de
Programação – A Construção de Algoritmos e
Estruturas de Dados, Makron, 1993.
3. Guimarães, A. M., Lages, N. A. C., Introdução à Ciência da
Computação, LTC, 1991.
4. Tremblay, J. P., Bunt, R. B., Ciência dos Computadores -
uma Abordagem Algorítmica, McGraw-Hill, 1983.
52