Lista de Estrutura de dados
Curso de Sistemas de Informação
Estruturas de Dados I – 2014/2
1a Lista de Exercícios
1) Considerando a existência de notas (cédulas) nos valores R$ 100, R$ 50, R$ 20, R$ 10, R$ 5, R$
2 e R$ 1, escreva um programa que capture um valor inteiro em reais (R$) e determine o menor número de notas para se obter o montante fornecido. A função deve ter o seguinte protótipo: int total_de_notas(int valor);
2) Considere a função que calcula o n-ésimo número harmônico H(n) conforme definida a seguir:
H(n) = 1 + 1/2 + 1/3 + 1/4 + . . . + 1/n (n >= 1)
Apresente uma definição recursiva para H(n) e implemente o cálculo desse valor como uma função
RECURSIVA em C. A função deve ter o seguinte protótipo: double harmonico(int n);
3) Escreva uma função RECURSIVA que recebe como parâmetro um valor inteiro e imprime a representação binária deste número. A função deve ter o seguinte protótipo: void imprime_binario(int n);
4) O MDC de dois números inteiros é o maior número inteiro que divide ambos sem deixar resto.
Este valor pode ser determinado da seguinte forma: calcula-se o resto da divisão do maior número pelo menor. Se o resto for igual a zero o MDC é o menor dos números. Se não for, o MDC será o mesmo que o MDC do menor número e o resto. Escreva uma função RECURSIVA para o cálculo do MDC. A função deve ter o seguinte protótipo: int mdc(int a, int b);
5) Em uma progressão aritmética (PA) de razão k, considerando quaisquer elementos consecutivos xi e xi+1, temos que xi+1 = xi + k. Escreva uma função RECURSIVA que recebe como parâmetros o inteiro x, correspondendo ao primeiro elemento da PA, e o inteiro k, representando a razão da PA, e retorna a soma dos k primeiros elementos da PA. O protótipo da função é: int soma_pa(int x, int k);
6) Implemente uma função que recebe como parâmetro um vetor de números reais vet de tamanho n e retorna o índice do maior valor armazenado nesse vetor. Considere que não há valores repetidos