Enunciado do problema: Calcule o valor de e, base dos logaritmos neplerianos, usando a série infinita abaixo

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

Download "Enunciado do problema: Calcule o valor de e, base dos logaritmos neplerianos, usando a série infinita abaixo"

Transcrição

1 Mais alguns exercícios em pseudocódigo Enunciado do problema: Calcule o valor de e, base dos logaritmos neplerianos, usando a série infinita abaixo e 1 =1+ 1 1! + 1 2! + 1 3! + 1 4! + 1 5! + = 1 i=0 i!. Imprima passo a passo da soma e compare com o valor obtido com o uso de uma calculadora. Descrição do problema: Aqui faremos uso do pseudocódigo que fizemos anteriormente. Formalmente isto é um exemplo muito simples do que é chamado de reutilização de código. No entanto, observe que usaremos o cálculo do fatorial como parte do que foi solicitado. O conceito que exercitaremos aqui é o de uso de uma variável acumuladora, ou seja, uma variável que terá seu valor alterado de maneira sistemática por adição de valores. Uma questão importante: em geral as linguagens de programação não se preocupam em limpar as posições de memória para as quais reserva (ou aloca) espaço para as variáveis. Portanto, antes de usar uma variável é bom que a ela seja atribuído um valor que faça sentido no uso que ela terá. Voltando ao problema! Observe que o somatório acima é infinito. Obviamente teremos que determinar um número máximo de elementos do somatório se queremos um resultado numérico. No pseudocódigo abaixo denominaremos como ntermos este valor máximo. Como temos um somatório, usaremos aqui a letra s para simbolizar este valor. Usaremos ainda as mesmas variáveis que foram necessárias para o cálculo do fatorial. Observe ainda que será necessário que tenamos um contador de número de termos da série definida acima. Dito isto, o pseudocódigo fica assim PROGRAMA e INTEIROS i, j, n, ntermos REAIS fat, s ntermos 15 s 1 j 1 ENQUANTO (j <= ntermos) FAÇA fat 1 n j i 1 ENQUANTO (i <= n) FAÇA fat fat * i i i + 1 FIM ENQUANTO s s + 1.0/fat j j + 1 FIM ENQUANTO IMPRIMA O valor de e com, n, termos =, s PARE FIM

2 Comentários sobre o pseudocódigo: Observe que aqui a variável fat foi definida como REAL, ou seja, um número de ponto flutuante pois ela será empregada para gerar uma aproximação de um número real que é a base dos logaritmos neplerianos. Observe também que tomei a liberdade de inicializar s como 1 pois nosso algoritmo de fatorial não gera naturalmente o fatorial de zero. Enunciado do problema: Dado dois vetores de ponto flutuante (REAL em FORTRAN, float em C, etc.) de n posições, determine o produto escalar dos mesmos. Descrição do problema: Observe que este é um exercício de uso da estrutura de dados denominada vetor, que é um caso especial de arranjo homogêneo. Isto significa que teremos um arranjo de informações de mesmo tipo. No caso desde problema serão todos do tipo ponto flutuante. Em inglês é comum o uso da palavra array para arranjo homogêneo. O que chamaremos vetor aqui será a estrutura de dados e não o vetor matemático. Assim, necessitamos especificar o tamanho do vetor, ou seja, o número de elementos que pediremos ao sistema operacional para reservar para nosso programa para que façamos o que desejamos. Cada um dos elementos do vetor será acessado por um índice como é comum na notação matemática. No entanto, este índice será expresso de forma diferente. Em FORTRAN temos a equivalência abaixo v i = 9 e v(i) = 9. No problema apresentado nós propositalmente confundiremos os termos mas observe que, no entanto, podemos ter a estrutura de dados vetor com tipo caractere que não tem o menor sentido sob o ponto de vista matemático mas tem sentido como estrutura de dados. Da matemática se temos dois vetores de dimensão n, o produto escalar destes vetores é dado por n u v= u i v i. 1 Observe que o cálculo é efetivamente um somatório o que faz deste exercício uma variação do anterior. Para não complicar muito o uso e análise do pseudocódigo, faremos a atribuição de valores no próprio corpo do mesmo. Aqui também introduziremos um outro comando de pseudocódigo denominada FAÇA. Este comando é muito comum nas mais variadas produz um esquema de geração de uma contagem onde especificamos o início e fim da contagem de forma mais limitada que o DOWHILE. No entanto, este tipo de contagem é tão útil que foi a primeira estrutura de repetição criada no FORTRAN de continua existindo, de diferentes formas, em outras linguagens. Para ilustrar, mostraremos dois trechos de pseudocódigo equivalentes usando um pedaço do pseudocódigo do fatorial como exemplo: i 1 ENQUANTO (i <= n) FAÇA fat fat * i i i + 1 FIM ENQUANTO é equivalente a FAÇA i 1 ATÉ n fat fat * i Observe que a escrita é mais sintética, embora mais limitada pois a condição lógica do

3 ENQUANTO permite que se componha testes adicionais, coisa que o FAÇA não permite. Além disto, em geral, em FORTRAN e algumas outras linguagens este comando só permite uso de INTEIROS. A estrutura no pseudocódigo é a que se segue: PROGRAMA prod_escalar INTEIROS i, n REAL v(4), u(4), prodesc n 3 v(1) 1.0 v(2) 2.0 v(3) -1.0 u(1) 1.0 u(2) -3.0 u(3) 1.0 prodesc 0.0 FAÇA i 1 ATÉ n prodesc prodesc + v(i) * u(i) IMPRIMA O produto escalar dos vetores dados =, prodesc PARE FIM Algumas observações: Aqui chamaremos pela primeira vez uma questão importante sobre ao uso de algoritmos que é o custo computacional. De maneira ainda pouco precisa, chamaremos de custo computacional de o número de operações que um algoritmo faz para chegar ao resultado final. O motivo de escrevermos que esta definição é imprecisa ficará evidente em breve quando virmos que um algoritmo pode ter um número mínimo e um número máximo de operações dependendo da massa de dados de entrada. No caso deste nosso exemplo, produto escalar, observe que o número de operações que fazemos é proporcional ao número de elementos dos vetores. Basta seguir o programa para ver que faremos n somas e n multiplicações se estivermos fazendo o produto escalar de vetores de dimensão n. Diremos que o número de operações é precisamente este n somas e multiplicações. Mais a frente usaremos uma notação mais comum chamada O (se pronuncia notação o grande). Nela escreveremos que este algoritmo é de ordem O(n).

4 Enunciado do problema: Dado um vetor de inteiros de n posições, determine o maior valor do vetor. Descrição do problema: Observe que este é um exercício um pouco mais complexo de uso de vetores. A intenção é exercitar um procedimento muito comum no desenvolvimento de programas, ou seja, fazer comparações entre os elementos de uma massa de dados de forma a criarmos alguma forma de hierarquia que seja útil a nós. O caso da ordenação é bem óbvia pela quantidade de artefatos que temos em nossa vida de informações colocadas em alguma ordem, como dicionários, numeração de documentos, numeração de prédios em ruas, apartamentos em prédios, etc. A ordenação facilita a recuperação de informações. Aqui faremos uma versão bem simples para entender alguns dos elementos que envolvem alguns algoritmos de ordenação. Seja o vetor dado pelos elementos Conteúdo Observe que temos duas informações apresentadas acima: o índice do vetor e o conteúdo do vetor. Para nós ambas as informações são importantes pois só podemos acessar e/ou manipular a informação contida no vetor pela referência desta informação dada pelo índice. Claro que você olhou para o vetor acima e soube rapidamente qual é o maior valor mas como você faz isto? Lembre-se que você, via pseudocódigo (ou melhor, via um programa em uma linguagem de programação) vai instruir um computador (que não tem olhos) como determinar o maior valor entre os apresentados. Mas o que você faz? A resposta é bem simples: você faz comparações partindo do conhecimento que você tem dos números. Mas o computador não conhece números, apenas os manipula segundo regras que foram colocados na elaboração de seu hardware e seu software, que é constituído pelo sistema operacional, convenções industriais e as linguagens de programação que elaboram, por sua vez, vários aplicativos. Os comandos do pseudocódigo representam estruturas pré-desenvolvidas pelos criadores das linguagens de programação e são feitos como são para facilitar a implementação de algoritmos. Mas nos voltemos ao nosso problema. Uma forma de determinar o maior valor é eleger que um seja o maior e, partindo disto, comparar com os demais até termos o maior valor. No entanto, vimos que no pseudocódigo existem comandos que permitem gerarmos números sequencialmente e que isto é fácil de se fazer. Para aproveitarmos esta facilidade diremos que inicialmente o valor contido no primeiro elemento do vetor é o maior e chamaremos a variável que a contem de maior. É claro que não é no nosso exemplo mas isto permite que façamos comparações. Observe que não tem muito sentido compararmos com a partir do primeiro elemento, já que esta comparação não nos leva a nada, embora computacionalmente não faça a muita diferença: apenas faremos uma comparação a mais e desnecessária. Se comparamos maior com o o conteúdo da segunda posição do vetor, observe que em comparação com este elemento, o valor em maior não tem que ser trocado. No entanto o compararmos com o conteúdo da terceira posição teremos de trocar o valor de maior pelo conteúdo desta posição pois ela vale 4. A ideia é seguir sequencialmente pelo vetor de forma que ao final teremos o maior valor na variável maior. Claro, temos que ter uma referência, ou seja, uma variável, que indique o tamanho do vetor para que possamos parar o algoritmo. No caso chamaremos de n esta variável. Claramente necessitaremos de um contador e faremos uso do comando do pseudocódigo FAÇA. Para facilitar a compreensão colocaremos os valores dos vetores diretamente e não por meio de alguma leitura. O pseudocódigo abaixo materializa esta ideia

5 PROGRAMA Maior INTEIROS i, n, v(9), maior n 8 v(1) 3 v(2) 1 v(3) -4 v(4) 1 v(5) -7 v(6) 8 v(7) -5 v(8) 2 maior v(1) FAÇA i 2 ATÉ n SE (v(i) > maior) ENTÃO maior v(i) FIM SE IMPRIMA O maior elemento do vetor =, maior PARE FIM Algumas observações: Observe que foi alocado 9 espaços de memória para inteiros para o vetor v enquanto o vetor tem n = 8 posições. A priori, não há problema em alocar mais espaço que o usado, principalmente nestes programas que usam pouquíssima memória. No entanto, devemos tomar cuidado com este procedimento quando usamos quantidades próximas ao limite da máquina na qual estivermos trabalhando. Enunciado do problema: Dado um vetor de inteiros de n posições ordene-o em ordem decrescente. Descrição do problema: O que faremos aqui será novamente o reuso de um conhecimento recémadquirido. No caso usaremos o que vimos logo acima quando criamos o pseudocódigo para determinar o maior valor de um vetor. A ideia aqui está em sistematizar o procedimento de achar o maior para uma nova função. Observe que se determinamos o maior elemento do vetor, este seria o primeiro elemento num processo de ordenação decrescente. Mas se apenas colocamos o maior valor na primeira posição, destruímos o valor que estava lá. E não queremos isto, queremos ordenar os elementos do vetor. É claro que existe uma maneira de fazer isto: basta trocar o conteúdo dos elementos. Mas como faremos isto num computador? Para ilustrar, suporemos que queremos trocar o conteúdo de duas variáveis a e b. Para isto usaremos uma variável auxiliar que denominaremos aux. Abaixo vai um fragmento de um pseudocódigo

6 ... a 3 b 4 aux a a b b aux Observe que ao final do procedimento a terá o valor 4 enquanto b terá o valor 3. Voltado ao nosso problema, sabemos determinar o maior elemento e sabemos agora trocar os valores de duas variáveis. Mas para colocar o maior valor na primeira posição e colocar o valor que estava contido na primeira posição na posição que era do maior valor, é necessário que guardemos também a posição anterior do maior valor. Feito isto, conseguimos colocar o maior valor na primeira posição. E agora? Parece que a solução é fácil: basta achar qual é o maior valor dos elementos restantes e trocar este valor com o contido na segunda posição. Feito isto, partimos para o restante dos elementos até que acabe todos eles. Assim, nosso pseudocódigo fica como abaixo onde reaproveitaremos o pseudocódigo anterior.

7 PROGRAMA Ordena INTEIROS i, j, n, v(9), maior, imaior, aux n 8 v(1) 3 v(2) 1 v(3) -4 v(4) 1 v(5) -7 v(6) 8 v(7) -5 v(8) 2 FAÇA j 1 ATÉ n-1 maior v(j) imaior j FAÇA i j+1 ATÉ n SE (v(i) > maior) ENTÃO imaior i maior v(i) FIM SE aux v(j) v(j) v(imaior) v(imaior) aux FAÇA i 1 ATÉ n IMPRIMA v(i) PARE FIM Algumas observações: Qual é o custo computacional deste algoritmo? Observe que as operações que fazemos são de duas naturezas: comparação e troca. O número de comparações é fácil de estimar. Na determinação do primeiro elemento fazemos n 1 comparações, na determinação do segundo elemento n 2 e assim até ao final fazermos 1 única comparação. Assim, o número de comparações será mas sabemos que (n 1)+(n 2)+( n 3) n= n(n+1) 2 então como no nosso caso o último elemento da soma de operações é n 1, termos o resultado de número de operações

8 n 1= (n 1)n 2 ou seja, o número de operações cresce com o quadrado do número de elementos comparados. Pode ser demonstrado que no pior caso o número de trocas também será proporcional ao quadrado do número de elementos do vetor. Na notação O grande escreveríamos que este algoritmo tem custo computacional O(n 2 ). Repare que se o vetor inicial estiver ordenado ele fará todas as comparações! Ou seja, o algoritmo é insensível ao estado de ordenação do vetor dado. Claramente este não é um algoritmo muito inteligente. No entanto, é um bom exemplo de reaproveitamento de código e é bom didaticamente. Observe ainda como foi feita a impressão dos valores finais do vetor ordenado.

9 Enunciado do problema: Dado um vetor de inteiros de n posições ordene-o em ordem decrescente usando o algoritmo da bolha. No endereço há uma animação que ilustra o algoritmo. Como está em inglês, o nome é Bubble Sort. Para ilustrar aqui, olhe o vetor abaixo que chamaremos de v(i) Conteúdo Este é uma versão encurtada do vetor que estamos usando em nossos exemplos sobre vetores. A ideia consiste em você ir varrendo (ou seja, ir do primeiro elemento até o último) o vetor comparando os elementos colocados em sequência. No nosso caso, estamos ordenando em ordem decrescente e toda a vez que encontrarmos que o elemento de índice i+1 for maior que o elemento de índice i, trocamos o conteúdo do vetor. Observe a sequência abaixo i) comparamos v(1) com v(2). Como v(1) é maior que v(2), nada faremos Conteúdo ii) comparamos agora v(2) com v(3). Como v(3) é maior que v(2), trocamos os conteúdos do vetor Conteúdo iii) comparamos v(3) com v(4). Como v(4) é igual a v(3), nada faremos. Conteúdo É óbvio que o vetor não está ordenado. Novamente varreremos o vetor recomeçando as comparações. i) comparamos v(1) com v(2). Como v(2) é maior que v(1), trocamos os conteúdos do vetor Conteúdo ii) comparamos agora v(2) com v(3). Como v(3) é maior que v(2), nada faremos Conteúdo

10 iii) comparamos v(3) com v(4). Como v(4) é igual a v(3), nada faremos. Conteúdo Agora o vetor está ordenado. Pode ser demonstrado que no pior caso seria necessário mais uma varredura do vetor para termos a ordenação. Ou seja, para um vetor de tamanho n teremos que fazer no pior caso n-1 varreduras(por simplicidade faremos o pseudocódigo para o pior caso e depois mostraremos como torná-lo mais eficiente. ). Creio quer você já percebeu que serão necessários dos laços de repetição e um teste para conseguirmos escrever o pseudocódigo que queremos. PROGRAMA Ordena INTEIROS i, j, n, v(9), aux n 8 v(1) 3 v(2) 1 v(3) -4 v(4) 1 v(5) -7 v(6) 8 v(7) -5 v(8) 2 FAÇA j 1 ATÉ n-1 FAÇA i j+1 ATÉ n - 1 SE (v(i+1) > v(i)) ENTÃO aux v(i) v(i) v(i+1) v(i+1) aux FIM SE PARE FIM O curioso é que este método de ordenação tem um pseudocódigo mais simples que o anterior, embora seja um pouco mais difícil de entender como funciona. O custo computacional deste algoritmo tem particularidades. O pior caso é O(n 2 ) como o anterior mas este algoritmo é sensível ao estado de ordenação do vetor inicial, coisa que o anterior não é quanto ao número de comparações. No melhor caso o algoritmo é O(n), ou seja, ele pode ser consideravelmente mais rápido que o anterior em circunstâncias especiais. Mesmo assim, este não é um bom algoritmo se a quantidade de dados é muito grande (da ordem de bilhões de itens, o que é bem comum em algumas aplicações).

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Estrutura de dados: listas Manipulando listas Vetores como listas

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Alguns exercícios em pseudocódigo

Alguns exercícios em pseudocódigo Alguns exercícios em pseudocódigo Enunciado do problema: Escreva um programa em pseudocódigo que determine as raízes de um polinômio do segundo grau dado por a x 2 +b x+c usando o algoritmo de Báskara.

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Fluxograma e pseudocódigo Elementos de um fluxograma Pseudocódigo

Leia mais

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Vetores e Matrizes. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Vetores e Matrizes Prof: Luciano Barbosa Recapitulando: Funções 2 Recapitulando: Função Void 3 Recapitulando: Escopo das Variáveis Referência à variável global A variável de escopo

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Módulos: math random Funções definidas pelo usuário Mais sobre notações

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

VETORES Motivação AULA 19

VETORES Motivação AULA 19 AULA 19 VETORES 19.1 Motivação Considere o problema de calcular a média aritmética das notas de 5 alunos de uma disciplina e determinar e escrever o número de alunos que obtiveram nota superior à média

Leia mais

Aula 10: Introdução a Vetores e Matrizes

Aula 10: Introdução a Vetores e Matrizes Aula 10: Introdução a Vetores e Matrizes Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Vetores e Matrizes Programação de Computadores IV 1 / 50 Agenda

Leia mais

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza

Método BubbleSort. Estrutura de Dados II Prof Jairo Francisco de Souza Método BubbleSort Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Ordenar corresponde ao processo de reorganizar um conjunto de objetos em uma ordem ascendente ou descendente Consiste em

Leia mais

Comportamento assintótico

Comportamento assintótico ANÁLISE DE ALGORITMOS: PARTE 2 Prof. André Backes 2 Na última aula, vimos que o custo para o algoritmo abaixo é dado pela função f(n) = 4n + 3 1 3 Essa é a função de complexidade de tempo Nos dá uma ideia

Leia mais

Análise de Algoritmos Estrutura de Dados II

Análise de Algoritmos Estrutura de Dados II Centro de Ciências Exatas, Naturais e de Saúde Departamento de Computação Análise de Algoritmos Estrutura de Dados II COM10078 - Estrutura de Dados II Prof. Marcelo Otone Aguiar marcelo.aguiar@ufes.br

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes

Leia mais

Universidade Veiga de Almeida Algoritmos e Linguagem I

Universidade Veiga de Almeida Algoritmos e Linguagem I Aula 10 Conteúdo: 14. Estruturas de dados homogêneas 14.1. Matrizes de uma dimensão Vetores 14.2. Matrizes com mais de uma dimensão 14. Estruturas de Dados Homogêneas As estruturas de dados homogêneas

Leia mais

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

Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Exercícios e implementação de algoritmos: Número capicua Constante

Leia mais

Métodos de Ordenação Parte I

Métodos de Ordenação Parte I Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar

Leia mais

Análise de algoritmos

Análise de algoritmos Análise de algoritmos SCE-181 Introdução à Ciência da Computação II Alneu Lopes Thiago A. S. Pardo 1 Algoritmo Noção geral: conjunto de instruções que devem ser seguidas para solucionar um determinado

Leia mais

LINGUAGEM C: ARRAY: VETORES E MATRIZES

LINGUAGEM C: ARRAY: VETORES E MATRIZES LINGUAGEM C: ARRAY: VETORES E MATRIZES Prof. André Backes POR QUE USAR ARRAY? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Mais um tipo numérico print() formatado: clássico pythônico Tuplas

Leia mais

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo

Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo Algoritmos e Estruturas de Dados I Prof. Tiago Eugenio de Melo tmelo@uea.edu.br www.tiagodemelo.info Observações O conteúdo dessa aula é parcialmente proveniente do Capítulo 11 do livro Fundamentals of

Leia mais

Análise de algoritmos. Parte I

Análise de algoritmos. Parte I Análise de algoritmos Parte I 1 Recursos usados por um algoritmo Uma vez que um procedimento está pronto/disponível, é importante determinar os recursos necessários para sua execução Tempo Memória Qual

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo temático Sistemas de Equações Lineares. Métodos diretos Conteúdo

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 1

ESTRUTURAS DE REPETIÇÃO - PARTE 1 AULA 15 ESTRUTURAS DE REPETIÇÃO - PARTE 1 15.1 O comando enquanto-faca- Considere o problema de escrever um algoritmo para ler um número inteiro positivo, n, e escrever todos os números inteiros de 1 a

Leia mais

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia

Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Introdução à Análise de Algoritmos Marcelo Keese Albertini Faculdade de Computação Universidade Federal de Uberlândia Aula de hoje Nesta aula veremos: Sobre a disciplina Exemplo: ordenação Sobre a disciplina

Leia mais

Aula 11: Modularização

Aula 11: Modularização Aula 11: Modularização Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Modularização Programação de Computadores IV 1 / 37 Agenda 1 Revisão e Contexto

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

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

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

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Alguns Conceitos sobre Linguagens Conceito de Algoritmo Pseudocódigo

Leia mais

CONCEITOS DE ALGORITMOS

CONCEITOS DE ALGORITMOS CONCEITOS DE ALGORITMOS Fundamentos da Programação de Computadores - 3ª Ed. 2012 Editora Prentice Hall ISBN 9788564574168 Ana Fernanda Gomes Ascênsio Edilene Aparecida Veneruchi de Campos Algoritmos são

Leia mais

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo

UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Matrizes Prof. Alex Camargo alexcamargoweb@gmail.com Definição Matriz é uma variável composta homogênea multidimensional. Conjunto de

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo específico Sistemas de Equações Lineares Métodos Iterativos

Leia mais

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva

Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira Anilton Joaquim da Silva Algoritmos e Programação de Computadores Profs: Ronaldo Castro de Oliveira ronaldo.co@ufu.br Anilton Joaquim da Silva anilton@ufu.br Introdução Uma das aplicações mais estudadas e realizadas sobre arranjos

Leia mais

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

MATRIZES - PARTE Definição e Manipulação de Matrizes AULA 21 AULA 21 MATRIZES - PARTE 1 21.1 Definição e Manipulação de Matrizes Sabemos como definir variáveis de um novo tipo de dados, denominado vetor, que representam seqüências de valores de um mesmo tipo. Por

Leia mais

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68

Prof. A. G. Silva. 25 de abril de Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de / 68 INE5231 Computação Científica I Prof. A. G. Silva 25 de abril de 2017 Prof. A. G. Silva INE5231 Computação Científica I 25 de abril de 2017 1 / 68 Conteúdo programático O computador - [3 horas-aula] Representação

Leia mais

Análise de algoritmos. Parte I

Análise de algoritmos. Parte I Análise de algoritmos Parte I 1 Procedimento X Algoritmo Procedimento: sequência finita de instruções, que são operações claramente descritas, e que podem ser executadas mecanicamente, em tempo finito.

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,

Leia mais

Listas e Tuplas. Vanessa Braganholo

Listas e Tuplas. Vanessa Braganholo Listas e Tuplas Vanessa Braganholo vanessa@ic.uff.br Exemplo Motivacional } Programa para auxiliar a escrever Parabéns! nas melhores provas de uma disciplina com 3 alunos } Ler os nomes e as notas de 3

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Mestrado em Ciência da Computação Prof. Dr. Aparecido Nilceu Marana Faculdade de Ciências I think the design of efficient algorithms is somehow the core of computer science.

Leia mais

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias: ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Erros e Aproximações Numéricas Sistemas de Equações Lineares.

Leia mais

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

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se

Leia mais

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI1 MÉTODOS DE ORDENAÇÃO Introdução à Programação SI1 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar

Leia mais

Métodos de Ordenação

Métodos de Ordenação Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior

Leia mais

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então

Leia mais

O mais leve e o mais pesado Algoritmos de Ordenação

O mais leve e o mais pesado Algoritmos de Ordenação Atividade 7 O mais leve e o mais pesado Algoritmos de Ordenação Sumário Os computadores são muitas vezes utilizados para colocar listas em algum tipo de ordem, por exemplo, nomes em ordem alfabética, compromissos

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

2. Complexidade de Algoritmos

2. Complexidade de Algoritmos Introdução à Computação II 5952011 2. Complexidade de Algoritmos Prof. Renato Tinós Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 2.1. Introdução 2.1.1. Revisão de Pseudo-Código 2.1.2.

Leia mais

Aula 3: Algoritmos: Formalização e Construção

Aula 3: Algoritmos: Formalização e Construção Aula 3: Algoritmos: Formalização e Construção Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Algoritmos: Formalização e Pseudo-Código Programação de

Leia mais

Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta

Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Classificação por Seleção Direta Aula 12 Métodos de Classificação: - Classificação por Inserção Direta - Direta Prof. Gustavo Callou gustavo.callou@ufrpe.br gcallou@gmail.com Classificação por Inserção Métodos de Classificação em Memória

Leia mais

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

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Final - Repita Até - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição

Leia mais

Informática I. Aula 14. Aula 14-10/10/2007 1

Informática I. Aula 14.  Aula 14-10/10/2007 1 Informática I Aula 14 http://www.ic.uff.br/~bianca/informatica1/ Aula 14-10/10/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript

Leia mais

Vetores. Vanessa Braganholo

Vetores. Vanessa Braganholo Vetores Vanessa Braganholo vanessa@ic.uff.br Exemplo Motivacional } Programa para auxiliar a escrever Parabéns! nas melhores provas de uma disciplina com 3 alunos } Ler os nomes e as notas de 3 alunos

Leia mais

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Métodos Computacionais Operadores, Expressões Aritméticas e Entrada/Saída de Dados Tópicos da Aula Hoje aprenderemos a escrever um programa em C que pode realizar cálculos Conceito de expressão Tipos de

Leia mais

Aula 18 Algoritmos básicos de busca e classificação

Aula 18 Algoritmos básicos de busca e classificação Aula 18 Algoritmos básicos de busca e classificação Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas e classificação de tabelas estão entre os mais usados. Considere por exemplo

Leia mais

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias -

15/03/2018. Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções. Prof. Ariel da Silva Dias - Professor Ariel da Silva Dias Algoritmo e Contagem de Instruções 1 Um algoritmo pode ser visto como uma sequência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema.

Leia mais

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). DCC-UFMG 1 semestre de 2007 DCC001 - Programação de Computadores Prof. Martín Gómez Ravetti Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). Valor: 5 pontos 1. Escreva um algoritmo em

Leia mais

Universidade Federal de Alfenas

Universidade Federal de Alfenas Universidade Federal de Alfenas Projeto e Análise de Algoritmos Aula 06 Notação O humberto@bcc.unifal-mg.edu.br Tempo de execução (ms) Última aula teórica Análise experimental 45 40 35 30 25 20 15 10 5

Leia mais

MÉTODOS DE ORDENAÇÃO DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza

MÉTODOS DE ORDENAÇÃO DE DADOS EM MEMÓRIA PRIMÁRIA. Material da Prof. Ana Eliza MÉTODOS DE ORDENAÇÃO DE DADOS EM MEMÓRIA PRIMÁRIA Material da Prof. Ana Eliza Métodos de Ordenação em Memória Primária Métodos Elementares Classificação por Inserção Método da Inserção Direta Classificação

Leia mais

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição - GABARITO Repetição com Variável de Controle - Para Professor: Danilo Giacobo

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição - GABARITO Repetição com Variável de Controle - Para Professor: Danilo Giacobo Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição - GABARITO Repetição com Variável de Controle - Para Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição

Leia mais

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho

Linguagem e Técnicas em Programação. Gilson de Souza Carvalho Gilson de Souza Carvalho gaucho.gilson@hotmail.com 3.1.3 Condições compostas Linguagem e Técnicas em Programação As condições que vimos até agora sempre foram únicas. Entretanto, conforme aumenta a complexidade

Leia mais

Programação de Computadores Ordenação de Arranjos

Programação de Computadores Ordenação de Arranjos Programação de Computadores Ordenação de Arranjos Notação O Alan de Freitas Classes de algoritmos Busca em arranjo Busca sequencial Busca binária On) Olog n) Ordenação de Arranjos Ordenação de Arranjos

Leia mais

TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados

TÉCNICAS DE PROGRAMAÇÃO. Estrutura de dados TÉCNICAS DE PROGRAMAÇÃO Estrutura de dados O que são estrutura de dados? É a forma como os armazenamos tipos de dados, vistos dia a dia, ou seja, nada mais são do que a transformação de uma forma de armazenamento

Leia mais

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016

Mini apostila de Python - Oficina de Vestibulandos. PET Computação - UFPR September 2016 Mini apostila de Python - Oficina de Vestibulandos PET Computação - UFPR September 2016 1 Sumário 1 Introdução 3 2 Obtenção e Instalação 3 3 Variáveis 3 4 Operações Matemáticas 5 5 Entrada de Dados 6 6

Leia mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo temático Sistemas de Equações Lineares. Métodos diretos Conteúdo

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo específico Sistemas de Equações Lineares. Métodos Iterativos

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo Erros e Aproximações Numéricas Sistemas de Equações Lineares

Leia mais

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.

Leia mais

Cœlum Australe. Jornal Pessoal de Astronomia, Física e Matemática - Produzido por Irineu Gomes Varella

Cœlum Australe. Jornal Pessoal de Astronomia, Física e Matemática - Produzido por Irineu Gomes Varella Cœlum Australe Jornal Pessoal de Astronomia, Física e Matemática - Produzido por Irineu Gomes Varella Criado em 1995 Retomado em Junho de 2012 Ano III Nº 023 - Agosto de 2012 MÉTODOS DE ORDENAÇÃO Prof.

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016 MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números

Leia mais

Introdução a Algoritmos Parte 09

Introdução a Algoritmos Parte 09 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 09 (Baseado no Material do Prof. Marcelo Linder) Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br

Leia mais

Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io)

Comportamento Assintótico. Algoritmos e Estruturas de Dados Flavio Figueiredo (http://flaviovdf.github.io) Comportamento Assintótico Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Até Agora Falamos de complexidade de algoritmos com base no número de passos Vamos generalizar

Leia mais

Programação Estruturada

Programação Estruturada Algoritmos e Técnicas - Estruturas de Controle de Fluxo - Programação Estruturada Programação estruturada é a técnica de construir e formular algoritmos de uma forma sistemática. Utilizada para apresentar

Leia mais

Análise e Complexidade de Algoritmos

Análise e Complexidade de Algoritmos Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar

Leia mais

LINGUAGEM C: COMANDOS DE REPETIÇÃO

LINGUAGEM C: COMANDOS DE REPETIÇÃO LINGUAGEM C: COMANDOS DE REPETIÇÃO Prof. André Backes ESTRUTURAS DE REPETIÇÃO Uma estrutura de repetição permite que uma sequência de comandos seja executada repetidamente, enquanto determinadas condições

Leia mais

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2

MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2 MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar

Leia mais

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática

Leia mais

ARQUITETURA DE COMPUTADORES

ARQUITETURA DE COMPUTADORES Representação de Dados Professor: Airton Ribeiro de Sousa E-mail: airton.ribeiro@faciplac.edu.br 1 Ao longo dos anos, muitos padrões e convenções foram estabelecidas para determinar certos aspectos da

Leia mais

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

Introdução aos Métodos Numéricos. Instituto de Computação UFF

Introdução aos Métodos Numéricos. Instituto de Computação UFF Introdução aos Métodos Numéricos Instituto de Computação UFF Conteúdo Erros e Aproximações Numéricas Sistemas de Equações Lineares. Métodos diretos Interpolação Ajuste de Curvas Zeros de Função Sistemas

Leia mais

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo

Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo Lógica e Linguagem de Programação Aula 04 - Estruturas de Repetição Repetição com Teste no Início Enquanto - GABARITO Professor: Danilo Giacobo Este guia irá lhe ajudar a entender o laço de repetição enquanto.

Leia mais

24/09/2014. Prof. André Backes

24/09/2014. Prof. André Backes Prof. André Backes 1 Por que usar listas? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor

Leia mais

Introdução aos Métodos Numéricos

Introdução aos Métodos Numéricos Introdução aos Métodos Numéricos Instituto de Computação UFF Departamento de Ciência da Computação Otton Teixeira da Silveira Filho Conteúdo da disciplina Erros em Aproximações Numéricas Sistemas de Equações

Leia mais

Linguagem de Maquina II. Visão Geral

Linguagem de Maquina II. Visão Geral Linguagem de Maquina II Visão Geral Revisão A linguagem de máquina é composta de seqüências binárias (1's e 0's) São interpretadas como instruções pelo hardware A linguagem de montagem e a linguagem de

Leia mais

1. Noções de Programação

1. Noções de Programação 1. Noções de Programação O objetivo deste capítulo é fornecer ao aluno noções básicas de programação aplicadas à Engenharia Química; assim sendo, apenas estruturas fundamentais e exemplos simples serão

Leia mais

Entrada: M ind

Entrada: M ind Ordenação O objetivo deste capítulo é o de estudar algoritmos de ordenação (ou classificação) de uma sequência de números, em ordem crescente, ou decrescente. De um modo geral tal sequência pode ser uma

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Oficina de Python Prof. Me. José Carlos Perini

Oficina de Python Prof. Me. José Carlos Perini Oficina de Python Prof. Me. José Carlos Perini Prof. José Carlos Perini Formação em Análise de Sistemas Univ. S. Francisco Pós em Administração Universidade S. Francisco Mestrado em Ciência da Computação

Leia mais

Análise e Projeto de Algoritmos

Análise e Projeto de Algoritmos Análise e Projeto de Algoritmos Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Análise e Projeto de Algoritmos junho - 2018 1 / 40 Este material é preparado

Leia mais

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados Introdução à Programação Operadores, Expressões Aritméticas e Entrada/Saída de Dados Programa em C #include int main main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius

Leia mais

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

Introdução à Ciência da Computação II Introdução à Ciência da Computação II Análise de Algoritmos: Parte I Prof. Ricardo J. G. B. Campello Este material consiste de adaptações e extensões de slides disponíveis em http://ww3.datastructures.net

Leia mais

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP

Primeiro Exercício programa: Como o Google ordena páginas. MAP-2121 para EPUSP Primeiro Exercício programa: Como o Google ordena páginas MAP-2121 para EPUSP 1 Instruções gerais Os exercícios computacionais pedidos na disciplina Cálculo Numérico têm por objetivo fundamental familiarizar

Leia mais

Complexidade de Tempo e Espaço

Complexidade de Tempo e Espaço Complexidade de Tempo e Espaço Profa. Sheila Morais de Almeida DAINF-UTFPR-PG junho - 2018 Sheila Almeida (DAINF-UTFPR-PG) Complexidade de Tempo e Espaço junho - 2018 1 / 43 Este material é preparado usando

Leia mais

Técnicas de Programação

Técnicas de Programação Técnicas de Programação Algoritmos Anderson Gomes Eleutério Lógica A lógica de programação é necessária para pessoas que desejam trabalhar com desenvolvimento de sistemas e programas, ela permite definir

Leia mais