jueves, 26 de febrero de 2015

Hola Mundo en Window Forms Visual C++

1.- Creamos el proyecto en Windows Forms


lunes, 23 de febrero de 2015

STL Lista de Estudiantes Visual C++



#include <iostream>
#include <cstdlib>
#include <list>
#include <string>

using namespace std;

class Student
{
public:

 Student( const char *pszS , int id ) : sName( pszS ) , ssID( id ) {}
 string sName;
 int ssID;
};

bool operator<( const Student &s1 , const Student &s2 )
{
 return s1.ssID < s2.ssID;
}

void displayStudent( list < Student > &students )
{
 auto iter = students.begin();

 while( iter != students.end() )
 {
  Student &s = *iter;
  cout << s.ssID << " - " << s.sName << endl;

  iter++; //se mueve al siguiente elemento de la iteracion
 }
}

int main( int argc , char *argv[] )
{
 //se define la coleccion de estudiantes
 list < Student > students;

 //Agrego 3 objetos estudiantes a la lista
 students.push_back( Student("Christian Kenny" , 10 ) );
 students.push_back( Student("Dariana" , 5 ) );
 students.push_back( Student("Claudia" , 15 ) );

 //muestro la lista
 cout << "La lista original es: " << endl;
 displayStudent( students );

 //Muestro la lista ordenada
 students.sort();
 cout << "\nLa lista ordenada es: " << endl;
 displayStudent( students );

 system("pause");
 return 0;
}


STL String Visual C++


#include <cstdlib>
#include <iostream>
#include <string>

using namespace std; 

//Remueve algunos espacios dentro de string
string removeSpaces( const string &source )
{
 //Se hace una copia de la fuente que nosotros no modificaremos
 string s = source;

 size_t offset;

 while( ( offset = s.find( " " ) ) != string :: npos )
 {
  //remueve el espacio al descubrirlo
  s.erase( offset , 1 );
 }

 return s;
}

//insertamos una frase
string insertPhrase( const string &source )
{
 string s = source;
 size_t offset = s.find("");

 if( offset != string :: npos )
 {
  s.erase( offset , 4 );
  s.insert( offset , "Randall");
 }

 return s;
}



int main( int argc , char *argv[] )
{
 //Se crea un string que es la suma de las 2 strings
 cout << "String1 + String2 = "
   << ( string ("String1") + string("String2") )
   << endl;

 //Creo una prueba del string y luego remuevo los espacios
 string s2("Esta es una prueba de string");

 cout << " < " << s2 << " > menos espacios = < "
  << removeSpaces( s2 ) << " > " << endl;

 //Ahora inserto una frase enmedio de la sentencia usando la palabra para localizacion 
 string s3("Stephen  Davis");
 cout << s3 + " -> " + insertPhrase( s3 ) << endl;

 system("pause");
 return 0;
}

domingo, 22 de febrero de 2015

Template Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

template < class T > T maximum( T t1 , T t2 )
{
 return ( t1 > t2 ) ? t1 : t2;
}

int main( int argc , char *argv[] )
{
 cout << "Maximo de 1 y -2 = " << maximum( 1 , -2 ) << endl;

 cout << "Maximo de 1 y 2.5 = " << maximum < double > ( 1 , 2.5 ) << endl;

 system("pause");
 return 0;
}

Template Vector Visual C++


Vector.h



template < class T >

class Vector
{
public:

 Vector( int nArraySize )
 {
  nSize = nArraySize;
  arreglo = new T[ nArraySize ];
  reset();
 }

 int size()
 {
  return nWriteIndex;
 }

 void reset()
 {
  nWriteIndex = 0;
  nReadIndex = 0;
 }

 void add( const T& object )
 {
  if( nWriteIndex < nSize )
  {
   arreglo[ nWriteIndex++ ] = object;
  }
 }

 T &get()
 {
  return arreglo[ nReadIndex ]; 
 }

protected:

 int nSize;
 int nWriteIndex;
 int nReadIndex;
 T *arreglo;
};

Main.cpp

#include <iostream>
#include <cstdlib>
#include <string>

#include "Vector.h"

using namespace std;

void intFc()
{
 Vector < int > integers( 10 );

 cout << "Introduce el valor para llenar el vector\n"
   << "Introduce un negativo para salir: " << endl;

 for( ; ; )
 {
  int n;
  cin >> n;

  if( n < 0 )
  {
   break;
  }

  integers.add( n );
 }

 cout << "Numeros introducidos por el usuario: " << endl;
 
 for( int i = 0 ; i < integers.size() ; i++ )
 {
  cout << i << " : " << integers.get() << endl;
 }
}

class Name
{
public:

 Name() = default;
 Name( string s ) : name( s ) {}
 const string &display()
 {
  return name;
 }

protected:
 string name;
};

void nameFc()
{
 Vector < Name > names( 10 );

 cout << "Introduce nombres para agregar\n"
   << "Introduce x para salir" << endl;

 for( ; ; )
 {
  string s;
  cin >> s;

  if( s == "x" || s == "X" )
  {
   break;
  }

  names.add( Name( s ) );
 }

 cout << "Nombres introducidos por el usuario: " << endl;

 for( int i = 0 ; i < names.size() ; i++ )
 {
  Name &name = names.get();
  cout << i << " : " << name.display() << endl;
 }
}

int main( int argc , char *argv[] )
{
 intFc();
 nameFc();

 system("pause");
 return 0;
}

Herencia con Virtual Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

class Furniture
{
public:

 Furniture( int w ) : weight( w ) {}
 int weight;
};

class Bed : virtual public Furniture
{
public:

 Bed( int w = 0 ) : Furniture( w ) {}
 void sleep()
 {
  cout << "Dormir" << endl;
 }
};

class Sofa : virtual public Furniture
{
public:

 Sofa( int w = 0 ) : Furniture( w ) {}
 void watchTV()
 {
  cout << "Miro TV" << endl;
 }
};

class SleeperSofa : public Bed , public Sofa
{
public:

 SleeperSofa( int w ) : Furniture( w ) {}
 void foltOut()
 {
  cout << "Desplegable" << endl;
 }
};

int main( int argc , char *argv[] )
{
 SleeperSofa ss( 10 );

 cout << "Peso: " << ss.weight << endl;

 system("pause");
    return 0;
}


Herencia Multiple Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

class Bed
{
public:

 Bed() {}
 void sleep()
 {
  cout << "Dormir" << endl;
 }

 int weight;
};

class Sofa
{
public:

 Sofa() {}
 void watchTV()
 {
  cout << "Miro Tele" << endl;
 }
};

class SleeperSofa : public Bed , public Sofa //la herencia multiple
{
public:

 SleeperSofa() {}
 void foldOut()
 {
  cout << "Plegable" << endl;
 }
};

int main( int argc , char *argv[] )
{
 SleeperSofa ss;

 ss.watchTV();

 ss.foldOut();

 ss.sleep();

 system("pause");
 return 0;
}

Excepcion Factorial Visual C++



#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

int factorial( int n )
{
 if( n < 0 )
 {
  //lanza una excepcion
  throw string("Argumento no debe de ser negativo");
 }

 int cont = 1;

 while( n > 0 )
 {
  cont *= n;
  n--;
 }

 return cont;
}

int main( int argc , char argv[] )
{
 try
 {
  cout << "Factorial de 3 es : " << factorial( 3 ) << endl;

  //aqui genera una excepcion
  cout << "Factorial de -1 es : " << factorial( -1 ) << endl;

  //ya no lo hizo
  cout << "Factorial de 5 es : " << factorial( 5 ) << endl;
 } //una vez verificado por el try cacha algun error si lo hay

 catch( string error )
 {
  cout << "Error ocurrido: " << error << endl;
 }

 catch( ... ) //se usa para definir los default
 {
  cout << "Default catch..." << endl;
 }

 system("pause");
 return 0;
}


Mover Operator Visual C++



#include <iostream>
#include <cstdlib>
#include <cstring>

using namespace std;

class MyContainer
{
public:

 MyContainer( int nS , const char *pS ) : nSize( nS )
 {
  pString = new char[ nSize ];
  strcpy( pString , pS );
 }

 ~MyContainer()
 {
  delete pString;
  pString = nullptr;
 }

 //copiando constructor
 MyContainer( const MyContainer &s )
 {
  copyIt( *this , s );
 }

 MyContainer &operator=( MyContainer &s )
 {
  delete pString;
  copyIt( *this , s );
  return *this;
 }

 //mueve el constructor
 MyContainer &operator=( MyContainer &&s )
 {
  delete pString;
  copyIt( *this , s );
  return *this;
 }

protected:

 static void moveIt( MyContainer &tgt , MyContainer &src )
 {
  cout << "Moviendo " << src.pString << endl;
  tgt.nSize = src.nSize;
  tgt.pString = src.pString;
  src.nSize = 0;
  src.pString = nullptr;
 }

 static void copyIt( MyContainer &tgt , const MyContainer &src )
 {
  cout << "Copiando " << src.pString << endl;
  delete tgt.pString;
  tgt.nSize = src.nSize;
  tgt.pString = new char[ tgt.nSize ];
  strncpy( tgt.pString , src.pString , tgt.nSize );
 }

 int nSize;
 char *pString;
};

MyContainer fn( int n , const char *pString )
{
 MyContainer b( n , pString );
 return b;
}

int main( int argc , char *argv[] )
{
 MyContainer mc( 100 , "Original");

 mc = fn( 100 , "Creada en fn()");

 system("pause");
 return 0;
}

Operator Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

class DArray
{
public:

 DArray( int nLengthOfArray = 0 ) : nLength( nLengthOfArray ) , pArray( nullptr )
 {
  cout << "Creando el tamaño de DArray = " << nLength << endl;

  if( nLength > 0 )
  {
   pArray = new int[ nLength ];
  }
 }

 DArray( DArray &da )
 {
  cout << "Copiando el tamaño de DArray = " << da.nLength << endl;
  copyDArray( da );
 }

 ~DArray()
 {
  deleteDArray();
 }

 //opearador de asignacion
 DArray &operator = ( const DArray &s )
 {
  cout << "Asignando el tamaño fuente = " << s.nLength
    << " al tamaño objetivo: " << this -> nLength << endl;

  //elimina las siguientes cosas
  deleteDArray();
  copyDArray( s );

  //regresa la referencia del objeto
  return *this;
 }

 int &operator[]( int index )
 {
  return pArray[ index ];
 }

 int size()
 {
  return nLength;
 }

 void display( ostream &out )
 {
  if( nLength > 0 )
  {
   out << pArray[ 0 ];

   for( int i = 1 ; i < nLength ; i++ )
   {
    out << " , " << pArray[ i ];
   }
  }
 }

protected:

 void copyDArray( const DArray &da );
 void deleteDArray();

 int nLength;
 int *pArray;
};

void DArray :: copyDArray( const DArray &source )
{
 nLength = source.nLength;
 pArray = nullptr;

 if( nLength > 0 )
 {
  pArray = new int[ nLength ];

  for( int i = 0 ; i < nLength ; i++ )
  {
   pArray[ i ] = source.pArray[ i ];
  }
 }
}

void DArray :: deleteDArray()
{
 nLength = 0;
 delete pArray;
 pArray = nullptr;
}

int main( int argc , char *argv[] )
{
 DArray da1( 5 );

 for( int i = 0 ; i < da1.size() ; i++ )
 {
  da1[ i ] = i;
 }

 cout << "da1 = "; 
 da1.display( cout );
 cout << endl;

 DArray da2 = da1;

 da2[ 2 ] = 20;

 cout << "da2 = ";
 da2.display( cout );
 cout << endl;

 da2 = da1;
 cout << "da2 = ";
 da2.display( cout );
 cout << endl;

 system("pause");
 return 0;
}


Funciones Virtual Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

class Student
{
public:

 virtual void calTuition()
 {
  cout << "Se encuentra en Student :: calTuition()" << endl;
 }
};

class GraduateStudent : public Student
{
public:

 void calTuition()
 {
  cout << "Se encuentra en Student :: calTuition()" << endl;
 }
};

void fn( Student &x )
{
 x.calTuition();
}

int main( int argc , char *argv[] )
{
 Student s;
 fn( s );

 GraduateStudent gs;
 fn( gs );

 system("pause");
 return 0;
}



Herencia Visual C++



#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

//defino una clase vacia
class Advisor {};

class Student
{
public:

 Student( const char *pName = "no name" ) : name( pName ) , average( 0.0 ) , semesterHours( 0 )
 {
  cout << "Construyendo Student " << name << endl;
 }

 void addCourse( int hours , float grade )
 {
  cout << "Agregando grado a " << name << endl;
  average = semesterHours * average + grade;
  semesterHours += hours;
  average = average / semesterHours;
 }

 int hours()
 {
  return semesterHours;
 }

 double gpa()
 {
  return average;
 }

protected:
 string name;
 double average;
 int semesterHours;
};

class GraduateStudent : public Student
{
public:

 GraduateStudent( const char *pName , Advisor adv , double qG = 0.0 )
 {
  cout << "Construyendo graduate student " << pName << endl;
 }

 double qualifier()
 {
  return qualifierGrade;
 }

protected:
 Advisor advisor;
 double qualifierGrade;
};

int main( int argc , char *argv[] )
{
 Advisor adv;

 Student s1("Kenny");
 GraduateStudent s2("Dariana" , adv , 1.5 );

 s1.addCourse( 3 , 2.5 );
 s2.addCourse( 3 , 3.0 );

 cout << "Dariana grado de calificacion: " << s2.qualifier() << endl;

 system("pause");
 return 0;
}



Miembros Estaticos Visual C++



#include <iostream>
#include <cstdlib>
#include <string>

using namespace std;

class Student
{
public:

 Student( const char *pN = "no name" ) : sName( pN )
 {
  noOfStudents++; 
 }

 ~Student()
 {
  noOfStudents--;
 }

 const string &name()
 {
  return sName;
 }

 static int number()
 {
  return noOfStudents;
 }

protected:

 string sName;
 static int noOfStudents;
};

int Student :: noOfStudents = 0;

int main( int argc , char *argv[] )
{
 Student s1("Kenny");
 Student *pS2 = new Student("Nicole");

 cout << "Creado: " << s1.name() 
  << " y " << pS2 -> name() << endl;

 cout << "Numero de estudiantes: " << s1.number() << endl;


 cout << "Eliminando: " << pS2 -> name() << endl;
 delete pS2;
 cout << "Numero de estudiantes: " << Student :: number() << endl;

 system("pause");
 return 0;
}

Mover Constructor Copia Visual C++



#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

class Person
{
public:

 Person( const char *pN )
 {
  pName = new string( pN );
  cout << "Construyendo " << pName << endl;
 }

 Person( Person &p )
 {
  cout << "Copiando " << pName << endl;
  pName = new string("Copia de " );
  *pName += *p.pName;
 }

 Person( Person &&p )
 {
  cout << "Moviendo " << *p.pName << endl;
  pName = p.pName;
  p.pName = nullptr;
 }

 ~Person()
 {
  if( pName )
  {
   cout << "Destruyendo " << *pName << endl;
   delete pName;
  }

  else
  {
   cout << "Destruyendo objeto vacio" << endl;
  }
 }

protected:
 string *pName;
};

Person fn2( Person p )
{
 cout << "Entrando a fn2" << endl;
 return p;
}

Person fn1( char *pName )
{
 cout << "Entrando a fn1" << endl;
 return fn2( *new Person( pName ) );
}

int main( int argc , char *argv[] )
{
 Person s( fn1("Kenny") );

 system("pause");
 return 0;
}



Constructor Copia Visual C++



#include <cstdlib>
#include <iostream>
#include <string>

using namespace std;

class Student
{
public:

 //constructor convensional
 Student( const char *pName = "No name" , int ssId = 0 ) : name( pName ) , id( ssId )
 {
  cout << "Construyendo: " << name << endl;
 }

 //constructor copy
 Student( const Student &s ) : name("Copia de " +  s.name ) , id( s.id )
 {
  cout << "Construyendo: " << name << endl;
 }

 ~Student()
 {
  cout << "Destruyendo: " << name << endl;
 }

protected:
 int id;
 string name;
};

//Recibe su argumento por valor
void fn( Student copy )
{
 cout << "En la funcion" << endl;
}

int main( int argc , char *argv[] )
{
 Student kenny("Kenny" , 1234 );
 cout << "Llamando a la funcion" << endl;
 fn( kenny );
 cout << "Regresando a main" << endl;

 system("pause");
 return 0;
}


Constructores y Destructores Visual C++



#include <cstdlib>
#include <iostream>

using namespace std;

class Course
{
public:

 Course()
 {
  cout << "Construyendo Course" << endl;
 }

 ~Course()
 {
  cout << "Destruyendo Course" << endl;
 }
};

class Student
{
public:

 Student()
 {
  cout << "Construyendo Student" << endl;
 }

 ~Student()
 {
  cout << "Destruyendo Student" << endl;
 }
};

class Teacher
{
public:

 Teacher()
 {
  cout << "Construyendo Teacher" << endl;
  pC = new Course;
 }

 ~Teacher()
 {
  cout << "Destruyendo Teacher" << endl;
  delete pC;
 }

protected:
 Course *pC;
};

class TutorPair
{
public:

 TutorPair()
 {
  cout << "Construyendo TutorPair" << endl;
 }

 ~TutorPair()
 {
  cout << "Destruyendo TutorPair" << endl;
 }

protected:
 Student s;
 Teacher t;
};

TutorPair *fn()
{
 cout << "Creando un objeto en la funcion fn" << endl;
 TutorPair tp;

 cout << "Asignando tp fuera de la heap" << endl;
 TutorPair *pTP = new TutorPair;

 cout << "Regrezando de fn()" << endl;
 return pTP;
}


int main( int argc , char *argv[] )
{
 TutorPair *ptReturned = fn();

 cout << "Regrezando el objeto de heap para la heap" << endl; 
 delete ptReturned;

 system("pause");
 return 0;
}




Arreglo de Objetos Visual C++



#include <iostream>
#include <cstdlib>

using namespace std;

class Student
{
public:

 Student()
 {
  cout << "Construyendo Student" << endl;
 }
};

int main( int argc , char *argv[] )
{
 cout << "Construyendo un arreglo que contiene 5 objetos Student" << endl;

 Student s[ 5 ];

 system("pause");
 return 0;
}



Lista Ligada con Objetos y Punteros Visual C++



#include <cstdlib>
#include <iostream>
#include <cstdio>
#include <cstring>

using namespace std;

class NameDataSet
{
public:
 string sName;

 //la liga de la siguiente entrada de la lista
 NameDataSet *pNext;
};

//el puntero de la primera entrada de la lista
NameDataSet *pHead = nullptr;

//funcion agregar para las entradas
void add( NameDataSet *pNDS )
{
 //puntero de la entrada actual del inicio de la lista
 pNDS -> pNext = pHead;

 //punto de la cabeza del puntero de la entrada actual
 pHead = pNDS;
}

//funcion obtener dato - lee el nombre y seguro social y regreza nulo
NameDataSet *getData()
{
 //lee el primer nombre
 string name;
 cout << "Nombre: ";
 cin >> name;

 //si el nombre introducido es exit se sale
 if( name == "exit" )
 {
  return nullptr;
 }

 //obtiene una nueva entrada y rellena los valores
 NameDataSet *pNDS = new NameDataSet;
 pNDS -> sName = name;
 pNDS -> pNext = nullptr;

 return pNDS;
}

int main( int argc , char *argv[] )
{
 cout << "Lee los nombres de los estudiantes\n" << "Presiona exit si quieres salir" << endl;

 //Creo mi objeto
 NameDataSet *pNDS;

 while( pNDS = getData() )
 {
  //agrega los objetos
  add( pNDS );
 }

 cout << "Entradas: " << endl;

 for( NameDataSet *pIter = pHead ; pIter ; pIter = pIter -> pNext )
 {
  cout << pIter -> sName << endl;
 }

 system("pause");
 return 0;
}



Apuntar Objetos a Funciones Visual C++


 
#include <cstdlib>
#include <iostream>

using namespace std;

class Student
{
public:
 int semesterHours;
 double gpa;
};

void someFn( Student *pS )
{
 pS -> semesterHours = 10;
 pS -> gpa = 3.0;
 cout << "El valor de pS -> gpa es: " << pS -> gpa << endl;
}

int main( int argc , char *argv[] )
{
 Student s;
 s.gpa = 0.0;

 cout << "El valor de s.gpa es: " << s.gpa << endl;

 someFn( &s );

 cout << "El valor de s.gpa es: " << s.gpa << endl;

 system("pause");
 return 0;
}

Apuntando a un Objeto Visual C++



#include <cstdlib>
#include <iostream>

using namespace std;

class Student
{
public:

 int semesterHours;
 double gpa;
 double addCourse( int hours , double grade );
};

int main( int argc , char *argv[] )
{
 //Creamos un objeto
 Student s;
 s.gpa = 3.0;

 //Creo un puntero al objeto sP
 Student *pS;

 //hacemos que el puntero apunte al primer objeto
 pS = &s;

 cout << "s.gpa: " << s.gpa << "\n" << "pS -> gpa: " << pS -> gpa << endl;

 system("pause");
 return 0;
}


Funciones a Objetos Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

class Student
{
public:
 int semesterHours;
 double gpa;
};

void someFn( Student copyS )
{
 copyS.semesterHours = 10;
 copyS.gpa = 3.0;
 cout << "El valor de copyS.gpa es: " << copyS.gpa << endl;
}

int main( int argc , char *argv[] )
{
 Student s;
 s.gpa = 0.0;

 //mostrar los valores antes de la funcion
 cout << "s.gpa: " << s.gpa << endl;

 cout << "Llamando a la funcion" << endl;

 someFn( s );

 cout << "Ahora regresa el valor" << endl;

 cout << "s.gpa: " << s.gpa << endl;

 system("pause");
 return 0;
}


Clases Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

class Student
{
public:

 double addCourse( int hour , double grade )
 {
  //calcula la suma de todos los cursos y el promedio
  double weightedGPA;

  weightedGPA = semesterHours * gpa;

  //se agrega el nuevo curso
  semesterHours += hour;
  weightedGPA += hour * grade;
  gpa = weightedGPA / semesterHours; 

  //regresa el nuevo gpa
  return gpa;
 }

 int semesterHours;
 double gpa;

};

int main( int argc , char *argv[] )
{
 //Creo un objeto Student
 Student s;
 s.semesterHours = 3;
 s.gpa = 3.0;

 //los valores antes de la llamada
 cout << "Antes s: " << s.semesterHours << " , " << s.gpa << endl;

 cout << "Agregando 3 horas con un grado de 4.0" << endl;

 s.addCourse( 3 , 4.0 );

 cout << "Despues s: " << s.semesterHours << " , " << s.gpa << endl;

 system("pause");

 return 0;
}


Creando Librerias Propias Visual C++


Saving.h

class Saving
{
public:

 double deposit( double amount );

 unsigned int accountNumber;
 double balance;
};

Saving.cpp

#include <cstdlib>
#include <iostream>
#include "Saving.h"


double Saving :: deposit( double amount )
{
 balance += amount;
 return balance;
}

Main.cpp

#include <cstdlib>
#include <iostream>
#include "Saving.h"

using namespace std;


int main( int argc , char *argv[] )
{
 Saving s;

 s.accountNumber = 123456;
 s.balance = 0.0;

 cout << "Depositando 10 a la cantidad" << endl;

 s.deposit( 10 );

 cout << "El balance es: " << s.balance << endl;

 system("pause");
 return 0;
}

Arreglo Punteros Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
 //declarando una cadena
 const char *cadena = "Kenny";

 cout << "El arreglo es: " << cadena << endl;

 //muestra la cadena en un arreglo
 cout << "Muestra la cadena en un arreglo\n" << endl;

 for( int i = 0 ; i < 5 ; i++ )
 {
  cout << cadena[ i ];
 }

 cout << endl;


 //usar el tipo aritmetico de punteros
 cout << "Muestra la cadena en un arreglo: ";
 const char *pCadena = cadena;

 while( *pCadena )
 {
  cout << pCadena;
  pCadena++;
 }

 cout << endl;

 system("pause");
 return 0;
}

Tamaño En Memoria de Variables Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
 int start;
 int n;
 long l;
 long long ll;
 float f;
 double d;
 long double ld;
 int end;

 //Establesco el modo de salida en hexadecimal
 cout.setf( ios::hex );
 cout.unsetf( ios::hex );


 //salida de cada variable en el orden que se almacenan en memoria
 cout << "--- = " << &start << endl;
 cout << "&n = " << &n << endl;
 cout << "&l = " << &l << endl;
 cout << "&ll = " << &ll << endl;
 cout << "&f = " << &f << endl;
 cout << "&d = " << &d << endl;
 cout << "&ld = " << &ld << endl;
 cout << "--- = " << &end << endl;

 system("pause");
 return 0;
}

Concatenar Cadenas Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

//prototipos de funcion
void concatenar( char arreglo[] , const char size[] );

int main( int argc , char *argv[] )
{
 //leer la primera cadena
 char cadena1[ 256 ];
 cout << "Introduce texto: ";
 cin.getline( cadena1 , 256 );

 char cadena2[ 128 ];
 cout << "Introduce otro texto: ";
 cin.getline( cadena2 , 128 );


 //concatenar con el primero
 concatenar( cadena1 , " - " );

 //concatenar las dos
 concatenar( cadena1 , cadena2 );

 // y mostrar el resultado
 cout << "\n" << cadena1 << endl;

 system("pause");

 return 0;
}

void concatenar( char arreglo[] , const char size[] )
{
 //encuentra el final de la primera cadena
 int index = 0;

 while( arreglo[ index ] )
 {
  index++;
 }

 int source = 0;

 while( size[ source ] )
 {
  arreglo[ index ] = size[ source ];
  index++;
  source++;
 }

 arreglo[ index ] = '\0';
}

Arreglo Caracteres Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

void mostrarArreglo( char arreglo[] , int tam );

int main( int argc , char *argv[] )
{
	char nombre[] = {'K' , 'e' , 'n' , 'n' , 'y'};

	mostrarArreglo( nombre , 5 );

	cout << endl;

	system("pause");

	return 0;
}

void mostrarArreglo( char arreglo[] , int index )
{
	for( int i = 0 ; i < index ; i++ )
	{
		cout << arreglo[ i ];
	}
}

Arreglos Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

//Declaracion de prototipos
int leerArreglo( int arregloEntero[] , int numElementos );
int sumaArreglo( int arregloEntero[] , int numElementos );
void mostrarArreglo( int arregloEntero[] , int numElementos );

void mensaje( void )
{
 cout << "Este programa suma los valores introducidos por el usuario\n"
   << "Termina introduciendo un numero negativo" << endl;

 return;
}


int main( int argc , char *argv[] )
{
 mensaje();

 //inicializo los valores del arreglo 
 int valores[ 128 ];

 //mando a llamar mi funcion que recibe los valores
 int numeroValores = leerArreglo( valores , 128 );

 //Ahora la salida de los valores y la suma
 mostrarArreglo( valores , numeroValores );

 cout << "La suma es: " << sumaArreglo( valores , numeroValores ) << endl;

 system("pause");

 return 0;
}

int leerArreglo( int arreglo[] , int index )
{
 int valor;

 for( valor = 0 ; valor < index ; valor++ )
 {
  int n;
  cout << "Introduce numero: ";
  cin >> n;

  //si es negativo termina de introducir numeros
  if( n < 0 )
   break;

  arreglo[ valor ] += n;
 }

 //regresa el numero de valores leidos 
 return valor;
}

void mostrarArreglo( int arreglo[] , int index )
{
 cout << "Los valores del arreglo son" << endl;

 for( int i = 0 ; i < index ; i++ )
 {
  cout << i << " : " << arreglo[ i ] << endl;
 }

 cout << endl;
}

int sumArreglo( int arreglo[] , int index )
{
 int cont = 0 ;

 for( int i = 0 ; i < index ; i++ )
 {
  cont += arreglo[ i ];
 }

 return cont;
}

Funcion Con Parametros Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

//funcion cuadrado de un numero
double cuadrado( double valor )
{
 return valor * valor;
}

void explicacionProblema( void )
{
 cout << "Este programa lanza el cuadrado de un numero"
   << "y va acumulando los valores de estos\n" << endl;
 return;
}

double acumularValor()
{
 double cont = 0.0;


 for( ; ; )
 {
  double valor = 0.0;
  cout << "Introduce numero: ";
  cin >> valor;

  //si es negativo termina de acumular
  if( valor < 0.0 )
   break;

  //Realiza el cuadrado del numero
  int valorCuadrado = cuadrado( valor );

  cont += valorCuadrado;
 }

 return cont;
}

int main( int argc , char *argv[] )
{
 explicacionProblema();

 for( ; ; )
 {
  cout << "\nIntroduce una secuencia" << endl;
  double valor = acumularValor();

  if( valor <= 0.0 )
   break;

  cout << "El total acumulado es: " << valor << endl;
 }

 system("pause");
 return 0;
}

Funciones Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

//primera funcion 
void displayExplanation( void )
{
 cout << "Este programa suma diferentes series\n"
   << "de numeros de cada secuencia\n"
   << "termina el programa poniendo un numero negativo\n"
   << "en la secuencia vacia" << endl;

 return;
}

//segunda funcion
int sumSequence( void )
{
 int cont = 0;


 for( ; ; )
 {
  int valor = 0;
  cout << "Introduce numero: ";
  cin >> valor;

  //si es negativo cierra
  if( valor < 0 )
   break;

  cont += valor;
 }

 return cont;
}

int main( int argc , char *argv[] )
{
 //mando a llamar las intrucciones de la funcion
 displayExplanation();

 for( ; ; )
 {
  cout << "Introduce la siguiente secuencia: ";
  int valor = sumSequence();

  //termina el ciclo cuando se introduce cero
  if( valor == 0 )
   break;

  cout << "Total acumulado: " << valor << endl;
 }

 system("pause");
 return 0;
}

If Mayor o Menor Visual C++


#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
 //Entrada del primer argumento
 int arg1;
 cout << "Dame primer numero: ";
 cin >> arg1;

 //Entrada del segundo argumento
 int arg2;
 cout << "Dame segundo numero: ";
 cin >> arg2;


 //Ahora comparo con if
 if( arg1 > arg2 )
 {
  cout << "El primer numero es mayor al segundo" << endl;
 }

 else
 {
  cout << "El segundo numero es mayor al primero" << endl;
 }

 system("pause");
 return 0;
}

For Numeros Primos Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char argv[] )
{
	cout << "Los primos menos de 20 son: ";
	
	for( int n : { 1 , 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 } )
	{
		cout << n << " , ";
	}

	cout << endl;

	return 0;
}

For Anidado Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv )
{
 cout << "## Este programa suma diferentes series de numeros\n"
   << "Termina cada secuencia\n"
   << "al introducir un numero negativo\n"
   << "Termina todo el programa poniendo 2 numeros negativos\n\n\n";

 int cont;

 for( ; ; )
 {

  cont = 0;
  cout << "\nEmpieza la nueva secuencia\n";

  for( ; ; )
  {
   int numero = 0;
   cout << "Introduce numero: ";
   cin >> numero;

   if( numero < 0 )
   {
    break;
   }

   cont += numero;
  }

  if( cont == 0 )
   {
    break;
   }

  cout << "Total: " << cont;
 }

 system("pause");
 return 0;
}

Ciclo For Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
	int cont;

	cout << "Dame el numero para la cuenta atras: ";
	cin >> cont;

	for( ; cont > 0 ; )
	{
		cont -= 1;

		cout << "Quedan " << cont << " numeros para terminar" << endl;
	}

	system("pause");
	return 0;
}

Centinela Visual C++


#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
 int cont = 0;

 cout << "Introduce numeros, el programa termina al poner un numero negativo" << endl;

 for( ; ; )
 {

  int numero;
  cout << "Introduce numero: ";
  cin >> numero;

  if( numero < 0 )
  {
   break; //termina
  }

  //numeros acumulados
  cont += numero;
 }

 cout << "Numeros almacenados: " << cont << endl;

 system("pause");
 return 0;
}

Prueba Logica Visual C++


#include <cstdio>
#include <cstdlib>
#include <iostream>

using namespace std;

int main( int argc , char *argv[] )
{
 //Establezco mi salida para formato hexadecimal
 cout.unsetf( cout.dec );
 cout.setf( cout.hex );

 //inicializo dos argumentos
 int arg1 = 0x78ABCDEF;
 int arg2 = 0x12345678;

 //Ahora realizo cada operacion en turno
 //primero el operador unario NOT
 cout << "arg1 = 0x " << arg1 << endl;
 cout << "~arg1 = 0x " << ~arg1 << "\n" << endl;
 cout << "arg2 = 0x " << arg2 << endl;
 cout << "~arg2 = 0x " << ~arg2 << "\n" << endl;

 //Ahora los operadores binarios
 cout << "  0x" << arg1 << "\n"
   << "& 0x" << arg2 << "\n"
   << "----------- " << "\n"
   << "  0x" << ( arg1 & arg2 ) << "\n"
   << endl;

 cout << "  0x" << arg1 << "\n"
   << "| 0x" << arg2 << "\n"
   << "  0x" << ( arg1 | arg2 ) << "\n"
   << endl;

 cout << "  0x" << arg1 << "\n"
   << "^ 0x" << arg2 << "\n"
   << "----------- " << "\n"
   << "  0x" << ( arg1 ^ arg2 ) << "\n"
   << endl;

 system("pause");

 return 0;
}