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 - Elias Flores

#1
El codigo en si puede ser mucho mas corto con recurison y añadiendo los consejos que me diste pero el docente con el que estoy me pide hacerlo de esta forma para aprender a estructurar codigos ya que la materia en la que estoy se llama ESTRUCTURA DE DATOS 1 lo subi por si alguien necesita una orientacion en este tema de la carrera de programacion yo mismo lo arreglaria el codigo pero estoy en examenes FINALES T_T pero si gusta modificarlo hazlo 8D solo recuerda compartir al final tu codigo MODIFICADO para ayudar a la comunidad y recuerda EL QUE NO COMPARTE NO ENTRA AL CIELO  ;-) :D :D ;D
#2
Código (cpp) [Seleccionar]

#include <iostream>
#include <string.h>
#include <stdlib.h>
using namespace std;
struct Nodo{
int Elemento;
Nodo *Sig;
};
class Pila{
private:
Nodo *Tope;
public:
void Crear();
bool Vacia();
void Meter(int);
void Sacar(int &);
//int Cima();
void Mostrar();
void Analizar();
};
void Pila::Crear(){
  Tope=NULL;
}
bool Pila::Vacia(){
 return Tope==NULL;
}
//int Pila::Cima(){
 //if(!Vacia()){
 //return Tope->Elemento;
 //}
//}
void Pila::Meter(int E){
 Nodo *aux=new Nodo();
 if(aux!=NULL){
aux->Elemento=E;
aux->Sig=Tope;
Tope=aux;
 }
}
void Pila::Sacar(int &E){
 if(!Vacia()){
Nodo *aux=Tope;
E=Tope->Elemento;
Tope=Tope->Sig;
delete(aux);
 }
}
void Pila::Analizar(){
   Pila p;
char frase [30];
int x,c,d;
p.Crear();
c=0;
d=0;
cout<<"Escriba un texto: "<<endl;
cin>>frase;
int i=0;
while(frase[i]!='\0'){
  if(frase[i]=='('){
  p.Meter(frase[i]);
  c++;
  }
  if(frase[i]==')'){
  p.Sacar(x);
  d++;
  }
  i++;
}
if(c==d)
cout<<"Los parentesis estan correctos"<<endl;
else
cout<<"Los parentesis estan incorrectos"<<endl;
}
void Pila::Mostrar(){
Nodo *aux=Tope;
if (!Vacia()) {
  while (aux!=NULL){
cout<<"||\t";
cout<<aux->Elemento;
cout<<"\t ||\n";
aux=aux->Sig;
}
}else{
cout<<" ||\t \t||\n";
}
}
int main(){
bool menu=true;int i;Pila P;
   while(menu){
cout<<"\t\t*********************************"<<endl;
cout<<"\t\t*\tMENU\t\t\t*"<<endl;
cout<<"\t\t*********************************"<<endl;
cout<<"\t\t*\t1.-Analizar Frase: \t*"<<endl;
cout<<"\t\t*\t2.-Mostrar Pila\t\t*"<<endl;
cout<<"\t\t*\t3.-Salir\t\t*"<<endl;
cout<<"\t\t*********************************"<<endl;
cin>>i;
       if(i==1){
           P.Analizar();
       }else{
           if(i==2){
               P.Mostrar();
           }else{
               if(i==3){
                   exit(0);
               }
           }
       }
}
   return 0;
}
#3
Código (cpp) [Seleccionar]

// LOGIN CON HERENCIA
#include<iostream>
#include<windows.h>
#include <fstream>
#include<stdlib.h>
#include<conio.h>
#define MAX 4
#define MIN 1
using namespace std;
char nombre1[10];
char apellido1[10];
char contrasenia1[100];
char cargo1[100];
char cumpleanio1[100];
char nombretxt[100];
void borrar_pantalla();
char vector1[4];
typedef char matriz[3][3];
class Registro_Usuario{
public://atributos
string nombre,apellido,contrasenia,cargo,fecha_nacimiento;
public://metodos
Registro_Usuario();//constructor de la clase
~Registro_Usuario();//destuctor de la clase
virtual void setregistro(string,string,string,string,string);
string getregistronombre();
string getregistroapellido();
string getregistrocontrasenia();
string getregistrocargo();
string getregistrofecha_nacimiento();
};
//constructor, nos sirve para inicializar los atributos
Registro_Usuario::Registro_Usuario(){
}
//destructor de la clase
Registro_Usuario::~Registro_Usuario(){
}
//establecemos los valores a los atributos
void Registro_Usuario::setregistro(string _nombre, string _apellido, string _contrasenia, string _cargo, string _fecha_nacimiento){
nombre = _nombre;
apellido = _apellido;
contrasenia = _contrasenia;
cargo = _cargo;
fecha_nacimiento = _fecha_nacimiento;
cout<<"\n\tEscriba el nombre de usuario: ";
gets(nombretxt);
fstream archivo;
archivo.open(nombretxt,ios::app);
if(archivo.bad()){
cout<<"Mary te AMO <3";
exit(1);
}
archivo<<"BIENVENIDO A PROVIDENCIA "<<nombre1<<endl;
archivo<<"Nombre y Apellido: "<<apellido1<<endl;
archivo<<"Contraseña: "<<contrasenia<<endl;
archivo<<"cargo: "<<cargo1<<endl;
archivo<<"cumpleaños: "<<cumpleanio1<<endl;
archivo.close();
}
string Registro_Usuario::getregistronombre(){
return nombre;
}
string Registro_Usuario::getregistroapellido(){
return apellido;
}
string Registro_Usuario::getregistrocontrasenia(){
return contrasenia;
}
string Registro_Usuario::getregistrocargo(){
return cargo;
}
string Registro_Usuario::getregistrofecha_nacimiento(){
return fecha_nacimiento;
}
class cifrado : public Registro_Usuario{
private://atributos
string vector;
public://metodos
cifrado(string,string,string,string,string,string);// contructor de la clase cifrado
~cifrado();
void setregistro();
};
//contructor de la clase cifrado
cifrado::cifrado(string _nombre, string _apellido, string _contrasenia, string _cargo, string _fecha_nacimiento, string _vector):Registro_Usuario(){
vector = _vector;
}
//destructor de la clase
cifrado::~cifrado(){
}
void cifrado::setregistro(){
float v [3];
float r [3];
int longitud = 0;
}
int main(){
matriz m = {{1,2,1},{0-1,3},{2,1,0}};
const int tam = 4 ;
int opcion_menu;
char caracter;
int i = 0;
cout <<endl<<endl<< "\t\t\t    BIENVENIDOS A PROVIDENCIA" << endl<<endl<<endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------" << endl;
cout << "\t\t\t|1. Ingresar como Usuario    |" << endl;
cout << "\t\t\t|2. Registrarse              |" << endl;
cout << "\t\t\t|3. Ingrersar como Visitante |" << endl;
cout << "\t\t\t|4. Salir del Programa.      |"  << endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------\n" << endl;
cout << " Introduzca Opcion:  ";
cin >> opcion_menu;
if((opcion_menu==1)||(opcion_menu==2)||(opcion_menu==3)||(opcion_menu==4)){
if(opcion_menu==2){
system("cls");
getch();
cout<<endl<<endl<<"\n\tBienvenido a PROVIDENCIA: \n";//INGRESAR COMO USUARIO"
gets(nombre1);
cout<<"\n\tDigite su Nombre y Apellido: ";//INGRESAR COMO USUARIO"
gets(apellido1);
cout<<"\n\tDigite su contrasenia: ";//INGRESAR COMO USUARIO"
while (caracter=getch()){
if(caracter==13){
contrasenia1[i]='\0';
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
contrasenia1[i]=caracter;
i++;
}
cout<<endl<<"\n\tDigite su Cargo: ";//INGRESAR COMO USUARIO"
gets(cargo1);
cout<<"\n\tDigite su Fecha de nacimineto: ";//INGRESAR COMO USUARIO"
gets(cumpleanio1);
}
if (opcion_menu==4){
system("cls");   
cout<<endl<<(" El Programa CERRARA en Cualquier Momento"); Sleep(3000);
exit(0);
}
}
if((opcion_menu<MIN)||(opcion_menu>MAX)){       
try {       
system("cls");
             cout<<"\n\n\t  ============================\n"
                 <<"\n\n\t | ESTA OPCION  ES INCORRECTA |\n"
                 <<"\n\n\t  ============================\n";
                  Sleep(1000);    //SEGUNDO Y MEDIO QUE DURA LA PANTALLA, SE PUEDE AUMENTAR EL TIEMPO EN MILISEGUNDOS :v
                  system("cls"); //LIMPIA TODO 
                main();//Y VUELVE AL MENÚ
    }
    catch(...)
{cout << "\n UN ERROR HA OCURRIDO " << endl;}
}
switch (opcion_menu){
case 2:
Registro_Usuario usuario;
cifrado codificar;
//codificar.setcifrado(nombre1,apellido1,contrasenia1,cargo1,cumpleanio1,vector1);
usuario.setregistro(nombre1,apellido1,contrasenia1,cargo1,cumpleanio1);
break;
}
getch();
return 0;
}
/*void verificar_existencia_de_usuario(string nuevo_usuario)
{
    ifstream archivo(string nuevo_usuario);
    if (!archivo)
    {
             cout<<"\n Nombre de Usuario DISPONIBLE\n"<<endl;Sleep(2500);
             }
             else
             {
             cout<<"\n Este Nombre de Usuario ya Existe.....INTENTELO DE NUEVO"<<endl; Sleep(2500); borrar_pantalla();main();     
             }   
}
/*void Ingresar_PASS(password){
char caracter;
int i = 0;

cout << " Escriba su Nuevo PASS:                 " ;
while (caracter=getch()){
if(caracter==13){
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
p.PASS[i]=caracter;
i++;
}
cout<<"\n SE HA REGISTRADO CORRECTAMENTE"<<endl; Sleep(2500);
}*/
void borrar_pantalla()
{
system("CLS");
}
#4
Hola foro ya estoy devuelta por aqui y con un nuevo tema tengo una presentacion de este login en c++ para una tarea el ejercicio consiste en crear un login con encriptacion de la contraseña, la cual se la incripta por llevando la contraseña a un vector y el vector se multiplica con una matriz que nosotros eligamos en este caso la matriz es {{1,2,1},{0,-1,3},{2,1,0}} en el codigo dejo la matriz definida ya que nunca cambia solo el vector tiene que ser de 3 elementos si o si para poder multiplicar por la matriz, si ponemos un contraseña mas grande igual tenemos que llevarla a vector pero luego hay que cortar el vector en vectores de 3 elementos. todo esto debe ser diseñado con el uso de clase y herencia. estuve resolviendo este ejercicio por con la ayuda de getters y setters para los metodos de la clase pero me quede hasta donde tengo que heredar el atributo contraseña para poder usar el metodo cifrado de la clase cifrado alguien podria darme una mano con el tema de la herencia de la contraseña luego de hay todo es mas facil dejo mi 2 codigos uno con herencia y otro sin herencia HELP!!!!!! T_T T_T T_T
Código (cpp) [Seleccionar]

//lOGIN SIN HERRENCIA
#include<iostream>
#include<windows.h>
#include <fstream>
#include<stdlib.h>
#include<conio.h>
#define MAX 4
#define MIN 1
using namespace std;
char nombre1[10];
char apellido1[10];
char contrasenia1[100];
char cargo1[100];
char cumpleanio1[100];
char nombretxt[100];
void borrar_pantalla();
typedef char matriz[3][3];
typedef char alfabeto[27];
//typedef char palabra [100];
class Registro_Usuario{
public://atributos
string nombre,apellido,contrasenia,cargo,fecha_nacimiento;
public://metodos
Registro_Usuario();//constructor de la clase
~Registro_Usuario();//destuctor de la clase
void setregistro(string,string,string,string,string);
string getregistronombre();
string getregistroapellido();
string getregistrocontrasenia();
string getregistrocargo();
string getregistrofecha_nacimiento();
};
//constructor, nos sirve para inicializar los atributos
Registro_Usuario::Registro_Usuario(){
}
//destructor de la clase
Registro_Usuario::~Registro_Usuario(){
}
//establecemos los valores a los atributos
void Registro_Usuario::setregistro(string _nombre, string _apellido, string _contrasenia, string _cargo, string _fecha_nacimiento){
nombre = _nombre;
apellido = _apellido;
contrasenia = _contrasenia;
cargo = _cargo;
fecha_nacimiento = _fecha_nacimiento;
cout<<"\n\tEscriba el nombre de usuario: ";
gets(nombretxt);
fstream archivo;
archivo.open(nombretxt,ios::out);
if(archivo.bad()){
cout<<"Mary te AMO <3";
exit(1);
}
archivo<<"BIENVENIDO A PROVIDENCIA "<<nombre1<<endl;
archivo<<"Nombre y Apellido: "<<apellido1<<endl;
archivo<<"Contraseña: "<<contrasenia<<endl;
archivo<<"cargo: "<<cargo1<<endl;
archivo<<"cumpleaños: "<<cumpleanio1<<endl;
archivo.close();
}
string Registro_Usuario::getregistronombre(){
return nombre;
}
string Registro_Usuario::getregistroapellido(){
return apellido;
}
string Registro_Usuario::getregistrocontrasenia(){
return contrasenia;
}
string Registro_Usuario::getregistrocargo(){
return cargo;
}
string Registro_Usuario::getregistrofecha_nacimiento(){
return fecha_nacimiento;
}
class cifrado : public Registro_Usuario{
private://atributos
string contrasenia;
public://metodos
cifrado();// contructor de la clase cifrado
~cifrado();
void setcifrado(string);
string getcifradocontrasenia();
};
//contructor de la clase cifrado
cifrado::cifrado(){
}
//destructor de la clase
cifrado::~cifrado(){
}
//establecemos valores a los atributos
void cifrado::setcifrado(string _contrasenia){
contrasenia = _contrasenia;
alfabeto alf = {'A','B','C','D','E','F','G','H','I','J','K','L','M','N','Ñ','O','P','Q','R','S','T','U','V','W','X','Y','Z'};
matriz m = {{1,2,1},{0,-1,3},{2,1,0}};
int longitud = 0;
}
string cifrado::getcifradocontrasenia(){
return contrasenia;
}
int main(){
const int tam = 4 ;
int opcion_menu;
char caracter;
int i = 0;
cout <<endl<<endl<< "\t\t\t    BIENVENIDOS A PROVIDENCIA" << endl<<endl<<endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------" << endl;
cout << "\t\t\t|1. Ingresar como Usuario    |" << endl;
cout << "\t\t\t|2. Registrarse              |" << endl;
cout << "\t\t\t|3. Ingrersar como Visitante |" << endl;
cout << "\t\t\t|4. Salir del Programa.      |"  << endl;
cout << "------------------------------------------------------------------------------------------------------------------------------------\n" << endl;
cout << " Introduzca Opcion:  ";
cin >> opcion_menu;
if((opcion_menu==1)||(opcion_menu==2)||(opcion_menu==3)||(opcion_menu==4)){
if(opcion_menu==2){
system("cls");
Sleep(1000);
cout<<endl<<endl<<"\n\tBienvenido a PROVIDENCIA: \n";//INGRESAR COMO USUARIO"
gets(nombre1);
cout<<"\n\tDigite su Nombre y Apellido: ";//INGRESAR COMO USUARIO"
gets(apellido1);
cout<<"\n\tDigite su contrasenia: ";//INGRESAR COMO USUARIO"
while (caracter=getch()){
if(caracter==13){
contrasenia1[i]='\0';
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
contrasenia1[i]=caracter;
i++;
}
cout<<endl<<"\n\tDigite su Cargo: ";//INGRESAR COMO USUARIO"
gets(cargo1);
cout<<"\n\tDigite su Fecha de nacimineto: ";//INGRESAR COMO USUARIO"
gets(cumpleanio1);
Sleep(1000);    //SEGUNDO Y MEDIO QUE DURA LA PANTALLA, SE PUEDE AUMENTAR EL TIEMPO EN MILISEGUNDOS :v
                system("cls"); //LIMPIA TODO  
                main();
               }
if (opcion_menu==4){
system("cls");  
cout<<endl<<(" El Programa CERRARA en Cualquier Momento"); Sleep(3000);
exit(0);
}
}
if((opcion_menu<MIN)||(opcion_menu>MAX)){        
try {        
system("cls");
            cout<<"\n\n\t  ============================\n"
                <<"\n\n\t | ESTA OPCION  ES INCORRECTA |\n"
                <<"\n\n\t  ============================\n";
                Sleep(1000);    //SEGUNDO Y MEDIO QUE DURA LA PANTALLA, SE PUEDE AUMENTAR EL TIEMPO EN MILISEGUNDOS :v
                system("cls"); //LIMPIA TODO  
                main();//Y VUELVE AL MENÚ
    }
  catch(...)
{cout << "\n UN ERROR HA OCURRIDO " << endl;}
}
switch (opcion_menu){
case 2:
Registro_Usuario usuario;
cifrado codificar;
codificar.setcifrado(contrasenia1);
usuario.setregistro(nombre1,apellido1,contrasenia1,cargo1,cumpleanio1);
break;
}
getch();
return 0;
}
/*void verificar_existencia_de_usuario(string nuevo_usuario)
{
   ifstream archivo(string nuevo_usuario);
   if (!archivo)
   {
            cout<<"\n Nombre de Usuario DISPONIBLE\n"<<endl;Sleep(2500);
            }
            else
            {
            cout<<"\n Este Nombre de Usuario ya Existe.....INTENTELO DE NUEVO"<<endl; Sleep(2500); borrar_pantalla();main();      
            }  
}
/*void Ingresar_PASS(password){
char caracter;
int i = 0;

cout << " Escriba su Nuevo PASS:                 " ;
while (caracter=getch()){
if(caracter==13){
break;
}else if (caracter==8){
i--;
cout<<("\b \b");
}else
cout<<("*");
p.PASS[i]=caracter;
i++;
}
cout<<"\n SE HA REGISTRADO CORRECTAMENTE"<<endl; Sleep(2500);
}*/
void borrar_pantalla()
{
system("CLS");
}
#5
 :o :huh: Nica estoy cero........... no se si notaron los codigos que subo al foro en la funcion main nunca coloco una operacion matematica para nada solo lo utilizo para llamar a otras funciones y las funciones predeterminadas son siempre de tipo void solo la funcion que muestra el vector es de tipo "int"........ bueno aqui nace un problema ya que en matrices tengo que crear un metodo que carge la matriz y en dev c++ cuando envio una matriz simpre debo limitar el numero de columnas SIEMPRE y es hay donde me pierdo completamente OJO los ejercicios los hago asi para tener mas orden y para que sean mas entendibles!. Posdata aqui dejo mi logica de cargar una matriz en modo modular en otras palabras de manera muy simple y vaga si lo puedo llamar asi XD

Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <conio.h>
#include <string>
#include <ctime>
using namespace std;
int main(){
int numE;
int f,c;
cout<<"Ingrese el tamaño de la fila: ";cin>>f;
cout<<"Ingrese el tamaño de la columna: ";cin>>c;
int matriz [f][c];
srand(time(0));
for (int i=0;i<f;i++){
for (int j=0;j<c;j++){
    numE=1+rand()% 9;
matriz[i][j]=numE;
}
}
for (int i=0;i<f;i++){
for (int j=0;j<c;j++){
    cout<<matriz[i][j]<<" ";
}cout<<endl;
}
getch();
return 0;
}


Ahora solo hay que llevarlo a metodo recursivo un metodo dentro del main que llame a un metodo externo de tipo void que carge la matriz y un metodo de tipo "int" que muestre la matriz este de tipo entero porque tiene que devolver un valor real no como el void que no devuelve nada soy nuevo en Dev c++ esto ya lo tengo en c++ builder usando sus librerias de StringGrid pero yo quiero hacerlo libre  :¬¬.......  :¬¬ :-\  ¿Alguien que quiera participar O_0?
#6
Programación C/C++ / Re: Ayuda con recursividad
16 Septiembre 2018, 02:39 AM
Estoy en la "U" 3 semestre  :D recien comenzando, todo lo que avanzo de programacion y logica lo subo al foro para poder orientarme mas adelante si olvido algo, ademas es mi aporte a la comunidad EL CONOCIMIENTO ES LIBRE PARA TODOS
#7
Código (cpp) [Seleccionar]
   int suma(arreglo a, int i, int j)
   {
    if(i==0 && j==0)
    return a[i][j];
    else
    if(i>-1)
    if(j>=-1)
    return a[i][j]+suma(a,i,j-1);
    else
    return a[i][j]+suma(a,i-1,j+COLUMNAS-1);
   }

la variable "COLUMNAS" cuando lo declaras y cual es su valor ? O_O



Mod: Obligatorio el uso de etiquetas GeSHi para códigos.
#8
pues en matriz recursiva estoy cero...... por eso pido ayuda al foro si alguien podria hacer algun ejemplo o modificar mi codigo para tener una matriz caracol recursiva, solo quiero saber el metodo para llenar una matriz recursiva de hay me guio en la logica para llenarla al estilo caracol! HELP FORO
#9
O_O gracias camarada seguro debi pegarlo mal recien me di cuenta  gracias por el aporte :D
#10
estoy en un elemento dentro del vector y lo estoy intercambiando a=inicio b= fin luego del intercambio b=inico a=fin