Ver Mensaje Individual
  #11  
Antiguo 07-01-2012
RadamantiS RadamantiS is offline
Registrado
NULL
 
Registrado: ene 2012
Posts: 8
Reputación: 0
RadamantiS Va por buen camino
De momento he llegado hasta aquí:
Código Delphi [-]
CONST
  espacio=' ';
  maxpal=25;
  maxcar=15;
TYPE
  palabra=STRING[maxcar];
  cadenapal=ARRAY[1..maxpal] OF palabra;
  long_pal=0..maxpal;
  long_car=0..maxcar;
VAR  {Estas son las variables del programa principal}
  palalabra;
  frase:STRING;
  arraypal:cadenapal;
  npal:long_pal;
  ncar:long_car;

  procedure vector_palabras (var s:STRING);
var
  posicion:cadenapal;
  num:long_pal;
  n:integer;
  posic:long_car;
begin
 num:=0;
  repeat
   n:=1;
 **WHILE n<=length(s) AND s[n] DO n=n+1;**
   delete(s,1,n-1);
   posic:=pos(espacio,s);
   IF posic<>0 THEN
    begin
     num:=num+1;
     posicion[num]:=copy(s,1,posic-1);
     delete(s,1,posic);
    end;
  until posic=0;
  **IF s<>' '  THEN**
   begin
    num:=num+1;
    posicion[num]:=s;
   end;
end;

procedure mostrar_vector(var c:cadenapal;longitud:long_pal);
var
  r:long_pal;
begin
 FOR r:=1 TO longitud DO
  write(c[r],'//');
  writeln;
end;

He puesto asteriscos para diferenciar dónde tengo dudas, en la primera linea marcada el Lazarus me da error y no entiendo a qué se debe, y en la segunda linea marcada no se muy bien cómo poner "si s es mayor o menor que la última palabra".
Gracias Caral por tu respuesta.
Muchas gracias por vuestra ayuda!

Última edición por Casimiro Noteví fecha: 07-01-2012 a las 22:34:31.
Responder Con Cita