|
Mostrar Mensajes
|
Páginas: [1]
|
1
|
Programación / Programación C/C++ / Re: Problemas con mostrar un registro
|
en: 11 Abril 2020, 04:24 am
|
gracias, ya he podido arreglar el programa. Sobre el problema, lo hice con el depurador y vi que, al poner un numero en el for, al menos el ciclo si terminaba, si utilizaba ne, después de usar pun+i, cambiaba el valor de ne y no terminaba, o cambiaba el valor de los string. En el programa deje solo un puntero en el struct. struct notas{ ... }*pun;
y luego en la funcion capt(), puse un arreglo dinamico. void capt(){ system("pause"); gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne; pun = new notas [ne]; for(int i=0;i<ne;i++){ ... }
Ademas, cambie el fflush() con el cin.ignore() y utilice el cin.getline() con los punteros.
|
|
|
2
|
Programación / Programación C/C++ / Re: Problemas con mostrar un registro
|
en: 10 Abril 2020, 14:16 pm
|
Gracias. Ya pude entender mejor donde estaba el problema de los punteros, voy a intentar hacerlo con un array de estructuras, no entiendo muy bien la libreria vector xD. Lo del problema es que, como el puntero accedia a un memoria que no tenia reservada, me cambiaba algunas variables, por ejemplo. void capt(){ system("cls"); gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne; const int ju = ne; for(int i=0;i<ju;i++){ formu(); fflush(stdin); gt(23,9); gets((pun+i)->cod); gt(24,11); gets((pun+i)->nom); gt(26,12); gets((pun+i)->apel); gt(23,14); cin>>(pun+i)->n1; gt(23,15); cin>>(pun+i)->n2; (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2; gt(38,17); cout<<(pun+i)->defi; system("pause"); } ne = ju; }
Con ne, la variable para pedir el numero de formularios para el for, como que cambiaba su valor y no salia del for, por eso agregue una constante "const int ju", digamos para solucionarlo y que su valor no cambiara, pero aun asi tambien cambiaba los demas valores. Ya lo unico que me no entiendo es, si pongo un numero cualquiera en el for, ya me salen los datos bien. Como ejemplo, pongo que solo se hagan 3 formularios, y eso ya arregla el problema. void capt(){ system("cls"); for(int i=0;i<3;i++){ formu(); fflush(stdin); gt(23,9); gets((pun+i)->cod); gt(24,11); gets((pun+i)->nom); gt(26,12); gets((pun+i)->apel); gt(23,14); cin>>(pun+i)->n1; gt(23,15); cin>>(pun+i)->n2; (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2; gt(38,17); cout<<(pun+i)->defi; system("pause"); } }
|
|
|
3
|
Programación / Programación C/C++ / Problemas con mostrar un registro
|
en: 9 Abril 2020, 23:18 pm
|
Hola, es sobre un problema que estoy teniendo a la hora de mostrar unos datos con punteros, lo que pasa es que uno de los datos que ingreso se "cambia" por un carácter especial o algo así. Aquí esta parte del código, perdón si esta asi, lo copie rápido. #include <string.h> #include <iostream> #include <windows.h> #include <conio.h> using namespace std; void gt(int x, int y){ // -Posicion X y Y en el Programa HANDLE Manipulador; //Puntero COORD Coordenadas; //Coordenadas Manipulador = GetStdHandle(STD_OUTPUT_HANDLE); //Contenedor del Programa Coordenadas.X = x; //Posicion en X Coordenadas.Y = y; //Posicion en Y SetConsoleCursorPosition(Manipulador,Coordenadas); //Envia el Contenedor y variable para la posicion } void formu(){ system("cls"); gt(15,9); cout<<"Codigo: "; gt(15,11); cout<<"Nombres: "; gt(15,12); cout<<"Apellidos: "; gt(15,14); cout<<"Nota 1: "; gt(15,15); cout<<"Nota 2: "; gt(15,17); cout<<"Su Nota Definitiva es: "; } struct notas{ char nom[50]; char apel[50]; char cod[50]; float n1, n2; float defi; }alu, *pun=&alu; void capt(); void list(); void consul(); int ne; int main(){ char op; do{ system("cls"); gt(20,10); cout<<"MENU REGISTROS"; gt(22,12); cout<<"1. Capturar."; gt(22,13); cout<<"2. Consultar registros."; gt(22,14); cout<<"3. Salir."; gt(23,16); cout<<char(167)<<"Digite un numero: "; op = getch(); switch(op){ case '1': capt(); break; case '2': consul(); break; case '3': gt(6,18); cout<<"Saliendo..."; Sleep(200); gt(5,25); exit(1); break; default: gt(6,18); cout<<"Debe digitar un numero del 1 al 3..."; system("pause"); break; } } while(op != '3'); } void capt(){ system("cls"); gt(15,10); cout<<"Digite el Numero de Formularios a agregar: "; cin>>ne; const int ju = ne; for(int i=0;i<ju;i++){ formu(); fflush(stdin); gt(23,9); gets((pun+i)->cod); gt(24,11); gets((pun+i)->nom); gt(26,12); gets((pun+i)->apel); gt(23,14); cin>>(pun+i)->n1; gt(23,15); cin>>(pun+i)->n2; (pun+i)->defi=((pun+i)->n1+(pun+i)->n2)/2; gt(38,17); cout<<(pun+i)->defi; system("pause"); } ne = ju; } void consul(){ char op; do{ system("cls"); gt(20,10); cout<<"MENU - Consultas"; gt(22,12); cout<<"1. Listar."; gt(22,13); cout<<"2. Volver al menu anterior"; gt(22,14); cout<<"3. Salir"; gt(23,16); cout<<"Digite un numero: "; op = getch(); switch(op){ case '1': list(); break; case '2': gt(6,18); cout<<"Volviendo..."; Sleep(200); main(); break; case '3': gt(6,18); cout<<"Saliendo..."; Sleep(200); gt(5,25); exit(1); break; default: gt(6,18); cout<<"Digite un numero del 1 al 3..."; system("pause"); break; } } while(op != '4' || op == '2'); system("pause"); } void list(){ system("cls"); fflush(stdin); if((pun)->defi == 0){ gt(15, 10); cout<<"No se Encontraron Registros..."; } else{ gt(16,8); cout<<"--- REGISTROS ---"; gt(3,10); cout<<"No."; gt(7,10); cout<<"Codigo"; gt(17,10); cout<<"Nombre"; gt(33,10); cout<<"Apellido"; gt(47,10); cout<<"Nota 1"; gt(57,10); cout<<"Nota 2"; gt(67,10); cout<<"Definitiva"; for(int i=0;i<ne;i++){ gt(3,i+12); cout<<i+1; gt(7,i+12); cout<<(pun+i)->cod; gt(17,i+12); cout<<(pun+i)->nom; gt(32,i+12); cout<<(pun+i)->apel; gt(47,i+12); cout<<(pun+i)->n1; gt(57,i+12); cout<<(pun+i)->n2; gt(67,i+12); cout<<(pun+i)->defi; } system("pause"); } }
Y asi me queda cuando quiero mostrar los registros. --- REGISTROS --- No. Codigo Nombre Apellido Nota 1 Nota 2 Definitiva 1 32GRE ANDRES SUR 45 20 32.5 2 AH3H2 ♥ PEREZ 34 50 42 3 4H2BG ESTEBAN HONZ 45 35 40Presione una tecla para continuar . . .
|
|
|
5
|
Programación / Programación C/C++ / Como Guardar Varios elementos en un arreglo?
|
en: 1 Diciembre 2018, 16:25 pm
|
Hola, Necesito guardar un número de elementos en un arreglo y luego que sean escritos en el programa. Por ejemplo en un programa que me pase un numero a binario, utilice una sentencia while que me daría cada resultado de la división, Pero ahora quiero es guardar esos resultados en un arreglo. #include<iostream.h> #include<conio.h> using namespace std; int main(){ //Numero a Binario int numero, resto, mostr=0, binario[500], div=2; int i=0; cout <<"\nIngrese el Numero:"; cin>>numero; while(numero>=div){ mostr = mostr + 1; resto = numero; numero = numero / div; resto = resto % div; resto = binario[i]; } for(int i=0;i<mostr;i++){ cout<<"\n--------------------------------"; cout<<"\n"<<binario[i]; } getch(); return 0; }
|
|
|
7
|
Programación / Programación C/C++ / Re: Medidas de Dispersión. Error
|
en: 12 Octubre 2018, 15:35 pm
|
Es crear un programa que realice las medidas de dispersión en datos agrupados, pero como este utiliza dos arreglos, uno para los datos y luego otro para la frecuencia de cada uno. de estos toca sacar el promedio, desviación al cuadrado, de esa desviación multiplicarla por la frecuencia etc. el programa creo que esta bien, pero no se que pasa en la desviación al cuadrado que creo que los datos salen mal
|
|
|
8
|
Programación / Programación C/C++ / Medidas de Dispersión. Error
|
en: 11 Octubre 2018, 22:44 pm
|
ya corregí algunas cosas en el arreglo para pedir los valores, pero no se que es lo que podría estar mal en la desviación por la frecuencia. #include <iostream> #include <conio.h> #include <math.h>
using namespace std;
int main(int argc, char** argv) { ddouble numeros[500], numeros2[500], numeros3[500], n; double fre=0, coef=0, des=0, varia=0, suma=0, media=0, suma2=0; cout <<"\nDigite el Numero de Datos:"; cin>>n; for(int i=0, j=0, k=0;i<n && j<n && k<n;i++ && j++ && k++){ cout <<"\n-Digite el numero: "; cin>>numeros[i]; cout <<"\n-Digite la Frecuencia del Dato: "; cin>>numeros2[j]; fre = fre + numeros2[j]; numeros3[k] = numeros[i] * numeros2[j] ; //cout <<"\n X.F:"<<numeros3[k]; suma = suma + numeros3[k]; } media = suma / fre; cout<<"\n Promedio:"<<media; for(int i=0;i<n;i++){ numeros[i]= numeros[i] - media; numeros[i]= pow(numeros[i],2); cout<<"\nDesviacion al cuadrado: "<<numeros[i]; } for(int i=0, j=0;i<n && j<n;i++ && j++){ numeros2[j] = numeros2[j] * numeros[i]; cout<<"\nDesviacion por la Frecuencia: "<<numeros2[j]; suma2 = suma2 + numeros2[j]; } varia = suma / fre; cout<<"\nLa Varianza es: "<<varia; des = sqrt(varia); cout<<"\nLa Desviacion Estandar es: "<<varia; coef = (des*100)/media; cout<<"\nCoeficiente de Variacion: "<<coef; getch(); return 0; }
|
|
|
9
|
Programación / Programación C/C++ / Re: Ayuda en Programa basico sobre Medidas de Dispersion
|
en: 2 Septiembre 2018, 17:22 pm
|
wow, el problema era que sobrepasaba, entonces si cambio arriba en for(int j=0;j<n-1;j++){ , creo que ya estaría. pero ahora uno de los problemas es el rango que no se como podría seleccionar el dato mayor y dato menor sin seleccionarlos todos.
aunque si en amp =numeros[i-01] cambio i por n me daría error de invalido.
Mod: Prohibido el doble o triple post. Usa el botón "Modificar".
|
|
|
10
|
Programación / Programación C/C++ / Ayuda en Programa basico sobre Medidas de Dispersion
|
en: 1 Septiembre 2018, 03:58 am
|
No veo que pueda estar mal, aunque... creo que el problema empieza con el ordenamiento. #include<iostream> #include<conio.h> #include<math.h> using namespace std; int main(){ int l=0; double numeros[500], j, aux, n, deses=0, coef=0, pos = n/2, suma=0, media=0, varia=0, amp=0; //Amplitud de Variación de los Datos cout<<"Digite el Numero de Elementos: "; cin>>n; for(int i=0;i<n;i++){ cout<<"digite un numero: "<<endl; cin>>numeros[i]; } for(int i=0;i<n;i++){ //Ordenamiento for(int j=0;j<n-1;j++){ if(numeros[j]>numeros[j+1]){ aux = numeros[j]; numeros[j] = numeros[j+1]; numeros[j+1] = aux; } } } for(int i=0;i<n;i++){ cout<<"Numeros en Orden: "; cout<<" - "<<numeros[i]<<endl; suma = suma + numeros[i]; amp =numeros[i-01]-numeros[0]; } media = (suma)/(n); cout<<"El Rango es: "<<amp<<endl; cout<<"La Media Aritmetica es: "<<media<<endl; for(int i=0;i<n;i++){ numeros[i]= numeros[i]- media; cout<<"Desviacion: "; cout<<" - "<<numeros[i]<<endl; } for(int i=0;i<n;i++){ numeros[i]= pow(numeros[i],2); cout<<"Desviacion al Cuadrado: "; cout<<" - "<<numeros[i]<<endl; suma = suma + numeros[i]; } varia = (suma)/(n-1); cout<<"Varianza: "<<varia<<endl; deses = sqrt(varia); cout<<"Desviacion Estandar: "<<deses<<endl; coef = (deses*100)/media; cout<<"Coeficiente de Variacion: "<<coef; cout<<"% "; getch(); return 0; }
|
|
|
|
|
|
|