jueves, 21 de marzo de 2013

Practica 13

Practica 13

Problema 1
Pseudocodigo.


Inicio.
registro producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE*alias
funcion void ALTA_SECUENCIAL()
{
no_prod int
clrscr()
Print "\n\rALTAS DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")
if(alias==NULL)
alias=fopen("c:\\Datos\\PRODCTO.SEC","wb")
Print "\n\n\n\rNumero de producto:" Read no_prod;
fread(&Registro,sizeof(Registro),1,alias)
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\n\n\rRegistro duplicado!!!"
fclose(alias)
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rDescripcion:" gets(Registro.descrip)
Print "\n\rCantidad:" Read Registro.cantidad
Print "\n\rPrecio:" Read Registro.precio
Registro.noProd=no_prod
fwrite(&Registro,sizeof(Registro),1,alias)
fclose(alias)
Print "\n\n\n\rProducto registrado!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar >>> "
}
Funcion void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
Print "\n\rCONSULTA DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTOS.SEC","rb")
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
Print "\n\n\n\rNumero de producto:" Read no_prod;
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo Prod Descripcion Cantidad precio"
Print "\n\r------------------------------------------------------------\n\n"
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fclose(alias)
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro !!!"
fclose(alias)
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
funcion void LISTADO_SECUENCIAL(void)
{
clrscr()
Print "\n\rLISTADO DE REGISTRO DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb")
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
Print "\n\rNo Prod Descripcion Cantidad Precio"
Print "\n\r------------------------------------------\n\n"
fread(&Registro,sizeof(Registro),1,alias);
while(!feof(alias))
{
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fread(&Registro,sizeof(Registro),1,alias)
}
fclose(alias)
Print "\n\r-----------------------------------------------------------------\n\n"
Print "\n\rFin del listado!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
menu() int
{
opcion int
Print "\n\n1)alta de producto"
Print "\n2)Consulta de producto"
Print "\n3)Listado de productos"
Print "\n4)Modificar datos de productos"
Print "\n5)Salida programa"
Print "\n\nSeleccioa opcion=?"
Read opcion
return opcion
}
funcion void MODIFICACION_SECUENCIAL(void)
{
no_prod int
clrscr()
Print "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")
if(alias==NULL)
{
Print "\n\n\n\r No existe el archivo!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"

}
Print "\n\n\n\rNumeros de producto:" Read no_prod
fread(&Registro,sizeof(Registro),1,alias)
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo prod descripcion Cantidad precio\n\n"
Print "\n\r--------------------------------------------\n\n"
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
Print "\n\n\n\rAnote los nuevos datos..."
Print "\n\rDescripcion:";gets(Registro.descrip)
Print "\n\rCantidad:"; cin>>Registro.cantidad
Print "\n\rprecio:"; cin>>Registro.precio
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias)
fclose(alias)
Print "\n\n\n\rRegistro modificado!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro!!!"
fclose(alias)
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
main() int
{
opc int
do
{
clrscr()
opc=menu()
switch(opc)
{
case 1:
ALTA_SECUENCIAL()
break
case 2:
CONSULTA_SECUENCIAL()
break
case 3:
LISTADO_SECUENCIAL()
break
case 4:
MODIFICACION_SECUENCIAL()
break
case 5: Print "\n\nFinal programa"
break;
default: Print "\nError en opcion"
}
}
while(opc !=5)
fin.

Codificación en C++
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <stdio.h>
struct producto
{
int noProd;
char descrip[30];
float precio;
int cantidad;
};
producto Registro;
FILE*alias;


void ALTA_SECUENCIAL()
{
int no_prod;// Variable local para el numero de producto
clrscr();
cout<<"\n\rALTAS DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+");
if(alias==NULL)
alias=fopen("c:\\Datos\\PRODCTO.SEC","wb");
cout<<"\n\n\n\rNumero de producto:";cin>>no_prod;
fread(&Registro,sizeof(Registro),1,alias);
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
cout<<"\n\n\n\rRegistro duplicado!!!";
fclose(alias);
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout<<"\n\rDescripcion:";gets(Registro.descrip);
cout<<"\n\rCantidad:"; cin>>Registro.cantidad;
cout<<"\n\rPrecio:";cin>>Registro.precio;
Registro.noProd=no_prod;
fwrite(&Registro,sizeof(Registro),1,alias);
fclose(alias);
cout<<"\n\n\n\rProducto registrado!!!";
cout<<"\n\r<<<Oprima cualquier tecla para continuar >>> ";
getch();
return;
}
void CONSULTA_SECUENCIAL(void)
{
int no_prod;
clrscr();
cout<<"\n\rCONSULTA DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\Datos\\PRODUCTOS.SEC","rb");
if(alias==NULL)
{
cout<<"\n\n\n\rNo existe el archivo!!!";
cout<<"\n\r<<<Oprima cualquier tecla para continuar>>>";
getch();
return;
}
cout<<"\n\n\n\rNumero de producto:";cin>>no_prod;
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
cout<<"\n\rNo Prod Descripcion Cantidad precio";
cout<<"\n\r------------------------------------------------------------\n\n";
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
fclose(alias);
cout<<"\n\r<<< Oprima cualquier tecla para continuar>>>";
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout<<"\n\rNo se encuentra ese registro !!!";
fclose(alias);
cout<<"\n\r<<<Oprima cualquier tecla para continuar>>>";
getch();
return;
}
void LISTADO_SECUENCIAL(void)
{
clrscr();
cout<<"\n\rLISTADO DE REGISTRO DE PRODUCTOS";
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb");
if(alias==NULL)
{
cout<<"\n\n\n\rNo existe el archivo!!!";
cout<<"\n\r<<< Oprima cualquier tecla para continuar>>>";
getch();
return;
}
cout<<"\n\rNo Prod Descripcion Cantidad Precio";
cout<<"\n\r------------------------------------------\n\n";
fread(&Registro,sizeof(Registro),1,alias);
while(!feof(alias))
{
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
fread(&Registro,sizeof(Registro),1,alias);
}
fclose(alias);
cout<<"\n\r-----------------------------------------------------------------\n\n";
cout<<"\n\rFin del listado!!!";
cout<<"\n\r<<<Oprima cualquier tecla para continuar>>>";
getch();
return;
}
int menu()
{
int opcion;
cout<<"\n\n1)alta de producto"<<endl;
cout<<"\n2)Consulta de producto"<<endl;
cout<<"\n3)Listado de productos"<<endl;
cout<<"\n4)Modificar datos de productos"<<endl;
cout<<"\n5)Salida programa"<<endl;
cout<<"\n\nSeleccioa opcion=?";
cin>>opcion;
return opcion;
}
void MODIFICACION_SECUENCIAL(void)
{
int no_prod;
clrscr();
cout<<"\n\rMODIFICACION DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+");
if(alias==NULL)
{
cout<<"\n\n\n\r No existe el archivo!!!";
cout<<"\n\r<<< Oprima cualquier tecla para continuar>>>";
getch();
return;
}
cout<<"\n\n\n\rNumeros de producto:";cin>>no_prod;
fread(&Registro,sizeof(Registro),1,alias);
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
cout<<"\n\rNo prod descripcion Cantidad precio\n\n";
cout<<"\n\r--------------------------------------------\n\n";
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
cout<<"\n\n\n\rAnote los nuevos datos...";
cout<<"\n\rDescripcion:";gets(Registro.descrip);
cout<<"\n\rCantidad:"; cin>>Registro.cantidad;
cout<<"\n\rprecio:"; cin>>Registro.precio;
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET);
fwrite(&Registro,sizeof(Registro),1,alias);
fclose(alias);
cout<<"\n\n\n\rRegistro modificado!!!";
cout<<"\n\r<<< Oprima cualquier tecla para continuar>>>";
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout<<"\n\rNo se encuentra ese registro!!!";
fclose(alias);
cout<<"\n\r<<<Oprima cualquier tecla para continuar>>>";
getch();
return;
}
int main()


{
int opc;
do
{
clrscr();
opc=menu();
switch(opc)
{
case 1:
ALTA_SECUENCIAL();
break;
case 2:
CONSULTA_SECUENCIAL();
break;
case 3:
LISTADO_SECUENCIAL();
break;
case 4:
MODIFICACION_SECUENCIAL();
break;
case 5: cout<<"\n\nFinal programa";
break;
default: cout<<"\nError en opcion"<<endl;
}
}
while(opc !=5);
getch();
return 0;
}



´


Problema 2
Pseudocodigo


Inicio.
registro producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE*alias
funcion void ALTA_SECUENCIAL()
{
no_prod int
clrscr()
Print "\n\rALTAS DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")
if(alias==NULL)
alias=fopen("c:\\Datos\\PRODCTO.SEC","wb")
Print "\n\n\n\rNumero de producto:" Read no_prod;
fread(&Registro,sizeof(Registro),1,alias)
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\n\n\rRegistro duplicado!!!"
fclose(alias)
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rDescripcion:" gets(Registro.descrip)
Print "\n\rCantidad:" Read Registro.cantidad
Print "\n\rPrecio:" Read Registro.precio
Registro.noProd=no_prod
fwrite(&Registro,sizeof(Registro),1,alias)
fclose(alias)
Print "\n\n\n\rProducto registrado!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar >>> "
}
Funcion void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
Print "\n\rCONSULTA DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTOS.SEC","rb")
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
Print "\n\n\n\rNumero de producto:" Read no_prod;
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo Prod Descripcion Cantidad precio"
Print "\n\r------------------------------------------------------------\n\n"
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fclose(alias)
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"


}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro !!!"
fclose(alias)
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"


}
funcion void LISTADO_SECUENCIAL(void)
{
clrscr()
Print "\n\rLISTADO DE REGISTRO DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb")
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
Print "\n\rNo Prod Descripcion Cantidad Precio"
Print "\n\r------------------------------------------\n\n"
fread(&Registro,sizeof(Registro),1,alias);
while(!feof(alias))
{
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
fread(&Registro,sizeof(Registro),1,alias)
}
fclose(alias)
Print "\n\r-----------------------------------------------------------------\n\n"
Print "\n\rFin del listado!!!"
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
}
menu() int
{
opcion int
Print "\n\n1)alta de producto"
Print "\n2)Consulta de producto"
Print "\n3)Listado de productos"
Print "\n4)Modificar datos de productos"
Print "\n5)Salida programa"
Print "\n\nSeleccioa opcion=?"
Read opcion
return opcion
}
funcion void MODIFICACION_SECUENCIAL(void)
{
no_prod int
clrscr()
Print "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\Datos\\PRODUCTO.SEC","rb+")
if(alias==NULL)
{
Print "\n\n\n\r No existe el archivo!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
Print "\n\n\n\rNumeros de producto:" Read no_prod
fread(&Registro,sizeof(Registro),1,alias)
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo prod descripcion Cantidad precio\n\n"
Print "\n\r--------------------------------------------\n\n"
Print Registro.noProd , setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) , Registro.precio
Print "\n\n\n\rAnote los nuevos datos..."
Print "\n\rDescripcion:";gets(Registro.descrip)
Print "\n\rCantidad:"; cin>>Registro.cantidad
Print "\n\rprecio:"; cin>>Registro.precio
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias)
fclose(alias)
Print "\n\n\n\rRegistro modificado!!!"
Print "\n\r<<< Oprima cualquier tecla para continuar>>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro!!!"
fclose(alias)
Print "\n\r<<<Oprima cualquier tecla para continuar>>>"
main() int
{
opc int
do
{
clrscr()
opc=menu()
switch(opc)
{
case 1:
ALTA_SECUENCIAL()
break
case 2:
CONSULTA_SECUENCIAL()
break
case 3:
LISTADO_SECUENCIAL()
break
case 4:
MODIFICACION_SECUENCIAL()
break
case 5: Print "\n\nFinal programa"
break;
default: Print "\nError en opcion"
}
}
while(opc !=5)
funcion void BAJA_LOGICA_SECUENCIAL(void)
{
no_prod int
op char
clrscr()
Print "\n\rBAJAS LOGICAS DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+")
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo !!!"
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
Print "\n\n\n\rNumero de producto: " Rad no_prod
fread(&Registro,sizeof(Registro),1,alias)
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo Prod Descripcion Cantidad Precio "
Print "\n\r---------------------------------------------------------------\n\n"
Print Registro.noProd<<setw(20) , Registro.descrip , setw(10) , Registro.cantidad , setw(10) . Registro.precio
Registro.noProd=0
strcpy(Registro.descrip,"")
Registro.cantidad=0
Registro.precio=0.0
do {
Print "\n\n\rEsta seguro que desea borrarlo? [S/N] ---> "
op=toupper(getche())
}while(op!='S' && op!='N')
if(op=='S')
{
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET)
fwrite(&Registro,sizeof(Registro),1,alias);
Print "\n\n\n\rRegistro eliminado !!!"
}
fclose(alias)
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro !!!"
fclose(alias)
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}


funcion void BAJA_FISICA_SECUENCIAL(void)
{
FILE *temporal
clrscr()
Print "\n\rBAJAS FISICAS DE REGISTROS DE PRODUCTOS" alias=fopen("C:\\datos\\PRODUCTO.SEC","rb");
if(alias==NULL)
{
Print "\n\n\n\rNo existe el archivo !!!"
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
temporal=fopen("C:\\datos\\TEMPORAL.TMP","wb");
fread(&Registro,sizeof(Registro),1,alias)
while(!feof(alias))
{
if(Registro.noProd!=0)
fwrite(&Registro,sizeof(Registro),1,temporal)
fread(&Registro,sizeof(Registro),1,alias)
}
fcloseall()
remove("C:\\datos\\PRODUCTO.SEC")
rename("C:\\datos\\TEMPORAL.TMP","C:\\datos\\PRODUCTO.SEC")
Print "\n\n\n\rArchivo compactado !!!"
Print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
fin.


Codificación en C++
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <stdio.h>
#include <ctype.h>
struct producto
{
int noProd;
char descrip[30];
float precio;
int cantidad;
};
producto Registro;
FILE *alias;
void ALTA_SECUENCIAL();
void CONSULTA_SECUENCIAL(void);
void LISTADO_SECUENCIAL(void);
void MODIFICACION_SECUENCIAL(void);
void BAJA_LOGICA_SECUENCIAL(void);
void BAJA_FISICA_SECUENCIAL(void);
int menu();
int main()
{
int opc;
do
{
clrscr();
opc=menu();
switch(opc)
{
case 1:
ALTA_SECUENCIAL();
break;
case 2:
CONSULTA_SECUENCIAL();
break;
case 3:
LISTADO_SECUENCIAL();
break;
case 4: MODIFICACION_SECUENCIAL();
break;
case 5 : BAJA_LOGICA_SECUENCIAL();
break;
case 6: BAJA_FISICA_SECUENCIAL();
break;


case 7: cout<<"\n\nFinal programa ";
break;
default: cout<<"\nError en opcion"<<endl;
}
}
while(opc !=7);
getch();
return 0;
}


void ALTA_SECUENCIAL()
{
int no_prod; // Variable local para el numero de producto
clrscr();
cout << "\n\rALTAS DE REGISTROS DE PRODUCTOS";
alias=fopen("C:\\datos\\PRODUCTO.SEC","rb+"); // Intenta abrir el archivo
// en modo de lectura/escritura
if(alias==NULL)
alias=fopen("c:\\datos\\PRODUCTO.SEC","wb"); // Crea el archivo en caso de no
// existir
cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;
fread(&Registro,sizeof(Registro),1,alias);
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
// archivo
{
if(Registro.noProd==no_prod)
{
cout << "\n\n\n\rRegistro duplicado !!!";
fclose(alias);
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout << "\n\rDescripcion: "; gets(Registro.descrip);
cout << "\n\rCantidad : "; cin >> Registro.cantidad;
cout << "\n\rPrecio : "; cin >> Registro.precio;
Registro.noProd=no_prod;
fwrite(&Registro,sizeof(Registro),1,alias); // Grabar el Registro
fclose(alias); // Cierra el archivo
cout << "\n\n\n\rProducto registrado !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
void CONSULTA_SECUENCIAL(void)
{
int no_prod;
clrscr();
cout << "\n\rCONSULTA DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL)
{
cout << "\n\n\n\rNo existe el archivo !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
cout << "\n\rNo Prod Descripcion Cantidad Precio ";
cout << "\n\r----------------------------------------------------\n\n";
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
fclose(alias);
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout << "\n\rNo se encuentra ese registro !!!";
fclose(alias); // Cierra el archivo
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
void LISTADO_SECUENCIAL(void)
{
clrscr();
cout << "\n\rLISTADO DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL)
{
cout << "\n\n\n\rNo existe el archivo !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
cout << "\n\rNo Prod Descripcion Cantidad Precio ";
cout << "\n\r-------------------------------------------------------------------\n\n";
fread(&Registro,sizeof(Registro),1,alias);
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
fread(&Registro,sizeof(Registro),1,alias);
}
fclose(alias); // Cierra el archivo
cout << "\n\r------------------------------------------------------------------\n\n";
cout << "\n\rFin del listado !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
int menu()
{
int opcion;
cout<<"\n\n1)alta de producto "<<endl;
cout<<"\n2)Consulta de producto"<<endl;
cout<<"\n3)Listado de productos"<<endl;
cout<<"\n4)Modificar datos de productos"<<endl;
cout<<"\n5)Baja Logica de productos"<<endl;
cout<<"\n6)Baja Fisica de productos"<<endl;
cout<<"\n7)Salida Programa"<<endl;
cout<<"\n\nSelecciona opcion = ? ";
cin>>opcion;
return opcion;
}
void MODIFICACION_SECUENCIAL(void)
{
int no_prod; // Variable local para el numero de producto que desea
//modificar
clrscr();
cout << "\n\rMODIFICACION DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+"); // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de lectura/escritura
if(alias==NULL) // Valida la existencia del archivo
{
cout << "\n\n\n\rNo existe el archivo !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;
fread(&Registro,sizeof(Registro),1,alias);
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
if(Registro.noProd==no_prod)
{
cout << "\n\rNo Prod Descripcion Cantidad Precio \n\n";
cout << "\n\r--------------------------------------------------------------\n\n";
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
cout << "\n\n\n\rAnote los nuevos datos ...";
cout << "\n\rDescripcion: "; gets(Registro.descrip);
cout << "\n\rCantidad : "; cin >> Registro.cantidad;
cout << "\n\rPrecio : "; cin >> Registro.precio;
// Es necesario reposicionar el apuntador del archivo al principio
//del
// registro que desea modificar, ya que al leer un registro, el
// apuntador se posiciona en el registro siguiente
// La funcion ftell(alias) devuelve la posicion donde se encuentra
// el apuntador
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET);
fwrite(&Registro,sizeof(Registro),1,alias); // Graba el registro
// con los nuevos campos
fclose(alias); // Cierra el archivo
cout << "\n\n\n\rRegistro modificado !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout << "\n\rNo se encuentra ese registro !!!";
fclose(alias); // Cierra el archivo
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
void BAJA_LOGICA_SECUENCIAL(void)
{
int no_prod; // Variable local para el numero de producto que desea
//eliminar
char op; //Variable local
clrscr();
cout << "\n\rBAJAS LOGICAS DE REGISTROS DE PRODUCTOS";
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb+"); // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de lectura/escritura
if(alias==NULL) // Valida la existencia del archivo
{
cout << "\n\n\n\rNo existe el archivo !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
cout << "\n\n\n\rNumero de producto: "; cin >> no_prod;
fread(&Registro,sizeof(Registro),1,alias);
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del
//archivo
{
if(Registro.noProd==no_prod)
{
cout << "\n\rNo Prod Descripcion Cantidad Precio "<<endl;
cout<< "\n\r---------------------------------------------------------------\n\n";
cout<<Registro.noProd<<setw(20)<<Registro.descrip<<setw(10)<<Registro.cantidad<<setw(10)<<Registro.precio<<endl;
Registro.noProd=0;
strcpy(Registro.descrip,"");
Registro.cantidad=0;
Registro.precio=0.0;
do {
cout <<"\n\n\rEsta seguro que desea borrarlo? [S/N] ---> ";
op=toupper(getche());
}while(op!='S' && op!='N');
if(op=='S')
{
// Es necesario reposicionar el apuntador del archivo al principio del
// registro que desea modificar, ya que al leer un registro, el
// apuntador se posiciona en el registro siguiente
// La funcion ftell(alias) devuelve la posicion donde se encuentra
// el apuntador
fseek(alias,ftell(alias)-sizeof(Registro),SEEK_SET);
fwrite(&Registro,sizeof(Registro),1,alias); // Graba el registro
// con los nuevos campos
cout << "\n\n\n\rRegistro eliminado !!!";
}
fclose(alias); // Cierra el archivo
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
fread(&Registro,sizeof(Registro),1,alias);
}
cout << "\n\rNo se encuentra ese registro !!!";
fclose(alias); // Cierra el archivo
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}


void BAJA_FISICA_SECUENCIAL(void)
{
FILE *temporal; //Declaracion local de una variable para controlar el
// archivo temporal
clrscr();
cout << "\n\rBAJAS FISICAS DE REGISTROS DE PRODUCTOS";
alias=fopen("C:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
//PRODUCTO.SEC
// en modo de solo lectura
if(alias==NULL) // Valida la existencia del archivo
{
cout << "\n\n\n\rNo existe el archivo !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}
temporal=fopen("C:\\datos\\TEMPORAL.TMP","wb"); // Crea el archivo TEMPORAL.TMP
fread(&Registro,sizeof(Registro),1,alias);
// Lee el "Registro", de tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias)) // Ciclo mientras no se encuentre el final del archivo
{
if(Registro.noProd!=0)
fwrite(&Registro,sizeof(Registro),1,temporal);
// Graba el registro valido en el archivo temporal
fread(&Registro,sizeof(Registro),1,alias);
}
fcloseall(); // Cierra todos los archivos abiertos
remove("C:\\datos\\PRODUCTO.SEC"); //Elimina el archivo original
rename("C:\\datos\\TEMPORAL.TMP","C:\\datos\\PRODUCTO.SEC");
//Renombra el archivo temporal con el nombre del archivo original
cout << "\n\n\n\rArchivo compactado !!!";
cout << "\n\r<<< Oprima cualquier tecla para continuar >>>";
getch();
return;
}




Problema 3.




Pseudocodigo

Inicio
void agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//grupo.txt",ios::app)
int j,calf
char name[30],sigue
int calif
do
{
print " Nombre = ? "
gets(name)
salida , name
for(j=1 j<=4 j++)
{
print "Calificacion " , j , " : "
read calf
salida , calf
}
print " Deseas Registrar otro alumno s/n ? "
read sigue
}
while(sigue=='s' || sigue=='S')
salida.close()
}
void listado_datos_file()
{
int i,suma=0,promedio
ifstream entrada
entrada.open("C://Datos//grupo.txt")
char nombre[30]
int c1
clrscr()
print "nombre alumno c1 c2 c3 c4 Promedio "
entrada.getline(nombre,30)
while(entrada.good())
{
print setw(20) , nombre
suma=0
for(i=1 i<=4 i++)
{
entrada>>c1
print setw(4) , c1
suma=suma + c1
}
promedio=suma/4
print setw(5) , promedio
entrada.ignore()
entrada.getline(nombre,30)
}
entrada.close()
}
void menu()
{
print "1)Agregar datos alumno "
print "2)Listado de alumnos "
print "3)Fin de programa "
print "Elige opcion ==> "
}
int main()
{
int opcion
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1: agregar_datos_file()
break
case 2: listado_datos_file()
getch()
break
case 3: print " Fin del programa "
getch()
break
default: print "Error en opcion "
break
}
}
while(opcion !=3)
}
fin


Codificación en C++


#include <iomanip.h>
#include <conio.h>
#include <fstream.h>
#include <stdio.h>
#include <string.h>
void agregar_datos_file()
{
ofstream salida;
salida.open("C://Datos//grupo.txt",ios::app);
int j,calf;
char name[30],sigue;
int calif;
do
{
cout<<" Nombre = ? ";
gets(name);
salida<<name<<endl;
for(j=1;j<=4;j++)
{
cout<<"Calificacion "<<j<<" : ";
cin>>calf;
salida<<calf<<endl;
}
cout<<"\n\nDeseas Registrar otro alumno s/n ? ";
cin>>sigue;
}
while(sigue=='s' || sigue=='S');
salida.close();
}
void listado_datos_file()
{
int i,suma=0,promedio;
ifstream entrada;
entrada.open("C://Datos//grupo.txt");
char nombre[30];
int c1;
clrscr();
cout<<"nombre alumno c1 c2 c3 c4 Promedio "<<endl<<endl;
entrada.getline(nombre,30);
while(entrada.good())
{
cout<<setw(20)<<nombre;
suma=0;
for(i=1;i<=4;i++)
{
entrada>>c1;
cout<<setw(4)<<c1;
suma=suma + c1;
}
promedio=suma/4;
cout<<setw(5)<<promedio<<endl;
entrada.ignore();
entrada.getline(nombre,30);
}
entrada.close();
}

void menu()
{
cout<<"1)Agregar datos alumno\n"<<endl;
cout<<"2)Listado de alumnos\n "<<endl;
cout<<"3)Fin de programa\n"<<endl;
cout<<"Elige opcion ==> ";
}


int main()
{
int opcion;
do
{
clrscr();
menu();
cin>>opcion;
switch(opcion)
{
case 1: agregar_datos_file();
break;
case 2: listado_datos_file();
getch();
break;
case 3: cout<<"\n\nFin del programa \n\n";
getch();
break;
default: cout<<"Error en opcion ";
break;
}
}
while(opcion !=3);
getch();
return 0;
}


Tarea 2 Unidad 3


Tarea 2 Unidad 3


Cuestionario.

1 ¿se le conoce como transmitido por valor a?
R= cuando se trasmite un valor a una función como el argumento trasmitido.


2 ¿Que debe proporcionar una función llamada?
R= - El tipo de datos del valor devuelto - El valor real que se devuelve


3 ¿Que debe de especificar una función que devuelve datos?
R= El tipo de datos del valor que se devolverá


4 ¿Qué debe de llevar la función que llama (receptor)?
R= Ser alertada del tipo de valor a esperar, Usar de manera apropiada el valor devuelto.


5 ¿Dar un ejemplo de cómo debe ir para alertar a una función que llama?
R= int encontrarMax(int, int)


6 ¿Cual es el Propósito de declarar variables?
R= Es alertar a la computadora de la cantidad de almacenamiento interno reservado para los datos.


7 ¿En qué consiste en llamar a una función?
R= En colocar valores de argumentos en una región de memoria reservada a la que la función tiene acceso.


8 ¿Qué permite las funciones inline?
R= Agrupar las líneas respectivas de código en forma directa en el programa siempre que se llame a una función.


9 ¿Cuál es la ventaja de utilizar una función inline?
R= Es que aumenta la velocidad de ejecución.


10 ¿A que se le conoce como transmisión por valor?
R= a una función que llamada recibe valores de la función que la llama, almacena y manipula los valores transmitidos y devuelve en forma directa cuando mucho un valor único.


11 ¿A que se le conoce como transmisión por referencia?
R= A una transmisión de direcciones.


12 ¿Cómo se declara en C++ un parámetro de referencia?
R= tipo-de-dato & nombre-de-referencia


13 ¿De un Ejemplo de declaración de referencia?
R= doublé& num1;


14 ¿Qué significa en C++ ‘&’?
R= Significa la ´´dirección de´´


15 ¿Para la línea de encabezado de un prototipo de función apropiado es?
R= void valnuevo (double&, double&);


16 ¿Cuales son las precauciones al usar argumentos de referencia
-No constantes -- solo variables-Es que una llamada a función en si no da indicio de que la función llamada usara parámetros de referencia

17 ¿La transmisión de dirección se conoce como función de?R- Transmisión por referencia
18 ¿Que permite llamar a una función y transmitir argumentos por valor?R- Que se escriban como entidades independientes que puedan usar cualquier nombre de variable sin preocuparse que otras funciones usen el mismo nombre.

19 ¿Que ejecuta el prototipo convertir_temp()?R-Alerta al compilador del tipo de almacenamiento necesario para el valor devuelto

20 ¿Que es lo que hay que proporcionar para usar un valor devuelto?R- Una variable para almacenar el valor o usar el valor en forma directa en una expresión.

Problemas:
Problema 1.



#include <iostream.h>
#include <conio.h>
#include <math.h>
void cambio(int dolares,int cien=100,int cincuenta=50,int veinte=20,int diez=10,int cinco=5,int uno=1)
{
float conv_dls;
switch(dolares)
{
case 100:
conv_dls=cien/11.00;
cout<<cien<<" en dolares es: "<<conv_dls<<" dll";
break;
case 50:
conv_dls=cincuenta/11.00;
cout<<cincuenta<<" en dolares es: "<<conv_dls<<" dll";
break;
case 20:
conv_dls=veinte/11.00;
cout<<veinte<<" en dolares es: "<<conv_dls<<" dll";
break;
case 10:
conv_dls=diez/11.00;
cout<<diez<<" en dolares es: "<<conv_dls<<" dll";
break;
case 5:
conv_dls=cinco/11.00;
cout<<cinco<<" en dolares es: "<<conv_dls<<" dll";
break;
case 1:
conv_dls=uno/11.00;
cout<<uno<<" en dolares es: "<<conv_dls<<" dll";
break;
default:
cout<<"otra cantidad?"<<endl;
getch();
return ;
}
}
int main()
{
int dolares;
cout<<"100, 50, 20, 10, 5, 1 "<<endl;
cout<<"cantidad de convertir de pesos a dolores"<<endl;
cin>>dolares;
cambio(dolares);
getch();
}






Problema 2.
#include <iostream.h>
#include <conio.h>
#include <math.h>
void tiempo(int segundos)
{
int hora;
int min;
int seg;
if(segundos<=60)
{
cout<<segundos<<" segundos"<<endl;
}
else
{
if(segundos>=60)
{
min=segundos/60;
cout<<<min<<" minutos"<<endl;
}
else
{
if(min>=60)
{
hora=min/60;
cout<<hora<<endl;
}
}
}
getch();
return ;
}

int main()
{
int hora, min, seg, segundos;
cout<<"cantidad de segundos=? ";
cin>>segundos;
tiempo(segundos);
getch();
}





Problema 3.

#include <iostream.h>
#include <conio.h>
#include <math.h>
void cargaC(float E,float A, float L, float r)
{
float carga;
carga=pow(3.1416,2)*E*A/pow((L/r),2);
cout<<"La carga critica: "<<carga<<endl;
getch();
return ;
}
int main()
{
float E,A,L,r;
cout<<"introduce la elastricidad del material ";
cin>>E;
cout<<"introduce el area de corte transversal ";
cin>>A;
cout<<"introduce el largo de la columna ";
cin>>L;
cout<<"introduce el radio del giro ";
cin>>r;
cargaC(E,A,L,r);
}










Problema 4.

#include <iostream.h>
#include <conio.h>
#include <math.h>
void cargaC(float E,float A, float L, float r)
{
float carga;
carga=pow(3.1416,2)*E*A/pow((L/r),2);
cout<<endl<<endl;
cout<<"La carga critica es"<<carga<<endl;
cout<<"\n"<<endl;
getch();
return ;
}
int main()
{
int i, n, j;
float E,A,L,r;
cout<<"Numero de cargas criticas a calcular";
cin>>n;
cout<<"\n"<<endl;
for(i=0;i<n;i++)
{
cout<<"introduce la elastricidad del material";
cin>>E;
cout<<"introduce el area de corte transversal";
cin>>A;
cout<<"introduce el largo de la columna ";
cin>>L;
cout<<"introduce el radio del giro";
cin>>r;
cargaC(E,A,L,r);
}
}






Problema 5.
#include <iostream.h>
#include <conio.h>

void entero(int n)
{
cout<<"El valor entero"<<n<<endl;
getch();
return ;
}

int main()
{
int n;
cout<<"inserte valor";
cin>>n;
entero(n);
}









Problema 6.

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

void entero(int n)
{
cout<<"valor entero"<<n<<endl;
getch();
return ;
}

int main()
{
int i, m;float n;
cout<<"Numero";
cin>>m;
for(i=0;i<m;i++)
{
cout<<"inserte valor=? ";
cin>>n;
entero(n);
}
}


Tarea 3 Unidad 3


Tarea 3 Unidad 3

1- ¿Cuál es la primera preocupación al usar argumentos de referencia?
R=Que los argumentos de referencia deben ser variables


2- ¿Cuáles son las tareas que son responsabilidad primaria de un programa?
R= Obtener las entradas del problema, calcular el resultado deseado y reportar los resultados del cálculo.


3- ¿Cuál es el algoritmo que se usa de referencia para resolver problemas :
1. obtener la entrada de problemas
2. calcular el resultado deseado
3. reportar los resultados del cálculo.



4- ¿Para que se requiere la generación de números aleatorios?
R= para generar una serie de números cuyo orden no pueda predecirse para las simulaciones de programas


5- ¿Para que se utiliza en rand ()?
R= Para producir una serie de números aleatorios



6- ¿Cual es una ventaja distintiva en c++?
R= Llamar a una función y transmitir argumentos por valor.



7- ¿Para que se usa el algoritmo de intercambio en tres pasos?
R= para intercambiar valores en dos variables


8- ¿Cuáles son los tres pasos del algoritmo de intercambio?
1. guardar el valor del primer parámetro en una ubicación temporal
2. almacenar el valor segundo parámetro en la primera variable
3. almacenar el valor temporal en el segundo parámetro.



9- ¿De qué manera puede tratarse el algoritmo para resolver problemas?
R= En forma independiente como una función, como una especie de mini programa.


10- ¿Cuál es la característica fundamental de los parámetros de referencia?
R= Tan solo proporciona la capacidad para que una función llamada y una que llama tenga acceso a la misma área de almacenamiento usando nombres diferentes.



11- ¿Qué es lo que se debe atender al intercambiar datos?
R= El emisor y el receptor del intercambio de datos


12- ¿a que es igual el llamar a una función y transmitir una dirección como argumento que aceptar como parámetro de referencia?
R= Es igual que llamar a una función y transmitir un valor.


13- ¿Cuál es la segunda precaución al usar argumentos de referencia?
R= Es que una llamada de función en si no da indicio de que la función llamada usara parámetros de referencia.


14- ¿Cual es una opción por omisión en c++?
R= Hacer transmisión por valor en lugar de por referencia


15- ¿Cuál es la sintaxis para declarar un parámetro de referencia?
R= Tipo-de-datos nombre-de-referencia


16- ¿Haga un ejemplo de declaración de referencia?
R= doublé& num1;


17- ¿A qué se refiere el usar el símbolo ampersand?
R= Al “la dirección del” tipo de datos precedentes



18- ¿a que se le conoce como aplicación para el usuario?
R= Al programa controlador dedicado.




19- ¿Cómo se define la rutina randomize en c++?
R=Usando la función srand ()


20- ¿Qué es el escalamiento?
R= Es el método para ajustar los números aleatorios producidos por un generador de números aleatorios para que residan dentro de dichos rangos




Problemas

Problema 6.3:


pseudocodigo
inicio
int encontrarMax(int, int)
int main()
{
int primernum, segundonum, max
print "Introduzca el primer numero: "
read primernum
print "Introduzca el segundo numero: "
read segundonum
max=encontrarMax(primernum, segundonum)
print "El maximo de los dos numeros es: " , max
print "EL valor almacenado en max es: " , max
}
int encontrarMax(int x, int y)
{
int numMax
if(x>=y)
{
numMax=x
}
else
{
numMax=y
}
return numMax
}


Codificación en C++


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

int encontrarMax(int, int)

int main ()
{
int primernum, segundonum, max;
cout<<"Introduzca el primer numero: ";
cin>> primernum;
cout<<"Introduzca el segundo numero: ";
cin>> segundonum;
max=encontrarMax(primernum, segundonum);
cout<< "El maximo de los dos numeros es: "<<max<<endl;
cout<< "EL valor almacenado en max es: "<< max<<endl;
}
int encontrarMax(int x, int y)
{
int numMax;
if(x>=y)
{
numMax=x;
}
else
{
numMax=y;
}
return numMax
}




Problema2 6.4:



pseudocodigo
inicio
void calcradioarea(real r , real a)
{
print "el radio es: " , r
print "el area es: " , a
}
int main()
{
real r, a,c
print "introduce la circuferencia del circulo: "
read c
r=c/(2*3.1416)
a=(3.1416)*pow(r,2)
calcradioarea(r , a)
}



Problema 5 6.4:
pseudocodigo
inicio
void encontrarDistancia(int d)
{
print "La distancia entre los dos puntos es: " , d
}
int main()
{
int x1, y1, x2, y2, d
print "Introdusca las coordenadas del primer punto: "
read x1 , y1
print "Introdusca las coordenadas del segundo punto: "
read x2 , y2


d=sqrt (pow (x2-x1,2) + pow (y2-y1,2) )
encontrarDistancia(d)
}

Tarea 4 Unidad 3

Tarea 4 Unidad 3

Cuestionario Manejo de archivos
1. ¿Como se llama los elementos individuales de los archivos?
- Datos o campos.


2. ¿Que es un Registro?
- Es el conjunto completo de datos relacionados pertenecientes a una entrada



3. Da unos ejemplos de archivos en términos computacionales.
- Diskettes, discos duros, CD´s, ZIP drives, flash drives, memory sticks, etc.


4. ¿Que es y da un ejemplo de Una base de datos?
- Es una colección de archivos relacionados y un Ejemplo es Profesores, alumnos y materias están correlacionados.



5. ¿Cuales son unas de esas áreas ya mencionadas?

- Una de estas áreas es una estructura que controla el archivo (alias del archivo), de esta forma cuando se solicita una operación del archivo, se recibe una respuesta que informa el resultado mediante un apuntador.


6. ¿Qué requiere Cada archivo abierto?
- Cada archivo abierto requiere un alias para poder realizar operaciones.


7. ¿Que información contiene La estructura del archivo?
- La estructura del archivo contiene información del archivo que se está usando, así como el tamaño actual y la localización de los buffers de datos.



8. ¿Relación entre la memoria principal, el microprocesador y dispositivos de almacenamiento secundario?
- Existe una estrecha relación entre la memoria principal, el microprocesador y los dispositivos de almacenamiento secundario ya que el procesamiento que realiza una computadora es tarea absoluta del microprocesador en conjunción con la memoria principal; es decir, los dispositivos de almacenamiento secundario (diskettes, discos duros, CDs, flash drives, etc.) no procesan datos, sólo los almacenan.


9. ¿Qué es datos en c++?
- Básicamente se refieren a los testimonios individuales relacionados
Con hechos, ya sean características de ciertos objetos de estudio o
Condiciones particulares de situaciones dadas.


10. ¿Cual es la Clasificación de archivos por tipo de acceso de acuerdo a la forma de acceder los datos de los archivos?
- éstos se clasifican en secuenciales o directos (también conocidos como de acceso directo, relativos o aleatorios).


11. ¿Qué son los archivos secuenciales o directos?

- este tipo de archivos los registros se graban en secuencia o consecutivamente y deben accesarse de ese mismo modo, es decir, conforme se van insertando nuevos registros, éstos se almacenan al final del último registro almacenado; por lo tanto, cuando se desea consultar un registro almacenado es necesario recorrer completamente el archivo leyendo cada registro y comparándolo con el que se busca.


12. ¿cual es la diferencia de los archivos secuenciales y Archivos directos?

- A diferencia de los archivos secuenciales, en los archivos directos no es necesario recorrerlo completamente para acceder un registro en particular, sino se puede colocar el apuntador interno del archivo directamente en el registro deseado, permitiendo con esto mayor rapidez de acceso.




13. ¿Que función hacen fclose() y fcloseall() al Cierre de archivos en un programa en c++?

- Si se usa fclose es necesario indicarle el alias del archivo que se desea cerrar. La función fcloseall cierra todos los archivos abiertos.


14. ¿Cual es la función en Escritura de registros usando fwrite() en un programa en c++?

- La función fwrite proporciona el mecanismo para almacenar todos los
Campos de un registro en un archivo.


15. ¿Que es y que función tiene Un buffer en un programa de c++?

- Es un área de almacenamiento temporal en memoria para el conjunto de datos leídos o escritos en el archivo.
- La función es que retienen datos en tránsito desde y hacia al archivo y tienen la finalidad de hacer más eficiente las operaciones de entrada/salida en los archivos de disco, provocando menor cantidad de accesos, los cuales son más lentos que la memoria.




16. ¿Qué son el archivo de texto y archivo binario?

- los archivo de texto Son aquellos que pueden contener cualquier clase de datos y de tal manera que son “entendibles” por la gente.
- Los archivos binarios Este tipo de archivos almacenan los datos numéricos con su representación binaria. Pueden ser archivos que contienen instrucciones en lenguaje máquina.


17. ¿En que consiste usar direcciones lógicas para archivos en lenguaje c++?

- Consiste en que el direccionamiento consiste en el espacio ocupado por los datos en el archivo (calculado en bytes) no en el renglón al que se asignó dicho registro


18. ¿Que se tiene que hacer Para poder reposicionar el apuntador de un archivo en un registro específico?

- es necesario calcular su dirección física correspondiente de acuerdo al espacio ocupado por sus registros predecesores.



19. ¿Para que se usa La función fopen () en un programa en c++?

- Se usa la función fopen para abrir un archivo, determinar el modo de apertura y establecer la vía de comunicación mediante su alias correspondiente. Además determinar el tipo de contenido del archivo (texto o binario).




20. ¿Qué función hace el la fopen si un archivo no se puede abrir en un programa en c++?- la función fopen devuelve el valor de 0 (cero), definido como NULL en stdio.h.



21. ¿Cual es la función de Lectura de registros usando fread() en un programa en c++?

- La función fread permite “cargar” todos los campos de un registro en un
Archivo, es decir, lee un registro y lo copia en la memoria RAM.




22. ¿Cuál son los puntos de referencia?

- SEEK_SET Desde el principio del archivo
- SEEK_CUR Desde la posición actual del apuntador del archivo
- SEEK_END Desde el final del archivo




23. ¿Para que se usa la función rewind () en un programa en c++?

- Se usa la función rewind para colocar el apuntador del archivo al principio de un archivo abierto sin necesidad de usar la función fseek. Basta con enviar el alias del archivo como argumento


24. ¿Para que se usa feof () en un programa en c++?

- Se usa el macro feof() (definido en stdio.h) para determinar si se ha encontrado el final de un archivo. Si se encuentra el final de un archivo, devuelve un valor diferente de cero y cero en caso contrario


25. ¿Qué función u objetivo tiene rename () en un programa en c++ y cuales son sus argumentos?
- Esta función tiene como objetivo cambiar el nombre de un archivo o subdirectorio especificado por su ruta de acceso.
- Sólo necesita dos argumentos: el nombre anterior del archivo y el nuevo nombre.


26. ¿Cual es la función remove() en un programa en c++?
- La función remove elimina definitivamente un archivo especificando su
Nombre.

Practica 12

Problema sumas
Pseudocodigo

suma() void
sumas(a int, b int ) void
main () int
{
n1,n2 int
suma()
Print "\n\n"
sumas(6,19)
Print
Print " n1 ="
read n1
Print " n2= "
read n2
Print
sumas(n1,n2)
getch()
return 0
}
suma() void
{
a,b int
Print " valor 1="
read a
Print " valor 2="
read b
Print a , "+" , b , "=" , (a+b)
}
sumas(a int ,b int) void
{
Print a , "+" , b , "=" , (a+b)
}

Codificación en C++

#include <iostream.h>
#include <conio.h>
void suma();
void sumas(int a, int b);
int main ()
{
int n1,n2;
suma();
cout<<"\n\n";
sumas(6,19);
cout<<endl<<endl;
cout<<" n1 =";
cin>>n1;
cout<<" n2= ";
cin>>n2;
cout<<endl;
sumas(n1,n2);
getch();
return 0;
}
void suma()
{
int a,b;
cout<<" valor 1=";
cin>>a;
cout<<" valor 2=";
cin>>b;
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void sumas(int a,int b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}















Problema Restas
Pseudocodigo

resta() void
resta(a int , b int ) void
main () int
{
n1,n2 int
resta()
Print "\n\n"
resta(6,19)
Print
Print " n1 ="
read n1
Print " n2= "
read n2
Print
resta(n1,n2)
getch()
return 0
}
resta() void
{
a,b int
Print " valor 1="
read a
Print " valor 2="
read b
Print a , "-" , b , "=" , (a-b)
}
resta(a int ,b int) void
{
Print a , "-" , b , "=" , (a-b)
}


Codificación en C++

#include <iostream.h>
#include <conio.h>
void resta();
void resta(int a, int b);
int main ()
{
int n1,n2;
resta();
cout<<"\n\n";
resta(6,19);
cout<<endl<<endl;
cout<<" n1 =";
cin>>n1;
cout<<" n2= ";
cin>>n2;
cout<<endl;
resta(n1,n2);
getch();
return 0;
}
void resta()
{
int a,b;
cout<<" valor 1=";
cin>>a;
cout<<" valor 2=";
cin>>b;
cout<<a<<"-"<<b<<"="<<(a-b)<<endl;
}
void resta(int a,int b)
{
cout<<a<<"-"<<b<<"="<<(a-b)<<endl;

}














Problema Multiplicación
Pseudocodigo

multiplicacion() void
multiplicacion(a int, b int) void
main () int
{
n1,n2 int
multiplicacion()
Print "\n\n"
multiplicacion(6,19)
Print
Print " 1 ="
read n1
Print " n2= "
read n2
Print
multiplicacion(n1,n2)
getch()
return 0
}
multiplicacion() void
{
a,b int
Print " valor 1="
read a
Print " valor 2="
read b
Print a , "*" , b , "=" , (a*b)
}
multiplicacion(a int ,b int) void
{
Print a , "*" , b , "=" , (a*b)
}

Codificación en C++


#include <iostream.h>

#include <conio.h>

void multiplica();
void multiplica(int a, int b);
int main ()
{
int n1,n2;
multiplica();
cout<<"\n\n";
multiplica(6,19);
cout<<endl<<endl;
cout<<" n1 =";
cin>>n1;
cout<<" n2= ";
cin>>n2;
cout<<endl;
multiplica(n1,n2);
getch();
return 0;
}
void multiplica()
{
int a,b;
cout<<" valor 1=";
cin>>a;
cout<<" valor 2=";
cin>>b;
cout<<a<<"*"<<b<<"="<<(a*b)<<endl;
}
void multiplica(int a,int b)
{
cout<<a<<"*"<<b<<"="<<(a*b)<<endl;
}







Problema Funciones
Pseudocodig´
menu() void
suma() void
resta(int,int) void
multiplica(int,int) void
sumas(a int , b int) void
main () int
{
n1,n2,opcion int
sigue char
do
{
clrscr()

Print " valor 1="
Read n1
Print " valor 2="
Read n2
Print
menu()
Read opcion
switch(opcion)
{
case 1: sumas(n1,n2)
break
case 2: resta(n1,n2)
break
case 3: multiplica(n1,n2)
break
default: Print "error en opcion "
}
Print "desea continuar s/n= "
read sigue
}
while(sigue=='s OR |sigue=='S')
getch()
return 0

}
suma() void
{
a,b int
Print "valor 1= "
read a
Print "valor 2= "
read b
Print a , "+" , b , "=" , (a+b)
}
sumas(a int , b int ) void
{
Print a , "+" , b , "=" , (a+b)
}
resta(a int , b int) void
{
Print a , "-" , b , "=" , (a-b)
}
multiplica(a int , b int) void
{
Print a , "*" , b , "=" , (a*b)
}
menu() void
{
Print "operaciones basicas"
Print "1)suma "
Print "2)restar "
Print "3)Multiplicar"
Print " Elige la opcion"
}



Codificación en C++

Pseudocodigo

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

void menu();
void suma();
void resta(int,int);
void multiplica(int,int);
void sumas(int a, int b);
int main ()
{
int n1,n2,opcion;
char sigue;
do
{
clrscr();
cout<<" valor 1=";
cin>>n1;
cout<<" valor 2=";
cin>>n2;
cout<<endl;
menu();
cin>>opcion;
switch(opcion)
{
case 1: sumas(n1,n2);
break;
case 2: resta(n1,n2);
break;
case 3: multiplica(n1,n2);
break;
default: cout<<"error en opcion "<<endl;
}
cout<<"desea continuar s/n= "<<endl;
cin>>sigue;
}
while(sigue=='s'||sigue=='S');
getch();
return 0;
}
void suma()
{
int a,b;
cout<<"valor 1= ";
cin>>a;
cout<<"valor 2= ";
cin>>b;
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void sumas(a int, b int)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void resta(a int, b int)
{
cout<<a<<"-"<<b<<"="<<(a-b)<<endl;
}
void multiplica(a int, b int)
{
cout<<a<<"*"<<b<<"="<<(a*b)<<endl;
}
void menu()
{
cout<<"operaciones basicas"<<endl;
cout<<"1)suma "<<endl;
cout<<"2)restar "<<endl;
cout<<"3)Multiplicar"<<endl;
cout<<" Elige la opcion";
}















Problema Sobrecarga de Funciones
Pseudocodigo

suma(a int,b int) void
suma(real a, real b) void
suma(real a, real b) void
main() int
{
Print "suma con valores enteros\n"
suma(10,15)
Print
Print "suma con valores flotantes\n"
suma(10.99,15.5)
Print
Print "suma con valores presicion\n"
suma(1.000008888,15.909090999)
Print
getch()
return 0
}
suma(a int, b int)
{
Print a , "+" , b , "=" , (a+b)
}
void suma(a real , b real)
{
Print a , "+" , b , "=" , (a+b)
}
void suma( a real , b real)
{
Print a , "+" , b , "=" , (a+b)
}

Codificación en C++
#include <iostream.h>

#include <conio.h>
void suma(int a, int b);
void suma(float a, float b);
void suma(double a, double b);
int main()
{
cout<<"suma con valores enteros\n";
suma(10,15);
cout<<endl<<endl;
cout<<"suma con valores flotantes\n";
suma(10.99,15.5);
cout<<endl<<endl;
cout<<"suma con valores presicion\n";
suma(1.000008888,15.909090999);
cout<<endl<<endl;
getch();
return 0;
}
void suma(int a, int b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void suma(float a, float b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void suma(double a, double b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}














Problema de Sobrecarga de Funciones 2
Pseudocodigo
suma( a int , b int) void
suma(a real, b real) void
suma(a real, b ral) void
main() int
{
n1,n2 int
x,y real
a,b real
Print "introduce dos valores enteros\n"
read n1 n2
Print "suma con valores enteros\n"
suma(n1,n2)
Print
Print "introduce dos valores Flotantes\n"
read x y
Print
Print "suma con valores flotantes\n"
suma(x,y)
Print
Print "introduce dos valores doble pesicion\n"
read a b
Print "suma con valores presicion\n"
suma(a,b)
Print
getch()
return 0
}
suma(a int , b int) void
{
Print a , "+" , b , "=" , (a+b)
}
void suma(a real, b real)
{
Print a "+" b "=" (a+b)
}
void suma(a real b real )
{
Print a , "+" , b , "=" , (a+b)
}

Codificación en C++

Pseudocodigo

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

void suma(int a, int b);
void suma(float a, float b);
void suma(double a, double b);
int main()
{
int n1,n2;
float x,y;
double a,b;
cout<<"introduce dos valores enteros\n";
cin>>n1>>n2;
cout<<"suma con valores enteros\n";
suma(n1,n2);
cout<<endl<<endl;
cout<<"introduce dos valores Flotantes\n";
cin>>x>>y;
cout<<endl<<endl;
cout<<"suma con valores flotantes\n";
suma(x,y);
cout<<endl<<endl;
cout<<"introduce dos valores doble pesicion\n";
cin>>a>>b;
cout<<endl<<endl;
cout<<"suma con valores presicion\n";
suma(a,b);
cout<<endl<<endl;
getch();
return 0;
}
void suma(int a, int b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void suma(float a, float b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}
void suma(double a, double b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}









Problema Sobrecarga de Funciones 3
Pseudocodigo


<class T> template
suma(T a, T b) void
main() void
{
n1 n2 int
x y real
a b real
Print "introduce dos valores enteros\n"
read n1 n2
Print "suma con valores enteros\n"
Print n1 , "+" , n2 , "=" , suma(n1,n2)
Print
Print "introduce dos valores Flotantes\n"
read x y
Print
Print "suma con valores flotantes\n"
Print x , "+" y , "=" , suma(x,y)
Print
Print setiosflags(ios::fixed) , setprecision(8)
Print "introduce dos valores doble pesicion\n"
read a , b
Print
Print "suma con valores presicion\n"
Print a , "+" , b , "=" , suma(a,b)
Print
getch()
}
<class T> template
T suma(T a, T b)
{
return (a+b)
}


Codificación en C++

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
template <class T>
void suma(T a,T b);
void main()
{
int n1, n2;
float x,y;
double a,b;
cout<<"introduce dos valores enteros\n";

cin>>n1>>n2;
cout<<"suma con valores enteros\n";
suma(n1,n2);
cout<<endl<<endl;
cout<<"introduce dos valores flotantes\n";
cin>>x>>y;
cout<<"suma con valores flotantes\n";
suma(x,y);
cout<<endl<<endl;
cout<<"introduce dos valores de doble presicion\n";
cin>>a>>b;
cout<<setiosflags(ios::fixed)<<setprecision(8);
cout<<"suma con valores doble presicion\n";
suma(a,b);
cout<<endl<<endl;
getch ();
}
template<class T>
void suma(T a, T b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}















Problema Funciones con platilla con punto de precisión multiplicación:
Pseudocodigo

INICIO
n1,n2 int
x,y real
a,b real
print,"introduce dos valores enteros\n"
read,n1,n2
print,"multiplicacion con valores enteros\n"
multiplica(n1,n2)
print,,
print,"introduce dos valores Flotantes\n"
read,x,y
print,,
print,"multiplicacion con valores flotantes\n"
multiplica(x,y)
print,,
print,setiosflags(ios::fixed),setprecision(8)
print,"introduce dos valores doble pesicion\n"
read,a,b
print,,
print,"multiplicacion con valores presicion\n"
multiplica(a,b)
print,,
getch
}
template <class T>
void multiplica(T a, T b)
{
Print,a,"*",b,"=",(a*b),
}
FIN



Codificación en C++


#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
template <class T>
void multiplica(T a, T b);
void main()
{
int n1,n2;
float x,y;
double a,b;
cout<<"introduce dos valores enteros\n";
cin>>n1>>n2;
cout<<"multiplicacion con valores enteros\n";
multiplica(n1,n2);
cout<<endl<<endl;
cout<<"introduce dos valores Flotantes\n";
cin>>x>>y;
cout<<endl<<endl;
cout<<"multiplicacion con valores flotantes\n";
multiplica(x,y);
cout<<endl<<endl;
cout<<setiosflags(ios::fixed)<<setprecision(8);
cout<<"introduce dos valores doble pesicion\n";
cin>>a>>b;
cout<<endl<<endl;
cout<<"multiplicacion con valores presicion\n";
multiplica(a,b);
cout<<endl<<endl;
getch();
}
template <class T>
void multiplica(T a, T b)
{
cout<<a<<"*"<<b<<"="<<(a*b)<<endl;
}









Problema Funciones con plantilla con punto de precisión resta
Pseudocodigo

INICIO
template <class T>
void resta(T a, T b);
void main()
{
n1,n2 int
x,y real
a,b real
print,"introduce dos valores enteros\n"
read,n1,n2
print,"Resta con valores enteros\n"
resta(n1,n2)
print,,
print,"introduce dos valores Flotantes\n"
read,x,y
print,,
print,"Resta con valores flotantes\n"
resta(x,y)
print,,
print,setiosflags(ios::fixed),setprecision(8)
print,"introduce dos valores doble pesicion\n"
read,a,b
print,,
print"Resta con valores presicion\n"
resta(a,b)
print,,
getch
}
template <class T>
void resta(T a, T b)
{
Print,a,"-",b,"=",(a-b),
}
FIN



Codificación en C++

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
template <class T>
void resta(T a, T b);
void main()
{
int n1,n2;
float x,y;
double a,b;
cout<<"introduce dos valores enteros\n";
cin>>n1>>n2;
cout<<"Resta con valores enteros\n";
resta(n1,n2);
cout<<endl<<endl;
cout<<"introduce dos valores Flotantes\n";
cin>>x>>y;
cout<<endl<<endl;
cout<<"Resta con valores flotantes\n";
resta(x,y);
cout<<endl<<endl;
cout<<setiosflags(ios::fixed)<<setprecision(8);
cout<<"introduce dos valores doble pesicion\n";
cin>>a>>b;
cout<<endl<<endl;
cout<<"Resta con valores presicion\n";
resta(a,b);
cout<<endl<<endl;
getch();
}
template <class T>
void resta(T a, T b)
{
cout<<a<<"-"<<b<<"="<<(a-b)<<endl;
}











Problema Funciones con plantilla punto de precisión suma
Pseudocodigo
template <class T>
void suma(T a, T b)
void main()
{
n1,n2 int
x,y real
a,b real
print ,"introduce dos valores enteros\n"
read,n1,n2
print,"suma con valores enteros\n"


suma(n1,n2)
print,,
print,"introduce dos valores Flotantes\n"
read,x,y
print,,
print,"suma con valores flotantes\n"
suma(x,y)
print,,
print,setiosflags(ios::fixed),setprecision(8)
print,"introduce dos valores doble pesicion\n"
read,a,b


print,,
print,"suma con valores presicion\n"
suma(a,b)
print,,
getch
}
template <class T>
void suma(T a, T b)
{
Print,a,"+",b,"=",(a+b),
}


FIN


Codificación en C++

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
template <class T>
void suma(T a, T b);
void main()
{
int n1,n2;
float x,y;
double a,b;
cout<<"introduce dos valores enteros\n";
cin>>n1>>n2;
cout<<"suma con valores enteros\n";
suma(n1,n2);
cout<<endl<<endl;
cout<<"introduce dos valores Flotantes\n";
cin>>x>>y;
cout<<endl<<endl;
cout<<"suma con valores flotantes\n";
suma(x,y);
cout<<endl<<endl;
cout<<setiosflags(ios::fixed)<<setprecision(8);
cout<<"introduce dos valores doble pesicion\n";
cin>>a>>b;
cout<<endl<<endl;
cout<<"suma con valores presicion\n";
suma(a,b);
cout<<endl<<endl;
getch();
}
template <class T>
void suma(T a, T b)
{
cout<<a<<"+"<<b<<"="<<(a+b)<<endl;
}














Problema Maximos
Pseudocodigo
INICIO
template <class T>
T x1, T x2, T x3,TMAXIMO
int main()
{
a,b,c int
x,y,z float
print,"introduce 3 valores enteros: "
read,a,b,c
print,"El Dato Maximo ES ",maximo(a,b,c),
print,"introduce 3 valores doble Presicion: "
read,x,y,z
print,"El Dato Maximo ES ",maximo(x,y,z),
getch
return 0
}
template <class T>
T maximo (T x1, T x2, T x3)
{
if(x1>=x&&x1>=x3)
{
return x1
}
else
{ if(x2>=x1&&x2>=x3)
{
return x2
}
else
{
return x3
}
}
}
FIN




Codificación en C++

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

template <class T>
T maximo(T x1, T x2, T x3);
int main()
{
int a,b,c;
double x,y,z;
cout<<"introduce 3 valores enteros: ";
cin>>a>>b>>c;
cout<<"El Dato Maximo ES "<<maximo(a,b,c)<<endl;
cout<<"introduce 3 valores doble Presicion: ";
cin>>x>>y>>z;
cout<<"El Dato Maximo ES "<<maximo(x,y,z)<<endl;
getch();
return 0;
}
template <class T>
T maximo (T x1, T x2, T x3)
{
if(x1>=x2&&x1>=x3)
{
return x1;
}
else
{ if(x2>=x1&&x2>=x3)
{
return x2;
}
else
{
return x3;
}
}
}















Problema Plantilla de arreglos unidimensionales


Pseudocodigo


INICIO:
template <class T>
void introduce_valores( T a[10]);
template <class T>
T suma_valores( T a[10])
template <class T>
void desplegar_valores(T a[10])
template <class T>
T promedio_valores( T a[10])
int main
{
x[10] int
suma, prom int
y[10] real
sum, promedio real
introduce_valores(x)
desplegar_valores(x)
print,"la suma de valores es : ",suma_valores(x),
print,"El Promedio de valores es : ",promedio_valores(x),
print,,
introduce_valores(y)
desplegar_valores(y;
print,"la suma de valores es : ",suma_valores(y),
print,"El Promedio de valores es : ",promedio_valores(y),
getch()
return 0
}

template <class T>
void introduce_valores( T a[10])
{
int i
for(i=0;i<10;i++)
{
Print,"valores[",(i+1),"]:"
Read ,a[i]
}
}template <class T>
T suma_valores(T a[10])
{
int i,s=0
for(i=0 to 10 setp i+1)
{
s=s+a[i]
}
return s
}
template <class T>
void desplegar_valores(T a[10])
{
I int
Print ,"listado de valores ",
for(i=0 to 10 step i+1)
{
Print, a[i],"\t"
}
Print,
{
template <class T>
T promedio_valores(T a[10])
{
T s=suma_valores(a)
return s/10
}
FIN




Codificación en C++


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


template <class T>
void introduce_valores( T a[10]);
template <class T>
T suma_valores( T a[10]);
template <class T>
void desplegar_valores(T a[10]);
template <class T>
T promedio_valores( T a[10]);
int main()
{
int x[10];
int suma, prom;
float y[10];
float sum, promedio;
introduce_valores(x);
desplegar_valores(x);
cout<<"la suma de valores es : "<<suma_valores(x)<<endl;
cout<<"El Promedio de valores es : "<<promedio_valores(x)<<endl;
cout<<endl<<endl;
introduce_valores(y);
desplegar_valores(y);
cout<<"la suma de valores es : "<<suma_valores(y)<<endl;
cout<<"El Promedio de valores es : "<<promedio_valores(y)<<endl;
getch();
return 0;
}
template <class T>
void introduce_valores( T a[10])
{
int i;
for(i=0;i<10;i++)
{
cout<<"valores["<<(i+1)<<"]:";
cin>>a[i];
}
}
template <class T>
T suma_valores(T a[10])
{
int i,s=0;
for(i=0;i<10;i++)
{
s=s+a[i];
}
return s;
}
template <class T>
void desplegar_valores(T a[10])
{
int i;
cout<<"listado de valores "<<endl;
for(i=0;i<10;i++)
{
cout<<a[i]<<"\t";
}
cout<<endl;
}
template <class T>
T promedio_valores(T a[10])
{
T s=suma_valores(a);
return s/10;
}










Problema. 13

registro empleado
{
nombre[30] char
horas int
tarifapago real
}
emp[10] empleado
funcion void leerdatosempleado(int n)
{
i int
for(i=0 to n-1 step i=i+1)
{
Print "Numero de Empleado = ?"
read emp[i].id
Print "Nombre Empleado= ?"
read emp[i].nombre
Print "Horas Trabajadas= ?"
read emp[i].horas
Print "Paga por Hora= ? "
read emp[i].tarifapago
}
}
final funcion
funcion void desplegardatosempleado(int n)
{
i int
for(i=0 to n step i++)
{
Print "\nNumero de empleado: "
Read emp[i].id
cin.ignore()
Print "nombre del empleado: "
cin.getline(emp[i].nombre,30,'\n')
Print "horas trabajada: "
Read emp[i].horas
Print "tarifa de pago: "
Read emp[i].tarifapago;
}
}
funcion void desplegarDatosEmpleado (int n)
{
i int
Print "No empleado nombre horas trabajadas pago por hora "
Print "\n";
for(i=0 to n step i++)
{
Print emp[i].id , setw(17) , emp[i].nombre , setw(10) , emp[i].horas , setw(20) , emp[i].tarifapago
}
}


Codificación en C++


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

struct empleado
{
int id;
char nombre[30];
int horas;
float tarifapago;
};
empleado emp[10];

void leerDatosEmpleado(int n);
void desplegarDatosEmpleado(int n);
int main()
{
int x;
cout<<"cuantos empleados: ";
cin>>x;
leerDatosEmpleado (x);
desplegarDatosEmpleado (x);
getch ();
return 0;
}
void leerDatosEmpleado (int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"\nNumero de empleado: ";
cin>>emp[i].id;
cin.ignore();
cout<<"nombre del empleado: ";
cin.getline(emp[i].nombre,30,'\n');
cout<<"horas trabajada: ";
cin>>emp[i].horas;
cout<<"tarifa de pago: ";
cin>>emp[i].tarifapago;
}
}

void desplegarDatosEmpleado (int n)
{
int i;
cout<<"No empleado nombre horas trabajadas pago por hora ";
cout<<"\n";
for(i=0;i<n;i++)
{
cout<<emp[i].id<<setw(17)<<emp[i].nombre<<setw(10)<<emp[i].horas<<setw(20)<<emp[i].tarifapago<<endl;
} }





















Problema 14.
Pseudocodigo.


registro empleado mas total de pago


{
id int
nombre [] char
tarifapago real
}
emp[10] empleado
incio funcion void leerDatosEmpledo (int n)
{
i int
for(i=0 to n-1 step i=i+1)
{
print"numero de empleado "
read emp[i].id
print "nombre empleado2
read emp[i]. nombre
print"horas trabajadas : "
read emp[i].horas
print "pago por hora: "
read emp[i].tarifapago
}
}
final funcion leerDatosEmpleado

fucion void desplegarDatosEmpleado (int n)
{
i int
pago real
for (i=0 to n-1 step i=i+1)
{
pago=emp[i].horas*emp[i].tarifapago
print(emp[i].id,"",emp[i].nombre,""emp[i].horas,""emp[i],pago,"")
}
}
final funcion deplegarDatosEmpleado
inicio programa
x int
print"cuanto empleados: "
read x
leerDatosEmpleado (x)
desplegarDatosEmpleado


Problema.
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

struct empleado
{
int id;
char nombre[30];
int horas;
float tarifapago;
};
empleado emp[10];
void leerDatosEmpleado(int n);
void desplegarDatosEmpleado(int n);
int main()
{
int x;
cout<<"cuantos empleados: ";
cin>>x;
leerDatosEmpleado (x);
desplegarDatosEmpleado (x);
getch ();
return 0;
}
void leerDatosEmpleado (int n)
{
int i;
for(i=0;i<n;i++)
{
cout<<"\nNumero de empleado: ";
cin>>emp[i].id;
cin.ignore();
cout<<"nombre del empleado: ";
cin.getline(emp[i].nombre,30,'\n');
cout<<"horas trabajada: ";
cin>>emp[i].horas;
cout<<"tarifa de pago: ";
cin>>emp[i].tarifapago;
}
}
void desplegarDatosEmpleado (int n)
{
int i;
float pago;
cout<<"No empleado nombre horas trabajadas pago por hora pago total";
cout<<"\n";
for(i=0;i<n;i++)
{
pago=emp[i].horas*emp[i].tarifapago;
cout<<emp[i].id<<setw(17)<<emp[i].nombre<<setw(10)<<emp[i].horas<<setw(20)<<emp[i].tarifapago<<"\t"<<"\t"<<pago<<setw(10)<<endl;
}
}











Problema 15

Pseudocodigo
Registro alumno
{
nocontrol[8] char
nombre[30] char
calf[4] int
}
a[10] alumno
funcion void leerDatosAlumno (int n);
funcion void desplegarDatosAlumno(int n);
{
x int
Print "numero de alumnos a registrar: "
Read x
leerDatosAlumno(x)
desplegarDatosAlumno (x)
}
funcion void leerDatosAlumno (int n)
{
i, j int
for(i=0 to n step i++)
{
cin.ignore()
Print "numero de control: "
cin.getline(a[i].nocontrol,8,'\n')
Print "nombre alumno: "
cin.getline(a[i].nombre,30,'\n')
for(j=0 to 4 step j++)
{
Print "calificacion " , (j+1) , ": "
Read a[i].calf[j]
}
}
}
fin de la funcion void desplegarDatosAlumno(int n)
{
i, j int
Print "No control nombre c1 c2 c3 c4"
for(i=0 to n step i++)
{
Print a[i].nocontrol , setw(15) , " " , a[i].nombre , setw(7)
for(j=0 to 4 step j++)
{
Print setw(5) , a[i].calf[j]
}
Print
}
}


Codificación en C++

#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
#include <stdlib.h>
#include <stdio.h>

struct alumno
{
char nocontrol[8];
char nombre[30];
int calf[4];
};
alumno a[10];
void leerDatosAlumno (int n);
void desplegarDatosAlumno(int n);
int main ()
{
int x;
cout<<"numero de alumnos a registrar: ";
cin>>x;
leerDatosAlumno(x);
desplegarDatosAlumno (x);
getch ();
return 0;
}
void leerDatosAlumno (int n)
{
int i, j;
for(i=0;i<n;i++)
{
cin.ignore();
cout<<"numero de control: "<<endl;
cin.getline(a[i].nocontrol,8,'\n');
cout<<"nombre alumno: ";
cin.getline(a[i].nombre,30,'\n');
for(j=0;j<4;j++)
{
cout<<"calificacion "<<(j+1)<<": ";
cin>>a[i].calf[j];
}
}
}
void desplegarDatosAlumno(int n)
{
int i, j;
cout<<"No control nombre c1 c2 c3 c4" <<endl;
for(i=0;i<n;i++)
{
cout<<a[i].nocontrol<<setw(15)<<" "<<a[i].nombre<<setw(7);
for(j=0;j<4;j++)
{
cout<<setw(5)<<a[i].calf[j];
}
cout<<endl<<endl;
}
}














Problema 16

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

struct alumno
{
char noControl[8];
char nombre[30];
int calf[4];
};
alumno a[10];
void leerdatosalumno(int n);
void desplegardatosalumno(int n);
int main()
{
int x;
cout<<"Numero de alumnos a registrar: ";
cin>>x;
leerdatosalumno(x);
desplegardatosalumno(x);
getch();
return 0;
}
void leerdatosalumno(int n)
{
int i, j;
for(i=0;i<n;i++)
{
cin.ignore();
cout<<"Numero de control: ";
cin.getline(a[i].noControl,8,'\n');
cin.ignore();
cout<<"Nombre del Alumno: ";
gets(a[i].nombre);
for(j=0;j<4;j++)
{
cout<<"Calificacion"<<(j+1)<<": ";
cin>>a[i].calf[j];
}
}
}
void desplegardatosalumno(int n)
{
int i, j, suma;
float promedio;
cout<<"No control Nombre c1 c2 c3 c4 Promedio "<<endl;
for(i=0;i<n;i++)
{
cout<<a[i].noControl<<""<<setw(15)<<a[i].nombre<<"\t\t";
for(j=0;j<4;j++)
{
suma=suma+a[i].calf[j];
promedio=suma/4;
cout<<setw(3)<<a[i].calf[j];
}
cout<<"\t"<<promedio;
cout<<endl<<endl;
}
}