2. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tópicos
Δ Revisão;
Δ Algoritmos para Computadores;
Δ Pseudolinguagem;
• Estrutura;
• Tipo de dados;
• Comentários;
• Entrada e Saída;
• Estrutura Condicional;
3. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Revisão
Δ O que é Algoritmo?
• Sequência finita de instruções, ordenadas de forma lógica para a resolução de
uma determinada tarefa ou problema;
Δ “Programar é construir algoritmos.”
Δ “Programa = algoritmo + estruturas de dados.”
Δ “No processo de construção de programas, a formulação do algoritmo e a
definição das estruturas de dados estão intimamente ligadas.”
4. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Aspectos de Um Algoritmo
Δ Todo algoritmos possui os seguintes aspectos:
• ação: evento que ocorre num período de tempo finito;
• estado: propriedades de um objeto numa dada situação;
• processo: sequência temporal de ações;
• padrão de comportamento: toda vez que é seguido (o algoritmo), um evento
ocorre;
5. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo de Algoritmo
Δ Algoritmo para fazer “batatas fritas para o jantar”:
• “Traga a cesta com batatas da despensa”;
• “Traga a panela do armário”;
• “Coloque óleo na panela”;
• Se “a roupa é clara”
oentão “coloque o avental”;
• Enquanto “nº de batatas é insuficiente para o número de pessoas” faça
o“descasque as batatas”;
• “Pique as batatas”;
• “Esquente o óleo da panela”;
• “Frite as batatas na panela”;
• “Escorra o excesso de óleo das batatas fritas”;
• “Coloque as batatas fritas numa vasilha com papel absorvente”.
6. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Observações:
Δ O tempo verbal está na forma imperativa (“faça”, “traga”, “frite” etc.);
Δ Há um sequenciamento das ações, que estão separadas por um ponto e
vírgula;
Δ O avental não é usado toda vez: existe um motivo para colocá-lo, ou seja,
há uma condição para que o avental seja colocado;
Δ O número de batatas descascadas varia; a ação de “descascar uma batata”
repete-se até que a condição de parada (ser suficiente para alimentar as
pessoas que irão jantar) seja alcançada;
Δ A ordem das ações é importante: primeiro descasca-se a batata, pica-se a
batata, para depois fritá-la...
7. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Algoritmo para computadores
Δ Apesar de receitas culinárias e trajetos rotineiramente percorridos
encaixarem-se perfeitamente no conceito inicial de algoritmo, no nosso
curso, estamos interessados num tipo de algoritmo especial, que seja capaz
de ser executado por um computador.
Δ Para tanto, é necessário que identifiquemos problemas do mundo real que
possam ser traduzidos em ações primitivas finitas e dos quais se possa
extrair um padrão de comportamento.
8. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Etapas da programação de Computadores
Δ A construção de programas de computador leva em conta 5 etapas básicas
da programação:
1. Identificação de um problema do mundo real;
2. Confecção do algoritmo;
3. Teste do algoritmo;
4. Confecção do programa de computador;
5. Execução do programa no computador.
9. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Pensamento Estruturado
Δ Para realizarmos esse ciclo de etapas com sucesso, quer dizer, para
conseguirmos fazer programas de computador com qualidade e confiáveis,
é muito importante a utilização de técnicas de programação, como a
programação estruturada.
Δ A programação estruturada é uma metodologia de projeto e
desenvolvimento que pretende:
• Facilitar a escrita;
• Facilitar o entendimento;
• Permitir a verificação;
• Facilitar a alteração e a manutenção dos programas de computador.
10. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Pseudolinguagem: Portugol ou PortuCê
Δ Usaremos pseudolinguagem para escrever nossos primeiros algoritmos:
• A pseudolinguagem PortuCê utiliza o português;
• Formato Estruturado;
• Estrutura, sintaxe e semântica muito semelhantes às da linguagem de
programação C.
11. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercitando
Δ Deduza qual o padrão de comportamento utilizado para gerar as
sequências:
a) 1, 5, 9, 13, 17, 21, 25 ...
b) 1, 1, 2, 3, 5, 8, 13, 21, 34 ...
Δ Monte um algoritmo que imprima na tela os primeiros 20 números de cada
sequência;
12. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estrutura de um Algoritmo:
programa nome_do_algoritmo
var
// Aqui são declaradas as variáveis
inicio
// Aqui inserimos expressões, instruções...
fim
13. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estrutura de um Algoritmo:
programa SOMA_NUMEROS
var
X: inteiro
A: inteiro
B: inteiro
inicio
leia A
leia B
x<- A+B
escreva x
fim
14. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Dados
Δ Identificadores:
• Todo programa de computador manipula dados, que são armazenados em variáveis;
• Uma variável precisa ter um nome que a identifique de forma única no programa: é
o identificador.
Δ Regras para construção de Identificadores:
• Um identificador em PortuCê é formado por caracteres alfanuméricos;
• O primeiro caractere tem que ser uma letra; os outros caracteres podem ser:
o letras: A-Z, a-z;
o dígitos: 0-9;
o sublinhado: _ .
• Não pode haver dois identificadores iguais.
• Letras minúsculas e letras maiúsculas são diferentes (case sensitive).
• Os identificadores não podem ser acentuados.
• Não pode haver espaço em branco num identificador.
• O caractere “ç” não pode ser usado num identificador.
• Um identificador não pode ter o mesmo nome das palavras reservadas do PortuCê
(como: programa, se, senão, inteiro, real etc.).
15. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Identificadores
Δ Exemplos de identificadores válidos:
• NOME, raiz1, letra4, Total_dos_Salarios, Nome_de_Familia;
Δ Exemplos de identificadores INVÁLIDOS:
• 4pontos
o (começa com número);
• CUSTO FINAL
o (tem espaço em branco);
• PreçoTotal
o (caractere “ç” não pode ser usado);
• Pessoa+Alta
o (caractere “+” não pode ser usado);
• Preco-caro
o (caractere “-” não permitido);
• Total_dos_salários
o (palavra acentuada);
• inteiro
o (palavra reservada do PortuCê);
16. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis
Δ As variáveis precisam ter um nome (identificador), um tipo associado, e
precisam ser declaradas antes que possam ser utilizadas:
• Há três tipos básicos que podem ser associados às variáveis:
oInteiro;
oReal;
oCaractere;
oLógicos;
• Para declarar uma variável:
onome_da_variavel: tipo
• Se mais de uma variável for do mesmo tipo básico, elas podem ser declaradas
juntas, apenas separadas por vírgulas;
• Toda variável precisa ser declarada antes de ser utilizada;
• Não pode haver duas variáveis com mesmo nome, mesmo que tenham tipos
básicos diferentes, a menos que algum caractere maiúsculo ou minúsculo as
diferencie;
17. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis
Δ Toda variável é associada a um tipo de valor;
Δ O tipo de uma variável identifica o tipo de valor que ela poderá receber;
Δ No Portugol, declaramos variáveis logo após a palavra reservada var;
18. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos Básicos e Declaração de Variáveis: Exemplos
Δ Exemplos de declaração de variáveis válida:
• Caractere: NOME[20], letra
• Inteiro: soma
• real: raiz1, Total_dos_Salarios
• caractere: Nome_de_familia[30]
Δ Exemplos de declaração de variáveis INVÁLIDA:
• caractere NOME[20]; letra4
o(o separador de identificadores deve ser a vírgula)
• raiz1, Total_dos_Salarios real
o(o tipo básico deve vir antes dos identificadores)
• caracteres Nome_de_Familia[30]
o(o nome do tipo básico está errado)
• real SOMA
o(a variável SOMA já foi declarada: um identificador não pode ser duplicado)
19. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Tipos de Dados
TIPO DESCRIÇÃO
INTEIRO
Representa valores inteiros
Ex.: 2, 5, -3, 100, -151...
REAL
Representa valores reais
Ex.: 5.6, -3.45, 5.00, -10.45...
LITERAL
Representa texto entre aspas duplas
Ex.: “Palmeiras Campeão”, “B”, “1234”
LOGICO
Representa os valores lógicos
VERDADEIRO ou FALSO
20. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
programa exemplo
var
NOME, ENDERECO: CARACTERE
IDADE: INTEIRO
PESO: REAL
EH_SOLTEIRO: LOGICO
inicio
NOME <- “Thyago”
ENDERECO <- “Rua Tal, 555”
IDADE <- 29
EH_SOLTEIRO <- falso
fim
21. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Operador de atribuição
Δ Utilizado para inserir um valor ou o resultado de uma expressão em uma
variável;
Δ Representado por uma seta apontando para a esquerda (<-);
Δ Só podemos atribuir valores do mesmo tipo da variável;
22. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
programa exemplo
var
NOME, ENDERECO: CARACTERE
IDADE: INTEIRO
PESO: REAL
EH_SOLTEIRO: LOGICO
inicio
NOME <- “Thyago”
ENDERECO <- “Rua Tal, 555”
IDADE <- 29
EH_SOLTEIRO <- falso
fim
23. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Erros de Atribuição:
programa exemplo_errado
var
nome: caractere
idade: inteiro
inicio
nome <- Thyago Maia
idade <- 27.34
fim
24. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Erros de Atribuição:
programa exemplo_errado
var
nome: caractere
idade: inteiro
inicio
nome <- Thyago Maia LITERAIS SEMPRE COM “”
idade <- 27.34 A VARIÁVEL É INTEIRA, NÃO REAL
fim
25. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercícios
Δ Classifique os dados abaixo de acordo com seu tipo:
0 “abc” “João”
5.7 1012 FALSO
-49 342 569
“Lucas” “Verdadeiro” 0.00001
Verdadeiro “444” -78.1
26. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercícios
Δ Classifique os dados abaixo de acordo com seu tipo:
0 numérico “abc” caractere “João” caractere
5.7 numérico 101 numérico FALSO lógico
-49 numérico 342 numérico 9 numérico
“Lucas” caractere “Verdadeiro”
caractere
0.00001
numérico
Verdadeiro lógico “444” caractere -78.1 numérico
27. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linhas de comentário
Δ Informação textual para documentação de programa;
Δ Ajudam a organizar o algoritmo, tornando-o mais legível;
Δ São representados por duas barras normais (//). Todo texto digitado após
as duas barras é considerado comentário;
Δ Comentários não são compilados;
28. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Linhas de comentário
Δ Exemplo:
// Algoritmo que utiliza variável lógica
programa teste
var
ligado: logico
inicio
// Insere verdadeiro na variável
ligado <- Verdadeiro
fim
29. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Comandos de entrada e saída
Δ Comando de entrada (leia)
• Utilizado para ler um valor digitado pelo usuário, armazenando o referido
valor em uma variável indicada no comando;
• Exemplo:
oleia(nome)
oleia(idade)
oLeia(altura)
oLeia(distancia)
Δ Comandos de saída (escreva)
• Utilizados para escrever mensagens ou valores de variáveis na saída padrão;
• Exemplos:
oescreva(“Minha primeira mensagem”)
oescreva (idade)
30. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Faça um algoritmo que leia o nome e a idade de um indivíduo, exibindo-os logo em
seguida:
Δ Solução:
programa exemplo
var
NOME: caractere
IDADE: inteiro
inicio
escreva (“Digite seu nome: ”)
leia (NOME)
escreva (“Digite sua idade”)
leia (IDADE)
escreva (“Seu nome é ”, NOME)
escreva (“Sua idade: ”, IDADE)
fim
31. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
Δ Faça um algoritmo que leia dois números inteiros, calcula e exibe a soma
entre eles:
Δ Solução:
programa exemplo_2
var
NUM1, NUM2, SOMA: inteiro
inicio
escreva (“Digite dois números: ”)
leia (NUM1, NUM2)
SOMA <- NUM1 + NUM2
escreva (“Resultado da soma: ”, SOMA)
fim
32. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exemplo
programa escreve_mensagem_e_variavel
var
nome: caractere
inicio
escreva(“Digite seu nome:”)
leia(nome)
escreva(“Seu nome é:”)
escreva (nome)
fim
33. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercícios
Δ Faça um algoritmo que lê o salário de um funcionário, calcula e exibe o novo
salário, sabendo que este sofreu um aumento de 25%;
Δ Resposta:
programa exercício_1
var
sal, aumento, novosal : REAL
inicio
escreva (“Digite seu salário: ”)
leia (sal)
aumento <- sal * 25/100
novosal <- sal + aumento
escreva (novosal)
fim
34. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercícios
Δ Faça um algoritmo que calcule e mostre a área de um triângulo:
Área = (base * altura) / 2
Δ Resposta:
programa exercicio_2
var
base, altura, area : REAL
inicio
escreva (“Digite a base e a altura: ”)
leia (base, altura)
area <- (base * altura) /2
escreva (area)
fim
35. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Exercícios
Δ Faça um algoritmo que leia o nome de um piloto, uma distância percorrida
em km e o tempo que o piloto levou para percorrê-la (em horas). O
algoritmo deverá calcular a velocidade média e exibir a seguinte
mensagem:
• A velocidade média do piloto * foi **
Δ Velocidade Média = Distância/Tempo
36. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Na vida real tomamos decisões a todo momento, baseadas em escolhas;
Δ Em algoritmos, chamamos tais decisões de condições;
Δ Associada a uma condição, existirá uma possível alternativa;
Δ Exemplo:
• Se o Palmeiras não vencer o Flamengo na próxima partida, seu técnico será
demitido;
37. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Analisando o exemplo anterior:
• A condição do exemplo: “o Palmeiras não vencer o Flamengo na próxima
partida”;
• Possíveis decisões baseadas na condição: Sim (Verdadeiro) ou não (Falso);
oLogo, condições geram respostas lógicas!
• Se a condição for verdadeira, a ação “demitir o técnico” será executada;
• Caso contrário (senão), o técnico continuará no Palmeiras;
38. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Para criarmos estruturas condicionais simples em Portugol, utilizamos as
palavras reservadas se, entao e fim_se
se condicao entao
// lista de comandos caso a condição seja // verdadeira
fim_se
39. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Exemplo:
programa exemplo_se
var
numero: inteiro
inicio
numero <- 4
Se (numero > 3) entao
escreva(“A variável é maior que 3”)
fim-se
fim
40. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Estruturas Condicionais
Δ Exemplo 2:
programa exemplo_senha
var
senha: caractere
inicio
escreva (“Digite a senha”)
leia(senha)
Se (senha = “soueu123”) entao
escreva(“Acesso liberado!”)
fim_se
fim
41. Estrutura condicional
• Para criarmos estruturas condicionais com duas opções de escolha,
utilizamos as palavras reservadas se, entao, senao e fim_se
se condicao entao
// lista de comandos caso a condição seja //VERDADEIRA
senao
// lista de comandos caso a condição seja FALSA
fim_se
42. Estrutura condicional
• Exemplo 3:
programa exemplo_se_senao
var
numero: inteiro
inicio
numero <- 4
Se (numero > 3) entao
escreva(“A variável é maior que 3”)
senao
escreva(“A variável é menor ou igual a 3”)
fim_se
fim
43. Estrutura condicional
• Exemplo 4:
programa exemplo_senha_2
var
senha: caractere
inicio
escreva (“Digite a senha”)
leia(senha)
Se (senha = “soueu123”) entao
escreva (“Acesso liberado!”)
senao
escreva(“Senha incorreta. Acesso proibido!”)
fim_se
fim
44. Exemplo
• Algoritmo que verifica se um número inteiro digitado pelo usuário é PAR ou ÍMPAR:
programa par_impar
var
numero: inteiro
inicio
escreval(“digite um número”)
leia(numero)
se (numero % 2 = 0) entao
escreval(“O número é PAR”)
senao
escreval(“O número é IMPAR”)
fim_se
fim
45. Exercício
• Faça um algoritmo que verifica se um número inteiro digitado pelo
usuário é positivo ou negativo;
• Faça um algoritmo que recebe três notas de um determinado aluno
(digitados por alguém), calcula a média e informe se o mesmo está
aprovado ou reprovado (a média final deve ser superior a 6 para que
o aluno seja aprovado);
46. T
I
P
O
S
D
E
D
A
D
O
S
ALGORITMOS - 02/2015 – ÊNIO FILHO
Para Casa
Δ Somando dois valores:
• Escreva um algoritmo que tenha duas variáveis inteiras. As mesmas deverão ter os
valores 5 e 7, respectivamente. Faça com que o algoritmo some as duas variáveis e
demonstre o resultado;
Δ Uma agenda simples:
• Escreva um algoritmo que leia o nome, telefone, endereço e CEP digitados pelo
usuário e escreva os mesmos na tela. Utilize mensagens solicitando a digitação de
cada valor;
Δ Escreva um algoritmo que calcule a área do quadrado. O usuário deverá
digitar o lado de um quadrado (o algoritmo deverá solicitar que o usuário o
faça) e o algoritmo deverá exibir o resultado.
• Área do quadrado = lado ^ 2 (lado elevado ao quadrado)
47. DÚVIDAS?
Contatos:
E-mail: enio.filho@alfa.br
Skype: eniopvf
Twitter: eniopvf
Bibliografia:
• MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica para
desenvolvimento de programação de computadores. 18ª. ed. São Paulo: Érica, 2006. 236 p. ISBN
857194718;
• FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de programação: a construção
de algoritmos e estruturas de dados. 3ª. ed. São Paulo (SP): Pearson Prentice Hall, 2005. 195 p. ISBN
9788576050247;