Escolar Documentos
Profissional Documentos
Cultura Documentos
ENGENHARIA
INTRODUÇÃO À LÓGICA DE
PROGRAMAÇÃO – PARTE II
• Exercício
• LISTA 1
A ANALOGIA DO PROGRAMA
DE COMPUTADOR
Analogia
• Relação Chefe-Funcionário-Cliente
Analogia
• Relação Chefe-Funcionário-Cliente
Leve um café
para o cliente!
Aja como Chefe!
• Programar: dar ordens ao computador
• Como resolver um problema?
– Que dados ele precisa pedir ao usuário?
– Que cálculos ele faz com esses dados?
– Qual resultado ele deve imprimir?
• Ordens: imperativo
– Leia!
– Calcule!
– Imprima!
Dando Ordens
• Ensinar o computador a multiplicar por dois
um número fornecido pelo usuário:
– Leia um número digitado pelo usuário
– Multiplique este número por dois
– Imprima o resultado
NÍVEIS DE
DETALHAMENTO
Nível de Detalhamento?
• Aula passada: vários níveis de detalhamento
• Qual usar?
• No início:
– Linguagem natural Detalhamento
– Fluxograma Aumenta
– Português estruturado
Algoritmo Mais Simples do Mundo
• Linguagem Natural • Português Estruturado
1. Escreva “Olá!” Algoritmo “Imprime Olá”
Var
Inicio
Escreva (“Olá! “)
FimAlgoritmo
• Fluxograma
Início
“Olá!”
Fim
Algoritmo Mais Simples do Mundo
• Linguagem Natural • Português Estruturado
1. Escreva “Olá!” Algoritmo “Imprime Olá”
Var
Inicio
Escreva (“Olá! “)
FimAlgoritmo
• Fluxograma
Início
Aumentou o
“Olá!” detalhamento: Agora
são indicados o início
Fim e o fim do programa
Algoritmo Mais Simples do Mundo
Aumentou o
• Linguagem Natural • Português Estruturado
detalhamento: Agora são Algoritmo “Imprime Olá”
1. Escreva “Olá!”
indicados o nome do Var
programa, área de Inicio
variáveis e de código Escreva (“Olá! “)
FimAlgoritmo
• Fluxograma
Início
“Olá!”
Fim
Multiplicar um Número por Dois
• Linguagem Natural • Português Estruturado
1. Leia um número Algoritmo “Multiplicação”
2. Multiplique o Var
número por dois INTEIRO: N, M
Inicio
3. Imprima o valor
Escreva(“Digite Um Número:”)
• Fluxograma Leia(N)
Início Fim M←2*N
Escreva(“Mult:”, M)
“Digite um
“Mult: ”, M FimAlgoritmo
Numero:”
N M = 2* N
Multiplicar um Número por Dois
• Linguagem Natural • Português Estruturado
1. Leia um número Algoritmo “Multiplicação”
2. Multiplique o Var
número por dois INTEIRO: N, M
Inicio
Aumentou o
3. Imprima o valor detalhamento:
Escreva(“Digite Um Número:”)
• Fluxograma Leia(N)indicação das
Início Fim Mvariáveis,
← 2 * N explicitação
das operações
Escreva(“Mult:”, M) e
“Digite um
“Mult: ”, M
Numero:” definição da forma da
FimAlgoritmo
impressão
N M = 2* N
Multiplicar um Número por Dois
• Linguagem Natural • Português Estruturado
Aumentou o Algoritmo “Multiplicação”
1. Leia um número
detalhamento: Var
2. Multiplique o
declaração das variáveis
número por dois INTEIRO: N, M
(com tipo) Inicio
3. Imprima o valor
Escreva(“Digite Um Número:”)
• Fluxograma Leia(N)
Início Fim M←2*N
Escreva(“Mult:”, M)
“Digite um
“Mult: ”, M FimAlgoritmo
Numero:”
N M = 2* N
Somando Dois Números
• Linguagem Natural • Português Estruturado
Algoritmo “Soma 2 Números”
1. Leia dois números
Var
2. Some os dois INTEIRO: N1, N2, S
números Inicio
3. Imprima a soma Escreva(“Digite Um Número:”)
• Fluxograma Leia(N1)
Escreva(“Digite Outro Número:”)
Início
Leia(N2)
S ← N1 + N2
N1, N2 Fim
Escreva(“Soma:”, S)
S = N1 + N2 “Soma: ”, S FimAlgoritmo
Somando Dois Números
• Linguagem Natural • Português Estruturado
Algoritmo “Soma 2 Números”
1. Leia dois números
Var
2. Some os dois INTEIRO: N1, N2, S
números Inicio
3. Imprima a soma Escreva(“Digite Um Número:”)
• Fluxograma Leia(N1)
Escreva(“Digite Outro Número:”)
Início
Leia(N2)
S ← N1 + N2
N1, N2 Fim
Escreva(“Soma:”, S)
S = N1 + N2 “Soma: ”, S FimAlgoritmo
Calculando o Salário de Horista
• Linguagem Natural • Fluxograma
1. Leia o valor da hora
Início
de trabalho, em R$
por hora VH, HT
2. Leia o número de
horas trabalhadas ST = HT * VH
3. Calcule o salário
total, multiplicando “Salário: ”, ST
o número de horas
pelo valor da hora
Fim
4. Imprima o salário
total
Calculando o Salário de Horista
• Fluxograma • Português Estruturado
Algoritmo “Calcula salário de horista”
Início
Var
REAL: VH, HT, S
VH, HT
Inicio
Escreva(“Digite o valor da hora, em R$/h:”)
ST = HT * VH
Leia(VH)
Escreva(“Digite as horas trabalhadas:”)
“Salário: ”, ST
Leia(HT)
ST ← HT * VH
Fim Escreva(“Salário: ”, ST)
FimAlgoritmo
Índice de Massa Corporal
• Linguagem Natural • Fluxograma
1. Leia o peso do Início
sujeito, em kg
P, A
2. Leia a altura do
sujeito, em metros
IMC = P / A2
3. Calcule o IMC,
dividindo o peso
“IMC: ”, IMC
pelo quadrado da
altura
Fim
4. Imprima o IMC
Índice de Massa Corporal
• Fluxograma • Português Estruturado
Algoritmo “Calcula IMC”
Início
Var
REAL: P, A, IMC
P, A
Inicio
Escreva(“Digite o seu peso, em Kg: ”)
IMC = P / A2
Leia(P)
Escreva(“Digite sua altura, em metros: ”)
“IMC: ”, IMC
Leia(A)
IMC ← P / (A * A)
Fim Escreva(“IMC: ”, IMC)
FimAlgoritmo
O PORTUGUÊS
ESTRUTURADO
Estrutura do Programa
• Todo programa em Português Estruturado
tem duas partes importantes:
1. A Declaração
2. O Código (Algoritmo)
Algoritmo “Nome do Algoritmo”
Var
Inicio
FimAlgoritmo
Estrutura do Programa
• Área de Declaração indica
1. Nome do Algoritmo
2. As variáveis usadas no programa (opcional)
Algoritmo “Nome do Algoritmo”
Var
Inicio
FimAlgoritmo
Estrutura do Programa
• Declarando a variável A para números REAIS
Inicio
FimAlgoritmo
Estrutura do Programa
A declaração de variáveis tem sempre o
seguinte formato:
• Declarando a variável A para números REAIS
TipoDaVariável : NomeDaVariável
Inicio
FimAlgoritmo
Estrutura do Programa
A declaração de variáveis tem sempre o
seguinte formato:
• Declarando a variável A para números REAIS
TipoDaVariável : NomeDaVariável
Inicio
FimAlgoritmo
Estrutura do Programa
• Declarando a variável A para números REAIS
• Declarando também a variável B para REAIS
Inicio
FimAlgoritmo
Estrutura do Programa
Podemos declarar mais de uma variável do
mesmo tipo em uma única linha, separando-
• Declarando a variável A para números REAIS
as por vírgulas
• Declarando também a variável B para
TipoDaVariável : Variável1, Variável2REAIS
Inicio
FimAlgoritmo
Estrutura do Programa
• Declarando a variável A para números REAIS
• Declarando também a variável B para REAIS
• Agora, a variável C para números INTEIROS
Algoritmo “Nome do Algoritmo”
Var
REAL : A, B
INTEIRO : C
Inicio
FimAlgoritmo
Estrutura do Programa
Para declarar variáveis de tipos diferentes, é
• Declarando a variável A para números REAIS
necessário declarar em linhas diferentes
• Declarando também a variável B para REAIS
• Agora, a variável C para números INTEIROS
Algoritmo “Nome do Algoritmo”
Var
REAL : A, B
INTEIRO : C
Inicio
FimAlgoritmo
Estrutura do Programa
• Declarando a variável A para números REAIS
• Declarando também a variável B para REAIS
• Agora, a variável C para números INTEIROS
Algoritmo “Nome do Algoritmo”
Simplificadamente, os
Var tipos de variáveis são:
REAL : A, B
INTEIRO
INTEIRO : C
REAL
Inicio
LOGICO
FimAlgoritmo
CARACTERE/LITERAL
Há regras para os NOMES das variáveis:
Estrutura do Programa
1. Não podem ter espaços
2. Não podem iniciar com números
• Declarando a variável A para números REAIS
3. Não podem usar caracteres especiais
• Declarando também a variável
(acentos etc.) B para REAIS
•4. Agora, a variável
Não podem ser Cuma
parapalavra
números da INTEIROS
linguagem
(REAL ou Inicio,
Algoritmo “Nomepor exemplo)
do Algoritmo”
Var
REAL : A, B
INTEIRO : C
Inicio
FimAlgoritmo
Estrutura do Programa
• A área de código é onde será colocado nosso
programa
• Nessa área, daremos ordens ao computador
Algoritmo “Nome do Algoritmo”
Var
Inicio
FimAlgoritmo
Área de Código
• Tarefa mais comum: escrever texto na tela
• Escrever “Uma frase qualquer”
Inicio
Escreva (“Uma frase qualquer”)
FimAlgoritmo
ÁreaUmade Código
frase qualquer
Inicio
Escreva (“Uma frase qualquer”)
FimAlgoritmo
Área de Código
• Tarefa mais comum: escrever texto na tela
• Escrever “Uma frase qualquer”
• Escrever o número 1934
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“Uma frase qualquer”)
Escreva (1934)
FimAlgoritmo
ÁreaUmade Código
frase qualquer1934
Inicio
Escreva (“Uma frase qualquer”)
Escreva (1934)
FimAlgoritmo
Área de Código
• Tarefa mais comum: escrever texto na tela
• Escrever “Uma frase qualquer” e pular linha
• Escrever o número 1934
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreval (“Uma frase qualquer”)
Escreva (1934)
FimAlgoritmo
ÁreaUma
de
1934 Código
frase qualquer
Inicio
Escreval (“Uma frase qualquer”)
Escreva (1934)
FimAlgoritmo
Área de Código
• Vamos fazer algo mais complexo
• Escrever “2 + 3 = ”
• Escrever o resultado de 2+3
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área2 +de
3=5
Código
• Vamos fazer algo mais complexo
• Escrever “2 + 3 = ”
• Escrever o resultado de 2+3
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área2 +de
3=5
Código
Quando mando
escrever algo entre
• Vamos fazer algo mais complexo
• Escrever “2 + 3 = ” aspas, como “2+3=”, o
computador reproduz
• Escrever o resultado de 2+3
exatamente na tela
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área2 +de
3=5
Código
Esses conteúdos o
• Vamos fazer algo mais computador
complexo conisdera
• Escrever “2 + 3 = ” como texto. O nome
técnico para texto é
• Escrever o resultado de 2+3
string
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área2 +de
3=5
Código
Quando mando
escrever algo sem
• Vamos fazer algo mais complexo
• Escrever “2 + 3 = ” aspas, como 2+3, o
computador resolve e
• Escrever o resultado de 2+3
imprime o resultado.
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área2 +de
3=5
Código
O nome técnico dos
elementos que o
• Vamos fazer algo mais complexo
• Escrever “2 + 3 = ” computador resolve
antes de continuar é
• Escrever o resultado de 2+3
expressão
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área de Código
• Se quero que as impressões apareçam uma do
lado da outra... Ainda assim preciso de duas
linhas?
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”)
Escreva (2+3)
FimAlgoritmo
Área de Código
• NÃO! Podemos imprimir com uma linha só,
separando as informações com vírgula
Inicio
Escreva (“2 + 3 = ”, 2+3)
FimAlgoritmo
Área2 +de
3=5
Código
• NÃO! Podemos imprimir com uma linha só,
separando as informações com vírgula
Inicio
Escreva (“2 + 3 = ”, 2+3)
FimAlgoritmo
Área de Código
Nas expressões, podemos usar as operações
matemáticas usuais:
•Soma:
NÃO! Podemos+ imprimir com
Divisão uma linha só,\
Inteira:
separando as informações
Subtação: - com
Resto da vírgula
Divisão: %
Multiplicação: * Potência: ^
Divisão: / Parênteses: ()
Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”, 2+3)
FimAlgoritmo
Área
As de Código
regras da matemática se aplicam:
2 + 4 * 2 = (2 +
• NÃO! Podemos imprimir com uma linha só,
4) * 2 =
2separando
+ (4*2) as
= informações com 6*2 =
vírgula
2+8= 12
10 Algoritmo “Nome do Algoritmo”
Var
Inicio
Escreva (“2 + 3 = ”, 2+3)
FimAlgoritmo
Área de Código
• Para fazer coisas mais elaboradas, podemos
usar variáveis
FimAlgoritmo
Área de Código
O símbolo <- é
chamado atribuição
• Para fazer coisas mais elaboradas, podemose
usar variáveis ele serve para guardar
um valor em uma
variável
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : SOMA
Inicio
SOMA <- 2+3
Escreva (“2 + 3 = ”, SOMA)
FimAlgoritmo
Área de Código
Uma atribuição sempre tem o nome de uma
• Para fazer coisas mais elaboradas, podemos
variável do lado esquerdo...
usar variáveis
FimAlgoritmo
Área de Código
• Para
...e um valor
fazer ou mais
coisas expressão do lado
elaboradas, direito
podemos
usar variáveis
FimAlgoritmo
Área
Comode Código
a variável representa uma posição de
memória, e a memória só armazena números,
• Para fazer coisas mais elaboradas, podemos
toda expressão é calculada antes que seu
usar variáveis
resultado seja armazenado
FimAlgoritmo
Isso significa
Área que o computador resolve a linha
de Código
destacada assim:
• Para fazer coisas
SOMAmais <- 2+3 podemos
elaboradas,
usar variáveisSOMA <- 5
A leitura dessa linha é “SOMA recebe 2+3”
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : SOMA
Inicio
SOMA <- 2+3
Escreva (“2 + 3 = ”, SOMA)
FimAlgoritmo
Área de Código
• Finalmente, falta vermos como ler um valor
• Para ler um valor, precisamos de uma variável
FimAlgoritmo
Área de Código O comando de entrada
é simples: ele espera o
• Finalmente, falta vermos como digitar
usuário ler um algo
valore
• Para ler um valor, precisamos
guardadena uma variável
variável
indicada (no caso, a
variável A)
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Leia(A)
FimAlgoritmo
Área de Código
Observe, entretanto,
quecomo
• Finalmente, falta vermos nadaler
aparecerá
um valorna
tela, de
• Para ler um valor, precisamos além
umadevariável
um
cursor, também
chamado de prompt
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Leia(A)
FimAlgoritmo
Área de Código
_
Observe, entretanto,
quecomo
• Finalmente, falta vermos nadaler
aparecerá
um valorna
tela, de
• Para ler um valor, precisamos além
umadevariável
um
cursor, também
chamado de prompt
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Leia(A)
FimAlgoritmo
Área de Código
Devemos, então,
imprimir
• Finalmente, falta vermos como uma
ler um valor
mensagem
• Para ler um valor, precisamos paravariável
de uma que o
usuário saiba o que ele
precisa digitar
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Leia(A)
FimAlgoritmo
Área de Código
Devemos, então,
imprimir
• Finalmente, falta vermos como uma
ler um valor
mensagem
• Para ler um valor, precisamos paravariável
de uma que o
usuário saiba o que ele
precisa digitar
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Leia(A)
FimAlgoritmo
Área de Código
Devemos, então,
imprimir
• Finalmente, falta vermos como uma
ler um valor
mensagem
• Para ler um valor, precisamos paravariável
de uma que o
usuário saiba o que ele
precisa digitar
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
ÁreaDigite
deumCódigo
número: _
Devemos, então,
imprimir
• Finalmente, falta vermos como uma
ler um valor
mensagem
• Para ler um valor, precisamos paravariável
de uma que o
usuário saiba o que ele
precisa digitar
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
ÁreaDigite
deumCódigo
número: _
O computador irá
• Finalmente, falta vermos esperar
como leraté
umquevalor
o
• Para ler um valor, precisamos
usuáriodedigite
uma algo
variável
e
aperte a tecla enter
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
Área de Código
O tipo de informação
• Finalmente, falta vermos como
que ler um valor
o computador irá
• Para ler um valor, precisamos
aceitar,dedepende
uma variável
do
tipo da variável!
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
Área de Código
Se a variável é inteira e
• Finalmente, falta vermos como lerdigitar
o usuário um valor
20,5
• Para ler um valor, precisamos dearmazenado
... o valor uma variável
será 20
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
Área de Código
Se a variável é inteira e
• Finalmente, falta vermoso como
usuário lerdigitar
um valor
um
• Para ler um valor, precisamos deouma
texto ... variável
programa
poderá gerar um erro
Algoritmo “Nome do Algoritmo”
Var
INTEIRO : A
Inicio
Escreva(“Digite um número: ”)
Leia(A)
FimAlgoritmo
Área de Código
• Agora que já temos um valor em A, podemos
imprimi-lo
– Em duplas
Exercício 1 - Solução
• Fluxograma • Português Estruturado
Algoritmo “Calcula Temperatura”
Início
Var
T REAL : T, NT
Inicio
NT = T * 1,1 Escreva(“Digite a temperatura, em oC: ”)
Leia(T)
“Temp: ”, NT NT ← T * 1.1
Escreva(“Temp: ”,NT)
Fim FimAlgoritmo
Exercício 2
• Escreva, em fluxograma e português
estruturado um algoritmo que receba a
temperatura em oC e calcule a temperatura
em oF, conforme a fórmula:
F = 32 + 1,8*C
– Em duplas
Exercício 2 - Solução
• Fluxograma • Português Estruturado
Algoritmo “Converte oC para oF”
Início
Var
C REAL : C, F
Inicio
F = 32 + 1,8*C Escreva(“Digite a temperatura, em oC: ”)
Leia(C)
“Temp oF: ”, F F ← 32 + 1.8 * C
Escreva(“Temp oF: ”,F)
Fim FimAlgoritmo
Exercício 3
• Escreva, em fluxograma e português
estruturado, um algoritmo que receba uma
idade (em anos) e calcule, aproximadamente,
a idade em dias
– Atenção: use 365,25 como sendo o número de
dias por ano
– Em duplas
Exercício 3 - Solução
• Fluxograma • Português Estruturado
Algoritmo “Converte anos em dias”
Início
Var
ANOS REAL : ANOS, DIAS
Inicio
DIAS = 365,25*ANOS Escreva(“Digite o no. de anos: ”)
Leia(ANOS)
“Dias: ”, DIAS DIAS ← 365.25*ANOS
Escreva(“Dias: ”,DIAS)
Fim FimAlgoritmo
CONCLUSÕES
Resumo
• Escrever um algoritmo de computador requer
formalização
• As diferentes representações nos obrigam a
diferentes níveis de formalização e detalhe
• O Português Estruturado tem um conjunto de
regras que precisa ser seguido
• TAREFA!
– Lista de Exercícios 1
Próxima Aula
• Como testar isso?
– Usaremos o Português
Estruturado como base
– Para construir um
programa C/C++ que
pode ser executado!
PERGUNTAS?
BOM DESCANSO
A TODOS!