presentacion crones

Upload: jocker-pepe-cantera

Post on 05-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/16/2019 Presentacion Crones

    1/212

    0N

    Objetvo: El alumno conocerá la funcionalidadde un rn y realizará su implementación.

  • 8/16/2019 Presentacion Crones

    2/212

  • 8/16/2019 Presentacion Crones

    3/212

      ttz ·u�

    E progra o s]m  emeJ1te oru  e demoo que ·a a pe a los uuio=

    e í

    de eme

    J te tbie mfsao= e jet odenes a ten lo peodieos o eJ1 dete ]1do momenU

     

    Ee demo sei

    a de 1, c: ar

    m

    1 ca,

    ] de ext i as copas el pg.a e n emoa S  mane ee o e emaede eodeJ:

    se.

    .

    r

    .

    deiea caa mÜ1to

    · lee oa o n e los o co teJ o eJ1 als: eo /e E os o do eaos beJ po los lso o por em]mtao ]liz1o e como cr o ah co op o e a e a da .

  • 8/16/2019 Presentacion Crones

    4/212

    . oio puede existi l·o er on o

    r

    usuio

     

    que esMa 1aJmaceado e eI

    diecorio

    merio co

    he e]

    1

    de edo

    d IBe de c  o onJ

     

    h de coe]e aon de ieo w a oe

    deen ihlda   oo oo siib a:

  • 8/16/2019 Presentacion Crones

    5/212

    Donde ·

    4 y 5 son Io s nco cpos rs aos pa ]

     c

    1 : o

    to d la

    u

    ó

    n y odn s o

    re dl comdo a j ut . Cada cpo pude sr W úro

    o do d1 aJ go p do= m as sco (n cando

    q

    oos Ios aos so

    Ig  t 

    os

    o

    a list� de nos tos spados por

    comas o

    g ones_

    E

    l s gcado de

    stos C  lpos s s :

    d

     

    d . ca  

    e

    l

    Ñiutos G9c2 H�as Q- 

    c Da 3c M s _ ¡ · c

    5 Das- smaa_ _

    S i se especa n cpo   , or O es s j cua cada sm .

    S i s spca c m c po ,ao = st se  j u a todo  1 l po_

    A füdc 2, 2 s espfc mutos.

  • 8/16/2019 Presentacion Crones

    6/212

    ,

     // //

    [@ ] 1 9 9 5 >>

  • 8/16/2019 Presentacion Crones

    7/212

    0

    ·a ·

     

    n mn sistea

    L

    inm

    ada smar tenda su p pi

    .

    inuid

    . P

    supue

    n

    en el c nta

    o

    de cada usmar sol se pei ia eje cu

    t eas p

    a

    a las que ese smo tenga

    peis � eje pl

    =

    mn umao qe n sea

    n da aag el sistea

  • 8/16/2019 Presentacion Crones

    8/212

    Ij ( (   o

    t

    a.

    P

    a

    \er La fni0

    1

    1alidad deo ·

    b

     

    e l comdo os ofree. de  mer asica Lassg nietes posi bildades:

    usk aa e  ,s p  d s

    Esuo lo :hemos co 

    ot mqin

    # ont

    -

    E ue

    s

    t

      b de  s pg   s

    .

    P  etar nesra 1ar ea o . e j en aremos ·

    t mqin # ont -

    Lo que se obtiee e edtor (e l qe ha ao defido e La ' aab le de elon   0   R e  e l qu podremos adr leas i  o d roab ua por ada tea que dseemosprogr .

  • 8/16/2019 Presentacion Crones

    9/212

    B ra ra rraa

    Podre

    m

    b

    tda nuestra prograci

    ó

    n de tea con

     

    .  

    maqua · c -r

    Ah

    ra

    es alga nta a rspct

     

    [ _ P. cre  c]i,.orn

    simpem

    e nte sereaiza

    lasiguiete cn

    :

    [ maqua   cta m  av

    _ P. er n prgra se d per iss

    de e  jucn especfa

    la ta

    bsouta de l scnp  

    _ L us1

    a

    s istad en e .c]

    L

    /

    c

    r

    o

    a

    ·

    1

    0

    1

    1

    puede

    aer us de cr_ P.

    que n usui utie s

     

    nes se debe de reaiz a sgiete inst

    cin

    :

    [ maqua · cta u usua

    L us

     

    as istads n e .]

    t · r

    y

    puede aer us de

    CI I

    L

  • 8/16/2019 Presentacion Crones

    10/212

    Realizar un rn para apagar el equipo a las

    siete y media de la mañana del mañana(ojo,hay que ser root para ejecutar esto):

    30 7 28 4 * /sbin/shutdown -h now

  • 8/16/2019 Presentacion Crones

    11/212

    2 Para hacer un .tar.gz de un directorio(como backup, por ejemplo), todos los díaslaborables a las 4:00 horas.

    1 15 kk

  • 8/16/2019 Presentacion Crones

    12/212

    3 Para que, cada hora, los sábados y domingos,se guarde en un archivo de log, las conexionesde red abiertas en el sistema:

    * * * 7 date>> /var/log/net_con.log;netstat -t >> /var/log/net_con.log

  • 8/16/2019 Presentacion Crones

    13/212

    4 Implementar un rn, el cual permita saberlos usuarios conectados al sistema cada

    viernes a las 20 horas y que muestre en unarchivo llamado sólo los siguientesdatos:

    - - D - - Q (

    h)

  • 8/16/2019 Presentacion Crones

    14/212

    Entregar bitácora de la práctca y subir elarchivo en EDUCAFI.

  • 8/16/2019 Presentacion Crones

    15/212

    E

  • 8/16/2019 Presentacion Crones

    16/212

    Introdcción a o Fltos Programas de UNIX que leen una entrada, realizan una

    transformación y escriben una salida .

    Ejemplos:

    v grep y al

    v or

    wc

    v ec.

    elecconan pare de una enrada

    Claca la enrada

    Cuena la enrada.

    Filtros de Datos o Filtros Programables

    v ed

    v awk

    dor de Fluo

    Flro programable con nax mlar al C

  • 8/16/2019 Presentacion Crones

    17/212

    z

    x v xb b x z

    , , wk, f,

    x

  • 8/16/2019 Presentacion Crones

    18/212

    x E v á á b  x

  • 8/16/2019 Presentacion Crones

    19/212

    Go , .

    g  patron v.... El comndo grep exmin los rchivos nombrdos (o l entrd

    estándr) e imprime cd líne que conteng un cso de ó. Ejemplos:

    grepn variable *.[ch] Localia "variable en archivosfuentes de e

    grepy mary $HOMElibagendaEncontrar el número de teléfono deMary

    who grep mary Is grepv .c

    -n Imprime lo números de líne

     v Invierte el sentido de l prueb

    Comprobar si mary inicio sesión

    Archivos que no sean fuentes de C

    -y Hce indistinto el ptrón en myúsculs o minúsculs

  • 8/16/2019 Presentacion Crones

    20/212

      xr in Rulrs

    r

     

    (y toaos los filtros)maneja

     

    patrones mucho más intricdos

    denomindos Expresiones Regulres . Ls expresiones regulres se especificn dndo un significdo especil

    ciertos crcteres .

    Algunos metcrcteres: " Ancla el patrón al inicio de la línea

    Ancla el patrón al final de la línea. [a-] Rango (cualquier minúscula)

    Ojo!!: [-] Complemento del Rango (cualquier caracter menos un dígito)

    Se acopla con cualquier caracter (Similar al para el Shell) Algunos ejemplos:

    Is grep'd Lista los nombres de directorios Is grep ' Lista los archivos que otros pueden leer y

    escribir.

  • 8/16/2019 Presentacion Crones

    21/212

  • 8/16/2019 Presentacion Crones

    22/212

    /etc/pas wd

  • 8/16/2019 Presentacion Crones

    23/212

    Expresones Regulares (cont) Operdor cerrdur '*

    Se aplica al caracter o metacaracter anterior (incluyendo un rango), y en conjuntoconcuerdan con cualquier número de acomplamientos sucesivos del caracter ometacaracter.

    Ejemplos:�x* Concuerda con una secuencia de x lo más larga posible.�[a-A-Z]* Concuerda con una cadena alfabética de cualquier longitud�.* Concuerda con cualquier cosa hasta una nueva línea�.*x Concuerda con cualquier cosa hasta la última x del renglón

    Adveencis:�* Se aplica exclusivamente a un caracter. fg* reconoce a una f seguida de varias

    g, y no una secuencia como fgfgfgfg.�* Reconoce cero, una o varias concordancias del caracter. Si queremos que

    reconoca por lo menos un caracter tendremos que duplicarlo. Por ejemplo parareconocer una cadena de letras la expresión correcta será[ a-A-Z] [a-A-Z]*

    �Ninguna expresión regular de grep reconoce el caracter nueva línea.

  • 8/16/2019 Presentacion Crones

    24/212

    ot Por defult, clsific su entrd por renglones en orden ASCII. Alguns

    de sus opciones:

    �-f Vuelve equivalentes mayúsculas y minúsculas.

    �-d Orden de diccionario. Ignora todos los caracteres

    excepto letras, dígitos y blancos.

    �-n Comparación numérica�-r Revierte el sentido de la comparación

    �-o Especifica un nombre de archivo para la salida

    �-u Suprime las líneas repetidas

    Ejemplos:

    �Is sortf

    �Iss sortn

    �Iss sortnr

    Clasifica los archivos por orden alfabético

    Clasifica los archivos más pequeños primero

    Clasifica los archivos más grandes primero

  • 8/16/2019 Presentacion Crones

    25/212

    ort (Campo )

    S u t qu j u t í. L t + qu t ; +O

    í. í j:�Is -1 sort +3nr Clasifica por conteo de bytes(primero el más grande)

    � who sort +4n Clasifica por tiempo desde inicio de sesión

    (primero el más antiguo)

  • 8/16/2019 Presentacion Crones

    26/212

    ftro El comando tr translitera los caracteres de su entrada.

    Uno de los usos más comunes es la conversión de mayúsculas y

    minúsculas.

    r azAZ

    r AZ az Uniq

    Convere mnúcula en mayúcula

    Convere mayúcula en mnúcula

    lmna renglone duplcado

    dd

    Baane dno a lo vo haa ahora. uele empleare para manear dao

    en bruo y n ormao. oee recuro para ranormar de ACII a BCDIC

    y para manear dao bnaro.

  • 8/16/2019 Presentacion Crones

    27/212

    ed

    Lee un renglón a la ve a partir de los archivos de entrada, aplica los comandos de

    la lista, por orden a cada renglón y escribe su forma editada en la salida estándar. Sintaxis: sed'lista de comandos archivo .. .

    Por ejemplo:

    sed 's/UNIX/UNIX (TM)/g archivos ... > output

    Advertencia: sed no altera los contenidos de sus archivos de entrada. Escribesobre la salida estándar por lo que archivos originales permanecen intactos.

    Otro ejemplo:

    who sed 's/ .*Trae solo los nombres de usuarios y la hora de inicio de sesión.

    sed 's//>/ o sed '/./s//>/ $*

    Pone un tabulador al inicio de cada línea. La segunda versión solo lo hace en aquellos

    renglones que no sean sólo un caracter nueva línea.

  • 8/16/2019 Presentacion Crones

    28/212

    ed (Cont)� or deeco realza la mpreón auomáca de la alda. La opcónn deacva

    la alda la cuál debe er explcada medane el comando p. or eemplo

    $ sed -n '/patrón/p hace lo mismo que grep

    $ sed -n '/patrón/!p hace lo mismo que grep -v

    � Oro eemplo

    $ sed 's/$/\ Agrega un caracter nueva línea al final de cada renglon> / haciendo que la salida tenga doble espacio .

    $ sed 's/[ >][ >]*/\ Reemplaza cada cadena de blancos o tabs por un nueva línea

    > / por lo que divide cada palabra de la entrada en un renglón .

    $ sed -n 20,30p Imprime sólo las líneas 20 a 30 .

    $ sed '1,10d Borras las líneas 1 a 10 (=a tail +11)

    $ sed '1,/$/d Borra hasta la primera línea en blanco inclusive

    $ sed '$d Borra la última línea

  • 8/16/2019 Presentacion Crones

    29/212

    awk

    � Awk e parecdo al ed pero con una nax má mlar al lenguae C.

    nax awk'programa archvo...

    La nax del programa e

    parón accón

    parón accón

    � Awk lee la enrada en lo nombre de archvo un renglón a la vez. Cada renglón

    e compara con cada parón en orden, para cada parón que concuerde con el

    renglón e eecúa la accón correpondene.

    � Al gual que ed, awk no alera lo archvo de enrada.

    � Lo parone pueden er expreone regulare exacamene como en egrep,

    aunque ambén pueden er condcone má complea que recuerdan má al

    lenguae C.

  • 8/16/2019 Presentacion Crones

    30/212

    awk (cont.) Ejemplos:

    awk 'expreon regular prn archvo Hace lo que egrep

    El patrón y la acción son opcionales.

    e ome la accón, la accón por deaul e mprmr la línea.

    e ome el parón, la pare de accón e hace para oda la línea de la

    enrada.

    Al igual que en sed los comandos de awk pueden estar en un

    archivos separado mediante la siguiente sintaxis:

    awk cmdle archvo .. .

  • 8/16/2019 Presentacion Crones

    31/212

    awk - Camp Awk divide cada renglón de entrada automáticamente en campos (cadenas de

    caracteres que no sean blancos, separados por blancos o tabuladores.) Por ejemplo la salida de who tiene campos:

    $who

    carlostty2 Sep 1411 :53

    maria tty3 Sep 1411 :27

    Awk llama a los campos $1, $2, .. ., $NF. NF es una variable cuyo valor es igual alnúmero de campos. En este caso NF = en ambos renglones. Notese la diferenciaentre NFnúmero de campos- y $NF el último campo del renglón-.

    En awk, a diferencia del Shell, sólo los campos empiean con $, las variables no

    tienen'adornos .

    Por ejemplo: $ du -a awk '{ print $2 } Excluye los tamaños deja sólo los nombres de

    archivos.

  • 8/16/2019 Presentacion Crones

    32/212

    awk Camo (cont. ) Awk normalmente supone que el espacio en blanco (cualquier

    número de blancos y tabuladores) separa los campos, pero el

    separador puede cambiarse a cualquier caracter. Una manera de

    hacerlo es recurrir a la opción -F (mayúscula) de la línea de

    comandos. Por ejemplo: awk F ' prn ecpawd Imprme ólo lo nombre de

    uuaro del ecpawd

  • 8/16/2019 Presentacion Crones

    33/212

    awk - mpre ,

    on� La varable R e el número del "regro o línea acual.

    awk ' prn R

    Imprme el número de línea egudo de la línea complea. l campo e la

    línea enera, n cambo.

    � n una accón prn, lo elemeno eparado por coma e mprmen

    eparado por el eparador de alda or deaul el blanco.

    � La propocón prn perme un conrol compleo obre la alda. mlar al C

    awk ' prn "4d n, R,

    4d epecca un enero decmal R en un campo de 4 dígo de ancho,

    epecca una cadena de caracere y

    n un caracer nueva línea. rn no mprme n blanco, n nueva línea por

    deaul.

  • 8/16/2019 Presentacion Crones

    34/212

    �Ww-F$2  a Susca los usuarios sin contraseña .

    Otras formas de obtener el mismo resultado: $2 $/ El segundo campo concuerda con la cadena vacía . $2  /./ El segundo campo no concuerda con cualquier caracter. length($2) = = O La longitud del segundo campo es cero .

    El símbolo indica concordancia con una expresión regular y ! significa "no

    corresponde. La expresión regular debe estar encerrada entre diagonales. Awk se vale de la misma convención que el Shell para los comentarios. El símbolo indica el inicio de un comentario . La función substr(s,m,n) produce la subcadena se s que comiena en la posición m

    y mide n caracteres de largo.

    El

    Awkproporciona dos Patrones especiales EIN y END. Las acciones de EIN

    se realian antes del primer renglón, y las acciones de END se efectúan luego de

    ser procesado el último renglón.

  • 8/16/2019 Presentacion Crones

    35/212

     'w�';% fJ � p O Deplega hay un número par de campo awk 'lengh > 7 prn "Renglón, R, "muy largo, ubr , , dae

    Thu Aug 97 DT

    dae awk ' prn ubr4, ,

    7 awk 'BGI F = "

    > == " ' ecpawd

    awk 'D prn R .. .

    uevamene Buca uuaro n conraeña

    ldem wc

    raco s

  • 8/16/2019 Presentacion Crones

    36/212

      wk

    Op raco sArtétca

    awk también puede realiar cálculos sobre los datos de entrada. Es muy sencillo

    contar cosas, hacer sumas, sacar promedios y otras operaciones afines. Por

    ejemplo, para sumar todos los números de la primera columna:{ s = s + $1}

    END { print s}Si modificamos la última línea del programa por

    END { print s, sNR}

    Imprime la suma y el promedio . La variables se inicialian a cero por default. Awk ofrece además los mismos operadores aritméticos abreviados que el lenguaje

    C. Por ejemplo: s += $1 es lo mismo que s = s + $1 Ejemplo: Versión de wc hecha en awk.

    { n += length ($) + 1 número de caracteresnw += NF}

    END { print NR, nw, n }

    k V i bl

  • 8/16/2019 Presentacion Crones

    37/212

    awk - Variables

    � La varable ambén pueden guardar cadena de caracere.

    � La varable de cadena e ncalzan con la cadena vacía.� Varable predenda en awk

    FILENAME Nombre del archivo de entrada actual

    FS

    NFNR

    OFS

    ORS

    RS

    Caracter separador de campo (blanco y tab por default)

    Número de campos del registro de entradaNúmero del registro de entrada

    Cadena separadora de campo de salida (blanco por default)

    Cadena separadora de registro de salida (Nueva línea por default)

    Caracter separador de registro de entrada (Nueva línea por default)

    k O d

  • 8/16/2019 Presentacion Crones

    38/212

    awk - Operadores

    Operadores de awk (por orden creciente de precedencia)

    = += = *= /= º= Asignación O lógico

    && Y lógico! Niega el valor de la expresión

    > >= <

  • 8/16/2019 Presentacion Crones

    39/212

    awk Control de Flujo IF (Exactamente igual a la instrucción del lenguaje C). Sintaxis:

    if (condición)

    proposición 1elseproposición 2

    FOR (Exactamente igual a la del lenguaje C). Sintaxis:for (expresión 1; condición ; expresión 2)

    proposición

    WHILE (equivalente al for anterior)expresión 1while (condición ) {

    proposiciónexpresión 2

    } La proposición next hace que se lea la siguiente línea de entrada y que se

    comparen los patrones para reanudar la ejecución al inicio del programa. Laproposición exit origina una transferencia inmediata al patrón END.

    O

  • 8/16/2019 Presentacion Crones

    40/212

    Otro eempoEl siguiente programa detecta palabras duplicadas sucesivas.

    awk'FILENAME != prevfile { Nuevo archivo

    }

    NR = 1 Restablecer número de renglónprevfile = FILENAME

    NF > {

    } $*$

    if ($1 == ultimapalabra)printf " duplicación °/s, archivo 0/s, línea 0/d\n, $1, FILENAME, NR

    for ( i=2; i

  • 8/16/2019 Presentacion Crones

    41/212

    Otro eempo

    El siguiente programa invierte el contenido de todos los renglones

    awk'{  f or  ( i = NF; i >=  1;  i •  • ) 

    pri ntf "0/s ", $i

    printf "\n"

    }' $*

    $

    A l

  • 8/16/2019 Presentacion Crones

    42/212

    Arreglos Awk también proporciona arreglos. Ejemplo trivial: Invierte los renglones.

    $ cat backwards backwards: despliega la entrada en dirección contrariaawk' { linea[NR] = $}

    $END { for ( i = NR; i > i - -) print linea[ i ] }' $*

    Los arreglos no necesitan ser declarados . El tamaño del arreglo está limitado únicamente por la memoria disponible . Awk soporta arreglos asociativos. Por lo general concebimos subíndices de

    arreglos como enteros, pero en awk cualquier valor puede servir de subíndice . Por ejemplo, para sumar por nombre 2 columnas del tipo:

    Carlos 1Martin 2Carlos 5

    ... . ..Sandra 8

    { sum [ $1 ] += $2}END { for (name in sum) print name, sum [name] )

    Ot

  • 8/16/2019 Presentacion Crones

    43/212

    Otro eempo

    � ca recuenca

    #recuenca muera oda la palabra ulzada y u recuenca

    awk ' or = ;

  • 8/16/2019 Presentacion Crones

    44/212

    uco s pr d finid s dawk

    cos (expr) Coseno de expr

    exp (expr) Exponencia de expr: e elevado a exp getline( ) lee la siguiente linea de entrada; devuelve O si es fin de archivo,

    1 de lo contrario

    index (s1 ,s2) Posición de la cadena s2 en s1; devuelve 1 si no está.

    int (expr)

    length (s=

    log ( expr)

    Parte entera de expr, truncar hacia O.longitud de la cadena s

    Logaritmo natural de expr

    sin (expr) Seno de expr

    split (s,a,c) Divide s en a[1] ... a[n] en el carácter c; devuelve n

    sprintf (fmt, ...) Da formato a ... según la especificación de fmt

    substr (s,m,n) Subcadena de n caracteres de s, comenzando en la posición n

    t ó h l

  • 8/16/2019 Presentacion Crones

    45/212

    teraccón co e hel

    Supongamos que el usuario quiere escribir un programa o

    que imprime el campo nesimo de cada renglón de la entrada.

    Por ejemplo: $ who campo

    Debería desplegar sólo el nombre de los usuarios que iniciaron

    sesión. Para poder resolver esto pasando un parámetro del shell

    al awk:

    awk ' prn

    Otra forma de hacerlo (aunque es preferible la anterior):

    awk " prn

  • 8/16/2019 Presentacion Crones

    46/212

    Pregunta

    Ejeccos

  • 8/16/2019 Presentacion Crones

    47/212

    Ejeccos

    . Crear un archvo dcconaro.x, con oda la palabra una por línea omada

    de archvo de dao en caellano de u Home Drecory. l archvo

    dcconaro.x debe quedar ordenado, no conener duplcado y oda la

    lera deberán ear en mnúcula.

    a xraer oda la palabra que empecen y ermnen con vocal.

    b Morar el archvo elmnando oda la vocale, eén acenuada o no.

    c Un dpongo eá ormado por do vocale, una uere y una débl, o do

    déble. La vocale uere on a, e, o; la vocale déble on , u. La

    acenuacón de u o deruye el dpongo.

    morar oda la palabra con dpongo ormado por do vocale déble,

    morar odo lo dpongo con a;

    bucar una expreón regular mínma que deplegue odo lo dpongo.d Morar oda la palabra de lera o má que ean palíndromo.

    Ejeccos

  • 8/16/2019 Presentacion Crones

    48/212

    Ejeccos

    . l archvo acceo.lg regra el acceo de lo uuaro a un ema UIX.

    e archvo cuena con un renglón por cada uno de lo acceo y poee la

    guene erucura de campo eparado por "

    ·Uuaro

    Fecha de Ingreo Formao ddmmyyyy Hora de Ingreo Formao hhmm4 hora Dreccón IDearrollar comando que

    a Mueren el nombre de cada uuaro y la candad oal de acceo

    regrado, en orden alabéco.

    b xraer del archvo la línea correpondene a un uuaro parcular que

    e recbrá como parámero.c Agregar do parámero opconale que perman exraer ólo lo regro

    correpondene a cero me o cero año.

    d xraer del archvo acceo.lg la línea que correpondan al uuaro perez

    �opez

  • 8/16/2019 Presentacion Crones

    49/212

    www

  • 8/16/2019 Presentacion Crones

    50/212

  • 8/16/2019 Presentacion Crones

    51/212

    s e ocón

    Los paradigmas pueden son

    considerados como patrones depensamiento para la resolución deproblemas.

  • 8/16/2019 Presentacion Crones

    52/212

  • 8/16/2019 Presentacion Crones

    53/212

    s e ocón

    Hay situaciones donde un paradigmaresulta más apropiado que otro.

    Cuando un lenguaje refleja bien unparadigma particular, se dice quesoporta el paradigma.

  • 8/16/2019 Presentacion Crones

    54/212

    s e ocón

    En la práctica un lenguaje que soporta

    correctamente un paradigma, es difícildistinguirlo del propio paradigma, porlo que se identifica con él.

  • 8/16/2019 Presentacion Crones

    55/212

    lasificación de paradigmas de.

    programacon

    Paradigma imperativo

    Heurístico Concurrente

    Funcional

    Lógico

    Basado en objetos

  • 8/16/2019 Presentacion Crones

    56/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Son aquellos que facilitan los cálculos

    por medio de cambios de estado,entendiendo como estado la condiciónde una memoria de almacenamiento.

  • 8/16/2019 Presentacion Crones

    57/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Los lenguajes estructurados enbloques, se refieren a los ámbitos

    anidados, es decir los bloques puedenestar anidados dentro de otrosbloques y contener sus propiasvariables.

  • 8/16/2019 Presentacion Crones

    58/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Los programas escritos en unlenguaje funcional están constituidos

    únicamente por definiciones defunciones.

    Las funciones no como subprogramasclásicos de un lenguaje imperativo,sino como funciones puramentematemáticas.

  • 8/16/2019 Presentacion Crones

    59/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    En las que se verifican ciertaspropiedades como la "transparencia

    referencial" (el significado de unaexpresión depende únicamente delsignificado de sus subexpresiones, ypor tanto, la carencia total de "efectos

    laterales".

  • 8/16/2019 Presentacion Crones

    60/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    El objetivo es conseguir lenguajesexpresivos y "matemáticamente

    elegantes", en los que no seanecesario bajar al nivel de la máquinapara describir el proceso llevado acabo por el programa, y evitando el

    concepto de "estado" del cómputo.

  • 8/16/2019 Presentacion Crones

    61/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    La secuencia de computaciones llevadas acabo por el programa se regiría única exclusivamente por la "reescritura" de

    definiciones más amplias a otras cada vezmás concretas definidas, usando lo que sedenominan "definiciones dirigidas'.

    A este tipo de paradigma de programaciónse le suele llamar algorítmico.

  • 8/16/2019 Presentacion Crones

    62/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    El paradigma imperativo debe sunombre al papel dominante que

    desempeñan las sentencias imperativas.

    Su esencia es el cálculo iterativo, paso apaso, de valores de nivel inferior y suasignación a posiciones de memoria.

  • 8/16/2019 Presentacion Crones

    63/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    f

    Concepto de celda de memoria("variable") para almacenar valores.. El componente principal de la arquitectura es

    la memoria, compuesto por un gran número

    de celdas donde se almacenan los datos

  • 8/16/2019 Presentacion Crones

    64/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Operaciones de asignación.

    . Estrechamente ligado a la arquitectura de lamemoria, se encuentra la idea de que cadavalor calculado debe ser "almacenado", esdecir asignado a una celda

  • 8/16/2019 Presentacion Crones

    65/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Repetición.

    . Un programa imperativo, normalmenterealiza su tarea ejecutando repetidamenteuna secuencia de pasos elementales, yaque en este modelo computacional la única

    forma de ejecutar algo complejo esrepitiendo una secuencia de instrucciones

  • 8/16/2019 Presentacion Crones

    66/212

    Paradigma im

     

    _

    ra

     

    iv

    o

     

    Algunos de los lenguajes imperativos son:

    C C# Basic

    Java Per

  • 8/16/2019 Presentacion Crones

    67/212

    Se denomina hí a la

    capacidad de un sistema para realizarde forma inmediata innovacionespositivas para sus fines.

  • 8/16/2019 Presentacion Crones

    68/212

    Define un modelo de resolución de

    problemas en el que se incorpora

    algún componente heurístico, sobre labase de una representación másapropiada de la estructura delproblema, para su resolución con

    técnicas heurísticas.

  • 8/16/2019 Presentacion Crones

    69/212

    Se puede definir como "aquel tipo de

    programación computacional que

    aplica para la resolución de problemasreglas de buena lógica, ej. reglas delpulgar.

  • 8/16/2019 Presentacion Crones

    70/212

    La Programación Heurística implica

    una forma de modelar el problema en

    lo que respecta a la representación desu estructura, estrategias de búsqueday métodos de resolución.

  • 8/16/2019 Presentacion Crones

    71/212

    f

    Una buena heurística debe ser simple on requerimientos razonables de memoria Velocidad de búsqueda que dispona de un buencriterio de parada que incorpore el conocimientoobtenido durante la búsqueda

  • 8/16/2019 Presentacion Crones

    72/212

    f

    . La información a tratar es fundamentalmentesimbólica, inexacta o limitada, "incremental" ybasada en el conocimiento

  • 8/16/2019 Presentacion Crones

    73/212

  • 8/16/2019 Presentacion Crones

    74/212

    Este tipo de programación se aplica

    con mayor intensidad en el campo dela 1nteligencia Artificial (IA).

  • 8/16/2019 Presentacion Crones

    75/212

    ARADIGA UNIONA El paradigma funcional está basado

    en el modelo matemático decomposición funcional. En estemodelo, el resultado de un cálculo esla entrada del siguiente, y así

    sucesivamente hasta que unacomposición produce el valordeseado.

  • 8/16/2019 Presentacion Crones

    76/212

    ARADIGA UNIONALa programación funcional incorpora elconcepto de función como objeto de

    primera clase, lo que significa que lasfunciones se pueden tratar como datos(pueden pasar como parámetros,calculadas y devueltas como valores

    normales, y mezcladas en el cálculocon otras formas de datos).

  • 8/16/2019 Presentacion Crones

    77/212

    ARADIGA UNIONAEn este paradigma el informático

    concibe la solución como unacomposición de funciones.

  • 8/16/2019 Presentacion Crones

    78/212

    La forma en que se especifican las

    funciones puee variar.

    Se pueden especificar

    procedimentalmente omatemáticamente mediante sudefinición, sin secuencia de control.

    Un lenguaje funcional es el Lisp

  • 8/16/2019 Presentacion Crones

    79/212

    ARADIGA OGIO· La Programación Lógica es un

    Paradigma de Programación basado en

    la Lógica.

    · Los programas construidos un lenguajelógico están construidos únicamente por

    expresiones lógicas, es decir, que sonciertas o falsas, en oposición a unexpresión interrogativa (una pregunta) oexpresiones imperativas (una orden).

  • 8/16/2019 Presentacion Crones

    80/212

    ARADIGA OGIO Un ejemplo de lenguaje lógico es

    Prolog Prolog, proveniente del inglés

    ,

    bastante popular en el medio de

    investigación en 1nteligencia Artificial.

  • 8/16/2019 Presentacion Crones

    81/212

    ARADIGA OGIO Prolog es un lenguaje muy diferente,

    tanto de los imperativos como Fortran,Pascal, C etc., como de losfuncionales como Lisp.

  • 8/16/2019 Presentacion Crones

    82/212

    ARADIGA OGIO En Prolog, las cosas son distintas: el ordende ejecución de las instrucciones no tienenada que ver con el orden en que fueronescritas

    Tampoco hay instrucciones de controlpropiamente dichas

    Para trabajar con este lenguaje, unprogramador debe acostumbrarse a pensar

    de una manera muy diferente a la que seutiliza en los lenguajes clásicos

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    83/212

    ARADIGA AADO N

     OJO La programación orientada a objetos

    (OOP, por las siglas inglesas deObject- Oriented Programming) es unaforma de programar que proliferó apartir de los años ochenta.

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    84/212

    ARADIGA AADO N

     OJO Es un paradigma de programación

    que define los programas en términos

    de "clases de objetos", objetos queson entidades que combinan ( ), ( , ) ( objeto que lodiferencia del resto).

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    85/212

    ARADIGA AADO N

     OJO La programación orientada a objetos

    expresa un programa como un

    conjunto de estos objetos, quecolaboran entre ellos para realizartareas. Esto permite hacer losprogramas y módulos más fáciles de

    escribir, mantener y reutilizar.

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    86/212

    ARADIGA AADO N

     OJO De esta forma, un objeto contiene

    toda la información, (los denominados

    atributos) que permite definirlo eidentificarlo frente a otros objetospertenecientes a otras clases (eincluso entre objetos de una misma

    clase, al poder tener valores biendiferenciados en sus atributos).

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    87/212

    ARADIGA AADO N

     OJO Dispone de mecanismos de

    interacción (los llamados métodos)que favorecen la comunicación entreobjetos (de una misma clase o dedistintas), y en consecuencia, el

    cambio de estado en los propiosobjetos.

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    88/212

    ARADIGA AADO N

     OJO Esta característica lleva a tratarlos

    como unidades indivisibles, en las queno se separan (ni deben separarse)información (datos) y procesamiento(métodos).

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    89/212

    ARADIGA AADO N

     OJO Se requieren de unos métodos para

    poder tratarlos (lo que hace que

    ambos conceptos están íntimamenteentrelazados), el programador debepensar indistintamente en ambostérminos, ya que no debe nunca

    separar o dar mayor importancia a losatributos en favor de los métodos, ni

    vceversa.

    ARADIGA AADO N

  • 8/16/2019 Presentacion Crones

    90/212

    ARADIGA AADO N

     OJO

    Entre los lenguajes orientados a objetodestacan los siguientes:

     Ada, C++, C#, JAVA

  • 8/16/2019 Presentacion Crones

    91/212

     ARA ¿Cuáles son las principales

    diferencias entre la programación

    imperativa y la orientada a objetos?

    Subir tarea a EDUCAFI

  • 8/16/2019 Presentacion Crones

    92/212

    ó

    Páginas estáticas vs dinámicas

  • 8/16/2019 Presentacion Crones

    93/212

    Páginas estáticas vs. dinámicas

    Las áinas á se ven gara los

    Las áinas á se gante los de cada

  • 8/16/2019 Presentacion Crones

    94/212

    ¿Qué PHP? PHP Hyertext Processor

    Lenuae de roramación Interretado

    Eecutable del lado del servidor Heredero de ++ Embebido en HTML

    De roósito eneral Orientado a roramación Web

    Software Libre

  • 8/16/2019 Presentacion Crones

    95/212

    Variables en PHP No tienen tio de datos definido

    No se declaran

    • Emiezan en $- Ejemplo: $nombre, $edad

    -$nombre = "Mauro

    -$edad= 6

  • 8/16/2019 Presentacion Crones

    96/212

    Ejemplo de PHP con HTML

  • 8/16/2019 Presentacion Crones

    97/212

    Sx • PHP es sensible a las mayúsculas• ¿Cómo se incrusta en la página web?

    ?PHP ?recomendado, siempre disponible

    ? ón ?equivale a implica un ;

    • Comentarios: como en C, /* . . . */ (varias líneas ) y // (una línea)/* n ín */n h // n n ín

  • 8/16/2019 Presentacion Crones

    98/212

    Sx • Para imprimir: echo  y print

    echo: muestra una o más cadenasecho cadena [, cadena2 ];

    echo Hoa mundo;e c h o H o a , mu nd o ;

    print: muestra una cadenaprint cadena;

    p r i n t H o a m u n d o ;

    pri nt H o a . mundo;

  • 8/16/2019 Presentacion Crones

    99/212

    Sx • Ejemplo:

    Programa en PHP

    < ? P H P

    p r in t ( < P >H o a mund o< / P > ) ;

    ? >

  • 8/16/2019 Presentacion Crones

    100/212

    Sx • Uso de \n para generar código HTML legible• a) Sin \n

    Código PHP

    Código HTML

    Salida

    p ri nt ( < P> P ár r af o 1 < / P > ) ;

    p ri nt ( < P> P ár r af o 2 < / P > ) ;

    < P > P á r r a f o 1 < / P > < P > P á r r a f o 2 < / P >

    P á r r a f o 1

    P á r r a f o 2

  • 8/16/2019 Presentacion Crones

    101/212

    Sx • Uso de \n para generar código HTML legible• b) Con \n

    Código PHP

    Código HTML

    Salida

    p ri nt ( < P> P ár r af o 1 < / P > \ n ) ;

    p ri nt ( < P> P ár r af o 2 < / P > \ n ) ;

    < P > P á r r a f o 1 < / P >

    < P > P á r r a f o 2 < / P >

    P á r r a f o 1

    P á r r a f o 2

  • 8/16/2019 Presentacion Crones

    102/212

    Sx • Ejercicio 1 : programa q ue m uestra u n mensaje

    - llu�tra cómo incrustar código PHP en un documento HTMLy vceversa

  • 8/16/2019 Presentacion Crones

    103/212

    Sx • Inclusión de ficheros externos:

    - i ncl ude()- requ ire()

    • Ambos incluyen y evalúan el fichero especificado

    • Diferencia: en caso de error include() produce un warning yrequire() un error fatal• Se usará require() si al producirse un error debe interrumpirse la

    carga de la página• Ejemplo:

  • 8/16/2019 Presentacion Crones

    104/212

    Sx

    Título

    // Código HTML + PHP

  • 8/16/2019 Presentacion Crones

    105/212

    • PHP soporta 8 tipos de datos primitivos

    - Tipos escalares: boolean, integer, double, string- Tipos compuestos: array, object- Tipos especiales: resource, NULL

    • El tipo de una variable no se suele especificar. Se decide entiempo de ejecución en función del contexto y puede variar

    • Funciones de interés:- La función gettype() devuelve el tipo de una variable- Las funciones is_ comprueban si una variable es de un tipo

    dado:is_array(), is_bool(), is_float(), is_integer(), is_null(),is_numeric(), is_object(), is_resource(), is_scalar(),is_string()

    - La función var_dump() muestra el tipo y el valor de una variable.Es especialmente interesante con los arrays

  • 8/16/2019 Presentacion Crones

    106/212

    • Tipo integer (números enteros)

    - 27 -5 • Tipo double (números reales)

    - 234 -5.33•

    Tipo boolean (lógico)- Valores: u (insensibles a las mayúsculas)- El y la cadena vacía tienen valor

  • 8/16/2019 Presentacion Crones

    107/212

    • Tipo string:

    Las cadenas se encierran entre comillas simples o dobles: 'simples: ad mite los caracteres de escape \ (com il la si mple) y \\

    (barra). Las variables NO se expande n "dobles: admite más caracter�s de escape, como \n, \r, \t, \\, \$,

     \. Los nombres de va riab les S I se expanden Ejemplos:$ a = 9;p r i n t

    11p r i n t

    11

    ' a v a e

    m u e s t r a

    a v a e

    m u e s t r a

    $ a \n ;

    $\$ a \ n ;

    9 y a v a n z ap r in t < I MG S RC = ' o go . gi f > ;

    una

    11 m u e s t r a G SC'p r i n t < I M G S RC = \ o go . gi f \ > ;

    11 m u e s t r a G SC"Acceso a un carácter de la cadena:

    La forma es $inicial = $nombre{};

    ínea

  • 8/16/2019 Presentacion Crones

    108/212

    • Las variables siempre van precedidas de un • El nombre es sensible a las mayúsculas• Comienzan por letra o subrayado, seguido de letras, números o

    subrayado•

    Variables predefinidas:$GLOBALS, $_SERVER, $_GET, $_POST, $_COOKIES, $_FILES,$_ENV, $_REQUEST, $_SESSION

    • Ámbito: globales al fichero (excepto funciones) o locales a unafunción

    • Ejemplo:

    $ v a o r 5;p r i n t E va o r e s : . $ va o r . \ n ;p r i nt E va o r e s : $ v a o r \ n ; / / o j o : c omi a s dob e s

    Re s u t a d o :

    E v a o r e s : 5

  • 8/16/2019 Presentacion Crones

    109/212

    • Variables variables

    - Se pueden crear nombres de variables dinámicamente- La variable variable toma su nombre del valor de otra variable

    previamente declarada- Ejemplo:

    $ a = " h o a " ;$ $ a = "mundo " ;

    p r in t " $ a $ h o a \ n " ;

    p ri nt " $ a $  {$ a}" ;

    Re s u t a d o :

    hoa mundo

    hoa mundo

  • 8/16/2019 Presentacion Crones

    110/212

    • Ejemplo de variables variables: página internacionalizada (1)

    < ? P H P

    ? >

    $ m e n s a j e e s = " H o a " ;

    $ m e n s a j e e n = " H e o " ;

    $ i di oma = "";$mens aj e = "men sa j e " . $ idi oma;

    p r i n t $ $ m e n s a j e ;

    Varibs varib Microoft 1 nte r ne � §Bh dó Y E » íul »

    H

    L I

  • 8/16/2019 Presentacion Crones

    111/212

    • Ejemplo de variables variables: página internacionalizada (2)

    < ? P H P

    ? >

    $ m e n s a j e e s = " H o a " ;

    $ m e n s a j e e n = " H e o " ;

    $ i di oma = "";$mens aj e = "men sa j e " . $ idi oma;

    p r i n t $ $ m e n s a j e ;

    Varibs varib Microoft 1 nte r ne � §Bh dó Y E » íul »

    H

    L I

    C

  • 8/16/2019 Presentacion Crones

    112/212

    C• Definición de constantes:

    d e f i n e ( C N S TANTE , h o a ) ;

    print CNSTANTE;

    • No llevan delante• Sólo se pueden definir constantes de los tipos escalares

    (boolean, integer, double, string)

  • 8/16/2019 Presentacion Crones

    113/212

    x y • Operadores aritméticos:

    + I 0 + + --' ' ' ' ' '• Operador de asignación:

    operadores combinados: .= , += , etc$a = 3; $a += 5; a vale 8$b = "hola ; $b . = "mundo; b vale "hola mundo Equivale a $b = $b . "mundo;

    • Operadores de comparación:== = <

  • 8/16/2019 Presentacion Crones

    114/212

    x y • Precedencia de operadores (de mayor a menor):

    + + - -* / g

    + ,-

    < < = > > =

    & &

    ' =

  • 8/16/2019 Presentacion Crones

    115/212

    • Estructuras selectivas:

    - ifelse- switch

    • Estructuras repetitivas:- while-  fr-  foreach

  • 8/16/2019 Presentacion Crones

    116/212

    • Estructura selectiva if-else

    i f ( c o n d i c i ó n )

    s e n t e n c i a

    i f ( c o n d i c i ó n )

    s e n t e n c i a 1

    e s e

    s e n t e n c i a 2

    i f ( c on di c i ó n l )

    s e n t e n c i a 1

    e s e i f ( c ond i ci ón 2 )

    s e n t e n c i a 2

    e s e i f ( c ond i ci ón n )

    s e n t e n c i a n

    e s e

    s e n t e n c i a n + l

    • Mismo comportamiento que en C• Las sentencias compuestas se encierran entre llaves• elseif puede ir todo junto

  • 8/16/2019 Presentacion Crones

    117/212

    • Ejemplo de estructura selectiva if-else:

    < ? P H P

    ? >

    i f ( $ s e x o ' M )$ s a udo - " B i e nve n ida , " ;

    e s e$ s a udo - " B i e nve n ido , " ;

    $ s a u d o $saudo . $nombre;p r in t ( $ s a ud o ) ;

    Brchivo dción er Eaits err mn s Vículs

    B, J

    Í Lst Intrae lcal

  • 8/16/2019 Presentacion Crones

    118/212

    • Estructura selectiva switch

    s w i t c h ( e x p r e s i ó n )

    {

    }

    c a se va o r 1 :

    s e n t e n c i a 1

    break;c a se va o r 2 :

    s e n t e n c i a 2

    break;

    c a s e v a o r n :

    s e n t e n c i a n

    break;defaut

    s e n t e n c i a n + l

    • Mismo comportamiento que en C, sólo que la expresión delcase puede ser integer, float o string

  • 8/16/2019 Presentacion Crones

    119/212

    • Ejemplo de estructura selectiva switch:

    s wi t c h ( $ e x t e n s i on )

    {c as e ( " PDF " ) :

    $ t i p o = " D oc ume n t o Ad ob e PD F " ;break;

    c a se ( " TXT " ) :

    $ t i p o = " Do cume n t o d e t e x t o " ;

    break;

    c as e ( " HTML " ) :

    ca se ( "HTM" ) :

    $ t i p o = " Do c ume n t o HTML " ;

    D ct H

    break; . .

    .

    Intraet loca

    d e f a u t :

    $ tipo = "Archivo " . $ exte ns ion;

    }p r in t ( $ t i p o ) ;

  • 8/16/2019 Presentacion Crones

    120/212

    • Estructura repetitiva while

    w h i e ( c o n d i c i ó n )

    s e n t e n c i a

    • Mismo comportamiento que en Cf a s a c i e r t a

    s e n t e n c i a

  • 8/16/2019 Presentacion Crones

    121/212

    • Ejemplo de estructura repetitiva while:

    < ? P H P

    p ri nt ( " \ n " ) ;

    $ i = l ;

    w hi e ( $ i < = 5 ){

    }

    p ri nt ( " < L I >E eme nt o $ i < / L I > \ n " ) ;

    $ i + + ;

    p ri nt ( " < / UL> \ n " ) ;

    ? >rchivo dción 'er aits err mn s Vículs

    • • 2• 3• 4• 5

    Lstl l

    Intrae lcal

    I

  • 8/16/2019 Presentacion Crones

    122/212

    • Estructura repetitiva for

    f o r ( i n i c i a i z a c i ó n ; c o n d i c i ó n ; i n c r e m e n t o )

    s e n t e n c i a

    • Mismo comportamiento que en C

    i n i c i a i z a c i ó n

    f a s a c i e r t a

    s e n t e n c i a

    incremento

  • 8/16/2019 Presentacion Crones

    123/212

    • Ejemplo de estructura repetitiva fr:

    < ? P H P

    p ri nt ( " \ n " ) ;

    f o r ( $ i = l ; $ i < = 5; $ i + + )

    p ri nt ( " < L I >E eme nt o $ i < / L I > \ n " ) ;p ri nt ( " < / UL> \ n " ) ;

    ? >

    rchivo fdción 'er aits err mn s

    • • 2• 3• 4• 5

    Lst

    l

    Vículs

    A

    Intrae lcal

  • 8/16/2019 Presentacion Crones

    124/212

    • Ejercici o 2 : p rograma que calcu la u na tabla de mu ltipl icar

    F

  • 8/16/2019 Presentacion Crones

    125/212

    F• Ejemplo:

    f un c t i o n s uma ( $ x , $ y )

    {

    }

    $ s = $ x + $ y;

    r e t u r n $ s ;

    $ a = l ;

    $ b = 2 ;

    $c=suma ( $ a , $ b ) ;

    p r i n t $ ;

    F

  • 8/16/2019 Presentacion Crones

    126/212

    F• Por defecto los parámetros se pasan por valor• Paso por referencia:

    f un c t i o n i n c r eme n t a ( & $ a )

    {$ a = $ a + 1 ;

    }

    $ a = l ;

    i n c reme n t a ( $ a ) ;

    p r i nt $ a; / / Mu e s t r a un 2

    F

  • 8/16/2019 Presentacion Crones

    127/212

    F• Argumentos por defecto

    fun ct i on mu e s t r anomb r e ( $ t i t u o = " S r . " )

    {p r i nt " E s t ima do $ t i t u o : \ n " ;

    }

    mu e s t r an omb r e ( ) ;mue s t r anomb re ( " P r o f . " ) ;

    • Salida:E s t i ma do S r . :

    E s t i ma do P ro f . :

    F

  • 8/16/2019 Presentacion Crones

    128/212

    F• Los argumentos con valores por defecto deben ser siempre los

    últimos:f un c t i o n mu e s t r a n omb r e ( $ n omb r e , $ t i t u o = " S r . " )

    {p r i nt " E s t ima do $ t i t u o $ n omb r e : \ n " ;

    }mu e s t r a n omb r e ( F e r ná nd e z ) ;

    mu e s t r an omb r e ( F e r ná nd e z , " P r o f . " ) ;

    • Salida:E s t i ma do S r . F e r ná nd e z :

    E s t i ma do P r o f . F e r ná nd e z :

  • 8/16/2019 Presentacion Crones

    129/212

    • Sintaxis:

    a r r a y ( [ c ave = > ] va or , . . . )

    • La clave es una cadena o un entero no negativo. El valor puedeser de cualquier tipo válido en PHP, incluyendo otro array

    • Ejemplos:$ c o or = a rr a y ( ' r oj o = > l ü l , ' ve r de = >5 1 , ' a z u = >2 5 5) ;$ me di da s = a rr ay ( 1 0 , 2 5 , 1 5 ) ;

    • Acceso:$ c o o r [ ' r o j o ] / / No ovi da r a s c omi a s

    $ me di da s [ O J

    • El primer elemento es el

  • 8/16/2019 Presentacion Crones

    130/212

    • La estructura de control foreach permite iterar sobre arrays• Sintaxis:

    f o r e a c h ( e xp r e s i ó n a r r a y a s $ v a o r )s e n t e n c i a

    f o r e a c h ( e xp r e s i ó n a r r a y a s $ c a ve = > $ v a o r )s e n t e n c i a

    • Ejemplos:f o r e a ch ( $ c o o r a s $ v a o r )

    p r i n t V a o r : $ v a o r < BR> \ n ;

    f o r e a c h ( $ c o o r a s $ c a ve = > $ v a o r )

    p r i n t C a ve : $ c a ve ; V a o r : $ v a o r< B R> \ n ;

    • Salida:V a o r : 1 0 1

    V a o r : 5 1

    Va o r : 2 5 5

    C ave : r o o; V a o r : 1 0 1

    C a v e : v e r d e ; Va o r : 51

    C a v e : a z u ; Va o r : 2 5 5

    B

  • 8/16/2019 Presentacion Crones

    131/212

    B • Existen muchas bibliotecas de funciones en PHP• Algunos ejemplos:

    - Funciones de manipulación de cadenas- Funciones de fecha y hora

    - Funciones de arrays- Funciones de ficheros- Funciones matemáticas- Funciones de bases de datos- Funciones de red

    •Algunas bibliotecas requieren la instalación de componentesadicionales

    • Todas las funciones de biblioteca están comentadas en ladocumentación de PHP

    B

  • 8/16/2019 Presentacion Crones

    132/212

    B • Funciones de manipulación de cadenas

    - explode() Divide un a cadena en subcaden as array explode (string separator, string string [, int l imit])

    - rtrim(), ltrim(), trim()

    Eliminan caracteres a la derecha, a la izquierda o porambos lados de u na cade na string rtrim ( strin g str [, strin g cha rl ist])

    - strstr() Busca la primera ocu rren cia de una subcaden a

    - strtolower() I strtoupper() Convierte u na cadena a mi núscula mayúscula

    - strcmp() I strcasecmp() Com para dos cadenas con/si n distin ción de mayúsculas- strlen()

    Calcu la la long itud de una cadena

    B

  • 8/16/2019 Presentacion Crones

    133/212

    B • Funciones de fecha y hora

    date() Formatea u na fecha segú n u n formato dado Ejemplo:

    $ fecha = date ("j /n/Y H : i");

    print ("$fecha");

    Resultado :

    2 6 /9/2 0 0 5 1 7 : 3 6

    strtotime() Convi erte un a fecha en u n mm de UNX Ejemplo:

    $fecha = date ("j /n/Y" , strtotie ( 5 april 2 0 0 1"));print ("$fecha");

    Resultado :

    5 / 4 / 2 0 0 1

    B

  • 8/16/2019 Presentacion Crones

    134/212

    B • Funciones de arrays

    - array_count_values() Calcula la frecuencia de cada u no de los elementos de u n

    array- array_search()

    Busca un el emento en u n array- count()

    Cu enta los eleme ntos de u n a rray- sort(), rsort()

    Ordena y reindexa un array (r=decreciente)- ksort(), krsort()

    Ordena por claves u n array ( r=decreciente)

    B

  • 8/16/2019 Presentacion Crones

    135/212

    B • Ejercicio 3 programa que muestra la fecha actual

    - Ilustra cómo usar comentarios, tablas y funciones (propias yde biblioteca).

    - También cómo usar el manual de PHP

    PRÁCTICA 7SU BI R BITÁCORA CON ARCH IVOS PH P

  • 8/16/2019 Presentacion Crones

    136/212

    PRACTICA#?PHP

  • 8/16/2019 Presentacion Crones

    137/212

    Paso de variab les por U RLEn un sitio Web, las páginas y los scripts utilizados son muy

    numerosos. Muy a menudo, vamos a necesitar que nuestrosdistintos scripts estén conectados unos con otros, y,

    sobretodo, que se sirvan y se pasen variables comunes.

    Mi enlace

    • Estas variables no tienen el símbolo $ delante

    • Una vez realizado el paso, nuestras variables pertenecenal entorno de la página destino.php

    • Activada/desactivada la opción de configuraciónregister_globals del archivo p h p . i n i

  • 8/16/2019 Presentacion Crones

    138/212

    phporiegen url php

    phporigenurl .php

    htp:/locasdetinget.?alu=hl&ext=Et es vrable exto sername abecera}

  • 8/16/2019 Presentacion Crones

    139/212

    destino php

    Paso de variab les por U RL

     

    dstgt pp - Mz Firefox L

    8v !i ' [d H Ay�da

    http:/localhost/destinget p?lJ�

    Wiw Media Hotmail gratut Pesalizar vínculos WwVale $saldo: hoa

    Vale $text: Esto es na vale exo

    Vale $semae abc ea

    desti no. ph p�QDY>

     

     

    m-

    d�����������

    echo "Variable \$saludo : $saludo < br>\n" ;echo "Variable \$texto: $texto
    \n" ;echo "Variable \$username: $username
    \n";

    :> �  

    register_g lobals On en ph p. in i

  • 8/16/2019 Presentacion Crones

    140/212

    Paso de variab les con $_G ETdesti noget php

    desti noget. ph p

    ">echo "Variable \$texto: $texto
    \n";

    echo "Variable \$username: $username
    \n";?>

  • 8/16/2019 Presentacion Crones

    141/212

    Paso de variab les con $_G ETdesti noget php

    desti noget. ph p

    register_globals O en php.ini

      g M

  • 8/16/2019 Presentacion Crones

    142/212

    Procesar variables de formu la rios en PH P• Presentar una primera página con el formulario clásico a rellenar• Las variables del formularios son recogidas en una segunda página

    que las procesa

    < FORM action=" lo_q ue_sea. ph p" method=" POST/GET">

    /script PHP que procesa lainformación del formulario POST usuario envía datosGET usuario recoge datosregister_g lobals Off en ph p. i n i

  • 8/16/2019 Presentacion Crones

    143/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

    Apellidos

    &chv dta e ! Macades Heaentas Ayua

    O http: lcahst fomularios hfo

     

    v

     

    C=

      Widw d Hil gi Pliz l Wdw

    [ v]

    Ted

  • 8/16/2019 Presentacion Crones

    144/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    phpformu1 php.

    Apellidos

    FORM

    � phpfu1 .ph ll

    FfxG�

    &chv fdta e ! Macades Heaentas Ayua

    O http: lcahst fomularios hfo

     

    v

    ]

    Widw d Hil gi Pliz l Wdw

    r

    [ v]

    Ted

  • 8/16/2019 Presentacion Crones

    145/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    phpformu1 php.

    Nombre
    < b r>

    Apellidos

    FORM

     

    � phpfu1 .ph - ll

    FfxG�

    &chv fdta e ! Macades Heaentas Ayua

    O http: lcahst fomularios hfo 

    v

    ]

    Widw d Hil gi Pliz l Wdw

    r

    [ v]

    Ted

  • 8/16/2019 Presentacion Crones

    146/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

  • 8/16/2019 Presentacion Crones

    147/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

    Nombre

    Apellidos

    phpdestino.ph

    phpdestino.php

  • 8/16/2019 Presentacion Crones

    148/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

    phpdestino.php

  • 8/16/2019 Presentacion Crones

    149/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    phpdesti no ph

    ph pformu 1 .p hp phpdestino.php

    <

    F

    O

    R

    M

    l

    M

    _

    E

    _

    T

     

    H

    O

    D

    =

    _

     

    _

    P

    _

    O

    _

    S

    _

    T

     

     

    ACTION="phpdestino.php"> $nombre = $_POST['nombre'];

    Nombre
    $apell idos = $_POST['apel l idos'] ;
    echo "Variable \$apell idos: $apell idos
    \n"

    Apell idos
    ?>

  • 8/16/2019 Presentacion Crones

    150/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

    Nombre

    Apellidos

    phpdestino.ph

    phpdestino.php

  • 8/16/2019 Presentacion Crones

    151/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp

    Nombre

    Apellidos

    phpdestino.ph

    phpdestino.php

  • 8/16/2019 Presentacion Crones

    152/212

    Procesar variables de formu la rios en PH Pphpformu1 ph

    ph pformu 1 .p hp � 1

    Nombre
    < b r>

    Apellidos

    Archivo Editar Ver Ir [arcares Heramienas Aa

    · e · &

    http : ! lochost/formuarisphpfor r Winw Meia Hai graui O Penaizar ínu O WiwNb!Antoio

    ABecerra

    T

    v

    Terminao

    L

    l

    . .

  • 8/16/2019 Presentacion Crones

    153/212

    Procesar variables de formu la rios en PH Pphpdestino.ph

    phpdestino.php

    � h. h - Mz fx rhiv ditar 1r r aradrs Hrramas Ayda

    <

    ·

    § ( htp: /lcalhs/frmulars/phpds @ Ir l Widws Mia Htmail gratuit Psalizar íncls WiwsVabl $mb kt

    Vabl $ap Bcra ró

    TiadI

  • 8/16/2019 Presentacion Crones

    154/212

    Restricción de acceso p or edadedad.ph

    Restrin gi r por edad

    Escribe tu edad :

    edad2.php

    Restringi r por edad

  • 8/16/2019 Presentacion Crones

    155/212

    Restricción de acceso p or edad� Rstrigr por edd Mozil Fiefx

    rhiv diar 'er !r aradres Herraieas yda

    htt://lcalhtrari/edad.

    @ r �------ Widw Media Htmai gratit Pernalizar vícEscb E ]

    Teiad

    Rstri gr por edd Mozil l Frefx rhiv ditar er r arcadre Herramea Ayda

    [ htp/lalh/frular/edad2 @ Ir ._�------ Widw Media Htail gratuit Pealizar ínl [ WidwTu ea: 10

    No pu n r

    Teiad

  • 8/16/2019 Presentacion Crones

    156/212

    Restricción de acceso p r edad� Rstrigr por edd Mozil Fi efx rhivo diar er r arcadore Herraiea da

    htt//loalhotorario/edad.

    @ r

    Widow Media Hotmai ratito Peronaliar vEscrbe edad � [ E ]

    Teiado

    � Rstri gr por edd Mozil Fiefx Lrhivo diar 'er !r aradore Herraiea da

    Q § � htt://localhotorario/edad2. r _____� Widow Media Hotmai ratito Peronalizar víclo WindowTu edad: 18

    Bienvedo

    Teiado

  • 8/16/2019 Presentacion Crones

    157/212

    h form u norma l h

    Tu nombre

    Tu si stema favorito

    Lin ux

    UnixMaci ntoshWindows

    ¿Te g usta el futbol ?

    ¿ Cua l es tu sexo?

    Formu lar io habitual

    H om bre

    Mujer

    Aficiones

  • 8/16/2019 Presentacion Crones

    158/212

    Formu lar io habitual-

     

    M

    U

    F  

    ex

    L(

    hivo iar e !r cadres eramea ,da

    9

    . § o © D tp /oh/fophf v 1 @ Wi Mi Hmi a D rr u D WndoTu nombre

      ntoi

    becerra1

    u sistma vrol

    f¿:::: :::: ]_v 1¿ gsa l ol ?

    Cul sx

    om re  

    Mj cns

    Nadar, Cine Juga al Teis

    Evir dtos

    Rslc

    iadoI

    ·

    =

  • 8/16/2019 Presentacion Crones

    159/212

    misdatos h

  • 8/16/2019 Presentacion Crones

    160/212

    Formu lar io habitualg Moz

    a

    F ref

    x

    \rchivo E:ditar 'er l es Heramiena Ay�da

    Q � � & o @ 1 htp: /locaotFrmulas_da  @ I Wiw M gu Piz í WwHa t q stásEr hmbr

    in SS isma fvorto Lin gsa l b

    s s s:

    Nad, n Jgr l

    VOVER FOAO

    Trir . :

  • 8/16/2019 Presentacion Crones

    161/212

    h form ucomex

  • 8/16/2019 Presentacion Crones

    162/212

    Formulario más complejo

    Q

    • @ tpchtmip @ r � 8riv ¡i rd mn =�

    ======

    :

    ==

    Wido Md mi i ro vínu WidoNombr: Aton BrrEm: rr@u l.

    Tinad

    Q

    e

    §

    E

    O

    t sfrmrshf v

    @ Ir

    ------�

    Wid M Hmi ri ir WAy

    ( [pesoal] = Ara( om = too Bca[eai] = abeera@ual . es

    [beer] = a(

    O => wahog[ 1 = sgarer

    [o

    =enviad

    [Ev => nví 'Pr favr nenál de nev

    Tinad

  • 8/16/2019 Presentacion Crones

    163/212

    .hi E 1 M i y.

    y @ h:/llhjii/fi' v I-----O Windows Mia O Hotmail gratuio roaiza íclo Windows

    Frmular e crpcó e uuar

    Nombre completo

    Dción

    Corro lco

    Coasña

    Co oas ña

    Fha d nito

    Sxo

    Por fvor, ig los

    tm d nré

    Seeo ts

    8

    1

    O Hmbr

    D FiciD AinD Susp

    V

    O Muj

    D TrD mdia

    -

    -

    _

    _

    r

    s .i.�• ti.

    ___JD=__a__e  .i__�-  •

    v

    l

    Ti

    .i i M .

    y • @ hp:lliié v @ I -----O i i il i [ li ví

    Pága e crmacó e regtr e uuar

    Nombre completo noi Brr

    Ursidd d r

    Dieión t. Lg yComucieo o co arr@al

    Conasef ti

    Feha de15/Agot1970

    neto

    Sexo Hombr

    Po avo, ge lotrro

    em e neréscn

    di

    Acone Msia-oseleeoada t

    Cnfi rmar dato s 1

    Tinad

    PRACTICA #7 PHP

  • 8/16/2019 Presentacion Crones

    164/212

    Realiza los ejercicios siguientes:

    Ejercicio 1 :Realizar todos los ejercicios de la presentación.

    Ejercicio 2 Real izar el ejercicio 2 de la diapositiva anterior.

    Entregar la b itácora de los ejercicios  real izados con im presión de pantal l a . Resultados y conclusiones.

  • 8/16/2019 Presentacion Crones

    165/212

     PERL

    L engua je Prá ct ico de E xtracción

    y de Informes

    Introducción

  • 8/16/2019 Presentacion Crones

    166/212

    • PERL que significa "Practical Extraction andReport Language”

    • Es un lenguaje de programación creado porLarry Wall, surge de otras herramientasUnix.

     Introducción (Cont.)

  • 8/16/2019 Presentacion Crones

    167/212

    ( )

    • Principalmente sirve para labores deprocesamiento de texto.

    •  También sirve para la programación desoftware de sistemas

    •  Y últimamente ha encontrado su aplicaciónen la escritura de CGI o scripts ejecutadosdesde páginas de la WWW.

  • 8/16/2019 Presentacion Crones

    168/212

    • PERL es un lenguaje interpretado, aunque

    internamente funciona como un compilador. Poreso se habla de scripts , y no de programas.

    • Existen actividades en las cuales PERL, no es lasolución más adecuada, por ejemplo: sistemas detiempo real, aplicaciones de memoria compartida deprocesos o aplicaciones extremadamente largas.

    Conociendo su sintaxis

  • 8/16/2019 Presentacion Crones

    169/212

    • El típico ejemplo de hola mundo!!!1: #!/usr/bin/perl

    2: print ("Cual es tu nombre?");

    3: $nombre=;

    4: chop($nombre); # esto es un comentario

    5: print "Hola, $nombre!\n";

    • OBS.: en PERL no se necesita declarar la variablese crea y se usa, podríamos haber escrito un

    número igual lo mostraría.

  • 8/16/2019 Presentacion Crones

    170/212

    • Los datos pueden ser números y string, al igualque en C.

    • Para señalar los strings hay dos formas de hacerlo:

    comillas simples y dobles, se usan igual que en

    Shell.

  • 8/16/2019 Presentacion Crones

    171/212

    String s :

    • a) Concatenación(.):Ej:"Hola"."mundo" # "Holamundo”

    "juan"." "."pedro" # "juan pedro”

    • b) Operador de repetición de strings(x) :

    Ej:"juan"x3 # "juanjuanjuan"

    Tipos de variables

  • 8/16/2019 Presentacion Crones

    172/212

    p

    1- Escalares:

    Las variables de escalares empiezan por $• $a = 5; $b ="xxx";

    Las instrucciones terminan en punto y coma.

    Un escalar puede tener números, strings u otrascosas más complicadas como referencias y

    descriptores.• Ej:$a=123; $nombre=“hola2”;

    1

    -

     Escalares

  • 8/16/2019 Presentacion Crones

    173/212

    • Interpolación de variables escalares en strings

    Son idénticas que en shell.

    • El valor undef (indefinido)Si usamos una variable antes de darle un

     valor se asignara como cero si es número o " "(vacío) si es como string.

    2

    -

    Arreglos

  • 8/16/2019 Presentacion Crones

    174/212

    g

    • Las variables tipo arreglos empiezan por @• @a = (95, 7, 'fff' );

    • print $a[2]; # imprime el tercer elemento: fff

    • print @a; # imprime: 9 57 fff separados porespacios.

    • Los valores de los elementos pueden ser dedistinto tipo.

    • El largo de un arreglo ( ej : @a ) quedaguardado en $#a.

  • 8/16/2019 Presentacion Crones

    175/212

    Si uno accesa un elemento del arreglo más allá delfin del arreglo el valor undef es retornado.

     Asignar un valor a un elemento más allá del findel arreglo, lo que hace es agrandar el arregloponiendo undef a los valores intermedios.

     Ejemplo de asignación en arreglos

  • 8/16/2019 Presentacion Crones

    176/212

    • Ej:@a=(1, "yo",3);

    • @c=@a; # copia el arreglo @a en @c

    • $d=$a[$#a]; # $d=3

    • $b=$a[0]; # asigna 1 a $b

    • $a[1]=5; # ahora @a es (1,5,3)• $a[2]++;

    # suma uno al tercer valor de @a siendo ahora

    (1,5,4)

    • $b=$a[7];

    # $b es 0 o "" ,dependiendo del contexto

    • $a[6]="chao";

    3

    -

    Hashes o arreglos asociativos• 'hash' que permite almacenar conjuntos de pares

  • 8/16/2019 Presentacion Crones

    177/212

    • ' hash', que permite almacenar conjuntos de pares

    (clave, valor)• Las variables de tipo hash empiezan por %

    • Para crear un elemento de un hash se requiere

    una lista de 2 valores• El primer elemento es la clave y el segundo es el

     valor%a = ( 'x', 5, 'y', 3);

    # llena 2 elementos del hash

     print $a{'x'}; # imprime: 5

     print $a{'y'}; # imprime: 3

  • 8/16/2019 Presentacion Crones

    178/212

    • Una forma más clara de ver los pare sería:%a = {' x' => 5, ' y' =>3};

    • Si es un string simple se puede omitir las

    comillas simples.

     Estructuras de Control 

  • 8/16/2019 Presentacion Crones

    179/212

    •  Al igual que en la mayoría de los lenguajes deprogramación, en PERL existen estructurascomo if , for , while .

    • La sintaxis del if , for y while es la misma queen C.

    Estructuras de control•

  • 8/16/2019 Presentacion Crones

    180/212

    • Until

    La forma del unti l es :

    until ( condicion ) {

    sentencia;

    }

     A diferencia del while el until se ejecuta al menos una vez, y se siguemientras la condición sea falso.

    • Foreach

    El foreach  recibe una lista de valores y asigna cada uno de los valores de lalista a una variable de lectura . La estructura del foreach es :

    foreach $a ( @alguna_lista ) {

    sentencia;

    }

    • “Todas las estructuras de control necesitaban de llaves, aunque solo

    fuera una instrucción”

     Manejo de Archivos

  • 8/16/2019 Presentacion Crones

    181/212

    •  Entrada estándar:

    Como vimos en el primer ejemplo, para leer unalínea desde la entrada estándar se debe asignar una

     variable escalar a

    • Lectura de parámetros pasados a un programa 

    Dentro de un programa en PERL los argumentos

    que se le pasan quedan guardados en el arreglo@ARGV .

     Manejo de Archivos

  • 8/16/2019 Presentacion Crones

    182/212

    • Procesamiento de archivos 

    • Como en todo lenguaje en PERL se puede

    trabajar con archivos.•  Abrir:

    open(FILE,"file1.txt");

    while ( $a= ){

    ...sentencia..;

    }

    close(FILE);

    • Escritura:$file='hola.c';

    open (A ">$file");

  • 8/16/2019 Presentacion Crones

    183/212

    open (A, >$file );

    # Abrimos para solo escritura el archivohola.c

     print A "hola\n";

    close(A);

    • Append :@l=('a',"\n",'b',"\n");

    open(G,">>/tmp/hola.txt");

    # Abrimos para escritura pero, sin borrar el

    #contenido solo añadiendo al archivo

     print G @l;

    close (G);

    Una forma más elegante seria usando la “funcion” die :open (A, "file.dat") || die "No se puede abrir\n";

  • 8/16/2019 Presentacion Crones

    184/212

    • Inclus ion de a rch ivos

     Al igual que en C, uno puede incluir otro archivo

    con código PERL.Con require incluimos un archivo, el cual no

    necesariamente tiene que tener un 'main', esdecir pueden ser solo subrutinas.

    Ej.: #!/usr/bin/perl

    require "otroarchiv.pl";

    Expresiones regulares

  • 8/16/2019 Presentacion Crones

    185/212

    • Es una forma general de describir un patrónde caracteres que queremos buscar en unstring. En PERL se usa la misma notación

    para expresiones regulares de sed y grep :

     Exp. Reg.

  • 8/16/2019 Presentacion Crones

    186/212

    • Se usan para indicar que algunas letras serepiten

    .(un punto) : Cualquiera excepto el carácter de línea nueva.

    + : Uno o más del carácter anterior(que lo precede).

    ? : Ninguno o uno del carácter anterior.

    * : Ninguno o más del carácter anterior.

    ^ : Busca la coincidencia sólo al comienzo de la línea.

    $ : Busca la coincidencia sólo al final de la línea.

     Exp. Reg.

  • 8/16/2019 Presentacion Crones

    187/212

    Para dar una expresión regular se pasan en '/'. Y

    para aplicarla a una variable se usa el operador'=~'.

    Si anteponemos \ (back slash) a cualquier

    comodín nos referimos al carácter mismo.Ejemplos : $a="hola mundo";

    $e="chao";

    $b= ($a =~ /^ho/); # $b vale true = 1

    (continuación)

    $c= ( "chao" =~ /ah/ ) ; # $c=0

    $d= ( "$e" =~ /ah/ ); # $d=0

  • 8/16/2019 Presentacion Crones

    188/212

    $d ( $e /ah/ ); # $d 0

    if ( $a=~ /o$/ ){ print "Correcto\n"; }

    # imprime Correcto

    El operador '=~' tiene una opción que lo que

    hace es como el sed , reemplazar un trozo detexto por otro, esa opción es la 's' :

    El formato es $x =~ s/expant/expnueva/ ;

    Ej: $cual="este es un test";

    $cual =~ s/test/prueba/;

    #$cual="este es un prueba"

    • substitución s///

    • $_  Almacena la línea completa que ha sido leído.

    f l

  • 8/16/2019 Presentacion Crones

    189/212

     Ya fue visto anteriormente su explicación.

    Cuando el escalar es $_ se omite $_ y =~...

    $_ = "abcdef";

    /bc/; # es verdadero

    s/cd//;

     print; # imprime: abef

    cuantificadores

    {3,5} : mínimo 3 y máximo 5 del carácteranterior

    {3,} : mínimo 3 del carácter anterior

    {,5} : máximo 5 del carácter anterior

    Clases de caracteres a la medida

  • 8/16/2019 Presentacion Crones

    190/212

    [ abcef ] : uno de esas 5 l et r as

    [ a- f ] : l o mi smo que el ant er i or

    [ 0- 9] : es l o mi smo que \ d

    [ \ t \ n] : es l o mi smo que \ s

    [ a- zA- Z_] : es l o mi smo que \ w

    @a = ( 1. . 10) ;f oreach ( @a )

    {

    / [̂ 1- 3] /

    andpr i nt "$_ : " ;

    }

    L as E xpR eg . ti enen tam bién opc iones

  • 8/16/2019 Presentacion Crones

    191/212

    • /g : indica que haga varios "match’s"$_ = "f1=abc test=on";

    s/=/ / ; # $_ queda con "f1 abc test=on"

    $_ = "f1=abc test=on";

    s/=/ /g ; # $_ queda con "f1 abc test on"

    $_ = "1995 Renault azul";

    @a = /^(\w+)/g; # @a queda con 3 elementos

    /i : ignore mayúsculas y minúsculas

  • 8/16/2019 Presentacion Crones

    192/212

    g y y

    $_ = "Francisco francisco";s/francisco/pacho/ig;

    # $_ queda con "pacho pacho"

    • s///e : ejecuta la segunda expresión y su valor lo utiliza para remplazar el patrón.

    $_ = "largo= 15";

    s/(\d+)/$1 * 4/e;

     print; # Imprime: largo= 60

    El operador “

    tr

    ” se usa para traducir

  • 8/16/2019 Presentacion Crones

    193/212

    caracteres.•  Tiene un parecido con la substitución en

    ExpReg $a = "f1=abc test=on";

    tr/=/ / ;

    # $a queda "f1 abc test on“

    #split para dividir

    %x = split / /, $a;

    # $x{f1} queda con "abc"# $x{test} queda con "on";

     Funciones en Exp. Reg.

  • 8/16/2019 Presentacion Crones

    194/212

    Split() y Join()

    • Split () lo que hace es dado un separador, separa unstring en un arreglo :

    Ej: $linea="mvargas::117:10:Juan";

    @a=split(/:/,$line);

    # @a=("mvargas","","117","10","Juan")

    •  Join () hace lo inverso de Split(), dado un arreglo lo

    junta en un string, separado por un delimitadorespecificado.

    Subrut inas

  • 8/16/2019 Presentacion Crones

    195/212

    •  Al igual que la mayoría de los lenguajes deProgramación, PERL soporta subrutinas,también conocidas como procedimientos o

    funciones.

    • Con ejemplos, veremos como se construyen.

     Ejemplo 1

  • 8/16/2019 Presentacion Crones

    196/212

    sub suma {

    local($x,$y)=@_; # En @_ se reciben los

     parámetros (es por valor)

    return($x+$y);

    }#uso de &

    $f=8;

    $c=&suma(4,$f); # Otra opción

    sería: $c=&suma(4,$f,'hola'); no se ve

    # afectado

    # $c=12

     Ejemplo 2

  • 8/16/2019 Presentacion Crones

    197/212

    sub duplica() {

    $x*=2;

    }

    $x=8;

    &duplicar(); # $x=16, ya que no lodeclaramos como

    # local en la subrutina => duplica a x

    Como vemos el paso de parámetros es porreferencia, pero al igual que en C, los parámetros sepueden modificar, vía punteros:

     Ejemplo 3

    $st='uno:1 dos:2 tres:3';

  • 8/16/2019 Presentacion Crones

    198/212

    $st='uno:1,dos:2,tres:3';

    &crea($st,*a); # cuando la función termina:$a{'uno'}=1, $a{'dos'}=2, $a{'tres'}=3

    sub crea {

    local($pal,*g)=@_;

    local($x,$a,$b);local(@aux);

    @aux=split(/,/,$pal);

    for($x=0;$x

  • 8/16/2019 Presentacion Crones

    199/212

    • CGI (Interfaz de entrada común) es como lapuerta de acceso que hay entre una página Web y el servidor de Internet donde la página

    reside.• Cuando un explorador desea algo más que

    otra página Web o un gráfico desde el

    servidor, la solicitud va al CGI para poder serprocesada.

    PE R L y los form u la rios

  • 8/16/2019 Presentacion Crones

    200/212

    • La idea básica detrás de un formulario essencilla: pedir información al visitante,obtener la información, después usar la

    información según sea. La parte delicada detratar con los formularios se maneja entre

    bastidores por el código de Perl.

    • El programa de procesamiento puede ser unURL situado en cualquier parte de Internet.

    Los datos procedentes de un formulariofluyen en una corriente que utiliza un formato

  • 8/16/2019 Presentacion Crones

    201/212

    fluyen en una corriente que utiliza un formatoespecial llamado codificac ión UR L .

    Cada campo tiene un atributo NAME (nombre,

    de forma que puede saberse de dónde proceden losdatos) y un atributo VALUE (valor, contenido delcampo). La cadena enviada por el explorador

    empareja cada NAME del formulario con su VALUE y los conecta con un signo igual:

    NAME=VALUE.

    La pareja NAME/VALUE es la construcción

  • 8/16/2019 Presentacion Crones

    202/212

    La pareja NAME/VALUE es la construcción

    básica de datos de los formularios y de losprogramas de procesamiento de formularios.

    M étodos de envío: GET y P OST :

     El método GET , el explorador empaqueta los

    datos del formulario y los agrega al final deuna solicitud de aspecto normal para un URL.

     El método POST 

    codificará los datos de la misma

    forma, pero los envía directamente al programa

    CGIa través de

    STDIN

    . El método

    POST

    usa la variable

  • 8/16/2019 Presentacion Crones

    203/212

    a través de STDIN. El método POST usa la variable

    de entorno CONTENT_LENGHT (longitud delcontenido) para decirle al servidor cuántos bytesdebe leer desde STDIN.

    La corriente de datos puede ser tan larga comose necesite, cosa que no ocurre con el método GETque dependiendo del servidor se permitirán cadenas

    más o menos cortas. Está limitación hace que POSTsea el método más utilizado.

    Va riables de en torno CGI)

  • 8/16/2019 Presentacion Crones

    204/212

    • Las funciones y los procesos de un servidorpasan datos entre sí a través de variables deentorno.

    • Las variables CGI de mayor importancia paracomprender el proceso de comunicaciónexplorador/servidor se describen en la tabla

    siguiente:

    Variables de entorno CGI 

  • 8/16/2019 Presentacion Crones

    205/212

    QUERY_STRINGDatos de entrada q ue se ag reg an a UR L

    para un m étodo GET .

    REQUEST_METHODExpresa e l m étodo usad o: GET o POST.

    CONTENT_LENGHTN úm ero de bytes de la corriente de da tos

    a leer para una solic i tud con e l mé todo

    POST.

     Más sobre formularios HTML

  • 8/16/2019 Presentacion Crones

    206/212

    • ....Define el comienzo yfinal de un formulario.

    • ACTION="URL". Es el nombre del archivo delscript o del programa que manejará los datosdesde un formulario.

    • METHOD="GET" o "POST". Así se indica cómose mueven los datos desde el formulario hastael script que los maneja.

    Operaciones sobre arreglos

  • 8/16/2019 Presentacion Crones

    207/212

    • P u sh y P op

    Una común utilización de los arreglos es como stacks, donde los nuevos valores son agregados y borrados por el lado derecho del arreglo. Push ()es utilizado para agregar elementos y Pop() para sacar.

    • Shift y Unsh ift ) Al igual que Pop y Push estos sacan y meten elementos en un arreglo, pero

    lo hacen por el lado izquierdo.

    • Splice

    Splice permite extraer un subarreglo y modificar a la vez el arreglo original

    Operaciones sobre arreglos (Cont.)

  • 8/16/2019 Presentacion Crones

    208/212

    • Chop

    T rabaja igual que en variables escalares, le saca el último carácter a cadaelemento del arreglo. Se usa para eliminar el retorno de carro de laentrada estándar.

    M ás sobre H ash

  • 8/16/2019 Presentacion Crones

    209/212

    • Una forma de agregar puede ser la siguiente:$a{fac}=3456;

    • La función delete sirve para borrar un

    elemento delete $a{ope};

    • La función keys crea un arreglo con las

    claves de un hash 

    %a = ( x => 5, y => 3, z => 'abc' );@b = keys %a

  • 8/16/2019 Presentacion Crones

    210/212

    • La función values devuelve un arreglo conlos valores del hash 

    • La función exists prueba si existe la clave enel hash, el resultado seria “1” si ésta estuviera.

    Variables especiales

  • 8/16/2019 Presentacion Crones

    211/212

    • $_  Almacena la línea completa que ha sidoleído.

    $`  Almacena la parte situada a la izquierda de

    un modelo.$'  Almacena la parte situada a la derecha de unmodelo.

    $&  Almacena la parte propia del modeloencontrado.

     Páginas Web’s recomendadas

  • 8/16/2019 Presentacion Crones

    212/212

    • http://www.perl.com (Página Oficial)

    • http://usuarios.lycos.es/asualam/perl/

    • http://www.perl.org