Você está na página 1de 34

Universidade Federal do Vale do So Francisco

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

Dados sobre a oferta anterior (2010.2)


Total de discentes: 37 (eram 52) Percentual geral de aprovao: 35,14%
5; 14%
Aprovados por mdia Aprovados com final Reprovados por mdia Reprovados por falta

8; 22% 22; 59% 2; 5%

Conceito de Computador

O que um computador? No uma...

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

Este mtodo de representao de algoritmos adequado? 18Por que?

Mtodos de Representao de Algoritmos

Veremos dois mtodos para representao de algoritmos: fluxograma representao grfica; pseudocdigo (portugus estruturado) representao textual.

19

Mtodos de Representao de Algoritmos

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

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. 21

Mtodos de Representao de Algoritmos


Analisaremos a 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).

22

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. Neste caso as aes disponveis e os smbolos a elas associados so: pegar <=> largar <=> fechar <=> colocar <=>
23

abrir <=> retirar <=>

Mtodos de Representao de Algoritmos


Fluxograma
resistncia nova resistncia defeituosa chuveiro

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

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.
25

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

26

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.

27

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 elemento que participa do processo de preparo da omelete e que ao final se mantm inalterado.

28

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.
29

Conceitos Bsicos de Algoritmos

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

Conceitos bsicos de algoritmos


Arquitetura de John Von Neumann

31

Conceitos Bsicos de Algoritmos


Constante So Valores fixos, tais como nmeros. Estes valores no podem ser alterados pelas instrues do algoritmo, ou seja, um espao de memria cujo valor no deve ser alterado durante a execuo de um algoritmo. Exemplos: inteiro (10, -23768) real (-2.34, 0.149) caractere (a, professor)
32

Conceitos Bsicos de Algoritmos


Varivel um espao de memria que recebeu um nome (identificador) e armazena um valor que pode ser modificado durante a execuo do algoritmo. Identificadores so os nomes utilizados para referenciar variveis, funes ou vrios outros objetos definidos pelo construtor do algoritmo. Regras para a construo de identificadores: podem conter letras, dgitos e sublinhado(_); no podem comear com dgito; no podem ser iguais a uma palavra-reservada e nem iguais a um nome de uma funo declarada pelo construtor do algoritmo ou disponibilizada pelo mtodo utilizado para construo de algoritmos.
33

Conceitos Bsicos de Algoritmos


Palavras-reservadas (palavras-chave) so identificadores predefinidos que possuem significados especiais para o interpretador do algoritmo. inicio var faca senao logico inteiro para repita se ate enquanto real

34