You are on page 1of 34

Lenguaje de programación Ing.

Martin Inca Alayo

Problema de programación resueltos.

Problema 1:

Uso de un bloque secuencial y determinación de resultados en base a una fórmula


matemática de interés simple.

// Ingresa la tasa de interés (i), el número de periodos (n)


// y el capital prestado en soles (C). Si se usa el método
// de interés simple, calcular y reportar el monto total(M)

#include <iostream>
using namespace std;

int main()
{
float i,C,M; //variable con decimales
int n; //variable entera n

cout << "Ingrese tasa interés del periodo ";cin >> i;


cout << "Ingrese el numero de periodos ";cin >> n;
cout << "Ingrese la Capital prestado ";cin >> C;
M = C*(100+i*n)/100;
cout << endl ;
cout << endl << "El nuevo monto es " << M << endl;
cout << "El interes ganado es " << M-C << endl;

system("pause");
return 0;

Si la tasa es 15% mensual durante 24 meses, el capital de 1200 se


convertirá en 5,520 con intereses ganado de 4,320.

Dpto. de Ingeniería Industrial UNT 12


Lenguaje de programación Ing. Martin Inca Alayo

Problema 2:

// Si una circunferencia de radio (r) inscrito en un triángulo de


// lado a, b y c. Validar si estos lados forman un triángulo.
// Calcular el área (S) de este triángulo en función de a, b y c.

#include <iostream>
using namespace std;

void main()
{ float r,a,b,c,S;

cout << "Ingrese el radio de la circunferencia inscrita ";


cin >> r;
cout << "Ingrese el lado a ";cin >> a;
cout << "Ingrese el lado b ";cin >> b;
cout << "Ingrese el lado c ";cin >> c;
if ((a+b>c)&&(b+c>a)&&(c+a>b)) //operador && es y (and)
{
S = (a+b+c)*r/2;
cout << endl ;
cout << endl << "El area S es " << S << endl;
}
else
cout << "Lados no forma triángulo " << endl;

system("pause");

Dpto. de Ingeniería Industrial UNT 13


Lenguaje de programación Ing. Martin Inca Alayo

Problema 3:

// Se desea comprar un artefacto mediante un sistema de créditos,


// usando el método de interés compuesto con cuotas fijas, para
// ello se desea ingresar el costo del artefacto (C), la tasa de
// interés (i) y el número de periodos (n). Calcular y reportar el
// valor de los pagos mensuales (R)

#include <iostream>
#include <math.h>
using namespace std;

void main()
{ float C,i,f,R;
int n;

cout << "Ingrese el Costo Artefacto ";cin >> C;


cout << "Ingrese el interes anual en % ";cin >> i;
i= i/1200; // convertir a tasa mensual en tanto por uno
cout << "Ingrese el numero de meses de plazo ";cin >> n;
f = pow(1+i,n); // interes compuesto de 1 sol en n periodos
R = C*(i*f/(f-1));
cout << endl ;
cout << endl << "La cuota mensual de pago es " << R << endl;

system("pause");

Dpto. de Ingeniería Industrial UNT 14


Lenguaje de programación Ing. Martin Inca Alayo

Problema 4:

// Realizar la lectura de la presión (P) en libras por pulgada, el


// volumen (V) en pies cúbicos y la masa del aire (m) en libras,
// si la masa del aire es negativa entonces se debe reportar el
// valor CERO,en caso contrario, reportar la temperatura(T) en ºF.

#include <iostream>
using namespace std;

void main()
{ float P,V,m,T;

cout << "Ingrese la presion en libras ";cin >> P;


cout << "Ingrese el Volumen en pies cubicos ";cin >> V;
cout << "Ingrese la masa en libras ";cin >> m;

if (m<=0)
T =0;
else
T = P*V/(0.37*m) - 460 ;

cout << endl ;


cout << endl << "La temperatura en grado Fahrenheit es " << T
<< endl;

system("pause");

Dpto. de Ingeniería Industrial UNT 15


Lenguaje de programación Ing. Martin Inca Alayo

Problema 5:

// Convertir el valor de la temperatura de un sistema de medida a


// otros grados de un menú, cuyas opciones son convertir de
// Celsius a Kelvin y viceversa y de Celsius a Fahrenheit y
// viceversa u de Celsius a Rankine y viceversa, de Fahrenheit a
// Kelvin y viceversa, de Fahrenheit a Rankine y viceversa y
// de Kelvin a Rankine y viceversa.

#include <iostream>
using namespace std;

void main()
{ float R,C,F,K;
int op,m=1;

while (m==1)
{ system("cls"); // limpiar consola
cout << " Menu de opciones de conversion grados T "<< endl;
cout << " 1. De Celsius a Kelvin o viceversa "<< endl;
cout << " 2. De Celsius a Fahrenheit o viceversa "<< endl;
cout << " 3. De Celsius a Rankine o viceversa "<< endl;
cout << " 4. De Fahrenheit a Kelvin o viceversa "<< endl;
cout << " 5. De Fahrenheit a Rankine o viceversa "<< endl;
cout << " 6. De Kelvin a Rankine o viceversa "<< endl;
cout << " Ingrese una opcion, cero para finalizar ";cin >>
op;

if (op==1)
Dpto. de Ingeniería Industrial UNT 16
Lenguaje de programación Ing. Martin Inca Alayo

{ cout << "Ingrese grados Celsius, cero para conversion ";


cin >> C;
cout << "Ingrese grados Kelvin,cero para conversion ";
cin >> K;
if ((K==0)&&(C>0))
cout << " Los grados Kelvin son " << C+273.15 << endl;
else
cout << " Los grados Celsius son " << K-273.15 << endl;
system("pause");
}

if (op==2)
{ cout << "Ingrese grados Celsius,cero para conversion ";
cin >> C;
cout << "Ingrese grados Fahrenheit,cero para conversión ";
cin >> F;
if ((F==0)&&(C>0))
cout << " Los grados Fahrenheit son " << 9*C/5+32 << endl;
else
cout << " Los grados Celsius son " << 5*(F-32)/9 << endl;
system("pause");
}

if (op==3)
{ cout << "Ingrese grados Celsius , cero para conversion ";
cin >> C;
cout << "Ingrese grados Rankine, cero para conversion ";
cin >> R;
if ((R==0)&&(C>0))
cout << " Los grados Rankine son " << 9*C/5 + 491.67 << endl;
else
cout << " Los grados Celsius son " << 5*(R-491.67)/9 << endl;
system("pause");
}

if (op==4)
{cout << "Ingrese grados Fahrenheit ,cero para conversion ";
cin >> F;
cout << "Ingrese grados Kelvin, cero para conversion ";
cin >> K;
if ((K==0)&&(F>0))
cout << " Los grados Kelvin son " << 5*(F-32)/9 + 273.15 << endl;
else
cout << " Los grados Fahrenheit son " << 9*(K-273.15)/5 +32<<endl;
system("pause");
}

Dpto. de Ingeniería Industrial UNT 17


Lenguaje de programación Ing. Martin Inca Alayo

if (op==5)
{cout << "Ingrese grados Fahrenheit ,cero para conversion ";
cin >> F;
cout << "Ingrese grados Rankine, cero para conversion ";
cin >> R;
if ((R==0)&&(F>0))
cout << " Los grados Rankine son " << F+459.67 << endl;
else
cout << " Los grados Fahrenheit son " << R-459.67 << endl;
system("pause");
}

if (op==6)
{cout << "Ingrese grados Kelvin , cero si desea resultado ";
cin >> K;
cout << "Ingrese grados Rankine, cero si desea resultado ";
cin >> R;
if ((R==0)&&(K>0))
cout << " Los grados Rankine son " << 9*(K-273.15)/5 +491.67 <<
endl;
else
cout << " Los grados Kelvin son " << 5*(R-491.67)/9 + 273.15 <<
endl;
system("pause");
}

if (op==0)
m=0;

Dpto. de Ingeniería Industrial UNT 18


Lenguaje de programación Ing. Martin Inca Alayo

Problema 6:

// haga un programa que cuente la cantidad de dígitos que


// contiene un numero aleatorio entero largo y positivo

#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;

void main()
{
long long N;
int i,T=1,k;
srand(time(NULL)); // variar aleatorios en base reloj interno
while (T>0)
{ cout << "ingrese un numero entre 1 y 100 "; cin >>T;
for (i=1;i<=T;i++)
N=rand();
if (T!=0)
{cout << "Numero aleatorio entero largo " << N << endl ;
k=0;
while (N > 0)
{
N= N/10;

Dpto. de Ingeniería Industrial UNT 19


Lenguaje de programación Ing. Martin Inca Alayo

k++;
}
cout << "Numero de digitos " << k << endl ;
}
}
system("pause");

Problema 7:

// Ingresar el sueldo de un trabajador. Luego determinar el menor


// número de billetes de 100, 50, 20 y 10 y monedas de 5, 2 y 1.
// Repetir N veces

#include <iostream>
#include <stdlib.h>
using namespace std;

void main()
{
long S=1,S1;
int i,k;
int b100,b50,b20,b10,b5,b2,b1;

// generacion de numero aleatorio variable


while (S>0)
{ b100=0,b50=0,b20=0,b10=0,b5=0,b2=0,b1=0;
cout << "ingrese el sueldo de trabajador "; cin >>S;
if (S!=0)
Dpto. de Ingeniería Industrial UNT 20
Lenguaje de programación Ing. Martin Inca Alayo

{ S1 = S;
// billetes de 100
b100=S1/100;
cout << "Numero de billetes de 100 " << b100 << endl ;

S1 = S-b100*100;
// billetes de 50
b50=S1/50;
cout << "Numero de billetes de 50 " << b50 << endl ;

S1 = S-b100*100-b50*50;
// billetes de 20
b20=S1/20;
cout << "Numero de billetes de 20 " << b20 << endl ;

S1 = S-b100*100-b50*50-b20*20;
// billetes de 10
b10=S1/10;
cout << "Numero de billetes de 10 " << b10 << endl ;

S1 = S-b100*100-b50*50-b20*20-b10*10;
// billetes de 5
b5=S1/5;
cout << "Numero de monedas de 5 " << b5 << endl ;
S1 = S-b100*100-b50*50-b20*20-b10*10-b5*5;
// billetes de 2
b2=S1/2;
cout << "Numero de monedas de 2 " << b2 << endl ;
S1 = S-b100*100-b50*50-b20*20-b10*10-b5*5-b2*2;
// billetes de 2
b1=S1;
cout << "Numero de monedas de 1 " << b1 << endl ;
}
}
system("pause");

Dpto. de Ingeniería Industrial UNT 21


Lenguaje de programación Ing. Martin Inca Alayo

Problema 8:

// Ingresar un número y una base del sistema de numeración.


// Reportar si el número pertenece a ese sistema de numeración.
// Tener en cuenta que un número pertenece a un sistema cuando sus
// dígitos son menores a la base

#include <iostream>
using namespace std;

void main()
{
int N,B,k=0,i=0,D;
cout << "ingrese un numero "; cin >>N;
cout << "ingrese la base "; cin >>B;

Dpto. de Ingeniería Industrial UNT 22


Lenguaje de programación Ing. Martin Inca Alayo

while (N>0)
{
D = N/10;
D = N - D*10;
i++;
if (D < B)
k++;
N = N/10;
}
if (i==k)
cout << "El numero pertenece a sistema de numeracion de la base
" << B << endl;
else
cout << "El numero no pertenece al sistema de numeracion de la
base " << B << endl;
system("pause");

Problema 9:

// Generar 20 conjuntos de 5 números aleatorios, cada uno con


// valores entre 1 y 9, luego calcular la media armónica de cada
// conjunto. La media armónica es la inversa del promedio de los
// inversos.

#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <math.h>
using namespace std;

void main()
{
double M[21][6],MA;

Dpto. de Ingeniería Industrial UNT 23


Lenguaje de programación Ing. Martin Inca Alayo

int k,i;
srand(time(NULL));
for (i=1;i<=20;i++)
for (k=1;k<=5;k++)
{ M[i][k] = rand();
M[i][k] = round(M[i][k]/32767.00*8+1);
}
// calculo media armónica
for (i=1;i<=5;i++)
{ MA=0.00;
for (k=1;k<=20;k++)
MA += 1/M[k][i];
cout << "La media armonica del conjunto " << i << " es " << MA <<
endl;
}
system("pause");

Problema 10:

// Ingresar el orden y los elementos de una matriz. Si el número


de columna es mayor que el número de fila, cambiar el valor de
aquellos elementos con subíndice impares por un aleatorio de 2
dígitos, reportar la nueva matriz. En caso contrario determinar el
menor valor de cada columna impar y el mayor valor de cada columna
par.

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

void main()
Dpto. de Ingeniería Industrial UNT 24
Lenguaje de programación Ing. Martin Inca Alayo

{
double M[10][10],V[10],me,ma;
int k,i,j,F,C,iF,kC;

cout << "Ingrese numero de filas "; cin >> F;


cout << "Ingrese numero de columnas "; cin >> C;

for (i=1;i<=F;i++)
for (k=1;k<=C;k++)
{
cout << "Ingrese valor de matriz "; cin >> M[i][k];
}

// cambiar valor de impares

for (i=1;i<=F;i++)
for (k=1;k<=C;k++)
{
if ((k > i)&&(i!=int(i/2)*2)&&(k!=int(k/2)*2))
{
for (j=1;j<=F;j++)
M[i][k] = rand();
M[i][k] = round(M[i][k]/32767.00*99+1);
}
}
// menores y mayores valores
for (k=1;k<=C;k++)
{ me=0; ma=0;
for (i=1;i<=F;i++)
{
if (k!=int(k/2)*2)
{if ((M[i][k]<me)||(i==1))
me=M[i][k]; }
else
{if ((M[i][k]>ma)||(i==1))
ma=M[i][k]; }
}
if (k!=int(k/2)*2)
V[k] = me;
else
V[k] = ma;
}

for (i=1;i<=F;i++)
{ cout << endl;
for (k=1;k<=C;k++)

Dpto. de Ingeniería Industrial UNT 25


Lenguaje de programación Ing. Martin Inca Alayo

{ cout << M[i][k] << " ";


}
}
cout << endl << endl << "Los menores y mayores son " << endl;
for (k=1;k<=C;k++)
cout << V[k] << " ";

cout << endl;


system("pause");

Problema 11:

// Ingresar una cadena en la que indique la fecha en formato


// dd/mm/aaaa y devuelva en texto

#include <iostream>
#include <string.h>
using namespace std;

void main()
{
char fecha[10],mes[2],mess;

cout << "Ingrese una fecha dd/mm/aaaa ";cin >> fecha;

Dpto. de Ingeniería Industrial UNT 26


Lenguaje de programación Ing. Martin Inca Alayo

cout << fecha[0] << fecha[1] << " - " << fecha[3] << fecha[4] <<
" - " << fecha[6] << fecha[7] << fecha[8] << fecha[9] << endl ;
mes[0] = fecha[3];
mes[1] = fecha[4];

if ((mes[0]=='0')&&(mes[1]=='1'))
mess = '1';
if ((mes[0]=='0')&&(mes[1]=='2'))
mess = '2';
if ((mes[0]=='0')&&(mes[1]=='3'))
mess = '3';
if ((mes[0]=='0')&&(mes[1]=='4'))
mess = '4';
if ((mes[0]=='0')&&(mes[1]=='5'))
mess = '5';
if ((mes[0]=='0')&&(mes[1]=='6'))
mess = '6';
if ((mes[0]=='0')&&(mes[1]=='7'))
mess = '7';
if ((mes[0]=='0')&&(mes[1]=='8'))
mess = '8';
if ((mes[0]=='0')&&(mes[1]=='9'))
mess = '9';
if ((mes[0]=='1')&&(mes[1]=='0'))
mess = 'a';
if ((mes[0]=='1')&&(mes[1]=='1'))
mess = 'b';
if ((mes[0]=='1')&&(mes[1]=='2'))
mess = 'c';

switch(mess)
{
case '1':
cout << fecha[0] << fecha[1] << " Enero " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '2':
cout << fecha[0] << fecha[1] << " Febrero " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '3':
cout << fecha[0] << fecha[1] << " Marzo " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '4':
cout << fecha[0] << fecha[1] << " Abril " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '5':

Dpto. de Ingeniería Industrial UNT 27


Lenguaje de programación Ing. Martin Inca Alayo

cout << fecha[0] << fecha[1] << " Mayo " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '6':
cout << fecha[0] << fecha[1] << " Junio " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '7':
cout << fecha[0] << fecha[1] << " Julio " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '8':
cout << fecha[0] << fecha[1] << " Agosto " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case '9':
cout << fecha[0] << fecha[1] << " Setiembre " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case 'a':
cout << fecha[0] << fecha[1] << " Octubre " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case 'b':
cout << fecha[0] << fecha[1] << " Noviembre " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
case 'c':
cout << fecha[0] << fecha[1] << " Diciembre " << fecha[6] <<
fecha[7] << fecha[8] << fecha[9] << endl ; break;
}

system("pause");
}

Problema 12:

Dpto. de Ingeniería Industrial UNT 28


Lenguaje de programación Ing. Martin Inca Alayo

// Leer una cadena de 10 caracteres y que representa a un número


// escrito en forma de romana y convierta a entero

#include <iostream>
#include <string.h>
using namespace std;

void main()
{
char cadena[10],D;
int anum=0,num,num1,i,c=0,ant=0,ab=1;

while (ab>0)
{anum=0;
cout << "Ingrese una cadena con menos 10 caracteres ";cin >>
cadena;
cout << endl;
if (cadena[0]=='0')
ab=0;

if (ab!=0)
{
c=1;

for (i=0;i<=strlen(cadena)-1;i++)
{ D = cadena[i];
cout << cadena[i] ;

if ((cadena[i-1]==cadena[i])&&(i!=0))
c++;
else
c=1;

ant = num;

switch(D)
{
case 'I':
num = 1 ;break;
case 'V':
num = 5 ;break;
case 'X':
num = 10 ; break;
case 'L':
num = 50 ; break;
case 'C':

Dpto. de Ingeniería Industrial UNT 29


Lenguaje de programación Ing. Martin Inca Alayo

num = 100 ; break;


case 'D':
num = 500 ; break;
case 'M':
num = 1000 ; break;
}
num1=num;
if ((c==1)&&(num>ant)&&(i>0))
num= num-ant*2;

anum += num;
num = num1;
if (c>3)
{ cout << "Numero ingresado erradamente " << endl ;
i=strlen(cadena) ; anum=-1; }

}
if (anum!=-1)
cout << " " << anum << endl ;
}
}
system("pause");
}

Problema 13:

// Ingrese cadena de longitud arbitraria y reportar la longitud de


// la cadena, el número de ocurrencia de palabras y
// sustituir cada palabra de 4 letras por asterisco e imprimir

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

Dpto. de Ingeniería Industrial UNT 30


Lenguaje de programación Ing. Martin Inca Alayo

void main()
{
char cadena[100],cade[100],D;
int i,k,l=0,ab=1,C[100],f=0;

for (i=0;i<=100;i++)
C[i]=0;

while (ab>0)
{
cout << "Ingrese una cadena con menos 100 caracteres, 0 para fin
";gets(cadena);
cout << endl;
if (cadena[0]=='0')
ab=0;

if (ab!=0)
{
l=strlen(cadena);
for (i=0;i<=l-1;i++)
{ cade[i] = cadena[i];
for (k=0;k<=l-1;k++)
{
if ((cadena[i]==cadena[k]))
C[i]++;
}
}
cade[l]='\0';
for (i=0;i<=l-2;i++)
for (k=i+1;k<=l-1;k++)
if ((cadena[i]==cadena[k]))
C[k]=0;

cout << "la longitud de la cadena es " << l << endl << endl;

for (i=0;i<=l-1;i++)
if (C[i]!=0)
cout << "la ocurrencia es de " << C[i] << " para " <<
cadena[i] << endl;
cout << endl;
f=0;
for (i=0;i<=l;i++)
{ if ((cadena[i]!=' ')||(cadena[i]='\0'))
f++;
else
f=0;

Dpto. de Ingeniería Industrial UNT 31


Lenguaje de programación Ing. Martin Inca Alayo

if (f==4)
{cadena[i]='*';
cadena[i-1]='*';
cadena[i-2]='*';
cadena[i-3]='*';
f=0;
}
else
cadena[i]=cade[i];

}
cout << endl << "la cadena inicial es " << cade << endl;
cout << "la cadena final es " << cadena << endl << endl;

}
}
system("pause");
}

Problema 14:

// Hallar la matriz a partir de una matriz ingresada de tal manera


// que en las filas pares solo debe existir elemento impares si
// faltan elementos impares lo completara con subindice de la
// columna y el de las filas impares vayan solo los pares, si
// falta lo completa con unos. Usar punteros.

#include <iostream>

Dpto. de Ingeniería Industrial UNT 32


Lenguaje de programación Ing. Martin Inca Alayo

#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,k,f,c,par=0;
int M[20][20],N[20][20], *em, *en ;

cout << "Ingrese numero de filas ";cin >> f;


cout << "Ingrese numero columnas ";cin >> c;

em = &M[0][0];
en = &N[0][0];

for (i=0;i<=f-1;i++)
for (k=0;k<=c-1;k++)
{ cout << "ingrese elem " << i+1 << " " << k+1 << " " ;
cin >> *(*(M+i)+k) ;
*(*(N+i)+k) = *(*(M+i)+k);
}

for (i=0;i<=f-1;i++)
{ if (i+1==int((i+1)/2)*2)
par=1;
else
par=0;
for (k=0;k<=c-1;k++)
{
if ((par==1)&&(*(*(M+i)+k)==int(*(*(M+i)+k)/2)*2))
*(*(M+i)+k) +=1;
else
*(*(M+i)+k) =k;

if ((par==0)&&(*(*(M+i)+k)!=int(*(*(M+i)+k)/2)*2))
*(*(M+i)+k) +=1;
else
*(*(M+i)+k) = 1;
}

for (i=0;i<=f-1;i++)
{
for (k=0;k<=c-1;k++)
cout << *(*(N+i)+k) << " ";

cout << endl ;

Dpto. de Ingeniería Industrial UNT 33


Lenguaje de programación Ing. Martin Inca Alayo

}
cout << endl;
for (i=0;i<=f-1;i++)
{
for (k=0;k<=c-1;k++)
cout << *(*(M+i)+k) << " ";

cout << endl;


}
}

system("pause");
}

Problema 15:

// Ingresar el número de alumnos de una sección, los nombres de


// cada alumno y sus notas de 4 cursos. Se desea saber:
// el porcentaje de alumnos aprobados en cada curso
// el promedio de notas de cada alumno. Usar punteros;

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

Dpto. de Ingeniería Industrial UNT 34


Lenguaje de programación Ing. Martin Inca Alayo

void main()
{
int i,k,f,c;
double S=0,C=0;
int N[20][5],*em ;
char Nom[20][20],* en;

cout << "Ingrese numero de alumnos ";cin >> f;


cout << "Ingrese numero cursos ";cin >> c;

em = &N[0][0];
en = Nom[0];

for (i=0;i<=f-1;i++)
{ cout << "Ingrese nombre del alumno " << i+1 << " "; cin >>
*(Nom+i);
for (k=0;k<=c-1;k++)
{ cout << "ingrese nota curso" << k+1 << " " ;
cin >> *(*(N+i)+k) ;
}
}

cout << endl;


for (i=0;i<=c-1;i++)
{ C=0.00;
for (k=0;k<=f-1;k++)
if (*(*(N+k)+i) > 10.5)
C += 1;
C = C/f*100;
cout << "El porcentaje de aprobados de curso " << i+1 << "
" << C << endl;
}
cout << endl ;

for (i=0;i<=f-1;i++)
{ S=0.00;
for (k=0;k<=c-1;k++)
S += *(*(N+i)+k);
S = S/c;
cout << "El promedio del alumno " << *(Nom+i) << " es " <<
S << endl;
}
cout << endl ;
system("pause");
}

Dpto. de Ingeniería Industrial UNT 35


Lenguaje de programación Ing. Martin Inca Alayo

Problema 16:

// Ingresar el número de vacas de establo y el valor de kg al peso


// vivo. Ingresar para cada vaca su código, peso en kg, edad en
// años rendimiento medio de leche en litros.
// solo permanecerán si pesan más de 450 kg, rendimiento de 25 lt
// o edad de 8 años.

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,vk,k,f,c;
double S=0,C=0;
int V[20][5],*em ;

cout << "Ingrese numero de vacas ";cin >> f;


cout << "Ingrese valor kg en vivo ";cin >> vk;
c=4;
em = &V[0][0];

for (i=0;i<=f-1;i++)
Dpto. de Ingeniería Industrial UNT 36
Lenguaje de programación Ing. Martin Inca Alayo

{
cout << "ingrese el codigo " ; cin >> (*(*(V+i)+0)) ;
cout << "ingrese el peso en Kg " ; cin >> (*(*(V+i)+1)) ;
cout << "ingrese la edad en años " ; cin >> (*(*(V+i)+2)) ;
cout << "ingrese el rendimiento " ; cin >> (*(*(V+i)+3)) ;
}

cout << endl;

for (i=0;i<=f-1;i++)
{ for (k=0;k<=c-1;k++)
cout << *(*(V+i)+k) << " " ;
cout << endl ;
}
cout << endl ;

cout << "cumplen con requisitos " << endl;

for (i=0;i<=f-1;i++)
if ((*(*(V+i)+1) > 480)&&(*(*(V+i)+2) > 8)&&(*(*(V+i)+3) >
25))
cout << "codigo vaca " << (*(*(V+i)+0)) << endl ;

cout << endl ;

system("pause");
}

Dpto. de Ingeniería Industrial UNT 37


Lenguaje de programación Ing. Martin Inca Alayo

Problema 17:

// Ingresar el tamaño de un vector y cada uno de sus elementos y


// encuentre la posición que ocupa el primer número negativo. si
// no hay negativos indicarlo.

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,k,f,c;

int V[20],*em ;

cout << "Ingrese numero de elementos ";cin >> f;

em = &V[0];

for (i=0;i<=f-1;i++)

Dpto. de Ingeniería Industrial UNT 38


Lenguaje de programación Ing. Martin Inca Alayo

{
cout << "ingrese el elem " ; cin >> (*(V+i)) ;
}

cout << endl;

for (i=0;i<=f-1;i++)
cout << *(V+i) << " " ;

cout << endl ;

cout << " numero negativo " << endl;


c=0;
for (i=0;i<=f-1;i++)
if (*(V+i) < 0)
{ cout << "la posicion del numero negativo es " << i+1 <<
endl;
c++;
}

if (c==0)
cout << "no hay numero negativos en vector " << endl ;

system("pause");
}

Problema 18:

// Ingresar el orden y cada uno de los elementos de dos vectores

Dpto. de Ingeniería Industrial UNT 39


Lenguaje de programación Ing. Martin Inca Alayo

// numéricos. Si son de igual dimensión clasificarlos el primero


// en order creciente y el segundo en orden decreciente

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,k,f,c;

int V1[20],V2[20],tv ;

cout << "Ingrese numero de elementos ";cin >> f;


cout << "Primer vector " << endl;
for (i=0;i<=f-1;i++)
{
cout << "ingrese el elem " << i+1 << " " ; cin >> V1[i] ;
}
cout << endl << "Segundo vector " << endl;
for (i=0;i<=f-1;i++)
{
cout << "ingrese el elem " << i+1 << " "; cin >> V2[i] ;
}

cout << endl;

// orden ascendente
for (i=0;i<=f-2;i++)
for (k=i+1;k<=f-1;k++)
if (V1[k] < V1[i])
{ tv = V1[k];
V1[k] = V1[i];
V1[i] = tv;
}
// orden descendente
for (i=0;i<=f-2;i++)
for (k=i+1;k<=f-1;k++)
if (V2[k] > V2[i])
{ tv = V2[k];
V2[k] = V2[i];
V2[i] = tv;
}
cout << endl ;
cout << " Impresion de vectores " << endl;

Dpto. de Ingeniería Industrial UNT 40


Lenguaje de programación Ing. Martin Inca Alayo

for (i=0;i<=f-1;i++)
{
cout << V1[i] << " " << V2[i] << endl;
}

system("pause");
}

Problema 19:

// Ingresar el número de operarios de una empresa y el porcentaje


// de descuento por leyes sociales. Ingresar nombre de operario,
// su salario básico por hora, nro.de horas trabajadas a la semana
// si es 40 0 menos no incluir dominical. Orden alfabético
// Reportar nombre, salario bruto, valor de descuentos y salario
// neto de cada trabajador.

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,k,l,f;
char Nom[20][30],tnom[30];

Dpto. de Ingeniería Industrial UNT 41


Lenguaje de programación Ing. Martin Inca Alayo

double T[20][3],D,des,t;

cout << "Ingrese numero de trabajadores ";cin >> f;


cout << "Ingrese % de descuento ";cin >> des;
des = des/100;

cout << endl;

for (i=0;i<=f-1;i++)
{
cout << "Datos de trabajador " << i+1 << endl ;

cout << "Nombre " ; cin >> Nom[i] ;


cout << "Salario x hora " ; cin >> T[i][1] ;
cout << "Numero hora trab x sem " ; cin >> T[i][2] ;

if (T[i][2] <40)
D = 0;
else
D = 8*T[i][1];

T[i][3] = (T[i][1]*T[i][2] + D)*(1-des);


}
cout << endl ;

// ordenamiento en forma alfabetica


for (i=0;i<=f-2;i++)
for (k=i+1;k<=f-1;k++)
for (l=0;l<=30-1;l++)
{ if (Nom[k][l]<Nom[i][l])
{ strcpy(tnom,Nom[k]);
strcpy(Nom[k],Nom[i]);
strcpy(Nom[i],tnom);
t = T[k][1];
T[k][1] = T[i][1];
T[i][1] = t;
t = T[k][2];
T[k][2] = T[i][2];
T[i][2] = t;
t = T[k][3];
T[k][3] = T[i][3];
T[i][3] = t;
l=30;
//cout << Nom[i] << " " << Nom[k] << " " << tnom << endl
;
}

Dpto. de Ingeniería Industrial UNT 42


Lenguaje de programación Ing. Martin Inca Alayo

else
l=30;
}
cout << " Impresion de resultados " << endl;
for (i=0;i<=f-1;i++)
{
cout << Nom[i] << " " ;
cout << T[i][1] << " " << T[i][2] << " " << T[i][3] <<
endl;
}
cout << endl;
system("pause");
}

Problema 20:

// Ingresar el tamaño y los valores de los elementos de dos


// vectores denominados X[i] e Y[i]. Si ambos tienen el mismo num
// de elem ingresar el valor de una variable denominado XR,
// si este es igual a uno de los elem en X (XR=X[i], colocar Y[i]
// en YR y reportar dicho valor (YR) si no es así reportar el
// mensaje "Valor no encontrado" .
// Reportar la diferencia de valor mayo y menor.

#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;

void main()
{
int i,k,f;

Dpto. de Ingeniería Industrial UNT 43


Lenguaje de programación Ing. Martin Inca Alayo

double X[20],Y[20],XR,YR=0,ma1=0,ma2=0,me1=0,me2=0;

cout << "Ingrese numero de elementos ";cin >> f;


cout << "Ingrese valor XR ";cin >> XR;

cout << endl;

for (i=0;i<=f-1;i++)
{
cout << "Datos de vectores " << i+1 << endl ;

cout << "Valores de X " ; cin >> X[i] ;


cout << "Valores de Y " ; cin >> Y[i] ;
if (X[i]==XR)
YR = Y[i];
}

cout << endl ;

if (YR==0)
cout << "El valor buscado no fue encontrado ";
else
cout << "El valor buscado es " << YR ;

cout << endl << endl ;

cout << "Impresion de valores mayores y menores " << endl;

for (i=0;i<=f-1;i++)
{
if ((X[i]< me1)||(i==0))
me1 = X[i];
if ((X[i]> ma1)||(i==0))
ma1 = X[i];

if ((Y[i]< me2)||(i==0))
me2 = Y[i];
if ((Y[i]> ma2)||(i==0))
ma2 = Y[i];
}

cout << "El rango de X es " << ma1-me1 << endl;


cout << "El rango de Y es " << ma2-me2 << endl;

cout << endl;


system("pause");

Dpto. de Ingeniería Industrial UNT 44


Lenguaje de programación Ing. Martin Inca Alayo

Dpto. de Ingeniería Industrial UNT 45

You might also like