Foro Oficial De C++

@tonimekan
hola, mi problema es el siguiente, yo introduzco por teclado alumnos y notas, y el programa me devuelve los alumnos que hay, las notas, la mejor nota y el mejor alumno, la peor nota y el peor alumno y la nota media.cuando quiero imprimir por pantalla los nombres y notas de los alumnos, solo me imprime uno, el ultimo, aqui dejo todo el codigo y en un rar todo el workspace, estoy programando en visual basic 6.0, y el programa tiene como argumentos el nombre del grupo y el numero de alumnos que se quieren introducir.

Antes que nada, bienvenido a la comunidad... Ahora sí... a darle...

En su código hay una instrucción que no me gusta, en el main:
Código:
    ...
    for (i=0;i<2;++i)
    {
        leeAlumno(&aux);
        addAlumnoGrupo(aux, &grup);
    }
Usted hace "i<2" lo que me evita meter más de 2 alumnos con sus
respectivas calificaciones... ahora... el código está "funcionando"
sólo que hace algo, que aún no encuentro, que sólamente evalúa
al último sujeto que le doy como entrada... este me lo muestra
como mejor, peor y nota media...

A ver si le puedo ayudar un poco más en esto
 
@tonimekan

Ya funciona... encontré varios detalles que tiene que corregir...
Primero, para que me funcionara con el código que tiene agregué:
Código:
enum {OK, ERROR};
#define FALSE false
#define TRUE true
#define MAX_NOM 40
#define MAX_ALUM 10

Luego sobre su trabajo... No tengo la librería que incluye,
llamada "tipos.h" supongo que ahí define los valores que
yo definí... La otra libreria que incluye es "miString.h" la
cual, a menos que hagas métodos especiales a parte de
strcpy y strcmp, no sirve de mucho...

A la función iniGrupo le agregué el parámetro "num", para
que inicializara el número de alumnos del grupo, aquí
estaba un error grave al no inicializar, vi que en la función
addAlumnoGrupo hacía que este número siempre fuera 2.
En esta última función cuando asignaba el alumno, lo hacía
con un for, lo que generaba que todos los alumnos fueran
el mismo... :S además de que utiliza la variable "i" como
subíndice del número de alumno... para corregir esto
agregue a la estructura grupo otra variable que usted debe
de manejar como índice y actualizar después de agregar
un alumno...

Por último en la función de impresión le envía un puntero
a alumno como segundo parámetro a printf, esta espera
un string, así que debería de cambiarle de:
gr->mejoralum
a
gr->mejoralum->nombre

Con estos cambios debería funcionar su código...

P.D. Disculpas por el doble post, pero pues no quería que
aquel fuera más largo... :D
 
Ahora sí me van a disculpar el triple post... es la primera vez
que hago un "hat trick"... :p

@wfox... Saludos... como ya mencionaron antes, sería bueno
que en el destructor hiciera un "delete [] v;", pues es obligación
del programador liberar la memoria que obtiene del heap...

Ahora sí a las buenas nuevas... su código funciona perfectamente
pero por cuestiones de su amigo el "copy & paste" está llamando
a actualizar la cedula en las veces que debería llamar a la función
que actualiza el estrato y el promedio... en la función leerVector...

Otra cosa... le felicito por el chequeo de que la entrada que le
manda el usuario sea la correcta, pero creo que le faltó validar
cuando se borran los alumnos... le dejo esto para que se lo
piense...

Saludos... :p
 
Hola Compas,,

Tengo una amiga que necesita un programita para el colegio,, y me dijeron que aca estan los duros del tema,, alguien me puede ayudar ...?? el ejercicio es este:

ya no ,, ya lo hice Gracias de todos modos..
 
Hola Compas,,

Tengo una amiga que necesita un programita para el colegio,, y me dijeron que aca estan los duros del tema,, alguien me puede ayudar ...?? el ejercicio es este:

--Diseña un programa que permita generar números para el juego del BINGO… para esto el programa debe generar números aleatorios y almacenarlos en un vector (recuerda que en el juego de bingo un número no se puede cantar varias veces)… cada vez que se genere un número haga que el programa lo busque en el vector, si el número no se encuentra en el vector quiere decir que no se ha cantado anteriormente…
El programa debe mostrar opciones para listar todos los números generados organizados por letras (B I N G O)

Me comentan .. Saludos.


compadre aquí le van a decir lo mismo...
Código:
random con libreia  math.h


en visual c++ usan otra librería.
los que usan visual c++ una ayudita al compa..!

saludos
 
Hola gente de laneros Nunca me habia pasado x acá..soy estudiante de Sistemas y necesito Generar dos programitas para presentar y al mismo tiempo ayudar...la verdad pude con uno pero al 50%... y fue este

Desarollar un Programa en Dev-C++, Que convierta los numeros decimales de 1 a 128 a binarios, yo Realize esto

#include <iostream>
using namespace std;
main () {
system ("cls");
int n=1,v[10],i,x;
while (n<=128) {
x=n;
i=0;
while (x>=1) {
v=x%2;
i=i+1;
x=x/2;
}
i=i-1;
cout<<n<<"\t:";
while (i>=0){
cout<<v;
i=i-1;
}
cout<<"\n";
n=n+1;
}
system("pause");
}


Pero..El Otro 50% es...Pasar de esos Numeros Binarios a Hexadecimal (Contiene las letras a=10,b=11,c=12,d=13,e=14,f=15) Osea que Imprima por ejemplo 4B algo así...

Esa es la primera ayuda que necesito... Klo segundo que necesito es generar un programa que me muestre el triangulo de pascal, ingresando el numero de veces que quiero que se repita pero no con matrices sino en forma de triangulo algoritmico ...

aver quien me ayuda con esas dos cositas....GRACIAS!
 
Para convertir de binario a hexadecimal... sólo haga conjuntos
de cuatro números binarios, del menos significativo al más
significativo, y luego para cada conjunto conviertalo a hexade-
cimal... creo que es muy simple... :)

Cuando lo tenga avise... que también le puedo guiar sobre el
tríangulo de pascal... :p
 
k ondas camaradas necesito un programa en c++ k me ayude a controlar un carrito a control remoto desde mi pc conectado por el puerto paralelo... alguien k ya alla hecho este proyecto y k me pueda dar una ayudadita... soy novato apenas empiezo.. se los agradecere... espero su respuesta.
 
alguien me puede recomendar un libro de programacion en c++. lo necesito. Es que tengo k aprender a programar en un mes, me urge si alguien sabe de algun libro k me lo recomienden, y que tal el de aprenda c++ en 7 dias o algo asi, asi me dijeron , bueno espero respuestas
 
@tory26... compa, mencione que es lo que sabe, quiero decir,
a que es a lo que le mueve más como para que le hayan
asignado una tarea como esa... gracias... :)
 
hola chicos,

veran tengo un serio problema con matrices en c++ pues tengo que realizar una matriz que me imprima los numeros promedio de otra matriz de 5*5
me explican como recorro la matriz y como desarrollo un algoritmo para que me realice el promedio?
 
hola chicos,

veran tengo un serio problema con matrices en c++ pues tengo que realizar una matriz que me imprima los numeros promedio de otra matriz de 5*5
me explican como recorro la matriz y como desarrollo un algoritmo para que me realice el promedio?

Bienvenida primero q todo!
pues...no t entendi bien... quieren llena runa segunda matriz con los promedios de una matriz uno, pero los promedios de q? de toda la matriz? por filas? por columnas?

//aqui como la escribres....
int mat[5][5]; // declaramos una matriz 5x5
for(int i=1;i<=tama_col;i++){
for(int j=1;j<=tama_fill;j++){
cout<<mat[j];
}
}


//aqui como asignas valores
int mat[5][5]; // declaramos una matriz 5x5
for(int i=1;i<=tama_col;i++){
for(int j=1;j<=tama_fill;j++){
mat[j]=lo q tu quieras;
}
}

como no se q promedios quieres no lo coloco... espero q sea de tu ayuda.
saludos a tod@s x aqui.
 
Hola, antes que nada me presento. Me llamo Luciano, estudio Analisis de Sistemas y soy nuevo en el foro.
Tengo una duda sobre lo siguiente:

Estoy haciendo 1 proyecto que maneja archivos.
Tengo varios cpps con sus respectivos .h de los cuales uno se llama "ARCH.CPP" y tiene su "ARCH.H".
Estos tienen las funciones básicas de archivos (grabar, leer, abrir, cerrar) pero de forma más genérica: "AbrirArchivo(parametros), en lugar de fopen = (parametros)".

El proyecto necesita grabar 2 archivos, cada uno de una estructura diferente.
Lo que necesito es saber como hacer esta libreria arch.h genérica para aceptar cualquiera de las dos estructuras que le mande por parámetro.
(No puedo usar un #define TIPODATOARCHIVO ty_miregistro porque tengo 2 registros...)
Tampoco estoy familiarizado con el uso de punteros ni objetos.

ARCH.h
Código:
#ifndef __ARCH_H
#define __ARCH_H
//Librerias
#include <stdio.h>
#include "TDARCH.h"

//Prototipos
void AbrirArchivo (FILE * &Arch, bool &bPudo, char * dir, char tipo); //Procedimiento de apertura de archivos de Entrada y de Salida
void LeerArchivo (FILE * &Arch, ty_TDArch &Reg, bool &bFin);  //Procedimiento de lectura de archivo
void GrabarArchivo (FILE * &Arch, ty_TDArch &Reg);  //Procedimiento de guardado de archivo
void CerrarArchivo (FILE * &Arch);  //Procedimiento de cerrado de archivo


#endif /*__ARCH_H*/

ARCH.cpp
Código:
//Librerias
#include "ARCH.h"
#include <iostream.h>

////////////////////////////////////////////////////////////////////////////////////////////
//Rutina LeerArchivo (FILE * &Arch, ESTRUCT &estructura, bool &bfin)
////////////////////////////////////////////////////////////////////////////////////////////
void LeerArchivo (FILE * &Arch, ty_TDArch &Reg, bool &bFin)
														//Rutina para leer un Archivo

{

	if (!(feof(Arch))) { 							    //Si no es fin de archivo
	   fread (&Reg, sizeof(ty_TDArch),1,Arch);     //Leo el archivo
		 bFin = FALSE;                                  //No termino la lectura, porque lo lei
	} else {                                            //Caso contrario, Termino la lectura
		 bFin = TRUE;
	}
}
//Fin de Rutina -  LeerArchivo (FILE * &Arch, ESTRUCT &estructura, bool &bfin) -



////////////////////////////////////////////////////////////////////////////////////////////
//Rutina - AbrirArchivo (FILE*Arch,bool&bPudo,char*dir,char tipo) -
////////////////////////////////////////////////////////////////////////////////////////////
void AbrirArchivo (FILE * &Arch, bool &bPudo, char * dir, char tipo)
										//Rutina para abrir un archivo de Entrada o de Salida
{
	if (tipo == 'E')  {					//Si el tipo de archivo es de Entrada

		Arch=fopen (dir,"rt");          //Abro el archivo de entrada

			if (Arch == NULL) {         //Si no encuentra el archivo
				cout << "No se pudo abrir el archivo de Entrada\n";
				bPudo=FALSE;            //bPudo Abrirlo es FALSO
			}else{
				bPudo=TRUE;             //Caso contrario bPudo Abrirlo es VERDADERO
			}

	} else {  							//Caso contrario el archivo es de Salida

		Arch=fopen (dir,"a+");          //Abro el archivo de salida


			if (Arch == NULL) {         //Si no encuentra el archivo
				cout << "No se pudo abrir el archivo de Salida\n";
				bPudo=FALSE;            //bPudo Abrirlo es FALSO
			}else{
				bPudo=TRUE;             //Caso contrario bPudo Abrirlo es                  //VERDADERO

			}

	}
}
//Fin de Rutina - AbrirArchivo (FILE*Arch,bool&bPudo,char*dir,char tipo) -


////////////////////////////////////////////////////////////////////////////////////////////
//Rutina - GrabarArchivo1 (FILE*Arch,ESTRUCT &estructura) -
////////////////////////////////////////////////////////////////////////////////////////////
void GrabarArchivo1 (FILE * &Arch, ty_TDArch &Reg)
{														//Rutina para grabar un archivo
	fwrite (&Reg, sizeof(ty_TDArch),1,Arch);       //Graba el archivo
}
//Fin de Rutina - GrabarArchivo (FILE*Arch,ESTRUCT &estructura) -


////////////////////////////////////////////////////////////////////////////////////////////
//Rutina - CerrarArchivo (FILE * &Arch)
////////////////////////////////////////////////////////////////////////////////////////////
void CerrarArchivo (FILE * &Arch)
{														//Rutina para cerrar un archivo
	fclose(Arch);                                       //Cierra el archivo
}
//Fin de Rutina - CerrarArchivo (FILE * &Arch)


La idea de esta libreria propia, es que esté encapsulada. Para acceder a los datos de ella, pense hacer un TDARCH.h que la maneje, de esta forma no tendria que romper el encapsulamiento cada vez que quiera cambiar algo.

TDARCH.h

Código:
#include "STRCTP3.h"

#define FALSE 0
#define TRUE (1 == 1)

typedef int bool;

Ahora bien, tengo 2 registros que contienen lo siguiente:
STRCTP3.H
Código:
typedef struct ty_RegOrig{
	ty_VecV VecV;
	ty_VecVB VecVB;
}; //estructura para registro de archivo vectores originales

typedef struct ty_RegResult{
	ty_VecResB VecResBOrd;
	ty_VecResB VecResBDes;
	ty_VecResB VecResBBin;
	ty_VecReO VecResOrd;
}; //estructura para registro de archivo vectores de resultados

Estos 2 registros tengo que guardarlos en 2 archivos diferentes utilizando el mismo procedimiento de guardar. Y ahí está el problema, los tipos de dato son diferentes.

Si alguien me puede explicar como hacer para pasarle directamente una posicion de memoria para que lea "X" tamaño, indiferentemente del tipo, le agradezco mucho.

Espero que se entienda, me cuesta 1 poco explicar esto por acá.

Muchas gracias de antemano.

Saludos.
 
Hola.
Estoy estudiando C++ en mi escuela y soy bastante bueno, pero sólo en lo que me han enseñado.
Quisiera ir más ayá.

Por ejemplo, ¿Cómo crear una imagen de 640 x 360 con pixeles blancos y negros aleatorios?
No importa el formato. BMP PNG GIF mientras no sea JPG xD
 
HOLA! Me podrian ayudar a hacer una resta de strings en C++
x=7:25:06pm
y=7:25:09pm
Necesito restar x-y y que me de 3 q son los segundos de diferencia...los valores que toman x y y son tomados de la hora actual del sistema. Porfavor si alguien sabe y me contesta se lo agradecere mucho
 

Los últimos temas