Académique Documents
Professionnel Documents
Culture Documents
ALGORITMOS
E
FLUXOGRAMAS
Pgina |1
Pgina |2
ALGORITMO
Algoritmo - Uma seqncia de aes finitas encadeadas e lgicas que descrevem
como um determinado problema deve ser resolvido.
Um algoritmo formalmente uma seqncia finita de passos que levam a
execuo de uma tarefa. Podemos pensar em algoritmo como uma receita, uma
seqncia de instrues que executam uma meta especfica. Estas tarefas no podem ser
redundantes nem subjetivas na sua definio, devem ser claras e precisas.
Como exemplos de algoritmos podemos citar os algoritmos das operaes bsicas
(adio, multiplicao, diviso e subtrao) de nmeros reais decimais. Outros exemplos
seriam os manuais de aparelhos eletrnicos, como um aparelho de som, que explicam
passo-a-passo como, por exemplo, gravar um evento.
At mesmo as coisas mais simples do nosso dia a dia, podem ser descritas
por seqncias lgicas. Por exemplo:
Apesar do nome pouco usual, algoritmos so comuns em nosso cotidiano, como
por exemplo, uma receita de bolo. Nela est descrita uma srie de ingredientes
necessrios e uma seqncia de diversos passos (aes) que devem ser fielmente
cumpridos para que se consiga fazer o alimento desejado, conforme se esperava, antes
do incio das atividades (objetivo bem definido).
Observa-se, porm que uma ordem isolada no permite realizar o processo
completo, para isso necessrio um conjunto de instrues colocadas em ordem
seqencial lgica. No exemplo do pargrafo anterior para fazermos um bolo no
podemos comear por colocar os ingredientes no forno. necessrio todo um processo
passo a passo para se chegar a este fim.
Descrio Narrativa
Nesta forma de representao, os algoritmos so expressos em linguagem
natural.
Exemplo:
Receita de um bolo
1. Separar os ingredientes
2. Bater os ovos em neve na batedeira
3. Acrescentar acar e farinha de trigo
4. Colocar extrato de baunilha
5. Acrescentar uma colher de manteiga
6. Acrescentar uma colher de Fermento em p
7. Verificar se esta doce o suficiente
8. Colocar na forma
9. Colocar no forno e assar
Pgina |3
Pseudocdigo
Como foi visto at agora, o fluxograma convencional a primeira forma de
notao grfica, mas existe outra, que uma tcnica narrativa denominada
pseudocdigo, tambm conhecida como portugus estruturado ou chamada por alguns
de portugol.
Esta tcnica de algoritmizao baseada em uma PDL Program Design
Language (Linguagem de Projeto de Programao). Aqui vamos apresent-la em
portugus. A forma originas de escrita conhecida como ingls estruturado, muito
parecida com a notao da linguagem PASCAL. A PDL (neste caso, o pseudocdigo)
usada como referncia genrica para uma linguagem de projeto de programao, tendo
como finalidade mostrar uma notao para elaborao de algoritmos, os quais sero
utilizados na definio, criao e desenvolvimento de uma linguagem computacional
(Clipper, C, Fortran, Pascal, Delphi, Visual-Objects) e sua documentao. Abaixo
apresentado um exemplo deste tipo de algoritmo.
Os algoritmos so independentes das linguagens de programao. Ao
contrrio de uma linguagem de programao no existe um formalismo rgido
de como deve ser escrito o algoritmo.
O algoritmo deve ser fcil de se interpretar e fcil de codificar. Ou seja, ele deve
ser o intermedirio entre a linguagem falada e a linguagem de programao.
Portugol
A maioria esmagadora das linguagens de programao de computadores em
lngua inglesa. Para facilitar o aprendizado de lgica de programao foram criadas
algumas pseudolinguagens.
O Portugol uma pseudolinguagem de programao, uma simbiose de Portugus,
Algol e Pascal, criada originalmente em ingls, com a proposta de ser independente da
linguagem nativa (ou seja, existe em japons, javans, russo...).
Basicamente, uma notao para algoritmos, a ser utilizada na definio,
criao, desenvolvimento e documentao dos programas.
Algumas Palavras Chave
Inicio, Fim, Algoritmo, Enquanto, Se, ento, Para, At, At que, Leia,
Escreva, Faa, Repita, FimSe, FimEnquanto, FimSelecione, entre outras que
veremos adiante.
Regras para construo do Algoritmo
Para escrever um algoritmo precisamos descrever a seqncia de instrues, de
maneira simples e objetiva. Para isso utilizaremos algumas tcnicas:
1. Usar somente um verbo por frase
Pgina |4
Entrada
Processamento
Sada
ENTRADA:
So os dados de entrada do algoritmo
PROCESSAMENTO: Procedimentos utilizados para chegar ao resultado final
SADA:
So os dados j processados
Analogia com o homem
Exemplo de Algoritmo
Imagine o seguinte problema: Calcular a mdia final dos alunos. Pelas provas os
alunos recebero 2 notas: N1, N2. Onde:
N1 + N2
Mdia Final =
-------------------2
Para montar o algoritmo proposto, faremos trs perguntas:
a) Quais so os dados de entrada?
R: Os dados de entrada so N1, N2
b) Qual ser o processamento a ser R: O procedimento ser somar todos os
utilizado?
dados de entrada e dividi-los por 2
(dois)
c) Quais sero os dados de sada?
R: O dado de sada ser a mdia final
Pgina |5
INICIO do algoritmo
Receba a nota da prova1
Receba a nota de prova2
Some todas as notas e divida o resultado por 2
Mostre o resultado da diviso
FIM do algoritmo
Teste de Mesa
Aps desenvolver um algoritmo ele dever sempre ser testado. Este teste
chamado de TESTE DE MESA, que significa, seguir as instrues do algoritmo de
maneira precisa para verificar se o procedimento utilizado est correto ou no,
escrevendo todas as variveis e resultados em uma tabela.
Programa mdia
Var
Nome: caractere
N1, N2: real
Soma, mdia: real
Incio
Imprima Informe nome e notas do aluno:
Leia nome
Leia n1
Leia n2
Soma <= n1 + n2
Mdia <= soma / 2
Imprima nome
Imprima Mdia
Se mdia >=5 Ento
Imprima Aprovado
Caso contrrio
Imprima Reprovado
Fim Se
Fim
A diferena entre uma linguagem de programao de alto nvel utilizada em
computao e uma PDL que esta (seja escrita em portugus, ingls, ou qualquer outro
idioma) no pode ser compilada em um computador (por enquanto). Porm, existem
Processadores de PDL que possibilitam traduzir essa linguagem numa representao
grfica de projeto, fornecendo uma variedade de informaes, como: tabelas de
referncia cruzada, mapas de aninhamento, ndice operacional do projeto, entre tantas
outras.
ATENO: Lembramos que o fluxograma e o pseudocdigo so as duas tcnicas
importantes para a documentao da soluo de um problema computacional
Pgina |6
Variveis
Varivel a representao simblica dos elementos de um certo conjunto.
Cada varivel corresponde a uma posio de memria, cujo contedo pode se
alterado ao longo do tempo durante a execuo de um programa. Embora uma varivel
possa assumir diferentes valores, ela s pode armazenar um valor a cada instante.
Exemplos de variveis:
Nome
Media = Soma / 20
Nome o nome dado a uma posio de memria para armazenar um contedo
com letras
Media o nome dado a uma posio de memria para armazenar um valor real
Soma e o nome dado a uma posio de memria para armazenar um valor real
Constantes
Constante uma determinada varivel que possui um valor fixo (que no se
modifica) durante a execuo de um algoritmo.
Conforme o seu tipo, a constante classificada como sendo numrica, lgica e
literal.
Exemplos de constante:
Nome = Jose da Silva
Peso= 85
Tipos de Variveis
As variveis e as constantes podem ser basicamente de seis tipos:
Numrica
Caractere
Alfanumrica
Lgica
Indexada
Usurio
Pgina |7
Estrutura de Um Algoritmo
ALGORITMO ("Nome do algoritmo" )
{Declaraes}
Nome : caracter { a varivel Nome criada como caracter }
Idade : inteiro
{ a varivel Idade nmero inteiro }
{Atribuies}
Nome Jos da Silva
Peso 85
INICIO (Nome do bloco)
{ se for o caso, de refinamento }
{Instrues}
< comandos >
FIM
Nome Jos da Silva
(A varivel nome recebe valor Jos da silva)
Peso 85 (A varivel Peso recebe valor igual a 85)
Obs.: As sees Declaraes e Atribuies so PBLICAS dentro do programa. ou
seja so "vistas" em qualquer parte do programa. Dentro do Bloco, as sees
Declaraes e Atribuies so LOCAIS ao Bloco, ou seja so privadas (particulares,
internas) ao Bloco, conforme veremos em Refinamentos Sucessivos.
25
Passo 3 : Leia o segundo numero que eu estou digitando agora na sua tela de vdeo:
30
Passo 4: Some este dois nmeros
Passo 5: Mostre o resultado nesta mesma tela
55
Passo 6: Fim do processo.
Observamos at que um algoritmo precisa:
1. Ter um incio;
2. Ser escrito em termos de aes (comandos) bem definidas;
3. Que as aes sigam uma sequncia ordenada e lgica.
4. Ter um ponto de finalizao
Pgina |8
PROGRAM media;
USES crt;
VAR
{declarao de variveis}
numero1,
numero2: inteiro
soma: inteiro;
Begin
{incio do programa}
readln (numero1);
readln (numero2);
soma:= numero1 + numero2
writeln(soma);
end.
Observe que elaboramos uma seqncia de passos ou comandos que sero as
ordens a serem executadas.
Observe ainda que todos os comandos so constitudos de VERBOS
(readln/Leia, writeln/Escreva) que indicam qual ao queremos que seja executada.
Exerccios:
1) Crie uma sequncia lgica para tomar banho
2) Faa um algoritmo para achar a mdia de 3 nmeros
3) Crie uma algoritmo para acrescentar 10% ao seu salrio mensal.
Programas de computador:
Os programas de computadores nada mais so do que algoritmos escritos numa
linguagem de computador, normalmente em ingls, (Pascal, C, Cobol, Fortran, Visual
Basic, Delhi entre outras) e que so interpretados e executados por uma mquina, no
caso um computador. Notem que dada esta interpretao rigorosa, um programa por
natureza muito especfico e rgido em relao aos algoritmos da vida real.
No nosso exemplo do tpico anterior nos antecipamos a este conceito que dever
ser melhor entendido agora.
Para programar um computador precisamos dar ordens escritas ao mesmo p-as-s-o a p-a-s-s-o. Um computador apenas uma mquina e no raciocina como ns
humanos. Cada ordem composta basicamente por um verbo que indique qual ao
queremos que o mesmo execute, assim se queremos que o computador escreva algo na
tela podemos usar algo como:
WRITE (ESTOU ESCREVENDO ALGO NA TELA)
Fluxograma Convencional
Sabemos que uma figura fala por mil palavras. No processo de aprendizado
fixamos com mais facilidade imagens do que conceitos escritos.
O diagrama de blocos ou fluxograma uma forma padronizada eficaz para
representar os passos lgicos de um determinado processamento.
Pgina |9
Simbologia
Existem diversos smbolos em um diagrama de bloco. No decorrer do curso
apresentaremos os mais utilizados. Veja no quadro abaixo alguns dos smbolos que
iremos utilizar:
FLUXO DE DADOS
Indica o sentido do fluxo de dados. Conecta os
demais smbolos
TERMINAL
Indica o INCIO ou FIM de um processamento
Exemplo: Incio do algoritmo
PROCESSAMENTO
Processamento em geral
Exemplo: Calculo de dois nmeros
ENTRADA/SADA (Genrica)
Operao de entrada e sada de dados
Exemplo: Leitura e Gravao de Arquivos
DESVIO (conector)
Permite o desvio para um ponto qualquer do
programa
ENTRADA MANUAL
Indica entrada de dados via Teclado
Exemplo: Digite a nota da prova 1
EXIBIR/SADA
Mostra informaes ou resultados
Exemplo: Mostre o resultado do clculo
DECISO
Permite elaborar processos de deciso
P g i n a | 10
CONECTOR DE PAGINA
Permite informar de qual pagina vem o fluxograma
Inicio
Digite 1 numero n1
Digite 2 numero n2
SIM
Nmeros
Sim
so zeros??
NO
Imprima o
encontrado
resultado
Fim
Operadores
Os operadores so meios pelo qual incrementamos, decrementamos, comparamos e
avaliamos dados dentro do computador. Temos trs tipos de operadores:
Operadores Aritmticos
Operadores Relacionais
Operadores Lgicos
Operadores Aritmticos
Os operadores aritmticos so os utilizados para obter resultados numricos. Alm
da adio, subtrao, multiplicao e diviso, podem utilizar tambm o operador para
exponenciao. Os smbolos para os operadores aritmticos podem ser vistos ao lado:
P g i n a | 11
Smbolo
+
*
/
** ou ^
Operadores Relacionais
Os operadores relacionais so utilizados para comparar String de caracteres e
nmeros. Os valores a serem comparados podem ser caracteres ou variveis.
Igual a
Diferente de
Maior que
Menor que
Maior ou igual a
Menor ou igual a
=
<> ou
>
<
>=
<=
Resultado
Falso
Verdadeiro
Verdadeiro
Falso
Verdadeiro
Falso
Operadores Lgicos
Os operadores lgicos servem para combinar
retornando se o resultado final verdadeiro ou falso.
resultados
de
expresses,
P g i n a | 12
Exemplos
Suponha que temos trs variveis A = 5, B = 8 e C =1.
expresses seriam:
A
A
A
A
A
A
=B
<> B
>B
<B
>= B
<= B
Expresses
AND
OR
NOT
AND
OR
NOT
B>C
B<C
B>C
B=C
Os resultados das
Resultado
Falso
Verdadeiro
Verdadeiro
Verdadeiro
Falso
Falso.
Funes Intrnsecas
So funes que resumem uma srie se operaes bsicas.
Podem ser Aritmticas, quando no tratamento de nmeros e Literais quando no
tratamento de alfanumricos.
Funes Aritmticas
Sintaxe
Caracter Caracter(Num)
Int
Int(Num)
Raiz
Abs
Raiz(Num)
Abs(Nm)
Div
Mod
Div(Num;Divisor)
Mod(Num;Divisor
)
Descrio
Fornece o caracter correspondente a Num (entre 1 e
255) de acordo com a tabela ASCII
Arredonda um nmero real Num para baixo, retornando
a parte inteira mais prxima.
Retorna uma raiz quadrada de Num.
Retorna o valor absoluto de Num, que um nmero
sem o respectivo sinal.
Retorna o quociente da diviso de Num por divisor.
Retorna o resto depois da diviso de Num por divisor.
Sintaxe
Ltrim(Texto)
Rtrim(Texto)
Comp(Texto)
EXERCCIOS
1)
2)
P g i n a | 13
Crie um algoritmo que leia dois nmeros nas variveis NumA e NumB, nessa ordem e
imprimir em ordem inversa, isto , se os dados lidos forem 5 e 9 (NumA e NumB), por
exemplo, devem ser impressos 9 e 5 (NumA e NumB).
P g i n a | 14
No exemplo acima est sendo executada uma condio que, se for verdadeira,
executa o comando APROVADO, caso contrrio executa o segundo comando
REPROVADO. Podemos tambm dentro de uma mesma condio testar outras
condies. Como no exemplo a o lado:
P g i n a | 15
EXERCCIOS
1) Elabore um diagrama de blocos que leia um nmero. Se positivo armazene-o em A,
se for negativo, em B. No final mostrar o resultado.
2) Ler um nmero e verificar se ele par ou mpar. Quando for par armazenar esse
valor em P e quando for mpar armazen-lo em I. Exibir P e I no final do
processamento.
3) Faa um algoritmo que calcule o IMC - ndice de massa corprea de uma pessoa,
segundo a frmula:
IMC = peso * altura 2
Classifique-a segundo a tabela:
IMC
Resultado
0 a 19
Muito Magro
19 a 25
Normal
25 a 30
Sobre Peso
30 a 40
Obeso
40 a acima Obesidade Grave
4) Construa um diagrama de blocos para ler uma varivel numrica N e imprimi-la
somente se a mesma for maior que 100, caso contrrio imprimi-la com o valor zero.
5) Joo Papo de Pescador, apesar do nome, um homem de bem, comprou um
microcomputador para controlar o rendimento dirio de seu trabalho. Toda vez que
ele traz um peso de peixes maior que o estabelecido pelo regulamento de pesca do
estado (50 quilos) deve pagar um multa de R$ 4,00 por quilo excedente. Joo precisa
que voc faa um algoritmo e o diagrama de blocos que leia a varivel P (peso de
peixes) e verifique se h excesso. Se houver, gravar na varivel E (Excesso) e na
varivel M o valor da multa que Joo dever pagar. Caso contrrio mostrar tais
variveis com o contedo ZERO.
6) Faa um teste de mesa do diagrama apresentado abaixo, de acordo com os dados
fornecidos:
Teste o diagrama com os dados abaixo
SalBase
3.000,00
1.200,00
500,00
Gratif
1.200,00
400,00
100,00
Memria de Clculo:
SalBase
Gratif
Dados de Sada:
SALLIQ
SaLBruto
IR
SALLIQ
P g i n a | 16
P g i n a | 17
P g i n a | 18