1. Lógica de Programação, Algoritmos e
Estruturas de Dados
Professores:
Juliano Lucas Gonçalves
juliano.goncalves@ifsc.edu.br
Introdução a Programação
1
2. Agenda
• Funções Básicas do Software;
• Introdução à Algoritmos;
• Introdução à Lógica;
• Introdução à Estruturas de Dados;
2
4. Função do Software
1. O que faz um software?
– Processamento!
2. O que um software precisa para processar?
– Informações ou Dados!
3. Qual é o resultado de um processamento?
– Informações, Dados ou Conhecimento!
4
5. Função do Software
4. Como definir o processamento?
– Através do Algoritmo!
5. De onde obter as informações à serem
processadas?
– Entrada! Teclado, Arquivos, Bancos de Dados, ...
6. Como utilizar o resultado do processamento?
– Saída! Tela, Arquivos, Comandos elétricos, ...
5
8. Algoritmos
• Forma de descrever uma tarefa, função ou
programa de computador;
• Pode ser representado por pseudocódigo ou
fluxograma;
• Representa uma sequência de passos que o
computador deve executar a fim de atingir ou
obter um resultado.
8
9. • Instruções Simples para “Passar Café”: Quais?
Algoritmo – Passar Café
Esquentar
Água
Pó de Café
no Filtro
Filtro na
Jarra
Água no
Filtro
Água na
Chaleira
Café
10
10. • Algoritmo: “Passar Café”:
Algoritmo – Passar Café
2 - Esquentar Água
4 - Pó de Café no Filtro
3 - Filtro na Jarra
5 - Água no Filtro
1 - Água na Chaleira
Café
Esquentar
Água
Pó de Café
no Filtro
Filtro na
Jarra
Água no
Filtro
Água na
Chaleira
11
11. O PROBLEMA DE SER
PROGRAMADOR
Minha mulher disse:
“Amor, vá ao mercado e compre 1 litro de leite. Se eles tiverem ovos, traga 6.”
Eu voltei com 6 litros de leite.
Ela disse: “Porque diabos você comprou 6 litros de leite?”
“PORQUE ELES TINHAM OVOS!!!”
12
13. O que é Lógica?
• Trata da Correção do Pensamento;
• Porque pensamos assim e não de outro
jeito?
• A Lógica estuda ou tem em vista a
“correção do raciocínio”
Por isso a Lógica Ensina a “ COLOCAR ORDEM
NO PENSAMENTO”
14
14. Testando sua Lógica (exercícios)
1. Qual das cinco alternativas representa a melhor comparação? AMOR está para ROMA assim como
5232 está para:
A) 2523
B) 3252
C) 2325
D) 3225
E) 5223
2. Qual é o próximo número da série? 1 – 3 – 6 – 11 – 19 – 32 – 53 – ?
A) 45
B) 93
C) 66
D) 86
E) NDA (Nenhuma das alternativas anteriores)
15
15. Testando sua Lógica (exercícios)
3. Um agente de viagens atende três amigas. Uma delas é loira, a outra é
morena e a outra é Ruiva. O agente sabe que uma delas se chama Bete, a
outra se chama Elza e a outra se chama Sara. Sabe, ainda, que cada uma delas
fará uma viagem a um país diferente da Europa: uma delas irá à Alemanha, a
outra irá à França e a outra irá à Espanha. Ao agente de viagens, que queria
identificar o nome e o destino de cada uma, eles deram as seguintes dicas:
A loira: “não vou à França nem à Espanha”.
A morena: “Meu nome não é Elza nem Sara”.
“A ruiva: “Nem eu nem Elza Vamos à França”.
O agente de viagens concluiu, então, acertadamente que:
a) A loira é Sara e vai á Espanha.
b) A ruiva é Sara e vai á França
c) A ruiva é Bete e vai à Espanha
d) A morena é Bete e vai à Espanha
e) A loira é Elza e vai à Alemanha
16
16. Lógica de Programação
“Lógica de programação é a técnica de encadear
pensamentos para atingir determinado objetivo”
Paulo Sérgio de Moraes – Unicamp
• Importância?
– Requisito para programar;
– Grande diferencial entre os programadores;
– Reconhecer, interpretar e estruturar o problema:
• Solucionar o problema;
17
17. Lógica de Programação
• Definições:
– Instruções: (algoritmo)
• Comandos ou ações;
• Atividade parcial;
– Sequência Lógica: (lógica)
• Ordem das instruções;
• Completar a atividade.
18
18. Lógica de Programação
• Sequência Lógica Simples para “Passar Café”:
Esquentar
Água
Filtro na
Jarra
Pó de Café
no Filtro
Água no
Filtro
Água na
Chaleira
Café
2 - Esquentar Água
4 - Pó de Café no Filtro
3 - Filtro na Jarra
5 - Água no Filtro
1 - Água na Chaleira
19
19. Lógica de Programação
• Sequência Lógica Simples para “Passar Café”:
Esquentar
Água
Filtro na
Jarra
Pó de Café
no Filtro
Água no
Filtro
Água na
Chaleira
Café
20
20. • Sequência Lógica Simples para “Passar Café”:
Lógica de Programação
Esquentar
Água
Pó de Café
no Filtro
Filtro na
Jarra
Água no
Filtro
Água na
Chaleira
Café
21
21. Exemplo 2
Ex: “Comer uma Bala”
1. Pegar a bala
2. Retirar o papel
3. Colocar a bala na boca
4. Jogar o papel no lixo.
Em síntese, um ALGORITMO é uma sequência lógica de passos ou instruções
finitas que resolvem um determinado problema.
22
22. Exercícios
Faça um algoritmo (descreva os passos) para realizar as seguintes tarefas:
1. Vir para o IFSC
2. Somar dois números quaisquer
23
24. Estruturas de Dados
Nossos algoritmos trabalham com Dados.
Vamos começar separando o tema:
1. Dados;
2. Estruturas;
3. Armazenamento;
25
25. Dados na Informática
• O que é, ou pode ser, um “dado”?
– É um número;
– É um nome;
– É um endereço;
– É o valor de um produto;
– É um pixel de uma imagem;
– Pode ser muitas coisas...
26
26. Estruturas
• Para você, o que é uma “estrutura”?
– É algo que dá forma?
– É algo que sustenta?
– Segundo Houaiss: “aquilo que dá sustentação
(concreta ou abstrata) a alguma coisa; armação,
arcabouço”.
27
27. Como Armazenar Dados?
• Dados são representados em pequenas
estruturas e em geral são chamados de
variáveis ou constantes!
• Tudo que é armazenado dentro do
computador, permanece em alguma
memória!
28
29. Como Armazenar Dados?
• Variáveis: armazenam dados em caráter
temporário e tem conteúdo dinâmico, ou seja,
podem ser acessadas ou alteradas a qualquer
momento;
• Constantes: são dados estáticos, o seu
conteúdo pode ser acessado a qualquer
momento, mas será definido no momento de
sua criação e não poderá ser mais alterado.
30
30. Como Armazenar Dados?
• Todas as variáveis ou constantes são
estruturadas por um tipo de dado!
– Idade:
• número inteiro;
– Peso:
• número fracionário;
– Letra:
• é um caractere;
– Um pixel:
• Um número inteiro que representa a luminosidade.
31
31. Como Armazenar Dados?
Tipos de Dados Básicos:
• Inteiro: números inteiros;
• Real: números fracionários;
• Caractere: letras;
• Logico: verdadeiro ou falso;
32
32. Como Armazenar Dados?
• Partes básicas de uma variável ou constante:
Conteúdo:
41
Tipo de
Dado:
Inteiro
Nome:
Idade
33
33. Como Armazenar Dados?
• Declarando uma variável, precisamos
determinar:
• Tipo de Dado: Referente aos valores que serão
armazenados;
• Nome: Identificação da variável, algo que indique o que
ela armazena;
• Valor: Pré-determinado ou pós-determinado?
– Sintaxe:
Nome: TipodeDado
34
34. Como Armazenar Dados?
• Atribuindo ou alterando valores dos dados:
– Podemos apenas definir valores coerentes com o
tipo de dado.
– Sintaxe Correta:
Nome <- Valor
– Erros comuns:
Idade: inteiro
Idade <- 22.0
35
35. Como Armazenar Dados?
• Regras para Nomear Variáveis:
1. nomes de variáveis não podem ser iguais a palavras
reservadas;
2. nomes de variáveis devem possuir como primeiro
caractere uma letra ou sublinhado '_' (os outros
caracteres podem ser letras, números e sublinhado);
3. nomes de variáveis não devem ser muito longas;
4. nomes de variáveis não podem conter espaços em
branco;
5. na sintaxe do Português Estruturado, não há
diferença entre letras maiúsculas de minúsculas
(NOME é o mesmo que noMe).
36
36. Exercícios
1 – Dê 5 exemplos de nomes válidos para variáveis.
2 – Dê 5 exemplos de nomes inválidos para variáveis
3 – Que nome de variável você daria para representar as
informações abaixo:
a) Numero de filhos de uma pessoa
b) Quantidade de dvds de uma locadora
c) Preço de um carro
d) Nome de uma pessoa
e) Altura média de 10 pessoas
37
37. Pseudocódigo
• Forma de representação de algoritmos;
• É bem similar ao que será feito quando se
utiliza uma linguagem de programação;
• Mas não é aceito por nenhuma linguagem de
programação (pseudo = falso);
38
39. Estrutura básica de um algoritmo
em pseudocódigo
Declaração de variáveis
40
Inicio (Início do algoritmo)
Fase de Entrada de Dados
Ou Leia (n1)
Leia (n2)
Processamento dos Dados
soma n1+n2
n1, n2, soma : inteiro
Saída de dados
Escreva (soma)
Fim (fim do algoritmo)
n1 <-10
n2<-20
41. • Algoritmo para somar números:
1. x: inteiro
2. y: inteiro
3. soma: inteiro
4. x <- 10
5. y <- 20
6. soma <- x + y
7. escreva(soma) Saída
Processamento
Entrada
Declarações
Exemplo de Aplicação 1:
42
42. Conclusões
• Algoritmos nos mostram os passos;
• Lógica se preocupa com a coerência;
• Estruturas de dados com o armazenamento e
manipulação dos dados;
• A linguagem é colocar tudo em prática.
Veremos cada um destes mais a fundo.
43
43. Exercícios:
1. Faça um algoritmo que mostre a média da
soma de dois números;
2. Faça um algoritmo que mostre os números
de 1 até 5;
44
44. Faça um algoritmo em pseudocódigo para:
1. Somar três números inteiros
Exercício
45
45. 46
Teste de Mesa
• Após desenvolver um algoritmo ele deverá sempre ser testado;
• Como testar os algoritmos?
• Coloca-se as variáveis uma ao lado da outra formando colunas;
• Utiliza-se valores quaisquer para as variáveis cujo o resultado final é conhecido.
• Agora pegamos os valores utilizados anteriormente e testamos no algoritmo executando passo a passo
(instrução a instrução;
• Exemplo: Fazer o teste de mesa para o algoritmo somar três números inteiros.
Observação: Valores na cor Azul (Valores quaisquer cujo resultado final é conhecido)
Valores na cor Verde (valores utilizados anteriormente e a saída deve ser calculada executando-se
o algoritmo instrução a instrução)
n1 n2 n3 soma
4 19
10
5
4 ?
10
5 19
4 10
5 ?
-1
19
Situação Conhecida
Algoritmo Correto
Erro no algoritmo
46. Faça um algoritmo em pseudocódigo para:
1. Somar três números reais
2. Subtrair dois números inteiros
3. Multiplicar dois números reais
4. Somar um número real com um número inteiro
Exercícios
47