Академический Документы
Профессиональный Документы
Культура Документы
Introduo a Algoritmos
Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Pgina: www.univasf.edu.br/~marcelo.linder
Ementa
Conceitos de algoritmo. Algoritmo como representao da soluo de problemas. Constantes. Identificadores. Palavras reservadas. Variveis e tipos primitivos. Operadores. Expresses. Instrues. Lgica de programao. Pseudo-linguagem e seu uso na representao de algoritmos. Comandos de entrada e sada de dados. Estrutura de controle de fluxo (seqencial, condicional e iterativa). Teorema de BhmJacopini. Estruturas de dados homogneas e heterogneas. Modularizao. Recurso.
2
Metodologia
A disciplina ser trabalhada com aulas expositivodialogadas, onde sero fornecidos os componentes tericos e ser feita a prtica de exerccios.
Recursos
Quadro branco, marcador, notebook e projetor multimdia.
Forma de Avaliao
A avaliao ser realizada mediante provas escritas e um trabalho. Duas provas possuiro datas especificadas previamente e a(s) outra(s) ser(o) realizada(s) em data(s) definida(s) no momento de sua(s) realizao(es). As avaliaes com data definida (AVDs) tm, cada uma, o peso igual a dois, j cada avaliao surpresa (AVS) possui peso igual a um. O trabalho (T) ter peso igual a um. Logo, a mdia final (MF) do aluno, considerando a realizao de duas provas surpresas, resultar da seguinte equao: MF = (AVD1*2 + AVD2*2 + AVS1*1 + AVS2*1 + T)/7 OBS. : A existncia do trabalho depender de acordo com os professores das turmas da disciplina de Introduo Programao. O aluno para obter aprovao deve ter no mnimo 75% de presena.
4
Bibliografia
Bibliografia Bsica:
ASCENCIO, A. F. G.; CAMPOS, E. A. V. Fundamentos da Programao de Computadores. 2 ed. Editora Pearson Education, 2003. OLIVEIRA, A. B.; BORATTI, I. C. Introduo Programao Algoritmos. 3 ed. Visual Books, 1999. CORMEN, T. H. et al. Algoritmos, Teoria e Prtica. 2 ed. Elsevier, 2002.
Bibliografia Complementar:
MEDINA, M.; FERTIG, C. Algoritmos e Programao - Teoria e Prtica. 2 Ed. Novatec, 2006. FORBELLONE, A.; EBERSPCHER, H. Lgica de Programao - A construo de algoritmos e estruturas de dados. 3 ed. Pearson Education, 2005. CARBONI, I. F. Lgica de Programao. Cengage Learning, 2003. PUGA, S.; RISSETTI, G. Lgica de programao e estruturas de dados com aplicaes em Java. Pearson Education, 2003.
Informaes Gerais
Material de apoio
Os slides utilizados em aula, listas de exerccios, datas de avaliaes e demais informaes referentes disciplina sero encontradas na pgina www.univasf.edu.br/~marcelo.linder
10; 19%
4; 7% 7; 13%
Aprovados por mdia Aprovados com final Reprovados por mdia Reprovados por falta
33; 61%
6
Conceito de Problema
O que um problema?
Conceito de Problema
Problema (Dicionrio Michaelis): Substantivo Masculino. Questo matemtica proposta para ser resolvida. Questo difcil, delicada, suscetvel de diversas solues. Qualquer coisa de difcil explicao; mistrio, enigma. Dvida, questo.
8
Exemplos de Problema
Problemas fazem parte do nosso cotidiano. Exemplo de problemas cotidianos: Trocar a resistncia de um chuveiro. Definir onde Almoar. Sempre que nos deparamos com um problema buscamos um procedimento para solucionar o mesmo.
Exemplo de Soluo
Conceito de Lgica
O que lgica? A lgica o ramo da Filosofia e da Matemtica que estuda os mtodos e princpios que permitem fazer distino entre raciocnios vlidos e no vlidos, determinando o processo que leva ao conhecimento verdadeiro.
11
Conceito de Lgica
O uso da lgica primordial na soluo de problemas. Com ela possvel alcanar objetivos com eficincia e eficcia.
.
Ningum ensina outra pessoa a pensar, mas a desenvolver e aperfeioar esta tcnica, com persistncia e constncia.
12
Conceito de Algoritmo
Ao utilizarmos a lgica para listar passos ordenados que resultam na soluo de um determinado problema estamos construindo um algoritmo. Contrapondo o que normalmente se imagina, o termo algoritmo no foi originado na computao e muito menos pode ser utilizado apenas no contexto computacional. Podemos definir um algoritmo como: uma seqncia de passos que visa atingir um objetivo bem definido; uma seqncia de passos bem definida que deve ser seguida para a realizao de uma tarefa ou soluo de um problema.
13
Exemplos de Algoritmos
Como vimos os conceitos de algoritmo so bem amplos, sendo importante salientar que qualquer tarefa que siga determinado padro pode ser descrita por um algoritmo, como por exemplo:
ALGORITMO: TROCAR UMA LMPADA PASSO 1: Pegar a lmpada nova PASSO 2: Pegar a escada PASSO 3: Posicionar a escada embaixo da lmpada queimada PASSO 4: Subir na escada com a lmpada nova PASSO 5: Retirar a lmpada queimada PASSO 6: Colocar a lmpada nova PASSO 7: Descer da escada PASSO 8: Ligar o interruptor PASSO 9: Guardar a escada PASSO 10: Jogar a lmpada velha no lixo ALGORITMO: SACAR DINHEIRO PASSO 1: Ir at o caixa eletrnico PASSO 2: Colocar o carto PASSO 3: Digitar a senha PASSO 4: Solicitar o saldo PASSO 5: Se o saldo for maior ou igual quantia desejada, sacar a quantia desejada; caso contrrio sacar o valor do saldo PASSO 6: Retirar dinheiro e carto PASSO 7: Sair do caixa eletrnico
14
Descrio Narrativa
Conforme vimos at o momento a descrio narrativa em linguagem natural foi utilizada na descrio dos algoritmos. Qual a vantagem? No h a necessidade de aprender nenhum novo conceito. Qual a desvantagem? Em virtude da ambigidade presente na linguagem natural a descrio narrativa passvel de mais de uma interpretao.
15
Descrio Narrativa
Um exemplo de ambigidade presente em uma sentena na linguagem natural : O policial escutou o barulho da porta. Esta frase pode ter pelo menos trs interpretaes: 1 - O policial escutou o barulho produzido pela porta. 2 - O policial estava junto porta e escutou o barulho. 3 - O policial escutou o barulho que veio atravs da porta.
16
Do ponto de vista computacional um algoritmo ser implementado em uma linguagem de computao gerando um programa, o qual visa instruir um computador (uma mquina) a executar determinada tarefa. Devemos ter conscincia que um computador no dotado da capacidade de tomar decises com base em premissas. Portanto, no podemos instruir um computador com sentenas dbias.
17
Sendo assim, consideraremos que um algoritmo uma seqncia, que no permite ambigidade, de passos finitos, passvel de ser executada com um esforo finito em tempo finito e que acaba para qualquer entrada (inclusive erro). O algoritmo tem como papel fundamental ser o elo de ligao entre dois mundos (real e computacional). A atividade de programao tem incio com a construo do algoritmo.
18
Funcionalidade do Algoritmo
Mundo Real
19
Mquina
20
Os mtodos em questo impem regras e disponibilizam um conjunto reduzido de palavras/smbolos passiveis de serem utilizados (rigidez sinttica). O objetivo obter uma consistncia semntica para a eliminao da ambigidade intrnseca linguagem natural. Destacaremos agora uma vantagem e uma desvantagem de cada uma das formas, mencionadas, de representao de algoritmos.
21
Fluxograma: Vantagem a representao grfica mais concisa que a representao textual. Desvantagem necessrio aprender a simbologia dos fluxogramas. Pseudocdigo: Vantagem sua transcrio para qualquer linguagem de programao quase que direta. Desvantagem necessrio aprender as regras do pseudocdigo. 22
23
Aes/Smbolos
chuveiro chuveiro
resistncia defeituosa
25
resistncia nova
27
28
29