Computadores = cérebros eletrônicos?

Documentos relacionados
Algoritmos e Fluxogramas

ALGORITMOS E FLUXOGRAMAS

ANÁLISE DE ALGORITMOS: PARTE 1. Prof. André Backes. Como resolver um problema no computador? Precisamos descrevê-lo de uma forma clara e precisa

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

Técnicas de Programação

Capítulo 1 - Lógica e Algoritmos

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO À PROGRAMAÇÃO DE COMPUTADORES

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

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

Introdução à Lógica de Programação. Adaptação de Luis Otavio Alvares

Aula 02. Algoritmos e Pseudocódigo

Programação de Redes de Computadores

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

Programação de Computadores III

Programação de Computadores:

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

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

CONCEITOS DE ALGORITMOS

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

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

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

Aula 1 - Introdução Cleverton Hentz

Algoritmos e Programação de Computadores Disciplina:

3.1 - O que é um diagrama de bloco? Simbologia... 11

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

Introdução à Programação

Pseudocódigo e Visualg

Unidade 2: Algoritmos e programação

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

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

Algoritmos e Linguagem de Programação I

Programação Básica de Computadores

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

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

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

Programação de Computadores:

INTRODUÇÃO À PROGRAMAÇÃO

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

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

Programação de Computadores III

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

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Introdução à Programação

Programação de Computadores III

Fluxograma Pseudocódigo Estruturas de decisão. Professor Leandro Augusto Frata Fernandes

Fundamentos de Programação

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

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

Introdução a Computação

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Disciplina de Algoritmos e Programação

ALGORITMOS AULA 1. Profª Amanda Gondim

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

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

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

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

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

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

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

Projeto e Desenvolvimento de Algoritmos

Laboratório de Programação 1 Algoritmos e a Lógica de Programação

Algoritmos e Técnicas de Programação

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

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

I - CONCEITOS INICIAIS

PDA - Repetição. Estruturas de repetição. Slides adaptação de Deise Saccol

Linguagem de Descrição de algoritmos

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

Estruturas de Repetição. João Medeiros FATERN

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

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo

Transcrição:

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. Ex: 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 Somar N números Média de 2 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 z = x + y 2 z = x 2 + y 2 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 Somar N números Média de 2 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 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