2. ALGORITMOS. Unesp Campus de Guaratinguetá



Documentos relacionados
Algoritmo. Conjunto finito de instruções que permitem a realização de uma tarefa. 2.1: Introdução 2. ALGORITMOS

Aula 02 ALGORITMOS. Introdução à Computação

ALGORITMOS ALGORITMOS ALGORITMOS. Natureza dos passos. Apresentação das Estruturas de Algoritmos - Fluxograma

Desenvolvimento de algoritmos Desenvolvimento de Algoritmos

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro

Introdução aos Algoritmos

Algoritmos e Técnicas de Programação

Revisão Histórico das Linguagens de Programação

Computação I: Representações de Algoritmos

Seguindo Instruções. Linguagens de Programação Algoritmos. Introdução à Ciência da Computação. Prof. Edison Ishikawa

ALGORITMOS AULA 1. Profª Amanda Gondim

Algoritmos e Técnicas de programação. Professora: Luciana Faria

Introdução à Ciência da Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

É neste ponto que entra o conceito de lógica de programação.

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Lógica de Programação

Lógica de Programação

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

Algoritmos e Programação

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Introdução à Programação. slides de Deise Sacol

Prof. A. G. Silva. 14 de março de Prof. A. G. Silva INE5231 Computação Científica I 14 de março de / 26

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Patrícia de Siqueira Ramos. 11 de Março de 2019

Programação de Computadores IV. Introdução a Algoritmos SLIDES CEDIDOS POR Bruno Marques

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Patrícia de Siqueira Ramos. UNIFAL-MG, campus Varginha. 21 de Março de 2018

Algoritmos I Aula 2 Lógica de Programação

Algoritmos. Introdução à Computação para a Engenharia Ambiental. Prof. Jó Ueyama

SCC Capítulo 2 Introdução à Linguagem Algorítmica

Computadores = cérebros eletrônicos?

Desenvolvimento de Algoritmos. Slides elaborados pela Prof(a). Simone do Rocio Senger de Souza ICMC/USP

Introdução aos Algoritmos

Algoritmos e Fluxogramas

LINGUAGEM C: COMANDOS DE REPETIÇÃO

INTRODUÇÃO A PROGRAMAÇÃO

Introdução ao Conceito de Algoritmo e Programação Estruturada

Algoritmos e Programação

Algoritmos e Programação

Algoritmos e Programação de Computadores Disciplina:

Programação de Computadores:

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

Algoritmos I Aula 3 Resolução de Problemas (Fluxogramas)

Aula Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof.

01/08/2011. Introdução Lógica Sequencia lógica Instruções Algoritmos Programas. Lógica. Lógica na programação. Instrução.

Programação de Computadores III

ALGORITMOS. O que é Algoritmo? Algoritmo é um dos processo para criação

Introdução à Programação. slides de Deise Sacol

Lógica de Programação Lógica, Conceitos; Fluxo de Controle

ALGORITMO: FASE 1 PARTE 1

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

GFM015 Introdução à Computação. Algoritmos. Ilmério Reis da Silva UFU/FACOM

#Conceituação. Algoritmos. Eliezio Soares

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Aula 2 - Introdução Cleverton Hentz

Introdução à Lógica de Programação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO PARTE I. Prof. Dr. Daniel Caetano

Pseudocódigo e Visualg

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

Aula 1 - Introdução Cleverton Hentz

Aula 7: Estrutura de Decisão

Introdução à Programação

A única diferença entre o difícil e o impossível é que o último demora um pouco mais de tempo para ser alcançado..

Algoritmos Computacionais

ALGORITMOS CONCEITOS PRELIMINARES. Prof. Angelo Augusto Frozza, M.Sc.

Introdução a Computação

Introdução à Ciência da Computação ICC0001 Prof. Diego Buchinger

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Programação de Computadores III

Introdução à Programação de Computadores Parte II

CONCEITO DE ALGORITMO

Aula 02. Algoritmos e Pseudocódigo

Algoritmos e Programação

Aula 08 Introdução à Algoritmos. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Introdução à Programação. Ceça Moraes

Fundamentos de Lógica e Algoritmos Aula 2.5 Conceitos Básicos de Algoritmos. Prof. Dr. Bruno Moreno

Universidade Federal de Uberlândia Faculdade de Computação. Conceitos básicos de algoritmos Prof. Renato Pimentel. Computação

CONCEITO DE COMPUTADOR. O que é um computador?

Algoritmos e Programação. Ederson Luiz da Silva Ciência da Computação

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

Unidade 1 Conceitos básicos

Linguagem de Descrição de algoritmos

Algoritmo. pegar uma escada; posicionar embaixo da lâmpada; buscar uma lâmpada nova; ligar o interruptor; se a lâmpada não acender, então:

Introdução à Programação. João Manuel R. S. Tavares

Introdução a Algoritmos - Revisão

Programação Estruturada Aula VisualG

Introdução à Programação

A resposta apresentada em aula, no quadro, (em Chapin e/ou Português Estruturado) está correta?

Projeto e Desenvolvimento de Algoritmos

Introdução aos Algoritmos

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

Lógica de Programação

Sumário. Ciência da Computação. Prof. Dr. Leandro Alves Neves. Aula 06. Algoritmos e Programação. Informática II. q Noções de lógica

Engenharia de resolução de problemas

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

Conceitos e Representação de Algoritmos

Transcrição:

2. ALGORITMOS Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

Problemas: Unesp-Campus de Guaratinguetá 2 - Algoritmo Como fazer um depósito em um banco? Mas, por onde começar? Como fritar um ovo? Solução = Algoritmo! Algoritmos 2

2 - Algoritmo 2.1: Introdução Antes de se utilizar uma linguagem de computador, é necessário organizar as ações (instruções) a serem tomadas pela máquina de forma organizada e lógica, sem se preocupar com as regras rígidas da sintaxe de uma linguagem. Para isto utiliza-se uma forma de escrever tais ações, conhecida como algoritmo, ou pseudo-código. Algoritmos 3

2 - Algoritmo 2.2 - Definição Um algoritmo é uma seqüência ordenada e finita de etapas, cuja execução passo a passo resolve um determinado problema. Pessoas tem inteligência e habilidade racional fazem perguntas para se esclarecer. Computador não tem senso próprio deve receber instruções explícitas (algoritmos) Algoritmos 4

2- Algoritmos Um algoritmo correto deve possuir 3 qualidades: 1- Deve ser preciso: com indicação clara da ordem bem como da forma de realização de cada passo. Cada passo do algoritmo deve ser uma instrução que possa ser realizada. 2- Deve estar bem definido: se seguido duas vezes, deve produzir sempre o mesmo resultado. A ordem dos passos deve ser precisamente determinada. 3- Deve ser finito: ao ser seguido, deve terminar num dado instante de tempo (tem que ter um fim). Algoritmos 5

2- Algoritmos Um algoritmo correto tem 3 partes: 1- Entrada de dados; 2- Processamento; 3- Saída de resultados. Algoritmos 6

2- Algoritmos Voltando ao problema do depósito... SOLUÇÃO: 1) Ao chegar na agência, pegue um envelope próprio para depósito em dinheiro. 2) Escreva o número da agência, da conta e o valor do depósito. 3) Coloque o dinheiro dentro do envelope e feche o mesmo. 4) Dirija-se a um caixa eletrônico, procure a tecla para "depósito sem cartão". 5) Siga as instruções da tela do caixa, inserindo os números de acordo com as solicitações. 6) Verifique se os dados estão corretos. 7) Após confirmar os dados, coloque o envelope no local indicado. 8) Aguarde a impressão do recibo. Algoritmos 7

2- Algoritmos E como fica fritar um ovo? SOLUÇÃO: 1) Pegue uma frigideira e coloque sobre o fogão; 2) Pegue o óleo ou manteiga e coloque na frigideira; 3) Ligue a chama do fogão abaixo da frigideira. 4) Pegue um ovo e quebre sobre a frigideira, sem deixar cair a casca. 5) Espere o ovo fritar, retire com a escumadeira em um prato. 6) Desligue a chama do fogão abaixo da frigideira. INGREDIENTES Algoritmos 8

2- Algoritmos Escapando de um labirinto Instruções Possíveis Problema Robô E S Problema Encontrar uma seqüência de instruções acerca dos movimentos do Robô tal que o mesmo seja capaz de entrar e sair do labirinto. Algoritmos 9 F I

2 - Algoritmos Algoritmo Conjunto finito de instruções que permitem a realização de uma tarefa. Solução/Algoritmo do Labirinto I F Leitor I E Instruções Possíveis F S Algoritmos 10 F I

2 - Algoritmo 2.4 - Pseudo código 1 : Método usual de representação de algoritmos. Outros são: fluxograma, fórmulas, etc.. Características dos Algoritmos em Pseudocódigo: Utiliza certas palavras-chave, que indicam a natureza da operação a ser realizada; Utiliza tabulação 2 no começo de cada passo, para ressaltar a estrutura do algoritmo 1- Português Estruturado ou Portugol 2- Indentação Algoritmos 11

2.4 - Pseudo código Os algoritmos terão a seguinte estrutura: ALGORITMO <Nome do algoritmo> <definições> INÍCIO <Comandos> FIM Algoritmos 12

2 - Algoritmo 2.3 - Fluxo de Execução Para o algoritmo ser funcional, deve existir uma relação lógica na execução das ações. Essa relação lógica determina a ordem em que os passos do algoritmo é executado Essa ordem é chamada de Fluxo de Execução. Todo algoritmo possui um Fluxo de Execução e; Estruturas de Controle do Fluxo de Execução Algoritmos 13

2.3 - Fluxo de Execução As Estruturas de controle do Fluxo de Execução do algoritmo podem ser de três tipos: I. Estrutura elementar ou seqüencial; Nesta estrutura, o conjunto de ações elementares é executado de modo linear; de cima para baixo e da esquerda para a direita. Na linguagem C as ações (instruções) são seguidas por ponto-e vírgula (;), com o objetivo do computador diferenciar entre uma ação e outra. Algoritmos 14

2.3 - Fluxo de Execução II. Estrutura de seleção (decisão) ou condicional; Permitem escolher um conjunto de ações (bloco) a serem realizadas. A escolha depende de uma condição ser ou não satisfeita. A condição é representada por expressões lógicas ou relacionais. Essas estruturas podem ser de: Seleção simples. Seleção composta. Seleção encadeada. Algoritmos 15

2.3 - Fluxo de Execução III. Estrutura de repetição. São estruturas de controle de fluxo que permitem repetir uma seqüência de comandos. Os trechos repetidos são chamados de: LAÇOS DE REPETIÇÃO. Algoritmos 16

2.4 - Pseudo código Exemplo de algoritmo Algoritmo: Soma_dois_números Início Fim <Nome do algoritmo> Pegar primeiro número Pegar segundo número Somar o primeiro com o <Comandos> segundo número Mostrar o resultado Algoritmos 17

2.4 - Pseudo código 2.4.1 Apresentação das Estruturas de Algoritmos EX1: ALGORITMO PARA TROCAR PNEU DE UM CARRO Início Trocar Pneu Fim E se o estepe estiver vazio? Isto traz a necessidade de uma decisão entre dois cursos Algoritmos 18

2.4 - Pseudo código ESTRUTURA CONDICIONAL Início se <o estepe está vazio> então Chamar borracheiro senão Trocar o pneu fim se Fim Seleção simples A atividade de Trocar o pneu pode ser mais detalhada Algoritmos 19

2.4 - Pseudo código ESTRUTURA SEQUENCIAL Início se <o estepe está vazio> então Chamar borracheiro senão desparafusar a roda levantar o carro remover a roda colocar o estepe abaixar o carro parafusar a roda fim se Seleção composta Fim Indentação Repare na Algoritmos 20

ESTRUTURA SEQUENCIAL Início se <o estepe está vazio> então Chamar borracheiro senão desparafusar a roda ser levantar maiso detalhada carro remover a roda colocar o estepe abaixar o carro fim se Fim 2.4 - Pseudo código A atividade de desparafusar a roda pode A atividade de parafusar a roda pode ser mais parafusar detalhada a roda Algoritmos 21

2.4 - Pseudo código ESTRUTURA SEQUENCIAL Início se <o estepe está vazio> então chamar borracheiro senão desparafusar o 1 o parafuso desparafusar o 2 o parafuso desparafusar o 3 o parafuso desparafusar o 4 o parafuso levantar o carro remover a roda colocar o estepe abaixar o carro parafusar o 1 o parafuso parafusar o 2 o parafuso parafusar o 3 o parafuso parafusar o 4 o parafuso fim se Fim Esta repetição é inconveniente Esta repetição é inconveniente Algoritmos 22

2.4 - Pseudo código ESTRUTURA DE REPETIÇÃO Início se <o estepe está vazio> então chamar borracheiro senão enquanto houver parafuso para desapertar faça desparafusar a roda fim enquanto levantar o carro remover a roda colocar o estepe abaixar o carro enquanto houver parafuso para apertar faça parafusar a roda fim do enquanto fim se Algoritmos Fim 23

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início pegue a lâmpada nova remova a lâmpada queimada coloque a lâmpada nova Fim Algoritmos 24

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início pegue a lâmpada nova remova a lâmpada queimada coloque a lâmpada nova Fim E se não tiver lâmpada nova? Algoritmos 25

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada nova da mesma potência> então pegue a lâmpada nova remova a lâmpada queimada coloque a lâmpada nova senão <anotar na agenda para comprar lâmpada> fim se Fim 26 Algoritmos 26

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada nova da mesma potência> então pegue a lâmpada nova remova a lâmpada queimada coloque a lâmpada nova senão queimada? <anotar na agenda para comprar lâmpada> fim se Fim O que é necessário para remover a lâmpada 27 Algoritmos 27

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte Algoritmos 28

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada nova da mesma potência> então pegue a lâmpada nova remova a lâmpada queimada coloque a lâmpada nova senão <anotar na agenda para comprar lâmpada> fim se Fim 29 Algoritmos 29

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada nova da mesma potência> então pegue a lâmpada nova O remova que é necessário a lâmpada queimada para colocar a lâmpada nova? coloque a lâmpada nova senão <anotar na agenda para comprar lâmpada> fim se Fim 30 Algoritmos 30

2.4 - Pseudo código EX 2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Algoritmos 31

Início se <tiver lâmpada da mesma potência> então pegue a lâmpada posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte remova a lâmpada queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão <anotar na agenda para comprar lâmpada> fim se Fim 2.4 - Pseudo código EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Algoritmos 32 32

EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada da mesma potência> então pegue a lâmpada posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte remova a lâmpada queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão <anotar na agenda para comprar lâmpada> fim se Fim 2.4 - Pseudo código Diversos passos deste algoritmo implicam em operações mais elaboradas que devem ser expressas explicitamente Algoritmos 33 33

Início se <tiver lâmpada da mesma potência> então pegue a lâmpada posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte remova a lâmpada queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão <anotar na agenda para comprar lâmpada> fim se Fim 2.4 - Pseudo código EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim enquanto Algoritmos 34 34

Início se <tiver lâmpada da mesma potência> então pegue a lâmpada posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte remova a lâmpada queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão <anotar na agenda para comprar lâmpada> fim se Fim 2.4 - Pseudo código EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim enquanto Algoritmos 35 35

Início se <tiver lâmpada da mesma potência> então pegue a lâmpada posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até que se solte remova a lâmpada queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão <anotar na agenda para comprar lâmpada> fim se Fim 2.4 - Pseudo código EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO enquanto <a lâmpada não prender> faça gire a lâmpada no sentido horário fim enquanto Algoritmos 36 36

2.4 - Pseudo código EX2. ALGORITMO PARA TROCAR UMA LÂMPADA NO TETO Início se <tiver lâmpada da mesma potência> então selecione a lâmpada posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim enquanto remova a lâmpada queimada posicione a nova lâmpada no soquete enquanto <a lâmpada não prender> faça gire a lâmpada no sentido horário fim enquanto desça da escada senão <anotar na agenda para comprar lâmpada> fim se Fim Algoritmos 37 37

2 - Algoritmo 2.5 - Desenvolvimento do Algoritmo Começamos com uma afirmação genérica da solução do problema e prosseguimos até o algoritmo final, aumentando sistematicamente o nível de detalhamento. Como saber se já temos um nível suficiente de detalhes no algoritmo? Algoritmos 38

2.5 - Desenvolvimento do Algoritmo Isso depende do agente que irá executar o algoritmo Os computadores têm um conjunto muito limitado de instruções e o algoritmo deve ser expresso nos termos dessas instruções. Algoritmos 39

2.5.1 Metodologia de Desenvolvimento de Algoritmos Como o cliente explicou Como o chefe do projeto entendeu Como o desenhista desenhou Como o programador fez Como o vendedor o 40 descreveu Algoritmos 40

2.5.1 Metodologia de Desenvolvimento de Algoritmos Como o projeto foi documentado Como as operações foram feitas Pelo o que o cliente pagou Algoritmos 41 Como foi dado suporte O que o cliente realmente precisava 41

2.5 - Desenvolvimento do Algoritmo 2.5.1 Metodologia de Desenvolvimento de Algoritmos Passo 1:ler cuidadosamente a especificação do problema até o final. Passo 2: se depois de ler várias vezes, ainda não entender o problema, pergunte ao professor até entender. Passo 3: levantar e analisar todas as saídas exigidas na especificação do problema. Passo 4: levantar e analisar todas as entradas citadas na especificação do problema. Algoritmos 42

2.5 - Desenvolvimento do Algoritmo Passo 5: verificar se é necessário gerar valores internamente ao algoritmo e levantar as variáveis necessárias e os valores iniciais de cada uma. Passo 6: levantar e analisar todas as transformações necessárias para, dadas as entradas e valores gerados internamente, produzir as saídas especificadas. Algoritmos 43

2.5 - Desenvolvimento do Algoritmo Passo 7: testar cada passo do algoritmo, verificando se as transformações intermediárias executadas estão conduzindo aos objetivos desejados. Utilizar, sempre que possível, valores de teste que permitam prever os resultados. Passo 8: fazer uma reavaliação geral, elaborando o algoritmo através da integração das partes. Algoritmos 44

2.6 - Algoritmos Numéricos Agora, vamos considerar problemas envolvendo cálculos numéricos EX 1: Dados vários cartões numerados escolha o que tem maior número. Algoritmo: maior_numero Início pegue um cartão e guarde. repita pegue um cartão se o número deste for > que o do cartão guardado então guarde este cartão e descarte o anterior senão descarte esse e conserve o anterior até que se acabem os cartões mostre o cartão guardado Fim Algoritmos 45 45

2.6 Algoritmos Numéricos Ex2: Verificar se um número N1 é divisível por N2 Algoritmo: divisivel Início {algoritmo} pegue os números N1 e N2 se N1 < N2 então escreva não é divisível senão divida N1 por N2 e pegue a parte inteira da divisão {INT (N1/N2)} faça Resto N1 ( N2*INT(N1/N2)) se Resto 0 então escreva não é divisível senão escreva é divisível fim se Algoritmos 46 Fim {algoritmo}

2. ALGORITMOS FIM Aula 2 Referências dos slides Curso de Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Algoritmos 47 Prof. Décio Mourão Prof. Galeno Sena