Sessão 2 UFCD 0804 Algoritmos



Documentos relacionados
ALGORITMOS E FLUXOGRAMAS

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

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Cap.2.5: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

Prof. Dr. Abel Gomes Cap.4: Design de Algoritmos e Programação Estruturada. Algoritmos, fluxogramas e pseudo-código

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

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

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

TÉCNICAS DE PROGRAMAÇÃO 1 INTRODUÇÃO A ALGORITMOS

Estruturas de Repetição

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

Conceito de Algoritmos e Suas Características

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

PROGRAMAÇÃO DE COMPUTADORES (Teoria)

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

UFCD 0804 Algoritmos

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

Introdução a Programação

3 - CONJUNTO DOS NÚMEROS RACIONAIS

Módulo 1 -Algoritmos e Programação

O Manual do ssc. Peter H. Grasch

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

Lógica para a Programação - 1º semestre AULA 01 Prof. André Moraes

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

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

Faculdade de Computação

CAP. I ERROS EM CÁLCULO NUMÉRICO

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

I INTRODUÇÃO À INFORMÁTICA

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

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA DISCUSSÃO DOS EXERCÍCIOS E CONSTRUÇÃO DE PROGRAMAS SEQUENCIAIS. Prof. Dr. Daniel Caetano

TEXTO DE REVISÃO: Uso da calculadora científica e potências de 10.

Ciências Físico - Químicas. Planificação de uma Actividade Laboratorial No contexto dos Novos Programas

ALGORITMOS MEMÓRIA, VARIÁVEIS E CONSTANTES, OPERADORES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Visão Artificial Para a Indústria. Manual do Utilizador

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

8. Perguntas e Respostas

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

Introdução à Computação

Estrutura de Dados Básica

Introdução ao Estudo da Corrente Eléctrica

C O L É G I O F R A N C O - B R A S I L E I R O

Algoritmos e programação

Algoritmos. Cláudio Barbosa

Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia

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

Agroindústria. Processamento artesanal de farinhas e farináceos Fabricação de pão caseiro

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Unidade 5: Sistemas de Representação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

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

PROGRAMAÇÃO EM LINGUAGEM LADDER LINGUAGEM DE RELÉS

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Tabelas vista de estrutura

O princípio multiplicativo

Conceitos básicos da linguagem C

Variáveis, Expressões, Atribuição, Matrizes, Comandos de Desvio

Cotagem de dimensões básicas

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


CONSERVAÇÃO DA ENERGIA

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

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

Formador: Carlos Maia

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO. Isac Aguiar isacaguiar.com.br

Simulado de Algoritmos - Respostas

Sistemas Operacionais. Curso Técnico Integrado Profa: Michelle Nery

Objectivos pedagógicos

DICA PEDAGÓGICA EDUCAÇÃO INFANTIL 1. TÍTULO DO PROGRAMA AS AVENTURAS DE BILL TAMPINHA E SUA MELHOR AMIGA CORKY

Agrupamento de Escolas Eugénio de Castro 1º Ciclo. Critérios de Avaliação. Ano Letivo 2015/16 Disciplina MATEMÁTICA 3.º Ano

DECLARAÇÃO DE RISCO DE INVESTIMENTO (OTC) De 15 de Fevereiro de 2012

PLANIFICAÇÃO ANUAL MATEMÁTICA 3 DOMÍNIOS OBJETIVOS ATIVIDADES

e à Linguagem de Programação Python

"SISTEMAS DE COTAGEM"

Resolverei neste artigo uma prova da fundação VUNESP realizada em 2010.

4. Tarefa 16 Introdução ao Ruído. Objetivo: Método: Capacitações: Módulo Necessário: Análise de PCM e de links

Estrutura Condicional C++

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Laboratório de Programação I

ferramentas de produtividade

Lógica de Programação

Transcrição Automática de Música

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

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

LINEAR EQUIPAMENTOS RUA SÃO JORGE, TELEFONE : SÃO CAETANO DO SUL - SP - CEP:

Manual de Instruções 01/ REV.1

SISTEMA DE CLIMATIZAÇÃO

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

INTRODUÇÃO À LINGUAGEM C++

Engenharia do Conhecimento

Capítulo 2. VARIÁVEIS DO TIPO INTEIRO

Jogos vs. Problemas de Procura

NORMA BRASILEIRA DE CONTABILIDADE NBC TSC 4410, DE 30 DE AGOSTO DE 2013

TÉCNICAS DE PROGRAMAÇÃO

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

MEDIÇÃO EM QUÍMICA ERROS E ALGARISMOS SIGNIFICATIVOS

MANUAL DE UTILIZAÇÃO. EcclesiaSoft v.01

Índice de Confiança do Agronegócio

Transcrição:

Sessão 2 UFCD 0804 Algoritmos Revisões Sessão 1 Algoritmo - Definição Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa, é uma sequência de instruções para atingir uma meta específica. Estas tarefas não podem ser redundantes nem subjectivas na sua definição, devem ser claras e precisas. 1

Características fundamentais dum algoritmo Um algoritmo deve ter 5 características fundamentais: Entradas: um algoritmo deve ter uma ou mais entradas, isto é quantidades que lhe são fornecidas antes do algoritmo iniciar. Saídas: um algoritmo deve ter uma ou mais saídas, isto é quantidades que tem uma relação específica com as entradas. Precisão: Todos os passos do algoritmo devem ter um significado preciso, não ambíguo, especificando exactamente o que deve ser feito. Características fundamentais dum algoritmo Um algoritmo deve ter 5 características fundamentais: Eficácia: Os passos devem conduzir à resolução do problema proposto. Devem ainda ser executáveis numa quantidade finita de tempo e com uma quantidade finita de esforço. Eficiência: Um algoritmo deve ser eficiente. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um ser humano usando papel e lápis. NOTA: Pode haver mais do que um algoritmo para resolver um problema. 2

Algoritmo O algoritmo deve ser fácil de se interpretar e fácil de codificar. Ou seja, ele deve ser o intermediário entre a linguagem falada e a linguagem de programação Algoritmo Exemplo 1 Uma receita é uma descrição dum conjunto de passos ou acções que fazem a combinação dum conjunto de ingredientes com vista a obter um produto gastronómico particular. 3

Algoritmo Exemplo 1(Cont.) Um algoritmo opera sobre um conjunto de entradas (farinha ovos, fermento, etc. no caso do bolo) de modo a gerar uma saída que seja útil (ou agradável) para o utilizador (o bolo pronto). Algoritmo (receita de bolo): 1. Bater duas claras em castelo; 2. Adicionar duas gemas; 3. Adicionar uma chávena de açúcar; 4. Adicionar duas colheres de manteiga; 5. Adicionar uma chávena de leite de coco; 6. Adicionar farinha e fermento; 7. Colocar numa forma e levar ao forno em lume brando. 8. Verificar tempo de cozedura 9. Retirar do forno Algoritmo Exemplo2 Somar dois números Escreva o primeiro número no rectângulo A Escreva o segundo número no rectângulo B Some o número do rectângulo A com número do rectângulo B Coloque o resultado no rectângulo C 4

Exercícios 1. Descreva a sequência lógica: a. Para Comer; b. Para ferver água; c. Para trocar uma lâmpada. d. Que permita efectuar a mudança do pneu furado de uma viatura. Exercício a) Inicio Pegar no garfo Colocar comida no garfo Levar o garfo à boca Abrir a boca Meter a comida dentro da boca Fechar a boca Mastigar a comida Engolir Fim Enunciado 5

Exercício b) Inicio Pegar no recipiente Colocar água no recipiente Levar recipiente à placa Ligar a placa Deixar ferver Desligar a placa Retirar o recipiente da placa Fim Enunciado Exercício c) Algoritmo simples Início Preparar acessos à lâmpada fundida colocar escada Retirar lâmpada fundida Escolher lâmpada nova Colocação da lâmpada nova Verificar se luz acende Arrumar escada Fim 6

Definir as operações elementares Algoritmo mais complexo dar passos subir/descer degraus pegar/largar objectos rodar objectos sentido directo/indirecto capacidade de decisão Exercício c) Exercício c) 1. [Preparar acessos à lâmpada fundida] 1.1 Repetir enquanto não chegar à escada 1.1.1 Dar passos 1.2 Pegar objecto (escada) 1.3 Repetir enquanto não chegar debaixo lâmpada fundida 1.3.1 Dar passos 2. [Retirar lâmpada fundida] 2.1 Repetir enquanto não chegar à lâmpada fundida 2.1.1 Subir degraus 2.2 Repetir enquanto não soltar a lâmpada fundida 2.2.1 Rodar objecto(l.f.) no sentido indirecto 2.3 Repetir enquanto não chegar ao chão 2.3.1 descer degraus 3.[Escolher lâmpada nova] 3.1 Repetir enquanto não chegar junto gaveta das lâmpadas novas 1.3.1 Dar passos 3.2 Repetir enquanto houver lâmpadas novas ou potência L.N. diferente de potência L.F. 3.2.1 Pegar objecto (L.N.) 3.2.2 Se potência L.N. = Potência L.F. 3.2.2.1 Então largar a L.F. 3.2.2.2 Senão largar a L.N. 4. [Colocação da lâmpada nova] 4.1 Repetir enquanto não chegar à escada 4.1.1 Dar passos 4.2 Repetir enquanto não chegar ao casquilho 4.2.1 Subir degraus 4.3 Repetir enquanto não firmar a lâmpada nova 4.3.1 Rodar objecto(l.n.) no sentido directo 4.4 Repetir enquanto não chegar ao chão 4.4.1 descer degraus 5. [Arrumar escada] 5.1 Pegar objecto(escada) 5.2 Repetir enquanto não chegar ao sítio da escada 5.2.1 Dar passos 5.3 Largar objecto (escada) 6. [FIM] Enunciado 7

Exercício d) 1º (graficamente): Exercício d) 2º Definir as operações elementares: dar passos abrir ou fechar pegar ou largar rodar deslocar no sentido... capacidade de decisão 8

3º Narrativa Identada: [Substituição pneu furado] 1. [Buscar macaco, chave e pneu sobresselente] 1.1 Repetir até chegar ao carro 1.1.1 Dar passos 1.2 Abrir a mala 1.3 Pegar macaco, chave e pneu bom 1.4 Repetir até chegar ao pneu furado 1.4.1 Dar passos 2. [Colocar o macaco em posição correcta e elevar o carro] 2.1 Largar o pneu e a chave 2.2 Encaixar macaco 2.2.1 Deslocar o macaco no sentido do carro até encaixar 2.3 Elevar o carro 2.3.1 Repetir até carro elevado 2.3.1.1 Rodar manivela no sentido horário 3.[Retirar o pneu furado e substituí-lo] 3.1 Pegar na chave 3.2 Repetir quatro vezes 3.2.1 Deslocar a chave até encaixar na porca 3.2.2 Repetir até porca cair 3.2.2.1 Rodar sentido anti-horário Exercício d) 3.3 Largar chave 3.4 Pegar no pneu furado 3.5 Deslocá-lo sentido contrário ao carro 3.6 Largar pneu furado 3.7 Pegar no pneu bom 3.8 Deslocar pneu no sentido do carro 3.9 Encaixar pneu 3.10 Pegar na chave 3.11 Repetir quatro vezes 3.11.1 Pegar na porca 3.11.2 Encaixar porca 3.11.3 Pegar chave 3.11.4 Repetir até ficar apertado 3.11.4.1 Rodar no sentido horário 3.12 Largar chave 4. [Guardar o macaco, chave e o pneu furado] 4.1 Baixar o carro 4.1.1 Rodar manivela no sentido contrário ao horário 4.2 Desencaixar macaco 4.3 Pegar pneu furado+macaco+chave 4.4 Repetir até à mala 4.4.1 Dar passos 4.5 Largar chave+macaco+pneu furado 4.6 Fechar mala [FIM] TIPO DE DADOS, VARIÁVEIS E CONSTANTES 9

Constantes, variáveis e tipo de dados Os principais tipos de dados utilizados em algoritmia e em programação são: Caracteres, cadeias de caracteres ou texto; Números (podendo estes serem de diferentes tipos); Dados do tipo lógico ou booleano. Cadeias de caracteres Existem dados que são do tipo texto ou cadeias de caracteres (strings); Por exemplo Hoje e dia 14. Para este tipo de dados também se utiliza, por vezes, a designação de dados alfanuméricos o que quer dizer que são dados em que entram caracteres alfabéticos ou letras e onde podem entrar também algarismos. 10

Dados numéricos E constituída pelos diferentes tipos de números: Inteiros por exemplo -10, -5, 0, 5, 10 Reais por exemplo 1.5, 0, 2.5, -4.1; Nota: na programação e utilizado o. como sinal decimal. Dados lógicos ou booleanos São utilizados com muita frequência em algoritmia e programação; Este tipo de dados caracteriza-se por admitir de cada vez apenas um entre dois resultados. Verdadeiro(true, 1) ou falso(false, 0); 11

Constantes e Variáveis Constante: é um dado que permanece inalterável do inicio ao fim do algoritmo Variável: é um dado que pode sofrer alterações de valor ao longo do algoritmo Identificador: é um nome que é associado (pelo programador) a uma constante, a uma variável ou outro tipo de elemento, em programação. Constantes As constantes podem surgir: Sob a forma directa, ou seja, valores numéricos, alfanuméricos, por exemplo: 0.75; Janeiro ; Sob a forma de identificadores, por exemplo: Constante Taxa=0.16 Nome = Ana Matias Exemplo 1 Define uma constante através do identificador Taxa e com o valor 0.16 Exemplo 2 - Define uma constante através do identificador Nome ao qual se associa a string Ana Matias E como o nome indica nunca mudam. 12

Variáveis As variáveis surgem sempre designadas através de identificadores e associadas a determinado tipo de dados (inteiro, real, string, booleano, etc) Exemplo: Variável Idade : inteiro A característica principal das variáveis e o facto de poderem assumir diferentes valores ao longo do algoritmo ou programa. Instruções de atribuição São operações internas de um programa ou algoritmo que atribuem valores às variáveis Exemplos: Variável Custo: inteiro Lucro: real Nome: String Nome Joao Miguel Custo 16 Lucro Custo * 1.25 Exemplo 1: Indica que a variável Nome recebe a string ou cadeiade caracteres Joao Miguel Exemplo 2: Indica que a variável Custo recebe o valor 16. Exemplo 3: Indica que a variável lucro recebe o valor da variável custo depois de multiplicado por 1.25. Nota: O sinal de atribuição na linguagem algorítmica e mas na linguagem C e =. 13

Operadores aritméticos m + n adição de m e n m - n m subtraído de n m / n quociente da divisão inteira de m por n m * n produto de m e n m % n resto da divisão inteira de m por n Operadores relacionais m < n valor da proposição m é menor que n m == n valor da proposição m é igual a n m <> n valor da proposição m é diferente de n m = n atribui o valor de n a m, i.e., altera o valor de m para o valor contido em n 14

Operadores lógicos p e q conjunção das proposições p e q p ou q disjunção das proposições p e q não p negação da proposição p Instruções de Input ou entrada de dados São utilizadas quando se pretende obter a entrada de dados, através de uma interacção com o exterior ou com pessoas que podem fornecer os dados com que se vão efectuar as operações. A leitura de um valor deve ser lida para uma variável, que irá guardar temporariamente esse valor. Exemplo: Ler Nome 15

Instruções de Output ou saída de dados A saída ou escrita de dados, por parte de um programa ou algoritmo pode ser feita através de diferentes tipos de dispositivos, como o monitor ou a impressora. Este tipo de operação pode ser representada por palavras como escrever, imprimir, etc. Por exemplo: Escrever Olá Mundo Escrever 2500 Escrever de Valor é 250 DESENVOLVENDO ALGORITMOS 16

Representações de algoritmos Linguagem Natural Os algoritmos são expressos directamente em linguagem natural (e.g. o português como no exemplo do bolo). Fluxograma (ou Diagrama de Fluxo) Esta é uma representação gráfica que emprega formas geométricas padronizadas para indicar as diversas acções e decisões que devem ser executadas para resolver o problema. Pseudo-linguagem ou pseudocódigo Emprega uma linguagem intermediária entre a linguagem natural e uma linguagem de programação para descrever os algoritmos. Linguagem Natural Considera-se como algoritmo em linguagem natural uma sequência lógica de instruções ou ordens (correspondentes a operações), expressas em linguagem corrente (por exemplo, o português), que nos permitem resolver um problema. 17

Linguagem natural - Exemplo Cálculo do zero da equação ax+b=0 1.Início de programa 2. ler a, b 3. se a é diferente de 0 então calcula o valor de x (ax+b=0) escrever valor de x senão escrever Não há zero 4. Fim de programa Exercícios 1. Elabore um algoritmo em linguagem natural que: a. Receba dois números e no final mostre a soma, subtracção, multiplicação e divisão dos mesmos. b. Determine o consumo médio de um automóvel sendo fornecida a distância total percorrida pelo automóvel e o total de combustível gasto. c. Receba notas de 3 testes e apresente a média aritmética das mesmas. 18

Exercício 1.a) Iniciar programa Ler a, b Calcular a+b Escrever valor da soma Calcula a-b Escrever valor da subtracção Se b ou a é diferente de zero Calcula a*b Escrever valor da multiplicação Senão Escrever multiplicação igual a zero Se b é diferente de zero Calcula a/b Escrever valor da divisão Senão Escrever Não é possível dividir por zero Fim do programa Enunciado Exercício 1.b) Inicio do programa Ler disttotal, TotalComb Se TotalComb for diferente de zero então Calcular disttotal/totalcomb Escrever resultado do cálculo Senão Escrever Impossível efectuar o calculo - automóvel parado Fim de programa Enunciado 19

Exercício 1.c) Inicio do programa Ler nota1, nota2, nota3 Calcular (nota1+nota2+nota3)/3 Apresentar resultado da média Fim de programa 20