Programación General > Pascal

 Array De Caracteres

(1/2) > >>

.:Kioon:.:
Hola a tod@s.

  Desde hace dias, estoy metido en un bucle  :huh: que hace que no pueda salir. Tengo que hacer un ejercicio y no sigo adelante. Imaginaros, tenermos un array de caracteres y me piden que tengo que poner en mayusculas y centrarlo (tb subrayarlo) el titulo que como podemos ver a continuación esta entre &&. Pues cuando utilizo un FOR parece que no me deja, dice expresion no valida. Agradeceria a todo el mundo que me pueda ayudar!!!!!

PROGRAM arrCaracteres;

USES crt;

CONST

bajo=1;
alto=499;

TYPE

    intervalo=bajo..alto;

VAR    cadena:ARRAY [intervalo] OF CHAR;


VAR

    i,n     :   INTEGER;
    index   :   intervalo;
    longitudCadena,posiciona:BYTE;
    carac   :   CHAR;


BEGIN

    cadena:=('&colof¢n&Luz...$Cuando mis l grimas te alcancen$la fusi¢n de mis ojos$ya no ser  llorar$sino ver.$&abrojos&A un tal q asesin¢ a diez$y era la imagen del vicio,$muerto,el Soberano Juez$le salv¢ del sacrificio');
    longitudCadena:=LENGTH(cadena);
    carac:='&';
    clrscr;
    WRITELN ('');
    WRITELN (' ========================');
    WRITELN (' POESIAS');
    WRITELN (' ========================');
    WRITELN ('');
    WRITELN ('');

    FOR i:=LOW(cadena) TO longitudcadena DO

        FOR cadena='&' TO '&' DO <<<<<<<<<<<<<NO ME DEJA

SALUDOS
JESÚS

Enko:
Tenes que tener en cuenta que ne le lenguaje Pascal las cadenas son esto:

--- Código: Text --- type   String = packed array[1..255] of char;  
"packed"  es para que no malgaste memoria.

por esa razon, si quieres recorer una cadena caracter por caracter tienes que hacer:

--- Código: Text --- var  Cadena: string[255];  {la m'axima longitud permitida]   i : integer;begin  Cadena := 'Algo escrito por aqui jfjfiejdifjfusdafjsadfi';   for i := 1 to Length(Cadena) do    begin       Cadena[i] := upCase(Cadena[i]); {esto lo pasa a mayusculas}    end;end.   

Enko:
Para centrar la cadena tienes que saber su longitud con Length().
Esta longitud tiene que ser menor a 80 (sino no entra en una linea de la pantalla)
Para calcular el espacio a dejar al pricipio(tiene que ser simetrico con el final) haces:
 
--- Código: Text --- EspasioLibre := 80 - Length(cadena) div 2;   {DIV es '/' de enteros, }for i := 1 to EspacioLibre do  Write(' ');Write(cadena);{se escribe luego de dejar espacios necesarios}  

.:Kioon:.:
Hola a todos.

   Ante todo.. Muchas Gracias!! La verdad es que no poseo mucha experiencia en PASCAL, por lo que tengo unas duditas.

var
 Cadena: string[255];  {la m'axima longitud permitida]
  i : integer;
begin
 Cadena := 'Algo escrito por aqui jfjfiejdifjfusdafjsadfi';
  for i := 1 to Length(Cadena) do     <<----- Me dice que tome valor la i de 1 hasta la longitud de la cadena
  begin
      Cadena := upCase(Cadena); {esto lo pasa a mayusculas}
   end;
end.

  Pero si yo quiero que de la cadena escrita 'Algo escrito por aqui jfjfiejdifjfusdafjsadfi' me ponga en mayusculas de la primera e hasta la o de "por" y el resto lo deje IGUAL ¿Cómo lo hago?

GRACIAS por todo!!
Jesús  :D

Enko:

--- Citar --- Pero si yo quiero que de la cadena escrita 'Algo escrito por aqui jfjfiejdifjfusdafjsadfi' me ponga en mayusculas de la primera e hasta la o de "por" y el resto lo deje IGUAL ¿Cómo lo hago?

--- Fin de la cita ---

--- Código: Text ---  while i &#60;= Length(Cadena) do &#60;&#60;----- Me dice que tome valor la i de 1 hasta la longitud de la cadenabegin   if  Cadena[i] = 'e' then     begin      while Cadena[i] &#60;&#62; 'o' do       begin           Cadena[i] := upCase(Cadena[i]); {esto lo pasa a mayusculas}            i:=i+1;        end;     end    else i:=i+1;end;  
Empiesa desde el principio de la cadena, si encuentra la letra 'e' empieza pasar todo a mayuscula hasta que se encuentra con la letra 'o'.



--- Citar --- hasta la o de "por"

--- Fin de la cita ---

Esta o es la segunda

--- Código: Text --- Algo escrito por aqui jfjfiejdifjfusdafjsadfi-------c----1---2  
Como es la segunda, no tenes manera de darte cuenta. Tendras que utilizar caracteres menos repetidos como:"$", "@" u otros.

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa