1 - apresentação da disciplina-introducao a algoritmos

28
Algoritmos e Estruturas de Dados Fundamentais (Material complementar de aula) - Apresentação da Disciplina - Introdução a Algoritmos Prof. MSc. Gilvan Martins Durães

Upload: fernando-coelho

Post on 30-Nov-2015

68 views

Category:

Documents


0 download

DESCRIPTION

m

TRANSCRIPT

Page 1: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Algoritmos e Estruturas de

Dados Fundamentais (Material complementar de aula)

- Apresentação da Disciplina

- Introdução a Algoritmos

Prof. MSc. Gilvan Martins Durães

Page 2: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Apresentação da Disciplina

Prof. MSc. Gilvan M. Durães 2

Plano da Disciplina…

Ementa

Algoritmos e Lógica de programação, Tipos de Dados,

Constantes e variáveis simples, Estruturas de controle

sequencial, condicional e repetição. Variáveis

Homogêneas. Tipos abstratos de dados.

Recursividade. Busca em Vetores. Listas lineares e

suas variações. Filas e Pilhas. Árvores Binárias e

suas variações. Utilização de uma linguagem de

programação

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 3: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Apresentação - Conteúdo Programático

Prof. MSc. Gilvan M. Durães 3

1. Algoritmos

1.1. Lógica de programação

1.2. Algoritmos

1.3. Implementação de

Algoritmos

2. Estrutura de Dados

2.1. Conceitos

2.2. Armazenamento

Seqüencial

3. Listas e Vetores

3.1. Listas

3.2. Vetores

3.3. Operações em Listas

3.4. Ações em Vetores

4. Pilhas e Filas

4.1. Pilhas

4.2. Operações em Pilhas

4.3. Filas

4.4. Operações em Filas

5. Tópicos Especiais em

Linguagem C.

5.1. Arvores

5.2. Tabelas Hash

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 4: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Prof. MSc. Gilvan M. Durães 4

ATIVIDADE(S) CRITÉRIOS VALOR PESO Data

Prevista

PROVA INDIVIDUAL Domínio de Conteúdo, Análise critica,

Clareza e Articulação das ideias. 10 5 26/04

TRABALHO Conteúdo, Fidelidade à estrutura proposta

para o trabalho e Pontualidade. 10 5 12/07

AVALIAÇÃO PROGRESSIVA

Resolução dos exercícios trabalhados em

sala de aula, atividade dirigida,

pontualidade e comprometimento com a

disciplina.

10 3 20/06

PROVA INDIVIDUAL Domínio de Conteúdo, Análise critica,

Clareza e Articulação das ideias. 10 7 21/06

Apresentação - Avaliação

DATA PREVISTA PARA A PROVA FINAL: 19/07

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 5: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Prof. MSc. Gilvan M. Durães 5

Mini – Avaliações (M.A.)

Uma Mini - Avaliação (M.A.) pode ser um trabalho ou um exercício

que deve ser entregue para formar a nota progressiva,

juntamente com os outros critérios.

Nos slides, uma M.A. será identificada com a seguinte imagem:

Cada exercícios do tipo M.A. deve ter um nome específico. Não

serão aceitos arquivos com a nomenclatura errada.

Os exercícios do tipo M.A. deverão ser todos enviados juntos em

um único e-mail para: [email protected] até o dia 20/06.

Este e-mail deve ter o seguinte assunto: MA-AlgoritmosED2013.1

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 6: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Prof. MSc. Gilvan M. Durães 6

Apresentação - Bibliografia Básica

EVARISTO, J. Aprendendo a Programar Programando na

Linguagem C. Disponível em: professor.ic.ufal.br/jaime/livros/C.htm

FARRER, HARRY et al. Algoritmos Estruturados. 3.ed. Rio de

Janeiro: LTC, 1999.

FORBELLONE, A. L. V.; EBERSPÄCHER, H. F. Lógica de

Programação - A construção de algoritmos e estruturas de

dados. 2.ed. São Paulo: Makron Books, 2000.

GUIMARAES, A. M.; LAGES, N. A. Algoritmos e Estruturas de

Dados. Rio de Janeiro: LTC, 1994.

MANZANO, José Augusto N. G; OLIVEIRA, Jayr F. Algoritmos -

Lógica para Desenvolvimento de Programação de

Computadores. 17.ed. São Paulo: Érica, 2005.

MARKENZON, L; SZWARCFITER, J. L. Estruturas de Dados e

seus Algoritmos. 2.ed. Rio de Janeiro: LTC, 1997.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 7: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Prof. MSc. Gilvan M. Durães 7

Apresentação - Yahoo Groups

Meio de comunicação e disponibilização de

material complementar das aulas.

Grupo do Yahoo: ADSIF_2013

http://br.groups.yahoo.com/group/ADSIF_2013/

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 8: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Ambiente de Programação

Prof. MSc. Gilvan M. Durães 8

Code Blocks - http://www.codeblocks.org

Download:

http://www.codeblocks.org/downloads/26

codeblocks-12.11mingw-setup.exe

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 9: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Organização básica de um

computador

Prof. MSc. Gilvan M. Durães 9

Unidades básicas:

unidade de entrada,

unidade de saída,

unidade de processamento central e

memória.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 10: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Linguagem de máquina

Prof. MSc. Gilvan M. Durães 10

Linguagens de comunicação

Linguagens humanas

Linguagem de máquina

O código ASCII (American

Standard Code for Information

Interchange)

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 11: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Algoritmos - Definição

Prof. MSc. Gilvan M. Durães 11

Uma sequencia de passos bem definidos para

se alcançar algum objetivo.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 12: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Algoritmos - Exemplos

Prof. MSc. Gilvan M. Durães 12

Um algoritmo para chegar ao IFBaiano/Catu (para a primeira aula de Algoritmos!)....

Um algoritmo para trocar uma lâmpada…

Um algoritmo para trocar o pneu de um carro...

Um algoritmo para informar qual é o maior

número, dado dois números...

Um algoritmo para informar qual é o maior

número, dado três números...

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 13: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Algoritmos - Mais Exemplos...

Prof. MSc. Gilvan M. Durães 13

Um algoritmo para informar qual é a pessoa

mais alta, dado um grupo de pessoas.

Um algoritmo para calcular a média de um

aluno…

Um algoritmo para informar se um aluno

passou ou não na disciplina de algoritmos…

Um algoritmo para escrever os termos da série

de Fibonnacci inferiores a um número L…

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 14: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Programas de computadores

Prof. MSc. Gilvan M. Durães 14

Jogos

Processadores de texto

Planilhas eletrônicas

Navegadores

“um conjunto de instruções que podem ser

executadas pelo computador”

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 15: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Lógica de programação

Prof. MSc. Gilvan M. Durães 15

“A Lógica de Programação pode ser entendida

como o conjunto de raciocínios utilizados para o

desenvolvimento de algoritmos”

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 16: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Lógica de programação

Prof. MSc. Gilvan M. Durães 16

“Um senhor, infelizmente bastante gordo, está

numa das margens de um rio com uma raposa,

uma dúzia de galinhas e um saco de milho. O

senhor pretende atravessar o rio com suas

cargas, num barco a remo que só comporta o

senhor e uma das cargas. Evidentemente, o

senhor não pode deixar em uma das margens,

sozinhos, a raposa e a galinha, nem a galinha e

o milho.”

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 17: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Lógica de programação

Prof. MSc. Gilvan M. Durães 17

Usamos a técnica de exaustão

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 18: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Resolução de problemas

Prof. MSc. Gilvan M. Durães 18

Qual é o problema???

ESCREVER um algoritmo para uma

determinada tarefa

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 19: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Resolução de problemas

Prof. MSc. Gilvan M. Durães 19

Dispõe-se de três esferas idênticas na forma,

sendo duas delas de mesmo peso e a terceira

de peso maior. A questão é descobrir qual a

esfera de peso diferente (maior peso),

realizando-se apenas uma pesagem numa

balança de dois pratos.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 20: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Resolução de problemas

Prof. MSc. Gilvan M. Durães 20

Como obter exatamente 4 litros de água dispondo

de dois recipientes com capacidades de 3 litros

e 5 litros. (A solução desta questão foi necessária num filme da série Duro de Matar

para o protagonista desativar uma bomba)

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 21: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Resolução de problemas

Prof. MSc. Gilvan M. Durães 21

Imagine uma relação de n números, os quais

podem ser referenciados por ai com i = 1, 2, ...,

n e queiramos somá-los com a restrição de que

só sabemos efetuar somas de duas parcelas.

…teste de mesa….

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 22: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Processador de um algoritmo

Prof. MSc. Gilvan M. Durães 22

“Agente que executa um algoritmo”

Imagine que queiramos elaborar um algoritmo para

extrair o algarismo da casa das unidades de um

inteiro dado

Processador: homem 1. Forneça o algarismo das unidades do inteiro dado.

OU

1. Forneça o algarismo "mais à direita" do número dado.

Processador: computador

1. Chame de n o inteiro dado;

2. Calcule o resto da divisão de n por 10;

3. Forneça este resto como o algarismo pedido.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 23: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 23

1) Três índios, conduzindo três brancos, precisam

atravessar um rio dispondo para tal de um barco cuja

capacidade é de apenas duas pessoas. Por questões

de segurança, os índios não querem ficar em minoria,

em nenhum momento e em nenhuma das margens.

Escreva um algoritmo que oriente os índios para

realizarem a travessia nas condições fixadas. (Cabe

observar que, usualmente, este exercício é enunciado envolvendo três

jesuítas e três canibais. A alteração feita é uma modesta contribuição para

o resgate da verdadeira história dos índios).

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 24: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 24

2) Imagine que se disponha de três esferas numeradas

1, 2 e 3 iguais na forma, duas delas com pesos iguais e

diferentes do peso da outra. Escreva um algoritmo que,

com duas pesagens numa balança de dois pratos,

determine a esfera de peso diferente e a relação entre

seu peso e o peso das esferas de pesos iguais.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 25: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 25

3) O show de uma banda de rock, que será realizado na

margem de um rio, deve começar exatamente às 21h.

Atrasados, às 20h 43min, os quatro integrantes da

banda estão na outra margem do rio e necessitam, para

chegar ao palco, atravessar uma ponte. Há somente

uma lanterna e só podem passar uma ou duas pessoas

juntas pela ponte, e sempre com a lanterna. Cada

integrante possui um tempo diferente para atravessar a

ponte: o vocal leva 10 minutos, o guitarrista 5 minutos, o

baixista 2 minutos e o baterista 1 minuto.

Evidentemente, quando dois atravessam juntos, o

tempo necessário é o do mais lento. Escreva um

algoritmo que permita que a banda atravesse a ponte de

modo que o show comece na hora marcada.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Page 26: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 26

Para que, com certeza, a partida termine com uma

vitória de Eunice, então, ao fazer a sua terceira

jogada, em qual posição ela deverá assinalar a

sua marca?

Algoritmos e Estruturas de Dados Fundamentais 2013.1

4) (TRF-4ª Reg.)O esquema abaixo representa, da esquerda para a

direita, uma sucessão de jogadas feitas por Alice e Eunice numa

disputa do “jogo da Velha”.

O

X

O

X O

O

X O

O

X

(1) X O

(2) O (3)

X (4) (5)

Eunice Eunice

Eunice

Alice Alice

??

Page 27: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 27

5) (MTE) Três amigos – Luís, Marcos e Nestor – são

casados com Teresa, Regina e Sandra (não

necessariamente nesta ordem). Perguntados sobre os

nomes das respectivas esposas, os três fizeram as

seguintes declarações:

Nestor: “Marcos é casado com Teresa.”

Luís: “Nestor está mentindo, pois a esposa de Marcos é Regina”

Marcos: “Nestor e Luís mentiram, pois a minha esposa é

Sandra.”

Sabendo-se que o marido de Sandra mentiu e que o

marido de Teresa disse a verdade, informe quem são

as respectivas esposas de Luís, Marcos e Nestor.

Como você chegou a esta resposta?

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Nome do arquivo:

ma01TresAmigos_NomeAluno1-Aluno2.txt

Page 28: 1 - Apresentação da Disciplina-Introducao a Algoritmos

Exercícios

Prof. MSc. Gilvan M. Durães 28

6) Resolva a questão 2 para o caso de oito esferas,

com três pesagens.

7) Escreva um algoritmo para determinar o resto de

uma divisão inteira utilizando uma máquina de calcular

que efetue apenas as quatro operações: adição,

subtração, multiplicação e divisão.

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Nome do arquivo:

ma02Resto_NomeAluno1-Aluno2.txt