Faculdade Laboro: Algoritmos e Lógica de Programação
Faculdade Laboro: Algoritmos e Lógica de Programação
5
Objetivo
n Introduzir os conceitos de Lógica de Programação;
n Familiarizar-se com a nomenclatura e notações de
Linguagens de Programação;
n Desenvolver técnicas de concepção de Sistemas;
n Entender os conceitos aplicados a Resolução de
Problemas;
n Identificar o problema;
n Fazer suposições e interpretações;
n Criar algoritmos para representar as interpretações feitas;
n Fazer o processo de manutenção do algoritmo. 6
Três pilares da Computação
n FÍSICO
n Hardware (CPU + Periféricos)
n LÓGICO
n Firmware (Instruções de Fábrica)
n Software (Programas)
n Algoritmo
n HUMANO
n Peopleware (Profissionais)
7
Conceitos
n ALGORITMO
n É uma sequência de instruções finita e ordenada
9
Conceitos
n Um algoritmo não é a solução do problema, pois, se
assim fosse, cada problema teria um único algoritmo;
10
Conceitos
n Um algoritmo não representa, necessariamente, um
programada de computador e sim os passos necessários
para a realizar uma tarefa. Sua implementação pode ser
feita por um computador, por um robô ou mesmo por um
ser humano.
14
Fases Para Desenvolver um Algoritmo
n Determinar o problema.
n Dividir a solução nas três fases:
n Exemplo:
n Problema: calcular a média de dois números
n Dados de entrada:
n os números, N1, N2
n Processamento:
n somar os dois números (N1, N2) e dividir a soma por 2
n Dados de saída:
n a média
15
Algoritmicamente
16
Formas de representação
n Descrição narrativa;
n Fluxograma;
n Diagrama de Chapin;
n Linguagem de programação.
17
Fatores relevantes na construção de
um algoritmo
n COMPLEXIDADE
n Pode ser vista como um sinônimo de variedade (quantidade de
n LEGIBILIDADE
n Mede a capacidade de compreensão de um algoritmo por qualquer
observador (que não o construiu); a clareza com que sua lógica está
exposta.
n PORTABILIDADE
n Os algoritmos poderão ser convertidos facilmente para qualquer
n PLANEJAMENTO REVERSO
n A partir da saída desejada, devemos poder determinar,
reversamente, quais são os componentes da entrada de dados
necessários.
19
Controle Dinâmico da Execução de
um Algoritmo
n Os três conceitos de estruturação de algoritmo descrevem o
controle do fluxo dinâmico do algoritmo quando ele é
executado, e todos os três devem ser expressos de alguma
maneira na descrição estática do algoritmo. (HOOLOWAY,
2006)
§ Sequência
§ Iteração
§ Seleção
20
Características
n SEQUÊNCIA LÓGICA
n As instruções devem ser definidas em uma ordem correta.
n NÃO AMBÍGUA
n A sequência lógica e as instruções não devem dar margem à
dupla interpretação.
n SOLUÇÃO DE UMPROBLEMA
n A sequência lógica deve resolver exatamente o problema
identificado.
n TEMPO FINITO
n A sequência lógica não deve possuir iterações infinitas.
21
Estrutura básica de um algoritmo
n SEQUENCIA – INÍCIO/FIM
n Define uma estrutura onde as instruções serão executadas na
n SELEÇÃO – SE-ENTÃO/SENÃO
n Define uma estrutura condicional que, dada a sua avaliação
n Os tipos de dados podem variar de uma linguagem para outra. No entanto, existem
dois tipos básicos:
n Tipos Simples;
n Tipos estruturados (vetor, registro)
23
Numérico
n NUMÉRICO: São valores que representam números. Os dados
numéricos são divididos em basicamente dois grandes conjuntos:
Inteiros e Reais
24
Numérico
n Os números inteiros consomem menos espaço de
armazenamento em memória;
n Os inteiros são compatíveis com os reais, mas o inverso não é
verdadeiro.
25
Caractere
n CARACTERE - São tipos de dados não numéricos,
também chamados de strings ou literal. São representados
por letras (A-Z, a-z), dígitos (0-9), espaços em branco e
símbolos especiais (-=+?#$%ˆ&*<>) e devem sempre estar
entre aspas (“”)
n Ex: “a”, “Maria”, “123”, “Rua123”
n Logo,
n 8 é um dados numérico e “8” é um caracter
n “A” é um caracter e A é um nome de uma célula de
memória 26
Lógico
n LÓGICO: Também chamado de valores verdade ou
booleanos. São os valores que representam o conceito de
lógico (verdadeiro ou falso). Os dados lógicos só podem
assumir valores verdadeiros ou falsos e armazenar somente
um desses dois valores e é muito utilizado em controle de
fluxo de algoritmos.
n Representações:
n 0 ou 1, V ou F, true ou false, sim ou não
27
Tipos de dados básicos
28
Operadores e Operações
29
Operadores e Operações
30
Precedência de operadores
31
Reescrevendo a expressão
32
Operadores relacionais
33
Operadores relacionais
VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO
VERDADEIRO
FALSO
VERDADEIRO
FALSO
VERDADEIRO
VERDADEIRO
VERDADEIRO
FALSO 34
Operadores Lógicos
n OPERADORES BINÁRIOS
n E/AND - Une duas expressões lógicas e só retorna verdadeiro quando as
duas são verdadeiras.
n OU/OR – Une duas expressões lógicas e só retorna falso quando as duas
expressões são falsas.
n XOU/XOR – Une duas expressões lógicas e só retorna verdadeiro quando
uma expressão é verdadeira e a outra é falsa.
n OPERADOR UNÁRIO
36
Expressão Lógica Composta
VERDADEIRO
FALSO
VERDADEIRO
FALSO
FALSO
VERDADEIRO
FALSO
FALSO
37
Para fixar...
n Dadas as variáveis numéricas X,Y e Z, contendo os valores 2, 5 e 9
respectivamente, a variável literal NOME, contendo a sequência
"MARIA" e a variável lógica TRUE, contendo o valor lógico F,
obter os resultados das expressões lógicas a seguir:
n SINTAXE:
n VAR <nome_da_variável> : <Tipo_da_variável>
n VAR <lista_de_variáveis> : <Tipo_das_variáveis>
39
Variáveis
§ Algoritmos trabalham com dados(valores)
§ Esses valores precisam ser armazenados pelo computador para
serem processados;
§ Uma varíável representa uma posição na memória, onde pode ser
armazenado um dado;
§ Uma variável possui um nome e um valor de um determinado tipo
para que possa ser identificada.
§ Durante a execução do algoritmo, a variável pode ter seu valor
alterado (seu valor pode variar)
§ Mudanças no valor das variáveis:
§ Por entrada de dados (digitação)
§ Por atribuição de valor
40
Variáveis e Constantes
n VARIÁVEIS:
n EX:
n valor_total = quantidade * valor_unit
n raio = 3.4
n area = PI * raio2
n nome = “Luiz Augusto”
n sexo = 'm'
41
Ciclo de funcionamento de um
programa
42
Variáveis (Armazenamento)
43
Variáveis e Constantes
n CONSTANTES:
n Constante é um determinado valor fixo que não se modifica ao longo do
tempo, durante a execução de um programa. Conforme o seu tipo, a constante
é classificada como sendo numérica, lógica e literal.
n CARACTERÍSTICAS:
n São imutáveis
n Ex:
n VALOR_MAXIMO_SAQUE_DIA = 400,00
n PI = 3,14
44
Variáveis
n Basicamente, uma variável possui três atributos: um nome, um tipo
de dado associado à mesma e a informação por ela guardada.
n Um nome de variável deve necessariamente começar com uma
letra;
n Um nome de variável não deve conter nenhum símbolo especial
45
Variáveis (Características)
n Embora uma variável possa assumir diferentes valores, ela só
pode armazenar um único valor a cada instante.
47
Regras (Variáveis)
n VARIÁVEIS
n CONSTANTES
n Segue todas as regras para variáveis, exceto que são escritas em caixa alta
48
Instrução de decisão “SE”
14
Instrução de decisão “SE”
51
Instrução de decisão “SE”
52
Instrução de decisão “SE”
53
Instruções de repetição
n As instruções de repetição servem para que uma determinada
sequência de instruções seja repetida um número finito de
vezes.
54
Instruções de repetição
55
Instruções de repetição
56
Para Fixar...
14
Instruções de repetição
58
Instruções de repetição
59
Instruções de repetição - execução
60
Instruções de repetição
• PARA .... FAÇA
61
Instruções de repetição
62
Instruções de repetição
63
Instruções de repetição
64
Dados estruturados
§ Recurso para armazenar dados de forma estruturada
Notas: 6,1 2,3 9,4 5,1 8,9 9,8 10 7,0 6,3 4,4
Posição: 0 1 2 3 4 5 6 7 8 9
§ Homogêneos
§ São conjuntos de dados formados pelo mesmo
tipo de dado primitivo (vetores e matrizes).
§ Heterogêneos
§ São conjuntos de dados formados por tipos de
dados primitivos diferentes (campos do registro)
em uma mesma estrutura.
67
Vetor/Arranjo
n Estrutura de dados com um número finito de
elementos de um mesmo tipo (Possui Tamanho e Tipo
Definidos)
69
Vetor/Arranjo
NomeDoVetor[1..<tamanho>]: TipoDeDado
Exemplos:
Notas[1..10]: Real
Codigo[1..12]: Inteiro
Nomes[1..10]: String
10
Comentários
0 1 2 3 4 5
Alunos João Maria Carlos José
72
9
Vetor/Arranjo
73
Vetor/Arranjo
74
Vetor/Arranjo
75
Exemplo de utilização
de vetores (Ex.1)
11
Exemplo de utilização
de vetores (Ex.2)
12
Exemplo de utilização
de vetores (Ex.3)
13
Exemplo de utilização
de vetores (Ex.4)
13
Exemplo de utilização
de vetores (Ex.5)
19
Exemplo de utilização
de vetores (Ex.6)
19
O que é uma matriz?
§ É um vetor de vetores
§ O primeiro índice da matriz indica a linha e
segundo indica a coluna
Ex: Matriz[Linha, Coluna]
14
Para entender melhor...
0 1 2 3 4 5 6 7
ESTANTE [2,7]
83
Matriz
0 1 2 … n-1
⋮ ⋮ ⋮ ⋮ ⋱ ⋮
16
Estrutura
0 1 2 3 4 5
0 5 8 5
Mat [2,5] 1 25 10
2 12 3
17
Declaração
Exemplos:
Vendas[4, 11]: Real
Uma matriz chamada Vendas com 10 linhas e 12 colunas,
para armazenar números reais.
18
“Populando” uma Matriz
19
Exemplo - 1
19
Exemplo - 2
19
Exemplo - 3
19
Exemplo - 4
19
Exemplo - 5
19
Exemplo - 6
19
Exemplo - 7
19
Exemplo - 8
19
Registro
18
Registro
18
Registro
n Ex:
n conta: Registro (num: Inteiro, saldo, limite: Real, tipo, cliente:
String)
18
Registro
18
Registro (Atribuição valores)
18
Registro (Atribuição de valores)
18
Registro (Declaração)
18
Registro (Acesso)
18
Registro (Exemplo)
18
Registro (Exemplo)
18
Registro (Exemplo)
18
Registro (Exemplo)
18
Registro (Exemplo)
18
Alocação Estática ou Dinâmica
110
Listas
n É uma estrutura que armazena elementos de forma
alinhada, ou seja, com elementos dispostos um após
o outro como nomes, valores, pessoas, peças etc.
n Ex:
n Nomes = {“Maria”,”Pedro”,”Rui”}
n Valores = { 20, 50,-1,0,22}
n Produtos = {“biscoito”,”carne”,”ovo”,”margarina”})
111
Lista estática Linear
L = {Aço, Cobre, Ferro, Prata, Ouro}
índice Produto índice Produto índice Produto
1 Cobre 1 2 Ferro
4 Ouro 4 Ouro
112
Lista estática Encadeada
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx.
0 Aço 1
PRI = 0
1 Cobre 2
(Variável que armazena o
primeiro índice da lista 2 Ferro 3
ocupado)
3 Prata 4
4 Ouro -1
113
Lista estática Encadeada
L = {Aço, Cobre, Ferro, Prata, Ouro}
0 Aço 1 0 Aço 1 2
PRI = 0
1 Cobre 2 1
(Variável que armazena o
primeiro índice da lista) 2 Ferro 3 2 Ferro 3 3
3 Prata 4 3 Prata 4 4
4 Ouro -1 4 Ouro -1 -1
114
Não há alteração de posição e sim de encadeamento.
Lista estática Encadeada (sucessivas
operações)
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx. Índice Prod. Próx. Próx.
PRI = 0 ,0 0 Aço 1 0 Aço 1 2
1 Cobre 2 1 5
(Variável que
armazena o primeiro 2 Ferro 3 2 Ferro 3 3
índice da lista)
3 Prata 4 3 Prata 4 4
4 Ouro -1 4 Ouro -1 -1
5 6 5 6 6
PRI_DIS = 5 , 1 6 7 6 7 7
7 8 7 8 8
(Variável que
armazena o primeiro 8 9 8 9 9
índice da lista
disponível) 9 -1 9 -1 -1
115
Lista estática Encadeada (sucessivas
operações)
L = {Aço, Cobre, Ferro, Prata, Ouro}
Índice Prod. Próx. Índice Prod. Próx. Próx.
PRI = 0 , 0,0 0 Aço 1 0 Aço 1 2
1 Cobre 2 1 5
(Variável que
armazena o primeiro 2 Ferro 3 2 Ferro 3 4
índice da lista)
3 Prata 4 3 1
4 Ouro -1 4 Ouro -1 -1
5 6 5 6 6
PRI_DIS = 5 , 1,3 6 7 6 7 7
7 8 7 8 8
(Variável que
armazena o primeiro 8 9 8 9 9
índice da lista
disponível) 9 -1 9 -1 -1
116
Tipos de Listas
n LISTAS DESORDENADAS
n {44,12,-1,22}
n LISTAS ORDENADAS
n {“Abacate”,”Caju”,”Melancia”,”Uva”}
118
Pilha
119
Pilha (Operações)
n Destruir a pilha
n Verificar se é cheia
n ISEMPTY()
n Verifica se a pilha está vazia;
n PUSH(ELEM)
n Coloca o elemento no topo da pilha;
n POP()
n Toma o elemento mais alto da pilha;
n TOPEL()
n Retorna o elemento mais alto da pilha sem removê-lo.
121
Pilha (Operações)
n Exemplo: Pilha(números inteiros)
n Operações:
n E_CHEIA
n E_VAZIA
123
Pilha (Operações)
n CRIA_PILHA
n entrada: nenhuma
124
Pilha (Operações)
n PUSH
n entrada: endereço da lista e o elemento
pilha
n saida: 1 se sucesso , 0 se fracasso
125
Pilha (Operações)
n POP
126
Pilha (Operações)
n TOP
n entrada: endereço da lista
127
Pilha (Operações)
n LIBERA_PILHA
n saida: nenhuma
128
Pilha (Estrutura)
129
Pilha (Manipulação)
1. Inicializar pilha de valores inteiros a partir do índice 0, máximo 10 nós
2. Inserir nodo com valor 3
3. Inserir nodo com valor 7
4. Inserir nodo com valor 5
5. Remover nodo do topo
6. Consultar pilha
130
Sobre as linguagens de programação
n LINGUAGEM DE PROGRAMAÇÃO:
n COMPILAÇÃO:
132
Compilação x Interpretação
n COMPILAÇÃO
n Na Compilação o programa escrito na
linguagem fonte é traduzido para linguagem
máquina e depois ligado e carregado para ser
executado
133
Compilação x Interpretação
n INTERPRETAÇÃO
n Na interpretação o programa fonte é traduzido e executado instrução
a instrução, de modo interativo.
n Vantagens
n O ciclo escrita, execução, modificação é mais rápido
n Desvantagens
n A execução é mais lenta
134
VISUALG
n O VISUALG (Visualizador de Algoritmo) é um
programa que edita, interpreta e executa
algoritmos com uma linguagem próxima do
português estruturado como se fosse um
programa normal de computador.
135
Conhecendo o VisualG
136
Meu primeiro programa (01)
137
Meus primeiros algoritmos
n Pedir para o usuário um número na tela e mostrar esse número
n ”O número digitado foi: “ XX
n Pedir 2 números mostrar a soma entre eles
n Pedir que o usuário digite 2 números e mostrar o maior deles
n Faça um algoritmo para calcular a área de um triangulo retângulo
n Faça um algoritmo que solicite na tela seu nome e ano de nascimento e
como resultado final exiba:
n “SEU NOME É: “ XXXXXX
n “SUA IDADE É: ” 99
138
Média aritmética (02)
139
Divisão entre 2 números (03)
Algoritmo em Portugol
algoritmo "Divisao"
var
numero1, numero2: real
resultado: real
inicio
escreva ("Digite o dividendo ==> ")
leia (numero1)
escreva ("Digite o divisor ==> ")
leia (numero2)
resultado <-numero1/numero2
escreva ("O resultado eh ==>", resultado)
fimalgoritmo
140
Divisão entre 2 números
(Com validação de entrada) (04)
141
Categoria por idade (05)
142
Prática - 06
n Custo estimado de uma viagem de carro
143
Lista de exercícios
n 1. Faça um algoritmo que receba dois números e exiba o resultado
da sua soma.
n 2. Faça um algoritmo que receba dois números e ao final mostre a
soma, subtração, multiplicação e a divisão dos números lidos.
n 3. Escrever um algoritmo para determinar o consumo médio de
um automóvel sendo fornecida a distância total percorrida pelo
automóvel e o total de combustível gasto.
n 4. Escrever um algoritmo que leia o nome de um vendedor e o
total de vendas efetuadas no mês (R$). Este vendedor tem um
salário fixo igual ao salário mínimo vigente. Sabendo-se que este
vendedor ganha 15% de comissão sobre suas vendas efetuadas e
que este valor é incorporado ao seu salário, informar o seu nome e
o total bruto que receberá no final do mês.
144
Lista de exercícios
n 5. Elaborar um algoritmo que mostre o valor convertido em reais (R$) de um
determinado montante em dólar (U$).
147
Lista de exercícios (Vetores)
n 3. Faça um algoritmo para gerar um vetor de 30 posições,
onde cada elemento corresponde ao quadrado de sua
posição. Imprima depois a soma dos quadrados.
149
Lista de exercícios (Matriz)
n 1 . Construa uma matriz 3×4 de
números inteiros e depois exiba todos os
seus elementos;
151
Lista de exercícios (Matriz)
n 4. Construa uma matriz 5×6 de
números inteiros e calcule o somatório
dos elementos do canto superior direito
e inferior esquerdo;
152
Lista de exercícios (Vetores)
n 5. Um representante comercial trabalha com 10
mercadorias diferentes identificadas por números inteiros
de 1 a 10. Ele anota a quantidade de cada mercadoria
vendida durante o mês e utiliza uma tabela onde tem
registrado os preços de venda. Escreva um algoritmo em
PORTUGOL que mostre essas informações em uma só
tabela contendo todos os produtos (código e nome), seus
preços, quantidade vendida e valor total faturado com a
venda, bem como informar o valor que ele receberá de
comissão, sabendo que esta é de 5% sobre a venda total.
153
Lista de exercícios (Matriz)
n 5. Construa uma matriz 4×4 (lendo as
informações) de números reais e mostre
na tela os elementos que formam a
diagonal principal.
154
Lista de exercícios (Matriz)
n 6. Construa uma matriz 4×4
(lendo) e calcule a diferença do
somatória dos elementos da D.P –
D.S. informando se o número
resultante é par ou impar.
155
Lista de exercícios (Matriz)
157
Lista de exercícios
n Faça um algoritmo que lê o nome de um produto, o
preço e a quantidade comprada. Escreva o nome do
produto comprado e o valor total a ser pago,
considerando que são oferecidos descontos pelo
número de unidades compradas, segundo a tabela
abaixo: