GJ
 

 

Programmer To Students  ( P2S )


 
 


 

 English Version



Guillermo V. Julca
Consultor en Ingenieria del Software
M.S. en Ingenieria del Software
Especialización en Avanzada Programación para Aplicaciones Web, GPA 3.94
B.S. en Ciencias de la Computación
B.S. en Ingenieria de Minas



 C++ Programas  C# Programas  JAVA Programas  Visual Basic Programas

 

C++

 Programa

 Descripcion
 BinToDec.cpp  Escribir un programa que convierta un numero binario a su notacion decimal. Incluir un loop que permita al usuario repetir el proceso para nuevos valores ingresados hasta que el usuario decida terminar el programa.
 NumBack.cpp  Escribir un programa que permita al usuario entrar un numero entero como input y mostrar dicho numero en forma invertida (backwords) como output. El programa debera incluir un loop que permita al usuario repetir esta operacion cuantas veces desee hasta que el/ella decida terminar el programa.
 Nroot.cpp  Un metodod para calcular Q ^(1/n) es el siguiente:
            B = ( (Q/A^(n-1)) + A*(n-1) )/ n
donde:
           Q = es un numero real positivo a evaluar
            n = es un numero entero positivo, n diferente a 1
           B = resultado Si B=A
Proceso:
a) Asumir A=1
b) Calcular B
c) Si A = B entonces el resultado sera B
De lo contrario asignar B a A e ir al paso(b)
Nota: usar la condicion fabs(A-B)<0.001
 PerfectCube.cpp  Escribir un programa que evalue un numero para determinar si este es un Cubo Perfecto o numero de Armstrong(numero diferente a 1). El programa debera incluir un loop que permita al usuario repetir esta operacion hasta que el decida terminar el programa.
Nota: si abc es un cubo perfecto entonces debera cumplir lo siguiente:
            abc = a^3 + b^3 + c^3
e.g.,
153 = 1^3 + 5^3 + 3^3 = 1 + 125 + 27 = 153
 PrimeFactors.cpp

 Escribir un programa que permita al usuario calcular los factores primos de cualquier numero con sus respectivas potencias.
El programa debera incluir un loop que permita al usuario evaluar otro diferente numero repetidamente hasta que el usuario decida finalizar el programa.

Ejemplo; Entre un numero a evaluar : 17424 //input
// Output en pantalla debera mostrarse:
        Factor        Exponente
           2                  4
           3                  2
          11                 2

Desea continuar ( Y/N) ? : _

Note: 17424 = (2^4) * (3^2) * (11^2)
Ayuda: usar el operador de division entera ( / ) y el % operador

 SumSeries.cpp  Escribir un programa para evaluar la siguiente Suma:
1/3 + 1/15 + 1/35 +....+ 1/((2n-1)*(2n+1))
donde 1/((2n-1)*(2n+1)) es el termino n-esimo de la expresion.
El programa debera incluir un valor limite para el n-esimo termino como un adicional dato de entrada y asi se debera mostrar en pantalla la suma calculada como salida.
DigitRepetitions.cpp Escribir un programa que leera un numero entero long y el programa sera capaz de mostrar en pantalla cuantas veces cada digito esta presente en el numero.
Ejemplo, Entrada/Salida:

Entrar un numero a evaluar :  723345167
Digito                 # de Repeticiones
-----                 ----------------
  1                                1
  2                                1
  3                                2
  4                                1
  5                                1
  6                                1
  7                                2
GardenArea.cpp

El area de un jardin rectangular esta dado por la siguiente expresion:
Area = X(30-2X) X pertenece[2,12] X es entero
Escribir un programa que permita mostrar una tabla con los valores de X versus los valores de las Areas respectivas asi como tambien el programa debera ser capaz de calcular y mostrar en pantalla el maximo valor de la Area con su respectivo valor de X que la genera.

Ejemplo de salida:
     X          Area
    ---        ------
     2              52
     3              72
     4              88
      .                ..
      .                ..
      .                ..
    12             72

Maxima Area = 112
valor de X para la maxima Area = 7

RomanNum.cpp Escribir un programa que acepte como entrada un numero entero mayor que cero y menor que 400 en notacion Arabica(ordinaria)y consequentemente el programa debera mostrar en pantalla como salida el numero ingresado pero en notacion Romana. Importante recordar que la notacion Romana utiliza: I para 1,
V para 5, X para 10, L para 50, C para 100. Asimismo recordar que algunos numeros son formados por un tipo de substraccion de un digito Romano; e.g., IV es 4 producido como V menos I, XL es 40, XC es 90 etc. El programa debera incluir un loop que permita al usuario repetir esta calculacion hasta que este decida terminar el programa.
EvaluateFunction.cpp

A) Escribir un programa usando Subrutinas(procesos o funciones)para evaluar la siguiente suma:

f(x) = 1 + x^2/2! + x^4/4! +...........+                                                       x^(2*(n-1))/(2*(n-1))!

Permitir al usuario entrar un valor especifico de x y el numero de terminos a evaluar como entrada.El programa debera ser capaz de mostrar en pantalla como salida la suma calculada.

Ejemplo ( Para Salida ):
Entrar un valor de x a evaluar: 2.5
Entre el numero de terminos deseado para la evaluacion: 8
f(x) = 6.13

A.1) Tratar de resolver el mismo problema usando structures ( estructuras):
Declaration part, main body, and implementation part

A.2) Tratar de resolver el mismo programa usando un Header File

Pseudo.cpp

En este proyecto tu designaras e implementaras una clase que pueda generar una secuencia de numeros enteros denominados pseudoramdom , los cuales son una sequencia de numeros que aparecen en forma aleatoria en diferentes formas. El
metodo usa una congruencia lineal el cual es detallado abajo.
El metodo de congruencia lineal empieza con un numero denominado semilla (seed). En adicion a la semilla, el metodo utiliza otros tres numeros los cuales son llamados multiplicador (multiplier),el incremento(increment) y el residuo (modulus). La formula para generar para generar estos numeros pseudorandoms is simple. El primer numero es:

(multiplier * seed + increment) % modulus

Esta formula usa el C++ % operador, el cual evalua el residuo de una divison entre dos numeros enteros.
Cada vez un nuevo numero aleatorio sera generado, el valor de la semilla (seed) is cambiado a ese nuevo numero.
Por ejemplo nosotros podriamos implementar un pseudorandom numero generador con un multiplier = 40,
increment = 3641, y modulus = 729. Si nosotros elegimos un seed con un valor de 1, entonces la secuencia de numeros
seran procresados como se muestra a continuacion:

Primer numero
=(multiplier * seed + increment) % modulus
=(40 * 1 + 3641) % 729
=36
entonces 36 se convertira en el nuevo valor de el seed

Siguiente numero
=(multiplier * seed + increment) % modulus
=(40 * 36 + 3641) % 729
=707
y 707 sera el valor del nuevo seed

Siguiente numero
=(multiplier * seed + increment) % modulus
=(40 * 707 + 3641) % 729
=574
y 574 sera el valor del nuevo seed, y asi sucesivamente...

Estos particulares valores para el multiplier, increment, y modulus seran buenas
opciones. El pattern generado no se repetira hasta 729 diferentes numeros
producidos. Otras opciones para estas constantes podrian no ser buenos valores.
Para este proyecto, designar e implementar una clase que pueda generar una secuencia de pseudorandom numeros en la forma descrita anteriormente.Los valores iniciales de el seed, multiplier, increment, y modulus deberian ser todos
parametros de el constructor. Ahi tambien deberian estar presente un member function que permita al seed
ser cambiado, un member function que genere y retorne el proximo numero en la secuencia de pseudorandom.

Quadratic.cpp

Una variable de expresion quadratica es una expresion aritmetica de la siguiente
forma ax^2 + bx + c, donde a,b y c son contantes (llamados los
coeficientes) y x es la variable que pede coger diferentes valores.
Especificar,diseñar e implementar una clase que pueda almacenar informacion acerca
de una expresion cuadratica. El default constructor deberia asignar a todos los tres
coeficientes a cero, y otro constructor deberia permitirte
inicializar estos coeficientes. Asi mismo tu deberias implementar algunas constant member functions
las cuales permitiran obtener los valores actuales de los coeficientes.De igual manera otra member function deberia permitir evaluar la expresion cuadratica para un valor determinado de x.
Tambien overload los siguientes operadores(como no member functions) para
evaluar las operaciones indicadas:

Quadratic operator +( const Quadratic& q1, const Quadratic& q2 );

// Postcondition: El valor returnado es la cuadratica expresion obtenida
// al adicionar q1 y q2. Por ejemplo, el c coeficiente de el returnado
// valor de la suma es la suma del coeficiente c del q1 y el c del q2.

Quadratic operator *( double r , const Quadratic& q );

// Postcondition: El returnado valor de la expresion cuadratica obtenida
// al multiplicar cada q coeficiente por el numero r.

Note que el primer argumento de el overloaded operator * es un double
numero ( no es una expresion cuadratica ). Esto permitira ejecutar expresiones tales como 3.25 * q, donde q es una quadratic expression.

Para realizar el test de tu programa tu deberas construir tu propio main body a tu programa.

TDpoint.cpp Specify, design and implement a class that can be used to keep track of the
position of a point in three-dimensional space. For example, consider the point
drawn here:

                                          y-axis |
                                                    |
                                                    |
                                                    |
                                                    |                     x-axis
                                                    .---------------------->
                                                  /
                                                /
                                              /                    . ( 2.5, 0 ,2.0)
                                            /
                                          /
                                        /
                                    z-axis

The point shown above has three coordinates: x = 2.5, y = 0, and z = 2.0.
Include member functions to set a point to a specific location, to shift a point
a given amount along one of the axes, and to retrieve the coordinates of a point.
Also provide member functions that will rotate the point by a specified angle
around a specied axis.
To compute these rotations, you will need a bit of trigonometry. Suppose you have
a point with coordinates x,y,and z. After rotating this point by an angle alpha,the
point will have new coordinates,which we'll call x',y', and z'. The equation for
the new coordinates use the math.h library functions sin and cos, as shown here:

After an alpha rotation around the x-axis:

x' = x
y' = y cos(alpha) - z sin(alpha)
z' = y sin(alpha) + z cos(alpha)

After an alpha rotation around the y-axis :

x' = x cos(alpha) + z sin(alpha)
y' = y
z' = -x sin(alpha) + z cos(alpha)

After an alpha rotation around the z-axis:

x' = x cos(alpha) - y sin(alpha)
y' = x sin(alpha) + y cos(alpha)
z' = z

Note: alpha is in radians

use this formula to convert degrees to radians

R = ( C * PI) / 180

where R : radians
C : degrees
PI : constant pi = 3.1415926....
 

JAVA

 Programa

 Descripcion
 PlanCalendar.java  View Applet
   
   
   
   
   
 
 


Copyright  © 2002-2012                                                                                          GJ  GUILLERMO JULCA