Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf ·...
Transcript of Programação I - Prof. Jacson Rodriguesjeiks.net/wp-content/uploads/2013/05/Slides_LTP_04.pdf ·...
Departamento de Engenharia Rural
Centro de Ciências Agrárias
Programação I
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Algoritmos
De forma breve, foi visto que um algoritmo especifica um conjunto de ações e a ordem que elas devem ser executadas para que se tenha a realização de uma tarefa.
Normalmente, algoritmos não podem ser executados pelos computadores. Mas então para que escrevê-los?
Algoritmos
A programação envolve a compreensão de um problema e a especificação de uma solução.
A experiência tem mostrado que a parte mais difícil de se resolver um problema em um computador é desenvolver o algoritmo para a solução.
Mesmo depois que você aprender uma linguagem de programação, a etapa de entendimento do problema e esboço de uma solução poderão ser melhor realizadas se você utilizar algoritmos em vez de partir direto para a escrita de código em alguma linguagem de programação.
Algoritmos
Solução na forma de programa de computador
Problema
Solução na forma de algoritmo
(1) Fase de resolução do problema
(2) Fase de implementação
Algoritmos
O uso de algoritmos pode facilitar o processo de desenvolvimento da solução, já que estes não precisam incorporar detalhes técnicos e de sintaxe das linguagens de programação.
Tanto os algoritmos quanto os programas são especificados usando alguma notação ou linguagem.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Sintaxe e Semântica
A definição de qualquer linguagem comporta dois aspectos: a forma da linguagem e o significado associado a essa forma.
A estes aspectos damos respectivamente o nome de sintaxe e semântica da linguagem, e estes estarão presente tanto no estudo de algoritmos quanto de linguagens de programação.
Sintaxe e Semântica
SintaxeConjunto de regras formais para a composição de um texto em uma
linguagem a partir do agrupamento de letras, dígitos e/ou outros símbolos/caracteres (alfabeto da linguagem).
Forma das expressões, instruções e das unidades de programa.
Analisando a sintaxe de um fragmento de linguagem, busca-se verificar se sua formação é correta ou não.
SemânticaSignificado lógico das expressões, instruções e unidades de uma
linguagem/algoritmo/programa.
Analisando a semântica de uma expressão escrita de forma sintaticamente correta em alguma linguagem, busca-se verificar se a sua (o seu) ideia/interpretação/significado/objetivo estão de acordo com a intenção pretendida.
Apesar de serem frequentemente estudadas separadamente, a semântica e a sintaxe estão estreitamente ligadas: Uma deve ser o que a outra quer realizar.
Sintaxe e Semântica
ExemplosSintaxe
A brilho do sol bonita muito ficar em xuvosos dias.
O brilho do sol fica muito bonito em dias chuvosos.
Semântica
O fogo apaga a água. (erros sintáticos???)
A água apaga o fogo.
Coisas semelhantes a estes exemplos podem acontecer ao escrevermos algoritmos e programas:
Escrevemos instruções usando uma forma errada e/ou instruções cujos resultados não são aqueles que realmente queríamos.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Representação de algoritmos
Aponte seu Lápis
Para estudar o desenvolvimento de algoritmos, vamos começar com um problema bem simples.O diretor de uma escola lhe pediu para escrever um algoritmo para cálculo da média entre duas notas dos alunos.
Eu tinha um programador que faria um serviço para mim, mas ele não está atendendo o telefone.
Ele desapareceu! Você acha que pode me ajudar?
Representação de algoritmos
A entrada deste algoritmo serão dois valores numéricos (notas) e a saída será a média aritmética destes números.
Naturalmente qualquer pessoa que saiba somar e dividir números é capaz de executar este algoritmo dispondo apenas de lápis e papel.
Representação de algoritmos
O algoritmo poderia ser especificado por meio de linguagem coloquial.
Entretanto, nem sempre esse tipo de linguagem é eficiente para se escreverem as instruções.
Imagine um algoritmo para determinação das raízes de uma equação do segundo grau especificado em linguagem coloquial. Provavelmente, o algoritmo teria uma instrução difícil de escrever e difícil de compreender como:
n. Subtraia do quadrado do segundo coeficiente o produto do número quatro pelo produto dos dois outros coeficientes.
Representação de algoritmos
Em vez de usar a linguagem coloquial, a especificação de algoritmos pode ser feita mais adequadamente utilizando outros instrumentos de linguagem.
Tratam-se das notações para especificação de algoritmos.
Posteriormente, os algoritmos podem ser traduzidos sem dificuldade para programas de computador.
Representação de algoritmos
Entre as notações mais utilizadas para a especificação de algoritmos tem-se:Descrição narrativa
Pseudo-linguagens (ex.: Português estruturado ou Portugol)
Representações pictóricas
Fluxogramas (Diagrama de blocos, Diagramas de atividades (UML) )
Descrição narrativa
Especificação verbal dos passos em linguagem natural, ou seja, faz-se uso do português para descrever algoritmos.
Uma estratégia que pode facilitar a escrita de algoritmos utilizando uma descrição narrativa é o uso da abordagem descendente com refinamentos sucessivos.
Abordagem descendente com refinamentos sucessivos
Esta estratégia é essencial para desenvolver programas bem estruturados.
Você começa com uma representação do algoritmo no nível mais alto de abstração possível daquilo que seria a solução para o problema (algoritmo TOPO) – uma única ação capaz de transmitir a funcionalidade geral do programa.
Descrição narrativa
Para o problema do cálculo da média de alunos você poderia escrever o algoritmo TOPO como:
Determinar e exibir a média do aluno
O TOPO é, consequentemente, uma representação completa de um programa.
Infelizmente, ele raramente fornece detalhes suficientes para você convertê-lo facilmente em um programa.
Assim, deve-se iniciar um processo de refinamentos que consiste em dividir o algoritmo TOPO em uma série de tarefas menores e listá-las na ordem em que elas serão executadas.
Descrição narrativa
Isto resulta no seguinte primeiro refinamento:
Realizar as entradasCalcular e exibir a média
Cada refinamento, assim como o próprio algoritmo TOPO, é uma especificação completa do algoritmo que resolve o problema – apenas o nível de detalhe é que varia.
Descrição narrativa
Pode-se acrescentar mais detalhes ao algoritmo atual, seguindo para o próximo nível de refinamento, isto é, o segundo refinamento:
A instrução:Realizar as entradasPode ser refinada como:Solicitar ao usuário a entrada do valor da nota 1Obter o valor da nota 1Solicitar ao usuário a entrada do valor da nota 2Obter o valor da nota 2
Descrição narrativa
Pode-se acrescentar mais detalhes ao algoritmo atual, seguindo para o próximo nível de refinamento, isto é, o segundo refinamento:
A instrução:Calcular e exibir a médiaPode ser refinada como:Calcular a soma da nota 1 com a nota 2Calcular a média como a soma dividida por 2Exibir a média
Descrição narrativa
Assim, a versão completa do algoritmo após o segundo refinamento seria:
Solicitar ao usuário a entrada do valor da nota 1Obter o valor da nota 1Solicitar ao usuário a entrada do valor da nota 2Obter o valor da nota 2Calcular a soma da nota 1 com a nota 2Calcular a média como a soma dividida por 2Exibir a média
Descrição narrativa
Vantagens:O português é bastante conhecido por nós;
Desvantagens: A linguagem natural é prolixa (normalmente, escreve-se
muito para dizer pouca coisa) e imprecisa e frequentemente pouco confiável como um veículo de transferir informação.
Sua utilização pode ser adotada, entretanto, para a apresentação de comentários sobre o algoritmo (ou parte dele), esclarecendo ou realçando pontos específicos.
Descrição narrativa
Aponte seu Lápis
Muito bom, você já tem uma noção da notação descrição narrativa. Precisamos agora que o
algoritmo seja especificado usando uma notação de Pseudo-Linguagem, pode ser em Portugol. Já
ouviu falar sobre isto?
Pseudo-linguagem
linguagem especial para expressão de algoritmos;
funciona como uma “linguagem simplificada de programação”, utilizando expressões concisas e pré-definidas para representar as ações e o fluxo de execução.
Pseudo-linguagem
É uma descrição textual, estruturada e regida por regras que descrevem os passos executados no algoritmo.
Utiliza-se palavras-chaves, indentação, apenas um passo por linha, onde normalmente usa-se um símbolo para indicar o fim de um passo(como por exemplo o ponto-e-vírgula “;”), etc.
Portugol
Neste curso, será utilizada uma pseudo-linguagem denominada Portugol, pois ela possui uma estrutura similar à linguagem de programação Pascal, que também será adotada posteriormente.
Portugol
Em Portugol, o algoritmo para cálculo da média das notas poderia ser:
{Calcular a média de um aluno.}Algoritmo CALCULA_MEDIA; var P1, P2, MEDIA: real; { variáveis com as notas e a média } Inicio
leia (P1); { leitura da nota da prova 1 } leia (P2); { leitura da nota da prova 2 } MEDIA ← (P1 + P2) / 2; { cálculo da média } escreva (MEDIA); { mostrar a média }
Fim.
Não se preocupe com as instruções agora, elas serão explicadas em mais detalhes posteriormente.
12345678910
Portugol
Vantagens: Usa o português como base;
Pode-se definir quais e como os dados vão estar estruturados;
Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.
Desvantagens: Exige a definição de uma linguagem não real para
trabalho;
Não padronizado.
Portugol
Aponte seu Lápis
Algumas pessoas aqui da escola não compreendem muito bem como seria o fluxo das ações apenas lendo os algoritmos em notações textuais. Teria
como você apresentar esse algoritmo por meio de um fluxograma?
Diagrama de blocos
Representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.
Tal propriedade facilita o entendimento das ideias contidas nos algoritmos e justifica sua popularidade.
Diagrama de blocos
Exemplo: Calcular a média de um aluno. início
Média =(Nota1 + Nota2) / 2
Média
Fim
Nota1, Nota2
Diagrama de blocos
Vantagens:Uma das ferramentas mais conhecidas;
Figuras dizem muito mais que palavras;
Padrão mundial
Desvantagens:Pouca atenção aos dados, não oferecendo recursos
para descrevê-los ou representá-los;
Complica-se à medida que o algoritmo cresce.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Elementos básicos de programação
Antes de aprofundar nas regras sintáticas ( além da semântica relacionada a cada uma) do Portugol e conhecer os elementos da notação de diagramas de blocos, é importante assimilar alguns conceitos fundamentais de programação:
Tipos de dados
Constantes
Variáveis
Identificadores
Comentários
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Tipos de dados
Em programação, um tipo define um padrão de comportamento para os dados que serão processados durante a execução do programa.
Tipos de dados
Fazendo uma analogia entre tipos de dados e tipos de objetos que estamos acostumados a ver e manipular algumas ações podem ser convenientemente realizadas com objetos de certos tipos mas não com objetos de outros tipos.
Por exemplo, objetos do tipo fruta podem ser descascados, objetos do tipo carro não.
Tipos de dados
Um tipo de dado consiste em:Um conjunto de valores (domínio)
Um conjunto de operações
Exemplo de Tipo:Conjunto dos inteiros:
Domínio: ...-3, -2, -1, 0, 1, 2, 3...
Operações: adição, subtração, multiplicação, divisão inteira, resto da divisão, etc.
Tipos de dados
Deve-se representar características do contexto do problema a ser resolvido por meio de alguma abstração codificada na memória do computador.
Os dados do problema que serão processados para a geração de saídas (as soluções para o problema) devem ser convenientemente representados no sistema computacional.
Tipos de dados
Como os tipos de dados podem apresentar diferentes características quanto a quantidade e ao tipo de valores que constituem o conjunto, diferentes tipos de dados serão representados na linguagem de máquina de forma distinta.
A quantidade de bits utilizada e a maneira que se interpretará uma cadeia de bits será específica para cada tipo de dado assim como as operações aplicáveis a esses valores.
Em resumo, certas operações podem não ser possíveis quando os dados envolvidos são detipos diferentes!
Tipos de dados
Podemos dividir os tipos de dados em:Elementares (ou primitivos)
Estruturados
Os tipos de dados elementares são definidos de forma que não existe uma estrutura sobre seus valores.
Nos tipos de dados estruturados existe uma relação estrutural entre seus valores. Esta relação estrutural entre os valores será estudada posteriormente e podem ser classificadas como linear e não linear.
Tipos de dados elementares
Podem representar basicamente três conjuntos de valores: Numéricos, Caracteres e lógicos.
NuméricosEspecíficos para representação de números que
poderão ser utilizados em cálculos. Podem ser ainda classificados como Inteiros ou Reais.
Valores típicos:
1, 1.01, -30.23, 0.0, 999, etc.
Operações comuns:
Adição, subtração, multiplicação, divisão, etc.
Tipos de dados elementares
NuméricosValores numéricos podem ser divididos em
conjuntos como:
Inteiros -1, 3, 4, etc.
reais -30.01, 0.003, 2.09, etc.
Tipos de dados elementares
CaracteresEspecíficos para representar dados que
representam letras, dígitos e outros símbolos.
Exemplos:
‘a’, ‘A’, ‘B’, ‘z’, ‘&’, ‘*’, ‘!’, ‘(‘, ‘>’, ‘#’, ‘9’, ‘0’, ‘3’, etc.
Tipos de dados elementares
CaracteresÉ importante destacar que quando se
representa um dígito como um caractere, operações aritméticas não são possíveis e, em alguns casos, os resultados produzidos podem ser diferentes do esperado.
‘1’+’4’ não resulta 5, mas sim ’14’, conforme será discutido em breve.
Tipos de dados elementares
CaracteresO tipo de dado caractere é a base do tipo estruturado
chamado Cadeia.
Os valores desse tipo são sequências de um ou mais caracteres. Exemplos:
‘limão e jambo’, ’(32)-3741-8829’, ‘Rua couve, 54’, ‘beltr@no!’, etc.
Em linguagens de programação, o a estrutura cadeia é implementada pelo tipo estruturado String.
Todo valor do tipo caractere ou cadeia será expresso entre um par de apóstrofes, como nos exemplos acima.
Tipos de dados elementares
CaracteresOperações comuns:
converter a caixa de um caractere (caixa alta para caixa baixa ou o contrário);
Cadeiasacessar o caractere de determinada posição em uma cadeia;
obter número de caracteres de uma cadeia;
concatenar duas cadeias (‘fulano’ + ‘ de ‘ + ‘ tal’ = ‘fulano de tal’);
substituir uma subcadeia de caracteres dentro de uma cadeia;
apagar determinada subcadeia em uma outra cadeia, etc.
Tipos de dados elementares
LógicosO tipo de dado lógico ou booleano,
consiste de um conjunto em que há somente dois valores:
Verdadeiro
Falso
Operações
operações lógicas como conjunção, disjunção, negação;
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Constantes e variáveis
Variáveis e constantes são os elementos básicos que um programa manipula.
Devem estar associadas à algum tipo (elementar ou estruturado) e constituem um dos meios de representação dos dados que, de alguma forma, serão utilizados durante a execução do programa.
Constantes
Constante (ou literal)É um determinado valor fixo que não se
modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica, lógica e literal.
Exemplo de constantes:
Na expressão acima, o denominador é uma constante numérica (3).
N1+N2+N3
3M =
Constantes
ConstanteNo algoritmo de cálculo da média das
notas, o valor 2 (linha 8) é uma constante numérica (inteira).
Constantes
Exemplos de constantes:‘Olá mundo.’ (cadeia)
‘B’ (caractere)
2.0001 (real)
2 (inteiro)
TRUE (lógico)
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
75
Variáveis
Variável
Em um programa, as variáveis servem para acompanhar (armazenar) os dados que estão na memória do computador. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução do programa.
No algoritmo de cálculo da média de notas (Portugol), P1, P2 e MEDIA são as variáveis usadas “guardar” os dados necessários ao algoritmo.
Variáveis
VariávelAlgumas vezes um valor constante inicial deve
ser definido para certas variáveis (inicialização).
As expressões combinam variáveis e constantes para calcular novos valores.
Uma variável é composta de dois elementos básicos:
Conteúdo – valor atual da variável;
Identificador – “nome” dado à variável para possibilitar sua manipulação;
Variáveis
VariávelAnalogia variável x memória do
computador:
Endereço = posição na memória
Conteúdo = informação armazenada
Identificador = nome da
variável
Conteúdo = valor da variável
75
Variáveis
VariávelEmbora uma variável possa assumir
diferentes valores, ela só pode armazenar um valor a cada instante.
Resumidamente, variáveis são como nomes para os valores: sempre que for usado um nome de variável, o algoritmo (ou computador) irá considerar na realidade o valor que ela armazena.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Identificadores
Em linguagens de programação, identificadores são tokens de texto que nomeiam entidades da linguagem, sendo também chamados "símbolos".
Entidades nomeadas incluem constantes, variáveis, tipos, sub-rotinas, unidades, programas e campos de um registro.
Na maioria das linguagens, algumas cadeias de caracteres possuem a forma léxica de um identificador, mas são conhecidas como palavras chave ou palavras reservadas.
Identificadores
Um dos objetivos dos identificadores é tornar a programação mais flexível e prática.
Em vez de trabalhar com endereços de memória pré-estabelecidos, o uso de identificadores possibilita o programador especificar os elementos de um programa por meio de nomes mais intuitivos.
Em linguagens compiladas, os identificadores são utilizados somente em tempo de compilação: conversão do código-fonte do programa em linguagem de máquina (binária).
Em tempo de execução, o programa possui somente referências à memória.
Identificadores
Identificadores podem ser associados a valores constantes quando for interessante armazenar tais valores na memória.
A esse tipo de construção dá-se o nome de constante nomeada.Uma constante nomeada terá seu
identificador declarado juntamente com seu valor.
Identificadores
Exemplos de Identificadores:
Total = Produto x Quantidade
Identificadores
Total deve ser um identificador de variável (pois está armazenando o resultado de um cálculo.
Os identificadores “Produto” e “Quantidade” também poderiam representar constantes nomeadas do programa, sem invalidar a expressão acima em que participam.
Identificadores
O processo de definição de identificadores para constantes e variáveis é denominado declaração de constantes e declaração de variáveis respectivamente.
Para tornar mais simples a comunicação de ideias neste curso, podemos fazer referências aos elementos de um programa diretamente como a variável (ou a constante) em vez de especificar o termo identificador todas as vezes.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Palavras Reservadas
São palavras que fazem parte da estrutura da linguagem e têm significados pré-determinados.
Elas não podem ser redefinidas e não podem ser utilizadas como identificadores.
Exemplos de palavras reservadas da notação português estruturado (Portugol):inicio, fim, var, const, etc.
Aula 04
Algoritmos
Sintaxe e Semântica
Notações para representação de algoritmos.
Elementos básicos de programação.Tipos de dados
Constantes
Variáveis
Identificadores
Palavras reservadas
Comentários
Comentários
Os comentários representam qualquer texto que explique uma ação ou um dado usado no algoritmo:descrevem a finalidade de variáveis, sub-rotinas,
formas de uso do algoritmo, etc.
proporcionam maior clareza ao algoritmo (explicando verbalmente o raciocínio utilizado ou detalhes importantes de trechos do algoritmo).
Documentam decisões tomadas e suas justificativas.
Não interferem na lógica de execução do algoritmo.
Comentários
Podem ser colocados em qualquer ponto do algoritmo, utilizando símbolos especiais, como pares de chaves “{“ e “}”, duas barras seguidas //, etc.cada linguagem de programação pode ter suas próprias
regras para a escrita de comentários.
Exemplo de comentário usando “{“ e “}”:
Uma chave esquerda (ou chave de abertura ), {, abre um comentário.
Uma chave direita ( ou chave de fechamento), }, encerra um comentário.
{ ...comentários... }
Comentários
Outros exemplos:informando detalhes de um algoritmo:
{ ALGORITMO PARA CALCULAR A MEDIA DE ALUNOS } {Autor: Fulano de tal. } { Data de criação: 21/08/2007 Ultima atualização: 30/08/2007 }
Variáveis { coeficientes da equação de segundo grau} a, { coeficiente do termo dominante } b, { coeficiente do termo de grau 1 } c: inteiras; { coeficiente independente }
Dica de programação:Instruções grandes podem ser divididas em muitas linhas. Entretanto você não pode dividir uma instrução no meio de um identificador ou de uma string. Neste exemplo, temos uma lista separada por vírgulas.
Comentários
Na linguagem C, por exemplo, comentários que ocupam apenas uma linha podem ser especificados de uma maneira enquanto que para se fazer comentários em mais de uma linha a regra é outra, como apresentado abaixo:
// PROGRAMA PARA CALCULAR A MEDIA DE ALUNOS // Autor: Fulano de tal.
/* Data de criação: 21/08/2007 Ultima atualização: 30/08/2007 */
Exercícios
1) Defina algoritmo com suas palavras.
2) Cite 3 exemplos de algoritmos que você costuma utilizar no seu dia-a-dia.
3) Um algoritmo não pode conter um comando como “Escreva todos os números inteiros positivos”. Por quê?
4) Escreva um algoritmo usando descrição narrativa que receba como entrada um número e exiba seu sucessor.
5) Faça um algoritmo que aceite como entrada dois valores numéricos, calcule e forneça como saída:
a) A soma destes valores
b) O produto deles
c) O quociente entre eles
Exercícios
6) Elaborar um algoritmo que calcule o quociente inteiro e o resto de uma divisão, dados o dividendo e o divisor, com a restrição de que as únicas operações aritméticas disponíveis são: adição, subtração e multiplicação.
30112
32290
Dividendo
Divisor
QuocienteResto
Referências BORLAND. Turbo Pascal, versão 7.0. [S.L.] : Borland International, Inc.,1992.
DEITEL, P. J.; DEITEL, H.M.; Java: How to program, 9th ed, Ed. Prentice-Hall, 2011. ISBN: 978-0-13-257566-9.
FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Algoritmos estruturados. 3ed, Ed. LTC, 1999. ISBN: 9788521611806.
FARRER, H.; BECKER, C. G.; FARIA, E. C.; MATOS, H. F.; et al. Pascal estruturado. 3ed, Ed. LTC, 1999. ISBN: 9788521611745.
GUIMARÃES, A. M.; LAGES, N. A. C.; Algoritmos e estruturas de dados. 1ed, Ed. LTC, 1994. ISBN: 9788521603788.
GRIFFITHS,D., BARRY,P., Head First Programming – A learner's guide to programming using the Python language, O´Reilly, 2009, 406p.
http://wwwusers.rdc.puc-rio.br/rmano/processo.html
Velloso, F. C.; Informática: Conceitos Básicos. 7ed, Ed. Campus, 2004. ISBN: 9788535215366.