30
 Universidade Federal da Paraíba Centro de Informática Introdução à Programação Prof. Bruno Jefferson [email protected] 1 Bruno Jefferson (2015)

01 - Algoritmos

Embed Size (px)

DESCRIPTION

Algoritmos

Citation preview

  • Universidade Federal da Paraba

    Centro de Informtica

    Introduo Programao

    Prof. Bruno Jefferson

    [email protected]

    1Bruno Jefferson (2015)

  • Roteiro

    Introduo

    Definio

    Caractersticas

    Formas de Representao

    Descrio Narrativa

    Fluxograma

    Linguagem Algortmica

    Exerccios

    Bruno Jefferson (2015) 2

  • Introduo

    Diferente do que ensina o senso comum, os computadores no possuem inteligncia.

    Ele deve ser orientado a realizar as mais diversas tarefas.

    Como instruir o computador para a execuo de tarefas? Atravs da descrio de um conjunto de passos em uma linguagem que o computador capaz de entender.

    Bruno Jefferson (2015) 3

  • Introduo

    Essa sequncia de passos que orientam o computador na execuo de tarefas chamada de algoritmo.

    Bruno Jefferson (2015) 4

  • Definio

    Um algoritmo um conjunto no ambguo e ordenado de passos executveis que definem um processo finito. (Turing e Church, 1936).

    Se os passos de um algoritmo puderem ser executados por um computador, ento ele denominado de algoritmo computacional.

    Bruno Jefferson (2015) 5

  • Exemplos

    Instrues para se utilizar um aparelho eletrodomstico.

    Uma receita para preparo de algum prato.

    Realizar uma ligao em um telefone pblico.

    Sacar dinheiro em um caixa eletrnico.

    Fazer um sanduche.

    Bruno Jefferson (2015) 6

  • Exemplos

    Algoritmo para fritar um ovo1. Retire o ovo da geladeira.

    2. Acenda o fogo.

    3. Coloque a frigideira no fogo.

    4. Coloque leo na frigideira.

    5. Quebre o ovo, separando a casca.

    6. Ponha o ovo e a clara na frigideira.

    7. Espere um minuto.

    8. Apague o fogo.

    9. Retire o ovo da frigideira.

    Bruno Jefferson (2015) 7

  • Exemplos

    8

    Ir para a escola1. Acordar cedo2. Ir ao banheiro3. Abrir o armrio para escolher roupa4. Se o tempo estiver quente ento

    pegar uma camiseta e uma cala

    Senopegar um agasalho e cala jeans

    5. Vestir a roupa escolhida6. Tomar caf7. Pegar uma conduo8. Descer na parada da escola

    Bruno Jefferson (2015)

  • Exemplos

    9

    Sacar dinheiro no banco 24 horas1. Ir at um banco 24 horas2. Colocar carto3. Digitar a senha4. Solicitar quantia desejada5. Se o saldo for maior ou igual a quantia desejada

    entosacar;

    Senomostrar mensagem de impossibilidade de saque

    6. Retirar dinheiro e o carto7. Sair do banco 24 horas

    Bruno Jefferson (2015)

  • Exemplos

    10

    Trocar lmpada1. Enquanto a lmpada no estiver livre no soquete faaGire a lmpada queimada no sentido anti-horrio.

    2. Posicione a lmpada nova no soquete.

    3. Gire a lmpada no sentido horrio.

    4. Enquanto a lmpada no estiver firme no soquete faaGire a lmpada no sentido horrio.

    5. Se lmpada no acender entoVolte para passo 1.

    Bruno Jefferson (2015)

  • Problema

    Suponha que voc dispe de duas vasilhas denove e quatro litros respectivamente. Comoelas no possuem marcao, no possvel termedidas intermedirias sobre o volumeocupado. O problema consiste, ento, emelaborar uma sequncia de passos, por meioda utilizao das vasilhas de nove e quatrolitros, a fim de encher uma terceira vasilhacom seis litros de gua. As vasilhas podem seresvaziadas e completadas a qualquermomento.

    Bruno Jefferson (2015) 11

  • Problema

    Bruno Jefferson (2015) 12

  • Algoritmo soluo

    1. Encha a vasilha de nove litros.

    2. Usando a vasilha de nove litros, encha a de quatro.

    3. Coloque a quantidade que sobrou (cinco litros) na terceira vasilha (v3 = 5);

    4. Esvazie a vasilha de quatro litros.

    5. Encha novamente a vasilha de nove litros.

    6. Usando a vasilha de nove litros, encha a de quatro.

    7. Esvazie a de quatro litros.

    8. Usando a sobra da de nove litros, encha novamente a de quatro litros.

    9. Coloque a sobra da de nove litros (um litros), na terceira vasilha (v3 = 5 + 1 = 6).

    Bruno Jefferson (2015) 13

  • Caractersticas

    Definio

    As aes devem ser definidas rigorosamente e sem ambiguidades.

    Finitude

    Um algoritmo deve sempre terminar aps um nmero finito de passos.

    Bruno Jefferson (2015) 14

  • Caractersticas

    Efetividade

    Cada passo/instruo/etapa de um algoritmo deve ser executvel.

    Entradas

    Um algoritmo deve ter zero ou mais entradas.

    Sadas

    Pelo menos um valor produzido.

    Bruno Jefferson (2015) 15

  • Caractersticas

    Exemplo 1

    Sacar dinheiro do caixa eletrnico

    1. Ir at um caixa eletrnico.

    2. Digitar a senha.

    3. Escolher a opo de saque.

    4. Solicitar a quantia desejada

    5. Se o saldo for maior que a quantia, sacar.

    6. Retire o carto.

    Ambos falham na caracterstica de

    definio.

    Bruno Jefferson (2015) 16

  • Caractersticas

    Exemplo 2Sacar dinheiro do caixa eletrnico

    1. Ir at um caixa eletrnico.

    2. Faa um carto magntico.

    3. Colocar o carto.

    4. Digitar a senha.

    5. Escolher a opo de saque.

    6. Digitar a quantia desejada.

    7. Se o saldo for maior que a quantia, sacar.

    8. Retire o carto.

    Falha na caracterstica de efetividade.

    Bruno Jefferson (2015) 17

  • Caractersticas

    Exemplo 3Sacar dinheiro do caixa eletrnico

    1. Ir at um caixa eletrnico.

    2. Colocar o carto.

    3. Digitar a senha.

    4. Escolher a opo de saque.

    5. Digitar a quantia desejada.

    6. Se o saldo for maior que a quantia, sacar.

    7. Retire o carto.

    8. Voltar ao passo 1.

    Falha na caracterstica de

    finitude.

    Bruno Jefferson (2015) 18

  • Formas de Representao

    Linguagem Algortmica

    Descrio Narrativa

    Fluxograma

    Bruno Jefferson (2015) 19

  • Formas de Representao

    Descrio Narrativa Os algoritmos so expressos diretamente em linguagem natural.

    Fluxograma Representao grfica na qual formas geomtricas determinam os passos do algoritmo.

    Linguagem Algortmica Consiste na definio de um pseudolinguagemde programao, cujos comandos so descritos em linguagem natural.

    Bruno Jefferson (2015) 20

  • Descrio Narrativa

    Exemplos

    Fritar um ovo.

    Ir para a escola.

    Sacar dinheiro em um banco 24 horas.

    Trocar a lmpada.

    Bruno Jefferson (2015) 21

  • Fluxograma

    Exemplo 1

    Bruno Jefferson (2015) 22

  • Fluxograma

    Exemplo 2

    Bruno Jefferson (2015) 23

  • Linguagem Algortmica

    Exemplo

    Somar trs nmerosinicio

    escreva(Digite trs nmeros);

    leia(n1, n2, n3);

    s n1 + n2 + n3;

    escreva(O valor armazenado em S eh , s);

    fim

    Bruno Jefferson (2015) 24

  • Formas de Representao

    Problema

    Faa um algoritmo que recebe como entradadois nmeros reais, divide o primeiro pelosegundo e imprime o resultado, caso ele sejamaior do que zero.

    Bruno Jefferson (2015) 25

  • Formas de Representao

    Descrio Narrativa1. Solicite que sejam informados dois nmeros.

    2. Calcule a diviso entre eles.

    3. Reproduza o resultado, caso ele seja maiorque zero.

    O algoritmo est claro o suficiente?

    Como informar os nmeros?

    Quem ser o divisor? E o dividendo?

    De que forma o resultado ser informado? Onde?

    Bruno Jefferson (2015) 26

  • Formas de Representao

    Fluxograma Incio

    x1, x2

    y = x1 / x2;

    resultado

    Fim

    Incio e fim de programa

    Operao de atribuio

    Operao de entrada de dados

    y > 0 Operao de deciso

    Incio e fim de programa

    Operao de sada

    Bruno Jefferson (2015) 27

  • Formas de Representao

    Linguagem Algortmica

    algoritmo divide_numerosx1, x2, y: real;

    inicioescreva(digite dois numeros:);leia(x1, x2);y = x1 / x2;

    se (y > 0) entoescreva(resultado = , y);

    fim-sefim

    Bruno Jefferson (2015) 28

  • Formas de Representao

    Representao Vantagens Desvantagens

    Descrio Narrativa

    - Facilidade na elaborao.

    - Distante das linguagens de programao.

    - Impreciso.- Baixa confiabilidade.

    Fluxograma- Figuras dizem mais que palavras.

    - Padro mundial.

    - Difcil de representar medida que o algoritmo cresce.

    Linguagem Algortmica

    - Usa-se o portugus como base.

    - Prximo as linguagens de programao.

    - Poder de expressoreduzido.

    - No padronizado.

    Bruno Jefferson (2015) 29

  • Exerccios

    Com base no pseudocdigo do algoritmo Divide_Numeros, elabore um procedimento, que recebe 3 (trs) notas de um aluno como entrada de dados, calcula e imprime a mdia entre elas, alm de informar se o aluno foi aprovado ou reprovado.

    Bruno Jefferson (2015) 30