Practica 13
Problema 1
Pseudocodigo:
struct producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE *alias
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;
}
lunes, 17 de diciembre de 2012
Practica 13
Problema 1
Pseudocodigo:
struct producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE *alias
inicio 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\\PRODUCTO.SEC","wb")
print "\n\n\n\rNumero de producto: "; cin >> 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: "
read 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 >>>"
}
fin funcion void ALTA_SECUENCIAL
inicio funcion void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
print "\n\rCONSULTA 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: "
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 CONSULTA_SECUENCIAL
inicio funcion void LISTADO_SECUENCIAL(void)
{
clrscr()
print "\n\rLISTADO DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
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 >>>"
}
fin funcion void LISTADO_SECUENCIAL
inicio funcion int menu()
{
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)Baja Logica de productos"
print "\n6)Baja Fisica de productos"
print "\n7)Salida Programa"
print "\n\nSelecciona opcion = ? "
read opcion
return opcion
}
fin funcion int menu
inicio 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\rNo existe el archivo !!!"
print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
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\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 : "
read Registro.cantidad
print "\n\rPrecio : "
read 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 >>>"
}
fin funcion void MODIFICACION_SECUENCIAL
inicio 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: "
read no_prod
fread(&Registro,sizeof(Registro),1,alias)
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
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' and 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 >>>"
}
fin funcion void BAJA_LOGICA_SECUENCIAL
inicio 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 funcion void BAJA_FISICA_SECUENCIAL
inicio funcion principal
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 : BAJA_LOGICA_SECUENCIAL()
break
case 6: BAJA_FISICA_SECUENCIAL()
break
case 7: print "\n\nFinal programa "
break
default: print "\nError en opcion"
}
}
while(opc !=7)
fin
Lenguaje C++
Problema 2
Pseudocodigo:
inicio funcion void salida_datos_file(int n)
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt")
i int
name[30] char
for(i=1 to n step i=i+1)
{
print "nombre ",i,"= "
gets(name)
salida,name
}
salida.close()
}
fin funcion void salida_datos_file
inicio funcion void agregar_datos_file()
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt",ios::app)
i=1 int
name[30],sigue char
do
{
print "nombre ",i,"= "
gets(name)
salida,name
print "\nDeseas continuar s/n "
read sigue
}
while(sigue=='s' or sigue=='S')
salida.close()
}
fin funcion void agregar_datos_file
inicio funcion void entrada_datos_file()
{
ifstream entrada
entrada.open("C:\\Datos\\calificaciones.txt")
name[30] char
print "\nListado de nombre \n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print ,name
}
entrada.close()
}
fin funcion void entrada_datos_file
inicio funcion void almacena_calif(int n)
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt")
r,c,calif int
for(r=0 to <n r=r+1)
{
print "introduce calificaciones del estudiante ",(r+1)
for(c=0 to <6 step c=c+1)
{
print "calificacion ",(c+1),"= "
read calif
salida calif," "
}
salida, "\n"
}
salida.close()
}
fin funcion void entrada_datos_file
inicio funcion void leer_archivo_calif(int a[20][6],int promedio[20],int n)
{
ifstream entrada
entrada.open("C:\\Datos\\calificaciones.txt")
int r,c,suma
for(r=0 to <n step r=r+1)
{
suma=0
for(c=0 to <6 step c=c+1)
{
entrada a[r][c]
print a[r][c],"\t"
suma=suma+a[r][c]
}
promedio[r]=suma/6
print promedio[r]
}
entrada.close()
}
fin funcion void entrada_datos_file
inicio funcion void menu()
{
print " Menu de opciones \n"
print "\n1)agregar nombre de alumnos "
print "\n2)Listado de nombre de alumnos "
print "\n3)agregar calificaciones de alumnos "
print "\n4)Listado de calificaciones"
print "\n5)Fin de programa\n"
print "Seleccione opcion --->"
}
fin funcion void menu
inicio programa
n,opcion int
c[20][6],p[20] int
print "cantidad de alumnos "
read n
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1:salida_datos_file(n)
break
case 2:entrada_datos_file()
break
case 3:almacena_calif(n)
break
case 4:
print "listado de calificaciones alumnos\n\n"
leer_archivo_calif(c, p, n)
break
case 5: print "\n\n FIN PROGRAMA\n "
break
default: print "error en opcion "
}
}
while(opcion!=5)
fin
Lenguaje C++
Problema 3
Pseudocodigo:
inicio funcion void almacena_datos_archivo()
{
ofstream salida
salida.open("C:\\datos\\numeros.txt")
i,j,n,dato int
for(i=1 to 3 step i=i+1)
{
print "cantidad de datos del grupo: ",i
read n
salida,n
for(j=1 to n step j=j+1)
{
print "dato ",j," grupo ",i,": "
read dato
salida,dato
}
}
salida.close()
}
fin funcion void almacena_datos_archivo
inicio funcion void leer_datos_archivo()
{
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
dato,n,suma,i,j int
for(i=1 to 3;step i=i+1)
{
entrada,n
suma=0
for(j=1 to n;step j=j+1)
{
entrada,dato
suma=suma+dato
}
print "el promedio del grupo ",i," es: ",(suma/n)
}
entrada.close()
}
fin funcion void leer_datos_archivo
inicio funcion void listado_datos_archivo()
{
dato int
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
if(entrada.fail())
{
print "\nEl archivo no se abrio con exito\n por favor comprueve que el archivo existe\n"
exit(1)
}
print "listado datos archivo \n\n"
entrada,dato
while(!entrada.eof())
{
print dato," "
entrada>>dato
}
entrada.close()
}
funcion void listado_datos_archivo
inicio funcion void menu()
{
print "1)Crear el archivo de grupo de numeros \n\n"
print "2)Leer datos archivo para calcular el promedio sde cada grupo \n\n"
print "3)Listado de datos \n\n"
print "4)salida del programa \n\n"
print "seleccione opcion==> "
}
fin funcion void menu
inicio programa
opcion int
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1:almacena_datos_archivo()
break
case 2:leer_datos_archivo()
break
case 3:listado_datos_archivo()
break
case 4:print "\n\nsalida del programa "
break
default:print "error en opcion \n\n"
}
}
while(opcion !=4)
fin
Lenguaje C++
Problema 4
Pseudocodigo:
inicio funcion void agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//grupo.txt",ios::app)
j,calf int
name[30],sigue char
calif int
do
{
print "Nombre = ? "
gets(name)
salida,name
for(j=1 to 4 step j=j+1)
{
print "Calificacion ",j," : "
read calf
salida,calf
}
print "\n\nDeseas Registrar otro alumno s/n ? "
read sigue
}
while(sigue=='s' or sigue=='S')
salida.close()
}
fin funcion void agregar_datos_file
inicio funcion void listado_datos_file()
{
i,suma=0,promedio int
ifstream entrada
entrada.open("C://Datos//grupo.txt")
nombre[30] char
c1 int
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 to 4 step i=i+1)
{
entrada,c1
print setw(4),c1
suma=suma + c1
}
promedio=suma/4
print ,setw(5),promedio
entrada.ignore()
entrada.getline(nombre,30)
}
entrada.close()
}
fin funcion void listado_datos_file
inicio funcion void menu()
{
print "1)Agregar datos alumno\n"
print "2)Listado de alumnos\n "
print "3)Fin de programa\n"
print "Elige opcion ==> "
}
fin funcion void menu
inicio programa
opcion int
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1: agregar_datos_file()
break
case 2: listado_datos_file()
break
case 3: cout<<"\n\nFin del programa \n\n"
break
default: print "Error en opcion "
break
}
}
while(opcion !=3)
fin
Lenguaje C++
Problema 1
Pseudocodigo:
struct producto
{
noProd int
descrip[30] char
precio real
cantidad int
}
producto Registro
FILE *alias
inicio 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\\PRODUCTO.SEC","wb")
print "\n\n\n\rNumero de producto: "; cin >> 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: "
read 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 >>>"
}
fin funcion void ALTA_SECUENCIAL
inicio funcion void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
print "\n\rCONSULTA 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: "
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 CONSULTA_SECUENCIAL
inicio funcion void LISTADO_SECUENCIAL(void)
{
clrscr()
print "\n\rLISTADO DE REGISTROS DE PRODUCTOS"
alias=fopen("c:\\datos\\PRODUCTO.SEC","rb"); // Intenta abrir el archivo
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 >>>"
}
fin funcion void LISTADO_SECUENCIAL
inicio funcion int menu()
{
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)Baja Logica de productos"
print "\n6)Baja Fisica de productos"
print "\n7)Salida Programa"
print "\n\nSelecciona opcion = ? "
read opcion
return opcion
}
fin funcion int menu
inicio 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\rNo existe el archivo !!!"
print "\n\r<<< Oprima cualquier tecla para continuar >>>"
}
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\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 : "
read Registro.cantidad
print "\n\rPrecio : "
read 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 >>>"
}
fin funcion void MODIFICACION_SECUENCIAL
inicio 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: "
read no_prod
fread(&Registro,sizeof(Registro),1,alias)
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
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' and 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 >>>"
}
fin funcion void BAJA_LOGICA_SECUENCIAL
inicio 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 funcion void BAJA_FISICA_SECUENCIAL
inicio funcion principal
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 : BAJA_LOGICA_SECUENCIAL()
break
case 6: BAJA_FISICA_SECUENCIAL()
break
case 7: print "\n\nFinal programa "
break
default: print "\nError en opcion"
}
}
while(opc !=7)
fin
Lenguaje C++
Problema 2
Pseudocodigo:
inicio funcion void salida_datos_file(int n)
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt")
i int
name[30] char
for(i=1 to n step i=i+1)
{
print "nombre ",i,"= "
gets(name)
salida,name
}
salida.close()
}
fin funcion void salida_datos_file
inicio funcion void agregar_datos_file()
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt",ios::app)
i=1 int
name[30],sigue char
do
{
print "nombre ",i,"= "
gets(name)
salida,name
print "\nDeseas continuar s/n "
read sigue
}
while(sigue=='s' or sigue=='S')
salida.close()
}
fin funcion void agregar_datos_file
inicio funcion void entrada_datos_file()
{
ifstream entrada
entrada.open("C:\\Datos\\calificaciones.txt")
name[30] char
print "\nListado de nombre \n"
entrada.getline(name,30)
print name
while(!entrada.eof())
{
entrada.getline(name,30)
print ,name
}
entrada.close()
}
fin funcion void entrada_datos_file
inicio funcion void almacena_calif(int n)
{
ofstream salida
salida.open("C:\\Datos\\calificaciones.txt")
r,c,calif int
for(r=0 to <n r=r+1)
{
print "introduce calificaciones del estudiante ",(r+1)
for(c=0 to <6 step c=c+1)
{
print "calificacion ",(c+1),"= "
read calif
salida calif," "
}
salida, "\n"
}
salida.close()
}
fin funcion void entrada_datos_file
inicio funcion void leer_archivo_calif(int a[20][6],int promedio[20],int n)
{
ifstream entrada
entrada.open("C:\\Datos\\calificaciones.txt")
int r,c,suma
for(r=0 to <n step r=r+1)
{
suma=0
for(c=0 to <6 step c=c+1)
{
entrada a[r][c]
print a[r][c],"\t"
suma=suma+a[r][c]
}
promedio[r]=suma/6
print promedio[r]
}
entrada.close()
}
fin funcion void entrada_datos_file
inicio funcion void menu()
{
print " Menu de opciones \n"
print "\n1)agregar nombre de alumnos "
print "\n2)Listado de nombre de alumnos "
print "\n3)agregar calificaciones de alumnos "
print "\n4)Listado de calificaciones"
print "\n5)Fin de programa\n"
print "Seleccione opcion --->"
}
fin funcion void menu
inicio programa
n,opcion int
c[20][6],p[20] int
print "cantidad de alumnos "
read n
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1:salida_datos_file(n)
break
case 2:entrada_datos_file()
break
case 3:almacena_calif(n)
break
case 4:
print "listado de calificaciones alumnos\n\n"
leer_archivo_calif(c, p, n)
break
case 5: print "\n\n FIN PROGRAMA\n "
break
default: print "error en opcion "
}
}
while(opcion!=5)
fin
Lenguaje C++
Problema 3
Pseudocodigo:
inicio funcion void almacena_datos_archivo()
{
ofstream salida
salida.open("C:\\datos\\numeros.txt")
i,j,n,dato int
for(i=1 to 3 step i=i+1)
{
print "cantidad de datos del grupo: ",i
read n
salida,n
for(j=1 to n step j=j+1)
{
print "dato ",j," grupo ",i,": "
read dato
salida,dato
}
}
salida.close()
}
fin funcion void almacena_datos_archivo
inicio funcion void leer_datos_archivo()
{
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
dato,n,suma,i,j int
for(i=1 to 3;step i=i+1)
{
entrada,n
suma=0
for(j=1 to n;step j=j+1)
{
entrada,dato
suma=suma+dato
}
print "el promedio del grupo ",i," es: ",(suma/n)
}
entrada.close()
}
fin funcion void leer_datos_archivo
inicio funcion void listado_datos_archivo()
{
dato int
ifstream entrada
entrada.open("C:\\datos\\numeros.txt")
if(entrada.fail())
{
print "\nEl archivo no se abrio con exito\n por favor comprueve que el archivo existe\n"
exit(1)
}
print "listado datos archivo \n\n"
entrada,dato
while(!entrada.eof())
{
print dato," "
entrada>>dato
}
entrada.close()
}
funcion void listado_datos_archivo
inicio funcion void menu()
{
print "1)Crear el archivo de grupo de numeros \n\n"
print "2)Leer datos archivo para calcular el promedio sde cada grupo \n\n"
print "3)Listado de datos \n\n"
print "4)salida del programa \n\n"
print "seleccione opcion==> "
}
fin funcion void menu
inicio programa
opcion int
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1:almacena_datos_archivo()
break
case 2:leer_datos_archivo()
break
case 3:listado_datos_archivo()
break
case 4:print "\n\nsalida del programa "
break
default:print "error en opcion \n\n"
}
}
while(opcion !=4)
fin
Lenguaje C++
Problema 4
Pseudocodigo:
inicio funcion void agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//grupo.txt",ios::app)
j,calf int
name[30],sigue char
calif int
do
{
print "Nombre = ? "
gets(name)
salida,name
for(j=1 to 4 step j=j+1)
{
print "Calificacion ",j," : "
read calf
salida,calf
}
print "\n\nDeseas Registrar otro alumno s/n ? "
read sigue
}
while(sigue=='s' or sigue=='S')
salida.close()
}
fin funcion void agregar_datos_file
inicio funcion void listado_datos_file()
{
i,suma=0,promedio int
ifstream entrada
entrada.open("C://Datos//grupo.txt")
nombre[30] char
c1 int
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 to 4 step i=i+1)
{
entrada,c1
print setw(4),c1
suma=suma + c1
}
promedio=suma/4
print ,setw(5),promedio
entrada.ignore()
entrada.getline(nombre,30)
}
entrada.close()
}
fin funcion void listado_datos_file
inicio funcion void menu()
{
print "1)Agregar datos alumno\n"
print "2)Listado de alumnos\n "
print "3)Fin de programa\n"
print "Elige opcion ==> "
}
fin funcion void menu
inicio programa
opcion int
do
{
clrscr()
menu()
read opcion
switch(opcion)
{
case 1: agregar_datos_file()
break
case 2: listado_datos_file()
break
case 3: cout<<"\n\nFin del programa \n\n"
break
default: print "Error en opcion "
break
}
}
while(opcion !=3)
fin
Lenguaje C++
lunes, 3 de diciembre de 2012
Unidad 3
1-¿Cuales son los tres elementos que se requieren para almacenar y recuperar datos de un archivo creado en C++?
Un archivo
Un objeto en la corriente de archivos
un modo
2-Explique en que consiste los archivos:
Un archivo es un conjunto de datos que juntos se guardan bajo un nombre comun, por lo general en un disco, cinta magnetica o CD-ROM.
3-¿Cuales son los datos almacenados en un rachivo de programa?
Son el codigo del programa que se convierte en los datos de insumo al compilador de C++
4-En que consiste el nombre externo del archivo:
Es el nombre que reconoce el sistema operativo. Es el nombre externo que se despliega cuando se utiliza un comando operativo como dir o ls, que sepliega el contenido de un directorio.
5-En que consiste la corriente de archivos:
Es una ruta en un sentido para transmicion utilizada para conectar un archivo almacenado en un dispocitivo fisico, tal como un disco o CD-ROM, a un programa.
6-¿Que determina un "modo"?
Determina la direccion de los datos sobre la ruta de transmicion; esto es, si la ruta se utiliza para mover datos de un archivo a un programa o si se utiliza para mover datos de un programa a un archivo.
7-¿Para que se utiliza la corriente de archivos de insumo de datos?
Se utiliza para recibir o leer datos de un archivo.
8-¿Para que se utiliza la corriente de archivos de salida de datos?
Se utiliza para enviar o escribir datos a un archivo.
9-¿Que incluyen las funciones prescritas y definidas por sus respectivas clases ifstream u ofstream?
Tales funciones incluyen conectar una corriente a un nombre esterno de archivo (llamado cerrar un archivo); determinar si se logro una conexion exitosa, cerrar una conexion (llamada cerrr un archivo); obtener el siguiente elemento de datos al programa desde una corriente de insuno de datos; colocar un elemento nuevo de datos del programa en la corriente de salida de datos y detectar cuando se llega al final de un archivo.
10-¿Por quien es proporcionada la funcion open( )?
Por las clases ifstream u ofstream.
11-¿Que se logra mediante una funcion open( )?
Que al abrir un archivo se conecte cada objeto corriente de archivo a un nombre especifico de archivo externo.
12-Explique en que consisten las funciones de miembros y metodos:
Son las funciones tales como open( ), asociadas con objetos. Los terminos se usan de forma intercambiable, y utilizar dichas funciones requiere que el nombre de la funcion sea antecedido por un punto y un nombre de objeto.
13-¿En que consiste una variable de cadena?
Es una variable que puede contener un valor en cadenade caracteres , la cual es cualquier secuencia de cero o mas caracteres encerrados entre comillas dobles.
14-¿Cual es la diferencia entre las variables de carater y de cadena?
Es que una variable de caracter puede almacenar el valor de un solo caracter mientras que una variable de cadena puede almacenar un valor con cero o mas caracteres.
15-Explique en que consiste "NULL":
Es una constante simbolica adicional, de fin de cadena.
16-¿En que consiste el metodo close( )?
Este metodo rompe la conexion entre el nombre externo del archivo y el objeto corriente de archivo, el cual se puede utilizar entonces para otro archivo.
17-¿Cuales son las operaciones para la lectura y escritura de un archivo?
Para escribir sobre un archivo, el objeto cout se reemplaza por el objeto ofstream, declarado en el programa. Para la lectura de datos de un archivo, el objeto cin es remplazado por el fstream declarado en el programa.
18-Explique en que consiste el metodo de get( ):
Permite la instruccion de caracteres, uno a la vez, desde la corriente. Este metodo funciona de manera similar a la axtraccion de caracteres utilizando el operador >> con dos diferencias importantes: si se encuntra un caracter de linea nueva '\n', o de espacio en blanco, " ,esto se lee del mismo modo que cualquier otro caracter alfanumerico.
19-¿Que es un objeto logico de archivo?
Es una corriente que conecta un archivo de datos logicamente relacionados como archivo de datos que llega a un programa.
20-¿Que es un objeto fisico de archivo?
Es una corriente que se conecta a un dispositivo de hardware, tal como un teclado, la pantalla o la impresora.
Problema 10 pag. 470
Problema 10 a.
Problema 10 b.
Tarea 5
1-¿Cuales son los tres elementos que se requieren para almacenar y recuperar datos de un archivo creado en C++?
Un archivo
Un objeto en la corriente de archivos
un modo
2-Explique en que consiste los archivos:
Un archivo es un conjunto de datos que juntos se guardan bajo un nombre comun, por lo general en un disco, cinta magnetica o CD-ROM.
3-¿Cuales son los datos almacenados en un rachivo de programa?
Son el codigo del programa que se convierte en los datos de insumo al compilador de C++
4-En que consiste el nombre externo del archivo:
Es el nombre que reconoce el sistema operativo. Es el nombre externo que se despliega cuando se utiliza un comando operativo como dir o ls, que sepliega el contenido de un directorio.
5-En que consiste la corriente de archivos:
Es una ruta en un sentido para transmicion utilizada para conectar un archivo almacenado en un dispocitivo fisico, tal como un disco o CD-ROM, a un programa.
6-¿Que determina un "modo"?
Determina la direccion de los datos sobre la ruta de transmicion; esto es, si la ruta se utiliza para mover datos de un archivo a un programa o si se utiliza para mover datos de un programa a un archivo.
7-¿Para que se utiliza la corriente de archivos de insumo de datos?
Se utiliza para recibir o leer datos de un archivo.
8-¿Para que se utiliza la corriente de archivos de salida de datos?
Se utiliza para enviar o escribir datos a un archivo.
9-¿Que incluyen las funciones prescritas y definidas por sus respectivas clases ifstream u ofstream?
Tales funciones incluyen conectar una corriente a un nombre esterno de archivo (llamado cerrar un archivo); determinar si se logro una conexion exitosa, cerrar una conexion (llamada cerrr un archivo); obtener el siguiente elemento de datos al programa desde una corriente de insuno de datos; colocar un elemento nuevo de datos del programa en la corriente de salida de datos y detectar cuando se llega al final de un archivo.
10-¿Por quien es proporcionada la funcion open( )?
Por las clases ifstream u ofstream.
11-¿Que se logra mediante una funcion open( )?
Que al abrir un archivo se conecte cada objeto corriente de archivo a un nombre especifico de archivo externo.
12-Explique en que consisten las funciones de miembros y metodos:
Son las funciones tales como open( ), asociadas con objetos. Los terminos se usan de forma intercambiable, y utilizar dichas funciones requiere que el nombre de la funcion sea antecedido por un punto y un nombre de objeto.
13-¿En que consiste una variable de cadena?
Es una variable que puede contener un valor en cadenade caracteres , la cual es cualquier secuencia de cero o mas caracteres encerrados entre comillas dobles.
14-¿Cual es la diferencia entre las variables de carater y de cadena?
Es que una variable de caracter puede almacenar el valor de un solo caracter mientras que una variable de cadena puede almacenar un valor con cero o mas caracteres.
15-Explique en que consiste "NULL":
Es una constante simbolica adicional, de fin de cadena.
16-¿En que consiste el metodo close( )?
Este metodo rompe la conexion entre el nombre externo del archivo y el objeto corriente de archivo, el cual se puede utilizar entonces para otro archivo.
17-¿Cuales son las operaciones para la lectura y escritura de un archivo?
Para escribir sobre un archivo, el objeto cout se reemplaza por el objeto ofstream, declarado en el programa. Para la lectura de datos de un archivo, el objeto cin es remplazado por el fstream declarado en el programa.
18-Explique en que consiste el metodo de get( ):
Permite la instruccion de caracteres, uno a la vez, desde la corriente. Este metodo funciona de manera similar a la axtraccion de caracteres utilizando el operador >> con dos diferencias importantes: si se encuntra un caracter de linea nueva '\n', o de espacio en blanco, " ,esto se lee del mismo modo que cualquier otro caracter alfanumerico.
19-¿Que es un objeto logico de archivo?
Es una corriente que conecta un archivo de datos logicamente relacionados como archivo de datos que llega a un programa.
20-¿Que es un objeto fisico de archivo?
Es una corriente que se conecta a un dispositivo de hardware, tal como un teclado, la pantalla o la impresora.
Problema 10 pag. 470
Problema 10 a.
Problema 10 b.
Unidad 3
1-¿Cómo surge la necesidad de utilizar archivos?
18-¿En que consiste el programa fuente?
Tipo de earchivo de texto que almacena las instrucciones al escribir un programa en un lenguaje particular como C++, pascal, fortran, etc.
19-¿En que consiste la clasificacion de archivos por tipo de acceso?
Es la clasificacion de los tipos de archivo de acuerdo a la forma de acceder a los datos que contienen se clasifican en secuenciales o directos.
20-En que consisten los archivos secuenciales:
Como su nombre lo indica, en 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.
21-Explique en que consiste EOF (End of File):
Tipo de marca invisible que se utiliza en los archivos secuenciales, se coloca al final del los archivos y sirve para identificar donde termina el archivo.
22-En que consisten los 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.
23-¿Para que es utilizado el comando seek ?
Comando utilizado en los archivos direcos para reposisionar el apuntador, indicandole la direccion del registro que se desea.
Tarea 4
1-¿Cómo surge la necesidad de utilizar archivos?
por el inconveniente que representa que la memoria principal o memoria RAM sea el único medio de almacenamiento (usando variables, arreglos o estructuras de datos mas complejas), pues si se apaga la computadora se pierden los datos. Además, algunas aplicaciones exigen transportar los datos de una computadora a otra.
2-Explique en que consisten los dispositivos de almacenamiento secundario:
Dispocitivos que no procesan datos, solo los almacenan. En estos dispositivos sólo se reflejan los datos previamente procesados y funcionan exclusivamente como una bodega.
3-¿Cuales son los pasos nesesarios para hacerle modificaciones a los datos de un registro previamente almacenado?
Primero cargarlo en la memoria principal, es decir, localizar el registro en el
archivo y leerlo para colocar sus datos en la memoria RAM, ahí modificarlo y posteriormente grabarlo en la misma posicion en la que se encontrava.
4-¿En donde se realizan las operaciones para realizar las modificaciones a los datos de un registro previamente almacenado?
Las operaciones no se realizan directamente, sino a través de la unidad aritmética-lógica, la unidad de control y los registros del microprocesador.
5-Explique en que consisten los datos o campos:
Son los elementos individuales de los archivos.
Por ejemplo un cheque de un banco tiene los siguientes campos: Cuenta habiente, Número de cheque, Fecha, Persona a la que se le paga, Monto numérico, Monto con letra, Nota, Identificación del banco, Número de cuenta y Firma.
6-Explique en que consiste el registro:
Es el conjunto completo de datos relacionados pertenecientes a una entrada.
7-Explique en que consisten los archivos:
Es una colección de datos que tiene un nombre y se guardan en dispositivos de almacenamiento secundario, los cuales pueden ser magnéticos, ópticos, electrónicos, etc.
8-¿Que es una base de dados?
Es una coleccion de archivos relacionados, por ejemplo profesores, alumnos y materias estan correlacionados.
9-¿Cuales son los dos tipos de operaciones que tiene un archivo?
Lectura
Escritura
10-¿Por que es nesesario cerrar los archivos al terminar de utilizarlos?
Por que de esta forma se vacia la memoria cache y se aseguran, almacenan y protegen los datos.
11-¿Por que es nesesario abrir el archivo antes escribir o leer datos?
Al abrir el archivo se establece comunicación entre el programa y el sistema operativo a cerca de cómo accesarlo.
12-Explique en que consiste el "alias del archivo":
Es una estructura que controla el archivo, de esta forma cuando se solicita una operacion, del archivo, se recibe una respuesta que informa el resultado mediante un apuntador.
13-¿Que contiene 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.
14-Explique en que consisten los archivos de texto:
Son aquellos que pueden contener cualquier clase de datos y de tal manera
que son “entendibles” por la gente.
15-¿Como son almacenados los datos de un archivo de texto?
Se almacenan usando el código ASCII, en el cual cada carácter es representado por un simple byte.
16-¿Por que no se pueden realizar operaciones matematicas directamente en los archivos de texto?
En este tipo de archivos, todos sus datos se almacenan como cadenas de caracteres, es decir, los números se almacenan con su representación ASCII y no su representación numérica.
17-Explique en que consisten los archivos binarios:
Tipo de archivos que almacenan los datos numéricos con su representación binaria.
18-¿En que consiste el programa fuente?
Tipo de earchivo de texto que almacena las instrucciones al escribir un programa en un lenguaje particular como C++, pascal, fortran, etc.
19-¿En que consiste la clasificacion de archivos por tipo de acceso?
Es la clasificacion de los tipos de archivo de acuerdo a la forma de acceder a los datos que contienen se clasifican en secuenciales o directos.
20-En que consisten los archivos secuenciales:
Como su nombre lo indica, en 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.
21-Explique en que consiste EOF (End of File):
Tipo de marca invisible que se utiliza en los archivos secuenciales, se coloca al final del los archivos y sirve para identificar donde termina el archivo.
22-En que consisten los 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.
23-¿Para que es utilizado el comando seek ?
Comando utilizado en los archivos direcos para reposisionar el apuntador, indicandole la direccion del registro que se desea.
24-Explique en que consisten las direcciones fisicas:
Tipo de direcciones para los archivos, utilizada en el lenguaje C++. 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.
25-¿Cual es el encabezado que se requiere para realizar programas de manejo de archivos en lenguaje C++?
"Standard I/O” y se necesita incluirlo de la sig. forma:
#include <stdio.h>
#include <stdio.h>
Suscribirse a:
Entradas (Atom)






















