Informe 2 da unidad lp

15
PROGRAMACION EN C++ 2012 BARRIOS URBINA ADMER

Transcript of Informe 2 da unidad lp

Page 1: Informe 2 da unidad lp

PROGRAMACION EN C++

2012

BARRIOS URBINA ADMER

Page 2: Informe 2 da unidad lp

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

Page 3: Informe 2 da unidad lp

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();

Page 4: Informe 2 da unidad lp

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();

Page 5: Informe 2 da unidad lp

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

Page 6: Informe 2 da unidad lp

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();

}

Page 7: Informe 2 da unidad lp

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();

}

Page 8: Informe 2 da unidad lp

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

Page 9: Informe 2 da unidad lp

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();

Page 10: Informe 2 da unidad lp

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

Page 11: Informe 2 da unidad lp

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

Page 12: Informe 2 da unidad lp

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){

Page 13: Informe 2 da unidad lp

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.

Page 14: Informe 2 da unidad lp

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++){

Page 15: Informe 2 da unidad lp

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();

}