Practica No. 10


Problema No. 1

Escriba un programa que lea el nombre de estudiantes y sus cuatro calificaciones, además que calcule el promedio e indique si el alumno aprobó.

Código de Programación

#include <fstream.h>
#include <conio.h>
void main()
{
int i,j;
char nombre[25],otro;
int calificaciones[4];
float suma,prom;
fstream lol;
lol.open("C:\\Datos\\archivo.txt",ios::trunc);
lol.close();
lol.open("C:\\Datos\\archivo.txt",ios::out);
do
{
suma=0;
cout<<"Nombre de Alumno"<<endl;
cin>>nombre;
lol<<nombre<<" ";
for(j=0;j<4;j++)
{
cout<<"Introdusca Calificacion "<<(j+1)<<endl;
cin>>calificaciones[j];
lol<<calificaciones[j]<<"\t";
suma=suma+calificaciones[j];
}
prom=suma/4.0;
cout<<prom<<endl;
lol<<prom<<endl;
cout<<"Otro Estudiante(S/N)"<<endl;
cin>>otro;
}
while(otro=='s'||otro=='S');
getch();
}

Programa Ejecutado




Problema No. 2

Almacene los siguientes datos en un archivo:
5           96       87        78      93        21       4         92        82
83        87        6         72        69      85        75        81       73

Escriba un programa para calcular y desplegar el promedio de cada grupo de números en el archivo en el índice app de los datos.
Se han arreglado en el archivo para que cada grupo de números sea precedido por el número de elementos de datos del grupo.
Entonces el primer número en el archivo 5 indica que los siguientes cinco números se agrupan juntos y el número cuatro igual y el  6 también.

Código de Programación

#include <fstream.h>
#include <conio.h>
void main()
{
int i,a,n,x;
float prom,suma;
fstream lol;
lol.open("C:\\Datos\\file.txt",ios::out);
lol<<"5  96  87  78  93  21  4  92  82  85  87  6  72  69  85  75  81  73"<<endl;
lol.close();
lol.open("C:\\Datos\\file.txt",ios::in);
for(i=0;i<3;i++)
{
suma=0;
lol>>n;
for(x=1;x<=n;x++)
{
lol>>a;
suma=suma+a;
}
prom=suma/n;
cout<<"Promedio "<<prom<<endl;
}
getch();
}


Programa Ejecutado





Problema No. 3

Escriba un archivo las siguientes cantidades de automóviles, el número de millas recorridas y las cantidades de galones de gasolina empelado para cada auto.

No. de Carro       Millas Recorridas     Galones Utilizados
54                          250                             19
62                          525                           38
71                          123                             6
85                          1322                          86
97                          235                             14

Escriba un programa que lea los datos y despliegue la cantidad de automóviles, las millas recorridas y las millas por galón  para cada automóvil. La  salida debe contener además los totales de millas recorridas y el total de galones empleados, así como el promedio de millas por galón para todos los autos, dicho s totales deben desplegarse a la salida.

Coding de programación

#include <fstream.h>
#include <conio.h>
void archivo()
{
fstream lol;
lol.open("C:\\Datos\\autos.txt",ios::out);
lol<<"54 250 19"<<endl;
lol<<"62 525 38"<<endl;
lol<<"71 123 6"<<endl;
lol<<"85 1322 86"<<endl;
lol<<"97 235 14"<<endl;
lol.close();
}

void main()
{
archivo();
getch();
}


Programa Ejecutado




b)


Código de Programación

 
#include <fstream.h>
#include <conio.h>
void calculos(float a[5][3],float c[5],float & tm, float & tg,float & mpg)
{
int b;
tm=0;
tg=0;
for(b=0;b<5;b++)
{
tm=a[b][1]+tm;
tg=a[b][2]+tg;
c[b]=a[b][1]/a[b][2];
}
mpg=tm/tg;
}
void ingresar(float a[5][3])
{
int b,d;
fstream lol;
lol.open("C:\\Datos\\carros.txt",ios::in);
for(b=0;b<5;b++)
{
for(d=0;d<3;d++)
{
lol>>a[b][d];
}
}
lol.close();
}
void imprime(float a[5][3],float c[5],float tm,float tg,float mpg)
{
int b,d;
cout<<"No de Carro  Millas Recorridas  Galones Utilizados  Promedio de millas/galones"<<endl;
for(b=0;b<5;b++)
{
for(d=0;d<3;d++)
{
cout<<a[b][d]<<"\t "<<"\t";
}
cout<<c[b]<<endl;
}
cout<<"Total de Millas Recorridas "<<tm<<endl;
cout<<"Total de galones utilizados "<<tg<<endl;
cout<<"Total de Promedio de Millas por Galon "<<mpg<<endl;
}

void main()
{
float a[5][3],c[5],m,g,mpg;
ingresar(a);
calculos(a,c,m,g,mpg);
imprime(a,c,m,g,mpg);
getch();
}
void main()
{
float a[5][3],c[5],m,g,mpg;
ingresar(a);
calculos(a,c,m,g,mpg);
imprime(a,c,m,g,mpg);
getch();
}

Programa Ejecutado




Problema No. 4

Un archivo llamado polar contiene las coordenadas polares necesarias en un programa de gráficas, actualmente este archivo contiene los sig. Datos
Distancia  Angulo
      2         45
      6         30
     10        45
      4         60
      12       55
       8       15
Escriba un programa que acepte del usuario distancia y ángulo y los agregue al final del archivo.
y escriba un programa que lea este archivo (polar) y crea otro llamado xycord.txt

Código de Programación

#include <fstream.h>
#include <conio.h>
#include <math.h>
void crear_archivo()
{
fstream archivo;
archivo.open ("c:/Datos/Polar.dat", ios::binary | ios::out);
archivo<<2.0<<" "<<45.0<<endl;
archivo<<6.0<<" "<<30.0<<endl;
archivo<<10.0<<" "<<45.0<<endl;
archivo<<4.0<<" "<<60.0<<endl;
archivo<<12.0<<" "<<55.0<<endl;
archivo<<8.0<<" "<<15.0<<endl;
archivo.close ();
}

void agregar_datos()
{
float angulo, d1;
char continuar;
fstream archivo;
archivo.open ("c:/Datos//Polar.dat",ios::binary | ios::app);
do
{
cout<<"Distancia en pulgadas: ";
cin>>d1;
cout<<"Angulo en grados: ";
cin>>angulo;
archivo<<d1<<" "<<angulo<<endl;
cout<<endl;
cout<<"Desea agregar otro dato? (S/N): ";
cin>>continuar;
cout<<endl;
}
while (continuar=='s' || continuar=='S');
archivo.close ();
}
void coordenadas ()
{
float angulo, rad, distancia;
float x, y;
fstream f1;
fstream f2;
f1.open("c:/Datos/Polar.dat",ios::binary | ios::in);
f2.open("c:/Datos/xycord.dat",ios::binary | ios::out);
f1>>distancia;
while (!f1.eof())
{
f1>>angulo;
rad=angulo*3.1416/180.0;
x=distancia*cos(rad);
y=distancia*sin(rad);
f2<<x<<" "<<y;
f1>>distancia;
}
f1.close ();
f2.close ();
}
void imprime_archivo ()
{
float x, y;
fstream archivo;
archivo.open ("c:/Datos/xycord.dat",ios::binary | ios::in);
archivo>>x;
while (!archivo.eof())
{
cout<<x<<" ";
archivo>>y;
cout<<y<<endl;
archivo>>x;
}
archivo.close();
}
void main ()
{
crear_archivo();
agregar_datos();
coordenadas();
imprime_archivo();
getch();
}


Programa Ejecutado


Problema No. 5

Considere la siguiente lista de países y sus capitales.
Escriba un programa interactivo que acepte el nombre de un país como entrada y escriba su capital y viceversa. Diseñar el programa de modo que se ejecute repetidamente hasta introducir fin.

Canada,Inglaterra,Francia,India,Israel,Italia,Japon,Mexico,China,Estados Unidos,Rusia

Ottawa,Londres,Paris,Nueva Delhi,Jerusalem,Roma,Tokio,Ciudad de Mexico,Biejing,Washington DC,Moscu

Código de Programación

#include <iostream.h>
#include <conio.h>
#include <string.h>
void main()
{
char pais[20];
int a;
char paises[12][20]={"Canada","Inglaterra","Francia","India","Israel","Italia","Japon","Mexico","China","Estados Unidos","Rusia"};
char capitales[12][20]={"Ottawa","Londres","Paris","Nueva Delhi","Jerusalen","Roma","Tokio","Ciudad de Mexico","Biejing","Washington DC","Moscu"};
do
{
cout<<"Ingrese dato ";
cin.getline(pais,20,'\n');
for(a=0;a<12;a++)
{
if(strcmpi(pais,paises[a])==0)
{
cout<<capitales[a]<<endl;
}
}
for(a=0;a<12;a++)
{
if(strcmpi(pais,capitales[a])==0)
{
cout<<paises[a]<<endl;
}
}
}
while(strcmp(pais, "Fin"));
getch();
}


Programa Ejecutado






Practica No. 6

Una empresa tiene varios vendedores. Por cada vendedor se tiene el nombre y la venta que realizo elaborar un programa que permita leer dichos datos y proporcione un reporte de comisiones de ventas en el cual aparezcan todos los vendedores. .

Código de Programación

#include <fstream.h>
#include <conio.h>
#include <string.h>
void main()
{
int h,ventas[50][5],a[50],i,suma;
float prom[50],promtotal,nc,comision[50];
char nombre[50][25],otro;
h=-1;
do
{
h=h+1;
suma=0;
cout<<"Nombre "<<(h+1)<<endl;
cin.ignore();
cin.getline(nombre[h], 25, '\n');
for(i=0;i<5;i++)
{
cout<<"Venta no. "<<(i+1)<<endl;
cin>>ventas[h][i];
suma=ventas[h][i]+suma;
a[h]=suma;
prom[h]=suma/5;
}
cout<<"Otro Vendedor(1)Si (x)No"<<endl;
cin>>otro;
}
while(otro=='1');
suma=0;
h=h+1;
for(i=0;i<h;i++)
{
suma=prom[i]+suma;
}
promtotal=suma/h;
nc=(3.0/4.0)*promtotal;
cout<<"Comisiones de Vendedores"<<endl;
cout<<"Vendedor"<<"\t"<<"p1"<<"\t"<<"p2"<<"\t"<<"p2"<<"\t"<<"p4"<<"\t"<<"p5"<<"\t"<<"Total de Ventas "<<"Comision"<<endl;
for(i=0;i<h;i++)
{
comision[i]=(a[i]-nc)*0.05;
if(prom[i]>=nc)
{
cout<<nombre[i]<<"\t"<<ventas[i][0]<<"\t"<<ventas[i][1]<<"\t"<<ventas[i][2]<<"\t"<<ventas[i][3]<<"\t"<<ventas[i][4]<<"\t"<<a[i]<<"\t"<<comision[i]<<endl;
}
}
getch();
}


Programa Ejecutado





Practica No. 7

Escriba un programa interactivo que simule el juego del bingo. Escriba cada combinación de letra número según sea sacada (Generada). Asegurarse que una combinación no se saca más de una vez. Recordar que cada una de las letras de bingo corresponde a un cierto rango de números como se indica enseguida.

Cada jugador tendrá una carta con 5 columnas etiquetadas bingo. Cada columna contendrá 5 números dentro de los rangos indicados. El primer jugador que tenga una línea de números en vertical, horizontal, diagonal de números gana a veces también se juega a que debe llenar toda la carta para ganar.

Código de Programación


Codigo

#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <fstream.h>
void genera_numero(int & y,int q[76])
{
int o,z,i,a;
a=0;
do
{
y=random(75)+1;
if(q[y]==1)
{
a=1;
q[y]=0;
}
}
while(a==0);
cout<<y<<endl;
}

void compara(int h,int carta[25][5][5],int y)
{
int o,z,i;
for(o=0;o<=h;o++)
{
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
if(carta[o][z][i]==y)
{
carta[o][z][i]=0;
}
}
}
}
}
void gana_horizontal(int h, int carta[25][5][5],int & x,int & l)
{
int o,z,i,suma;
for(o=0;o<=h;o++)
{
for(z=0;z<5;z++)
{
suma=0;
for(i=0;i<5;i++)
{
if(carta[o][z][i]==0)
{
suma=suma+1;
}
if(suma==5)
{
cout<<"El Ganador es el jugador "<<(o+1)<<endl;
cout<<"Con linea horizontal en "<<(z+1)<<endl<<endl;
x=2;
l=(o+1);
}
}
suma=0;
}
}
}
void gana_todo(int h, int carta[25][5][5],int & x)
{
int o,z,i,suma;
for(o=0;o<=h;o++)
{
suma=0;
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
if(carta[o][z][i]==0)
{
suma=suma+1;
}
if(suma==25)
{
cout<<"El Ganador es el jugador "<<(o+1)<<endl;
cout<<"Con toda la Carta "<<endl<<endl;
x=2;
}
}
}
}
}

void gana_vertical(int h, int carta[25][5][5],int & x,int & l)
{
int o,z,i,suma;
for(o=0;o<=h;o++)
{
for(i=0;i<5;i++)
{
suma=0;
for(z=0;z<5;z++)
{
if(carta[o][z][i]==0)
{
suma=suma+1;
}
if(suma==5)
{
x=2;
l=o+1;
cout<<"El Ganador es el jugador "<<(o+1)<<endl;
cout<<"Con linea vertical en "<<(i+1)<<endl<<endl;
}
}
suma=0;
}
}
}
void gana_diagonal(int h, int carta[25][5][5],int & x,int & l)
{
int o,z,i,suma,suma1;
for(o=0;o<=h;o++)
{
suma=0;
suma1=0;
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
if(z==i)
{
if(carta[o][z][i]==0)
{
suma=suma+1;
}
if(suma==5)
{
l=o+1;
x=2;
cout<<"El Ganador es el jugador "<<(o+1)<<endl;
cout<<"Con linea diagonal \ "<<endl<<endl;
}
}
if(z==4&&i==0 || z==3&&i==1|| z==2&&i==2 || z==1&&i==3 || z==0&&i==4)
{
if(carta[o][z][i]==0)
{
suma1=suma1+1;
}
}
if(suma1==5)
{
x=2;
l=o+1;
cout<<"El Ganador es el jugador "<<(o+1)<<endl;
cout<<"Con linea diagonal / "<<endl<<endl;
}
}
}
}
}
void main()
{
int carta[25][5][5],q[76];
int y,b,h,j,z,x,i,l,a,r,o;
char otro,w;
a=-1;
h=-1;
randomize();
for(i=0;i<76;i++)
{
q[i]=1;
}
do
{
clrscr();
b=0;
z=0;
h=h+1;
aqui:
x=-14;
cout<<"Total de Jugadores "<<(h+1)<<endl;
for(z=0;z<5;z++)
{
x=x+15;
for(i=0;i<5;i++)
{
carta[h][z][i]=random(15)+x;
}
do
{
a=-1;
b=b+1;
do
{
a=a+1;
switch(a)
{
case 0:
if(carta[h][z][0]==carta[h][z][4])
{
carta[h][z][0]=random(15)+x;
}
if(carta[h][z][0]==carta[h][z][1])
{
carta[h][z][0]=random(15)+x;
}
if(carta[h][z][0]==carta[h][z][2])
{
carta[h][z][0]=random(15)+x;
}
if(carta[h][z][0]==carta[h][z][3])
{
carta[h][z][0]=random(15)+x;
}
break;
case 1:
if(carta[h][z][1]==carta[h][z][0])
{
carta[h][z][1]=random(15)+x;
}
if(carta[h][z][1]==carta[h][z][4])
{
carta[h][z][1]=random(15)+x;
}
if(carta[h][z][1]==carta[h][z][2])
{
carta[h][z][1]=random(15)+x;
}
if(carta[h][z][1]==carta[h][z][3])
{
carta[h][z][1]=random(15)+x;
}
break;
case 2:
if(carta[h][z][2]==carta[h][z][0])
{
carta[h][z][2]=random(15)+x;
}
if(carta[h][z][2]==carta[h][z][1])
{
carta[h][z][2]=random(15)+x;
}
if(carta[h][z][2]==carta[h][z][4])
{
carta[h][z][2]=random(15)+x;
}
if(carta[h][z][2]==carta[h][z][3])
{
carta[h][z][2]=random(15)+x;
}
break;
case 3:
if(carta[h][z][3]==carta[h][z][0])
{
carta[h][z][3]=random(15)+x;
}
if(carta[h][z][3]==carta[h][z][1])
{
carta[h][z][3]=random(15)+x;
}
if(carta[h][z][3]==carta[h][z][2])
{
carta[h][z][3]=random(15)+x;
}
if(carta[h][z][3]==carta[h][z][4])
{
carta[h][z][3]=random(15)+x;
}
break;
case 4:
if(carta[h][z][4]==carta[h][z][0])
{
carta[h][z][4]=random(15)+x;
}
if(carta[h][z][4]==carta[h][z][1])
{
carta[h][z][4]=random(15)+x;
}
if(carta[h][z][4]==carta[h][z][2])
{
carta[h][z][4]=random(15)+x;
}
if(carta[h][z][4]==carta[h][z][3])
{
carta[h][z][4]=random(15)+x;
}
break;
}
}
while(a<5);
}
while(b<10);
}
if(h>=2)
{
for(o=0;o<=h;o++)
{
for(a=1;a<h;a++)
{
r=0;
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
if(carta[a][z][i]==carta[o][z][i] && a!=o)
r=r+1;
if(r==25)
goto aqui;
}
}
}
}
}
cout<<endl;
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
cout<<carta[h][z][i]<<"\t";
}
cout<<endl;
}
cout<<"Otro jugador? (1)Si (x)No"<<endl;
cin>>otro;
}
while(otro=='1');
x=0;
a=random(2)+1;
if(a==1)
{
for(i=0;i<=h;i++)
{
carta[i][2][2]=0;
}
}
cout<<"Quiere ver turno por turno presione(1) sino Presione cualquier tecla"<<endl;
cin>>otro;
a=random(2);
do
{
if(otro=='1')
cin>>w;
clrscr();
genera_numero(y,q);
compara(h,carta,y);
do
{
for(j=0;j<=h;j++)
{
cout<<"Carta jugador "<<(j+1)<<endl;
cout<<"B"<<"\t"<<"I"<<"\t"<<"N"<<"\t"<<"G"<<"\t"<<"O"<<endl;
for(z=0;z<5;z++)
{
for(i=0;i<5;i++)
{
cout<<carta[j][z][i]<<"\t";
}
cout<<endl;
}
cout<<endl;
}
}
while(j<=h);
if(a==0)
{
gana_vertical(h,carta,x,l);
gana_horizontal(h,carta,x,l);
gana_diagonal(h,carta,x,l);
}
if(a==1)
{
gana_todo(a,carta,x);
}
}
while(x!=2);
cout<<"Los Numeros que se usaron fueron"<<endl;
for(i=1;i<76;i++)
{
if(q[i]==0)
cout<<i<<" ";
}
cout<<endl<<endl;
cout<<"Los Numeros que sobraron fueron"<<endl;
for(i=1;i<76;i++)
{
if(q[i]==1)
cout<<i<<" ";
}
getch();
}


Programa Ejecutado