Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-04-2010
hervicen hervicen is offline
Registrado
 
Registrado: abr 2010
Posts: 5
Poder: 0
hervicen Va por buen camino
Sacar porciento en Delphi

Hola todos he iniciado un cur de programacion y me han entregado un manual y he comensado a leerlo sin asistir a mi primera clase, en el manaul me plantean el siguiente problema.

3. Dado el monto de venta de un vendedor, es: RD$50.000,00; calcular la comision de venta de dicho vendedor, la cual corresponde al 10% del monto vendido..

Con los pocos conocimientos que he adquirod del manual lo he planteado de la suiguiente manera en Delphi
Código Delphi [-]
 
var
MV, PO, CO: Integer;
begin
 MV:=StrtoINt(edit1.text);
 PO:=StrtoINt(edit2.text);
 CO:=StrtoINt(edit1.text)*StrtoINt(edit2.text)/100);
 edit3.Text:=INtToStr(CO);
pero me da un error y no se como solucionalo,

Si alguien me pudiera explicar de favor se lo agradeseria..

Última edición por marcoszorrilla fecha: 29-04-2010 a las 11:20:12.
Responder Con Cita
  #2  
Antiguo 29-04-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
El problema es que tu variable CO es de tipo Integer. Las variables de tipo integer solamente pueden contener números enteros.

Cuando hacés

CO:=StrtoINt(edit1.text)*StrtoINt(edit2.text)/100);

Lo que obtenés es un número real, porque la división con "/" genera un número real (independientemente de si el resultado es "con coma" o sin ella). Ahí está el problema.

¿Solución? Pues declarar CO como una variable real.

Código Delphi [-]
var MV, PO: Integer;
     CO: Real;

begin
  MV:= StrToInt(edit1.text);
  PO:= StrToInt(edit2.text);
  CO:= StrToInt(edit1.text) * StrToInt(edit2.text) / 100;
  edit3.Text:= FormatFloat('%f', [CO]);
end;

PD: También te sobraba un paréntesis en esa linea.

PD2: Comentario obligado a todo usuario nuevo. ¡Bienvenido! y pegale una leída a la guía de estilo.

PD3: ¡Fijate bien dónde ponés los hilos! El foro de Debates es, como su nombre lo indica, para debates.
Responder Con Cita
  #3  
Antiguo 29-04-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Hola y bienvenido, hervicen.

Sólo comentarte que, la próxima vez que hagas una consulta a causa de un error, estaría bien que citaras dicho error. Más que nada porque un compilador puede devolver miles de posibles errores, por lo que muchas veces decir únicamente "me sale un error" no es ni por mucho suficiente. De hecho, hoy has tenido suerte, pero en el futuro puede no ser así.

Pues eso: ¡ánimo y al toro!
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 29-04-2010
hervicen hervicen is offline
Registrado
 
Registrado: abr 2010
Posts: 5
Poder: 0
hervicen Va por buen camino
Muchas gracias.....

Me sirve de Mucho..
Ademas voy a tener presente todas sus sugerencias..
Responder Con Cita
  #5  
Antiguo 29-04-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Ñuño, sin que tenga que ver gran cosa con resolver el problema de nuestro nuevo amigo, que comes que adivinas, me parece que el clásico "Me sale un error" o "Me marca error" es creo por mucho la frase mas socorrida del usuario final...a quien no le ha tocado. OJO: No estoy atacando a hervicen ni criticando su post, pero me acordé de lo que muchos casos de usuarios.
__________________
AKA "El animalito" ||Cordobés a mucha honra||

Última edición por AzidRain fecha: 29-04-2010 a las 22:00:13.
Responder Con Cita
  #6  
Antiguo 30-04-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Tienes razón, AzidRain. Es más: ayer mismo recibí por enésima vez un mensaje de correo de un usuario diciendo que "no funciona". Literalmente. >.<
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #7  
Antiguo 30-04-2010
hervicen hervicen is offline
Registrado
 
Registrado: abr 2010
Posts: 5
Poder: 0
hervicen Va por buen camino
Interes Compuesto

ESpero que me tengan Paciencia, pues como les explique estoy nuevesito en esto de programacion en delphi.

he estado intentando resolver un problema de interes compuesto y lo he planteado de esta forma:

Var
Prestamo, Plazo, Interes: Integer;
Cuotas: Real;
begin
Prestamo:=StrtoINt(edit1.Text);
Plazo:=StrtoINt(edit2.Text);
Interes:=StrtoINt(edit3.Text);
Cuotas:=(Prestamo*(1+(Interes/100))^Plazo)/Plazo;
edit4.text:=formatFloat([Cuotas]);
end;

Al correrlo me arroja el siguiente error:

[Error]Unit1.pas(43):Pointer type Required.

Si me pudieran ayudar de favor..!!!!
Responder Con Cita
  #8  
Antiguo 30-04-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Eso es porque el símbolo "^" no es la potencia. Es el símbolo de dereferencia de punteros...

Lo que tendrías que hacer es usar la función Power:

Código Delphi [-]

uses ..., Math, ...;

[...]

Cuotas:= (Prestamo * Power((1+(Interes/100)), Plazo)) / Plazo;
Responder Con Cita
  #9  
Antiguo 30-04-2010
hervicen hervicen is offline
Registrado
 
Registrado: abr 2010
Posts: 5
Poder: 0
hervicen Va por buen camino
Utilizando esta sentencias

Var
Prestamo, Plazo, Interes: Integer;
Cuotas: Real;
begin
Prestamo:=StrtoINt(edit1.Text);
Plazo:=StrtoINt(edit2.Text);
Interes:=StrtoINt(edit3.Text);
Cuotas:=(Prestamo * Power(1+(Interes/100)),Plazo)/Plazo;
edit4.text:=formatFloat([Cuotas]);

Me arroja el siguiente error:

[Error]Unit1.pas(43):Undeclared indentifier:'Power'
[Error]Unit1.pas(43):')' expected but ',' found
Responder Con Cita
  #10  
Antiguo 30-04-2010
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Es que hay varios errores...

[1] "Undeclared indentifier:'Power'" se debe a que no agregaste la unidad Math a la cláusula uses. Las funciones, tipos de datos, variables, constantes, etc. están contenidas en unidades. Para poder usarlas tenés que decirle al compilador que incluya dicha unidad. La función Power está declarada en la unidad Math, así que donde dice "uses UnMontónDeCosas" tenés que agregar el Math.

[2] No sé porqué lo puse, pero es FormatFloat('%f', Cuotas). El primer parámetro es el formato que se le va a dar, y el segundo es el número en cuestión.

[3] "')' expected but ',' found". Que espere un paréntesis y encuentre una coma usualmente significa que te está faltando un paréntesis. Concretamente, al principio de la sentencia "Cuotas:= (Prestamo..." tenés un "(" que no coincide con ninguno, es decir que sobra, o que falta el ")" complementario.
Responder Con Cita
  #11  
Antiguo 30-04-2010
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Una sugerencia Hervicen, no te limites a únicamente hacer lo que te vamos sugieriendo y poner código, compilar y ver que pasa. Así vas a aprender muy poco. Los 2 erroes que mencionas en tu último post son sencillos de resolver si lee uno la ayuda de Delphi, ahi hubieras visto que es lo que hace Power() y que requisitos hay que cumplir para usarla, en este caso añadir el uses math como te dijo Delfos, el otro error tambiés muy obvio pues analizando la setencia te darías cuenta que o te falta un paréntesis al final o bien te sobra el que pusiste al principio, cualquiera de las 2 soluciones te sirve.

Todos empezamos como tú, asi que no te sientas cohibido ni nada nomás si ten en cuenta la recomendación a la larga te será muy útil y te ayudará a resolver los problemas mas rápidamente pues poco a poco dependerás menos de la ayuda de otros para resolver pequeñas cosas y podrás recibir tb ayuda más rápidamente al irte explicando mejor cada vez.

Como dicen los maestros zen "La paciencia es la llave del paraiso"
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #12  
Antiguo 30-04-2010
hervicen hervicen is offline
Registrado
 
Registrado: abr 2010
Posts: 5
Poder: 0
hervicen Va por buen camino
Ok. Comprendi Lord Delfos..!!!!

Azidrain, gracias muy buena tu sugerencias, tienes rozon. Pasa que uno medio se turba cuando esta tratando de aprender y algo le sale mal.

Realmente me son muy fructiferas sus explicaciones, para que vean he resulto 9 de 10 problemas planteados en mi manual y aun no he asistido a mi primera clase que sera el proximo martes....

Gracias a ustedes creo que voy avanzando.. No duden en corregirme cauquier error que cometa, con sinceridad no me ofendo...

Gracias...

Espero en futuro muy Proximo estar ayudando personas al igual que ustedes.!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Como sacar diferencia entre 2 fechas con Delphi 5? flystar Varios 8 17-05-2011 01:59:05
Obtener porciento de uso de la CPU JVC Soft Windows 2 03-07-2007 22:02:57
Sacar Imagen de una BD natalinuyo Gráficos 2 25-05-2007 10:56:59
Cambio dinamico de BD en delphi para sacar reporte Crystal Jovana Macias Impresión 1 10-05-2007 19:27:00
optener porciento al revez.. sakuragi Varios 5 03-01-2006 23:39:11


La franja horaria es GMT +2. Ahora son las 23:18:01.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi