C++

C++

viernes, 20 de mayo de 2011

Practica 10

PRACTICA 10

Ejercicio 1

SOLUCION

1.- Inicio.
ofstream archivo;
archivo.open("E:\\datos\\ejemplo.txt");
if(archivo.bad())
{
read " No puede crear el archivo ejemplo.txt"
}
else
{
archivo, 1," ",50,"Reprobado"
archivo, 2," ",0," Ausente"
archivo, 3," ",80,"Aprobado"
archivo, 4," ",100,"Aprobado"
archivo.close();
}
read "Datos Grabados Exitosamente"
FIN


 CODIGO

#include<fstream.h>
#include<conio.h>
void main()
{
ofstream archivo;
archivo.open("E:\\datos\\ejemplo.txt");
if(archivo.bad())
{
cout<<"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();
}
cout<<"Datos grabados exitosamente"<<endl;
getch();
}



Ejercicio 2

SOLUCION

1.-Inicio.
ifstream arch1;
int i,calif;
char cadena[10];
arch1.open("c:\\datos\\ejemplo.txt");
if(arch1.bad())
{
read,"Incapaz de crear o abrir el archivo"
}
else
{
arch1>>i;
while(!arch1.eof())
{
read,i," "
arch1>>calif;
read,calif;
arch1>>cadena;
read,cadena
arch1>>i;
}
arch1.close();
}
FIN

CODIGO
#include<fstream.h>
#include<conio.h>
main()
{
ifstream arch1;
int i,calif;
char cadena[10];
arch1.open("c:\\datos\\ejemplo.txt");
if(arch1.bad())
{
cout<<"Incapaz de crear o abrir el archivo"<<endl;
}
else
{
arch1>>i;
while(!arch1.eof())
{
cout<<i<<" ";
arch1>>calif;
cout<<calif;
arch1>>cadena;
cout<<cadena<<endl;
arch1>>i;
}
arch1.close();
}
getch();
}




Ejercicio 3

CODIGO

#include<conio.h>
#include<fstream.h>
main()
{
fstream f1;
char cadena[10],sigue,nombre[10];
int c1,c2,c3,c4;
int promedio;
int opcion;
f1.open("E:\\datos\\ejemplo2.txt",ios::app|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:";
cin>>nombre;
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;
}
else{
f1<<"Reprobado"<<endl;
}
cout<<"Desea registrar a otro(s/n)";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
f1.close();
break;
case 2:f1.open("c:\\datos\\ejemplo2.txt",ios::out);
cout<<"Nombre calif1 calif2 calif3 calif4 promedio status";
if(f1.bad())
{
cout<<"Incapaz de crear o abrir el archivo"<<endl;
}
else{
f1>>nombre;
while(!f1.eof());
{
cout<<nombre<<" "<<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;
}
}
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.


CODIGO

#include <fstream.h>
#include <conio.h>
#include <math.h>
void crearchivo()
{
fstream escribir;
escribir.open("E://Datos//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("E://Datos//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 ("E://Datos//polar.txt",ios::in);
f2.open ("E://Datos//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;
}
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.


CODIGO

#include <fstream.h>
#include <conio.h>
void main()
{
float num;
fstream archivo;
archivo.open("E://Datos//resultados.txt",ios::out,ios::in);
archivo<<92.65<<"   "<<88.72<<"   "<<77.46<<"  "<<82.93<<endl;
archivo.close();
archivo.open("E://Datos//resultados.txt",ios::in);
float suma=0;
for (int i=1;i<=4;i++)
{
archivo>>num;
cout<<num<<"   ";
suma=suma+num;
}
cout<<endl;
float promedio=suma/4.0;
cout<<"El promedio es:"<<promedio<<endl;
getch();
}




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. 


CODIGO

#include <iostream.h>
#include <conio.h>
#include <string.h>
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];
cout<<"Escribe Fin para terminar "<<endl;
do
{
cout<<"Cadena "<<(n+1)<<" : ";
cin>>x[n];
}
while(strcmpi(x[n++],"fin"));
ordenar(--n,x);
cout<<"Lista Ordenar cadena "<<endl;
for(i=0;i<n;i++)
{
cout<<x[i]<<endl;
}
getch();
}





TAREAS

Ejercicio 10.7

SOLUCION

1.- Inicio.
X, Y int
Linea[ ]="|" char
for (X=1;X<=15;X++)
{
Y=pow((X-8),2.0)+3
Linea[Y]='*'                          //Establecer el caracter en un asterisco
print " ",Linea<<endl;
Linea[Y]=' '                          //Convertir el caracter en un espacio en blanco
}
FIN.


CODIGO

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

void main()
{
int X,Y;
char Linea[ ]="|";
for (X=1;X<=15;X++)
{
Y=pow((X-8),2.0)+3;
Linea[Y]='*';                               //Establecer el caracter en un asterisco
cout<<Linea<<endl;
Linea[Y]=' ' ;                               //Convertir el caracter en un espacio en blanco
}
getch();
}


Ejercicio 10.8

SOLUCION

1.- Inicio.
int X,Y;
Etiqueta[ ]="             Eje Y" char
Eje[ ]="+-------------------------------------------->" char
Linea[ ]="|                                           " char
print " ",Etiqueta<<endl
print " ",Eje<<endl
for (X=1;X<=15;X++)
{
Y=pow((X-8),2.0)+3
Linea[Y]='*'                                                  // Establecer el caracter en un asterisco
print " ",linea<<endl
Linea[Y]=' '                                                   // Restablecer el caracter en un espacio en blanco
}
Fin.

CODIGO
#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
int X,Y;
char Etiqueta[ ]="             Eje Y";
char Eje[ ]="+-------------------------------------------->";
char Linea[ ]="|                                           ";
cout<<Etiqueta<<endl;
cout<<Eje<<endl;
for (X=1;X<=15;X++)
{
Y=pow((X-8),2.0)+3;
Linea[Y]='*';                                         // Establecer el caracter en un asterisco
cout<<Linea<<endl;
Linea[Y]=' ';                                          // Restablecer el caracter en un espacio en blanco
}
getch();
}





Ejercicio 10.9

SOLUCION

1.- Inicio.
Puntos_Max=100 Const int
I, N_Puntos, N_Valores[Puntos_Max] int
X,X_Incremento,F_Valores,Y_Min,Y_Max,Ancho,S_Valores[100] real
Etiqueta[ ]="                          Eje Y" char
Eje[ ]="+--------------------------------------------->" char
Linea[ ]=" |                                           " char
Y_Max=1.0e-5
Y_Min=1.0e+5
X=-5.0
X_Incremento=0.5
N_Puntos=21
Ancho=53
                                           //Cargar los datos para ser graficados y encontrar los valores Max y Min
for (I=1;I<=N_Puntos;I++)
{
S_Valores[I]=pow(X,3.0)
if (S_Valores[I]>Y_Max)
Y_Max=S_Valores[I]
if (S_Valores[I]<Y_Min)
Y_Min=S_Valores[I]
X=X+X_Incremento
}
                                                                                      // Escalar los valores de Y para ser graficados
for (I=1;I<=N_Puntos;I++)
{
F_Valores=((S_Valores[I]-Y_Min)/(Y_Max-Y_Min))*Ancho
N_Valores[I]=F_Valores+0.5;                                    // Convertir a un valor en numero entero
}
                                                                                      // Produce la gráfica
print "El Valor Minimo en Y: ",Y_Min<<endl
print "El Valor Maximo en Y: ",Y_Max<<endl;
print " ",Etiqueta<<endl
print " ",Eje<<endl
for (I=1;I<=N_Puntos;I++)
{
Linea[N_Valores[I]|+2]='*'                                          // Establecer el caracter en un asterisco
print " ",Linea<<endl
Linea[N_Valores[I]|+2]=' '                                     //Restablecer el caracter en un espacio en blanco
}
Fin.



CODIGO

#include <iostream.h>
#include <conio.h>
#include <math.h>
void main()
{
const int Puntos_Max=100;
int I, N_Puntos, N_Valores[Puntos_Max];
float X,X_Incremento,F_Valores,Y_Min,Y_Max,Ancho,S_Valores[100];
char Etiqueta[ ]="                          Eje Y";
char Eje[ ]="+--------------------------------------------->";
char Linea[ ]=" |                                           ";
Y_Max=1.0e-5;
Y_Min=1.0e+5;
X=-5.0;
X_Incremento=0.5;
N_Puntos=21;
Ancho=53;
                                         // Cargar los datos para ser graficados y encontrar los valores Max y Min
for (I=1;I<=N_Puntos;I++)
{
S_Valores[I]=pow(X,3.0);
if (S_Valores[I]>Y_Max)
Y_Max=S_Valores[I];
if (S_Valores[I]<Y_Min)
Y_Min=S_Valores[I];
X=X+X_Incremento;
}
                                                                                      // Escalar los valores de Y para ser graficados
for (I=1;I<=N_Puntos;I++)
{
F_Valores=((S_Valores[I]-Y_Min)/(Y_Max-Y_Min))*Ancho;
N_Valores[I]=F_Valores+0.5;                                        // Convertir un valor en numero entero
}
                                                                                          // Produce la gráfica
cout<<"El Valor Minimo en Y: "<<Y_Min<<endl;
cout<<"El Valor Maximo en Y: "<<Y_Max<<endl;
cout<<Etiqueta<<endl;
cout<<Eje<<endl;
for (I=1;I<=N_Puntos;I++)
{
Linea[N_Valores[I]|+2]='*';                                           // Establecer el caracter en un asterisco
cout<<Linea<<endl;
Linea[N_Valores[I]|+2]=' ';                                  //Restablecer el caracter en un espacio en blanco
}
getch();
}






viernes, 13 de mayo de 2011

Practica 9

PRACTICA 9

Ejercicio 1

Escriba un programa que encuentre y despliegue el valor máximo y el valor mínimo de un arreglo bidimensional de números enteros también despliegue el índice del renglón y columna que corresponden al valor máximo y mínimo.

SOLUCION
 
1.-INICIO introdatos.
void introdatos(int v[5][4])
{
r,c int
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
Print  "Dato"(r+1)","(c+1)":"
Read v[r][c]
}
}
}
FIN.
1.INICIO sumarenglon
void sumarenglon(int v[5][4])
{
suma,r,c int
Print "Suma de renglones"
for(r=0 to r<5 step r++)
{
suma=0
for(c=0 to c<4 step c++)
{
suma=suma+v[r][c]
}
Print "Renglon"": ",suma
}
}
FIN.
1.INICIO sumacolumna
void sumacolumna(int v[5][4])
{
suma,r,c int
print "Suma de columnas"
for(c=0 to c<4 step c++)
{
suma=0
for(r=0 to r<5 step r++)
{
suma=suma+v[r][c]
}
Print "La suma de la columna”(c+1)"es: ",suma
}
}
FIN
1.INICIO imprimetabla.
void imprimetabla(int v[5][4])
{
r,c int
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
Print “ “,v[r][c]"\t"
}
}
}
FIN.
1.INICIO maximo.
void maximo(int v[5][4],int &max,int &posr,int &posc)
{
r,c int
max=v[0][0]
posr=0
posc=0
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
if(v[r][c]>max)
{
max=v[r][c]
posr=r
posc=c
}
}
}
}
FIN
1.INICIO minimo.
void minimo(int v[5][4],int &min,int &posr,int &posc)
{
r,c int
min=v[0][0]
posr=0
posc=0
for(r=0 to r<5 step r++)
{
for(c=0 to c<4 step c++)
{
if(v[r][c]<min)
{
min=v[r][c]
posr=r
posc=c
}
}
}
}
FIN.
1.INICIO main.
{
valores[5][4] int
max,min,posr,posc,posr1,posc1 int
introdatos(valores)
sumarenglon(valores)
sumacolumna(valores)
imprimetabla(valores)
maximo(valores,max,posr,posc)
minimo(valores,min,posr1,posc1)
print "El valor maximo es=",max" con posicion(",posr",",posc")"
print "El valor minimo es=",min" con posicion(",posr1",",posc1")"
FIN.


CODIGO

#include<iostream.h>
#include<conio.h>
void introdatos(int v[5][4])
{
int r,c;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
cout<<"Dato"<<(r+1)<<","<<(c+1)<<":";
cin>>v[r][c];
}
}
}
void sumarenglon(int v[5][4])
{
int suma,r,c;
cout<<endl;
cout<<"Suma de renglones"<<endl;
cout<<endl;
for(r=0;r<5;r++)
{
suma=0;
for(c=0;c<4;c++)
{
suma=suma+v[r][c];
}
cout<<"Renglon"<<(r+1)<<": "<<suma<<endl;
}
}
void sumacolumna(int v[5][4])
{
int suma,r,c;
cout<<endl;
cout<<"Suma de columnas"<<endl;
cout<<endl;
for(c=0;c<4;c++)
{
suma=0;
for(r=0;r<5;r++)
{
suma=suma+v[r][c];
}
cout<<"La suma de la columna  "<<(c+1)<<" es: "<<suma<<endl;
}
}
void imprimetabla(int v[5][4])
{
int r,c;
cout<<endl;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
cout<<v[r][c]<<"\t";
}
cout<<endl;
}
}
void maximo(int v[5][4],int &max,int &posr,int &posc)
{
int r,c;
max=v[0][0];
posr=0;
posc=0;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
if(v[r][c]>max)
{
max=v[r][c];
posr=r;
posc=c;
}
}
}
}
void minimo(int v[5][4],int &min,int &posr,int &posc)
{
int r,c;
min=v[0][0];
posr=0;
posc=0;
for(r=0;r<5;r++)
{
for(c=0;c<4;c++)
{
if(v[r][c]<min)
{
min=v[r][c];
posr=r;
posc=c;
}
}
}
}
void main()
{
int valores[5][4];
int max,min,posr,posc,posr1,posc1;
introdatos(valores);
sumarenglon(valores);
sumacolumna(valores);
imprimetabla(valores);
maximo(valores,max,posr,posc);
minimo(valores,min,posr1,posc1);
cout<<"El valor maximo es="<<max<<" con posicion("<<posr<<","<<posc<<")"<<endl;
cout<<"El valor minimo es="<<min<<" con posicion("<<posr1<<","<<posc1<<")"<<endl;
getch();
}









Ejercicio 2

Escriba un programa que sume los elementos equiparables de los arreglos bidimensionales denominado primero y segundo.Ambos arreglos deben tener dos renglones y 3 columnas.Agregar el metodo para la multiplicacion equiparable. Por ejemplo los elementos [1][2] del arreglo que resulte deben ser la suma de primero [1][2] y segundo [1][2]. Los arreglos primero y segundo son introducidos por el usuario.

SOLUCION

1.-INICIO primera.
void primera(int primera[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print  "Dato"(r+1)","(c+1)":"
Read primera[r][c]
}
}
}
FIN.
1.INICIO segunda.
void segunda(int segunda[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print "Dato"(r+1)","(c+1)":"
Read segunda[r][c]
}
}
}
FIN
1.INICIO suma.
void suma(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0 to r<2 step r++)
{
for(int c=0 to c<3 step c++)
{
tercera[r][c]=primera[r][c]+segunda[r][c]
}
}
}
FIN.
1.INICIO multiplicacion.
void multiplicacion(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0 to r<2 step r++)
{
for(int c=0 to c<3 step c++)
{
tercera[r][c]=primera[r][c]*segunda[r][c]
}
}
}
FIN.
1.INICIO imprimir.
void imprimir(int v[2][3])
{
r,c int
for(r=0 to r<2 step r++)
{
for(c=0 to c<3 step c++)
{
Print “ “v[r][c]
}
}
}
FIN.
1.INICIO main.
void main()
{
 val[2][3] int
 val1[2][3] int
val2[2][3] int
val3[2][3] int
print "Tabla 1"
primera(val)
print "Tabla 2"
segunda(val1)
suma(val,val1,val2)
multiplicacion(val,val1,val3)
print "Tabla 1"
imprimir(val)
print "Tabla 2"
imprimir(val1)
print "Suma"
imprimir(val2)
print "Multiplicacion"
imprimir(val3)
FIN

 
CODIGO

#include<iostream.h>
#include<conio.h>
void primera(int primera[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<"Dato"<<(r+1)<<","<<(c+1)<<":";
cin>>primera[r][c];
}
}
}
void segunda(int segunda[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<"Dato"<<(r+1)<<","<<(c+1)<<":";
cin>>segunda[r][c];
}
}
}
void suma(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0;r<2;r++)
{
for(int c=0;c<3;c++)
{
tercera[r][c]=primera[r][c]+segunda[r][c];
}
}
}
void multiplicacion(int primera[2][3],int segunda[2][3],int tercera[2][3])
{
for(int r=0;r<2;r++)
{
for(int c=0;c<3;c++)
{
tercera[r][c]=primera[r][c]*segunda[r][c];
}
}
}
void imprimir(int v[2][3])
{
int r,c;
for(r=0;r<2;r++)
{
for(c=0;c<3;c++)
{
cout<<v[r][c]<<"\t";
}
cout<<endl;
}
}
void main()
{
int val[2][3];
int val1[2][3];
int val2[2][3];
int val3[2][3];
cout<<"  ** Tabla 1 **"<<endl;
cout<<endl;
primera(val);
cout<<endl;
cout<<"  ** Tabla 2 ** "<<endl;
cout<<endl;
segunda(val1);
suma(val,val1,val2);
multiplicacion(val,val1,val3);
cout<<endl;
cout<<"    *Tabla 1*   "<<endl;
cout<<endl;
imprimir(val);
cout<<endl;
cout<<"    *Tabla 2*  "<<endl;
cout<<endl;
imprimir(val1);
cout<<endl;
cout<<"      *Suma*    "<<endl;
cout<<endl;
imprimir(val2);
cout<<endl;
cout<<" *Multiplicacion*   "<<endl;
cout<<endl;
imprimir(val3);
getch();
}








Ejercicio 3

Dada la matriz "a" de la forma

a11     a12.....a1m 
a21     a22.....a2m
an1     an2.....anm

La transpuesta de A´ de A está dada por 

a11     a21.....an1
a12     a22.....an2

a1m    a2m.....anm

Esto quiere decir que se obtiene cambiando renglones por columnas y viceversa, formulece un programa para obtener la matriz y la transpuesta.

SOLUCION
 
1.-INICIO introducirdatos.
void introducirdatos(int m[4][4])
{
randomize()
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
m[r][c]=random(1000)+1
}
}
}
FIN.
1.INICIO imprimematriz.
void imprimematriz(int m[4][4])
{
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
Print “ “,m[r][c]
}
}
}
FIN
1.INICIO transpuesta.
void transpuesta(int m[4][4],int m1[4][4])
{
for(int r=0 to r<4 step r++)
{
for(int c=0 to c<4 step c++)
{
m1[c][r]=m[r][c]
}
}
}
FIN
1.INICIO main.
void main()
{
int a[4][4]
int a1[4][4]
introducirdatos(a)
transpuesta(a,a1)
Print "Matriz original"
imprimematriz(a)
"Matriz transpuesta"
imprimematriz(a1)
FIN.
CODIGO

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void introdatos(int m[4][4])
{
int r,c;
randomize ();
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
m[r][c]=random(100)+1;
}
}
}
void imprimematriz(int m[4][4])
{
int r,c;
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
cout<<m[r][c]<<"\t";
}
cout<<endl;
}
}
void transpuesta(int m[4][4], int m1[4][4])
{
int r,c;
for (r=0;r<4;r=r+1)
{
for (c=0;c<4;c=c+1)
{
m1[c][r]=m[r][c];
}}}
void main()
{
int a[4][4];
int a1[4][4];
introdatos(a);
transpuesta(a,a1);
cout<<endl;
cout<<"Matriz original"<<endl;
cout<<endl;
imprimematriz(a);
cout<<endl;
cout<<"Matriz Transpuesta"<<endl;
cout<<endl;
imprimematriz(a1);
getch();
}






Ejercicio 5

Elaborar un programa que lea el nombre de  10 trabajadores y su produccion mensual por cada uno de los 12 meses del año, en dos arreglos uno para nombres y otro para produccion en los cuales las las "n" corresponden al trabajador.

Se requiere el siguiente reporte
Estacion                               Total Produccion
1                                                 xxxxxxx
2                                                 xxxxxxx
3                                                 xxxxxxx
4                                                 xxxxxxx
.
.
.
15                                               xxxxxxx

Total
Estacion mas productiva:________
Encargado de la Estacion:__________
Cantidad Producida:___________

SOLUCION
1.-INICIO calculoprodanual.
void calculoprodanual(int produccion[15][12],int prodtotal[15])
{
for(int i=0 to i<15 step i++)
{
int suma=0
for(int j=0 to j<15 step j++)
{
suma=suma+produccion[i][j]
}
prodtotal[i]=suma
}
}
FIN.
1.INICIO introdatos.
void introdatos(char nombre[15][20],int produccion[15][12])
{
randomize()
for(int i=0 to i<15 step i++)
{
Print "Nombre del encargado estacion" (i+1) ":"
cin>>nombre[i]
for(int j=0 to j<12 step j++)
{
produccion[i][j]=random(50000)+1
}
}
}
FIN.
1.INICIO mayorproductividad.
void mayorproductividad(int prod_total[15],int &mayor,int &pos)
{
mayor=prod_total[0]
pos=0
for (int i=1 to i<15 step i++)
{
if(prod_total[i]>mayor)
{
mayor=prod_total[i]
pos=i
}
}
}
FIN.
1.INICIO main.
void main()
{
int prod[15][12]
int ptotal[15]
char nom[15][20]
may,p1int
introdatos(nom,prod)
calculoprodanual(prod,ptotal)
mayorproductividad(ptotal,may,p1)
print "La estacion mas productiva es:"(p1+1)
print "Encargado de la estacion:",nom[p1]
Print "Cantidad producida:",ptotal[p1]
FIN.

CODIGO

#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void calculoprodanual(int produccion[15][12],int prodtotal[15])
{
int i,j;
for(i=0;i<15;i++)
{
int suma=0;
for(j=0;j<15;j++)
{
suma=suma+produccion[i][j];
}
prodtotal[i]=suma;
}
}
void introdatos(char nombre[15][20],int produccion[15][12])
{
int i,j;
randomize();
for(i=0;i<15;i++)
{
cout<<endl;
cout<<"Nombre del Encargado Estacion "<<(i+1)<<" :";
cin>>nombre[i];
cout<<endl;
for(j=0;j<12;j++)
{
cout<<endl;
produccion[i][j]=random(50000)+1;
cout<<produccion[i][j]<<"     ";
}
cout<<endl;
}
}
void mayorproductividad(int prod_total[15],int &mayor,int &pos)
{
int i;
mayor=prod_total[0];
pos=0;
for (i=1;i<15;i++)
{
if(prod_total[i]>mayor)
{
mayor=prod_total[i];
pos=i;
}
}
}
void main()
{
int prod[15][12];
int ptotal[15];
char nom[15][20];
int may,p1;
introdatos(nom,prod);
calculoprodanual(prod,ptotal);
mayorproductividad(ptotal,may,p1);
cout<<"La estacion mas productiva es:"<<(p1+1)<<endl;
cout<<"Encargado de la estacion:"<<nom[p1]<<endl;
cout<<"Cantidad producida:"<<ptotal[p1]<<endl;
getch();
}


Ejercicio 6

Calcular un programa que genere una matriz de 10 x 10 en la cual asigne ceros a todos los elementos excepto a los de la diagonal principal donde asignara unos, imprime dicha matriz.

SOLUCION

1.-INICIO asignarvalores.
void asignarvalores(int m[10][10])
{
r,c int
for (r=0 to r<10 step r++)
{
for (c=0 to c<10 step c++)
{
if(r==c)
{
m[r][c]=1
}
else{
m[r][c]=;
}
}
}
}
FIN.
1.INICIO imprimematriz.
void imprimematriz(int m[10][10])
{
I int
for (i=0 to i<10 step i++)
{
for (int j=0 to j<10 step j++)
{
Print “ “,[i][j]
}
}
}
FIN.
1.INICIO main.
void main ()
{
matriz[10][10] int
asignarvalores(matriz)
imprimematriz(matriz)
FIN

CODIGO

#include <iostream.h>
#include <conio.h>
void asignarvalores(int m[10][10])
{
int r,c;
for (r=0;r<10;r++)
{
for (c=0;c<10;c++)
{
if(r==c)
{
m[r][c]=1;
}
else{
m[r][c]=0;
}
}
}
}
void imprimematriz(int m[10][10])
{
int i;
for (i=0;i<10;i++)
{
for (int j=0;j<10;j++)
{
cout<<m[i][j]<<"";
}
cout<<endl;
}}
void main ()
{
int matriz[10][10];
asignarvalores(matriz);
imprimematriz(matriz);
getch ();
}





Ejercicio 7
Elaborar un programa que de el informe de 10 trabajadores y su producción mensual los 12 meses en 2 arreglos. El informe debe de ir de la siguiente manera:
Nombre                                 Total de producción:
________                             ________________
________                             ________________
________                             ________________
Promedio de producción:______________

SOLUCION

1.-INICIO introdatos.
void introdatos(int produccion[10][13])
{
randomize ()
i,j,suma int
for (i=0 to i<10 step i++)
{
suma=0
for (j=0 to j<12 step j++)
{
produccion[i][j]=random(5000)+1
suma=suma+produccion[i][j]
}
produccion[i][12]=suma
}
}
FIN.
1.INICIO leernombres.
void leernombres(char name[10][25])
{
I int
for (i=0 to i<10 step i++)
{
Print "nombre trabajador"(i+1)":"
cin.getline(name[i],25)
}
}
FIN.
1.INICIO reporte.
void reporte(int produccion[10][13], char name[10][25])
{
suma,i,prom int
Print "analisis de produccion"
Print    "nombre        total produccion"
suma=0
for (i=0 to i<10 step i++)
{
Print “ “name[i]"        ",produccion[i][12]
suma=suma+produccion[i][12]
}
{
prom=suma/10
print "promedio de produccion ",prom
print "listado de trabajadores mayores a ",prom
i int
for (i=0 to i<10 step i++)
{
if (produccion[i][12]>prom)
{
Print “ “,name[i]
}
}
}
}
FIN.
1.INICIO main.
void main ()
{
int p[10][13]
char nom[10][25]
leernombres(nom)
introdatos(P)
reporte(p,nom)
FIN.

CODIGO

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
void introdatos(int produccion[10][13])
{
randomize ();
int i,j,suma;
for (i=0;i<10;i++)
{
suma=0;
for (j=0;j<12;j++)
{
produccion[i][j]=random(5000)+1;
suma=suma+produccion[i][j];
}
produccion[i][12]=suma;
}
}
void leernombres(char name[10][25])
{
int i;
for (i=0;i<10;i++)
{
cout<<"Nombre del Trabajador "<<(i+1)<<" :";
cin.getline(name[i],25);
}
}
void reporte(int produccion[10][13], char name[10][25])
{
int suma,i,prom;
cout<<endl;
cout<<"* Analisis de Produccion *"<<endl;
cout<<endl;
cout<<" Nombre  Total Produccion"<<endl;
suma=0;
for(i=0;i<10;i++)
{
cout<<name[i]<<"   "<<produccion[i][12]<<endl;
suma=suma+produccion[i][12];
}
{
prom=suma/10;
cout<<endl;
cout<<"Promedio de Produccion "<<prom<<endl;
cout<<endl;
cout<<"Listado de Trabajadores Mayores a "<<prom<<endl;
int i;
for (i=0;i<10;i++)
{
if (produccion[i][12]>prom)
{
cout<<name[i]<<endl;
}
}
}
}
void main ()
{
int p[10][13];
char nom[10][25];
leernombres(nom);
introdatos(p);
reporte(p,nom);
getch();
}




Ejercicio 8

SOLUCION
 
1.-INICIO
void main()
{
ofstream salida
salida.open("c://datos//prueba.txt")
salida<<" 10 32 45 66 "<<endl
salida<<" 42 90 35 46 "<<endl
salida<<" 28 76 31 92 "<<endl
salida.close()
Print " Datos Almacenados "<<endl
FIN

CODIGO

#include <fstream.h>
#include <conio.h>
void main()
{
ofstream salida;
salida.open("c://practica 9//prueba.txt");
salida<<" 10   32  45  66 "<<endl;
salida<<" 42   90  35  46 "<<endl;
salida<<" 28   76  31  92 "<<endl;
salida.close();
cout<<" Datos  Almacenados "<<endl;
getch();
}                    




Ejercicio 9

SOLUCION
1.INICIO sumaren.
void sumaren(int dato[3][4])
{
suma,i,j int
print "Suma de renglones: "
for(i=0 to i<3 step i++)
{
suma=0
for(j=0 to j<4 step j++)
{

suma=suma+dato[i][j]
}
Print "La suma del renglon: "(i+1)" es: ",suma
}
}
FIN.
1.INICIO sumacol.
void sumacol(int dato[3][4])
{
suma,i,j int
print "Suma de columnas: "
for(j=0 to j<4 step j++)
{
suma=0
for(i=0 to i<3 step i++)
{
suma=suma+dato[i][j]
}
Print "La suma de las Columnas: “(j+1)" es: ",suma
}
}
FIN.
1.INICIO imprimir.
void imprimir(int dato[3][4])
{
int i,j
ifstream entrada
entrada.open("c://datos//prueba.txt")
for(i=0 to i<3 step i++)
{
for(j=0 to j<4 step j++)
{
entrada>>dato[i][j]
print ,dato[i][j]"    ";
}
}
entrada.close()
FIN.
1.INICIO main.
void main ()
{
int dato[3][4]
imprimir(dato)
sumaren(dato)
sumacol(dato)
FIN

CODIGO

#include <fstream.h>
#include <conio.h>
void sumaren(int dato[3][4])
{
int suma,i,j;
cout<<endl;
cout<<"Suma de renglones: "<<endl;
cout<<endl;
for(i=0;i<3;i++)
{
suma=0;
for(j=0;j<4;j++)
{
suma=suma+dato[i][j];
}
cout<<"La suma del renglon: "<<(i+1)<<" es: "<<suma<<endl;
} }
void sumacol(int dato[3][4])
{
int suma,i,j;
cout<<endl;
cout<<"Suma de columnas: "<<endl;
cout<<endl;
for(j=0;j<4;j++)
{
suma=0;
for(i=0;i<3;i++)
{
suma=suma+dato[i][j];
}
cout<<"La suma de las Columnas: "<<(j+1)<<" es: "<<suma<<endl;
} }
void imprimir(int dato[3][4])
{
int i,j;
ifstream entrada;
entrada.open("c://practica 9//prueba.txt");
for(i=0;i<3;i++)
{
for(j=0;j<4;j++)
{
entrada>>dato[i][j];
cout<<dato[i][j]<<"    ";
}
cout<<endl;
}
entrada.close();
getch();
}
void main ()
{
int dato[3][4];
imprimir(dato);
sumaren(dato);
sumacol(dato);
getch();
}






Ejercicio 10

Almacene los siguientes datos en un archivo.

10.1
a) 5,96,87,28,13,21,4,92,82,85,87,6,72,69,85,75,81,73.

10.2
b) Escriba un programa para calcular y desplegar el promedio de cada grupo de numeros en el archivo creado en el insciso a).Los datos se han arreglado en el archivo para que cada grupo de numeros, sea presedido por el numero de elementos de datos en el grupo. Entonces  el primer numero en el archivo, indica que los siguientes numeros se deben agrupar juntos. El numero cuatro indica que los siguientes cuatro numeros forman un grupo y el seis indica que los ultimos seis numeros hacen un grupo. 

SOLUCION 10.1
1.INICIO
main()
{
ofstream f1
f1.open("c://datos//Grupos.txt")
f1<<5<<endl
f1<<96<<endl
f1<<87<<endl
f1<<78<<endl
f1<<93<<endl
f1<<21<<endl
f1<<9<<endl
f1<<92<<endl
f1<<31<<endl
f1<<57<<endl
f1<<6<<endl
f1<<72<<endl
f1<<69<<endl
f1<<82<<endl
f1<<75<<endl
f1<<81<<endl
f1<<73<<endl
f1.close()
PRINT "Grupos almacenados"
FIN

 
CODIGO  10.1

#include<fstream.h>
#include<conio.h>
main()
{
ofstream f1;
f1.open("c://practica 9//Grupos.txt");
f1<<5<<endl;
f1<<96<<endl;
f1<<87<<endl;
f1<<78<<endl;
f1<<93<<endl;
f1<<21<<endl;
f1<<9<<endl;
f1<<92<<endl;
f1<<31<<endl;
f1<<57<<endl;
f1<<6<<endl;
f1<<72<<endl;
f1<<69<<endl;
f1<<82<<endl;
f1<<75<<endl;
f1<<81<<endl;
f1<<73<<endl;
f1.close();
cout<<" * Grupos almacenados *"<<endl;
getch();
}


SOLUCION 10.2
1.INICIO
main()
{
ifstream f2
f2.open("c://datos//Grupos.txt")
int n,suma=0,numero,j
f2>>n
for (j=1 to j<=n step j++)
{
f2 >>numero
suma=suma+numero
}
int prom=suma/n
print "El promedio del grupo"(j)":",prom
f2.close()
FIN
 
CODIGO  10.2

#include <fstream.h>
#include <conio.h>
main()
{
ifstream f2;
f2.open("c://practica 9//Grupos.txt");
int n,suma=0,numero,j;
f2>>n;
for (j=1;j<=n;j++)
{
f2 >>numero;
suma=suma+numero;
}
int prom=suma/n;
cout<<"El promedio del grupo"<<(j)<<":"<<prom<<endl;
f2.close();
getch();
}









Ejercicio 11

Escriba un programa que pueda crear un archivo texto llamado voltios y escriba en el los siguientes 5 registros.

11.1
a) 120.3, 122.7, 90.3, 99.8, 95.3, 120.5, 127.3, 120.8, 123.2, 118.4, 123.8, 116.6, 122.4, 95.6, 118.2, 120.0, 123.5, 130.2, 123.9, 124.4.

SOLUCION

1.INICIO
main()
{
ofstream archivo
archivo.open("c://datos//voltios.txt")
archivo<<"120.3 122.7 90.3 99.8"<<endl
archivo<<"95.3 120.5 127.3 120.8"<<endl
archivo<<"123.2 118.4 123.8 116.6"<<endl
archivo<<"122.4 95.1 116.7 120.0"<<endl
archivo<<"123.5 130.2 123.9 129.4"<<endl
archivo.close()
PRINT "Archivo almacenado"
FIN

CODIGO

#include <fstream.h>
#include <conio.h>
main()
{
ofstream archivo;
archivo.open("c://practica 9//voltios.txt");
archivo<<"120.3 122.7 90.3 99.8"<<endl;
archivo<<"95.3 120.5 127.3 120.8"<<endl;
archivo<<"123.2 118.4 123.8 116.6"<<endl;
archivo<<"122.4 95.1 116.7 120.0"<<endl;
archivo<<"123.5 130.2 123.9 129.4"<<endl;
archivo.close();
cout<<" * Archivo Almacenado *"<<endl;
getch();
}






11.2
b) Con base a los datos del archivo voltios escriba un programa que lea cada registro en el archivo.
Calcule y despliegue el promedio para cada registro.

SOLUCION
 
1.INICIO
main()
{
ifstream archivo
num,suma,prom real
archivo.open("c://datos//voltios.txt")
for(int i=1 to i<=5 step i++)
{
suma=0.0
for(int j=1 to j<=4 step j++)
{
archivo>>num
suma=suma+num
}
prom=suma/4
Print "El promedio del registro",i":",prom
}
archivo.close()
getch()
}
FIN
 
CODIGO

#include<fstream.h>
#include<conio.h>
main()
{
ifstream archivo;
float num,suma,prom;
archivo.open("c://practica 9//voltios.txt");
for(int i=1;i<=5;i++)
{
suma=0.0;
for(int j=1;j<=4;j++)
{
archivo>>num;
suma=suma+num;
}
prom=suma/4;
cout<<endl;
cout<<"El promedio del registro"<<i<<":"<<prom<<endl;
}
archivo.close();
getch();
}