Escolar Documentos
Profissional Documentos
Cultura Documentos
Bibliografia
1. Algortmos de programao
So vrios os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:
Grupo da Disciplina 1
Fundamentos de Informtica Algortmos de Programao
A importncia do algoritmo est no facto de termos que especificar uma seqncia de passos
lgicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si s
no tem vontade prpria, faz apenas o que mandamos. Com uma ferramenta algortmica,
podemos conceber uma soluo para um dado problema, independentemente de uma
linguagem especfica e at mesmo do prprio computador.
1.3 Caractersticas
Finitude: Um algoritmo deve sempre terminar aps um nmero finito de passos ou seja, um
algortmo deve ter fim;
Definio: Cada passo de um algoritmo deve ser precisamente definido. As aes devem ser
definidas rigorosamente e sem ambiguidades, isto , no dar margem dupla interpretao
(no ambguo);
Entradas: Um algoritmo deve ter zero ou mais entradas, isto quantidades que so lhe so
fornecidas antes do algoritmo iniciar. Um algortmo deve ter capacidade de receber dado(s)
de entrada do mundo exterior;
Sadas: Um algoritmo deve ter uma ou mais sadas, isto quantidades que tem uma relao
especfica com as entradas. Este, deve gerar informao de sada para o mundo externo ao
do ambiente do algortmo.
Um factor importante que pode haver mais de um algoritmo para resolver um determinado
problema. Por exemplo, para ir de casa at o trabalho, posso escolher diversos meios de
transporte em funo do preo, conforto, rapidez, etc. A escolha ser feita em funo do
critrio que melhor se adequar as nossas necessidades.
Grupo da Disciplina 2
Fundamentos de Informtica Algortmos de Programao
EXEMPLO1:
Algortmo para preparar Bolo:
Providencie manteiga, ovos, farinha, etc.
Misture os ingredientes
Despeje a mistura na frma de bolo
Leve a frma ao forno
Espere 20 minutos
Retire a frma do forno
Deixe esfriar
Prove
EXEMPLO2:
Para ilustrar mais um conceito importante de algoritmos vamos analisar mais um exemplo,
considerando o problema de calcular a rea de uma mesa retangular. Este clculo pode ser
efetuado se seguirmos os seguintes passos:
EXEMPLO3:
Vamos agora considerar um exemplo um pouco mais matemtico e estudar o algoritmo para
calcular as razes de uma equao do segundo grau da forma ax2+bx+c=0
x1=[-b+(b2-4ac)(1/2)]/(2a)
x2=[-b-(b2-4ac)(1/2)]/(2a)
Grupo da Disciplina 3
Fundamentos de Informtica Algortmos de Programao
o Se o valor de delta for negativo informar que a equao no tem raizes reais e
terminar o algoritmo.
Caso contrrio continue e faa
o Calcular a raiz quadrada de delta e guardar o resultado como raiz
o Calcular x1=(-b + raiz)/(2a)
o Calcular x2=(-b - raiz)/(2a)
o Fornecer como resultado x1 e x2
o Terminar o algoritmo.
Fim do algoritmo para clculo de uma equao do segundo grau.
Neste algoritmo em diversos pontos tivemos de tomar decises e indicar o que fazer em
cada uma das possibilidades, mesmo que seja mostrar que no podemos continuar o
algoritmo. Toda vez que decises tiverem de ser tomadas devemos incluir todas as
possibilidades para o evento que estamos considerando.
Este um dos possveis algoritmos por diversas razes. Por exemplo, poderamos incluir no
algoritmo o clculo das razes imaginrias ou no caso do coeficiente a ser igual a zero calcular
como se fosse uma equao do primeiro grau.
VANTAGENS:
DESVANTAGENS:
impreciso;
pouca confiabilidade (a impreciso acarreta a desconfiana);
extenso (normalmente, escreve-se muito para dizer pouca coisa).
1.4.2 Fluxograma
Esta um representao grfica que emprega formas geomtricas padronizadas para indicar
as diversas aces e decises que devem ser executadas para resolver o problema. No
fluxograma existem smbolos padronizados para incio, entrada de dados, clculos, sada de
dados, fim, etc.
Exemplo:
Grupo da Disciplina 4
Fundamentos de Informtica Algortmos de Programao
Incio
Ler NUM
Dobro = Num * 2
Dobro
Fim
VANTAGENS:
DESVANTAGENS:
EXEMPLO2:
Outro exemplo de um algoritmo descrito por meio de fluxogramas o problema de calcular
a soluo da equao de primeiro grau.
Grupo da Disciplina 5
Fundamentos de Informtica Algortmos de Programao
ax+b=0
x=-(b/a)
se a for diferente de zero. A Figura abaixo mostra um possvel algoritmo para resolver este
problema.
Incio
Ler a
Ler b
a=0
Imprimir X
Fim
Este modo de representar algoritmos procura empregar uma linguagem que esteja o mais
prximo possvel de uma linguagem de programao de computadores de alto nvel mas
evitando de definir regras de construo gramatical muito rgidas. A idia usar as vantagens
do emprego da linguagem natural, mas restringindo o escopo da linguagem. Normalmente
estas linguagens so verses ultra reduzidas de linguagens de alto nvel do tipo Pascal ou C.
principal ()
incio
imprimir "Alo mundo."
Grupo da Disciplina 6
Fundamentos de Informtica Algortmos de Programao
fim
EXEMPLO:
Algoritmo CALCULA_DOBRO
NUM,DOBRO : inteiro
incio
Leia NUM
DOBRO = 2 * NUM
Escreva DOBRO
Fim
VANTAGENS:
DESVANTAGENS:
1.5.1 SEQUENCIAO
Os comandos do algoritmo fazem parte de uma sequncia, onde relevante a ordem na qual
se encontram os mesmos, pois sero executados um de cada vez, estritamente, de acordo
com essa ordem. De uma forma genrica, poderamos expressar uma seqncia da seguinte
maneira:
Comando-1
Comando-2
Comando-3
:
Grupo da Disciplina 7
Fundamentos de Informtica Algortmos de Programao
Comando-n
Inicio
Ler A, B
Soma = A + B
Imprimir Soma
Fim
Se <condio>
ento <seq. de comandos-1>
seno <seq. de comandos-2>
Grupo da Disciplina 8
Fundamentos de Informtica Algortmos de Programao
A deciso deve ser sempre usada quando h a necessidade de testar alguma condio e em
funo da mesma tomar uma atitude. Em nosso dia-a-dia, estamos sempre tomando
decises, vejamos um exemplo:
Inicio
Ler X
Sim No
X<0
Imprimir Y
Fim
Este tipo de estrutura uma generalizao da estrutura Se, onde a condio avaliada conduz
a no mximo duas possibilidades de aces. Na estrutura de deciso do tipo Seleco podem
Grupo da Disciplina 9
Fundamentos de Informtica Algortmos de Programao
existir uma ou mais possibilidades de aces a serem tomadas. A Figura abaixo mostra a
sintaxe em fluxograma para a estrutura Seleco.
Essa estrutura tambm conhecida por looping ou lao. A repetio permite que tarefas
individuais sejam repetidas um nmero determinado de vezes ou tantas vezes quantas uma
condio lgica permita. Vejamos alguns exemplos:
No exemplo (a), vai-se repetir a aco de atirar pedras na janela at que seja satisfeita a
condio de quebrar a janela.
Grupo da Disciplina 10
Fundamentos de Informtica Algortmos de Programao
A utilizao combinada dessas 3 estruturas descritas vai permitir expressar, usando qualquer
que seja a ferramenta, a soluo para uma gama muito grande de problemas. Todas as
linguagens de programao oferecem representantes dessas estruturas.
Para representar estruturas cclicas em fluxogramas, h que ter em ateno que uma
repetio ou um ciclo de instrues no mais do que uma condio se ( IF ), conjugada
com um retrocesso na execuo do programa.
Exemplo: Faa um fluxograma para somar todos os nmeros inteiros desde 1 at 10.
Aqui, a condio de continuidade testada logo no incio, podendo dar-se o caso de o ciclo
no chegar a ser executado se a condio for falsa logo partida.
Grupo da Disciplina 11
Fundamentos de Informtica Algortmos de Programao
Incio
I=1
Soma = 0;
Fim
Grupo da Disciplina 12
Fundamentos de Informtica Algortmos de Programao
Inicializar o
contador
Instrues
Actualizar o
contador
No Sim
Condies
Incio
I=1
Soma = 0;
repetir
Soma = soma + i
I = I + 1;
at i > 10;
Imprimir soma;
Fim
Grupo da Disciplina 13
Fundamentos de Informtica Algortmos de Programao
Este tipo de estrutura til quando se conhece previamente o nmero de vezes que se deseja
executar um determinado conjunto de comandos. Ento, este tipo de lao nada mais que
uma estrutura dotada de mecanismos para contar o nmero de vezes que o corpo do lao
executado. A sintaxe usada a seguinte:
No
<Var> = <Ini>, <Fim>
<Inc>
Sim
Instrues
Exemplo: Calcule a mdia aritmtica entre duas notas para trinta alunos de uma sala.
Inicio
No
I = 1, 30
1
Sim
Imprimir Media
Fim
Grupo da Disciplina 14
Fundamentos de Informtica Algortmos de Programao
Por exemplo, o algoritmo para calcular a mdia aritmtica de dois nmeros pode ser escrito
da seguinte forma:
Algoritmo CALCULA_MDIA
Incio
Receba os dois nmeros
Calcule a mdia dos dois nmeros
Exiba o resultado
Fim
Aps esse refinamento, o algoritmo pode ser considerado completo, a menos que o
destinatrio no saiba fazer as operaes de adio e diviso, ou no seja capaz de entender
diretamente algum comando. O algoritmo estando completo, podemos reescrev-lo,
inserindo o refinamento na posio do comando que foi refinado.
Grupo da Disciplina 15
Fundamentos de Informtica Algortmos de Programao
Exerccios de Aplicao
Parte I
4. Suponha que temos um rob a nossa disposio. Esse rob chama-se MANNY e precisa
ser ensinado a fazer determinadas tarefas. Para ensinar o MANNY, vamos fazer uso do
portugus para passar lhe as instrues necessrias execuo de cada actividade.
Escreva os passos necessrios para o nosso rob executar:
a) Encher uma bacia com gua;
b) Trocar uma lmpada no tecto de sua casa;
c) Trocar o pneu de um carro;
d) Calcular a mdia de um aluno com 3 notas.
7. Quais as estruturas bsicas de controle dos algoritmos? Explique cada uma delas.
12. Faa um algotmo capaz de somar todos os nmeros inteiros compreendidos entre 1 e
10, e mostrar o resultado da soma.
13. Escreva um algortmo para calcular, dados trs nmeros inteiros, a soma dos dois
nmeros maiores.
14. Escreva um algortmo para, dado um nmero N, calcular a soma de todos os nmeros
positivos pares, inferiores ou iguais a esse nmero N.
Grupo da Disciplina 16
Fundamentos de Informtica Algortmos de Programao
15. Escreva um algortmo para, dado um nmero N (entre 1 e 10), apresentar a tabuada dos
N. Exemplo: para N=5 dever apresentar: 1x5=5, 2x5=10, 3x5=15, 4x5=20, 5x5=25,
6x5=30, 7x5=35, 8x5=40, 9x5=45, 10x5=50.
18. Escreve um algoritmo que aceite um nmero inteiro e que determine todos os nmeros
primos iguais ou inferiores a esse nmero.
19. Escreva um algortmo que converta um nmero decimal para a sua representao em
sistema binrio.
20. Escreva um algortmo que converta um nmero decimal para a sua representao numa
outra base qualquer.
21. Escreva um algortmo que converta um nmero representado numa qualquer base, para
a sua representao na base decimal.
22. Escreva um algortmo que receba como entrada uma sequncia desordenada de nmeros
(num(1), num(2), ... num(n)) e que verifique se um determinado nmero (m) se encontra
nessa sequncia.
Grupo da Disciplina 17