Você está na página 1de 52

UEPA

Universidade do Estado do Pará – UEPA

Prof. Paulo Lima


http://paulolima.net.br

Disciplina: Introdução à Computação

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:

(2+5>4) e (3!=3)  Falso

(2+5>4) ou (3!=3)  Verdadeiro

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

 <  Menor que

 >=  Maior ou Igual

 <=  Menor ou Igual

 ==  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.

 VARIÁVEIS DE ENTRADA E SAÍDA


 Variáveis de Entrada armazenam informações
fornecidas por um meio externo, normalmente usuários
ou discos.
 Variáveis de Saída armazenam dados processados
como resultados.
Exemplo: A=
A B C=A+B

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

iremos considerar os seguintes tipos básicos:

 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;

 LÓGICO: Admite somente valores lógicos (V / F).

11/12/2020 22
Tipo de dados em Variáveis e
Expressões

 Variáveis:armazenam valores, que são


combinados em expressões;
 Toda variável ao ser declarada precisa ter um
tipo de dados antes do seu nome;
 Exemplo de nome de variáveis:
 real nota;
 inteiro idade;
 logico estadoLampada;
 caractere nome.

11/12/2020 23
Declarando os tipos de dados
 Ao criarmos uma variável é necessário que seu tipo seja explicitamente declarado, ou seja,

os valores a ela atribuídos deverão ser sempre do mesmo tipo.

 Exemplos:

inteiro A,B,C caractere Nome, Aluno, Semestre


A = 2
Nome = "Computação"
B = 3

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 !

 Comparar é verificar se o valor de uma varável é


igual a um valor ou igual a outra variável.
 Ex:
 (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

argumento inicial entre parênteses.


 As funções podem ser predefinidas pela linguagem ou criadas pelo programador de acordo com o

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 (B) // entrada de dados

LEIA (C)

D = A + B + C ----- Qual o Valor de D ?


Exemplos com ESCREVA:

A = 2

B = 7

LEIA (C)

ESCREVA (A)

ESCREVA ("O Valor de A é ", A)

ESCREVA ("O Valor de A+B é ", A+B)

ESCREVA ("O Valor de C é ", C)

11/12/2020 31
Estrutura Geral de um Algoritmo

ALGORITMO nomeAlgoritmo

tipodedados Variavel

//comandos ou instruções do algoritmo

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

REAL NOTA1, NOTA2, NOTA3, NOTA4, MEDIA

CARACTERE NOME

LEIA (NOME)

LEIA (NOTA1, NOTA2, NOTA3, NOTA4)

MEDIA = (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4

ESCREVA (NOME, MEDIA)

11/12/2020 33
Algoritmos / Exemplo2
O que faz esse algoritmo ?

ALGORITMO EXEMPLO2

REAL RAIO, AREA,PI

PI = 3.1416

LEIA (RAIO)

AREA = PI * RAIO**2

ESCREVA ("AREA =", AREA)

}
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

REAL NOTA1, NOTA2, NOTA3, NOTA4, MEDIA

CARACTERE NOME

LEIA (NOME)

LEIA (NOTA1, NOTA2, NOTA3, NOTA4)

MEDIA = (NOTA1 + NOTA2 + NOTA3 + NOTA4) / 4

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)

SE (A>B && A>C)

{ ESCREVA (A) }

SENAO

SE (B>A && B>C)

{ ESCREVA (B) }

SENAO

{ ESCREVA (C) }

11/12/2020 41
ALGORITMO TRIANGULO

REAL A, B, C

ESCREVA (“INFORME OS LADOS A, B e C:”)

LEIA (A, B, C)

SE (A<B+C){

SE (B<C+A){

SE (C<A+B){

ESCREVA (“EXISTE TRIANGULO”)

SENÃO {

ESCREVA (“NÃO EXISTE TRIANGULO”)

11/12/2020 42
}
ALGORITMO TRIANGULO

REAL A, B, C

ESCREVA (“INFORME OS LADOS A, B e C:”)

LEIA (A, B, C)

SE (A<B+C) E (B<C+A) E (C<A+B) {

ESCREVA (“EXISTE TRIANGULO”)

SENÃO {

ESCREVA (“NÃO EXISTE TRIANGULO”)

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:

Para (<variável>=<valor inicial>;<condição de parada>;incremento)


{
<comando1>;
...
<comandon>;
}

{}
As chaves são usadas para

delimitar blocos vinculados

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

PARA(I=1; I<=10; I++)

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

necessário o conhecimento prévio do número de repetições.

 Forma Geral:

Enquanto (<condição>) faça

<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("SOMA=",SOMA) ENQUANTO (N<=10) FACA


}
{

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

Você também pode gostar