void insereDicionario (celula *ini, string palavra) { string npalavra = normalizar (palavra); celula *p, *q; int dif; p = ini->prox; q = ini; while (p != NULL) { /* q representa a celula anterior e p representa a celula // que tem a palavra a ser inserida na lista*/ dif = (strcmp (p->conteudo, npalavra)); if (dif > 0) { celula *nova; nova = malloc (sizeof (celula)); nova->conteudo = npalavra; nova->prox = q->prox; q->prox = nova; break; } else if (dif == 0) break; p = p->prox; q = q->prox; } if (p == NULL) { celula *nova; nova = malloc (sizeof (celula)); nova->conteudo = npalavra; nova->prox = q->prox; q->prox = nova; } }
void calcular_base_ortonormal(Matriz& matriz, Matriz& matriz_ortonormal, int alfa){ //deja en matriz_ortonormal una matriz de alfa columnas double autovalor; int m = matriz_ortonormal.dimensionColumnas(); for (int i = 0; i < alfa; ++i) { //repito alfa veces (hay que experimentar con dicho valor) vector<double>& aux = matriz_ortonormal[i]; Matriz::cargarVector(aux); matriz.mostrar2(); autovalor = metodoPotencia(matriz, aux); //calculo el i-ésimo autovalor, en aux queda el autovector std::cout << "autovalor: " << i << " vale: " << std::scientific << autovalor << std::endl; /* Deflación */ Matriz auxiliar(m, m); std::cout << "-----------------------------------" << std::endl; normalizar(aux); auxiliar.multiplicarVectoresDameMatriz(aux, aux); auxiliar.multiplicarEscalar(autovalor); matriz.menos(auxiliar); matriz.mostrar2(); while (true) {} } /* Tengo en matriz_ortonormal la matriz con base de autovectores de matriz */ }
int validar_clave(char* clave){ int det, det_1, det_2, inv_det; char matrix[10]; if(strlen(clave) != 9) return 1; normalizar(clave, matrix); // calculamos el determinante det_1 = matrix[0]*matrix[4]*matrix[8] + matrix[1]*matrix[5]*matrix[6] + matrix[2]*matrix[3]*matrix[7]; det_2 = matrix[2]*matrix[4]*matrix[6] + matrix[5]*matrix[7]*matrix[0] + matrix[8]*matrix[1]*matrix[3]; det = det_1 - det_2; if(det == 0) return 1; if(det < 0) det = (det % 41)+41; else det = det % 41; inv_det = euclides(0, 1, 0, 41, 0, 1, det); if(inv_det == 0){ return 1; } return 0; }
int main () { srand(time(NULL)); int i; int x; int *vetor; printf("Digite o tamanho do vetor: "); scanf("%d",&x); vetor = calloc(x,sizeof(int)); printf("\n"); for(i = 0; i < x; i++) { scanf("%d",&vetor[i]); } printf("\n"); normalizar(vetor, x); system("pause"); return 0; }
int main () { srand(time(NULL)); int x; int *vetor; x = rand()%10; printf("Tamanho do vetor = %d\n\n",x); normalizar (vetor, x); printf("\n"); system("pause"); return 0; }
void normal (float ax,float ay,float az,float bx,float by,float bz,float cx,float cy,float cz,float *x, float *y, float *z) { float dx, dy, dz, ex, ey, ez; dx = ax - bx; //calcula os vetores iniciais dy = ay - by; dz = az - bz; ex = bx - cx; ey = by - cy; ez = bz - cz; *x = (dy * ez) - (dz * ey); //vetor normal *y = (dz * ex) - (dx * ez); *z = (dx * ey) - (dy * ex); normalizar(x,y,z); }