Pascal/Turbo Pascal - ORD Y CHR

   
Vista:

ORD Y CHR

Publicado por JUAN jcanomart@hotmail.com (11 intervenciones) el 17/06/2013 18:28:59
Alguien me describe el funcionamiento de este programa?

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
program modificaciondecadena;
 
var
   cadenaoriginal:string[10];
   cadenamodificada:string[10];
   valornumerico:integer;
   control:integer;
 
begin
     writeln('Introduzca una cadena con mayúsculas y  minúsculas: ');
     readln(cadenaoriginal);
 
     cadenamodificada:=cadenaoriginal;
 
     for control:=1 to length(cadenaoriginal)do
         begin
              if(cadenaoriginal[control]=upcase(cadenaoriginal[control])) then
                   Begin
                        valornumerico:=ORD(cadenaoriginal[control]);
                        cadenamodificada[control]:=CHR(valornumerico+32);
                   End
              else
                  begin
                       cadenamodificada[control]:=upcase(cadenaoriginal[control]);
                  end;
              end;
 
     writeln('Esta es la cadena original: ',cadenaoriginal);
     writeln('Esta es la cadena modificada: ',cadenamodificada);
 
readln;
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

ORD Y CHR

Publicado por ramon (2072 intervenciones) el 19/06/2013 13:11:06
Mira el programa realiza el cambio de mayúsculas a minúsculas y viceversa.
En estas condiciones :

if(cadenaoriginal[control] = upcase(cadenaoriginal[control])) then

a qui comprueba si es mayúscula puesto que upcase lo pasa a mayúscula carácter a carácter.
Begin

si es mayúscula toma el numero de la letra con ord que devuelve el valor numérico
del carácter pasado
valornumerico:=ORD(cadenaoriginal[control]);

a qui lo pasamos a minúscula sumándole 32 al valor tomado antes
cadenamodificada[control]:=CHR(valornumerico+32);
End
else
begin
y sino es mayúscula la pasamos con upcase
cadenamodificada[control]:=upcase(cadenaoriginal[control]);
end;
espero esto sirva.
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

ORD Y CHR

Publicado por JUAN (11 intervenciones) el 19/06/2013 18:12:59
Gracias Ramon
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