Pascal/Turbo Pascal - modificacion de una funcion

   
Vista:

modificacion de una funcion

Publicado por Sara (6 intervenciones) el 18/02/2015 16:07:13
Necesito hacer esta función de una forma más fácil sin tener en cuenta las mayúsculas y minúsculas.
Gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Function buscar_producto (ces:Tcesta; cu:string): integer;
 Var
    pos, i, m :integer;
    prod:string;
 begin
    for m:= 1 to length(cu) do
       begin
          cu[m]:=upcase(cu[m]);
       end;
       buscar_producto:=0;
       for i:= 1 to tammaxcesta do
          begin
             for m:= 1 to length(ces[i].nombre) do
                begin
                   prod[m]:= upcase(ces[i].nombre[m]);
                   prod[0]:= chr(m);
                end;
          end;
       if prod=cu then
          begin
             pos:=i;
          end;
       buscar_producto:=pos;
  end;
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

modificacion de una funcion

Publicado por MMan (5 intervenciones) el 18/02/2015 16:41:36
hola

1
2
3
4
for m:= 1 to length(cu) do
begin
cu[m]:=upcase(cu[m]);
end;

1
2
3
4
5
for m:= 1 to length(ces[i].nombre) do
begin
prod[m]:= upcase(ces[i].nombre[m]);
prod[0]:= chr(m);
end;


no es necesario que recorras letra por letra para modificar de minuscula a mayusculas, simplemente puedes hacer

enmayusculas := upcase(lapalabra) ;

--------


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Function buscar_producto (ces:Tcesta; cu:string): integer;
Var
pos, i, m :integer;
prod:string;
begin
 
cu:=upcase(cu);
 
buscar_producto:=0;
for i:= 1 to tammaxcesta do
begin
 
prod:= upcase(ces[i].nombre );
 
// end;   //<< este end; deberia estar
 
if prod=cu then
begin
pos:=i;
 
// si ya encontro el producto.. no es necesario que siga con el bucle
break;
 
// a menos que tengas varios productos y quieras retornar el Ultimo
end;
 
end;   /// <<   aca
 
buscar_producto:=pos;
end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

modificacion de una funcion

Publicado por ramon (2072 intervenciones) el 18/02/2015 22:23:18
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
{Mira esto}
 
Function buscar_producto (ces:Tcesta; cu:string): integer;
Var
pos, t, i, m :integer;
prod:string;
begin
buscar_producto:=0;
t := 0;
for i:= 1 to tammaxcesta do
begin
  if length(ces[i].nombre) = length(cu) then
   for m := 1 to length(ces[i].nombre) do
   begin
   if upcase(ces[i].nombre[m]) = upcase(cu[m]) then
   t := t + 1
 else
    begin
       t := 0;
       break;
    end;
end;
   if t = length(ces[i].nombre) then
   begin
     buscar_producto:=i;
   break;
   end;
 end;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar