Simulado de Prova
1) Dada a definição da função alg abaixo,
int alg(int a, int b)
{
if(b == 1) return a;
else return alg(a+1, b-1) + a * b;
}
Que valor a seguinte chamada devolve?
alg ( 2 , 6 ) = __________________
Justifique através do preenchimento da tabela ao lado:
a | b | alg (a,b) |
2) Crie uma função em C que receba por parâmetro dois vetores de números reais e um número inteiro que represente o tamanho destes vetores; a função deve calcular a chamada distância quadrática de dois vetores. Este cálculo soma os quadrados das diferenças dos valores correspondentes dos dois vetores, ou seja, (A[0] - B[0])² + (A[1] - B[1])² + (A[2] - B[2])² + … + (A[10] - B[10])². Pronto! A assinatura da função é assim: double distanciaQuadratica (double A[ ], double B[ ], int N).
Exemplo:
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||||
A | 0 | 3 | -2 | 7 | 9 | 11 | 15 | 0 | 0 | 0 | 0 | |||
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | ||||
B | 0 | 4 | 0 | 7 | 9 | 11 | 15 | 0 | 1 | 0 | 1 |
No exemplo acima, o resultado seria: (0)² + (3-4)² + (-2-0)² + (7-7)² + (9-9)² + (11-11)² + (15-15)² + (0-0)² + (0-1)² + (0-0)² + (0-1)² = 7
OBS.: USE COMANDOS DE REPETIÇÃO, POIS OS VETORES PODEM SER DE TAMANHO ARBITRÁRIO (O ACIMA É SÓ UM EXEMPLO).
3) Crie uma função em C para calcular e retornar a soma dos elementos que não estão na borda de uma matriz. Exemplo: dada a matriz abaixo, a função retornará: 6 + 7 + 10 + 11 = 34.
0
1
2
3
0
1
2
3
4
1
5
6
7
8
2
9
10
11
12
3
13
14
15
16
O protótipo da função é: int somaCentro ( int L, int C, int mat [ L ] [ C ] )
Use repetição para criar seu código. Lembre-se que a função deverá funcionar para matrizes de quaisquer tamanhos.
4) Crie uma função RECURSIVA para calcular a soma dos quadrados dos números positivos até N. Para valores negativos de N, a função deve retornar o valor dela para o módulo do número, ou seja, o correspondente positivo. O protótipo da função é assim: int somaQuadrados (int N)
Exemplos:
se N for 10, a função somaQuadrados deverá retornar o valor de 1² + 2² + 3² + …. + 8² + 9² + 10² = 385
se N for 5, a função somaQuadrados deverá retornar o valor de 1² + 2² + 3² + 4² + 5² = 55
se N for 0, a função somaQuadrados deverá retornar o valor 0
se N for -5, a função somaQuadrados deverá retornar o mesmo que somaQuadrados(5) = 55
Comentários
Postar um comentário