Autor
|
Tema: ayuda porfavor validador de rut con menu en dev c++ (Leído 8,264 veces)
|
osvaldo.87
Desconectado
Mensajes: 2
|
hola a todos tengo que crear un algoritmo que valide verifique rut con menu y todo bueno este es el algoritmo que llevo echo pero al momento de compilar me tira errores quisiera saber si ustedes podrian ayudarme a corregirlos porfavor aqui les dejo el algoritmo aa lo tengo que compilar en dev c++ # include <stdlib.h> # include <conio.h> # include <ctype.h> # define K 10 /*DECLARACION DE CONSTANTES*/ # define LIMITE 1000000 # define M 11 /*FUNCION DIGITOVER:CALCULA EL DIGITO VERIFICADOR*/ int digitover(int digito){ int resto=0,mult=1,i=2,suma=0; while(digito!=0){ resto=digito%K; digito=digito/K; mult=resto*i; suma+=mult; i++; if(i+1==9){ i=2; } } resto=suma/M; digito=resto*M; resto=suma-digito; digito=M-resto; return digito;/*RETORNA DIGITO VERIFICADOR*/ } /*FUNCION ERROR:MUESTRA MENSAJE EN PANTALLA*/ char error(){ printf;(“\n\n\ERROR <<<<EL RUT (RUN” ) ” ES INCORRECTO!!!”); } /*FUNCION MENSAJE:MUESTRA MENSAJE EN PANTALLA*/ char mensaje(){ printf(“\n\n\t <<<<PRESIONE UNA TECLA PARA VOLVER AL MENU” ); } /*FUNCION MENU:MUESTRA MENU EN PANTALLA*/ char menu(){ printf(“\tMENU DE OPCIONES\n” ); printf(“\n\t1 -VALIDAR RUT (RUN )” ); printf(“\n\t2 -OBTENER DIGITO VERIFICADOR RUT (RUN )” ); printf(“\n\n\tESCOJA SU OPCION : “ ); } /*PROGRAMA PRINCIPAL*/ int main(){ int rut,dig,digito=0; char c,resp,d; do{ do{ system(“CLS ()” ); /*LIMPIA LA PANTALLA*/ menu(); c=getche(); if ((c==’1?)||(c==’2?)||(c==’3?)){/*VALIDA LA OPCION DE MENU*/ switch ©{ case ‘1?: rut=0; /*INICIALIZACION*/ system(“CLS ()” ); /*LIMPIA LA PANTALLA*/ printf(”\n\tEJEMPLO RUT (RUN ):12.345.678 -X ,” “INGRESAR:12345678-X”); printf(“\n\n\tINGRESAR RUT (RUN ): “ ); /*VALIDA EL DIGITO VERIFICADOR INGRESADO POR EL USUARIO*/ /* OTORGANDO UN VALOR TIPO INT A LA VARIABLE DIG */ if((d==’k')||(d==’K')){ dig=K;/*dig=10*/ } else if(d==’0?){ dig=M;/*dig=11*/ } else if(d==’1?){ dig=1; } else if(d==’2?){ dig=2; } else if(d==’3?){ dig=3; } else if(d==’4?){ dig=4; } else if(d==’5?){ dig=5; } else if(d==’6?){ dig=6; } else if(d==’7?){ dig=7; } else if(d==’8?){ dig=8; } else if(d==’9?){ dig=9; } else{ dig=-1;/*EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO*/ } if(dig!=-1){/*SE REALIZA CUANDO ES VALIDO EL*/ /* DIGITO VERIFICADOR INGRESADO */ if(rut>LIMITE){/*ACEPTA RUT(RUN)MAYORES QUE LIMITE*/ digito=digitover(rut); if(digito==dig){ printf(“\n\tEL RUT (RUN ) \” %d -%c\” A PASADO” ” LA VALIDACION”,rut,d); } else{/*SE REALIZA CUANDO EL DIGITO */ /* VERIFICADOR NO ES VALIDO */ error();/*INVOCA FUNCION ERROR*/ } } else{ /*SE REALIZA CUANDO EL RUT NO ES VALIDO*/ error();/*INVOCA FUNCION ERROR*/ } } else{/*SE REALIZA CUANDO EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO */ error();/*INVOCA FUNCION ERROR*/ } mensaje();/*INVOCA FUNCION MENSAJE*/ break;/*FIN CASE 1*/ case ‘2?: rut=0; /*INICIALIZACION*/ system(“CLS ()” ); /*LIMPIA LA PANTALLA*/ printf(“\n\tEJEMPLO RUT (RUN ):12.345.678 -X ,” “INGRESAR:12345678?); printf(“\n\n\tINGRESAR RUT (RUN ): “ ); if(rut>LIMITE) /*ACEPTA RUT(RUN) MAYORES A LIMITE*/ { digito=digitover(rut); /*ASIGNACION MEDIANTE INVOCACION*/ /* A FUNCION DIGITOVER */ if(digito==M) { digito=0; printf(“\n\tEL DIGITO VERIFICADOR ES : %d” ,digito ); } else if(digito==K) { printf(“\n\tEL DIGITO VERIFICADOR ES : %c“ ,’K '); } else{ printf(“\n\tEL DIGITO VERIFICADOR ES: %d”,digito); } else /*SE REALIZA SI EL RUT NO ES VALIDO*/ { error(); /*INVOCA FUNCION ERROR*/ } mensaje();/*INVOCA FUNCION MENSAJE*/ break; /*FIN CASE 2*/ }/*FIN SWITCH*/ } /*FIN IF*/ else{/*SE REALIZA CUANDO LA OPCION DE MENU NO ES VALIDA*/ printf(“\n\tERROR<<<<DEBE ELEGIR UNA OPCION VALIDA”); mensaje();/*INVOCA FUNCION MENSAJE*/ } }while(c!=’3?); printf(“\n\n\t\tQUIRES SALIR DEL PROGRAMA?” “\n\n\t<<<SI…ENTONCES PULSA [ S ]” “\n\t\<<<NO…ENTONCES PULSA UNA TECLA PARA VOLVER AL MENU”); resp=toupper(getch());/*CONVIERTE A MAYUSCULA [s -> S]*/ }while(resp!=’S'); return 0; }/*FIN DEL PROGRAMA*/
no se si algo sobre falte o si esta bien echo porfavor ayudenme es coeficiente este trabajo de ante mano muchas gracias adios.
|
|
« Última modificación: 28 Septiembre 2010, 18:18 pm por osvaldo.87 »
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
osvaldo.87, bienvenido al foro. Postea los errores que te da el compilador asi podemos verlos en detalle. Para postear código, utiliza las etiquetas GeShi. C[code=c]codigo[/code] C++[code=cpp]codigo[/code] Edit: Arreglado, gracias! se me paso
|
|
« Última modificación: 28 Septiembre 2010, 16:55 pm por Littlehorse »
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
MasterPunk
Desconectado
Mensajes: 447
(-A-)
|
osvaldo.87, bienvenido al foro. Postea los errores que te da el compilador asi podemos verlos en detalle.
Para postear código, utiliza las etiquetas GeShi.
C [code=c]codigo[/code]
C++ [code=c]codigo[/code]
has puesto el mismo codigo para c que para c++. El de c++ es: C++[code=cpp]codigo[/code] [/quote] (se lo digo a osvaldo, ya se que tu lo sabes)
|
|
|
En línea
|
|
|
|
[L]ord [R]NA
Desconectado
Mensajes: 1.513
El Dictador y Verdugo de H-Sec
|
Solo viendo el codigo dentro de las etiquetas Geshi se ve el error... hay muchos errores de sintaxis...
creo que necesitas un buen libro... o en su defecto diferenciar entre comillas y una tilde.
|
|
|
En línea
|
|
|
|
osvaldo.87
Desconectado
Mensajes: 2
|
aqui ise otro me falta hacer solamente el marco ojala me puedan ayudar porfa se los agradeceria mucho saludos #include<stdio.h> #include<conio.h> #include<string.h> int main() { int i,j,suma,valor,dijito,ult,resp; char rut[9],var,ultimo; resp=0; do { fflush(stdin );//libera el buffer de entrada y salida suma=0; j=2; for(i=7;i>=0;i--) { if(j==8)j=2; { suma=((rut[i]-'0')*j)+suma; j++; } ultimo=rut[8]; ult=rut[8]-'0';//trasforma en entero valor=suma%11; } dijito=11-valor; if(dijito==10) { var='k'; if((ultimo=='k')||(ultimo=='k')) { } else { rut[8]=var; //printf("rut incorrecto el ultimo dijito deberia se %c \n",var); printf("rut incorrecto,el rut deberia ser %s-%d",rut ,var ); } } else if(dijito==11) { dijito=0; if(dijito==ult) { getche(); } else if(dijito!=ult) { rut[8]=dijito; //printf("el rut es incorrecto,ultimo dijito deberia ser %d \n",dijito); printf("rut incorrecto,el rut deberia ser %s-%d",rut ,dijito ); } } else { if(dijito==ult) { } else if(dijito!=ult) { rut[8]=dijito; //printf("rut incorrecto, ultimo dijito deberia ser %d \n",dijito); printf("rut incorrecto,el rut deberia ser %s-%d",rut ,dijito ); } } printf("\ndesea ingresar otro:\n"); if((resp!=1)&&(resp!=2)) { do{ printf("Error: respuesta incorrecta, caracter no valido \n"); printf("ingrese respuesta valida \n"); }while((resp==1)&&(resp==2)); } }while(resp==1); printf("PRECIONE CUALQUIER TECLA PARA SALIR"); gotoxy (0,0); gotoxy (0,79); gotoxy (24,0); for(x=1; x<79; x++) { gotoxy (i,0); gotoxy (i,24); } for(y=1; y<24; y++) { gotoxy (0,y); gotoxy (79,y); } clrscr(); getche(); }
error me lo da en gotoxy (0,0); saludos adios
|
|
« Última modificación: 28 Septiembre 2010, 18:51 pm por Littlehorse »
|
En línea
|
|
|
|
MasterPunk
Desconectado
Mensajes: 447
(-A-)
|
no se si esto está hecho adrede: //printf("el rut es incorrecto,ultimo dijito deberia ser %d \n",dijito);
|
|
|
En línea
|
|
|
|
Oblivi0n
Desconectado
Mensajes: 392
Odio las ranas.
|
Madre mia, aparte de los errores de sintaxis, hay errores peores de caligrafia... te recomiendo que hagas las cosas en varias funciones, y no una main enorme, dificulta mucho la lectura del codigo La gran pregunta -- ¿Para que pones una funcion en un comentario?
|
|
|
En línea
|
|
|
|
|
|