Article View: es.comp.os.linux.programacion
Article #9335Algoritmo de insercion de vector.
From: eldebianita
Date: Sun, 28 Jul 2002 03:00
Date: Sun, 28 Jul 2002 03:00
86 lines
3044 bytes
3044 bytes
Saludos colisteros!,
Me encuentro realizando un ejercicio donde utilizo archivos de registros
siendo el enunciado el siguiente:
Dado el archivo de cuentas corrientes se desea conocer las 20 cuentas de
mayor saldo deudor.
Algoritmo saldo es:
-------------------
Tipos:
------
registro_cta_cte
.nro_cuenta:cadena
.cliente:cadena
.saldo:real
fin registro
tabla:arreglo[1..cmax] de registro_cta_cte
archivo_cta_cte:archivo de registro_cta_cte
Variables globales:
-------------------
x:tabla
a:archivo_cta_cte
b:registro_cta_cte
tope:entero
constantes
----------
cmax=30
abrir (a);leer (a,b)
mientras no fin (a) hacer
si (b.saldo>0)
entonces
si (tope<cmax)
entonces
tope<---tope+1
x[tope]<---b
burbuja (x,tope)
sino
compara_maximo(x,tope,b)
leer(a,b)
fin mientras
cerrar (a)
fin algoritmo
como pueden observar el arreglo x recibira los veinte primeros saldos
negativos burbujeando cada vez que un valor sea insertado el orden sera
ascendente o sea del saldo menor al saldo mayor.
El procedimiento compara_maximo realiza la siguiente tarea:
procedimiento compara_maximo(ref:x:tabla;valor:tope:entero;valor:
b:registro_cta_cte)
variables locales
-----------------
i:entero,
i<---1
si (b.saldo>x[i].saldo)
entonces
x[i]<---b
sino
mostrar ('el dato no sera incluido')
fsi
obviamente seguida esta accion vendria un burbujeo que me reacomodara
los datos nuevamente.
La cuestion es la siguiente:la intencion del procedimiento es comparar
el dato de b.saldo contra el menor del arreglo x que por su parte esta
completo si el dato que trae b.saldo es mayor se lo asignara al arreglo
x,pues bien que les parece el procedimiento?,hay otra posibilidad de
mejorarlo?,he probado un insertar con orden pero los ejemplos que he
visto quedaban lugares en el arreglo y no es este el caso,por lo que me
he visto obligado a realizar un burbujeo,sin poder evitarlo.
sin mas los saluda.
--
eldebianita
Powered by Debian/GNU Linux 3.0
Technical Details
Message-ID:
<gnmvha.lu1.ln@fibertel.com.ar>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!lnewspeer00.lnd.ops.eu.uu.net!bnewspeer01.bru.ops.eu.uu.net!emea.uu.net!fu-berlin.de!uni-berlin.de!ol188-103.fibertel.com.AR!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit X-Google-Thread: f86c8,bb9477f3f2c2d2f1,start X-Google-Attributes: gidf86c8,public X-Google-ArrivalTime: 2002-07-27 20:36:31 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.icl.net!newsfeed.fjserv.net!lnewspeer00.lnd.ops.eu.uu.net!bnewspeer01.bru.ops.eu.uu.net!emea.uu.net!fu-berlin.de!uni-berlin.de!ol188-103.fibertel.com.AR!not-for-mail From: eldebianita <eldebianita@fibertel.com.ar> Newsgroups: es.comp.os.linux.programacion Subject: Algoritmo de insercion de vector. Date: Sun, 28 Jul 2002 00:00:00 -0300 Lines: 87 Message-ID: <gnmvha.lu1.ln@fibertel.com.ar> Reply-To: eldebianita@fibertel.com.ar NNTP-Posting-Host: ol188-103.fibertel.com.ar (24.232.103.188) X-Trace: fu-berlin.de 1027827390 34001021 24.232.103.188 (16 [133769]) X-Orig-Path: fibertel.com.ar!nobody User-Agent: slrn/0.9.7.4 (Linux)