24
1 Prof. Yandre Maldonado - 1 Fundamentos da Computação Prof. Yandre Maldonado e Gomes da Costa [email protected] UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Prof. Yandre Maldonado - 2 O Computador Evolução tecnológica: – Válvulas primeira geração – Transistor segunda geração – Circuitos integrados (vários transistores) terceira geração – Integração em alta escala (VLSI) quarta geração Prof. Yandre Maldonado - 3 O Computador

Fundamentos da Computação - din.uem.bryandre/fundamentos_producao/Fundamentos_Introducao... · O Computador • Unidade de Saída: converte os dados processados ... • Sistema

Embed Size (px)

Citation preview

1

Prof. Y

andre M

aldonado -1

Fundamentos da Computação

Prof. Yandre Maldonado e Gomes da Costa

[email protected]

UNIVERSIDADE ESTADUAL DE MARINGÁDEPARTAMENTO DE INFORMÁTICA

Prof. Y

andre M

aldonado -2

O Computador

• Evolução tecnológica:– Válvulas → primeira geração– Transistor → segunda geração– Circuitos integrados (vários transistores)

→ terceira geração– Integração em alta escala (VLSI)

→ quarta geração

Prof. Y

andre M

aldonado -3

O Computador

2

Prof. Y

andre M

aldonado -4

O Computador

• Estrutura:

Unidade de Entrada

UCP

Memória (Principal)

Unidade Lógica e Aritmética

Unidade de Controle

Unidade de Saída

Prof. Y

andre M

aldonado -5

O Computador

• Unidade de Entrada: codifica informações introduzidas por dispositivos de entrada para que a UCP possa entender;

• Memória: armazena dados e o programa em execução;

• Unidade Lógica e Aritmética: realiza cálculos aritméticos e manipulação de dados;

• Unidade de Controle: responsável pelo trafego dos dados:

• UE → MEM• MEM → ULA → MEM

• MEM → US

Prof. Y

andre M

aldonado -6

O Computador

• Unidade de Saída: converte os dados processados para um formato que possa ser exibido em dispositivos de saída.

• Hardware: parte física do computador. Formada pelos circuitos eletrônicos, dispositivos mecânicos, magnéticos e etc.

• Software: os programas que executam sobre o hardware.

HARDWARE + SOFTWARE = COMPUTADOR

3

Prof. Y

andre M

aldonado -7

Software

• Programa em processamento no computador (Fedeli et al., 2003);

• Softwares básicos:

• Programas que definem o padrão do equipamento, sendo

necessários para o funcionamento do computador.

– Tipos:

• sistema operacional

• ambiente operacional

• linguagens de programação (tradutores)

• utilitários

Hardware Software Usuário

Prof. Y

andre M

aldonado -8

• Sistema operacional: programa ou

conjunto de programas cuja função é

gerenciar os recursos do sistema;

Software

Prof. Y

andre M

aldonado -9

• Sistemas operacionais: programa, em geral, fornecidos pelo

fabricante do equipamento.;

• Constituição do sistema operacional: programas escritos em

linguagem de programação de baixo nível;

• Exemplos de sistemas operacionais:

• Linux;

• Windows;

• Mac-OS;

• Android...

Software

4

Prof. Y

andre M

aldonado -10

• Ambiente operacional:

• ambientes que adicionam recursos ao sistema operacional

para permitir uma interface gráfica com o usuário, ou seja, é

um sistema operacional com recursos gráficos.

• Exemplo: todas as versões do Windows e Linux incluem um

ambiente operacional.

• Linguagens de programação:

• conjunto de símbolos (vocabulário) e regras (gramática) que

especificam um padrão sintático para estabelecer a

comunicação entre usuários (programadores) e computador.

– Divisão:

• linguagem de baixo nível• linguagem de alto nível

Software

linguagem de máquinalinguagem simbólica

Prof. Y

andre M

aldonado -11

• Linguagem de máquina:

• baseada em código binário, em 0s e 1s. Interpretada diretamente

pelo computador.

– Exemplo:

Linguagem de máquina Significado

0010 0001 1110 carrega no registrador 1 o conteúdo da posição de memória 14

0010 0010 1111 carrega no registrador 2 o conteúdo da posição de memória 15

0001 0001 0010 soma o conteúdo do registrador 1 com o conteúdo do registrador

2 e coloca no registrador 1

0011 0001 1111 armazena o conteúdo do registrador 1 na posição de memória 15

Software

Prof. Y

andre M

aldonado -12

• Linguagem de baixo nível simbólica:

• simplificação da linguagem de máquina. Faz uso de

códigos mnemônicos para expressar as instruções.

– Exemplo: Assembly

Linguagem de máquina Linguagem simbólica

0010 0001 1110 LOAD R1, val1

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Software

5

Prof. Y

andre M

aldonado -13

• Linguagem de alto nível:

• combinação de um conjunto de símbolos de acordo com certas

regras de sintaxe para expressar uma seqüência de operações

de máquina. Linguagem que não exige conhecimento do código

de máquina.

– Exemplos: FORTRAN, ALGOL, COBOL, BASIC, PASCAL, LOGO, C,

LISP, PROLOG, Phyton etc.

Linguagem de máquina Linguagem simbólica Linguagem de alto nível

0010 0001 1110 LOAD R1, val1 val2 = val1 + val2

0010 0010 1111 LOAD R2, val2

0001 0001 0010 ADD R1, R2

0011 0001 1111 STORE R1, val2

Software

Prof. Y

andre M

aldonado -14

Algoritmos

• Definições:“Redação que descreve de forma lógica e sem ambigüidades, uma seqüência de passos (ações) para se resolver um problema que tenha um comportamento padrão.”

Franco e Polidório

“Uma seqüência de passos que visam atingir um objetivo bem definido.”

Forbellone e Eberspächer

Prof. Y

andre M

aldonado -15

Algoritmos

“É a descrição de um padrão de comportamento, expressado em termos de um repertório bem definidoe finito de ações primitivas, das quais damos por certo que elas podem ser executadas.”

Guimarães e Lages

“Descrição de um conjunto de comandos que, obedecidos, resultam numa sucessão finita de ações.”

Farrer e outros

6

Prof. Y

andre M

aldonado -16

Algoritmos

• O algoritmo deve ensinar a resolver o problema, e não trazer a solução.– Exemplo: receita de bolo;

• Ação é um acontecimento que, a partir de um estado inicial, após um período de tempo finito, produz um resultado final previsível e bem definido.

• Objetivo: solução do problema.

Prof. Y

andre M

aldonado -17

Algoritmos

• Aspecto lógico: ordenar o pensamento.– Organização seqüencial das ações pertinentes à

solução de um problema;• Exemplo: o bolo só pode ser levado ao forno depois que a

massa estiver pronta.

– Lógica no dia-a-dia:• Todo mamífero é animal.

• Todo cavalo é mamífero.

• Portanto, todo cavalo é animal.

Prof. Y

andre M

aldonado -18

Algoritmos• Padrão de comportamento: uma seqüência

de ações para resolver um problema.– Exemplos:

• Trocar uma lâmpada (problema cotidiano):– pegue uma escada;– posicione-a sob a lâmpada;– busque uma lâmpada nova;– suba na escada;– retire a lâmpada velha;– coloque a lâmpada nova.

• Calcular a área de um retângulo (problema matemático):– obtenha a medida da base do retângulo;– obtenha a medida da altura do retângulo;– multiplique a medida da base pela medida da altura.

7

Prof. Y

andre M

aldonado -19

Algoritmos

• Aspecto estático e aspecto dinâmico:– Estático: não depende do tempo, mas do espaço

físico onde o algoritmo está sendo escrito;– Dinâmico: como se comporta a execução de cada

ação do algoritmo com o passar do tempo.

“Todo algoritmo deve produzir resultados corretos, e ser finito tanto estática quanto dinamicamente.”

Prof. Y

andre M

aldonado -20

Algoritmos

• Ambigüidade: relacionada à sintaxe e semântica de linguagens naturais.– “O artista produz formas perfeitas.”

• Linguagens naturais são muito extensas, possuindo ambigüidade;– Linguagem Natural X Linguagem Computacional

Prof. Y

andre M

aldonado -21

Algoritmos

• Nos algoritmos, devemos utilizar construções que executarão uma ação específica bem definida;

• Uma linguagem algorítmica deve ter sintaxe rígida e semântica bem definida;

• Toda linguagem possui sintaxe e semântica.

Linguagem Computacional

Linguagem Algorítmica

8

Prof. Y

andre M

aldonado -22

Algoritmos

• Sintaxe: dita as regras de como as sentenças e cada um de seus elementos devem ser construídos corretamente;

• Semântica: se preocupa com o significa de uma sentença construída.

Prof. Y

andre M

aldonado -23

Algoritmos

• A sintaxe por si só não define completamente uma linguagem.– Exemplo:

• “Descoloridas idéias verdes sonham furiosamente” (Chomsky)

– Por outro lado:• “Nóis foi, mais já vortemo”

Prof. Y

andre M

aldonado -24

• Todo algoritmo deve ser descrito em alguma linguagem;

• Assim, o algoritmo deve respeitar um padrão sintático;

• Primeira linguagem: Pascal;– Compilador a ser utilizado: Pascalzim

Algoritmos

9

Prof. Y

andre M

aldonado -25

• Estrutura básica do algoritmo em Pascal:

Algoritmos

program teste;

var

x: integer;

const

nome = ‘Fulano’;

begin

instruções...

end.

Identificação do algoritmo

Bloco de declarações: variáveis

Bloco de declarações: constantes

Bloco de comandos

Prof. Y

andre M

aldonado -26

• Um primeiro algoritmo em Pascal:

Algoritmos

Program Primeiro_programa;Beginwrite('Engenharia de Produção');

End.

Prof. Y

andre M

aldonado -27

• Algoritmos geralmente descrevem algum processamento de dados:

• Estes dados precisam ser representados (descritos) nos algoritmos;

Algoritmos

Dados de Entrada

Dados de Saída

Processamento(Computador)

10

Prof. Y

andre M

aldonado -28

Algoritmos

• Um algoritmo para fins computacionais é a descrição de ações que manipulam objetos em função do tempo.– Objetos descrevem o estado computacional;

– Objetos têm função específica;– Ações são direcionadas aos objetos;– Objetos são definidos como parte do

programa;– Estados diferentes requerem objetos

diferentes.* Objetos frequentemente serão chamados de variáveis.

Prof. Y

andre M

aldonado -29

Algoritmos

• A cada objeto é associado um nome que identifica este objeto ao longo da programação. Este nome é chamado identificador.

• De forma geral, podemos dizer que um identificador está associado à uma célula de memória.

• O termo variável é freqüentemente utilizado como sinônimo de identificador.

Prof. Y

andre M

aldonado -30

Algoritmos

• Em geral, as linguagens de programação exigem nomes de identificadores com as seguintes característica:– Use somente letras e números;– O primeiro caracter do nome deve ser uma letra;– Não é permitido o uso de caracteres especiais.

• Exemplos válidos: ImpostoDeRenda, F1, soma, produto, desconto, SalarioHora.

• Exemplos inválidos: 1f, Imposto-renda, salario hora.

11

Prof. Y

andre M

aldonado -31

Algoritmos

• Atributos (características) de um objeto:– Nome;– Célula de memória;– Valor associado;– Tipo: define a categoria dos dados que podem ser

armazenados no objeto.

conteúdo (valor armazenado na célula de memória)

Nome identificador do objeto

célula de memória

Prof. Y

andre M

aldonado -32

Algoritmos

• O tipo:– especifica uma classe de valores que podem

ser armazenados na célula de memória associada ao identificador;

– define as operações válidas sobre o identificador;

Prof. Y

andre M

aldonado -33

Algoritmos

• Tipo de Dado– Um identificador armazena um único dado

num instante, mas este dado não pode ser qualquer um;

– Os objetos serão classificados segundo um tipo;

– Os dados podem ter estruturas físicas diferentes;

– As células de memória do computador precisam ser compatíveis com o tipo de dado que vão armazenar;

12

Prof. Y

andre M

aldonado -34

Algoritmos

• Devemos informar ao computador qual o tipo de dado que vamos armazenar;

• Esta informação determina quantas células de memória serão necessárias para armazenar o dado;

• Esta informação define quais serão as operações possíveis de se aplicar sobre os dados;– Exemplo: em um dado numérico pode-se aplicar

uma operação aritmética.

Prof. Y

andre M

aldonado -35

Algoritmos

• Os tipos de dados podem variar de uma linguagem para outra. No entanto, existem dois tipos básicos:– Tipos simples;– Tipos estruturados (estudados mais adiante);

Tipos de Dados Simples

Numérico LógicoCaracter

Inteiro Real

Prof. Y

andre M

aldonado -36

Algoritmos

• Os Tipos de Dados Numéricos são divididos basicamente em dois grandes conjuntos:– Inteiros;– Reais;

• Os inteiros podem ser positivos, negativos ou nulos, mas não possuem um componente decimal;

13

Prof. Y

andre M

aldonado -37

Algoritmos

• Os inteiros são compatíveis com os reais, mas os reais não são compatíveis com os inteiros;

• Assim, um objeto real pode receber um valor inteiro, mas um objeto inteiro não pode receber um valor real;

• Declaração:– Pascal: integer;– C: int;

Prof. Y

andre M

aldonado -38

Algoritmos

• Os reais podem ser positivos, negativos ou nulos, e possuem sempre um componente decimal;

• Exemplos: 2,34; 0,0; -214,123;• Computacionalmente, existem muitas

diferenças entre o armazenamento de números inteiros e números reais;

Prof. Y

andre M

aldonado -39

Algoritmos

• Os números inteiros consomem menos espaço de armazenamento em memória;

• Declaração do tipo real:– Pascal: real;– C: float;

14

Prof. Y

andre M

aldonado -40

Algoritmos

• Os tipos de dados não numéricos:– Caracter: formado pelas letras (de A a Z, e

de a a z), dígitos (de 0 a 9) e caracteres especiais (~, ., ?, >, <, ...);

– A diferença entre caracteres e dados numéricos estão na forma de armazenamento, e nas operações legais permitidas sobre os mesmos;

• Exemplo: operações aritméticas sobre os dados numéricos.

Prof. Y

andre M

aldonado -41

Algoritmos

• Para diferenciar um caracter de um identificador ou de um dado numérico, utilizaremos apóstrofes. Assim:

– 8 é um dado numérico;– ‘8’ é um caracter;– A é um identificador;– ‘A’ é um caracter

Prof. Y

andre M

aldonado -42

Algoritmos

• Objetos declarados como do tipo caracterpoderão armazenar um único caracter;

• Para armazenar uma seqüência de caracteres será utilizada a estrutura cadeia de caracteres, que consiste num tipo de dado estruturado;– Exemplo:

• ‘Z’ é um caracter;• ‘ANA’ é uma cadeia de caracteres;

• Declaração do tipo caracter:– Pascal e C: char;

15

Prof. Y

andre M

aldonado -43

Algoritmos

• Tipo Lógico: os valores lógicos podem assumir uma entre duas possibilidades (verdadeiro ou falso);– Só poderá armazenar um destes dois valores;

• Muito utilizados em controle do fluxo lógico do algoritmo;– Pascal: boolean;– C: não definido;

Prof. Y

andre M

aldonado -44

Algoritmos

• Declaração do tipo do identificador (objeto): em Pascal.

var

identificador: tipo;

Prof. Y

andre M

aldonado -45

Algoritmos

• Caso haja mais de uma variável do mesmo tipo:

var

identificador1, identificador2: tipo;

• Se houver identificadores de tipos diferentes (inteiro,real, lógico):

var

i1, i2, i3: integer;

r1, r2: real;

l1: boolean;

16

Prof. Y

andre M

aldonado -46

Algoritmos

• Escolha do tipo de um identificador: deve-se conhecer bem a solução do problema.– Exemplos de inteiros:

• número de pessoas;

• um número par ou ímpar;• idade de uma pessoa;• quantidade de objetos;

– Exemplos de reais:• o peso de uma pessoa;• um percentual;• nota de uma avaliação;

• média;• preço de um produto;

Prof. Y

andre M

aldonado -47

Algoritmos

• Situações de dúvida– Exemplos:

• raíz quadrada de um número;• divisão entre dois números inteiros;

• Quando houver alguma possibilidade de um identificador numérico receber um valor não inteiro, deve ser declarado como real.

Inteiros

Reais

Prof. Y

andre M

aldonado -48

• Valores dos dados– os dados são valores que são armazenados em

células de memória e que são acessados (ao longo do algoritmo) por referêcia aos identificadores;

– assim, se tivermos os identificadores i, r e l, para objetos do tipo inteiro, real e lógico respectivamente, e atribuírmos os valores 100; 3,14; e falso, teríamos a seguinte configuração:

– Estes são os valores exibidos quando se utiliza a instrução escreva.

Algoritmos

100 falso3,14

i r l

17

Prof. Y

andre M

aldonado -49

Algoritmos

• Argumentos de Entrada e Saída– Entrada: objetos cujos valores são

conhecidos em tempo de execução;• permitem um comportamento mais genérico

dentro do caráter específico do comportamento padrão;

– Saída: objetos que armazenam a solução objetivo de um problema;

Prof. Y

andre M

aldonado -50

Algoritmos

• Exemplo:considerando a figura mostrada acima (um retângulo), faça um algoritmo que calcule a área da mesma.

• Neste problema existem três valores (estados) a serem representados:– Altura do retângulo (h);– Largura (ou base) do retângulo (b);– Área do retângulo.

h

b

Dados de Entrada

Dados de Saída

Prof. Y

andre M

aldonado -51

• Solução em Pascal:

Algoritmos

program retangulo;

varh, b, area: real;

beginwrite ('Digite um valor para a altura do retângulo: ');read (h);write ('Digite um valor para a base do retângulo: ');read (b);area := h*b;write ('Valor da área: ', area);

end.

18

Prof. Y

andre M

aldonado -52

Algoritmos

• Nesta solução, os valores de a e de h só serão conhecidos em tempo de execução, e deverão ser fornecidos pela pessoa que executa o algoritmo.

• Assim, a preocupação não é com o valor do resultado produzido, e sim com a produção de resultados corretos.

• Questão 01: Qual é o valor final do objeto área informado pelo descrito algoritmo no slide anterior?

Prof. Y

andre M

aldonado -53

Algoritmos• Exemplo: no algoritmo para calcular a área de um triângulo

retângulo, descrito abaixo, os objetos base e altura são argumentos de entrada, enquanto o objeto area é argumento de saída.

program triangulo;

varbase, altura, area: real;

beginwrite ('Digite um valor para a altura do retângulo: ');read (altura);write ('Digite um valor para a base do retângulo: ');read (base);area := altura*base/2;write ('Valor da área: ', area);

end.

123456789

10111213

Prof. Y

andre M

aldonado -54

Algoritmos

• Teste de mesa: tabela que demonstra os resultados obtidos ao longo da execução de um algoritmo.– Exemplo: execução do algoritmo do slide 26 para entrada

dos valores 3 para o objeto base e 5 para o objeto altura;

Linha Base Altura Area

8 - 5 -

10 3 5 -

11 3 5 7.5

12 3 5 7.5

19

Prof. Y

andre M

aldonado -55

Algoritmos

• Escreva um algoritmo que calcule o diâmetro, a área e a circunferência de um círculo, sabendo que o único dado disponível é o seu raio.

– Diâmetro = 2 * Raio– Área = Pi * Raio * Raio– Circunferência= 2 * Pi * Raio

• Ler dois números inteiros e imprimir a soma.• Entrar com dois números inteiros e imprimir a média aritmética.• Criar um algoritmo que solicite e imprima os valores da diagonal

maior, diagonal menor e calcule a área de um losango. – Fórmula: (diagonal maior * diagonal menor) dividido por 2

• Elaborar um algoritmo para calcular e apresentar o volume de uma lata de óleo, utilizando a fórmula: VOLUME = 3.14159 * (R*R) * ALTURA.

Prof. Y

andre M

aldonado -56

Algoritmos

• Escreva um programa em Pascal que pergunte o nome a altura (em metros) e a massa (em Kg) do usuário. Em seguida o programa deverá exibir uma mensagem dizendo o nome do usuário e a sua densidade corporal.– Densidade = peso / altura2

Prof. Y

andre M

aldonado -57

Algritmos

• Operadores Aritméticos

• As operações são realizadas em uma expressão de acordo com a ordem de prioridade. Quando houver empate entre operações, elas serão realizadas da esquerda para a direita.

+

divisão

adição

- subtração II

II

I

I*

/

Operador PrioridadeSignificado

multiplicação

20

Prof. Y

andre M

aldonado -58

Algoritmos

• Os parênteses quebram o ordem de prioridade natural.

a

Expressão Matemática Expressão Algoritmica

2.a+b 2*a+b

a/2+ba*x^2a.x2

2 +b

a2+b

a/2+b

a/(2+b)

errado

certo

Expressões Aritméticas

Prof. Y

andre M

aldonado -59

Algoritmos

• Quando houverem parênteses aninhados, a prioridade será do mais interno.

a / (a + b) - (2 * (b + c))1 2

34

5

Prof. Y

andre M

aldonado -60

Algoritmos• Operadores Relacionais

– Comparação entre objetos (ou entre um objeto e um valor) do mesmo tipo;

– O resultado será sempre do tipo lógico (V ou F);

Operador Exemplo de usoSignificado

> A>B, 4>3, C>3

=

Diferente de

Igual a

<= Menor ou igual a B*A<=0

A=0

A+B<>C

Menor que 2*A<B

Maior que

<

<>

>= Maior ou igual a ‘a’>=‘b'

21

Prof. Y

andre M

aldonado -61

Algoritmos

• O operador relacional perde em prioridade para os operadores aritméticos;

• O operador relacional é binário, isto é, ele deve envolver um operando a sua esquerda e um a sua direita.

• Assim, a expressão -3 < X <=2 não é válida, pois nela X está relacionando-se com outros dois operandos. Para isto, teremos que utilizar um operador lógico.

Prof. Y

andre M

aldonado -62

Algoritmos

• Exercício: qual o resultado da expressão relacional A+3 > B quando:– A tem valor igual a 5 e B igual a 8;– A tem valor igual a 0 e B igual a -3;– A tem valor igual a 1 e B igual a 1;– A tem valor igual a -3 e B igual a 1;

Prof. Y

andre M

aldonado -63

Algoritmos

• Operadores Lógicos– Constrói expressão lógica que envolve operandos

lógicos;– Utilizados no processo de tomada de decisão e

em controles de repetição;– Operadores:

• e - usado na conjunção de proposições, em Pascal ‘and’

• ou - usado na disjunção de proposições, em Pascal ‘or’• não - usado na negação de proposições, em Pascal ‘not’

– Proposição é qualquer elemento que possa produzir valor lógico (variável lógica, expressão relacional ou expressão lógica);

22

Prof. Y

andre M

aldonado -64

Algoritmos

• Os operadores and e or são binários;• O operador not é unário;• Ordem de prioridade:

– not → I– and → II– or → III

Prof. Y

andre M

aldonado -65

Algoritmos

• A expressão A e B será verdadeira quando o operando A e o operando B produzirem resultados verdadeiros simultaneamente. Qualquer outra combinação de valores destes operandos produzirá resultado falso;

• A expressão A ou B será verdadeira quando uma das proposições (operando A e B) produzir resultado verdadeiro;

Prof. Y

andre M

aldonado -66

Algoritmos

• Tabela do operador e:

A B A e BV VV

V F F

F V F

F F F

23

Prof. Y

andre M

aldonado -67

Algoritmos

• Tabela do operador ou:

A B A ou BV VV

V F V

F V V

F F F

Prof. Y

andre M

aldonado -68

Algoritmos

• Tabela do operador não:

• Agora, com o uso de operador lógico, pode-se representar a expressão y<=x<z da seguinte forma:

(y<=x) e (x<z)

A não A

V F

F V

Prof. Y

andre M

aldonado -69

Algoritmos

• Prioridade geral de operadores

• Exercício: encontre as prioridades das operações envolvidas na seguinte expressão

não((A>B)ou(A+B<C)e(C<D))

Operadores Ordem de prioridade

não I

<, >, <>, <=, >=, = V

IV

III*, /, e

+, -, ou

24

Prof. Y

andre M

aldonado -70

Sugestões Bibliográficas

• FEDELI, R. D.; POLLONI, E. G. F.; PERES, F. E. Introdução à Ciência da Computação. São Paulo: Pioneira ThomsonLearning, 2003.

• WIRTH, N. Algoritmos e Estruturas de Dados. Rio de Janeiro: Prentice-Hall do Brasil, 1989.

• VELOSO, P.; SANTOS, C.; AZEREDO, P.; FURTADO, A. Estruturas de Dados. Rio de Janeiro: Editora Câmpus, 1984.

• AZEREDO, P. A. de. Métodos de Classificação de Dados e Análise de Suas Complexidades. Rio de Janeiro: Editora Câmpus, 1996.

• FORBELLONE, A. L. V. & EBERSPACHER, H. F. Lógica de Programação - A Construçãode Algoritmos e Estruturas de Dados. São Paulo: MakronBooks, 2000.

Prof. Y

andre M

aldonado -71

• SALVETTI, D. D.; BARBOSA, L. M. Algoritmos. São Paulo:Makron Books, 1998.

• MANZANO, J. A.; OLIVEIRA, J. F. Estudo Dirigido – Algoritmos. São Paulo: Editora Érica, 1997.

• FARRER, H. e outros. Algorimtos Estruturados. Rio de Janerio: LTC, 1989.

• GUIMARÃES, A. M.; LAGES, N. A. C. Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1985.

• Apostila:– Algoritmos: uma abordagem sintática e semântica

Universidade Estadual de MaringáAirton Polidório e Clélia Franco

Sugestões Bibliográficas