Dev - C++ - ayuda

 
Vista:

ayuda

Publicado por AdolfoD (2 intervenciones) el 23/03/2007 19:59:05
amigos necesito colaboracion. estoy aprendiendo dev c. estoy practicando un programa muy sencillo de una calculadora para hacer funciones y llamarlar. esta incompleto solo sirve la suma porque es la que esta terminada. nesecito que me ayuden para saber como valido que el usuario meta valores entre 1 y 4 que son las opciones y que tampoco pueda meter caracteres en la opc. unica y exclusivamente 1 o 2 o 3 o 4 mas nada. tambien si me pueden pasar un link que hable sobre pases por valor y por referencia ya que eso me confunde muchisimo... muchas gracias.

#include <conio.h>
#include <stdio.h>

//PROTOTIPOS

int suma(int x, int y);
int resta(int x, int y);
int multiplicacion(int x, int y);
int divicion(int x, int y);

int main(){
int x,y=0;
int opc=0;

printf("INTRODUZCA EL PRIMER VALOR\n");
scanf("%d",&x);
printf("INTRODUZCA EL SEGUNDO VALOR\n");
scanf("%d",&y);
printf("SELECCIONE LA OPERACION A REALIZAR:\n");
//while (opc=1,2,3,4){
printf(" 1 SUMAR\n");
printf(" 2 RESTAR\n");
printf(" 3 MULTIPLICACION\n");
printf(" 4 DIVICION\n");
scanf("%d",&opc);
//}
switch (opc)
{
case 1: printf("EL RESULTADO DE LA SUMA ES:%d",suma(x,y));
break;
case 2: printf
break;
case 3:
break;
case 4:
break;
}
getch ();
return 0;
}

int suma(int x,int y){
int suma;
suma=x+y;
return (suma);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda

Publicado por Leandro (1 intervención) el 27/03/2007 18:33:36
Lo que podrías hacer para validar que el usuario ingrese numeros entre 1 y 4 es hacer un bucle que mientras que el usuario ingrese un numero que no este en dicho rango, despligue el mensaje de error, de de fuera de rango,

scanf("%d",&opc);
while(opc<1)&&(opc>4)
{
printf(" error, ud. debio ingresar un numero entre 1 y 4\n");
printf(" intente nuevamete\n");
scanf("%d",&opc);
}
switch (opc)
{
case 1: printf("EL RESULTADO DE LA SUMA ES:%d",suma(x,y));
break;
case 2: ...
break;
case 3: ...
break;
case 4: ...
break;
}
.....

recuerda que para mejorar la claridad del código, siempre conviene definir las funciones antes de que las vayas a usar, que mas prolijo.
En cuanto a referencia y valor:

PASAJE POR REFERENCIA:
si tengo un procediemiento y paso un parametro por referencia, todas las modificaciones que haga a ese parametro en el procedimiento, permanecerán una vez que salga del procedimiento, por ej, si paso un integer como referencia y lo modifico poniendole cero dentro del procedimiento, entonces cuando salga del procedimiento dicho integer con que llame al procedimiento va a valer cero.

Pasaje por valor:
si tengo un procedimiento y paso un parametro por valor, lo que se hace es una copia del parametro con el que llamé, entonces como es una copia todos los cambios que le haga dentro del procedimiento una vez que salga no afectarán al parametro real , porque lo que modificaria seria una copia del parametro y no el parámentro en si
por ej, si paso un integer por valor y lo modifico poniendole cero dentro del procedimiento, entonces cuando salga del procedimiento dicho integer con que llame al procedimiento no va a valer cero, sino que quedará con el valor que tenia antes de llamar al procedimiento.

Espero te sirva,
Leandro.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda

Publicado por adolfod (2 intervenciones) el 28/03/2007 05:02:39
gracias pana si me sirvio lo que escribiste solo debo practicarlo.. tendreias por ahi algun ejenplo sencillo de gotoxy y como puedo hacer un menu donde lo mueva con las flechas del teclado... digamos que quiero usarlo en el ejercicio de la calculadora que ya tengo que por cierto con tu ayuda lo arregle. gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:MEJOR RESPUESTA

Publicado por Fabian (1 intervención) el 02/12/2007 05:47:41
Para validar el ingreso de 1 y 4 en c es asi :

do
{
clrscr();
gotoxy (20,4);printf ("INGRESE NUMERO");
gotoxy(20,5);scanf ("%d",&numero);
if ( numero <1 || numero > 4)
{
clrscr();
gotoxy(20,4);printf ("NUMERO NO PERMITIDO !!!");
getch();
}
}while (numero < 1 || numero > 4 );
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar