domingo, 31 de octubre de 2010

Deitel_C++_4.21 ¿Qué hace el siguiente programa?


// QUE HACE EL SIGUIENTE PROGRAMA?    
         
#include <iostream>        
using namespace::std;        
         
void Alguna_Funcion ( char b[], int Tamano )  
{         
if ( Tamano > 0 )    
{         
Alguna_Funcion ( &b[1], Tamano - 1 );   
cout << b[0] << " ";    
}         
}         
         
         
int main()        
{         
const int Tamano_Arreglo = 4;     
char A[Tamano_Arreglo] = {'H', 'O', 'L', 'A' };  
         
cout <<"\n\nLos valores en el arreglo son: " << endl;
         
Alguna_Funcion(A, Tamano_Arreglo);        
         
cout << endl;       
         
return 0;        
}         

La ejecución del programa produce:

Los valores en el arreglo son: 
A L O H 


Deitel_C++_4.20 (Reservación de una Aerolínea en C++)


// ESTE ES UN SISTEMA DE RESERVACION DE UNA AEROLINEA      
               
#include <iostream>              
using namespace::std;              
               
#include <iomanip>              
               
int Asignar(int b[], int r);           
               
int main()              
{ // ABRE MAIN            
               
int Fumar[6] = {0};            
int No_Fumar[6] = {0};            
int respuesta, n = 0, s = 1, evaluacion;       
int Contador_Fumar = 0;            
int Contador_No_Fumar = 0;            
               
while ( (Contador_Fumar + Contador_No_Fumar) < 10 )        
{ // ABRE WHILE            
               
if ( 5 == Contador_Fumar )          
{ // ABRE IF            
cout <<"\nDesea Area de No Fumar? ( 1 para si, 0 para no) " << endl;
cin >> respuesta;             
               
if ( 1 == respuesta )          
{               
evaluacion = Asignar( No_Fumar, n ); // SI EL CLIENTE DESEA NO FUMAR SE ENVIA N
if ( 0 == evaluacion )          
Contador_No_Fumar++;               
else               
Contador_Fumar++;               
               
} // CONTADOR NO_FUMAR            
               
else               
cout <<"\nEl proximo vuelo parte en tres horas. " << endl;     
               
} // CIERRA IF            
               
else               
{ // ABRE ELSE            
cout <<"\nDesea area de fumar? (1 para si, 0 para no) "<<endl;    
cin >> respuesta;             
               
if ( 1 == respuesta )          
{               
evaluacion = Asignar( Fumar, s ); // SE ENVIA S PARA INCREMENTAR CONTADOR_FUMAR   
if (0 == evaluacion)            
Contador_No_Fumar++;               
else               
Contador_Fumar++;               
}               
else               
{ // ABRE ELSE            
cout <<"\nDesea Area de No Fumar? ( 1 para si, 0 para no ) " <<endl;
cin >> respuesta;             
if ( 1 == respuesta )          
{               
evaluacion = Asignar(No_Fumar, n );           
if ( 0 == evaluacion )          
Contador_No_Fumar++;               
else               
Contador_Fumar++;               
}               
               
else               
cout <<"\nEl proximo vuelo sale en tres horas. " << endl;     
               
} // CIERRA ELSE            
} // CIERRA ELSE            
               
} // CIERRA WHILE            
               
return 0;              
               
} // CIERRA MAIN            
               

////////////////////////////////////////////////////
// ASIGNAR
//////////////////////////////////////////////////// 
               
int Asignar( int b[], int r )         
{ // ABRE ASIGNAR            
int c, No_Fumar = 0, Fumar = 1;;        
               
for ( c = 1; 5 >= c; c++ )      
{ // ABRE FOR            
               
if ( 0 == b[c] )          
{ // ABRE IF            
cout << "\nAsiento " << c << endl;        
b[c] = 1;             
               
if ( 0 == r )          
return No_Fumar;              
               
else               
return Fumar;              
} // CIERRA IF            
} // CIERRA FOR            
               
} // CIERRA ASIGNAR            

Deitel_C++_4.18 (Programa Incógnita en C++)


// QUE HACE ESTE PROGRAMA?        
            
#include <iostream>           
using namespace::std;           
            
int Que_Es_Esto(int[], int); // FUNCION INCOGNITA       
            
int main()           
            
{            
const int Tamano_Arreglo = 10;        
int A[Tamano_Arreglo] = {1,2,3,4,5,6,7,8,9,10};         
int resultado = Que_Es_Esto(A, Tamano_Arreglo);        
            
cout <<"\nEl resultado es: " << resultado << endl;    
            
return 0;           
}            
            
            
int Que_Es_Esto(int b[], int size)        
{            
if ( size == 1 )       
return b[0];           

else            
return b[ size - 1 ] + Que_Es_Esto( b, size - 1 );
}            


El resultado al ejecutar este programa es la siguiente línea:


El resultado es: 55

Deitel_C++_4.17 (Lanzamiento de Dados en C++)

Lanzamiento de Dados en C++
Escriba un programa que simule el tiro de dos dados. El programa debe utilizar rand para tirar el primer dado y debe utilizar rand de nuevo para tirar el segundo dado. Entonces, se debe calcular la suma de los dos valores. Su programa debe lanzar los dedos 36000 veces. Utilice un arreglo con un sólo subíndice para registrar el número de veces que aparece cada suma posible. Despliegue los resultados en formato tabular. Además, determine si los totales son razonables (es decir, existen 6 maneras de tirar un 7, de manera que aproximadamente un sexto de todos los tiros debe ser 7).


// ESTE PROGRAMA SIMULA 3600 LANZAMIENTOS DE UN DADO

    #include <iostream>
    using namespace::std;
    #include <ctime>                                      
   // CONTIENE EL PROTOTIPO DE LA FUNCION TIME
    #include <cstdlib>                                   
   // CONTIENE EL PROTOTIPO DE LA FUNCION RAND Y SRAND

   int main()


   {                   // ABRE MAIN
    srand( time( 0 ) ); 
    // USA LA HORA ACTUAL COMO SEMILLA PARA PRODUCIR NUMEROS ALEATORIOS 
    // DISTINTOS EN CADA LLAMADA A RAND

    cout <<"\n\nLanzamiento de 3600 jugadas: " << endl;
    int lanzamiento;
    int Frecuencia[13] = {0};                         
    // SE LANZAN DOS DADOS Y SE EVITA EL ELEMENTO 0 DEL ARREGLO

    for ( int i = 1; i <= 3600; i++ )
      {                                                 // ABRE FOR
       lanzamiento = ( 1 + rand() % 6 ) + (1 + rand() % 6 );  
       // AQUI SE SIMULA EL LANZAMIENTO DE LOS DADOS 
       Frecuencia[lanzamiento]++;  
       // SE INCREMENTA EN 1 LA FRECUENCIA DEL NUMERO QUE CAYO

      }                  // CIERRA FOR  

    for ( int n = 2; 12 >= n; n++ ) 
    // ESTE CICLO FOR IMPRIME LAS FRECUENCAS
    cout <<"\nLa frecuencia de " << n << " es: " << Frecuencia[n];
    cout << endl;
    return 0;

   }         

Deitel_C++_4.11 (Ordenamiento Burbuja Mejorado)

Programa que mejora el ordenamiento burbuja.
     //    ESTE PROGRAMA ES UNA MEJORA AL ORDENAMIENTO LINEAL.

 
     #include <iostream>

     using namespace::std;

  

     #include <iomanip>   //PARA PODER USAR setw

 
   int main()


   {

   // AQUI VAN LAS DECLARACIONES DE VARIABLES.



   const int Tamano_Arreglo = 10;

   int A[10] = { 2, 6, 4, 8, 10, 12, 89, 68, 45, 37};  
   //NO SE PUEDE INICIALIZAR SI SE PONE UNA CONSTANTE COMO TAMANO DEL ARREGLO.
   int i, hold, pass, j;

   // TERMINAN LAS DEFINICIONES DE VARIABLES.

    cout << "\n\nESTE PROGRAMA ES UNA MEJORA AL ORDENAMIENTO LINEAL. " << endl;
    cout << "Aqui estan los datos del arreglo en el orden original. " << endl;

  // ESTE CICLO FOR ES PARA IMPRIMIR LOS DATOS DEL ARREGLO A[].


    for ( i = 0; i < Tamano_Arreglo; i++ )

      cout << setw(4) << A[i];

  // TERMINA EL CICLO PARA IMPRIMIR DATOS.

  // ESTOS CICLOS ANIDADOS ORDENAN EL ARREGLO.


    for ( pass = 0; pass < Tamano_Arreglo - 1; pass++ )

      for ( i = 0, j = Tamano_Arreglo -1; i < j; i++, j-- )

      if ( A[i] > A[i+1])

      {

       hold = A[i];

       A[i] = A[i +1];
       A[i + 1] = hold;

      }

  // AQUI TERMINA EL ORDENAMIENTO DEL ARREGLO

  // EN LA ULTIMA PARTE DEL PROGRAMA SE IMPRIMEN LOS DATOS ORDENADOS.

   cout << "\nLos datos en orden ascendente: " <<endl;


   for ( i = 0; i < Tamano_Arreglo; i++ )
     cout << setw(4) << A[i];

   return 0;

  }             

Related Posts Plugin for WordPress, Blogger...