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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  [RESUELTO, AHORA VARIANTES]Hola, tengo un ligero problema
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: [RESUELTO, AHORA VARIANTES]Hola, tengo un ligero problema  (Leído 8,669 veces)
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Hola, tengo un ligero problema
« Respuesta #10 en: 27 Abril 2011, 19:50 pm »

Mira, has declarado la función main como int main(), entonces debes retornar un entero, es por eso que debes de usar la sentencia return. Cuando retornamos algo en la función main() le estamos avisando a nuestro sistema operativo cómo finalizó nuestro programa. Ejemplo:

tres.c:
Código
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.    int x = 23;
  6.    /* Supongamos que no debe de dar 23 la comprobación
  7.     si da 23 es que algo hubo mal y salimos insatisfactoriamente del programa */
  8.    if(x == 23)
  9.    return 1;
  10.    return 0;
  11. }
  12.  

Cuando ejecuto y compruebo cómo salió mi programa:


Código:
┌─[0 leo@archero ~/c_proyects]$
└─> ./tres; echo $?
1
┌─[0 leo@archero ~/c_proyects]$
└─>

Fijate que me devolvió un 1, esto es porque en nuestro programa algo salió mal.

Código:
┌─[0 leo@archero ~/c_proyects]$
└─> ./tres && echo -e "Todo bien" || echo -e "Algo salió mal"
Algo salió mal
┌─[0 leo@archero ~/c_proyects]$
└─>

Es por eso que es importante retornar algo, retornar el diagnóstico de nuestro programa.


En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
satu


Desconectado Desconectado

Mensajes: 301

Siempre aprendiendo


Ver Perfil WWW
Re: Hola, tengo un ligero problema
« Respuesta #11 en: 27 Abril 2011, 20:01 pm »

Y si quieres que cuando el programa acabe espere a que presiones una tecla utiliza getchar() que sí es estándar.

Saludos


En línea

Breakbeat como forma de vida
alex030293

Desconectado Desconectado

Mensajes: 12


Aprendiendo a programar en C a pocos...


Ver Perfil
Re: Hola, tengo un ligero problema
« Respuesta #12 en: 27 Abril 2011, 20:30 pm »

vale, entonces meto siempre return 0; al final de todo como medida "formal".

Por otro lado, habia leido lo de getchar(); pero no me hace lo mismo que getch() por algun motivo, se cierra sola al acabar.
En línea

www.flickr.com/photos/alex030293

Mi equipo: Intel i7 955 @4.0GHz + Nvidia GTX 460 + Nvidia 9800GT para Physx + 12Gb RAM DDR3 1600 Mghz + HDD Seagate Barracuda + Themaltake ProWater 850i.
Samael.Black

Desconectado Desconectado

Mensajes: 19


Ver Perfil
Re: Hola, tengo un ligero problema
« Respuesta #13 en: 27 Abril 2011, 22:53 pm »

vale, entonces meto siempre return 0; al final de todo como medida "formal".

Por otro lado, habia leido lo de getchar(); pero no me hace lo mismo que getch() por algun motivo, se cierra sola al acabar.
utiliza la libreria stdlib.h y la funcion system("pause") es estandar y pausa el programa que es lo que quieres...

y el return como dijieron se deve de poner pues la funcion main la estas declarando como int main() lo cual al finalizar estas diciendo que tendra un valor de retorno...

y pues te recomiendo repasar la informacion que has estudiado y centrarte en los distintos tipos de datos que puedes manejar (int, char, float, bool, double,etc)...
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Hola, tengo un ligero problema
« Respuesta #14 en: 27 Abril 2011, 22:58 pm »

Lo recomendable es limpiar el buffer y utilizar getchar() o fgetc(stdin) para pausar el programa. Si utilizas system("pause") no funcionaría en otros sistemas operativos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: Hola, tengo un ligero problema
« Respuesta #15 en: 27 Abril 2011, 23:00 pm »

Y de todas formas no hace falta, algo tan sencillo se acaba antes llamando desde la consola.
En línea

alex030293

Desconectado Desconectado

Mensajes: 12


Aprendiendo a programar en C a pocos...


Ver Perfil
Re: Hola, tengo un ligero problema
« Respuesta #16 en: 29 Abril 2011, 14:59 pm »

Bien, ahora que ya repasé algunos conceptos, y este programa va sin problema, voy a intentar algo diferente.

Alguien sabe la forma de hacer lo mismo, solo que en vez de introducir coeficiente por coeficiente, el usuario escriba la ecuación directamente (pej: 2x^2+4x-3=0)??

Gracias de antemano.
En línea

www.flickr.com/photos/alex030293

Mi equipo: Intel i7 955 @4.0GHz + Nvidia GTX 460 + Nvidia 9800GT para Physx + 12Gb RAM DDR3 1600 Mghz + HDD Seagate Barracuda + Themaltake ProWater 850i.
Acermax

Desconectado Desconectado

Mensajes: 55


Ver Perfil
Re: [RESUELTO, AHORA VARIANTES]Hola, tengo un ligero problema
« Respuesta #17 en: 29 Abril 2011, 19:10 pm »

Bueno, por ejemplo, podrías leer la expresión, y luago tratarla caracter a caracter. Por ejemplo, se me ocurre  guardar la ecuación en un array de tamaño variable (podrías usar la clase vector de stl para esto, que es muy útil), en la que en la posición 0 del vector guardas el termino independiente, en la posición 1 el termino de grado 1 etc...
También piensa que en realidad no tienes que tratar de manera especial que sea una suma o una resta, simplemente puedes guardar en el array el vector cambiado de signo o no, y con el término o términos de la derecha de la igualdad lo mismo, solo tendrías que cambiarles el signo para luego operar fácilmente...

PD: Vale veo que solo pretendes hacerlo para ecuaciones de segundo grado, asi que lo tienes más fácil si quieres, no necesitas ni crear un "vector" de stl, puedes hacerlo con variables directamente o con un array fijo de 3 posiciones.
En línea

alex030293

Desconectado Desconectado

Mensajes: 12


Aprendiendo a programar en C a pocos...


Ver Perfil
Re: [RESUELTO, AHORA VARIANTES]Hola, tengo un ligero problema
« Respuesta #18 en: 29 Abril 2011, 20:54 pm »

Bueno, por ejemplo, podrías leer la expresión, y luago tratarla caracter a caracter. Por ejemplo, se me ocurre  guardar la ecuación en un array de tamaño variable (podrías usar la clase vector de stl para esto, que es muy útil), en la que en la posición 0 del vector guardas el termino independiente, en la posición 1 el termino de grado 1 etc...
También piensa que en realidad no tienes que tratar de manera especial que sea una suma o una resta, simplemente puedes guardar en el array el vector cambiado de signo o no, y con el término o términos de la derecha de la igualdad lo mismo, solo tendrías que cambiarles el signo para luego operar fácilmente...

PD: Vale veo que solo pretendes hacerlo para ecuaciones de segundo grado, asi que lo tienes más fácil si quieres, no necesitas ni crear un "vector" de stl, puedes hacerlo con variables directamente o con un array fijo de 3 posiciones.

Me parece una buena idea. Pero me la apunto para más adelanto, porque llevo tres días con C/C++ y aún no llegue a los arrays. Cuando controle un poco eso pruebo.

Gracias de todos modos
En línea

www.flickr.com/photos/alex030293

Mi equipo: Intel i7 955 @4.0GHz + Nvidia GTX 460 + Nvidia 9800GT para Physx + 12Gb RAM DDR3 1600 Mghz + HDD Seagate Barracuda + Themaltake ProWater 850i.
xassiz~


Desconectado Desconectado

Mensajes: 457



Ver Perfil WWW
Re: [RESUELTO, AHORA VARIANTES]Hola, tengo un ligero problema
« Respuesta #19 en: 4 Mayo 2011, 16:01 pm »

Me temo que no podrás leer una expresión así si no tienes conocimientos sobre arrays por lo menos ;D
En línea

Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema anterior resulto,tengo otro ahora
Software
bob76 1 1,779 Último mensaje 13 Julio 2003, 12:08 pm
por Songoku
Desactive mi foro y Ahora tengo un problema muy grande « 1 2 3 »
PHP
Shalashaska 21 7,605 Último mensaje 24 Junio 2007, 22:25 pm
por Shalashaska
[Resuelto] Como hago para que HOLA = hola?
Programación Visual Basic
agus0 4 3,668 Último mensaje 12 Febrero 2010, 11:48 am
por egrimm
[Resuelto] Estoy creaando un bat y tengo algunas fallas que no se como arreglar
Scripting
miguel0542 1 2,554 Último mensaje 3 Septiembre 2012, 10:21 am
por Eleкtro
[Resuelto] Tengo un problema descargando un .txt de un fuente. « 1 2 »
PHP
@XSStringManolo 10 5,046 Último mensaje 8 Septiembre 2019, 22:03 pm
por @XSStringManolo
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines