Pascal/Turbo Pascal - Convertir cada primera letra a Mayusculas

 
Vista:
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por Pato (11 intervenciones) el 17/02/2015 06:12:09
Buenos dias. Estoy en mi primer año de Ingenieria & nesesito un programa que utilize una funcion que haga lo siguiente:
Reciba una frase cualquiera, como "Hola mundo, estamos en 2015" y me devuelva "Hola Mundo Estamos En 2015".
Obviamente, en Turbo Pascal. Tengo una idea de como se hace, con los ORD % Chr, pero los espacios, los identifico facilmente, y debo usarlos, pero no se como. Cualquier ayuda sera agradecida
Desde ya, muchas gracias.
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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por David (224 intervenciones) el 17/02/2015 12:25:40
Te propongo la siguiente solución:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Uses CRT;
 
var
  cadena : string;
  i : integer;
 
begin
  Writeln('Introduzca una frase: ');
  readln(cadena);
  cadena[1]:=upcase(cadena[1]);
  for i :=2 to length(cadena) do
    begin
      if cadena[i-1] = ' ' then
        cadena[i]:=upcase(cadena[i]);
    end;
  writeln(cadena);
  readln;
 
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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por Pato (11 intervenciones) el 17/02/2015 13:32:29
Muy bueno, muy simple, me encanta, pero, no es una Funcion (Function), y nesesito que lo sea. Lo he intentado transformar a tal, pero no lo he logrado. Tu programa no transforma las mayusculas de adentro de las palabras a minusculas, osea "hOLa" Deberia ser "Hola", pero es "HOLa"
Asi lo he modificado:
program j;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Uses CRT;
var cadenaaa: string;
function otracadena (cadena: string):string;
var
        i : integer;
 
begin
        Writeln('Introduzca una frase: ');
        readln(cadena);
        cadena[1]:=upcase(cadena[1]);
                for i :=2 to length(cadena) do
                begin
                if cadena[i-1] = ' ' then
                cadena[i]:=upcase(cadena[i]);
                end;
writeln(cadena);
readln;
otracadena:= cadena [i];
end;
 begin
 readln (cadenaaa);
 otracadena (cadenaaa);
 end.

Y corre, pero con el problema anterior. Como lo soluciono?
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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por David (224 intervenciones) el 17/02/2015 17:37:55
No entendí que quisieras una función. De todas formas lo que tú has hecho está bien. Aquí mi solución con funciones:

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
Uses CRT;
 
var
  cadena : string;
 
Function DevolverCadena (cadena : string):String;
var
  i : integer;
begin
  cadena[1]:=Upcase(cadena[1]);
  for i :=2 to length(cadena) do
    begin
      if cadena[i-1] = ' ' then
        cadena[i]:=upcase(cadena[i]);
    end;
   DevolverCadena:=cadena;
end;
 
begin
  Writeln('Introduzca una frase: ');
  readln(cadena);
  writeln(devolvercadena(cadena));
  readln;
 
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

Convertir cada primera letra a Mayusculas

Publicado por ramon (2158 intervenciones) el 17/02/2015 12:30:48
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
{Mira esto}
 
program letras;
 uses
    crt;
  type
     string80 = string[80];
 
  var
    texto : string80;
    cont : integer;
    blanco : boolean;
 
   procedure entradatexto(var tx : string80);
   begin
       clrscr;
       writeln;
       write('   Entre Texto : ');
       readln(tx);
   end;
 
   function modifica_primera(tx : string80) : string80;
   begin
      if tx[1] <> ' ' then
      tx[1] := upcase(tx[1]);
      blanco := false;
      for cont := 1 to length(tx) do
      begin
         if tx[cont] = ' ' then
         blanco := true
       else
          blanco := false;
          if blanco = true then
         if tx[cont + 1] <> ' ' then
          begin
              tx[cont + 1] := upcase(tx[cont + 1]);
              blanco := false;
         end;
      end;
       modifica_primera := tx;
   end;
 
 
   begin
      entradatexto(texto);
      writeln;
      clrscr;
      writeln('  *** Texto Original *** ');
      writeln('     ',texto);
      writeln;
      writeln('  <<< Texto Modificado >>>');
      writeln(modifica_primera(texto));
      readkey;
   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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por Pato (11 intervenciones) el 17/02/2015 21:35:57
Vuestro programa sufre de los mismos problemas que el anterior: No transforma mayusculas a minusculas.
"hOlA MUnDo" deberia ser "Hola Mundo" en vez de "HOlA MUNDo".
No se como cambiar ninguno de los programas para que me haga esto. Como puedo modificarlo?
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

Convertir cada primera letra a Mayusculas

Publicado por MMan (5 intervenciones) el 18/02/2015 00:12:35
al inicio de todo

convierte toda la oracion a minusculas

un copy /paste

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 modifica_primera(tx : string80) : string80;
   begin
 
   // convierte a minusculas
tx:=LOCASE(tx);
 
      if tx[1] <> ' ' then
      tx[1] := upcase(tx[1]);
      blanco := false;
      for cont := 1 to length(tx) do
      begin
         if tx[cont] = ' ' then
         blanco := true
       else
          blanco := false;
          if blanco = true then
         if tx[cont + 1] <> ' ' then
          begin
              tx[cont + 1] := upcase(tx[cont + 1]);
              blanco := false;
         end;
      end;
       modifica_primera := tx;
   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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por Pato (11 intervenciones) el 19/02/2015 04:40:25
Veo que estas queriendo hacer, pero no entiendo como usas Locase. Es una funcion que pasa a minuscula, pero no la declaraste, y no se como hacerlo.
No me corre por falta de declaracion del Locase (No es una funcion nativa de Pascal).
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

Convertir cada primera letra a Mayusculas

Publicado por ramon (2158 intervenciones) el 18/02/2015 00:20:51
Perdona pero tu pides esto .
Reciba una frase cualquiera, como "Hola mundo, estamos en 2015" y me devuelva "Hola Mundo Estamos En 2015".
las primeras mayúsculas.
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

Convertir cada primera letra a Mayusculas

Publicado por MMan (5 intervenciones) el 18/02/2015 16:44:36
agregando...

.... y el resto de las letras en minusculas
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

Convertir cada primera letra a Mayusculas

Publicado por ramon (2158 intervenciones) el 18/02/2015 23:45:53
Perdona no diviso yo eso.

Buenos dias. Estoy en mi primer año de Ingenieria & nesesito un programa que utilize una funcion que haga lo siguiente:
Reciba una frase cualquiera, como "Hola mundo, estamos en 2015" y me devuelva "Hola Mundo Estamos En 2015".
Obviamente, en Turbo Pascal. Tengo una idea de como se hace, con los ORD % Chr, pero los espacios, los identifico facilmente, y debo usarlos, pero no se como. Cualquier ayuda sera agradecida
Desde ya, muchas gracias.

Esta es tu petición y por lo que puedes apreciar todos lo interpretamos a si.
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
sin imagen de perfil

Convertir cada primera letra a Mayusculas

Publicado por Pato (11 intervenciones) el 19/02/2015 04:38:26
Esta aclarado mas adelante. "hOlA MUnDo" deberia ser "Hola Mundo" en vez de "HOlA MUNDo".
Gracias por comentar?
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