Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - eferion

#581
cEstudiantes es la constante que tienes que tener definida al inicio del programa.

En qué línea te da el error?? que código tienes en esa línea?? y en las anteriores??
#582
cambia estudiante por Estudiante...

y luego

Registro_Notas registorNotas[cEstudiantes ];
#583
Con todos mis respetos, el que te está enseñando a programar no tiene ni la más remota idea de cómo se ha de estructurar un programa:

* En C++ lo lógico es usar "class" en vez de "struct"... son bastante parecidas, pero no iguales.

* No tiene sentido usar clases o estructuras sin conocer, al menos, el uso de los constructores por defecto. En tu práctica ni se menciona este elemento.

* No tienen ningún sentido que una clase almacene datos y se comunique con el usuario a la vez.

* Las variables de una clase o estructura deberían estar, como norma general, siempre en la parte privada. Para interactuar con ellas se implementan funciones para leer y modificar dichas variables.

* En C++ existen un tipo de clases, denominadas contenedores, que te permiten almacenar colecciones de elementos de una forma sencilla y rápida. Los arrays de C, como los que te propone usar, dan muchísimos problemas si no se usan con extremo cuidado.

Alguno me podrá decir que sí, pero que estás aprendiendo... razón de más para asentar una buena base desde el principio... en vez de llenar la cabeza con ideas que no sirven de mucho.

Vale, ya me he desahogado, ahora, retomando tu práctica te comento:


5. La Estructura RegistroNotas debe contener los siguientes atributos:
a. Estudiante alumno[cEstudiantes]
b. int notas[cNotas]


Vamos a ver, si para cada alumno hay que almacenar tres notas... que (perdón por la expresión) ***** de diseño es este?? Ahí únicamente hay 2 vectores independientes... es como tener una lista de tus amigos por un lado y, por otro, una lista de teléfonos (contando con que para cada amigo puedes tener varios números ) ... no hay relación entre ellos.

Podría tener más sentido un diseño tal que

Código (cpp) [Seleccionar]

// Estructura coherente
struct RegistroNotas
{
 Estudiante alumno;
 int notas[ cNotas ];
};

// Array de RegistroNotas... ahora si, cada estudiante tiene sus tres parciales.
RegistroNotas[ cEstudiantes ] registroNotas;


Sigo defendiéndolo... quien te está enseñando no tiene ni idea y encima se explica fatal.

Ahora, partiendo de este diseño...

Código (cpp) [Seleccionar]
cout<<   estudiante::cuenta<<"\t"<<estudiante::nombre <<"\t"<<notas [0]<<"\t" <<notas [1]<<"\t"<< notas [2]<<"\t"

la forma de acceder a las variables no es con el operador '::' eso está reservado para el caso de miembros estáticos.

En tu caso es con el operador '.'

Código (cpp) [Seleccionar]
cout << registroNotas[ nEstudiante ].alumno.cuenta << "\t"
    << registroNotas[ nEstudiante ].alumno.nombre << "\t"
    << registroNotas[ nEstudiante ].notas[ 0 ] << "\t"
    << registroNotas[ nEstudiante ].notas[ 1 ] << "\t"
    << registroNotas[ nEstudiante ].notas[ 2 ] << endl;


"registroNotas" es el nombre del array, el que he puesto antes. Como "registroNotas" es un array, necesito usar "nEstudiante" para acceder a una posición concreta... en esta posición me voy a encontrar con una estructura de tipo "RegistroNotas", que contiene un miembro "alumno" que es de tipo "Estudiante" y un array de tipo int llamado "notas"... el resto del código sigue la misma lógica.

En cualquier caso, dado que el número de notas viene definido por la constante "cNotas", la impresión debería quedar tal que:

Código (cpp) [Seleccionar]
cout << registroNotas[ nEstudiante ].alumno.cuenta << "\t"
    << registroNotas[ nEstudiante ].alumno.nombre;

for ( int i=0; i< cNotas; i++ )
{
 cout  << "\t" << registroNotas[ nEstudiante ].notas[ i ];
}

cout << endl;


Así, si cambias la constante cNotas, el código se adaptará de forma automática.
#584
Pondrás valores de ángulo menores de 90º, no??

Por otro lado, "sin" funciona con radianes, no con grados. Tienes que aplicar la conversión A*PI/180 para pasar los grados a radianes.
#585
Programación C/C++ / Re: Arreglos Ayudaaa!
7 Abril 2014, 13:36 PM
si no se indica nada, main retorna un entero.

Asímismo, si no se pone ningún retorno en main, el compilador "pone" por defecto un "return 0" al final del main.
#586
Programación C/C++ / Re: Arreglos Ayudaaa!
7 Abril 2014, 13:22 PM
Cita de: nolasco281 en  7 Abril 2014, 13:11 PM
Hola estaba probando y no me corre.

buscando la razon.



El motivo te lo ha dicho amchacon a está definido como arreglo y en esa línea lo usa como variable simple.
#587
Programación C/C++ / Re: listas encadenadas
7 Abril 2014, 09:07 AM
El problema lo tienes en la definición de tu estructura.

No la has puesto, pero tiene pinta que tiene una definición tal que


struct depa
{
  char* dato;
  struct nodo* sig;
  algo* con; // No queda claro el tipo de este, aunque es irrelevante.
};


Si mi deducción es correcta, esta parte del código funcionaría dejando la estructura así:


struct depa
{
  char* dato;
  struct depa* sig;
  algo* con;
};
#588
tienes que enviar la consulta SQL a la base de datos... con mysql_query.

Después tienes que llamar a mysql_store_result( ) para que te devuelva el resultado de la query. Para moverte por los diferentes resultados, tienes que usar mysql_fetch_row( ).

En la web de mysql tienes toda la documentación al respecto sobre estas funciones.


if ( mysql_query(con, "SELECT ...") )
  error( );
 
MYSQL_RES *result = mysql_store_result(con);
 
if (result == NULL)
  error( );

int num_fields = mysql_num_fields(result);

MYSQL_ROW row;
 
while ((row = mysql_fetch_row(result)))
{
  campo0 ? row[ 0 ];
  campo1 = row[ 1 ];
  ...
}
#589
Cita de: max9100 en  4 Abril 2014, 12:39 PM
1. Declaración de dos valores constantes enteras Fila y Columna

Código (cpp) [Seleccionar]

const int MaxFilas = 2;
const int MaxColumnas = 2;


Cita de: max9100 en  4 Abril 2014, 12:39 PM
a. Imprimir el valor de la Fila y Columna

estás en C++, luego es más correcto usar:

Código (cpp) [Seleccionar]

cout << "En la columna = " << col << endl;
cout << "En la fila = " << col << endl;


Cita de: max9100 en  4 Abril 2014, 12:39 PM
b. Validar si el valor de la Fila y Columna es igual a cero si es asi ha de retornar el elemento del arreglo en la posición 0,0.
c. Si no se cumple la validación anterior se ha de validar si el valor de la columna es menor que cero si es así debe retornar el valor de la invocación de la función Sumar pasándole el arreglo, el valor de la Fila menos 1 y la posición 1.
d. Si no se cumple la condición anterior se ha de retornar el arreglo posición Fila, Columna más la invocación de la función Sumar pasándole el arreglo, la fila y la columna menos 1.

Correcto

Cita de: max9100 en  4 Abril 2014, 12:39 PM
3. Un procedimiento Cargar_Datos que cargue los valores del arreglo con números aleatorios, debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
4. Un procedimiento Imprimir_Datos , que imprima los datos del arreglo debe recibir como parámetro un arreglo y dos enteros (Fila y Columna).
5. Un procedimiento principal que contenga los siguientes elementos:
a. Declaración de un arreglo de dos filas dos columna
b. Invocación del procedimiento Cargar_Datos para cargar los valores del arreglo, debe pasar el arreglo y los valores de Fila y Columna.
c. Invocación del procedimiento Imprimir_Datos para imprimir los valores del arreglo.
d. Imprimir el valor de la suma de los elementos del arreglo mediante la invocación de la función Sumar.

Esto falta

Por lo demás, el código está bien, cumple con lo que te piden.

Y sí, tu comentario "problema no deBe ir todo aqui" es erróneo.
#590
ejecución en la nube... te refieres a vía web, mediante servicios o en apps instaladas en el movil?? la situación puede cambiar bastante.

Además, los programas de escritorio funcionan de forma diferente a las aplicaciones web.

Quizás la solución más reutilizable sería diseñar un catálogo de servicios Web ( para eso puedes usar PHP, .Net o Java entre otros ). Un servicio Web se caracteriza por no tener una interfaz gráfica, pero gracias a eso, únicamente tienes que preocuparte de crear la interfaz gráfica específica para cada plataforma, ya que la información te la va a proveer el servicio Web.

El problema que puede presentar este diseño es que si se realizan cálculos pesados se puede saturar el servidor con bastante facilidad. Una posible solución al respecto pasa por diseñar el sistema para que sea distribuido, aunque claro, el coste de mantener el sistema en marcha de incrementa con cada servidor nuevo que tengas que añadir.

La opción B es diseñar una suerte de librerías básicas ( en C++ por ejemplo que suele ser compatible con casi todos los entornos y reutilizable desde Java, .Net y PHP, por ejemplo ) y llevarlas a cada sistema en el que quieras implantar tu aplicación ( un servidor web, aplicaciones de escritorio, aplicaciones móviles, etc ). El problema de este sistema es que las actualizaciones de las librerías te van a dar más trabajo ( por el tema de compilarlas en cada sistema y distribuirlas entre los usuarios )... la ventaja es que no tendrás que invertir en el despliegue de servicios web.