Difference between revisions of "Case/es"
(Use pascal highlighter) |
|||
(11 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Case}} | {{Case}} | ||
+ | [[category:Español]][[category:Castellano]] | ||
− | Case | + | '''Case''' abre una sentencia "case". La sentencia "case" compara el valor de una expresión ordinal con cada uno de los selectores que contiene, pudiendo tratarse de selectores de tipo [[Const|constante]], un subrango, o una lista de ellos separados por [[Comma|comas]]. El campo del selector se encuentra separado del campo de acción por [[Colon] | dos puntos ":"]. |
La sentencia "case" incluye [[Reserved word | las palabras reservadas]] [[Of]] y [[End]] . algunas veces [[Else]], también. | La sentencia "case" incluye [[Reserved word | las palabras reservadas]] [[Of]] y [[End]] . algunas veces [[Else]], también. | ||
− | < | + | <syntaxhighlight lang=pascal> |
case place of | case place of | ||
Line 15: | Line 16: | ||
end; | end; | ||
− | </ | + | </syntaxhighlight> |
=== QueEsCaracter === | === QueEsCaracter === | ||
− | < | + | <syntaxhighlight lang=pascal> |
function QueEsCaracter( c:char ):string; { recibe un parámetro "char" o carácter | function QueEsCaracter( c:char ):string; { recibe un parámetro "char" o carácter | ||
Line 36: | Line 37: | ||
end; | end; | ||
− | </ | + | </syntaxhighlight> |
− | == | + | == Variante Record == |
− | Case | + | La palabra reservada '''Case''' se utiliza también en la declaración de los [[Record|Registros variantes]]. Un registro variante se conoce también cómo "unión etiquetada". |
− | < | + | <syntaxhighlight lang=pascal> |
type | type | ||
Line 49: | Line 50: | ||
Escala_Celsius = -50 .. 50; | Escala_Celsius = -50 .. 50; | ||
− | Escala_Temperatura = ( | + | Escala_Temperatura = ( celsius, kelvin ) ; |
Temperatura = record | Temperatura = record | ||
case escala : Escala_Temperatura of | case escala : Escala_Temperatura of | ||
Line 56: | Line 57: | ||
end; | end; | ||
− | </ | + | </syntaxhighlight> |
+ | |||
+ | == Usando Sets (conjuntos) == | ||
+ | |||
+ | Si te gustan los conjuntos con Sets, este ejemplo es muy simple: | ||
+ | <syntaxhighlight lang=pascal> | ||
+ | type | ||
+ | medallas = (Oro, Plata, Bronce); // en caso que quieras que Oro inicie en 1, ponlo así (Oro=1, ...pero | ||
+ | {[ ... ]} | ||
+ | const | ||
+ | SMedallas: array [medallas] of string[6] = ('Oro', 'Plata', 'Bronce'); // en [medallas], debes cambiarlo a [Oro..Bronce] ;) | ||
+ | |||
+ | var | ||
+ | lugar: integer; /// lugar inicia en 0; | ||
+ | M: medallas; | ||
+ | {[ ... ]} | ||
+ | M := medallas(lugar); | ||
+ | case M of | ||
+ | Oro: ShowMessage('Ganaste la de ' + SMedallas[M]); | ||
+ | Plata: ShowMessage('Ganaste la de ' + SMedallas[M]); | ||
+ | Bronce: ShowMessage('Ganaste la de ' + SMedallas[M]); | ||
+ | else | ||
+ | ShowMessage('Mejor suerte la próxima! :)'); | ||
+ | end; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Declaro que este código es implementación propia no sacada de ningún libro, por tanto creo tener derecho a poner por lo menos un punto para commentarios a edgarrod71@gmail.com. | ||
+ | |||
+ | Otro ejemplo sin el arreglo SMedallas... | ||
+ | |||
+ | <syntaxhighlight lang=pascal> | ||
+ | type | ||
+ | medallas = (Oro, Plata, Bronce); | ||
+ | {[ ... ]} | ||
+ | var | ||
+ | lugar: integer; /// lugar inicia en 0; | ||
+ | M: medalla; | ||
+ | S: string; | ||
+ | {[ ... ]} | ||
+ | M := medalla(lugar); | ||
+ | case M of | ||
+ | Oro: writeStr(S, M); | ||
+ | Plata: writeStr(S, M); | ||
+ | Bronce: writeStr(S, M); | ||
+ | else | ||
+ | S := 'Mejor suerte la próxima! ;)'; | ||
+ | end; | ||
+ | ShowMessage(S); | ||
+ | </syntaxhighlight> | ||
== Leer más == | == Leer más == |
Latest revision as of 23:22, 24 January 2020
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
русский (ru) │
Case abre una sentencia "case". La sentencia "case" compara el valor de una expresión ordinal con cada uno de los selectores que contiene, pudiendo tratarse de selectores de tipo constante, un subrango, o una lista de ellos separados por comas. El campo del selector se encuentra separado del campo de acción por [[Colon] | dos puntos ":"].
La sentencia "case" incluye las palabras reservadas Of y End . algunas veces Else, también.
case place of
1: ShowMessage('Medalla de oro');
2: ShowMessage('Medalla de plata');
3: ShowMessage('Medalla de bronce');
else ShowMessage('Mejor suerte la siguiente vez');
end;
QueEsCaracter
function QueEsCaracter( c:char ):string; { recibe un parámetro "char" o carácter
{ y retorna un "string" o cadena }
var
s : string;
begin
s := '';
case c of
'0' .. '9' : s := 'digito (0-9)';
'a' .. 'z' : s := 'letras minúsculas(a-z)';
'A' .. 'Z' : s := 'letras mayúsculas (A-Z)';
'+' , '-' : s := 'signo (+ o -)';
end;
result := s;
end;
Variante Record
La palabra reservada Case se utiliza también en la declaración de los Registros variantes. Un registro variante se conoce también cómo "unión etiquetada".
type
Escala_Kelvin = 223 .. 323;
Escala_Celsius = -50 .. 50;
Escala_Temperatura = ( celsius, kelvin ) ;
Temperatura = record
case escala : Escala_Temperatura of
celsius : (valor_celcius : Escala_Celsius);
kelvin : (valor_kelvin : Escala_Kelvin);
end;
Usando Sets (conjuntos)
Si te gustan los conjuntos con Sets, este ejemplo es muy simple:
type
medallas = (Oro, Plata, Bronce); // en caso que quieras que Oro inicie en 1, ponlo así (Oro=1, ...pero
{[ ... ]}
const
SMedallas: array [medallas] of string[6] = ('Oro', 'Plata', 'Bronce'); // en [medallas], debes cambiarlo a [Oro..Bronce] ;)
var
lugar: integer; /// lugar inicia en 0;
M: medallas;
{[ ... ]}
M := medallas(lugar);
case M of
Oro: ShowMessage('Ganaste la de ' + SMedallas[M]);
Plata: ShowMessage('Ganaste la de ' + SMedallas[M]);
Bronce: ShowMessage('Ganaste la de ' + SMedallas[M]);
else
ShowMessage('Mejor suerte la próxima! :)');
end;
Declaro que este código es implementación propia no sacada de ningún libro, por tanto creo tener derecho a poner por lo menos un punto para commentarios a edgarrod71@gmail.com.
Otro ejemplo sin el arreglo SMedallas...
type
medallas = (Oro, Plata, Bronce);
{[ ... ]}
var
lugar: integer; /// lugar inicia en 0;
M: medalla;
S: string;
{[ ... ]}
M := medalla(lugar);
case M of
Oro: writeStr(S, M);
Plata: writeStr(S, M);
Bronce: writeStr(S, M);
else
S := 'Mejor suerte la próxima! ;)';
end;
ShowMessage(S);