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';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.