Você está na página 1de 43

Algoritmos Estruturas de Dados Programa Exerc cios

Apresentao da Disciplina ca Algoritmos e Programao ca


Faculdade Pitgoras a
http://www.faculdadepitagoras.com.br

06 de Fevereiro de 2012

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Sumrio a
1

Algoritmos Introduo ca Aplicao ca Histrico o Denio ca Estruturas de Dados Introduo ca Programa N veis de Abstrao ca Exerc cios Exerc cios em Sala de Aula Solues de Exerc co cios
Faculdade Pitgoras a Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Motivao ca

Os algoritmos esto em toda a parte a


Instrues para uso de medicamentos co Indicaes de como montar um aparelho ou equipamento co Uma receita de culinria a Um procedimento de uma empresa

Componentes
O Problema Os passos/aes executveis co a A soluo ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Motivao ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Motivao ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Exemplo: Receita

1 2 3 4 5 6 7

Esquentar o forno Obter os ingredientes necessrios a Misturar os ingredientes na ordem pr-denida e Preparar a forma Colocar a mistura na forma Assar no forno por 50 minutos Enquanto a parte superior no estiver dourada a
1

Deixar assando por mais 5 minutos

Tirar do forno e deixar esfriar

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Exemplo: O que fazer no domingo?

Fluxograma Estado inicial Atividades Tomada de deciso a


Sim, no a

Juno de atividades ca Estado nal

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Aplicao de Algoritmos ca
Economia
Bolsa de valores

Jogos
Xadrex, dama, jogo da velha

Dia a dia
Culinria, Previso do a a tempo, Academia

Biologia
Sequenciamento de genes, mapeamento de prote nas

Pol tica
IBGE, DataFolha

Engenharias
Fabricao de ca produtos, Construo ca civil Matemtica a
Teste da primalidade, Fatorao ca
Faculdade Pitgoras a

Computao ca
Pesquisa na web (ranking), Criptograa

F sica
Computao quntica, ca a Astronomia (simulao) ca
Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Origem

Muhammad ibn Musa al-Khwarizmi (780-850) Matemtico persa, astrnomo e gegrafo, membro da casa da a o o sabedoria de Bagd a Criou o sistema numrico decimal do mundo ocidental e e mtodos de soluo para equaes do 1o e do 2o graus e ca co Criador da lgebra (do rabe al-jabr) a a Algorithmus = mtodo de calcular e

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Denio ca

Denition Um algoritmo pode ser denido resumidamente como uma seqncia de aes a serem executadas na resoluo de um ue co ca problema. O que um problema (Dicionrio Michaelis)? e a
Questo matemtica proposta para ser resolvida a a Questo dif delicada, suscet de diversas solues a cil, vel co Qualquer coisa de dif explicao; mistrio ou enigma cil ca e Dvida, questo u a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Denio ca

Um problema sendo solucionado por uma sequncia de e aes. co Dessa forma, os algoritmos podem ser utilizados como base lgica de operaes que devero ser implementadas em uma o co a linguagem de programao, apesar de no representarem, ca a necessariamente, um programa de computador.

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Denio ca

Seqncia de aes executveis para a obteno de uma ue co a ca soluo para um determinado tipo de problema ca Uma sequncia nita de instrues, lgica, um procedimento e co o expl cito denido passo a passo para a resoluo de um ca problema, normalmente usado para clculo e processamento a de dados, dentre outras reas. a Uma descrio de um padro de comportamento, expresso em ca a termos de um conjunto nito de aes (Dijkstra) co

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Denio ca
Considerado como uma ferramenta para resolver um problema computacional bem especicado
Bem especicado = bem denido, regras claras e precisas

Pode receber como entrada um conjunto de valores e pode produzir como sa um outro conjunto de valores da
Relao entrada/sa ca da

Exemplo: ordenao de nmeros ca u


Entrada: uma seqncia de N nmeros (a1, a2, . . ., an) ue u Sa da: uma permutao (reordenao) da seqncia de ca ca ue entrada, tal que os elementos estejam classicados em ordem crescente

a1 a2 ...an 1 an

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Denio: Resumo ca

Regras so precisas a
Nmero de passos nito (in e m) u cio

Conjunto de regras e tempo de execuo nito ca e


Linguagens de programao ca

Regras so executadas por um computador a


Programa de computador

Transformam uma entrada em sa da

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Caracter sticas
Componentes principais
Estado inicial: Entrada inicial Instrues que descrevem uma computao co ca
Nmero nito de passos bem denidos u

Estado nal: Sa da

Representaes co
Linguagem natural (Portugol) Fluxograma (diagrama) Pseudo-linguagem (Algoritmo estruturado)

Complexidade
Tempo: nmero de operaes u co Espao: quantidade de memria utilizada c o

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Exemplo

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Aplicao ca

Operaes de clculo co a
Soma, subtrao, diviso, mdia, mediana, primo ca a e

Processamento de dados
Ordenao, agrupamento ca

Razo autonmica a o
Tomada de deciso a

Em palavras gerais: procedimento passo a passo para um processo de clculo a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Exerc 1 cio

Como descrever um algor tmo que testa se um nmero inteiro u par? e Qual o problema sendo tratado? e Qual a minha entrada de dados? e Quais so os passos/aes necessrias para a soluo do a co a ca problema? Qual a resposta esperada na resoluo do problema? e ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Exerc 1 cio

Algoritmo NumeroEhPar Entrada: inteiro N Sada: VERDADEIRO se o nmero par, FALSO o contrrio u e a D <= N / 2 R <= N - (D x 2) Se (R == 0) ent~o a retornar FALSO Sen~o a retornar VERDADEIRO fim se

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Introduo a Lgica ca o

O que orientou a obteno dos passos ou procedimentos para ca solucionarmos o problema anterior?

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Introduo a Lgica ca o

O que orientou a obteno dos passos ou procedimentos para ca solucionarmos o problema anterior? A lgica o

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Introduo a Lgica ca o

O que orientou a obteno dos passos ou procedimentos para ca solucionarmos o problema anterior? A lgica o O que lgica? e o

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca Aplicao ca Histrico o Denio ca

Introduo a Lgica ca o

O que orientou a obteno dos passos ou procedimentos para ca solucionarmos o problema anterior? A lgica o O que lgica? e o Ramo da losoa e matemtica que estuda os mtodos e a e princ pios que permitem fazer distino entre racioc ca nios vlidos e invlidos , determinando o processo que leva ao a a conhecimento verdadeiro.
Atravs da lgica poss alcanar objetivos com ecincia e e o e vel c e eccia. a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca

Algoritmos e Estruturas de Dados


As estruturas de dados e os algoritmos esto fortemente a ligados
No poss estudar estruturas de dados sem considerar os a e vel algoritmos associados a elas Tambm a escolha dos algoritmos em geral depende da e representao e da estrutura dos dados ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca

Introduo ca

Maneira particular de armazenamento e organizao de dados ca em um computador de tal forma que estes possam ser utilizados de forma eciente
Como saber se um algoritmo eciente? e Tcnicas de anlise e projeto de algoritmos e a

So usadas em praticamente todos os programas e sistemas a de software


Celulares, PCs, servidores, cmeras digitais, etc. a

Tipos de dados e estruturas


Primitivos, compostos, abstratos listas lineares, pilhas, rvores, hashes, grafos a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca

Resoluo de um Problema ca

Escolher uma abstrao da realidade ca


Em geral mediante a denio de um conjunto de dados que ca representa a situao real ca

Escolher a forma de representar esses dados e as operaes co sobre estes A escolha da representao dos dados ca e determinada, entre outras, pelas operaes a serem realizadas co sobre os dados. Representao dos dados: estado ca Operaes sobre os dados: comportamento co

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Introduo ca

Situaoes c

Como representar uma la de usurios em um banco? a Como representar uma relao entre usurios numa rede ca a social? Como representar um deslocamento de mercadorias sobre uma determinada rea? a Como representar um armazenamento de itens dentro de um espao limitado? c Como representar uma hierarquia ou um organograma de uma empresa?

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

N veis de Abstrao ca

Introduo ca

Programar basicamente estruturar dados e construir e algoritmos.


Programa = algoritmos + estruturas de dados

Programas so formulaes concretas de algoritmos abstratos, a co baseados em representaes e estruturas espec co cas de dados. Em outras palavras, os programas so instrues a serem a co executadas por um computador (CPU)

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

N veis de Abstrao ca

N veis de Abstrao ca

Programas representam uma classe especial de algoritmos capazes de serem seguidos por computadores. Um computador s capaz de seguir programas em oe linguagem de mquina a
Cdigo fonte: leg pelo ser humano (alto n o vel vel) Compilao: processo de converso de cdigo fonte para ca a o cdigo de mquina (binria) o a a Interpretao: avalia e executa cada linha de cdigo em ca o linguagem de alto n (scripts) vel Linguagem de mquina: executada pelo computador (cdigo a o binrio) a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

N veis de Abstrao ca

N veis de Abstrao ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

N veis de Abstrao ca

N veis de Abstrao ca

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc 2 cio

Escreva um algoritmo que encontra o maior nmero de uma u lista de trs nmeros no ordenada (X, Y e Z). e u a Trs fases e
Descrio de alto n (portugol) ca vel Descrio em pseudocdigo (algoritmo estruturado) ca o Implementao do algoritmo em uma linguagem de ca programao(C/C+) ca

Exemplos
Entrada: 3 10 5, Sa da: 10 Entrada: 2 2 2, Sa da: 2 Entrada: 0 -1 1, Sa da: 1

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc 2: Soluo cio ca

Alto n - Portugol vel


1 2

Assuma que o primeiro item o maior e Verique o prximo elemento e, se ele for o maior encontrado o at o momento, anote-o e Repita o procedimento anterior at que no haja mais e a nmeros para serem vericados u O ultimo nmero anotado o maior da lista quando o u e processo estiver conclu do

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc 1: Soluo cio ca


Pseudocdigo - Algoritmo Estruturado o Algoritmo MaiorNumero Entrada: tr^s nmeros inteiros [X, Y e Z] e u Sada: o maior nmero da lista u Maior = X Se Y > Maior ent~o a Maior <= Y Fim se Se Z > Maior ent~o a Maior <= Z Fim Se Retornar Maior
Faculdade Pitgoras a Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc cios Adicionais


1 2 3

Vericar se um nmero primo (at 10). u e e Calcular a mdia de 3 nmeros (X, Y e Z) e u Dado um nmero, retornar a letra correspondente (A = 0, B u = 1, C = 2, . . ., Z = 26) Dado dois nmeros (X e Y), informar o maior e o menor. u Dado um nmero, retornar o antecessor e o posterior deste. u Dado um nmero de segundos, retornar a mesma quantidade u em minutos Dado um nmero de dias, retornar a mesma quantidade em u horas Dado uma medida em cent metros, retornar a mesma quantidade em polegadas (1 pol = 2.54 cm)
Faculdade Pitgoras a Apresentao da Disciplina ca

4 5 6

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 1: Soluo cio ca


1

Vericar se um nmero primo (at 10). u e e

Algoritmo EhPrimo Entrada: nmero N u Sada: [V] se o nmero primo, [F] o contrrio u e a EhPrimo <= [V] Divisor <= 2 Enquanto (Divisor < N e EhPrimo) R <= N % Divisor Se (R == 0) ent~o a EhPrimo <= [F] Fim se Fim enquanto Retornar EhPrimo
Faculdade Pitgoras a Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 2: Soluo cio ca


1

Calcular a mdia de 3 nmeros (X, Y e Z) e u


Algoritmo CalcularMedia2

Algoritmo CalcularMedia Entrada: nmeros A, B e C u Sada: mdia dos nmeros e u informados Soma <= A + B + C Mdia <= Soma / 3 e Retornar Mdia e Entrada: lista de nmeros L u Sada: mdia dos nmeros e u informados Para cada N em L Soma <= Soma + N Vezes <= Vezes + 1 Fim para Mdia <= Soma / Vezes e Retornar Mdia e

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 3: Soluo cio ca


1

Dado um nmero, retornar a letra correspondente (A = 0, B u = 1, C = 2, . . ., Z = 26)

Algoritmo ObterLetra Entrada: nmero N u Sada: Letra correspondente de N Se (N == 0) Letra <= Se (N == 1) Letra <= Se (N == 2) Letra <= . . . Se (N == 26) Letra <=

A B C

Z
Faculdade Pitgoras a Apresentao da Disciplina ca

retornar Letra

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 4: Soluo cio ca


1

Dado dois nmeros (X e Y), informar o maior e o menor. u

Algoritmo MaiorMenor Entrada: nmero A e B u Sada: o maior e o menor Se (A > B) Maior <= Menor <= Se (B > A) Maior <= Menor <= Sen~o a Informar

A B B A que s~o iguais a

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 5: Soluo cio ca

Dado um nmero, retornar o antecessor e o posterior deste. u

Algoritmo AntecessorPosterior Entrada: nmero N u Sada: Antecessor A e posterior P A <= N - 1 P <= N + 1 Retornar A e P

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 6: Soluo cio ca

Dado um nmero de segundos, retornar a mesma quantidade u em minutos

Algoritmo SegParaMinutos Entrada: nmero de segundos S u Sada: nmero de minutos M u M <= S / 60 Retornar M

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 7: Soluo cio ca

Dado um nmero de dias, retornar a mesma quantidade em u horas

Algoritmo DiasParaHoras Entrada: nmero de dias D u Sada: nmero de horas H u H <= D * 24 Retornar H

Faculdade Pitgoras a

Apresentao da Disciplina ca

Algoritmos Estruturas de Dados Programa Exerc cios

Exerc cios em Sala de Aula Solues de Exerc co cios

Exerc Adicional 8: Soluo cio ca

Dado uma medida em cent metros, retornar a mesma quantidade em polegadas (1 pol = 2.54 cm)

Algoritmo CentimetrosParaPolegadas Entrada: medida em centmetros C Sada: medida em polegadas P P <= C / 2.54 Retornar P

Faculdade Pitgoras a

Apresentao da Disciplina ca