ALGORITMO E ESTRUTURA DE DADOS

Slides:



Advertisements
Apresentações semelhantes
Programação II Licenciatura de Ciências da Computação Padoca Calado
Advertisements

Algoritmo e Programação
Pseudo-código: sintaxe
Introdução a Algoritmos
Algoritmo I Aula 05 Pseudo-Linguagem.
Marco Antonio Montebello Júnior
INTRODUÇÃO – LOGICA E ALGORITMOS
Paradigmas de Linguagens Conceitos Básicos
Introdução a Algoritmos Seqüenciais
UML Material retirado da apostila do Professor Cesar Augusto Tacla
Lógica de Programação Módulo II
Aplicações de Pilhas Pilhas são fundamentais em diversas áreas da computação: Sistemas Operacionais Arquitetura de Computadores Compiladores Entre outros.
INTRODUÇÃO À PROGRAMAÇÃO
THOBER CORADI DETOFENO, MSC. Aula 06
Estruturas de Controle
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados e Complexidade de Algoritmos
Programação e Sistemas de Informação
Programação Básica de Computadores 1
Algoritmos Prof. Kelly E. Medeiros.
PRC Bruno Correa.
Professor Fernando Luís
Processamento da Informação BC-05045
ENGENHARIA AMBIENTAL COMPUTAÇÃO APLICADA Aula 7
Lógica de Programação Introdução.
Introdução à Programação
Fluxogramas e Pseudo-código
INTRODUÇÃO – LOGICA E ALGORITMOS
Representação de Algoritmos
Estrutura de dados, pseudocódigo
ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL
Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.
A automatização de tarefas é um aspecto marcante da sociedade moderna. O aperfeiçoamento tecnológico alcançado, com respeito a isto, teve como elementos.
Algoritmos e Estruturas de Dados I - Introdução
Algoritmos 1º Semestre Materia: Informática Profº: Cristiano.
TÉCNICAS DE PROGRAMAÇÃO
Fluxograma de Comunicação
1 A COMPUTAÇÃO MODERNA Valdemar W. Setzer Depto. de Ciência da Computação da USP
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Introdução a Algoritmos
Igor Steinmacher, MSc. O maravilhoso mundo da Lógica de Programação.
Algoritmos e Estruturas de Dados I - Introdução
Programação de PIC em C Exposição das funções básicas para
Algoritmos e Estrutura de Dados I
ENGENHARIA DE CONTROLE E AUTOMAÇÃO COMPUTAÇÃO PARA ENGENHARIA Aula /02/2013 Professor Leomir J. Borba- –
Algoritmo e Programação
Algoritmos e Estruturas de Dados I - Introdução
Linguagens de Programação
Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos Aquiles Burlamaqui UERN
Algoritmos e Programação MC102
Etapas : Algoritmo é uma sequência lógica de instruções que podem ser executadas. É importante destacar que qualquer tarefa que siga um certo padrão.
Linguagens de Programação
Algoritmos e Programação I
ALGORITMOS.
SISTEMAS DE INFORMAÇÃO
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Algoritmo É uma descrição seqüencial ordenada dos passos que devem ser executados de forma lógica e clara, com a finalidade de facilitar a resolução de.
Curso Engenharia Química Modalidade Superior Instituto Federal do Sul de Minas, câmpus Pouso Alegre Professora Michelle Nery Programação de Computadores.
Algoritmos e Estruturas de Dados I - Introdução
Disciplina: Lógica de Programação
Projeto e Desenvolvimento de Algoritmos
O que é Fluxograma? Conceito e definição da palavra
UNICAMP – FEM Mestrado Profissional em Gestão da Qualidade Total MP 255 Sistemas de Informação e Sistemas da Qualidade ELABORAÇÃO DE FLUXOGRAMAS.
Algoritmos e Estruturas de Dados I - Introdução Profa. Mercedes Gonzales Márquez.
DESENVOLVIMENTO Prof: Marcelo West Disciplina: Lógica de Programação.
Lógica de Programação Aula 04 Prof. Marcelo Marcony.
Lógica de programação Introdução à lógica de programação
Algoritmos e Lógica de Programação
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Transcrição da apresentação:

ALGORITMO E ESTRUTURA DE DADOS O que são algoritmos?

Índice Objetivos Introdução Representação de Algoritmos Linguagem Natural Fluxogramas Pseudo-Linguagem Técnicas de Projeto de Algoritmos

Objetivos Apresentar o que são algoritmos. Formas de representação. Técnicas de criação e desenvolvimento de algoritmos.

Receita Um algoritmo é um conjunto finito de regras que fornece uma seqüência precisa de operações para resolver um problema específico. Por exemplo, uma receita é um algoritmo para resolver o problema de fazer um bolo. Claro que a receita deve ser precisa, por exemplo, colocar sal a gosto não vale!

Exemplos Todos nós sabemos criar e seguir algoritmos Como ir de casa até o trabalho? Como fazer um bife à milaneza? Como trocar o pneu do carro?

Origem Segundo Donald Knuth, um papa na criação e estudo de algoritmos, a palavra tem origem no nome de um matemático persa, que viveu no século IX, cujo nome era Abu Ja’far Maomé ibn Mûsâ al-Khowârizm ou Pai de Já’far, Maomé, filho de Moisés da cidade de Khowârizm

Características Finitude – algoritmos devem terminar após um número finito de passos; Definição - cada passo deve ser precisamente definido; Entradas - devem ter zero ou mais entradas; Saídas - devem ter uma ou mais saídas; Efetividade - todas as operações devem ser simples de modo que possam ser executadas em um tempo limitado.

Dificuldades Difícil para iniciantes saber o que o computador pode ou não fazer Criação de algoritmos é um processo não automático e tem muito de arte. Pode haver mais de uma solução para um problema.

Exemplo Dispõe-se de 2 vasilhas com capacidades marcadas de 9 e 4 litros respectivamente. Mostre a seqüência de passos necessários para colocar numa terceira vasilha de medida desconhecida um volume de 6 litros.

Outro exemplo Como fazer para que as três rãs que estão em quatro casas nas seguintes posições, terminem assim? Rã 1 Rã 2 Rã 3 Rã 3 Rã 2 Rã 1

Regras para as rãs Somente pular para a casa da frente ou de trás se ela estiver vazia. Pular a rã vizinha se for parar em uma casa vazia. Este algoritmo serve para ordenar dados, e é muito utilizado em computação.

Rãs se movendo 1 Rã 1 Rã 2 Rã 3

Rãs se movendo 2 Rã 1 Rã 2 Rã 3 Rã 1 Rã 3 Rã 2

Rãs se movendo 3 Rã 1 Rã 3 Rã 2 Rã 3 Rã 1 Rã 2 Rã 3 Rã 1 Rã 2

Rãs se movendo 4 Rã 3 Rã 2 Rã 1

Rãs se movendo 5 Rã 3 Rã 2 Rã 1 Rã 3 Rã 2 Rã 1 Rã 3 Rã 2 Rã 1

Representação de algoritmos Linguagem natural: algoritmos expressos diretamente em linguagem natural, como nas receitas Fluxogramas: representação gráfica Pseudo-linguagem: emprega linguagem intermediária entre linguagem natural e linguagem de programação

Linguagem Natural Repetir 10 vezes cada um dos quatro exercícios abaixo: Levantar e abaixar o braço direito; Levantar e abaixar o braço esquerdo; Levantar e abaixar a perna direita; Levantar e abaixar a perna esquerda.

Fluxogramas Representação de algoritmos por meio de símbolos geométricos. Cada tipo de operação é representado por um símbolo diferente. Tem a vantagem de permitir o acompanhamento visual do fluxo do algoritmo

Fluxogramas – alguns símbolos Início e fim de algoritmo Atribuições e cálculos de valores Decisões Entrada de dados Discos

Fluxogramas – alguns símbolos Impressão de resultados Conector na página Conector fora da página Entrada manual Ligação entre símbolos

Um dia de sol! Início Acordar Tomar Café Sol? 1 2 Não Sim 1 Ir à praia Ler jornal Ir ao cinema Jantar Fim

Pseudo-linguagem Este método procura misturar as facilidades da linguagem natural com a precisão das linguagens de programação A representação da solução em pseudo código possibilita ao programador a abstração dos detalhes da sintaxe da linguagem escolhida.

Pseudo-linguagem Este método será o mais empregado ao longo do nosso curso. Não existe um padrão para esta forma de descrição. Nossa pseudo-linguagem será definida ao longo do curso.

Exemplo de pseudo-linguagem Calcular a área de uma mesa retangular Início leia comprimento leia largura área <- comprimento * largura imprima 'Área igual a', área Fim Observe as palavras em negrito, são as palavras chaves da linguagem.

Exemplo de pseudo-linguagem Calcular o preço de uma passagem de ônibus Início leia idade leia preço se idade < 65 então imprima 'Preço é ', preço senão imprima 'Grátis' fim se Fim

Técnicas de Construção Considere a receita a seguir. Filé de peixe com molho branco {preparo dos peixes} Lave os filés e tempere com o suco de limões, sal, … {preparo do molho branco} Coloque em uma panela a manteiga, a farinha e o leite … {juntando os dois} Adicione queijo parmesão ralado e queijo gruyère. Misture e ponha sobre os filés. Fim da receita de filé de peixe com …

Técnicas de Construção Observe na receita anterior a técnica de divisão do problema em partes menores (preparo dos peixes, molho e o final) Permite que o prato seja preparado por mais de uma pessoa e simplifica a execução

Reaproveitamento Considere a receita de alface com molho branco {preparo do alface} Derreta a manteiga. Junte alface cortada. … {preparo do molho branco} Coloque em uma panela a manteiga, a farinha e o leite … {juntando os dois} Junte suco de limão ao alface e ao molho branco … Fim da receita de alface com …

Reaproveitamento Nesta receita também temos uma parte descrevendo como preparar o molho branco. Se o livro de receitas tiver vários pratos com molho branco há desperdício de papel.

Reaproveitamento cont. Considere agora que a página 25 do livro ensine como preparar o molho branco. As duas receitas poderiam indicar que para preparar o molho branco o mestre cuca deve ler a página 25. O livro fica menor. Se amanhã descobrir que colocar um dente de alho melhora o sabor, somente preciso alterar a página 25 e todas as receitas ficam mais saborosas automaticamente

Reaproveitamento cont. Uma solução mais radical para reaproveitar algoritmos é usar o que outros criaram. Assuma que você descobriu que no supermercado há um enlatado de molho branco ótimo, melhor que o seu (heresia, vale somente como exemplo!). Neste caso a sua receita indicaria apenas: “Compre molho branco da marca tal no supermercado” (heresia novamente!)