elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  en el CLR, por que?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: en el CLR, por que?  (Leído 4,228 veces)
PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
en el CLR, por que?
« en: 31 Marzo 2017, 08:03 am »

Hola buenas,

Alguna vez ya he comentado que soy nuevo en esto del visual basic y de más; que me iba a poner a aprender y todo eso..

Empece mirando visual pero me cansé rapido. Y si, ahora he vuelto, y vengo para quedarme jajajaja
he empezado a mirar otra vez y esta vez me estoy enganchando poco a poco. Pero.....como soy nuevo tengo dudas y preguntas que apra los forofos del visual serán una tonteria.(que le vamos a hacer.. nadie nace sabiendo)

La pregunta de hoy us muy simple...

Primero os pongo el codigo y luego os comento.

Código
  1. For i = 0 To a.Length - 1
  2. Console.WriteLine("a(i)={0}, b(i)={1}", a(i), b(i))
  3. Next
  4.  
  5. xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  6.  
  7. For i = 0 To a.Length step 1
  8. Console.WriteLine("a(i)={0}, b(i)={1}", a(i), b(i))
  9. Next

Bien, tenemos el mismo codigo cambiado por una palabra...

el de arriba : a.length -1
el de abajo : a.length step 1

los dos hacen lo mismo pero el de abajo da error en el CLR, por que?
se debe usar siempre el metodo de arriba?

Un saludo de vuestro vecino y amigo,
PETETE;)


· Los códigos deben ir en etiquetas GeSHi
· No se debe escribir en mayúsculas
· Lo títulos deben ser descriptivos
>aquí las reglas del foro
-Engel Lex


« Última modificación: 31 Marzo 2017, 13:01 pm por engel lex » En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: PREGUNTA TONTA..
« Respuesta #1 en: 31 Marzo 2017, 11:44 am »

Step indica cuanto aumenta la variable i a cada vuelta.

For i = 0 To a.Length - 1
Hace un bucle desde 0 hasta el valor (a.length-1) de 1 en 1 porque por defecto se asume que step es 1
i vale 0, luego vale 1, luego 2, etc... hasta i=(a.length-1)

For i = 0 To a.Length step 1
Esto hace un bucle desde 0 hasta el valor (a.length) de 1 en 1 porque tu usas el comando step para asignarle valor 1
i vale 0, luego vale 1, luego 2, etc... hasta i=(a.length)

For i = 0 To a.Length step 2
Esto saltaria de 2 en 2
i valdria 0, luego 2, luego 4, etc... hasta el valor mas cercano a a.length sin superarlo.

Si quieres hacer un bucle al reves, donde el valor de i vaya desde a.length hasta 0, pondrias:
For i = a.Length to 0 step -1

For i = 0 To a.Length - 1
For i = 0 To a.Length - 1 step 1
Estas dos lineas hacen lo mismo.
En la primera se asume que step es 1.
En la segunda se obliga a que step sea 1 (algo que no es necesario).

Saludos


« Última modificación: 31 Marzo 2017, 11:47 am por pkj » En línea

PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: PREGUNTA TONTA..
« Respuesta #2 en: 31 Marzo 2017, 12:23 pm »

okeeey gracias!

pero el a.length-1 que valor sería? eso no lo entiendo..

de 0 hasta que valor contaría?
En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: en el CLR, por que?
« Respuesta #3 en: 31 Marzo 2017, 13:07 pm »

En primer lugar esto parece ser .NET
Lenght equivale a la longitud.
La variable a puede ser una cadena de texto, una matriz (seguramente esto ultimo), o quien sabe.
Si es una cadena de texto con el bucle for next recorres sus caracteres.
Si es una matriz, recorres sus elementos.
a(i) irá asumiendo el valor adecuado a cada vuelta.
b es otra de lo mismo con la misma cantidad de elementos que a.
En línea

PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: en el CLR, por que?
« Respuesta #4 en: 31 Marzo 2017, 13:13 pm »

eso si entiendo, lo que no entiendo es porque se pone el -1.. no se podria poner 1? para que valla contando de 1 en 1?
En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: en el CLR, por que?
« Respuesta #5 en: 31 Marzo 2017, 13:24 pm »

los array se dan por empezados en 0 y tienen tantas posiciones como indiques entonces un array de length 5 sería  internamente


Código:
|_|_|_|_|_| <- 5 elementos
 0 1 2 3 4

cuando mueves tu apuntador hasta el 5 pasa que

Código:
|x|_|_|_|_|  <- apuntador en 0

|_|x|_|_|_|  <- apuntador en 1

|_|_|x|_|_|  <- apuntador en 2

|_|_|_|x|_|  <- apuntador en 3

|_|_|_|_|x|  <- apuntador en 4

|_|_|_|_|_|?  <- apuntador en 5



si que en
Código
  1. For i = 0 To a.Length

cuando i es igual a a.Length, es decir para este caso 5, estarías como dicen en mi pueblo, "orinando fuera del perol"
« Última modificación: 31 Marzo 2017, 13:27 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: en el CLR, por que?
« Respuesta #6 en: 31 Marzo 2017, 13:35 pm »

entonces se pone -1 para que no se salga del limite ese?

o para que empiece a contar desde el 0?

 a.length -1 = 0  1  2  3  4

a.length 1 = 1  2  3  4  5 ----ERROR

¿¿¿es eso?? por eso se pone el -1?

un saludo de vuestro amigo (el pesado) y vecino,
PETETE;)
En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: en el CLR, por que?
« Respuesta #7 en: 31 Marzo 2017, 13:39 pm »

Citar
entonces se pone -1 para que no se salga del limite ese?

cuenta con los dedos empezando desde 0 hasta tu cantidad de dedos de la mano (5), empieza por el pulgar (0) y ve diciendolos en voz alta... mira que pasa cuando llegas a dedos.length-1 y a dedos.length

En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
PETTETE

Desconectado Desconectado

Mensajes: 127


Ver Perfil
Re: en el CLR, por que?
« Respuesta #8 en: 31 Marzo 2017, 13:52 pm »

Eso es que si no?

no me has respondido. si, se que si se pasa del limite da error!

pero por eso se pone el -1? para que no salga del limite? o sea para que empiece a contar desde el 0 no?
y que no llegue al 5 sino que se quede en el 4????
En línea

UN SALUDO DE VUESTRO AMIGO Y VECINO,
PETETE;)
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: en el CLR, por que?
« Respuesta #9 en: 31 Marzo 2017, 13:58 pm »

Citar
pero por eso se pone el -1? para que no salga del limite? o sea para que empiece a contar desde el 0 no?
y que no llegue al 5 sino que se quede en el 4????

te estoy dando las herramientas para que lo razones tu mismo

tienes

Código
  1. For i = 0 To a.Length
  2. # Y
  3. For i = 0 To a.Length -1

for tiene 2 argumentos

Código
  1. For variable = primer_elemento To ultimo_elemento

Citar
pero por eso se pone el -1? para que no salga del limite?
que efecto causa el -1 en "ultimo_elemento!? cambia las variables por numeros enteros y miralo

Citar
o sea para que empiece a contar desde el 0 no?
que efecto causa el -1 en "primer_elemento!? cambia las variables por numeros enteros y miralo



y por qué te lo dejo para razonar? porque claramente si estás preguntando eso, no lo estás entendiendo, y conocimiento sin comprensión no tiene mucho sentido
« Última modificación: 31 Marzo 2017, 14:06 pm por engel lex » En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines