BotonMenu
BotonIndice

Visita : http://www.conoce3000.com
Paypal : https://www.paypal.me/conoce3000/1

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL

PASCAL CON FREE PASCAL


6. FUNCIONES, PROCEDIMIENTOS Y UNIDADES.
6.8. PROCEDIMIENTOS Y FUNCIONES BÁSICAS DE LA UNIDAD SYSTEM, SYSUTILS Y MATH.
6. FUNCIONES, PROCEDIMIENTOS Y UNIDADES.
6.8. PROCEDIMIENTOS Y FUNCIONES BÁSICAS DE LA UNIDAD SYSTEM, SYSUTILS Y MATH.
6. FUNCIONES, PROCEDIMIENTOS Y UNIDADES.
6.8. PROCEDIMIENTOS Y FUNCIONES BÁSICAS DE LA UNIDAD SYSTEM, SYSUTILS Y MATH.

SIGUIENTE

SIGUIENTE

SIGUIENTE


La unidad System es la unidad que se incluye por defecto en cualquier programa, no es necesario indicar su uso con la palabra reservada use. En la unidad System se encuentran los procedimientos antes vistos como: Writeln,Readln, ord, etc.

En este capítulo sólo se explicarán algunas de las funciones y procedimientos de uso más común, dejando el resto (procedimientos y funciones, variables, constantes y tipos de datos) para otros capítulos.

A continuación algunos de los procedmientos y funciones de uso más común de la unidad System, Sysutils y Math :

‒ Unidad System.
‒ 1. Include y Exclude.

Estas rutinas se usan con conjuntos, Include permite incluir un elemento al conjunto y Exclude permite retirar un elemento del conjunto. Include y Exclude usan dos parámetros el primero de tipo conjunto y el segundo parámetro del tipo de dato del elemento que usa el conjunto, el resultado de la operación se devuelve en el primer parámetro. Ejemplo:


Descargar
{$codepage UTF8}

TYPE

  TMayusculas = Set of 'A'..'Z';

VAR

  Conj01:TMayusculas;

PROCEDURE MostrarConj(Conj:TMayusculas);
  var a:char;
      cad:string;
  Begin
    Write('[ ');
    cad:='';
    for a:='A' to 'Z' do  if (a in Conj) then cad:=cad+a+',';
    if (length(cad)>0) then cad[length(cad)]:=' '; //borra la coma adicional
    Write(cad);
    Writeln(']')
  End;

BEGIN
  Conj01:=[];
  MostrarConj(Conj01);

  Include(Conj01,'A');
  MostrarConj(Conj01); // equivalanete a Conj01:=Conj01+['A'];

  Include(Conj01,'B');
  MostrarConj(Conj01); // equivalanete a Conj01:=Conj01+['B'];

  Exclude(Conj01,'A'); // equivalanete a Conj01:=Conj01-['A'];
  MostrarConj(Conj01)
END.
Código fuente 26: Ejemplo Include y Exclude.
Descargar

‒ 2. Pred y Succ.

Estas rutinas son funciones y devuelven el elemento anterior y el siguiente, de un tipo de dato ordinal que son los tipos de datos enteros (excepto int64 y qword), booleanos, Caracteres, enumerados y subrangos. Estas funciones aceptan un parámetro que tiene que ser un tipo de dato ordinal. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
 Writeln('Pred(0) : ',pred(0));
 Writeln('Succ(1) : ',Succ(1));
 Writeln('Pred(''b'') : ',pred('b'));
 Writeln('Succ(''a'') : ',succ('a'))
END.
Código fuente 27: Ejemplo Pred y Succ.
Descargar

‒ 3. Paramcount y Paramstr.

Paramcount es una función que devuelve el número de argumentos ingresados desde la línea de comandos y Paramstr es otra función que devuelve una cadena de caracteres del argumento indicado en su parámetro. Paramstr es el equivalente a la variable matricial argv. Paramcount no tiene parámetros. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
  Writeln('Parametros : ',ParamCount)
  Writeln('Argumentos : '+ParamStr(0)+' '+ParamStr(1)+' '+ParamStr(2));
  Writeln('Argumentos : '+argv[0]+' '+argv[1]+' '+argv[2]);
  Readln;
END.
Código fuente 28: Ejemplo Paramcount y Paramstr.
Descargar

‒ 4. BinStr, HexStr y OctStr.

Estas funciones tienen dos parámetros, se usan para convertir un valor numérico de tipo entero a su representación binaria, hexadecimal y Octal como una cadena de caracteres, el primer parámetro se usa para pasar el valor numérico y el segundo parámetro la cantidad de dígitos para su representación. Ejemplo:


Descargar
{$codepage UTF8}

VAR p:longint;

BEGIN
  p:=1258469723;
  Writeln('El numero :',p);
  Writeln('En Binario es :',BinStr(p,32));
  Writeln('En Octal es :',OctStr(p,16));
  Writeln('En Hexadecimal es :',HexStr(p,8));
END.
Código fuente 29: Ejemplo BinStr, OctStr, HexStr.
Descargar

‒ 5. Str y Val.

Str es un procedimiento que permite cambiar el valor numérico ingresado en su primer parámetro, en una cadena de caracteres. Str sólo usa dos parámetros, en el segundo parámetro se devuelve la cadena de caracteres con el valor numérico convertido. Cuando se ingresa el valor numérico se le puede indicar el ancho y la cantidad de decimales, usando los dos puntos del mismo modo como se hace para mostrar decimales con las rutinas write o writeln. Val realiza el proceso contrario, convierte una cadena de caracteres que representan un valor numérico en un valor numérico de tipo longint, real y byte. Se debe ingresar la cadena de caracteres como primer parámetro y en el segundo parámetro se devuelve el resultado de la conversión. Si la conversión no falla el tercer parámetro devuelve como código de error un 0, pero si la conversión falla entonces devuelve la posición del primer carácter en donde ocurrió el error. Val sólo usa tres parámetros. Ejemplo:


Descargar
{$codepage UTF8}

VAR p:single;
    cad:string;
    error:integer;

BEGIN
  Write('Ingrese un numero :');
  readln(p);
  Str(p:8:3,cad);
  Writeln('El numero como cadena de caracteres : ',cad);

  Write('Ingrese otro numero :');
  readln(cad);
  Val(cad,p,error);
  if (error>0) then Begin
                      Writeln('El numero ingresado es incorrecto');
                      Writeln('posicion del error : ',error);
                      Writeln('numero ingresado : ',cad)
                    End
  else Begin
         Writeln('El numero ingresado es correcto');
         Writeln('no se encontro error : ',error);
         Writeln('numero ingresado : ',p:10:4)
       End
END.
Código fuente 30: Ejemplo Str y Val.
Descargar

‒ 6. Concat, Copy, Delete, Insert y Pos.

Concat es una función que nos permite unir cadenas de caracteres es similar al operador + para las cadenas de caracteres. Copy es una función que nos permite obtener una copia de una cadena de caracteres, indicando desde que posición se desea copiar y la cantidad en adelante de los caracteres a copiar. Esta función tiene tres parámetros, el primero es la cadena de caracteres que se usará para obtener la copia, el segundo la posición inicial desde donde se obtendrá la copia, y el tercer parámetro la cantidad de caracteres a copiar. Delete, permite borrar caracteres de una cadena de caracteres. Delete es un procedimiento que tiene la misma cantidad de parámetros que Copy, en donde el primero es la cadena de caracteres al cual se le borrarán los caracteres, el segundo la posición inicial desde donde se borrarán los caracteres, y el tercer parámetro la cantidad de caracteres a borrar. La cadena con los caracteres borrados se devuelve en el primer parámetro. Insert, este procedimiento nos permite insertar una cadena de caracteres en otra cadena de caracteres, sólo tiene tres parámetros el primero es la cadena de caracteres a insertar, el segundo parámetro es la cadena de caracteres a la cual se le insertará la cadena de caracteres del primer parámetro, y el tercer parámetro indica la posición desde donde se insertará la cadena de caracteres. Pos, es una función que nos permite buscar una cadena de caracteres o un carácter en otra cadena de caracteres, devolviéndonos un número entero que nos indica la posición en donde se encontró la cadena de caracteres o el carácter, Tiene sólo dos parámetros, el primero es la cadena de caracteres o carácter a buscar, el segundo parámetro la cadena de caracteres en donde se realizará la búsqueda. Ejemplo:


Descargar
{$codepage UTF8}

VAR cad:string[20];
    CadCopia:string;

BEGIN
 cad:=Concat('La rosa',' es maligna');
 Writeln(cad);
 CadCopia:=Copy(cad,12,7);
 Writeln('cadCopia = ',cadCopia);
 delete(cad,4,4);
 Writeln(cad);
 insert('espina',cad,4);
 Writeln(cad);
 Writeln('La palabra espina esta en la posicion : ',pos('espina',cad));
 Writeln('La palabra rosa esta en la posicion : ',pos('rosa',cad))
END.
Código fuente 31: Ejemplo Concat, Copy, Delete, Insert y Pos.
Descargar

‒ 7. SetLength y StringOfChar.

SetLength es un procedimiento que nos permite cambiar la cantidad de caracteres de una cadena de caracteres, aumentando o disminuyéndolo. Cuando aumentamos la cantidad de caracteres, entonces se añadirán caracteres no válidos, con lo que el programador es responsable de volver a colocar caracteres adecuados. SetLength sólo tiene dos parámetros el primero es la cadena de caracteres a modificarse, y el segundo es un número entero que se usara para cambiar la cantidad de caracteres. StringOfChar es una función que permite crear una cadena de caracteres a partir de un carácter que se repetirá según la cantidad indicada. Tiene dos parámetros el primero es el carácter a repetirse y el segundo la cantidad de veces que se va a repetir. Ejemplo:


Descargar
{$codepage UTF8}

VAR cad:string[20];

BEGIN
  cad:='La historia de un hombre';
  SetLength(cad,10);
  Writeln(StringofChar('*',10));
  Writeln(cad);
  Writeln(StringofChar('*',10))
END.
Código fuente 32: Ejemplo SetLength StringOfChar.
Descargar

‒ 8. LowerCase y UpCase.

Dos funciones que nos permiten cambiar a minúsculas o mayusculas un texto ingresado como cadena de caracteres, sólo funciona con letras en el rango de a..z, no se incluye la ñ y tampoco acentos. Ambas usan un parámetro que es la cadena de caracteres a convertirse a minúsculas o mayúsculas. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
 Writeln(lowercase('ABCDEFGHIJKLMNOPQRSTUVWXYZ'));
 Writeln(upcase('abcdefghijklmnopqrstuvwxyz'))
END.
Código fuente 33: Ejemplo LowerCase, UpCase.
Descargar

‒ 9. Abs y Odd.

Dos funciones, la primera Abs devuelve el valor absoluto de un número entero. Odd devuelve true si el número es impar o false si el número es par. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
 Writeln(Abs(-58));
 Writeln(Abs(48));
 Writeln(odd(357));
 Writeln(odd(458))
END.
Código fuente 34: Ejemplo Abs y Odd.
Descargar

‒ 10. ArcTan, Cos, Sin.

Tres funciones básicas de trigonometría, permiten devolver la tangente inversa (Arco tangente), coseno y seno de un número real que representan los grados en radianes. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
 Writeln(ArcTan(34):10:3);
 Writeln(Sin(22):10:3);
 Writeln(Cos(15):10:3)
END.
Código fuente 35: Ejemplo ArcTan, Cos y Sin..
Descargar

‒ 11. Dec, Inc.

Procedimientos que permiten decrecer e incrementar el valor de un tipo de dato entero o enumerado. Sólo tienen un parámetro que es valor a incrementar o decrecer. Ejemplo:


Descargar
{$codepage UTF8}

VAR a:byte;
    c:char;

BEGIN
 a:=5;
 Dec(a);
 Writeln(a);
 Inc(a);
 Writeln(a);
 c:='B';
 Dec(c);
 Writeln(c);
 Inc(c);
 Writeln(c)
END.
Código fuente 36: Ejemplo Dec y Inc.
Descargar

‒ 12. Frac, Int, Trunc, Round.

Frac es una función que nos permite obtener la parte fraccionaria de un número real ingresado como parámetro, el valor devuelto es de tipo real. Int es una función que devuelve la parte entera de un número real ingresado como parámetro, el valor devuelto es de tipo real. Trunc es similar a la función Int, la diferencia se encuentra en que el valor devuelto es un número de tipo entero. Round, es la función que redondea un número real al entero más cercano del parámetro ingresado, siguiendo las siguientes condiciones: a) Para un parámetro mayor que 0, se redondea hacia la derecha de 0 para partes fraccionarias mayores o iguales que 0.5, y se redondea hacia la izquierda para partes fraccionarias menores que 0.5. b) Para un parámetro menor que 0, se redondea el numero hacia la izquierda para partes fraccionarias mayores o iguales a 0.5, y se redondea hacia la derecha para partes fraccionarias menores que 0.5. La función round devuelve un valor de tipo entero.


Descargar
{$codepage UTF8}

BEGIN
 Writeln(Frac(3.45):10:3);
 Writeln(Int(3.45):10:3);
 Writeln(Trunc(3.45));
 Writeln(Round(3.658));
 Writeln(Round(3.202));
 Writeln(Round(-2.422));
 Writeln(Round(-2.722))
END.
Código fuente 37: Ejemplo Frac, Int, Trunc y Round.
Descargar

‒ 13. Hi, Lo, Swap.

Estas funciones permiten obtener la mitad de los bytes de la izquierda o de la derecha, o intercambiarlos, de una variable de tipo entero. Si la variable tiene un tamaño de 8 bytes, hi devuelve los 4 bytes de la izquierda. Y la función Lo, devuelve los 4 bytes de la derecha. La función swap los intercambia. Estas funcione devuelven un tipo de dato entero. Ejemplo:


Descargar
{$codepage UTF8}

VAR N01 : int64; //8  bytes
    N02 : longint; //4 bytes
    N03 : integer; // 2 bytes

BEGIN
 N01:=$122dAB4589FD4423; //
 N02:=$2dAB4589;
 N03:=$2dAB;
 Writeln(HexStr(Hi(N01),8)); // devuelve los 4 bytes de la izquierda
 Writeln(HexStr(Hi(N02),4)); // devuelve los 2 bytes de la izquierda
 Writeln(HexStr(Hi(N03),2)); // devuelve el byte de la izquierda
 Writeln(HexStr(Lo(N01),8)); // devuelve los 4 bytes de la derecha
 Writeln(HexStr(Lo(N02),4)); // devuelve los 2 bytes de la derecha
 Writeln(HexStr(Lo(N03),2)); // devuelve el byte de la derecha

 Writeln('Antes de intercambiar : ',N01,'  ',HexStr(N01,16));
 N01:=swap(N01);
 Writeln('Despues de intercambiar : ',N01,'  ',HexStr(N01,16));
END.
Código fuente 38: Ejemplo Hi, Lo y Swap.
Descargar

‒ 14. Pi.

Esta función devuelve el valor de Pi = Π = 3.141593...


Descargar
{$codepage UTF8}

BEGIN
  Writeln(Pi:20:2);
  Writeln(Pi:20:4);
  Writeln(Pi:20:6);
  Writeln(Pi:20:8);
  Writeln(Pi:20:17);
END.
Código fuente 39: Ejemplo Pi.
Descargar

‒ 15. Exp, Ln.

La función Exp permite devolver el número neperiano elevado al parámetro ingresado, la función devuelve un valor de tipo real. La función Ln, permite calcular el logaritmo neperiano, el valor devuelto es de tipo real. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
  Writeln(Exp(1):10:3);
  Writeln(Ln(2.718):10:3)
END.
Código fuente 40: Ejemplo Exp y Ln.
Descargar

‒ 16. Sqr, Sqrt.

La función Sqr, devuelve el cuadrado del número ingresado como parámetro y la función Sqrt devuelve la raíz cuadrada del número ingresado como parámetro. El valor devuelto por la función Sqr es de tipo entero y el devuelto por la función Sqrt es de tipo real. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
  Writeln(Sqr(12):10);
  Writeln(Sqrt(144):10:3)
END.
Código fuente 41: Ejemplo Sqr y Sqrt.
Descargar

‒ 17. Random y randomize.

Estas funciones nos permiten crear o generar números aleatorios, Random devuelve un numero aleatorio real entre 0.0 y 1.0, incluyendo el 0.0 excluyendo el 1, pero cuando Random se usa con un parámetro, Random devuelve un número entero aleatorio entre 0 y menor que el parámetro ingresado, el parámetro debe ser un número entero positivo. Randomize es un procedimiento que permite inicializar el generador de números aleatorios. Randomize se debe usar antes de Random, para que de esta manera se generen números más cercanos a una verdadera aleatoriedad. Ejemplo:


Descargar
{$codepage UTF8}

BEGIN
  Randomize;
  Writeln(random:10:3);
  Writeln(random(12));
  Writeln(Int(random*7+2):10:3) //2 a 8
  Writeln(Int(random*9+10):10:3) //10 a 18
END.
Código fuente 42: Ejemplo Random y Randomize.
Descargar

‒ Unidad sysutils.
‒ 1. StrToInt y StrToFloat.

Estas dos funciones son equivalentes al procedimiento Val, permiten convertir cadenas de caracteres que representan valores numéricos a un valor numérico de tipo entero (StrToInt) o real (StrToFloat). Estas funciones se encuentran en la unidad Sysutils. Si la conversión falla entonces se genera una excepción de tipo EConvertError. Las Excepciones se verán más adelante. Ejemplo:


Descargar
{$codepage UTF8}

USES sysutils;

BEGIN
  Writeln(StrToInt('4589'));
  Writeln(StrToFloat('456.89'):2:3);
  Writeln(StrToFloat('565.9.0')) //genera excepcion EConvertError
END.
Código fuente 43: Ejemplo StrToInt y StrToFloat.
Descargar

‒ 2. IntToStr, FloatToStr.

Estas funciones se encuentran en la unidad Sysutils. IntToStr es una función que convierte un número entero en una cadena de caracteres. FloatStr, permite convertir un número real en una cadena de caracteres con una precisión de visualización de 15 dígitos. Ejemplo:


Descargar
{$codepage UTF8}

USES sysutils;

BEGIN
  Writeln(IntToStr(4569));
  Writeln(IntToStr(-4569));
  Writeln(FloatToStr(1234567890.123456789));
  Writeln(FloatToStr(123456789012345.1234567));
  Writeln(FloatToStr(5e100))
END.
Código fuente 44: Ejemplo IntToStr y FloatToStr.
Descargar

‒ 3. Format.

Esta función se encuentra en la unidad Sysutils, nos permite convertir un tipo de dato entero, real y cadenas de caracteres a una cadena de caracteres con un formato indicado por el primer parámetro. El primer parámetro de esta función es una cadena de caracteres a menudo conocido como cadena de formato, consiste en dos tipos de elementos: caracteres a mostrar en pantalla y órdenes de formato que definen la forma que tendrán los datos a convertirse. Una orden de formato empieza con un signo de porcentaje % y luego va seguido por el código del formato. Debe haber el mismo número de órdenes de formato como el mismo número de datos a convertir. Los datos a convertir se ingresan en el segundo parámetro, separados por comas y encerrados entre corchetes. Las ordenes de formatos disponibles se muestran a continuación:

Orden de formato

Formato

%d

Convierte un tipo de dato entero en cadena de caracteres.

%e

Convierte un tipo de dato real en cadena de caracteres con notación científica.

%f

Convierte un tipo de dato real en cadena de caracteres con notación de punto fijo.

%g

Convierte un tipo de dato real en cadena de caracteres con notación científica o notación de punto fijo, dependiendo de cuál sería el resultado más próximo.

%m

Convierte un tipo de dato real en cadena de caracteres con notación de punto fijo, colocando el símbolo de moneda delante del dato convertido. El símbolo de moneda que se colocará será el usado por la configuración regional del sistema operativo. Se puede cambiar el símbolo monetario cambiando el valor de la variable CurrencyString.

%n

Es igual que %f, con la diferencia que coloca un separador de miles cada 3 dígitos.

%p

Convierte un valor de tipo puntero en una cadena de caracteres que representan los 8 ó 16 dígitos hexadecimales de un puntero. Los punteros se explicarán má adelante.

%s No convierte pero su utilidad, consiste en permitir dar un formato a una cadena de caracteres, con el modificador de precisión.
%u Convierte un tipo de dato entero en cadena de caracteres. Es similar que %d, pero sólo se usa con números enteros positivos, si usa números negativos obtendrá resultados inesperados.
%x

Convierte un tipo de dato numérico entero en su representación hexadecimal.

Las órdenes de formato también disponen de modificadores que especifican la longitud de campo de visualización, el número de decimales y el ajuste a la izquierda. Estos modificadores se colocan entre el símbolo de porcentaje y el código de formato, en el siguiente orden, primero el ajuste a la izquierda, segundo la longitud de campo de visualización y separado por un punto el número de decimales. Por ejemplo %10.4f da formato a un número de al menos 10 caracteres con cuatro decimales. Si se aplica a cadenas o a enteros, el modificador para los decimales especifica la longitud máxima del campo de visualización. Por ejemplo, %5.7s da formato a una cadena de caracteres de al menos 5 caracteres de longitud y no más de 7. Por omisión el modificador de ajuste a la izquierda, si se omite da formato al dato colocándolo a la derecha. Para el ajuste a la izquierda se usa el símbolo -. Por ejemplo %-10.2f hace que se ajuste a la izquierda un número en coma flotante con al menos 10 caracteres y dos decimales. Ejemplo :


Descargar
{$codepage UTF8}

USES sysutils;

BEGIN
   Writeln(Format('Formato Decimal %d ',[123456789012345]));
   Writeln(Format('Formato Notacion cientifica %e ',[123456789012345.123456]));
   Writeln(Format('Formato notacion punto fijo %f ',[123456789012345.123456]));
   Writeln(Format('Formato generico %g ',[123456789012345.123]));
   Writeln(Format('Formato generico %g ',[12345678901234567890.123]));
   CurrencyString:='$';
   Writeln(Format('Formato moneda %m ',[16879.23]));
   Writeln(Format('Formato generico %n ',[1687901253.23]));
   Writeln(Format('Formato cadena de caracteres %.4s ',['Holanda']));
   Writeln(Format('Formato cadena de caracteres %d ',[125678]));
   Writeln(Format('Formato hexadecimal %x ',[-256]));

   Writeln('Formato con modifificadores ');
   Writeln(Format('|%10.4f|',[123.23]));
   Writeln(Format('|%-10.4f|',[123.23]));
   Writeln(Format('|%10.4s|',['Hola, aloh']));
   Writeln(Format('|%-10.4s|',['Hola, aloh']));
END.
Código fuente 45: Ejemplo Format.
Descargar

‒ 4. FormatFloat.

Es una función que se encuentra en la unidad Sysutils, es parecido a Format pero sólo se usa con números reales, en el primer parámetro se ingresa una máscara de formato, y en el segundo parámetro el número real a convertir en cadena de caracteres. La máscara de formato puede constar de tres partes separados por un punto y coma, en donde la primera parte se usa para valores positivos, la segunda para valores negativos y la última para el cero. En Cualquiera de las tres partes de la cadena de formato se pueden usar los siguientes comodines:

Comodin

Uso

0

Coloca ceros si el número contiene menos dígitos que el formato numérico.

#

Sólo coloca dígitos significativos, no coloca ceros adicionales.

.

Indica el uso del punto decimal en la conversión.

, Indica el uso del separador de miles en la conversión
E+, E-

Indica el uso de notación cientifica.

Si un número contiene más dígitos a la derecha del punto de decimales que los comodín 0 y # que contiene la máscara de formato, entonces los dígitos se redondeará de la forma apropiada. Ejemplo:


Descargar
{$codepage UTF8}

USES Sysutils;

VAR n:double;
    cad:string;

BEGIN
  Writeln(FormatFloat('000.000',3.5689));
  Writeln(FormatFloat('###.###',003.5689));
  Writeln(FormatFloat('0000',43.56));
  Writeln(FormatFloat('####',0043.56));
  Writeln(FormatFloat('0.#',0.5689));
  Writeln(FormatFloat('#.0',0.5689));

  Writeln(FormatFloat(',#.00',100000.157));
  Writeln(FormatFloat('#.00,',100000.157));

  Write('Ingrese un numero ');readln(n);
  //Cuando es positivo 3 decimales
  //Cuando es negativo 4 decimales
  //Cuando es cero en blanco
  cad:=FormatFloat(',#.000;,#.00000;#',n);
  Writeln(cad)
END.
Código fuente 46: Ejemplo FormatFloat.
Descargar

‒ 5. TrimLeft, TrimRight, Trim.

Estas funciones se encuentran en la unidad sysutils. TrimLeft, permite borrar los espacios en blanco colocados a la izquierda o inicio de una cadena de caracteres, TrimRight borra los espacios en blanco colocados a la derecha o al final de una cadena de caracteres y Trim borra los espacios en blanco colocados a la izquierda o derecha de una cadena de caracteres. Sólo usan un parámetro que es la cadena de caracteres a ser modificada. Ejemplo:


Descargar
{$codepage UTF8}

USES Sysutils;

VAR cad:string[50];

BEGIN
 cad:='        Mucho espacio       ';
 Writeln('|',cad,'|');
 Writeln('|',TrimLeft(cad),'|');
 Writeln('|',TrimRight(cad),'|');
 Writeln('|',Trim(cad),'|')
END.
Código fuente 47: Ejemplo TrimLeft, TrimRight, Trim.
Descargar

‒ 6. Now, FormatDateTime, StrToDate.

Now es una función que devuelve la fecha y hora actual del sistema en un número de tipo double no tiene parámetros y FormatDateTime es la función que se encarga de convertir el número devuelto por la función Now en una cadena de caracteres con formato de fecha y hora. La función FormatDateTime usa dos parámetros, el primero es una cadena de caracteres con los caracteres de formato y el segundo parámetro es un número de tipo double que representa la fecha y hora. El compilador considera la fecha 30 de diciembre de 1899 como el numero 0, el 1 como el 30/12/1899, el 2 como el 01/01/1900 y así sucesivamente. Las horas se representan en la parte decimal y se usan los valores entre 0 hasta 0.99999999, que se corresponde con los momentos del día de entre las 00:00:00:000 horas y 23:59:59:999 horas. La función StrToDateTime, convierte una cadena de caracteres que representa la fecha y hora en el número de tipo double que representa la fecha y hora. Todas estas funciones se encuentran en la unidad Sysutils. Los siguientes caracteres se pueden usar para dar formato a la fecha y hora:

Caracter

Formato

c

Fecha corta y Hora corta.

d

Día del mes.

dd

Día del mes con cero.

ddd

Dia de la semana. (abreviado)

dddd

Día de la semana. (completo)

ddddd

Formato de fecha corto.

dddddd

Formato de fecha largo.

m Mes del año.
mm Mes del año con cero.
mmm Nombre del mes. (abreviado)
mmmm Nombre del mes. (completo)
y Año con dos dígitos.
yy Año con dos dígitos.
yyyy Año con cuatro dígitos.
h Hora.
hh Hora con cero.
n Minuto,
nn Minuto con cero.
s Segundo.
ss Segundo con cero.
t Hora en formato corto.
tt Hora en formato largo.
am/pm Usa relojo de 12 horas, coloca am o pm.
a/p Usa relojo de 12 horas, coloca a o p.
/ Separador de fecha.
: Separador de hora.
'xxx' Para colocar texto adicional al formato.
"xxx" Para colocar texto adicional al formato.
z

Milisegundos

Ejemplo:


Descargar
{$codepage UTF8}

USES Sysutils;

VAR FechaHora:extended;

BEGIN
  FechaHora:=Now;
  Writeln(FormatDateTime('c',FechaHora));
  Writeln(FormatDateTime('ddddd',FechaHora));
  Writeln(FormatDateTime('dddddd',FechaHora));
  Writeln(FormatDateTime('d/m/y',FechaHora));
  Writeln(FormatDateTime('dd/mm/yy',FechaHora));
  Writeln(FormatDateTime('dd/mm/yyyy',FechaHora));
  Writeln(FormatDateTime('ddd d "de" mmm "de" yyyy',FechaHora));
  Writeln(FormatDateTime('dddd dd "de" mmmm "de" yyyy',FechaHora));
  Writeln(FormatDateTime('h:n:s',FechaHora));
  Writeln(FormatDateTime('hh:nn:ss',FechaHora));
  Writeln(FormatDateTime('hh:nn:ss:z',FechaHora));
  Writeln(FormatDateTime('hh:nn:ss:z am/pm',FechaHora));
  Writeln(FormatDateTime('hh:nn:ss:z a/p',FechaHora));
  Writeln(FormatDateTime('t',FechaHora));
  Writeln(FormatDateTime('tt',FechaHora));

  Writeln(FormatDateTime('"que es :" c',0.0)); // 30/12/1899
  Writeln(FormatDateTime('"que es :" c',1.0)); // 31/12/1899
  Writeln(FormatDateTime('"que es :" c',2.0)); // 01/01/1900
  Writeln(FormatDateTime('"que es :" c',2.49999999));
  Writeln(FormatDateTime('"que es :" c',2.99999999));

  Writeln(FormatDateTime('"que es :" hh:nn:ss:z',2.99999999));

  FechaHora:=StrToDateTime('20/12/2010 10:20:35');
  Writeln(FechaHora)
END.
Código fuente 48: Ejemplo Now, FormatDateTime, StrToDateTime
Descargar

‒ 7. Date y Time.

La función Date devuelve la fecha actual del sistema y la función time la hora actual del sistema en un numero de tipo double, estas funciones no tienen parámetros. Estas funciones se encuentran en la unidad sysutils. Ejemplo:


Descargar
{$codepage UTF8}

USES Sysutils;

VAR Fecha,Hora:extended;

BEGIN
  Fecha:=Date;
  Writeln(FormatDateTime('ddddd',Fecha));
  Hora:=Time;
  Writeln(FormatDateTime('tt:z',Hora));
END.
Código fuente 49: Ejemplo Date y Time.
Descargar

‒ 8. IncMonth, DayOfWeek, IsLeapYear.

Estas funciones se encuentran en la unidad Sysutils. IncMonth permite incrementar o decrecer los meses de una fecha representada en un tipo de dato double, la función tiene dos parámetros el primero es la fecha en un tipo de dato double, y el segundo la cantidad de meses a incrementar o decrecer. La función DayOfWeek devuelve el día de la semana que corresponde a una fecha, en donde Domingo es 1, lunes es 2, y así sucesivamente. IsLeapYear, es otra función que devuelve true si el año ingresado como un número de tipo word es bisiesto, en caso contrario devuelve false. Ejemplo:


Descargar
{$codepage UTF8}

USES Sysutils;

VAR Fecha:extended;
    anio,n:integer;

BEGIN
  Fecha:=Date;
  Writeln('Hoy : ',FormatDateTime('ddddd',Fecha));
  Writeln('6 meses antes : ',FormatDateTime('ddddd',IncMonth(Fecha,-6)));
  Writeln('6 meses despues : ',FormatDateTime('ddddd',IncMonth(Fecha,6)));
  n:=DayOfWeek(Fecha);
  Case n of
    1 : Writeln('Hoy es Domingo ');
    2 : Writeln('Hoy es Lunes ');
    3 : Writeln('Hoy es Martes ');
    4 : Writeln('Hoy es Miercoles ');
    5 : Writeln('Hoy es Jueves ');
    6 : Writeln('Hoy es Viernes ');
    7 : Writeln('Hoy es Sabado ')
  End;
  anio:=StrToInt(FormatDateTime('yyyy',Fecha));
  if IsLeapYear(anio) then Writeln('El a',#164,'o es Bisiesto')
                      else Writeln('El a',#164,'o no es Bisiesto');
END.
Código fuente 50: Ejemplo IncMonth, DayOfWeek y IsLeapYear.
Descargar

‒ 9. StringReplace.

Esta función se encuentra en la unidad sysutils. Su funcionamiento es sencillo, y permite reemplazar una subcadena con otra dentro de una cadena de caracteres. La función consta de cuatro parámetros, el primero, la cadena en donde se realizará la búsqueda de la subcadena a reemplazar, el segundo la subcadena a buscar, el tercero la subcadena de reemplazo, y el último que son del tipo conjunto, que se usara para indicar como se hará el remplazo, si se coloca un conjunto vacío, es decir sólo dos corchetes, por defecto sólo remplazará la primera ocurrencia de la subcadena que se encuentre, considerando la diferencia entre mayúsculas y minúsculas, si coloca rfReplaceAll reemplazará todas las ocurrencias, y si se coloca rfIgnoreCase, reemplazara todas o la primera ocurrencia sin importar si se diferencia entre mayúsculas y minúsculas. Ejemplo:


Descargar
{$codepage utf8}
Uses sysutils,Math;

Var cad:String;

Begin
    cad:='La rosa tiene espinas';
    Writeln(cad);
    cad:=StringReplace(cad,'rosa','cactus',[]);
    cad:=StringReplace(cad,'La','El',[]);
    Writeln(cad);
    cad:='Jorge lava la ropa y jorge ve la TV';
    Writeln(cad);
    cad:=StringReplace(cad,'Jorge','Miguel',[rfReplaceAll,rfIgnoreCase]);
    Writeln(cad)
End.
Código fuente 51: Ejemplo StringReplace.
Descargar

‒ 10. RightStr y LeftStr.

La función RightStr permite recoger o tomar una cantidad de caracteres de una cadena contándolos desde la derecha. LeftStr hace lo contrario, permite recoger o tomar una cantidad de caracteres de una cadena contándolos desde la izquierda. Ejemplo:


Descargar
{$codepage utf8}
Uses sysutils,Math;
Var cad:string;
Begin
  cad:='Miguel Eduardo';
  Writeln('Nombre Completo : ',cad);
  Writeln('Primer Nombre : ',leftStr(cad,pos(' ',cad)));
  Writeln('Segundo Nombre : ',RightStr(cad,pos(' ',cad)));
End.
Código fuente 52: Ejemplo RightStr y LeftStr.
Descargar

‒ Unidad math.
‒ 1. Mean(media aritmetica), Sum, SumOfSquares, StdDev, Variance.

Estas funciones se encuentran en la unidad Math, son funciones estadísticas. Todas las funciones tienen un parámetro que tiene que ser un arreglo con todos los elementos de tipo de dato real. La función Mean permite obtener la media aritmética, Sum permite obtener la sumatoria de todos los números del arreglo, SumOfSquare permite obtener la sumatoria de todos los elementos elevados al cuadrado, StdDev permite obtener la desviación estándar de los elementos del arreglo, Variance permite obtener la varianza de los elementos del arreglo. Ejemplo:


Descargar
{$codepage UTF8}

USES math;

VAR numeros : array [1..5] of double = (1,2,3,4,5);

BEGIN
  Writeln(mean(numeros):10:3);
  Writeln(sum(numeros):10:3);
  Writeln(sumofsquares(numeros):10:3);
  Writeln(stddev(numeros):10:3);
  Writeln(variance(numeros):10:3)
END.
Código fuente 53: Ejemplo Mean, Sum, SumOfSquare, StdDev y Variance.
Descargar


Última revisión: 27/06/2014.



SIGUIENTE
SIGUIENTE
SIGUIENTE



 
‒ Comentarios y sugerencias.

Agradezco de antemano, todo comentario, sugerencia, y donativo (a través de Paypal me), que ayude a mejorar los contenidos educativos de Conoce 3000. Además, cualquier pregunta o duda que tengas lo puedes hacer por este medio. Pero, todo contenido que pueda resultar ofensivo, malicioso, racista, sexista, discriminatorio, obsceno, vulgar será eliminado.


Comments System WIDGET PACK






PORTADA |  INTERESANTE |  APUNTES |  LIBROS |  GALERIA


Creative Commons License


Todos los textos, imágenes y videos de Conoce3000 estan colocados bajo una licencia : Creative Commons Reconocimiento-NoComercial 3.0 Unported License.