Problema 1
Inicio plantilla de la funcion void
lecturaDatos(T a[10])
i int
for (i=0 to
10 step i=i+1)
{
Print
"numeros[",I,"]="
Read a[i]
}
Fin
Inicio plantilla de la funcion void
desplegarDatos (T a[10])
i int
for (i=0 to
10 step i=i+1)
{
Print "a[",(i+1),"]
= ",a[i]
}
Fin
Inicio plantilla de la funcion T
sumaValores (T a[10])
{
i int
T suma=0
for (i=0 to
10 step i=i+1)
{
suma=suma+a[i]
}
return suma
Fin
Inicio plantilla de la funcion void
mayorValores (T a [10], T &mayor, int &pos)
mayor=a[0]
pos=0
for (int i=1 to
10 step i=i+1)
{
if (a[i]>mayor)
{
mayor=a[i]
pos=i+1
}
}
Fin
Inicio
arreglo [10]={8,9,2,3,1,10,5,7,4,6} int
pos1,pos2,may2 int
numeros[10], may1
Real
lecturaDatos(numeros)
Print "Lista de valores
flotantes\n"
desplegarDatos (numeros)
Print "\nLa suma total es
",sumaValores(numeros)
mayorValores(numeros,may1,pos1)
Print "El dato mayor es
",may1," en la posicion ",pos1
Print "\nListado de valores enteros
\n"
desplegarDatos(arreglo)
Print "\nLa suma total es
",sumaValores(arreglo)
mayorValores(arreglo,may2,pos2)
Print "El dato mayor es
",may2," en la posicion ",pos2
Fin
Inicio plantilla de la funcion void
lecturaDatos(T a[10])
i int
for (i=0 to
10 step i=i+1)
{
Print
"numeros[",I,"]="
Read a[i]
}
Fin
Inicio plantilla de la funcion void
desplegarDatos (T a[10])
i int
for (i=0 to
10 step i=i+1)
{
Print
"a[",(i+1),"] = ",a[i]
}
Fin
Inicio plantilla de la funcion T
sumaValores (T a[10])
{
i int
T suma=0
for (i=0 to
10 step i=i+1)
{
suma=suma+a[i]
}
return suma
Fin
Inicio plantilla de la funcion void
mayorValores (T a [10], T &mayor, int &pos)
mayor=a[0]
pos=0
for (int i=1 to
10 step i=i+1)
{
if (a[i]>mayor)
{
mayor=a[i]
pos=i+1
}
}
Fin
Inicio Plantilla de la funcion void
menorValores(T a[10],T &menor, int &pos)
menor=a[0]
pos=0
for(int i=1
to 10 step
i=i+1)
{
if(a[i]<menor)
{
menor=a[i]
pos=i
}
}
Fin
Inicio
enteros[10]={2,6,7,9,1,3,4,5,8,10} int
pos1=0, pos2=0 int
numeros[10],menor=0,may=0 Real
mayor=0,men=0,pmay=0,pmen=0 int
lecturaDatos(numeros)
desplegarDatos(numeros)
Print "La suma total es
",sumaValores(numeros)
Print “\n\n”
mayorValores(numeros,may,pos1)
Print "El dato mayor es
",may," en la posicion ",pos1
menorValores(numeros,menor,pos2)
Print "El dato menor es
",menor," en la posicion ",pos2
Print "\n\nListado de valores
enteros \n\n"
desplegarDatos(enteros)
Print "La suma total es
",sumaValores(enteros)
Print
“\n\n”
mayorValores(enteros,mayor,pmay)
Print "El dato mayor es
",mayor," en la posicion ",pmay
menorValores(enteros,men,pmen)
Print "El dato menor es
",men," en la posicion ",pmen
Fin
Problema 3
Inicio plantilla de la funcion void
leerDatosmatriz(T m[6][6])
r,c int
for(r=0 to
5 step r=r+1)
{
for(c=0 to
5 step c=c+1)
{
Print
"m[",r,",",c,"]:"
Read m[r][c]
}
}
m[5][5]=0
Fin
Inicio plantilla de la funcion void
desplegarDatosmatriz(T m[6][6])
R,c int
for(R=0 to
5 step R=R+1)
{
for(c=0 to
5 step c=c+1)
{
Print m[R][c],"\t"
}
Print “\n”
}
Fin
Inicio plantilla de la funcion void
sumarenglones (T m[6][6])
r,c int
T suma=0
for(r=0 to
5 step r=r+1)
{
suma=0
for(c=0 to
5 step c=c+1)
{
suma=suma+m[r][c]
}
m[r][5]=suma
}
Fin
Inicio plantilla de la funcion void
sumacolumnas( T m[6][6])
R,c int
T suma=0
for(c=0 to
5 step c=c+1)
{
suma=0
for(R=0 to
5 step R=R+1)
{
suma=suma+m[R][c]
m[5][c]=suma
}
}
Fin
Inicio plantilla de la funcion void
desplegarMatrizconsumas( T m[6][6])
R,c int
Print "\nDatos y sumas de la matriz
\n\n"
for(R=0 to
6 step R=R+1)
{
for(c=0 to
6 step c=c+1)
{
Print
m[R][c],"\t"
}
Print “\n”
}
}
Fin
Inicio plantilla de la funcion void
mayorvalores(T m[6][6],T &mayor,T &pos1,T &pos2)
mayor=m[0][0]
pos1=0
pos2=0
for(int r=0 to
5 step r=r+1)
{
for(int c=0 to
5 step c=c+1)
if(m[r][c]>mayor)
{
mayor=m[r][c]
pos1=r
pos2=c
}
}
Print "\nEl mayor es
",mayor," en la posicion
[",pos1,",",pos2,"]\n"
Fin
Inicio plantilla de la funcion void
menorvalores(T m[6][6],T &menor,T &pos1,T &pos2)
menor=m[0][0]
pos1=0
pos2=0
for(int r=0 to
5 step r=r+1)
{
for(int c=0 to
5 step c=c+1)
if(m[r][c]<menor)
{
menor=m[r][c]
pos1=r
pos2=c
}
}
Print "\nEl menor es
",menor," en la posicion
[",pos1,",",pos2,"]\n"
Fin
Inicio
matriz[6][6],mayor,menor,pos1,pos2 int
leerDatosmatriz(matriz)
desplegarDatosmatriz(matriz)
sumarenglones(matriz)
sumacolumnas(matriz)
desplegarMatrizconsumas(matriz)
mayorvalores(matriz,mayor,pos1,pos2)
menorvalores(matriz,menor,pos1,pos2)
Fin
Problema 4
struct alumno
{
char noControl[8]
char nombre[30]
int calf[4]
};
alumno a[10]
Inicio plantilla de la funcion void leerDatosAlumno(int n)
i,j int
for(i=0
to n step
i=i+1)
{
Read.ignore()
Print "\nNumero de control: "
Read.getline(a[i].noControl,8,'\n')
Read.ignore()
Print "Nombre Alumno: "
gets(a[i].nombre)
for(j=0
to 4 step
j=j+1)
{
Print "Calificacion ",(j+1),":
"
Read a[i].calf[j]
}
}
Final
Inicio plantilla de la funcion void
desplegarDatosAlumno(int n)
i,j int
Print "No Control Nombre C1 C2 C3 C4 Promedio "
for(i=0
to n step
i=i+1)
{
float suma=0.0
Print
a[i].noControl,setw(20),a[i].nombre,"\t"
for(j=0
to 4 step
j=j+1)
{
Print setw(3),a[i].calf[j]
suma=suma+a[i].calf[j]
}
Print "\t",(suma/4.0)
}
Fin
Inicio
x
int
Print "Numeros de alumnos a registrar:
"
Read x
leerDatosAlumno(x)
desplegarDatosAlumno(x)
Fin
Problema 5
struct empleado
{
Id int
nombre[30] char
horas int
tarifaPago real
};
empleado emp[10]
iniciar plantilla void leerDatosEmpleado(int
n)
iniciar plantilla void desplegarDatosEmpleado ( int n)
inicio
x int
Print "Cuantos empleados= "
Read x
leerDatosEmpleado(x)
desplegarDatosEmpleado(x)
fin
inicio
}
Iniciar la plantilla void
leerDatosEmpleado( int n)
{
I int
for(i=0 to n step i++)
{
Print
"\nNumero de empleado= "
Read emp[i].id
Read.ignore()
Print "Nombre
Empleado= "
read.getline(emp[i].nombre,30,'\n')
Print"Horas trabajadas= "
Read emp[i].horas
Print "Pago por hora= "
Read emp[i].tarifaPago
}
}
Iniciar la plantilla void desplegarDatosEmpleado( int n)
{
i int
Print "No empleado Nombre Horas Trabajadas Pago por hora \n"
for(i=0 to n step i++)
{
Printemp[i].id,setw(30),emp[i].nombre,setw(10),emp[i].horas,setw(20),emp[i].tarifaPago
}
}
Fin
Problema 6
Inicio
Iniciar la plantilla void LecturaDatos(T m[5][5])
Iniciar la plantilla void desplegarDatos(T m[5][5])
Iniciar la plantilla void sumaRenglones(T m[5][5],T sr[5])
Iniciar la plantilla void sumaColumnas(T m[5][5],T sc[5])
Iniciar la plantilla void desplegarSumaMayorRenglones(T sr[5])
Iniciar la plantilla void desplegarSumaMayorColumnas(T sc[5])
inicio
a[5][5],renglones [5],columnas[5] int
LecturaDatos(a)
desplegarDatos(a)
sumaRenglones(a,renglones)
sumaColumnas(a,columnas)
desplegarSumaMayorRenglones(renglones)
desplegarSumaMayorColumnas(columnas)
Fin
Inicio
Iniciar la plantilla void LecturaDatos(T m[5][5])
{
r,c int
for(r=0 to 5 step
r+1)
{
for(c=0to 5 step
c+1)
{
Print
"Matriz[",r,",",c,"]= "
Read m[r][c]
}
}
}
Iniciar la plantilla void desplegarDatos(T m[5][5])
{
r,c int
Print "Listado de la
matriz\n\n"
for(r=0 to 5 step
r+1)
{
for(c=0 to 5 step
c+1)
{
Print
m[r][c],"\t"
}
Print endl
}
}
Iniciar la plantilla void sumaRenglones(T m[5][5],T sr[5])
{
T suma
r,c int
for(r=0 to 5 step
r+1)
{
suma=0
for(c=0 to 5 step
c+1)
{
suma=suma+m[r][c]
}
sr[r]=suma
}
}
Iniciar la plantilla void sumaColumnas(T m[5][5], T sc[5])
{
T suma
r,c int
for(c=0 to 5 step
c+1)
{
suma=0
for(r=0 to 5 step r+1)
{
suma=suma+m[r][c]
}
sc[c]=suma
}
}
Iniciar la plantilla void desplegarSumaMayorRenglones(T sr[5])
{
I int
T mayor=sr[0]
pos=0 int
Print "Listado de suma de renglones
\n\n"
for(i=0 to 5 step
i+1)
{
Print "Renglon
",I," = ",sr[i]
if(sr[i]>mayor)
{
mayor=sr[i]
pos=i
}
}
Print "El renglon ",pos,"
Tiene el suma mayor ",mayor
}
Iniciar la plantilla void desplegarSumaMayorColumnas(T sc[5])
{
I int
T mayor=sc[0]
pos=0 int
Print "Listado de suma de
columnas\n\n"
for(i=0 to 5 step
i+1)
{
Print"Columna
",I," = ",sc[i]
if(sc[i]>mayor)
{
mayor=sc[i]
pos=i
}
}
Print "La columna ",pos,"
Tiene la suma mayor ",mayor
}
Problema 7
Iniciar la plantilla void salida_datos_file(int n)
{
ofstream salida
salida.open("nombres.txt")
I int
name[30] char
for(i=1 to n step
i+1)
{
Print "Nombre
",I," =? "
gets(name)
salida,name
}
salida.close()
}
Fin
Iniciar la plantilla void
agregar_datos_file()
{
ofstream salida
salida.open("C://Datos//nombres.txt",ios::app)
I int
name[30],sigue char
do
{
fin
Iniciar la plantilla void entrada_datos_file()
{
ifstream entrada
entrada.open("nombres.txt")
name[30] char
Print "\nListado de nombre\n"
entrada.getline(name,30)
cout,name
while(!entrada.eof())
{
entrada.getline(name,30)
cout,name
}
entrada.close()
}
Fin
Iniciar
la plantilla void almacena_calif(int n)
{
ofstream salida
salida.open("calificaciones.txt")
r,c,calf
int
for(r=0 to n step r+1)
{
Print "Introduce calificaciones del
estudiante ",(r+1)
for(c=0 to 6 step c+1)
{
Print "Calificacion
",(c+1),"=?"
Read
calf
Salida calf," "
}
Salida “\n”
}
salida.close()
}
Fin
Iniciar
la plantilla void leer_archivo_calif(int
a[20][6],int promedio[20],int n)
{
ifstream entrada
entrada.open("calificaciones.txt")
r,c,suma
int
for(r=0 to n step r+1)
{
suma=0
for(c=0 to 6 step 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
Inicio void menú()
Print "\nMenu de opciones\n "
Print"\n1)Agregar Nombres Alumnos\n
"
Print "\n2)Listado Nombres Alumnos\n
"
Print "\n3)Agregar Calificaciones
Alumnos\n "
Print "\n4)Listado de Calificaciones
Alumno\n "
Print "\n5)Fin de programa\n "
Print
"\nElige Opcion ==> "
}
Fin
inicio
n,opcion=0 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)
fin
break
case 2: entrada_datos_file()
fin
break
case 3: almacena_calif(n)
break
case 4: Print "Listado de calificaciones
Alumnos\n\n"
leer_archivo_calif(c,p,n)
Fin
break
case 5: Print"\n\n FIN PROGRAMA\n"
break
default: Print "error en opcion\n"
}
}
while(opcion!=5)
Fin
}
Problema 8
Iniciar la plantilla 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++)
{
Print "Calificacion ",j," :
"
Read
calf
Salida,calf
}
Print "\n\nDeseas Registrar otro alumno s/n
? "
Read sigue
}
while(sigue=='s' && sigue=='S')
salida.close()
}
Fin
Iniciar
la plantilla 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 ",endl
entrada.getline(nombre,30)
while(entrada.good())
{
Print setw(20),nombre
suma=0
for(i=1 to 4 step 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
Iniciar
la plantilla void menu()
{
Print "1)Agregar datos alumno\n"
PRint "2)Listado de alumnos\n "
Print "3)Fin de programa\n"
Print
"Elige opcion ==> "
}
Fin
Inicio
Opcion int
do
{
clrscr()
menu()
Read opcion
switch(opcion)
{
case 1: agregar_datos_file()
break
case 2: listado_datos_file()
Fin
break
case 3: Print
"\n\nFin del programa \n\n"
Fin
break
default: Print "Error en opcion
"
break
}
}
while(opcion !=3)
Fin
Problema 9
Inicio
struct producto
{
noProd int
descrip[30] char
precio real
cantidad int
};
producto Registro
FILE *alias
Inicio de la pantilla void ALTA_SECUENCIAL()
Inicio de la pantilla void
CONSULTA_SECUENCIAL(void)
Inicio de la pantilla void LISTADO_SECUENCIAL(void)
Inicio de la pantilla void
MODIFICACION_SECUENCIAL(void)
Inicio de la pantilla void
BAJA_LOGICA_SECUENCIAL(void)
Inicio de la pantilla void
BAJA_FISICA_SECUENCIAL(void)
int menu()
fin
Inicio
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
Inicio
de la pantilla void ALTA_SECUENCIAL()
{
no_prod int
// Variable local para el numero de producto
clrscr()
Print "\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
Print"\n\n\n\rNumero de producto:
"
Read
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)
FIN
Inicio
fread(&Registro,sizeof(Registro),1,alias)
}
PRint "\n\rDescripcion: "
Read (Registro.descrip)
Print "\n\rCantidad : "
read Registro.cantidad
Print "\n\rPrecio : "
readRegistro.precio
Registro.noProd=no_prod
fwrite(&Registro,sizeof(Registro),1,alias)
// Grabar el Registro
fclose(alias) // Cierra el archivo
Print "\n\n\n\rProducto registrado
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio de la pantilla void CONSULTA_SECUENCIAL(void)
{
no_prod int
clrscr()
Print "\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)
{
Print"\n\n\n\rNo existe el archivo
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>;
Fin
I nicio
Print "\n\n\n\rNumero de producto:
" read no_prod
// Lee el "Registro", de
tamano=sizeof(Registro) del archivo "alias"
while(!feof(alias))
{
if(Registro.noProd==no_prod)
{
Print "\n\rNo Prod Descripcion
Cantidad Precio "
Print
"\n\r----------------------------------------------------\n\n"
PrintRegistro.noProd,setw(20),Registro.descrip,setw(10),Registro.cantidad,setw(10),Registro.precio
fclose(alias)
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese registro
!!!"
fclose(alias) // Cierra el archivo
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio de la pantilla void
LISTADO_SECUENCIAL(void)
{
clrscr()
Print "\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)
{
Print "\n\n\n\rNo existe el archivo !!!"
Print "\n\r<<< Oprima
cualquier tecla para continuar >>>"
Fin
Inicio
Print "\n\rNo Prod Descripcion Cantidad Precio
"
Print "\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
{
PrintRegistro.noProd,setw(20),Registro.descrip,setw(10),Registro.cantidad,setw(10),Registro.precio
fread(&Registro,sizeof(Registro),1,alias)
}
fclose(alias); // Cierra el archivo
PRint "\n\r------------------------------------------------------------------\n\n"
Print "\n\rFin del listado
!!!"
Print "\n\r<<< Oprima
cualquier tecla para continuar >>>"
Fin
Inicio
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 opción
Fin
Inicio de la pantilla void
MODIFICACION_SECUENCIAL(void)
{
no_prod int // Variable local para el numero
de producto que desea
//modificar
clrscr()
Pritn "\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
{
Print "\n\n\n\rNo existe el archivo
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio
Print
"\n\n\n\rNumero de producto: " read
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)
{
Print "\n\rNo Prod Descripcion Cantidad Precio
\n\n"
Print "\n\r--------------------------------------------------------------\n\n"
PrintRegistro.noProd,setw(20),Registro.descrip,setw(10),Registro.cantidad,setw(10),Registro.precio
Print "\n\n\n\rAnote los nuevos
datos ..."
Print "\n\rDescripcion: " reads(Registro.descrip)
Print "\n\rCantidad : “read
Registro.cantidad
Print "\n\rPrecio : " read
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
Print "\n\n\n\rRegistro modificado
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese
registro !!!"
fclose(alias) // Cierra el archivo
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio de la pantilla void
BAJA_LOGICA_SECUENCIAL(void)
{
no_prod int // Variable local para el numero
de producto que desea
//eliminar
op char //Variable local
clrscr()
Print "\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
{
Print "\n\n\n\rNo existe el archivo
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio
PRint "\n\n\n\rNumero de producto:
" read 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)
{
PRint "\n\rNo Prod Descripcion
Cantidad Precio "
Print
"\n\r---------------------------------------------------------------\n\n"
PrintRegistro.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')
{
// 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
Print "\n\n\n\rRegistro eliminado
!!!"
}
fclose(alias) // Cierra el archivo
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio
fread(&Registro,sizeof(Registro),1,alias)
}
Print "\n\rNo se encuentra ese
registro !!!"
fclose(alias) // Cierra el archivo
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin
Inicio de la pantilla void
BAJA_FISICA_SECUENCIAL(void)
{
FILE *temporal //Declaracion local de
una variable para controlar el
// archivo temporal
clrscr()
Print "\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
{
Print "\n\n\n\rNo existe el archivo
!!!"
Print "\n\r<<< Oprima
cualquier tecla para continuar >>>"
Fin
Inicio
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
Print "\n\n\n\rArchivo compactado
!!!"
Print "\n\r<<< Oprima cualquier
tecla para continuar >>>"
Fin