Estrutura de Dados Básica
|
|
- Júlia Santarém Aires
- 8 Há anos
- Visualizações:
Transcrição
1 Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 7: Recursividade O objetivo desta aula é apresentar o conceito de recursão para solução de problemas. A recursão é uma técnica de programação em que uma rotina (função) chama a si mesma. A recursão é uma das técnicas mais interessantes e surpreendentemente eficazes em programação. Ela não só funciona, mas também oferece um quadro conceitual única para resolver muitos problemas. Demonstrando a recursão com números triangulares Diz-se que os pitagóricos, um bando de matemáticos da Grécia antiga que trabalhavam com o Pitágoras (do famoso teorema de Pitágoras), sentiram uma conexão mística com a seguinte seqüência de números: 1, 3, 6, 10, 15, 21,... O termo da n-ésima seqüência é obtido acrescentando-se n ao termo anterior. Dessa forma, o segundo termo é encontrado adicionando-se 2 ao primeiro termo (que é 1), dando 3. O terceiro é 3 adicionando ao segundo termo (que é 3) dando 6, etc. Os números da seqüência são chamados números triangulares porque eles podem ser visualizados como uma organização triangular de objetos, ilustrados como pequenos quadrados como na figura a seguir: Suponha que você quisesse encontrar o valor de algum termo na seqüência; digamos o quarto termo (cujo valor é 10). Você poderá perceber que o valor de qualquer termo pode ser obtido somando todas as colunas verticais de quadrados. Veja a figura abaixo: No quarto termo, a primeira coluna tem quatro pequenos quadrados, a segunda coluna tem três, etc. Adicionando, , temos 10. A seguinte função triangular() utiliza esta técnica, baseada em colunas, para encontrar um número triangular. Ela soma todas as colunas, da altura de n até a altura 1. 1
2 É claro que você poderia resolver o problema da seguinte forma: A abordagem anterior pode parecer direta, mas há outra forma de ver este problema. O valor do n-ésimo termo pode ser pensado como uma soma de duas coisas, em vez de uma seqüência. São elas: 1. A primeira coluna (mais alta), que tem n quadrados. 2. A soma de todos os quadrados das colunas restantes. Isto é: Se conhecêssemos uma função que descobrisse a soma de todas as colunas restantes, poderíamos escrever nossa função triangulo(), que retorna o valor do n-ésimo número triangular, da seguinte forma: Note que a função somadascolunasrestantes() fará exatamente a mesma coisa que a função triangulo(). Ou seja, somando todas as colunas para algum número n passado como argumento. Então, por que não usar a própria função triangulo(), em vez de alguma outra função? Isso se pareceria com: Pode parecer surpreendente que uma função possa chamar a si mesma, mas por que ela não deveria ser capaz de fazê-lo? Uma chamada da função é (entre outras coisas) uma transferência de controle para o início da função. Tudo isso se parece como uma transferência de responsabilidade para outro, só que reduzindo o tamanho do problema. Alguém me diz para encontrar o nono número triangular. Sei que ele é 9 mais o oitavo número triangular; então eu chamo o João e lhe peço para encontrar o oitavo número triangular. Quando o João me devolver o oitavo número triangular, acrescento 9 a esse valor e devolvo o resultado. 2
3 O João sabe que o oitavo número triangular é 8 mais o sétimo número triangular; então ele chama a Maria e pede para encontrar o sétimo número triangular. Esse processo continua com cada pessoa passando a responsabilidade para o outro. Onde este processo de transferência de responsabilidade acaba? Alguém em algum ponto deve ser capaz de descobrir uma resposta sem precisar pedir a uma outra pessoa para ajudálo. Se isso não ocorresse, haveria uma cadeia infinita de pessoas transferindo responsabilidades uma para as outras. Para evitar isso, a pessoa que receber a incumbência de encontrar o primeiro número triangular da seqüência (quando n é igual a 1), deve saber, sem perguntar a qualquer pessoa, que a resposta é 1. Não há números menores para perguntar a outras pessoas, não há nada para adicionar a qualquer outra coisa, então a transferência pára aqui. A condição que leva à função recursiva retornar sem fazer outra chamada recursiva é conhecida como caso base. É importante que cada função recursiva tenha um caso base para evitar recursão infinita e a conseqüente finalização da função. Método para solução de problemas de estrutura recursiva Muitos problemas têm a seguinte propriedade: cada instância ou seja, cada exemplo concreto do problema contém uma instância menor do mesmo problema. Dizemos que esses problemas têm estrutura recursiva. Para resolver tais problemas podemos aplicar o seguinte método: 1) Se o problema é pequeno (caso base). a) Resolva-o diretamente (use força bruta se necessário); 2) Se o problema é grande, a) Reduza-o a uma versão menor do mesmo problema, b) Aplique o método ao problema menor e c) Volte ao problema original. A aplicação desse método produz um algoritmo recursivo. Para mostrar como isso funciona, considere o seguinte problema: Determinar o valor do maior elemento de um vetor v que tem n elementos. É claro que o problema só faz sentido se o vetor não é vazio, ou seja, se n > 1. Para preparar o terreno, examine uma tradicional solução iterativa do problema: 3
4 Agora vamos usar o método para encontrar soluções recursivas. Imagine que n = 8 e o vetor v contenha os seguintes valores {5, 10, 3, 7, 2, 1, 30, 25 1) Se o problema é pequeno (caso base) a) Resolva-o diretamente (use força bruta se necessário). O problema pequeno para o problema de encontrar o maior elemento de um vetor de n posições é quando o vetor tem apenas um único número (n==1). Neste caso, o máximo é v[0]. 2) Se o problema é grande, a) Reduza-o a uma versão menor do mesmo problema. Como n é grande (n==8), reduzimos o problema dividindo o vetor em duas partes. Ultima posição do vetor: v[n-1] Vetor sem a última posição (possui n-1 posições) Assim, o máximo será o maior entre o v[n-1] e o máximo do vetor que possuir n-1 posições. b) Aplique o método ao problema menor. Se n-1 == 1, então aplicamos 1a. e retornamos v[0]. Se n-1 > 1 aplicamos novamente 2a. ao vetor com n-2 posições. Esse processo é aplicado sucessivamente até que o vetor tenha apenas uma posição. maximo (8, v) maior entre 25 e maximo(7, v) maximo (7, v) maior entre 30 e maximo(6, v) maximo (6, v) maior entre 1 e maximo(5, v) maximo (5, v) maior entre 2 e maximo(4, v) maximo (4, v) maior entre 7 e maximo(3, v) maximo (3, v) maior entre 3 e maximo(2, v) maximo (2, v) maior entre 10 e maximo(1, v) maximo (1, v) 5 c) Volte ao problema original. maximo(1, v) 5 maximo(2, v) maior entre 10 e 5 maximo(3, v) maior entre 3 e 10 maximo(4, v) maior entre 7 e 10 maximo(5, v) maior entre 2 e 10 maximo(6, v) maior entre 1 e 10 maximo(7, v) maior entre 30 e 10 maximo(8, v) maior entre 25 e 30 Logo maximo(8, v) 30. 4
5 A implementação dessa solução recursiva é a seguinte: Nota: Algumas pessoas acham que funções recursivas consomem muito tempo. Mas isso é apenas uma lenda propagada por programadores que não sabem usar a recursão. As função maximo recursiva discutida acima "puxa para a esquerda" o fim do vetor, ou seja, troca v[0..n-1] pelo vetor v[0..n-2]. É possível escrever uma versão que "empurre para a direita" o início do vetor. Observe que essa nova versão da função maximo é apenas uma "embalagem": o serviço pesado é executado pela função recursiva mx. A função mx resolve um problema mais geral que o original. Isso ocorre freqüentemente na construção de algoritmos recursivos: é preciso generalizar o problema para que uma solução recursiva se torne possível. 5
6 Exercícios 1. Faça um trabalho sobre As Torres de Hanói. Apresente o problema, a análise do algoritmo que soluciona o problema e implemente a solução. 2. Considere a função iterativa maximo exemplificado anteriormente. Faz sentido trocar "x = v[0]" por "x = 0", como fazem alguns programadores descuidados? Faz sentido trocar "x = v[0]" por "x = INT_MIN"? Faz sentido trocar "x < v[j]" por "x <= v[j]"? 3. A função abaixo promete encontrar o valor de um elemento máximo de v[0..n-1]. A função cumpre a promessa? int maxi (int n, int v[]) { int j, m = v[0]; for (j = 1; j < n; j++) if (v[j-1] < v[j]) m = v[j]; return m; 4. Critique a seguinte função recursiva; ela promete encontrar o valor de um elemento máximo de v[0..n-1]. int maximo1a (int n, int v[]) { int x; if (n == 1) return v[0]; if (n == 2) { if (v[0] < v[1]) return v[1]; else return v[0]; x = maximo1a (n-1, v); if (x < v[n-1]) return v[n-1]; else return x; 5. Critique a seguinte função recursiva; ela promete encontrar o valor de um elemento máximo de v[0..n-1]. int maximo1b (int n, int v[]) { if (n == 1) return v[0]; if (maximo1b (n-1, v) < v[n-1]) return v[n-1]; else return maximo1b (n-1, v); 6. Escreva uma função recursiva maxmin que calcule o valor de um elemento máximo e o valor de um elemento mínimo de um vetor v[0..n-1]. Quantas comparações envolvendo os elementos do vetor a sua função faz? 7. Escreva uma função recursiva que calcule a soma dos elementos positivos do vetor de inteiros v[0..n-1]. O problema faz sentido quando n é igual a 0? Quanto deve valer a soma nesse caso? 8. Escreva uma função recursiva que calcule a soma dos dígitos de um inteiro positivo n. A soma dos dígitos de 132, por exemplo, é Qual o valor de X (4)? int X (int n) { if (n == 1 n == 2) return n; else return X(n-1) + n * X(n-2); 10. Qual é o valor de f (1,10)? Escreva uma função equivalente que seja mais simples. double f(double x, double y) { if (x >= y) return (x + y)/2; else return f(f(x+2, y-1), f(x+1, y-2)); 6
7 11. Qual o resultado da execução do programa abaixo? int main (void) { printf ("%d", ff(7)); return 0; int ff(int n) { if (n == 1) return 1; if (n % 2 == 0) return ff(n/2); return ff((n-1)/2) + ff((n+1)/2); 12. Execute fusc(7,0). int fusc (int n, int profund) { int i; for (i = 0; i < profund; i++) printf (" "); printf ("fusc (%d,%d)\n", n, profund); if (n <= 1) return 1; if (n % 2 == 0) return fusc (n/2, profund+1); return fusc((n-1)/2, profund+1) + fusc((n+1)/2, profund+1); 13. A função de Fibonacci é definida assim: F (0) = 0, F (1) = 1 e F (n) = F(n-1) + F(n-2) para n > 1. Descreva a função F em linguagem C. Faça uma versão iterativa e uma recursiva. 14. A seguinte função calcula o maior divisor comum dos inteiros positivos m e n. Escreva uma função recursiva equivalente. int Euclides(int m, int n) { int r; do { r = m % n; m = n; n = r; while (r!= 0); return m; 15. Escreva uma função recursiva eficiente que receba inteiros positivos k e n e calcule k n. (Suponha que k n cabe em um int.) Quantas multiplicações sua função executa aproximadamente? 16. Faça um programa recursivo, em C, que calcule o n-ésimo número: Quadrado. Fatorial. 7
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 maisAplicações de Combinatória e Geometria na Teoria dos Números
Aplicações de Combinatória e Geometria na Teoria dos Números Nesse artigo vamos discutir algumas abordagens diferentes na Teoria dos Números, no sentido de envolverem também outras grandes áreas, como
Leia mais5 Equacionando os problemas
A UA UL LA Equacionando os problemas Introdução Nossa aula começará com um quebra- cabeça de mesa de bar - para você tentar resolver agora. Observe esta figura feita com palitos de fósforo. Mova de lugar
Leia maisOrientaçã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 maisFração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.
Material Teórico - Módulo de FRAÇÕES COMO PORCENTAGEM E PROBABILIDADE Fração como porcentagem Sexto Ano do Ensino Fundamental Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M. Neto
Leia maisx0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?
Recorrências Muitas vezes não é possível resolver problemas de contagem diretamente combinando os princípios aditivo e multiplicativo. Para resolver esses problemas recorremos a outros recursos: as recursões
Leia maisIntrodução à Programação. Recursão
Introdução à Programação Recursão Recursão decoração Substantivo feminino. 1.Ato ou efeito de decorar decorar Verbo transitivo direto. 1.Guarnecer com adorno(s); dispor formas e cores em; ornamentar, embelezar;
Leia maisDadas 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 ana.santos@qi.edu.br Conceitos Preliminares
Leia maisO Problema do Troco Principio da Casa dos Pombos. > Princípios de Contagem e Enumeração Computacional 0/48
Conteúdo 1 Princípios de Contagem e Enumeração Computacional Permutações com Repetições Combinações com Repetições O Problema do Troco Principio da Casa dos Pombos > Princípios de Contagem e Enumeração
Leia maisContagem I. Figura 1: Abrindo uma Porta.
Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 4 Contagem I De quantos modos podemos nos vestir? Quantos números menores que 1000 possuem todos os algarismos pares?
Leia maisO ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2
3.2 O Espaço Nulo de A: Resolvendo Ax = 0 11 O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2 Esta seção trata do espaço de soluções para Ax = 0. A matriz A pode ser quadrada ou retangular. Uma solução imediata
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisComo fazer para deixar firme uma estante de hastes com prateleiras que está balançando para os lados?
cesse: http://fuvestibular.com.br/ o triângulo é uma das figuras mais importantes da Geometria, e também uma das mais interessantes. Na nossa vida diária, existem bons exemplos de aplicação de triângulos
Leia maisEquações do primeiro grau
Módulo 1 Unidade 3 Equações do primeiro grau Para início de conversa... Você tem um telefone celular ou conhece alguém que tenha? Você sabia que o telefone celular é um dos meios de comunicação que mais
Leia maisTutorial de Matlab Francesco Franco
Tutorial de Matlab Francesco Franco Matlab é um pacote de software que facilita a inserção de matrizes e vetores, além de facilitar a manipulação deles. A interface segue uma linguagem que é projetada
Leia maisExercícios Teóricos Resolvidos
Universidade Federal de Minas Gerais Instituto de Ciências Exatas Departamento de Matemática Exercícios Teóricos Resolvidos O propósito deste texto é tentar mostrar aos alunos várias maneiras de raciocinar
Leia maisA equação do 2º grau
A UA UL LA A equação do 2º grau Introdução Freqüentemente, ao equacionarmos um problema, obtemos uma equação na qual a incógnita aparece elevada ao quadrado. Estas são as chamadas equações do 2º grau.
Leia maisExcel Planilhas Eletrônicas
Excel Planilhas Eletrônicas Capitulo 1 O Excel é um programa de cálculos muito utilizado em empresas para controle administrativo, será utilizado também por pessoas que gostam de organizar suas contas
Leia maisAnalise o código abaixo:
Recursão - introdução Analise o código abaixo: 1 # include 2 # include 3 int Fatorial ( int x) 4 int k, s =1; for (k =0;k
Leia maisRESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO
RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO Caro aluno, Disponibilizo abaixo a resolução das questões de Raciocínio Lógico- Matemático das provas para os cargos de Analista do TRT/4ª Região
Leia maiscasa. Será uma casa simples, situada em terreno plano, com sala, dois quartos, cozinha, banheiro e área de serviço.
A UUL AL A A casa Nesta aula vamos examinar a planta de uma casa. Será uma casa simples, situada em terreno plano, com, dois quartos, cozinha, banheiro e área de serviço. Introdução terreno 20 m rua 30
Leia maisMatemá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 maisEquações do segundo grau
Módulo 1 Unidade 4 Equações do segundo grau Para início de conversa... Nesta unidade, vamos avançar um pouco mais nas resoluções de equações. Na unidade anterior, você estudou sobre as equações de primeiro
Leia maisProblemas de volumes
Problemas de volumes A UUL AL A Nesta aula, vamos resolver problemas de volumes. Com isso, teremos oportunidade de recordar os principais sólidos: o prisma, o cilindro, a pirâmide, o cone e a esfera. Introdução
Leia maisARRAYS. 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 maisTeoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto
Teoria dos Números 1 Noções Básicas A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto Z = {..., 4, 3, 2, 1, 0, 1, 2, 3, 4...}. Ela permite resolver de
Leia maisAná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 maisConstrução de tabelas verdades
Construção de tabelas verdades Compreender a Lógica como instrumento da ciência e como estrutura formal do pensamento, conhecendo e compreendendo as operações com os principais conceitos proposicionais
Leia maisResolução de sistemas lineares
Resolução de sistemas lineares J M Martínez A Friedlander 1 Alguns exemplos Comecemos mostrando alguns exemplos de sistemas lineares: 3x + 2y = 5 x 2y = 1 (1) 045x 1 2x 2 + 6x 3 x 4 = 10 x 2 x 5 = 0 (2)
Leia maisE 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 maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 04: Análise de Algoritmos (Parte 1) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maisA Torre de Hanói e o Princípio da Indução Matemática
A Torre de Hanói e o Princípio da Indução Matemática I. O jogo A Torre de Hanói consiste de uma base com três pinos e um certo número n de discos de diâmetros diferentes, colocados um sobre o outro em
Leia mais2. 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 maisConceitos e fórmulas
1 Conceitos e fórmulas 1).- Triângulo: definição e elementos principais Definição - Denominamos triângulo (ou trilátero) a toda figura do plano euclidiano formada por três segmentos AB, BC e CA, tais que
Leia maisFACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2
FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO Projeto e Análise de Algoritmos II Lista de Exercícios 2 Prof. Osvaldo. 1. Desenvolva algoritmos para as operações abaixo e calcule a complexidade
Leia maisAná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 maisUniversidade 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 maisALGORITMOS PARTE 01. Fabricio de Sousa Pinto
ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3
Leia maisContagem (2) Anjolina Grisi de Oliveira. 2007.1 / CIn-UFPE. Centro de Informática Universidade Federal de Pernambuco
1 / 24 Contagem (2) Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco 2007.1 / CIn-UFPE 2 / 24 O princípio da multiplicação de outra forma O princípio da multiplicação
Leia maisComandos Sequenciais if else, e Switch
Introdução à Programação Comandos Sequenciais if else, e Switch 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) O computador pensa? Muitas vezes utiliza-se a
Leia maisAula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros
O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros Algoritmo e Programação Aula 06 - Funções Colegiado de Engenharia da Computação
Leia maisPROGRAMAÇÃ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 maisUm jogo de preencher casas
Um jogo de preencher casas 12 de Janeiro de 2015 Resumo Objetivos principais da aula de hoje: resolver um jogo com a ajuda de problemas de divisibilidade. Descrevemos nestas notas um jogo que estudamos
Leia maisUniversidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Bacharelado em Sistemas de Informação Estruturas de Dados I Lista II
Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Bacharelado em Sistemas de Informação Estruturas de Dados I Lista II Professor: MSc. Rodrigo Porfírio da Silva Sacchi 30
Leia maisOrientação a Objetos
Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.
Leia maisAPLICAÇÕES DA DERIVADA
Notas de Aula: Aplicações das Derivadas APLICAÇÕES DA DERIVADA Vimos, na seção anterior, que a derivada de uma função pode ser interpretada como o coeficiente angular da reta tangente ao seu gráfico. Nesta,
Leia maisAV2 - MA 12-2012. (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?
Questão 1. Num porta-cds, cabem 10 CDs colocados um sobre o outro, formando uma pilha vertical. Tenho 3 CDs de MPB, 5 de rock e 2 de música clássica. (a) De quantos modos diferentes posso empilhá-los de
Leia maisPor que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...
Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,... 0) O que veremos na aula de hoje? Um fato interessante Produtos notáveis Equação do 2º grau Como fazer a questão 5 da 3ª
Leia maisNotas de Cálculo Numérico
Notas de Cálculo Numérico Túlio Carvalho 6 de novembro de 2002 2 Cálculo Numérico Capítulo 1 Elementos sobre erros numéricos Neste primeiro capítulo, vamos falar de uma limitação importante do cálculo
Leia maisResolvendo problemas com logaritmos
A UA UL LA Resolvendo problemas com logaritmos Introdução Na aula anterior descobrimos as propriedades dos logaritmos e tivemos um primeiro contato com a tábua de logarítmos. Agora você deverá aplicar
Leia mais5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS. 5.1 - Os Programas de Avaliação
36 5. EXPERIÊNCIAS E ANÁLISE DOS RESULTADOS 5.1 - Os Programas de Avaliação Programas de avaliação convencionais foram utilizados para análise de diversas configurações da arquitetura. Estes programas
Leia maisBatalha Naval Algoritmos de Busca. Correlações curriculares Matemática: Números: maior que, menor que, iguais a.
Atividade 6 Batalha Naval Algoritmos de Busca Sumário Computadores são freqüentemente requisitados a encontrar informação em grandes coleções de dados. Estes precisam desenvolver métodos rápidos e eficientes
Leia maisquociente razão. mesma área a partes de um tablete de chocolate
1 As sequências de atividades Vamos relembrar, Como lemos os números racionais?, Como escrevemos os números racionais?, As partes das tiras de papel, Comparando e ordenando números racionais na forma decimal
Leia maisAulas de PHP Criptografia com Cifra de César. Paulo Marcos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br
Aulas de PHP Criptografia com Cifra de César Paulo Marcos Trentin paulo@paulotrentin.com.br http://www.paulotrentin.com.br Cifra de César com ISO-8859-1 A cifra de Cesar existe há mais de 2000 anos. É
Leia maisProblemas insolúveis. Um exemplo simples e concreto
Surge agora uma outra questão. Viemos buscando algoritmos para resolver problemas. No entanto, será que sempre seria possível achar esses algoritmos? Colocando de outra forma: será que, para todo problema,
Leia maisO coeficiente angular
A UA UL LA O coeficiente angular Introdução O coeficiente angular de uma reta já apareceu na Aula 30. Agora, com os conhecimentos obtidos nas Aulas 40 e 45, vamos explorar mais esse conceito e descobrir
Leia maisMATEMÁTICA: DESENVOLVENDO ATIVIDADES ENIGMÁTICAS COM MATEMÁGICA E LÓGICA PARA OS ANOS INICIAIS DO ENSINO FUNDAMENTAL
MATEMÁTICA: DESENVOLVENDO ATIVIDADES ENIGMÁTICAS COM MATEMÁGICA E LÓGICA PARA OS ANOS INICIAIS DO ENSINO FUNDAMENTAL Francisca Terezinha Oliveira Alves (UFPB) ftoalves@yahoo.com.br Luciano Moreira da Silva
Leia maisComo fazer contato com pessoas importantes para sua carreira?
Como fazer contato com pessoas importantes para sua carreira? - Tem alguém com quem você gostaria de fazer contato? - Porque você não o fez até agora? - Por que é importante aprender a fazer esses contatos?
Leia maisBases 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 maisSISTEMAS LINEARES CONCEITOS
SISTEMAS LINEARES CONCEITOS Observemos a equação. Podemos perceber que ela possui duas incógnitas que são representadas pelas letras x e y. Podemos também notar que se e, a igualdade se torna verdadeira,
Leia maisRecursividade. Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 08 Algoritmos e Estruturas de Dados I
Recursividade Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 08 Algoritmos e Estruturas de Dados I Outros Exemplos de Recursividade Factais são outros exemplos de recursividade Quando
Leia maisSUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2
SUMÁRIO 1. AULA 6 ENDEREÇAMENTO IP:... 2 1.1 Introdução... 2 1.2 Estrutura do IP... 3 1.3 Tipos de IP... 3 1.4 Classes de IP... 4 1.5 Máscara de Sub-Rede... 6 1.6 Atribuindo um IP ao computador... 7 2
Leia maisProjeção ortográfica de modelos com elementos paralelos e oblíquos
A U L A Projeção ortográfica de modelos com elementos paralelos e oblíquos Introdução Você já sabe que peças da área da Mecânica têm formas e elementos variados. Algumas apresentam rebaixos, outras rasgos,
Leia maisProblemas de Jogos e Tabuleiros
Problemas de Jogos e Tabuleiros Professor Emiliano Augusto Chagas Para esquentar! 01) Duas crianças se revezam em turnos quebrando uma barra retangular de chocolate, com seis quadrados de altura e oito
Leia maisCá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 maisEquacionando problemas - II
A UA UL LA Equacionando problemas - II Introdução Nossa aula Nas duas últimas aulas, resolvemos diversas equações do º grau pelo processo de completar o quadrado perfeito ou pela utilização da fórmula
Leia maisAlgoritmos em Javascript
Algoritmos em Javascript Sumário Algoritmos 1 O que é um programa? 1 Entrada e Saída de Dados 3 Programando 4 O que é necessário para programar 4 em JavaScript? Variáveis 5 Tipos de Variáveis 6 Arrays
Leia mais36ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 3 Ensino Médio
36ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 3 Ensino Médio Esta prova também corresponde à prova da Primeira Fase da Olimpíada Regional nos Estados de: AL BA ES MG PA RS RN SC Terça-feira,
Leia maisIntegrais Duplas e Coordenadas Polares. 3.1 Coordenadas Polares: Revisão
Cálculo III Departamento de Matemática - ICEx - UFMG Marcelo Terra Cunha Integrais Duplas e Coordenadas Polares Nas primeiras aulas discutimos integrais duplas em algumas regiões bem adaptadas às coordenadas
Leia maisArquitetura 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 maisMC-102 Aula 17 Strings e Matrizes
MC-102 Aula 17 Strings e Matrizes Instituto de Computação Unicamp 5 de Maio de 2015 Roteiro 1 Strings Strings: Exemplos 2 Matrizes Exemplos com Matrizes 3 Exercícios (Instituto de Computação Unicamp) MC-102
Leia mais9 Comandos condicionais
9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em
Leia maisOPERADORES E ESTRUTURAS DE CONTROLE
OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em
Leia maisInformática no Ensino de Matemática Prof. José Carlos de Souza Junior
Informática no Ensino de Matemática Prof. José Carlos de Souza Junior http://www.unifal-mg.edu.br/matematica/?q=disc jc Aula 02 ATIVIDADE 01 Para poupar esforço de digitação, você pode usar o tradicional
Leia maisREPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade
REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização
Leia maisAlgoritmos. Objetivo principal: explicar que a mesma ação pode ser realizada de várias maneiras, e que às vezes umas são melhores que outras.
6 6 NOME DA AULA: 6 Algoritmos Duração da aula: 45 60 minutos Tempo de preparação: 10-25 minutos (dependendo da disponibilidade de tangrans prontos ou da necessidade de cortá-los à mão) Objetivo principal:
Leia maisLição 2: O que Faz um Canal Funcionar?
Lição 2: O que Faz um Canal Funcionar? Nesta lição, daremos uma olhada em todas as partes de um canal do YouTube e veremos como cada parte contribui para o tempo de exibição. Lição 2.1 - Benefícios do
Leia mais(a 1 + a 100 ) + (a 2 + a 99 ) + (a 3 + a 98 ) +... + (a 50 + a 51 ).
Questão 1. A sequência 0, 3, 7, 10, 14, 17, 21,... é formada a partir do número 0 somando-se alternadamente 3 ou 4 ao termo anterior, isto é: o primeiro termo é 0, o segundo é 3 a mais que o primeiro,
Leia mais20 Caracteres - Tipo char
0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,
Leia maisJosé Romildo Malaquias 2011-1
Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três
Leia maisBUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES
BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES ALGORITMOS DE BUSCA EM LISTAS COM ALOCAÇÃO SEQÜENCIAL Busca em Listas Lineares A operação de busca é
Leia maisLINGUAGEM C UMA INTRODUÇÃO
LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional
Leia maisUNIVERSIDADE FEDERAL DE SANTA MARIA
1 UNIVERSIDADE FEDERAL DE SANTA MARIA Disciplina de Algoritmos e Programação Profa: Juliana Kaizer Vizzotto Lista de Exercícios Vetores Para a implementação de programas que solucionem os problemas a seguir
Leia maisAula 06 Introdução à Teste de Módulos II e Exercícios. Alessandro Garcia LES/DI/PUC-Rio Março 2014
Aula 06 Introdução à Teste de Módulos II e Exercícios Alessandro Garcia LES/DI/PUC-Rio Março 2014 Princípios Discutidos até aqui Cada módulo deveria implementar uma única abstração similarmente: cada função
Leia maisINTRODUÇÃO AO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO AO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar a grande semelhança entre Java e C Apresentar a organização diferenciada
Leia maisCálculo Numérico Computacional Exercícios lista 04 Raizes aproximadas
1 Cálculo Numérico Computacional Exercícios lista 04 Raizes aproximadas Varredura, método da tangente Prof. Tarcisio Praciano-Pereira Dep. de Matemática tarcisio@member.ams.org aluno: Univ. Estadual Vale
Leia maisChapter 2. 2.1 Noções Preliminares
Chapter 2 Seqüências de Números Reais Na Análise os conceitos e resultados mais importantes se referem a limites, direto ou indiretamente. Daí, num primeiro momento, estudaremos os limites de seqüências
Leia maisTítulo: Sistemas Lineares no CAp UFRJ: Interpretações Algébrica e Gráfica
Autor Letícia Guimarães Rangel Co-autor(es): Fernando Celso Villar Marinho Lílian Káram Parente Cury Spiller Rita Maria Cardoso Meirelles Tipo de Pesquisa Ensino Médio Números e Operações Componente Curricular
Leia maisAula 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 jesus.mena@ufabc.edu.br 1Q-2015 1 Custo de um algoritmo e funções de complexidade
Leia maisObjetivos: Entender o funcionamento dos programas Java via linha de comando
Algoritmos e Programação I Aula de Laboratório Objetivos: Entender o funcionamento dos programas Java via linha de comando 1. A Linha de Comando: DOS ou Shell Apesar dos usuários geralmente não enxergarem
Leia maisSistemas 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 maisCAPÍ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 maisEmpresário. Você curte moda? Gosta de cozinhar? Não existe sorte nos negócios. Há apenas esforço, determinação, e mais esforço.
Empresário Não existe sorte nos negócios. Há apenas esforço, determinação, e mais esforço. Sophie Kinsella, Jornalista Econômica e autora Você curte moda? Gosta de cozinhar? Ou talvez apenas goste de animais?
Leia maisBC0501 Linguagens de Programação
BC0501 Linguagens de Programação Aula Prática: 03 Assunto: Comandos de Seleção 1. Introdução Um comando de seleção define uma condição em um programa, que permite que grupos de comandos sejam executados
Leia maisUNIDADE V COMO CONSEGUIR LEADS
UNIDADE V COMO CONSEGUIR LEADS Agora que você já tem sua página de captura no ar e também sua sequência de e-mails automáticos configurados chegou o momento de colocar tudo para funcionar. Ou seja, chegou
Leia maisEstruturas (Registros)
Estruturas (Registros) Os vetores e as matrizes, como vimos anteriormente, são estruturas capazes de armazenar diversos valores do mesmo tipo. Mas, e se quiséssemos armazenar em uma estrutura diversos
Leia maisProjeção ortográfica da figura plana
A U L A Projeção ortográfica da figura plana Introdução As formas de um objeto representado em perspectiva isométrica apresentam certa deformação, isto é, não são mostradas em verdadeira grandeza, apesar
Leia mais