Você está na página 1de 48

Algoritmos e Estrutura de Dados

Aula 01 Reviso da Disciplina anterior


Davi Viana
davi.viana@gmail.com

Universidade Federal do Maranho


Bacharelado Interdisciplinar em Cincia e Tecnologia

Baseado no material gentilmente cedido pelo prof. Bruno Feres


(UFMA) e Prof. Leandro Galvo (UFAM)

Algoritmos

um procedimento computacional bem definido


Recebe um conjunto de valores como entrada
Produz um conjunto de valores como sada

Entrada

Algoritmo

Sada

Algoritmos

Informalmente: uma receita de bolo

Algoritmo:

1.Bater duas claras


2.Adicionar duas gemas
3.Adicionar uma xcara de acar
4.Adicionar duas colheres de manteiga
5.Adicionar uma xcara de leite de coco
6.Adicionar farinha e fermento
7.Colocar numa forma e levar ao forno por 20 minutos

Algoritmos

Formalmente:
um conjunto ordenado de passos executveis, no
ambguos, que define um processo finalizvel,
o pensamento descrito como uma sequncia de
instrues que visam atingir um objetivo
Pode haver vrias solues para um mesmo problema
pode haver vrios algoritmos

Todos devem chegar ao resultado (objetivo) desejado de


forma correta;
Uns algoritmos podem ser mais rpidos e outros mais
seguros;

Algoritmos

Formas de representao
Linguagem natural

Os algoritmos so expressos diretamente na linguagem natural (por


exemplo, em portugus como no caso do bolo).

Fluxograma (ou Diagrama de Fluxo)

Pseudo-cdigo

Esta uma representao grfica que emprega formas geomtricas


padronizadas para indicar as diversas aes e decises que devem ser
executadas para resolver um problema.
Emprega uma linguagem intermediria entre a linguagem natural e
uma linguagem de programao para descrever os algoritmos.

Algoritmos

Linguagem Natural

Exemplo do clculo da raiz de equao do primeiro grau

1.Incio do programa
2.Leia a e b
3.Calcule o valor de x (ax + b = 0)
4.Imprima o valor de
x
5.Fim do programa

Algoritmos

Fluxograma

Exemplo do clculo da
raiz de equao do primeiro
grau

Incio
Ler a
Ler b
X=-b/a
Imprime x
Fim

Algoritmos

Pseudo-cdigo

Exemplo do clculo da raiz de equao do primeiro grau

1.Incio do programa
2.Ler a
3.Ler b
4.X = -b/a
5.Imprimir x
6.Fim do programa

Algoritmos

Como fazemos isso?

1.
2.
3.
4.

Metodologia de Resoluo de Problemas, por George Polya em


1945:
Entender o problema
Planejar a soluo
Executar o plano
Avaliar a soluo

10

Algoritmos

Como fazemos isso?

Exemplo: Clculo das razes de equao do segundo grau

11

Algoritmos

Como fazemos isso?

Exemplo: Clculo das razes de equao do segundo grau


Pseudo-cdigo
1.Incio do programa
2.Ler a
3.Ler b
4.Ler c
5.delta = b*b 4*a*c
6.x1 = (-1*b
delta/ 2*a)
7.x2 = (-1*b +
delta / 2*a)
8.Imprimir x1
9.Imprimir x2
10.Fim do programa

12

Algoritmos

Programando em Python

1.Incio do programa
2.Ler a
3.Ler b
4.Ler c
5.delta = b*b 4*a*c
6.x1 = (-1*b
delta / 2*a)
7.x2 = (-1*b +
delta / 2*a)
8.Imprimir x1
9.Imprimir x2
10.Fim do programa

Entrada

Processamento

Sada

13

Varivel

Varivel uma regio de memria do computador


que contm um valor e conhecida por um nome
especificado pelo usurio.
Identificador

Moedas
Nome

Pi

...

Condicao

Contedo

12

Maria
3.14

Falso

14

Varivel Tipos de dados

O tipo define a natureza dos dados que a varivel


armazena.
Tipos mais comuns no Python:
Numrico
Tipos

Lgico

String de
caracteres

Inteiro
Real

15

Atribuio de valores
Identificador

Identificador
Atribuio
Expresso

Atribuio

area = 20

Expresso

Nome dado s variveis utilizadas no


programa
Comando que define ou redefine o valor
armazenado em uma varivel
Pode ser um valor ou um conjunto de
comandos que resulta em um valor

16

Analogia
Variveis podem ser vistas como gavetas de
um armrio onde cabe apenas um nico valor

largura

4.4 7.8

altura

3.2

largura = 4.4
altura = 3.2
largura = 7.8

17

Entrada de dados
Comandos de Entrada

Permitem que o usurio do programa entre com novos


valores sem alterar o cdigo do script.
Exemplo:
Funo input()
nome = input('Digite o nome: ')
idade = input('Digite a idade: ')
nota = input('Digite a nota: ')

18

Processamento de dados

Operaes aritmticas

19

Sada de dados
Comandos de Sada

Exibem resultados no Shell.


Exemplos:
Funo print()
print('Pedro')
print(nome)
print(nota)
print(22)

Exemplo de entrada e sada de dados

20

>>> var = input("Digite um numero: ") 1 2 3


>>> print("Voce digitou", var)
4

Digite um numero:
15

3
4

var = 15
Voce digitou 15

21

Mdulos em Python (Bibliotecas)

Bibliotecas organizam
funes bastante
utilizadas em arquivos
diferentes.
Assim, elas podem ser
chamadas quando
necessrio, sem ter de
reescrever tudo.
Em Python, as
bibliotecas tambm so
conhecidas como
mdulos.

22

Utilizao de mdulos

Mdulos: Por meio do comando import, pode-se


agregar pacotes com funes disponves para uso.
Por exemplo:
import

math: permite a utilizao de funes


matemticas diversas.
import datetime: permite a utilizao de funes de
data e hora.
import pygame: permite a utilizao de funes de
jogos.

23

Voltando para o exemplo da equao


do segundo grau...

Como seria
isso em
Python?

1.Incio do programa
2.Ler a
3.Ler b
4.Ler c
5.delta = b*b 4*a*c
6.x1 = (-1*b
delta / 2*a)
7.x2 = (-1*b +
delta / 2*a)
8.Imprimir x1
9.Imprimir x2
10.Fim do programa

24

Voltando para o exemplo da equao


do segundo grau...

25

Aprimorando o programa em
Python...

E se o delta for negativo?


E se eu quiser reutilizar o programa para calcular
para outra equao?
E se eu quiser calcular as razes de vrias
equaes?

26

Estruturas condicionais

Execuo condicional
Execuo alternativa
Condicionais encadeados
Condicionais aninhados

27

Estruturas condicionais

Execuo condicional

28

Estruturas condicionais

Execuo alternativa

29

Estruturas condicionais

Condicionais encadeados

30

Estruturas condicionais

Condicionais aninhados

31

Voltando a pergunta...

E se o delta for negativo?

32

E se eu quiser reutilizar o programa


para calcular para outra equao?

Funes: pequenos programas (subprogramas)


que realizam tarefas especficas que iro auxiliar a
execuo de um programa. Agrupa um conjunto
de comandos e associa a ele um nome.
Identificador

Palavra reservada
do Python

Parmetros

Comandos

33

Funes

Por que utilizar funes?


O

que o programa abaixo faz?

34

Funes

Por que utilizar funes?


E

se quisssemos testar 2 nmeros?

35

Funes

Por que utilizar funes?


E

se quisssemos testar 5 nmeros?

36

Funes

Por que utilizar funes?


Definir

uma funo uma vez e utiliz-la vrias

37

Funes

Como utilizar funes?

38

E se eu quiser reutilizar o programa


para calcular para outra equao?

39

E se eu quiser calcular as razes de


vrias equaes?

40

E se eu quiser calcular as razes de


vrias equaes?

Estruturas de repetio
while
for

41

Repetio por condio


:: Comando while

Permite que um trecho de cdigo seja executado


enquanto certa condio for verdadeira.
Quando a condio for falsa, o bloco de comandos
interno deixa de ser repetido e continuamos
executando o resto do programa.
while <condio> :
<comandos_a_repetir>
Comandos a serem repetidos
devem estar indentados

42

Repetio por condio


:: Comando while

43

Repetio por contagem


:: Comando for

Percorre os itens de uma sequncia.


Casa repetio feita pelo loop for far com que a
varivel considere um valor diferente.
for varivel in :
<comandos_a_repetir>
Comandos a serem repetidos
devem estar indentados

44

Repetio por contagem


:: Comando for

45

while x for

46

E se eu quiser calcular as razes de


vrias equaes

47

Dvidas?

Algoritmos e Estrutura de Dados

Aula 01 Reviso da Disciplina anterior


Davi Viana
davi.viana@gmail.com

Agradecimentos: Baseado no material gentilmente cedido pelo prof.


Bruno Feres (UFMA) e Prof. Leandro Galvo (UFAM)