Difference between revisions of "Case/es"

From Free Pascal wiki
Jump to navigationJump to search
(→‎Usando Sets (conjuntos): Remove personal information)
Line 69: Line 69:
 
var
 
var
 
   lugar: integer;  /// lugar inicia en 0;
 
   lugar: integer;  /// lugar inicia en 0;
 +
  M: medallas;
 
  {[ ... ]}
 
  {[ ... ]}
 
+
   M := medallas(lugar);
   case medallas(lugar) of
+
  case M of
       Oro:    ShowMessage('Ganaste la de ' + SMedallas[medallas(lugar)]);
+
       Oro:    ShowMessage('Ganaste la de ' + SMedallas[M]);
       Plata:  ShowMessage('Ganaste la de ' + SMedallas[medallas(lugar)]);
+
       Plata:  ShowMessage('Ganaste la de ' + SMedallas[M]);
       Bronce: ShowMessage('Ganaste la de ' + SMedallas[medallas(lugar)]);
+
       Bronce: ShowMessage('Ganaste la de ' + SMedallas[M]);
 
   else
 
   else
 
       ShowMessage('Mejor suerte la próxima! :)');  
 
       ShowMessage('Mejor suerte la próxima! :)');  
 
   end;
 
   end;
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
comments to edgarrod71@gmail.com
  
 
== Leer más ==
 
== Leer más ==

Revision as of 08:45, 29 August 2017

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
    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;

comments to edgarrod71@gmail.com

Leer más