A maior rede de estudos do Brasil

Grátis
59 pág.
livro Programacao C - Respostas+dos+exercícios+propostos+C

Pré-visualização | Página 4 de 8

i++)
if (v[i] % 2 == 0)
{
u[k] = v[i];
k = k + 1;
}
else
{
w[j] = v[i];
j = j + 1;
}
}
5. /*Função que determina a norma de um vetor*/
float NormaVetor(int *v, int t)
{
int i;
float Norma = 0;
for (i = 0; i < t; i++)
Norma = Norma + v[i]*v[i];
return(sqrt(Norma));
}
 6. /Função que determina o produto escalar de dois vetores*/
int ProdutoEscalar(int *v, int *w, int t)
{
int i, ProdEscalar = 0;
for (i = 0; i < t; i++)
ProdEscalar = ProdEscalar + v[i]*w[i];
return(ProdEscalar);
}
7. /*Função que determina a amplitude de uma tabela*/
/*Função que determina a maior componente de um vetor*/
float Maior(float *v, int t)
{
int i;
float m;
m = v[0];
for (i = 1; i < t; i++)
if (v[i] > m)
m = v[i];
return(m);
}
/*Função que determina a menor componente de um vetor*/
float Menor(float *v, int t)
{
int i;
float m;
m = v[0];
for (i = 1; i < t; i++)
if (v[i] < m)
m = v[i];
return(m);
}
float Amplitude(float *v, int t)
{
return(Maior(v, t) ­ Menor(v, t));
}
8. /Função que determina o desvio padrão de uma tabela*/
/*Função que determina a média aritmética de uma tabela*/
float Media(float *v, int t)
{
int i;
float Soma = 0.0;
for (i = 0; i < t; i++)
Soma = Soma + v[i];
return(Soma/t);
}
float DesvioPadrao(float *v, int t)
{
int i;
float *d;
float Med;
Med = Media(v, t);
for (i = 0; i < t; i++)
d[i] = (v[i] ­ Med)*(v[i] ­ Med);
return(sqrt(Media(d, t)));
}
9. /*Função para determinar as componentes distintas de um vetor*/
/*Função que verifica se um dado valor está armazenado num vetor*/
int PesqSequencial(int v1[30], int t1, int x)
{
int i;
i = 0;
while ((v1[i] != x) && (i < t1))
i = i + 1;
if (v1[i] == x)
return (1);
else
return (0);
}
int ComponentesDistintas(int v2[30], int Aux[30], int t2)
{
int i, k;
Aux[0] = v2[0];
k = 0;
for (i = 1; i < t2; i++)
if (PesqSequencial(Aux, k + 1, v2[i]) == 0)
{
k = k + 1;
Aux[k] = v2[i];
}
return(k + 1);
}
10. /*Função que realiza um sorteio a partir dos algarismos das unidades dos números 
sorteados pela loteria*/
void LeSorteio(int v[5])
{
int i;
for (i = 0; i < 5; i++)
scanf("%d", &v[i]);
}
long NumeroSorteado(int v[5])
{
int i;
long n = 0;
for (i = 4; i >= 0; i­­)
n = n + (v[i] % 10)*(int)pow10(4 ­ i);
return (n);
}
11. /*Função que insere um valor num vetor numa posição dada*/
void InsereComponente(int *v, int &t, int x, int p)
{
int i;
t = t + 1;
for (i = t; i > p; i­­)
v[i] = v[i ­ 1];
v[p] = x;
}
12. /*Função que insere uma componente num vetor ordenado de modo que ele se mantém 
ordenado*/
void InsereOrdenado(int *v, int t, int x)
{
int i, j;
i = 0;
while ((v[i] < x) && (i < t))
i = i + 1;
t = t + 1;
for (j = t; j > i; j­­)
v[j] = v[j ­ 1];
v[i] = x;
}
13. /*Função que exclui uma componente de um vetor*/
void DeletaComponente(int *v, int &t, int p)
{
int i;
if (p < t)
{
for (i = p; i < t; i++)
v[i] = v[i + 1];
t = t ­ 1;
}
}
14. /*Função que determina as componentes comuns de dois vetores*/
int PesqSequencial(int *v, int t, int x)
{
int i;
i = 0;
while ((v[i] != x) && (i < t))
i = i + 1;
if (v[i] == x)
return (1);
else
return (0);
}
void InterseptaVetores(int *v1, int t1, int *v2, int t2, int *v, int &t)
{
int i;
t = 0;
for (i = 0; i < t1; i++)
if (PesqSequencial(v2, t2, v1[i]) == 1)
{
v[t] = v1[i];
t = t + 1;
}
}
15. /*Função que determina a maior diferença entre duas componentes consecutivas de um 
vetor ordenado*/
int Maior(int *v, int t, int &p)
{
int i;
float m;
m = v[0];
p = 0;
for (i = 1; i < t; i++)
if (v[i] > m)
{
m = v[i];
p = i;
}
return(m);
}
int MaiorDiferenca(int v[20], int t, int p)
{
int i, Diferencas[20];
for (i = 0; i < t ­ 1; i++)
Diferencas[i] = v[i+1] ­ v[i];
return(Maior(Diferencas, t ­ 1, p));
}
16. /*Função que corrige um teste objetivo*/
int Corrige(int v1[50], int v2[50], int t)
{
int Acerto, i;
Acerto = 0;
for (i = 0; i < t; i++)
if (v1[i] == v2[i])
Acerto = Acerto + 1;
return (Acerto);
}
17. /*Função que calcula o valor numérico de um polinomio*/
float ValNumerico(float *v, int g, float x)
{
int i;
float ValorNumerico;
ValorNumerico = v[g];
for (i = 0; i < g; i++)
ValorNumerico = ValorNumerico + v[i]*pow(x, g ­ i);
return (ValorNumerico);
}
18. /*Função que determina uma moda de uma relação armazenada num vetor*/
float PosicaoMaior(float v[50], int t)
{
int i, m;
m = 0;
for (i = 1; i < t; i++)
if (v[i] > m)
m = i;
return (m);
}
float Moda(float v[50], int t)
{
float Freq[50];
int i, j, p;
for (i = 0; i < t; i++)
{
Freq[i] = 0;
for (j = 0; j < t; j++)
if (v[j] == v[i])
Freq[i] = Freq[i] + 1;
}
p = PosicaoMaior(Freq, t);
return (v[p]);
}
19. /*Função para inverter um numero  dado*/
long InverteNumero(int m)
{
int i, j, n,  Alg[20];
long Invert;
i = 0;
n = m;
while (pow10(i) < m)
{
Alg[i] = n % 10;
n = n/10;
i = i + 1;
}
i = i ­ 1;
Invert = 0;
for (j = 0; j <= i; j++)
Invert = Invert + Alg[i­j]*pow10(j);
return (Invert);
}
20. /*Função que converte um numero decimal para o sistema binário*/
void DecBin(int n)
{
int i, j, *Bin;
i = 0;
while (n > 0)
{
Bin[i] = n % 2;
n = n/2;
i = i + 1;
}
for (j = i ­ 1; j >= 0; j­­)
printf("%d", Bin[j]);
printf("\n");
}
21. /*Função para decompor um número inteiro em fatores primos, armazenando os fatores 
e suas multiplicidades uma matriz*/
void DecFatPrimos(int n, int Fatores[10][10], int &q)
{
int i, Mult;
i = 2;
q = 0;
while (n > 1)
{
Mult = 0;
while (n % i == 0)
{
n = n/i;
Mult = Mult + 1;
}
if (Mult > 0)
{
Fatores[q][0] = i;
Fatores[q][1] = Mult;
q = q + 1;
}
i = i + 1;
}
}
22. /*Função que verifica a aprovação de um aluno da Universidade Federal de Alagoas*/
float Menor(float v[4], int b)
{
int i, m;
m = v[0];
b = 0;
for (i = 1; i < 4; i++)
if (v[i] <  m)
{
m = v[i];
b = i;
}
return (m);
}
void Reavaliacao(float v[4])
{
int b, MenorNota;
char s;
float Reav;
MenorNota = Menor(v, &b);
if (MenorNota < 7)
{
printf("O aluno fez reavaliacao (S/N)?");
fflush(stdin);
scanf("%c", &s);
if (toupper(s) == 'S')
{
printf("Digite a nota da reavaliacao");
scanf("%f", &Reav);
v[b] = Reav;
}
}
}
float Media(float v[4])
{
int i;
float m = 0;
for (i = 0; i < 4; i++)
m = m + v[i];
return(m/4);
}
float MediaFinal(float v[4], char *Sit)
{
float  NotaFin, MediaFin, MediaBim;
char s;
Reavaliacao(v);
MediaBim = Media(v);
if ((MediaBim < 5) || (MediaBim >= 7))
MediaFin = MediaBim;
else
{
printf("O aluno fez prova final(S/N)?");
scanf("%c", &s);
if (toupper(s) == 'S')
{
printf("Digite a nota da prova final");
scanf("%f", &NotaFin);
MediaFin = (6*MediaBim + 4*NotaFin)/10;
}
}
if (MediaFin < 5.5)
*Sit = 'R';
else
*Sit = 'A';
return(MediaFin);
}
23. /*Função que retorna a transposta de uma matriz*/
void Transposta(float Mat[10][10], float Transp[10][10], int m, int n)
{
int i, j;
for (i = 0; i < m; i++)
for(j = 0; j < n; j++)
Transp[j][i] = Mat[i][j];
}
24. /*Função que permuta duas linhas de uma matriz*/
void TrocaLinha(float v[10][10], int n, int Lin1, int Lin2)
{
int i;
float Aux;
for (i = 0; i < n; i++)
{
Aux = v[Lin1][i];
v[Lin1][i] = v[Lin2][i];
v[Lin2][i] = Aux;
}
}
25. /*Função que verifica se uma matriz é triangular*/
int VerificaMatrizTriangular(float v[10][10], int n)
{
int i = 0, j, Sim = 1;
while ((i < n) && (Sim == 1))
{
j = i + 1;
while((j < n) && (Sim == 1))
if (v[i][j] != 0)
Sim = 0;
else
j = j + 1;
i = i + 1;
}
return (Sim);
}
26. /*Função que verifica se uma matriz é simétrica*/ 
int VerificaMatrizSimetrica(float v[10][10], int n)
{
int i = 0, j, Sim = 1;
while ((i < n) && (Sim == 1))
{
j = 0;
while((j < n) && (Sim == 1))
if (v[i][j] != v[j][i])
Sim = 0;
else
j = j + 1;
i = i + 1;
}
return (Sim);
}
27. /*Função que multiplica duas matrizes*/ 
void MultMat(float m1[5][5], float m2[5][5], float m3[5][5], int l1, int c1, int l2, int c2)
{
int i = 0, j = 0, k = 0;
if (c1 == l2)
{
while (i < l1)
{
m3[i][j] = 0;
while (j < c2 && k < l2)
{
m3[i][j] = m3[i][j] + m1[i][k]*m2[k][j];
k = k +1;
}
k = 0;
j = j + 1;
if (j == c2)
{
i = i + 1;
j = 0;
}
}
}
}
28. /*Função que determina as médias das linhas de uma matriz, armazenando­as numa 
nova coluna da matriz*/
float Media(float