lunes, 23 de mayo de 2011

Practica 10

Ejercicio 1

Solución:


1.Inicio:

ofstream archivo;
archivo.open("J:\\prog\\ejemplo.txt")
if(archivo.bad())
{
print, "No puede crear el archivo ejemplo.txt",endl
}
else{
archivo<<1<<" "<<50<<" Reprobado"<<endl
archivo<<2<<" "<<0<<" Ausente"<<endl
archivo<<3<<" "<<80<<" Aprobado"<<endl
archivo<<4<<" "<<100<<" Aprobado"<<endl
archivo.close()
}
print, "Datos grabados exitosamente",endl

FIN
Código y Corrida






Ejercicio 2

Solución

1.Inicio:


ifstream arch1
int i,calif
char cadena[10]
arch1.open("J:\\prog\\ejemplo.txt")
if(arch1.bad())
{
print, "Incapaz de crear o abrir el archivo", endl
}
else
{
arch1>>i
while(!arch1.eof())
{
Print, i, "     ",endl
arch1>>calif
print, calif, " \t "
arch1>>cadena;
cout<<cadena<<endl
arch1>>i
}
arch1.close()
} }


Código y Corrida


Ejercicio 3

Solución:


fstream f1;
char cadena[10],sigue,nombre[5][10]
int c1,c2,c3,c4,i=0
int promedio
int opcion
f1.open("J:\\prog\\ejemplo2.txt",ios::out);
do{
 Print ,"1) Almacenar datos del alumno:",endl
 Print ,"2) Reporte de alumnos:",endl
 Print ,"3) Salida de programa:",endl
 Print ,"Elige opcion:"
Read, opcion
switch(opcion)
{
case 1:
do
{
 Print , "Nombre alumno: ", (i+1), " : "
Read, nombre[i]
 Print ,"Calificacion 1:"
Read, c1
 Print ,"Calificacion 2:"
Read, c2
 Print ,"Calificacion 3:"
Read, c3
 Print , "Calificacion 4:"
Read, c4
promedio=(c1+c2+c3+c4)/4
f1<<nombre<<" "<<c1<<" "<<c2<<" "<<c3<<" "<<c4<<" "<<promedio<<" "<<endl;
if(promedio>=70)
{
f1<<"Aprobado"<<endl;
 Print , "**Aprobado", endl
}
else{
f1<<"Reprobado"<<endl;
 Print , "****Reprobado", endl
}
 Print , "Desea registrar a otro(s/n)"
Read, sigue
}
while(sigue=='s' || sigue=='S');
f1.close()
break;
case 2:
f1.open("J:\\prog\\ejemplo2.txt",ios::app);
 Print , "Nombre   Calif 1  Calif 2  Calif 3  Calif 4  Promedio", endl
if(f1.bad())
{
 Print , "Incapaz de crear o abrir el archivo", endl
}
else{
f1>>nombre[i]
while(!f1.eof())
{
cout<<nombre[i+1]<<" "<<endl
f1>>c1
 Print , c1, "\t";
f1>>c2;
 Print , c2, "\t";
f1>>c3;
 Print ,c3, "\t";
f1>>c4;
 Print ,c4, "\t";
f1>>promedio;
Print , promedio, "\t";
f1>>cadena;
Print ,cadena,"\t", endl
f1>>nombre[i]
}
}
f1.close()
break;
case 3:  Print ,"Salida Programa", endl;
break;
default:  Print ,"Error en Opcion", endl
break;
}
}
while(opcion !=3)

}


CÓDIGO

#include <conio.h>
#include <fstream.h>
#include <string.h>
void main()
{
fstream f1;
char cadena[10],sigue,nombre[5][10];
int c1,c2,c3,c4,i=0;
int promedio;
int opcion;
f1.open("J:\\prog\\ejemplo2.txt",ios::out);
do{
cout<<"1) Almacenar datos del alumno:"<<endl;
cout<<"2) Reporte de alumnos:"<<endl;
cout<<"3) Salida de programa:"<<endl;
cout<<"Elige opcion:";
cin>>opcion;
switch(opcion)
{
case 1:
do
{
cout<<"Nombre alumno: "<<(i+1)<<" : ";
cin>>nombre[i];
cout<<"Calificacion 1:";
cin>>c1;
cout<<"Calificacion 2:";
cin>>c2;
cout<<"Calificacion 3:";
cin>>c3;
cout<<"Calificacion 4:";
cin>>c4;
promedio=(c1+c2+c3+c4)/4;
f1<<nombre<<" "<<c1<<" "<<c2<<" "<<c3<<" "<<c4<<" "<<promedio<<" "<<endl;
if(promedio>=70)
{
f1<<"Aprobado"<<endl;
cout<<"**Aprobado"<<endl;
}
else{
f1<<"Reprobado"<<endl;
cout<<"****Reprobado"<<endl;
}
cout<<"Desea registrar a otro(s/n)";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
f1.close();
break;
case 2:
f1.open("J:\\prog\\ejemplo2.txt",ios::app);
cout<<"Nombre   Calif 1  Calif 2  Calif 3  Calif 4  Promedio"<<endl;
if(f1.bad())
{
cout<<"Incapaz de crear o abrir el archivo"<<endl;
}
else{
f1>>nombre[i];
while(!f1.eof());
{
cout<<nombre[i+1]<<" "<<endl;
f1>>c1;
cout<<c1<<"\t";
f1>>c2;
cout<<c2<<"\t";
f1>>c3;
cout<<c3<<"\t";
f1>>c4;
cout<<c4<<"\t";
f1>>promedio;
cout<<promedio<<"\t";
f1>>cadena;
cout<<cadena<<"\t"<<endl;
f1>>nombre[i];
}
}
f1.close();
break;
case 3:cout<<"Salida Programa"<<endl;
break;
default:cout<<"Error en Opcion"<<endl;
break;
}
}
while(opcion !=3);
getch();
}






Ejercicio 4

Un archivo llamado polar.txt contiene las coordenadas pobres nesesarias en un programa de graficas.Actualmente este archivo contiene los siguientes datos.


                  Distancia (Pulgadas)          Angulo (Grados)      
             2.0                              45.0
             6.0                              30.0
            10.4                             45.0
             4.0                              60.0
            12.0                             55.0
             8.0                              15.0

a) Escriba u programa para crear este archivo.
b) Con base al archivo polar.txt escriba un programa que acepte del usuario los datos de distancia y angulo y los agregue al final del archivo.
c) Con el archivo polar. txt escriba u programa que lea este archivo y cree otro llamado xycord.txt las entradas al nuevo archivo deben contener las coordenadas rectangulares que corresponden a  las coordenadas polares.
x=ycoseno
y=rseno

donde r es la coordenada de distancia y  es el equivalente en radianes a la coordenada del angulo en el archivo polar.txt.


Solución:


void crearchivo()
{
fstream escribir;
escribir.open("J://prog//polar.txt",ios::out);
escribir,2.0,"   ",45.0,endl
        ,6.0,"   ",30.0,endl
        ,10.0,"   ",45.0,endl
       ,4.0,"   ",60.0,endl
        ,12.0,"   ",55.0,endl
        ,8.0,"   ",15.0,endl;
escribir.close();
}

void agregard()
{
float dist,angulo
char continuar
fstream escribir
escribir.open("J://prog//polar.txt",ios::app);
do
{
Print,"Distancia (Pulgadas):"
Read, dist
Print, "Angulo (Grados):"
Read, angulo
escribir<<dist<<"     "<<angulo<<endl;
Print, "Deseas registrar otro (S/N):"
Read, continuar
}
while (continuar=='S'||continuar=='s');
escribir.close();
}

void crearxycord()
{
float d,a,x,y,rad;
fstream f1;
fstream f2;
f1.open ("J://prog//polar.txt",ios::in);
f2.open ("J://prog//xycord.txt",ios::out);
f1>>d;
while (!f1.eof())
{
f1>>a;
rad=(a*3.1416)/180;
x=d*cos(rad);
y=d*sin(rad);
f2<<x<<"  "<<y<<endl;
f1>>d;
cout<<x<<" : "<<y<<endl;
}
f1.close();
f2.close();
}


void main()
{
crearchivo();
agregard ();
crearxycord ();
}

Fin


CÓDIGO


#include <fstream.h>
#include <conio.h>
#include <math.h>
void crearchivo()
{
fstream escribir;
escribir.open("J://prog//polar.txt",ios::out);
escribir<<2.0<<"   "<<45.0<<endl
        <<6.0<<"   "<<30.0<<endl
        <<10.0<<"   "<<45.0<<endl
        <<4.0<<"   "<<60.0<<endl
        <<12.0<<"   "<<55.0<<endl
        <<8.0<<"   "<<15.0<<endl;
escribir.close();
}

void agregard()
{
float dist,angulo;
char continuar;
fstream escribir;
escribir.open("J://prog//polar.txt",ios::app);
do
{
cout<<"Distancia (Pulgadas):";
cin>>dist;
cout<<"Angulo (Grados):";
cin>>angulo;
escribir<<dist<<"     "<<angulo<<endl;
cout<<"Deseas registrar otro (S/N):";
cin>>continuar;
}
while (continuar=='S'||continuar=='s');
escribir.close();
}

void crearxycord()
{
float d,a,x,y,rad;
fstream f1;
fstream f2;
f1.open ("J://prog//polar.txt",ios::in);
f2.open ("J://prog//xycord.txt",ios::out);
f1>>d;
while (!f1.eof())
{
f1>>a;
rad=(a*3.1416)/180;
x=d*cos(rad);
y=d*sin(rad);
f2<<x<<"  "<<y<<endl;
f1>>d;
cout<<x<<" : "<<y<<endl;
}
f1.close();
f2.close();
}


void main()
{
crearchivo();
agregard ();
crearxycord ();
getch();
}





Ejercicio 5

Escriba los cuatro numeros reales 
                                                         92.65
                                                         88.72
                                                         77.46
                                                         82.93
en un archivo texto llamado resultados.Despues de escribir los datos en el archivo el programa debe leerlos determinar y desplegar el promedio de los cuatro numeros leidos. 


Solución:



float num
fstream archivo;
archivo.open("J://prog//resultados.txt",ios::out,ios::in);
archivo<<92.65<<"   "<<88.72<<"   "<<77.46<<"  "<<82.93<<endl;
archivo.close();
archivo.open("J://prog//resultados.txt",ios::in);
float suma=0
for (int i=1;i<=4;i++)
{
archivo>>num;
Print, num<<"   "
suma=suma+num
}
Print, endl
float promedio=suma/4.0
Print, "El promedio es:", promedio, endl


FIN


Código y Corrida 






Ejercicio 6


Suponga que desea introducir una lista de cadenas en un arreglo de tamaño 10.
Haga un programa que considere un metodo para ordenar alfabeticamente estas cadenas  y escribir la lista de las cadenas en forma ordenada, en orden ascendente. 

Solución:

void ordenar(int n,char x[10][12])
{
char temp[12];
int i,elem;
for(elem=0;elem<(n-1);elem++)
{
for(i=elem+1;i<(n-1);i++)
{
if(strcmpi(x[elem],x[i])<0)
{
strcpy(temp,x[elem]);
strcpy(x[elem],x[i]);
strcpy(x[i],temp);
} } } }

void main()
{
int i,n=0
char x[10][12]
Print, "Escribe Fin para terminar ", endl
do
{
Print, "Cadena ", (n+1), " : "
Read, x[n]
}
while(strcmpi(x[n++],"fin"));
ordenar(--n,x);
Print, "Lista Ordenar cadena ", endl;
for(i=0;i<n;i++)
{
Print, x[i], endl
} }



Código y Corrida

No hay comentarios:

Publicar un comentario