Algoritmos e Programao
Professor: Marcelo Santos Linder E-mail: marcelo.linder@univasf.edu.br Pgina: www.univasf.edu.br/~marcelo.linder
Ementa
Conceito de algoritmo. Lgica de programao e programao estruturada. Linguagem de definio de algoritmos. Estrutura de um algoritmo. Constantes. Identificadores. Variveis. Declarao de variveis. Operaes Bsicas. Comandos de Entrada e Sada. Estruturas de Controle de Fluxo. Conceito e classificao de Linguagens de Programao. Introduo uma Linguagem de Programao de alto nvel estruturada. Ambiente de programao. Componentes da Linguagem de Programao selecionada: estrutura de um programa, identificadores, palavras reservadas, variveis, constantes, declarao de variveis, operaes bsicas, comandos de entrada e sada, estruturas de controle de fluxo, estruturas de dados homogneas e modularizao.
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 prova(s) escrita(s) e prova(s) prtica(s). 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. 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)/6 O aluno para obter aprovao deve ter no mnimo 75% de presena. As presenas nas aulas prticas so computadas separadamente das presenas na aulas tericas. 4
Bibliografia
Bibliografia Bsica:
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de. Fundamentos da Programao de Computadores. 2 edio. Editora Pearson Prentice Hall, 2003. OLIVEIRA, Alvaro Borges de; BORATTI, Isaias Camilo. Introduo Programao - Algoritmos. Editora Visualbooks, 1999. CORMEN, Thomas H.; LEISERSON, Charles E.; RIVEST, Ronald L.; STEIN, Clifford. Algoritmos, Teoria e Prtica. Editora Campus, 2002. SCHILDT, Herbert. C Completo e Total. Editora Pearson Makron Books, 2006.
Bibliografia Complementar:
MEDINA, Marco; FERTIG, Cristina. Algoritmos e Programao - Teoria e Prtica. 2 Edio. Editora Novatec, 2006. FORBELLONE, Andr; EBERSPCHER, Henri. Lgica de Programao - A construo de algoritmos e estruturas de dados. 3 Edio. Editora Pearson Prentice Hall, 2005. CARBONI, Irenice de Ftima. Lgica de Programao. Editora Thomson, 2003. PUGA, Sandra; RISSETTI, Gerson. Lgica de programao e estruturas de dados com aplicaes em Java. Editora Pearson Prentice Hall, 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
5
Conceito de Computador
Conceito de Computador
Denomina-se computador uma mquina capaz de variados tipos de tratamento automtico de informaes ou processamento de dados. Contudo, o que deve ser feito para que um determinado tratamento automtico de informaes ou processamento de dados ocorra? Deve-se instruir o computador para que o mesmo utilizando-se de sua estrutura execute determinada tarefa.
8
Conceito de Computador
ENIAC (1946)
Conceito de Computador
Motorola V3
10
Conceito de Computador
Placa Me
11
Conceito de Computador
Estrutura de um computador:
Unidade de Processamento
Perifricos de Sada
Perifricos de entrada
12
Conceito de Computador
Estrutura de um computador:
Perifricos de entrada
Perifricos de Sada
Unidade de Processamento
13
Conceito de Algoritmo
Como instruir o computador a fazer determinado processamento? Podemos utilizar uma descrio narrativa em linguagem natural? Qual a vantagem? No h a necessidade de aprender nenhum novo conceito. Qual a desvantagem? Em virtude da ambigidade da linguagem natural a descrio narrativa passvel de mais de uma interpretao.
14
Conceito de Algoritmo
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.
15
Conceito de Algoritmo
Com objetivo de se instruir o computador a fazer determinado processamento impossibilitando mais de uma forma de interpretao, foi criado o conceito computacional de algoritmo, onde: Um algoritmo uma seqncia, que no permite ambigidade, de paos finitos, passvel de ser executada com um esforo finito em tempo finito e que acaba para qualquer entrada (inclusive erro). 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.
16
Funcionalidade do Algoritmo
O algoritmo, do ponto de vista computacional, tem um papel fundamental por ser o elo de ligao entre dois mundos (real e computacional). A atividade de programao tem incio com a construo do algoritmo.
Mundo Real
17
Mquina
Exemplos de algoritmos
Como vimos o conceito de algoritmo bem amplo, 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
Veremos dois mtodos para representao de algoritmos: fluxograma representao grfica; pseudocdigo (portugus estruturado) representao textual.
19
Os mtodos em questo impem regras e disponibilizam um conjunto reduzido de palavras/smbolos passveis de serem utilizadas(os) (rigidez sinttica). O objetivo obter uma consistncia semntica para a eliminao da ambigidade intrnseca linguagem natural. Destacaremos agora uma vantagem e uma desvantagem de cara uma das formas, mencionadas, de representao de algoritmos.
20
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. 21
22
Descrio Narrativa
Adquira uma resistncia nova e localize o chuveiro a ser manipulado. Em seguida abra o chuveiro retirando a resistncia defeituosa, coloque a resistncia nova e feche o chuveiro. Aps, descarte a resistncia defeituosa. Conjunto de smbolos disponveis
chuveiro chuveiro
resistncia defeituosa
24
resistncia nova
26
27
28
Nosso objetivo final com o estudo de algoritmos a aplicao computacional dos mesmos. Desta forma devemos contextualizar os conceitos vistos. Definiremos quais sero as entradas possveis para os procedimentos que viro a constituir solues de futuros problemas e especificaremos quais as formas de manipulao das mesmas.
30
31
34