| Ver tema anterior :: Ver siguiente tema | | Autor | Mensaje |
|---|
MasterKiller
Registrado: 26 Sep 2007 Mensajes: 18
| Publicado: 14/11/2007 2:04 pm | | | Título: digito verificador |
| Bueno amigo.. nesesito hacer un analisis y un programa pero no se como se puede hacer... nose si alguien me podria ayudar... esto tengo que hacer:
| Cita: | Se debe ingresar un rol(ID o RUT) de 7 digitos. El digito verificador se calcula a partir del rol del alumno de la siguiente manera:
* Sea d7, d6, d5, d4, d3, d2, d1 los 7 dígitos del rol. * Calcular un numero indicador como:
Ni=(d1x1 + d2x2 + d3x3 +..... d7x7)/(d1+d7)
* Este indicador redondeado fija el numero de terminos n de la sucesion que permite calcular el numero de serie es Sn donde
Sn=Sn-1 + Sn-2
Con s0=d7 y s1=d1 si n es par, o s0=1 y s1=d7 si n es impar.
* imprimir el valor de ka cabtudad de términos de la sucesión n y el número de serie. |
y otro que tengo que hacer es este....
bueno amigos... este es el gran problema que tengo... no le estoy pidiendo que me agan el programa (aunque si son tan amables se lo agradeceria muchisimo) solo que me ayuden a entenderlo y como puedo relalizar estoy programas... bueno amigos.. espero su ayuda... ya que son los unicos que me pueden salvar la vida... confio en ustedes... gracias...
PD: Todo tiene que ser en C++ bye |
| | Volver arriba | |  | david_celta
Registrado: 02 Jun 2005 Mensajes: 95
| Publicado: 14/11/2007 6:35 pm | | | Título: |
| ROL=1234567 d1=1 d2=2 ... d3=7 Ni=(1*1+2*2+..7*7)/(1+7)=17(si es redondeado hacia abajo),18 (si es redondeado hacia arriba)
¿N es par? No entonces usamos s0=1 y s1=7 para calcular S17 (o S18 depende del redondeo)
S18=S17+S16=? S17=S16+S15=? S16=S15+S14=? ... S2=S1+S0=7+1=8
Segun eso: 1. Ingresas un numero de 7 digitos y extraes sus digitos (a un arreglo por ejemplo A[]) 2. Multiplicas cada digito del arreglo por la secuencia (1..7) (A[0]*1,A[1]*2 y asi hasta A[6]*7) 3. Sumas todos los elementos del arreglo(A[0]+A[1]+...A[6]) y lo divides entre la suma del prmero+el ultimo(A[0]+A[6]) 4.Redondeas el resultado 5.Preguntas si el numero ingresado es par o impar y defines los valores de s0 y s1(puede ser otro arreglo llamado S[]) 6.Calculas los valores de S hasta S[Ni] empezando por S[2]=S[1]+S[0], luego S[3]=S[2]+S[1] y asi hasta S[Ni]=S[Ni-1]+S[Ni-2] 7.Imprimes el arreglo S y pides tu nota _________________ Rueda y rueda la vida, rueda y rueda el balón... y detras de la esperanza, palpita cada corazón. |
| | Volver arriba | |  | MasterKiller
Registrado: 26 Sep 2007 Mensajes: 18
| Publicado: 15/11/2007 10:35 am | | | Título: |
| bueno amigo... me sirvio arto tu respuesta... pero me kedo una duda...
que cosa isite en esta parte???
| Cita: | S18=S17+S16=? S17=S16+S15=? S16=S15+S14=? ... S2=S1+S0=7+1=8 |
no entendi como lo isiste... me podrias ayudar?? gracias! |
| | Volver arriba | |  | | david_celta
Registrado: 02 Jun 2005 Mensajes: 95
| Publicado: 15/11/2007 5:30 pm | | | Título: |
| | Cita: | Ni=(d1x1 + d2x2 + d3x3 +..... d7x7)/(d1+d7)
* Este indicador redondeado fija el numero de terminos n de la sucesion que permite calcular el numero de serie es Sn donde
Sn=Sn-1 + Sn-2
Con s0=d7 y s1=d1 si n es par, o s0=1 y s1=d7 si n es impar
|
Significa que Ni indica el numero de terminos de la sucesion S (el arreglo S en este caso)
Si Ni=18, el arreglo S tiene 18 elementos Si Ni=10, el arreglo S tiene 10 elementos
Segun la ecuacion que te dan Sn=Sn-1+Sn-2, donde n es el indice obtenemos una sucesion para Ni=10 como sigue:
cuando el indice n=10 S[10]=S[10-1]+S[10-2]=S[9]+S[8]
cuando el indice n=9 S[9]=S[9-1]+S[9-2]=S[8]+S[7]
y asi sucesivamente, por lo cual primero debes calcular S[0], S[1], S[2], S[3] y asi sucesivamente hasta S[Ni] utilizando esa ecuacion (Sn=Sn-1+Sn-2)
Entonces para Ni=10: S[2]=S[1]+S[0]=d1+d7=, como Ni=10 es par entonces S[0]=d7, S[1]=d1 S[3]=S[2]+S[1]= S[4]=S[3]+S[2]= ... S[10]=S[9]+S[8]=
Si Ni fuera impar, entonces usas S[0]=1,S[1]=d7 y haces lo mismo. _________________ Rueda y rueda la vida, rueda y rueda el balón... y detras de la esperanza, palpita cada corazón. |
| | Volver arriba | |  | | |
| No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas
|
|
| |