Professional Documents
Culture Documents
Centro de Tecnologia
Departamento de Computao e Automao
ALGORITMOS
Professor Responsvel:
Luiz Affonso Henderson Guedes de Oliveira
Prof. Do Estgio Docente:
Kliger Kissinger F. Rocha
Valnaide Gomes Bittencourt
Turma:
Engenharia Qumica 2004.1
Natal, RN, maio/2004
Primeira Aula Terica
Introduo
Conceitos de algoritmos
Formas de Representao de Algoritmos
Descrio Narrativa
Fluxograma Convencional
Pseudocdigo
Algoritmos no se aprendem:
Copiando algoritmos
Estudando algoritmos
Algoritmos s se aprendem:
Construindo algoritmos
Testando algoritmos
Descrio Narrativa
Nesta forma de representao os algoritmos so expressos
diretamente em linguagem natural.
Descrio Narrativa
Troca de um pneu furado Clculo da mdia de um aluno
Fluxograma Convencional
uma representao grfica de algoritmos onde formas
geomtricas diferentes implicam aes (instrues, comandos)
distintos.
Tal propriedade facilita o entendimento das idias contidas nos
algoritmos e justifica sua popularidade
Esta forma aproximadamente intermediria descrio
narrativa e ao pseudocdigo (subitem seguinte), pois menos
imprecisa que a primeira e, no entanto, no se preocupa com
detalhes de implementao do programa
Fluxograma Convencional
Fluxograma Convencional
N1, N2
Exemplo: Clculo da mdia de um
aluno sob a forma de um
fluxograma.
MEDIA aaa
(N1 + N2) / 2
Fim
Pseudocdigo
Esta forma de representao de algoritmos rica em detalhes,
como a definio dos tipos das variveis usadas no algoritmo.
Por assemelhar-se bastante forma em que os programas so
escritos, encontra muita aceitao.
Pseudocdigo
Representao do algoritmo do clculo da mdia de um aluno,
na forma de um pseudocdigo
Algoritmo Calculo_Media
Var N1, N2, MEDIA: real
Incio
Leia N1, N2
MEDIA (N1 + N2) / 2
Se MEDIA >= 7 ento
Escreva Aprovado
Seno
Escreva Reprovado
Fim_se
Fim
Algoritmo e lgica de Programao 13
Formas de Representao de Algoritmos
Sntese
H diversas formas de representao de algoritmos que diferem
entre si pela quantidade de detalhes de implementao que
fornecem ou, inversamente, pelo grau de abstrao que
possibilitam com relao implementao do algoritmo em
termos de uma linguagem de programao especfica.
Tipos de dados
Variveis
Armazenamento de dados na memria
Conceito e utilidade de variveis
Definio de variveis em algoritmos
Mapeamento de variveis na memria
Expresses
Conceitos
Operadores
Tipos de Expresses
Avaliao de Expresses
Dados Numricos
Tornando ao aspecto computacional, os dados numricos
representveis num computador so divididos em apenas duas classes:
os inteiros e os reais
Dados Literais
O tipo de dado literal constitudo por uma seqncia de caracteres
contendo letras, dgitos e/ou smbolos especiais.
Este tipo de dados tambm muitas vezes chamado de alfanumrico,
cadeia (ou cordo) de caracteres, ainda, do ingls, string.
Usualmente, os dados literais so representados nos algoritmos pela
coleo de caracteres, delimitada em seu incio e trmino com o
caractere aspas (").
Diz-se que o dado do tipo literal possui um comprimento dado
pelo nmero de caracteres nele contido
Sntese
Os dados numricos dividem-se em duas classes:
inteiros, que no possuem parte fracionria e podem ser
positivos ou negativos;
reais, que podem possuir parte fracionria e podem ser
positivos ou negativos.
Os dados do tipo literal podem conter seqncias de letras,
dgitos ou smbolos especiais, delimitados por aspas ("). Seu
comprimento dado pelo nmero de caracteres em string.
Os dados do tipo lgico s possuem dois valores possveis
(.V. e .F.).
Sntese
A rvore abaixo resume a classificao dos dados com relao aos
tipos de dados apresentados.
SALARIO = correto
1ANO = correto
A CASA = errado (contm o caractere espao em branco)
SAL/HORA = errado (contm o caractere "/)
SAL_HORA = correto
_DESCONTO = errado (no comeou com uma letra)
a palavra-chave VAR dever estar presente sempre e ser utilizada uma nica
vez na definio de um conjunto de uma ou mais variveis;
Sntese
A memria dos computadores composta por clulas numeradas
ordenadamente denominadas bytes. Cada byte constitudo por 8
bits.
Cada tipo de dado requer um nmero diferente de bytes para
armazenar a informao representada por ele na memria. Esta
quantidade tambm pode variar em funo do tipo de computador
considerado.
Uma varivel uma entidade dotada de um nome para diferenci-la
das demais e um tipo de dado que define o tipo de informao que ela
capaz de guardar. Uma vez definidos, o nome e o tipo de uma
varivel no podem ser alterados no decorrer de um programa. Por
outro lado, a informao til da varivel objeto de constante
modificao durante o decorrer do programa, de acordo com o fluxo de
execuo do mesmo.
( ) 0.21 ( )1 ( )V ( ) 0. ( ) 1% ( ) Jos
( ) 0,35 ( ) .F. ( ) -0.001 ( ) .T. ( ) +3257 ( ) a
( ) +3257 ( ) +3257. ( ) -0.0 ( ) .F. ( )3 ( ) .V.
( ) .V ( ) abc ( )F ( )C ( ) Maria ( ) +36
Conceito
O conceito de expresso em termos computacionais
est intimamente ligado ao conceito de expresso
(ou frmula) matemtica, onde um conjunto de
variveis e constantes numricas relacionam-se por
meio de operadores aritmticos compondo uma
frmula que, uma vez avaliada, resulta num valor
Operadores
Operadores so elementos funcionais que atuam sobre
operandos e produzem um determinado resultado.
De acordo com o nmero de operandos sobre os quais os
operadores atuam, os ltimos podem ser classificados em:
binrios
unrios
relacionais
Tipos de Expresses
Expresses Aritmticas: so aquelas cujo resultado da
avaliao do tipo numrico, seja ele inteiro ou real. Somente o
uso de operadores aritmticos e variveis numricas permitido
em expresses deste tipo.
Tabela 5.1 Operadores aritmticos e sua ordem de prioridade.
+ Binrio Adio 4
- Binrio Subtrao 4
* Binrio Multiplicao 3
/ Binrio Diviso 3
** Binrio Exponenciao 2
Tipos de Expresses
Expresses Lgicas: so aquelas cujo resultado da avaliao
um valor lgico (.V. ou .F.).
Tipos de Expresses
Expresses Literais: so aquelas cujo resultado da
avaliao um valor literal.
Os tipos de operadores existentes variam de uma linguagem
de programao para outra, no havendo uma
padronizao.
Tipos de Expresses
Regras so essenciais para a correta avaliao de expresses
Operadores de maior prioridade devem ser avaliados primeiro. Em
caso de empate, a avaliao se faz da esquerda para a direita
O uso de parnteses em sub-expresses fora a avaliao das
mesmas com maior prioridade
Os diversos tipos de operadores devem ser avaliados na seguinte
seqncia dentro de uma expresso complexa: primeiro os
aritmticos e literais; a seguir, os relacionais e, por ltimo, os
lgicos
Sntese
Uma expresso uma combinao de variveis, constantes e operadores, que
resulta num valor quando avaliada.
Operadores so elementos funcionais que atuam sobre operandos. Segundo o
nmero de operandos sobre os quais atua, um operador pode ser classificado
em unrio ou binrio. Segundo os tipos de dados de seus operandos e do valor
resultante de sua avaliao, os operadores podem ser classificados em
aritmticos, lgicos ou literais.
Um tipo especial de operador o relacional, que usado na comparao de
operandos de um mesmo tipo de dado e cujo resultado da avaliao sempre
um valor lgico.
Sntese
As expresses so classificadas de acordo
com o valor resultante de sua avaliao em:
Aritmticas, que resultam num valor numrico
(real ou inteiro);
lgicas, que resultam num valor lgico;
Sntese
As expresses so classificadas de acordo
com o valor resultante de sua avaliao em:
Aritmticas, que resultam num valor numrico
(real ou inteiro);
lgicas, que resultam num valor lgico;
A + C / B _______________________
A + B + C ____________________
C / B / A _____________________
-X ** B ______________________
-(X ** B) _____________________
-NOME + RUA ________________
-L1 .OU. L2 __________________
-(L2 .E. (.NO. L1)) ____________
Instrues Primitivas
Instruo Primitiva de Atribuio
Instruo Primitiva de Sada de Dados
Instruo Primitiva de Entrada de Dados
Dispositivo de entrada
Instruo Primitiva de
Atribuio
A instruo primitiva de atribuio,
ou simplesmente atribuio, a
principal maneira de se armazenar
uma informao numa varivel. <varivel> aa
Sua sintaxe : <expresso>
<nome_de_varivel> <expresso>
Atribuio
Pseudocdigo PRECO_UNIT aaa 5.0
Algoritmo EXEMPLO
VarPRECO_UNIT, PRECO_TOT : real QUANT aaa 10
QUANT : inteiro
Incio
PRECO_UNIT 5.0 PRECO_TOT aaa
QUANT 10 PRECO_UNIT *
PRECO_TOT PRECO_UNIT * QUANT QUANT
Fim.
Fim
Sada de Dados
PRECO_UNIT aaa 5.0
Algoritmo EXEMPLO
PRECO_TOT aaa
Var PRECO_UNIT, PRECO_TOT : real PRECO_UNIT *
QUANT : inteiro QUANT
Incio
PRECO_UNIT 5.0
QUANT 10
PRECO_TOT
PRECO_TOT PRECO_UNIT * QUANT
Escreva PRECO_TOT
Fim.
Fim
Instruo Primitiva de
Entrada de Dados
As instrues primitivas de
entrada de dados so o meio <lista_de_
pelo qual informaes so variveis>
fornecidas ao computador
para serem processadas.
Sua sintaxe :
Leia <lista_de_variveis>
Instruo Primitiva de
Entrada de Dados Incio B
Pseudocdigo PRECO_UNIT,
PRECO_TOT
QUANT
Algoritmo EXEMPLO
Var PRECO_UNIT,
PRECO_TOT : real
PRECO_TOT aaa
QUANT : inteiro PRECO_UNIT *
Fim
Incio QUANT
Leia PRECO_UNIT, QUANT
PRECO_TOT PRECO_UNIT * QUANT
Escreva PRECO_TOT
A
Fim.
Sntese
A instruo primitiva de atribuio avalia uma expresso e armazena o valor
resultante numa varivel. O valor resultante da expresso e a varivel devem ter
tipos compatveis.