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

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda por favor con un ejercicio, dev c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda por favor con un ejercicio, dev c++  (Leído 5,025 veces)
raenriquez4

Desconectado Desconectado

Mensajes: 3


Ver Perfil
ayuda por favor con un ejercicio, dev c++
« en: 17 Agosto 2016, 04:46 am »

necesito realizar un ejercicio que dice lo siguiente en el tema de arrays:
 
Una aerolínea necesita un programa que asigne asientos en cada vuelo de avión de la misma (capacidad 20 asientos) el programa deberá demostrar el siguiente menú:
por favor ingrese 1 para fumadores
por favor ingrese 2 para no fumadores
si la persona escribe 1 deberá asignarse un asiento en la sección de fumar (asientos 1 al 10)
 si la persona escribe 2 de igual forma (asientos 11 al 20) a continuación se deberá imprimir un pase de abordaje indicando el numero de asiento de la persona si esta en la sección o no del avión
utilizar un arreglo unidimensional para representar el diagrama de asientos de avión, previamente inicializar todos lo elementos del arreglo a 0 para indicar que todos están vacíos, conforme se asigne cada asiento definir los elementos correspondiente del arreglo a 1 para indicar que dicho asiento no esta disponible, el programa no deberá asignar un asiento ocupado cuando se llene la sección de fumar, se deberá solicitar a la persona si le parece aceptable ser colocada en la de no fumar, (o viceversa), si dice que si entonces efectuar la asignación apropiada, si dice que no, imprimir el mensaje, el proximo vuelo ale en 3 horas,
usar como libreria principal stdio.h

por favor necesito ayuda en este ejercicio, no se muy bien como hacerlo y necesito ideas para realizarlo correctamente, muchas gracias por su atención


« Última modificación: 17 Agosto 2016, 05:05 am por raenriquez4 » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #1 en: 17 Agosto 2016, 17:07 pm »

Ya has usado arreglos?


En línea

raenriquez4

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #2 en: 17 Agosto 2016, 17:39 pm »

Ya has usado arreglos?

los he usado, pero no se por donde empezar el ejercicio
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #3 en: 17 Agosto 2016, 18:01 pm »

Un ejemplo, la funcion pase regresa -1 cuando ya no hay asientos, ahi tendrias que evaluar si quiere cambiar de sección o esperar otro vuelo

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. #define FUMAR 1
  5. #define NOFUMAR 0
  6.  
  7. unsigned char asientos[20];
  8.  
  9. int pase(int fumar);
  10.  
  11. int main() {
  12. int asiento;
  13. memset(asientos,0,20);
  14. asiento = pase(FUMAR);
  15. printf("Asiento asignado %i\n",asiento);
  16. asiento = pase(FUMAR);
  17. printf("Asiento asignado %i\n",asiento);
  18. asiento = pase(FUMAR);
  19. printf("Asiento asignado %i\n",asiento);
  20.  
  21. asiento = pase(NOFUMAR);
  22. printf("Asiento asignado %i\n",asiento);
  23. asiento = pase(NOFUMAR);
  24. printf("Asiento asignado %i\n",asiento);
  25.  
  26. asiento = pase(NOFUMAR);
  27. printf("Asiento asignado %i\n",asiento);
  28.  
  29.  
  30.  
  31. }
  32.  
  33. int pase(int fumar) { //1 para fumar
  34. int i,asiento = -1;
  35. if(fumar) {
  36. i = 10;
  37. while(i < 20) {
  38. if(asientos[i] == 0) {
  39. asiento = i;
  40. asientos[i] =1;
  41. break;
  42. }
  43. i++;
  44. }
  45. }
  46. else {
  47. i = 0;
  48. while(i < 10) {
  49. if(asientos[i] == 0) {
  50. asiento = i;
  51. asientos[i] =1;
  52. break;
  53. }
  54. i++;
  55. }
  56. }
  57. return asiento;
  58. }
En línea

raenriquez4

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #4 en: 17 Agosto 2016, 18:28 pm »

Un ejemplo, la funcion pase regresa -1 cuando ya no hay asientos, ahi tendrias que evaluar si quiere cambiar de sección o esperar otro vuelo

Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. #define FUMAR 1
  5. #define NOFUMAR 0
  6.  
  7. unsigned char asientos[20];
  8.  
  9. int pase(int fumar);
  10.  
  11. int main() {
  12. int asiento;
  13. memset(asientos,0,20);
  14. asiento = pase(FUMAR);
  15. printf("Asiento asignado %i\n",asiento);
  16. asiento = pase(FUMAR);
  17. printf("Asiento asignado %i\n",asiento);
  18. asiento = pase(FUMAR);
  19. printf("Asiento asignado %i\n",asiento);
  20.  
  21. asiento = pase(NOFUMAR);
  22. printf("Asiento asignado %i\n",asiento);
  23. asiento = pase(NOFUMAR);
  24. printf("Asiento asignado %i\n",asiento);
  25.  
  26. asiento = pase(NOFUMAR);
  27. printf("Asiento asignado %i\n",asiento);
  28.  
  29.  
  30.  
  31. }
  32.  
  33. int pase(int fumar) { //1 para fumar
  34. int i,asiento = -1;
  35. if(fumar) {
  36. i = 10;
  37. while(i < 20) {
  38. if(asientos[i] == 0) {
  39. asiento = i;
  40. asientos[i] =1;
  41. break;
  42. }
  43. i++;
  44. }
  45. }
  46. else {
  47. i = 0;
  48. while(i < 10) {
  49. if(asientos[i] == 0) {
  50. asiento = i;
  51. asientos[i] =1;
  52. break;
  53. }
  54. i++;
  55. }
  56. }
  57. return asiento;
  58. }

muchisimas gracias por ayudarme en esto, me podrias explicar que hace memset?
En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #5 en: 17 Agosto 2016, 18:33 pm »

Hola!

Memset es una funcion que "setea" o establece la memoria a X valor asi cada asiento se inicializa en 0

se podria omitir y dejarlo como:

Código
  1. unsigned char asientos[20] = {0};

o en su defecto crear un ciclo for o while que recorra todo el arreglo y lo haga 0, esto para que los asientos este "libres"

Saludos!
En línea

AndresEnriquezV

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #6 en: 22 Agosto 2016, 05:33 am »

Hola!

Memset es una funcion que "setea" o establece la memoria a X valor asi cada asiento se inicializa en 0

se podria omitir y dejarlo como:

Código
  1. unsigned char asientos[20] = {0};

o en su defecto crear un ciclo for o while que recorra todo el arreglo y lo haga 0, esto para que los asientos este "libres"

Saludos!
muchisimas gracias amigo por la ayuda
En línea

MessageBoxA

Desconectado Desconectado

Mensajes: 229


ayudame a ayudarte


Ver Perfil WWW
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #7 en: 22 Agosto 2016, 05:48 am »

Código
  1. unsigned char asientos[20] = {0};

no deberia ser realmente

Código
  1. unsigned char asientos[19] = {0};
???

recordemos que van de 0 a 19 = 20 posiciones
En línea

SI LA MATRIX FUERA PERFECTA.... ESTARÍA ESCRITA EN C++
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: ayuda por favor con un ejercicio, dev c++
« Respuesta #8 en: 22 Agosto 2016, 06:20 am »

Se deja en 20 para que solo puedas escribir en las posiciones 0 a la 19 como dices. ya que si lo dejas en 19 solo podras escribir de la position 0 a la 18 sin errores.

Si si es posible declarar un arreglo de 20 y seguir escribiendo en las posiciones 21,22, 23, 1000 etc.. nada te lo impide recordar que las variables estan continuas en la memoria y estarias sobreescribiendo valores en otras variables.

Veamos el siguien codigo:

Código
  1. int A;
  2. char hola[3];
  3. A = 0x41414141;
  4. hola[0] = 'H';
  5. hola[1] = 'o';
  6. hola[2] = 'l';
  7. hola[3] = 'a';
  8. printf("%s\n",hola);
  9.  

Si bien la salida puede variar de un sistema a otro en mi sistema imprime:

Código:
HolaAAAA

Y por eso es que aunque si sea sufiente declarar el arreglo con 3 para la palabra en cuestion es mejor dejar la declaración en Numeros "Humanos".

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con ejercicio! POR FAVOR!
Programación C/C++
Trompasl 3 2,428 Último mensaje 8 Mayo 2016, 23:34 pm
por MAFUS
Ejercicio de C, Ayuda por favor!
Programación C/C++
Geg1 7 3,117 Último mensaje 6 Noviembre 2016, 20:58 pm
por engel lex
Ayuda por favor ejercicio reloj do/while C « 1 2 »
Programación C/C++
juanpalomo098 13 9,773 Último mensaje 22 Noviembre 2016, 23:34 pm
por juanpalomo098
Por favor ayuda en un ejercicio en java
Ejercicios
alvaro09939 0 2,399 Último mensaje 17 Septiembre 2018, 13:09 pm
por alvaro09939
Ejercicio de diagrama ER ayuda por favor
Bases de Datos
Gbriel 1 1,709 Último mensaje 26 Octubre 2018, 15:20 pm
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines