ALGORITMOS E FLUXOGRAMAS



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

Computadores = cérebros eletrônicos?

Algoritmos e Fluxogramas

Sessão 2 UFCD 0804 Algoritmos

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

TÉCNICAS DE PROGRAMAÇÃO

Estruturas de Repetição

Lógica de programação Instrução Algoritmo Diferença entre algoritmo e programa

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

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

Introdução à Computação para o Ensino Médio. Centro Técnico Científico

Conceito de Algoritmos e Suas Características

Algoritmos e Programação Parte Teórica

Cotagem de dimensões básicas

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Algoritmos não se aprendem: Copiando algoritmos Estudando algoritmos Algoritmos só se aprendem: Construindo algoritmos Testando algoritmos

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

Estrutura Condicional C++

Laboratório de Programação I

Programação em papel quadriculado

7. Estrutura de Decisão

Dadas a base e a altura de um triangulo, determinar sua área.

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Programação de Computadores I Pseudocódigo PROFESSORA CINTIA CAETANO

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

Simulado de Algoritmos - Respostas

Definição. de solução de um problema passo-a-passo. Representa a lógica l. passo.

Resolução de sistemas lineares

Um jogo de preencher casas

Aula 4 Estatística Conceitos básicos

Introdução. Introdução. Objetivos da Aula. Bases Computacionais da Ciência(BC-0005)

9 Comandos condicionais

Notas de Cálculo Numérico

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Conectar diferentes pesquisas na internet por um menu

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Módulo 1: Contextualização

Comandos de repetição while

LÓGICA DE PROGRAMAÇÃO. Vitor Valerio de Souza Campos

Eduardo Bezerra. Editora Campus/Elsevier

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

5. Uma lousa denominada EPI (registrador de endereço de próxima instrução).

Simulador PMP - 4º Edição Exame de Certificação do PMI

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Sumário Algoritmos e Estrutura de Dados Repetição

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP/CENTRO DE RECURSOS COMPUTACIONAIS SAU - SERVIÇO DE ATENDIMENTO AO USUÁRIO

Algoritmos DCC 119. Introdução e Conceitos Básicos

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

TUTORIAL AMBIENTE WEB PORTUGOL

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

Algoritmos e programação

A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo.

Algoritmos Estruturas Seqüenciais. José Gustavo de Souza Paiva

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Simulador CCNA Exame de Certificação da CISCO

Regras Métodos Identificadores Variáveis Constantes Tipos de dados Comandos de atribuição Operadores aritméticos, relacionais e lógicos

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Computadores XII: Aprendendo a Somar A4 Texto 3

Estruturas de Controle A Tomada de Decisões

Programação I. Departamento de Engenharia Rural Centro de Ciências Agrárias

Desmistificando o Programa de Computador

Prefeitura de Volta Redonda Secretaria Municipal de Educação Departamento Pedagógico Núcleo de Tecnologia Educacional Volta Redonda NTM

O Windows também é um programa de computador, mas ele faz parte de um grupo de programas especiais: os Sistemas Operacionais.

Pontifícia Universidade Católica de Minas Gerais Bacharelado em Sistemas de Informação Trabalho de Diplomação

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

Usando o do-file editor Automatizando o Stata

MD Sequências e Indução Matemática 1

PROGRAMAÇÃO BÁSICA DE CLP

1. Introdução. Avaliação de Usabilidade Página 1

Conceitos básicos da linguagem C

Linguagem algorítmica: Portugol

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

Programação Orientada a Objeto

Colimação de um telescópio. Newtoniano

Manual do Utilizador. Manual do Utilizador Modelo10 no sisgep. Data última versão: Versão : 1.2. Data criação:

COMO PROGRAMAR SEU TIME

CADERNOS DE INFORMÁTICA Nº 1. Fundamentos de Informática I - Word Sumário

Cotagem de elementos

MATERIAL DE APRESENTAÇÃO DO SCRATCH

CURRÍCULO 1º ANO do ENSINO UNDAMENTAL LINGUAGEM

O QUE É A CENTRAL DE JOGOS?

Cálculo em Computadores trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios Coordenadas polares 5

Objetivo principal: aprender como definir e chamar funções.

Manual das planilhas de Obras v2.5

Exercícios de Fixação Pseudocódigo e Estruturas Básicas de Controle

Lógica de Programação

Como enviar e receber correio eletrónico utilizando o Gmail

DICAS PARA CÁLCULOS MAIS RÁPIDOS ARTIGO 06

Estruturas de Repetição

Programação Orientada a Objetos. Introdução à Análise Orientada a Objetos (AOO)

Manual de Utilização do PDV Klavix

Boletim Eletrônico de Recolhimento Manual do Sistema. Boletim Eletrônico de Recolhimento. Manual do Sistema

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

A SEGUIR ALGUMAS DICAS PARA O DESENVOLVIMENTO DE UM PROJETO CIENTÍFICO

RELATÓRIOS GERENCIAIS

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

Álgebra. SeM MiSTéRio

Exemplo: Na figura 1, abaixo, temos: Clique aqui para continuar, que é a primeira atividade que você precisa realizar para iniciar seus estudos.

Transcrição:

ALGORITMOS E FLUXOGRAMAS Prof. André Backes INTRODUÇÃO 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. 1

INTRODUÇÃO Computadores têm facilidade para lidar com um determinado assunto, uma familiaridade com alguma área do conhecimento. Exemplo Um computador pode realizar um calculo 10 bilhões de vezes mais rápido que nosso cérebro. INTRODUÇÃO Por outro lado, nosso cérebro opera em paralelo, isto é, pode resolver vários problemas ao mesmo tempo. 2

ALGORITMOS 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. ALGORITMO: BOLO DE CHOCOLATE 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 3

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 ALGORITMOS 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. 4

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 ALGORITMOS Como seria um algoritmo para as seguintes tarefas Trocar um lâmpada Apontar um lápis Média de 2 números Somar N números 5

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 ALGORITMOS 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 6

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 ALGORITMOS 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 7

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 PSEUDO-CÓDIGO 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 8

PSEUDO-CÓDIGO Como seria um pseudo-código para as seguintes tarefas Trocar um lâmpada Apontar um lápis Média de 2 números Somar N números TIPOS DE PROCESSAMENTO 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 9

TIPOS DE PROCESSAMENTO 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 Leia nota1 Leia nota2 media = (nota1 + nota2)/2 Imprima media TIPOS DE PROCESSAMENTO Processamento sequencial A ordem das instruções é importante! Leia nota1 Leia nota2 Imprima media media = (nota1 + nota2)/2 media = (nota1 + nota2)/2 Leia nota1 Leia nota2 Imprima media Leia nota1 Leia nota2 media = (nota1 + nota2)/2 Imprima Media 10

TIPOS DE PROCESSAMENTO 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 TIPOS DE PROCESSAMENTO Processamento condicional As instruções executadas dependem da situação Exemplo Imprimir a maior dentre duas notas lidas Leia nota1 Leia nota2 Se nota1 > nota2 Imprima nota1 Senão Imprima nota2 Leia nota1 Leia nota2 Imprima nota1 Leia nota1 Leia nota2 Imprima nota2 11

TIPOS DE PROCESSAMENTO 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 TIPOS DE PROCESSAMENTO 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 Soma = 1 + 2 + 3 +... + N 12

TIPOS DE PROCESSAMENTO 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. Leia N soma = 0 nro = 1 Enquanto nro <= N soma = soma + nro nro = nro + 1 Imprima soma TIPOS DE PROCESSAMENTO 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) 13

TIPOS DE PROCESSAMENTO 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. soma = 0 N = 0 Leia valor Enquanto valor > 0 soma = soma + valor N = N + 1 Leia valor Imprima soma/n TESTE DE MESA 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 14

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) valor N soma TESTE DE MESA 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 soma = 0 N = 0 Leia valor Enquanto valor > 0 soma = soma + valor N = N + 1 Leia valor Imprima soma/n valor N soma 4 0 0 2 1 4 3 2 6-1 3 9 15

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 FLUXOGRAMA Um fluxograma é um diagrama, escrito em uma notação gráfica simples, usado para representação visual de algoritmos. Algoritmo -> texto Fluxograma -> gráfico 16

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. FLUXOGRAMA É ú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. 17

FLUXOGRAMA Vantagens Padronização na representação; Permite descrever com maior rapidez um conjunto de tarefas; Facilita a leitura e o entendimento de uma atividade; EXEMPLO Imprimir maior valor lido Início Leia A e B Leia A e B A > B? Não Sim A recebe B Imprima A 18

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. Inicío Fim Imprima X FLUXOGRAMA - SÍMBOLOS Processo ou operação Representados por retângulos. Indicam uma tarefa a ser executada pelo programa. Somar + 1 a X Multiplicar X por Y 19

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 B = 0? A = 0? FLUXOGRAMA - SÍMBOLOS 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 20

FLUXOGRAMA Estrutura de decisão não necessariamente leva a uma caminho alternativo. Um processo pode ser repetido. EXEMPLO Listar números entre dois valores Leia A e B Some +1 em A Imprima A A >= B? Sim Não Fim 21

FLUXOGRAMA Como seria um fluxograma para as seguintes tarefas Trocar um lâmpada Apontar um lápis Somar N números Dividir 2 números METODOLOGIAS DE PROGRAMAÇÃO 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). 22

METODOLOGIAS DE PROGRAMAÇÃO 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 REFINAMENTOS SUCESSIVOS Exemplo: trocar um pneu furado Levantar o carro parcialmente; Retirar o pneu furado; Instalar o novo pneu; Abaixar o carro 23

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; REFINAMENTOS SUCESSIVOS 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; 24

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 25