Algoritmos e Fluxogramas

Documentos relacionados
ALGORITMOS E FLUXOGRAMAS

Programação de Computadores III

Aula 02. Algoritmos e Pseudocódigo

Algoritmos e Linguagem de Programação I

Programação de Computadores III

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

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

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

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

Unidade 2: Algoritmos e programação

ALGORITMOS AULA 1. Profª Amanda Gondim

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

Fluxogramas. Leandro Tonietto ago-09

ESTRUTURAS DE REPETIÇÃO - PARTE 1

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

Aula 02. MC Algoritmos e Programação de Computadores. Algoritmos: Definição e Exemplos.

ESTRUTURAS DE CONTROLE ESTRUTURAS DE REPETIÇÃO

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

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

A palavra ALGORITMO teve origem com um Matemático Persa, al. Khawarizmi. O seu trabalho mais famoso foi Al-jabr walmuquabalah,

2. ALGORITMOS. Unesp Campus de Guaratinguetá

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

Fluxogramas. Vanessa Braganholo

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

Introdução à Programação

Desenvolvimento de programas. Análise do problema. Análise do problema. Análise do problema. Desenvolvimento do algoritmo. Codificação do programa

Lógica. Necessida de se usar lógica. Solucionar problemas Eficiência e eficácia Boa performance de conhecimento

ALGORITMOS COM SELEÇÃO 1 - ESTRUTURA CONDICIONAL (ESTRUTURAS DE CONTROLE)

CAPÍTULO 5 ESTRUTURAS DE REPETIÇÃO

Algoritmos e Programação

INF1005: Programação I. Algoritmos e Pseudocódigo

Amanda Gondim de Oliveira

Conceitos básicos de algoritmos

Programação de Computadores Profa Jacqueline 1

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

Algoritmos e Programação I

Introdução à Programação 2006/07. Algoritmos

CURSO BÁSICO DE PROGRAMAÇÃO AULA 6. Revisão Laços de Repetição

Programação para Ciências Biológicas

Este conceito é bastante simples e será útil e conveniente nos itens seguintes, na definição das estruturas básicas de controle de execução.

Projeto de Algoritmos

Algoritmos e Técnicas de Programação

ALGORITMO. Professor: RODRIGO GOBBI TIPOS DE DADOS E INSTRUÇÕES PRIMITIVAS

Material Didático Proposto

INFORMÁTICA APLICADA AULA 05 ALGORITMOS

Algoritmos e Estruturas de Dados

Algoritmo e Linguagem C++

Meg Silva Gestora de Processos Contato: / Blog: Uberlândia - MG

Noções de Algoritmos

Lógica de Programação: aula 2. Dariel Mazzoni Maranhão. Uninove: Universidade Nove de Julho. 22 de agosto de 2010

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:

Exercícios: Comandos de Repetição

Curso Profissional de Gestão e Programação de Sistemas Informáticos. Programação e Sistemas de Informação. Módulo 1. 2ª Parte Prof. Sandra Pais Soares

Definição. Motivação para criação. Utilização de subrotinas. Características das subrotinas. Utilização de subrotinas ALGORITMOS

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

CAPÍTULO 3 INSTRUÇÕES BÁSICAS

Estrutura e Funcionamento dos Computadores (Conceitos Básicos)

Estrutura de Exclusão Múltipla

1 ESTRUTURA SEQUENCIAL

PROGRAMAÇÃO I. Introdução

Apostila de Portugol

1. [VETOR][SALA] Cálculo da média aritmética de 10 valores armazenados em um vetor.

Programação Básica. Estrutura de um algoritmo

Unidade 5: Introdução à Programação com C/C++

REVISÕES DA SESSÃO ANTERIOR

- Aula 29, 30, 31 e 32 - Técnicas de programação.

Introdução a Computação

algoritmo "exercício 5" var x, y, aux: inteiro inicio escreva ("Entre com um valor inteiro p/ variável x: ") leia (x) escreva ("Entre com um valor

Introdução a Algoritmos - Revisão

Sequencial Estrutura de controlo mais simples. As instruções são executadas sequencialmente.

Estruturas de Decisão. Adaptado de Deise Saccol

INFORMÁTICA APLICADA AULA 05 LINGUAGEM DE PROGRAMAÇÃO C++

Fundamentos de Algoritmos (5175/31)

ESCOLA POLITÉCNICA DA UNIVERSIDADE DE SÃO PAULO DEPARTAMENTO DE ENGENHARIA DE COMPUTAÇÃO E SISTEMAS DIGITAIS PCS LABORATÓRIO DE PROCESSADORES I

Objetivo: Desenvolver algoritmos a partir de problemas

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Estrutura de um Algoritmo, Variáveis, Comandos de Entrada e Saída e Expressões Aritméticas

9. Comando de repetição com variável de controle (para.. de.. até.. faça)

AULA: Introdução à Informática I

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Paradigmas de Programação

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

Estruturas de Controle de Fluxo

Programação II Prof. Marcos Antonio Estremote ESTRUTURAS CONDICIONAIS E DE REPETIÇÃO

Conceitos básicos de programação

Procedimento. Função. Selecção Condicional - a instrução if-then-else. expressão if lógica then instrução else instrução

Prof. Leonardo Augusto Casillo

PROGRAMADOR JAVA. Aula 0X31 Semanas - 0b Instrutor : Léo Billi

FACULDADE PITÁGORAS PRONATEC

Organização e Arquitetura de Computadores I

CAPÍTULO IV. Estruturas Condicionais CAPÍTULO IV ESTRUTURAS CONDICIONAIS ESTRUTURA CONDICIONAL SIMPLES

Linguagem de Programação I. Aula 03 Estruturas de Controle

EXPRESSÕES ARITMÉTICAS PARTE 2

Introdução à Programação de Computadores Parte I. Componentes Básicos do Computador e de um Programa

Disciplina: Arquitetura de Computadores

Lógica de Programação Teoria. rogerioaraujo.wordpress.com - 1

Infra-Estrutura de Hardware

Introdução à Computação

2 Fluxogramas e Pseudocódigo

Fábio Rodrigues / Israel Lucania

Transcrição:

Introdução Algoritmos e Fluxogramas Computadores = cérebros eletrônicos? Computadores são máquinas e, por si sós, não podem ser inteligentes. Alguém as projetou e deu a ela todas as características que possuem. Prof. Paulo H R Gabriel (com base no material do Prof. André Backes) 2 Introdução Introdução Computadores têm facilidade para lidar com um determinado assunto, uma familiaridade com alguma área do conhecimento. Ex: um computador pode realizar um calculo 10 bilhões de vezes mais rápido que nosso cérebro. Por outro lado, nosso cérebro opera em paralelo, isto é, pode resolver vários problemas ao mesmo tempo. 3 4 1

Algoritmos Algoritmo: Bolo de Chocolate Para resolver um problema no computador é necessário que ele seja primeiramente descrito de uma forma clara e precisa. O conceito de algoritmo é frequentemente ilustrado pelo exemplo de uma receita. Aqueça o forno a 180 C Unte uma forma redonda Numa taça Bata 75g de manteiga 250g de açúcar até ficar cremoso Junte 4 ovos, um a um 100g de chocolate derretido Adicione aos poucos 250g de farinha peneirada Deite a massa na forma Leve ao forno durante 40 minutos 5 6 Algoritmos Algoritmos Um algoritmo pode ser definido como uma sequência simples e objetiva de instruções para solucionar um determinado problema A instrução é uma informação que indica a um computador uma ação elementar a executar A sequência de instruções deve ser Finita Não pode ser ambígua Por que NÃO ambíguo? Cada instrução do algoritmo deve ser precisamente definida, sem permitir mais de uma interpretação de seu significado. Os algoritmos devem se basear no uso de um conjunto de instruções bem definido, que constituem um vocabulário de símbolos limitado. 7 8 2

Algoritmos Algoritmos Os algoritmos são capazes de realizar tarefas como: Ler e escrever dados; Avaliar expressões algébricas, relacionais e lógicas; Tomar decisões com base nos resultados das expressões avaliadas; Repetir um conjunto de ações de acordo com uma condição Como seria um algoritmo para as seguintes tarefas Trocar um lâmpada Apontar um lápis Somar N números Média de 2 números 9 10 Algoritmos Algoritmos O algoritmo é a lógica do nosso problema. É a sequência de passos que eu faço na minha cabeça (ou no papel, quando for mais complexo) antes de escrever em uma linguagem de programação. Podem existir vários algoritmos diferentes para resolver o mesmo problema. Exemplo: média de dois números Um algoritmo é um procedimento computacional definido composto de 3 partes Entrada de dados São os dados do algoritmo informados pelo usuário Processamento de dados São os procedimentos utilizados para chegar ao resultado É responsável pela obtenção dos dados de saída com base nos dados de entrada Saída de dados São os dados já processados, apresentados ao usuário = + 2 = 2 + 2 11 12 3

Algoritmos Algoritmos O algoritmo que usamos depende principalmente do tempo que ele demora pra ser executado e a memória que ele gasta no computador. Chamamos a isso de custo. Exemplo: ordenar números Quicksort, Mergesort, Bubblesort, etc Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira simples e objetiva. Algumas dicas: Usar somente um verbo (imperativo) por frase Imaginar que você está desenvolvendo um algoritmo para pessoas que não trabalham com computadores Usar frases curtas e simples Ser objetivo Evitar palavras que tenham sentido dúbio 13 14 Pseudo-código Pseudo-código Até aqui, os algoritmos foram descritos em linguagem natural Outra forma seria o uso de uma pseudo-linguagem ou pseudo-código Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação usada para descrever os algoritmos O pseudocódigo não requer todo a rigidez sintática necessária numa linguagem de programação, permitindo que o aprendiz se detenha na lógica do algoritmos e não no formalismo da sua representação Ex: ler dois número e imprimir o maior deles Leia A; Leia B; Se A > B então Imprima A; Senão Imprima B; Fim Se 15 16 4

Pseudo-código Como seria um pseudo-código para as seguintes tarefas Trocar um lâmpada Apontar um lápis Somar N números Média de 2 números Ao elaborar um algoritmo, devemos ter em mente qual o tipo de processamento será executado. Basicamente, existem 3 tipos de processamento Processamento sequencial Processamento condicional Processamento com repetição Repetição determinada Repetição indeterminada 17 18 Processamento sequencial As instruções são executadas uma após a outra Não existe desvio na sequência das instruções Cada instrução é executada uma única vez Exemplo Imprimir a média aritmética de duas notas Processamento sequencial A ordem das instruções é importante! Imprima media media = (nota1 + nota2)/2 media = (nota1 + nota2)/2 Imprima media 19 media = (nota1 + nota2)/2 Imprima media media = (nota1 + nota2)/2 Imprima Media 20 5

Processamento condicional Um conjunto de instruções (pode ser apenas uma) pode ou não ser executado Depende de uma condição Se a condição testada for verdadeira, o conjunto de instruções é executado Processamento condicional As instruções executadas dependem da situação Exemplo Imprimir a maior dentre duas notas lidas Se nota1 > nota2 Imprima nota1 Senão Imprima nota2 21 Imprima nota1 Imprima nota2 22 Processamento com repetição Um conjunto de instruções (pode ser apenas uma) é executado um número definido ou indefinido de vezes Pode ser determinada por uma condição de parada O conjunto de instruções é executado enquanto a condição for verdadeira O teste da condição é realizado antes de qualquer operação Processamento com repetição Também chamado de laços condicionais Repetem um conjunto de comandos em seu interior Exemplo Imprimir a soma dos números inteiro de 1 a N Soma = 1 + 2 + 3 +... + N Necessidade de se identificar o que deve ser repetido no algoritmo 23 24 6

Processamento com repetição Exemplo 1 Imprimir a soma dos números inteiro de 1 a N Soma = 1 + 2 + 3 +... + N Identificar: valor inicial (nro = 1), valor final (N), onde o resultado será armazenado (soma), quando parar (nro <= N), variável (contador) que controla o número de repetições (nro), etc. Processamento com repetição Exemplo 2 Imprimir a média dos números positivos digitados. Parar quando um valor negativo ou zero por digitado Problema Não sabemos quantos números serão digitados! Não tem como definir valor inicial ou final A repetição é determinada por uma condição de parada (valor negativo ou zero) Leia N soma = 0 nro = 1 Enquanto nro <= N soma = soma + nro nro = nro + 1 Imprima soma 25 26 Teste de mesa Processamento com repetição Exemplo 2 Imprimir a média dos números positivos digitados. Parar quando um valor negativo ou zero por digitado Identificar: onde o resultado será armazenado (soma), quando parar (valor <= 0), variável (contador) que controla o número de repetições (valor), etc. Após desenvolver um algoritmo é preciso testá-lo. Uma maneira de se fazer isso é usando o teste de mesa Basicamente, esse teste consiste em seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não Tentar utilizar um caso onde se conhece o resultado esperado Permite reconstituir o passo a passo do algoritmo soma = 0 N = 0 Leia valor Enquanto valor > 0 soma = soma + valor N = N + 1 Leia valor Imprima soma/n 27 28 7

Teste de mesa Teste de mesa Criar uma tabela de modo que Cada coluna representa uma variável As linhas correspondem as alterações naquela variável (de cima para baixo) Exemplo 1: imprimir a média dos números positivos digitados. Parar quando um valor negativo ou zero por digitado Valores digitados: 4, 2, 3 e -1 Média é 3 valor N soma soma = 0 N = 0 Leia valor Enquanto valor > 0 soma = soma + valor N = N + 1 Leia valor valor N soma 4 0 0 2 1 4 3 2 6-1 3 9 29 Imprima soma/n 30 Fluxograma Fluxograma Existem estudos que comprovam que o ser humano consegue gravar melhor uma mensagem, quando esta é acompanhada de imagens Uma imagem vale mais do que mil palavras Um fluxograma é um diagrama, escrito em uma notação gráfica simples, usado para representação visual de algoritmos. Algoritmo -> texto Fluxograma -> gráfico 31 32 8

Fluxograma Fluxograma Representa uma seqüência de operações qualquer, de forma detalhada, onde todos os passos são visualizados. É utilizado também em outras áreas Processos dentro de uma empresa, linha de produção, etc. É útil para compreensão de controle de fluxo nas fases iniciais de aprendizado de programação, ou quando a linguagem na qual os programas são escritos é muito primitiva. 33 34 Fluxograma Exemplo Vantagens Padronização na representação; Permite descrever com maior rapidez um conjunto de tarefas; Facilita a leitura e o entendimento de uma atividade; Imprimir maior valor lido Início Leia A e B Leia A e B A > B? Não Sim A recebe B 35 Imprima A 36 9

Fluxograma - Símbolos Fluxograma - Símbolos Início e Fim Podem ser círculos ou formas ovais Normalmente contém as palavras Inicío ou Fim, ou alguma expressão sinalizando o início ou fim do precesso. Processo ou operação Representados por retângulos. Indicam uma tarefa a ser executada pelo programa. Somar + 1 a X Multiplicar X por Y Inicío Fim Imprima X 37 38 Fluxograma - Símbolos Fluxograma - Símbolos Condição ou Decisão Representado por losangos Normalmente contém uma pergunta do tipo Sim/Não ou um teste de Verdadeiro/Falso. Mudança no fluxo Setas Conectam 2 símbolos quaisquer. Definem o fluxo de controle. Ordem das operações a serem realizadas. Somar + 1 a X Multiplicar X por Y B = 0? A = 0? 39 40 10

Fluxograma Exemplo Estrutura de decisão não necessariamente leva a uma caminho alternativo. Um processo pode ser repetido. Listar números entre dois valores Leia A e B Some +1 em A Imprima A A >= B? Sim Não 41 Fim 42 Fluxograma Metodologias de programação Como seria um fluxograma para as seguintes tarefas Trocar um lâmpada Apontar um lápis Somar N números Dividir 2 números A resolução de um problema começa com a definição dos dados e tarefas básicas. Esta definição inicial é feita em nível bem alto e geral. Não há preocupação com os detalhes (refinamento). 43 44 11

Metodologias de programação Refinamentos Sucessivos Refinamentos Sucessivos (Top-Down ) Consiste em pegar um grande problema, de difícil solução, e dividi-lo em problemas menores que devem ser mais facilmente resolvidos Decompor uma ou várias tarefas em sub-tarefas mais detalhadas É um processo iterativo, isto é, sub-tarefas podem ser decompostas em sub-tarefas ainda mais detalhadas Exemplo: trocar um pneu furado Levantar o carro parcialmente; Retirar o pneu furado; Instalar o novo pneu; Abaixar o carro 45 46 Refinamentos Sucessivos Refinamentos Sucessivos Exemplo: trocar um pneu furado Retirar o estepe; Levantar o carro parcialmente; Retirar o pneu furado; Instalar o novo pneu; Abaixar o carro Apertar bem as porcas; Exemplo: trocar um pneu furado Pegar as ferramentas no porta-malas; Retirar o estepe; Instalar o macaco; Levantar o carro parcialmente; Afrouxar os parafusos do pneu furado; Retirar o pneu furado; Instalar o novo pneu; Abaixar o carro Apertar bem as porcas; Guardar o pneu furado e as ferramentas; 47 48 12

Refinamentos Sucessivos O algoritmo proposto pode ainda ser refinado de várias outras formas O que fazer se o macaco não estiver no porta-malas? O que fazer se o estepe também estiver vazio? Deve-se sempre puxar o freio de mão antes de executar estas operações. Limpar as mãos; Consertar o pneu furado; Etc 49 13