Vous êtes sur la page 1sur 30

Universidade Federal do Vale do So Francisco

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

Dados sobre a oferta anterior (2009.2)


Total de discentes: 54 Percentual geral de aprovao: 20,37%

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

Por exemplo, para trocar a resistncia de um chuveiro devemos:


Adquirir uma resistncia nova; Localizar o chuveiro a ser manipulado; Abrir o chuveiro; Retirar a resistncia defeituosa; Colocar a resistncia nova; Fechar o chuveiro; Descartar a resistncia defeituosa.

Definir onde Almoar.


...
10

Conceito de Lgica

O que orientou a procedimentos para vislumbradas? A lgica.

obteno dos as solues


.

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

Mtodos de Representao de Algoritmos

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

Mtodos de Representao de Algoritmos

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

Mtodos de Representao de Algoritmos


Contudo, quando falamos em algoritmo sob o enfoque computacional, como j foi mencionado, no podemos utilizar uma descrio narrativa para representar um algoritmo. Sendo assim, veremos dois mtodos para representao de algoritmos: fluxograma representao grfica; pseudocdigo (portugus estruturado) representao textual.

20

Mtodos de Representao de Algoritmos

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

Mtodos de Representao de Algoritmos

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

Mtodos de Representao de Algoritmos


Soluo do problema de trocar a resistncia de um chuveiro resolvido com um algoritmo representado em pseudocdigo. Conforme foi mencionado so impostas regras e definido um nmero restrito de aes. Neste caso as aes disponveis so: pegar, largar, abrir, fechar, retirar e colocar.
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.

Pseudocdigo 1. Pegar (resistncia nova);


2. 3. 4. 5. 6. 7. Pegar (chuveiro); Abrir (chuveiro); Retirar (resistncia defeituosa); Colocar (resistncia nova); Fechar (chuveiro); Largar (resistncia defeituosa).

23

Mtodos de Representao de Algoritmos


Soluo do problema de trocar a resistncia de um chuveiro resolvido com um algoritmo representado em fluxograma. Conforme foi mencionado so impostas regras e definido um nmero restrito de aes/smbolos. Neste caso as aes disponveis e os smbolos a elas associados so: pegar <=> largar <=> fechar <=> colocar <=>
24

abrir <=> retirar <=>

Mtodos de Representao de Algoritmos


Fluxograma 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. resistncia nova resistncia defeituosa chuveiro

Aes/Smbolos

chuveiro chuveiro

resistncia defeituosa
25

resistncia nova

Conceitos Bsicos de Algoritmos


Antes de nos aprofundarmos nos mtodos de representao de algoritmos, devemos ter de forma clara a compreenso de alguns conceitos como: Constante; Varivel; Identificador; Palavra-reservada; Entrada; Sada; Operadores.
26

Conceitos Bsicos de Algoritmos


Para uma melhor compreenso dos conceitos citados, analisaremos o problema de preparar uma omelete. Partiremos da lista de ingredientes: 5 ovos 1/3 de uma xcara de ch de leite 2 colheres de sopa de cebolinha verde picada 3 pitadas de sal 1 colher de sopa de manteiga

27

Conceitos Bsicos de Algoritmos


O procedimento de preparo, em linguagem natural, o seguinte: Colocar em uma tigela os ovos, o leite, a cebolinha e o sal. Com a ajuda de uma esptula bater bem os ingredientes contidos na tigela. Colocar a manteiga em uma frigideira e a derreter. Colocar o contedo da tigela na frigideira e fritar em fogo baixo at a omelete dourar suavemente. Quando estiver quase seca, dobrar a omelete ao meio, colocar a omelete em um prato. A omelete est pronta para servir.

28

Conceitos Bsicos de Algoritmos


Ao analisarmos o procedimento de preparo percebemos que so necessrios trs recipientes: uma tigela, uma frigideira e um prato, alm de uma esptula. Podemos visualizar os recipientes como variveis, pois estes so regies do espao onde pode-se armazenar inmeras substncias. A esptula como uma constante devido a esta representar um objeto que participa do processo de preparo da omelete e que ao final se mantm inalterado.

29

Conceitos Bsicos de Algoritmos


Percebemos tambm que so executadas algumas operaes: colocar, bater, derreter, fritar, dobrar e servir. Os nomes dos recipientes e os verbos correspondentes s aes podem ser visualizados como identificadores, uma vez que estes especificam o que ser manipulado ou como ser manipulado. Uma observao a ser feita o fato de no podermos nomear um recipiente com um verbo correspondente a uma ao utilizada no processo, logo os verbos podem ser considerados como palavras-reservadas. Os ingredientes constituiro as entradas para o processo e a omelete ser a sada.
30

Vous aimerez peut-être aussi