Aula 2 - Programação 1
Click here to load reader
-
Upload
isaac-barros -
Category
Documents
-
view
100 -
download
0
description
Transcript of Aula 2 - Programação 1
O processador do
algoritmo
Instituto de Computação – UFAL
Processador do algoritmo
O agente que executa um algoritmo é chamado
processador
O processador precisa entender as instruções
contidas no algoritmo
Exemplo:
Elaborar um algoritmo para extrair o algarismo da
casa das unidades de um inteiro dado
Se o processador for um ser humano que saiba o que é
número inteiro, algarismo e casa das unidades, o algoritmo
teria uma única instrução:
“Forneca o algarismo das unidades do inteiro dado”
Instituto de Computação – UFAL
Processador do algoritmo
E se o processador e uma maquina e não sabe
o que é algarismo, casa das unidades, "mais a
direita“, etc.?
Quem esta elaborando o algoritmo deveria
conhecer que instruções o processador e capaz
de executar para poder escrever o seu algoritmo
Instituto de Computação – UFAL
Exemplo
O processador é capaz de
Determinar o resto de uma divisão inteira
Queremos
O algarismo da casa das unidades
Solução:
Chame de n o inteiro dado;
Calcule o resto da divisão de n por 10;
Forneça este resto como o algarismo pedido.
Instituto de Computação – UFAL
Exemplo, um pouco mais formal
inicio
var n, resto : inteiro
leia n
resto = n % 10
imprima resto
fim
Instituto de Computação – UFAL
Linguagem coloquial
Em muitos casos utilizamos uma linguagemcoloquial para expressar algoritmos
Nem sempre é adequado Ambiguidades
Crianças que bebem leite materno freqüentemente são mais sadias;
As crianças são mais sadias porque recebem leite freqüentemente ou são freqüentemente mais sadias porque recebem leite?
Gabriela deve pegar o estojo vazio da aliança de diamantes que estava sobre a cama
O que estava sobre a cama: o estojo vazio ou a aliança de diamantes?
Instituto de Computação – UFAL
Linguagem coloquial
Dificuldade em expressar certas instruções
Exemplo
Algoritmo para calcular raízes de uma equação do segundo
grau
“Subtraia do quadrado do segundo coeficiente o produto do
numero quatro pelo produto dos dois outros coeficientes.”
Instituto de Computação – UFAL
Equações :: uma linguagem um pouco mais
adequada
1. Chame de a, b e c os coeficientes da equação.
2. Calcule d = b2 - 4ac.
3. Se d < 0 forneça como resposta a mensagem:
A equação não possui raízes reais.
4. Se d ≥ 0
1. Calcule x1 = (-b + raiz(d))/2a e x2 = (-b - raiz(d))/2a.
2. Forneça x1 e x2 como raízes da equação.
Instituto de Computação – UFAL
Exemplos
Suposições O nosso processador de algoritmos é capaz de:
Somar
Subtrair
Dividir
Multiplicar
Comparar
Executar condicionalmente uma instrução
Repetir instruções
Número fixo
Condicionalmente
Representar por seqüências de caracteres (chamadas variáveis) valores numéricos (que passam a ser chamados valores da variável)
Atribuir um valor a uma variável
Substituir o valor de uma variável por um outro valor
Emitir mensagens
Instituto de Computação – UFAL
Exemplos de algoritmos matemáticos
Nosso processador não é capaz de calcular o
resto e nem o quociente de uma divisão inteira
Objetivo:
Algoritmo para a determinação do quociente e do
resto da divisão de dois inteiros positivos dados
Exemplo
30 / 7
Quociente: 4
Resto: 2
Instituto de Computação – UFAL
Como resolver?
Qual a entrada?
Qual a saída esperada?
Quais os passos para “dada a entrada” chegar
na “saída esperada” ?
Resolva primeiro na sua “cabeça”
Use papel e caneta para entender e desenvolver a
solução
Só depois faça o algoritmo
Instituto de Computação – UFAL
Algoritmo
inicio
// declaração de variáveis
var dividendo, divisor, i : inteiro
var quociente, resto : inteiro
// entrada de dados
leia dividendo, divisor
i = 1
repita enquanto ((i * divisor) <= dividendo )
i = i+1
fim_enquanto
quociente = i - 1
resto = dividendo - quociente*divisor
// saída
imprima "O resto é "+resto+" e o quociente é "+quociente
fim
Instituto de Computação – UFAL
Execução do algoritmo
Dividendo DivisorQuociente
* ii Quociente Resto
Instituto de Computação – UFAL
Exemplo 2
Determinar o menor divisor maior que 1 de um inteiro dado Exemplos:
10, resposta: 2
13, resposta: 13
15, resposta: 3
Considere que dessa vez o processador do algoritmo sabe executar o resto: 10 % 3 == 1
2 % 5 == 2
10 % 4 == 2
Instituto de Computação – UFAL
Algoritmo
inicio
numero, divisor : inteiro
leia numero
divisor = 2
repita enquanto ( (numero%divisor) !=0 )
divisor = divisor + 1
fim_enquanto
imprima "A resposta é "+divisor
fim
Note que agora
já sabemos
calcular o resto
Instituto de Computação – UFAL
Exemplo 3
Calcular o Máximo Divisor Comum (mdc) de
dois números dados
Exemplo:
mdc(15, 20) = 5
mdc(8,32) = 8
mdc(56, 64)=8
Instituto de Computação – UFAL
Solução
Algoritmo de Euclides
mdc (120, 84)
120 84
1
36
2
12
3
0
Instituto de Computação – UFAL
Desafio
Você já conseguiria escrever esse algoritmo?
Tente !
Lembre-se
Qual a entrada?
Qual a saída esperada?
Como fazer para:
Entrada SaídaAlgoritmo
Instituto de Computação – UFAL
Exercícios
1. Faça um algoritmo que leia 2 valores e mostre as
quatro operações matemáticas básicas entre estes
2 números.
2. Faça um algoritmo que calcule a área de um
triângulo. São dadas a base e a altura do triângulo.
3. Faça um algoritmo que através de quatro notas
calcule as médias aritmética, harmônica e
geométrica.
4. Faça um algoritmo que imprima como resposta o
sucessor e o antecessor de um número dado.