void producto_herbolario::recuperarDatos(int id_producto) { QSqlQuery producto(QSqlDatabase::database("db_meditec")); producto.prepare("select * from productos_herbolario where id = :id"); producto.bindValue(":id",id_producto); if(!producto.exec()){ QMessageBox::warning(qApp->activeWindow(),tr("ERROR"), tr("Error al recuperar los datos: %1").arg(producto.lastError().text()), tr("Aceptar")); } else { producto.next(); this->id = id_producto; this->nombre = producto.record().value("nombre").toString(); this->descripcion = producto.record().value("descripcion").toString(); this->contraindicaciones = producto.record().value("contraindicaciones").toString(); this->precio = producto.record().value("precio").toDouble(); this->indicaciones = producto.record().value("indicaciones").toString(); this->composicion = producto.record().value("composicion").toString(); this->presentacion = producto.record().value("presentacion").toString(); this->advertencias = producto.record().value("advertencias").toString(); this->id_laboratorio = producto.record().value("id_laboratorio").toInt(); this->laboratorio = this->devolver_laboratorio(this->id_laboratorio); this->fechaalta = producto.record().value("fecha_alta").toDate(); this->fechabaja = producto.record().value("fecha_baja").toDate(); this->principios_activos = producto.record().value("principiosactivos").toString(); this->esbaja = producto.record().value("baja").toBool(); } }
void Plantas::recuperarDatos(int id_planta) { QSqlQuery producto(QSqlDatabase::database("db_meditec")); producto.prepare("select * from fitoterapia_occidental where id = :id"); producto.bindValue(":id",id_planta); if(!producto.exec()){ QMessageBox::warning(qApp->activeWindow(),tr("ERROR"), tr("Error al recuperar los datos: %1").arg(producto.lastError().text()), tr("Aceptar")); } else { producto.next(); this->id = producto.record().value("id").toInt(); this->nombre_espanol_espana = producto.record().value("nombre_espanol_espana").toString(); this->nombre_espanol_mexico = producto.record().value("nombre_espanol_mexico").toString(); this->nombre_cientifico_latin = producto.record().value("nombre_cientifico_latin").toString(); this->principiosactivos = producto.record().value("principiosactivos").toString(); this->accion = producto.record().value("accion").toString(); this->efectos_secundarios = producto.record().value("efectos_secundarios").toString(); this->posologia = producto.record().value("posologia").toString(); this->nombre_catala = producto.record().value("nombre_catala").toString(); this->estados = producto.record().value("estado").toString(); } }
int producto(int num1, int num2){ if(num1==0 || num2==0){ return 0; }else{ return num1+producto(num1,num2-1); } }
void main (void) { int resr = 0, resi = 0; char op; clrscr (); do { printf ("Introduzca el primer número imaginario(a,b)(a+bi): "); scanf ("%d%d", &num1, &num1i); printf ("Introduzca el segundo número imaginario: "); scanf ("%d%d", &num2, &num2i); printf ("Introduzca un operador (+(1),-(2),*(3),/(4)): "); scanf ("%d", &operador); switch (operador) { case 1: suma (num1, num2, num1i, num2i, &resr, &resi); op = '+'; break; case 2: resta (num1, num2, num1i, num2i, &resr, &resi); op = '-'; break; case 3: producto (num1, num2, num1i, num2i, &resr, &resi); op = '*'; break; case 4: cociente (num1, num2, num1i, num2i, &resr, &resi); op = '/'; break; default: printf (":-}\n"); break; }; if ((resr != 0) && (resi != 0)) printf ("(%d+%di) %c (%d+%di) = (%d+%di)", num1, num1i, op, num2, num2i, resr, resi); else if (resr == 0) printf ("(%d+%di) %c (%d+%di) = %di", num1, num1i, op, num2, num2i, resi); else printf ("(%d+%di) %c (%d+%di) = %d", num1, num1i, op, num2, num2i, resr); printf ("\n¿Desea realizar otra operación?(s(1)/n(2)): "); scanf ("%d", &operador); } while (operador == 1); }
void producto_herbolario::anadirDatos() { QSqlQuery producto(QSqlDatabase::database("db_meditec")); if(producto.exec("INSERT INTO productos_herbolario (nombre) VALUES ('');")){ this->clear(); this->id = producto.lastInsertId().toInt(); } }
void Plantas::anadirDatos() { QSqlQuery producto(QSqlDatabase::database("db_meditec")); if(producto.exec("INSERT INTO fitoterapia_occidental (nombre_espanol_espana) VALUES ('');")){ this->clear(); this->id = producto.lastInsertId().toInt(); } }
int main(){ int a,b; printf("\na: "); scanf("%d",&a); printf("\nb: "); scanf("%d",&b); printf("\n %dx%d=%d",a,b,producto(a,b)); return 0; }
int producto(int a,int b){ int resul; if (b==0){ resul=0; } else if (b>=1){ resul=a+producto(a,b-1); } return resul; }
void producto_herbolario::baja(int id_producto) { QSqlQuery producto(QSqlDatabase::database("db_meditec")); producto.prepare("UPDATE productos_herbolario SET " "fecha_baja = :fechabaja," "baja = :baja" " WHERE id =:id;"); producto.bindValue(":fechabaja",this->fechabaja); producto.bindValue(":baja",this->esbaja); producto.bindValue(":id",id_producto); if(!producto.exec()){ QMessageBox::warning(qApp->activeWindow(),tr("ERROR"), tr("No se pudo guardar la información de baja: %1").arg(producto.lastError().text()), tr("Aceptar")); } else { QMessageBox::information(qApp->activeWindow(),tr("MODIFICAR PRODUCTO"), tr("El producto ha sido correctamente dado de baja"),tr("Aceptar")); } }
void producto_herbolario::guardarDatos() { QSqlQuery producto(QSqlDatabase::database("db_meditec")); producto.prepare("UPDATE productos_herbolario SET " "nombre = :nombre," "descripcion = :descripcion," "contraindicaciones = :contraindicaciones," "precio = :precio," "indicaciones = :indicaciones," "composicion = :composicion," "presentacion = :presentacion," "advertencias = :advertencias," "fecha_alta =:fecha_alta," "principiosactivos =:principiosactivos," "id_laboratorio = :id_laboratorio " "WHERE id =:id;"); producto.bindValue(":nombre",this->nombre); producto.bindValue(":descripcion",this->descripcion); producto.bindValue(":contraindicaciones",this->contraindicaciones); producto.bindValue(":precio",this->precio); producto.bindValue(":indicaciones",this->indicaciones); producto.bindValue(":composicion",this->composicion); producto.bindValue(":presentacion",this->presentacion); producto.bindValue(":advertencias",this->advertencias); producto.bindValue(":fecha_alta",this->fechaalta); producto.bindValue(":principiosactivos", this->principios_activos); producto.bindValue(":id_laboratorio",this->id_laboratorio); producto.bindValue(":id",this->id); if(!producto.exec()){ QMessageBox::warning(qApp->activeWindow(),tr("ERROR"), tr("No se pudo guardar la información: %1").arg(producto.lastError().text()), tr("Aceptar")); } else { QMessageBox::information(qApp->activeWindow(),tr("MODIFICAR PRODUCTO"), tr("El producto ha sido correctamente actualizado"),tr("Aceptar")); } }
main() { clrscr(); int a,b,i,n,v[100]; clrscr(); printf("Digite el numero de elementos: "); scanf("%d",&n); printf("Digite los elementos: "); for(i=1;i<=n;i++){ do{ scanf("%d",&v[i]); } while(v[i]>=8); } if(n!=1){ i=1; while(i<=n){ if(i<=n-1){ printf("el producto de %d %d es %d\n ",v[i],v[i+1],producto(v[i],v[i+1])); } else{ printf("el producto del elemento %d no se puede realizar porque el vector es impar\n\n ",v[n]); } i+=2; } } else{ printf(" el producto no se puede realizar..!"); } for(i=1;i<=n;i++){ printf(" \nel factorial del elemento %d es %d",v[i],factorial(v[i])); } printf("\n\nla sumatoria del vector es %d ",suma_vector(v,n)); getch(); }
void Plantas::guardarDatos() { QSqlQuery producto(QSqlDatabase::database("db_meditec")); producto.prepare("UPDATE fitoterapia_occidental SET " "nombre_espanol_espana =:nombre_espanol_espana," "nombre_espanol_mexico =:nombre_espanol_mexico," "nombre_cientifico_latin =:nombre_cientifico_latin," "principiosactivos =:principiosactivos," "accion =:accion," "efectos_secundarios =:efectos_secundarios," "posologia =:posologia," "nombre_catala =:nombre_catala," "estado =:estado " "WHERE id =:id;"); producto.bindValue(":nombre_espanol_espana",this->nombre_espanol_espana); producto.bindValue(":nombre_espanol_mexico",this->nombre_espanol_mexico); producto.bindValue(":nombre_cientifico_latin",this->nombre_cientifico_latin); producto.bindValue(":principiosactivos",this->principiosactivos); producto.bindValue(":accion",this->accion); producto.bindValue(":efectos_secundarios",this->efectos_secundarios); producto.bindValue(":posologia",this->posologia); producto.bindValue(":nombre_catala",this->nombre_catala); producto.bindValue(":estados",this->estados); producto.bindValue(":id",this->id); if(!producto.exec()){ QMessageBox::warning(qApp->activeWindow(),tr("ERROR"), tr("No se pudo guardar la información: %1").arg(producto.lastError().text()), tr("Aceptar")); } else { QMessageBox::information(qApp->activeWindow(),tr("MODIFICAR PRODUCTO"), tr("El producto ha sido correctamente actualizado"),tr("Aceptar")); } }
int main (int argc, char *argv[]){ double *A; // Matriz A double *B; // Matriz B double *C; // Matriz C double timetick; //El tamano de la matriz sera n= N*r , donde N y r se reciben //por parametro se tendran N*N bloques de r*r cada uno if (argc < 4){ printf("\n Falta un parametro "); printf("\n 1. Cantidad de bloques por dimension "); printf("\n 2. Dimension de cada bloque "); printf("\n 3. 0/1 para imprimir/no imprimir resultados "); return 0; } int N = atoi(argv[1]); int r = atoi(argv[2]); int imprimir=atoi(argv[3]); int n = N*r; //dimension de la matriz int sizeMatrix=n*n; //cantidad total de datos matriz int sizeBlock=r*r; //cantidad total de datos del bloque int i; A= (double *)malloc(sizeMatrix*sizeof(double)); //aloca memoria para A B= (double *)malloc(sizeMatrix*sizeof(double)); //aloca memoria para B C= (double *)malloc(sizeMatrix*sizeof(double)); //aloca memoria para C crearMatriz(A, sizeMatrix); //Inicializa A crearIdentidad(B,sizeBlock,sizeMatrix,N,r); //Inicializa B como matriz identidad timetick = dwalltime(); producto(A,B,C,r,N,sizeMatrix,sizeBlock); printf("Tiempo en segundos %f \n", dwalltime() - timetick); //tiempo if (imprimir ==1){ printf("\n\n A (como esta almacenada): \n" ); imprimeVector(A, sizeMatrix); printf("\n\n B (como esta almacenada): \n" ); imprimeVector(B,sizeMatrix); printf("\n\n A: \n" ); imprimeMatriz(A,N,r); printf(" \n\n B: \n" ); imprimeMatriz(B,N,r); printf("\n\n C: \n" ); imprimeMatriz(C,N,r); } printf(" \n\n Realizando comprobacion ... \n" ); for (i=0;i<sizeMatrix ;i++ ) { if (A[i]!=C[i]) { printf("\n Error %f", C[i] ); } } //imprimir tiempo free(A); free(B); free(C); return 0; } //FIN MAIN
/* * Retorna el cuaternion resultante entre la division de dos cuaterniones. */ cuaternion division(cuaternion a, cuaternion b) { return producto(a, inversa(b)); }
int main() { float a; float b; int opcion; float auxResultado; ///variable auxiliar para llamar a la funcion dependiendo de lo que ingrese el usuario int flagA=0; ///variable "FlagA" para determinar el ingreso del dato int flagB=0; ///variable "FlagB" para determinar el ingreso del dato do { menuOpciones(); scanf("%d",&opcion); switch(opcion) { case 1: printf("Ingrese el primer operando: "); scanf("%f",&a); if(a<=0 || a>=0) { flagA=1; ///Si se ingresa algun numero, se le asigna 1 a esta variable } break; case 2: printf("Ingrese el segundo operando: "); scanf("%f",&b); if(b<=0 || b>=0) { flagB=1; ///Si se ingresa algun numero, se le asigna 1 a esta variable } break; case 3: if(flagA==1 && flagB==1) ///Si ambos flags estan en 1, quiere decir que ambos operandos se ingresaron. { auxResultado=suma(a,b); printf("\n La suma de %.2f + %.2f es igual a %.2f \n",a,b,auxResultado); } else ///Si no, se informa el error y seguido de un ENTER "retorna" al menu. { printf("Error, faltan operandos.\n"); } break; case 4: if(flagA==1 && flagB==1) { auxResultado=resta(a,b); printf("\n La resta de %.2f - %.2f es igual a %.2f \n",a,b,auxResultado); } else { printf("Error, faltan operandos.\n"); } break; case 5: if(flagA==1 && flagB==1) { auxResultado=producto(a,b); printf("\n El producto de %.2f * %.2f es igual a %.2f \n",a,b,auxResultado); } else { printf("Error, faltan operandos.\n"); } break; case 6: if(b==0) { printf("ERROR. No se puede dividir por 0.\n"); } else { if(flagA==1 && flagB==1) { auxResultado=division(a,b); printf("\n La division %.2f / %.2f es igual a %.2f \n",a,b,auxResultado); } else { printf("Error, faltan operandos.\n"); } } break; case 7: if(flagA==1)///Se verifica que el flagA este en 1 (operando cargado). { if(a>=0)///Se verifica que no sea un numero negativo. { auxResultado=factorial_numero(a); printf("\n El factorial del numero %.2f es: %.2f \n", a, auxResultado); } else { printf("\n No existe el factorial de un numero negativo. \n"); } } else { printf("Falta el primer operando.\n"); } if(flagB==1) { if(b>=0) { auxResultado=factorial_numero(b); printf("\n El factorial del numero %.2f es: %.2f \n", b, auxResultado); } else { printf("\n No existe el factorial de un numero negativo. \n"); } } else { printf("Falta el segundo operando.\n"); } break; case 8: if(flagA==1 && flagB==1 )///En este caso necesitamos de los dos flags(dos operandos cargados)para realizar todas las operaciones juntas. { //SUMA auxResultado=suma(a,b); printf("\n 3) La suma de %.2f + %.2f es igual a %.2f \n",a,b,auxResultado); //RESTA auxResultado=resta(a,b); printf("\n 4) La resta de %.2f - %.2f es igual a %.2f \n",a,b,auxResultado); //MULTIPLICACION auxResultado=producto(a,b); printf("\n 5) El producto de %.2f * %.2f es igual a %.2f \n",a,b,auxResultado); //DIVISION if(b==0) { printf("\n 4) No se pudo calcular la division. Se ingreso 0 como divisor. \n"); } else { auxResultado=division(a,b); printf("\n 6) La division %.2f / %.2f es igual a %.2f \n",a,b,auxResultado); } //FACTORIAL if(a>=0) { auxResultado=factorial_numero(a); printf("\n 7) El factorial del numero %.2f es: %.2f \n", a, auxResultado); } else { printf("\n 7) No existe el factorial de un numero negativo. \n"); } if(b>=0) { auxResultado=factorial_numero(b); printf("\n El factorial del numero %.2f es: %.2f \n", b, auxResultado); } else { printf("\n No existe el factorial de un numero negativo. \n"); } break; case 9: printf("\n chau...\n"); break; } else { printf("Error, faltan operandos.\n"); } }///FIN SWITCH system("pause"); system("cls"); if(flagA==1)///Si al menos un operando est� cargado, se muestran en pantalla luego de limpiar. { printf("\n ��������������������������������������������������������������� "); printf("\n Primer OP: %.2f Segundo OP: %.2f ",a,b); } }///FIN DO while (opcion!=9); return 0; }
void main() { //funciones del programa y variables int a[10][10],b[10][10],fico,i,j,n,m,h[10],s[10]; int x1[10],x2[10],at[10][10],bt[10][10]; int ax1[10],bx2[10]; int sdpa,sdpb,sdsa,sdsb,su,pro; cout<<"Digite el numero de filas y columnas de a:\n"; cin>>n; cout<<"Digite el numero de filas y columnas de b:\n"; cin>>m; //leer_la matriz a cout<<"Digite los valores de la matriz a\n"; leer_matriz (a,n); //leer_la matriz b cout<<"Digite los valores de la matriz b\n"; leer_matriz (b,m); //suma de la diagonal principal de a: sdpa=su_diag_ppal(a,n); //suma de la diagonal principal de b: sdpb=su_diag_ppal(b,m); //suma de la diagonal secundaria de a: sdsa=su_diag_sec(a,n); //suma de la diagonal secundaria de b: sdsb=su_diag_sec(b,m); //se busca la matriz transpuesta de a: transpuesta(a,at,n); //se busca la matriz transpuesta de b: transpuesta(b,bt,m); //se busca vector x1 de la matriz a: for (i=1; i<=n; i++) { su=0; for (j=1; j<=n; j+=2) { su+=a[i][j]; } x1[i]=su; } //se busca vector x2 de la matriz b: for (i=1; i<=m; i++) { pro=1; for (j=1; j<=m; j+=2) { pro*=b[i][j]; } x2[i]=pro; } //se busca el producto de a: producto (a,x1,h,n); //se busca el producto de b: producto (b,x2,s,m); cout<<"la sumatoria de la diagonal principal de a es:"<<sdpa<<"\n"; cout<<"la sumatoria de la diagonal principal de b es:"<<sdpb<<"\n"; cout<<"la sumatoria de la diagonal secundaria de a es:"<<sdsa<<"\n"; cout<<"la sumatoria de la diagonal secundaria de b es:"<<sdsb<<"\n"; cout<<"\n imprima el vector de a*x1:"; for (i=1; i<=n; i++) { cout<<"\n El producto de a es:["<<i<<"]=\n"; cout<<h[i]; } cout<<"\n imprima el vector de b*x2:\n"; for (i=1; i<=n; i++) { cout<<"\n El producto de b es:["<<i<<"]=\n"; cout<<s[i]; } cout<<"\n Imprima la matriz transpuesta de a: \n"; for (i=1; i<=n; i++) { for (j=1; j<=n; j++) { cout<<" La matriz transpuesta de a es:at["<<i<<","<<j<<"]="; cout<<at[i][j]<<"\n"; } } cout<<"\n Imprima la matriz transpuesta de b: \n"; for (i=1; i<=m; i++) { for (j=1; j<=m; j++) { cout<<" La matriz transpuesta de b es:bt["<<i<<","<<j<<"]="; cout<<bt[i][j]<<"\n"; } } }
void menu(matriz A, matriz B) {int op; limpiar();double x; gotoxy(10,5); cout<<"[1] OBTENER UN ELEMENTO DE A.."; gotoxy(10,6); cout<<"[2] OBTENER UN ELEMENTO DE B.."; gotoxy(10,7); cout<<"[3] ASIGNAR UN ELEMENTO DE A.."; gotoxy(10,8); cout<<"[4] ASIGNAR UN ELEMENTO DE B.."; gotoxy(10,9); cout<<"[5] IGUALAR A<-B.............."; gotoxy(10,10); cout<<"[6] IGUALAR B<-A.............."; gotoxy(10,11); cout<<"[7] SUMAR A + B..............."; gotoxy(10,12); cout<<"[8] NEGATIVA DE A............."; gotoxy(10,13); cout<<"[9] NEGATIVA DE B............."; gotoxy(10,14); cout<<"[10] RESTAR A - B............."; gotoxy(10,15); cout<<"[11] RESTAR B - A............."; gotoxy(10,16); cout<<"[12] ESCALAR PARA A..........."; gotoxy(10,17); cout<<"[13] ESCALAR PARA B..........."; gotoxy(10,18); cout<<"[14] PRODUCTO A * B..........."; gotoxy(10,19); cout<<"[15] PRODUCTO B * A..........."; gotoxy(10,20); cout<<"[16] TRANSPUESTA DE A........."; gotoxy(10,21); cout<<"[17] TRANSPUESTA DE B........."; gotoxy(10,22); cout<<"[18] DETERMINANTE DE A........"; gotoxy(10,23); cout<<"[19] DETERMINANTE DE B........"; gotoxy(10,24); cout<<"[20] INVERSA DE A............."; gotoxy(10,25); cout<<"[21] INVERSA DE B............."; gotoxy(10,26); cout<<"[22] SALIR...................."; do{gotoxy(22,28); cout<<"Seleccione una opcion (1-22): ";cin>>op; if(op<1 || op>22) {gotoxy(20,28);cout<<"Opci¢n incorrecta vuelva a intentar";} }while(op<1 || op>22); switch(op) {case 1: {limpiar();gotoxy(28,4); cout<<"[1] OBTENER UN ELEMENTO DE A.."; obtener(A);menu(A,B);break;} case 2: {limpiar(); gotoxy(28,4); cout<<"[2] OBTENER UN ELEMENTO DE B.."; obtener(B);menu(A,B);break;} case 3: {limpiar(); gotoxy(28,4); cout<<"[3] ASIGNAR UN ELEMENTO DE A.."; imprimir(asignar(A));getchar();menu(A,B);break;} case 4: {limpiar(); gotoxy(28,4); cout<<"[4] ASIGNAR UN ELEMENTO DE B.."; imprimir(asignar(B));getchar();menu(A,B);break;} case 5: {limpiar(); gotoxy(28,4); cout<<"[5] IGUALAR A<-B.............."; imprimir(igual(A,B));menu(A,B);break;} case 6: {limpiar(); gotoxy(28,4); cout<<"[6] IGUALAR B<-A.............."; imprimir(igual(B,A));menu(A,B);break;} case 7: {limpiar(); gotoxy(28,4); cout<<"[7] SUMAR A + B..............."; imprimir(sumar(A,B));menu(A,B);break;} case 8: {limpiar(); gotoxy(28,4); cout<<"[8] NEGATIVA DE A............."; imprimir(negativa(A));menu(A,B);break;} case 9: {limpiar(); gotoxy(28,4); cout<<"[9] NEGATIVA DE B............."; imprimir(negativa(B));menu(A,B);break;} case 10: {limpiar(); gotoxy(28,4); cout<<"[10] RESTAR A - B............."; imprimir(restar(A,B));menu(A,B);break;} case 11: {limpiar(); gotoxy(28,4); cout<<"[11] RESTAR B - A............."; imprimir(restar(B,A));menu(A,B);break;} case 12: {limpiar(); gotoxy(28,4); cout<<"[12] ESCALAR PARA A..........."; imprimir(escalar(A));menu(A,B);break;} case 13: {limpiar(); gotoxy(28,4); cout<<"[13] ESCALAR PARA B..........."; imprimir(escalar(B));menu(A,B);break;} case 14: {limpiar(); gotoxy(28,4); cout<<"[14] PRODUCTO A * B..........."; imprimir(producto(A,B));menu(A,B);break;} case 15: {limpiar(); gotoxy(28,4); cout<<"[15] PRODUCTO B * A..........."; imprimir(producto(B,A));menu(A,B);break;} case 16: {limpiar(); gotoxy(28,4); cout<<"[16] TRANSPUESTA DE A........."; imprimir(transpuesta(A));menu(A,B);break;} case 17: {limpiar(); gotoxy(28,4); cout<<"[17] TRANSPUESTA DE B........."; imprimir(transpuesta(B));menu(A,B);break;} case 18: {limpiar(); gotoxy(28,4); cout<<"[18] DETERMINANTE DE A........"; x=det(A);gotoxy(5,5);cout<<"Determinante = "<<x;getchar();menu(A,B);break;} case 19: {limpiar(); gotoxy(28,4); cout<<"[19] DETERMINANTE DE B........"; x=det(B);gotoxy(5,5);cout<<"Determinante = "<<x;getchar();menu(A,B);break;} case 20: {limpiar(); gotoxy(28,4); cout<<"[20] INVERSA DE A............."; inversa(A);menu(A,B);break;} case 21: {limpiar(); gotoxy(28,4); cout<<"[21] INVERSA DE B............."; inversa(B);menu(A,B);break;} case 22: {limpiar(); gotoxy(28,4); cout<<"[22] SALIR...................."; gotoxy(10,10); cout<<"Saliendo..."; gotoxy(25,23); cout<<"Presione Enter Para Salir...";break; } } }