Domingo 22 de Diciembre de 2024, 22:28
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Ordenacion QuickSort
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Ordenacion QuickSort (Leído 1221 veces)
Geo_Jervin
Nuevo Miembro
Mensajes: 2
Ordenacion QuickSort
«
en:
Martes 14 de Abril de 2009, 02:57 »
0
Este es el código el problema es que me da error en la parte a
central y no se porque razón
Código: Pascal
Program
Quicksort;
uses
crt;
type
vector
=
array
[
1
..
10
]
of
integer
;
const
lista
:
vector
=
(
8
,
5
,
6
,
3
,
1
,
4
,
2
,
7
,
10
,
9
)
;
var
k
:
integer
;
longitud
:
integer
;
procedure
rapido
(
var
a
:
vector;n
:
integer
)
;
procedure
partir
(
primero
,
ultimo
:
integer
)
;
var
i
,
j
,
central
:
integer
;
procedure
intercambiar
(
var
m
,
n
:
integer
)
;
var
aux
:
integer
;
begin
aux
:=
m;
M
:=
n;
N
:=
aux;
end
;
begin
i
:=
primero;
j
:=
ultimo;
central
:=
a
[
(
primero
+
ultimo
)
div
2
]
;
repeat
while
a
[
i
]
central
do
{Aqui es donde me da el error en a[i]central}
j
:=
j
-
1
;
if
i<
=
j
then
begin
intercambiar
(
a
[
i
]
,
a
[
j
]
)
;
i
:=
i
+
1
;
j
:=
j
-
1
;
end
;
until
i>j;
if
primero<j
then
partir
(
primero
,
j
)
;
if
i<ultimo
then
partir
(
i
,
ultimo
)
;
end
;
begin
partir
(
1
,
n
)
;
end
;
begin
clrscr;
k
:=
0
;
write
(
'Este es el vector original: '
)
;
repeat
begin
write
(
lista
[
k
]
,
' '
)
;
k
:=
k
+
1
;
end
;
until
k
=
11
;
writeln
;
rapido
(
lista
,
10
)
;
k
:=
0
;
write
(
'Este es el vector ordenado: '
)
;
repeat
begin
write
(
lista
[
k
]
,
' '
)
;
k
:=
k
+
1
;
end
;
until
k
=
11
;
readln
;
end
.
Espero que me puedan ayudar
Tweet
m0skit0
Miembro de PLATA
Mensajes: 2337
Nacionalidad:
Re: Ordenacion QuickSort
«
Respuesta #1 en:
Martes 14 de Abril de 2009, 17:36 »
0
Mi primer consejo es que no declares procedimientos dentro de procedmientos dentro de procedimientos... Hazlo fuera:
Código: Pascal
Program
Quicksort;
uses
crt;
type
vector
=
array
[
1
..
10
]
of
integer
;
const
lista
:
vector
=
(
8
,
5
,
6
,
3
,
1
,
4
,
2
,
7
,
10
,
9
)
;
var
k
:
integer
;
longitud
:
integer
;
procedure
intercambiar
(
var
m
,
n
:
integer
)
;
var
aux
:
integer
;
begin
aux
:=
m;
M
:=
n;
N
:=
aux;
end
;
procedure
partir
(
primero
,
ultimo
:
integer
)
;
var
i
,
j
,
central
:
integer
;
begin
i
:=
primero;
j
:=
ultimo;
central
:=
a
[
(
primero
+
ultimo
)
div
2
]
;
repeat
while
a
[
i
]
central
do
{Aqui es donde me da el error en a[i]central}
j
:=
j
-
1
;
if
i<
=
j
then
begin
intercambiar
(
a
[
i
]
,
a
[
j
]
)
;
i
:=
i
+
1
;
j
:=
j
-
1
;
end
;
until
i>j;
if
primero<j
then
partir
(
primero
,
j
)
;
if
i<ultimo
then
partir
(
i
,
ultimo
)
;
end
;
procedure
rapido
(
var
a
:
vector;n
:
integer
)
;
begin
partir
(
1
,
n
)
;
end
;
begin
clrscr;
k
:=
0
;
write
(
'Este es el vector original: '
)
;
repeat
begin
write
(
lista
[
k
]
,
' '
)
;
k
:=
k
+
1
;
end
;
until
k
=
11
;
writeln
;
rapido
(
lista
,
10
)
;
k
:=
0
;
write
(
'Este es el vector ordenado: '
)
;
repeat
begin
write
(
lista
[
k
]
,
' '
)
;
k
:=
k
+
1
;
end
;
until
k
=
11
;
readln
;
end
.
En cuanto al tema de
a
central
, es lógico que te dé error, esa sintaxis es errónea. Supongo que querías poner (o está mal en el libro):
a
<central
Salud
Fr33k K0mpu73r
Geo_Jervin
Nuevo Miembro
Mensajes: 2
Re: Ordenacion QuickSort
«
Respuesta #2 en:
Miércoles 15 de Abril de 2009, 06:49 »
0
Gracias, Tenes razón con respecto al error si era ese y voy a tomar tu consejo con respecto a los procedimientos
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
Pascal
»
Ordenacion QuickSort