Apostila de Algoritmos e Estrutura de Dados

Apostila de Algoritmos e Estrutura de Dados

(Parte 1 de 14)

Rodrigo Lacerda da Silva

ENGENHARIA DE ALIMENTOS VERSÃO 2006/2

Capítulo 1 - ALGORITMOS3
1.1. CONCEITO3
1.2. POR QUE PRECISAMOS DE ALGORITMOS ?3
1.3. CARACTERÍSTICAS3
1.4. FORMAS DE REPRESENTAÇÃO4
1.4.1. DESCRIÇÃO NARRATIVA4
1.4.2. FLUXOGRAMA5
1.4.3. LINGUAGEM ALGORÍTMICA5
1.5. UM AMBIENTE PARA ESCREVER ALGORITMOS6
1.5.1. FUNCIONAMENTO DO NOSSO COMPUTADOR6
1.6. ESTRUTURAS CHAVES DA CONSTRUÇÃO DE ALGORITMOS8
1.6.1. SEQUENCIAÇÃO8
1.6.2. DECISÃO OU SELEÇÃO8
1.6.3. REPETIÇÃO OU ITERAÇÃO8
1.7. REFINAMENTOS SUCESSIVOS9
Capítulo 2 - LINGUAGEM ALGORÍTMICA1
2.1. CONCEITO DE VARIÁVEL1
2.2. OPERAÇÃO DE ATRIBUIÇÃO1
2.3. OPERAÇÕES DE ENTRADA E SAÍDA1
2.4. ESTRUTURA SEQÜENCIAL12
2.5. ESTRUTURA CONDICIONAL14
2.5.1. ESTRUTURA CONDICIONAL SIMPLES14
2.5.2. ESTRUTURA CONDICIONAL COMPOSTA15
2.6. ESTRUTURA DE REPETIÇÃO17
Capítulo 3 - LINGUAGEM DE PROGRAMAÇÃO PASCAL21
3.1. INTRODUÇÃO21
3.1.1. LINGUAGENS DE PROGRAMAÇÃO21
3.1.2. TRADUTORES21
3.1.3. A LINGUAGEM PASCAL2
3.2. ELEMENTOS BÁSICOS2
3.2.1. IDENTIFICADORES2
3.2.2. PALAVRAS RESERVADAS23
3.3. TIPOS DE DADOS23
3.3.1. SIMPLES23
3.3.2. ESTRUTURADOS24
3.3.3. DEFINIDOS PELO USUÁRIO24
3.4. EXPRESSÕES ARITMÉTICAS26
3.4.1. OPERADORES ARITMÉTICOS26
3.4.2. PRIORIDADE26
3.4.3. FUNÇÕES E PROCEDIMENTOS NUMÉRICOS PREDEFINIDOS26
3.5. EXPRESSÕES LÓGICAS27
3.5.1. OPERADORES RELACIONAIS27
3.5.2. OPERADORES LÓGICOS28
3.5.3. PRIORIDADE28
3.6. FORMATO DE UM PROGRAMA PASCAL29
3.6.1. DECLARAÇÃO DE USO DE UNIDADES30
3.6.2. DECLARAÇÃO DE CONSTANTES30
3.6.3. DECLARAÇÃO DE TIPOS30
3.6.4. DECLARAÇÃO DE VARIÁVEIS30

SUMÁRIO 3.6.5. DECLARAÇÃO DE PROCEDIMENTOS E FUNÇÕES ......................................................................... 31

3.7. COMENTÁRIOS31
Capítulo 4 - COMANDOS BÁSICOS DA LINGUAGEM PASCAL3
4.1. ATRIBUIÇÃO3
4.2. ENTRADA3
4.3. SAÍDA34
4.4. COMANDOS DE DECISÃO36
4.4.1. DECISÃO SIMPLES ( IF-THEN )36
4.4.2. DECISÃO COMPOSTA ( IF-THEN-ELSE )36
4.4.3. DECISÃO MÚLTIPLA ( CASE-OF )38
4.5. COMANDOS DE REPETIÇÃO41
4.5.1. REPETIÇÃO COM TESTE NO INÍCIO ( WHILE-DO )41
4.5.2. REPETIÇÃO COM TESTE NO FINAL ( REPEAT-UNTIL )42
4.5.3. REPETIÇÃO AUTOMÁTICA ( FOR )43
Capítulo 5 - ARRAYS48
5.1. VETORES48
5.2. MATRIZES53
5.3. ARRAYS MULTIDIMENSIONAIS56
Capítulo 6 - MODULARIZAÇÃO59
6.1. PROCEDIMENTO59
6.2. FUNÇÃO60
6.3. VARIÁVEIS GLOBAIS E VARIÁVEIS LOCAIS62
6.4. PARÂMETROS62
6.5. UTILIZANDO ARRAYS COMO PARÂMETROS67
6.6. RECURSIVIDADE69
6.7. CRIAÇÃO DE UNITS74
6.7.1. ESTRUTURA DE UMA UNIT74
6.7.2. UTILIZAÇÃO DE UNITS75
Apêndices7

3.6.6. ÁREA DE COMANDOS........................................................................................................ ................... 31 BIBLIOGRAFIA....................................................................................................87

Algoritmos e Estruturas de Dados 3

Capítulo 1 ALGORITMOS

1.1. CONCEITO

A palavra algoritmo, à primeira vista, parece-nos estranha. Embora possua designação desconhecida, fazemos uso constantemente de algoritmos em nosso cotidiano: a maneira como uma pessoa toma banho é um algoritmo. Outros algoritmos freqüentemente encontrados são:

• instruções para se utilizar um aparelho eletrodoméstico; • uma receita para preparo de algum prato;

• guia de preenchimento para declaração do imposto de renda;

• a regra para determinação de máximos e mínimos de funções por derivadas sucessivas;

• a maneira como as contas de água, luz e telefone são calculadas mensalmente; etc.

São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados aqui:

“Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico” [KNUTH]

[TREMBLAY]

“Seqüência ordenada, e não ambígua, de passos que levam à solução de um dado problema”

“Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]

1.2. POR QUE PRECISAMOS DE ALGORITMOS ?

Vejamos o que algumas pessoas importantes, para a Ciência da Computação, disseram a respeito de algoritmo:

“A noção de algoritmo é básica para toda a programação de computadores”

[KNUTH - Professor da Universidade de Stanford, autor da coleção “The art of computer programming”]

ritmo”

“O conceito central da programação e da ciência da computação é o conceito de algo- [WIRTH - Professor da Universidade de Zurique, autor de diversos livros na área e responsável pela criação de linguagens de programação como ALGOL, PASCAL e MODULA-2]

prio computador

A importância do algoritmo está no fato de termos que especificar uma seqüência de passos lógicos para que o computador possa executar uma tarefa qualquer, pois o mesmo por si só não tem vontade própria, faz apenas o que mandamos. Com uma ferramenta algorítmica, podemos conceber uma solução para um dado problema, independendo de uma linguagem específica e até mesmo do pró-

1.3. CARACTERÍSTICAS Todo algoritmo deve apresentar algumas características básicas:

Algoritmos e Estruturas de Dados 4

• ter fim; • não dar margem à dupla interpretação (não ambíguo);

• capacidade de receber dado(s) de entrada do mundo exterior;

• poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo;

tempo finito)

• ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um

1.4. FORMAS DE REPRESENTAÇÃO Algoritmos podem ser representados, dentre outras maneiras, por:

1.4.1. DESCRIÇÃO NARRATIVA Faz-se uso do português para descrever algoritmos.

EXEMPLO:Receita de Bolo:

Providencie manteiga, ovos, 2 Kg de massa, etc. Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove

VANTAGENS: • o português é bastante conhecido por nós;

DESVANTAGENS: • imprecisão;

• pouca confiabilidade (a imprecisão acarreta a desconfiança);

• extensão (normalmente, escreve-se muito para dizer pouca coisa).

Algoritmos e Estruturas de Dados 5

1.4.2. FLUXOGRAMA

Utilização de símbolos gráficos para representar algoritmos. No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc.

CálculoDecisão Entrada Saída Início/Fim

Início Leia NUM

DOBRO <- NUM * 2

Escreva DOBRO Fim

Início do algoritmo

Entrada do número

Cálculo do dobro do número

Apresentação do resultado Fim do algoritmo

VANTAGENS: • Uma das ferramentas mais conhecidas;

• Figuras dizem muito mais que palavras;

• Padrão mundial

DESVANTAGENS: • Faz com que a solução do problema já esteja amarrada a dispositivos físicos;

• Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;

• Complica-se à medida que o algoritmo cresce.

1.4.3. LINGUAGEM ALGORÍTMICA

(Parte 1 de 14)

Comentários