• Nenhum resultado encontrado

Aula 1 - Introdução

N/A
N/A
Protected

Academic year: 2021

Share "Aula 1 - Introdução"

Copied!
39
0
0

Texto

(1)

Algoritmos -

Introdução

Prof. MSc. Tiago Brasileiro Araújo Prof. Katyusco de Farias Santos

(2)

Motivos para aprender

algoritmos

(3)

Motivo 1: você precisa pagar a

(4)

Motivo 2: vou ter reuniões com

(5)

Motivo 3: você pode salvar o

(6)

Motivo 3: não acredita?

Poderia ser bem pior que 7x1.

O império nazista podia ser realidade hoje, se Allan Turing

(7)

Motivo 4: você poderá

(8)
(9)

O que é algoritmo?

“É uma sequência finita e não ambígua de instruções computáveis

para solucionar um problema”.

“Algoritmo é uma descrição com um número finito de passos, que

indicam precisamente os processos que produzirão um resultado desejado”.

(10)

O que é lógica ?

Lógica de programação é a

técnica de encadear pensamentos para atingir

determinado objetivo.

Permite definir uma seqüência

lógica para o desenvolvimento e solução de determinado

(11)

O que é lógica ?

Seqüência Lógica são passos executados até atingir um objetivo ou solução de um problema.

Instruções: “um conjunto de regras ou normas definidas para a realização ou emprego de algo”.

Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar.

(12)

O que é algoritmo?

A palavra algoritmo, à primeira vista, parece-nos estranha;

Cotidiano:

Instruções para se utilizar um aparelho eletrodoméstico;Uma receita para preparo de algum prato;

Guia de preenchimento para declaração do imposto de renda;

A regra para determinação de máximos e mínimos de funções por derivadas

sucessivas;

A maneira como as contas de água, luz e telefone são calculadas mensalmente;

(13)

Mas isso está no nosso dia a

dia ...

“É uma sequência finita e não ambígua de instruções

computáveis para solucionar um problema”.

Chupar um bombom;

Chutar uma bola;

(14)

Mas vocês são cientistas ...

Algoritmo Recepcionista de Cinema Inicio 1 – Solicitar ao cliente o bilhete do filme. 2 – Conferir a data e o horário do filme no bilhete. Se data/hora atual > data/hora do filme + 30 minutos Então 3 – Informar ao cliente que o tempo limite para entrada foi excedido. 4 – Não permitir a entrada. Senão Se data/hora atual < data/hora do filme – 30 minutos Então 5 – Informar ao cliente que a sala do filme ainda não foi liberada para entrada. 6 – Não permitir a entrada. Senão 7 – Permitir a entrada. 8 – Indicar ao cliente onde fica a sala do filme. Fim-Se Fim

(15)

Temos o computador para

facilitar a vida

Todo algoritmo deve apresentar algumas características

básicas:

ter fim;

não dar margem à dupla interpretação (não ambíguo);

capacidade de receber dado(s) de entrada do mundo exterior;poder gerar informações de saída para o mundo externo ao do

ambiente do algoritmo;

ser efetivo (todas as etapas especificadas no algoritmo devem ser

(16)

Temos o computador para

facilitar a vida

Converter comandos (linguagem) humanos em comandos

de máquina.

Linguagem humana:

"Se for verdade isso, acontece isto, senão acontece aquilo"

Linguagem de máquina:

(17)

Qual a linguagem?

Uma linguagem

de

programação é

um

método

padronizado

para

comunicar instruções para

um computador.

Aproxima a linguagem humana da linguagem de máquina!

Executa instruções no computador.

(18)

Programa

Entrada de dados; Processamento; Estado;

Saída.

Entrada Programa Saída

(19)

Quais as características de

um Algoritmo ?

Valores de Entrada

Todo algoritmo deve possuir nenhuma, uma ou mais de uma estrada de dados

Valores de Saída

Todo algoritmo deve possuir uma ou mais de uma saída de dados

Finitude

Todo algoritmo é finito (Possui início, meio e fim)

Correção

Todo algoritmo deve gerar uma saída coerente com a entradaNão dar margem à dupla interpretação (não ambíguo);

(20)

Formas de representação de

um Algoritmo

Descrição Narrativa

• São expressos diretamente em linguagem natural.

Fluxograma Convencional

• São expressos em linguagem de representação gráfica (formas geométricas).

Pseudocódigo (Linguagem Algorítmica ou Portugol)

(21)

Formas de representação de

um Algoritmo

Descrição Narrativa:

Faz-se uso do português para descrever algoritmos. EXEMPLO: Receita de Bolo

Providencie manteiga, ovos, 2 Kg de massa, etc.  Misture os ingredientes Despeje a mistura na fôrma de bolo Leve a fôrma ao forno Espere 20 minutos Retire a fôrma do forno Deixe esfriar Prove

(22)

Formas de representação de

um Algoritmo

Descrição Narrativa: VANTAGENS:

•o português é bastante conhecido por nós; DESVANTAGENS:

•imprecisão;

•pouca confiabilidade (a imprecisão acarreta a desconfiança);

•extensão (normalmente, escreve-se muito para dizer pouca coisa).

(23)

Formas de representação de

um Algoritmo

Fluxograma convencional:Utilização de símbolos gráficos para representar

algoritmos. É uma representação gráfica de algoritmos onde formas geométricas diferentes implicam ações (instruções, comandos) distintos.

(24)

Formas de representação de

um Algoritmo

(25)

Formas de representação de

um Algoritmo

Fluxograma convencional: VANTAGENS:

•Uma das ferramentas mais conhecidas; •Figuras dizem muito mais que palavras; •Padrão mundial

DESVANTAGENS:

•Faz com que a solução do problema já esteja amarrada a dispositivos físicos;

•Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los;

(26)

Formas de representação de

um Algoritmo

Pseudocódigo :

Esta forma de representação de algoritmos, é conhecida também como

português estruturado ou portugol.

É bastante rica em detalhes e assemelham-se bastante à forma em que os programas são escritos.

A forma geral de um algoritmo em pseudocódigo:

Algoritmo <nome_do_algoritmo>

[<declaração_de_variáveis>]

Início

<corpo_do_algoritmo>

(27)

Formas de representação de

um Algoritmo

Pseudocódigo :

Onde:

Algoritmo

Indica o início da definição do algoritmo.

<nome_do_algoritmo>

Nome dado ao algoritmo para distingui-lo dos demais.

[<declaração_de_variáveis>]

Parte opcional onde são declaradas as variáveis globais usadas no algoritmo principal e, eventualmente, nos subalgoritmos.

(28)

Formas de representação de

um Algoritmo

Pseudocódigo :

Onde: Início

Palavra que delimita o início do corpo do algoritmo.

<corpo_do_algoritmo>

Conjunto de instruções do algoritmo.

Fim

(29)

Formas de representação de

um Algoritmo

Pseudocódigo : Algoritmo Média Var N1, N2, Média Início Leia N1, N2 Média := (N1+N2)/2 Se Média >= 7 Então Escreva “Aprovado” Senão Escreva “Reprovado”

(30)

Formas de representação de

um Algoritmo

Pseudocódigo :

VANTAGENS:

•Independência física da solução (solução lógica apenas); •Usa o português como base;

•Pode-se definir quais e como os dados vão estar estruturados; •Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

DESVANTAGENS:

•Exige a definição de uma linguagem não real para trabalho; •Não padronizado.

(31)

Formas de representação de

um Algoritmo

Descrição

Narrativa Fluxograma Convencional Pseudocódigo – Obter as notas da primeira e da segunda prova – Calcular a média aritmética entre as duas – Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado.

Algoritmo Média Var N1, N2, Média Início Leia N1, N2 Média := (N1+N2)/2 Se Média >= 7 Então Escreva “Aprovado” Senão Escreva “Reprovado”

(32)

Linguagem Algoritma

Exemplo:

• Exige a definição de uma linguagem não real para trabalho;

• Não padronizado. • Padrão universal pré-definido que pode ser

escrito em inglês ou português;

• Pode definir quais e como os dados serão estruturados;

• Passagem quase imediata do algoritmo para uma linguagem de programação qualquer.

// Calcular a idade através das variáveis: ano de nascimento e ano corrente.

algoritmo "idade"

var

ano_nascimento, ano_corrente, idade : inteiro

inicio

escreva ("Entre com o ano de nascimento e o corrente:")

leia (ano_nascimento, ano_corrente)

idade := ano_corrente - ano_nascimento

escreva (“Sua idade atual é: ", idade)

(33)

Refinamento

Podemos tornar os passos da resolução do problema mais

detalhados (investigação) para torná-los mais claros e

(34)

Refinamento

Comandos e Estruturas de controles são usados para provê

refinamento.

A este desdobramento dar-se o nome de refinamento

sucessivo:

Programadores tendem a escrever primeiro os passos gerais e, só

depois, aplicar um desdobramento dos passos até que se atinja o resultado desejado.

(35)

Cuidado!

Você deve estar se perguntando: Como saber se o

algoritmo está detalhado o suficiente?

A resposta é: depende de quem vai executá-lo.

Não devemos definir os passos de forma muito genérica

(ou abstrata), nem tampouco detalhar demasiadamente os

passos a ponto de tornar o algoritmo óbvio e grande

demais.

(36)

Estruturas de controle(construção)

Seqüencial:

a mais simples estrutura de controle. Os comandos devem ser

executados um após o outro, na mesma ordem em que aparecem escritos;

Decisão ou seleção:

também conhecida por Seleção, pode provocar ou não a realização

(37)

Estruturas de controle(construção)

Repetição ou iteração:

os comandos e as estruturas de controle abrangidos devem ser

executados repetidamente até que se verifique uma condição para que se interrompa a repetição.

(38)

Qual linguagem de programação

utilizar?

(39)

Algoritmo == linguagem de

programação?

Nunca confunda

algoritmos com linguagem de

programação.

Algoritmos: ideia geral que pode ser implementada em

qualquer linguagem de programação.

Linguagem de programação: meio para enviar instruções para

Referências

Documentos relacionados

Para saber como o amostrador Headspace 7697A da Agilent pode ajudar a alcançar os resultados esperados, visite www.agilent.com/chem/7697A Abund.. Nenhum outro software

Corporate Control and Policies Page 12 UNIVERSIDAD DE PIURA UNIVERSIDAD DEL PACÍFICO UNIVERSIDAD ESAN UNIVERSIDAD NACIONAL AGRARIA LA MOLINA UNIVERSIDAD NACIONAL

No sentido de reverter tal situação, a realização deste trabalho elaborado na disciplina de Prática enquanto Componente Curricular V (PeCC V), buscou proporcionar as

As equipes de marketing das campanhas eleitorais tem evoluído para identificar os eleitores indecisos pela análise de algoritmos armazenados em big data ou coletados por

› Carregue na tecla TP , para ligar ou desligar a função do programa de trânsito. ex., na lista de emissoras ou de memória) indica uma emissora com programa de

Em seguida, como resultado do estudo, o texto descreve as informações sobre a gestão de imóveis no governo do estado de Minas Gerais, quando são elencadas as principais

Para abrir a caixa de diálogo Imprimir, selecione ARQUIVO &gt; Imprimir, ou clique com o botão direito do mouse na aba e selecione Imprimir Aba Atual, caso esteja usando navegação

O painel frontal do Thor World foi desenvolvido para proporcionar ao usuário uma fácil compreensão da condição de funcionamento do nobreak, além de possibilitar o monitoramento de