Fundamentos de Lógica e Algoritmos. Aula 2.3 Introdução a Algoritmos. Prof. Dr. Bruno Moreno

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

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

Conceitos e Representação de Algoritmos

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

Disciplina de Algoritmos e Programação

Programação Básica de Computadores

Algoritmos e Programação de Computadores Disciplina:

Aula 2 - Introdução Cleverton Hentz

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

ALGORITMOS AULA 1. Profª Amanda Gondim

Aula 02. Algoritmos e Pseudocódigo

Pseudocódigo e Visualg

Introdução à Programação. Prof. Gustavo Callou

Introdução à Programação

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Algoritmos e Linguagem de Programação I

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

Algoritmos. Prof. Jonatas Bastos Site:

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

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

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

Capítulo 1 - Lógica e Algoritmos

Algoritmos e Técnicas de Programação

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

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

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

Funcionamento do computador. Conceito e definição de algoritmos. Prof. Alex Camargo

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

Aula 1 - Introdução Cleverton Hentz

Algoritmos e Programação

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

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

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

Ivanovitch Medeiros Dantas da Silva. Natal, 01 de setembro de 2011

Algoritmos e Programação

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

Aula 4B. Lógica e Algoritmos. Profª. Fabiany

Computadores = cérebros eletrônicos?

Algoritmos e Fluxogramas

Programação em C. Victor Amorim dos Santos

Programação em C. Victor Amorim dos Santos

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

Algoritmos e Programação

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Técnicas de Programação

ALP Algoritmos e Programação

INTRODUÇÃO À PROGRAMAÇÃO

Programação em C. Victor Amorim dos Santos

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

Introdução à Computação

INF 1005 Programação I

Introdução a algoritmos. Prof.: Jesus

LO GICA E TE CNICA DE PROGRAMAC ÃO. TÁSSIO JOSÉ GONÇALVES GOMES

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

Desenvolvimento de Algoritmos. RAD 2119 Tecnologia de Informação Aplicada a Administração. Essa aula. Lógica e Pensamento Lógico. Lógica.

Conceitos Básicos. Professor: Juliano Lucas Gonçalves.

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

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. ANÁLISE E DESENVOLVIMENTO DE SISTEMAS/PARANGABA PROF. MS. RONNISON REGES VIDAL Ceará, 01 de fevereiro de 2017

Unidade 1 Conceitos básicos

Lógica de 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..

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

Introdução a Programação de Jogos

Aula 3: Algoritmos: Formalização e Construção

Ciência da Computação. Prof. Dr. Leandro Alves Neves Prof. Dr. Adriano Cansian

INTRODUÇÃO À PROGRAMAÇÃO. Introdução à Algoritmos. Prof. Me. Sérgio Carlos Portari Júnior

Programação de Computadores III

Capítulo 1 Conceitos Básicos

I - CONCEITOS INICIAIS

Lógica de Programação I

Programação de Computadores

OFICINA DA PESQUISA. Prof. Msc. Carlos José Giudice dos Santos

Capítulo 2 Introdução à Programação

4 Introdução ao Algoritmo

Estruturas de Seleção Seleção Simples e Composta (parte 1)

INTRODUÇÃO A ALGORITMOS

Algoritmos e Programação

Introdução a Programação

Introdução à Programação

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

ET51D - INFORMÁTICA. Algoritmos - Introdução. Prof: Glauber G. O. Brante e Mariana Furucho.

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

Introdução à Programação de Computadores Fabricação Mecânica

Algoritmos e Programação

Processamento de Dados aplicado à Geociências. AULA 3: Algoritmos computacionais Representação de Algoritmos Sintaxe Tipos de dados Expressões

Algoritmos. Prof. Jonatas Bastos Site:

Fábio Rodrigues / Israel Lucania

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

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

Aula 1 Introdução e Lógica. Bruno Orlandi

LINGUAGEM E TECNICAS DE PROGRAMAÇÃO

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

Unidade 2: Algoritmos e programação

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

Introdução à Algoritmos INF 1005 e INF Programação I

INTRODUÇÃO A LÓGICA DE PROGRAMAÇÃO

Curso Superior de Análise e Desenvolvimento de Sistemas. Disciplina: : Algoritmo 2009 / 1

Lógica de Programação

Transcrição:

Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br

Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br

Fundamentos de Lógica e Algoritmos Aula 2.3 Introdução a Algoritmos Prof. Dr. Bruno Moreno bruno.moreno@ifrn.edu.br

Introdução Um algoritmo é um esquema lógico que permite resolver um problema; Pode ser implementado com qualquer sequência de valores ou objetos e de acordo com regras pré-estabelecidas usando um conjunto de códigos Uma linguagem natural: português, inglês, espanhol; Uma notação gráfica: fluxogramas; Uma linguagem de programação: Python, Java, Pascal, C 4

Introdução Exemplo: definir um algoritmo em linguagem natural para o problema acender a luz : Se a luz estiver acesa, o problema já está resolvido. Se a luz não estiver acesa, aperte o botão para ligá-la. Se a lâmpada ligar: o problema resolvido! Senão, veja se a mesma está bem enroscada no bocal. Se a lâmpada estiver perfeitamente enroscada, verifique se a mesma está queimada ou quebrada. Se a lâmpada estiver queimada ou quebrada, compre outra lâmpada. Se a lâmpada não estiver queimada nem quebrada, troque o bocal da lâmpada. Se a lâmpada não estiver bem enroscada no bocal, enrosque-a e aperte o botão para ligá-la. Se a lâmpada ligar, temos o problema resolvido. Se a lâmpada não ligar, troque o bocal da lâmpada. 5

Introdução O algoritmo acender a lâmpada pode ficar mais legível se organizarmos em categorias de comandos : 1. Se a luz estiver acesa, o problema já está resolvido. 2. Se a luz não estiver acesa, aperte o botão para ligá-la. 2.1. Se a lâmpada ligar: o problema resolvido! 2.2. Senão, veja se a mesma está bem enroscada no bocal. 2.3. Se a lâmpada estiver perfeitamente enroscada, verifique se a mesma está queimada ou quebrada. 2.3.1. Se a lâmpada estiver queimada ou quebrada, compre outra lâmpada. 2.3.2. Se a lâmpada não estiver queimada nem quebrada, troque o bocal da lâmpada. 2.4. Se a lâmpada não estiver bem enroscada no bocal, enrosque-a e aperte o botão para ligá-la. 2.4.1. Se a lâmpada ligar, temos o problema resolvido. 2.4.2. Se a lâmpada não ligar, troque o bocal da lâmpada. 6

Introdução O algoritmo acender a lâmpada pode, ainda, ser representado utilizando uma notação gráfica Notação comumente utilizada para isso: fluxogramas; Nessa notação, losangos representam pontos de decisão e retângulos representam estados DECISÃO INSTRUÇÃO / PROCESSAMENTO / ESTADO INÍCIO (PONTO DE PARTIDA) FIM (PONTO DE PARADA) 7

Introdução Fluxograma do algoritmo acender a lâmpada : Enrosque a lâmpada Obtém estado da lâmpada Lâmpada está acesa? NÃO NÃO SIM Troque o bocal Lâmpada bem enroscada? SIM NÃO Lâmpada danificada? SIM Troque a lâmpada 8

Introdução Fluxograma do algoritmo acender a lâmpada : Esse é o único fluxograma correto? NÃO Enrosque a lâmpada RegraObtém básica estado de algoritmos: Lâmpada da lâmpada está acesa? NÃO Lâmpada bem enroscada? Diversos algoritmos podem resolver o mesmo problema; Um algoritmo pode resolver o problema melhor SIM do que SIM outro Resolução melhor: mais rápida, utilizanão menos recursos, Lâmpada Troque o bocal menos informações; danificada? Pessoas diferentes podem implementar algoritmos SIM diferentes; Troque a lâmpada 9

Introdução Utilizamos algoritmos em diversas situações de nossas vidas... 10

Introdução Utilizamos algoritmos em diversas situações de nossas vidas... 11

Introdução Utilizamos algoritmos em diversas situações de nossas vidas... 12

Introdução Um programa de computador é desenvolvido por meio de algoritmos; Para desenvolver um algoritmo que será implementado em um computador precisamos, antes, pensá-lo em nossa própria língua Precisamos montar um esquema mental da lógica que o algoritmo implementará; O esquema mental construído evitará ou diminuirá erros; 13

Introdução Construir uma boa lógica (um bom esquema mental) envolve rabisco de ideias 14

Introdução Para implementar um algoritmo, utiliza-se uma linguagem de programação; Linguagem humana: Se expressão for verdade, acontece isto, senão, aquilo Python if expressao: declarações aqui else: declarações aqui Java if(expressao){ declarações aqui; }else{ declarações aqui; } 15

Níveis de Linguagens Python, Java, C são linguagens consideradas de alto nível É mais fácil programar utilizando-as do que utilizando zeros e uns; Seria muito trabalhoso lidar com dados de computador bit-a-bit (linguagem de máquina); Linguagem binária que representam operações e operandos usados no processamento do programa. 16

Níveis de Linguagens Para um ser humano, a linguagem de máquina é muito difícil de se compreender; Assim, surgiu a linguagem de montagem (assembly) Representada por comandos que reproduz as tarefas que a serem executadas pelo computador; 17

Níveis de Linguagens Com a linguagem de montagem o nível de abstração era maior É mais alto nível: mais próxima da compreensão do programador; Menor complexidade do que linguagem de máquina; O conceito de linguagens de programação surgiu, exatamente, com o objetivo de criar linguagens mais alto nível. 18

Níveis de Linguagens Existem, portanto, linguagens de baixo nível e de alto nível; Linguagens de Baixo Nível: Tratam a informação na linguagem de máquina; Linguagens de Alto Nível: São linguagens mais próximas do entendimento de um ser humano; Precisam ser convertidas para linguagem de máquina. 19

Linguagens de Programação Assim como as linguagens naturais, linguagens de programação possuem sintaxe própria (regras); A sintaxe de cada linguagem deve ser respeitada e aprendida pelo programador que deseja utilizar a linguagem em seus programas; No entanto, não é necessário que o programador aprenda todas as diversas linguagens disponíveis no mercado; Cada linguagem é recomendada para determinadas aplicações; Com o aprendizado de lógica, o aluno entenderá os conceitos básicos da programação e poderá com menor ou maior dificuldade, dependendo da linguagem escolhida, aprender a linguagem que quiser. 20

Algoritmos As linguagens de programação tratam os dados de um computador através do uso de algoritmos; Um algoritmo é uma estruturação passo-apasso de como um determinado problema deve ser resolvido de forma não-ambígua; 21

Algoritmos Um algoritmo pode ser visto como a receita do bolo e o bolo como o programa 22

Algoritmos A lógica que aprendemos até aqui, será utilizada explicitamente e implicitamente para estruturar os algoritmos que construiremos. 23

Algoritmos Antes de estruturar o algoritmo de forma lógica, deve-se saber o que se segue: Qual o tipo de problema proposto; Quais informações serão manipuladas; Quais passos serão efetuados para atingir-se um fim específico. 24

Exemplos de Algoritmos Algoritmo sobre tomar banho : 1. Tirar a roupa 2. Abrir o registro 3. Ensaboar-se 4. Enxaguar o corpo 5. Passar shampoo nos cabelos 6. Enxaguar o cabelo 7. Fechar o registro 25

Representação de Algoritmos Formas de representação mais utilizadas Linguagem Natural ou Descrição Narrativa; Fluxograma; Pseudocódigo. 26

Representação de Algoritmos Formas de representação mais utilizadas Linguagem Natural ou Descrição Narrativa; Fluxograma; Pseudocódigo. 27

Linguagem Natural / Descrição Algoritmo Trocar pneu de carro 1. Afrouxar ligeiramente as porcas; 2. Suspender o carro; 3. Retirar as porcas e o pneu; 4. Colocar o pneu reserva; 5. Apertar as porcas; 6. Abaixar o carro; 7. Dar o aperto final nas porcas. 28

Linguagem Natural / Descrição Algoritmo Calcular média de aluno 1. Obter duas notas do aluno; 2. Realizar a soma das duas notas; 3. Dividir o resultado por dois; 4. Exibir a média do aluno. 29

Representação de Algoritmos Formas de representação mais utilizadas Linguagem Natural ou Descrição Narrativa; Fluxograma; Pseudocódigo. 30

Fluxograma Algoritmo Calcular média de aluno Obter as 2 notas Calcular média Exibir Média 31

Fluxograma Algoritmo Avaliar se aluno está aprovado Obter as 2 notas Aluno aprovado Calcular média SIM Média é maior ou igual a 60? NÃO Exibir Média Aluno reprovado 32

Representação de Algoritmos Formas de representação mais utilizadas Linguagem Natural ou Descrição Narrativa; Fluxograma; Pseudocódigo. 33

Pseudocódigo Forma intermediária entre a linguagem natural e a linguagem de programação de alto nível; Utiliza uma linguagem simples, sendo uma forma genérica de se resolver um problema; O mais conhecido PORTUGOL Nós não aprenderemos portugol em sala de aula, mas sim uma linguagem de programação Python! 34

Algoritmo da Amizade Sheldon Cooper https://www.youtube.com/watch?v=mqd-ozki7cu 35

Algoritmo da Amizade Sheldon Cooper 36

Exercícios Exercícios a serem apresentados (no papel) ao professor na próxima sexta (01/09). 1- Crie a sua versão do Algoritmo da Amizade Esse algoritmo deve ser criado no formato de fluxograma; 2- Crie a sua versão do algoritmo para trocar o pneu do carro Crie a em linguagem narrativa e em fluxograma; 3- Crie um algoritmo que ajuda um aluno a pegar um ônibus Crie a em linguagem narrativa e em fluxograma; 37