Autor Tema: Existe GOTO em C??????  (Leído 2970 veces)

0 Usuarios y 3 Visitantes están viendo este tema.

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Existe GOTO em C??????
« en: 11 de Noviembre de 2007, 20:59:25 »
Olá a todos do forum.

Desculpem se minha pergunta parace estupidez.
Comecei com o Basic, porem estou uma certa dificuldade nesta línguagem.

 Lendo o forum, achei a linguagem C mais versátil, porém um pouco mais difícil de entender, porque em alguns momentos ainda penso em linguagem Basic.

 Procurei alguns tutorias na Internet, descrevendo um pouco sobre a programação em linguagem C, pois o arquivo de ajuda CCS não explica  detalhadamente certas funções, por exemplo:
 
cresult=strcmp (s1, s2) Compare s1 to s2 , aqui ele não descreve que s1 e s2 forem iguais ele retorna 0, e se forem diferentes retorna != 0.

 No momento não vou escrever muito, pois ainda tenho muito para ler. No entanto não consigo tirar esta dúvida da cabeça.

 
 Como fazer o programa retorna ao início como se faz em Basic .



Exemplo:


MAIN:
          instrução
           ..........
           comparação
          ...........
           é assim por diante,  até
 
          GOTO MAIN
END.

 Pode até ser que  ainda encontre um tutorial em C, informe como isto acontece. Porém até o momento já li 2 e não percebi como se faz isso.

 Sei que a linguagem C é muito estruturada, que dependendo da maneira que se programe esta função GOTO acabará nem sendo usada.

 Deixo para os maestros aqui do forum, se possível explicarem a minha dúvida.

 Desde já agradeço.

 Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Existe GOTO em C??????
« Respuesta #1 en: 11 de Noviembre de 2007, 21:19:57 »
En CCS se puede utilizar goto etiqueta;. No obstante en "C" estándar no se admite el GOTO, dado que cualquier programa estructurado se puede controlar el flujo de programa sin usar el goto.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Existe GOTO em C??????
« Respuesta #2 en: 11 de Noviembre de 2007, 22:01:52 »
Olá jfh900 ,

Gracias por contestar.  :mrgreen:

Porém como já havia dito antes:
Citar
Sei que a linguagem C é muito estruturada, que dependendo da maneira que se programe esta função GOTO acabará nem sendo usada.

É que o pouco que aprendi foi Basic, então continuo pensando em Basic.

Vou continuar lendo para, que momento que tiver duvidas venha recorrer aos maestros aqui do foro.

Gracias

Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Existe GOTO em C??????
« Respuesta #3 en: 12 de Noviembre de 2007, 15:55:33 »
Hace tiempo se debatió el tema en este hilo.

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

Espero te sirva.  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 MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Existe GOTO em C??????
« Respuesta #4 en: 12 de Noviembre de 2007, 19:10:34 »
En otras palabras, para los buenos programadores de un lenguaje estructurado, como el caso del C, usar un GOTO es mala palabra !! :D :D
Lo cual no quiere decir que no puedas utilizarlo, pero en ese caso no lo comentes... :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Existe GOTO em C??????
« Respuesta #5 en: 12 de Noviembre de 2007, 19:20:01 »
Gracias aqueles que respoderam.

Pelo que pude ler no topico que maunix indicou, não sou o unico que pensou sobre o assunto (GOTO).

Continuarei na leitura, e depois pergunto a vocês

Mais uma vez obrigado.

Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Existe GOTO em C??????
« Respuesta #6 en: 12 de Noviembre de 2007, 23:53:01 »
Ivan, como se comento en este foro, no es "polite" ( prolijo ) usar GOTO, pero en ciertos casos su uso se justifica, ejemplo de eso logjmp o setjmp, que son en definitiva GOTO o el TRY..CATCH en C++.
Creo que en tu caso se solucionara de esta manera en "C"

while ( 1 )
{
... // Instrucciones aca, las que quieras
}

Desconectado maunix

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4751
    • Mi Sitio Web Personal
Re: Existe GOTO em C??????
« Respuesta #7 en: 14 de Noviembre de 2007, 09:37:50 »
Los invito a que sigan el link que dejé más arriba donde precisamente se trató el tema antes y se expusieron los mismos argumentos.

 :P :P
- 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 ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Existe GOTO em C??????
« Respuesta #8 en: 14 de Noviembre de 2007, 19:01:40 »
Novamente gostaria agradecer a resposta de todos, porém sigo tendo dúvidas a qual apresentarei vocês.

 No código que segue baixo, em vez de usar o GOTO como foi usado poderia seguir a sugestão do amigo RICHI77 ,  até aí eu entendi, pois se colocar uma condição verdadeira ele fica num loop de infinito.

 Mas supondo que no meio do código eu quisesse testar uma condição de em outra função.
 Por exemplo: (em Basic)
Citar
LABEL
Estado:    .............
      ...........
      GoSub test (aqui segue para sub-função)
      ..............    (aqui volta da sub-função)
      ..............
                           goto estado
end

Na função acima é só colocar GoSub test, a partir deste comando ele vai para sub função test  faz o que tem que fazer e retorna na linha abaixo deste comando.

 Como disse anteriormente, o pouco que aprendi foi em Basic então para entender um pouco mais sobre o fluxo na linguagem C novamente preciso da ajuda dos companheiros.

 Sei que a minha dúvida pode parecer estupidez  :? para aqueles que já dominam a programação  em C, mas para eu que estou aprendendo realmente é muito difícil. Pois a documentação existente em língua portuguesa é muito pouca, já em inglês e espanhol ela é mais vasta. E além do mais estou fazendo isso sozinho, apenas com leitura de alguns tutorias e lendo muito também este fórum, que está sendo de grande ajuda.   :mrgreen:

Gracias  :D :-/

 Ivan Braga
« Última modificación: 14 de Noviembre de 2007, 19:08:46 por ivan braga »
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Existe GOTO em C??????
« Respuesta #9 en: 15 de Noviembre de 2007, 00:07:08 »
No es asi en C, la notacion de una funcion en C como la defines alli seria mas o menos asi:



Void Test()
{
//hago lo que debo hacer aqui...
}

Void Main();
{
//para llamar a esta funcion lo haces desde tu programa de la siguiente forma:
Test();
Otra_Funcion();
// ya esta!! el programa salto hacia la funcion Test(), realizo las tareas de la misma y luego volvio a seguir su curso...
}
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Existe GOTO em C??????
« Respuesta #10 en: 15 de Noviembre de 2007, 00:26:56 »
    Gracias MGLSOFT,

Exactamente eso que quería saber!!!!!   :-/ :-/

   Continuarei lendo, depois volto com mais duvidas.

  Obrigado.

  Ivan Braga
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Existe GOTO em C??????
« Respuesta #11 en: 15 de Noviembre de 2007, 00:31:42 »
Si estas aprendiendo desde cero, te recomiendo la lectura de algunos libros.
Por ejemplo este:

Esta en tu idioma nativo, ademas para conocer la sintaxis del lenguaje C, una buena opcion es:

y tambien si utilizas el CCS C, este otro:
« Última modificación: 15 de Noviembre de 2007, 00:37:55 por MGLSOFT »
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado ivan braga

  • PIC12
  • **
  • Mensajes: 77
Re: Existe GOTO em C??????
« Respuesta #12 en: 15 de Noviembre de 2007, 00:55:28 »
   Ok MGLSOFT,

   Estou lendo o ultimo que você indicou (do Nigel Gardner), mais como é em inglês demoro mais porque não domino este idioma.

  Y la otra cosa importante, el libro no habla e no escribe :D :D .

  Gracias por su atención in responder a mis preguntas  :lol:

   Ivan Braga
« Última modificación: 15 de Noviembre de 2007, 01:02:40 por ivan braga »
"Mesmo o objeto mais inanimado tem movimento suficiente para ficar na sua frente e provocar um acidente."
"Incluso el objeto más inanimado tiene suficiente movimiento para interponerse en su camino y provocar un accidente."
"Even the most inanimate object has enough movement to stand in your way and cause an accident."

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Existe GOTO em C??????
« Respuesta #13 en: 15 de Noviembre de 2007, 15:01:11 »
Muchachos CCS que quiere decir ??? Casi un Compilador Se
jejejeje Era un chiste a no enojarse !!!!
 :D :D :D :D :D

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Existe GOTO em C??????
« Respuesta #14 en: 15 de Noviembre de 2007, 15:29:25 »
No, la sigla significa (en ingles es al reves) Solo Con MiCrochip.... :D :D
O sea que no anda con los Chotorola !! :mrgreen: :mrgreen:
Vos tampoco te enojes!! :-) :-) 8) 8)
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything