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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Matriz
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Matriz  (Leído 3,908 veces)
el4celeste

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Matriz
« en: 18 Julio 2011, 01:38 am »

Buenas noches...
Bueno tengo que hacer un programa que me permita introducir 4 nombres de alumnos con 6 notas.
Para posteriormente introducir su nombre y que me salgan sus notas...
Ahora se me habia ocurrido hacer una matriz peroo... no la podria hacer poorque son distintos tipos de datos nombre(char) y la nota(int).
Me podrian arrimar alguna sugerencia?¿
Saludos


« Última modificación: 18 Julio 2011, 19:14 pm por el4celeste » En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Matriz
« Respuesta #1 en: 18 Julio 2011, 02:10 am »

Lo primero que debes indicar es el lenguaje de programacion que estas utilizando, C o C++.

En el caso de C ...

Debes declarar dos arrays. El primero para almacenar los nombres y el segundo para las calificaciones. Ambos son "arrays de arrays" ya que cada uno de sus elementos es a su vez un array, eso porque en el primer caso se deben almacenar cada uno de los caracteres del nombre y el segundo para las seis calificaciones por alumno.

Un programa base seria asi:
Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define NUM_ALUMNOS        4
  5. #define NUM_NOTAS          6
  6. #define LONG_MAX_NOMBRE  256
  7.  
  8. int main(void)
  9. {
  10.   char nombre[NUM_ALUMNOS][LONG_MAX_NOMBRE];
  11.   double calif[NUM_ALUMNOS][NUM_NOTAS];
  12.  
  13.   /* ... */
  14.  
  15.   return EXIT_SUCCESS;
  16. }

El resto, leer los nombres y calificaciones, te toca a ti (por favor lee las reglas de los foros).

Un saludo


En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
el4celeste

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Matriz
« Respuesta #2 en: 18 Julio 2011, 02:20 am »

Estoy usando el c++ develop pero muy buena sugerencia voy a tratar de traducirlo un poco a el c++(ya que son casi lo mismo),
Muchas gracias!!
Saludos
En línea

Valkyr


Desconectado Desconectado

Mensajes: 646


Divide y vencerás


Ver Perfil
Re: Matriz
« Respuesta #3 en: 18 Julio 2011, 02:27 am »

Sí estás usando C++ puedes hacer uso de la clase Map de la STL, aquí la referencia:

http://www.cplusplus.com/reference/stl/map/

Yo crearía un mapa de claves string y valores int. Almacenaría los datos y cuando quieras buscar un nombre usas la función find().

También puedes hacerlo con una matriz que sea del tipo string matriz[MAX_ALUMNOS][2]. En la primera fila guardas los nombres y en la segunda guardas las calificaciones. Lo único a tener en cuenta es que tendrías que guardar las calificaciones como una cadena, es decir, si quieres guardar la nota 8, tendrías que almacenarlo así "8", como una cadena.

Saludos.
En línea

el4celeste

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Matriz
« Respuesta #4 en: 18 Julio 2011, 02:32 am »

Ok bueno la receta ya esta sobre la mesa  :P pues ahora tengo que comenzar a cocinar  ;D
Gracias amigo un Saludo!!!
P.D:Dejo el post sin resover por si alguien aporta algo mas pero creo que con esto ya estoy hecho  :rolleyes:
En línea

PiroskY

Desconectado Desconectado

Mensajes: 76


пирожки


Ver Perfil
Re: Matriz
« Respuesta #5 en: 18 Julio 2011, 05:15 am »

no olvides que tanto un char como un int son numeros(ascii)
asi que en cualquiera de los dos podes guardar cualquiera de los 2 tipos, la diferencia es la cantidad de cada uno que vas a poder guardar
En línea

el4celeste

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Matriz
« Respuesta #6 en: 18 Julio 2011, 19:13 pm »

Bueno he econtrado la solucion Con la ayuda de un gran user de portalhacker.net y leyendo a rajatablas.
Consegui lo siguiente:
Código
  1. #include <iostream>
  2. #include <cstring>
  3. #define NOMBRE   80
  4. #define APT   10
  5. #define MATE 10
  6. #define ELECTRONICA 10
  7. #define INGLES 10
  8. #define HISTORIA 10
  9. #define PROGRAMACION 10
  10. #define ALUMNOS   3
  11. using namespace std;
  12.  
  13. struct Alumnos
  14. {
  15.    char nombre[NOMBRE];
  16.    char nota1[APT];
  17.    char nota2[MATE];
  18.    char nota3[ELECTRONICA];
  19.    char nota4[INGLES];
  20.    char nota5[HISTORIA];
  21.    char nota6[PROGRAMACION];
  22.  
  23. } Boletin[ALUMNOS];
  24.  
  25. void LlenoBoletin(void);
  26. void menu(void);
  27. void buscador(bool opc);
  28.  
  29. int main()
  30. {
  31.    LlenoBoletin();
  32.    menu();
  33.    return 0;
  34. }
  35.  
  36. void LlenoBoletin(void)
  37. {
  38.    for(int a=0; a<=ALUMNOS; ++a)
  39.    {
  40.        cout << "Ingrese el apellido del alumno: ";
  41.        gets(Boletin[a].nombre);
  42.        cout << "Ingrese la calificacion de APT: ";
  43.        gets(Boletin[a].nota1);
  44.        cout << "Ingrese la calificacion de matematica: ";
  45.        gets(Boletin[a].nota2);
  46.        cout << "Ingrese la calificacion de Electronica: ";
  47.        gets(Boletin[a].nota3);
  48.        cout << "Ingrese la calificacion de Ingles: ";
  49.        gets(Boletin[a].nota4);
  50.        cout << "Ingrese la calificacion de Historia: ";
  51.        gets(Boletin[a].nota5);
  52.        cout << "Ingrese la calificacion de Programacion: ";
  53.        gets(Boletin[a].nota6);
  54.  
  55.    }
  56. }
  57.  
  58. void menu(void)
  59. {
  60.    int a;
  61.    cout << "Bienvenido a la agenda." << endl;
  62.    cout<<"1-Buscar por apellido"<<endl;
  63.    cout<<"2-Salir"<<endl;
  64.    cin >> a;
  65.    if(a==1) buscador(true);
  66.  
  67. }
  68.  
  69. void buscador(bool opc)
  70. {
  71.  
  72.    char busqueda[NOMBRE];
  73.    int b=0;
  74.    cout<<"Ingrese el apellido del alumno"<<endl;
  75.    gets(busqueda);
  76.    gets(busqueda);
  77.    cout << endl;
  78.    if(opc)
  79.    {
  80.        for(int a=0; a<=ALUMNOS; ++a)
  81.        {
  82.            if(strcmp(busqueda, Boletin[a].nombre)==0)
  83.            {
  84.                cout << "En APT  " << Boletin[a].nombre << " tiene "
  85.                     << Boletin[a].nota1 << endl;
  86.                     cout << "En Matematica  " << Boletin[a].nombre << " tiene "
  87.                     << Boletin[a].nota2 << endl;
  88.                     cout << "En Electronica  " << Boletin[a].nombre << " tiene "
  89.                     << Boletin[a].nota3 << endl;
  90.                     cout << "En Ingles  " << Boletin[a].nombre << " tiene "
  91.                     << Boletin[a].nota4 << endl;
  92.                     cout << "En Historia  " << Boletin[a].nombre << " tiene "
  93.                     << Boletin[a].nota5 << endl;
  94.                     cout << "En Programacion  " << Boletin[a].nombre << " tiene "
  95.                     << Boletin[a].nota6 << endl;
  96.                ++b;
  97.            }
  98.  
  99.        }
  100.        if(b==0) cout << "No se encontro el alumno " << busqueda << " en la agenda de boletines";
  101.    }
  102.    menu();
  103. }
  104.  
Bueno esta algo medio sucio porque recien termine la parte logica...  ;-)
Obviamente tengo que ponerle un poco de decoracion y orden a ese progrma pero basicamente es eso.
Bueno tema cerrado gracias!!
Saludos
En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Matriz
« Respuesta #7 en: 18 Julio 2011, 19:15 pm »

gets() no es recomendable usarla.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
<<<-Basura->>>


Desconectado Desconectado

Mensajes: 388



Ver Perfil
Re: Matriz
« Respuesta #8 en: 19 Julio 2011, 06:13 am »

Yo me hice una mas sencilla  :-X

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define ALUM    4
  5. #define NOTAS           6
  6. #define MAX_NONB   20
  7.  
  8.  
  9. struct regis{
  10. char nomb[MAX_NONB];
  11. int nota[NOTAS];
  12. }registro[ALUM];
  13.  
  14. int main(){
  15. for(int j=0;j<ALUM;j++){
  16. cout << j+1 << " - Alumno: \n"<<endl;
  17. cout << "Nombre: ";
  18. cin >> registro[j].nomb;
  19. for(int i=0;i<NOTAS;i++){
  20. cout << i+1 << " - Nota: ";
  21. cin >> registro[j].nota[i];
  22. }
  23. }
  24.  
  25. cout<< "Nombre\t1-Nota\t2-Nota\t3-Nota\t4-Nota\t5-Nota\t6-Nota\n";
  26. for(int j=0;j<ALUM;j++){
  27. cout<< registro[j].nomb;
  28. for(int i = 0; i < NOTAS ; i++){
  29. cout <<"\t"<< registro[j].nota[i];
  30. }
  31. cout<<endl;
  32. }
  33. return 0;
  34. }
  35.  
  36.  
En línea

<<<--Basura-->>>
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
matriz c#
.NET (C#, VB.NET, ASP)
shin_akuma 2 11,069 Último mensaje 30 Junio 2008, 22:06 pm
por shin_akuma
Duda - Buscar si existe una matriz dentro de otra matriz
Programación Visual Basic
EddyW 2 6,022 Último mensaje 14 Agosto 2010, 06:18 am
por EddyW
Matriz en C++
Programación C/C++
delirio 2 20,865 Último mensaje 27 Noviembre 2010, 22:48 pm
por darkvidhack
Matriz Dentro de otra matriz
Programación Visual Basic
moba741120 3 6,939 Último mensaje 13 Abril 2011, 18:29 pm
por raul338
matriz « 1 2 »
Programación C/C++
;c1v!c 15 5,768 Último mensaje 19 Agosto 2011, 17:35 pm
por rir3760
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines