Você está na página 1de 11

Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos

Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa


Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE OrdenarBurbuja
VAR Vector: TipoVector; LimiteInferior, LimiteSuperior: WORD

LimiteSuperior > LimiteInferior

Fin <--- LimiteSuperior - 1


LimiteSuperior <--- 0

Vector[ I ].CampoClave > Vector[ I + 1 ].CampoClave

I
Intercambiar
Vector[ I ], Vector[ I + 1 ]
LimiteInferior Fin

LimiteSuperior <--- I

PROCEDURE Intercambiar
VAR Entidad1, Entidad2: TipoEntidad

Auxiliar <--- Entidad2


Entidad2 <--- Entidad1
Entidad1 <--- Auxiliar

Edición Preliminar (bajo revisión) Página 1 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE OrdenarRapido
VAR Vector: TipoVector; Lim iteInferior, Lim iteSuperior: WORD

I <--- Lim iteInferior


J <--- Lim iteSuperior
X <--- Vector[ (Lim iteInferior + Lim iteSuperior) DIV 2 ]

Vector[ I ] < X

INC( I )

X < Vector[ J ]

DEC( J )

I <= J

Intercambiar
Vector[ I ], Vector[ J ]

INC( I )
DEC( J )

I>J { si I > J sale del ciclo }

Este método de Lim iteInferior < J


ordenamiento se incluye
OrdenarRapido
sólo a título informativo.
Vector, Lim iteInferior, J
Dada la complejidad
de su análisis,
no se recomienda utilizarlo
para la resolución de los I < Lim iteSuperior
ejercicios que se
OrdenarRapido
presenten en el curso, Vector, I, Lim iteSuperior
pero esto no
implica la prohibición
de su uso.
R

Edición Preliminar (bajo revisión) Página 2 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

FUNCTION BusBinVector
(Vector: TipoVector; Lim iteInferior, Lim iteSuperior: WORD; Buscado: TipoClave): WORD

Posicion <-- Lim iteInferior - 1

(Posicion < Lim iteInferior) AND (Lim iteInferior <= Lim iteSuperior)

PuntoMedio <-- (Lim iteInferior + Lim iteSuperior) DIV 2

Buscado = Vector[ PuntoMedio ].CampoClave

Buscado > Vector[ PuntoMedio ].CampoClave


Posicion <--
PuntoMedio Lim iteInferior <-- Lim iteSuperior <--
PuntoMedio + 1 PuntoMedio - 1

BusBinVector <-- Posicion

Edición Preliminar (bajo revisión) Página 3 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE BusBinArchivo
VAR Archivo: TipoArchivo; Buscado: TipoClave;
VAR Registro: TipoRegistro; VAR Posicion: TipoEntero

Lim iteInferior <-- 0


Lim iteSuperior <-- FILESIZE(Archivo) - 1
Posicion <-- -1

(Posicion < Lim iteInferior) AND (Lim iteInferior <= Lim iteSuperior)

PuntoMedio <-- (Lim iteInferior + Lim iteSuperior) DIV 2

SEEK(Archivo, PuntoMedio)

Archivo
Registro

Buscado = Registro.CampoClave

Buscado > Registro.CampoClave


Posicion <--
PuntoMedio Lim iteInferior <-- Lim iteSuperior <--
PuntoMedio + 1 PuntoMedio - 1

Edición Preliminar (bajo revisión) Página 4 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

FUNCTION BusBinRepeticionEnVector
(Vector: TipoVector; Lim iteInferior, Lim iteSuperior: WORD; Buscado: TipoClave): WORD

Posicion <-- Lim iteInferior - 1

Lim iteInferior <= Lim iteSuperior

PuntoMedio <-- (Lim iteInferior + Lim iteSuperior) DIV 2

Buscado = Vector[ PuntoMedio ].CampoClave

Posicion <--
PuntoMedio Buscado > Vector[ PuntoMedio ].CampoClave

Lim iteSuperior <-- Lim iteInferior <-- Lim iteSuperior <--


PuntoMedio - 1 PuntoMedio + 1 PuntoMedio - 1

BusBinRepeticionEnVector <-- Posicion

Edición Preliminar (bajo revisión) Página 5 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE CorteDeControlVector
VAR Vector: TipoVector; Tope: WORD; { Parámetros de salida }

I <--- 1

I <= Tope

ClaveAnt <-- Vector[ I ].CampoClave

{ Realizar tareas previas al procesamiento del bloque }

{ Procesar elementos del bloque }

INC( I )

(I > Tope) OR (ClaveAnt <> Vector[ I ].CampoClave)

{ Realizar tareas posteriores al procesamiento del bloque }

Edición Preliminar (bajo revisión) Página 6 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE CorteDeControlArchivo
VAR Archivo: TipoArchivo; { Parámetros de salida }

LeerArchivo
Archivo, Registro, FinArch

NOT FinArch

ClaveAnt <-- Registro.CampoClave

{ Realizar tareas previas al procesamiento del bloque }

{ Procesar elementos del bloque }

LeerArchivo
Archivo, Registro, FinArch

FinArch OR (ClaveAnt <> Registro.CampoClave)

{ Realizar tareas posteriores al procesamiento del bloque }

PROCEDURE CorteDeControlArchivo
VAR Archivo: TipoArchivo; VAR Registro: TipoRegistro; VAR FinArch: BOOLEAN

NOT EOF(Archivo)

Archivo
Registro FinArch <-- TRUE

FinArch <-- FALSE

Edición Preliminar (bajo revisión) Página 7 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE AparearVectores
Vec1: TipoVec1; Vec2: TipoVec2; VAR Vector: TipoVector; Tope1, Tope2: WORD

I <--- 1
J <---1
K <--- 0

(I <= Tope1) OR (J <= Tope2)

INC( K )

(J > Tope2) OR
( (I <= Tope1) AND (Vec1[ I ] <= Vec2[ J ]) )

Vector[ K ] <--- Vec1[ I ] Vector[ K ] <--- Vec2[ J ]

INC( I ) INC( J )

Edición Preliminar (bajo revisión) Página 8 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE AparearArchivos
VAR Arch1, Arch2, Archivo: TipoArchivo

LeerArchivo
Arch1, Reg1, FinArch1

LeerArchivo
Arch2, Reg2, FinArch2

(NOT FinArch1) OR (NOT FinArch2)

(FIN Arch2) OR
((NOT FinArch1) AND (Reg1 <= Reg2))

Archivo Archivo
Reg1 Reg2

LeerArchivo LeerArchivo
Arch1, Reg1, FinArch1 Arch2, Reg2, FinArch2

Edición Preliminar (bajo revisión) Página 9 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE CompactarArchivo
VAR Archivo: TipoArchivo

PosLectura <-- 0
PosEscritura <-- 0

NOT EOF(Archivo )

Archivo
Registro

INC(PosLectura)

Registro.CampoClave <> 0

SEEK(Archivo, PosEscritura)

Archivo
Registro

INC(PosEscritura)

SEEK(Archivo, PosLectura)

SEEK(Archivo, PosEscritura)

TRUNCATE(Archivo)

Edición Preliminar (bajo revisión) Página 10 de 11


Universidad Tecnológica Nacional Algoritmos y Estructuras de Datos
Facultad Regional Buenos Aires Proyecto CoViE – Comunidad Virtual Educativa
Ingeniería en Sistemas de Información Subprogramas para operar con Archivos y Vectores

PROCEDURE CompactarArchMejorado
VAR Archivo: TipoArchivo

PosLectura <-- 0
PosEscritura <-- 0

NOT EOF(Archivo )

Archivo
Registro

INC(PosLectura)

Registro.CampoClave <> 0

PosEscritura < PosLectura - 1

SEEK(Archivo, PosEscritura)

Archivo
Registro

SEEK(Archivo, PosLectura)

INC(PosEscritura)

SEEK(Archivo, PosEscritura)

TRUNCATE(Archivo)

Edición Preliminar (bajo revisión) Página 11 de 11

Você também pode gostar