Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila de Lógica de Programação - ALGORITMOS
Apostila de Lógica de Programação - ALGORITMOS
Maro de 2007
Sumrio
Pgina
1 INTRODUO ..................................................................................................................................................................3
2 FORMAS DE REPRESENTAO DE ALGORITMOS ..............................................................................................5
2.1 DIAGRAMA NASSI-SHNEIDERMAN .................................................................................................................................5
2.2 FLUXOGRAMA ................................................................................................................................................................6
2.3 PORTUGUS ESTRUTURADO ...........................................................................................................................................7
3 CONCEITOS IMPORTANTES .......................................................................................................................................8
3.1 CONSTANTES .................................................................................................................................................................8
3.2 VARIVEIS .....................................................................................................................................................................8
3.3 ATRIBUIO ..................................................................................................................................................................9
4 INSTRUO ESCREVER .............................................................................................................................................10
5 OPERADORES ARITMTICOS...................................................................................................................................11
6 INSTRUO LER...........................................................................................................................................................12
7 HORIZONTALIZAO.................................................................................................................................................12
8 ALGORITMOS COM SELEO .................................................................................................................................13
8.1 ESTRUTURA DE SELEO ANINHADA ..........................................................................................................................13
8.2 ESTRUTURA DE SELEO CONCATENADA ...................................................................................................................14
9 OPERADORES RELACIONAIS ...................................................................................................................................15
10 OPERADORES LGICOS...........................................................................................................................................16
11 ALGORITMOS COM REPETIO...........................................................................................................................18
11.1 ESTRUTURA DE REPETIO: REPITA-AT..............................................................................................................19
11.2 ESTRUTURA DE REPETIO: ENQUANTO-FAA...................................................................................................20
11.3 ESTRUTURA DE REPETIO: PARA-AT-FAA .....................................................................................................21
12 DIZER SIM PARA CONTINUAR OU NO PARA FINALIZAR ...........................................................................21
13 CONTADORES E ACUMULADORES.....................................................................................................................22
13.1 CONTADORES .............................................................................................................................................................22
13.2 ACUMULADORES (OU SOMADORES)...........................................................................................................................23
14 DETERMINAO DO MAIOR E/OU MENOR VALOR EM UM CONJUNTO DE VALORES .......................24
15 REPETIO ANINHADA ...........................................................................................................................................25
16 VETORES .......................................................................................................................................................................26
16.1 COMO LER UM VETOR (PREENCHER)........................................................................................................................27
16.2 COMO ESCREVER UM VETOR..................................................................................................................................28
17 RESPOSTAS DOS EXEMPLOS ..................................................................................................................................29
REFERNCIAS BIBLIOGRFICAS................................................................................................................................34
1 Introduo
Nesta apostila estudaremos Lgica de Programao e, para isto, importante ter uma viso geral do
processo de desenvolvimento de programas (softwares), visto que o objetivo final ter um bom
embasamento para a prtica da programao de computadores [MAR03].
Para o desenvolvimento de qualquer programa, deve-se seguir basicamente as seguintes etapas,
conhecidas como Ciclo de Vida do Sistema [BUF03]:
1) Estudo da Viabilidade (Estudos Iniciais)
2) Anlise detalhada do sistema (Projeto Lgico)
3) Projeto preliminar do sistema (Projeto Fsico)
4) Projeto detalhado do sistema (Algoritmos)
5) Implementao ou Codificao do sistema (na Linguagem de Programao escolhida)
6) Testes do sistema
7) Instalao e Manuteno do sistema
No desenvolvimento de um sistema, quanto mais tarde um erro detectado, mais dinheiro e
tempo se gasta para repar-lo. Assim, a responsabilidade do programador maior na criao dos
algoritmos do que na sua prpria implementao, pois quando bem projetados no se perde tempo
tendo que refaz-los, reimplant-los e retest-los, assegurando assim um final feliz e no prazo previsto
para o projeto [BUF03].
Pode-se encontrar na literatura em informtica vrias formas de representao das etapas que
compem o ciclo de vida de um sistema. Essas formas de representao podem variar tanto na
quantidade de etapas quanto nas atividades a serem realizadas em cada fase [MAR03].
Como pode-se observar, nesse exemplo de ciclo de vida de um sistema (com sete fases)
apresentado acima, os algoritmos fazem parte da quarta etapa do desenvolvimento de um programa.
Na verdade, os algoritmos esto presentes no nosso dia-a-dia sem que saibamos, pois uma receita
culinria, as instrues de uso de um equipamento ou as indicaes de um instrutor sobre como
estacionar um carro, por exemplo, nada mais so do que algoritmos.
Um algoritmo pode ser definido como um conjunto de regras (instrues), bem definidas, para
soluo de um determinado problema. Segundo o dicionrio Michaelis, o conceito de algoritmo a
"utilizao de regras para definir ou executar uma tarefa especfica ou para resolver um problema
especfico."
A partir desses conceitos de algoritmos, pode-se perceber que a palavra algoritmo no um
termo computacional, ou seja, no se refere apenas rea de informtica. uma definio ampla que
agora que voc j sabe o que significa, talvez a utilize no seu cotidiano normalmente.
Na informtica, o algoritmo o "projeto do programa", ou seja, antes de se fazer um programa
(software) na Linguagem de Programao desejada (Pascal, C, Delphi, etc.) deve-se fazer o algoritmo
do programa. J um programa, um algoritmo escrito numa forma compreensvel pelo computador
(atravs de uma Linguagem de Programao), onde todas as aes a serem executadas devem ser
especificadas nos mnimos detalhes e de acordo com as regras de sintaxe1 da linguagem escolhida.
Sintaxe: segundo o dicionrio Aurlio, a parte da gramtica que estuda a disposio das palavras na frase e a das frases
no discurso, bem como a relao lgica das frases entre si. Cada Linguagem de Programao tem a sua sintaxe
(instrues, comandos, etc) que deve ser seguida corretamente para que o programa funcione. O conjunto de palavras e
regras que definem o formato das sentenas vlidas chama-se de sintaxe da linguagem.
Algoritmos se aprende
Copiando algoritmos
Construindo algoritmos
Testando algoritmos
A idia bsica deste diagrama representar as aes de um algoritmo dentro de um nico retngulo,
subdividindo-o em retngulos menores, que representam os diferentes blocos de seqncia de aes do
algoritmo. Para saber mais sobre o histrico desses diagramas e conhecer os seus criadores acesse o
site: http://www.cs.umd.edu/hcil/members/bshneiderman/nsd/. Para ter acesso ao primeiro artigo
elaborado pelos autores do Diagrama de Chapin, escrito em 1973, acesse o seguinte endereo onde
voc pode fazer o download do artigo: http://fit.faccat.br/~fpereira/p12-nassi.pdf.
2.2 Fluxograma
Os Fluxogramas ou Diagramas de Fluxo, so uma representao grfica que utilizam formas
geomtricas padronizadas ligadas por setas de fluxo, para indicar as diversas aes (instrues) e
decises que devem ser seguidas para resolver o problema em questo.
Eles permitem visualizar os caminhos (fluxos) e as etapas de processamento de dados possveis
e, dentro destas, os passos para a resoluo do problema. A seguir, na Figura 2, apresentado um
exemplo de fluxograma [GOM04] [MAR03].
3 Conceitos Importantes
Neste captulo so apresentados e explicados trs conceitos fundamentais para a construo de
algoritmos, so eles: Constante, Varivel e Atribuio.
3.1 Constantes
So chamadas de constantes, as informaes (dados) que no variam com o tempo, ou seja,
permanecem sempre com o mesmo contedo, um valor fixo (invarivel). Como exemplos de
constantes pode-se citar: nmeros, letras, palavras etc.
3.2 Variveis
O bom entendimento do conceito de varivel fundamental para elaborao de algoritmos e,
conseqentemente de programas. Uma varivel, um espao da memria do computador que
"reservamos" para guardar informaes (dados). Como o prprio nome sugere, as variveis, podem
conter valores diferentes a cada instante de tempo, ou seja, seu contedo pode variar de acordo com as
instrues do algoritmo.
As variveis so referenciadas atravs de um nome (identificador) criado por voc durante o
desenvolvimento do algoritmo. Exemplos de nomes de variveis: produto, idade, a, x, nota1, peso,
preo, etc. O contedo de uma varivel pode ser alterado, consultado ou apagado quantas vezes forem
necessrias durante o algoritmo. Mas, ao alterar o contedo da varivel, a informao anterior
perdida, ou seja, sempre "vale" a ltima informao armazenada na varivel. Uma varivel armazena
'apenas' um contedo de cada vez.
Uma varivel pode ser vista como uma caixa com um rtulo (nome) colado nela, que em um
dado momento guarda um determinado objeto. O contedo desta caixa no algo fixo, permanente. Na
verdade, essa caixa pode ter seu contedo alterado diversas vezes. No exemplo abaixo, a caixa
(varivel) rotulada como FATOR, contm o valor 5. Em outro momento essa caixa poder conter
qualquer outro valor numrico. Entretanto, a cada instante, ela conter um, e somente um, valor
[TON04].
3.3 Atribuio
A atribuio uma notao utilizada para atribuir um valor a uma varivel, ou seja, para armazenar um
determinado contedo em uma varivel. A operao de atribuio, normalmente, representada por
uma seta apontando para a esquerda, mas existem outros smbolos para representar a atribuio,
depende da forma de representao do algoritmo. Na Tabela 2 a seguir, so apresentados alguns
exemplos de atribuies possveis:
Atribuies Possveis
Exemplos
varivel
constante
idade
varivel
varivel
preo
valor
varivel
expresso
B+C
Uma observao importante a ser feita em relao a atribuies que na parte esquerda (a que vai
"receber" algo) no pode haver nada alm da varivel, ou seja, s varivel que "recebe" algum
contedo, no possvel ter um clculo por exemplo, ou uma constante, recebendo alguma coisa. Veja
por exemplo, esta notao:
valor
nota1 + nota2
Esta operao apresentada acima no possvel, no est correta esta atribuio.
4 Instruo Escrever
Existem basicamente duas instrues principais em algoritmos (e em programao em geral) que so:
Escrever e Ler. Neste captulo veremos como funciona a instruo Escrever.
A instruo Escrever utilizada quando deseja-se mostrar informaes na tela do computador,
ou seja, um comando de sada de dados. Para simplificar, usa-se a instruo Escrever, quando
necessita-se mostrar algum dado para o usurio do algoritmo (e posteriormente do programa).
Tanto no Diagrama de Chapin quanto em Portugus Estruturado representa-se a sada de dados
atravs da palavra Escrever (ou Escreva). J em Fluxogramas a representao da sada de dados feita
atravs de uma forma geomtrica especfica [GOM04] [MAR03].
Exemplos:
1) Escreva um algoritmo para armazenar o valor 20 em uma varivel X e o valor 5 em uma varivel Y.
A seguir, armazenar a soma do valor de X com o de Y em uma varivel Z. Escrever (na tela) o valor
armazenado em X, em Y e em Z. (Captulo 17: Respostas dos Exemplos).
2) Escreva um algoritmo para armazenar o valor 4 em uma varivel A e o valor 3 em uma varivel B.
A seguir, armazenar a soma de A com B em uma varivel C e a subtrao de A com B em uma
varivel D. Escrever o valor de A, B, C e D e tambm escrever a mensagem 'Fim do Algoritmo'.
Observao:
Note que quando queremos escrever alguma mensagem na tela (letra, frase, nmero etc.)
literalmente, devemos utilizar aspas para identificar o que ser escrito, pois o que estiver entre aspas
no algoritmo, ser exatamente o que aparecer na tela do computador. Diferente de quando queremos
escrever o contedo de uma varivel, pois neste caso no utiliza-se aspas.
10
5 Operadores Aritmticos
Muitas vezes, ao desenvolvermos algoritmos, comum utilizarmos expresses matemticas para a
resoluo de clculos. Neste captulo so apresentados os operadores aritmticos necessrios para
determinadas expresses. Veja a Tabela 3 a seguir.
Operao
Smbolo
Prioridade
Multiplicao (Produto)
1a.
Diviso
1a.
Adio (Soma)
2a.
Subtrao (Diferena)
2a.
As expresses dentro de parnteses so sempre resolvidas antes das expresses fora dos
parnteses. Quando existem vrios nveis de parnteses, ou seja, um parntese dentro de outro,
a soluo sempre inicia do parntese mais interno at o mais externo (de dentro para fora).
Quando duas ou mais expresses tiverem a mesma prioridade, a soluo sempre iniciada da
expresso mais esquerda at a mais direita.
11
6 Instruo Ler
Como vimos no captulo 4 Instruo Escrever, existem basicamente duas instrues principais em
algoritmos (e em programao em geral) que so: Escrever e Ler. No captulo 4, foi apresentada a
instruo Escrever, agora, neste captulo, veremos como funciona a instruo Ler.
A instruo Ler utilizada quando deseja-se obter informaes do teclado do computador, ou
seja, um comando de entrada de dados. Para simplificar, usa-se a instruo Ler, quando necessita-se
que o usurio do algoritmo digite algum dado (e posteriormente do programa).
Tanto no Diagrama de Chapin quanto em Portugus Estruturado representa-se a entrada de
dados atravs da palavra Ler (ou Leia). J em Fluxogramas a representao da entrada de dados feita
atravs de uma forma geomtrica especfica [GOM04] [MAR03].
Exemplo 3:
Escreva um algoritmo para ler dois valores e armazenar cada um em uma varivel. A seguir,
armazenar a soma dos dois valores lidos em uma terceira varivel. Escrever o resultado da soma
efetuada.
7 Horizontalizao
Para o desenvolvimento de algoritmos que possuam clculos matemticos, as expresses aritmticas
devem estar horizontalizadas, ou seja, linearizadas e tambm no esquecendo de utilizar os operadores
corretamente. Na Tabela 4 a seguir, apresentado um exemplo de uma expresso aritmtica na forma
tradicional e como deve ser utilizada nos algoritmos e em programao em geral (linearmente).
Matemtica Tradicional
Algoritmo
(N1 + N2) / 2
12
Quando estivermos utilizando algoritmos com seleo, podemos utilizar dois tipos de estruturas
diferentes, dependendo do objetivo do algoritmo, chamadas de "Seleo Mltipla", cujos tipos so:
Estrutura Aninhada e Estrutura Concatenada. Os captulos 8.1 e 8.2 a seguir, apresentam estas duas
estruturas com suas caractersticas.
13
Como pode ser observado nessas duas respostas apresentadas para o exerccio 27 (estrutura
aninhada e estrutura concatenada), existe uma grande diferena entre as duas estruturas, ou seja, uma
caracterstica de execuo do algoritmo. Voc saberia dizer qual esta diferena?
14
9 Operadores Relacionais
Operaes relacionais so as comparaes permitidas entres valores, variveis, expresses e
constantes. A Tabela 5 a seguir, apresenta os tipos de operadores relacionais.
Smbolo
>
<
=
>=
<=
<>
Significado
maior
menor
igual
maior ou igual
menor ou igual
diferente
Comparao Vlida
Exemplo
varivel e constante
X=3
varivel e varivel
A<>B
varivel e expresso
Y=W+J
expresso e expresso
(X + 1) < (Y + 4)
15
10 Operadores Lgicos
Os operadores lgicos permitem que mais de uma condio seja testada em uma nica expresso, ou
seja, pode-se fazer mais de uma comparao (teste) ao mesmo tempo. A Tabela 7 a seguir, apresenta
os operadores lgicos que utilizaremos nesta disciplina.
Operao
Operador
Negao
no
Conjuno
Disjuno (no-exclusiva)
ou
xou
(l-se: "ou exclusivo")
Disjuno (exclusiva)
Note que a Tabela 7 acima, apresenta os operadores lgicos j ordenados de acordo com suas
prioridades, ou seja, se na mesma expresso tivermos o operador ou e o operador no, por exemplo,
primeiro devemos executar o no e depois o ou.
De uma forma geral, os resultados possveis para os operadores lgicos podem ser vistos na
Tabela 8 abaixo, conhecida como Tabela Verdade:
AeB
A ou B
no A
A xou B
F
F
V
V
F
V
F
V
F
F
F
V
F
V
V
V
V
V
F
F
F
V
V
F
Quando eu no saio?
16
B)
C)
Resultado
a) no A
no V = F
b) A e B
V e F = F
c) A ou B xou B ou C
(V ou F) xou (F ou F) = V xou F = V
d) no (B ou C)
no (F ou F) = no F = V
e) no B ou C
(no F) ou F = V ou F = V
Ao verificar as respostas (errada e correta) do exemplo nmero 5 acima, pode-se constatar que
quando precisamos fazer mais de um teste ao mesmo tempo, deve-se utilizar os operadores lgicos
apresentados neste captulo na tabela 7.
17
Portugus Estruturado
18
Pergunta: No exemplo 6 anterior, utilizando uma estrutura de repetio, que no caso utilizou-se a
estrutura Repita, o algoritmo ficou correto?
19
20
Exemplo 7:
Escreva um algoritmo para escrever 5 vezes a palavra FACCAT na tela.
Exemplo 8:
Escreva um algoritmo para ler dois valores. Aps a leitura deve-se calcular a soma dos valores lidos e
armazen-la em uma varivel. Aps o clculo da soma, escrever o resultado e escrever tambm a
pergunta 'Novo Clculo (S/N)?'. Deve-se ler a resposta e se a resposta for 'S' (sim), deve-se repetir
todos os comandos (instrues) novamente, mas se a resposta for 'N' (no), o algoritmo deve ser
finalizado escrevendo a mensagem 'Fim dos Clculos'.
21
13 Contadores e Acumuladores
Em algoritmos com estruturas de repetio (Repita, Enquanto ou Para) comum surgir a necessidade
de utilizar variveis do tipo contador e/ou acumulador. Neste captulo so apresentados esses conceitos
detalhadamente.
13.1 Contadores
Um contador utilizado para contar o nmero de vezes que um evento (uma instruo) ocorre, ou seja,
contar a quantidade de vezes que uma instruo executada.
Forma Geral: VARIVEL
Exemplo: X
VARIVEL + CONSTANTE
X + 1
Explicao: um contador uma varivel (qualquer) que recebe ela mesma mais um valor (uma
constante), no caso do exemplo acima, a varivel X est recebendo o valor dela mesma mais 1.
Normalmente a constante que ser somada no contador o valor 1, para contar de 1 em 1, mas pode
ser qualquer valor, como por exemplo 2, se quisermos contar de 2 em 2.
Observaes dos Contadores:
1) A varivel (do contador) deve possuir um valor inicial conhecido, isto , ela deve ser inicializada.
Normalmente inicializa-se a varivel do contador com zero, ou seja, zera-se a varivel antes de utilizla. Para zerar uma varivel basta atribuir a ela o valor zero: VARIVEL
0
2) A constante (que geralmente o valor 1) determina o valor do incremento da varivel (do contador),
ou seja, o que ser somado (acrescido) a ela.
Exemplo 9:
Escreva um algoritmo para ler a nota de 10 alunos e contar quantos foram aprovados, sendo que, para
ser aprovado, a nota deve ser maior ou igual a 6,0. Escrever o nmero de aprovados.
22
VARIVEL1 + VARIVEL2
X + Y
Explicao: um acumulador (somador) uma varivel (qualquer) que recebe ela mesma mais uma
outra varivel, no caso do exemplo acima, a varivel X est recebendo o valor dela mesma mais o
valor da varivel Y. A varivel Y representa o valor a ser somado, acumulado na varivel X.
Observaes dos Acumuladores:
1) A varivel1 (do acumulador) deve possuir um valor inicial conhecido, isto , ela deve ser
inicializada. Normalmente inicializa-se a varivel do acumulador com zero, ou seja, zera-se a varivel
antes de utiliz-la. Para zerar uma varivel basta atribuir a ela o valor zero: VARIVEL1
0
2) A varivel2 indica o valor a ser acumulado, somado e armazenado na varivel1.
Exemplo 10:
Altere o exemplo 9 para calcular tambm a mdia geral da turma e, depois de calculada, escrever a
mdia.
ATENO: Normalmente inicializa-se as variveis que sero utilizadas como contador ou como
acumulador com o valor zero, mas pode-se inicializ-las com o valor que desejarmos de acordo com a
necessidade.
23
Exemplo 11:
Escreva um algoritmo para ler a nota de 10 alunos e escrever a nota mais alta, ou seja, a maior nota
entre as 10 notas lidas.
IMPORTANTE: Quando sabe-se os limites dos valores possveis, ou seja, por exemplo com as notas
sabemos que os valores sero de 0 a 10, ento sabe-se quais so os valores limites (o valor mnimo e o
valor mximo), no teremos nota menor que 0 e nem nota maior que 10. Nesses casos mais fcil
descobrir o maior ou o menor valor, pois pode-se inicializar a varivel Maior, por exemplo, com o
valor 0 e a varivel Menor com o valor 10 que funcionar perfeitamente. Acontece que se no sabe-se
os valores dos limites a complica um pouco, pois no sabemos com que valor vamos inicializar as
variveis para comparao. Ento temos que inicializar tanto a varivel Maior quanto a Menor com o
primeiro valor lido e depois vamos comparando os prximos valores lidos com o primeiro! (os
nomes Maior e Menor, so apenas exemplos, pode-se denominar as variveis que sero usadas
para os testes como quiser).
24
15 Repetio Aninhada
Assim como vimos que possvel ter uma Seleo dentro de outra, tambm podemos ter uma
Repetio dentro de outra, dependendo do problema a ser resolvido. Pode ser necessria uma estrutura
de Repita dentro de um Enquanto, por exemplo, ou vice-versa. Ou um Repita dentro de outro Repita,
enfim, as combinaes so inmeras. A seguir veremos um exemplo de uma estrutura de repetio
Para dentro de outro Para, que bastante utilizado para leitura e escrita de Matrizes, por exemplo.
Exemplo 12:
Dado o algoritmo a seguir (Figura 9), representado em Chapin, diga o que ele faz, ou seja, o que seria
escrito na tela ao ser executado.
25
16 Vetores
Podemos definir um Vetor como uma varivel dividida em vrios "pedaos", em vrias "casinhas",
onde cada pedao desses identificado atravs de um nmero, referente posio de uma determinada
informao no vetor em questo. O nmero de cada posio do vetor chamado de ndice.
Conceito: Vetor um conjunto de variveis, onde cada uma pode armazenar uma informao
diferente, mas todas compartilham o mesmo nome. So associados ndices a esse nome, que
representam as posies do vetor, permitindo assim, individualizar os elementos do conjunto.
Podemos imaginar que na memria do computador o vetor seja mais ou menos da seguinte forma:
nome
do
vetor
ATENO: Sempre que estivermos nos referindo a um Vetor, devemos colocar o Nome do Vetor e
a Posio (o ndice) correspondente entre colchetes.
2) Nomes [5]
'Andr'
Esta instruo armazena (atribui) a palavra 'Andr' na posio 5 do Vetor chamado Nomes.
26
Na Figura 11, acima, est demonstrado como preencher um vetor chamado A de 10 posies, ou seja,
sero lidas 10 informaes (valores, nomes, letras, etc.) e cada uma ser armazenada em uma posio
do vetor A. Sendo que utiliza-se a prpria varivel da repetio Para para representar a posio
(ndice) do vetor.
27
Exemplo 13:
Escreva um algoritmo para ler a nota de 30 alunos, calcular a mdia geral da turma e escrever quantos
alunos tiveram a nota acima da mdia calculada.
Resposta em Chapin
28
Exemplo 2:
Exemplo 3:
Resposta em Chapin:
Resposta em Fluxograma:
29
Exemplo 4:
Resposta em Chapin:
Exemplo 5:
Resposta Errada:
Resposta Correta:
30
Exemplo 6:
Resposta em Chapin:
Explicao:
Exemplo 7:
Resposta em Chapin:
31
Exemplo 8:
Resposta em Chapin
Resposta em Chapin
Exemplo 9:
32
Exemplo 10:
Resposta em Chapin
Resposta em Chapin
Exemplo 11:
33
Referncias Bibliogrficas
Para elaborao e construo desta apostila foram consultados vrios tipos de materiais, como por
exemplo: livros, outras apostilas, pginas web etc. Algumas das referncias consultadas esto
apresentadas neste captulo, mas grande parte do material disponibilizado na apostila, como exemplos
e exerccios foram utilizados das aulas que tive na disciplina de Algoritmos e Programao durante a
faculdade de Anlise de Sistemas, na UCPel - Universidade Catlica de Pelotas, com o Prof. Ricardo
Andrade Cava (http://lp.ucpel.tche.br, http://cpu.ucpel.tche.br, http://graphs.ucpel.tche.br).
[ALG96] The ALGOL Programming Language. Disponvel em:
http://www.engin.umd.umich.edu/CIS/course.des/cis400/algol/algol.html. Acesso em: Jun.
2006.
[BUF03] BUFFONI, Salete. Apostila de Algoritmo Estruturado - 4 edio. Disponvel em:
http://www.saletebuffoni.hpg.ig.com.br/algoritmos/Algoritmos.pdf. Acesso em: Mar. 2004.
[CHA70] CHAPIN, Ned. Flowcharting with the ANSI Standard: A Tutorial. ACM Computing
Surveys, Volume 2, Number 2 (June 1970), pp. 119-146.
[CHA74] CHAPIN, Ned. New Format for Flowcharts, SoftwarePractice and Experience.
Volume 4, Number 4 (October-December 1974), pp. 341-357.
[CHA02] CHAPIN, Ned. Maintenance of Information Systems. Disponvel em:
http://www.iceis.org/iceis2002/tutorials.htm. Acesso em: Jun. 2006.
[COS04] COSTA, Renato. Apostila de Lgica de Programao - Criao de Algoritmos e
Programas. Disponvel em: http://www.meusite.pro.br/apostilas2.htm. Acesso em: Jun.
2006.
[GOM04] GOMES, Abel. Algoritmos, Fluxogramas e Pseudo-cdigo - Design de Algoritmos.
Disponvel em: http://mail.di.ubi.pt/~programacao/capitulo6.pdf. Acesso em: Jun. 2006.
[KOZ06] KOZAK, Dalton V. Tcnicas de Construo de Algoritmos. Disponvel em:
http://minerva.ufpel.edu.br/~rossato/ipd/apostila_algoritmos.pdf. Acesso em: Jun. 2006.
[MAR03] MARTINS, Luiz E. G.; ZLIO, Valria M. D. Apostila da Disciplina Introduo
Programao. Disponvel em: http://www.unimep.br/~vmdzilio/apostila00.doc. Acesso em:
Jun. 2006.
[NAS73] NASSI, Ike; SHNEIDERMAN, Ben. Flowchart Techniques for Structured
Programming. ACM SIGPLAN Notices, Volume 8, Number 8 (August 1973), pp.12-26.
[NAS04] NASSI, Ike. Ike Nassi's Home Page. Disponvel em: http://www.nassi.com/ike.htm . Acesso
em: Jun. 2006.
[PRO04] Programming Languages. Disponvel em:
http://www.famed.ufrgs.br/disciplinas/inf_med/prog_ling.htm. Acesso em: Mar.2004.
[SAN04] SANTANA, Joo. Algoritmos & Programao. Disponvel em:
http://www.iesam.com.br/paginas/cursos/ec/1ano/aulas/08/joao/APunidade-1.pdf. Acesso
em: Mar. 2004.
[SHN03] SHNEIDERMAN, Ben. A short history of structured flowcharts (Nassi-Shneiderman
Diagrams). Disponvel em: http://www.cs.umd.edu/~ben/ Acesso em: Jun. 2006.
[TON04] TONET, Bruno; KOLIVER, Cristian. Introduo aos Algoritmos. Disponvel em:
http://dein.ucs.br/napro/Algoritmo/manuais/Manual 20Visualg.pdf. Acesso em: Mar. 2004.
[YOU04] YOURDON, Ed. Ed Yourdon's Web Site. Disponvel em:
http://www.yourdon.com/books/msa2e/CH15/CH15.html. Acesso em: Mar. 2004.
Profa. Flvia Pereira de Carvalho - fpereira@faccat.br - http://fit.faccat.br/~fpereira
34