ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS

Tamanho: px
Começar a partir da página:

Download "ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS"

Transcrição

1 ESTRUTURAS DE INFORMAÇÃO E ANÁLISE DE ALGORITMOS Estrutura de informação é uma maneira sistemática de organizar e aceder a dados e algoritmo é um procedimento passo a passo para realizar uma tarefa num intervalo de tempo finito. Estes conceitos são fundamentais em computação e dedicaremos a nossa atenção à discussão de princípios e paradigmas para que o projecto e a implementação de boas estruturas e algoritmos formem uma ferramenta para o desenvolvimento de soluções de importantes problemas através do computador. Um algoritmo deve apresentar as seguintes características: Ter entrada e saída Ser finito Ser definido Além disso, ao projectarmos estruturas e algoritmos teremos que ter sempre presente dois objectivos principais: Correcção Eficiência Correcção significa trabalhar correctamente quaisquer que sejam os dados de entrada dentro de um certo domínio. Assim, uma estrutura que deve guardar uma colecção de números ordenadamente, nunca deve permitir que sejam guardados números fora de ordem. De igual modo um algoritmo para listar valores por ordem nunca deve fazer a saída de valores fora dessa ordem. Quanto à eficiência significa que quer estruturas quer algoritmos devem ser rápidos e nunca usar recursos do computador superiores ao necessário. Estes objectivos acarretam a produção de software de qualidade e por isso podemos acrescentar que haverá também objectivos a cumprir nas implementações de estruturas e de algoritmos, tais como: Robustez Adaptabilidade Reutilização Por robustez entende-se a possibilidade de dar resposta à manipulação de entradas não esperadas. Claro que a robustez não surge automaticamente, tem que ser projectada desde o início. Departamento de Engª Informática do ISEP 1

2 Adaptabilidade significa permanecer embora se alterem as condições do seu ambiente, por exemplo não deveria ser problema a chegada do novo milénio e os efeitos nos cálculos de datas se o software fosse adaptável Reutilização significa que o mesmo código seja um componente de diferentes sistemas em vários domínios de aplicação. No entanto esta reutilização deve ser usada com cuidado pois é uma das fontes de erros. A reutilização traduz-se numa importante poupança de tempo e consequentemente de dinheiro. Tem havido muita investigação no campo da engenharia de software e de linguagens de programação para o desenvolvimento de metodologias para o projecto de software que sejam simples e poderosas. Actualmente uma que se mostra bastante promissora é baseada na orientação para objectos. Os princípios orientadores desta aproximação são: Abstracção Encapsulamento Modularidade O conceito de abstracção existe quando somos capazes de destacar num sistema as suas partes fundamentais e descrevê-las numa linguagem simples e precisa. Por exemplo, no caso de um editor de texto, no "editar" da barra de menu, temos geralmente as operações de "cortar" e "colar". Podemos dizer que "cortar" retira o texto seleccionado e coloca-o num buffer externo e que o "colar" insere o conteúdo desse buffer numa posição específica do texto. A definição destas operações foi feita de uma maneira clara e simples, sem necessidade de entrar em pormenores, isto é, introduzindo abstracção. Usando este paradigma para projectarmos estruturas de informação atingimos o que chamamos Tipos Abstractos de Dados (ADT). Um Tipo Abstracto de Dados é um modelo matemático duma estrutura de dados que especifica o tipo de dados guardados e as operações que se podem realizar sobre eles. Um Tipo Abstracto de Dados será modelado por uma linguagem orientada por objectos através de uma classe. O conceito de encapsulamento define que os diferentes componentes de um sistema de software devem implementar uma abstracção como descrito acima sem revelarem pormenores internos da sua implementação. Nós percebemos como usar as operações de "cortar" e "colar" sem precisarmos de saber exactamente como está implementado. Uma das vantagens do encapsulamento é que dá ao programador toda a liberdade na implementação de pormenores do sistema. A modularidade refere-se a uma organização estrutural em que os diferentes componentes dum sistema de software estão divididos em unidades funcionais que podem interactuar de forma bem definida. Além disso esta forma organizacional está estritamente ligada à noção de hierarquia, Departamento de Engª Informática do ISEP 2

3 devem-se estruturar os diferentes módulos de uma forma hierárquica, agrupando funcionalidades comuns ao mais alto nível e comportamentos específicos serão extensões dos mais gerais. Esta forma de estruturar o projecto de software,recorrendo á modularidade e hierarquia vai facilitar a reutilização. Estes princípios agora descritos (abstracção, encapsulamento e modularidade) para projectarmos o software numa aproximação orientada para objecto, exigem técnicas específicas que se traduzem em : Classes e objectos Interfaces e tipificação Herança e Polimorfismo. Estes conceitos já foram estudados em disciplinas anteriores e portanto podem ser consultados por exemplo nos apontamentos de LPII. Enumeramos um conjunto de características a que deve obedecer o projecto de sofware, nomeadamente de estruturas de informação e algoritmos no paradigma de orientação para objectos. Para que o entendimento seja mais completo e consigamos saber porquê usar uma determinada estrutura ou um determinado algoritmo precisamos de ver como è que podemos analisar algoritmos. A Análise de algoritmos pode ser feita atendendo a diferentes aspectos. Assim temos análise envolvendo : Funcionalidade (tracing / teste ) Correcção ( técnicas matemáticas ) Complexidade (espacial e temporal ) É sobre a análise de complexidade de algoritmos que nos vamos debruçar. ANÁLISE de COMPLEXIDADE é um dos critérios para avaliar algoritmos segundo o qual é avaliado o índice de crescimento do tempo (temporal) ou do espaço (espacial) exigido para resolver instâncias do problema cada vez maiores. TEMPO de COMPLEXIDADE de um ALGORITMO é o tempo exigido para a execução de um algoritmo, expresso como uma função do tamanho do problema. TAMANHO do PROBLEMA é o inteiro associado a um problema que é a medida da quantidade dos dados de entrada. Departamento de Engª Informática do ISEP 3

4 ESPAÇO de COMPLEXIDADE de um ALGORITMO é o espaço exigido para a execução de um algoritmo, expresso como uma função do tamanho do problema. COMPLEXIDADE TEMPORAL O tempo para correr completamente um programa, é a soma do tempo de compilação e do tempo de execução. O tempo de compilação depende das máquinas, compiladores e não pròpriamente das características do algoritmo. Analisaremos então o tempo de execução. Sabemos que o valor exacto do tempo de execução de um algoritmo também depende da linguagem e da máquina utilizada, logo não é isto que nos interessa, mas uma ordem de grandeza desse tempo em função da quantidade dos dados de entrada. Pretendemos saber como se comporta um algoritmo quanto ao tempo de execução, isto é como varia o tempo de execução do algoritmo atendendo só à variação da quantidade de dados a processar. Por exemplo, ordenar um vector com 10 elementos não leva o mesmo tempo que ordenar um vector com 1000 elementos. O que nos interessa é relacionar a variação que existe no tempo de ordenação com a variação do número de elementos. Interessa-nos portanto prever o crescimento do tempo de execução conforme mudam as características da instância do problema, para podermos comparar dois programas que realizam a mesma função ou para ajuizarmos se um determinado programa pode ser usado para fornecer respostas em tempo real. São várias as razões que levam à necessidade deste tipo de estudo. O gráfico abaixo mostra algumas das funções características associadas à complexidade temporal de algoritmos Departamento de Engª Informática do ISEP 4

5 n! 2 n Função Complexidade n*log n n 2 20 n log n Dados Nomeadamente: n n n! 2 n, são exemplos de funções exponenciais e há ainda funções do tipo polinomial como por exemplo : n 2 n 3 n n log n log n Conforme se pode verificar no gráfico anterior os algoritmos com complexidade do tipo exponencial são muito lentos, uma vez que a um aumento pequeno na dimensão implica um enorme aumento no tempo de execução, só serão aplicáveis quando existem poucos dados de entrada. No caso de problemas de grandes dimensões deverá sempre que possível fazer-se a substituição de algoritmos exponenciais por algoritmos polinomiais. É evidente que quando a dimensão dos dados de entrada aumenta qualquer algoritmo polinomial é mais eficiente que um algoritmo exponencial FUNÇÂO VALORES APROXIMADOS n n log n n n * * n! * Departamento de Engª Informática do ISEP 5

6 INTRODUÇÃO à NOTAÇÃO O( ) ( big Oh ) Este tipo de notação é assimptótica porque vai ser definida para um comportamento limite, quando aumenta o tamanho do problema. Para introduzirmos esta questão começaremos por exemplificar como fazer a análise da complexidade temporal de um algoritmo Consideremos um algoritmo que determina a quantidade de 1s existentes na representação binária de um número n. algoritmo: 1. ler(n) 2. conta? 0 3. Enquanto n > 0 fazer 4. conta? conta + resto de n por 2 5. n? n / 2 Fim enquanto Seja t1 o tempo necessário para a execução dos passos 1. e 2. t2 do passo 3. t3 dos passos 4. e 5. O tempo total para execução do algoritmo, atendendo a estes tempos e ao número de vezes que os diferentes passos se repetem será: T(n) = t1 * 1 + t2 * (K+1) + t3 * K, em que K será o número de iterações do ciclo. O valor de K irá depender do valor de n, quanto maior for o número n, mais iterações terão que ser feitas, isto é mais divisões por 2 serão efectuadas até o valor de n ser nulo. Temos agora que relacionar este K com n. Se atendermos à construção da representação binária de números verificamos que o número de divisões por 2 se relaciona com o log 2 n,isto é, a função inversa da potência de base 2 que se aplica para o cálculo do valor decimal de um número na sua representação binária. Com efeito verifica-se: n K função Departamento de Engª Informática do ISEP 6

7 log log log log 2 18 NOTA 1: log 2 n design-se por chão do log 2 n e significa o maior valor inteiro contido em log 2 n. Ex: 3.1 = = -3 NOTA 2 : X representa-se o tecto de X, isto é, o menor inteiro não inferior a X Ex: 3.1 = = -2 Retomando a expressão que nos determina o tempo total de execução do algoritmo temos: T(n) = t1 * 1 + t2 * (K+1) + t3 * K T(n) = t1 + t2 + k * (t2 + t3), substituindo K por (1 + log 2 n ) vem, T(n) = t1 + t2 + (1 + log 2 n )*(t2 + t3) como t1 e t2 e t3 são constantes para um dado computador, é possível encontrar uma constante C tal que se verifique, T(n) < C * (1 + log 2 n ) representando (1 + log 2 n ) por g (n) teremos: T(n) < C * g(n), para n > 1. Assim dizemos que o tempo de execução é de ordem g(n) = 1 + log 2 n e representamos por t(n) = O (g(n)) Dá-nos ideia de como é o crescimento do tempo de execução com a variação de n. Para diferentes computadores os tempos t1, t2, t3 são diferentes mas g(n) é constante. A notação das ordens de grandeza permite representar algo independente do computador. Em geral dizemos que f(n) é da ordem de g(n) quando existe um K tal que : n >= n 0? f(n) < =K * g(n) ou seja, g(n) multiplicado por uma constante apropriada majora f(n) para todos os n > n 0. Departamento de Engª Informática do ISEP 7

8 No exemplo, g(n) = 1 + log 2 n < 2 * log 2 n < 2 * log 2 n, n > 2. Podemos então dizer que o algoritmo estudado é da ordem ( ou complexidade temporal ) de log 2 n porque, t(n) < C * g(n) < 2C * log 2 n Se tivéssemos : g(n) < 1000 n 3 diríamos que era de ordem n 3? O (n 3 ) g(n) < 5n2 + 3n + 7 ordem n 2? O (n 2 ) g(n) < 1032 ordem 1? O (1 ) g(n) < n + log n ordem n? O (n) g(n) < n ordem n 2? O (n 2 ) NOTA : n = n ( n +1 )/ n = 2 n+1 1 Interessa também referir o seguinte: Se T1(n)=O(f(n)) e T2(n)=O(g(n)) então a) T1(n) + T2(n) = max(o(f(n), O(g(n)) b) T1(n) * T2(n)= O(f(n) * g(n)). Podemos analisar o algoritmo seguindo outras ordens, nomeadamente a ordem omega e a ordem teta. Assim, diz-se que o algoritmo A é de ordem? (g(n)) se existe uma constante C, para valores de n>=n0 tal que se verifica a relação T(n)> C* g(n). Diz-se que o algoritmo A é de ordem? (g(n)) se é de O(g(n)) e de ordem? (g(n)). Faremos nesta introdução só a análise big oh. O exemplo apresentado anteriormente, era determinístico, isto é, não foi preciso atender à forma de distribuição dos dados para obter o tempo de execução. Geralmente tal não se passa assim, para ser possível fazer a análise de complexidade é necessário supor determinada distribuição dos dados. E nesse caso há a considerar : Departamento de Engª Informática do ISEP 8

9 Caso mais desfavorável Caso mais favorável Caso médio Vamos então analisar um caso não determinístico, seja por exemplo a pesquisa sequencial de um valor X num vector com n elementos. Algoritmo: Inicio enc? 0 i? 1 Enquanto i <= n e não enc se v( i) = X então enc? 1 Fim enquanto senão i? i+1 Para fazermos a análise de complexidade devemos primeiro identificar qual(ais ) a operação activa(s), aquela que vai ser preponderante na execução do algoritmo, como estamos a fazer a análise big oh, podemos desprezar os termos de ordem baixa, uma vez que big oh é um limite superior. Neste caso, a operação activa será: se v( I) = X e vamos analisar o número de vezes que esta operação será executada em função do número de elementos do vector, tamanho do problema. Como fàcilmente se conclui, agora não é só o tamanho do problema que vai influenciar o tempo de execução, mas também é fundamental, a posição do elemento a pesquisar no vector. Assim se o valor X se encontrar no início do vector, o tempo de execução não é o mesmo que no caso de ele se encontrar no final. Teremos então de considerar os 3 casos anteriormente enunciados. Caso mais favorável: X encontra-se no início do vector, só é feita uma comparação. Complexidade O ( 1 ). Departamento de Engª Informática do ISEP 9

10 Caso menos favorável X encontra-se no fim do vector, são feitas n comparações. Complexidade O ( n ). Caso médio : Para analisarmos esta situação, uma vez que não sabemos em que posição se vai encontrar X, teremos que calcular o tempo médio supondo que se verificam ni ocorrências em cada uma das posições e depois fazer uma média pesada. Assim, ocorreu: n 1 vezes na posição 1 e levou o tempo t 1 n 2 vezes na posição 2 e levou o tempo t 2 n 3 vezes na posição 3 e levou o tempo t 3... n n vezes na posição n e levou o tempo t n n k vezes não ocorreu e levou o tempo t k Sendo N = n 1 + n 2 + n n n + n k O tempo médio será: T m = (n 1 * t 1 + n 2 * t 2 + n 3 * t n n * t n + n k * t k ) /N T m = n 1 /N* t 1 + n 2 /N * t 2 + n 3 /N * t n n /N * t n + n k /N * t k Quando o número de ocorrências for infinito ni /N tenderá a ser a probabilidade de ocorrer a situação i. Assim, Tm =? (probabilidade de ocorrer a situação i) * (o tempo da ocorrência i) Sendo, p a probabilidade de X existir no vector, será: Probabilidade de X não existir no vector Probabilidade de X estar na posição i 1 - p p / n Aplicando a fórmula deduzida para Tm, teremos: Departamento de Engª Informática do ISEP 10

11 Tm = prob. de X estar em 1 * 1 + prob. de X estar em 2 * prob.de X estar em n * n + prob. de X não estar no vector * n Tm = p /n* 1 + p/n *2 + p/n * p/n * n + (1-p) * n Tm = p /n * ( n) + (1- p) * n Tm = p * (1 /n + 2/n + 3/n n/n) + (1- p) * n Tm = p * (n + 1) /2 + (1- p) * n Se p = 1? Tm = ( n + 1)/2? O (n) Se p = 1/2? Tm = 3 /4 n? O (n) Assim, qualquer que seja o valor de p (entre 0 e 1, uma vez que é uma probabilidade) podemos considerar que Tm é de ordem n. É vulgar acontecer como neste exemplo, o caso médio coincidir com o caso mais desfavorável. Se os computadores são mais rápidos podemos no mesmo tempo tratar problemas maiores, mas é a complexidade do algoritmo que determina o aumento do tamanho do problema que pode conseguir-se com esse aumento de velocidade, como já foi referido. Descrevemos abaixo uma tabela que evidencia a variação do tamanho do problema a tratar para o mesmo tempo de processamento de acordo com a complexidade temporal do algoritmo. ALGORITMO COMPLEXIDADE 1 segundo 1 minuto 1 hora A1 n * *10 6 A2 n log n *105 A3 n A4 n A5 2 n Supondo que a velocidade da máquina aumentava 10 vezes, vejamos o que se passaria no aumento do tamanho do problema para algumas complexidades temporais mais vulgares : Departamento de Engª Informática do ISEP 11

12 ALGORITMO COMPLEXIDADE TEMPORAL TAMANHO MAX na máquina inicial TAMANHO MAX na máq. 10 x + rápida A1 n s1 10 * s1 A2 n log n s2 10* s2 aprox. s2 grd A3 n 2 s * s3 A4 n 3 s * s4 A5 2 n s s5 Façamos mais outro exemplo, consideremos agora o algoritmo de multiplicação de 2 matrizes, seja C(m, p) = A(m, n) x B(n, p) Algoritmo Inicio Para i =1 até m Para j = 1 até p 1. s? 0 Para k = 1 até n 2. s? s + A(i, k) * B(k, j) Fim para (k) 3. C(i, j)? s Fim para (j) Fim para (i) Supondo as matrizes quadradas com m = p = n teremos: A linha 1. tem como tempo de execução t1 e é executada n 2 vezes Departamento de Engª Informática do ISEP 12

13 A linha 2. tem como tempo de execução t2 e é executada n 3 vezes A linha 3. tem como tempo de execução t3 e é executada n 2 vezes Logo o tempo de execução será: T(n) = (t1+t3) * n 2 + t2 * n 3 ou seja T(n) = K * n 2 + K * n 3? O (n 3 ) Nesta análise podemos atender às seguintes regras:. O tempo de execução de um ciclo é no máximo o tempo das instruções dentro do ciclo, vezes o número de iterações.. No caso de ciclos encaixados, o tempo de execução total de uma instrução dentro de um grupo de ciclos encaixados é o tempo de execução da instrução multiplicada pelo produto do tamanho de todos os ciclos.. Instruções consecutivas adicionam-se.. No caso de uma instrução se o tempo de execução nunca é maior do que o tempo de execução SE (cond) Então C1 Senão C2 do teste mais o maior dos tempos de execução de C1 e de C2.. Se houver chamadas a funções, obviamente que estas terão que ser analisadas primeiro.. No caso de recursividade, se for simples e for possível transformar num ciclo será uma análise trivial. No caso em que a recursividade é difícil de converter em ciclo, há que resolver a relação de recorrência com atenção( exemplo nas aulas práticas). LIMITAÇÔES DA ANÁLISE DA COMPLEXIDADE TEMPORAL Não podemos esquecer que esta análise da complexidade de algoritmos sofre de limitações, nomeadamente quando se determina a complexidade ignorando-se as constantes. Assim, um algoritmo cujo índice de crescimento seja g(n) é ainda considerado de complexidade g(n). Atendamos também ao seguinte é que na análise temporal só se mede o tempo, podendo haver eventualmente outras propriedades mais importantes, por exemplo, se a compreensão do algoritmo for mais importante então o tempo de complexidade deverá ficar para trás. De modo idêntico, em algoritmos numéricos a precisão é muitas vezes mais importante do que a complexidade temporal e podemos dar preferência a um algoritmo mais lento, mas mais preciso em vez de um mais rápido mas menos preciso. Por vezes há que também balancear entre o tempo de execução de um algoritmo e o espaço por ele ocupado. Assim, algoritmos que precisem de correr em processadores embebidos, tais como pequenos computadores que controlam automóveis ou telemóveis, o espaço é mais precioso do Departamento de Engª Informática do ISEP 13

14 que o tempo e preferem-se algoritmos mais lentos que ocupem menos espaço do que mais rápidos mas que exijam mais espaço. Do mesmo modo, podemos preferir entre dois algoritmos que apresentem em caso médio uma complexidade temporal diferente, aquele que possui a mais desfavorável desde que, por exemplo, as aplicações visem preponderância para execução do algoritmo nas condições do caso mais favorável e nesse caso a complexidade deste seja melhor, embora o não seja no caso médio. Em conclusão, temos que ser cuidadosos quando escolhemos um algoritmo em detrimento de outro. Como vimos a análise de algoritmos tem limitações, contudo, um analista prevenido quanto a estas limitações, tem na análise da complexidade uma ferramenta importante e extremamente útil sempre que precise de comparar algoritmos e recomendar um em vez de outro. COMPLEXIDADE ESPACIAL Aquilo que dissemos anteriormente para o tempo de execução de um algoritmo repetimo-lo mas agora considerando o espaço ocupado pelo algoritmo durante a respectiva execução. O espaço de complexidade de um programa é o total de memória que é necessário para correr completamente. Interessa conhecer a função que define o comportamento do algoritmo relacionando o espaço de memória ocupado com o número de dados que têm que ser manipulados. Intervêm neste espaço os seguintes componentes: Espaço de Instruções: espaço necessário para guardar a versão compilada das instruções do programa. Este espaço é constante para um dado programa referente a um dado compilador, com determinadas opções de compilação. Cada compilador para a construção de código máquina da mesma instrução, precisa de diferente espaço, cada um gera o seu código. Ainda o mesmo compilador pode gerar diferente código de acordo com o uso ou não de opções de compilação. O próprio computador também pode afectar o espaço de código, por exemplo se possui hardware com vírgula flutuante ou não. No primeiro caso as instruções com vírgula flutuante são traduzidas numa instrução máquina por operação. Caso contrário, ter-se-á que gerar código que simule a operação em vírgula flutuante. Não é este espaço que nos interessa analisar. Espaço de Dados: espaço onde estão definidas as variáveis globais e que varia de acordo com os dados que tem o nosso problema. Espaço de Stack: usado para guardar a informação necessária para resumir a execução de funções. Aí, de uma forma genérica podemos dizer que são guardados os endereços de retorno das funções, variáveis locais e parâmetros formais. Este espaço tal como o anterior varia com o tipo de algoritmo usado e portanto será também analisado para avaliação da complexidade espacial. Departamento de Engª Informática do ISEP 14

15 Estes dois espaços serão aqueles que nos debruçaremos para analisar o espaço de complexidade. Exemplo1: analisar quanto à complexidade espacial, o algoritmo da função que faz a pesquisa sequencial de um valor x, num vector a, com n elementos. int pesquisa_sequencial( a[], &x, n) Inicio //devolve a posição do array onde se encontra x, devolverá -1 se não existir Para(i=0; i<n && a[i]!=x;i++); Se(i==n) Então devolve -1; Senão devolve i; Fim Espaço total : endereço de retorno 2 bytes+ apontador a 2 + apontador para parâmetro actual de x 2 + valor do parâmetro formal n 2 + variável local i 2 10bytes Nota: o espaço para o array não foi alocado nesta função, logo não foi contabilizado. Assim esta função tem um espaço de complexidade constante, é de O (1). Exemplo2:Deduzir a ordem da complexidade temporal dos algoritmos que determinam o factorial de um valor n, algoritmo recursivo e iterativo. int factorialrecursivo( n) Inicio se(n<=1) então devolve 1; senão devolve n * factorialrecursivo( n-1); Fim A profundidade da recursividade é n e de cada vez que a funçaõ é invocada, o espaço de stack ocupado é dado por: endereço de retorno 2 bytes+ valor do parâmetro formal n 2 será n*4, ou seja O(n). No caso de função iterativa para o cálculo de factorial teremos: 4bytes isto isto é, o espaço total Departamento de Engª Informática do ISEP 15

16 int factorialiterativo ( int n) Inicio fact=1; enquanto(n>1) fact=n*fact; n--; Fenquanto devolve fact; Fim Assim, o espaço de stack será dado por: Espaço total : endereço de retorno 2 bytes+ valor do parâmetro formal n 2 + variável local fact 2 6 bytes, neste caso o espaço é constante, não depende do valor de n, logo a complexidade espacial é de O(1); Atendendo à complexidade espacial o algoritmo iterativo para cálculo de factoriais é mais favorável do que o recursivo. Departamento de Engª Informática do ISEP 16

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

ÁRVORES BINÁRIAS DE PESQUISA

ÁRVORES BINÁRIAS DE PESQUISA ÁRVORES BINÁRIAS DE PESQUISA Árvores binárias de pesquisa são uma estrutura alternativa do tipo árvore binária, para guardar valores de tal forma que a recuperação dos mesmos pode ser efectuada de forma

Leia mais

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

Dadas a base e a altura de um triangulo, determinar sua área. Disciplina Lógica de Programação Visual Ana Rita Dutra dos Santos Especialista em Novas Tecnologias aplicadas a Educação Mestranda em Informática aplicada a Educação [email protected] Conceitos Preliminares

Leia mais

2. Representação Numérica

2. Representação Numérica 2. Representação Numérica 2.1 Introdução A fim se realizarmos de maneira prática qualquer operação com números, nós precisamos representa-los em uma determinada base numérica. O que isso significa? Vamos

Leia mais

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO. SISTEMAS DE GESTÃO DE BASE DE DADOS Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO Microsoft Access TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO CONCEITOS BÁSICOS 1 Necessidade das base de dados Permite guardar dados dos mais variados tipos; Permite

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia e não têm a intenção de substituir o livro-texto, nem qualquer outra bibliografia. Introdução O Cálculo Numérico

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Modelo Cascata ou Clássico

Modelo Cascata ou Clássico Modelo Cascata ou Clássico INTRODUÇÃO O modelo clássico ou cascata, que também é conhecido por abordagem top-down, foi proposto por Royce em 1970. Até meados da década de 1980 foi o único modelo com aceitação

Leia mais

CAP. I ERROS EM CÁLCULO NUMÉRICO

CAP. I ERROS EM CÁLCULO NUMÉRICO CAP. I ERROS EM CÁLCULO NUMÉRICO 0. Introdução Por método numérico entende-se um método para calcular a solução de um problema realizando apenas uma sequência finita de operações aritméticas. A obtenção

Leia mais

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos

Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Sistemas Distribuídos: Princípios e Algoritmos Introdução à Análise de Complexidade de Algoritmos Francisco José da Silva e Silva Laboratório de Sistemas Distribuídos (LSD) Departamento de Informática

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO

TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO TECNOLOGIAS DE INFORMAÇÃO E COMUNICAÇÃO ACCESS 2010 Conceitos Básicos Ficha Informativa Professor : Vanda Pereira módulo didáctico Conceitos Básicos Necessidade das base de dados Permite guardar dados

Leia mais

Utilização do SOLVER do EXCEL

Utilização do SOLVER do EXCEL Utilização do SOLVER do EXCEL 1 Utilização do SOLVER do EXCEL José Fernando Oliveira DEEC FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO MAIO 1998 Para ilustrar a utilização do Solver na resolução de

Leia mais

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação

Ministério das Finanças Instituto de Informática. Departamento de Sistemas de Informação Ministério das Finanças Instituto de Informática Departamento de Sistemas de Informação Assiduidade para Calendários Específicos Junho 2010 Versão 6.0-2010 SUMÁRIO 1 OBJECTIVO 4 2 ECRÃ ELIMINADO 4 3 NOVOS

Leia mais

Aula 03 Custos de um algoritmo e funções de complexidade

Aula 03 Custos de um algoritmo e funções de complexidade BC1424 Algoritmos e Estruturas de Dados I Aula 03 Custos de um algoritmo e funções de complexidade Prof. Jesús P. Mena-Chalco [email protected] 1Q-2015 1 Custo de um algoritmo e funções de complexidade

Leia mais

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem: 1 UNIVERSIDADE FEDERAL DE VIÇOSA Departamento de Matemática - CCE Cálculo Numérico - MAT 271 Prof.: Valéria Mattos da Rosa As notas de aula que se seguem são uma compilação dos textos relacionados na bibliografia

Leia mais

Informática II Cap. 3

Informática II Cap. 3 Cap. 3 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens:

Leia mais

Aplicações de Escritório Electrónico

Aplicações de Escritório Electrónico Universidade de Aveiro Escola Superior de Tecnologia e Gestão de Águeda Curso de Especialização Tecnológica em Práticas Administrativas e Tradução Aplicações de Escritório Electrónico Folha de trabalho

Leia mais

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia

Instituto Superior Politécnico de VISEU. Escola Superior de Tecnologia 1 Tradicionalmente, programar significava apenas a escrita de um programa, que resolvesse o problema pretendido de uma forma aparentemente correcta. Problema Problema Programa Programa Desvantagens: Programas

Leia mais

Licenciatura em Engenharia Electrotécnica e de Computadores 1998/99. Erros

Licenciatura em Engenharia Electrotécnica e de Computadores 1998/99. Erros Licenciatura em Engenharia Electrotécnica e de Computadores Análise Numérica 1998/99 Erros Objectivos: Arredondar um número para n dígitos significativos. Determinar os erros máximos absoluto e relativo

Leia mais

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Cálculo Numérico Aula : Computação numérica. Tipos de Erros. Aritmética de ponto flutuante Computação Numérica - O que é Cálculo Numérico? Cálculo numérico é uma metodologia para resolver problemas matemáticos

Leia mais

Análise de Algoritmos: Melhor caso, pior caso, caso médio

Análise de Algoritmos: Melhor caso, pior caso, caso médio Análise de Algoritmos: Melhor caso, pior caso, caso médio Fernando Lobo Algoritmos e Estrutura de Dados II 1 / 25 Sumário Rever um problema e um algoritmo que já conhecem. Descrevê-lo em pseudo-código

Leia mais

1.1. Organização de um Sistema Computacional

1.1. Organização de um Sistema Computacional 1. INTRODUÇÃO 1.1. Organização de um Sistema Computacional Desde a antiguidade, o homem vem desenvolvendo dispositivos elétricoeletrônicos (hardware) que funciona com base em instruções e que são capazes

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf ([email protected]) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis. 3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite [email protected]

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite [email protected] Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Figura 1 - O computador

Figura 1 - O computador Organização e arquitectura dum computador Índice Índice... 2 1. Introdução... 3 2. Representação da informação no computador... 4 3. Funcionamento básico dum computador... 5 4. Estrutura do processador...

Leia mais

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador. Linguagem de Programação Uma linguagem de programação é um método padronizado para expressar

Leia mais

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

Leia mais

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

Manual do Revisor Oficial de Contas. Directriz de Revisão/Auditoria 300 ÍNDICE

Manual do Revisor Oficial de Contas. Directriz de Revisão/Auditoria 300 ÍNDICE Directriz de Revisão/Auditoria 300 PLANEAMENTO Junho de 1999 ÍNDICE Parágrafos Introdução 1-4 Planeamento do Trabalho 5-8 Plano Global de Revisão / Auditoria 9-10 Programa de Revisão / Auditoria 11-12

Leia mais

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

PHC Serviços CS. A gestão de processos de prestação de serviços

PHC Serviços CS. A gestão de processos de prestação de serviços PHC Serviços CS A gestão de processos de prestação de serviços A solução que permite controlar diferentes áreas de uma empresa: reclamações e respectivo tratamento; controlo de processos e respectivos

Leia mais

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia.

Na medida em que se cria um produto, o sistema de software, que será usado e mantido, nos aproximamos da engenharia. 1 Introdução aos Sistemas de Informação 2002 Aula 4 - Desenvolvimento de software e seus paradigmas Paradigmas de Desenvolvimento de Software Pode-se considerar 3 tipos de paradigmas que norteiam a atividade

Leia mais

Matemática Financeira II

Matemática Financeira II Módulo 3 Unidade 28 Matemática Financeira II Para início de conversa... Notícias como essas são encontradas em jornais com bastante frequência atualmente. Essas situações de aumentos e outras como financiamentos

Leia mais

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

2. ALGORITMOS. Unesp Campus de Guaratinguetá. Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 2. ALGORITMOS Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 2 - Algoritmo 2.1: Introdução Antes de se utilizar uma linguagem de computador,

Leia mais

1. Sistemas de numeração

1. Sistemas de numeração 1. Sistemas de numeração Quando mencionamos sistemas de numeração estamos nos referindo à utilização de um sistema para representar uma numeração, ou seja, uma quantidade. Sistematizar algo seria organizar,

Leia mais

Complexidade de Algoritmos. Edson Prestes

Complexidade de Algoritmos. Edson Prestes Edson Prestes Um problema pode ser resolvido através de diversos algoritmos; O fato de um algoritmo resolver um dado problema não significa que seja aceitável na prática. Na maioria das vezes, a escolha

Leia mais

REVISÃO E AVALIAÇÃO DA MATEMÁTICA

REVISÃO E AVALIAÇÃO DA MATEMÁTICA 2 Aula 45 REVISÃO E AVALIAÇÃO DA 3 Vídeo Arredondamento de números. 4 Arredondamento de números Muitas situações cotidianas envolvendo valores destinados à contagem, podem ser facilitadas utilizando o

Leia mais

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu

Faculdade de Engenharia Optimização. Prof. Doutor Engº Jorge Nhambiu 1 Programação Não Linear Aula 25: Programação Não-Linear - Funções de Uma única variável Mínimo; Mínimo Global; Mínimo Local; Optimização Irrestrita; Condições Óptimas; Método da Bissecção; Método de Newton.

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO Dizemos que uma equação é linear, ou de primeiro grau, em certa incógnita, se o maior expoente desta variável for igual a um. Ela será quadrática, ou

Leia mais

Somatórias e produtórias

Somatórias e produtórias Capítulo 8 Somatórias e produtórias 8. Introdução Muitas quantidades importantes em matemática são definidas como a soma de uma quantidade variável de parcelas também variáveis, por exemplo a soma + +

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas PONTIFÍCIA UNIVERSIDADE CATÓLICA DE GOIÁS Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas CMP1132 Processo e qualidade de software II Prof. Me. Elias Ferreira Sala: 402 E Quarta-Feira:

Leia mais

Interrupções. As interrupções são casos especiais de chamadas de procedimentos.

Interrupções. As interrupções são casos especiais de chamadas de procedimentos. Interrupções Uma interrupção é equivalente a uma chamada de procedimento. A chamada é equivalente a um CALL gerado pela execução de uma instrução. As interrupções são casos especiais de chamadas de procedimentos.

Leia mais

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

CÁLCULO DE ZEROS DE FUNÇÕES REAIS 15 CÁLCULO DE ZEROS DE FUNÇÕES REAIS Um dos problemas que ocorrem mais frequentemente em trabalhos científicos é calcular as raízes de equações da forma: f() = 0. A função f() pode ser um polinômio em

Leia mais

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS

DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS DEPARTAMENTO DE MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS Planificação Anual da Disciplina de TIC Módulos 1,2,3-10.ºD CURSO PROFISSIONAL DE TÉCNICO DE APOIO À GESTÃO DESPORTIVA Ano Letivo 2015-2016 Manual adotado:

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 04 Introdução a Análise de Algoritmos [email protected] Última aula Fundamentos de Matemática Exercícios: Somatórios; Logaritmos

Leia mais

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor()

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor() DICIONÁRIOS Esta estrutura inclui-se nos chamados contentores associativos, que não são mais do que uma colecção de estruturas de tipo Par, com dois membros de dados (chave de pesquisa e valor associado),

Leia mais

3 Sistemas de Numeração:

3 Sistemas de Numeração: 3 Sistemas de Numeração: Os computadores eletrônicos têm como base para seu funcionamento a utilização de eletricidade. Diferente de outras máquinas que a presença ou ausência de eletricidade apenas significam

Leia mais

FILAS DE PRIORIDADE e HEAPS

FILAS DE PRIORIDADE e HEAPS FILAS DE PRIORIDADE e HEAPS Já estudamos a estrutura fila que fornece os elementos segundo um critério FIFO, da fila removese o elemento mais antigo. Acontece em algumas aplicações que necessitamos de

Leia mais

Módulo III. Folhas de Cálculo

Módulo III. Folhas de Cálculo Módulo III Ferramentas do Office Folhas de Cálculo Ferramentas de produtividade 1 Folhas de Cálculo O que é: Uma Folha de Cálculo é, por tradição, um conjunto de células que formam uma grelha ou tabela

Leia mais

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho

Capítulo 3. Avaliação de Desempenho. 3.1 Definição de Desempenho 20 Capítulo 3 Avaliação de Desempenho Este capítulo aborda como medir, informar e documentar aspectos relativos ao desempenho de um computador. Além disso, descreve os principais fatores que influenciam

Leia mais

Diagrama de transição de Estados (DTE)

Diagrama de transição de Estados (DTE) Diagrama de transição de Estados (DTE) O DTE é uma ferramenta de modelação poderosa para descrever o comportamento do sistema dependente do tempo. A necessidade de uma ferramenta deste tipo surgiu das

Leia mais

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado.

TIC Unidade 2 Base de Dados. Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. Conceitos relativos à Informação 1. Informação O que á a informação? Informação é todo o conjunto de dados devidamente ordenados e organizados de forma a terem significado. 2. Dados Em informática designa-se

Leia mais

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação Universidade Federal de Campina Grande Departamento de Sistemas e Computação Introdução à Computação A Informação e sua Representação (Parte III) Prof.a Joseana Macêdo Fechine Régis de Araújo [email protected]

Leia mais

Usando o Excel ESTATÍSTICA. Funções

Usando o Excel ESTATÍSTICA. Funções Funções Podemos usar no Excel fórmulas ou funções. Anteriormente já vimos algumas fórmulas. Vamos agora ver o exemplo de algumas funções que podem ser úteis para o trabalho de Excel. Para começar podemos

Leia mais

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto 2000-2007

APROG - Civil. Excel. Técnicas de pesquisa de informação em tabelas. Instituto Superior de Engenharia do Porto 2000-2007 APROG - Civil Excel Técnicas de pesquisa de informação em tabelas Instituto Superior de Engenharia do Porto 2000-2007 Elaborado por: António Silva (DEI-ISEP) Pesquisa de Informação em Tabelas O Excel

Leia mais

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO

INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO Capítulo 1 INTRODUÇÃO ÀS LINGUAGENS DE PROGRAMAÇÃO 1.1 Histórico de Linguagens de Programação Para um computador executar uma dada tarefa é necessário que se informe a ele, de uma maneira clara, como ele

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e de Computadores 1º ano 2º semestre Trabalho Final Reservas de viagens

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

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

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Tópico 11. Aula Teórica/Prática: O Método dos Mínimos Quadrados e Linearização de Funções

Tópico 11. Aula Teórica/Prática: O Método dos Mínimos Quadrados e Linearização de Funções Tópico 11. Aula Teórica/Prática: O Método dos Mínimos Quadrados e Linearização de Funções 1. INTRODUÇÃO Ao se obter uma sucessão de pontos experimentais que representados em um gráfico apresentam comportamento

Leia mais

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS

Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal

Leia mais

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores

Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Arquitecturas de Software Licenciatura em Engenharia Informática e de Computadores Primeiro Teste 21 de Outubro de 2006, 9:00H 10:30H Nome: Número:

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos

Sistemas de Numeração. Engenharia da Computação 3 Período Alex Vidigal Bastos UNIPAC Sistemas Digitais Sistemas de Numeração Engenharia da Computação 3 Período Alex Vidigal Bastos 1 Agenda Objetivos Introdução Sistema Binário Sistema Octal Sistema Hexadecimal Aritméticas no Sistema

Leia mais

Organização e Arquitetura de Computadores I

Organização e Arquitetura de Computadores I Organização e Arquitetura de Computadores I Aritmética Computacional Slide 1 Sumário Unidade Lógica e Aritmética Representação de Números Inteiros Aritmética de Números Inteiros Representação de Números

Leia mais

Análise de Sistemas. Conceito de análise de sistemas

Análise de Sistemas. Conceito de análise de sistemas Análise de Sistemas Conceito de análise de sistemas Sistema: Conjunto de partes organizadas (estruturadas) que concorrem para atingir um (ou mais) objectivos. Sistema de informação (SI): sub-sistema de

Leia mais

Controladores Lógicos Programáveis CLP (parte-3)

Controladores Lógicos Programáveis CLP (parte-3) Controladores Lógicos Programáveis CLP (parte-3) Mapeamento de memória Na CPU (Unidade Central de Processamento) de um CLP, todas a informações do processo são armazenadas na memória. Essas informações

Leia mais

1. NÍVEL CONVENCIONAL DE MÁQUINA

1. NÍVEL CONVENCIONAL DE MÁQUINA 1. NÍVEL CONVENCIONAL DE MÁQUINA Relembrando a nossa matéria de Arquitetura de Computadores, a arquitetura de Computadores se divide em vários níveis como já estudamos anteriormente. Ou seja: o Nível 0

Leia mais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais

Notas da Aula 17 - Fundamentos de Sistemas Operacionais Notas da Aula 17 - Fundamentos de Sistemas Operacionais 1. Gerenciamento de Memória: Introdução O gerenciamento de memória é provavelmente a tarefa mais complexa de um sistema operacional multiprogramado.

Leia mais

Universidade do Minho Licenciatura em Engenharia Informática

Universidade do Minho Licenciatura em Engenharia Informática Universidade do Minho Licenciatura em Engenharia Informática Disciplina de Desenvolvimento de Sistemas de Software Trabalho Prático Fase 1 Ano Lectivo de 2009/10 GereComSaber Grupo 15 Cláudio Manuel Rigueiro

Leia mais

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO]

[RÓTULO:] MNEMÔNICO [OPERANDOS] [;COMENTÁRIO] Instruções de uso do montador DAEDALUS (baseadas em texto extraído da monografia apresentada como trabalho de diplomação no curso de Bacharelado em Ciência da Computação por Luís Ricardo Schwengber, sob

Leia mais

Unidade 1 - Objectivos das Tecnologias Informáticas

Unidade 1 - Objectivos das Tecnologias Informáticas Unidade 1 - Objectivos das Tecnologias Informáticas Reconhecer conceitos básicosb Utilizar os conceitos básicos, b aplicando-os os a problemas concretos Compreender a evolução desses conceitos Conhecer

Leia mais

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v. 2013-7-31 1/15 Bases Matemáticas Aula 2 Métodos de Demonstração Rodrigo Hausen v. 2013-7-31 1/15 Como o Conhecimento Matemático é Organizado Definições Definição: um enunciado que descreve o significado de um termo.

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

4.1. UML Diagramas de casos de uso

4.1. UML Diagramas de casos de uso Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca [email protected] Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema

Leia mais

Modelos, em escala reduzida, de pontes e barragens. Simuladores de voo (ou de condução), com os quais se treinam pilotos (ou condutores).

Modelos, em escala reduzida, de pontes e barragens. Simuladores de voo (ou de condução), com os quais se treinam pilotos (ou condutores). SIMULAÇÃO 1 Introdução Entende-se por simulação a imitação do funcionamento de um sistema real recorrendo a uma representação desse sistema. Com essa representação modelo, pretende-se realizar experimentações

Leia mais

Arquiteturas RISC. (Reduced Instructions Set Computers)

Arquiteturas RISC. (Reduced Instructions Set Computers) Arquiteturas RISC (Reduced Instructions Set Computers) 1 INOVAÇÕES DESDE O SURGIMENTO DO COMPU- TADOR DE PROGRAMA ARMAZENADO (1950)! O conceito de família: desacoplamento da arquitetura de uma máquina

Leia mais

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto Material Teórico - Módulo de Divisibilidade MDC e MMC - Parte 1 Sexto Ano Prof. Angelo Papa Neto 1 Máximo divisor comum Nesta aula, definiremos e estudaremos métodos para calcular o máximo divisor comum

Leia mais

Usando o Excel ESTATÍSTICA. A Janela do Excel 2007. Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação.

Usando o Excel ESTATÍSTICA. A Janela do Excel 2007. Barra de título. Barra de menus. Barra de ferramentas padrão e de formatação. Barra de deslocamento ESTATÍSTICA Barra de menus Barra de título Barra de ferramentas padrão e de formatação Barra de fórmulas Conjuntos e Células (Intervalos) Área de trabalho Separador de folhas Barra

Leia mais

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II

Múltiplos Estágios processo com três estágios Inquérito de Satisfação Fase II O seguinte exercício contempla um processo com três estágios. Baseia-se no Inquérito de Satisfação Fase II, sendo, por isso, essencial compreender primeiro o problema antes de começar o tutorial. 1 1.

Leia mais

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II

Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II Universidade Federal de Mato Grosso do Sul Faculdade de Computação Disciplina de Verão: Algoritmos e Programação II Professores: Liana Duenha 10 de março de 2014 Professores: Liana Duenha () Universidade

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

Manual do Gestor da Informação do Sistema

Manual do Gestor da Informação do Sistema Faculdade de Engenharia da Universidade do Porto Licenciatura Informática e Computação Laboratório de Informática Avançada Automatização de Horários Manual do Gestor da Informação do Sistema João Braga

Leia mais