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

Documentos relacionados
Aula 02 ALGORITMOS. Introdução à Computação

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

Desenvolvimento de algoritmos Desenvolvimento de Algoritmos

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

Lógica de Programação

Lógica de Programação

ALGORITMOS AULA 1. Profª Amanda Gondim

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

Algoritmos e Técnicas de programação. Professora: Luciana Faria

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

Disciplina de Algoritmos e Programação

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

Introdução à Programação

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

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

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

2. ALGORITMOS. Unesp Campus de Guaratinguetá

Computação I: Linguagem de Programação Python

Capítulo 1 - Lógica e Algoritmos

Programação Básica de Computadores

Algoritmos e Programação

Técnicas de Programação

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

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

Algoritmos e Programação

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

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

FIC Introdução à Programação de Computadores

Algoritmos e Programação

Algoritmos e Técnicas de Programação

Capítulo 1 Conceitos Básicos

Algoritmos - 1. Alexandre Diehl. Departamento de Física - UFPel

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

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

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

Algoritmos e Programação de Computadores Disciplina:

Programação de Redes de Computadores

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

Introdução a Computação

Introdução aos algoritmos computacionais

Sintática: como é escrito cada elemento da linguagem de programação.

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

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

Algoritmos e Programação

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

Introdução à Programação

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

ALGORITMO: FASE 1 PARTE 1

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

Introdução aos Algoritmos

Introdução a Programação de Jogos

2. Criação de Algoritmos

Introdução aos Algoritmos

Programação para Redes de Computadores

Computadores = cérebros eletrônicos?

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

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

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

Algoritmos e Fluxogramas

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

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

Método para Construção de Algoritmos

Programação de Computadores:

Lógica Aula 3. Definição. Estrutura de decisão

Algoritmos e Linguagem de Programação I

#Conceituação. Algoritmos. Eliezio Soares

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

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

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

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

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

Lógica de Programação I

Algoritmos e Programação

Pseudocódigo e Visualg

Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição

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

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

Programação de Computadores III

INF 1005 Programação I

Prof. Jorge Cavalcanti

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

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

Unidade 1 Conceitos básicos

Programação de Computadores III

Processamento da Informação BC-05045

INTRODUÇÃO A PROGRAMAÇÃO

Algoritmos e Programação. Noções de Lógica e Algoritmos Tarcio Carvalho

Conceitos Básicos ENTRADA PROCESSAMENTO SAÍDA

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

Universidade Federal de Goiás Instituto de Informática

Aula 1 - Introdução Cleverton Hentz

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

Estrutura de Dados Algoritmos

Seguindo Instruções. Linguagens de Programação Algoritmos. Introdução à Ciência da Computação. Prof. Edison Ishikawa

Programação Estruturada Aula VisualG

Algoritmos e Linguagem de Programação I

UNIDADE 1 CONCEITOS BÁSICOS EM ALGORITMOS

Microcontroladores. Programação: fluxogramas, pseudocódigos e lógica. Prof. Daniel

CAPÍTULO 4 ESTRUTURAS DE CONTROLE

Transcrição:

Computação I: Representações de Algoritmos reginaldo.re@utfpr.edu.br * Parte da apresentação foi gentilmente cedida pelo prof. Igor Steinmacher

Agenda Objetivos Relembrando... Algoritmos para desenvolver algoritmos Representação de algoritmos Linguagem natural Fluxogramas Pseudo-código Considerações finais 2

Objetivos da Aula Entender e executar algoritmos com fluxogramas Desenvolver algoritmos simples com fluxogramas Entender e executar algoritmos em pseudo-código Desenvolver algoritmos simples em pseudo-código 3

Relembrando... Sistema Computacional Entrada -> Processamento -> Saída O que é um algoritmo Mundo Real Abstração Mundo Computacional Algoritmo Programa em código fonte Compilador Programa em Código Objeto Atividade Inerentemente Humana!!! Ferramentas Computacionais Linkeditor Programa de Software 4

Relembrando... Diferentes maneiras de representar algoritmos Linguagem natural, fluxogramas, pseudo-código Mundo Real Abstração Mundo Computacional Algoritmo Programa em código fonte Compilador Programa em Código Objeto Atividade Inerentemente Humana!!! Ferramentas Computacionais Linkeditor Programa de Software 5

Relembrando... Notas importantes!!! Um algoritmo não é a solução de um problema, pois, se assim fosse, cada problema teria um único algoritmo Um algoritmo é um caminho para a solução de um problema e, em geral, os caminhos que levam a uma solução são muitos O aprendizado de algoritmos se consegue apenas com o desenvolvimento de algoritmos Não se aprende a desenvolver algoritmos apenas: Copiando Algoritmos Estudando Algoritmos Só se aprende algoritmos: Construindo Algoritmos Testando Algoritmos 6

Algoritmo para a construção de algoritmos Compreender completamente o problema a ser resolvido destacando os pontos mais importantes Definir os dados de entrada, ou seja, quais dados serão fornecidos para a solução do problema Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos Definir os dados de saída, ou seja, quais dados serão gerados após o processamento Construir o algoritmo da melhor maneira possível Testar o algoritmo utilizando simulações 7

Linguagem Natural É o que estamos fazendo Descrevemos os passos utilizando nosso modo de escrever no dia-a-dia Ponto positivo: Fácil de utilizar pois já é bem conhecida Pontos negativos: Ambiguidade Dificuldade de interpretação única Dificuldade de transcrever para uma linguagem formal 8

Fluxograma Utiliza um conjunto limitado de símbolos gráficos para descrever a solução Pontos positivos Entendimento mais simples Menor ambiguidade Pontos negativos Necessidade de aprender os símbolos Menor riqueza de detalhes 9

Fluxograma Indica o início e o fim de um algoritmo Indica o sentido do fluxo,dentro do algoritmo Indica processamento; cálculos e atribuição de valores Indica a entrada de dados Indica saída de dados Indica uma tomada de decisão, possível desvio 10

Exemplo de Fluxograma Chupar bala Início Pegar a bala Tirar o papel Chupar a bala Jogar o papel no lixo Fim 11

Vamos pensar... Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4. Em que: Média Final = (P1 + P2 + P3 + P4)/4 Desenvolva o algoritmo em linguagem natural para resolver esse problema 12

Vamos pensar... Início P1, P2, P3, P4 Media = (P1 + P2 + P3 + P4) 4 Media Fim 13

Exemplo Crie um algoritmo em forma de fluxograma que: Solicite o nome de um funcionário, seu salário e a valor das vendas Calcule o valor de sua comissão, sabendo que esta é de 10% do valor de suas vendas Calcule o salário final do funcionário Apresente o nome do funcionário e o valor de seu salário final 14

Exercícios 1) Vou ao Paraguai e quero calcular quanto custa um produto em reais. Para isso preciso que me informem a cotação do dólar e o valor do produto em dólares. Como resultado quero o valor do produto convertido. 15

Fluxograma com decisão Dados dois números, mostrar o maior Início N1, N2 N1 > N2? N1 N2 Fim 16

Exercício Represente o algoritmo em forma de fluxograma: quando informados dois números (N1 e N2), devo realizar a divisão entre eles (N1/N2) e mostrar o resultado da mesma. Porém, antes de realizar o cálculo, é preciso verificar se N2 é diferente de 0. Caso N2 seja igual a zero, devemos mostrar Impossível Dividir ao invés de mostrar o resultado. 17

Exercício Desejo saber quanto de imposto de renda as pessoas devem pagar, baseado em seu salário. Faça um fluxograma mapeando o caso em que o usuário informe seu salário e receba como saída o valor do desconto, de acordo com a tabela abaixo: Salário Desconto até R$ 1. 500,00 Isento de R$ 1.500,01 até R$ 3.000,00 15% acima de R$ 3.000,00 27,5% 18

Pseudo-código Utiliza um conjunto limitado de palavras reservadas descrever a solução Pontos positivos Proximidade com a linguagem de programação Menor ambiguidade Estruturação e precisão Pontos negativos Necessidade de aprender as palavras reservadas 19

Pseudo-código Da linguagem natural para pseudo-código Começamos com uma afirmação genérica da solução do problema e prosseguimos até o algoritmo final, aumentando sistematicamente o nível de detalhamento Refinamentos sucessivos Como trocar a lâmpada no teto? Início remova a lâmpada queimada coloque a nova lâmpada Fim 20

Algoritmo para trocar a lâmpada no teto (1/11) Início remova a lâmpada queimada coloque a nova lâmpada Fim O que é necessário para remover a lâmpada? posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até se soltar - remova a lâmpada queimada 21

Algoritmo para trocar a lâmpada no teto (2/11) Início posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até se soltar remova a lâmpada queimada coloque a nova lâmpada Fim O que é necessário para colocar a lâmpada nova? escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada 22

Algoritmo para trocar a lâmpada no teto (3/11) Início posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até se soltar remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim Estrutura Seqüencial 23

Algoritmo para trocar a lâmpada no teto (4/11) Início posicione a escada debaixo da lâmpada queimada suba na escada até que a lâmpada possa ser alcançada gire a lâmpada queimada no sentido anti-horário até se soltar remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim 24

Algoritmo para trocar a lâmpada no teto (5/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada Estrutura de Repetição fim-enquanto gire a lâmpada queimada no sentido anti-horário até se soltar remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim 25

Algoritmo para trocar a lâmpada no teto (6/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto gire a lâmpada queimada no sentido anti-horário até se soltar remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim 26

Algoritmo para trocar a lâmpada no teto (7/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário Estrutura de Repetição fim-enquanto remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim 27

Algoritmo para trocar a lâmpada no teto (8/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim-enquanto remova a lâmpada queimada escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada Fim 28

Algoritmo para trocar a lâmpada no teto (9/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim-enquanto remova a lâmpada queimada se <tiver lâmpada da mesma potência> então escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão desça a escada fim-se Fim Estrutura Condicional 29

Algoritmo para trocar a lâmpada no teto (10/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim-enquanto remova a lâmpada queimada se <tiver lâmpada da mesma potência> então escolha uma lâmpada da mesma potência da queimada posicione a nova lâmpada no soquete gire a lâmpada no sentido horário até que ela se firme desça a escada senão desça a escada fim-se Fim 30

Algoritmo para trocar a lâmpada no teto (11/11) Início posicione a escada debaixo da lâmpada queimada enquanto <não alcançar a lâmpada> faça suba um degrau da escada fim-enquanto enquanto <a lâmpada não soltar> faça gire a lâmpada no sentido anti-horário fim-enquanto remova a lâmpada queimada se <tiver lâmpada da mesma potência> então selecione a lâmpada posicione a nova lâmpada no soquete enquanto <a lâmpada não prender> faça gire a lâmpada no sentido horário fim-enquanto desça a escada senão desça a escada fim-se Fim 31

Algoritmo para trocar a lâmpada no teto Quando parar o refinamento? Isso depende do agente que irá executar o algoritmo Os computadores têm um conjunto muito limitado de instruções e o algoritmo deve ser expresso nos termos dessas instruções A linguagem de programação a ser utilizada na programação é o que, principalmente, define o critério de parada 32

Exercício Desenvolver um algoritmo para trocar o pneu furado de um carro usando pseudo-código Se possível, use as três estruturas de controle: Repetição, seqüencial e condicional Relacione uma situação problema do seu dia a dia que pode ser resolvida com um algoritmo e desenvolva o algoritmo para essa situação 33

Considerações Finais Os algoritmos que acabamos de resolver não usam exatamente um conjunto muito restrito de instruções Não são exatamente pseudo-código Existem proposições melhores que aproximam ainda mais a linguagem natural da linguagem de programação Diminuindo o tamanho do conjunto de instruções disponíveis 34