Ver Mensaje Individual
  #1  
Antiguo 20-05-2011
luisito2011 luisito2011 is offline
Miembro
NULL
 
Registrado: mar 2011
Posts: 82
Reputación: 14
luisito2011 Va por buen camino
Unhappy Contar cuantas palabras empiezan con May

Hola a todos.. saludos..
saben tengo un problema con esto
se supone que me deveria funcionar..

Código Delphi [-]
 
function ContarMay(s:string):integer;
var pal:string; Letra:char; i,c:integer;
begin
I:=1; pal:=' '; c:=0; s:=s+' ';
    while I <= Length(s) do
    begin
     letra:=s[i];
     if letra <> ' ' then
       pal:=pal+letra
        else
        if length(PAL) > 0 then
          begin
         if  (UPCASE(pal[1]) = pal[1]) then
 //En esta parte se supone que solo tiene q contar la 1ra de una 
            palabra y esa la convierte y pregunta si es = a la 1ra q no esta
            convertida...  ejem  'mama'  si M  = m , no.//
            pero cuenta todo no inporta si esta o no en mayuscula..
             begin
              c:=c+1;
              pal:=' ';
           end;
        end;
    i:=i+1;
    end;
  contarMay:=c;
end;
var
a:cvectors;
tp,i,N:integer;
s:string;
begin
a:=cvectors.crear; Readln(n);
a.dimencionar(n);
  for I := 1 to a.dimencion do
    begin
      readln(s);
      a.poner(i,s);
    end;
Tp:=0;
  for I := 1 to a.dimencion do
    begin
      Tp:=Tp + contarMay(a.elemento(i));
    end;
writeln(Tp);
readln;
end.

Aca con la unit que trabajo

Código Delphi [-]
 
unit unit1;
interface
uses
sysutils;
const
max=50;
type
            CVectorS=class
             S: array[1..max] of string ;
             N: integer;
             constructor crear ;
             procedure dimencionar(dim:integer);
             procedure poner(posi:integer ; que:string);
             procedure mostrar(var s:cvectorS);
             procedure insertar(posi:integer ; st:string);
             function elemento(posi:integer):string;
             function dimencion:integer;
         
implementation

constructor CVectorS.crear;
begin
   N:=0;
end;
function CVectorS.dimencion: integer;
begin
  dimencion:=N
end;
procedure CVectorS.dimencionar(dim: integer);
begin
  N:=dim;
end;
function CVectorS.elemento(posi: integer): string;
begin
  elemento:=s[posi];
end;
 
procedure CVectorS.insertar(posi: integer; st: string);
begin
   s[posi]:=st;
end;
procedure CVectorS.mostrar(var s: cvectorS);
var
  I: Integer;
begin
  for I := 1 to s.Dimencion do
  begin
    write(s.elemento(i):8);
  end;
end;
procedure CVectorS.poner(posi: integer; que: string);
begin
  s[posi]:=que;
end;
end.

quisiera que me diga si esta mal.. oh si hay otra forma mas simple..
oh si estoy pensando mal.. lo que hace upcase..

bueno gracias..
Responder Con Cita