|
Mostrar Mensajes
|
Páginas: [1]
|
2
|
Programación / Programación C/C++ / Re: ¡Ayuda sobre como crear una serie de servicios en un área gráfica determinada!
|
en: 29 Enero 2013, 18:58 pm
|
Ya se que debo de hacerlo por pasos, pero mi problema es que no se como hacer esa matriz para insentarle todos los datos y demás. He intentado hacer el 2 a. y b. pero no funciona bien, ¿alguien puede decirme que hago mal?
#include <iostream> using namespace std; void leerTipoServicio(int a[][100]); void TTipoServicio(int a[][100]); void leerServicio(int a[][100], int a[][100], int a, int a[][100]); void TCoordenadas(int a[][100]); void Tidentificador(int a[][100], int a[][100]); int n;
int main() { int a[100][100]; leerTipoServicio(a); leerServicio(a,a,a,a); return 0; } void leerTipoServicio(int a[][100]){ do{ cout<< "Introduzca un valor entero entre 0 y 3: \n"<< endl; cin>>n; }while(n<0 or n>3); a[n][100]; TTipoServicio(a); } void TTipoServicio(int a[][100]){ if (n=0){ cout<< "Hotel"<< endl; } if (n=1){ cout<< "Gasolinera"<< endl; } if (n=2){ cout<< "Hospital"<< endl; } if (n=3){ cout<< "Colegio"<< endl; } } void leerServicio(int a[][100], int a[][100], int a, int a[][100]){ TTipoServicio(a); TCoordenadas(a); cout<< "Hotel Malaga Plaza"<< endl; Tidentificador(a, a); } void TCoordenadas(int a[][100]){ for(int i=0; i<100; i++) for(int j=0; j<100; j++) a[j]=i*j; while{ cout<< "Ingrese una coordenada -1,-1 para salir\n"; cout<< "Introduce las coordenadas: "<< i << j << endl; if(i<=-1 || j<=-1 || i>=100 || j>=100){ cout<< "Coordenada fuera de los limites\n"; } else{ cout<< "El valor en la coordenada es: \n"<< a[j]<< endl; } } } void Tidentificador(int a[][100], int a[][100]){ for (int i=0; i<100; i++) cout<< "La fila es: "<< i << endl; for(int j=0; j<100; j++) cout<< " La columna es: "<< j << endl; }
|
|
|
3
|
Programación / Programación C/C++ / ¡Ayuda sobre como crear una serie de servicios en un área gráfica determinada!
|
en: 29 Enero 2013, 12:52 pm
|
Se que es mucho, pero no se por donde empezar, y me urge saber hacerlo, por favor les ruego que me ayuden, gracias.
ENUNCIADO: En esta práctica se deberá desarrollar una aplicación para almacenar información sobre distintos servicios disponibles en un área geográfica determinada. Este área se representará por un mapa (del tipo TMapa) de tamaño NxN ocupando la zona superior izquierda de una rejilla (del tipo TMatrizMapa) de 100x100 celdas. Los objetos del tipo TMapa deberán guardar la rejilla y el número N (num_celdas) que determina la zona ocupada por el mapa. Cada servicio estará situado en una celda del mapa y su ubicación vendrá dada por sus coordenadas (posición de la celda) en el mapa que se expresarán como dos números enteros correspondientes a la fila y la columna (tipo TCoordenadas). En cada celda del mapa se podrá guardar un número variable de servicios (como máximo 10), se utilizará para ello una estructura del tipo TListaServicios. Cada servicio (del tipo TServicio) se identificará por el tipo de servicio, su ubicación en el mapa (tipo TCoordenadas), su nombre y su identificador (ambos cadenas de caracteres). El tipo de servicio vendrá dado mediante un enumerado (del tipo TTipoServicio), con los valores HOTEL, GASOLINERA, HOSPITAL y COLEGIO. Teniendo en cuenta la descripción anterior del problema, así como la estructura de datos de la figura, se pide: 1. (1 punto) Definir todos los tipos de datos necesarios para poder resolver el problema. 2. Definir los siguientes subalgoritmos (funciones) para el manejo de un servicio: a. leerTipoServicio: Lee el tipo de servicio como un número natural hasta que el usuario introduzca un valor correcto, es decir, un valor que esté entre 0 y 3, y genera el correspondiente valor del tipo enumerado TTipoServicio. b. leerServicio: Lee los datos de un servicio (su tipo, sus coordenadas, su nombre y su identificador). Este subalgoritmo devuelve el servicio leído (del tipo TServicio) como un parámetro de salida. Habrá que asegurarse de que el tipo de servicio introducido por el usuario es correcto. Si no lo es se le volverá a preguntar hasta que introduzca un tipo de servicio correcto. c. mostrarServicio: Muestra por pantalla todos los datos de un servicio (del tipo TServicio) pasado como parámetro. Para el tipo de servicio se mostrará una cadena de caracteres con el nombre del tipo de servicio. Toda la información se mostrará en una sola línea en el formato del ejemplo siguiente: HOTEL, posicion=(0,3), identificador=12320, nombre=Hotel Málaga Plaza 3. Definir los siguientes subalgoritmos (funciones) para el manejo de la lista de servicios localizada en una celda determinada de un mapa: a. Definir la igualdad de servicios (función iguales) teniendo en cuenta que dos servicios se consideran iguales cuando son del mismo tipo y tienen el mismo identificador. No se tiene en cuenta ni el nombre ni la ubicación de cada uno. b. existeServicio: Dada una lista de servicios (del tipo TListaServicios) y un servicio concreto (del tipo TServicio) devuelve true o false dependiendo de si existe o no ese servicio (u otro igual) en la lista de servicios. c. insertarServicioEnLista: Dada una lista (del tipo TListaServicios) y un servicio concreto (del tipo TServicio) inserta el servicio dado en la lista si la lista tiene menos de 10 servicios y no existe dicho servicio en la lista; en tal caso devuelve true en un tercer parámetro OK de tipo bool. De lo contrario, no inserta y devuelve false en el parámetro OK. d. insertarServicio: Dado un mapa (del tipo TMapa) y un servicio (del tipo TServicio) inserta el servicio en la lista de la celda correpondiente a las coordenadas del servicio, respetando las condiciones del apartado anterior y siempre que las coordenadas estén dentro del mapa. En caso de no poder insertarse el servicio por alguno de los motivos anteriores, se indicará devolviendo false en un parámetro OK de tipo bool. Si la inserción tiene éxito en OK se devuelve true. e. mostrarServicios: Dado un mapa (tipo TMapa) y el tipo de servicio en el que estamos interesados, este procedimiento muestra todos los servicios de dicho tipo que haya en el mapa. 4. Definir los siguientes subalgoritmos (funciones) para el manejo del mapa: a. leerMapa: Lee los datos de un mapa (tipo TMapa) desde la consola. Debe pedir la dimensión N del mismo (será un mapa NxN) y el número de servicios con el que se va a inicializar el mapa. Después se solicitará al usuario que introduzca, uno a uno, tantos servicios como haya indicado. Si por alguno de los motivos descritos en el apartado d un servicio no puede ser insertado en el mapa, se mostrará el error en la pantalla y se pedirá que se vuelva a introducir. b. servicioMasCercano: Dado un mapa (del tipo TMapa), un tipo de servicio (del tipo TTipoServicio) y una determinada posición (del tipo TCoordenadas) devuelve el servicio (del tipo TServicio) del tipo solicitado que se encuentre más cercano a la posición introducida. Si se encuentra, se devuelve además true en un parámetro OK de tipo bool. Si no se encuentra ningún servicio de ese tipo en el mapa se devolverá false en OK. Para localizar el servicio más cercano se buscará primero en la celda del mapa correspondiente a la posición proporcionada (celda a distancia 0). Si en esa celda no hay ningún servicio del tipo solicitado se buscará en las celdas adyacentes (celdas a distancia 1) y así se irá desplazando a distancia 2, 3, etc… hasta encontrar el servicio o hasta terminar de recorrer todo el mapa sin encontrarlo. Si se encuentra una celda con más de un servicio del tipo buscado, se devolverá el primero que se aparezca.
|
|
|
5
|
Programación / Programación C/C++ / Re: duda de como usar el incremento en una operación
|
en: 27 Enero 2013, 22:54 pm
|
Sigo sin entenderlo, porque en el 2º paso del cout, no entiendo por qué dices que sigue siendo lo mismo, cuando antes de ello, ya se ha dicho que ++m y --n, quedándome lo que se supone que tendría que salirme, m=46 y n=74. En el paso 3, según el libro, y es aquí donde no lo veo nada claro, antes de que salga en pantalla el reultado, dice que m++ y n--, pero que según mi guía, me tendría que salir que m=46 y n=73.
Gracias por contestar tan rápido, lo de las operaciones más complejas si lo entendí^^
|
|
|
6
|
Programación / Programación C/C++ / duda de como usar el incremento en una operación
|
en: 27 Enero 2013, 22:18 pm
|
Hola, verás, tengo una pequeña duda sobre la diferencia que puede tener el poner ++i o i++ en una operación, pues acabo de observar según un libro que no es lo mismo. Dejo aquí el ejemplo que plantea, para que lo podáis visualizar:
#include <iostream> main(){ int m = 45, n = 75; cout<< "m = " << m<< " n = "<< n << endl; // Aquí se entiende que m=45 y n=75 ++m; --n; cout<< "m = " << m <<", n = " << n << endl; // Aquí también entiendo que m se ha incrementado enj 1 su valor y n ha // disminuido su valor, tal y como indica el libro m++; n--; cout<< " m = "<< m <<", n = " << n << endl; // Y es aquí cuando nada me cuadra, porque según el libro m=46 y n=73, // ¿Alguien me lo podría explicar? Gracias por todo return 0; }
|
|
|
|
|
|
|