Vous êtes sur la page 1sur 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


Apresentação da Disciplina
 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

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 2


Apresentação - Conteúdo Programático
 1. Algoritmos  4. Pilhas e Filas
 1.1. Lógica de programação
 4.1. Pilhas
 1.2. Algoritmos
 4.2. Operações em Pilhas
 1.3. Implementação de
 4.3. Filas
Algoritmos
 4.4. Operações em Filas
 2. Estrutura de Dados
 5. Tópicos Especiais em
 2.1. Conceitos
Linguagem C.
 2.2. Armazenamento
Seqüencial  5.1. Arvores
 5.2. Tabelas Hash
 3. Listas e Vetores
 3.1. Listas
 3.2. Vetores
 3.3. Operações em Listas
 3.4. Ações em Vetores
Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 3
Apresentação - Avaliação
Data
ATIVIDADE(S) CRITÉRIOS VALOR PESO
Prevista

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


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

Conteúdo, Fidelidade à estrutura proposta


TRABALHO 10 5 12/07
para o trabalho e Pontualidade.

Resolução dos exercícios trabalhados em


sala de aula, atividade dirigida,
AVALIAÇÃO PROGRESSIVA 10 3 20/06
pontualidade e comprometimento com a
disciplina.

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


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

DATA PREVISTA PARA A PROVA FINAL: 19/07

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 4


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: gilvanduraes@yahoo.com.br até o dia 20/06.
Este e-mail deve ter o seguinte assunto: MA-AlgoritmosED2013.1

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 5


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.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 6


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/

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 7


Ambiente de Programação
 Code Blocks - http://www.codeblocks.org
 Download:
 http://www.codeblocks.org/downloads/26
 codeblocks-12.11mingw-setup.exe

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 8


Organização básica de um
computador

 Unidades básicas:
 unidade de entrada,
 unidade de saída,
 unidade de processamento central e
 memória.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 9


Linguagem de máquina
 Linguagens de comunicação
 Linguagens humanas
 Linguagem de máquina

 O código ASCII (American


Standard Code for Information
Interchange)

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 10


Algoritmos - Definição

Uma sequencia de passos bem definidos para


se alcançar algum objetivo.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 11


Algoritmos - Exemplos
 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...

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 12


Algoritmos - Mais Exemplos...
 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…

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 13


Programas de computadores

 Jogos
 Processadores de texto
 Planilhas eletrônicas
 Navegadores

“um conjunto de instruções que podem ser


executadas pelo computador”

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 14


Lógica de programação

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


como o conjunto de raciocínios utilizados para o
desenvolvimento de algoritmos”

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 15


Lógica de programação
“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.”

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 16


Lógica de programação

Usamos a técnica de exaustão

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 17


Resolução de problemas

Qual é o problema???

ESCREVER um algoritmo para uma


determinada tarefa

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 18


Resolução de problemas
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.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 19


Resolução de problemas
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)

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 20


Resolução de problemas
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….

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 21


Processador de um algoritmo
“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.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 22


Exercícios
 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).

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 23


Exercícios
 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.

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 24


Exercícios
 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.
Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 25
Exercícios
 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”.

X X O X O
O O O O
X
Eunice Alice Eunice Alice

 Para que, com certeza, a partida termine com uma (1) X O


vitória de Eunice, então, ao fazer a sua terceira (2) O (3) ??
jogada, em qual posição ela deverá assinalar a
X (4) (5)
sua marca?
Eunice

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 26


Exercícios Nome do arquivo:
ma01TresAmigos_NomeAluno1-Aluno2.txt

 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?

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 27


Exercícios
 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.
Nome do arquivo:
ma02Resto_NomeAluno1-Aluno2.txt

Prof. MSc. Gilvan M. Durães Algoritmos e Estruturas de Dados Fundamentais 2013.1 28