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

#1
Buenas noches a todos, el otro día tuve que realizar un código como tarea pero resulta que el programa no estaba bien hecho ya que me mandaron a corregir el código, como podría corregirlo para que funcione bien? 

Lo que pide el código:

Escriba un programa que simula una cola. Tamaño 
máximo 100. Llena la cola con al menos 25 
elementos, representados cada uno por un numero 
entero.
a) 
Escriba una función que devuelve el tamaño de la 
cola. Elementos que se encuentran en la cola.
b)
Escriba una función que devuelve la posición del valor
más alto en la cola
c)
Escriba una función que indica cuantos pasos le falta 
al número más alto para salir de la cola

Adjunto el código que yo realice.
Espero contar con su ayuda.
Muchas Gracias

#include <iostream>

using namespace std;

const int maxcola = 100;

struct MiCola {
    int elementos[maxcola];
     int front;
    int back;
}cola[maxcola];


int CrearCola(MiCola &queue);
bool ColaLlena(MiCola &queue);

bool ColaVacia(MiCola &queue);
int LlenarCola(MiCola &queue ,int entradas);
int VaciarCola(MiCola &queue,int salidas);

int main() {
   MiCola entrada, salida,queue;
    char op;
    int i=0,ele;
    CrearCola(queue);
    cout << "Deseas ingresar datos (S/N)? ";
    cin >> op;
    while ((op == 's' || op == 'S') && (!(ColaLlena(queue)))) {
        cout << "Ingresa elemento: ";
        cin >> ele;
       LlenarCola(queue,ele);
        if (!(ColaLlena(queue))) {
            cout << "Deseas ingresar datos (S/N)? ";
            cin >>op;
        }
    }
while (!(ColaVacia(queue))) {
        LlenarCola(queue, salida);
        cout << "---------Elementos--------" << endl;
        cout <<salida.elementos;
        cout << endl;
    }
    cin.get();
    cin.ignore();
}

int CrearCola(MiCola &queue) {
queue.front = maxcola - 1;
    queue.back = maxcola - 1;
}

bool ColaLlena(MiCola &queue) {
    if (queue.front == (queue.back + 1) % maxcola)
        return 1;
    else
        return 0;

}

int LlenarCola(MiCola &queue, int entradas) {

    queue.back = (queue.back + 1) % maxcola;

    queue.elementos[queue.back] = entradas;
}

bool ColaVacia(MiCola queue) {

    if (queue.front == queue.back) return 1;

    else return 0;
}

int VaciarCola(MiCola &queue, int salidas) {

    queue.front = (queue.front + 1) % maxcola;

    salidas = queue.elementos[queue.front];
}
#2

Saludos y gracias por responder, la parte del código que mencionaste me presentan dudas:
Este tiene que ir dentro de la función main?? Si es así en que parte del código debe ir porque si pudiste ver mi código utiliza una especie de menú que accede a cada función que he creado, este código en que opción va?? o funciona de manera independiente?. Gracias

Código (cpp) [Seleccionar]

   std::vector< Persona > plantilla;
  // nuevo elemento
  Persona nuevo;
  nuevo.Nombre = "Carlos";
  nuevo.apellido = "Sastre";
  plantilla.push_back( nuevo );
#3
Saludos a todos, he desarrollado este código pero no puedo hacerlo funcionar bien quizás la lógica que aplico es errónea, como podría hacer que el código funcione de manera correcta?

Tuve que Desarrollar una pequeña agenda con la siguiente estructura:

id_registro
Nombre
Apellido
Celular

y desarrollar las siguientes funciones para la administración:

ingresarRegistro()
eliminarRegistro()
modificarRegistro()
imprimirTodoRegistro()

Adjunto el código que llevo al momento. De antemano muchas Gracias a los que deseen ayudarme.



#include <iostream>
#include <cstring>

using namespace std;


struct Persona {

char Nombre[65];
char apellido[65];
char numcel[65];


}plantilla[100];


void ingresarRegistro();
void imprimirRegistro();
void modificarRegistro();
void eliminarRegistro();

int camb=0;
int copiar;


int main() {

   int opc;

   do{

               cout<<"MENU"<<endl;
      cout<<"1.Agregar Registro"<<endl;
               cout<<"2.Eliminar Registro"<<endl;
               cout<<"3.Modificar Registro"<<endl;
               cout<<"4.Imprimir Registro"<<endl;
               cout<<"5.Salir"<<endl;
      
               cin>>opc;
   
      switch(opc){
      case 1:
         ingresarRegistro();
         break;
      case 2:
         eliminarRegistro;
         
         break;
      case 3:
         modificarRegistro();
         
         break;
                           
                case 4:
                       imprimirRegistro();
                       
                       break;
                     
      }
   }while(opc!=5);

   return 0;
}
   
int cont=0;

void ingresarRegistro(){

 
   int r,f;
   
   r=cont++;
   
   
   if (camb==1)
   {
               r--;
               f=r+1;
             
   cout<< "Agregue el nombre del nuevo contacto: ";
   cin>> plantilla[f].Nombre;
   cout<<endl;
   
   cout<< "Agregue el apellido del nuevo contacto: ";
   cin>> plantilla[f].apellido;
   cout<<endl;
   
   cout<< "Agregue el numero movil del nuevo contacto: ";
   cin>> plantilla[f].numcel;
   cout<<endl;
                                   strcpy(plantilla[r].Nombre,plantilla[f].Nombre);
                                   strcpy(plantilla[r].apellido,plantilla[f].apellido);
                                   strcpy(plantilla[r].numcel,plantilla[f].numcel);
                                   copiar++;
                                       
   }
   
   cout<< "Agregue el nombre del nuevo contacto: ";
   cin>> plantilla[r].Nombre;
   cout<<endl;
   
   cout<< "Agregue el apellido del nuevo contacto: ";
   cin>> plantilla[r].apellido;
   cout<<endl;
   
   cout<< "Agregue el numero movil del nuevo contacto: ";
   cin>> plantilla[r].numcel;
   cout<<endl;

}

// Imprime 20 valores inecesarios

void imprimirRegistro(){
 
  int tr, a, r;
   
     cout<< "Lista de Contactos: ";
     cout<< endl;
     
     if (cont==0)
     {
              cout<< "Lista de contactos vacia.";
              cout<<endl;
             
              } else {
     
   
     for(a=0;a<r+1;a++)
  {
     tr=a;
     
     cout<< tr+1<< ". ";
     cout<< plantilla[a].Nombre;
     cout<<endl;
    }
     
    }
   
}

void modificarRegistro(){
   
   int a, tr,val, mod,g,r,rep;
   
cout<< "Lista de Contactos: ";
     cout<< endl;
     
     if (cont==0)
     {
              cout<< "Lista de contactos vacia.";
              cout<<endl;
         
              } else {
     
   
     for(a=0;a<r+1;a++)
     
  {
     tr=a;
     
     cout<< tr+1<< ". ";
     cout<< plantilla[a].Nombre;
     cout<<endl;
    }
                    }
     
                    cout<<"Seleccione el numero del contacto que desea modificar: ";
                    cin>>val;
                    mod=val-1;
                    g=r+1;
                 
                    int op1;
                   
                   if (val<=g)
                    {
                             
                    do
                    {
                 
                    cout<<"Contacto:"<<endl;
                    cout<<"1. Nombre: "<<plantilla[mod].Nombre<<endl;
                    cout<<"2. Apellido: "<<plantilla[mod].apellido<<endl;
                    cout<<"3. Numero Movil: "<<plantilla[mod].numcel<<endl;
                    cout<<"4. Menu anterior."<<endl;
                    cout<<"Seleccione la opcion que desea modificar: ";
                    cin>>op1;
                    switch (op1)
                    {
                           case 1:
                                cout<< "Modifique el nombre del contacto: ";
                                cin>> plantilla[mod].Nombre;
                                cout<<endl;
                                break;
                           case 2:
                                cout<< "Modifique el apellido del contacto: ";
                                cin>> plantilla[mod].apellido;
                                cout<<endl;
                                break;
                           case 3:
                                cout<< "Modifique el numero de movil del contacto: ";
                                cin>> plantilla[mod].numcel;
                                cout<<endl;
                                break;
                           case 4:
                                rep=1;
                                break;
                           }
                    }while (rep==0);
                    }else {cout<<"El contacto no existe."<<endl;
                         
                    rep=0;

                    }
}

void eliminarRegistro(){
   
   int del;
  int delm;
  int h;
  int rsp2;
  int copiar;
  int a1;
  int r, tr, a;
 
   
        cout<< "Lista de Contactos: ";
     cout<< endl;
     
     if (cont==0)
     {
              cout<< "Lista de contactos vacia.";
              cout<<endl;
             
              } else {
     
   
     for(a=0;a<r+1;a++)
     
  {
     tr=a;
     
     cout<< tr+1<< ". ";
     cout<< plantilla[a].Nombre;
     cout<<endl;
    }
                    }
                   
                    cout<<"Seleccione el numero del contacto que desea eliminar: ";
                    cin>>del;
                    delm=del-1;
                    h=r+1;
                     
                    if (del<=h)
                    {
                             
                               cout<< "Estas seguro que deseas borar el contacto selecionado?"<<endl;
                               cout<< "Nombre: "<<plantilla[delm].Nombre<<endl;
                               cout<< "Apellido: "<<plantilla[delm].apellido<<endl;
                               cout<< "Numero Movil: "<<plantilla[delm].numcel<<endl;
                                cout<< "1.Si                    2.No"<<endl;
                               
                               cin>>rsp2;
                               cout<<endl;
                               
                               if (rsp2==1)
                               {
                               
                               strcpy(plantilla[delm].Nombre,"\0");
                               strcpy(plantilla[delm].apellido,"\0");
                               strcpy(plantilla[delm].numcel,"\0");
                               
                               copiar=delm;
                               for (a1=delm;a1<r+1;a1++)
                               {
                                   strcpy(plantilla[copiar].Nombre,plantilla[copiar+1].Nombre);
                                   strcpy(plantilla[copiar].apellido,plantilla[copiar+1].apellido);
                                   strcpy(plantilla[copiar].numcel,plantilla[copiar+1].numcel);
                                   copiar++;
                                   
                               }
                               r=cont-2;
                               camb=1;
                               
                               
                               } else {
                               }
                               
                    }else {cout<<"El contacto no existe."<<endl;
                           
                           }
}


#4
Gracias ! Me sirvió bastante :)
#5
Saludos a todos tengo la inquietud de como realizaría la suma de la serie de fibonacci, e intentado algunas formas pero no logro hallar esa suma.

Mi código realiza la serie de fibonacci hasta n terminos ingresados por el usuario.
Ejemplo: Ingreso 5 , muestra: 0 1 1 2 3
La Cuestión es : Como sumo esa series es decir: 0 + 1 + 1 + 2 + 3 ...... hasta n terminos.

Mi código:

#include<iostream.h>

int main()
{
int ant,des,c,s,n,suma;

ant=0;
des=1;


cout<<"Serie de Fibonacci"<<endl;

cout<<"Ingrese el numero de terminos"<<endl;
cin>>n;

if (n==1)
cout<<ant<<" ";
else
cout<<ant<<" "<<des;

for (c=3;c<=n;c++)
{
s=ant+des;
ant=des;
des=s;

cout<<" "<<des;

}
system("pause");
}

Gracias por la ayuda.
#6
Saludos a todos, tengo mi programa que permite convertir números a letras pero este no esta completo aun, llegue a un punto en el cual no se como seguir resolviendo mi código por eso recurro a ustedes para que me den ideas de como terminarlo.

El avance de mi código:
*Funciona convirtiendo números a letras en un rango de  0 - 100
*También convierte estas cantidades: 100, 200, 300, 400, 500,600,700,800,900
*Me falta completar las cantidades entre decenas, pero no encuentro la forma de hacerlo.

Mi programa:

// Convertir números a letras en un rango de 0 - 999

#include<iostream>
#include<string>

using namespace std;


int main()
{
   string unidades[] =   
    {"cero", "uno", "dos" ,"tres" ,"cuatro" ,"cinco" , 
            "seis" ,"siete" ,"ocho" ,"nueve","diez"}; 
           
           
    string especiales[] =   
    {"once", "doce","trece","catorce", "quince", 
             "diezciseis", "diecisiete", "dieciocho", "diecinueve"}; 
             
             
    string decenas[] =   
    {"veinte", "treinta","cuarenta","cincuenta", "sesenta", 
           "setenta", "ochenta", "noventa"}; 
           
           
    string centenas[] =   
    {"cien", "doscientos","trescientos","cuatrocientos", "quinientos", 
           "seiscientos", "setecientos", "ochocientos","novecientos"}; 
     
   
cout << "Ingrese un numero entre 0-99: ";

    int num; 
    cin >> num; 
 
    if(num>=0 && num<11) 
        cout<<unidades[num]; 
       
    else if(num<20) 
        cout<<especiales[num-11]; 
       
    else if(num<=100)
    { 
        int unid = num % 100; 
        int dec = num/100; 
       
        if(unid == 0) 
            cout<< decenas[dec-2] ; 
        else 
            cout<< decenas[dec-2] <<" y " <<unidades[unid];   
   
    } 
   
    else if(num<1000)
    {
        int unid = num % 100; 
        int dec = num/100; 
       
        if(unid == 0)
            cout<< centenas[dec-1] ; 
        else 
            cout<< centenas[dec-1]<<" "<<unidades[unid];         
    }   
   


cout<<endl;
system("pause");
}


Espero me brinden su ayuda
Gracias y Saludos.
#7
Gracias me sirvió tu ayuda
#8
Este problema es algo fácil pero simplemente no se porque no me sale, aun soy bastante principiante para entender bien los programas. Les comparte mi código para que vean que puede estar mal:

/*Desarolle un programa que muestre todos los divisores exactos de un numero ingresado por el usuario.*/

#include<iostream.h>

int main()
{
    int n,x,a;
    cout<<"Ingrese un numero"<<endl;
    cin>>n;
    for(x=1;x<=n;x++)
    {
    a=n/x;
    if ((a%x)==0)
    cout<<a<<" ";
    }
   

system("pause");   
}


#9
Programación C/C++ / Re: Series numericas en c++
15 Noviembre 2013, 06:39 AM
Saludos a todos los que respondieron mi pregunta :)

Gracias por las ideas con esa serie, al final lo hice así miren :
Disculpen que fue algo confusa la pregunta :D

#include<iostream.h>

int main()
{
    int c,s,n,x,cont;
    cout<<"Ingrese el numero de terminos"<<endl;
    cin>>n;
   
    cont=4;
    s=0;
    for(x=1;x<=n;x++)
    {
      if(x%2==0)
      {
          if(c<0)
          cout<<cont;
          else
          cout<<"+"<<cont;
         
       s=s+cont;
       cont--;
     
      }
   
      else
      {
          if(n==1)
          cout<<"S="<<6;
          else   
          cout<<"+"<<6;
           s=s+6;
      }
}   
      cout<<"="<<s<<endl;
      system("pause");
       
}

#10
Programación C/C++ / Series numericas en c++
13 Noviembre 2013, 21:11 PM
Como realizaría esta serie numérica en c++?
6+4+6+3+6+2+6+1..... =
Los puntos suspensivos indican un numero que ingresa el usuario para determinar hasta que limite se realiza la suma.

Gracias por su ayuda, no se como hacerla :c