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 - acega

#1
Buen día hago un programa sobre grafos y me quede atorado aquí, necesito mostrar la matriz de adyacencia a partir de la lista, se que va con un for anidado pero no tengo idea de como tener acceso a las aristas y a los nodos aqui el código:

#include <iostream>
#include <stdio.h>
#include <conio.h>

struct vertice {
char insertar;
   struct vertice *sig;
   struct arista *aris;
};

struct arista {
struct vertice *destino;
   struct arista *sig;
};

typedef struct vertice *Nodo;
typedef struct arista *Ar;

void crear_nodo(Nodo &grafo)
{
    Nodo Noden=new struct vertice;

    cin>>Noden->insertar;
    Noden->sig=NULL;
    Noden->aris=NULL;

    if(grafo==NULL)
    {
        grafo = Noden;
        return;
    }
    else
    {
        Nodo aux=grafo;

        if(Noden->insertar==aux->insertar)
      cout<<"\nNODO EXISTENTE :(";

        while(aux->sig!=NULL)
        {
            if(Noden->insertar==aux->insertar)
            cout<<"\nNODO EXISTENTE :(";
            aux = aux->sig;
        }
        aux->sig = Noden;

        return;
    }

}

void add_arista(Nodo &aux, Nodo &aux2, Ar &nuevo)
{
    Ar i;

    if(aux->aris==NULL)
    {   aux->aris=nuevo;
        nuevo->destino=aux2;
        cout<<"\nARISTA CREADA :).";
    }
    else
    {   i=aux->aris;
      if(i->destino->insertar==aux2->insertar)
        {
        cout<<"\n\nARISTA YA EXISTENTE :(";
            return;
        }
        while(i->sig!=NULL)
        {
            if(i->destino->insertar==aux2->insertar)
            {
            cout<<"\n\nARISTA YA EXISTENTE";
               return;
            }
    i=i->sig;
        }
        nuevo->destino=aux2;
        i->sig=nuevo;
        cout<<"\nARISTA CREADA";
    }

}

void insert_arista(Nodo grafo)
{
char ini, fin;
    Ar Noden=new struct arista;
    Nodo aux, aux2;

    cout<<"\t\t\tEnlace creado con exito!\n";

    if(grafo==NULL)
     {
         cout<<"SIN ELEMENTOS QUE EVALUAR";
         return;
     }
    Noden->sig=NULL;
    cout<<"INGRESE PUNTO INICIO: ";
    cin>>ini;
    cout<<"INGRESE PUNTO FINAL: ";
    cin>>fin;
    aux=grafo;
    aux2=grafo;
    while(aux2!=NULL)
    {
        if(aux2->insertar==fin)
        {
            break;
        }

        aux2=aux2->sig;
    }
    if(aux2==NULL)
    {
        cout<<"\nEL NODO "<<fin<<" NO EXISTE\n";
      return;
    }

    while(aux!=NULL)
    {
        if(aux->insertar==ini)
        {
            add_arista(aux, aux2, Noden);
            return;
        }

        aux = aux->sig;
    }
    cout<<"\n RUTA CREADA SIN EXITO\n"<<endl;
    cout<<"\nEL NODO "<<ini<<" NO EXISTE\n";
    return;
}

void imprimirgrafo(Nodo grafo)
{
    if(grafo==NULL)
    {
      cout<<"LO SENTIMOS, NO SE CREO NINGUN GRAFO";
    return;
    }

Nodo aux;
    Ar ar;
    aux=grafo;
    cout<<"\t\t\tMOSTRANDO matriz DE ADYACENCIA \n\n";

    while(aux!=NULL)
    {   cout<<" "<<aux->insertar<<" : ";
        if(aux->aris!=NULL)
        {
            ar=aux->aris;
            while(ar!=NULL)
            {
            cout<<ar->destino->insertar;
            if(ar->sig!=NULL)
                cout<<",**** ";
                ar=ar->sig;
             }

        }
        aux=aux->sig;
        cout<<endl;
    }
}


void deleted(char var, Nodo grafo)
{
Nodo aux;
    Ar ar, ant, fijo;
    aux=grafo;

    while(aux!=NULL)
    {
        if(aux->aris!=NULL)
        {
            fijo=aux->aris;
            ar=aux->aris;
            ant=aux->aris;
            while(ar!=NULL)
            {
            if(ar->destino->insertar==var)
                {
                   if(fijo==ar)
                   {
                    aux->aris=fijo->sig;
                     delete(fijo);
                     break;
                   }
                   else
                    {
                      ant->sig=ar->sig;
                        delete(ar);
                        break;
                     }
                }
                ant=ar;
                ar=ar->sig;
             }

        }
        aux=aux->sig;
        cout<<endl;
    }
}


void aristas_null(Nodo &aux)
{
    Ar i,j;

    i=aux->aris;
    while(i->sig!=NULL)
    {
        j=i;
        i=i->sig;
        delete(j);
    }
}

void deleted_nod(Nodo &grafo)
{
char var;
    Nodo aux, ant;
    aux=grafo;
    ant=grafo;

    cout<<"\t\t\t DESHACER NODO\n\n";

    if(grafo==NULL)
    {
         cout<<"\nLO SENTIMOS, NO SE HA CREADO NINGUN GRAFO\n";
         return;
    }
    cout<<"QUE NODO DESEA ELIMINAR : ";
    cin>>var;

    deleted(var, grafo);

    while(aux!=NULL)
    {
        if(aux->insertar==var)
        {
            if(aux->aris!=NULL)
                aristas_null(aux);

            if(aux==grafo)
            {
                grafo=grafo->sig;
                delete(aux);
                cout<<"NODO ELIMINADO CON EXITO";
                return;
            }
            else
            {
                ant->sig=aux->sig;
                delete(aux);
                cout<<"NODO ELIMINADO CON EXITO";
                return;
            }
        }

        ant=aux;
        aux=aux->sig;
    }

    cout<<"\n\nEL NODO NUNCA EXISTIO \n";
    return;

}


void arista_quitar(Nodo &grafo)
{
char ini, fin;
    Nodo aux, aux2;
    Ar i, j;

    cout<<"\t\t\t DESTRUIR ENLACE \n\n";

    if(grafo==NULL)
    {
         cout<<"\nGRAFO VACIO :(\n";
         return;
    }

    cout<<"NODO DE INICIO: ";
    cin>>ini;
    cout<<"NODO A FIN: ";
    cin>>fin;

    aux=grafo;
    aux2=grafo;
    while(aux2!=NULL)
    {
        if(aux2->insertar==fin)
        {
            break;
        }
        else
        aux2=aux2->sig;
    }

    while(aux!=NULL)
    {
        if(aux->insertar==ini)
        {
            i=aux->aris;
            if(i==NULL)
            cout<<"\n\nNO EXISTIO NUNCA ENLACE \n\n";

            while(i!=NULL)
            {
                if(i->destino==aux2)
                {
                    if(i==aux->aris)
                        aux->aris=aux->aris->sig;
                    else
                        j->sig=i->sig;
                    delete(i);
                    cout<<"\n\nARISTA ELIMINADA CON EXITO\n\n";
                    return;
                }
            j=i;
            i=i->sig;
            }
        }
        aux = aux->sig;
    }
}

void mostrAr(Nodo grafo)
{
    Nodo aux;
    Ar ar;
    char var;

    cout<<"\t\tIMPRIMIR ARISTAS DE NODO \n";
    cout<<"\n\nNODO A BUSCAR: ";
    cin>>var;
    aux=grafo;
    while(aux!=NULL)
    {
        if(aux->insertar==var)
        {
            if(aux->aris==NULL)
            {   cout<<"NO EXISTEN ARISTAS";
                return;
             }
            else
            {
                cout<<aux->insertar<<" :";
                ar=aux->aris;

                while(ar!=NULL)
                {
                    cout<<ar->destino->insertar;
                    if(ar->sig!=NULL)
                    cout<<", ";
                    ar=ar->sig;
                }
                cout<<endl;
                return;
            }
        }
        else
        aux=aux->sig;
    }

    cout<<"\n\nEL NODO NUNCA EXISTIO\n\n";
}

main()
{
   int opc, lim, i;
   Nodo grafo=NULL;

do{
   clrscr();
cout<<"\t\t\t\t GRAFO NO DIRIGIDO\n\n";
cout<<"1) INGRESAR NODO\n"
    "2) INGRESAR ARISTA\n"
         "3) ELIMINAR NODO\n"
         "4) ELIMINAR ARISTA\n"
         "5) BUSCAR NODO\n"
         "6) LISTA DE ADYACENCIA\n"
         "7) SALIR\n"
         "\n\nTU OPCION ES: ";
   cin>>opc;

   switch(opc)
   {
    case 1:
         clrscr();
         cout<<"\t\t\tHAZ ELEGIDO INGRESAR NODOS\n\n";
         cout<<"NUMERO DE NODOS A INGRESAR: ";
         cin>>lim;

         for(i=0; i<lim; i++)
         {
            cout<<(i+1)<<") ";
      crear_nodo(grafo);
         }

      break;
      case 2:
      clrscr();
      insert_arista(grafo);
      break;
      case 3:
      clrscr();
      deleted_nod(grafo);
      break;
      case 4:
      clrscr();
      arista_quitar(grafo);
      break;
      case 5:
      clrscr();
      mostrAr(grafo);
         getch();
      break;
      case 6:
      clrscr();
      imprimirgrafo(grafo);
         getch();
      break;
      case 7:
      return 0;

      default:
         clrscr();
      cout<<"OPCION NO VALIDA :(";
         getch();
      }
  }while (opc!=7);
  getch();
}

#2
Hola pues resulta que estoy varado con este programa, el cual al ingresarle calificaciones de 2 materias para n alumnos debe arrojar el promedio grupal mi pregunta es como puedo acceder al promedio parcial que esta encapsulado en el objeto?? o hay otra forma de poder sacar el promedio general para los n alumnos??
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>



class Calificaciones
{

public:

  Calificaciones();

  void acceder();
  void ingresar();
  void ingresar2();
  void calcular();
  void calcular2();
  void mostrar();
  //void mostrarDatos();
  void validar();

private:

  float c1;
  float c2;
  float c3;
  float c4;
  float c5;
  float c6;
  int nc;
  float prom;
  float prom2;
  float promParcial;

};

Calificaciones::Calificaciones()
{

c1=c2=c3=c4=c5=c6=prom=prom2=promParcial=0.0;
nc=0;

}

void Calificaciones::acceder()
{
cout<<"\n\n\tIngrese numero de cuenta: ";
cin>>nc;

while( nc>999999 || nc<99999 )
  {
   cout<<"\n\t\aNumero de cuenta incorrecto, verifiquelo e ingrese de nuevo: ";
   cin>>nc;
  }

}
void Calificaciones::ingresar()
{
cout<<"\nMATERIA 1:"<<endl;
cout<<"\n\tIngrese calificacion de primer parcial: ";
cin>>c1;
cout<<"\n\tIngrese calificacion de segundo parcial: ";
cin>>c2;
cout<<"\n\tIngrese calificacion de tercer parcial: ";
cin>>c3;


}
void Calificaciones::ingresar2()
{
cout<<"\nMATERIA 2:"<<endl;
cout<<"\n\tIngrese calificacion de primer parcial: ";
cin>>c4;
cout<<"\n\tIngrese calificacion de segundo parcial: ";
cin>>c5;
cout<<"\n\tIngrese calificacion de tercer parcial: ";
cin>>c6;
clrscr();

}

void Calificaciones::validar()
{
c1 = (c1>=0&&c1<=10) ? c1 : 0;
c2 = (c2>=0&&c2<=10) ? c2 : 0;
c3 = (c3>=0&&c3<=10) ? c3 : 0;
c4 = (c4>=0&&c4<=10) ? c4 : 0;
c5 = (c5>=0&&c5<=10) ? c5 : 0;
c6 = (c6>=0&&c6<=10) ? c6 : 0;
}

void Calificaciones::calcular()
{

  cout<<"\n\n\n\n\n\n\n\n\n\n\tEl promedio del alumno: "<<nc<<"  se esta calculando...";
  validar();
  prom=(c1+c2+c3)/3;


}
void Calificaciones::calcular2()
{

  //cout<<"\n\n\n\n\n\n\n\n\n\n\tEl promedio del alumno: "<<nc<<"  se esta calculando...";
  //validar();
  prom2=(c4+c5+c6)/3;
  promParcial=(prom+prom2)/2;
  //return promParcial;


}


void Calificaciones::mostrar()
{
  //cout<<nc//cuenta que no se repita??
  cout<<endl<<" "<<nc<<"   ";
  cout<<setprecision(2)
      <<setiosflags( ios::fixed || ios::showpoint )
      <<" "<<c1
      <<"     "<<c2
<<"     "<<c3

<<"    "<<prom
      <<( prom < 7 ? " NA" : "  A")
      <<"        "<<c4
      <<"     "<<c5
<<"     "<<c6
    <<"    "<<prom2
      <<( prom2 < 7 ? " NA" : "  A")
      <<"      "<<promParcial;

}


main ()
{

Calificaciones c[' '];

int ans,n,i,j,k;   //porque no reconoce i,j,k??
char regreso='M';
char ciclo='s';

cout<<"\n\n\n\t\t\tCuantos alumnos va a ingresar?\t ";
cin>>n;

while (ciclo=='s')
{

  cout<<"\n\n\n\t\t\tQue desea hacer?\n"
      <<"\n\t\t1.-Ingresar\n"
      <<"\n\t\t2.-Calcular\n"
      <<"\n\t\t3.-Mostrar\n"
      <<"\n\t\t4.-Salir\t\t";
  cin>>ans;
  clrscr();


  switch (ans)
  {

   case 1:

    for ( i=1; i<=n; i++)
    {
     regreso='J';
     cout<<"\n\t\tInstrucciones:  Ingrese valores enteros o decimales\n "
      <<" \t\t\t\tcon el rango del 0 al 10\n"
      <<"\t\tPara el numero de cuenta deberan ser de 6 digitos...\0";

     c[i].acceder();
     c[i].ingresar();

     
     c[i].ingresar2();
    }

   break;

   case 2:

    clrscr();
    for ( j=1; j<=n; j++)
    {

     if(regreso=='M')
     {
      cout<<"\n\aPrimero ingrese calificaciones para despues calcular!";
     }
     else
     {
      clrscr();
      cout<<endl;
      c[j].calcular();
      //clrscr();
      c[j].calcular2();
      //promGral[j]=?????


     }

     getchar();

    }
    clrscr();

   break;

   case 3:

    clrscr();
    cout<<endl<<"ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛMATERIA1ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"
              <<"MATERIA2ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ"<<endl<<endl;
    //cout<<"\t\tMATERIA1\t\t\t\tMATERIA2 "<<endl;
    cout<<"ÛNo_CtaÛ"
     <<"  ÛC1Û"
     <<"   ÛC2Û"
     <<"   ÛC3Û"
     <<"   ÛPromÛ"
     <<"      ÛC1Û"
     <<"   ÛC2Û"
     <<"   ÛC3Û"
     <<"   ÛPromÛ"
     <<"   ÛPGralÛ";

    for ( k=1; k<=n; k++)
    {

     if(regreso=='M')
     {
      cout<<"\n\a\nNO hay datos para mostrar!!!";
     }
     else
     {
       //mat1[k].mostrarDatos();
       //cout<<"     ";
       c[k].mostrar();
       /*cout<<"      ";
       mat2[k].mostrar();*/
     }

     getchar();

    }
    clrscr();

   break;

   case 4:

    clrscr();
    cout<<"\n\n\t\tSaliendo...\a\a\a";
    ciclo='a';

   break;

   default:

    cout<<"\n\n\n\n\t\t\aOpcion invalida vuelva a intentarlo...";

   break;

  }

}

getchar();
#3
Programación C/C++ / Re: N alumnos con clases
8 Octubre 2013, 23:51 PM
Hola perdón por la tardanza pues resulta que ahora ya no tengo problemas con el método mostrar sino que en este código ya más modificado para que sea con 2 materias quiero sacar el promedio de las dos materias y el promedio del grupo de n alumnos pero no se como ya que declaré las materias como objetos


#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>



class Calificaciones
{

public:

  Calificaciones();

  void acceder();
  void ingresar();
  void calcular();
  void mostrar();
  void mostrarDatos();
  void validar();

private:

  float c1;
  float c2;
  float c3;
  int nc;
  float prom;

};

Calificaciones::Calificaciones()
{

c1=c2=c3=prom=0.0;
nc=0;

}

void Calificaciones::acceder()
{
cout<<"\n\n\tIngrese numero de cuenta: ";
cin>>nc;

while( nc>999999 || nc<99999 )
  {
   cout<<"\n\t\aNumero de cuenta incorrecto, verifiquelo e ingrese de nuevo: ";
   cin>>nc;
  }

}
void Calificaciones::ingresar()
{

cout<<"\n\tIngrese calificacion de primer parcial: ";
cin>>c1;
cout<<"\n\tIngrese calificacion de segundo parcial: ";
cin>>c2;
cout<<"\n\tIngrese calificacion de tercer parcial: ";
cin>>c3;
clrscr();

}

void Calificaciones::validar()
{
c1 = (c1>=0&&c1<=10) ? c1 : 0;
c2 = (c2>=0&&c2<=10) ? c2 : 0;
c3 = (c3>=0&&c3<=10) ? c3 : 0;
}

void Calificaciones::calcular()
{

  cout<<"\n\n\n\n\n\n\n\n\n\n\tEl promedio del alumno: "<<nc<<"  se esta calculando...";
  validar();
  prom=(c1+c2+c3)/3;


}


void Calificaciones::mostrar()
{
  //cout<<nc//cuenta que no se repita??
  cout<<setprecision(2)
      <<c1
      <<"     "<<c2
<<"     "<<c3
      <<setiosflags( ios::fixed || ios::showpoint )
<<"    "<<prom
      <<( prom < 7 ? " NA" : "  A");

}
void Calificaciones::mostrarDatos()
{

cout<<endl<<" "<<nc<<" ";//cuenta que no se repita??

}

main ()
{

Calificaciones mat1[' '],mat2[' '];

int ans,n,i,j,k;   //porque no reconoce i,j,k??
char regreso='M';
char ciclo='s';

cout<<"\n\n\n\t\t\tCuantos alumnos va a ingresar?\t ";
cin>>n;

while (ciclo=='s')
{

  cout<<"\n\n\n\t\t\tQue desea hacer?\n"
      <<"\n\t\t1.-Ingresar\n"
      <<"\n\t\t2.-Calcular\n"
      <<"\n\t\t3.-Mostrar\n"
      <<"\n\t\t4.-Salir\t\t";
  cin>>ans;
  clrscr();


  switch (ans)
  {

   case 1:

    for ( i=1; i<=n; i++)
    {
     regreso='J';
     cout<<"\n\t\tInstrucciones:  Ingrese valores enteros o decimales\n "
      <<" \t\t\t\tcon el rango del 0 al 10\n"
      <<"\t\tPara el numero de cuenta deberan ser de 6 digitos...\0";

     mat1[i].acceder();
     mat1[i].ingresar();
     cout<<"\nMATERIA 2:"<<endl;
     //mat2[i].acceder()=mat1[i].acceder();
     mat2[i].ingresar();
    }

   break;

   case 2:

    clrscr();
    for ( j=1; j<=n; j++)
    {

     if(regreso=='M')
     {
      cout<<"\n\aPrimero ingrese calificaciones para despues calcular!";
     }
     else
     {
      clrscr();
      cout<<endl;
      mat2[j].calcular();
      clrscr();
      mat1[j].calcular();


     }

     getchar();

    }
    clrscr();

   break;

   case 3:

    clrscr();
    cout<<endl<<"                       MATERIA1         MATERIA2 "<<endl;
    //cout<<"\t\tMATERIA1\t\t\t\tMATERIA2 "<<endl;
    cout<<"ºNo_Ctaº"
     <<"     ºC1º"
     <<"   ºC2º"
     <<"   ºC3º"
     <<"  ºPromº"
     <<"    ºC1º"
     <<"   ºC2º"
     <<"   ºC3º"
     <<"  ºPromº\n";

    for ( k=1; k<=n; k++)
    {

     if(regreso=='M')
     {
      cout<<"\n\aNO hay datos para mostrar!!!";
     }
     else
     {
       mat1[k].mostrarDatos();
       cout<<"     ";
       mat1[k].mostrar();
       cout<<"      ";
       mat2[k].mostrar();
     }

     getchar();

    }
    clrscr();

   break;

   case 4:

    clrscr();
    cout<<"\n\n\t\tSaliendo...\a\a\a";
    ciclo='a';

   break;

   default:

    cout<<"\n\n\n\n\t\t\aOpcion invalida vuelva a intentarlo...";

   break;

  }//switchEnd

}//endWhile

getchar();

return 0;

Ahh por cierto intente quitar la de conio.h y remplazarla por otro pero no encontré ninguna eficiente para pausar todas tenían sus desventajas además interrumpe el uso de gotoxy si no la pongo...
#4
Programación C/C++ / Re: N alumnos con clases
13 Septiembre 2013, 03:20 AM
Muchas gracias había olvidado que podía ser un objeto de tipo array, hoy me lo recordó mi maestra ya lo implemente pero en la función mostrar ya no imprime nada pienso también que podría ser por el "goto" que mencionabas antes, y sobre lo ultimo no lo había tomado en cuenta antes gracias!
#5
Programación C/C++ / N alumnos con clases
10 Septiembre 2013, 03:36 AM
Hola estoy haciendo un programa que al ingresar tres calificaciones te da el promedio con clases y todo tipo de validaciones lógicas y corre bien pero solo para un alumno ahora quiero que sea para n alumnos pero no se bien como, estaba pensando en que fuera un arreglo bidimensional pero no supe como poner los for anidados en las clases aquí esta el código:

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>


class calificaciones
{
public:
  calificaciones();

  void ingresar();
  float calcular();
  void mostrar();

private:
  float c1;
  float c2;
  float c3;
  int nc;
  float prom;
};

calificaciones::calificaciones()
{
c1=c2=c3=prom=0.0;
nc=0;
}

void calificaciones::ingresar()
{

clrscr();
cout<<"\n\t\tInstrucciones: Ingrese valores enteros o decimales "<<endl;
cout<<" \t\tcon el rango del 0 al 10"<<endl;
cout<<"\t\tPara el numero de cuenta deberan ser de 7 digitos...";
cout<<"\n\n\tIngrese numero de cuenta: ";
cin>>nc;
while(nc>9999999||nc<999999)
  {
   cout<<"\n\t\aNumero de cuenta incorrecto, verifiquelo e ingrese de nuevo: ";
   cin>>nc;
  }

  cout<<"\n\tIngrese calificacion de primer parcial: ";
  cin>>c1;
  while(c1>10||c1<0)
  {
   cout<<"\n\t\aValor invalido! Ingrese calificacion de primer parcial: ";
   cin>>c1;
  }

  cout<<"\n\tIngrese calificacion de segundo parcial: ";
  cin>>c2;
  while(c2>10||c2<0)
  {
   cout<<"\n\t\aValor invalido! Ingrese calificacion de segundo parcial: ";
   cin>>c2;
  }
  cout<<"\n\tIngrese calificacion de tercer parcial: ";
  cin>>c3;
  while(c3>10||c3<0)
  {
   cout<<"\n\t\aValor invalido! Ingrese calificacion de tercer parcial: ";
   cin>>c3;
  }


}

float calificaciones::calcular()
{

clrscr();
prom=(c1+c2+c3)/3;
return prom;

}


void calificaciones::mostrar()
{
clrscr();
cout<<"\n ºNo de Cuentaº"//<<nc;
     <<"\t  º1er Parcialº"//<<c1;
     <<"\t  º2do Parcialº"//<<c2;
     <<"\t  º3er Parcialº"//<<c3;
     <<"\t   º Promedio º";//<<prom;
gotoxy(69,5);
//nc=233552;
//c1=7.1;
//c2=7.1;
//c3=7.1;

if(prom<7) cout<<" Reprobado";
else
{
  gotoxy(71,5);
  cout<<"Aprobado";
}
gotoxy(7,4);
cout<<nc;
gotoxy(24,4);
cout<<c1;
gotoxy(40,4);
cout<<c2;
gotoxy(56,4);
cout<<c3;
gotoxy(73,4);
cout<<prom;

}

main ()
{
calificaciones m;
int ans;
int ciclo;
flag:

clrscr();
cout<<"\n\t\tQue desea hacer?\n"
     <<"\n\t\t1.-Ingresar\n"
     <<"\n\t\t2.-Calcular\n"
     <<"\n\t\t3.-Mostrar\n"
     <<"\n\t\t4.-Salir\t";
cin>>ans;



switch (ans)
{
  case 1:
   m.ingresar();
   cout<<endl<<"Guardado para regresar al menu presione 7...\t";
   cin>>ciclo;
   while(ciclo!=7)
   {
    cout<<"\n\t\aTecla incorrecta! presiona 7: ";
    cin>>ciclo;
   }
  break;
  case 2:
   m.calcular();
   cout<<endl<<"\n\n\n\n\n\n\n\n\n\t\tCalculando para regresar al menu presione 7...\t";
   cin>>ciclo;
   while(ciclo!=7)
   {
    cout<<"\n\t\aTecla incorrecta! presiona 7: ";
    cin>>ciclo;
   }
  break;
  case 3:
   m.mostrar();
   cout<<endl<<"\n\n\n\t\tHa terminado de leer? presione 7\t";
   cin>>ciclo;
   while(ciclo!=7)
   {
    cout<<"\n\t\aTecla incorrecta! presiona 7: ";
    cin>>ciclo;
   }
  break;
  case 4:
   clrscr();
   cout<<"\n\n\t\tSaliendo...\a\a\a";
   getch();
   exit(1);
  break;

  default:
   for (int i=0;i<1;i++)
   {
   cout<<"\n\n\t\tOpcion invalida vuelva a intentarlo...";
   getch();
   }
   goto flag;

}

while (ciclo==7)
goto flag;
getch();

return 0;
}

Espero me puedan ayudar saludos!!
#6
Gracias Leosansan !! Yo le había pensado algo parecido ahora veo que no estaba tan lejos.
Jajaja se ve padre el triangulo que hiciste  ;-) saludos...
#7
Hola Me pidieron un programa que imprimiera el triángulo de Sierpinski a partir del triangulo de pascal que ya tengo programado, ahora tengo que convertir los que son pares en "0" y los impares en "1", y ahí es donde me quede estancado ¿Como puedo hacer para que a partir de lo que imprima en el triangulo de pascal pueda poner los unos y los ceros? Acá el código:
#include <stdio.h>
#include <iostream.h>
#include <conio.h>

int pasc[' ']={0};
int x=0,n;
void llenar()
{

cout<<"\tIngrese hasta que linea: ";
cin>>n;
}
void pascalizar()
{

for (int i=0; i<n ; i++)
{
  for (int j=x; j>=0; j--)
  {
   if(j==x || j==0)
   {
    pasc[j] = 1;
   }
   else
   {
    pasc[j] = pasc[j] + pasc[j-1];
   }
  }
  x++;
  cout<<"\n";
   for(int j=0; j<x; j++)
   {
    cout<<"\t"<<pasc[j];
   }
}
}
void main (void)
{

llenar();
clrscr();
pascalizar();
getch();
}
Gracias de antemano :)
#8
ok gracias ya lo corregi pero no se como hacer esto:
Cita de: rir3760 en 19 Marzo 2013, 05:07 AM
el segundo para imprimir todos los números que cumplan con ese requisito (así imprimes la moda cuando esta son dos o mas números).

#9
Programación C/C++ / Calcular mas de una moda
19 Marzo 2013, 01:38 AM
Como todos sabemos la moda es un termino que se utiliza en Estadística para saber cual es el numero que mas se repite.
Mi programa ordena números aleatorios y arroja la media la mediana y la moda y al estarlo corriendo me di cuenta que si hay mas de un número que se repite mas, entonces imprime el ultimo que se repitió en vez de los 2 o 3 que se repitieron aquí esta el código:
Código (cpp) [Seleccionar]
#include <stdio.h>
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void main (void)
{
clrscr();
int arreglo[10],x,cont,mod;
float Prom;
randomize();
cout<<"***Metodo Burbuja, Media,mediana,moda***\a"<<endl;
for (int i=0;i<10;i++)
{
 arreglo[i]=random(10)+1;
 cout<<arreglo[i]<<" ";
}
getch();
for(int j=0;j<10;j++)
 {
  for(int k=0;k<10;k++)
  {
   if(arreglo[j]>arreglo[k])
   {
    x=arreglo[k];
    arreglo[k]=arreglo[j];
    arreglo[j]=x;
   }
  }
 }
cout<<"\n";
for(int l=9;l>=0;l--)
{
 cont=0;

 cout<<arreglo[l]<<" ";
 for(int a=9;a>=0;a--)
 {
  if(arreglo[l]==arreglo[a])
  {
   cont++;
  }
  if(cont>=2)
  {
   mod=arreglo[l];
  }
 }
}
for(int b=9;b>=0;b--)
{
Prom=Prom+arreglo[b];
}
Prom=Prom/10;
cout<<"\n\20 Media: "<<Prom;
cout<<"\n\20 Mediana: "<<arreglo[5]<<" "<<arreglo[4];
cout<<"\n\20 Moda: "<<mod;

getch();
}
#10
oigan! muchas gracias a todos!! si me ayudo a resolver el problema y ademas a estructurar el siguiente programa que me dejaron :D