Calcular digito verificador rut (Chile) en C++
Luego de un día y un poco mas de pensar, y gracias a la ayuda de mi compañero Pablo Gonzalez, puse entender que las variables de tipo char tiene otro ascci y al trabajar a numeros enteros, hay dos opciones para poder trabajarlas:
1. A su numero en char, almacena en un vector restarle -48.
2. Es ocupar la libreria stdlib, la función atoi();
Sin mas comentarios al respecto, menos mal que me salió, pero ahora viene las struct, asi que nos vamos a hacer una agendita en C++.
//Validación del rut
//Alumno: Jonathan Ramírez
//Fecha: 23 Octubre 2007
//UTFSM Informatica
#include <stdio.h>
#include <string.h>
int main()
{
//declaracion de variables
char rut[7];
char rutvalidado[7];
int total=0;
int a,b,c;
int contador=3;
int acumulador=0;
int resto=0;
int digito=0;
//fin declaracion de variables
printf("*** CALCULO DEL DIGITO VERIFICADOR RUT (CHILE) ***");
printf("\n\n");
printf("Ingrese el rut que ejecutar: ");
gets(rut);
total=strlen(rut);
if(total<=7) {
for(a=0;a<=7;a++) {
if(rut[0]==rut[a]) {
rutvalidado[0]='0';
rutvalidado[a+1]=rut[0];
}
else {
rutvalidado[a+1]=rut[a];
}
}
}
else
{
for(b=0;b<=7;b++) {
rutvalidado[b]=rut[b];
}
}
for(c=0;c<=7;c++) {
if(contador==2) {
acumulador=acumulador+((rutvalidado[c]-48)*contador);
contador=8;
}
else
{
acumulador=acumulador+((rutvalidado[c]-48)*contador);
}
contador=contador-1;
}
digito=(11-(acumulador%11));
if(digito>=10) {
if(digito==10) {
printf("\nEl digito verificador de su rut es: K"); }
else
{
printf("\nEl digito verificador de su rut es: 0");
}
}
else
{
printf("\nEl digito verificador de su rut es: %d", digito);
}
getchar();
getchar();
}
Tau.
pda: tal vez actualize el codigo, ocupando la función atoi(); y asi automatizar el programa.
Fiesta de la derivadas y integrales
Estabamos en clase de Matemáticas 2, estabamos pasando la materia de como derivar una función exponencial, entonces para los que no saben si tenemos una función f(x)=e^x, entonces al derivarla queda de la siguiente manera f(x)’=e^x, es decir, queda igual. Cuando es una función compuesta, ahí hay que aplicar la regla de la cadena.
Volviendo al tema del chiste, entonces la profesora derepente dice:
“Hay una chiste matemático que dice lo siguiene: estaba todas las funciones juntas en una fiesta, ahí todo pasando y derepente llega la función exponencial y le dicen las demas funciones, oye función exponencial INTEGRATE!”. Cueckkkkk!!!! jajajajajja!!!! mas fome la cuestión de chiste, pero bueno. Para los que no lo entendieron me pregunta, o lean atentamente el primer parrafo.
Tau.
Cambiamos, y evolucionamos…!!!
Cuando veo esta imagen me acuerdo, que siempre tenemos que estar renovandonos y cambiando y teniendo claro lo siguiente: “Si pudieras observar lo que eres y ser ello, te darías cuenta de que es posible llegar infinitamente lejos”. By Jiddu Krishnamurti
Como el titulo de dice mi Blog que anteriormente estaba en Blogger.com, lo cambie a este sistema porque primeramente tienes mayores opciones, y asi podemos trabajar y no tan solo hacer un blog, si no que crear secciones y cosas que puedan ir ayudando a medida que vamos creciendo. El tema de los blogs, hace tiempo que necesitaba algo asi, algo como donde interactuar y poder exponer y presentar cosas, ideas, y asi muchas veces desahogarse escribiendo, y mostrar que al igual que muchos blogeros de este mundo del Internet, tenemos ideas, pensamientos, cosas que giran a nuestro alrededor y asi compartir experiencias y entregar a la gente que tal vez necesite una palabra de aliento, o tal vez de nuestras ideas, se pueden generar otras mejores, y la idea obviamente es compartir, y interactuar silenciosamente.
Tau.
Test Nº 2 de OMA
Ula,
Estas son las cosas que dan rabia, uno sabiendose la materia, solamente necesita un poco de concentración y seguir el ciclo Do While, para entender que habia que inicializar en una parte la variable que me acumulaba el monto a apagar, y mas encima hacer un reporte era entero palta. Y no me fue re mal en el Test de OMA, pero se que conozco la materia, solamente falta un poco de tiempo y concentración.
Acá esta el ejercicio resuelto, yo era el grupo Numero 2. El menu lo generar ustedes, pero la opción del menu CALCULO, asi se programaba (una opción):
*CALCULO
CLEAR
go top
mesp=0
valor=0
@3,5 SAY "Ingrese el MES que desea calcular: " GET mesp PICT "9"
READ
select 1
do while .not. eof()
store RUT to rutsele1
store NOMBRE to nombresele1
select 3
APPE BLANK
REPLACE RUT with rutsele1
REPLACE NOMBRE with nombresele1
select 2
do while .not. eof()
store RUT to rutsele2
store MONTO to montosele2
store MES to messele2
if rutsele2=rutsele1
if messele2=mesp
valor=valor+montosele2
?valor
wait "111"
endif
endif
select 2
skip
enddo
select 3
REPLACE APAGAR with valor
select 1
skip
enddo
return
Ya y para crear un reporte, bajo Dbase solamente habia que hacer lo siguiente:
CREATE REPORT BASEDEDATOS
Y para que se viera en el Do Case del menu escribir:
CLEAR
REPORT FORM APAGAR
SI=.T.
RETURN
Y en eso se resumia mi test, quedan 2 mas, asi que a sacarse los balazos.
Tau.
Teamspeak 3, si es cierto…
Estimados,
Todo amante de los videojuegos, conoce la sigla que comúnmente se le denomina a este software TS o TeamSpeak propiamente dicho, todo amante de los juegos, conoce este programa y obviamente siempre lo esta ocupando para poder comunicarse a través de micrófono con otros miembros de un juego en común, de su clan o de una comunidad.
El otro día entre a la pagina de TeamSpeak de los creadores, y me lleve el excelente agrado de ver que primeramente el sitio cambio su diseño y como segunda cosa que se anunciaba el lanzamiento dentro de muy pronto de TeamSpeak 3, y inmediatamente abrí el link que hacia referencia (en realidad la imagen).
Y ahí mencionaba una serie de aspectos del primeramente el porque la nueva versión, como estaría estructurado el tema de los creadores y finalmente, lo que todos queremos escuchar o leer que trae de nuevo. Un noticia a mi parecer fascinante, ya que he trabajado con el software de manera profesional y conociendo el teamspeak 2, podría esperar muchas cosas del 3.
Para mayor información viste la pagina oficial: Coming Soon TeamSpeak 3.
Taú.
¿Cual es el mejor amigo del hombre?
Quien dijo que el mejor amigo del hombre era el perro, creo que a partir del dicho anterior puedo decir que el mejor amigo del hombre es el cafe, de donde saque esta tan rebuscada afirmación…del hecho que el cafe, siempre nos acompañas en los momentos de frio, de soledad, de meditación, de estudio (dicen que con Coca Cola queda genial, dice…), osea es infaltable ese cafecito.
Bajo mi experiencia personal, he tomado una gran gama de cafes, osea desde el conocido Eco, Nescafe, Dolca…pero nunca le habia encontrado el verdadero sentido, hasta que deguste este rico cafe brasileño llamado Cruzeiro, un sabor amargo que degusta el paladar de cualquiera, la sensación es que se queda un sabor amargo en tus papitas de la lenguita.
La definición etimologico del Cafe, o mas bien sus caracteristicas principales son las siguientes: “Café se denomina la bebida que se obtiene por infusión a partir de los frutos y semillas del cafeto (Coffea), que contiene una sustancia estimulante llamada cafeína. Por extensión, también designa el lugar de consumo del mismo, una cafetería o bistro.”
Nada como saber un poco de cultura, y compartir sus experiencias. Para los que quieran tomar un cafecito conmigo y compartir de una buena conversación, avisenme solamente. El cafe lo preparo yo, me queda rico. (segun yo)
Tau.
Evolucionado a Clipper
Al fin! evolucionamos a lo mas pokemon (ahora que estan en boga este tipo de terminos). Al parecer tienes mejoras considerables en el manejo de los punteros y funciones, que mejoran considerablemente la manera de programar.
Gentilmente subi el programa, para que copien los archivos…y luego compilen desde DOS.
Descargar compilador dbase (Clipper)
Tau.
Porque soy buen compañero.
Ahí esta el test de OMA resuelto(supuesto), para todos los flojos que no fueron a la clase (Azucar), para que veas que soy un buen compañero, solamente habia que resolver arreglar el ejercicio. Este ejercicio te pasaban el algoritmo hecho, y habia que arreglarlo a un codigo que estaba malo. En realidad habia que seguir el algoritmo.
**ejercicio
**alumno Jonathan Ramirez
set status off
set bell off
set talk off
set confirm off
si2=.T.
si=.T.
do while si
do while si2
store 0 to cont1, cont2, cont3, cont4, cont5
resp=" "
**programa principal
si1=.T.
do while si1
clear
numero=0
@5,5 say "Ingreso N#" get numero pict "999"
read
if numero>0
cont3=cont3+1
?cont3
if numero>=1 .and. numero<=10
cont4=cont4+1
?cont4
else
cont5=cont5+1
?cont5
endif
else
if numero=0
cont1=cont1+1
?cont1
else
cont2=cont2+1
?cont2
endif
endif
if numero=999
si1=.F.
si=.F.
endif
enddo
*entrega de resultados
clear
@ 6,14 SAY "****** ESTADISTICAS ******"
@ 8,14 SAY "Numeros iguales a cero: "
@ 8,30 SAY cont1
@ 9,14 SAY "Numeros negativos: "
@ 9,30 SAY cont2
@ 10,14 SAY "Numeros mayores a cero: "
@ 10,30 SAY cont3
@ 11,14 SAY "Numeros entre 1 y 10: "
@ 11,30 SAY cont4
@ 12,14 SAY "Numeros mayores a 10: "
@ 12,30 SAY cont5
do while .not. resp $ "SN"
resp=" "
@ 18,40 say "Desea continuar...(S/N)" get resp pict "@!A"
read
enddo
if resp="S"
si2=.T.
else
si2=.F.
si=.F.
endif
enddo
enddo
Tau.
1ra programacion en DBase
Mi primer manejo de punteros con base de datos, aunque el lenguaje DBase es bastante precario en el manejo de punteros, porque teni que estar controlando a cada rato que el puntero vaya bien, luego de 3 veces programar el mismo codigo, resulto. Imaginense que con otros lenguajes esto lo resumi a un par de lineas.
El ejercicio consistia en que tenias 4 bases de datos, y todas se iban relacionando a medida que las recorrias con alguna campo entre ellas, lo cual habian que recorrer y preguntar a cada rato si existia, si era si, almacenar todas las variables con un store, para asi ocuparlas dentro del programa en otra consulta.
*generar base de datos
go top
select 4
do while .not. eof()
store rut to rut_sele4
store cod_ramo to codr_sele4
store nota to nota_sele4
select 5
append blank
replace NOTA with nota_sele4
select 2
locate for rut=rut_sele4
if found()
store rut to rut_sele2
store cod_carr to codc_sele2
store nombre to nomb_sele2
endif
select 5
replace ALUMNO with nomb_sele2
select 1
locate for cod=codc_sele2
if foun()
store area to area_sele1
store carrera to carr_sele1
store cod to cod_sele1
endif
select 5
replace AREA with area_sele1
replace CARRERA with carr_sele1
select 3
locate for cod_ramo=codr_sele4
if found()
store cod_ramo to codr_sele3
store nombre to nomb_sele3
endif
select 5
replace RAMO with nomb_sele3
select 4
skip
enddo
select 5
wait
list
return
El resultado de todo lo anterior, se puede visualizar en la siguiente imagen:
Tau.
Comentarios (18)
Comentarios (2)
Comentarios (1)

