- A Computação Científica é uma área de estudo que, utilizando computadores, se interessa

Documentos relacionados
Computação Científica 1

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

6.Elaboração de algoritmos...13

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

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

INFORMÁTICA APLICADA AULA 02 ALGORITMOS

Programação Procedimental

CONCEITOS DE ALGORITMOS

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Noções de algoritmos - Aula 1

Algoritmo e Programação. Capítulo 2 Tópicos Preliminares

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

Introdução aos Algoritmos

ESTRUTURA CONDICIONAL E SELEÇÃO

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

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

Introdução aos Algoritmos

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

- Aula 01, 02, 03 e 04 Apresentação da disciplina.

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

Introdução a programação Visão geral

Programação Estruturada Aula VisualG

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

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

Engenharia de resolução de problemas

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Algoritmos Numéricos 2 a edição

ANÁLISE DE COMPLEXIDADE DOS ALGORITMOS

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

Algoritmo e Programação Matemática

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

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21

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

5. Expressões aritméticas

ALGORITMOS AULA 1. Profª Amanda Gondim

Introdução à Programação

Algoritmos e Programação - Engenharia da Computação -

Linguagens de Programação I. Introdução a Algoritmos e Lógica de Programação

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

VETORES Motivação AULA 19

ALGORITMOS AULA 2. Profª Amanda Gondim

Prof. Jorge Cavalcanti

Conceitos Básicos de Programação

Curso Profissional de Nível Secundário

Curso: Análise e Desenvolvimento de Sistemas. (Conceitos Práticos de Lógica de Programação)

Organização e Arquitetura de Computadores I

Noções de algoritmos - Aula 1

Capítulo 1 Conceitos Básicos

Introdução ao SciLab. SciLab O que é? Onde obter o programa:

Teoria da computabilidade Indecidíveis Decidíveis

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

Processamento de Dados aplicado à Geociências. AULA 4:Comando de Entrada Comando de Saída Comando de Atribuição

Cálculo Numérico BCC760

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

Conceitos e Princípios Gerais

Introdução a Computação

INFORMÁTICA APLICADA AULA 03 ALGORITMOS

AULA 02. OBJETIVO: Desenvolvimento e solução de Algoritmos. LÓGICA DE PROGRAMAÇÃO

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:

Faculdade de Estudos Avançados do Pará Disciplina: Algoritmos Professor: Armando Hage. Introdução à Programação

Introdução à Pseudo-código PROGRAMAÇÃO I (COM06842) LÓGICA E TÉCNICA DE PROGRAMAÇÃO (COM06039)

Cálculo Numérico Noções básicas sobre erros

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

Introdução aos algoritmos computacionais

Algoritmos Estrutura Condicional

Conceitos Práticos de Lógica de Programação

CAPÍTULO 4 ESTRUTURAS DE CONTROLE

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

2. Complexidade de Algoritmos

Estruturas de Dados Algoritmos

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

Algoritmos e Programação

LINGUAGEM ALGORÍTMICA

Técnicas de Programação

Fluxograma. Conjunto de símbolos utilizados em fluxogramas

Aula 10: Introdução a Vetores e Matrizes

ALGORITMOS E LÓGICA DE PROGRAMAÇÃO PRÉ AULA DIAGNÓSTICO 22/10/2015. Analise o algoritmo a seguir e depois assinale a alternativa correspondente:

Conceitos básicos de algoritmos

Programação Estruturada

Exercícios de programação

Conceitos Básicos de Algoritmos

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

2. Algoritmos. Prof. Renato Tinós. Local: Depto. de Computação e Matemática (FFCLRP/USP) Introdução à Computação I IBM1006

MATRIZES - PARTE Mais exemplos Multiplicação de duas matrizes AULA 26

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

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

Matemática computacional: métodos numéricos, programação linear, otimização

Preliminares. Profa. Sheila Morais de Almeida. agosto

TIPOS DE DADOS E VARIÁVEIS

Cálculo Numérico. que é denominado erro relativo. Temos então para os dados acima:

INF1005: Programação I. Capítulo 2. Ivan Mathias Filho Algoritmo

Algoritmos e Estruturas de Dados

Análise de Algoritmos Estrutura de Dados II

EXPRESSÕES ARITMÉTICAS PARTE 1

SEBENTA INTRODUÇÃO Á ALGORITMIA

Transcrição:

Definição Definição - A é uma área de estudo que, utilizando computadores, se interessa - pela construção de modelos matemáticos e - pelas técnicas para determinar soluções numéricas na análise e resolução de problemas reais (científicos e da engenharia). - A consiste, em termos práticos, na aplicação - da simulação computacional e - de outras formas de computação, na análise e resolução de problemas reais em várias áreas científicas e tecnológicas. - As aplicações computacionais desenvolvidas para modelar sistemas reais, requerem - grandes quantidades de dados iniciais e de parâmetros de entrada, - uma grande quantidade de cálculos, fazendo com que a relação entre e Computação Numérica seja muito forte. - A Computação Numérica define-se como a utilização de computadores na manipulação de números. Capítulo 1. 1/37

Definição - Em algumas áreas do conhecimento, - a experimentação em laboratório é extremamente cara ou até mesmo impossível, - o que faz com que a tenha um papel de grande importância, - configurando uma terceira vertente da ciência (complemento à experimentação/observação e à teoria). - Considere-se o seguinte exemplo: - tendo em conta a grande aproximação da antena do telemóvel com a cabeça humana, essencialmente aquando da realização de chamadas, os utilizadores são expostos a campos eletromagnéticos de níveis consideráveis em períodos de tempo cada vez maiores. - Devido à impossibilidade técnica e ética de efetuar medições dos níveis destes campos em seres humanos ou animais, as simulações numéricas são de crucial importância nestes estudos. - Com a é possível identificar as áreas e os tecidos mais afetados (normalmente são aqueles mais próximos da antena) e os pontos de concentração de ondas eletromagnéticas. - A construção de Modelos Matemáticos é possivelmente a vertente da - em que os investigadores têm ocupado mais tempo no seu estudo, - há um aumento da quantidade de modelos para resolver problemas (cada vez mais complexos), - o desenvolvimento de modelos já existentes. Capítulo 1. 2/37

Modelo genérico Modelo genérico - De uma maneira geral, um modelo é uma estrutura (abstrata ou física) construída para exibir funções e características (consideradas) fundamentais de um dado sistema real. - Segundo diferentes perspetivas, a mesma realidade dá origem a diferentes modelos. - É importante que o comportamento do modelo - seja fiel à realidade (ou, melhor, à simplificação da realidade que se idealizou), - seja de fácil manipulação! - Os modelos permitem - a experimentação sem interferência com a realidade, - explicitar relações que não eram claras até ao momento da sua construção e análise. - O termo "modelo" é habitualmente usado por uma estrutura construída propositadamente, para expor aspetos e características de alguns objetos entre si. - É suposto que um modelo - seja uma representação suficientemente precisa das características essenciais da situação a analisar, - de modo que as conclusões (soluções) obtidas a partir dele sejam também válidas para o problema real. Capítulo 1. 3/37

Modelo genérico - O modelo é um esquema simplificado para a interpretação da realidade - a complexidade do mundo real a necessidade de formular modelos simplificadores; - a mera acumulação de observações não fornece explicação satisfatória do fenómeno necessidade de sistematizar e racionalizar os factos conhecidos: - selecionando os aspetos mais importantes e - desprezando os que considera irrelevantes. - De uma maneira geral, pode-se considerar que existem três tipos de modelos: - modelos icónicos - são representações reduzidas de estados, objetos ou acontecimentos; - representam o fenómeno real apenas com uma transformação de escala; - por ex., os mapas. - modelos analógicos, - empregam uma propriedade para representar outra; - por ex., utilizar gráficos a cores e com legendas. - modelos simbólicos - as propriedades do fenómeno real são expressas simbolicamente; - por ex., os modelos matemáticos. Capítulo 1. 4/37

Modelo matemático Modelo matemático - Uma das tarefas mais importantes dos Matemáticos é: - analisar situações da vida real e - identificar modelos matemáticos que permitam a sua interpretação. - Existem, na literatura, muitas definições de modelo matemático. - Edwards e Hamsom (1990): "um modelo matemático é o produto da transferência de um conjunto de elementos matemáticos (como sejam, funções ou equações), com vista à obtenção de uma representação matemática de uma parcela do mundo real". - Swetz e Hartzler (1991): "modelo matemático de um objeto ou de um fenómeno real é um conjunto de regras ou leis, de natureza matemática, que representam adequadamente o objeto ou o fenómeno na mente de um observador". Capítulo 1. 5/37

Modelo matemático - Os modelos matemáticos - São representações idealizadas, mas expressas em termos de símbolos e expressões matemáticas. - Consistem num sistema de equações e de expressões matemáticas relacionadas, que descrevem os aspetos essenciais do problema. - Podem ter diversas formas como uma única equação, um sistema de equações, um sistema de inequações ou, para casos mais complexos, um conjunto de equações diferenciais. - O modo como a teoria e as aplicações da Matemática se relacionam designa-se por: - matematização ou - modelação matemática. - Isto significa, para Ian Stwart (matemático inglês), que "Qualquer descrição matemática do mundo real é um modelo. Manipulando o modelo esperamos compreender algo da realidade. E já não perguntamos se o modelo é verdadeiro, perguntamos unicamente se as suas implicações podem ser verificadas experimentalmente". Capítulo 1. 6/37

Tipos de modelos matemáticos Tipos de modelos matemáticos - Os modelos matemáticos podem ser, pela sua natureza, de dois tipos: - modelos prescritivos, e - modelos descritivos. - Os modelos matemáticos prescritivos têm como característica principal, o facto de o resultado de uma operação ser prescrita para solucionar um problema do sistema real. - Os modelos prescritivos - baseiam-se na representação dos objetivos e das restrições de um processo para o qual se deseja descobrir soluções ótimas; - ou seja, o modelo é elaborado segundo uma técnica que permite encontrar a melhor solução, ou política de ação, para os condicionamentos representados. - Exemplos de modelos prescritivos: - modelos de otimização; - modelos que usam métodos numéricos. Capítulo 1. 7/37

Tipos de modelos matemáticos - Os modelos que usam métodos numéricos - são expressos apenas por uma equação matemática; - a sua resolução consiste em determinar as soluções que anulam aquela equação (ou seja, os seus zeros). - Os modelos de otimização podem ser resolvidos usando dois tipos diferentes de métodos: - exatos, e - aproximados. - Nos métodos exatos, a solução obtida - é a melhor, dentre todas as possíveis, dados os condicionamentos do modelo; - otimiza (maximiza ou minimiza) uma função de mérito (por ex., o custo total de produção); e - respeita (não viola), em simultâneo, todas as restrições do problema (por ex:, satisfazer a procura). - Pode ser extremamente caro, em termos computacionais, resolver um problema com métodos exatos. - Neste caso, pode decidir-se por resolver o problema de forma aproximada (heuristicamente). Capítulo 1. 8/37

Tipos de modelos matemáticos - Resolver o problema usando um método aproximado (heurístico) - significa que não se pode garantir que se obtenha a solução ótima em todos cenários analisados; - mas pode-se garantir a obtenção de uma solução de boa qualidade com baixo custo computacional. - Uma abordagem heurística tenta utilizar um método racional para encontrar uma boa (próxima do ótimo) solução. - Geralmente a heurística apresenta uma maneira mais rápida e fácil de resolver um problema, em relação ao método matemático prescritivo puro. - Exemplos de métodos heurísticos são - Algoritmos Evolutivos (Algoritmos Genéticos, Pesquisa Tabu,...), - Redes Neuronais e - Busca Local. - Mas isto não significa que se deve resolver todos os problemas de grande dimensão e caros, em termos computacionais, usando métodos aproximados. Capítulo 1. 9/37

Tipos de modelos matemáticos - Por exemplo: - suponha-se que existam 3 trabalhos para serem realizados e 3 máquinas disponíveis para os realizar. - O custo de cada máquina para cada trabalho está na seguinte tabela: Máquina 1 Máquina 2 Máquina 3 Trabalho 1 10 25 11 Trabalho 2 13 5 6 Trabalho 3 8 6 25 - Heurística 1: Alocação do menor custo dos trabalhos. Qual o custo total? - Heurística 2: Alocação do menor custo das máquinas. Qual o custo total? - Usando a Heurística 1 e afetando por ordem os Trabalhos: custo total é 40 (10 + 5 + 25), pares de afetação: (Trabalho 1, Máquina 1), (Trabalho 2, Máquina 2) e (Trabalho 3, Máquina 3). - Usando a Heurística 2 e afetando por ordem as Máquinas: o custo total é 24 (8 + 5 + 11), pares de afetação: (Máquina 1, Trabalho 3), (Máquina 2, Trabalho 2) e (Máquina 3, Trabalho 1). - Notar que: a melhor solução (custo 22) é um pouco melhor que a solução da heurística 2 (custo 24). Capítulo 1. 10/37

Tipos de modelos matemáticos - Os modelos matemáticos descritivos - são utilizados para acompanhar o comportamento de um sistema. - As suas conclusões são obtidas através da perceção do modelador. - Os modelos deste tipo mais usuais são os modelos de simulação. - Os modelos descritivos são utilizados - na representação de sistemas reais (ou propostos) e - na experimentação de diferentes cenários e políticas de ação nos mesmos. - As grandes motivações para o uso destas técnicas são - a flexibilidade na representação de modelos complexos e - a facilidade de aplicação, o que possibilita prever o comportamento do sistema modelado no horizonte de planeamento escolhido. - Os resultados dos testes apresentam uma visão futura do sistema, auxiliando no processo de tomada de decisões no momento. Capítulo 1. 11/37

Tipos de modelos matemáticos - Ao contrário dos métodos prescritivos, os modelos descritivos são utilizados para comparar políticas de ação já escolhidas pelo decisor, não esperando que o modelo indique a melhor solução possível. - Por exemplo: suponha-se que se pretende testar duas políticas de filas numa Agência Bancária: 1) cada caixa tem a sua própria fila; 2) uma fila única para todas as caixas. Neste caso, pode-se supor que - o tempo de atendimento é baseado numa distribuição de Poisson e - que os tempos de chegada dos clientes à Agência são baseados numa distribuição Exponencial Negativa. Depois, simulam-se as duas políticas para verificar qual delas é a melhor (segundo certo objetivo). Capítulo 1. 12/37

Modelação matemática Modelação matemática - O processo de resolução de um problema - pode ser visto como uma sequência de etapas que devem ser realizadas e melhoradas, - até que o modelo matemático construído para representar o problema forneça resultados satisfatórios. - A construção de um bom modelo matemático exige - alto nível de abstração e - de conhecimentos académicos (teoria) e/ou empíricos (prática) sobre o problema em análise. - Notar que, - não é possível o controlo sobre a maioria dos sistemas reais (complexos), - mas é possível controlar a complexidade dos modelos matemáticos que se constroem. - Os sistemas reais complexos - podem ser aproximados por modelos matemáticos simples, - que usam equações matemáticas que podem ser resolvidas analiticamente (obtendo soluções exatas). - No entanto, estes modelos simples oferecem, provavelmente, - uma descrição muito distante do comportamento dos sistemas reais. Capítulo 1. 13/37

Modelação matemática - Uma descrição mais precisa do sistema real pode ser conseguida - com a introdução de mais características do sistema no modelo matemático, - o que implica a utilização de equações matemáticas mais complexas e mais difíceis de resolver. - Para estes casos, - podem não existir soluções analíticas para o modelo; - havendo necessidade de se recorrer à determinação de soluções aproximadas, obtidas através de - métodos numéricos ou - métodos heurísticos. - Existem, na literatura, vários diagramas para descrever o processo de resolução de um problema (modelação matemática). - Assim, pode-se considerar que este processo é composto por cinco etapas (ver diagrama em baixo): 1ª) Definição (Formulação) do Problema, 2ª) Construção do Modelo (Matemático), 3ª) Determinação da Solução (do Modelo), 4ª) Validação do Modelo e Análise da Solução, 5ª) Implementação da Solução. Capítulo 1. 14/37

Modelação matemática Capítulo 1. 15/37

Modelação matemática Capítulo 1. 16/37

Modelação matemática - Definição do Problema Modelação matemática - Definição do Problema - Elabora-se a definição (formulação) matemática do problema real a ser resolvido. - Normalmente, - começa-se com um diagnóstico da situação e - termina-se com uma descrição formal do problema. - Uma definição cuidadosa do problema é crucial, - pois caso contrário pode-se estar, mais tarde, a resolver o problema errado; - ou seja, deve-se evitar extrair a resposta certa do problema errado! - Envolve a "Perceção do Problema" e a "Recolha de Dados". - Deve-se identificar as entidades associadas ao problema, que são as seguintes: - os dados (o que é conhecido), - o objetivo (que é desconhecido e pretende-se determinar) e - as restrições (as condições do problema apresentadas). Capítulo 1. 17/37

Modelação matemática - Construção do Modelo Matemático Modelação matemática - Construção do Modelo Matemático - Consiste na transformação do problema real num problema matemático através de uma formulação matemática, a qual deve ser tratável em termos computacionais. - Deve-se começar por - tentar selecionar um modelo, entre os vários já conhecidos e que possam ser aplicados ao problema (é frequente ser possível aplicar diferentes modelos ao mesmo problema real). - Geralmente o modelo matemático possui mais soluções que o problema real. - Também deve haver uma grande comunicação com a fase da Recolha de Dados, pois o modelo pode necessitar de algo mais do que foi feito na etapa anterior, - quer em termos dos dados recolhidos - quer na forma como são apresentados. - Nesta etapa deve-se reproduzir as relações entre os componentes do problema (objetivos, variáveis de decisão, parâmetros, restrições,...). Capítulo 1. 18/37

Modelação matemática - Determinação da Solução do Modelo Modelação matemática - Determinação da Solução do Modelo - Faz-se a escolha do método numérico mais apropriado para resolver o modelo matemático, obtido na construção do modelo matemático. - Na escolha do método mais eficiente deve-se ter em conta os seguintes aspetos: - precisão desejada para os resultados; - capacidade do método em conduzir aos resultados desejados (velocidade de convergência); - esforço computacional despendido (tempo de processamento e economia de memória). - Depois de feita a escolha do método, - este é descrito através de um algoritmo, - o qual é posteriormente implementado num computador através de uma linguagem de programação; - por fim, a execução daquele programa tem em vista a obtenção dos resultados numéricos (soluções). - Esta etapa pode, então, ser subdividida nas 3 fases seguintes (depois de escolhido o método): - elaboração do algoritmo, - implementação do algoritmo (codificação do programa), - processamento (execução) do programa. Capítulo 1. 19/37

Modelação matemática - Validação do Modelo e Análise da Solução Modelação matemática - Validação do Modelo e Análise da Solução - Verifica-se - a consistência da solução obtida para o modelo (validação do modelo) e - a sua adequação ao problema real (análise da solução). - Se a solução não se mostrar satisfatória (modelo não válido) deve-se - construir um novo modelo matemático, através de uma nova formulação matemática, e - determinar uma nova solução numérica. - Alguns modelos matemáticos podem - produzir várias soluções (e não apenas uma) e - algumas delas (ou todas) não terem sentido físico ou químico - por exemplo: tempo negativo, concentração complexa, etc. - Um dos objetivos desta etapa é justamente discernir qual a solução válida para o problema real dentre as várias fornecidas pelo modelo matemático (se existirem algumas). Capítulo 1. 20/37

Modelação matemática - Implementação da Solução Modelação matemática - Implementação da Solução - Nesta etapa deve-se ter em atenção os seguintes aspetos: - garantir que, do papel para o sistema real, não se desvirtua a solução; - ter abertura para readaptações (modelo e/ou solução) causadas pelas dificuldades de implementação; - verificar a existência de problemas: - técnicos, - associados ao comportamento individual dos elementos da organização, - relacionados com o ambiente organizacional; - dar importância aos aspetos comportamentais; - verificar se a realidade ainda é a mesma do início do estudo. Capítulo 1. 21/37

Modelação matemática - Exemplo Modelação matemática - Exemplo - Definição do Problema - Um fabricante de plásticos produz 2 tipos de plástico: - Especial e - Normal. - Cada tonelada de plástico Especial exige - 2 horas na máquina A e - 5 horas na máquina B; - Cada tonelada de plástico Normal exige - 2 horas na máquina A e - 3 horas na máquina B. - Como - a máquina A está disponível 8 horas por dia e - a máquina B está disponível 15 horas por dia, quantas toneladas de cada tipo de plástico devem ser produzidas diariamente de maneira que as duas máquinas se mantenham totalmente ocupadas? Capítulo 1. 22/37

Modelação matemática - Exemplo - Construção do Modelo Matemático plástico Especial = variável X } plástico Normal = variável Y { - Determinação da Solução do Modelo 2X + 2Y = 8 5X + 3Y = 15 - O processo consiste na resolução de um sistema de duas equações com duas incógnitas, usando o método de substituição de variáveis. { 2X + 2Y = 8 5X + 3Y = 15 - Análise dos Resultados (Solução) Devem ser produzidas: { X = 4 Y 20 5Y + 3Y = 15 1,5 toneladas de plástico Especial (variável X) e 2,5 toneladas de plástico Normal (variável Y). { X = 4 Y Y = 5/2 { X = 3/2 = 1.5 Y = 5/2 = 2.5 Capítulo 1. 23/37

Elaboração de algoritmos Elaboração de algoritmos - Uma das fases mais importantes na resolução de um problema é a elaboração de um algoritmo que traduza o método associado ao modelo matemático construído. - Selecionado o método associado ao modelo matemático construído (definido através de expressões aritméticas e lógicas), o passo seguinte é realizar uma descrição do método através de um algoritmo. - A descrição do algoritmo, através de uma notação algorítmica, melhora o seu entendimento, pois - apenas os aspetos do raciocínio matemático são realçados, - não é necessário levar em consideração os detalhes de implementação das linguagens de programação. Capítulo 1. 24/37

Elaboração de algoritmos - Estrutura do algoritmo Elaboração de algoritmos - Estrutura do algoritmo - Um algoritmo deve iniciar-se com Algoritmo <nome-do-algoritmo> e terminar com fim_algoritmo - Para descrever a finalidade do algoritmo, deve ser utilizado { Objetivo: <objetivo-do-algoritmo> } - Os dados necessários para a execução de um algoritmo são requisitados pelo comando parâmetros de entrada: <lista-de-variáveis> onde <lista-de-variáveis> são os nomes das variáveis contendo os valores fornecidos. - Não é necessário descrever exatamente como os valores são fornecidas ao algoritmo. - Os valores calculados pelo algoritmo são disponibilizados pelo comando parâmetros de saída: <lista-de-variáveis> podendo a <lista-de-variáveis> ser ampliada ou reduzida pelo programador. Capítulo 1. 25/37

Elaboração de algoritmos - Variáveis e comentários Elaboração de algoritmos - Variáveis e comentários - Uma variável corresponde a uma posição de memória do computador onde está, ou poderá estar, armazenado um determinado valor. - As variáveis são representadas por identificadores, podendo os elementos de vetores e matrizes serem referenciados por subscritos ou índices (por exemplo, v i ou v(i) e m ij ou m(i,j)). - Um comentário é - um texto inserido em qualquer parte o algoritmo para aumentar a sua clareza.; - deve ser delimitado por chavetas ({ <texto> }); - por exemplo, { cálculo da raiz }. Capítulo 1. 26/37

Elaboração de algoritmos - Expressões e comando de atribuição Elaboração de algoritmos - Expressões e comando de atribuição - Existem três tipos de expressões, dependendo dos tipos dos operadores e das variáveis envolvidas: - aritméticas, - lógicas e - literais. - O símbolo é usado para atribuir o resultado de uma expressão a uma variável, <variável> <expressão> - Por exemplo, velocidade deslocamento/tempo mensagem matriz singular - Na elaboração dos algoritmos, podem ser usadas - operadores aritméticos, relacionais e lógicos - funções matemáticas predefinidas: trigonométricas e numéricas. Capítulo 1. 27/37

Elaboração de algoritmos - Comandos de entrada e saída Elaboração de algoritmos - Comandos de entrada e saída - O comando leia: <lista-de-variáveis> indica que a <lista-de-variáveis> está disponível para leitura nalgum dispositivo externo. - Por sua vez, o comando escreva: <lista-de-variáveis> deve ser utilizado para indicar onde certos valores de interesse - estão disponíveis no programa e - devem ser escritos nalgum dispositivo externo. Capítulo 1. 28/37

Elaboração de algoritmos - Estruturas condicionais Elaboração de algoritmos - Estruturas condicionais - Uma estrutura condicional torna possível a escolha dos comandos a serem executados quando certa condição for satisfeita ou não. - Podem ser simples ou compostas. - Estrutura condicional simples se <condição> então <comandos> fim_se - Estrutura condicional composta se <condição> então <comandos_1> senão <comandos_2> fim_se Capítulo 1. 29/37

Elaboração de algoritmos - Estruturas de repetição Elaboração de algoritmos - Estruturas de repetição - Número indefinido de repetições repita <comandos_1> se <condição> então interrompa fim_se <comandos_2> fim_repita <comandos_3> - Número definido de repetições para <controle> <valor-inicial> até <valor-final> passo <delta> faça <comandos> fim_para Capítulo 1. 30/37

Elaboração de algoritmos - Falha no algoritmo Elaboração de algoritmos - Falha no algoritmo - Para indicar que haverá uma falha evidente na execução do algoritmo, usar o comando abandone Capítulo 1. 31/37

Elaboração de algoritmos - Exemplos de algoritmos Elaboração de algoritmos - Exemplos de algoritmos - Problema 1: Dado um vetor x com n componentes (elementos), elaborar um algoritmo para determinar - a média aritmética x e - o desvio padrão s dos seus elementos, sabendo que e n x = 1 n i=1 x i, s = 1 n n 1( i=1 2 1 x i n( n i)2) x. i=1 Capítulo 1. 32/37

Elaboração de algoritmos - Exemplos de algoritmos - Algoritmo: Algoritmo Média_desvio { Objetivos: Calcular média aritmética e desvio padrão } parâmetros de entrada: n, x { tamanho e elementos do vetor } parâmetros de saída: Média, DesvioPadrão Soma 0 Soma2 0 para i 1 até n faça Soma Soma + x(i) Soma2 Soma2 + x(i) 2 fim_para Média Soma / n DesvioPadrão raiz 2 ((Soma2 (Soma 2 / n)) / (n-1)) escreva: Média, DesvioPadrão fim_algoritmo Capítulo 1. 33/37

Elaboração de algoritmos - Complexidade computacional Elaboração de algoritmos - Complexidade computacional - É usual definir-se uma função de complexidade para medir o custo de execução de um algoritmo. - Esta função tanto pode ser uma medida do - tempo necessário para executar o algoritmo que resolve um problema de tamanho n, - espaço de memória requerido para esta execução. A complexidade computacional de um algoritmo - refere-se à estimativa do esforço computacional despendido para resolver o problema, - é medido pelo número de operações aritméticas e lógicas efetuadas para resolver um sistema linear de ordem n. - Os problemas têm complexidade computacional e podem-se enquadrar em dois grupos: - o composto pelos algoritmos polinomiais, sendo a função de complexidade da forma: O(c n p n + c n-1 p n-1 +... + c 1 p 1 + c 0 ) - o formado pelos algoritmos exponenciais, sendo a função de complexidade da forma: O(c n ), c > 1. - Exemplo: Capítulo 1. 34/37

Elaboração de algoritmos - Complexidade computacional - Considere-se o polinómio de Lagrange de grau n definido da seguinte forma: n L n (x) = i=0 n y i j=0 j i x x j x i x j - Expandindo aquela expressão, resulta a Expressão 1: L n (x) = y 0 x x 1 x 0 x 1 x x 2 x 0 x 2... x x n x 0 x n + + y 1 +... + x x 0 x 1 x 0 x x 2 x 1 x 2... x x n x 1 x n + + y n x x 0 x n x 0 x x 1 x n x 1... x x n 1 x n x n 1 Capítulo 1. 35/37

Elaboração de algoritmos - Complexidade computacional - Considerando que o número de pontos m usados na interpolação é igual a n+1, onde n é o grau do polinómio, então a complexidade computacional do algoritmo é: m Adições: 2(m 1) + 1 = 2(m 2 2m + m) = 2(n + 1) 2 (n + 1) = 2n 2 + 3n + 1 i=1 m Multiplicações: (m 1) = m 2 m = (n + 1) 2 (n + 1) = n 2 + n i=1 m Divisões: (m 1) = (m 2 m) = (n + 1) 2 (n + 1) = n 2 + n i=1 Estes resultados são resumidos na tabela seguinte: Operações Complexidade Adições 2n 2 + 3n + 1 Multiplicações Divisões n 2 + n n 2 + n Capítulo 1. 36/37

Elaboração de algoritmos - Complexidade computacional - O polinómio de Lagrange também pode ser expandido de modo a resultar a Expressão 2: L n (x) = y 0 (x x 1 ) (x x 2 )... (x x n ) (x 0 x 1 ) (x 0 x 2 )... (x 0 x n ) + + y 1 (x x 0 ) (x x 2 )... (x x n ) (x 1 x 0 ) (x 1 x 2 )... (x 1 x n ) + +... + + y n (x x 0 ) (x x 1 )... (x x n 1 ) (x n x 0 ) (x n x 1 )... (x n x n 1 ) - Analisando a complexidade computacional do algoritmo desta expressão, verifica-se que - o número de adições é o mesmo (2n 2 + 3n + 1), - o de multiplicações é da mesma ordem (n 2 ), - o número de divisões utilizadas na Expressão 2 é de uma ordem grandeza menor (n). - O polinómio de Lagrange serve para exemplificar que - uma mesma notação matemática pode resultar em algoritmos de diferentes complexidades. - Isto deve estar presente ao elaborar-se um algoritmo. Capítulo 1. 37/37