Autor Tema: Goto CCS  (Leído 5954 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Goto CCS
« en: 02 de Febrero de 2007, 15:04:06 »
Hola

Solicito la amable ayuda de algún experto en CCS  :mrgreen:. Solo me gustaría recibir una mini explicación de cómo se usa el comando goto en CCS.

Nunca lo he usado solo en VBasic, y pues no sé que consideraciones haya que tener en CCS.

Gracias

PD Solo que sea una mini explicación jeje  :D

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Goto CCS
« Respuesta #1 en: 02 de Febrero de 2007, 15:09:37 »
Tal vez este hilo te brinde algo de información sobre porqué algunos pensamos que el goto en C es una "mala palabra".

http://www.todopic.com.ar/foros/index.php?topic=14474.0

Saludos
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Goto CCS
« Respuesta #2 en: 02 de Febrero de 2007, 16:38:09 »
Mejor no lo aprendas, Migsantiago  :lol:

Siempre da un poco de repeluco verlo en un programa.

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Goto CCS
« Respuesta #3 en: 02 de Febrero de 2007, 17:31:15 »
Mejor no lo aprendas, Migsantiago  :lol:

Siempre da un poco de repeluco verlo en un programa.

Manolo, esta frase "da un poco de repeluco" debiera ir en el hilo frases populares de cada región con la aclaración correspondiente!!

 :) :) :mrgreen: :mrgreen:
- La soberbia de un Einstein es entendible.. la de un salame es intolerable (A.Dolina)
- En teoría no hay diferencia entre la teoría y la práctica. En la práctica... si la hay.
- Lee, Lee, Lee y luego pregunta.(maunix)
- Las que conducen y arrastran al mundo no son las máquinas, sino las ideas (V. Hugo)
- Todos los hombres se parecen por sus palabras; solamente las obras evidencian que no son iguales.(Moliere)
- Todo debería ser hecho tan simple como sea posible pero no mas simple que eso.(A.Einstein)

Desconectado IIIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
Re: Goto CCS
« Respuesta #4 en: 02 de Febrero de 2007, 17:47:39 »
Apoyo la propuesta de Nocturno.

La instruccion Goto es un recuerdo de la programacion de antaño y generaba el muy conocido codigo "espagetti".

La recomendacion es que utilices la programacion estructurada (llamada a funciones) y la tan citada frese "divide y venceras".

Solo es recomendable si tu programa es muy pequeño y le piedes seguir la pista a los goto's.

Saludos.
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."

Albert Einstein

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Goto CCS
« Respuesta #5 en: 02 de Febrero de 2007, 19:13:38 »
Mi opinión es que la conozcas Migsantiago para que veas si en algún código es realmente necesario usarla.

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Goto CCS
« Respuesta #6 en: 03 de Febrero de 2007, 00:03:11 »
ummm...

Como que a nadie le gusta el goto...  :shock:

Pensé que era una instrucción útil por eso la quise estudiar.

Pali, ya que eres el único a favor del goto... a favor de que la estudie... ¿me podrías explicar qué hace? ¿nadamás brinca el apuntador de programa a otro lado? ¿no es mejor que un salto a subrutina ya que no llena el apuntador de pila? ¿basic es un "lenguaje" malo porque usa goto?  :)

Bueno... también los otros pueden contestar  :D

Desconectado IIIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
Re: Goto CCS
« Respuesta #7 en: 03 de Febrero de 2007, 01:56:35 »
No es que no me guste,  al inicio de mi aprendizaje me facilitaba o solucionaba muchos problemas y de hecho me acostumbre tanto a ella, que al iniciar el estudio de programacion estructurada me costo suplirla.

Pronto te daras cuenta que existen formas aun mas organizadas y estructuras que erradican su uso.

De hecho te invito a que la conozcas porque hay algo muy cierto  "no puedes renegar su uso si no la conoces",

Los demas compañeros a lo mejor quieren ahorrarte el ir por un camino infructuoso, muchos programadores la dejaron fuera hace aproximadamente 28 años.

Suerte.

"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."

Albert Einstein

Desconectado IIIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
Re: Goto CCS
« Respuesta #8 en: 03 de Febrero de 2007, 02:12:00 »
A qui te pongo un estracto de wiki


Controversia generada

A diferencia de la llamada a una función, no se requiere ningún tipo de preparación o estructura de código para utilizar un GOTO. Como resultado, es más sencillo obtener código inconsistente, incompleto o complicado de mantener. Justamente por ello en los años 60 y 70, cuando surgió la programación estructurada, la comunidad informática se expresó a favor de otras sentencias de control (if ó bucles for y do/while) en lugar del GOTO.

Tal creencia está tan arraigada que el GOTO es muy criticado por los dedicados a la enseñanza de la programación, que lo suelen desaconsejar. Por el otro lado, algunos que si bien admiten el uso de un GOTO como una práctica desaconsejable, reconocen que éste es la mejor opción para algunas pocas tareas puntuales en algunos lenguajes de programación (manejo de excepciones por ejemplo). Además, por lo general se programan macros o equivalentes para evitar la utilización del GOTO.

Una crítica famosa a la sentencia en cuestión es una carta redactada por Edsger Dijkstra llamada "Go To Statement Considered Harmful" (Sentencia Go To Considerada Dañina). En ella Dijkstra argumenta que el uso irrestricto del GOTO debería ser prohibido en lenguajes de alto nivel ya que dificultan el análisis y la verificación de la corrección de los programas (especialmente aquellos que contienen ciclos). Por el otro lado, Donald Knuth en su libro "Structured Programming with goto Statements" (Programación estructurada con sentencias Goto), toma en cuenta ciertas situaciones en las que el GOTO sería la sentencia a utilizar. Por lo general, éstas son situaciones en las que una estructura de programación en particular no se encuentra disponible y el GOTO puede simularla eficientemente.

El abuso de esta, aparentemente ágil sentencia, da lugar a los que se suele denominar como código espagueti, por que ese es el aspecto del seguimiento del programa, un plato de "espagueti", esta es una descalificación de una aplicación informática, equivalente a "chapuza indescifrable".

Los compiladores e intérpretes de lenguajes de programación aún la tienen, como recurso de programación, pero las técnicas de programación desaconsejan o prohíben su uso.
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas."

Albert Einstein

Desconectado PalitroqueZ

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Goto CCS
« Respuesta #9 en: 03 de Febrero de 2007, 13:00:28 »
ummm...

Como que a nadie le gusta el goto...  :shock:

Pensé que era una instrucción útil por eso la quise estudiar.

Pali, ya que eres el único a favor del goto... a favor de que la estudie... ¿me podrías explicar qué hace? ¿nadamás brinca el apuntador de programa a otro lado? ¿no es mejor que un salto a subrutina ya que no llena el apuntador de pila? ¿basic es un "lenguaje" malo porque usa goto?  :)

Bueno... también los otros pueden contestar  :D

si exacto migsantiago es el típico salto en ensamblador, también te comento que he visto personas que vienen del asm y que cuando quieren mudarse a un lenguaje de alto nivel: C, basic y al no adaptarse al nuevo lenguaje usan el acostumbrado goto a diestra y siniestra :D

yo alguna vez lo usé pero lo hice por flojera. me explico, ya tenía un código mas o menos enredao (¿ofuscado?) y tuve que hacerle una modificación y para no estar cambiando muchas lineas, opté por usar un goto que simplificó la cosa.

seguro que ya vendran algunos programadores experimentados por aquí a darme un azote  :D :D

te voy a decir como leí en un manual de C que tengo "cada quién si quiere que la use (respecto al goto), el caso es no abusar de ella"

si quieres usar el goto en C, podría ser:

Código: [Seleccionar]
main(){
...
a:
 bit_set(*6,1); // A crude way to set pin B1 high
 delay_ms(1000); //retardo de 1 segundo
 bit_clear(*6,1); // A crude way to clear pin B1 high
goto a;
...
}

nota: dentro de la función, no he probado que pasaría si saltara fuera

pero cualquier buen programador automaticamente te regañaría primero, y después de un discurso te cambiaría por esto:

Código: [Seleccionar]
main(){
...
 while(1){ // una forma de bucle infinito
  bit_set(*6,1); // A crude way to set pin B1 high
  delay_ms(1000); //retardo de 1 segundo
  bit_clear(*6,1); // A crude way to clear pin B1 high
 }
...
}

Salu2
Pedro
La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Goto CCS
« Respuesta #10 en: 03 de Febrero de 2007, 15:31:17 »
jejejeje

Gracias Pali y IIIC por su información  :mrgreen: