Donar $20 Donar $50 Donar $100 Donar mensualmente
 


Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Buscar en el tema
[DUDA] Sobre programacion en C
Autor Mensaje
EstebanT Sin conexión
Empleado del buffet
LA *!"·$ MADREEE!!
*

Ing. en Sistemas
-----

Mensajes: 21
Agradecimientos dados: 4
Agradecimientos: 0 en 0 posts
Registro en: Jul 2013
Mensaje: #1
[DUDA] Sobre programacion en C Otro Ingeniería de Software
Buenas mañanas, tardes, noches, depende cuando lo mires..
Estoy empezando en programacion y leyendo un poquito me mande a realizar mi primer programa.
La verdad que el programa es demasiado basico, solo calcula la Ley de Ohm dependiendo los datos que ingreses.
Tengo un par de dudas respecto al programa:
1. Como haria para que el usuario ingrese, por ejemplo, un dato con notacion cientifica.
2. Como haria para que el compilador me muestre el resultado en notacion cientifica.
3. Por ultimo, como haria para que el programa vuelva a preguntarte "Que desea calcular?" Osea, mediante un goto o algo similar.

Desde ya gracias por tomarse el tiempo de leer y darme una mano.

Spoiler: Mostrar

#include <iostream>
using namespace std;

int main(){

double resistencia;
double tension;
double corriente;
int x;
cout<<"Que desea calcular? TENSION=1 CORRIENTE=2 RESISTENCIA=3\n"<<endl;
cin>> x;

if(x==1){
cout<<"Ingrese el valor de la CORRIENTE y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> corriente >> resistencia;
cout<< "El valor de la TENSION es de:" << corriente*resistencia <<"\n";}

if(x==2){
cout<<"Ingrese el valor de la TENSION y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> tension >> resistencia;
cout<<"El valor de la CORRIENTE es de:" << tension/resistencia<<"\n";}

if(x==3){
cout<<"Ingrese el valor de la TENSION y la CORRIENTE (separadas por un espacio)\n"<<endl;
cin>> tension >> corriente;
cout<<"El valor de la RESISTENCIA es de:" << tension/corriente<<"\n";}

return 0;}

21-10-2013 13:19
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Motomine Sin conexión
Militante
Sin estado :(
***

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 61
Agradecimientos dados: 8
Agradecimientos: 14 en 9 posts
Registro en: Feb 2012
Facebook
Mensaje: #2
RE: [DUDA] Sobre programacion en C
Hasta lo que yo se, C no funciona con notacion cientifica, tendrias que hacerlo de forma manual (hacer vos el calculo e imprimirlo como string y no como numero).
El goto creo que no esta en C, lo que tendrias que hacer es hacer un menu que tire opciones de lo q puede hacer y q al seleccionar lo haga, y que eso este dentro de un while y que se repita hasta que seleccione la opcion salir.

No se me ocurre otra cosa para lo que sugeris, espero que te sirva.

PD: si vas a usar ifs, te conviene anidarlos (if - else) y en el else poner "else if" y ahi abrir otro. Segun lo que vos estas haciendo, si el usuario selecciona 1 hace lo del primer if, dsps mira el segundo y dsps el tercero, para que revisar todos si ya entro en el primero?
Igual para menues de este estilo te conviene usar el switch, que evalua esto de forma mas simple.

Saludos.
21-10-2013 13:30
Envíale un email Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Imakuni Sin conexión
Presidente del CEIT
Did you know that cashews come...
********

Ing. en Sistemas
Facultad Regional Córdoba

Mensajes: 6.968
Agradecimientos dados: 112
Agradecimientos: 119 en 77 posts
Registro en: Jul 2008
Mensaje: #3
RE: [DUDA] Sobre programacion en C
Para ingresar en notacion cientifica, hay que ingresar el numero en notacion cientifica =P

Ej: 1000e+99 en la entrada del usuario significa 1000*10^99 si mal no recuerdo

Para la salida ni idea... tendría que googlearlo
21-10-2013 13:30
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sebasthian777 Sin conexión
Presidente del CEIT
mi propio camino NINGA
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.923
Agradecimientos dados: 44
Agradecimientos: 23 en 20 posts
Registro en: Nov 2011
Mensaje: #4
RE: [DUDA] Sobre programacion en C
el format de printf / sprintf lo solucionaba si no le pifio....

Convertis el double o float en un "char*" y lo imprimis en pantalla...

pd: no uses goto....

Si estas en aplicaciones de consola, hace un while (char_salida != CHAR_SALIDA)... y por un define ponele a CHAR_SALIDA el caracter de escape que le quieras poner a tu bucle principal...

No se si se entiende...

te queda dando vueltas en un while hasta que vos no apretes la tecla de salida, que podria ser por ejemplo la "Q"

ah si, si usas el cout te lo imprime en notacion cientifica directamente (si no le pifio)

(19-11-2013 11:48).py escribió:  
(19-11-2013 11:46)sebasthian777 escribió:  
(19-11-2013 11:43).py escribió:  Terminemos Hurd.
Prefiero dejarle ese laburo a gente sin vida social y que no tenga sexo.
Cuando te casas? Asi voy armando el Gannt.
(Este mensaje fue modificado por última vez en: 21-10-2013 14:14 por sebasthian777.)
21-10-2013 14:10
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
EstebanT Sin conexión
Empleado del buffet
LA *!"·$ MADREEE!!
*

Ing. en Sistemas
-----

Mensajes: 21
Agradecimientos dados: 4
Agradecimientos: 0 en 0 posts
Registro en: Jul 2013
Mensaje: #5
RE: [DUDA] Sobre programacion en C
Pero tengo entendido que el while se usa para verificar si una condicion es falsa o no, osea 2 variables, yo en este caso necesitaria 3 Resistencia, Tension y Corriente, si me equivoco agradeceria que me muestren una parte del codigo de como seria con 3 variables.
21-10-2013 15:21
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sebasthian777 Sin conexión
Presidente del CEIT
mi propio camino NINGA
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.923
Agradecimientos dados: 44
Agradecimientos: 23 en 20 posts
Registro en: Nov 2011
Mensaje: #6
RE: [DUDA] Sobre programacion en C
A ver si ahi funca


#include <iostream>
using namespace std;

int main(){

double resistencia;
double tension;
double corriente;
int x;
char salir = 'a';
while (salir != 'q')
{
cout<<"Que desea calcular? TENSION=1 CORRIENTE=2 RESISTENCIA=3\n"<<endl;
cin>> x;

if(x==1){
cout<<"Ingrese el valor de la CORRIENTE y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> corriente >> resistencia;
cout<< "El valor de la TENSION es de:" << corriente*resistencia <<"\n";}

if(x==2){
cout<<"Ingrese el valor de la TENSION y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> tension >> resistencia;
cout<<"El valor de la CORRIENTE es de:" << tension/resistencia<<"\n";}

if(x==3){
cout<<"Ingrese el valor de la TENSION y la CORRIENTE (separadas por un espacio)\n"<<endl;
cin>> tension >> corriente;
cout<<"El valor de la RESISTENCIA es de:" << tension/corriente<<"\n";}
cout<<endl<<"Desea Salir (Si presiona la < q > es que si quiere salir, sino presione otra tecla)"<<endl;
cin>>salir;
}
return 0;}



pensalo un poco, que rompiendote la cabeza contra el monitor es la unica forma en la que se aprende a programar.

pd: no tabule porque lo escribi sobre la marcha...

(19-11-2013 11:48).py escribió:  
(19-11-2013 11:46)sebasthian777 escribió:  
(19-11-2013 11:43).py escribió:  Terminemos Hurd.
Prefiero dejarle ese laburo a gente sin vida social y que no tenga sexo.
Cuando te casas? Asi voy armando el Gannt.
(Este mensaje fue modificado por última vez en: 21-10-2013 16:07 por sebasthian777.)
21-10-2013 16:05
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
EstebanT Sin conexión
Empleado del buffet
LA *!"·$ MADREEE!!
*

Ing. en Sistemas
-----

Mensajes: 21
Agradecimientos dados: 4
Agradecimientos: 0 en 0 posts
Registro en: Jul 2013
Mensaje: #7
RE: [DUDA] Sobre programacion en C
(21-10-2013 16:05)sebasthian777 escribió:  A ver si ahi funca
Spoiler: Mostrar


#include <iostream>
using namespace std;

int main(){

double resistencia;
double tension;
double corriente;
int x;
char salir = 'a';
while (salir != 'q')
{
cout<<"Que desea calcular? TENSION=1 CORRIENTE=2 RESISTENCIA=3\n"<<endl;
cin>> x;

if(x==1){
cout<<"Ingrese el valor de la CORRIENTE y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> corriente >> resistencia;
cout<< "El valor de la TENSION es de:" << corriente*resistencia <<"\n";}

if(x==2){
cout<<"Ingrese el valor de la TENSION y la RESISTENCIA (separadas por un espacio)\n"<<endl;
cin>> tension >> resistencia;
cout<<"El valor de la CORRIENTE es de:" << tension/resistencia<<"\n";}

if(x==3){
cout<<"Ingrese el valor de la TENSION y la CORRIENTE (separadas por un espacio)\n"<<endl;
cin>> tension >> corriente;
cout<<"El valor de la RESISTENCIA es de:" << tension/corriente<<"\n";}
cout<<endl<<"Desea Salir (Si presiona la < q > es que si quiere salir, sino presione otra tecla)"<<endl;
cin>>salir;
}
return 0;}



pensalo un poco, que rompiendote la cabeza contra el monitor es la unica forma en la que se aprende a programar.

pd: no tabule porque lo escribi sobre la marcha...

Ojo, yo no pretendia que me digan como mejorar el codigo, esto no es un trabajo ni nada parecido, solamente me mande conociendo pooc y queria que me recalquen los errores.
Y si, como todo en la vida la unica manera de aprender es mandarse :F
Ahora entendi mas o menos como se usa el while, gracias seba!

Ahora si, queda como queria y ahi encontre la manera de agregarle las notaciones cientificas y las potencias.
Dentro de la sentencia cin y delante del resultado se escribe SCIENTIFIC

Spoiler: Mostrar

#include <iostream>
#include <iomanip>
using namespace std;

int main(){
double resistencia;
double tension;
double corriente;
int x;
char salir = 'q';
while (salir != 'n')
{
cout<<"Que desea calcular? TENSION=1 CORRIENTE=2 RESISTENCIA=3
"<<endl;
cin>> x;
if(x==1){
cout<<"Ingrese el valor de la CORRIENTE y la RESISTENCIA (separadas por un espacio)
"<<endl;
cin>> corriente >> resistencia;
cout<< "El valor de la TENSION es de:" << scientific <<corriente*resistencia <<"
";}
if(x==2){
cout<<"Ingrese el valor de la TENSION y la RESISTENCIA (separadas por un espacio)
"<<endl;
cin>> tension >> resistencia;
cout<<"El valor de la CORRIENTE es de:" << scientific <<tension/resistencia<<"
";}
if(x==3){
cout<<"Ingrese el valor de la TENSION y la CORRIENTE (separadas por un espacio)
"<<endl;
cin>> tension >> corriente;
cout<<"El valor de la RESISTENCIA es de:" << scientific <<tension/corriente<<"
";}
cout<<endl<<"Desea calcular otro valor? SI=s NO=n
)"<<endl;
cin>>salir;
}
return 0;}



El programa es una estupidez, pero me siento realizado =)

Ah, y hay que agregar la libreria <iomanip> para manipular el cin.
Sigo aceptando sugerencias y consejos para futuro =P
Gracias chicos!
(Este mensaje fue modificado por última vez en: 21-10-2013 16:49 por EstebanT.)
21-10-2013 16:36
Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
sebasthian777 Sin conexión
Presidente del CEIT
mi propio camino NINGA
********

Ing. en Sistemas
Facultad Regional Buenos Aires

Mensajes: 1.923
Agradecimientos dados: 44
Agradecimientos: 23 en 20 posts
Registro en: Nov 2011
Mensaje: #8
RE: [DUDA] Sobre programacion en C
ah mira... te juro que no sabia lo de cientific... muchas gracias por el dato... despues lo probare.

En cuanto a lo anterior, no te lo dije para cagarte a pedo =P fue solo decirte que te vas a tener que dar contra el monitor xD...

Sigo insistiendo, podes usar por ejemplo el sprintf tambien... despues chusmealo... esta bueno formatear strings....

un ejemplo muy boludo seria...


#include <iostream>
#include <iomanip>
#include <stdio.h>
using namespace std;

int main()
{
char * buffer = new char[1024];
sprintf(buffer, "el string: %s - el entero: %d - el flotante: %f", "Soy String", 12, 12.4f);

cout<< buffer<<endl;
return 0;
}


Ejecta ese codigo directo desde el foro...

(19-11-2013 11:48).py escribió:  
(19-11-2013 11:46)sebasthian777 escribió:  
(19-11-2013 11:43).py escribió:  Terminemos Hurd.
Prefiero dejarle ese laburo a gente sin vida social y que no tenga sexo.
Cuando te casas? Asi voy armando el Gannt.
(Este mensaje fue modificado por última vez en: 22-10-2013 07:07 por sebasthian777.)
22-10-2013 07:05
Visita su sitio web Encuentra todos sus mensajes Agregar agradecimiento Cita este mensaje en tu respuesta
Buscar en el tema
Enviar respuesta 




Usuario(s) navegando en este tema: 1 invitado(s)



    This forum uses Lukasz Tkacz MyBB addons.