PDA

Ver la Versión Completa : funcion


carl778
01-11-2017, 17:45:59
hola amigos..
Soy nuevo en esto de delphi.. y bueno queria saber como realizar el siguiente ejercicio en una funcion
de dada una cantidad,, mostrar el primer y ultimo digito de la cantidad, ambos resultados mostrados dentro de un edit.text

gracias..

Casimiro Notevi
01-11-2017, 18:00:22
Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php), gracias por tu colaboración :)
Para otra ocasión no olvides poner un título descriptivo a tu pregunta.

Y en cuanto a tu duda, como habrás leído en nuestra guía de estilo, no nos gusta dar un código para que hagas un "copia-pega", muestra interés en aprender, pon tu código, intenta hacer algo y te ayudaremos.
Saludos.

movorack
01-11-2017, 18:19:13
Hola. ¿Sabes algo de Delphi o de programación?, ¿Que versión usas?, ¿Que tanto haz hecho?, ¿Que errores haz encontrado?

Si no tienes muchas bases te recomiendo el libro "La cara oculta de Delphi (http://terawiki.clubdelphi.com/Delphi/Manuales/?download=La_Cara_Oculta_De_Delphi_4_pdf_.zip)" y un buen sitio de referencia es Delphi Basics (http://www.delphibasics.co.uk/)

- Debes crear una función que reciba como parámetro un valor de cantidad (No se si sea entero o flotante, eso depende de tu programa) y retorne una cadena de texto
- Convertir el parámetro de entrada a una cadena de texto
- Copiar el primer caractér
- Copiar el último carcatér
- Retornar la unión resultante de los dos puntos anteriores
- Asignar el resultado de la función a una caja de texto en el formulario

Si tienes dudas, como dice casimiro, acá te ayudaremos.

carl778
01-11-2017, 18:32:17
lo tomaré en cuenta lo de casimiro ,gracias por aclararmelo...
bueno esto es lo que he hecho y mi consulta era de como mostrar el valor de d y a segun el codigo..dentro de un edit.
si alguien podria decirme en que estoy mal o como hacer la estructura...para sacar ambos valores
ete.. uso delphi 2010...

function primeryúltimodígito(n:integer):integer;
var e,inv,d,a:integer;
begin
inv:=0;
e:=n;
while n>0 do
begin
d:=n mod 10;
inv:=inv*10+d;
n:=n div 10;
end;
a:=e mod 10;
result:=
end;
procedure TForm2.N1PRIMERYLTIMODGITO1Click(Sender: TObject);
begin
edit2.text:=
end;

end.

Casimiro Notevi
01-11-2017, 19:21:52
Recuerda poner los tags al código fuente, ejemplo:

http://www.clubdelphi.com/images/UtilizarTAGs.png

Gracias :)

carl778
01-11-2017, 19:47:09
¿cómo retornaria la union resultante de ambos puntos?

movorack
01-11-2017, 20:15:01
- Debes crear una función que reciba como parámetro un valor de cantidad (No se si sea entero o flotante, eso depende de tu programa) y retorne una cadena de texto (http://www.delphibasics.co.uk/Article.asp?Name=Routines)
- Convertir el parámetro de entrada a una cadena de texto (http://www.delphibasics.co.uk/Article.asp?Name=Text)
- Copiar el primer caractér (http://www.delphibasics.co.uk/ByFunction.asp?Main=Strings)
- Copiar el último carcatér (http://www.delphibasics.co.uk/ByFunction.asp?Main=Strings)
- Retornar la unión resultante de los dos puntos anteriores (http://www.delphibasics.co.uk/Article.asp?Name=Routines)
- Asignar el resultado de la función a una caja de texto en el formulario

ecfisa
02-11-2017, 01:53:00
Hola.
¿cómo retornaria la union resultante de ambos puntos?
Una opción es que la función devuelva un valor de tipo TPoint (http://www.delphibasics.co.uk/RTL.asp?Name=tpoint).

Saludos :)

ElKurgan
02-11-2017, 07:51:38
function primeryúltimodígito(n:integer):integer;
var e,inv,d,a:integer;
begin
inv:=0;
e:=n;
while n>0 do
begin
d:=n mod 10;
inv:=inv*10+d;
n:=n div 10;
end;
a:=e mod 10;
result:= (d * 10) + a; // Te falta esto
end;

procedure TForm2.N1PRIMERYLTIMODGITO1Click(Sender: TObject);
// Vamos a suponer que tienes un Edit1 donde se teclea el valor numérico
var i: Integer;
begin
i := StrToInt(Edit1.Text);
Edit2.Text := IntToSTr(primeryúltimodígito(i));
end;

end.

Espero haberte ayudado
Saludos

ecfisa
02-11-2017, 14:08:53
Hola.

Ah... había interpretado que buscabas algo como esto,

function FirstAndLast(num: Integer): TPoint;
begin
Result.X := num;
while Result.X >= 10 do
Result.X := Result.X div 10;
Result.Y := num mod 10;
end;

pero con muy pocos cambios se puede obtener el resultado como un entero:

function FirstAndLast(num: Integer): Integer;
begin
Result := num;
while Result >= 10 do
Result := Result div 10;
Result := num mod 10 + Result * 10;
end;


Saludos :)