Ayuda por favor

djorge
29 de Marzo del 2006
Por cierto tengo tambien el de la burbuja y el maestro pidio el de la burbuja mejorada, saben a que se refiere.

Gracias

crisam
29 de Marzo del 2006
burbuja normal
for (int x=0; x<max; x++)
for(int y = 0;y<max;y++)
if (vector[x]<vector[y])
{
int aux=vector[x];
vector[x]=vector[y];
vector[y]=aux;
}

en el burbuja mejorado los ciclos se hacen mas eficiente asi

for (int x=0; x<max-1; x++)
for(int y = x+1;y<max;y++)

crisam
29 de Marzo del 2006
// aqui te mando un programa que utiliza archivos con
// estructuras espero que te sirva

#include "iostream.h"
#include "fstream.h"
#include "string.h"
#include "stdlib.h"
#include "conio.h"

float CalcularPromedio(int primero, int segundo, int tercero)
{
float promedio;
promedio = (float (primero) + float (segundo) + float (tercero)) / 3;
return promedio;
}

typedef struct{
int legajo;
char apellido[15];
char nombre[15];
int nota1;
int nota2;
int nota3;
}Registro;

class Alumno
{
public:
Alumno();
Alumno(int nl, char *ape, char *nom, int n1, int n2, int n3);
virtual ~Alumno();
void legajo(int nl);
void apellido(char *ape);
void nombre(char *nom);
void nota1(int n1);
void nota2(int n2);
void nota3(int n3);
char *verNombre();
char *verApellido();
int verLegajo();
int verNota1();
int verNota2();
int verNota3();
private:
Registro alumno;
};

Alumno::Alumno()
{

}

Alumno::Alumno(int nl, char *ape, char *nom, int n1, int n2, int n3)
{
alumno.legajo = nl;
strcpy(alumno.apellido, ape);
strcpy(alumno.nombre, nom);
alumno.nota1 = n1;
alumno.nota2 = n2;
alumno.nota3 = n3;
}

Alumno::~Alumno()
{

}

void Alumno::legajo(int nl)
{
alumno.legajo = nl;
}

void Alumno::apellido(char *ape)
{
strcpy(alumno.apellido, ape);
}

void Alumno::nombre(char *nom)
{
strcpy(alumno.nombre, nom);
}

void Alumno::nota1(int n1)
{
alumno.nota1 = n1;
}

void Alumno::nota2(int n2)
{
alumno.nota2 = n2;
}

void Alumno::nota3(int n3)
{
alumno.nota3 = n3;
}

int Alumno::verLegajo()
{
return alumno.legajo;
}

char *Alumno::verApellido()
{
char *p = alumno.apellido;
return p;
}

char *Alumno::verNombre()
{
char *p = alumno.nombre;
return p;

}

int Alumno::verNota1()
{
return alumno.nota1;
}

int Alumno::verNota2()
{
return alumno.nota2;
}

int Alumno::verNota3()
{
return alumno.nota3;
}

void main()
{
Alumno alumno1;
Alumno alumno2(2, "Hernandez", "José", 7, 8, 5);
Registro A;
float promedio;
char *token;
char cadena[sizeof(Registro)];
clrscr();
ofstream salida("c:\temp\Datos.txt");

if(!salida) cout << "El archivo no existe." << endl;
salida << alumno2.verLegajo() << ";";
salida << alumno2.verApellido() << ";";
salida << alumno2.verNombre() << ";";
salida << alumno2.verNota1() << ";";
salida << alumno2.verNota2() << ";";
salida << alumno2.verNota3() << ";";

salida.close();

cout << "Legajo : " << alumno2.verLegajo() << endl;
cout << "Apellido : " << alumno2.verApellido() << endl;
cout << "Nombre : " << alumno2.verNombre() << endl;
cout << "Primera nota : " << alumno2.verNota1() << endl;
cout << "Segunda nota : " << alumno2.verNota2() << endl;
cout << "Tercera nota : " << alumno2.verNota3() << endl;

ifstream entrada("c:\temp\Datos.txt");

entrada.getline(cadena, sizeof(Registro));
token = strtok(cadena, ";");
A.legajo = atoi(token);
alumno1.legajo(A.legajo);
token = strtok(NULL, ";");
strcpy(A.apellido, token);
alumno1.apellido(A.apellido);
token = strtok(NULL, ";");
strcpy(A.nombre, token);
alumno1.nombre(A.nombre);
token = strtok(NULL, ";");
A.nota1 = atoi(token);
alumno1.nota1(A.nota1);
token = strtok(NULL, ";");
A.nota2 = atoi(token);
alumno1.nota2(A.nota2);
token = strtok(NULL, ";");
A.nota3 = atoi(token);
alumno1.nota3(A.nota3);

cout << "Legajo : " << alumno1.verLegajo() << endl;
cout << "Apellido : " << alumno1.verApellido() << endl;
cout << "Nombre : " << alumno1.verNombre() << endl;
cout << "Primera nota : " << alumno1.verNota1() << endl;
cout << "Segunda nota : " << alumno1.verNota2() << endl;
cout << "Tercera nota : " << alumno1.verNota3() << endl;

entrada.close();

promedio = CalcularPromedio(A.nota1, A.nota2, A.nota3);

cout << "Promedio : " << promedio << endl;
cin.get();
}

djorge
29 de Marzo del 2006
Te agradezco la ayuda, la verdad es que son muy buenos en esto.

Espero algún día poder hacer lo mismo por ustedes.