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

[SOLUCIONADO] Problemas con funciones y referencias

Estas en el tema de Problemas con funciones y referencias en el foro de C/C++ en Foros del Web. Buenas a todos, esta es mi primera pregunta y es algo urgente. En la U la profe nos puso el siguiente ejercicio: La entidad bancaria ...
  #1 (permalink)  
Antiguo 10/12/2012, 14:37
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Problemas con funciones y referencias

Buenas a todos, esta es mi primera pregunta y es algo urgente.
En la U la profe nos puso el siguiente ejercicio:

La entidad bancaria “BANCAANDINO”, es una organización fundada en 1962 en Medellín por la familia Jaramillo, quienes desde su inicio visualizaron el mercado latinoamericano como público objetivo para su negocio, lo cual alcanzaron en la decana de los 90’ con el posicionamiento en países como Brasil, Panamá y Colombia. La entidad cuenta con un sistema encargado de administrar el portafolio de los clientes (servicios o productos financieros con los que cuentan un cliente), siendo la cuenta de ahorros el producto más frecuente. Entre las operaciones que se pueden realizar con una cuenta de ahorros están: Realizar un movimiento para consignar o retirar dinero de la cuenta. La información que el banco tiene de cada cliente es cédula, sucursal de origen de la cuenta, saldo actual y los últimos 30 movimientos de la cuenta. De cada movimiento se registra el tipo de movimiento y el valor.

Preguntas a resolver cada pregunta tiene un valor del 25%:

1. Definir la estructura Cliente que permita almacenar información de un usuario de la entidad bancaria.

2. Hacer la función verificarSaldo, la cual recibe un arreglo de estructuras tipo Cliente (definida en el punto 1) de tamaño 100, un alfanumérico A y un entero Z. La función busca en el arreglo la cuenta del usuario A. Si Z es mayor que el saldo actual del usuario A la función retorna verdadero, de lo contrario retorna falso.

3. Construya la función registrarMovimiento, la cual recibe un arreglo de estructuras tipo Cliente (definida en el punto 1) de tamaño 100, un alfanumérico X, un entero Y, además un entero Z. La función busca en el arreglo el cliente con cedula X, realiza el movimiento Y, del valor Z. Y solo puede tomar los valores 1 y 2: 1. Consignación y 2. Retiro. La función no retorna nada y recibe por referencia el arreglo de estructuras tipo Cliente. Tenga en cuenta que Siempre que se realiza un retiro debe existir saldo disponible en la cuenta y que cubra el movimiento.

Tenga presente: En este punto es obligatorio usar la función ultimoMovimiento y verificarSaldo. La función ultimoMovimiento, recibe un arreglo de estructuras tipo Cliente (definida en el punto 1) de tamaño 100 y un alfanumérico X que corresponde a la cédula del usuario. La función retorna el número del último movimiento realizado en la cuenta X. (No tiene que implementar solo usar).

4. Realice un algoritmo principal que le permita ingresar las transacciones de los diferentes clientes de la entidad bancaria. En cada transacción se suministra la siguiente información cedula del cliente, tipo de movimiento a realizar (1. Consignación y 2. Retiro) y el valor. Suponga que ya han sido ingresados en el arreglo de estructuras la información correspondiente a la cedula, sucursal y saldo actual. (valor 25%).


Mi idea no es que me lo hagan ni mucho menos sino que me colaboren en la correccion de lo que llevo del algoritmo y me puedan explicar lo de valores por referencia, bueno aqui les dejo lo que tengo del algoritmo:

#include <iostream>

using namespace std;
struct movimiento{
int valor;
int ultimosmovimientos;
};
struct Cliente{
string cedula;
string sucursal;
int saldo;
movimiento arreglo1[5];
};
int verificarSaldo(Cliente arrCliente[2], string a, int z){
int funcion;
for(int i = 0; i<0; i++){
if(arrCliente[i].cedula == a){
if(arrCliente[i].saldo > z){
funcion = -1;
}else{
funcion = 0;
}
i = 100;
}
}
return funcion;
}
void registrarMovimiento(Cliente arrCliente[2], string x, int y, int z){
int d;
int e;
d = verificarSaldo(arrCliente, x, z);
//e = ultimoMovimiento(arrCliente, x);

for(int j = 0; j < 2; j++){
if(arrCliente[j].cedula == x){
if(y == 1){
arrCliente[j].saldo = arrCliente[j]+z;
}else if(y == 2){
if(d == -1){
arrCliente[j].saldo = arrCliente[j].saldo - z;
}else{
cout<<"No tiene saldo suficiente";
}
}
}
}

return;
}
void treinta(Cliente arrCliente[2], string p, int q, int r){

for(int k = 0; k < 2; k++){
if(arrCliente[k].cedula == p){
if(q == 1){
arrCliente[k].arreglo1[0].ultimosmovimientos = 1;
arrCliente[k].arreglo1[0].valor = r;
}
}
}

}
int main()
{
int usuario;
Cliente arrCliente[2];
string ced;
int movi;
int sal;

for(usuario = 0; usuario < 2; usuario++){
cout<<"Ingrese el numero de cedula";
cin>>arrCliente[usuario].cedula;
cout<<"Ingrese el nombre del sucursal";
cin>>arrCliente[usuario].sucursal;
cout<<"Ingrese el saldo";
cin>>arrCliente[usuario].saldo;
}
cout<<"Ingrese su cedula";
cin>>ced;
cout<<"Selecciones movimiento";
cin>>movi;
cout<<"Ingrese el valor";
cin>>sal;

registrarMovimiento(arrCliente,ced,movi,sal);

return 0;
}
  #2 (permalink)  
Antiguo 12/12/2012, 01:19
 
Fecha de Ingreso: julio-2012
Mensajes: 133
Antigüedad: 11 años, 9 meses
Puntos: 22
Respuesta: Problemas con funciones y referencias

Cita:
...y me puedan explicar lo de valores por referencia,...
Hola sduvanandrey.

Cuando un argumento es pasado por valor a una función, esta recibe una copia de los valores de los parámetros. Cualquier modificación que se haga a alguno de ellos dentro de la función, no afecta el valor de la variable enviada como argumento.

Cuando un argumento es pasado por referencia se está enviando un apuntador a la variable enviada (la dirección de ella). Cualquier modificación que se haga dentro de la función, afecta el valor de la variable enviada como argumento. Obviamente no se puede enviar una constante como argumento de un parámetro por referencia.

Un ejemplo:
Código C++:
Ver original
  1. #include<iostream>
  2. using namespace std;
  3.  
  4. /* Por valor */
  5. void fnValor(int arg) {
  6.   arg++;
  7. }
  8. /* Por referencia */
  9. void fnReferencia(int &arg){
  10.   arg++;
  11. }
  12.  
  13. int main()
  14. {
  15.   int valor = 5;
  16.   fnValor(valor);
  17.   cout << valor << endl;  // 5
  18.   fnReferencia(valor);
  19.   cout << valor;          // 6  
  20.   cin.get();
  21.   return 0;
  22. }

Saludos
  #3 (permalink)  
Antiguo 06/02/2013, 20:10
 
Fecha de Ingreso: diciembre-2012
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Problemas con funciones y referencias

Amigo gracias por tu ayuda ya entendi.

Etiquetas: estructura, funcion, funciones, int, referencias, string
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




La zona horaria es GMT -6. Ahora son las 18:15.