PRIMEIRA LISTA DE EXERCICIOS
Questão 01.
Explique e exemplifique o que é comportamento assintótico de funções.
O comportamento assintótico de uma função representa o limite do comportamento do custo quando n cresce, ou seja, uma determinada função f(n) nunca crescerá tanto a ponto de alcançar g(n), mesmo se receber grandes valores como entrada. A função f(x) = 10x + 11 é O(x). Como exemplo, basta utilizar c = 12 e x0 = 10.
Questão 02.
Utilizando as definições para as notações assintóticas, prove se são verdadeiras ou falsas as seguintes afirmativas:
a) 3n³ + 2n² + n + 1 = O(n³) 3n³ + 2n² + n + 1 <= c * n ³ 3 + 2/n + 1/n² + 1 <= c N = 1 3 + 2 + 1 + 1 = 7
Verdadeira para c = 7 e n = 1
b) 7n² = O(n)
7n² <= c*n
7n <= c
Falsa.
c) 2n+2 = O(2n )
2n + 2 <= c*2n
2n * 22 <= c * 2
2² <= c
Verdadeira para n0 = 1 e c = 4
Questão 03
O que é uma referência na programação orientada a objetos? Como isso se relaciona com o conceito de ponteiros?
Ponteiro é uma variável que armazena um endereço de memória onde está localizado um valor, desta forma pode-se acessar os valores pelo endereço. Quando declaramos uma variável para associar um objeto, na verdade esta variável não guarda o objeto, mas uma maneira de acessá-lo: uma referência.
Questão 04
Faça uma função recursiva que procure por um determinado elemento num vetor com N elementos e retorne a posição do vetor em que ele se encontra, se não achá-lo retorne –1.
Método : int Procura (int[] v, int n, int numero){ if (n == 0) { if (v[n] == numero) return v[n]; else return -1; } else
{
if (v[n] == numero) return n; return Procura(v, n-1, numero); } } Main : int [] vet = {2,3,4,5,6} ; int posicao = procura(vet, vet.Length -1, 3);
Console.WriteLine ("Posicao: " + posicao);
Questão 05.
Escreva uma função recursiva, ImprimeSerie(i,j,k: inteiro), que imprime na tela a série de valores do intervalo [i,j], com incremento k.
Método : ImprimeSerie (int i,int j,int k){