Vous êtes sur la page 1sur 32

2013

IMFORMATICA INDUSTRIAL II

ALUMNA:
GAMBINI GONZALES, Rubi
CODIGO:
1025120215
TEMA:
Solucin de Laboratorio n5 y n6
1.- TEMA: CADENAS Y PUNTEROS
2.- TEMA: ESTRUCTURAS-
UNIONES
UNIVERSIDAD NACIONAL DEL CALLAO

FACULTAD DE INGENIERIA INDUSTRIAL Y DE SITEMAS

ESCUELA PROFESIONAL DE INGENIERIA INDUSTRIAL

CURSO: INFORMATICA INDUSTRIAL II

LABORATORIO N 5
1.- TEMA: CADENAS Y PUNTEROS

2.- OBJETIVOS:

* Declarar y asignar caracteres a una cadena de caracteres.

* Utilizar funciones de biblioteca en tiempo de ejecucin para manipular cadenas de caracteres.

* Tratar una cadena de caracteres como apuntador y manipular el contenido de la misma con
apuntadores.

* Comprender la matemtica del apuntador y manipular arreglos con apuntadores.

3.- FUNDAMENTOS TEORICO

Ejemplo de cadenas.
Char nombre [15];// cadena llamada nombre de tamao 15
Char direccin [30];//CADENA LLAMADA DIRECCION DE TAMAO 30
Los datos se almacenan en la cadena de manera anloga a un arreglo, con la salvedad que el ultimo
carter de la cadena es el carcter NULL o `\0` .
Entre las funciones cadenas tenemos: strcpy(copia una cadena en otra), strcat(aade una cadena a otra),
strchr(obtiene la cadena que se encuentra a partir de la primera aparicin de un carcter de una cadena
inicial), strcmp(compara dos cadenas), strlen, strlwr, strupr, entre otras.

Punteros:
Es tipo de dato permite almacenar una direccin de memoria.
Ejemplo:
Int *p; // puntero a enteros.
Flota *pto; // puntero a real
Char *mensaje; // puntero a una cadena
Aritmtica de punteros:
A[0] = *(A+0) = *A

A[1] = *(A+1) = (A+1)

A[2] = *(A+2) = (A+2)

..

A[i] = *(A+i) = (A+i)

EJERCICIO A DESARROLLAR:

5.1.- Escribir un programa que en un texto de 15 lneas de 60 caracteres cada lnea determine la
cantidad de prrafos de que consta el texto, as como el nmero de veces que se repite la palabra
ITEM.

#include<iostream.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>

struct texto

char letra[60];

};

texto linea[15];

void main()

int I,T,E,M;

I=T=E=M=0;

cout<<"\tTEXTO:\n";

for(int i=0;i<15;i++)

{cout<<i<<": ";gets(linea[i].letra);
for(int j=0;j<60;j++)

if(linea[i].letra[j]=='i')

{I++;

if(linea[i].letra[j]=='t')

{T++;

if(linea[i].letra[j]=='e')

{E++;

if(linea[i].letra[j]=='m')

{M++;

cout<<"\nNUMERO DE REPETICIONES\n";

cout<<"\nI: "<<I;

cout<<"\nT: "<<T;

cout<<"\nE: "<<E;

cout<<"\nM: "<<M;

getch();

5.2.- Escribir un programa que lea un texto de como mximo 50 lneas, cada lnea con un mximo
de 80 caracteres. Una vez ledo el texto intercambiar la lnea de mayor longitud por la lnea de
menor longitud.

5.3.- Se quiere leer un texto de como mximo 30lineas, de 60 caracteres cada lnea. Luego
determine la cantidad de veces que se repiten las letras U,N.A.C.

#include<iostream.h>

#include<conio.h>
#include<string.h>

#include<ctype.h>

#include<stdio.h>

struct texto

char letra[60];

};

texto linea[30];

void main()

int U,N,A,C;

U=N=A=C=0;

cout<<"\tTEXTO:\n";

for(int i=0;i<30;i++)

{cout<<i<<": ";gets(linea[i].letra);

for(int j=0;j<60;j++)

if(linea[i].letra[j]=='u')

{U++;

if(linea[i].letra[j]=='n')

{N++;

if(linea[i].letra[j]=='a')

{A++;

if(linea[i].letra[j]=='c')

{C++;

}
}

cout<<"\nNUMERO DE REPETICIONES\n";

cout<<"\nU: "<<U;

cout<<"\nN: "<<N;

cout<<"\nA: "<<A;

cout<<"\nC: "<<C;

getch();

5.4.- Escribir un programa en el que se lean 20 lneas de texto, cada lnea con un mximo de 60
caracteres. Mostrar por pantalla el nmero de vocales que tiene cada lnea.

#include<iostream.h>

#include<ctype.h>

#include<stdlib.h>

#include<conio.h>

int main()

char lista[20][60],conv;

int vocal,j;

cout<<"\t\tEscribir texto\n";

for(int i=1;i<=20;i++)

cin.getline(lista[i],60);

cout<<"\nNumero de vocales\n";

for(int i=1;i<=20;i++)

{ vocal=0;

for(j=0; lista[i][j]; j++)

{ conv= tolower(lista[i][j]);
if(conv=='a' || conv=='e' || conv=='i' || conv=='o' || conv=='u')

vocal++; }

cout<<"La linea"<<" "<<i<<" "<<"tiene"<<": "<<vocal<<endl; }

getch();

5.5.- Escribir un programa para generar una matriz de 5 x 6 elementos reales, multiplicar la
primera columna por cualquier otra y mostrar la suma de los productos. El programa debe
descomponerse en subproblemas y utilizar punteros para acceder a los elementos de la matriz.

#include<iostream.h>

#include<conio.h>

#include<stdio.h>

#include<iomanip.h>

#include<stdlib.h>

#include<fstream.h>

#include<ctype.h>

int a[5][6], i, j, sum=0, colum, mult=0;// variables globales

void entrada(); // sub programa

void multiplicar(); //sub programa

void main()// cuerpo principal

entrada();

multiplicar();

getch();

void entrada()

clrscr();

cout<<"Ingrese los datos al arreglo"<<endl;

cout<<"-----------------------------------------------"<<endl;

cout<<"Filas Col1 Col2 Col3 Col4 Col5 Col6"<<endl;


cout<<"-----------------------------------------------"<<endl;

cout<<"\nFila(1)"<<endl;

cout<<"Fila(2)"<<endl;

cout<<"Fila(3)"<<endl;

cout<<"Fila(4)"<<endl;

cout<<"Fila(5)"<<endl;

for(i=0; i<5; i++)

for(j=0; j<6; j++)

gotoxy(11+6*j,6+1*i); cin>>a[i][j];}

cout<<"Ingrese la columna que desea multiplicar por la primera = ";

cin>>colum;

void multiplicar()

if (colum==2)

{ cout<<"la multiplicacion de la columna 1 por la columna 2 es ";

for(i=0; i<5; i++)

{ mult=a[i][0]*a[i][1];

sum=sum+mult;

cout<<"\n Fila ["<<(i+1)<<"]="<<mult<<endl;}

cout<<"la suma de los productos es "<<sum;

else if (colum==3)

{ cout<<"la multiplicacion de la columna 1 por la columna 3 es ";

for(i=0; i<5; i++)

{ mult=a[i][0]*a[i][2];
sum=sum+mult;

cout<<"\n Fila ["<<(i+1)<<"]="<<mult<<endl;

cout<<"la suma de los productos es "<<sum;

else if (colum==4)

{ cout<<"la multiplicacion de la columna 1 por la columna 4 es ";

for(i=0; i<5; i++)

{ mult=a[i][0]*a[i][3];

sum=sum+mult;

cout<<"\n Fila ["<<(i+1)<<"]="<<mult<<endl;

cout<<"la suma de los productos es "<<sum;

else if (colum==5)

{ cout<<"la multiplicacion de la columna 1 por la columna 5 es ";

for(i=0; i<5; i++)

{ mult=a[i][0]*a[i][4];

sum=sum+mult;

cout<<"\n Fila ["<<(i+1)<<"]="<<mult<<endl;}

cout<<"la suma de los productos es "<<sum;}

else if (colum==6)

{ cout<<"la multiplicacion de la columna 1 por la columna 6 es ";

for(i=0; i<5; i++)

{ mult=a[i][0]*a[i][5];

sum=sum+mult;

cout<<"\n Fila ["<<(i+1)<<"]="<<mult<<endl;}

cout<<"la suma de los productos es "<<sum;}

}
5.6.- Escribir un programa para generar una matriz de 6 x 7 elementos enteros y luego use
punteros para determinar la sumatoria del arreglo y el mayor valor del arreglo.

#include<iostream.h>

#include<conio.h>

void leermatriz(float M[6][7],float T[42])

{ int i,j,k;

k=0;

for(i=0;i<6;i++)

{for(j=0;j<7;j++)

{cin>>M[i][j];

T[k]=M[i][j];

k++;

void mostrarmatriz(float M[6][7])

{ int i,j;

for(i=0;i<6;i++)

{ for(j=0;j<7;j++)

cout<<"["<<M[i][j]<<"]";cout<<"\n";

cout<<endl;

void sumarmatriz(float T[42])

{ float suma=0;

float *a;

a=T;

for(int i=0;i<42;i++)

{suma=suma+*(a+i);
}

cout<<"La suma de los elementos es:"<<" "<<suma;

float may(float *b)

float mayor;

mayor=*b;

for(int i=0;i<42;i++)

if(*(b+i)>mayor)

mayor=*(b+i);

return mayor;

void main()

float tabla[42],matriz[6][7];

float Min,Max;

cout<<"\t\tIngresar elementos de la matriz\n";

leermatriz(matriz,tabla);

cout<<"\nLa matriz es:\n";

mostrarmatriz(matriz);

Max=may(tabla);

sumarmatriz(tabla);

cout<<"\nEl mayor valor de la matriz es:"<<" "<<Max;

getch();

}
7.- Escribir un numero entero de longitud variable (mximo 20dgitos) y almacene sus dgitos en
una cadena. Sugerencia capturar los dgitos como caracteres.

#include<iostream.h>

#include<conio.h>

#include<ctype.h>

#include<string.h>

#include<stdio.h>

void main()

{ char numero[21];

int pos=0;

cout<<"ingrese numero: ";

gets(numero);

cout<<"ingrese la posicion del 1 al 20: ";

cin>>pos;

for (int i=1;i<21;i++)

{ if (i+1==pos)

{ cout<<"\n el digito es:"<<numero[i]; }

getch();

}
LABORATORIO N6
1- TEMA: ESTRUCTURAS-UNIONES
2- OBJETIVOS

-Definir y crear variables tipo estructuras dentro de un programa.

-Asignar valores a los miembros de una estructura.

-Pasar estructuras a funciones.

-Definir y utilizar dentro de un programa.

3- FUNDAMENTO TEORICO

3.1-ESTRUCTURA

En muchos casos los programas necesitan agrupar informacin relacionada que no es del mismo tipo.
Por ejemplo supongamos que el programa trabaja con registros de empleado. Se debe seguir la pista al
nombre, edad, salario, direccin, etc. Para almacenar esta informacin, el programa necesitara variables
tipo char, int, float,char. Cuando es necesario guardar informacin de tipo diferente, el programa puede
utilizar una estructura.

COMO DECLARAR UNA ESTRUCTURA.

Una estructura especifica una plantilla en la cual pueda posteriormente declarar una variable.

Struct Nombre {

Int miembro1;

Int miembro2;

Int miembro3;

} Variable;
PROBLEMAS RESUELTOS:

4.1 Escribe un programa de facturacin de clientes (50 clientes), cada cliente tiene un nombre,
cdigo, nmero de unidades solicitadas, precio de cada unidad y el estado en que se encuentra:
Moroso, atrasado, al da. El programa debe permitir obtener el siguiente listado:

-clientes en estado moroso.

-cliente al da.

-total de ventas a los clientes.

#include<iostream.h>

#include<conio.h>

#include<string.h>sss

#include<ctype.h>

#include<stdio.h>

struct persona

{char nombre[30];

char codigo[10];

int unidades;

int precio;

char estado;

};

struct persona cliente[50];

void main()

{int n;

float factura[50];

cout<<"Ingrese el nmero de clientes: ";

cin>>n;

for(int i=1;i<=n;i++)

{cout<<"Ingrese el nombre:";gets(cliente[i].nombre);

cout<<"Ingrese el codigo:";gets(cliente[i].codigo);

cout<<"Ingrese las unidades:";cin>>cliente[i].unidades;


cout<<"Ingrese el precio:";cin>>cliente[i].precio;

cout<<"Ingrese el estado (moroso(M)/atrasado(A)/al dia(D)):";cin>>cliente[i].estado;

cout<<endl;

factura[i]=cliente[i].unidades*cliente[i].precio;

cout<<"\nCLIENTES MOROSOS: ";

for(int i=1;i<=n;i++)

{if(cliente[i].estado=='M')

{cout<<cliente[i].nombre;

cout<<endl;

cout<<"\nCLIENTES ATRASADOS: ";

for(int i=1;i<=n;i++)

{if(cliente[i].estado=='A')

{cout<<cliente[i].nombre;

cout<<endl;

cout<<"\nCLIENTES AL DIA: ";

for(int i=1;i<=n;i++)

{if(cliente[i].estado=='D')

{cout<<cliente[i].nombre;

cout<<endl;

cout<<"\n TOTAL DE VENTA AL CLIENTE:\n";

for(int i=1;i<=n;i++)

{cout<<cliente[i].nombre<<endl;
cout<<factura[i]<<endl;

getch();

4.2-Escribe un programa para calcular el nmero de das que hay entre dos fechas; declarar fecha
como una estructura.

#include<iostream.h>

#include<iomanip.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>

#include<stdlib.h>

struct DATOS

{int d;

int m;

int a;

int dias;

};

DATOS fecha[2];

void main()

int tiempo;

DATOS fecha[2];

clrscr();

for(int i=1;i<=2;i++)
{cout<<"INGRESE FECHA:";cout<<endl;

cout<<"Dia: ";cin>>fecha[i].d;

cout<<endl;

cout<<"Mes: ";cin>>fecha[i].m;

cout<<endl;

cout<<"Ao: ";cin>>fecha[i].a;

cout<<endl;

fecha[i].dias=fecha[i].d+fecha[i].m*30+fecha[i].a*365;

cout<<endl;

if(fecha[1].dias-fecha[2].dias>=0)

{tiempo=fecha[1].dias-fecha[2].dias;}

else

{tiempo=fecha[2].dias-fecha[1].dias;}

cout<<"\n EL NUMERO DE DIAS ENTRE LAS DOS FECHAS ES: "<<tiempo<<"\t DIAS"<<endl;

getch();

4.3-Un club deportivo tiene un patrn de 100 socios, con la siguiente informacin:

Nombre del socio (char25), cdigo del socio (char 4), direccin del socio (char 25), telfono (char
8), fecha de ingreso (char 9), clases de socio, los cuales son: Fundador, honorario y normal. Se
pide desarrollar un programa que permita:

a) Ingresar y visualizar el listado de socios por tipo de socio.


b) El total de cotizacin mensual de los socios.
c) Total cotizacin mensual por socio fundador.

#include<iostream.h>

#include<iomanip.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>
#include<stdlib.h>

void mostrar(int n);

float totalcotizacion(int n);

struct fecha

{int d;

int m;

int a;

};

struct SOCIO

{char nombres[25];

char codigo[4];

char direccion[25];

char telefono[10];

fecha fecha_ingreso;

char clasesocio[10];

int cotizames;

};

SOCIO club[2];

void main()

{int n;

float t;

clrscr();

cout<<"INGRESE NUMERO DE SOCIOS: ";

cin>>n;

for(int i=0;i<n;i++)

{cout<<"\nSOCIO: "<<(i+1)<<endl;

cout<<"Ingrese nombre: ";gets(club[i].nombres);

cout<<"Ingrese el codigo del socio: ";gets(club[i].codigo);

cout<<"Ingrese direccion: ";gets(club[i].direccion);


cout<<"Ingrese telefono: ";gets(club[i].telefono);

cout<<"Ingrese fecha: "<<endl;

cout<<"\tDia: ";cin>>club[i].fecha_ingreso.d;

cout<<"\tMes: ";cin>>club[i].fecha_ingreso.m;

cout<<"\tAo: ";cin>>club[i].fecha_ingreso.a;

cout<<"Clase de socio (fundador/honorario/normal): ";gets(club[i].clasesocio);

cout<<"Ingrese cotizacionmensual: ";cin>>club[i].cotizames;

cout<<"\t\tU mostrar datos U";

mostrar(n);

t=totalcotizacion(n);

cout<<"\n\n la suma de cotizaciones es: "<<t;

getch();

void mostrar(int n)

{for(int i=0;i<n;i++)

{cout<<"\n\nSocio: "<<(i+1)<<endl;

cout<<"Nombre: "<<club[i].nombres<<endl;

cout<<"Codigo de Socio: "<<club[i].codigo<<endl;

cout<<"Direccion: "<<club[i].direccion<<endl;

cout<<"Telefono: "<<club[i].telefono<<endl;

cout<<"Fecha de ingreso: "<<"\nDia: "<<club[i].fecha_ingreso.d<<"\tMes:


"<<club[i].fecha_ingreso.m<<"\tAo: "<<club[i].fecha_ingreso.d<<endl;

cout<<"Clase de Socio: "<<club[i].clasesocio<<endl;

cout<<"Cotizacion mensual: "<<club[i].cotizames<<endl;

float totalcotizacion(int n)
{

float s=0;

for (int i=0;i<n;i++)

{s=s+club[i].cotizames;

return s;

4.4-se quiere informatizar los resultados obtenidos por los quipos de vley y futbol de Liga
Deportiva del Callao. La informacin de cada quipo es:

Nombre del equipo, nmero de victorias, numero de derrotas, para los equipos de vley aadir la
siguiente informacin:

Numero de prdidas de baln, Nombre de la mejor anotadora.

Para el equipo de futbol aadir los siguientes datos:

Numero de empates, nmero de goles a favor, nmero de goles en contra, nombre del goleador
del equipo, nmero de goles del goleador.

Desarrollar un programa que utilice estructuras anidadas, para introducir la informacin de todos
los equipos integrantes de ambas ligas. Ambas ligas tienen 15 equipos.

#include<iostream.h>

#include<iomanip.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>

#include<stdlib.h>

struct data

{char nom_equip[15];

int num_vict;

int num_derr;

};
struct voley

{data dat_voley;

int perd_balon;

char mej_anot[20];

};

struct goleador

{char nombre[20];

int goles;

};

struct futboll

{data dat_futboll;

goleador gole_equip;

int empates;

int gol_fav;

int gol_cont;

};

voley a[16];

futboll b[16];

void main()

cout<<"\tEQUIPOS DE VOLEY\t"<<endl;

for(int i=0;i<1;i++)

{cout<<"Equipo ("<<(i+1)<<"): "<<endl;

cout<<"Nombre del Equipo: ";gets(a[i].dat_voley.nom_equip);

cout<<endl;

cout<<"Numero de victorias: ";cin>>a[i].dat_voley.num_vict;

cout<<endl;

cout<<"Numero de derrotas: ";cin>>a[i].dat_voley.num_derr;

cout<<endl;
cout<<"Numero de perdidas del balon: ";cin>>a[i].perd_balon;

cout<<endl;

cout<<"Nombre de la mejor anotadora: ";gets(a[i].mej_anot);

cout<<endl;

cout<<"\tEQUIPOS DE FUTBOLL\t"<<endl;

for(int i=0;i<1;i++)

{cout<<"Equipo ("<<(i+1)<<"): "<<endl;

cout<<"Nombre del Equipo: ";gets(b[i].dat_futboll.nom_equip);

cout<<endl;

cout<<"Numero de victorias: ";cin>>b[i].dat_futboll.num_vict;

cout<<endl;

cout<<"Numero de derrotas: ";cin>>b[i].dat_futboll.num_derr;

cout<<endl;

cout<<"Numero de empates: ";cin>>b[i].empates;

cout<<endl;

cout<<"Numero de goles a favor: ";cin>>b[i].gol_fav;

cout<<endl;

cout<<"Numero de goles en contra: ";cin>>b[i].gol_cont;

cout<<endl;

cout<<"Nombre del goleador: ";gets(b[i].gole_equip.nombre);

cout<<endl;

cout<<"Numero de goles del goleador: ";cin>>b[i].gole_equip.goles;

cout<<endl;

getch();

4.5-un punto en el plano se puede representar mediante una estructura con dos campos.

Escribir un programa que realice las siguientes operaciones con puntos en el plano:
a) Dados dos puntos calcular la distancia entre ellos.
b) Dados dos puntos determinar la ecuacin de la recta que pasa por ellos.
c) Dados tres puntos, que representa los vrtice de un tringulo calcular su rea.

#include<iostream.h>

#include<iomanip.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

float distancia(float d);

float area(float a);

struct plano

{int x;

int y;

};

plano nuevo[5];

void main()

{float a,d,areat;

float h,k;

float dist;

cout<<"CALCULAR LA DISTANCIA ENTRE DOS PUNTOS\n";

for(int i=1;i<=2;i++)

cout<<"Punto "<<i<<":"<<"\n";

cout<<"X: ";cin>>nuevo[i].x;cout<<endl;

cout<<"Y: ";cin>>nuevo[i].y;cout<<endl;

dist= distancia(d);
cout<<"LA DISTANCIA ES:\n";

cout<<dist;

cout<<"\n";

cout<<"\nECUACION DE LA RECTA \n";

for(int i=1;i<=2;i++)

cout<<"Punto "<<i<<":"<<"\n";

cout<<"X: ";cin>>nuevo[i].x;cout<<endl;

cout<<"Y: ";cin>>nuevo[i].y;cout<<endl;

cout<<"LA ECUACION DE LA RECTA ES:\n";

h= nuevo[2].y-nuevo[1].y;

k= nuevo[2].x-nuevo[1].x;

cout<<"Y="<<h<<"/"<<k<<"(X-"<<nuevo[1].x<<")+"<<nuevo[1].y;

cout<<"\n";

cout<<"\nCALCULAR EL AREA QUE FORMAN TRES PUNTOS:\n";

for(int i=1;i<=3;i++)

cout<<"Punto "<<i<<":"<<"\n";

cout<<"X: ";cin>>nuevo[i].x;cout<<endl;

cout<<"Y: ";cin>>nuevo[i].y;cout<<endl;

area(a);

areat=area(a);

cout<<"EL AREA ES: ";

cout<<abs(areat);

getch();

float distancia(float d)
{float m,n;

m=abs(nuevo[1].x-nuevo[2].x);

n=abs(nuevo[1].y-nuevo[2].y);

d=sqrt(pow(m,2)+pow(n,2));

return d;

float area(float a)

{float v1,v2,v3,v4,v5,v6;

v1= nuevo[1].x*nuevo[2].y;

v2= nuevo[2].x*nuevo[3].y;

v3= nuevo[3].x*nuevo[1].y;

v4= nuevo[2].x*nuevo[1].y;

v5= nuevo[3].x*nuevo[2].y;

v6= nuevo[1].x*nuevo[3].y;

a=0.5*(v1+v2+v3-v4-v5-v6);

return a;

4.6- Modifique el programa facturacin de cliente de tal modo que se pueda obtener los siguientes
resultados:

-cliente en estado moroso.

-cliente en estado pagado con factura mayor a una determinada cantidad.

#include<conio.h>
#include<math.h>
#include<iostream.h>
#include<stdio.h>

void main()
{ clrscr();
char nombre[100][10],codigo[10]; //nombre[100][10] significa 100 vectores que contienen nombres 10
caracteres cada uno ,se considero un numero grande puesto que luego sera reemplazado por la cantidad
de clientes
int unidades,estado[100],n,i;
float precio,cant[100];

cout<<"Ingrese el numero de clientes";cin>>n;


cout<<"\t---MENU DE OPCIONES---\n\n";
cout<<"\tOPCION 1) MOROSO\n";
cout<<"\tOPCION 2) ATRASADO\n";
cout<<"\tOPCION 3) AL DIA\n\n";

for(i=0;i<n;i++)
{
unidades=0;
precio=0;
cout<<"\n-\t-CLIENTE "<<i+1<<"\n\n";
cout<<"Ingrese nombre";gets(nombre[i]);
cout<<"Ingrese codigo";cin>>codigo;
cout<<"Ingrese unidades solicitadas";cin>>unidades;
cout<<"Ingrese el precio por unidad ";cin>>precio;
cant[i]=precio*unidades;
do
{cout<<"Ingrese el estado ";cin>>estado[i];}
while(estado[i]!=1 && estado[i]!=3);
}

cout<<"\t\tCLIENTES EN ESTADO MOROSO\n\n";


for(i=0;i<n;i++)
{if(estado[i]==1)
cout<<nombre[i]<<"\n";
}

cout<<"\t\tCLIENTES EN ESTADO AL DIA CON CONSUMO MAYOR A 100\n\n";


for(i=0;i<n;i++)
{if(estado[i]==3 && cant[i]>=100)
cout<<nombre[i]<<"\n";
}

getch();
}

4.7-Se quiere leer un texto de como mximo 20 lneas, de 60 caracteres cada lnea.

Luego determine la cantidad de veces que se repiten las letras I,T,E,M. usar preferentemente
estructuras.

#include<conio.h>

#include<iostream.h>

#include<string.h>

#include<stdlib.h>

#include<stdio.h>
#include<ctype.h>

#include<math.h>

struct DATOS

{char texto[60];

};

void main()

{struct DATOS mensaje;

int c=0,k=0,i,I=0,T=0,E=0,M=0;

for(i=1;i<=20;i++)

{gets(mensaje.texto);

while(mensaje.texto[k]!='\0')

{switch(toupper(mensaje.texto[k]))

{case 'I' :I++;break;

case 'T' :T++;break;

case 'E' :E++;break;

case 'M' :M++;break;

k++;

k=0;

cout<<"El numero de veces que se repite la letra I es "<<I<<endl;

cout<<"El numero de veces que se repite la letra T es "<<T<<endl;

cout<<"El numero de veces que se repite la letra E es "<<E<<endl;

cout<<"El numero de veces que se repite la letra M es "<<M<<endl;

getch();

4.8- La empresaA&T S.A.C, dispone de dos almacenes de productos terminados para sus
plantas de Ate y Puente Piedra. El almacn de la planta de Ate, dispone de la siguiente data:
cdigo de producto char 5, nombre del producto char 15, descripcin del producto char 20, precio
float, cantidad int. El almacn de Puente Piedra adems de los campos indicados anteriormente
contiene los campos: ubicacin producto char 3, stock mnimo y stock de seguridad del producto
tipo int. Se pide utilizar estructuras anidadas y funciones para:

a) Ingresar los datos al almacn.

b) Mostrar los datos del almacn.

c) Mostrar los stocks de seguridad por producto.

d) Mostrar los stocks mnimos.

e) Determinar el costo del inventario por almacn.

f) El producto de mayor valor de inventario por almacn.

#include<iostream.h>

#include<iomanip.h>

#include<conio.h>

#include<string.h>

#include<ctype.h>

#include<stdio.h>

#include<stdlib.h>

void mayor1(int n);

void mayor2(int k);

void mostrar(int n,int k);

struct BASE1

{char codigo_prod[5];

char nombre_prod[15];

char descripcion_prod[20];

float precio;

int cantidad;

};

struct BASE2

{BASE1 data;

char ubicacion_prod[3];

int stock;
};

BASE1 ate[50];

BASE2 puente[50];

void main()

{int n,k,i,j;

float costoate,costopuente;

clrscr();

cout<<"\tPLANTA DE ATE"<<endl;

cout<<"Ingrese el numero de productos: ";cin>>n;

for(int i=1;i<=n;i++)

{cout<<"Producto ["<<i<<"]"<<endl;

cout<<"nombre: ";gets(ate[i].nombre_prod);cout<<endl;

cout<<"codigo: ";gets(ate[i].codigo_prod);cout<<endl;

cout<<"descripccion: ";gets(ate[i].descripcion_prod);cout<<endl;

cout<<"precio: ";cin>>ate[i].precio;cout<<endl;

cout<<"cantidad: ";cin>>ate[i].cantidad;cout<<endl;

costoate=costoate+(ate[i].precio*ate[i].cantidad);

cout<<"\tPLANTA DE PUENTE PIEDRA"<<endl;

cout<<"Ingrese el numero de productos: ";cin>>k;

for(int j=1;j<=k;j++)

{cout<<"Producto ["<<j<<"]"<<endl;

cout<<"nombre: ";gets(puente[j].data.nombre_prod);cout<<endl;

cout<<"codigo: ";gets(puente[j].data.codigo_prod);cout<<endl;

cout<<"descripccion: ";gets(puente[j].data.descripcion_prod);cout<<endl;

cout<<"precio: ";cin>>puente[j].data.precio;cout<<endl;

cout<<"cantidad: ";cin>>puente[j].data.cantidad;cout<<endl;

cout<<"ubicacion: ";gets(puente[j].ubicacion_prod);cout<<endl;

cout<<"stock de seguridad: ";cin>>puente[j].stock;cout<<endl;


costopuente=costopuente+(puente[j].data.cantidad*puente[j].data.precio);

cout<<"\t\t\nRELACION GENERAL"<<endl;

mostrar(n,k);

cout<<"\n\nSTOCKS DE SEGURIDAD DE LOS PRODUCTOS: "<<endl;

for(j=1;j<=k;j++)

{cout<<"Producto "<<j<<": "<<puente[j].stock;

cout<<"\n";

cout<<"\t\nCOSTOS DEL INVENTARIO POR ALMACEN "<<endl;

cout<<"\t\nALMACEN DE ATE\n"<<endl<<costoate<<endl;

cout<<"\t\nALMACEN DE PUENTE PIEDRA\n"<<endl<<costopuente<<endl;

cout<<"\t\nPRODUCTO DE MAYOR VALOR"<<endl;

cout<<"\t\nALMACEN DE ATE\n"<<endl;

mayor1(n);

cout<<"\t\nALMACEN DE PUENTE PIEDRA\n"<<endl;

mayor2(k);

getch();

void mostrar(int n,int k)

{ cout<<"\t\nPLANTA DE ATE\n"<<endl;

for(int i=1;i<=n;i++)

cout<<"PRODUCTO: "<<i<<endl;

cout<<"NOMBRE: "<<ate[i].nombre_prod<<endl;

cout<<"CODIGO: "<<ate[i].codigo_prod<<endl;

cout<<"DESCRIPCION: "<<ate[i].descripcion_prod<<endl;

cout<<"CANTIDAD: "<<ate[i].cantidad<<endl;
cout<<"PRECIO: "<<ate[i].precio;cout<<endl;

cout<<"\t\nPLANTA DE PUENTE PIEDRA\n"<<endl;

for(int j=1;j<=k;j++)

cout<<"PRODUCTO: "<<j<<endl;

cout<<"NOMBRE: "<<puente[j].data.nombre_prod<<endl;

cout<<"CODIGO: "<<puente[j].data.codigo_prod<<endl;

cout<<"DESCRIPCION: "<<puente[j].data.descripcion_prod<<endl;

cout<<"CANTIDAD: "<<puente[j].data.cantidad<<endl;

cout<<"PRECIO: "<<puente[j].data.precio<<endl;

cout<<"UBICACION: "<<puente[j].ubicacion_prod<<endl;

cout<<"STOCK DE SEGURIDAD: "<<puente[j].stock<<endl;

cout<<"\n";

getch();

void mayor1(int n)

{int i;

int h;

float mayor=0;

for(int i=1;i<=n;i++)

{if(ate[i].precio>mayor)

{mayor=ate[i].precio;

h=i;

cout<<ate[h].nombre_prod;

}
void mayor2 (int k)

{float mayor=0;

int j;

int h;

for(int j=1;j<=k;j++)

{if(puente[j].data.precio>mayor)

{mayor=puente[j].data.precio>mayor;

h=j;

cout<<puente[h].data.nombre_prod;

Vous aimerez peut-être aussi