21 5 19 Guia de Practicas - LABORATORIO P y FA
21 5 19 Guia de Practicas - LABORATORIO P y FA
21 5 19 Guia de Practicas - LABORATORIO P y FA
Ejemplos en C/C++
# include <iostream>
int main(){
printf("\n");
printf("hola");
printf("\n");
printf("\n");
system("pause");
return 0;
}
*******************************************************
# include <iostream>
using namespace std;
int main(){
char nombre[20];
cout<<"Nombre";
cin.getline(nombre,30);
cout<<"Buenos dias"<<nombre;
system("pause");
return 0;
}
ÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇÇ
1. La fuerza de atracción entre dos masas, m1 y m2 separadas por una distancia d, está dada por la
fórmula :
# include <iostream>
# include <cstdlib>
using namespace std;
# define G 6.673E-8
int main(){
int m1,m2,d;
double F;
printf("Calculando fuerza de atraccion entre dos masas: ");
printf("\nMasa 1 (en gramos): ");
scanf("%i",&m1);
printf("\nMasa 2 (en gramos): ");
scanf("%i",&m2);
printf("\nDistancia entre las masas (en cms): ");
scanf("%i",&d);
F=(G*m1*m2)/(d*d);
printf("\nFuerza gravitacional entre ellas: %8.2lf dinas",F);
printf("\n");
system("pause");
return 0;
}
2. La famosa ecuación de Einstein para conversión de una masa m en energía viene dada por la fórmula:
E=mc2, donde c es la velocidad de la luz y su valor es: c=2.99792458x10 10 cm/sg. Elaborar un programa
que lea una masa en gramos y obtenga la cantidad de energía producida cuando la masa se convierte en
energía. Nota: Si la masa se da en gramos, la fórmula produce la energía en ergios.
#include<iostream>
#include<cstdlib>
#include<math.h>
using namespace std;
# define c 2.99792458E10
int main(){
int m;
double E;
printf("Calculo de la energia en ergios utilizando ecuacion de Einstein\n") ;
printf("Ingrese la masa en gramos: ") ;
scanf("%i",&m);
E=m*pow(c,2);
//E=m*c*c;
printf("La energia en ergios es: %8.2lf \n",E);
return 1;
}
3. Elaborar un programa para convertir una medida dada en pies a sus equivalentes en: a) yardas; b)
pulgadas; c) centímetros, y d) metros; donde (1 pie = 12 pulgadas, 1 yarda = 3 pies, 1 pulgada = 2,54 cm,
1m = 100 cm). Leer el número de pies y mostrar por pantalla el número de yardas, pies, pulgadas,
centímetros y metros.
4. Elabore un programa que calcule e imprima el costo de producción de un artículo, teniendo como datos la
descripción y el número de unidades producidas. El costo se calcula multiplicando el número de unidades
producidas por un factor de costo de materiales de 3.5 y sumándole al producto un costo fijo de 10000.
5. Elaborar un programa que calcule e imprima el costo de un terreno cuadrado o rectangular, teniendo
como datos la anchura y la longitud en metros, y el costo del metro cuadrado.
6. Elaborar un programa para calcular el promedio de calificaciones de un estudiante. Los datos disponibles
son el nombre y las cuatro calificaciones de los exámenes. La información requerida es el Nombre y las
calificaciones. La calificación final es obtenida al multiplicar las calificaciones 1, 2, 3 y 4 por los
porcentajes 30%, 20%, 10% y 40%, respectivamente, y sumando los productos
7. La velocidad de la luz es 300,000 kilómetros por segundo. Elaborar un programa que lea un tiempo en
segundos e imprima la distancia que recorre en dicho tiempo.
9. Una temperatura en grados Centígrados (C) se puede convertir a su equivalente Fahrenheit (F) con la
formula:
10. Elaborar un programa que lea el artículo y su costo: la utilidad es el 150% y el impuesto es el 19%;
calcular e imprimir artículo, utilidad, impuesto y precio de venta.
11. Elaborar un programa que permita leer valores para X, Y, Z, W; e imprima el valor de F.
12. Elaborar un programa que lea el radio (r) de una esfera, calcule e imprima el volumen y el área.
4r3
VOLUMEN = AREA = 4πr2
#include<iostream> 3
#include<cstdlib>
#include<math.h>
using namespace std;
int main(){
float w,pi=3.14;
double z;
cout<<"Hallando z=(1/(raizcuadrada(2*pi)))*exponencial(-(w*w/2))";
printf("\n Ingrese w: ");
scanf("%f",&w);
z=(1/sqrt(2*pi))*exp(-(pow(w,2)/2));
printf("\n El valor de z = %lf",z);
return 1;
}
14. Elaborar un programa que lea la cantidad de dólares a comprar y el tipo de cambio (costo de un dólar) en:
yenes, pesetas, libras esterlinas y nuevos soles; calcular e imprimir la cantidad a pagar en yenes,
pesetas, libras esterlinas y nuevos soles.
15. Elaborar una programa que permita leer el tamaño de un ángulo en radianes e imprimir la tangente,
cotangente, secante y cosecante.
16. Elaborar un programa que permita leer el tamaño de un ángulo en grados e imprima el seno, coseno y
arco tangente. Deben convertirse los grados leídos a radianes antes de hacer los cálculos.
12a1/2
Z = b3/4
# include <iostream>
# include <math.h>
using namespace std;
int main(){
float a,b;
double Y,Z,W;
cout<<"\n Ingrese valores de a,b; para hallar Y,Z,W";
cout<<"\n Valor de a: ";
cin>>a;
cout<<"\n Valor de b: ";
cin>>b;
Y=3*pow(a,2)*pow(b,2)*sqrt(2*a);
Z=(12*sqrt(a))/pow(b,0.75);
W=sqrt(pow(2,a)*a)*(3*pow(a,2)*pow(b,2)*sqrt(2*a));
cout<<"\n Y = "<<Y;
cout<<"\n Z = "<<Z;
cout<<"\n W = "<<W;
}
Ejemplos en C/C++
1. Elabore un programa para calcular e imprimir el precio de un terreno del cual se tiene los siguientes
datos: largo, ancho y precio por metro cuadrado. Si el terreno tiene mas de 400 metros cuadrados se
hace un descuento del 10%.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
float l,a,p;
double pt,area;
cout<<"\n Calculo del precio de un terreno: ";
cout<<"\n Largo: ";
cin>>l;
cout<<"\n Ancho: ";
cin>>a;
cout<<"\n Precio por metro cuadrado: ";
cin>>p;
pt=l*a*p;
area=l*a;
if(area>400)
pt=0.9*pt;
cout<<"\n El precio del terreno es: "<<pt;
return 0;
}
2. Elabore un programa para calcular e imprimir los valores de X y Y, teniendo como entrada el valor de X y
calculando el de Y de acuerdo con las siguientes condiciones
Si X < 0 entonces Y = 3X + 6
Si X > = 0 entonces Y = X2 + 6
3. De acuerdo con la clase de sus ángulos los triángulos se clasifican en:
Rectángulo tiene un ángulo recto (igual a 90°)
Obtusángulo tiene un ángulo obtuso (mayor que 90° pero menor que 180°)
Acutángulo los tres ángulos son agudos (menor que 90°)
Elaborar un programa que permita leer el tamaño de los tres ángulos (A, B,C) de un triángulo e imprima
de qué tipo es.
#include <iostream>
#include <cstdlib>
}
}
else
printf("No forman los valores un triangulo");
cout<<"\n";
printf("Hola");
printf("\n");
printf("\n");
system("pause");
return 0;
4. Elabore un programa que permita leer los datos de un empleado: Nombre, Tipo de empleado, número de
horas trabajadas y pago por hora; calcular e imprimir el sueldo a pagar. Si el empleado es tipo 1 se le
pagan las horas extras (más de 40 horas) a 1.5 del pago por cada hora, si es tipo 2 a 2, si es tipo 3 a 2.5
y si es tipo 4 a 3 veces el pago por hora.
#include<iostream>
#include<cstdlib>
using namespace std;
int main(){
char nombre[30];
int tipo,sw=0;
float ht,pagoxhr;
double tothe;
cout<<"\n Calcular e imprimir sueldo a pagar de un empleado";
cout<<"\n Nombre: ";
cin.getline(nombre,28);
cout<<"\n Tipo de empleado <1,2,3,4>: ";
cin>>tipo;
cout<<"\n Numero de horas trabajadas: ";
cin>>ht;
cout<<"\n Pago por hora: ";
cin>>pagoxhr;
if(ht>40){
switch(tipo){
case 1:tothe=1.5*pagoxhr*(ht-40);
break;
case 2:tothe=2*pagoxhr*(ht-40);
break;
case 3:tothe=2.5*pagoxhr*(ht-40);
break;
case 4:tothe=3*pagoxhr*(ht-40);
break;
default:sw=1;
cout<<"\n Error al ingresar tipo";
break;
}
}
else
tothe=0;
if (sw==0)
cout<<"\n El sueldo a pagar: "<<ht*pagoxhr+tothe;
else
cout<<"\n ERROR";
return 0;
}
5. Elabore un programa que lea el número del mes entre 1 y 12 y, que imprima el nombre del mes
correspondiente: si es 1 ‘Enero’, si es 2 ‘Febrero’,...etc.
6. Elaborar un programa que permita hacer conversiones de temperaturas entre grados Fahrenheit, Celsius,
Kelvin y Rankine. Primero debe preguntar qué tipo de grados quiere convertir. Por ejemplo; si se le indica
que se desea convertir una temperatura en grados Fahrenheit, debe leer la cantidad de grados, y luego
calcular e imprimir su equivalente en grados Celsius, kelvin y Rankine, y así, debe hacer lo mismo para
cada uno de los otros tipos. Para convertir a Celsius la temperatura Fahrenheit se le resta 32 y se
multiplica por 5/9. para convertir a Kelvin, se le suma 273 a los grados Celsius. Para convertir a Rankine a
los grados Fahrenheit se le suma 460.
7. Un sistema de ecuaciones lineales
ax + by = c
dx + ey = f
Elaborar un programa que lea los coeficientes a, b, c, d, e, f, y que calcule e imprima los valore de x y y.
Si (ae - bd) < > 0; debe calcular e imprimir los valores de x y y, en caso contrario debe imprimir un
mensaje que indique que no tiene solución.
8. Una empresa de telecomunicaciones, encargó a Michael Lesk desarrollar un programa para ubicar
telefónicamente a las personas que estaban vinculadas con ellos. Lo que hizo fue lo siguiente: como en el
teléfono se tienen los números 0,1,2,3,4,5,6,7,8,9 y los símbolos * y #; se puede asignar a cada una de
las letras del alfabeto de la siguiente manera:
#include <iostream>
# include <cstdlib>
using namespace std;
int main(){
char nombre[30];
int i=0;
char cx;
printf("\n Ingrese apellido paterno e inical del primer nombre: ");
cin.getline(nombre,28);
cout<<"\n El telefono de la persona es:";
while(nombre[i]!='\0'){
switch(nombre[i]){
case 'a': case 'b': case 'c': cx='2';
cout<<cx;
break;
case 'd': case 'e': case 'f': cx='3';
cout<<cx;
break;
case 'g': case 'h': case 'i': cx='4';
cout<<cx;
break;
case 'j': case 'k': case 'l': cx='5';
cout<<cx;
break;
case 'm': case 'n': case 'ñ': case 'o': cx='6';
cout<<cx;
break;
case 'p': case 'q': case 'r': case 's': cx='7';
cout<<cx;
break;
case 't': case 'u': case 'v': cx='8';
cout<<cx;
break;
case 'w': case 'x': case 'y': case 'z': cx='9';
cout<<cx;
break;
default : if(nombre[i]==' ')
cout<<"*";
else{
cout<<"ERROR" ;
nombre[i]=='\0';
}
break;
}
i++;
}
cout<<"*";
}
******************************************************************************************
Ejercicio utilizando operador condicional ?
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int x=10,y=12,mayor,menor;
bool z;
z=x>=y?true:false;
cout<<"\n z= "<<z; //z=0
z<=y>x?true:false;
cout<<"\n z: "<<z; //z=0
mayor=x>=y?x:y;
cout<<"\n y: "<<y; //y=12
menor=x>=y?y:x;
cout<<"\n x: "<<x; //x=10
return 1;
}
Ejemplos en C/C++
1. Elabore un programa que lea un valor N y que imprima un triángulo de asteriscos, como se muestra a
continuación, si el valor leído es 5 imprimir:
*
**
***
****
*****
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int N,i,j;
cout<<"\n Ingrese valor de N, para formar triangulo de asteriscos: ";
cin>>N;
for(i=1;i<=N;i++){
for(j=1;j<=i;j++){
cout<<"*";
}
cout<<endl;
}
return 1;
}
2. Elaborar un programa que permita leer un número N par; y, calcule e imprima la suma de los números
pares del 2 hasta el número leído. Si el número leído es menor a 2 debe imprimir un mensaje de error.
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int n,suma=0,j;
cout<<"\n Ingrese un numero par: ";
cin>>n;
if(n%2==0 && n>2){
for(j=2;j<=n;j+=2){
suma=suma+j;
}
cout<<"\n La suma es: "<<suma;
}
else
cout<<"\n Error, el numero ingresado es menor a 2, o no es par";
3. Elaborar un programa que permita leer el valor inicial y el valor final en grados Fahrenheit ; e imprima una
tabla con equivalencias en grados Centígrados, desde el valor inicial hasta el valor final de 1 en 1.
Fahrenheit Centígrados
Valor Inicial 99.99
- 99.99
-
-
valor final 99.99
4. Elaborar un programa que imprima la secante, cosecante y tangente de X; para valores de X desde –1
hasta 1 con intervalos de 0.1. Debe imprimir una tabla:
X Secante X Cosecante X Tangente X
-1.0 99.99 99.99 99.99
-0.9 99.99 99.99 99.99
.
.
1.0 99.99 99.99 99.99
5. Elaborar un programa que permita que los valores de los coeficientes a, b, c; se comporten así: B debe ir
de 1 hasta 7. C debe ir de 7 a 1. A debe tomar cada vez que la diferencia de B – C. Y, que imprima para
cada juego de valores de a, b, c; si tiene raíz única, raíces complejas o raíces reales.
6. Elaborar un programa para calcular la cantidad que se tendría ahorrada después de 10 años, si se
deposita mil nuevos soles mensuales a una tasa de interés mensual de 3%, capitalizable cada mes, es
decir, que al capital se le agregan los intereses .
7. El departamento de Policía y tránsito de la ciudad de Hermosillo, tiene los datos de las infracciones
levantadas por sobrepasar los limites de velocidad establecidos. El departamento dividió a la ciudad en
tres zonas, para cada una de las cuales desea obtener datos estadísticos que muestran las infracciones
levantadas por el motivo indicado en el párrafo anterior. Por cada infracción se tiene los siguientes datos:
Nota: El monto de la multa se calcula multiplicando S/.3.00 por cada kilómetro por hora que se
exceda el límite de velocidad.
# include <iostream>
using namespace std;
int main(){
int i,n,zona,lvz1=80,lvz2=20,lvz3=40,v,estado;
int cmz1=0,cmz2=0,cmz3=0;
char placa[6];
float m;
double amz1=0,amz2=0,amz3=0;
cout<<"\n Numero de vehiculos para procesar: ";
cin>>n;
cout<<"\n INFRACCIONES A LOS LIMITES DE VELOCIDAD";
for(i=1;i<=n;i++){
fflush(stdin);
cout<<"\n Placa: ";
gets(placa); // cin>>placa;
cout<<"\n Zona <1,2,3>: ";
cin>>zona;
cout<<"\n Velocidad a la que iba: ";
cin>>v;
estado=0;
m=0;
switch(zona){
case 1: if(v>lvz1){
estado=1;
cmz1=cmz1+1;
m=(v-lvz1)*3;
amz1=amz1+m;
}
if(estado==0){
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<0;
}
else {
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<amz1;
}
break;
case 2: if(v>lvz2){
estado=1;
cmz2=cmz2+1;
m=(v-lvz2)*3;
amz2=amz2+m;
}
if(estado==0){
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<0;
}
else {
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<amz2;
}
break;
case 3: if(v>lvz3){
estado=1;
cmz3=cmz3+1;
m=(v-lvz3)*3;
amz3=amz3+m;
}
if(estado==0){
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<0;
}
else {
cout<<"\n\t
VEHICULO"<<"\t"<<"PLACA"<<"\t"<<"VELOC."<<"\t"<<"MULTA";
cout<<"\n\t"<<i<<"\t\t"<<placa<<"\t"<<v<<"\t\t"<<amz3;
}
break;
}
}
cout<<"\n ZONA 1:";
cout<<"\n Total de infracciones: "<<cmz1;
cout<<"\n Monto recaudado en multa: "<<amz1;
cout<<"\n ZONA 2:";
cout<<"\n Total de infracciones: "<<cmz2;
cout<<"\n Monto recaudado en multa: "<<amz2;
cout<<"\n ZONA 3:";
cout<<"\n Total de infracciones: "<<cmz3;
cout<<"\n Monto recaudado en multa: "<<amz3;
return 1;
}
8. Una compañía manufacturera fabrica el producto A. Para fabricar una unidad de dicho producto se
requiere los siguientes materiales:
Material 1: 3 unidades
Material 2: 4 unidades
Material 3: 1 unidad
Material 4: 2 unidades
Material 5: 3 unidades
Material 6: 2 unidades
Se tiene como datos el costo de una unidad de cada uno de los seis materiales. Elaborar un programa
que lea los costos de los materiales, luego que lea pedidos del producto A en cada pedido se tiene el dato
cantidad de unidades del producto A; cuando termine de leer los pedidos, imprimir:
AUMENTOS DE SUELDOS
NOMBRE SUELDO ANTERIOR SUELDO ACTUAL
COSTO DE PRODUCCIÓN
UNIDADES FACTOR COSTO COSTO DE
ARTICULO PRODUCIDAS COSTO FIJO PRODUCCION
PRECIOS DE VENTA
COSTO DE PRECIO DE
ARTÍCULO PRODUCCIÓN UTILIDAD IMPUESTO VENTA
Cálculos:
Utilidad = 120% del costo de producción
Impuesto = 15% (costo de producción + utilidad)
Precio de venta = costo de producción + utilidad +impuesto
3. Elaborar un programa para imprimir, una factura que contenga los datos de los artículos vendidos a un
cliente, y que tenga el siguiente formato:
FACTURA
NOMBRE DEL CLIENTE: XXXXXXXXXXXXXXXXXXXXXXXXX
PRECIO PRECIO
ARTICULO CANTIDAD UNITARIO TOTAL
SUBTOTAL 9,999,999.99
IMPUESTO 9,999,999.99
19%
TOTAL 9,999,999.99
|Cálculos
Precio total = Cantidad de artículos X precio unitario
Subtotal = La suma de los precios totales
Impuesto = 19% del subtotal
Total = Subtotal + Impuesto
NOMINA QUICENAL
NOMBRE SDO. BRUTO IMPUESTO SDO. NETO
Cálculos:
Sueldo bruto = (sueldo mensual / 2) + bonificación de antigüedad.
La bonificación de antigüedad se otorga a partir del tercer año de labores y es, de 2% anual
1 300 30 3%
301 700 50 8%
701 1100 100 11%
1101 1700 150 16%
1701 adelant 200 20%
e
Cuando el sueldo bruto excede el salario mínimo, se calcula el excedente y se busca éste en la tabla a fin
de determinar en cual rango se encuentra.
El impuesto será la cuota fija más el porcentaje indicado en la diferencia del excedente sobre el límite
inferior.
5. Elabore un programa que contabilice una cuenta de cheques. Al inicio se le introduce el nombre del
cuentahabiente y el saldo inicial. A continuación se pueden hacer depósito y retiros. Cuando sea depósito
se incrementa al saldo y cuando sea retiro se resta. El programa terminará cuando ya no se desee hacer
movimientos. Se requiere la impresión del siguiente reporte:
ESTADO DE CUENTA
1 999,999.99 99,999,999.99
2 999,999.99 99,999,999.99
3 999,999.99 99,999,999.99
4 999,999.99 99,999,999.99
.
.
N
Viaje:
Cantidad de personas: ---
Peso de viaje: ---
Viaje:
Cantidad de personas: ---
Peso de viaje: ---
Viaje:
Cantidad de personas: ---
Peso de viaje: ---
Elaborar un programa que lea los datos de los viajes del día, y al final que imprima:
7. Se tienen los datos de varios autos importados, elaborar un programa que permita leer los datos de cada
automóvil: marca, orígen y costo; imprimir el siguiente reporte:
ALEMANIA: ----
JAPON: ----
ITALIA: ----
USA: ----
PAIS DEL QUE SE IMPORTO MAS AUTOS: X----------------------------------X
Cálculos:
IMPUESTO si el orígen es Alemania el impuesto es 20%, si es de Japón el impuesto es 30%, si es de
Italia el 15% y si es de USA el 8%.
PRECIO VTA. Se suma el costo mas el impuesto.
TOTALES se pide el total de los autos importados, así como totales del costo, impuesto y precio de venta.
Por último el total de autos importados de cada país.
Cada alumno puede haber llevado varios cursos, por cada curso, se tiene los datos:
Curso: X--------------------------------------X
Calificación 1: ---
Calificación 2: ---
Calificación 3: ---
----------
----------
----------
Elaborar un programa que lea los datos de cada uno de los alumnos y por cada alumno, los datos de
cada uno de los cursos e imprima el siguiente reporte:
REPORTE DE CURSOS
NOMBRE CURSOS CALIF. FINAL OBSERVACIÓN
Cálculos:
CALIF. FINAL es el promedio de las tres calificaciones del curso.
OBSERVACION es el comentario APROBADO o DESAPROBADO según sea la calificación final.
TOTAL ALUMNO se imprime el número de materias que cursó y el promedio de la calificaciones finales
de todas las materias que cursó
TOTAL GENERAL se imprime la cantidad de los alumnos procesados y el promedio general de todos los
alumnos.
Ejemplos en C/C++
#include <cstdlib>
#include <iostream>
Punteros
#include<iostream>
using namespace std;
void convertirAMayusculas(char *ptrS);
int main(){
char cadena[]="Caracteres y $50.12";
cout<<"\n Cadena antes de la conversion: "<<cadena;
//printf("\n Cadena antes de la conversión: %s",cadena);
convertirAMayusculas(cadena);
//printf("\n Cadena despues de la conversión: %s",cadena);
cout<<"\n Cadena despues de la conversion: "<<cadena<<endl;
system("PAUSE");
return 0;
}
void convertirAMayusculas(char *ptrS){
while(*ptrS!='\0'){
if(islower(*ptrS))
*ptrS=toupper(*ptrS);
++*ptrS;
}
}
******************************************************************************************
Programa para leer una cadena mostrar caracter a caracer verticalmente. Usar paso por referencia,
mediante un puntero no constante a un puntero constante.
#include <iostream>
using namespace std;
void imprimircaracteres(const char *ptrS);
int main(){
char cadena[30];
//cout<<"\n Ingrese nombre y apellido(con 28 caracteres)";
//cin.getline(cadena,28);
printf("\n Ingrese nombre y apellido(con 28 caracteres): ");
gets(cadena);
imprimircaracteres(cadena);
printf("\n");
system("pause");
return 0;
}
void imprimircaracteres(const char *ptrS){
for(*ptrS;*ptrS!='\0';*ptrS++){
//cout<<*ptrS<<"\n";
printf("\n%c",*ptrS);
}
}
*******************************************************************************************************************
*****
2. Elaborar un programa que ofrezca un menú de opciones, mediante el cual se pueda escoger calcular el
área de las figuras geométricas: triángulo, cuadrado, rectángulo y círculo. Una vez seleccionada la
opción, que llame al módulo que permita solicitar, leer los datos necesarios, hacer el cálculo
correspondiente e imprimirlo.
Debe ofrecer el siguiente menú de opciones, donde está solicitando la opción deseada:
3. Elaborar un programa que permita leer dos números de tipo real en el módulo principal; que en un
módulo los intercambie vía parámetros por referencia, y los imprima en el módulo principal.
4. Elaborar un programa que permita leer tres números de tipo entero; e imprima el mayor; utilizando un
módulo para leer los números, una función para obtener y devolver el mayor y un módulo para imprimir el
mayor. Utilizando parámetros.
5. Elaborar un programa que permita leer la base y el exponente, que llame a una función que eleve el
número a la potencia, al regresar al módulo principal que imprima el resultado.
6. Elaborar un programa que imprima la sumatoria de las raíces cuadradas de los números pares desde 2
hasta 1500. Utilizar un módulo o función para el cálculo de la sumatoria.
7. Elaborar un programa que lea un número N, que imprima la sumatoria de los cuadrados de los enteros
entre 1 y N. Utilizar un módulo para el cálculo de la sumatoria vía parámetro por referencia.
8. Elaborar un programa que lea diez valores para Y y X, calcule e imprima el valor de Z; utilizando la
función
Z = YX
Imprimir los diez valores para X, Y y Z.
9. Elaborar un programa que permita leer un número de tipo entero de cinco cifras; calcular e
imprimir el dígito verificador. El dígito verificador es un número entre 0 y 9, que se obtiene a
partir de un número en el que se toma en cuenta la posición que tiene cada dígito; se obtiene
de la siguiente manera:
Si se tiene el número: 74621
1X2= 2
2X3= 6
6 X 4 = 24
4 X 5 = 20
7 X 6 = 42
94
Proceso 2 Se determina el residuo al dividir el producto entre once.
94 11
6 8
Dígito verificador = 11 – 6 = 5
10. Simular una máquina expendedora de café. Crear un menú con las siguientes opciones:
****************************************
1. Seleccionar producto
2. Pagar y dar vuelto
3. Salir
***************************************
a. Café S/. 1.00
b. Café con leche S/. 1.50
c. Leche S/. 2.00
***************************************
Precio _ _ _ _ _ (debe aparecer precio de producto seleccionado)
Monto _ _ _ _ _ (monto que paga el cliente, verificar que no es menor que precio)
#include <iostream>
#include <stdio.h>
using namespace std;
int sp(float *puntpp){
int sw;
char r;
float pp;
cout<<"\t\t****************************"<<endl;
cout<<"\t\t"<<"Seleccionar producto"<<endl;
cout<<"\t\t\t"<<"a.Cafe S/. 1.00"<<endl;
cout<<"\t\t\t"<<"b.Cafe con leche S/. 1.50"<<endl;
cout<<"\t\t\t"<<"c.Leche S/. 2.00"<<endl;
cout<<"\t\t\t\t\t"<<"Elegir opcion: ";
cin>>r;
switch(r){
case 'a': pp=1.0;
*puntpp=pp;
sw=1;
break;
case 'b': pp=1.5;
*puntpp=pp;
sw=2;
break;
case 'c': pp=2.0;
*puntpp=pp;
sw=3;
break;
default : cout<<"\n Error pulse a,b,c"<<endl;
break;
}
return sw;
}
int main()
{
int op,seleccion;
char r;
float pp=0,mp,vuelto;
do{
cout <<"\t\t******************" << endl;
cout<<"\t\t\t"<<"MENU"<<endl;
cout<<"\t\t"<<"1. Seleccionar producto"<<endl;
cout<<"\t\t"<<"2. Pagar y dar vuelto"<<endl;
cout<<"\t\t"<<"3. Salir"<<endl;
cout<<"\t\t\t\t"<<"Seleccione opcion: ";
cin>>op;
switch(op){
case 1:seleccion=sp(&pp);
break;
case 2:cout<<"\n Pagar y dar vuelto";
cout<<"\n Precio del producto: "<<pp;
do{
cout<<"\n Monto con el que paga: ";
cin>>mp;
}while(mp<pp);
switch(seleccion){
case 1: cout<<"\n Usted compro: Cafe de precio S/ 1.00"<<endl;
cout<<"\n Pago con: S/."<<mp<<" su vuelto es: S/."<<(mp-pp)<<endl;
vuelto=mp-pp;
printf("\n Pago con: S/. %8.2f su vuelto es: S/. %8.2f",mp,vuelto);
printf("\n");
break;
case 2: cout<<"\n Usted compro: Cafe de precio S/ 1.50"<<endl;
cout<<"\n Pago con: S/."<<mp<<" su vuelto es: S/."<<(mp-pp)<<endl;
break;
case 3: cout<<"\n Usted compro: Cafe de precio S/ 2.00"<<endl;
cout<<"\n Pago con: S/."<<mp<<" su vuelto es: S/."<<(mp-pp)<<endl;
break;
}
break;
case 3:break;
}
}while(op!=3);
return 0;
}
Ejemplos en C/C++
************************************************************* ****************
/*Dado un arreglo de enteros de tamaño nMaxE, realizar las siguientes
operaciones,
en un menú de opciones:
MENU
1. Agregar
2. Buscar
3. Modificar
4. Eliminar
5. Listar
6. Salir
Seleccione opcion:
*/
# include <iostream>
# include <cstdlib>
using namespace std;
int main(){
int op,nMaxE=8,i=0,fila[8],datoE,sw=0;
do{
cout<<"\n MENU";
cout<<"\n 1. Agregar un dato al vector";
cout<<"\n 2. Buscar un dato en el vector";
cout<<"\n 3. Modificar un dato en el vector";
cout<<"\n 4. Eliminar un dato del vector";
cout<<"\n 5. Listar los datos del vector";
cout<<"\n 6. Salir";
cout<<"\n\t\t\t Seleccione opcion: ";
cin>>op;
switch(op){
case 1: if(i<nMaxE){
cout<<"\n Ingrese dato entero: ";
cin>>fila[i];
i++; // i=i+1;
}
else
cout<<"\n No hay espacio";
break;
case 4: sw=0; cout<<"\n Listado de datos del vector";
for(int j=0;j<i;j++){
cout<<"\n fila["<<j<<"]="<<fila[j];
}
cout<<"\n Ingrese dato a eliminar: ";
cin>>datoE;
for(int j=0;j<i;j++){
if(datoE==fila[j]){
fila[j]=0;
sw=1;
}
}
if(sw==1)
cout<<"\n Dato eliminado";
else
cout<<"\n Dato no encontrado";
break;
case 5: cout<<"\n Listado de datos del vector";
for(int j=0;j<i;j++){
cout<<"\n fila["<<j<<"]="<<fila[j];
}
}
}while(op!=6);
return 0;
}
***************************************************** *****
Programa para agregar datos a un vector, mostrar datos del vector, presentar
un menú de opciones.
#include <iostream>
using namespace std;
#define nMaxE 100
void agregar(int v[nMaxE],int *pnE);
int buscar(int v[nMaxE],int datoB,int *pnE);
void actualizar(int v[nMaxE],int datoB,int r);
void mostrar(int v[nMaxE],int *pnE){
//int i;
cout<<"\n VECTOR INGRESADO";
for(int i=0;i<*pnE;i++){
cout<<"\n v["<<(i+1)<<"]="<<v[i];
}
}
int main()
{
int v[nMaxE];
int op,nE=0,datoB,r;
do{
cout<<"\n\t\t MENU";
cout<<"\n 1. Agregar";
cout<<"\n 2. Buscar";
cout<<"\n 3. Actualizar dato";
cout<<"\n 4. Ordenar de < a >";
cout<<"\n 5. Ordenar de > a <";
cout<<"\n 6. Eliminar un dato";
cout<<"\n 7. Mostrar datos ingresados";
cout<<"\n 8. Salir";
cout<<"\n\t\t\t Seleccione opcion: ";
cin>>op;
switch(op){
case 1:agregar(v,&nE);
break;
case 2: cout<<"\n Dato a buscar: ";
cin>>datoB;
r=buscar(v,datoB,&nE);
if(r!=-1)
cout<<"\nDato encontrado en la posicion: "<<(r+1);
else
cout<<"\nDato no encontrado";
break;
case 3:cout<<"\n Dato a reemplazar: ";
cin>>datoB;
r=buscar(v,datoB,&nE);
actualizar(v,datoB,r);
break;
case 4://agregar(v,&nE);
break;
case 5://agregar(v,&nE);
break;
case 6://agregar(v,&nE);
break;
case 7:mostrar(v,&nE);
break;
case 8:break;
default:cout<<"\n Error pulse <1 al 7>";
break;
}
}while(op!=8);
return 0;
}
void agregar(int v[nMaxE],int *pnE){
int datoE,i;
if(*pnE>=nMaxE)
cout<<"\n No hay espacio";
else{
cout<<"\n Dato entero para agregar: ";
cin>>datoE;
i=*pnE;
v[i]=datoE;
i++;
*pnE=i;
}
}
int buscar(int v[nMaxE],int datoB,int *pnE){
int i,posicion=-1;
for(i=0;i<*pnE;i++){
if(datoB==v[i]){
posicion=i;
i=*pnE;
}
}
return posicion;
}
void actualizar(int v[nMaxE],int datoB,int r){
int datoR;
cout<<"Dato a reemplazar: "<<datoB;
cout<<"Reemplazar por: "; cin>>datoR;
v[r]=datoR;
}
****************************************************************************************
Programa para agregar datos en una fila de una matriz, mostrar fila de la matriz, buscar un dato en
la matriz, presentar un menú de opciones.
#include <cstdlib>
#include <iostream>
# define nmaxF 5
# define nmaxC 5
using namespace std;
void agregarf(int a[nmaxF][nmaxC],int *pnf);
void mostrarf(int a[nmaxF][nmaxC],int nfm);
int buscar(int a[nmaxF][nmaxC],int datoB,int nf,int *pncB);
int main(int argc, char *argv[])
{
int a[nmaxF][nmaxC],op,nf=0,f,ncB,datoB,nfm;
do{
cout<<"\n\t\t"<<"Menu Matriz bidimensional";
cout<<"\n 1. Agregar datos en una fila";
cout<<"\n 2. Buscar un dato en la matriz";
cout<<"\n 3. Reemplazar por cero un dato";
cout<<"\n 4. Mostrar fila de la matriz";
cout<<"\n 5. Salir";
cout<<"\n\t\t\t"<<"Seleccione opcion: ";
cin>>op;
switch(op){
case 1: agregarf(a,&nf);
break;
case 2: cout<<"\n Dato de busqueda: ";cin>>datoB;
f=buscar(a,datoB,nf,&ncB);
if(f!=-1)
cout<<"\n Dato encontrado en la fila: "<<(f+1)<<" columna: "<<(ncB+1);
else
cout<<"\n Dato no encontrado";
break;
case 3: //agregarf(a,&nf);
break;
case 4: cout<<"\n Nro de fila para mostrar:";
cin>>nfm;
if(nfm<=nmaxF)
mostrarf(a,nfm);
else
cout<<"\n Numero de fila no existe";
break;
case 5: break;
default : cout<<"\n Error pulse del 1 al 5";
break;
}
}while(op!=5);
system("PAUSE");
return EXIT_SUCCESS;
}
void agregarf(int a[nmaxF][nmaxC],int *pnf){
int f,c;
if(*pnf >= nmaxF)
cout<<"\n No hay espacio";
else {
f=*pnf;
for(c=0;c<nmaxC;c++){
cout<<"a["<<f<<"]["<<c<<"]=";
cin>>a[f][c];
}
f=f+1;
*pnf=f;
}
}
void mostrarf(int a[nmaxF][nmaxC],int nfm){
int c;
cout<<"\n Datos de la fila: "<<nfm<<endl;
nfm=nfm-1;
for(c=0;c<nmaxC;c++)
cout<<a[nfm][c]<<" ";
}
int buscar(int a[nmaxF][nmaxC],int datoB,int nf,int *pncB){
int i,j,f=-1;
for(i=0;i<nf;i++){
for(j=0;j<nmaxC;j++){
if(a[i][j]==datoB){
f=i;
*pncB=j;
j=nmaxC;
i=nf;
}
}
}
return f;
}
1. Programa que lea 20 números enteros, los almacene en un vector, y calcule la suma de todos ellos, así
como la media aritmética.
2. Un vector se dice que es simétrico si el elemento que ocupa la posición i_ésima coincide con el que
ocupa la posición n_i_ésima, siempre que el número de elementos que almacene el vector sea n. Por
ejemplo el vector que almacena los valores 2,4,5,4,2 es simétrico. Elaborar un programa y una función
que decida si el vector de n datos que recibe como parámetro es simétrico.
3. Escribir un programa que halle y escriba una tabla con los 10 primeros números primos. Un número es
primo si sólo tiene por divisores la unidad y el propio número.
# include <iostream>
# include <cstdlib>
using namespace std;
int main(){
int i,n=2,j=0,tabla[10];
do{
int sw=0;
for(i=2;i<=n-1;i++){
if(n%i==0){
sw=1;
}
}
if(sw==0){
tabla[j]=n;
j++;
}
n++;
}while(j<=9);
cout<<"\n Los diez primeros numeros primos: ";
for(int l=0; l<=9;l++){
cout<<"\n tabla["<<l+1<<"]="<<tabla[l];
}
return 0;
}
4. Programa que genere aleatoriamente los datos de un vector, lo visualice, y calcule la media m, la
desviación media dm y la desviación típica dt, dados por las siguientes expresiones:
5. Dados los nombres, promedio final de los alumnos de un curso de Ingeniería, elaborar un programa para
almacenar(ingresar) dichos datos y mostrar, presentar en un menú de opciones.
MENU
Seleccione
Opción: __
8. Elaborar un programa para presentar el siguiente menú de opciones, utilizando funciones:
MENU
Salir.
Seleccione
PRACTICA 7: Ejercicios varios. Registros (estructuras). Archivos.
Ejemplos en C/C++
Registros (struct)
#include<iostream.h>
#include<conio.h>
#include <stdio.h>
#include<ctype.h>
# define max 50
struct alumno{
char cod[8];
char nom[30];
char sexo;
float prom;
};
int menu();
void carga(struct alumno *p, int * pn);
void lista(struct alumno p[], int x);
case 3: lista(d,n);break;
}
}while(op!=4);
return 0;
}
int menu()
{ int op1;
cout<<"\n MENU ";
cout<<"\n 1. Carga ";
cout<<"\n 2. Ordena ";
cout<<"\n 3. Listado ";
cout<<"\n 4. Salir ";
cout<<"\n Seleccione Opcion: ";
cin>>op1;
return op1;
}
void carga(struct alumno *p, int *pn)
{
int k;
struct alumno e;
cin>>*pn;
}while(*pn<1 || *pn>max);
for(k=0; k<*pn;k++)
{
cin>>e.cod;
cout<<"nombre:";
gets(e.nom);
cout<<"sexo : m - f";
do
{
e.sexo = toupper(getche());
}while(e.sexo!='M' && e.sexo!='F');
cout<<"\n promedio: " ;
do
{
cin>>e.prom;
}while(e.prom<0 || e.prom>20);
*(p+k)=e;
}
}
Estructuras anidadas
Leer y visualizar estructuras anidadas mediante dos funciones. Primero, declarar la estructura
fecha_pago, con los atributos: dia, mes, año, seguidamente declarar la estructura empleado con los
atributos: nombre, edad, peso, fp del tipo fecha_pago, y por ultimo, la estructura persona_empleado
con los atributos: e del tipo empleado, totalsueldo, horas_trabajadas.
La funcion entrada tiene como parametro por referencia una persona empleado pe, en la que se
almacena y retorna toda la informacion que ingresa el usuario. Por su parte la funcion muestra,
presenta los valores que recibe en el parametro por valor en la consola. La estructura de los
registros, sugerida es la siguiente:
persona_empleado:
Empleado: nombre
edad
peso
fecha_pago:
dia
mes
anio
TotalSueldo
HorasTrabajadas
Presentar en un menu de opciones el ingreso y muestra de empleado.
#include <cstdlib>
#include <iostream>
using namespace std;
struct fecha_pago{
int dia;
int mes;
int anio;
};
struct empleado{
char nombre[30];
int edad;
float peso;
struct fecha_pago fp;
};
struct persona_empleado{
struct empleado e;
float totalsueldo;
float horastrabajadas;
};
void lectura(persona_empleado &pe);
void muestra(persona_empleado pe);
int menu();
int main(int argc, char *argv[])
{
char rpta;
int op;
persona_empleado pe;
do{
op=menu();
switch(op){
case 1: lectura(pe);
muestra(pe); break;
case 2: exit(0);
default: cout<<"\n Error"; break;
}
cout<<"\n Continuar<s/n>: ";
cin>>rpta;
}while(rpta=='s');
system("PAUSE");
return EXIT_SUCCESS;
}
int menu(){
int op1;
cout<<"\n\t\t"<<"MENU"<<endl;
cout<<"\n 1.Ingreso y muestra de Empleado"<<endl;
cout<<"\n 2.Salir"<<endl;
cout<<"\n Seleccione opcion: ";
cin>>op1;
return op1;
}
void lectura(persona_empleado &pe)
{
cout<<"\n DATOS DEL EMPLEADO";
fflush(stdin);
cout<<"\n Nombre(max. 28 caracteres): ";
cin.getline(pe.e.nombre,30);
cout<<"\n Edad<20 a 60>: ";
cin>>pe.e.edad;
cout<<"\n Peso: ";
cin>>pe.e.peso;
cout<<"\n Fecha de pago: ";
cout<<"\n dia <1 a 30>: ";
cin>>pe.e.fp.dia;
cout<<"\n mes <1 a 12>: ";
cin>>pe.e.fp.mes;
cout<<"\n anio<2013>: ";
cin>>pe.e.fp.anio;
cout<<"\n Total sueldo: ";
cin>>pe.totalsueldo;
cout<<"\n Horas trabajadas: ";
cin>>pe.horastrabajadas;
}
void muestra(persona_empleado pe)
{
cout<<"\n DATOS INGRESADOS DEL EMPLEADO";
cout<<"\n Nombre: "<<pe.e.nombre;
cout<<"\n Edad: "<<pe.e.edad;
cout<<"\n Peso: "<<pe.e.peso;
cout<<"\n Fecha de pago:";
cout<<"\n dia: "<<pe.e.fp.dia<<" mes: "<<pe.e.fp.mes<<" anio:"<<pe.e.fp.anio;
cout<<"\n Total sueldo: "<<pe.totalsueldo;
cout<<"\n Horas trabajadas: "<<pe.horastrabajadas;
}
#include <cstdlib>
#include <iostream>
void CrearFile(){
FILE *F;
alumno alu;
F=fopen("matricula.dat","a+");
if(F==NULL)
cout<<"\n No se abrio con exito";
cout<<"MATRICULA"<<endl;
cout<<"\n Codigo del alumno: ";
cin>>alu.codigo;
cout<<"\n Nombre del alumno: ";
fflush(stdin);
gets(alu.nombre);
cout<<"\n Apellidos del alumno: ";
fflush(stdin);
gets(alu.apellidos);
cout<<"\n Grupo: ";
cin>>alu.grupo;
cout<<"\n Curso: ";
fflush(stdin);
gets(alu.curso);
cout<<"\n Profesor: ";
gets(alu.profesor);
fwrite(&alu,sizeof(alumno),1,F);
fclose(F);
cout<<"\n Alumno matriculado con exito";
}
void BuscarxCodigo(){
int cod,hallado=0;
FILE *F;
alumno alu;
F=fopen("matricula.dat","a+");
if(F==NULL)
cout<<"No se abrio con exito";
cout<<"\n Ingrese codigo a buscar: ";
cin>>cod;
fread(&alu,sizeof(alumno),1,F);
while(!feof(F)){
if(alu.codigo==cod){
cout<<"\n Alumno: "<<alu.nombre<<endl;
cout<<"\n Apellido: "<<alu.apellidos<<endl;
cout<<"\n Grupo: "<<alu.grupo<<endl;
cout<<"\n Curso: "<<alu.curso<<endl;
cout<<"\n Profesor: "<<alu.profesor<<endl;
hallado=1;
}
fread(&alu,sizeof(alumno),1,F);
}
if(hallado==0)
cout<<"\n Alumno no se encontro";
fclose(F);
}
6. Convertir un número a letras e incluir signo monetario, ejemplo S/. 1.237,50 (Un
mil doscientos treinta y siete con cincuenta / céntimos Nuevos Soles).
8. Elaborar un programa que permita leer un número de tipo entero de cinco cifras;
calcular e imprimir el dígito verificador. El dígito verificador es un número entre 0 y
9, que se obtiene a partir de un número en el que se toma en cuenta la posición
que tiene cada dígito; se obtiene de la siguiente manera:
Si se tiene el número: 74621
7 4 6 2 1
1X2= 2
2X3= 6
6 X 4 = 24
4 X 5 = 20
7 X 6 = 42
94
Proceso 2 Se determina el residuo al dividir el producto entre once.
94 11
6 8
Dígito verificador = 11 – 6 = 5
9. Simular una máquina expendedora de agua. Crear un menú con las siguientes
opciones:
****************************************
4. Seleccionar producto
5. Pagar y dar vuelto
6. Salir
***************************************
a. Cielo S/. 1.00
b. San Luis S/. 1.20
c. San MateoS/. 1.50
***************************************
Precio _ _ _ _ _ (debe aparecer precio de producto seleccionado)
Monto _ _ _ _ _ (monto que paga el cliente, verificar que no es menor que precio)
10. Escribir un programa para calcular el número de días que hay entre dos fechas;
declarar fecha como una estructura.
13. Suponer que se tienen dos arrays del tipo descrito en el problema propuesto 12 ó 10.
Codificar un programa en C++ que los una en uno solo, eliminando los duplicados que
puedan existir entre los dos.
14. Suponer que se tiene un array que almacena la información de los empleados de una
empresa. De cada empleado se guarda el nombre, los dos apellidos, el número de la
Seguridad Social, la edad, el departamento en el que trabaja y la antigüedad en la
empresa. Escribir un programa en el que se ordene el array por el campo primer
apellido y en caso de que el primer apellido coincida por el segundo apellido. Si ambos
apellidos coinciden para algún registro, ordenar entonces por el nombre.
15. Utilizando el array del Problema anterior escribir un programa que permita a un
usuario por medio de un menú elegir uno de los campos para realizar una búsqueda
por dicho campo en el array de registros.
16. Escribir un programa auxiliar que permita añadir nuevos campos a la tabla de
empleados, como por ejemplo, sueldo anual y porcentaje de retenciones de
impuestos. Una vez modificado el array de estructuras, escribir un programa que
permita a un usuario elegir un rango de registros de empleados especificando un
apellido inicial y otro final, o un departamento concreto, y produzca en la salida la
suma total de los sueldos que se les pagan a los empleados seleccionados.
17. Escribir un programa que permita elaborar un informe a partir del array de estructuras
anterior con el siguiente formato. Cada página contendrá los empleados de un solo
departamento. Al comienzo de cada página se indica por medio de una cabecera cada
uno de los campos que se listan y al departamento que corresponde el listado. Los
campos aparecen justificados a la derecha en cada columna.
18. Escribir un programa que lea líneas de texto obtenga las palabras de cada línea y las
escriba en pantalla en orden alfabético. Se puede considerar que el máximo número
de palabras por línea es 28.
20. Escribir un programa que lea un texto, y dos palabras claves, clave1 y clave2. El
programa debe sustituir todas las apariciones de clave1 por clave2, mostrar el nuevo
texto, e indicar el número de intercambios realizados.
21. Otro sistema de encriptación consiste en sustituir cada carácter del alfabeto por otro
decidido de antemano, pero siempre el mismo. Utilizar este método en una función
que tome como parámetros el mensaje a cifrar y una cadena con las
correspondencias ordenadas de los caracteres alfabéticos. La función devolverá un
puntero a la cadena cifrada del mensaje.
22. Se trata de encriptar un texto mediante una función de cifrado. El cifrado se realiza se
realiza cambiando todas las letras minúsculas por otras nuevas letras que recibe en
un array cifrado de caracteres; es decir de cambiar “a” por cifrado[0], “b” por
cifrrado[1], etc. Escribir una función que reciba un texto y lo encripte.
23. Escribir una función que reciba el texto que retorna la función del problema anterior,
debidamente encriptado, y lo transforme en el texto original. El array de cifrado es un
dato.
24. Utilizando estructuras elaborar un programa para mostrar la fecha y hora actual del
sistema.
25. Una criptografía es un simple mensaje codificado donde una carta es simplemente
sustituida por otra, todo el mensaje.
Por ejemplo:
Codificado : HPC PJVYMIY
Decodificado : ACM CONCURSO
En el ejemplo de arriba, H=A, P=C, C=M, J=O, V=N, Y=T, M=E y I=S. Para este
problema, usted decodificará los mensajes.
Entrada
La primera línea de entrada contiene un solo entero N, (1 ≤ N ≤ 1000) que
es el número de conjuntos de datos que siguen. Cada conjunto de datos
consta de dos líneas de entrada. La primera línea es el mensaje codificado.
La segunda línea es uno de los 26 caracteres de letras en mayúscula dando
el carácter cartografía para cada letra del alfabeto: el primer carácter da la
cartografía de A, la segunda de B y así sucesivamente. Únicamente con
letras mayúsculas será utilizado.
Salida
De cada conjunto de datos, usted debe generar una línea de producción con los
siguientes valores: el conjunto de datos número como un decimal entero (inicia el
escrutinio en uno), un espacio y el descifrado mensaje.
Ejemplo de Entrada
2
HPC PJVYMIY
BLMRGJIASOPZEFDCKWYHUNXQTV
Ejemplo de Salida
1 ACM CONTEST
2 THE SKY IS BLUE
26. Implementar un programa al que se le pase el nombre de un archivo como argumento,
el cual, debe existir en el disco, y contenga un texto cualquiera formado por palabras.
El programa debe ofrecer un menú con dos opciones:
a) ordenar las palabras del texto en orden descendente
b) ordenar las palabras del texto en orden ascendente
Utilizar punteros a funciones, y funciones como argumentos.
Ejemplo de Lista
#include <cstdlib>
#include <iostream>
using namespace std;
struct nodo{
int dato;
struct nodo *sgte;
};
int main(int argc, char *argv[])
{
struct nodo *primero_lista;
struct nodo *temp;
int n,i,k=0;
primero_lista=NULL;
cout<<"\n Numero de elementos para llenar lista frontalmente: ";
cin>>n;
for(i=0;i<n;i++){
temp=new(struct nodo);
cout<<"\n Elemento("<<i+1<<"):";
cin>>temp->dato;
if(primero_lista==NULL){
temp->sgte=NULL;
primero_lista=temp;
}
else{
temp->sgte=primero_lista;
primero_lista=temp;
}
}
temp=primero_lista;
cout<<"\n Los elementos de la lista son:"<<endl;
while(temp!=NULL){
cout<<temp->dato<<endl;
temp=temp->sgte;
k++;
}
system("PAUSE");
return EXIT_SUCCESS;
}
REFERENCIAS
1. H.M Deitel, P.J. Deitel. C++ como Programar. Edit. Prentice Hall
Hispanoamericana, S.A 2012. México.
3. Ceballos Sierra, Fco. Javier. Enciclopedia del lenguaje C++. 2009. Edit.
Alfaomega Ra-Ma. México. ISBN: 978-607-7686-43-9. 856p.
Abril – 2019