59 pág.

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[ij]*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, armazenandoas numa nova coluna da matriz*/ float Media(float