1 - apresentação da disciplina-introducao a algoritmos
DESCRIPTION
mTRANSCRIPT
Algoritmos e Estruturas de
Dados Fundamentais (Material complementar de aula)
- Apresentação da Disciplina
- Introdução a Algoritmos
Prof. MSc. Gilvan Martins Durães
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
??
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
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