Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-07-2010
darnnezt darnnezt is offline
Miembro
 
Registrado: jul 2010
Posts: 17
Poder: 0
darnnezt Va por buen camino
Arrow Ayuda Con Este Error :s

procedure TForm1.Button1Click(Sender: TObject);
var
pt,a,p,ah,prome1,prome2:real;
s:string;
hombre,c1,n:integer;

begin
a:=0;
p:=0;
prome1:=1;
prome2:=1;
pt:=0;
hombre:=0;
n:=0;
n:=strtoint(inputbox('IGRESE EL NUMERO DE PERSONAS',' N:',''));


for c1:=1 to n do

a:= strtofloat(inputbox('IGRESE LA ALTURA DE LA PERSONA M',' A:',''));
p:=strtofloat(inputbox('INGRESE EL PESO DE LA PERSONA KG ',' P:',''));
s:=string(inputbox('INGRSE EL SEXO DE LA PERSONA',' S:',''));



begin
if (s :=m) then
begin
hombre:=hombre+1;
ah:=ah+a;
end;

pt:=pt+p;
end;
prome1:= pt/n;
prome2:=ah/hombre;

El error se encunetra enmarcado en la zona roja, dice:
[Error] Unit1.pas(52): ')' expected but ':=' found
si alguien puede ayudar mil gracias.
Responder Con Cita
  #2  
Antiguo 26-07-2010
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
Te recomiendo que uses etiquetas para encerrar el codigo delphi y sea mas legible.

Código Delphi [-]
if (s :=m) then
  //lo que sigue

If efectuara una comparacion NO una asignacion. Lo correcto seria :

Código Delphi [-]
if (s = m) then
__________________
ESTO ES UN FORO ... NO UN MÓVIL
¿Por qué no escribir de una manera comprensible para que los humanos lo podamos entender?
Responder Con Cita
  #3  
Antiguo 26-07-2010
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
El operador := se usa para asignar valores, no para comparaciones. Lo correcto sería:

Código Delphi [-]
if (s = m) then

Por cierto, bienvenido a ClubDelphi. Recuerda leer la guía de estilo y utilzar las etiquetas adecuadas para poner codigo fuente.

// Saludos
Responder Con Cita
  #4  
Antiguo 26-07-2010
darnnezt darnnezt is offline
Miembro
 
Registrado: jul 2010
Posts: 17
Poder: 0
darnnezt Va por buen camino
Muchasgracias por la bienvenida, pero el error aun se mantiene no tengo idea de q puede ser

Última edición por darnnezt fecha: 26-07-2010 a las 23:40:30.
Responder Con Cita
  #5  
Antiguo 27-07-2010
paranedaf paranedaf is offline
Registrado
 
Registrado: jul 2010
Posts: 4
Poder: 0
paranedaf Va por buen camino
Cita:
Empezado por darnnezt Ver Mensaje
Muchasgracias por la bienvenida, pero el error aun se mantiene no tengo idea de q puede ser
Está bien lo que mencionaron acerca del error al asignar en vez de comparar.

Ahora, estás comparando la variable "m" y veo que no está declarada. Quizá deseas comparar con la variable "n". Cuidado que s y n son de distinto tipo.
Responder Con Cita
  #6  
Antiguo 27-07-2010
darnnezt darnnezt is offline
Miembro
 
Registrado: jul 2010
Posts: 17
Poder: 0
darnnezt Va por buen camino
GRACIAS YA EL PROGRAMA CORRE, pERO ME DI CUENTA Q SE HA CONVERTIDO EN UN BUCLE INFINITO OSEA SE KEDA PIDIENDO RESULTADO HASTA Q DA ERROR Y NUNKA DA LAS RESPUESTAS,INTENTAE

Código Delphi [-]

procedure TForm1.Button1Click(Sender: TObject);
var
pt,a,p,ah,prome1,prome2:real;
f,m,s:string;
hombre,c1,N:integer;

begin
a:=0;
p:=0;


pt:=0;
hombre:=0;
N:=0;

N:=strtoint(inputbox('IGRESE EL NUMERO DE PERSONAS',' N:',''));

a:= strtofloat(inputbox('IGRESE LA ALTURA DE LA PERSONA M',' A:',''));
p:=strtofloat(inputbox('INGRESE EL PESO DE LA PERSONA KG ',' P:',''));

for c1:=1 to n do
  begin

s:=string(inputbox('INGRSE EL SEXO DE LA PERSONA',' S:',''));


if (s = m) then
begin
hombre:=hombre+1;
ah:=ah+a;
end;

end;


pt:=pt+p;
prome1:= pt/n;
prome2:=ah/hombre;

Showmessage(' EL PESO DE LA POBLACION TOTAL '+FLOATTOSTR(prome1));
showmessage('EL PROMEDIO DE LA ALTURA DE LOS HOMBRE ES '+FLOATTOSTR(prome2));
De esta manerael programa funciona solo q no da respuestas
Responder Con Cita
  #7  
Antiguo 27-07-2010
Avatar de Jac fcc
Jac fcc Jac fcc is offline
Miembro
 
Registrado: ene 2010
Posts: 33
Poder: 0
Jac fcc Va por buen camino
intenta asi

Cita:
if (s = m) then
en comparación de cadenas puedes usar
function AnsiCompareStr( const S1, S2: string ): Integer;
function AnsiCompareText( const S1, S2: string ): Integer; o
supongo que hay maneras mnas optimas de hacer lo mismo pero esta
funciona (y como no tengo mucho tiempo)
aqui coloqué a m el valor de 'm' pensando en que la opcion para ingresar es 'masculino'.
tambien coloqué dentro del ciclo las opciones donde pedías la altura y peso,
pues si al final estabas mostrando el promedio, tenias que pedir cada uno de estos datos por persona.


Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
pt,a,p,ah,prome1,prome2:real;
m,s:string;
hombre,c1,N:integer;

begin

ah:=0;
pt:=0;
hombre:=0;
m:='m';//suponiendo que es m=masculino
N:=strtoint(inputbox('IGRESE EL NUMERO DE PERSONAS',' N:',''));
for c1:=1 to n do begin
  a:= strtofloat(inputbox('IGRESE LA ALTURA DE LA PERSONA M',' A:',''));
  p:=strtofloat(inputbox('INGRESE EL PESO DE LA PERSONA KG ',' P:',''));
  s:=string(inputbox('INGRSE EL SEXO DE LA PERSONA',' S:',''));
  if AnsiCompareStr(s,m)=0 then begin
    hombre:=hombre+1;
    ah:=ah+a;
  end;
  pt:=pt+p;
end;

try

  if n>0 then  prome1:= pt/n
  else begin
    MessageDlg('Error al promediar el peso con divisor cero. ',mtError,[mbOk], 0);
    exit;
  end;
  if hombre>0 then  prome2:=ah/hombre
  else begin
    MessageDlg('Error al promediar la altura con divisor cero. ',mtError,[mbOk], 0);
    exit;
  end;
  Showmessage('EL promedio del PESO DE LA POBLACION TOTAL '+FLOATTOSTR(prome1));
  showmessage('EL PROMEDIO DE LA ALTURA DE LOS HOMBRE ES '+FLOATTOSTR(prome2));

except
    on e:Exception do
    MessageDlg('Error al promediar. '+char(13)+e.Message, mtError,[mbOk], 0);
end;
saludos!
y me cuentas si funciona.
__________________
Para una vida sana hay que ocupar 30 de 24hrs diarias...Ups!
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
una ayuda con este error please dariana20 SQL 3 14-06-2006 23:14:06
Error 10093 al ver un informe - Que error es este? URBANO Impresión 1 03-02-2006 18:44:39
¿Por qué me da este error?Error creating cursor manejador nuri SQL 2 01-08-2005 17:30:28
Ayuda con este error???? danytorres Varios 1 27-10-2004 11:38:09
Me ayuda alguien con este msg de error? NaZZ Varios 4 12-03-2004 09:31:25


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


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