Post on 30-Jul-2015
PROGRAMACION EN C++
2012
BARRIOS URBINA ADMER
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 1
Problema # 3
Ingresar el orden y cada uno de sus elementos de una matriz. Si ésta es cuadrada
colocar un número aleatorio comprendido entre 33 y 74 en cada elemento de la
diagonal secundaria y los demás elementos se deben dejar con la misma
información, reportar esta nueva matriz. En caso contrario, reportar un vector cuyos
elementos están formados por el promedio de los elementos que se encuentran en
las columnas impares y en otros casos por ceros (0).Usar punteros.
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>
main(){
int n, m, i, s[20],v[20][20],j, mayor, prom [20],x[20];
clrscr();
randomize();
cout<<" Numero de filas : "; cin>>n;
cout<<" Numero columnas : ";cin>>m;
for (i=1;i<=n; i++){
for(j=1;j<=m; j++){
cout<<"V["<<i<<"]["<<j<<"]:" cin>>*(*(v+i)+j);
}
}
cout<<"MATRIZ ORIGINAL:"<<”\n\n”;
for(i=1;i<=n; i++){
for(j=1;j<=m; j++) cout<<*(*(v+i)+j);cout<<" "; cout<<endl;}
if(m==n){
for(i=1;i<=n;i++){
for(j=1;j<=m;j++){
if(i+j==n+1)*(*(v+i)+j)=rand()%(74-33+1)+33;
}
}
cout<<" NUEVA MATRIZ :"<<endl;
for(i=1;i<=n;i++){
for(j=1;j<=m;j++) cout<<*(*(v+i)+j);cout<<" ";cout<<”\n”;
}
Capitulo 7: Punteros
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 2
}
else {
for(j=1;j<=m;j++){
*(s+j)=0;
for(i=1;i<=n;i++)*(s+j)=*(s+j)+*(*(v+i)+j);
*(prom+j)=*(s+j)/n;
}
cout<<"PROMEDIO DE CADA COLUMNA:"<<”\n”;
for(j=1;j<=m; j++) cout<<"p["<<j<<"]:"<<*(prom+j)<<endl;
for(j=1;j<=m;j++) if(j%2!=0)*(x+j)=*(prom+j);
for(j=1;j<=m;j++)if(j%2==0)*(x+j)=0;
cout<<" NUEVO VECTOR FORMADO :"<<”\n”;
for(j=1;j<=m;j++)cout<<"X["<<j<<"]:"<<*(x+j)<<endl;
}
getch();
}
Problema # 8
Ingresar el numero de vacas de un establo y el valor del Kg. Al peso vivo en el
establo. Así mismo ingresar para cada vaca su : (1) código(cuatro dígitos), (2) Peso
en Kg, (3) edad en años(con dos decimales), y (4) rendimiento diario de leche ( en
litros) durante el último año. Sólo deben seguir en producción aquellas vacas que
cumplan las tres condiciones siguientes:
a) Tener un peso de 450 Kg.
b) Haber brindado durante el último año un rendimiento diario medio mayor de 25
litros
c) Tener una edad menor de 8 años.
CODIFICACIÓN
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
void main() {
float vkg, pe[20], ed[20],re[20],s=0;
int cal[20],cont=0,n,i;
char cod [5];
clrscr();
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 3
do{
cout<<"# TOTAL DE VACAS: ";cin>>n;
}
while(n<=0);
do{
cout<<" VALOR (del Kg) AL PESO VIVO: "; cin>>vkg;
}
while (vkg<=0);
cout<<endl<<" DATOS DE LAS VACAS VAQUERAS"<<”\n”;
for (i=1;i<=n;i++){
cout<<"VACA["<<i<<"]: "<<endl;
cout<<"CODIGO["<<i<<"]: "; gets(cod);
do{
cout<<"PESO["<<i<<"]: ";cin>>*(pe+i);
}
while(*(pe+i)<=0);
do{
cout<<"EDAD["<<i<<"]: "; cin>>*(ed+i);
}
while(*(ed+i)<=0);
do{
cout<<"RENDIMIENTO DE LECHE(diario)["<<i<<"]: "; cin>>*(re+i);
cout<<endl;
}
while(*(re+i)<=0);
}
for (i=1;i<=n;i++)
if (*(pe+i)>=450 && *(re+i)>25 && *(ed+i)<8) *(cal+i)=1;
else *(cal+i)=0;
for (i=1;i<=n;i++){
cout<<endl<<"VACA ["<<i<<"]:"<<endl<<" CODIGO: "<<cod[i]<<" ; PESO:
"<<*(pe+i)<<" ;EDAD: "<<*(ed+i);cout<<endl<<" RENDIMIENTO DIARIO:
"<<*(re+i)<<" ; CALIFICATIVO: "<<*(cal+i);cout<<endl;
if (*(cal+i)==0) {
s=s+vkg**(pe+i);cont++;
}
}
cout<<”\n”<<"TOTAL DE VACAS EN VENTA : "<<cont;<<”\n”;
cout <<"IMPORTE TOTAL DE LAS VACAS VENDIDAS : "<<s;
getch();
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 4
}
Problema # 3
Ingresar el numero de alumnos de una sección, luego ingresar los respectivos
nombres, números de matrícula, y calificación en una asignatura. Se desea
reportar tres listados consecutivos y ordenados: El primero en forma ascendente
por numero de matrícula, el segundo por orden alfabético del nombre y el tercero
en forma descendente por nota.
CODIFICACIÓN
#include<conio.h>
#include<iostream.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<ctype.h>
main(){
int n, x ;
char nombres[10][15];
int matricula[10];
int nota[10];
int i, j, t, y ;
char *h;
clrscr();
cout<<"ingrese el numero de alumnos:";cin>>n;
for(i=1;i<=n;i++){
cout<<"Nombre del alumno:";gets(*(nombres+i));
cout<<"numero de matricula:";cin>>*(matricula+i);
cout<<"nota en la asignatura:";cin>>*(nota+i);}
clrscr();
cout<<"eliga una operacion del menu:";
cout<<1. Listado por numero de matricula";
cout<<2. Listado por nombre";
cout<<3. Listado por nota";
do{
cout<<"opcion : "; cin>>x;
}
while(n<1||n>3);
Capitulo 8: Ordenamiento y Búsqueda
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 5
switch (x){
case 1:{
for(i=1;i<=n-1;i++){
for(j=i+1;j<=n;j++){
if(*(matricula+i)>*(matricula+j)){
t=*(matricula+i);*(matricula+i)=*(matricula+j);*(matricula+j)=t;
}
}
cout<<"nº de matricula nombre del alumno nota:"<<endl;
for(i=1;i<=n;i++){
cout<<*(matricula+i)<<" "<<*(nombres+i)<<" "<<*(nota+i)<<endl;
}
break;
}
case 3:{
for(i=1;i<=n-1;i++){
for(j=i+1;j<=n;j++){
if(*(nota+i)>*(nota+j)){t=*(nota+i);*(nota+i)=*(nota+j);*
(nota+j)=t;
}
}
cout<<"nº de matricula nombre del alumno nota:"<<endl;
for(i=1;i<=n;i++){
cout<<*(matricula+i)<<" "<<*(nombres+i)<<" "<<*(nota+i)<<endl;
}
break;
}
}
}
}
getch();
}
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 6
Problema # 10
Ingresar un conjunto de 12 palabras. Luego Ingresar otra palabras, si ésta no es
igual a alguna de las doce anteriores, el proceso sera considerado como un error.
Reportar el resultado.
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
main(){
int j, I ;
char inserte[10]; // lo que se inserta
char clave[11][10]={"GATO","GUEPARDO","JAGUAR","LEON","LEOPARDO",
"LINCE", "PANTERA","PUMA","SERVAL","TIGRE" }
clrscr();
randomize();
j=rand ()%10;
i=0;
cout<<"RESULTADO:"<<clave[j]<<endl<<endl; //esto solo para comprobar
cout<<"INGRESAR CLAVE:"; gets (inserte);
strupr(inserte);
if( strcmp(clave[j],inserte)==0)cout<<"FELICITACIONES";
else cout<<"ERROR"<<endl;
cout<<"RESULTADO:"<<clave[j];
getch();
}
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 7
Problema # 3
Ingresra tres datos. Si cualquiera de ellos es multiplo de tres determiner el mayor
dato y calcular la suma acumulativa de los numerous natrales hasta dicho numero.
En caso contrario, determinar el factorial del tercer valor y las sumas acumulativas
de los naturales hasta cada uno de los primeros datos. Calcular y reportar el
producto de las sumatorias dividido entre el factorial. Crear las funciones
Sumatoria() y Factorial ().
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<math.h>
longint factorial(int);
long int sumatoria(int);
void main() {
int a, b, c ;
int mayor;
float q;
clrscr();
do {
cout<<"Ingrese primer valor: "; cin>>a;
cout<<"\nIngrese segundo valor: "; cin>>b;
cout<<"\nIngrese tercer valor: "; cin>>c;
}
while(a==b || b==c || a==c);
if(a%3==0 || b%3==0 || c%3==0) {
if(a>b && a>c) cout<<"\n\nLa suma acumulativa de los naturales hasta”
<<a<<" es: "<<sumatoria(a);
if(b>a && b>c) cout<<"\n\nLa suma acumulativa de los naturales hasta”
<<b<<" es: "<<sumatoria(b);
if(c>a && c>b) cout<<"\n\nLa suma acumulativa de los naturales hasta”
<<c<<" es: "<<sumatoria(c);
}
else { q=(float)((sumatoria(a))*(sumatoria(b)))/(factorial(c));
cout<<"\n\nEl cociente del producto de la suma acumulativa de los
naturales hasta "<<a<<" y la suma acumulativa de los naturales hasta
"<<b<<" entre el factorial de "<<c<<" es: "<<q;
}
Capitulo 9: Procedimiento y Funciones
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 8
getch();
}
long int factorial(int n) { if(n<=1) return 1; else return n*factorial(n-1); }
long int sumatoria(int n){ if(n<=0) return 0;else return n+ sumatoria (n-1); }
Problema # 7
Determinar todos los numerous primos que hay entre a y b. Crear la función
Primos ().
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
//variables globales
int a;
int b;
int i;
long int primos (int);
void main(void){ clrscr();
cout<<"Ingrese Primer valor: "; cin>>a;
cout<<"Ingrese Segundo valor: "; cin>>b;
if (a<b){
for(i=a;i<=b;i++) {
if (primos(i)==1) {
cout<<i<<" ";
}
}
}
else {
for(i=b;i<=a;i++) {
if (primos(i)==1) {
cout<<i<<" ";
}
}
}
getch();
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 9
}
//Llamados de Procedimientos y Funciones
long int primos (int i) { register int m; register int j;
int q;
int k;
for(m=2;m<=i;m++){
j=2;k=1;
while(j<m){
q=(int)m/j;
if(m==j*q)k=0;
j=j+1;} } return(k);
}
Problema # 4
Utilizar un función recursiva que produzca la suma de los dígitos de un valor entero
no negativo.
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<stdio.h>
long int sumatoria(int);
void main() {
int n;
clrscr();
cout<<"ingresar numero ";cin>>n;
cout<<" sumatoria "<<sumatoria(n);
getch();
}
long int sumatoria (int n){
if(n<=0) return 0;
else return n+sumatoria(n-1);
}
Capitulo 10: Recursividad
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 10
Problema # 10
Una clínica privada almacena la siguiente información de sus pacientes:
Nombre, DNI, dirección, teléfono, fecha de última visita, si pertenece a Es Salud
(seguridad social) o no, si tiene alergias y un diagnóstico del paciente. Se desea un
programa con las siguientes opciones:
a) Introducción de la información. b) Dado el número de DNI de un paciente, presentar toda la información de dicho
paciente. c) Listar todos los pacientes con alergias. d) Listar alfabéticamente todos los pacientes que no pertenecen a Es Salud.
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<string.h>
main(){
struct clinica{
charnombre[10];
long int DNI;
char direccion[10];
long int telefono;
char ultvisita[10];
char ESSALUD[3];
char alergias[3];
char diagnostico[10];
} pc[10]; //estructura
char aux[10];
int n, m, p ;
int i, j, t ;
long int dni;//DNI del paciente buscado
clrscr();
cout<<"numero de pacientes:";cin>>n;
for(i=1;i<=n;i++){
cout<<"DATOS DEL PACIENTE N° : "<<i<<endl;
cout<<"nombre :";gets(pc[i].nombre);
cout<<"DNI :";cin>>pc[i].DNI;
Capitulo 11: Estructuras
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 11
cout<<"direccion :";gets(pc[i].direccion);
cout<<"telefono :";cin>>pc[i].telefono;
cout<<"fecha de ultima visita :";gets(pc[i].ultvisita);
cout<<"pertenece a ESSALUD(si/no):";gets(pc[i].ESSALUD);
cout<<"tiene alergias (si/no):";gets(pc[i].alergias);
cout<<"diagnostico :"; gets (pc[i].diagnostico);
clrscr();
}
cout<<"1.dado el DNI presentar datos del paciente:"<<endl;
cout<<"2.pacientes con alergias:"<<endl;
cout<<"3.lista de pacientes que no pertenecen a ESSALUD:"<<endl;
cout<<"4.listado completo de pacientes "<<endl;
cout<<"elegiropcion :";cin>>m;
clrscr();
switch(m) {
case 1:{ p=-1;
cout<<"ingresar DNI de paciente buscado:";cin>>dni;
for(i=1;i<=n;i++){
if(pc[i].DNI==dni) p=i;
}
if(p!=-1){
cout<<"DATOS DEL PACIENTE N° : "<<p<<endl;
cout<<"nombre :"<<pc[p].nombre<<endl;
cout<<"DNI :"<<pc[p].DNI<<endl;
cout<<"direccion :"<<pc[p].direccion<<endl;
cout<<"telefono :"<<pc[p].telefono<<endl;
cout<<"fecha de ultima visita :"<<pc[p].ultvisita<<endl;
cout<<"pertenece a ESSALUD(si/no):"<<pc[p].ESSALUD<<endl;
cout<<"tiene alergias (si/no):"<<pc[p].alergias<<endl;
cout<<"diagnostico :"<<pc[p].diagnostico;
}
break;
}
case 2: { for(i=1;i<=n;i++){
if(pc[i].alergias=="si") {
cout<<"paciente con alergia "<<pc[i].nombre<<endl;}}
break;
}
case 3:{
for(i=1;i<=n;i++){
if(pc[i].ESSALUD=="no") {
for(i=1;i<=n-1;i++){
for(j=i+1;j<=n;j++){
if(strcmp(pc[i].nombre,pc[j].nombre)>0){
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 12
strcpy(aux,pc[i].nombre);
strcpy(pc[i].nombre,pc[j].nombre );
strcpy(pc[j].nombre,aux);
}
}
}
for(i=1;i<=n-1;i++){
cout<<"nombre del paciente no pertenece a ESSALUD : "
<<pc[i].nombre<<endl;
}
}
}
break;
}
case 4:{
for(i=1;i<=n-1;i++){
cout<<"nombre de los pacientes (lista general) :"<<pc[i].nombre<<endl;}
}
break;
}
getch();
}
Problema # 16
Para el inventario de una tienda de productos deportivos se requiere crear un arreglo
de estructuras denominado producto, que posea los campos: (A) nombre del producto,
(B) número de código (4 dígitos), (C) número de piezas en el almacén, (D) número de
piezas compradas, (E) número de piezas vendidas, (F) costo unitario y (G) precio
unitario. El programa debe contemplar las siguientes opciones:
a) Ingreso de los datos. b) Ingresar el número de código de un artículo e imprimir los datos de dicho
artículo. c) Actualización automática del campo (C) usando la información de los campos (D)
y (E), después de la actualización a estos dos últimos campos se les reasignará el valor cero.
d) Ordenación decreciente por número de código.
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 13
CODIFICACIÓN
#include<iostream.h>
#include<conio.h>
#include<string.h>
#include<stdio.h>
main(){
struct producto{
char nombre[10];
int codigo;
int almacen;
int compradas;
int vendidas;
int cunitario;
int punitario;
int actual;} producto[10];
int n; //cantidad de tipos de productos
int i, p, t=0,j,aux;
int articulo; //codigo del articulo buscado
clrscr();
cout<<"ingresar numero de tipos de articulos:";cin>>n;
for(i=1;i<=n;i++){ clrscr();
cout<<"INGRESAR DATOS DEL PRODUCTO:"<<i<<endl;
cout<<"nombre :";gets(producto[i].nombre);
cout<<"codigo :";cin>>producto[i].codigo;
cout<<"numero de piezas en almacen:";cin>>producto[i].almacen;
cout<<"numero de piezas compradas :";cin>>producto[i].compradas;
cout<<"numero de piezas vendidas :";cin>>producto[i].vendidas;
producto[i].actual=producto[i].compradas-producto[i].vendidas;
cout<<"costo unitario :";cin>>producto[i].cunitario;
cout<<"precio unitario :";cin>>producto[i].punitario; }
clrscr();
p=-1;
cout<<"INGRESAR CODIGO DEL ARTICULO DESEADO:";cin>>articulo;
for(i=1;i<=n;i++){
UNIVERSIDAD NACIONAL DE TRUJILLO
INGENIERÍA INDUSTRIAL
LENGUAJE DE PROGRAMACIÓN EN C++
Página 14
if(producto[i].codigo==articulo) p=i;
}
if(p!=-1){
cout<<"nombre :"<<producto[p].nombre<<endl;
cout<<"codigo :"<<producto[p].codigo<<endl;
cout<<"numero de piezas en almacen:"<<producto[p].actual<<endl;
cout<<"numero de piezas compradas :"<<t<<endl;
cout<<"numero de piezas vendidas :"<<t<<endl;
cout<<"costo unitario :"<<producto[p].cunitario<<endl;
cout<<"precio unitario :"<<producto[p].punitario<<endl; }
else cout<<"disculpe no tenemos el articulo que usted busca:"<<endl;
for(i=1;i<=n-1;i++){
for(j=i+1;j<=n;j++){
if(producto[i].codigo<producto[j].codigo) {
aux=producto[i].codigo ;
producto[i].codigo=producto[j].codigo;
aux=producto[j].codigo;
}
}
}
cout<<"ORDENAMIENTO DECRECIENTE DE CODIGOS:"<<endl;
for(i=1;i<=n;i++){
cout<<"codigos:"<<producto[i].codigo<<endl; }
getch();
}