PDA

Ver la Versión Completa : un poquito de ayuda porfavor


N4ota
17-06-2007, 03:05:07
wenas amigos:

los vuelvo a molestar porque necesito un poco de ayuda con codigo de nuevo
eh tenido problemas con una funcion el cual es de la siguiente manera

quisiera poder organizar un numero cualquiera de tal manera k este ordenado de la siguiente manera

supongamos k tenemos el numero
2456187 quisiera que el resultado sea (1er. Mayor)(1er.menor)(2do mayor)(2menor)...y asi sigue osea : 8172645

porfavor que se en base de una funcion

por ejemplo


function intercalar(n:integer):integer;


no se si me entienden

y quisiera saber si podria postear algunos ejercicios que me han asignado sobre funciones en delphi

desde ya les agradezco toda ayuda y cooperacion que me puedan brindar :D

dec
17-06-2007, 03:26:35
Hola,

Acabo de borrar un hilo duplicado de este. No repitas hilos, por favor, y revisa la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) de los Foros.

Delphius
17-06-2007, 03:51:45
Hola N4ota,
Bienvenido al clubdelphi.

No te enojes, pero aqui no te vamos a hacer tu tarea. Podremos ayudarte en algo concreto. Por favor ¿Podrías exponer cual es tu duda? ¿O cúal es la parte que no te sale?

Mira, esto se resuelve muy fácil. Como pista: ordena los números:cool:. Con eso ya tienes para resolverlo.

Saludos,

N4ota
18-06-2007, 18:41:19
wenas:
pos perdon dec lo que paso es que me desconecte mientras enviava mi hilo y pense que no habia llegado por eso lo envie dos veces
weno a lo que dice delphius pos la verdad no es mi tarea era mi examen jejeje
pero lo que pasa es que yo hice el codigo como sigue

function borrar(n,n1:integer):integer;
var
a,d:integer;
begin
a:=0;
while n>0 do
begin
d:=n mod 10;
if d<>n1 then
begin
a:=a*10 + d;
end;
n:=n div 10;
end;
a:=invertido(a);
result:=a;
end;
function menor(n:integer):integer;
var
aux,d:integer;
begin
aux:=9;
while n>0 do
begin
d:=n mod 10;
n:=n div 10;
if d<aux then
begin
aux:=d;
end;
end;
result:=aux;
end;
function mayor(n:integer):integer;
var
aux,d:integer;
begin
aux:=1;
while n>0 do
begin
d:= n mod 10;
n:=n div 10;
if aux<d then
begin
aux:=d;
end;
end;
result:=aux;
end;
function intercalar(n:integer):integer;
var
d,b:integer;
begin
b:=0;
while n>0 do
begin
d:=mayor(n);
n:=borrar(n,d);
b:=b*10+d;
d:=menor(n);
n:=borrar(n,d);
b:=b*10+d;
end;
result:=b;
end;

y el problema es que si es una cifra con 4 digitos como ser 7364 funca y los acomoda bien sin problemas pero si meto una cifra de 3 digitos como ser 738 al final me pone el numero 9 la verdad no entiendo porque no se si me podrian dar una pista?
desde ya gracias