SlideShare uma empresa Scribd logo
1 de 19
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”
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
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.
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Exemplo, um pouco mais formal
inicio
var n, resto : inteiro
leia n
resto = n % 10
imprima resto
fim
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Linguagem coloquial
 Em muitos casos utilizamos uma linguagem
coloquial 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?
rodrigo@ic.ufal.br
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.”
rodrigo@ic.ufal.br
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.
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Execução do algoritmo
rodrigo@ic.ufal.br
Dividendo Divisor
Quociente
* i
i 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
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
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
rodrigo@ic.ufal.br
Instituto de Computação – UFAL
Solução
 Algoritmo de Euclides
 mdc (120, 84)
rodrigo@ic.ufal.br
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:
rodrigo@ic.ufal.br
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.
rodrigo@ic.ufal.br

Mais conteúdo relacionado

Mais procurados

Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Isaac Barros
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoRobson Ferreira
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06thomasdacosta
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Isaac Barros
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismosdiogoa21
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completothomasdacosta
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01thomasdacosta
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Robson Ferreira
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para FaçaEder Samaniego
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoRobson Ferreira
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completothomasdacosta
 

Mais procurados (20)

Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1Aula 9 repeticao - Programação 1
Aula 9 repeticao - Programação 1
 
Aula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetiçãoAula 12 - Começando a programar : repetição
Aula 12 - Começando a programar : repetição
 
Aula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: CondicionaisAula 11 - Começando a programar: Condicionais
Aula 11 - Começando a programar: Condicionais
 
Conceitos e técnicas de programação introdução
Conceitos e técnicas de programação introduçãoConceitos e técnicas de programação introdução
Conceitos e técnicas de programação introdução
 
Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06Programação Estruturada 2 - Aula 06
Programação Estruturada 2 - Aula 06
 
Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1Aula 12 funcoes - Programação 1
Aula 12 funcoes - Programação 1
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
mod2-mecanismos
mod2-mecanismosmod2-mecanismos
mod2-mecanismos
 
Programação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso CompletoProgramação Estruturada 2 - Curso Completo
Programação Estruturada 2 - Curso Completo
 
Estruturas
EstruturasEstruturas
Estruturas
 
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Aula 01
 
Aula 13 - Trabalhando com strings
Aula 13 - Trabalhando com stringsAula 13 - Trabalhando com strings
Aula 13 - Trabalhando com strings
 
Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3Conceitos e técnicas de programação aula 3
Conceitos e técnicas de programação aula 3
 
portugol
portugolportugol
portugol
 
Tutorial
TutorialTutorial
Tutorial
 
Pj 2009 avioes_overflow
Pj 2009 avioes_overflowPj 2009 avioes_overflow
Pj 2009 avioes_overflow
 
Aula 04 Estruturas de repetição 02 - Para Faça
Aula 04  Estruturas de repetição 02 - Para FaçaAula 04  Estruturas de repetição 02 - Para Faça
Aula 04 Estruturas de repetição 02 - Para Faça
 
Conceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentaçãoConceitos e técnicas de programação apresentação
Conceitos e técnicas de programação apresentação
 
Algoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso CompletoAlgoritmos e Técnicas de Programação - Curso Completo
Algoritmos e Técnicas de Programação - Curso Completo
 
Simulador Funcional
Simulador FuncionalSimulador Funcional
Simulador Funcional
 

Semelhante a Processador algoritmo

Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introduçãoRicardo Fahham
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmosjormad
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-iEdvan Mateó
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem cvingue
 
Aula01
Aula01Aula01
Aula01vdlos
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionaisDérick Platini
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfEizoKato
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturadadiogoa21
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxClaudia Ferlin
 

Semelhante a Processador algoritmo (20)

Curso de python capítulo 1 - introdução
Curso de python   capítulo 1 - introduçãoCurso de python   capítulo 1 - introdução
Curso de python capítulo 1 - introdução
 
Algoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em CAlgoritmos - Aula 13 A - Lacos em C
Algoritmos - Aula 13 A - Lacos em C
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i53297189 apostila-algoritmo-e-logica-i
53297189 apostila-algoritmo-e-logica-i
 
Linguagem C clecioamerico
Linguagem C clecioamericoLinguagem C clecioamerico
Linguagem C clecioamerico
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Apostila linguagem c
Apostila linguagem cApostila linguagem c
Apostila linguagem c
 
Aula01
Aula01Aula01
Aula01
 
Aula 1 | Introdução a C++
Aula 1 | Introdução a C++Aula 1 | Introdução a C++
Aula 1 | Introdução a C++
 
Aula2
Aula2Aula2
Aula2
 
Algoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - LacosAlgoritmos - Aula 07 A - Lacos
Algoritmos - Aula 07 A - Lacos
 
Algoritmos computacionais
Algoritmos computacionaisAlgoritmos computacionais
Algoritmos computacionais
 
Logica de Programacao
Logica de ProgramacaoLogica de Programacao
Logica de Programacao
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdfAula 01 Logica de Programacao - Logica Matematica 1.pdf
Aula 01 Logica de Programacao - Logica Matematica 1.pdf
 
Visualg
VisualgVisualg
Visualg
 
mod3-programação-estruturada
mod3-programação-estruturadamod3-programação-estruturada
mod3-programação-estruturada
 
RevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptxRevisãoCompactaFuncoesPonteiro.pptx
RevisãoCompactaFuncoesPonteiro.pptx
 

Mais de Isaac Barros

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Isaac Barros
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Isaac Barros
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Isaac Barros
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Isaac Barros
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Isaac Barros
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Isaac Barros
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Isaac Barros
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1Isaac Barros
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1Isaac Barros
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1Isaac Barros
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Isaac Barros
 

Mais de Isaac Barros (11)

Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1Aula 15 recursao-organizacao-arquivos - Programação 1
Aula 15 recursao-organizacao-arquivos - Programação 1
 
Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1Aula 14 estruturas - Programação 1
Aula 14 estruturas - Programação 1
 
Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1Aula 13 ponteiros - Programação 1
Aula 13 ponteiros - Programação 1
 
Aula 11 strings - Programação 1
Aula 11 strings - Programação 1Aula 11 strings - Programação 1
Aula 11 strings - Programação 1
 
Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1Aula 10 arrays - Programação 1
Aula 10 arrays - Programação 1
 
Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1Aula 8 principios_programacao - Programação 1
Aula 8 principios_programacao - Programação 1
 
Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1Aula 7 decisao - Programação 1
Aula 7 decisao - Programação 1
 
Aula 6 - Programação 1
Aula 6 - Programação 1Aula 6 - Programação 1
Aula 6 - Programação 1
 
Aula 4 - Programação 1
Aula 4 - Programação 1Aula 4 - Programação 1
Aula 4 - Programação 1
 
Aula 3 - Programação 1
Aula 3 - Programação 1Aula 3 - Programação 1
Aula 3 - Programação 1
 
Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1Aula 16 arquivos - Programação 1
Aula 16 arquivos - Programação 1
 

Processador algoritmo

  • 2. 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” rodrigo@ic.ufal.br
  • 3. 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 rodrigo@ic.ufal.br
  • 4. 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. rodrigo@ic.ufal.br
  • 5. Instituto de Computação – UFAL Exemplo, um pouco mais formal inicio var n, resto : inteiro leia n resto = n % 10 imprima resto fim rodrigo@ic.ufal.br
  • 6. Instituto de Computação – UFAL Linguagem coloquial  Em muitos casos utilizamos uma linguagem coloquial 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? rodrigo@ic.ufal.br
  • 7. 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.” rodrigo@ic.ufal.br
  • 8. 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. rodrigo@ic.ufal.br
  • 9. 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 rodrigo@ic.ufal.br
  • 10. 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 rodrigo@ic.ufal.br
  • 11. 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 rodrigo@ic.ufal.br
  • 12. 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 rodrigo@ic.ufal.br
  • 13. Instituto de Computação – UFAL Execução do algoritmo rodrigo@ic.ufal.br Dividendo Divisor Quociente * i i Quociente Resto
  • 14. 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 rodrigo@ic.ufal.br
  • 15. 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 rodrigo@ic.ufal.br Note que agora já sabemos calcular o resto
  • 16. 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 rodrigo@ic.ufal.br
  • 17. Instituto de Computação – UFAL Solução  Algoritmo de Euclides  mdc (120, 84) rodrigo@ic.ufal.br 120 84 1 36 2 12 3 0
  • 18. 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: rodrigo@ic.ufal.br Entrada SaídaAlgoritmo
  • 19. 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. rodrigo@ic.ufal.br