Escolar Documentos
Profissional Documentos
Cultura Documentos
SUMÁRIO
1. Objetivo..........................................................................................................................................2
2. Base Teórica..................................................................................................................................2
2.1. O Que é Algoritmo?.................................................................................................................2
2.2. Raciocínio Lógico - A Essência ...............................................................................................3
2.3. Fluxograma - Estruturas de Controle .......................................................................................4
2.3.1. Seqüência Simples ...........................................................................................................4
2.3.2. Alternativa .........................................................................................................................4
2.3.3. Repetição..........................................................................................................................6
3. Seqüência da Prática .....................................................................................................................9
4. Exercícios Finais ............................................................................................................................9
1. OBJETIVO
Apresentar uma breve introdução a algoritmos, fluxogramas e suas estruturas de controle, bem
como mostrar exemplos de implementação em Java.
2. BASE TEÓRICA
2.1. O Que é Algoritmo?
A palavra algoritmo é um daqueles termos que, embora muito usado, poucos sabem dizer
exatamente o que significa. É um termo de origem árabe1, que traduzido para o português quer
dizer "operação ou processo de cálculo", que por sua vez evoca a noção de um "processo para
resolver um dado problema". Outras definições possíveis são:
É importante notar que, como muitos pensam, não há nenhuma associação explícita entre algoritmo
e computador. Na verdade, a construção de um algoritmo faz parte do processo de solução de um
problema qualquer, que eventualmente pode ser resolvido através do uso do computador, como
sugerido pela Figura 1, onde é mostrado um possível esquema para resolver problemas. Nessa
figura, implementação significa a maneira como determinado algoritmo será realizado ou executado.
! "
1
Sua origem remonta ao século IX, através de um estudioso e matemático persa chamado Mohammed Ibn Musa Abdu
Djefar, conhecido por Al-Khwarismi, o qual escreveu importante livro sobre álgebra. Ao longo do tempo, e após repetido
uso, o nome Al-Khwarismi foi sofrendo alterações, ocasionado mudança na pronúncia: Al-Karismi, Algarismi, chegando a
Algarismo, que é a representação numérica do sistema de cálculo utilizado em nossos dias. É desta mesma origem que
vem o termo Algoritmo, muito utilizado em computação.
$ %
terminação
entrada
de dados
ação
ponto de
decisão
# controle de
repetição
resultado
(saída de dados)
fluxo de
execução
! "#$
'
#
! %#$
' &
2
Para essa conclusão ser válida, deve-se ter como hipótese que nas duas primeiras assertivas estamos falando de
irmãos por parte de pai e mãe.
* *
/ 0 +1 +1 +234+
Figura 3: Fluxograma para Figura 4: Implementação em Java (JGrasp) do fluxograma para cálculo da
cálculo da diagonal do diagonal do paralelepípedo. As medidas das arestas são fornecidas através
paralelepípedo. da linha de comandos.
2.3.2. Alternativa
Nem todas as soluções para problemas são apenas seqüenciais; na verdade, a maioria não é.
Existem situações onde, dependendo de uma ou mais condições, os caminhos seguidos por uma
solução podem variar; em outras palavras, podem existir alternativas.
Vamos analisar um problema de matemática bem conhecido: obter a solução de uma equação
do segundo grau. Existem alguns métodos para obter essa solução, sendo bem conhecido o da
fórmula de Bhaskara. Esse método diz que, a partir dos coeficientes da equação é possível
determinar a natureza da solução conforme o sinal de um parâmetro calculado denominado
discriminante, e a partir deste define-se como calcular as raízes.
Se a equação for ax2 + bx + c = 0 e o discriminante for ∆, a natureza da solução é dada conforme
o seguinte:
* *
5 ∆ 6
5 ∆ 6
-
!
o 2
Figura 5: Fluxograma da análise da natureza da solução de uma equação do 2 grau, ax +bx+c=0,
segundo o algoritmo de Bhaskara.
2.3.3. Repetição
Seja o seguinte problema: encher um tanque com capacidade para
X litros d'água, sendo que esse tanque não pode sair do lugar e se $
& ' (
6
5
'
9! '
/ *
* 0 ≥ $2*
/ # . #
#
Note que os tipos 1 e 2 são utilizados sempre que não se conhece antecipadamente o número
de repetições a serem realizadas, que é o caso do exemplo apresentado acima para o tanque a ser
enchido com água: quantos baldes serão necessários para enchê-lo? Com essa nova estrutura -
repetição - os fluxogramas possíveis para resolver esse problema são dois, como pode ser visto na
Figura 8. Nesses dois diagramas a hipótese é de que o tanque se encontra inicialmente vazio.
! 6
3$$ :
5
.
!
! ! 3$$
6
5
Resultado
Figura 10: Implementação das repetições dos três tipos (Figura 8 e Figura 9).
3. SEQÜÊNCIA DA PRÁTICA
Ler com bastante atenção a base teórica.
4. EXERCÍCIOS FINAIS
1. Construa o fluxograma, e implemente em Java, o algoritmo de solução da equação do segundo
grau, apresentando as raízes. Faça um "teste de mesa" para saber se as três situações são
calculadas corretamente.
2. Dizemos que dois números são amigos se cada um deles é igual à soma dos divisores próprios
do outro.
Os divisores próprios de um número positivo N são todos os divisores inteiros positivos de N
exceto o próprio N.
Um exemplo de números amigos são 284 e 220, pois os divisores próprios de 220 são 1, 2, 4, 5,
10, 11, 20, 22, 44, 55 e 110. Efetuando a soma destes números obtemos o resultado 284.
1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110 = 284
Os divisores próprios de 284 são 1, 2, 4, 71 e 142, efetuando a soma destes números obtemos o
resultado 220.
1 + 2 + 4 + 71 + 142 = 220
Assim sendo, construa o fluxograma, e implemente em Java, o algoritmo que obtenha todos os
números amigos entre 1 e M, sendo M um inteiro positivo dado.