Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Calculadora en C

Estas en el tema de Calculadora en C en el foro de C/C++ en Foros del Web. Ah si, creo que cai en ese error.........

  #31 (permalink)  
Antiguo 13/09/2006, 17:10
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
Ah si, creo que cai en ese error......
__________________
-> La duda adecuada es un buen comienzo <-
  #32 (permalink)  
Antiguo 13/09/2006, 17:12
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
pero ¿en que radica el que no hay ventaja siendo tan simple?
__________________
-> La duda adecuada es un buen comienzo <-
  #33 (permalink)  
Antiguo 13/09/2006, 17:14
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por arm Ver Mensaje
pero ¿en que radica el que no hay ventaja siendo tan simple?
La pregunta es: ¿Por qué supones tu que debiera haberla?

goto es un salto a otra posición de la memoria. Nada más.
  #34 (permalink)  
Antiguo 13/09/2006, 17:49
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
Me he encontrado con situaciones en que dentro de una funcion hay dos bloques que comparten una misma estructura, eso para mi si significa que puedo ponerlo en una funcion y llamarla dentro de la funcion para ahorrar espacio. Tambien significa que puedo hacer algo como esto

bloqueX:
{
....
}
y brincar aqui cuando sea necesario.

pero entre esto y una funcion hay mas factores, por que si creo una funcion se crea un espacio en la pila por lo menos (diras que exajero, pero creo que es correcto), pero si creo el bloque redusco la modularidad.

¿Hay mas factores?
R=Si

¿Cual es la ventaja?
R=Te contestare como lo hiso el autor del libro en que apredi a menejar las funciones estaticas. !Averigualo, es tu programa¡
__________________
-> La duda adecuada es un buen comienzo <-

Última edición por arm; 13/09/2006 a las 18:01
  #35 (permalink)  
Antiguo 13/09/2006, 18:05
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por arm Ver Mensaje
No es la simple instruccion GOTO lo importante, igual que no tiene importancia en los apuntadores por si solos, pero gracias a ellos podemos construir arreglos en tiempo de ejecucion.
¿? Mezclas la velocidad con el tocino. Pero a lo que dices:

_No_ puedes crear en C arrays en tiempo de ejecución.

Cita:
Iniciado por arm Ver Mensaje
¿No es mas eficiente el arreglo creado en tiempo de ejecucion?
Si, por que ahora se puede modificar su tamaño.
Que se pueda modificar o no, no los haría más eficientes (de hecho no los hace, porque arrays dinámicos en C no existen).

De hecho, la diferencia entre un array y un puntero es muy poca. La única diferencia es que del array estático se conoce el tamaño de la zona a la que apunta, de un puntero no.

Cita:
Iniciado por arm Ver Mensaje
Es en esta direccion que hablo de eficiencia, talvez cometi un error al utilizar la palabra, asi que la cambiare por simple.
Me he encontrado con situaciones en que dentro de una funcion hay dos bloques que comparten una misma estructura, eso para mi si significa que puedo ponerlo en una funcion y llamarla dentro de la funcion para ahorrar espacio. Tambien significa que puedo hacer algo como esto

bloqueX:
{
....
}
y brincar aqui cuando sea necesario.

pero entre esto y una funcion hay mas factores, por que si creo una funcion se crea un espacio en la pila por lo menos (diras que exajero, pero creo que es correcto), pero si creo el bloque redusco la modularidad.

¿Hay mas factores?
R=Si

¿Cual es la ventaja?
R=Te contestare como lo hiso el autor del libro en que apredi a menejar las funciones estaticas. !Averigualo, es tu programa¡
Buf estás mezclando todo...

"goto" sirve para saltar a otro lugar la memoria. Los usos en los que se puede alcanzar más eficiencia son en casos con grandes bucles y cosas similares. Aún así, su uso debe ser muy bien pensad.

Lo que tú dices de crear un bloque con una etiqueta en vez de llamar a una función... Sólo tendría sentido en funciones que son llamadas _muchas_ veces. Y aún así, para eso tienes la palabra clave "inline" que hace que el compilador se encargue de eso por ti, sin tener que usar gotos ni demás.
  #36 (permalink)  
Antiguo 13/09/2006, 18:24
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
Si !!!!!!!!!
Respecto a lo de los arreglos, lo corregi solo un minuto antes de que me contestaras.

Y a la eficiencia de esos usos es a la que me referia.

Solo digo que hay situaciones en las que podemos crear un mejor algoritmo, en algno de los setidos, y decir que es absolutomente incorrecto el uso de goto no me parece.

No mesclo, solo quise tomar ejemplos.
__________________
-> La duda adecuada es un buen comienzo <-
  #37 (permalink)  
Antiguo 13/09/2006, 18:26
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 2 meses
Puntos: 52
Vamos, el goto, si, es mas cerca al ensamblador, mas no por esto, es mas rapdio, o mas eficiente.
La idea de usar bloques con goto la verdad . Dime para que carajos se inventaron las funcioens.

Yo sigo desde mi punto de vista donde todo goto puede ser bien sustituido sin perder practicamente nada de eficiencia y dejando un codigo libre de saltos repentinos. Solo funciones y bloques con instrucciones en un orden logico.

saludos
  #38 (permalink)  
Antiguo 13/09/2006, 18:26
 
Fecha de Ingreso: abril-2005
Mensajes: 3.083
Antigüedad: 19 años, 9 meses
Puntos: 17
Cita:
Iniciado por arm Ver Mensaje
Si !!!!!!!!!
Respecto a lo de los arreglos, lo corregi solo un minuto antes de que me contestaras.

Y a la eficiencia de esos usos es a la que me referia.

Solo digo que hay situaciones en las que podemos crear un mejor algoritmo, en algno de los setidos, y decir que es absolutomente incorrecto el uso de goto no me parece.

No mesclo, solo quise tomar ejemplos.
No sé, yo no entiendo su relación pero bueno... El caso es que te olvides de que "goto", por ser traducido a un salto en ensamblador, va a ser más rápido.

Todo tu programa en C va a ser traducido a ensamblador de cualquier manera. Y lo bueno que sea el resultado depende de tu capacidad para diseñar patrones y del compilador en traducirlos a código máquina eficiente y optimizado.

A ti _NO_ te corresponde optimizar en el sentido de usar gotos en vez de funciones. (Salvo en casos especiales donde va a haber una _verdadero_ aumento de velocidad: como crackers, criptografia, SOs, drivers, MM, engines 3D, ...) Pero dudo que hayas o vayas a tocar algo similar, son campos muy muy específicos.
  #39 (permalink)  
Antiguo 13/09/2006, 18:41
arm
 
Fecha de Ingreso: mayo-2006
Mensajes: 112
Antigüedad: 18 años, 8 meses
Puntos: 0
ok.........
__________________
-> La duda adecuada es un buen comienzo <-
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 10:58.