Está en la página 1de 326

heprtmento de psiD pultd de gienisD niversidd de ghileF vs lmers QRPSD uoF gsill TSQD gorreo ID ntigo

fono: 562 978 7276 e-mail:

seretrid(siFienisFuhileFl

fax: 562 271 2973

Apuntes de un curso de

PROGRAMACIN
Dcima primera edicin, revisin 111208-02

Jos Rogan C. Vctor Muoz G.

Agradecimientos:
e vier endrdeF e henisse stnF he l lse del PHHR X hniel esenjo y wx mrezF he l lse del PHHS X elejndro rs y wr hniel gornejoF he l lse del PHHT X xiols ershueren y ulin ghnD ergio ldivi y ilizeth illnuevF he l lse del PHHU X estin qodoyD grol gerdD odrigo edrs y pelipe puentesF he l lse del PHHV X miljn ojkoviD tor ery y tun sgnio intoF he l lse del PHHW X wr tos piD ilizeth emrosettiF he l lse del PHIH X grlos ezD prnis inoF

ndice
1. Elementos del sistema operativo

IFIF sntroduinF F F F F F F F F F F F F F F F F F F F F IFPF ristori de vinux F F F F F F F F F F F F F F F F F F IFPFIF enteedentes F F F F F F F F F F F F F F F F IFPFPF epriin de vinux F F F F F F F F F F F F F IFPFQF il xomre F F F F F F F F F F F F F F F F F F IFPFRF qxGvinux F F F F F F F F F F F F F F F F F IFPFSF gronolog F F F F F F F F F F F F F F F F F F IFQF il royeto heinF F F F F F F F F F F F F F F F F IFRF sngresndo l sistemF F F F F F F F F F F F F F F F IFRFIF erminlesF F F F F F F F F F F F F F F F F F IFRFPF voginF F F F F F F F F F F F F F F F F F F F F IFRFQF sswordsF F F F F F F F F F F F F F F F F F F IFRFRF gerrndo l sesinF F F F F F F F F F F F F F IFSF erhivos y diretoriosF F F F F F F F F F F F F F F F IFTF vos rhivos y diretoriosF F F F F F F F F F F F F F IFUF vos omndosF F F F F F F F F F F F F F F F F F F F F IFUFIF rdenes relionds on diretoriosF F F F IFUFPF vos omndos pr diretoriosF F F F F F F IFUFQF iendo rhivos en pntllF F F F F F F F F IFUFRF gopindoD moviendo y orrndo rhivosF IFUFSF ispio de disoF F F F F F F F F F F F F F F IFUFTF vinksF F F F F F F F F F F F F F F F F F F F F IFVF rotein de rhivos y permisosF F F F F F F F F F IFWF hellsF F F F F F F F F F F F F F F F F F F F F F F F F IFWFIF erhivos de on(gurinF F F F F F F F F F IFWFPF gmir de shellF F F F F F F F F F F F F F F IFWFQF grteres espeilesF F F F F F F F F F F F F IFWFRF riles de entornoF F F F F F F F F F F F IFWFSF elisesF F F F F F F F F F F F F F F F F F F F IFWFTF ijeuin de omndosF F F F F F F F F F F
v

unix

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

I Q Q Q R R S U V V V W W W IP IQ IQ IR IR IS IT IT IU PI PI PI PP PP PQ PQ

vi

NDICE

IFWFUF gomndos del shellF F F F F F F F F F IFWFVF edireinF F F F F F F F F F F F F F IFWFWF erhivos de scriptF F F F F F F F F F IFWFIHF piltrosF F F F F F F F F F F F F F F F F IFWFIIF tilitriosF F F F F F F F F F F F F F F IFIHF eyud y doumentinF F F F F F F F F F F IFIIF hiferenis entre sistemsF F F F F F F F F F IFIPF roesosF F F F F F F F F F F F F F F F F F F F IFIQF iditoresF F F F F F F F F F F F F F F F F F F F IFIQFIF il editor viF F F F F F F F F F F F F F IFIQFPF iditores modo emsF F F F F F F F IFIRF il sistem indowsF F F F F F F F F F F F IFISF so del rtnF F F F F F F F F F F F F F F F F IFITF snternetF F F F F F F F F F F F F F F F F F F F IFITFIF ytrs mquinsF F F F F F F F F F F IFITFPF eeso l redF F F F F F F F F F F F IFITFQF ixportndo el hsveF F F F F F IFITFRF il orreo eletrnioF F F F F F F F F IFITFSF ptp nonymousF F F F F F F F F F F F IFITFTF F F F F F F F F F F F F F F F F IFIUF smpresinF F F F F F F F F F F F F F F F F F F IFIVF gompresinF F F F F F F F F F F F F F F F F F IFIVFIF histintos lgoritmos de ompresinF
2. Grca.

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

PR PT PT PU QT QU QU QV QW RH RP RP RQ RR RR RS RT RU RV RV RW SH SI
53

PFIF PFPF PFQF PFRF PFSF PFTF

isulizin de rhivos gr(osF F wodi(ndo imgenes F F F F F F F gonversin entre formtos gr(osF gptur de pntllF F F F F F F F F grendo imgenesF F F F F F F F F F qr(ndo funiones y dtosF F F F

F F F F F F F F F F F F F F

F F F F F F F F F F F F F F

F F F F F F F F F F F F F F

F F F F F F F F F F F F F F

SQ SR SR SS SS ST

3. El sistema de preparacin de documentos TEX .

QFIF sntroduinF F F F F F F F F F F F F QFPF erhivosF F F F F F F F F F F F F F F F QFQF snput sioF F F F F F F F F F F F F QFQFIF istrutur de un rhivoF F QFQFPF grteresF F F F F F F F F F QFQFQF gomndosF F F F F F F F F F QFQFRF elgunos oneptos de estiloF QFQFSF xots pie de pginF F F F

59

SW SW TH TH TH TI TI TQ

NDICE

vii

QFQFTF prmuls mtemtisF F F F F F F QFQFUF gomentriosF F F F F F F F F F F F QFQFVF istilo del doumentoF F F F F F F F QFQFWF ergumentos de omndosF F F F F QFQFIHF tuloF F F F F F F F F F F F F F F F QFQFIIF eionesF F F F F F F F F F F F F F QFQFIPF vistsF F F F F F F F F F F F F F F F QFQFIQF ipos de letrsF F F F F F F F F F F QFQFIRF eentos y smolosF F F F F F F F F QFQFISF isritur de textos en stellnoF QFRF prmuls mtemtisF F F F F F F F F F F QFRFIF u y suprndiesF F F F F F F F F QFRFPF prionesF F F F F F F F F F F F F F QFRFQF esF F F F F F F F F F F F F F F F QFRFRF untos suspensivosF F F F F F F F F QFRFSF vetrs griegsF F F F F F F F F F F F QFRFTF vetrs ligr(sF F F F F F F F F QFRFUF molos mtemtiosF F F F F F F QFRFVF puniones tipo logritmoF F F F F QFRFWF wtriesF F F F F F F F F F F F F F F QFRFIHF eentosF F F F F F F F F F F F F F F QFRFIIF exto en modo mtemtioF F F F QFRFIPF ispido en modo mtemtioF F QFRFIQF pontsF F F F F F F F F F F F F F F F QFSF lsF F F F F F F F F F F F F F F F F F F F QFTF eferenis ruzdsF F F F F F F F F F F F QFUF exto entrdo o linedo un ostdoF QFVF elguns herrmients importntes F F F F QFVFIF el F F F F F F F F F F F F F F F A QFVFPF AMSEvi F F F F F F F F F F F F QFVFQF fonten F F F F F F F F F F F F F F QFVFRF enumerte F F F F F F F F F F F F F QFVFSF golorF F F F F F F F F F F F F F F F QFWF wodi(ndo el estilo de l pginF F F F F QFWFIF istilos de pginF F F F F F F F F F QFWFPF gorte de pgins y lnesF F F F F QFIHF pigursF F F F F F F F F F F F F F F F F F F QFIHFIF grphixFsty F F F F F F F F F F F QFIHFPF emiente figureF F F F F F F F F F QFIIF grtsF F F F F F F F F F F F F F F F F F F F A QFIPF vi y el formto pdfF F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

TQ TQ TR TS TS TT TT TU TW TW UH UI UI UI UI UP UQ UQ UT UT UW UW UW VH VI VI VP VQ VQ VR VU VU VV VW VW VW WP WQ WR WS WW

viii
A QFIQF wodi(ndo viF F F F F F F F F F F F F F F QFIQFIF he(niin de nuevos omndosF F F F QFIQFPF grein de nuevos pquetes y lses QFIRF irrores y dvertenisF F F F F F F F F F F F F QFIRFIF irroresF F F F F F F F F F F F F F F F F QFIRFPF edvertenisF F F F F F F F F F F F F F

NDICE

F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F WW F WW F IHR F IIP F IIP F IIS F IIU F IIU F IIV F IIV F IIV F IIW F IIW F IPH F IPH F IPH F IPI F IPI F IPP F IPS F IPT F IPU F IPV F IPW F IPW F IQH F IQH F IQH F IQI F IQP F IQP F IQQ F IQQ F IQR F IQR F IQS F IQS
125 117

4. Introduccin a programacin.

RFIF u es progrmrc F F F F F F F F F F F F F F F RFPF vengujes de progrminF F F F F F F F F F F RFPFIF gdigo de wquin inrioF F F F F F F RFPFPF venguje de insmldor @essemlerAF RFPFQF venguje de lto nivelF F F F F F F F F F RFPFRF vengujes interpretdosF F F F F F F F F RFPFSF vengujes espeilizdosF F F F F F F F F RFQF vengujes nturles y formlesF F F F F F F F F RFQFIF vengujes nturlesF F F F F F F F F F F RFQFPF vengujes formlesF F F F F F F F F F F F RFRF hesrrollndo progrmsF F F F F F F F F F F F RFSF v interfz on el usurioF F F F F F F F F F F F RFTF r los errores de un progrmF F F F F F F F SFIF SFPF SFQF SFRF ythonF F F F F F F F F F F F F F F F F F F F F F il en de ythonF F F F F F F F F F F F F F F F il primer progrmF F F F F F F F F F F F F F F ipos siosF F F F F F F F F F F F F F F F F F F SFRFIF vs vrilesF F F F F F F F F F F F F F F SFRFPF esignin de vrilesF F F F F F F F F SFRFQF eilndo vrilesF F F F F F F F F F F SFRFRF gomentriosF F F F F F F F F F F F F F F SFRFSF yperiones mtemtisF F F F F F F F SFRFTF gdens de rteres @strings AF F F F F SFRFUF yperiones simples on stringsF F F F F SFRFVF vos rteres dentro de un stringsF F F SFRFWF ndies negtivosF F F F F F F F F F F F F SFRFIHF foolenosF F F F F F F F F F F F F F F F F SFSF smprimiendo e ingresndoF F F F F F F F F F F F SFSFIF smprimiendo en l mism lneF F F F F SFSFPF smprimiendo un texto de vris lnesF SFSFQF gomposiinF F F F F F F F F F F F F F F

5. Una breve introduccin a Python.

NDICE

ix

SFSFRF smprimiendo on formto F F F F F F F F F F F F F F F SFSFSF intrd @inputAF F F F F F F F F F F F F F F F F F F F F SFTF ipos vnzdosD ontenedoresF F F F F F F F F F F F F F F F F SFTFIF vistsF F F F F F F F F F F F F F F F F F F F F F F F F F F SFTFPF enndo listsF F F F F F F F F F F F F F F F F F F F F SFTFQF wutiliddF F F F F F F F F F F F F F F F F F F F F F F SFTFRF wodi(ndo listsF F F F F F F F F F F F F F F F F F F F SFTFSF egregndo un listF F F F F F F F F F F F F F F F F F SFTFTF forrndo items de un listF F F F F F F F F F F F F F F SFTFUF yperiones on listsF F F F F F F F F F F F F F F F F F SFTFVF uplsF F F F F F F F F F F F F F F F F F F F F F F F F F F SFTFWF gonjuntos F F F F F F F F F F F F F F F F F F F F F F F F SFTFIHF hiionriosF F F F F F F F F F F F F F F F F F F F F F F F SFTFIIF iditndo un diionrioF F F F F F F F F F F F F F F F F SFUF gontrol de )ujoF F F F F F F F F F F F F F F F F F F F F F F F F F SFUFIF gondiionlesF F F F F F F F F F F F F F F F F F F F F F F SFUFPF osiles ondiionlesF F F F F F F F F F F F F F F F F F SFUFQF gomprndo stringsF F F F F F F F F F F F F F F F F F F SFUFRF il ifF F F F F F F F F F F F F F F F F F F F F F F F F F F SFUFSF il ifF F F elseF F F F F F F F F F F F F F F F F F F F F F F SFUFTF porm ompt del ifF F F elseF F F F F F F F F F F F F SFUFUF il ifFFFelifFFFelseF F F F F F F F F F F F F F F F F F SFUFVF v plr lve pssF F F F F F F F F F F F F F F F F F SFUFWF yperdores lgiosF F F F F F F F F F F F F F F F F F F F SFUFIHF porm lterntivD de her un pregunt ompuestF SFUFIIF u ontiene un listc F F F F F F F F F F F F F F F F SFUFIPF steriones on whileF F F F F F F F F F F F F F F F F F SFUFIQF eorriendo un stringF F F F F F F F F F F F F F F F F F SFUFIRF il ilo forF F F F F F F F F F F F F F F F F F F F F F F F SFUFISF n ilo for y ls listsF F F F F F F F F F F F F F F F F SFUFITF qenerndo lists de nmerosF F F F F F F F F F F F F F SFUFIUF il omndo rekF F F F F F F F F F F F F F F F F F F F SFUFIVF il omndo ontinueF F F F F F F F F F F F F F F F F F SFUFIWF il omndo elseF F F F F F F F F F F F F F F F F F F F F SFVF puniones reEhehsF F F F F F F F F F F F F F F F F F F F F F SFVFIF elguns funiones inorpordsF F F F F F F F F F F F F SFVFPF v funin que d el lrgo de un string o un listF F SFVFQF elguns funiones del mdulo mthF F F F F F F F F F F SFVFRF elguns funiones del mdulo stringF F F F F F F F F SFVFSF elguns funiones del mdulo rndomF F F F F F F F F SFVFTF elgunos otros mdulos y funionesF F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F IQS F IQS F IQT F IQT F IQU F IQU F IQV F IQV F IQW F IQW F IQW F IRH F IRI F IRI F IRP F IRP F IRP F IRQ F IRQ F IRQ F IRR F IRR F IRS F IRS F IRS F IRT F IRT F IRU F IRU F IRV F IRV F IRV F IRW F IRW F IRW F ISI F ISI F ISI F ISP F ISP F ISP

NDICE

SFWF puniones hehs en sF F F F F F F F F F F F F F F F F F F SFWFIF eet pr un funinF F F F F F F F F F F F F F F F SFWFPF riles glolesF F F F F F F F F F F F F F F F F F F SFWFQF sndo vlores l funinF F F F F F F F F F F F F SFWFRF lores por defeto de un funinF F F F F F F F F F SFWFSF ergumentos lvesF F F F F F F F F F F F F F F F F F F SFWFTF houmentin de un funinD docstringsF F F F F F SFWFUF upls y diionrios omo rgumentosF F F F F F F SFWFVF v plr lve returnF F F F F F F F F F F F F F F F SFWFWF puniones que tienen un vlor de retorno explitoF SFWFIHF puniones que tienen ms de un vlor de retornoF F SFWFIIF eursinF F F F F F F F F F F F F F F F F F F F F F F F SFWFIPF rmetros desde l lne de omndoF F F F F F F F SFIHF ijemplos de funionesX rz udrd y ftorilF F F F F F F SFIHFIF z udrdF F F F F F F F F F F F F F F F F F F F F SFIHFPF ptorilF F F F F F F F F F F F F F F F F F F F F F F F SFIIF rogrmin orientd ojetosF F F F F F F F F F F F F F F SFIIFIF yjetos y lsesF F F F F F F F F F F F F F F F F F F F SFIIFPF glse de muestr viretxotsF F F F F F F F F F F F SFIIFQF lores por defetoF F F F F F F F F F F F F F F F F F F SFIIFRF rereniF F F F F F F F F F F F F F F F F F F F F F F F SFIIFSF rereni multipleF F F F F F F F F F F F F F F F F F F SFIIFTF olimor(smoF F F F F F F F F F F F F F F F F F F F F F SFIIFUF inpsulinF F F F F F F F F F F F F F F F F F F F F SFIIFVF etriutos omunes tod un lseF F F F F F F F F SFIIFWF wtodos espeilesF F F F F F F F F F F F F F F F F F F SFIIFIHFijemplosF F F F F F F F F F F F F F F F F F F F F F F F SFIIFIIFil minF F F F F F F F F F F F F F F F F F F F F F SFIPF yjetos onoidosF F F F F F F F F F F F F F F F F F F F F F F SFIPFIF StringF F F F F F F F F F F F F F F F F F F F F F F F F F SFIPFPF vistsF F F F F F F F F F F F F F F F F F F F F F F F F F SFIPFQF hiionriosF F F F F F F F F F F F F F F F F F F F F F F SFIQF rogrmin punionlF F F F F F F F F F F F F F F F F F F F SFIQFIF puniones de orden superiorF F F F F F F F F F F F F F SFIQFPF steriones sore listsF F F F F F F F F F F F F F F F F SFIQFQF vs funiones lmdF F F F F F F F F F F F F F F F F SFIQFRF gompresin de listsF F F F F F F F F F F F F F F F F F SFIQFSF ixpresiones generdors y generdoresF F F F F F F F SFIQFTF heordoresF F F F F F F F F F F F F F F F F F F F F F F SFIRF ixepionesF F F F F F F F F F F F F F F F F F F F F F F F F F F SFIRFIF floque try FFF exeptF F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F ISQ F ISQ F ISR F ISR F ISS F ISS F IST F ISU F ISU F ISV F ISV F ISW F ISW F ITH F ITH F ITP F ITQ F ITQ F ITR F ITS F ITS F ITV F ITV F ITW F IUH F IUI F IUP F IUQ F IUR F IUR F IUT F IUV F IUW F IUW F IVH F IVP F IVQ F IVQ F IVR F IVU F IVU

NDICE

xi

SFIRFPF gomndo riseF F F F F F F F F F F F F F F F SFIRFQF v instruin ssertF F F F F F F F F F F F F SFISF wodulosF F F F F F F F F F F F F F F F F F F F F F F F F SFISFIF hividiendo el digoF F F F F F F F F F F F F F SFISFPF grendo un mduloF F F F F F F F F F F F F F SFISFQF egregndo un nuevo diretorio l pathF F F F SFISFRF houmentndo los mdulosF F F F F F F F F F SFISFSF sndo un mduloF F F F F F F F F F F F F F F SFISFTF ruos on mdulosF F F F F F F F F F F F F F SFISFUF quetes F F F F F F F F F F F F F F F F F F F F SFITF ikle y helveF F F F F F F F F F F F F F F F F F F F SFITFIF reservndo l estrutur de l informinF SFITFPF gmo lmenrc F F F F F F F F F F F F F F SFITFQF ijemplo de shelveF F F F F F F F F F F F F F F SFITFRF ytrs funiones de shelveF F F F F F F F F F F SFIUF rjndo on rhivosF F F F F F F F F F F F F F F F SFIUFIF puniones del mdulo osF F F F F F F F F F F SFIUFPF puniones del mdulo osFpthF F F F F F F F SFIUFQF ijemplo de un digoF F F F F F F F F F F F F SFIUFRF eriendo un rhivoF F F F F F F F F F F F F F SFIUFSF veyendo un rhivoF F F F F F F F F F F F F F SFIUFTF isriiendo un rhivoF F F F F F F F F F F F SFIUFUF gerrndo un rhivoF F F F F F F F F F F F F F SFIUFVF erhivos temporlesF F F F F F F F F F F F F F SFIUFWF ijemplo de letur esriturF F F F F F F F F F SFIVF elgunos mdulos interesntesF F F F F F F F F F F F F SFIVFIF il mdulo xumeriF F F F F F F F F F F F F F SFIVFPF il mdulo kinter F F F F F F F F F F F F F F SFIVFQF il mdulo isulF F F F F F F F F F F F F F F
6. Ejercicios Propuestos

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F IWH F IWP F IWQ F IWQ F IWQ F IWQ F IWR F IWR F IWS F IWS F IWU F IWU F IWU F IWU F IWV F IWW F IWW F PHH F PHH F PHH F PHI F PHI F PHI F PHI F PHP F PHQ F PHQ F PHQ F PHW F PII F PIQ F PIV F PPI F PPS F PPV F PPW
241 211

TFIF TFPF TFQF TFRF TFSF TFTF TFUF

istem ypertivo F F F F F F F gomndos sios F F F F F F F F piltros F F F F F F F F F F F F F F Scripts F F F F F F F F F F F F F F A qr( y vi F F F F F F F F F sntroduin l rogrmin ython F F F F F F F F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

F F F F F F F

A. Transferencia a diskettes.

xii

NDICE

B. Las shells csh y tcsh. C. Editores tipo emacs.

fFIF gomndos propiosF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PRQ fFPF riles propis del shellF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PRR
247 255

243

D. Una breve introduccin a Octave/Matlab

hFIF sntroduin F F F F F F F F F F F F F F F F F F F F F F F hFPF snterfse on el progrm F F F F F F F F F F F F F F F F hFQF ipos de vriles F F F F F F F F F F F F F F F F F F F F hFQFIF islres F F F F F F F F F F F F F F F F F F F F F hFQFPF wtries F F F F F F F F F F F F F F F F F F F F F hFQFQF trings F F F F F F F F F F F F F F F F F F F F F F hFQFRF istruturs F F F F F F F F F F F F F F F F F F F hFRF yperdores sios F F F F F F F F F F F F F F F F F F F hFRFIF yperdores ritmtios F F F F F F F F F F F F F hFRFPF yperdores relionles F F F F F F F F F F F F F hFRFQF yperdores lgios F F F F F F F F F F F F F F F hFRFRF il operdor X F F F F F F F F F F F F F F F F F hFRFSF yperdores de priin preferente en sripts hFSF gomndos mtriiles sios F F F F F F F F F F F F F hFTF gomndos F F F F F F F F F F F F F F F F F F F F F F F F hFTFIF gomndos generles F F F F F F F F F F F F F F hFTFPF gomo lenguje de progrmin F F F F F F F F hFTFQF wtries y vriles elementles F F F F F F F F hFTFRF olinomios F F F F F F F F F F F F F F F F F F F F hFTFSF lger linel @mtries udrdsA F F F F F F hFTFTF enlisis de dtos y trnsformd de pourier F hFTFUF qr(os F F F F F F F F F F F F F F F F F F F F F hFTFVF trings F F F F F F F F F F F F F F F F F F F F F F hFTFWF wnejo de rhivos F F F F F F F F F F F F F F F iFIF yjetivoF F F F F F F F F F F F F F F F F F F F iFPF rerequisitos F F F F F F F F F F F F F F F F iFQF freve refereni sore pgins weF F F F F iFQFIF ijemplos F F F F F F F F F F F F F F F iFRF edministrdor de fses de dtosF F F F F F iFSF ervidor eF F F F F F F F F F F F F F F F F iFTF gins fsis en htmlF F F F F F F F F F F iFTFIF istrutur de un pgin en htmlF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F

F PSS F PSS F PST F PST F PST F PSV F PSW F PTH F PTH F PTH F PTI F PTI F PTI F PTI F PTP F PTP F PTQ F PTU F PTW F PTW F PUH F PUI F PUS F PUT F PVI F PVI F PVP F PVP F PVQ F PVQ F PVR F PVR
281

E. Herramientas bsicas en el uso de L.A.M.P.

NDICE

xiii

iFTFPF elgo de estiloF F F F F F F F F F F F F F F F F F iFTFQF pormulriosF F F F F F F F F F F F F F F F F F F iFUF MySqlF F F F F F F F F F F F F F F F F F F F F F F F F F iFUFIF sniindo sesinF F F F F F F F F F F F F F F F iFUFPF grendo un se de dtosF F F F F F F F F F iFUFQF grendo tlsF F F F F F F F F F F F F F F F F iFUFRF sntertundo on l lF F F F F F F F F F iFVF rogrmin en PHPF F F F F F F F F F F F F F F F F iFVFIF venguje PHPF F F F F F F F F F F F F F F F F iFVFPF rilesF F F F F F F F F F F F F F F F F F F F iFVFQF euperndo vriles desde un formulrioF iFVFRF gontrol de )ujoF F F F F F F F F F F F F F F F F iFVFSF punin require. F F F F F F F F F F F F F F F F iFVFTF esinF F F F F F F F F F F F F F F F F F F F F F iFVFUF PHP intertundo on MySqlF F F F F F F F iFWF ijemplo pinlF F F F F F F F F F F F F F F F F F F F F iFWFIF so sX istrutur de ls tlsF F F F F F F F iFWFPF so ssX rol de pginsF F F F F F F F F F F iFIHFgonlusionesF F F F F F F F F F F F F F F F F F F F F F iFIHFIF wejors l ijemplo (nlF F F F F F F F F F F F iFIIFl de golores en htmlF F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F F F F F F F F F F F F F F F F F F F F F

F PVR F PVV F PWI F PWI F PWI F PWP F PWP F PWS F PWT F PWT F PWT F PWU F PWW F PWW F QHI F QHQ F QHQ F QHR F QHW F QHW F QIH

xiv

NDICE

ndice de guras
QFIF hFIF hFPF hFQF iFIF iFPF n sujeto minndoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F WS qr(o simpleF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PUI gurvs de ontornoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PUQ gurvs de ontornoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F PUR isquem de un tl en htmlD utilizndo los elementos de un mtrizF F F F F PVU vos PST olores posiles de desplegr en un pgin en htmlD on su respetivo digoF F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F QIH

xv

Captulo 1 Elementos del sistema operativo unix.


versin revisada 8.0, diciembre de 2011

1.1. Introduccin.
in este ptulo se intentr dr los elementos sios pr poder trjr en un miE ente unixF in pretender urir todos los spetos del mismoD nuestro inters se entr en entregr ls herrmients l letor pr que pued relizr los trjos del urso jo este sistem opertivoF gomo omentrio diionlD onsientemente se h evitdo l trduin de grn prte de l terminolog tni teniendo en mente que l doumentin disponile se enuentrD por lo generlD en ingls y nos interes que el letor se pz de reonoer los trminosF il sistem opertivo unix es el ms usdo en investigin ient(D tiene un lrg histori y muhs de sus ides y mtodos se enuentrn presentes en otros sistems opertivosF elguns de ls rterstis relevntes del unix moderno sonX wultitre @Multitasking AX gd progrm tiene signdo su propio espio de memoE riF is imposible que un progrm fete otro sin usr los serviios del sistem operE tivoF i dos progrms esrien en l mism direin de memori d uno mntiene su propi ide de su ontenidoF wultiusurioX ws de un person puede usr l mquin l mismo tiempoF rogrms de otros usurios ontinn ejeutndose pesr de que un nuevo usurio entre l mquinF wemori grndeD linel y virtulX n progrm en un mquin de QP fits puede eder y usr direiones hst los R qf en un mquin de slo R wf de ewF il sistem slo sign memori utnti undo le he fltD en so de flt de memori de ewD se utiliz el diso duro @swap AF gsi todo tipo de dispositivo puede ser edido omo un rhivoF I

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

ixisten muhs pliiones diseds pr trjr desde l lne de omndosF edemsD l myor de ls pliiones permiten que l slid de un pued ser l entrd de otr pliinF ermite omprtir dispositivos @omo diso duroA entre un red de mquinsF or su nturlez de multiusurioD nunca se deer pgr impulsivmente un mquin D y que un mquin pgd sin rzn puede mtr trjos de dsD perder los ltimos mios de tus rhivos e ir degrdndo el sistem de rhivos en los dispositivos de lmenmiento omo los disos durosF
unix1

intre los sistems opertivos unix tules e destrX vinux fue originlmente desrrolldo primero pr omputdores personles gs sE dos en xVT de QP its @QVT o superioresAF roy vinux orre sore sntel xVTD elph eD un egD wotorol TVHHHD owergD ewD rithi uperrD sfw GQWHD wsD r eEsgD sntel seETRD ewh xVTETRD es gsD eness wQPD etmel eQPD eness rVGQHHD xig VSHD ensili tens y rquiteturs enlog hevies flk(nY pr muhs de ests rquiteturs en vrintes de QP y TR itsF uny2X disponile pr l fmili TVu s omo pr l fmili sparc de estiones de trjo sun olris3 X disponile pr l fmili sparc de Sun s omo pr l fmili xVTF ypI4X disponile pr elphF ltrixX disponile pr vax de higitl R5X disponile pr l fmili xVTD vxF ssX disponile pr mipsF es6X disponile pr THHH de sfw y owergF
2 SunOS 4.1.x tambin se conoce como Solaris 1. 3 Tambin conocido como SunOS 5.x, solaris 2 o Slowaris :-). 4 Tambin conocido como Dec Unix. 5 Tambin conocido como Unixware y Novell-Unix. 6 Tambin conocido como Aches.

1.2.

HISTORIA DE LINUX

1.2. Historia de Linux


1.2.1. Antecedentes il nleo vinux h sido mrdo por un reimiento onstnte en d momento de su historiF hesde l primer puliin de su digo fuente en IWWID nido desde un pequeo nmero de rhivos en lenguje g jo un lieni que prohe l distriuin omerilD su estdo tul de er de PWT wifs de fuente jo l vieni pli generl de qxF il nomre vinux h generdo grn ontroversi y nuevs lterntivs no hn trddo en preer pr herle ompeteniF in IWVQ ihrd tllmn inii el royeto qxD on el propsito de rer un sistem opertivo similr y omptile on xs y los estndres ysF hos os ms trde re l pundin del oftwre vire @ppA y desrroll l vieni pli generl de qx @qx qvAD pr tener un mro legl que permitier difundir liremente el softwareF he este modo el softwre de qx fue desrrolldo muy rpidmenteD y por muhs personsF e orto plzoD se desrroll un multipliidd de progrmsD de modo que prinipios de los WH h stnte softwre disponile omo pr rer un sistem opertivo ompletoF in emrgoD todv le flt un nleoF isto de ser desrrolldo en el proyeto qx rurdD pero rurd demostr desrrollrse muy intivmenteD porque enontrr y reprr errores @deugging en inglsA er muy difilD deido ls rterstis tnis del diseo del mironleoF ytro proyeto de sistem opertivo softwre lireD en los os IWVH fue fhF iste fue desrrolldo en l niversidd de ferkeley desde l Ta ediin de nix de e8F uesto que el digo de e8 nix est ontenido en fhD e8 present un demnd prinipios de los os IWWH ontr l niversidd de ferkeleyD l ul redujo el desrrollo de fhF esD prinipios de los os WH no produjo ningn sistem ompleto lireF il futuro de fh er inierto deido l pleito y detuvo el desrrolloF edemsD el royeto qx grdulmente se desrroll peroD este re de un ien formdo nleo xsF isto dej un niho iertoD que vinux llenr muy prontoF 1.2.2. Aparicin de Linux in IWWID en relsinkiD vinus orvlds omenz un proyeto que ms trde lleg ser el nleo vinuxF isto fue l prinipio un emuldor terminlD l ul orvlds sol tener eso en los grndes servidores xs de l universiddF l esrii el progrm expresmente pr el hrdwre que usD e independiente de un sistem opertivoD porque quiso usr ls funiones de su nuev omputdor personl on un proesdor VHQVTF il sistem opertivo que l us durnte el desrrollo fue winixD y el ompildor iniil fue el qx gD que n es l opin prinipl pr ompilr vinux hoy @unque vinux puede ser ompildo jo otros ompildoresD tl omo el sntel g gompilerAF gomo orvlds esrii en su liro olmente por diversinD l trde o temprno omE

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

prendi que h esrito un nleo de sistem opertivoF il PS de gosto de IWWID nuni este sistem en un envo l red senetD en el newsgroup @grupo de notiisAX rol todos quellos que usn winix E istoy hiendo un sistem opertivo @grtuitoA @solmente un (inD no ser grnde ni profesionl omo el qxA pr lones QVT@RVTA eF iste h estE do gestndose desde rilD y est omenzndo estr listoF we gustr reiir ulquier omentrio sore ls oss que gustnGdisgustn en minixD y que mi y @istem ypertivoA se le pree un poo @l mism disposiin fsi del sistem de rhivosD deido motivos prtiosD entre otrs ossAF etulmente he portdo sh @IFHVA y g @IFRHAD y ls oss preen funionrF isto impli que onseguir lgo prtio dentro de unos mesesD y me gustr ser qu rterstis quiere l myor de l genteF gulquier sugereni es ienvenidD pero no prometer que ls pondr en prti XEA vinus fenedit orvlds @torvldsdkruunFhelsinkiF(A hF D es lire de ulquier digo de minixD y tiene un sistem de rhivos multiE hiloF xy es portle @us QVT un onmutin de tre etFAD y prolemente nun ser soportd por nd ms que los disos duros eD porque es todo lo que tengo XE@F vinus orvlds
1.2.3. El Nombre vinus orvlds h querido llmr su invenin prexD un ominin de freak @norE ml o rroAD free @lireAD y D un lusin nixF hurnte el iniio de su trjo sore el sistemD l lmen los rhivos jo el nomre prex por proximdmente medio oF orvlds y h onsiderdo el nomre vinux D pero l prinipio lo h desrtdo por ser demsido egontrio o egostF r dr otr gente l pidd de ooperr en el sistem o sugerir mejorsD los rhivos fueron olodos en el servidor ftp @ftpFfunetF(A de l niversidd de relsinkiD en septiemre de IWWIF eri vemmkeD oleg de orvlds en l niversiddD y enrgdo de los servidores en ese momentoD no estuvo de uerdo on el nomre prexD pre(riendo el nomre vinuxF l simplemente llm los rhivos olodos sore el servidor vinux sin onsultr orvldsF ws trdeD sin emrgoD orvlds edi usr el nomre vinuxF 1.2.4. GNU/Linux v designin vinux l prinipio fue usd por orvlds slo pr el nleoF il nleo fueD sin emrgoD on freueni usdo junto on otro softwreD espeilmente on el del

1.2.

HISTORIA DE LINUX

proyeto de qxF ist vrinte de qx rpidmente se hizo l ms populrD y que no h ningn otro nleo lire que funionr en ese tiempoF gundo l gente omenz referirse hi est reopilin omo vinuxD ihrd tllmnD el funddor del proyeto de qxD soliit que se usr el nomre qxGvinuxD pr reonoer el rol del softwre de qxF in junio de IWWRD en el oletn de qxD vinux fue meniondo omo un lon lire de xsD y el royeto hein omenz llmr su produto qxGvinuxF in myo de IWWTD ihrd tllmn puli l editor ims IWFQID en el ul el tipo de sistem fue renomrdo de vinux vignuxF ist esritur fue pretendid pr referirse expresmente l ominin de qx y vinuxD pero esto pronto fue ndondo en fvor de qxGvinuxF il produto termindo es ms menudo denomindo simplemente omo vinuxD omo el ms simpleD el nomre originlF tllmn nuni su demnd por un mio de nomre slo despus de que el sistem y se h heho populrF
1.2.5. Cronologa IWVQX ihrd tllmn re el proyeto de qx on el ojetivo de rer un sistem opertivo lireF

IWVWX ihrd tllmn esrie l primer versin de l lieni qx qvF IWWIX il nleo vinux es nunido plimenteDel PS de gosto por el entones estuE dinte (nlnds de PI os vinus fenedit orvldsF il IU de septiemre l primer versin pli pree sore un servidor de ftpF elgunos desrrolldores estn intereE sdos en el proyeto y ontriuyen on mejors y extensionesF IWWPX il nleo vinux es lienido de nuevo jo l qx qvF vs primers distriuE iones vinux son redsF IWWQX ws de IHH desrrolldores trjn sore el nleo vinuxF gon su yud el nleo es dptdo l miente de qxD que re un espetro enorme de tipos de pliiones pr el nuevo sistem opertivo redo de l unin del softwre del proyeto qxD vridos progrms de oftwre lire y el nleo vinuxF in este oD tmin el proyeto ine omienz su desrrollo y l distriuin ms ntigu tulmente tivD lkwreD es lierd por primer vezF ws trde en el mismo oD el royeto hein es estleidoF roy est es l omunidd ms grnde de un distriuinF IWWRX orvlds onsider que todos los omponentes del nleo vinux estn totlE mente mduros y present l versin IFH de vinuxF ist versin estD por primer vezD disponile en l red snternetF il proyeto preeVT ontriuye on un interfz gr( de usurio @qsAF in este oD ls empress ed rt y i tmin pulin l versin IFHF

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

IWWSX epree l siguiente rm estle de vinuzD l serie IFPF ws trdeD vinux es trnsportdo ls pltforms informtis hig y x egF hurnte los os siguientes es trnsportdo un nmero d vez myor de pltformsF IWWTX v versin PFH del nleo vinux es lierdF ste hor puede servir vrios proeE sdores l mismo tiempoD y s se he un lterntiv seri pr muhs empressF IWWUX rios progrms propietrios son lierdos pr vinux en el merdoD omo l se de dtos eds hD el nvegdor xetspe y ls suites de o(in epplixwre y try0eF IWWVX impress importntes de informti omo sfwD gompq y yrle nunin soporte pr vinuxF edemsD un grupo de progrmdores omienz desrrollr l interfz gr( de usurio uhiD primer de su lse pr vinuxD on el ojetivo de proveer filidd de uso l usurioF IWWWX epree l serie PFP del nleo vinuxD on el digo de red y el soporte w mejordosF el mismo tiempoD un grupo de desrrolldores omienz el trjo sore el entorno gr(o qxywiD que ompetir on uhi por l filidd de uso y l e(ieni pr el usurioF hurnte ese o sfw nuni un extenso proyeto pr el soporte de vinuxF PHHHX v uite de o(in try0e es ofreid segn los trminos de l qx qvD riendo s el mino pr un uite de o(in vnzdD y lire en vinuxF PHHIX in eneroD se lier l serie PFR del nleo vinuxF il nleo vinux hor soport hst TR q de ewD sistems de TR itsD dispositivos f y un si stem de rhivos journlingF PHHPX v omunidd ypeny0eForg lier l versin IFH de su uite de o(in homnE imF il nvegdor we lire wozill es tmin lierdoF in septiemreD pree el lpperEworm el ul es el primer gusno informtio vinuxF PHHQX v serie PFT del nleo vinux es lierdD despus de lo ul vinus orvlds v trjr pr el yhvF vinux se us ms extensmente sore sistems integrdos @emedded systemAF PHHRX il equipo de preeVT se desintegr y se form l fundin FyrgD que provo un desrrollo onsiderlemente ms rpido del servidor pr vinuxF PHHSX il proyeto openi es omenzdo omo un distriuin lire de l omunidd de xovellF edems el proyeto ypeny0eForg proyet l versin de lnzmiento PFH que soport l estndr yes ypenhoument en otureF

1.3.

EL PROYECTO DEBIAN.

PHHTX il gl de xovell y el esqv de ed rt permiten el uso de efetos elerdos por hrdwre sore el esritorio vinuxF yrle puli su propi distriuin de ed rtF xovell y wirosoft nunin un ooperin pr l mejor interoperiliddF PHHUX hell lleg ser el primer frinte prinipl de omputdors en vender un omputdor personl de esritorio on untu preinstldoF

1.3. El Proyecto Debian.


il proyeto hein es un soiin de persons que hn redo un sistem opertivo grtis y de digo ierto @free AF iste sistem opertivo se denomin hein qxGvinux o simplemente heinF etulmente hein oup el kernel vinux desrrolldo por vinus orvlds poydo por miles de progrmdores de todo el mundoF min estn implementdos otros kernels omo rurdD desrrolldo por qxD xetfh y preefhF v myor de ls herrmients del sistem opertivo hein provienen del proyeto qx y por ende son freeF ge destr que tulmente hein tiene un totl de ms de IVUQQ pquetes @por pquetes entendemos software preompildoD pr l versin estleD en un formto que permite su fil instlin en nuestr mquinAF intre estos pquetes enontrmos desde ls herrmients sis pr proesr textoD hojs de luloD ediin de imgenesD udioD videoD hst pliiones de grn utilidd ient(F is importnte reordr que todo este software es free y por lo tnto est l lne de todos sin l neesidd de omprr lienis ni pgr por tulizionesF min existe l posiilidd de modi(r el software y que tenemos eso l digo fuente de los progrmsF hein siempre mntiene tivs l menos tres versiones que tienen ls siguientes lsi(ionesX
stable @estleAX is l ltim versin o(il de hein que h sido prod pr segurr su estiliddF etulmente orresponde l versin RFHrH uyo nomre digo es lennyF testing @en prueAX ist es l versin que se est prondo pr segurr su estilidd y pr luego psr ser versin estleF xomre digo sqeezeF unstable

@inestleAX equ es donde los progrmdores verddermente desrrolln heE in y por esto no es muy estle y no se reomiend pr el uso dirioF ist versin se denomin siempre sidF

r informin sore hein y mo jrlo visite l pgin o(il httpXGGwwwFdeinForgF

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.4. Ingresando al sistema.


in est sein omentremos ls operiones de omienzo y (n de un sesin en unix s omo l modi(in de l ontrse signd @que menudo no es l desed por el usurioD y que por lo tnto l puede olvidr on filiddAF
1.4.1. Terminales. r iniir un sesin es neesrio poder eder un terminlF ueden destrse dos tipos de terminlesX

erminl de textoX onst de un pntll y de un teldoF gomo indi su nomreD en l pntll slo es posile imprimir rteres de textoF erminl gr(oX gonst de pntll gr(D teldo y mouseF hih pntll suele ser de lt resoluinF in este modo se pueden empler ventns que emuln el omporE tmiento de un terminl de texto @xterm o gnomeEterminlAF
1.4.2. Login. il primer pso es enontrr un terminl lire donde prez el login prompt del sistemX
hein qxGvinux TFH hostnme ttyP hostnme loginX

min pueden ourrir un pr de ossX v pntll no muestr ndF


gompror que l pntll est enendidF ulsr lgun tel o mover el mouse pr destivr el protetor de pntllF

ytr person h dejdo un sesin iertF in este so existe l posiilidd de intentr en otr mquin o ien (nlizr l sesin de dih person @si st no se hll en ls proximiddesAF n vez que se hy superdo el pso nterior de enontrr el login prompt se proede on l introduin del Username l prompt de login y despus l ontrse @passwordA orrespondienteF

1.5.

ARCHIVOS Y DIRECTORIOS.

1.4.3. Passwords. il password puede ser ulquier seueni de rteres que se fil de reordr por uno mismoF i se olvidD deer psr un ml rto diindoselo l edministrdor de istemF r evitr que otr person oteng su password y teng lire eso sus rhivosD se seguirse onsiderr l siguiente put l hor de elegir su password X snluy mysuls y minsulsD ls ules no son equivlentesD en ellF se rteres numrios y no lftiosF hee tenerse l preuin de usr rteres que se puedn enontrr en todos los terminles desde los que se pretend ederF ivite usr plrs de diionrioF hee mir su password si ree que es onoido por otrs personsD o desure que lgn intruso7 est usndo su uentF in generlD es reomendle mir el password on regulriddF

v instruin pr mir el password en unix es psswd F e menudoD undo existen vris mquins que omprten reursos @disos durosD impresorsD orreo eletrnioD F F F AD pr filitr l dministrin de diho se uni( los usurios en un sol se de dtos omnF hiho sistem se onoe omo xs @Network Information Service A8F i el sistem us este serviioD l modi(in de l ontrse en un mquin requiere el omndo yppsswd y supone l modi(in en tods ls mquins que onstituyn el dominio xsF
1.4.4. Cerrando la sesin. is importnte que nun se deje iert un sesinD pues lgn intruso podr tener lire eso rhivos de propiedd del usurio y mnipulrlos de form indeseleF r evitr todo esto st teler logout o exit y se hr termindo l sesin en dih mquin9F

1.5. Archivos y directorios.


vos dtos en los dispositivos de lmenmientos estn orgnizdos en rhivos10F vo rhivos estn orgnizdos en diretoriosF iv onjunto ompleto de diretorios y rhivos el sistem de rhivos @lesystem AF in unix l lesystem es ni y puede inluir uno o ms dispositivos fsiosF eunque ls diferentes distriuiones uiquen sus progrms en diferentes prtesD l estrutur si de diretorios en un mquin vinux es ms o menos l mismX
Pages ), pero debido a un United Kingdom of British Telecomunications se adoptaron las siglas nis.
Gnome.
10 Un conjunto ordenados de bytes. 8 Antiguamente se conoca como YP (Yellow
problema de marca registrada de

9 En caso que se estuviera trabajando bajo X-Windows debes cerrar la sesin con

Log Out Usuario de

IH
GE|EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb |EEb in oot drom dev emul et home initrd li liQP liTR medi mnt opt pro root sin selinux sys tmp usrEE|EEb |EEb |EEb |EEb |EEb |EEb |EEb

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

|EEb |EEb |EEb |EEb |FFF |EEb vrEE|EEb |EEb |EEb |EEb |FFF |FFF

in gmes inlude li liQP liTR lol E|EEb in |EEb inlude |EEb li |FFF sin shre sr EEb linux IIT lok log mil www

1.5.

ARCHIVOS Y DIRECTORIOS.

II

il rol que oservmos muestr el tpio rol de diretorios en vinuxF ueden her peques vriiones en lgunos de los nomres de estos diretorios dependiendo de l disE triuin o versin de vinux que se est usndoF intre los diretorios ms destdos tenemosX E ispio reservdo pr ls uents de los usuriosF GinD GusrGin E finrios @ejeutlesA sios de unixF GetD qu se enuentrn los rhivos de on(gurin de todo los diferentes softwares de l mquinF GproD es un sistem de rhivos virtulesF gontiene rhivos que residen en memori y no en el diso duroF re refereni los progrms que estn orriendo en este momento en el sistemF Gdev @device A @dispositivoAF equ se gurdn los rhivos soidos los dispositivosF e usn pr eder los dispositivos fsios del sistem y reursos tles omo disos durosD modemsD memoriD mouseD etF elgunos dispositivosX hdX hdI ser el diso duro shiD primrio @AD y l primer prtiin @IAF fdX los rhivos que empieen on ls letrs fd se referirn los ontroldores de ls diskettersX fdH ser l primer disketterD fdI ser l segund y s suesivmenteF ttyX se usn pr eder los puertos seriles omo por ejemplo ttyHD que es el puerto onoido omo omIF sdX son los dispositivos gs yGo eeF u uso es muy similr l del hdF min se us pr denominr los dispositivos de lmenmiento onetdos v f @pendrives AF lpX son los puertos prlelosF lpH es el puerto onoido omo vIF nullX ste es usdo omo un gujero negroD y que todo lo que se dirige ll despreeF ttyX hen refereni d un de ls onsols virtulesF gomo es de suponerD ttyI ser l primer onsol virtulD ttyP l segundD etF GusrGlol E on on ls pliiones no omunes todos los sistems unixD pero no por ello menos utilizdsF GusrGshreGdo qu se puede enontrr informin reliond on pliiones @en form de pgins de mnulD textoD html o ien rhivos dviD ostsript o pdfAF min enontrmos rhivos de ejemploD tutorilesD HOWTOD etF
Ghome

IP

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.6. Los archivos y directorios.


in un sistem omputionl l informin se enuentr en rhivos que pueden ontener @doumentosD dtosD textos ASCIID fuentes en diferentes lengujes @ythonD portrnD gCCAD ejeutlesD imgenesD sonidosD (gursD F F F AF r orgnizr tod est informin se dispone de un entidd denomind diretorioD que permite el lmenmiento en su interior tnto de rhivos omo de otros diretorios11F vos nomres de los rhivos y diretorios unix siguen ls misms onveniones y reglsF vos nomres diferenin mysuls y minsulsF vos nomres pueden tener hst PST rteresF gsi ulquier ominin de letrs y smolos es eptle @el rter G no se perE miteAF in emrgoD hy lgunes rteres no reomendlesD y que inluirlos en el nomre podr her el rhino no orrle o inesileF vos rteres no reomenE ddos | Y X D 3 d 5 6 @ A ` b G 4 9 ~ { } a C 8 `speb `tbF e die que l estrutur de diretorios en unix es jerrqui o roresenteD deido que todos los diretorios nen en un mismo punto @denomindo diretorio rzAF he hehoD l zon donde uno trj es un nodo de es estrutur de diretoriosD pudiendo uno su vez generr un estrutur por dejo de ese puntoF n rhivo se enuentr situdo siempre en un diretorio y su eso se reliz emplendo el mino que ondue l en el rbol de Directorios del SistemaF iste mino es onoido omo el pathF il eso un rhivo se puede relizr emplendoX th esolutoD qul que empiez on G or ejemploX GetGprintp th eltivoD qul que no empiez on G or ejemploX FFGexmplesGrFdirFHI elgunos rteres espeiles pr el eso rhivos sonX F hiretorio tul FF hiretorio superior en el rol hiretorio 6rywi user hiretorio 6rywi del usurio user
11 Normalmente se acude a la imagen de una carpeta que puede contener informes, documentos o bien otras
carpetas, y as sucesivamente.

1.7.

LOS COMANDOS.

IQ

1.7. Los comandos.


r ejeutr un omndoD st on teler su nomre en el prompt del sistem @se dee tener permiso pr ejeutrloAF vs opiones o modi(dores empiezn normlmente on el rter E @pF ejF omndo ElAF r espei(r ms de un opinD se pueden grupr en un sol den de rteres @omndo El Eh es equivlente omndo ElhAF elgunos omndos eptn tmin opiones dds por plrs ompletsD en uyo so usulmente omienzn on EE @omndo EEhelpAF hespus de ls opiones vn el o los rgumentos de ser neesriosF
1.7.1. rdenes relacionadas con directorios. ls @vitA iste omndo permite mostrr el ontenido de un determindo diretorioF i no se le suminisE tr rgumentoD muestr el ontenidoD rhivos y diretoriosD del diretorio tulF i se de el nomre de un diretorio muestr el ontenido del diretorio suministrdo omo rgumentoF ixisten vris opiones que modi(n su funionmiento entre ls que destnX

@vong listingA proporion un listdo extensoD que onst de los permisos12 de d rhivoD el usurioD el tmo del rhivoD F F F D etF ediionlmente l opin Eh imprime los tmos en un formto fil de leer @rumn redleAF E @list ellA list tmin los rhivos oultosF E @eursiveA list reursivmente el ontenido de todos los diretorios que enuentreF Et orden los rhivos por tiempo de modi(inF E orden los rhivos por tmoF Er invierte el sentido de un ordenmientoF Ep greg un rter l (nl de d nomre de rhivoD indindo el tipo de rhivo @por ejemploD los diretorios son identi(dos on un G l (nlAF
El

vos rhivos uyo nomre omienen por . se denominn ocultosD s por ejemplo en el diretorio de prtid de un usurioF
sh6 ls E F FF Fdefults user Flis Ffvwmr Flogin Fxinitr Fshr Fjover Fprofile Fenviroment Fkshr Ftshr

12 Se comentar posteriormente este concepto.

IR

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

vos rteres omodn @wildcard A pueden ser empledos pr eder un onjunto de rhivos on rterstis omunesF il signo B puede sustituir ulquier onjunto de rteres13 y el signo c ulquier rter individulF or ejemploX14
sh6 ls fPFI feFupdteFI fesFI fleFI flexFI sh6 ls rpB rplyFI sh6 ls Becc feFupdteFI flexdoFI ftptoolFI funzipFI fvwmFI rsttoppmFI rplydFI zforeFI rmdFI rlFI rootFI rplyFI rplydFI rptpFI zmoreFI rptpFI rxvtFI ztFI zmpFI zdiffFI zforeFI zipFI zipinfoFI zmoreFI znewFI

1.7.2. Los comandos para directorios. pwd @rint orking hiretoryA iste omndo proporion el nomre del diretorio tulF d @ghnge hiretoryA ermite moverse trvs de l estrutur de diretoriosF i no se le proporion rgumento se provo un slto l diretorio 6rywiF il rgumento puede ser un path soluto o reltivo de un diretorioF d E vuelve l ltimo diretorio visitdoF mkdir @wue hsetoryA gre un diretorio on el path @soluto o reltivoA proporiondoF rmdir @ewove hsetoryA ilimin un diretorio on el path @soluto o reltivoA suministrdoF hiho diretorio dee de estr voF 1.7.3. Viendo archivos en pantalla. iste onjunto de rdenes permite visulizr el ontenido de un rhivo sin modi(r su ontenidoF t @goneenteA gonten dos o ms rhivos y los muestr en pntllF i el omndo es llmdo on un slo rhivo de rgumento muestr @vuelA el ontenido del mismo en pntllF
13 Incluido el punto `.', unix no es dos. 14 bash$ es el prompt en todos los ejemplos.

1.7.

LOS COMANDOS.

IS

wuestr el ontenido de un rhivodividiendolo en pginsF is un versin mejord del nteriorF ermite moverse en ms direionesF ytr ventj es que no lee el rhivo entero ntes de rrnrF
1.7.4. Copiando, moviendo y borrando archivos. p @goyA gopi un rhivo@sA on otro nomre yGo otro diretorioD por ejemploD el omndo pr opir el rhivoIFtxt on el nomre rhivoPFtxt esX
p rhivoIFtxt rhivoPFtxt less

more

emos lguns opionesX


E Ei E mv

opi en form reursivD no sigue los link simlios y preserv los triutos de lo opidoF

@intertiveAD impide que l opi provoque un prdid del rhivo destino si ste existe15F @reursiveAD opi un diretorio y tod l estrutur que uelg de lF

@woeA wueve un rhivo@sA otro nomre yGo otro diretorioD por ejemploD el omndo pr mover el rhivoIFtxt l nomre rhivoPFtxt esX
mv rhivoIFtxt rhivoPFtxt

iste omndo dispone de opiones nlogs l nteriorF rm @ewoveA forr un rhivo@sAF in so de que el rgumento se un diretorio y se hy suministrdo l opin ErD es posile orrr el diretorio y todo su ontenidoF v opin Ei pregunt ntes de orrrF
15 Muchos sistemas tienen esta opcin habilitada a travs de un alias, para evitar equivocaciones.

IT

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.7.5. Espacio de disco. il reurso de lmenmiento en el diso es siempre limitdoF e ontinuionD se omentn un pr de omndos reliondos on l oupin de este reursoX du @hisk sgeA ermite ver el espio de diso oupdo @en loques de diso16A por el rhivo o diretorio suministrdo omo rgumentoF v opin Es impide que undo se plique reursividd en un diretorio se muestren los sutotlesF v opin Eh imprime los tmos en un formto fil de leer @rumn redleAF df @hisk preeA wuestr los sistems de rhivos que estn montdos en el sistemD on ls ntiddes totlesD usds y disponiles pr d unoF df Eh muestr los tmos en formto fil de leerF 1.7.6. Links. ln @vixkA n enle @link AD permite el uso de un rhivo en otro disinto l originl sin neesidd de opirloD on el onsiguiente horro de espiosF n enle puede serX
hard link X se puede relizr slo entre rhivos del mismo sistem de rhivosF il rhivo

enlzdo punt l zon de diso donde se ui el rhivo originlF or tntoD si se elimin el rhivo originlD el enle sigue teniendo eso dih informinF is el enle por omisinF

symbolic link X permite enlzr rhivosGdiretorios17 de diferentes sistems de rhivosF

il rhivo enlzdo punt l nomre del originlF es si se elimin el rhivo originl el enle punt hi un nomre sin informin soidF r relizr este tipo de enle dee emplerse l opin EsF n enle permite el uso de un rhivo en otro diretorio distinto del originl sin neesidd de opirloD on el onsiguiente horro de espioF emos un ejemploF greemos un enle lsio en vinuxD l diretorio existente linuxEQFIFR nomrmoslo senillmente linuxF
mitrroXGusrGsr5 ln Es linuxEQFIFR linux
16 1 bloque normalmente es 1 Kbyte. 17 Debe hacerse notar que los directorios slo pueden ser enlazados simblicamente.

1.8.

PROTECCIN DE ARCHIVOS Y PERMISOS.

IU

1.8. Proteccin de archivos y permisos.


hdo que el sistem de rhivos unix es omprtido por un onjunto de usuriosD surge el prolem de l neesidd de prividdF in emrgoD ddo que existen onjuntos de persons que trjn en omnD es neesri l posiilidd de que un onjunto de usurios puedn tener eso un serie de rhivos @que puede estr limitdo pr el resto de los usuriosAF gd rhivo y diretorio del sistem dispone de un propietrioD un grupo l que pertenee y unos permisosF ixisten tres tipos fundmentles de permisosX mismoY en el so de un diretorio signi( poder listr el ontenido de diho diretorioF escritura @wEWrite AX en el so de un rhivo signi( poder modi(r su ontenidoY en el so de un diretorio permite rer nuevos rhivos o diretorios en su interiorF ejecucin @xEeXecute AX en el so de un rhivo signi( que ese rhivo se pued ejeutr @rhivo de proedimientos o inrioAY en el so de un diretorio permite eder los rhivos dentro de lF e distinguen tres onjuntos de usurioss sore ls que se deen espei(r permisosX
userX el usurio propietrio del rhivoF groupX el grupo propietrio del rhivo @l que pertenee el usurioAF gd usurio lectura @rERead AX en el so de un rhivoD signi( poder exminr el ontenido del

puede perteneer uno o vrios grupos y el rhivo generdo pertenee uno de los mismosF otherX el resto de los usurios @exepto el usurio y los usurios que pertenezn l grupoA min se puede empler all que es l unin de todos los nterioresF r visulizr ls proteiones de un rhivo o diretorio se emple l orden ls ElD uy slid es de l formX
ErwErEErEE FFFotr informinFFF nomre

vos IH primeros rteres muestrn ls proteiones de diho rhivoX il primer rter indi el tipo de rhivo de que se trtX E rhivo d diretorio l enle @link A dispositivo de rteres @pFeF puert serilA dispositivo de loques @pFeF diso duroA s soket @onexin de redA

IV

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

vos rteres PD QD R son los permisos de usurio vos rteres SD TD U son los permisos del grupo vos rteres VD WD IH son los permisos del resto de usurios es en el ejemplo nterior ErwErEErEE se trt de un rhivo donde el usurio puede leer y esriirD mientrs que el grupo y el resto de usurios slo pueden leerF istos suelen ser los permisos por omisin pr un rhivo redo por un usurioF r un diretorio los permisos por omisin suelen serX drwxrExrExD donde se permite l usurio entrr en el diretorio y ejeutr rdenes desde lF hmod @grnge wyheA ist orden permite modi(r los permisos de un rhivoF
yodmitrroX~6hmod permisos rhivos

on opin E es reursivF ixisten dos modos de espei(r los permisosD el modo soluto o numrio y el modo simlio o literlF
Modo absoluto o numrico. e reliz emplendo un nmero que result de l y inrio de los siguientes modosX RHH letur por el propietrioF PHH esritur por el propietrioF IHH ejeuin @squedA por el propietrioF HRH letur por el grupoF HPH esritur por el grupoF HIH ejeuin @squedA por el grupoF HHR letur por el restoF HHP esritur por el restoF HHI ejeuin @squedA por el restoF RHHH et ser shD undo se ejeut el proeso orre on los permisos del dueo del rhivoF or ejemploX
yodmitrroX~6hmod TRH BFtxt

ermite l letur y esritur por el usurioD letur pr el grupo y ningn permiso pr el restoD de un onjunto de rhivos que n en Ftxt

1.8.

PROTECCIN DE ARCHIVOS Y PERMISOS.

IW

omsA pr espei(r los permisosF ist den se ompone de los siguientes tres elementosX
who opertion permission who

Modo simblico o literal. e reliz emplendo un den @o dens seprds por

X es un ominin deX u X user g X group o X others X ll @equivlente ugoA i se omite este mpo se supone D on l restriin de no ir en ontr de l msr de rein @umskAF opertionX es un de ls siguientes operionesX C X dir permisoF E X eliminr permisoF a X signr permisoD el resto de permisos de l mism tegor se nulnF permissionX es un ominin de los rteresX r X readF w X writeF x X executeF s X en ejeuin (j el usurio o el grupoF or ejemploX
yodmitrroX~6hmod uCx treDsh

ermite ejeuin por prte del usurio18 del rhivo treFshF


yodmitrroX~6hmod uarxD goar BFtxt

ermite l letur y ejeuin del usurioD y slo l letur por prte del grupo y el resto de usuriosF
18 Un error muy frecuente es la creacin de un archivo de rdenes (script
del mismo.

le ) y olvidar permitir la ejecucin

PH
umsk

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

ist es un orden intrnse del hell que permite signr los permisos que se dese tengn los rhivos y diretorios por omisinF il rgumento que omp l orden es un nmero otl que plir un xor sore los permisos por omisin @rwErwErwEA pr rhivos y @rwxrwxrwxA pr diretoriosF il vlor por omisin de l msr es HPP que hilit l usurio pr leturEesriturD l grupo y l resto pr leturF in rgumentos muestr el vlor de l msrF hgrp @grnge qouA gmi el grupo propietrio de un serie de rhivosGdiretorios
yodmitrroX~6hgrp grupo rhivos

il usurio que efet est orden dee perteneer l grupo meniondoF hown @grnge yxerA gmi el propietrio y el grupo de un serie de rhivosGdiretorios
yodmitrroX~6hown usurioXgrupo rhivos

v opin Er he que l orden se efete reursivmenteF wuestr l identi(in del usurio19D s omo el onjunto de grupos los que el usurio perteneeF
yodmitrroX~6id uidaIHHI@yoAgidaIHHI@yoA groupsaIHHI@yoADPR@dromADRR@videoA userdhostnmeX~6 id

hesplieg en pntll su rgumento omo mensjeD sin rgumento desplieg un lne en lnoF v opin En elimin el mio de lne l (nl del mensjeF
yodmitrroX~6 eho rol urso rol urso yodmitrroX~6 eho yodmitrroX~6 eho En rol urso rol ursoyodmitrroX~6
19 A pesar de que el usuario se identica por una cadena denominada
denominado

eho

uid que es un identicativo numrico de dicho usuario.

username, tambin existe un nmero

1.9.

SHELLS.

PI

1.9. Shells.
il sistem opertivo unix soport vrios intrpretes de omndos o shellsD que yudn que l interin on el sistem se lo ms mod y migle posileF v elein de ul es l shell ms mod es lgo personlY en este punto slo indiremos lgunos de los ms populresX
sh X fourne rellD el shell sioD no pensdo pr uso intertivoF csh X gErellD shell on sintxis omo el lenguje gF il rhivo de on(gurin es
Fshr

@en el diretorio 6rywiAF

ksh X uornErellD shell dised por hvid uorn en los vortorios e8 fellF is un intento pr un shell intertiv y pr uso en scriptF u lenguje de omndos es un superonjunto de el lenguje de shell shF tcsh X lerntive gEhell @enexEgrellAD on editor de lne de omndoF il rhivo

de on(gurin es FtshrD o en so de no existirD Fshr @en el diretorio 6rywiAF

bash X fourneEegin hellD on lo mejor de shD ksh y tshF il rhivo de on(gurin

es Fshprofile undo se entr l uent por primer vezD y despus el rhivo de on(gurin es Fshr siempre en el diretorio 6rywiF v lne de omndo puede ser editd usndo omndos @seuenis de telsA del editor emsF in sh el modo de ompletdo @le completion A es utomtio usndo ef undo el shell est en modo intertivoF is el shell por defeto de vinuxF
1.9.1. Archivos de conguracin. in los rhivo de on(gurin de los distintos shells se enuentrn ls de(niiones de lguns vriles de entorno o miente omo el mino de squed erD dems de los lises y otrs on(guriones personlesF 1.9.2. Cambiar de shell. i queremos mir de shell en un momento ddoD slo ser neesrio que esrimosD en l tul shellD el nomre del mismo y lo ejeutmos pr estr usndo diho shellF i queremos usr de form permnente otro shell del que tenemos signdo por omisin20 podemos empler l orden hsh que permite relizr est inF
20 Por omisin se asigna bash.

PP

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.9.3. Caracteres especiales. emos unos rteres on espeil signi(do pr el hellX

permite que el output de un omndo reemple l nomre del omndoF or ejemploX

21

yodmitrroX~6 eho istoy enpwd istoy en GhomeGyo yodmitrroX~6

preserv el signi(do literl de d uno de los rteres de l den que delimitF


9
22

yodmitrroX~6 eho 9istoy enpwd9 istoy en pwd yodmitrroX~6

preserv el signi(do literl de todos los rteres de l den que delimitD slvo 6D D F

23

yodmitrroX~6 eho 4istoy enpwd4 istoy en GhomeGyo yodmitrroX~6 Y

permite l ejeuin de ms de un orden en un sol lne de omndoF

yodmitrroX~6 mkdir tmpYd tmp yodmitrroX~Gtmp6 yodmitrroX~Gtmp6 eho rolYeho rol yodmitrroX~Gtmp6

1.9.4. Variables de entorno. vs vriles de entorno permiten l on(gurinD por defetoD de muhos progrms undo ellos usn dtos o preferenisF e enuentrn de(nids en los rhivos de on(guE rin nteriormente meniondosF r referenir ls vriles se dee poner el smolo 6 delnteD por ejemploD pr mostrr el mino l diretorio por defeto del usurioX
23 double 21 Acento grave o inclinado hacia atrs, backquote. 22 Acento agudo o inclinado hacia adelante, single quote.

quote.

1.9.

SHELLS.

PQ

yodmitrroX~6 eho 6rywi GhomeGyo yodmitrroX~6

vs vriles de entorno ms importntes sonX E il diretorio por defeto del usurioF er E il mino de squedD un list de diretorios seprdos on X9 pr usr progrmsF ihsy E il editor por defeto del usurioF hsve E fjo el sistem de windowsD el nomre de mquin y pntll que est usndoF i est vrile tom el vlor XH el despliegue es lolF iw E il tipo de terminlF in l myor de los sos jo el sistem windows se trt de xterm y en l onsol en vinux es linuxF in otros sistems puede ser vtIHHF rivv E v shell por defetoF wexer E gmino pr usr pgins de mnulesF eqi E rogrm de pginin de texto @less o moreAF whs E hiretorio pr rhivos temporlesF
rywi

1.9.5. Aliases. r filitr l entrd de lguns rdenes o relizr operiones omplejsD los shells intertivos permiten el uso de lisesF v orden lis permite ver qu lises hy de(nidos y tmin de(nir nuevosF is orriente de(nir el lis rm arm Ei9D de est form l orden siempre pide on(rmin pr orrr un rhivoF i lgun vez quieres usr rm sin lisD slo he flt poner delnte el smolo D denomE indo backslash F or ejemplo rm elimin los lis plidos rmF 1.9.6. Ejecucin de comandos. i el omndo introduido orresponde un lis del shellD primero se reemplz y luego se trt de ejeutrF i el omndo es propio del shell @built-in AD se ejeut diretmenteF in so ontrrioX

PR

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

i el omndo ontiene GD el shell lo onsider un path soluto e intent resolverlo @entrr en d diretorio espei(do pr enontrr el omndo y ejeutrloAF in so ontrrio el shell us en un tl hash table que ontiene los nomres de los omndos que se hn enontrdo en los diretorios espei(dos en l vrile de miente erD undo h rrndo el shellF

1.9.7. Comandos del shell. sh se onsider un shell intertivoD permitiendo l ediin de l lne de omndosD y el eso l histori de rdenes @readline AF in uso norml @histori y editor de lne de omndosA sh es omptile on otrs shells omo tsh y kshD ver pndieF in sh el modo de ompletdo @le completion A es utomtio @usndo ef sloA si el shell est en modo intertivoF

eyud intern sore los omndos del shellF wuestr el vlor de tods ls vrilesF ermite signr el vlor de un vrile de entornoF r que dih vrile se heredd es neesrio emplerX export esefvi o ien ominrlsX export esefviaeviF
lis in shD lis slo sirve pr sustituin simple de un den por otrF or ejemploX lis lsa9ls Ep9F r rer lis on rgumentos se usn funionesD ver l doumentinF esefviaevi set

help

ilimin un lis signdoF


for vr in wordlist do omndos done e l vrile vrD que puede llmrse de ulquier modoD se le signn suesivmente los vlores de l den wordlistD y se ejeut el onjunto de omndosF il ontenido de dih vrile puede ser empledo en los omndosX 6vrF ijemploX 6 for i in I P tres RY do eho 6iY done I P tres R

unlis nme

1.9.

SHELLS.

PS

Command history
33

wuestr ls ltims rdenes introduids en el shellF elgunos omndos reliondos on el sonX epite l ltim ordenF epite l orden nEsimF epite l orden ms reiente que empiee por l den stringF epite l orden ms reiente que onteng l den stringF o 33XsGstrIGstrPG @substitute A epite l ltim orden reemplnzndo l primer ourreni de l den strI por l den strPF

history

3n

3string

3cstring

strI strP

@global substitute A epite l ltim orden reemplzndo tods ls ourrenis de l den strI por l den strPF is el ltimo rgumento de l orden nterior que se hy teledoF ijeut ls rdenes del (hero file en el shell tulF esign l msr pr los permisos por omisinF vos omndos umsk D soure D history D unlis y shell tshF
24 En

33XgsGstrIGstrPG

36

soure file umsk vlue

hsh

24

D funionn igul en l

bash

sh

la

rdenes. As el arranque del

hash table se va generando dinmicamente a medida que el usuario va empleando las shell es ms rpido, y el uso de orden equivalente hash -r casi nunca hace falta.

PT

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.9.8. Redireccin. gundo un progrm esper que se introduz lgo @se teleeAD quello que el usurio tele se onoe omo el Standard Input X stdinF vos rteres que el progrm retorn por pntll es lo que se onoe omo Standard Output X stdout @o Standard Error X stderr25AF il signo ` permite que un progrm rei el stdin desde un rhivo en vez de l inE terin on el usurioF or ejemploX mil rootdmitrro ` fileD invo el omndo mil on rgumento @destintrio del mensjeA rootdmitrroD siendo el ontenido del mensje el ontenido del rhivo file en vez del texto que usulmente tele el usurioF ws menudo pree l neesidd de lmenr en un rhivo l slid de un omndoF r ello se emple el signo bF or ejemploD mn sh b fileD invo el omndo mn on rE gumento @informin desedA sh pero indindo que l informin dee ser lmend en el rhivo file en vez de ser mostrd por pntllF in otrs osiones uno dese que l slid de un progrm se l entrd de otroF isto se logr emplendo los denomindos pipesD pr ello se us el signo |F iste signo permite que el stdout de un progrm se el stdin del siguienteF or ejemploX t mnulFtxt | more snvo l orden de onteninD on un solo rhivoD vuel el rhivo sore el stdout hi el pgindor moreD de form que podmos ver pgin pgin el rhivoF e prte de los smolos meniondos existen otros que permiten iones tles omoX bb edir el stdout l (nl del rhivo indido @append AF26 8b o b8 @slo shD tsh y shA edireionr el stdout y stderrF Pb edireion slo el stderrF bb8 sgul que b8 pero en modo appendF 1.9.9. Archivos de script. n rhivo de script es un suesin de omndos de l shell que se ejeutn seuenilE menteF emos un ejemplo simpleX
53GinGsh vrilea4GhomeGyo4 p 6I GtmpG6P rm 6I d 6vrile 5 reho por mi
25 Si estos mensajes son de error. 26 En bash, si el archivo no existe, es creado.

1.9.

SHELLS.

PU

v primer lne delr l shell espe( que se quiere usrF in l segund lne hy un delrin de un vrile internF v terer ontiene los dos primeros rgumentos on que fue llmdo el scriptF or ejemploD si el nterior script est en un rhivo llmdo ejemploD el omndo ejemplo fileI fileP soi 6I fileI y 6P filePF v lne S he uso de l vrile intern dentro de un omndoF v ltim lneD que omienz on un 5 orresponde un omentrioF xotemos que l primer tmin es un omentrioD pero l ominin 53 en l primer lne fuerz que se ejeute es shellF isto slo es un mnim pineld de un herrmient muy poderos y tilF vos omndos disponiles en l shell onformn un verddero lenguje de progrmin en sD y los scripts pueden diserse pr relizr tres montons y omplejsF ste es un tem que le ser til profundizrF
1.9.10. Filtros. ixiste un onjunto de rdenes en unix que permiten el proesmiento de rhivos de textoF e denominn ltros @Unix Filters AD porque normlmente se trj emplendo redirein reiiendo dtos por su stdin27 y retornndolos modi(dos por su stdout28F t @goneenteA gonten dos o ms rhivos y los muestr en pntllF i el omndo es llmdo on un slo rhivo de rgumento muestr @vuelA el ontenido del mismo en el stdoutF
yodmitrroX~6 t GetGhostnme mitrro yodmitrroX~6

min lo podemos usr pr rer un rhivo


yodmitrroX~6 t b rhivoFtxt iste es mi rhivo on muhs lines d yodmitrroX~6

il rter (nl d orresponde (n de rhivo y termin el ingresoF r filitr l omprensin de los ejemplos siguientes reremos utro rhivos llmE dosX milistFtxtD tulistFtxtD tereroFtxt y urtoFtxt usndo el ejemplo nteriorX
milistFtxt I IWH P PVH Q QUH
27 Entrada estndar. 28 Salida estndar.

tulistFtxt I IWH P PVI Q QUH

tereroFtxt II QQ PPP

urtoFtxt dniell wriF mri wgdlen xsgyvvi sre

PV
ee

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

@eeA vee desde stdin y esrie en el stdout y en un rhivoF


yodmitrroX~6 t milistFtxt |tee listFtxt I IWH P PVH Q QUH yodmitrroX~6 t listFtxt I IWH P PVH Q QUH yodmitrroX~6

gon l opin E greg l rhivo psdo omo rgumento @modo append AF qener un seueni de nmeros nturles onseutivosF
yodmitrroX~6 seq R V R S T U V yodmitrroX~6 seq EsD R V RDSDTDUDV seq

gon l opin Es uno puede indir el seprdorD en este so el rter DF or defeto el seprdor es nF r un rhivo ompuesto por olumns de dtosD permite esriir sore l slid ierto intervlo de olumnsF v opin E xEw permite indir el intervlo en ytes que se esriirn en l slidF v opin E xDw permite indir el los ytes que se esriirn en l slidF
yodmitrroX~6 ut E QER milistFtxt IW PV QU yodmitrroX~6 ut E QDS milistFtxt IH PH QH ut

1.9.

SHELLS.

PW

wezl lnes de distintos rhivosF isrie lnes en el stdout pegndo seuenilmente ls lnes orrespondientes de d uno de los rhivo seprds por tF ijemploD supongmos que tenemos nuestros rhivos milistFtxt y tulistFtxt y dmos el omndo
yodmitrroX~6 pste milistFtxt tulistFtxt I IWH I IWH P PVH P PVI Q QUH Q QUH yodmitrroX~6

pste

is un editor de )ujoF emos lgunos ejemplos


yodmitrroX~6 sed a milistFtxt I I IWH P P PVH Q Q QUH yodmitrroX~6

sed

xumer ls lnesF
yodmitrroX~6 sed En 9Qp9 milistFtxt Q QUH yodmitrroX~6

lo muestr l lne QF il modi(dor En suprime l impresin de tods ls lnes exepto quells espei(ds por pF eprndo por om dmos un rngo en el nmero de lnesF
yodmitrroX~6 sed 9Pq9 milistFtxt I IWH P PVH yodmitrroX~6

wuestr hst l lne P y luego se sle de sedF


yodmitrroX~6 sed 9sGHGGg9 milistFtxt I IW P PV Q QU yodmitrroX~6

QH

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

eemplz todos los H del rhivo por l letr F ste es uno de los usos ms omunesF
yodmitrroX~6 sed 9GP PGsGHGGg9 milistFtxt I IWH P PV Q QUH yodmitrroX~6

fus ls lnes on l seueni P P y en ells reemplz todos los H por l letr F


yodmitrroX~6 sed 9sGIGGP9 milistFtxt I WH P PVH Q QUH yodmitrroX~6

eemplz l segund priin de un I en un lne por los rteres F e ontinuinD mostrmos otrs posiiliddes del omndo sed r remover un lne espei( @A del rhivo fileFtxt
yodmitrroX~6 sed 9d9 fileFtxt

r remover un intervlo de lnes del rhivo fileFtxt


yodmitrroX~6 sed 9Dd9 fileFtxt

r mostrr slo ls lnes e del rhivo fileFtxt


yodmitrroX~6 sed En 9pYp9 fileFtxt

r mostrr el rhivo fileFtxtD slvo ls lnes que ontengn key


yodmitrroX~6 sed 9GkeyGd9 fileFtxt

r mostrr el rhivo fileFtxtD slo ls lnes que ontengn key


yodmitrroX~6 sed En 9GkeyGp9 fileFtxt

r mostrr el rhivo fileFtxt slvo ls lnes que omienzn on 5


yodmitrroX~6 sed 9G5Gd9 fileFtxt

1.9.

SHELLS.

QI

Expresiones regulares:
6 F

wthes l omienzo de l lne wthes l (nl de l lneD se pone despus del rter usrF wthes ulquier rterF wthes on todos los rteres dentro de los prntesis

ermite omprr el ontenido de dos rhivos o diretorios


yodmitrroX~6 diff milistFtxt tulistFtxt PP ` P PVH EEE b P PVI yodmitrroX~6

diff

ry un difereni entre los rhivos en l segund (lF ermite ordenr lftimente


yodmitrroX~6 II PPP QQ yodmitrroX~6 QQ PPP II yodmitrroX~6 II QQ PPP yodmitrroX~6 PPP II QQ yodmitrroX~6 sort tereroFtxt sort

sort Er tereroFtxt

sort En tereroFtxt

sort Ek P tereroFtxt

v opin En onsider los vlores numrios y l opin Er invierte el ordenF v opin Ek permite espei(r l olumn usr pr her el sortF

QP
find

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

ermite l squed de un rhivo en l estrutur de diretorios


yodmitrroX~6 find F Enme fileFdt Eprint

gomenzndo en el diretorio tul@FA reorre l estrutur de diretorios usndo el rhivo fileFdtD undo lo enuentre imprime el pth l mismoD tulmente es inneesri l opin printF
yodmitrroX~6 find F Enme 9B~9 Eexe rm 9{}9 Y

ist es otr pliin de find que us en l estrutur de diretorios un rhivo que termine en ~ y lo orrF il omndo xrgs orden repetir orden pr d rgumento que se le desde stdinF iste lo podemos ominr on findF
yodmitrroX~6 find F Enme 9BFmpQ9 Eprint | xrgs mv GhomeGyoGmusi Y

vogrndo un omndo que us en l estrutur de diretorios todos los rhivos que termines en FmpQD y los mueve l diretorio GhomeGyoGmusiF ermite l squed de un den de rteres en uno o vrios rhivosD imprimiendo el nomre del rhivo y l lne en que se enuentr l denF
yodmitrroX~6 milistFtxtXI tulistFtxtXI tulistFtxtXP yodmitrroX~6 grep I BlistFtxt IWH IWH PVI grep

elguns opiones tiles E ilimin l slid norml y slo uent el nmero de priiones de l den en d rhivoF Ei sgnor pr l omprin entre l den dd y el rhivoD si l den est en mysuls o minsulsF En snluye el nmero de lnes en que pree l den en l slid normlF Er re l squed reursivF Ev snvierte l squed mostrndo tods ls lnes donde no pree l den pedidF

1.9.

SHELLS.

QQ

wuestr ls primers diez lnes de un rhivoF hed EQH file wuestr ls QH primers lnes de leF
yodmitrroX~6 hed EI I IWH yodmitrroX~6 til milistFtxt

hed

wuestr ls diez ltims lnes de un rhivoF til EQH file wuestr ls QH ltims lnes de leF til CQH file wuestr desde l lne QH en delnte de leF
yodmitrroX~6 til EI Q QUH yodmitrroX~6 wk milistFtxt

v opin Ef permite que se tulie l slid undo el rhivo reeF is un proesdor de rhivos de texto que permite l mnipulin de ls lnes de form tl que tome deisiones en funin del ontenido de l mismF ijemploD supongmos que tenemos nuestro rhivo milistFtxt on sus dos olumns
yodmitrroX~6 wk 9{print }9 milistFtxt I IWH P PVH Q QUH yodmitrroX~6

punion omo el omndo t


yodmitrroX~6 wk 9{print 6PD 6I }9 IWH I PVH P QUH Q yodmitrroX~6 milistFtxt

smprime ess dos olumns en orden inversoF


yodmitrroX~6 wk 9{print 99D VB6ID 6PEI }9 V IVW IT PUW PR QTW yodmitrroX~6 milistFtxt

QR

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

ermite operr sore ls olumnsF


yodmitrroX~6 wk 9{ if @xbI 88 x ` QA print}9 milistFtxt P PVH yodmitrroX~6

lo imprime l lne PF
yodmitrroX~6 wk 9{print 6xp}9 rhivoFtxt

smprime en pntll l ltim olumn de d (l del rhivo rhivoFtxtF


yodmitrroX~6 wk 9{print xp}9 rhivoFtxt

smprime en pntll el nmero respetivo l ltim olumn de d (lD que equivlenteE mente es l ntidd de olumns por (l en el rhivo rhivoFtxtF upongmos que tenemos el rhivo notsFtxt que ontiene lo siguienteX
hugo RFH SFH SFH po QFH TFH RFH luis PFH SFH UFH

il omndo
yodmitrroX~6 vs nots del vs nots del vs nots del yodmitrroX~6 wk 9{print lumno hugo lumno po lumno luis 4vs nots del lumno4D6H}9 notsFtxt RFH SFH SFH QFH TFH RFH PFH SFH UFH

il omndo
yodmitrroX~6 wk 9{printf 47s 7IFIfn4D 6ID@6PC6QC6RAGQ}9 notsFtxt hugo RFU po RFQ luis RFU yodmitrroX~6

il omndo
6wk 9{ print b6x }9 rhivoFtxt

gre rhivos uyos nomres orrespondn ls plrs de l olumn x en d (lF edemsD d rhivo ontiene l (l orrespondienteF or ejemplo si plimos este (ltro nuestro rhivo notsFtxt por l primer olumnD es deirD
6wk 9{ print b6I }9 rhivoFtxt

1.9.

SHELLS.

QS

gre tres rhivosX hugoD po y luisF il rhivo hugo ontiene


hugo RFH SFH SFH

el rhivo po
po QFH TFH RFH

y el rhivo luis
luis PFH SFH UFH w

@ord gountA gontiliz el nmero de lnesD plrs y rteres de un rhivoF

yodmitrroX~6 w milistFtxt Q T IV milistFtxt yodmitrroX~6

il rhivo tiene Q lnesD T plrsD onsiderndo d nmero omo un plr i.e. I es l primer plr y IWH l segundD y (nlmente IV rteresF gules son los IV rteresc eportD omite o uent lnes repetidsD adyacentesF
yodmitrroX~6 t milistFtxt tulistFtxt |sort| uniq I IWH P PVH P PVI Q QUH yodmitrroX~6 t milistFtxt tulistFtxt |sort| uniq Ed I IWH Q QUH yodmitrroX~6 t milistFtxt tulistFtxt |sort| uniq E P I IWH I P PVH I P PVI P Q QUH yodmitrroX~6 uniq

@nslteA rdue olps yGo orr rteres del stdin esriiendolos en el stdoutF
tr

QT

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

yodmitrroX~6 tr XupperX XlowerX`urtoFtxt|tee RFtxt dniell mriF mri mgdlen niolle sr yodmitrroX~6 t RFtxt|tr Es l|tr Es XlnkX|tr Ed F dniel mri mri mgdlen niole sr yodmitrroX~6

v opin Es olps slo un ls priiones del rterF v opin Ed orr el rterF


1.9.11. Utilitarios.
users who w l

r ver quin est onetdo en l mquinF wuestr el lendrio del mes tulF gon l opin Ey y el o present el lendrio del o ompletoF
yodmitrroX~6 l heemer PHII u wo u e h pr I P R S T U V W II IP IQ IR IS IT IV IW PH PI PP PQ PS PT PU PV PW QH yodmitrroX~6 Q IH IU PR QI

wuestr el d y l hor tulF gluldor de preisin ritrriF


yodmitrroX~6 eho QFUTBIUFV|} TTFWP

dte

1.10.

AYUDA Y DOCUMENTACIN.

QU

yodmitrroX~6 eho 4sleaQYs@PFHA4| El HFWHW yodmitrroX~6

ermite lulr expresiones diretmente desde l lne de omndo medinte l luldor de preisin ritrri F in el segundo so se (jn los deimles de slid Q y se evlu l funin sen(2.0)D l opin El permite el uso de funiones espeilesF

1.10. Ayuda y documentacin.


r otener yud sore omndos de unixD se puede empler l yud on-lineD en l form de pgins de mnulF es mn omndo proporion l yud sore el omndo desedoF or ejemploD pr leer el mnul de los shellsD puedes entrrX mn sh sh tsh shD l orden formte ls pgins y te permite leer los mnules en el orden pedidoF in el so de sh se puede usr el omndo helpD por ejemploD help lisF edemsD pr muhos omndos y progrms se puede otener informin tipendo info omndoF pinlmenteD lgunos omndos tienen un opin de yud @EEhelp o EhAD pr reordr rpidmente ls opiones ms omunes disponiles @ls EEhelpAF

1.11. Diferencias entre sistemas.


gundo se trns(eren rhivos de texto entre windows y unix sin ls preuiones deuds pueden preer los siguientes prolemsX in unix no existe oligtoriedd respeto que los rhivos llevn extensinF snluso pueden tener ms de un extensin lgoFvHIFtrFgzD esto puede omplir otros sistems que usn slo un extensin de tres rteresF il mio de lne en un rhivo de texto windows se ompone de Carriage Return y Line FeedF in emrgoD en unix slo existe el Carriage ReturnF es un rhivo de unix visto desde windows pree un ni lneF il so inverso es l priin del rter w l (nl de d lneF edemsD el (n de rhivo en windows es y en unix es hF sndo el omndo tr se puede trnsformr un rhivo on mios de lnes pr hy en uno pr unixF iendo que w es ascii IQ deimlD pero IS en otlX
tr Ed 9HIS9 ` dtfile b iwpsvi mv Ef iwpsvi dtfile

in heinD instlndo el pquete dosPunixD qued instldo el omndo dosPunix que tmE in lo heF

QV

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.12. Procesos.
in un mquin existen un multitud de proesos que pueden estr ejeutndose siE multnementeF v myor de ellos no orresponden ningun in relizd por el usurio y no mereen que se les preste myor teninF istos proesos orresponden progrms ejeE utdos en el rrnque del sistem y tienen que ver on el funionmiento glol del servidorF in generlD los progrms suelen tener uno de estos dos modos de ejeuinX foregroundX on quellos proesos que requieren de l interin yGo tenin del usurio mientrs se estn ejeutndoD o ien en un de sus fses de ejeuin @i.e. introduin de dtosAF es por ejemploD l onsult de un pgin de mnul es un proeso que dee ejeutrse lrmente en foregroundF backgroundX on quellos proesos que no requieren de l interin on el usurio pr su ejeuinF i ien el usurio deser estr informdo undo este proeso termineF n ejemplo de este so ser l impresin de un rhivoF in emrgoD est divisin que primer vist pued preer tn lr y onisD menudo en l prti pree l neesidd de onmutr de un modo l otroD detenin de tres indesedsD etF es por ejemploD puede drse el so de que estemos leyendo un pgin de mnul y de repente neesitemos ejeutr otr treF n proeso viene rterizdo porX
process number job number

emos lguns de ls rdenes ms freuentes pr l mnipulin de proesosX ijeuin de un omndo en el backgroundF 29 gtrlE hetiene el proeso que estuvier ejeutndose en el foreground y lo olo detenido en el backgroundF gtrlEg ermin un proeso que est ejeutndose en foregroundF gtrlE ermin de form de(nitiv un proeso que est ejeutndose en foregroundF ps x vist todos los proesos que pertenezn l usurioD inluyendo los que no estn soidos un terminlF jos vist los proesos que se hyn ejeutdo desde el shell tulD mostrndo el job numberF
omndo 8
29 Por omisin un comando se ejecuta siempre en el

foreground.

1.13.

EDITORES.

QW s ejeuin en foreground un proeso que se hllse en backs ejeuin en background un proeso que se hllse detenido

fg @jo numerA

groundF

g @jo numerA on gtrlEF

inv un sel30 un proeso unixF in prtiulrD pr envir l sel de trmino un progrmD dmos el omndo kill EusvvD pero no he flt l ser l sel por defetoF gundo se intent ndonr un sesin on lgn proeso n detenido en el background del shellD se inform de ello on un mensje del tipoX here re stopped jos si no importD el usurio puede intentr ndonr de nuevo el shell y ste mtr los jobsD o puedes utilizr fg pr trerlos l foreground y h terminr el mismoF
kill @proess numerA

1.13. Editores.
n editor es un progrm que permite rer yGo modi(r un rhivoF ixisten un mulE titud de editores diferentesD y l igul que ourre on los shellsD d usurio tiene lguno de su predileinF wenionremos lgunos de los ms onoidosX vi E il editor stndrd de unixF emacs (xemacs) E iditor muy on(gurle esrito en lenguje vispF ixisten muhos modos pr este editor @letor de milD newsD wwwDF F F A que lo onvierten en un verE ddero shell pr multitud de usuriosF vs ltims versiones del mismo permiten l ejeuin desde Ewindows o terminl indistintmente on el mismo inrioF osee un tutoril en lneD omndo gEr t dentro del editorF il rhivo de on(gurin personE lizd esX 6rywiGFemsF jove E fsdo en imsD @tonthn9s ywn ersion of imsAF osee tutoril en un utilE idd soidX tehjoveF il rhivo de on(gurin personlizd esX 6rywiGFjoverF jed E iditor on(gurle esrito en EvngF ermite l emulin de editores omo ems y ordstrF osee un yud en lne gEr gErF il rhivo de on(gurin personlizd esX 6rywiGFjedrF gedit E n pequeo y livino editor de texto pr qnome xjed E ersin de jed pr el Ewindows systemF resent omo ventj que es pz de funionr en muhos modosX lenguje gD portrnD eD etFD reonoiendo plrs lve y signos de puntuinD emplendo un olorido distinto pr ellosF il rhivo de on(gurin personlizd es el mismo que el de jedF
30 Para ver las seales disponibles entra la orden

kill -l

(l por

list).

RH

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

hdo que los editores del tipo de gedit disponen de mens uto explitivosD dremos ontinuin uns ligers noiones slo de vi y emsF
1.13.1. El editor vi. il vi es un editor de texto muy poderoso pero un poo difil de usrF vo importnte de este editor es que se puede enontrr en ulquier sistem unix y slo hy uns pos diferenis entre un sistem y otroF ixpliremos lo sio solmenteF gomenemos on el omndo pr invorloX
lolhostXG5 vi ~ ~ ~ GtmpGviFWdrxiX new fileX line I

v sintxis pr editr un rhivo esX

lolhostXG5 vi nomreFdeFrhivo ~ ~ ~ nomreFdeFrhivoX new fileX line I

Insertar y borrar texto en vi.

gundo se inii el viD editndo un rhivoD o noD se entr en un modo de rdenesD es deirD que no se puede empezr esriir diretmenteF i se quiere entrr en modo de inserin de texto se dee presionr l tel iF intrndo en el modo de inserinD se puede empezr esriirF r slir del modo de inserin de texto y volver l modo de rdenes se pret igF
equi y estmos esriiendo porque pretmos l tel 9i9 l estr en modo ordenesF ~ ~

1.13.

EDITORES.

RI

v tel en el modo de rdenes tmin entr en modo de inserin de textoD pero en vez de omenzr esriir en l posiin del ursorD empiez un espio despusF v tel o en el modo de rdenes insert texto pero desde l lne que sigue l lne donde se est uidoF r orrr textoD hy que slir l modo rdenesD y presionr l tel x que orrr el texto que se enuentre sore el ursorF i se quiere orrr ls lnes entersD entones se dee presionr dos vees l tel d sore l lne que deseo eliminrF i se presionn ls tels dw se orr l plr sore l que se est uidoF v letr sore un plr se puede esriir enim de ellF isto es un espeie de modo de inserin de texto pero slo se podr modi(r l plr sore l que se est situdoF v tel ~ mi de mysul minsul l letr sore l que se est situdoF
Moverse dentro de vi.

istndo en modo rdenes podemos movernos por el rhivo que se est editndo usndo ls )ehs hi l izquierdD derehD jo o rriF gon l tel H nos movemos l omienzo de l lne y on l tel 6 nos movemos l (nl de l mismF gon ls tels w y nos movemos l omienzo de l siguiente plr o l de l plr nterior respetivmenteF r moverme hi l pntll siguiente l ominin de tels gv p y pr volver l pntll nterior gv fF r ir hst el prinipio del rhivo se presion l tel qF
Opciones de comandos.

r entrr l men de omndos se dee presionr l tel X en el modo de rdenesF epreern los dos puntos @XAF equ se pueden ingresr ordenes pr gurdrD slirD mir de rhivo entre otrs ossF emos lgunos ejemplosX qurdr los miosF Xw otherfileFtxt qurdr on el nuevo nomre otherfileFtxt Xwq qurdr los mios y slirF Xq3 lir del rhivo sin gurdr los miosF Xe fileIFtxt i deseo editr otro rhivo l que se le pondr por nomre fileIFtxtF Xr fileFtxt i se quiere insertr un rhivo y existenteD por ejemplo fileFtxtF Xr3 omndo i se quiere ejeutr lgn omndo del shell y que su slid prez en el rhivo que se est editndoF
Xw

RP

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.13.2. Editores modo emacs. il editor qx imsD esrito por ihrd tllmn de l Free Software FoundationD es uno de los que tienen myor eptin entre los usurios de unixD estndo disponile jo lieni GNU GPL31 pr un grn ntidd de rquitetursF min existe otr versin de ems llmd ims totlmente omptile on l nterior pero presentndo mejors signi(tivs respeto l qx imsF hentro de los inonvenientes que present es que no viene por defeto inluido en l myor de los sistems unixF vs tules distriuiones de vinux y en prtiulr hein qxGvinux ontienen ms versiones de emsD tnto qx ims omo imsD omo tmin versiones de joveD jedD xjed y muhos otros editoresF r myor informin ver epndieF

1.14. El sistema X Windows.


il X Windows system es el sistem estndr de ventns en ls estiones de trjoF vo usul tulmente es que el sistem de ventns se rrndo utomtimente undo l mquin prteF in el sistem X Windows deen distinguirse dos oneptosX
server X is un progrm que se enrg de esriir en el dispositivo de video y de

pturr ls entrds @por teldoD rtnD etFAF esimismo se enrg de mntener los reursos y preferenis de ls pliionesF lo puede existir un server pr d pnE tllF client X is ulquier pliin que se ejeute en el sistem X WindowsF xo hy lmite @en prinipioA en el nmero de lientes que pueden estrse ejeutndo simultnementeF vos lientes pueden ser loles o remotosF
Window Manager (WM) is un liente on privilegios espeilesX ontrol el omporE

tmiento @formD tmoDF F F A del resto de lientesF ixisten vriosD destndoX icewm X Ice Window ManagerD uno de los window managers gnome omptileF sawsh X Window managers gnome omptileD ltmente on(gurle y muy integrE do l gnome desktopF Metacity X Window managers gnome P omptileF il look and feel @o qsA de X Windows es extremdmente on(gurleD y puede preer que dos mquins son muy distintsD pero esto se dee l w que se est usndo y no que ls pliiones sen distintsF
31 La licencia de GNU, da el permiso de libre uso de los programas con sus fuentes, pero los autores
mantienen el

Copyright

y no es permitido distribuir los binarios sin acceso a sus fuentes. Los programas

derivados de dichos fuentes heredan la licencia GNU.

1.15.

USO DEL RATN.

RQ

r on(gurr tu sesin es neesrio ser qu progrms ests usndo y ver ls pgins de mnulF vos rhivos priniples sonX
Fxinitr Ffvwmr Folwmr

o Fxsession rhivo ledo l rrnr X WindowsF equ se pueden de(nir los progrms que preen l iniio de tu sesinF rhivo de on(gurin del fvwmF er ls pgins del mnul de fvwmF rhivo de on(gurin del olwmF er ls pgins del mnul de olwmF

gon(gurin generl de ls pliiones de indowsF equ puedes de(nir los resources que enontrrs en los mnules de ls pliiones de F
Fdefults

1.15. Uso del ratn.


il rtn es un dispositivo esenil en el uso de progrms D sin emrgoD l funin que reliz en d uno de ellos no est normlizdF gomentremos l put seguid por l myor de ls pliionesD pero dee tenerse presente que es muy freuente enontrr pliiones que no ls respetnF32
Botn izquierdo @vfAX eleionrF gomienz el loque de seleinF Botn central @wfAX egrF gopi l selein en l posiin del ursorF Botn derecho @fAX ritulmente ofree un men pr prtir pliionesF

ixisten dos modos pr determinr ul es l ventana activaD qull que reie ls entrds de teldoX
Focus Follows Mouse X v ventn que onteng l rtn es l que es tivF xo usdo

por defeto tulmenteF

Click To Focus X v ventn seleiond es l tivF il modo que est tivo depende de l on(gurin del Window ManagerF
32 Las aplicaciones que son conscientes de un uso anormal y estn realizadas por programadores inteligentes,
muestran en pantalla la funcin de cada botn cuando son posibles varias alternativas.

RR

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.16. Internet.
in est sein denominremos unixI l mquin lol @desde donde ejeutmos l ordenA y unixP l mquin remot @on l que interionmosAF emos son los hostnmes de ls respetivs mquinsF ixisten lgunos oneptos que previmente deemos omentrX
sEnumerX

es un onjunto de R nmeros seprdos por puntos @pFeF PHHFVWFURFTA que se soi d mquinF xo puede her dos mquins onetds en l mism red on el mismo nmeroF suelen dir un serie de su(jos seprdos por puntos que onstituyen el denomindo dominio @pFeF mulFienisFuhileFlAF n mquin por tnto puede tener ms de un nomre reonoido @se hl en este so de lisAF e denomin resoluin l identi(in entre un hostnme y el sEnumer orrespondienteF v onsult se reliz iniilmente en el rhivo GetGhostsD donde normlmente se gurdn ls identi(iones de ls mquins ms omnmente empledsF in so de que no se logre se ede l serviio hx @Domain Name Service AD que permite l identi(in @resoluinA entre un hostnme y un sEnumerF
milEddressX es el nomre que se emple pr envir orreo eletrnioF iste nomre hostnmeX es el nomre que tiene soid l mquin @pFeF mulAF e este nomre se le

puede oinidir on el nomre de un mquinD pero se suele de(nir omo un lisD on ojeto de que l direin no de de mirse si l mquin se estrope o se mi por otrF

1.16.1. Otras mquinas.

eri( si un mquin est onetd l red y si el mino de snternet hst l mism funion orretmenteF
finger finger userD muestr informin33 sore el usurio user en l mquin lolF finger userdhostnmeD muestr informin sore un usurio llmdo user en un mquin hostnmeF finger dhostnmeD muestr los usurios onetdos en l mquin hostnmeF

ping

iste omndo suele estr desilitdo en ls mquins tulesF


.project
y

33 La informacin proporcionada es el nombre completo del usuario, las ltimas sesiones en dicha mquina,
si ha ledo o no su correo y el contenido de los archivos

.plan

del usuario.

1.16.

INTERNET.

RS

1.16.2. Acceso a la red. ixisten muhos progrms pr l onexin de l redD los ms usdos sonX
telnet unixPD he un login en l mquin unixPD dee ingresrse el usurio y su respetiv psswdF edemsD permite espei(r el puerto en onexin en l mquin

remotF

muy similr telnet pero se puede espei(r el usurioD si no se espei( se us el nomre de l uent lolF edemsD el psswd ps enriptdo trvs de l redF ssh nomredunixP omndoD muy similr rshD el psswd ps enriptdo y ejeut el omndo en l mquin remotD mostrndo el resultdo en l mquin lolF sp fileI usurioPdunixPXpthGfileD opi el rhivo fileID del usurioID que se enuentr en el diretorio lol en l mquin unixID en l uent del usurioP en l mquin unixP en 6rywiGpthGfileF i no se espei( el nomre del usurio se us el nomre de l uent lolF i se quiere opir el rhivo fileP del usurioQ en unixP en l uent tul de unixI el omndo serX sp usurioQdunixPXfileP FF entes de relizr ulquier de ls opis el sistem preguntr por el psswd del usurio en uestin en l mquin unixPF xuevmenteD el psswd ps enriptdo trvs de l redF tlk usurioIdunixPD intent her un onexin pr hlr on el usurioI en l mquin unixPF ixisten vris versiones de tlk en los diferentes sistems opertivosD de form que no siempre es posile estleer un omuniin entre mquins on sistems opertivos diferentesF ftp unixPD @(le trnsfer protoolA pliin pr opir rhivos entre mquins de un redF ftp exige un nomre de uent y pssword pr l mquin remotF elguns de ls opiones ms empleds @un vez estleid l onexinA sonX
inX

ssh nomredunixPD

istlee el modo de omuniin inrioF is deirD trns(ere un imgen ext del rhivoF sX istlee el modo de omuniin siiF eliz ls onversiones neesris entre ls dos mquins en omuniinF is el modo por defetoF dX gmi diretorio en l mquin remotF ldX gmi diretorio en l mquin lolF lsX vist el diretorio remotoF 3lsX vist el diretorio lolF prompt X xo pide on(rmin pr trnsfereni mltiple de rhivosF

RT

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

supone igul nomre en ms mquinsF put lfile rfile X trns(ere el rhivo lfile de l mquin lol l mquin remot denominndolo rfileF in so de no suministrrse el segundo rgumento supone igul nomre en ms mquinsF min puede usrse sendF mget rfile X igul que getD pero on ms de un rhivo @rfile puede ontener rteres omodinesAF mput lfile X igul que putD pero on ms de un rhivo @lfile puede ontener rteres omodinesAF ixisten versiones mejords de ftp omo nftpF min existen versiones gr(s de lientes ftp donde l elein de rhivoD el sentido de l trnsfereni y el modo de stD se elige on el mouse @pFeF wxftpAF rlogin El nomre unixPD @remote login AD he un login l mquin unixP omo el usurio nomre por defetoD sin los rgumentos El nomre rlogin us el nomre de l uent lolF xormlmente rlogin pide el password de l uent remotD pero on el uso del rhivo Frhosts o GetGhostsFequiv esto no es siempre neesrioF rsh El nomre unixP ordenD @remote shell AD ejeut l orden en l mquin unixP omo usurio nomreF is neesrio que pued entrr en l mquin remot sin password pr ejeutr un orden remotF in espei(r orden t omo rloginF

get rfile lfileX trns(ere el rhivo rfile de l mquin remot l mquin lol denominndolo lfileF in so de no suministrrse el segundo rgumento

1.16.3. Exportando el DISPLAY. in so de que tengs que orrer un pliin de que no est disponile en l mquin que ests usndoD eso no represent ningn prolemF vs rdenes neesris son @por ejemploD pr rrnr un gnomeEterminl remotoAX
userdhostnmeIX~6 ssh Eg userfdhostnmeP userfdhostnmeP9s psswordX userfdhostnmePX~6 gnomeEterminl 8

vs opiones g en el omndo ssh orresponden que exporte el hsve y que omE primD respetivmenteF v form ntigu
useredhostnmeIX~6 xhost ChostnmeP hostnmeP eing dded to ess ontrol list userdhostnmeIX~6 ssh userfdhostnmeP userfdhostnmeP9s psswordX userfdhostnmePX~6 export hsveahostnmeIXH userfdhostnmePX~6 gnomeEterminl 8

i todo est previmente on(gurdoD es posile que no hg flt dr el passwordF

1.16.

INTERNET.

RU

1.16.4. El correo electrnico. il orreo eletrnio @eEmilA es un serviio pr el envo de mensjes entre usuriosD tnto de l mism mquin omo de diferentes mquinsF
Direcciones de correo electrnico.

r mndr un eEmil es neesrio onoer l direin del destintrioF ist direin onst de dos mpos que se ominn interlndo entre ellos el d @at AX userddomin X es l identi(in del usurio @i.e. loginA en l mquin remotF domin X es l mquin donde reie orreo el destintrioF e menudoD es freuente que si un person tiene eso un onjunto de mquinsD su direin de orreo no orrespond on un mquin sino que orrespond un lis que se resolver en un nomre espe(o de mquin en form oult pr el que envF
user

i el usurio es lolD no es neesrio olor el mpo domin @ni tmpoo el dAF


Nomenclatura.

emos lgunos oneptos reliondos on el orreo eletrnioX


Subject X is un prte de un mensje que piden los progrms l omienzo y sirve omo ttulo pr el mensjeF Cc @gron gopyA X ermite el envo de opis del mensje que est siendo editdo terers personsF Reply X gundo se env un mensje en respuest otro se suele dir el omienzo del subject: eXD on ojeto de orientr l destintrio sore el tem que se respondeF is freuente que se inluy el mensje l que se responde pr filitr l destintrio l omprensin de l respuestF Forward X ermite reenvir un mensje ompleto @on modi(iones o sin ellsA un terer personF xotndo que porwrd env tmin los rhivos djuntosD mientrs que l opin eply no lo heF Forwarding Mail X ermite un usurio que dispong de uents en vris mquins no reliondsD de onentrr su orreo en un uent ni34F r ello st on tener un rhivo 6rywiGFforwrd que onteng l direin donde dese entrlizr su orreoF
34 Este comando debe usarse con conocimiento pues en caso contrario podra provocar un
no recibir nunca correo.

loop

indenido y

RV

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

dirigido su grupoF ixisten rdenes pr responder un determindo orreo reiido por es v de form que el resto del grupo sep lo que h respondido un miemro del mismoF usurioF uele estr lolizdo en GvrGspoolGmilGuserF presentdoF

Mail group X n grupo de orreo es un onjunto de usurios que reien el orreo

In-Box X is el rhivo donde se lmen el orreo que todv no h sido ledo por el Mailer-Daemon X gundo existe un prolem en l trnsmisin de un mensje se reie un mensje proveniente del Mailer-Daemon que indi el prolem que se h Aplicacin mail.

is posilemente l pliin ms simpleF r l letur de mil teler simplementeX mil y ontinuin pree un ndie on los diferentes mensjes reiidosF gd mensje tiene un lne de identi(in on nmeroF r leer un mensje st teler su nmero y ontinuin returnF r envir un mensjeX mil @ddressA se pregunt por el ujetX y ontinuin se introdue el mensjeF r r se tele slo un punto en un lne o ien gtrEhF or ltimoD se pregunt por gXF is posile personlizr el funionmiento medinte el rhivo 6rywiGFmilrF r envir un rhivo de texto trvs del orreo se suele empler l redirein de entrdX
yodmitrroX~6 mil tudotrotrro ` rtFtxt yodmitrroX~6

i queremos envir un rhivo inrio en form de tth en el milD el omndo es


yodmitrroX~6 mpk informeFpdf tudotrotrro yodmitrroX~6

1.16.5. Ftp anonymous. ixisten servidores que permiten el eso por ftp usurios que no disponen de uent en dihs mquinsF r ello se emple omo login de entrd el usurio nonymous y omo psswd l direin de e-mail personlF ixisten servidores que no eptn onexiones desde mquins que no estn delrds orretmente en el serviio de nomre @dns AD s omo lguns que no permiten l entrd usurios que no se identi(n orretmenteF hd l sorerg que existeD muhos de los servidores tienen limitdo el nmero de usurios que pueden eder simultnementeF

1.17.

IMPRESIN.

RW

1.16.6. WWW. son ls sigls de World-Wide WebF iste serviio permite el eso informin entrelzd @dispone de un texto donde un trmino puede onduir otro textoAX hyperlinksF vos rhivos estn esritosD priniplmenteD en un lenguje denomindo htmlF r eder este serviio es neesrio disponer de un letor de diho lenguje onoido omo browser o nvegdorF hestn tulmenteX qoogleEghromeDseweselD pirefoxD yperD fri @pr wegA y el simple pero muy rpido vynxF

1.17. Impresin.
gundo se quiere otener un opi impres de un rhivo se emple el omndo lprF
lpr file E inv el rhivo file l ol de impresin por defetoF i l ol est tivdD l impresor list y ningn trjo por enim del envidoD nuestro trjo ser proesdo de form utomtiF e menudo existen vris posiles impresors ls que poder envir los trjosF r seleionr un impresor en onreto @en vez de l por defetoA se emple el modi(dorX lpr EimpresorD siendo impresor el nomre lgio signdo est otr impresorF r reiir un list de ls posiles impresors de un sistemD s omo su estdoD se puede empler el omndo GusrGsinGlp sttusF v list de impresors y su on(gurin tmin est disponile en el rhivo GetGprintpF ytrs rdenes pr l mnipulin de l ol de impresin sonX lpq EimpresorD permite exminr el estdo de un determind ol @pr ver l

ntidd de trjos sin proesr de stD por ejemploAF lprm Eimpresor jonumerD permite eliminr un trjo de l ol de impresinF no de los lengujes de impresin gr( ms extendidos en l tulidd es PostScriptF v extensin de los rhivos PostScript empled es FpsF n rhivo PostScript puede ser visulizdo e impreso medinte los progrmsX gvD gnomeEgv o ghostviewF or ello muhs de ls impresors tules slo dmiten l impresin en diho formtoF in so de deser imprimir un rhivo sii deer previmente relizrse l onversin PostScript emplendo l orden PpsX Pps fileFtxt ist orden env l impresor el rhivo sii fileFtxt formtedo P pgins por hojF ytro progrm que permite onvertir un rhivo sii en postsript es ensriptF ytro tipo de rhivos mplimente difundido y que hitulmente se neesit imprimir es el onoido omo Portable Document FormatF iste tipo de rhivo poseen un extensin Fpdf y pueden ser visulizdos e impresos usndo pliiones tles omoX xpdfD rored o evineF

SH
tr

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

1.18. Compresin.
iste omndo permite l reinGextrin de rhivos ontenidos en un nio rhivo denomindo trfile @o trllAF iste trfile suele ser luego omprimido on gzipD l versin de ompresin gnuD35 o ien on zipPF v in relizr viene ontrold por el primer rgumentoX @greteA rein x @etrtA extrin t @lisA mostrr ontenido r dir l (nl u @pdteA dir quellos rhivos que no se hllen en el tr(le o que hyn sido modi(dos on posterioridd l versin que preeF e ontinuin se muestrn lguns de ls opionesX v erose @indi qu rhivos son gregdos medid que son proesdosA z gomprimir o desomprimir el ontenido on gzipF j gomprimir o desomprimir el ontenido on zipPF f pileX permite espei(r el rhivo pr el tr(leF emos lgunos ejemplosX qener un rhivo simulFtr que ontiene todos los rhivos que terminen en Fdt del diretorio tulF e medid que se v relizndo indi el tmo en loques de d rhivo dido modo verboseF sgul que en el so nteriorD pero el rhivo generdo simulFtgz h sido omprimido empleE ndo gzipF wuestr los rhivos ontenidos en el tr(le simulFtrF ixtre todos los rhivos ontenidos en el tr(le simulFtrF
Software Foundation,
35 gnu es un acrnimo recursivo, signica:

tr vf simulFtr BFdt

tr zvf simulFtgz BFdt tr tvf simulFtr

tr xvf simulFtr

gnu's

Not

unix! gnu

es el nombre del producto de la

una organizacin dedicada a la creacin de programas compatibles con

mejorado respecto a los estndars, y de libre distribucin. La distribucin de Linux

gnu es debian.

unix

Free

algunos

1.18.

COMPRESIN.

SI

1.18.1. Distintos algoritmos de compresin. e menudo neesitmos omprimir un rhivo pr disminuir su tmoD o ien rer un respldo @backup A de un determind estrutur de diretoriosF e omentn ontinuin un serie de omndos que permiten ejeutr dihs ionesF il ompresor ompress est reltivmente fuer de uso36 pero n podemos enontrrnos on rhivos omprimidos por lF
ompress file

originlF

X omprime el rhivoD rendo el rhivo fileFF hestruye el rhivo X desomprime el rhivoD rendo el rhivo fileF hestruye el
stdout

rhivo originlF zt fileF X muestr por el destruir el originlAF

unompress fileF

el ontenido desomprimido del rhivo @sin

ytr lterntiv de ompresor muho ms usd es gzipD el ompresor de qx que posee un myor rzn de ompresin que ompressF emos los omndosX
gzip file

originlF originlF

X omprime el rhivoD rendo el rhivo

fileFgzF

hestruye el rhivo

gunzip fileFgz X desomprime el rhivoD rendo el rhivo fileF hestruye el rhivo zless fileFgz ndo por lessF

X muestr por el stdout el ontenido desomprimido del rhivo pgiE

v extensin empled en los rhivos omprimidos on gzip suele ser FgzD pero vees se us FgzipF ediionlmente el progrm gunzip tmin puede desomprimir rhivos redos on ompressF v opin on myor ts de ompresin que gzip es zipP y su desompresor unzipPF originlF
zipP file

X omprime el rhivoD rendo el rhivo fileFzPF hestruye el rhivo X desomprime el rhivoD rendo el rhivo
fileF

rhivo originlF

unzipP fileFzP

hestruye el

mos usr un pgindorD diionlmenteD pr verlo por pginsF

zt fileFzP X muestr por el stdout el ontenido desomprimido del rhivoF heeE


ncompress
para tenerlo

36 Este comando no se incluye en la instalacin bsica. Debemos cargar el paquete

SP

CAPTULO 1.

ELEMENTOS DEL SISTEMA OPERATIVO

UNIX.

v extensin usd en este so es FzPF il kernel de vinux se distriuye en formto zipPF min existe un versin prlelizd llmd pzipPF no de los mejores lgoritmos de ompresin est disponile pr vinux en el progrm pUzipF emos un ejemploX un rhivo linuxEPFTFIVFtr que ontiene el kernel PFTFIV de vinux que tiene un tmo de PQH wF vos resultdos l omprimirlo on ompressD gzipD zipP y Uz sonX linuxEPFTFIVFtrF WI wD linuxEPFTFIVFtrFgz SI wD linuxEPFTFIVFtrFzP RH w y linuxEPFTFIVFtrFUz QQ wF37 gompresor mo in omprimir PQH w ompress WI w gzip SI w zipP RH w Uz QQ w gudro IFIX l de ompresin del rhivo linuxEPFTFIVFtr que ontiene el kernel PFTFIV de vinuxF ixisten tmin versiones de los ompresores omptiles on otros sistems opertivosX y zooF in so que se desee rer un rhivo omprimido on un estrutur de diretorios dee ejeutrse l ordenX tr vzf nomreFtgz diretorio o ien tr vjf nomreFtz diretorio in el primer so omprime on gzip y en el segundo on zipPF r desomprimir y restleer l estrutur de diretorio lmend se usn los omndosX
zipD unzipD unrjD lhD rr tr xvzf tr xvjf

si se reliz l ompresin on gzip o ien si se


nomreFtz diretorio reliz l ompresin on zipPF

nomreFtgz diretorio

37 Los comandos

gzip

bzip2

fueron dados con la opcin

comando usado para la compresin con

file.tar.7z file.tar,

7z

fue:

note la nueva extensin

best para lograr la mayor compresin. El 7za a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on 7z. Para descomprimir con 7z basta 7z e file.tar.7z

Captulo 2 Grca.
in este ptulo quisirmos mostrr lguns de ls posiiliddes gr(s presentes en vinuxF xuestr intensin es urir tems omo l visulizinD onversinD ptur y rein de rhivos gr(osF lo menionremos ls pliiones priniples en d so entrnE donos en sus posiiliddes ms que en su utilizin espe(D y que l myor posee un interfse senill de mnejr y un mpli doumentinF
versin 4.12, 24 de Octubre del 2003

2.1. Visualizacin de archivos grcos.


i disponemos de un rhivo gr(o onteniendo lgn tipo de imgen lo primero que es importnte determinr es en qu tipo de formto gr(o est odi(dF ixiste un nmero relmente grnde de diferentes tipos de odi(iones de imgenesD d un de ells se onsider un formto gr(oF or rzones de reonoimiento inmedito del tipo de formto gr(o se suelen inluir en el nomre del rhivoD que ontiene l imgenD un tro de letrs (nlesD onoids omo l extensinD que representn el formtoF or ejemploX mpD ti'D jpgD psD epsD (gD gif entre muhs otrsD si uno quiere segurrse puede dr el omndoX
jrogndhuelenX~6file monoFjpg monoFjpgX tiq imge dtD tpsp stndrd IFHID resolution @hgwAD UP x UP

he qu herrmients disponemos en vinux pr visulizr ests imgenesc v respuest es que en vinux disponemos de vrids herrmients pr este efetoF i se trt de rhivos de tipo PostScript o Encapsulated PostScriptD identi(dos por l extensin ps o epsD existen ls pliiones gvD gnomeEgv o kghostviewD todos progrms que nos permitirn visulizr e imprimir este tipo de rhivosF i los rhivos son tipo Portable Document FormatD on extensin pdfD tenemos ls pliiones gvD rored o xpdfD gon tods ells podemos ver e imprimir diho formtoF n menin espeil requieren los rhivos DeVice Independent on extensin dvi y que son el resultdo de l ompilin de un A doumento i o viD pr este tipo de rhivo existen ls pliiones xdviD dviD gxdvi y kdvi por nomrr ls priniplesF v pliin xdvi slo permite visulizr estos rhivos y no imprimirlosD l myor de ls otrs permiten imprimirlo diretmenteF i us xdvi y SQ

SR

CAPTULO 2.

GRFICA.

dese imprimir el doumento dee trnsformr ps v dvips y luego se imprime omo ulquier otro PostscriptF r l grn myor de formtos gr(os ms onoidos y usulmente usdos pr lE menr fotos existen otr serie se progrms espeilizdos en visulizin que son pes de entender l myor de los formtos ms usdosF intre estos progrms podemos menE ionrX Eye of Gnome @eogAD Electric Eyes @eeyesAD kview o displyF odemos menionr que pliiones omo disply entienden sore ohent formtos gr(os distintos entre los que se enuentrn l myor de los formtos onoidos ms otros omo psD epsD pdfD figD htmlD entre muhos otrosF n menin espeil meree el utilitrio gthum que nos permite her un preview de un diretorio on muhs imgenes de mner muy filF

2.2. Modicando imgenes


i queremos modi(iones omo rotionesD mpliionesD ortesD mios de plet de oloresD (ltros o efetos senillosD disply es l herrmient preisF ero si se dese intervenir l imgen en form profesionlD el progrm gimp es el indidoF il nomre gimp viene de GNU Image Manipulation ProgramF e puede usr est pliin pr editr y mnipulr imgenesF udiendo rgr y slvr en un vriedd de formtosD lo que permite usrlo pr onvertir entre ellosF v pliin gimp puede tmin ser usdo omo progrm de pintrD de heho posee un grn vriedd de herrmients en este sentidoD tles omo roh de ireD lpiz londorD tijers inteligentesD urvs ezierD etF edemsD permite inluir plugins que relizn grn vriedd de mnipuliones de imgenF gomo heho nedtio podemos menionr que l imgen o(il de uxD el pingino msot de vinuxD fue red en gimpF in emrgoD si gimp le pree muy profesionl o usted slo neesit un progrm pr diujr en el ul se entreteng su hermno menor tuxpint es l lterntivF

2.3. Conversin entre formatos grcos.


il prolem de trnsformr de un formto otro es un situin usul en el trjo on rhivos gr(osF wuhos softwares tienen slids muy restringids en formto o ien usn formtos rios @gifA por ejemploF he h que se present l neesidd de onvertir estos rhivos de slid en otros formtos que nos sen ms mnejles o prtiosF gomo y se menionD gimp puede ser usdo pr onvertir entre formtos gr(osF min disply permite este hehoF in emrgoD en mos sos l onversin es v mensD lo ul lo he engorroso pr un grn nmero de onversiones e imposile pr onversiones de tipo utomtioF ixiste un progrm llmdo onvert que reliz onversiones desde l lne de omndoF iste progrm junto on displyD import y vrios otros formn l suite gr( ImageMagickD un de ls ms importntes en unixD en generlD y en espeil en vinux y que y h sido migrd otrs pltformsF edemsD de l lr ventj de utomtizin que

2.4.

CAPTURA DE PANTALLA.

SS

proporion onvertD posee otro speto interesnteD puede onvertir un grupo de imgenes soids en un seueni de nimin o pelulF emos l sintxis pr este progrmX
userdhostX~Gimgenes6onvert oktooFtiff oktooFjpg userdhostX~Gseuenis6onvert Edely PH dnBFpng dnFmng

in el primer so onvierte el rhivo oktoo de formto tiff formto jpgF in el segundoD prtir de un onjunto de rhivos on formto png llmdos dn ms un nmero orreltivoD re un seueni nimd on imgenes que persisten por PH entsims de segundos en un formto onoido omo mngF

2.4. Captura de pantalla.


e menudo se neesit gurdr imgenes que slo se pueden generr tiempo de ejeuinD es deirD mientrs orre nuestro progrm gener l imgen pero no tiene un menismo propio pr exportrl o slvrl omo imgenF in este so neesitmos pturr l pntll y poderl lmenr en un rhivo pr el ul podmos elegir el formtoF r estos efetos existe un progrmD miemro tmin de l suite ImageMagickD llmdo import que nos permite her el trjoF v sintxis del omndo es
import figureFeps import Ewindow root rootFjpg

in el primer so uno d el omndo en un terminl y qued esperndo hst que uno toque lgun de ls ventnsD l ul es gurdd en este so en un rhivo figureFeps en formto PostScriptF v extensin le indi l progrm qu formto usr pr lmenr l imgenF in el segundo so uno ptur l pntll omplet en un rhivo rootFjpegF iste omndo puede ser ddo desde l onsol de texto pr pturr l imgen omplet en l pntll gr(F

2.5. Creando imgenes.


r imgenes rtstis sin dud l lterntiv es gimpD todo le que se dijo respeto sus posiiliddes pr modi(r imgenes se pli tmin en el so de rerlsF in el so de neesitr imgenes ms ien tnis omo esquems o digrms o un ilustrin pr lrr un prolem ls lterntivs pueden ser xfigD sodipodi o sketh tods herrmients vetoriles muy poderosF iste tipo de progrms son mnejdos por medio de mens y permiten diujr y mnipulr ojetos intertivmenteF vs imgenes pueden ser slvdsD en formto propios y posteriormente editdsF v grn ventj de estos progrms es que

ST

CAPTULO 2.

GRFICA.

trj on ojetos y no on itmpsF edemsD puede exportr ls imgenes otros formtosX PostScript o Encapsulated PostScript o ien gif o jpegF ritulmente los diujos neesrios pr ilustrr prolems en psi en tresD prues y puntes son relizdos on software de este tipoD priniplmente xfigD luego exportdos A PostScript e inludos en los respetivos rhivos viF min existe un herrmient extremdmente til que permite onvertir un rhivo PostScriptD generdo de ulquier mnerD un rhivo fig que puede ser editdo y modi(doF ist pliin que trnsform se llm pstoedit y puede llegr ser relmente prtiF ytr herrmient interesnte es utotre que permite psr un (gur en bitmap form vetorilF n prente limitin de este tipo de software es que se podr pensr que no podemos inluir urvs nltisD es deirD si neesitmos ilustrr un funin gussin no podemos pretender diujrl on ls herrmients de que disponenF in emrgoD este prolem puede ser resuelto y que software que gr( funiones nltisD tles omo gnuplotD permite exportr en formto que entienden los progrms vetoriles @figD por ejemploA luego podemos leer el rhivo y editrloF edemsD xfig permite importr e inluir imgenes del tipo bitmapD gregndo riquez los digrms que puede generrF n rtersti importnte de este tipo de progrms es que trjen por psD ls ules son trtds independientementeD uno puede poner un ojeto sore otro o por dejo de otro logrndo diferentes efetosF elgunos progrms de presentin gr(os sdos en A vi y pdf estn utilizndo est pidd en xfig pr logrr nimiones de imgenesF pinlmente el progrm xfig permite onstruir un iliote de ojetos reutilizles horrndo muho trjoF or ejemploD si uno diuj los elementos de un iruito eltrio y los lmen en el lugr de ls iliotes de imgenes podr inluir estos ojetos en futuros trjosF il progrm viene on vris iliotes de ojetos lists pr usrF

2.6. Gracando funciones y datos.


ixisten vris pliiones que permiten gr(r dtos de un rhivoD entre ls ms popuE lres estnX gnuplotD xmgre y iqrphiF v primer est sd en l lne de omndo y permite gr(os en P y Q dimensionesD pudiendo demsD gr(r funiones diretmente sin psr por un rhivo de dtosF vs otrs dos son pliiones sds en mens que permiten un resultdo (nl de muh lidd y on mltiples vrintesF v deilidd en el so de xmgre es que slo he gr(os idimensionlesF il progrm gnuplot se invo de l lne de omndo y d un prompt en el mismo terminl desde el ul se puede trjrD vemos un sesin de gnuplotX
jrogndhuelenX~6 gnuplot q x v y ersion QFU pthlevel P lst modified t tn IW ISXPQXQU qw PHHP

2.6.

GRAFICANDO FUNCIONES Y DATOS.

SU

ystemX vinux PFRFIW gopyright@gA IWVT E IWWQD IWWV E PHHP homs illimsD golin uelley nd mny others ype help to ess the onEline referene mnul he gnuplot pe is ville from httpXGGwwwFgnuplotFinfoGgnuplotEfqFhtml end omments nd requests for help to `infoEgnuplotddrtmouthFedub end ugsD suggestions nd mods to `ugEgnuplotddrtmouthFedub erminl type set to 9xII9 gnuplotb plot sqrt@xA gnuplotb set xrngeHXS gnuplotb set xlel4 eje de ls x4 gnuplotb replot gnuplotb set terminl postsript erminl type set to 9postsript9 yptions re 9lndspe noenhned monohrome dshed defultplex 4relveti4 IR9 gnuplotb set output 4mygrphFps4 gnuplotb replot gnuplotb set terminl erminl type set to 9II9 yptions re 9H9 gnuplotb set xrngeEPXP gnuplotb set yrngeEPXP gnuplotb splot exp@ExBxEyByA gnuplotb plot 4myfileFdt4 w l gnuplotb exit jrogndhuelenX~6

in el so de xmgre y iqrphi muho ms direto mnejrlo y que est sE do en mensF edemsD existe undnte doumentin de mos softwaresF il software iqrphi es un pliin de visulizin y nlisis de dt ient( que permite el despliegue de gr(os en P y Q dimensionesD demsD export los resultdos formto PostScriptF elmente est pliin ni omo un intento de lonr el progrm omeril origen no disponile pr vinuxF

SV

CAPTULO 2.

GRFICA.

Captulo 3 El sistema de preparacin de documentos TEX .


versin 5.0, 30 de Julio del 2003

3.1. Introduccin.
i es un proesdor de texto oD mejor dihoD un vnzdo sistem de preprin de doumentosD redo por honld unuthD que permite el diseo de doumentos de grn liddD A onteniendo textos y frmuls mtemtisF eos despusD vi fue desrrolldo por veslie vmportD filitndo l preprin de doumentos en iD gris l de(niin de mros o onjuntos de omndos de fil usoF A A vi tuvo diverss versiones hst l PFHWF etulmenteD vi h reiido importntes A modi(ionesD siendo l distriuin tulmente en uso y desrrollo vi PD un versin A A trnsitori en esper de que lgn d se llegue l nuev versin de(nitiv de viD viQF A nos referiremos l versin tulD v P F gunE A in ests pgins undo digmos vi i do quermos her refereni l versin nteriorD que deer quedr progresivmente en A desusoD diremos explitmente vi PFHWF

3.2. Archivos.
A il proeso de preprin de un doumento vi onst de tres psosX

IF grein de un rhivo on extensin tex on lgn editorF PF gompilin del rhivo texD on un omndo del tipo ltex `rhivobFtex o ltex `rhivobF isto d por resultdo tres rhivos diionlesD on el mismo nomre del rhivo originlD pero on extensiones distintsX
a A dviF

is el rhivo proesdo que podemos ver en pntll o imprimirF n vez ompildoD este rhivo puede ser envido otro omputdorD pr imprimir en SW

TH

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

otr impresorD o verlo en otro monitorD independiente de l mquin @de donde su extensin dviD device independent AF b A logF equ se enuentrn todos los mensjes produto de l ompilinD pr onsult si es neesrio @errores enontrdosD memori utilizdD mensjes de dE verteniD etFAF c A uxF gontiene informin diionl queD por el momentoD no nos interesF QF isin en pntll e impresin del rhivo proesdo trvs de un progrm nexo @xdvi o dvipsD por ejemploAD pz de leer el dviF

3.3. Input bsico.


3.3.1. Estructura de un archivo. in un rhivo no pueden fltr ls siguientes lnesX
doumentlssIPpt{rtile} egin{doument} end{doument}

rremos lguns preisiones respeto l primer lne ms trdeF vo importnte es que un lne de est form dee ser l primer de nuestro rhivoF odo lo que se enuentr ntes de egin{doument} se denomin prembuloF il texto que quermos esriir v entre egin{doument} y end{doument}F odo lo que se enuentre despus de end{doument} es ignordoF
3.3.2. Caracteres. ueden preer en nuestro texto todos los rteres del digo egss no extendido @teldo ingls usulAX letrsD nmeros y los signos de puntuinX
F X Y D c 3 9 @ A E G B d

vos rteres espeilesX


5 6 7 8 ~ { }
A tienen un signi(do espe(o pr viF elgunos de ellos se pueden otener nteponinE doles un backslash X 5 5 6 6 7 7 8 8 { { } }

3.3.

INPUT BSICO.

TI

vos rteres
C a | ` b

generlmente preen en frmuls mtemtisD unque pueden preer en texto normlF pinlmenteD ls omills doles @4A si nun se usnF A vos espios en lno y el (n de lne son tmin rteres @invisilesAD que vi onsider omo un mismo rterD que llmremos espioD y que simolizremos osionE lmente omo 2 F r esriir en stellno requeriremos dems lgunos signos y rteres espeilesX
~n

9{i}

4u

3.3.3. Comandos. odos los omndos omienzn on un kslshD y se extienden hst enontrr el primer rter que no se un letr @es deirD un espioD un nmeroD un signo de puntuin o mtemtioD etFAF 3.3.4. Algunos conceptos de estilo. A vi es onsiente de muhs onveniones estilstis que quizs no preimos undo leemos textos ien disedosD pero ls ules es ueno onoer pr provehrlsF

A yservemos l siguiente plrX (noF ist plr fue generd esriiendo simpleE mente finoD pero oservemos que ls letrs f9 e i9 no estn seprdsD sino que unids rtstimenteF isto es un ligadura D y es onsiderd un prti esttiE A mente preferileF vi se esto e insert este pequeo efeto tipogr(o sin que nos demos uentF A vs omills de pertur y de ierre son distintsF or ejemploX insigne9 @omills simplesA o insigne @omills dolesAF vs omills de pertur se hen on uno o on dos entos grves @AD pr omills simples o dolesD respetivmenteD y ls de ierre on entos gudos @9AX insigne9D insigne99F xo es orreto entones utilizr ls omills doles del teldo e intentr esriir 4insigne4 @el resultdo de esto es el poo esttio nsigne4AF A ixisten tres tipos de guionesX gorto intEixupry wedio pgins I!P vrgo un ejemplo "omo ste
E EE EEE

@entre plrsD orte en sls l (nl de l lneA @rngo de nmerosA @puntuinD prntesisA

TP

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

A dA vi insert despus de un punto seguido un pequeo espio diionl respeto l espio norml entre plrsD pr seprr sutilmente frsesF eroD mo ser que un punto termin un frsec il riterio que utiliz es que todo punto termin un frse undo v preedido de un minsulF isto es ierto en l myor de los sosD s omo es ierto que generlmente undo un punto viene despus de un mysul no hy (n de frseX

ghin y FFFF estuvieron de uerdoF in emrgoF F F ero hy exepionesX in l pgF II enontrremos notiis desde l FFFF sts fueron entreE gdsF F F gundo ests exepiones se produenD nosotrosD humnosD tenemos que yudrle l omputdorD diindole queD unque hy un punto despus de l gD no hy un (n de frseD y que el punto despus de l ltim  s termin frseF isto se onsigue sX
in l p9gF II enontrremos notiis desde l FFFdF 9ists fueron entregdsFFF

dA nfsis de textoX
ste es un texto enfatizado.

\'Este es un texto {\em enfatizado}. Otro texto \emph{enfatizado}.

Otro texto enfatizado.

el enftizrD psmos temporlmente un tipo de letr distintoD l itlicaF ist letr es ligermente inlind hi delnteD lo ul puede fetr el orreto espido entre plrsF gompremosD por ejemploX
Quiero hoy mi recompensa. Quiero hoy mi recompensa. Quiero hoy mi recompensa.

Quiero {\em hoy} mi recompensa. Quiero {\em hoy\/} mi recompensa. Quiero \emph{hoy} mi recompensa.

v segund y terer frse tienen un pequeo espio diionl despus de hoyD pr ompensr el espio entre plrs perdido por l inlinin de l itliF iste pequeo espio se denomin correccin itlicaD y se onsigue usndo emphD oD si se us emD gregndo G ntes de errr el prntesis ursivoF v orrein itli es inneesri A undo despus del texto enftizdo viene un punto o un omF vi dvierte esto y omite el espio diionl unque uno lo hy sugeridoF

3.3.

INPUT BSICO.

TQ

3.3.5. Notas a pie de pgina.


snsertemos un not pie de p9ginFfootnote{gomo 9estF}
A vi olor un not pie de pgin1 en el lugr propidoF

3.3.6. Frmulas matemticas. A vi distingue dos modos de esriturX un modo de textoD en el ul se esrien los textos usules omo los y meniondosD y un modo mtemtioD dentro del ul se esrien ls frmulsF gulquier frmul debe ser esrit dentro de un modo mtemtioD y si lgn smolo mtemtio pree fuer del modo mtemtio el ompildor usr un errorF ry tres forms priniples pr eder l modo mtemtioX A 6xCyaQ6 A 66xyaV66 A egin{eqution}
xGyaS end{eqution}

ists tres opiones genernD respetivmenteD un euin en el textoX x + y = 3D un euin seprd del textoD entrd en l pginX
xy = 8

y un euin seprd del textoD numerdX @QFIA is importnte notr que l referirnos un vrile mtemti en el texto deemos esriirl en modo mtemtioX
x/y = 5
Decir que la incgnita es x es incorrecto. No: la incgnita es

x.

Decir que la inc{\'o}gnita es x es incorrecto. No: la inc{\'o}gnita es $x$.

3.3.7. Comentarios. no puede her que el ompildor ignore prte del rhivo usndo 7F odo el texto desde este rter hst el (n de l lne orrespondiente ser ignordo @inluyendo el (n de lneAF
Un pequeo comentario.

Un peque{\~n}o co% Texto ignorado mentario.

1 Como sta.

TR

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

3.3.8. Estilo del documento. vs rterstis generles del doumento estn de(nids en el premuloF vo ms importnte es l elein del estiloD que determin un serie de prmetros que l usurio norml pueden no importrleD pero que son sis pr un orret presentin del textoX u mrgenes dejr en l pginc gunto dejr de sngrc ipo de letrc histni entre lnesc hnde poner los nmeros de pginc un lrgo etterF ods ests deisiones se enuentrn en un archivo de estilo @extensin lsAF vos rhivos stndrd sonX rtileD reportD ook y letterD d uno deudo pr esriir rtulos ortos @sin ptulosA o ms lrgos @on ptulosAD liros y rtsD respetivmenteF v elein del estilo glol se he en l primer lne del rhivoX2
doumentlss{rtile}

ist lne ser eptd por el ompildorD pero nos entregr un doumento on un tmo de letr pequeoD tnimente llmdo de IH puntos IHpt @Ipt a IGUP pulgdsAF ixisten tres tmos de letr disponilesX IHD II y IP ptF i queremos un tmo de letr ms grndeD omo el que tenemos en este doumentoD se lo deemos indir en l primer lne del rhivoX
doumentlssIPpt{rtile}

ods ls deisiones de estilo ontenids dentro del rhivo ls son modi(lesD existienE do tres modos de herloX A wodi(ndo el rhivo ls diretmenteF isto es poo reomendleD porque dih modi(in @por ejemploD un mio de los mrgenesA se hr extensile todos los rhivos ompildos en nuestro omputdorD y esto puede no ser grdleD y se que nosotros semos los nios usurios o demos omprtirloF or supuestoD podemos desher los mios undo terminemos de trjrD pero esto es tediosoF A sntroduiendo omndos deudos en el premuloF st es l opin ms reomendE le y l ms usdF xos permite dominr deisiones espe(s de estilo vlids slo pr el rhivo que nos interesF A grendo un nuevo rhivo lsF isto es muy reomendle undo ls modi(iones de estilo son undntesD profunds y deseen ser reprovehdsF e requiere un poo de A experieni en vi pr herloD pero vees puede ser l ni soluin rzonleF in todo soD l opin usr en l grn myor de los sos es l A @eF QFWAF
E A Por el contrario, la compilacin con L T X 2 de un archivo que comienza con \documentstyle no genera un E A A error, y L T X entra en un . Sin embargo, interesantes novedades de L T X 2 respecto E E

2 En L T X 2.09 esta primera lnea debe ser \documentstyle[12pt]article, y el archivo de estilo tiene A E A extensin sty. Intentar compilar con L T X 2.09 un archivo que comienza con \documentclass da un error.

A a L T X 2.09 se pierden. E

modo de compatibilidad

3.3.

INPUT BSICO.

TS

3.3.9. Argumentos de comandos. remos visto y lgunos omndos que requieren rgumentosF or ejemploX egin{eqution}D doumentlssIPpt{rtile}D footnote{xot}F ixisten dos tipos de rgumentosX IF Argumentos obligatorios. n enerrdos en prntesis ursivosX footnote{xot}D por ejemploF is oligtorio que despus de estos omndos prezn los prntesisF e vees es posile dejr el interior de los prntesis voD pero en otros sos el ompildor relmr inluso eso @footnote{} no gener prolemsD pero doumentlss{} s es un grn prolemAF A n propiedd muy generl de los omndos de vi es que ls llves de los rgumentos oligtorios se pueden omitir undo dihos rgumentos tienen slo un rterF or ejemploD ~n es equivlente ~{n}F isto permite esriir ms filmente muhs expresionesD prtiulrmente mtemtisD omo veremos ms delnteF PF Argumentos opcionales. n enerrdos en prntesis udrdosF istos rgumentos son omitilesD doumentlssIPptFFF F dijimos que doumentlss{rtile} es eptleD y que gener un tmo de letr de IHptF n rgumento en prntesis udrdos es un opin que modi( l deisin defult del ompildor @en este soD lo olig usr IPpt en vez de sus instintivos IHptAF 3.3.10. Ttulo. n ttulo se gener onX
title{n reve introdui9on} uthor{9{i}tor wu~noz} dte{QH de tunio de IWWV} mketitle titleD uthor y dte pueden ir en ulquier prte @inluyendo el premuloA ntes de mketitleF mketitle dee estr despus de egin{doument}F hependiendo de nuesE

trs neesiddesD tenemos ls siguientes lterntivsX A in ttuloX


title{}

A in utorX
uthor{}

A in fehX

TT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

dte{}

dA peh tul @en inglsAX omitir dteF eA ws de un utorX


uthor{eutorI nd eutorP nd eutorQ}
A r rtulos ortosD vi olo el ttulo en l prte superior de l primer pgin del textoF r rtulos lrgosD en un pgin seprdF

3.3.11. Secciones. vos ttulos de ls distints seiones y suseiones de un doumento @numerdos deE udmenteD en negritD omo en este textoA se genern on omndos de l formX
setion{n sei9on} susetion{n susei9on}

vos omndos disponiles son @en orden dereiente de importniAX


prt hpter setion sususetionF hpter susetion sususetion prgrph suprgrph

vos

ms

usdos

son hpterD setionD susetion slo est disponile en los estilos report y ookF

3.3.12. Listas. vos dos modos usules de generr listsX A vists numerds @miente enumerteAX
1. Nivel 1, tem 1. 2. Nivel 1, tem 2.

a ) Nivel 2, tem 1.
1) Nivel 3, tem 1. 3. Nivel 1, tem 3.

\begin{enumerate} \item Nivel 1, \'{\i}tem \item Nivel 1, \'{\i}tem \begin{enumerate} \item Nivel 2, \'{\i}tem \begin{enumerate} \item Nivel 3, \'{\i}tem \end{enumerate} \end{enumerate} \item Nivel 1, \'{\i}tem \end{enumerate}

1. 2. 1. 1. 3.

3.3.

INPUT BSICO.

TU
\begin{itemize} \item Nivel 1, {\'\i}tem \item Nivel 1, {\'\i}tem \begin{itemize} \item Nivel 2, {\'\i}tem \begin{itemize} \item Nivel 3, {\'\i}tem \end{itemize} \end{itemize} \item Nivel 1, {\'\i}tem \end{itemize}

A vists no numerds @miente itemizeAX


Nivel 1, tem 1. Nivel 1, tem 2.

1. 2. 1. 1. 3.

Nivel 2, tem 1.

Nivel 3, tem 1.

Nivel 1, tem 3.

is posile nidr hst tres niveles de listsF gd uno us tipos distintos de rtulosD segn el miente usdoX nmeros resD letrs y nmeros romnos pr enumerteD y puntosD guiones y sterisos pr itemizeF vos rtulos son generdos utomtimente por d itemD pero es posile modi(rlos gregndo un prmetro opionlX
a) Nivel 1, tem 1. b) Nivel 1, tem 2.

\begin{enumerate} \item[a)] Nivel 1, \'{\i}tem 1. \item[b)] Nivel 1, \'{\i}tem 2. \end{enumerate}

item es lo primero que dee preer despus de un egin{enumerte} o egin{itemize}F

3.3.13. Tipos de letras.


Fonts.
A vos fonts disponiles por defult en vi sonX romn italic

boldface
sans serif

Small Caps

slanted

typewriter

vos siguientes modos de mir fonts son equivlentesX texto {rm texto} textrm{texto}
texto
texto

texto

texto

Texto

texto

{f {sf {it {sl {s {tt

texto} texto} texto} texto} exto} texto}

textf{texto} textsf{texto} textit{texto} textsl{texto} texts{texto} texttt{texto}

TV
rm

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

es el defult pr texto normlY it es el defult pr texto enftizdoY f es el defult pr ttulos de ptulosD seionesD suseionesD etF textrmD textfD etFD slo permiten mir poriones de(nids del textoD ontenido entre los prntesis ursivosF gon rmD fD etF podemosD omitiendo los prntesisD mir el font en todo el texto posteriorX
Un cambio

min es posile tener ominiones de estos fontsD por ejemploD bold italicD pero no sirven los omndos nterioresD sino versiones modi(ds de rmD fD etFX
rmfmily sffmily ttfmily mdseries fseries upshpe itshpe slshpe sshpe

global, interminable e innito. . .

local de fonts y uno

Un cambio {\sf local} de fonts \sl y uno global, interminable e infinito...

or ejemploX
texto

Texto texto
texto

texto

{fseriesitshpe texto} {fseriesupshpe texto} @= {f texto}A {ttfmilysshpe texto} {sffmilyfseries texto} {sffmilymdseries texto} @= {sf texto}A

fmily @que distingue entre rmD sf y ttAD series @que distingue entre md y fAD y shpe @que distingue entre upD itD sl y sAF gd uno de los omndos rmfmilyD fseriesD etFD

r entender el uso de estos omndos hy que onsiderr que un font tiene tres atributos X

mi slo uno de estos triutosF illo permite tener versiones mixts de los fontsD omo un slanted sans serifD imposile de otener usndo los omndos sl y sfF vos defults pr el texto usul sonX rmfmilyD mdseries y upshpeF
Tamao.

vos tmos de letrs disponiles sonX

3.3.

INPUT BSICO.

TW
~o ao F o u o

v o o o o  r o o d o F oo t{oo} o o r o o gudro QFIX eentosF dg oe l ddg yi v e ss ei opyright c textirled ee 3 2 textvisilespe o pounds y gudro QFPX molos espeiles y rteres no inglesesF
9o o o 4o
texto

o o  o

tiny sriptsize footnotesize smll

texto
texto
texto

normlsize lrge vrge

texto

veqi huge ruge

texto
texto

texto texto

texto

e usn igul que los omndos de mio de font rmD sfD etFD de l sein QFQFIQF normlsize es el defult pr texto normlY sriptsize pr su o suprndiesY footnotesize pr nots pie de pginF
3.3.14. Acentos y smbolos. A vi provee diversos tipos de entosD que se muestrn en l l QFI @omo ejemplo onsidermos l letr oD pero ulquier es posileD por supuestoAF @remos usdo el heho de que undo el rgumento de un omndo onst de un rterD ls llves son omitilesFA ytros smolos espeiles y rteres no ingleses disponiles se enuentrn en l l QFPF 3.3.15. Escritura de textos en castellano. A vi emple slo los rteres egss siosD que no ontienen smolos stellnos omo D D D etF hemos visto que existen omndos que permiten imprimir estos rteresD

UH

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

y por tnto es posile esriir ulquier texto en stellno @y otros idiomsD de hehoAF in emrgoD esto no resuelve todo el prolemD porque en ingls y stellno ls plrs se ortn en sls de uerdo regls distintsD y esto es relevnte undo se dee ortr el A texto en lnesF vi tiene inorpordos lgoritmos pr ortr plrs en ingls yD si se h A heho un instlin espeil de vi en nuestro omputdorD tmin en stellno u otros A idioms @ trvs del progrm babelD que es prte de l distriuin stndrd de vi PAF in un omputdor on el instldo y on(gurdo pr ortr en stellno st inluir el omndo usepkgespnish{el} en el premulo pr poder esriir en stellno ortndo ls plrs en sls orretmenteF3 A in emrgoD osionlmente vi se enuentr on un plr que no se ortrD en uyo so no lo intent y permite que ell se slg del mrgen dereho del textoD o ien A tom deisiones no ptimsF v soluin es sugerirle vi l silin de l plrF or ejemploD si l plr on)itiv es mtem9tis @generlmente hy prolems on ls plrs entudsAD entones st on reesriirl en l formX mEteEm9EtiEsF A gon estoD le indimos vi en qu puntos es posile ortr l plrF il omndo E no tiene ningn otro efetoD de modo que si l plr en uestin no qued l (nl de l lneD A vi por supuesto ignor nuestr sugereni y no l ortF gonsideremos el siguiente ejemploX
Podemos escribir matemticas. O matemticas.

Podemos escribir matem\'aticas. O matem\'aticas. Podemos escribir ma\-te\-m\'a\-ti\-cas. O ma\-te\-m\'a\-ti\-cas.

Podemos

escribir

matemti-

cas. O matemticas.

A in el primer soD vi deidi por s mismo dnde ortr mtemtisF gomo es un plr entud tuvo prolems y no lo hizo muy ienD pues qued demsido espio A entre plrs en es lneF in el segundo prrfo le sugerimos l silin y vi pudo tomr un deisin ms stisftoriF in el mismo prrfoD l segund plr mtemtis tmin tiene sugerenis de orteD pero omo no qued l (nl de lne no fueron tomds en uentF

3.4. Frmulas matemticas.


remos meniondo tres forms de ingresr l modo mtemtioX 6FFF6 @frmuls dentro del textoAD 66FFF66 @frmuls seprds del textoD no numerdsA y egin{eqution} FFF end{eqution} @frmuls seprds del textoD numerdsAF vos omndos que revisremos en est sein slo pueden preer dentro del modo mtemtioF
3 Esto resuelve tambin otro problema: los encabezados de captulos o ndices, por ejemplo, son escritos
Captulo e ndice, en vez de Chapter e Index, y cuando se usa el comando castellano.

\date,

la fecha aparece en

3.4.

FRMULAS MATEMTICAS.

UI

3.4.1. Sub y suprandices.


x2y x2y

@ x{yP}A xy xyI @ xIyA 1 @ x{yI}A textsupersript permite otener suprndies fuer del modo mtemtioX
x{Py} x{Py}
xy xy1
2

x{y{P}} x{y{I}}

La 3

a es la vencida.

La 3\textsuperscript{a} es la vencida.

3.4.2. Fracciones. A rorizontles


n/2 nGP

A ertiles
1 2 x= y + z/2 y2 + 1 x+y y 1 + z+1

fr{I}{P}, fr I{P}, fr{I}P x a fr{y C zGP}{yPCI} fr{xCy}{I C fr y{zCI}}

fr

IP

v form A es ms deud y l preferid pr friones dentro del textoD y l seE 1 gund pr frmuls seprdsF fr puede preer en frmuls dentro del texto @ 2 on 6fr IP6AD pero esto es inusul y poo reomendle esttimenteD slvo estrit neesiE ddF
3.4.3. Races.
n

sqrt{n}

sqrt n

a2 + b 2 n 2

sqrt{P C P} sqrtn{P}

3.4.4. Puntos suspensivos. A . . . ldots r frmuls omo


a1 a2 . . . an

I P ldots n

UP A

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

dots

intre smolos omo +D D = X


x1 + + xn

xI C dots C xn

FFF

vdots
x1 xn

FFF

dA

FFF

ddots
1 0 0 0 1 0 = F F F F FFF FF 0 0 ... 1

Inn

ldots

puede ser usdo tmin en el texto usulX


Arturo quiso salir\ldots pero se detuvo.

Arturo quiso salir. . . pero se detuvo.

xo orresponde usr tres puntos seguidos @FFFAD pues el espido entre puntos es inorretoF
3.4.5. Letras griegas. vs letrs griegs se otienen simplemente esriiendo el nomre de dih letr @en inglsAX gmmF r l mysul orrespondiente se esrie l primer letr on mysulX qmmF v list omplet se enuentr en l l QFQF4 xo existen smolos pr D D D etF mysulsD pues orresponden letrs romns @AD B D E D etFAF
4 Un ejemplo del uso de variantes de letras griegas, en el idioma griego
nombre Jos, sera algo como Josu en griego:

se usa dentro de una palabra y

se usa al nalizar una palabra. El nombre Felipe en griego, es Felips, y se escribe de la forma:

o .

El

Io o

la palabra Fsica:

3.4.

FRMULAS MATEMTICAS.

UQ
Minsculas
o

lph et gmm delt epsilon vrepsilon zet et

thet vrthet iot kpp lmd mu nu xi

o pi vrpi rho vrrho sigm vrsigm

tu upsilon phi vrphi hi psi omeg

Maysculas
qmm helt het vmd i i igm psilon hi si ymeg

gudro QFQX vetrs griegsF


3.4.6. Letras caligrcas. vetrs ligr(s mysuls AD BD F F F D Z se otienen on lF l se us igul que los otros omndos de mio de font @rmD itD etFAF
F una F(x) > 0.
Sea funcin con

Sea $\cal F$ una funci\'on con ${\cal F}(x) > 0$.

xo son neesrios los prntesis ursivos l primer vez que se usn en este ejemploD porque el efeto de l est delimitdo por los 6F
3.4.7. Smbolos matemticos. A vi proporion un grn vriedd de smolos mtemtios @ls QFRD QFSD QFTD QFUAF v negin de ulquier smolo mtemtio se otiene on notX
x<y aM

x \not < y a \not \in {\cal M}

xotemosD sD en l l QFSD que existe el smolo = @neqAF elgunos smolos tienen tmo vrileD segn prezn en el texto o en frmuls seprds del textoF e muestrn en l l QFVF istos smolos pueden tener ndies que se esrien omo su o suprndiesF xuevmenteD l uiin de estos ndies depende de si l frmul est dentro del texto o seprd de lX

UR

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

pm mp times div st str ir ullet dot

p up uplus sqp squp lor lnd \ setminus wr

dimond igtringleup igtringledown tringleleft tringleright igir dgger ddgger mlg

oplus ominus otimes oslsh odot

gudro QFRX molos de operiones inrisF

leq pre preeq ll suset suseteq smile frown vdsh

geq su sueq gg supset supseteq sqsuseteq in dshv

equiv sim simeq symp pprox ong = sqsupseteq ni

|= models perp | mid prllel owtie = neq . = doteq propto

gudro QFSX molos relionlesF


gets veftrrow to ightrrow veftrightrrow mpsto hookleftrrow lefthrpoonup lefthrpoondown rightlefthrpoons

= =

longleftrrow vongleftrrow longrightrrow vongrightrrow vongleftrightrrow longmpsto hookrightrrow righthrpoonup righthrpoondown

uprrow prrow downrrow hownrrow pdownrrow nerrow serrow swrrow nwrrow

gudro QFTX plehs

3.4.

FRMULAS MATEMTICAS.

US

leph hr imth jmth ell wp e sm

prime emptyset nl surd top ot | ngle

forll exists lnot flt nturl shrp \ kslsh prtil

infty tringle lusuit dimondsuit hertsuit spdesuit

gudro QFUX molos vriosF

sum prod oprod int oint

igp igup iguplus igvee igwedge

igsqup igodot igotimes igoplus

gudro QFVX molos de tmo vrileF

UT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

ros rsin rtn rg

os osh ot oth

s deg det dim

exp gd hom inf

ker lg lim liminf

limsup ln log mx

min r se sin

sinh sup tn tnh

gudro QFWX puniones tipo logritmo


n 1

xi =
i=1 n i=1 xi 0

f =
1 0 f

$$\sum_{i=1}^n x_i = \int_0^1 f $$ $\sum_{i=1}^n x_i = \int_0^1 f $

3.4.8. Funciones tipo logaritmo. yservemos l difereni entre ests dos expresionesX
x = logy x = log y

$x = log y$ $x = \log y$

A in el primer so vi esrie el produto de utro ntiddesD lD oD g e yF in el segundoD represent orretmente nuestro deseoX el logritmo de yF odos los omndos de l l QFW genern el nomre de l funin orrespondienteD en letrs romnsF elguns de ests funiones pueden tener ndiesX
n

l xn = 0 m

$$\lim_{n\to\infty} x_n = 0 $$ $\lim_{n\to\infty} x_n = 0 $

l n xn = 0 m

3.4.9. Matrices.
Ambiente rry.

e onstruyen on el miente rryF gonsideremosD por ejemploX


a + b + c uv 27 a+b u+v 134 a 3u + vw 2.978

v primer olumn est lined l entro @D enterAY l segundD l izquierd @lD leftAY l tererD l dereh @rD rightAF rry tiene un rgumento oligtorioD que onst de tnts letrs omo olumns teng l mtrizD letrs que pueden ser D l o r segn l linein que quermos otenerF ilementos onseutivos de l mism lne se seprn on 8 y lnes onseutivs se seprn on F esD el ejemplo nterior se otiene onX

3.4.

FRMULAS MATEMTICAS.

UU
uprrow downrrow updownrrow prrow hownrrow pdownrrow

( @ [ { { lfloor leil lngle / G | |

) A ] } } rfloor reil rngle \ kslsh |

gudro QFIHX helimitdores


egin{rry}{lr} CC 8 uv 8 PU C 8 u C v 8 IQR 8 QuCvw 8 PFWUV end{rry}

Delimitadores.

n delimitdor es ulquier smolo que te omo un prntesisD enerrndo un exE presinD preiendo l izquierd y l dereh de ellF v l QFIH muestr todos los delimitdores posilesF r que los delimitdores tengn el tmo orreto pr enerrr l expresin orresponE diente hy que nteponerles left y rightF odemos otener s expresiones mtriilesX
a b c d

\left(\begin{array}{cc} a&b\\ c&d \end{array}\right) v = \left(\begin{array}{c} 1\\ 2\\ 3 \end{array}\right) \Delta = \left|\begin{array}{cc} a_{11} & a_{12}\\ a_{21} & a_{22} \end{array}\right|

1 v= 2 3

a11 a12 a21 a22

mismosX

left

y right deen ir de presD pero los delimitdores no tienen por qu ser los

UV

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

a b

\left(\begin{array}{c} a\\ b \end{array}\right[

mpoo es neesrio que los delimitdores enierren mtriesF gompremosD por ejemploX
(A + B) = ( dF )x=a dx dF dx

(\vec A + \vec B) = ( \frac{d \vec F}{dx} )_{x=a} \left(\vec A + \vec B\right) = \left( \frac{d \vec F}{dx} \right)_{x=a}

A+B =

x=a

il segundo ejemplo es muho ms deudo esttimenteF elguns expresiones requieren slo un delimitdorD l izquierd o l derehF n punto @FA represent un delimitdor invisileF vos siguientes ejemplos son tpiosX
b a

df dx = f (x) dx

b a

\left. \int_a^b dx \frac{df}{dx} = f(x) \right |_a^b f(x) = \left\{ \begin{array}{cl} 0 & x<0 \\ 1 & x>0 \end{array} \right.

f (x) =

0 x<0 1 x>0

Frmulas de ms de una lnea.


eqnrry ofree un equtionA equivlente

mner de ingresr modo mtemtio @en reemplzo de 6D 66 o un rry on rgumentos {rl}X


\begin{eqnarray*} x& = & a + b + c +\\ && d + e \end{eqnarray*}

x = a+b+c+ d+e

il steriso impide que prezn nmeros en ls euionesF i desemos que numere d lne omo un euin independienteD st omitir el sterisoX
x = 5 a + b = 60
(3.2) (3.3)

\begin{eqnarray} x& = & 5 \\ a + b&= & 60 \end{eqnarray}

3.4.

FRMULAS MATEMTICAS.

UW
a r a ve a dot a ddot

a ht a hek a reve

a ute a grve ` a tilde

gudro QFIIX eentos mtemtios i queremos que solmente lguns lnes prezn numerdsD usmos nonumerX
x = a+b+c+ d+e
(3.4)

il omndo eqnrry es su(iente pr neesiddes senillsD pero undo se requiere esriir mtemti de modo intensivo sus limitiones omienzn ser evidentesF el greE gr l premulo de nuestro doumento l lne usepkge{msmth} quedn disponiles muhos omndos muho ms tiles pr textos mtemtios ms seriosD omo el miente equtionBD splitD multline o intertextF in l sein QFVFP se enuentr un desripE in de estos y otros omndosF
3.4.10. Acentos. hentro de un frmul pueden preer un serie de entosD nlogos los de texto usul @l QFIIAF vs letrs i y j deen perder el punto undo son entudsX i es inorretoF hee ser F imth y jmth genern ls versiones sin punto de ests letrsX
+

\begin{eqnarray} x& = & a + b + c + \nonumber\\ && d + e \end{eqnarray}

\vec \imath + \hat \jmath

3.4.11. Texto en modo matemtico. r insertr texto dentro de modo mtemtio emplemos moxX
Vcrtico
3.8.2).

V_{\mbox{\scriptsize cr\'{\i}tico}} \text,


disponible a travs de

Bastante ms ptimo es utilizar el comando

amsmath

(seccin

3.4.12. Espaciado en modo matemtico.


T X ignora los espacios que uno escribe en las frmulas y los determina de acuerdo a sus propios E criterios. A veces es necesario ayudarlo para hacer ajustes nos. Hay cuatro comandos que agregan

VH

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

pequeos espacios dentro de modo matemtico:

\, \!

espacio pequeo espacio pequeo (negativo)

\: \;

espacio medio espacio grueso

Algunos ejemplos de su uso:

2x n/log n f dx
entre idea.

\sqrt 2 \, x n / \!\log n \int f \, dx

en vez de en vez de en vez de

2x n/ log n f dx f, d
y

El ltimo caso es quizs el ms frecuente, por cuanto la no insercin del pequeo espacio adicional

dx

hace aparecer el integrando como el producto de tres variables,

x,

que no es la

3.4.13. Fonts.
Anlogamente a los comandos para texto usual (Sec. 3.3.13), es posible cambiar los fonts dentro del modo matemtico:

(A, x) (A, x) (A, B) (A, x) (A, x) (A, x) (A, x )


(Recordemos que la letras tipo

\mathrm{(A,x)} \mathnormal{(A,x)} \mathcal{(A,B)} \mathbf{(A,x)} \mathsf{(A,x)} \mathtt{(A,x)} \mathit{(A,x)}


slo existen en maysculas.)

\cal

Las declaraciones anteriores permiten cambiar los fonts de letras, dgitos y acentos, pero no de los otros smbolos matemticos:

A1

\mathbf{\tilde A \times 1}

Como en todo ambiente matemtico, los espacios entre caracteres son ignorados:

Hola
Finalmente, observemos que

\mathrm{H o l a} \mathit
corresponde al font itlico, en tanto que

\mathnormal

al

font matemtico usual, que es tambin itlico. . . o casi:

dif f erent dif f erent dierent


dierent

$different$ $\mathnormal{different}$ $\mathit{different}$ \textit{different}

3.5.

TABLAS.

VI

3.5. Tablas.
array nos permiti construir matrices en modo matemtico. Para tablas de texto existe tabular,
que funciona de la misma manera. Puede ser usado tanto en modo matemtico como fuera de l.

Nombre Edad Profesin

: : :

Juan Prez 26 Estudiante

\begin{tabular}{lcl} Nombre&:&Juan P\'erez\\ Edad&:&26\\ Profesi\'on&:&Estudiante \end{tabular} tabular,


y

Si deseamos agregar lneas verticales y horizontales para ayudar a la lectura, lo hacemos insertando tabla:

en los puntos apropiados del argumento de

\hline

al nal de cada lnea de la

Item Vasos Botellas Platos Total

Gastos $ 500 $ 1300 $ 500 $ 2300

\begin{tabular}{|l|r|}\hline Item&Gastos\\ \hline Vasos& \$ 500 \\ Botellas & \$ 1300 \\ Platos & \$ 500 \\ \hline Total& \$ 2300 \\ \hline \end{tabular}

3.6. Referencias cruzadas.


Ecuaciones, secciones, captulos y pginas son entidades que van numeradas y a las cuales podemos querer referirnos en el texto. Evidentemente no es ptimo escribir explcitamente el nmero correspondiente, pues la insercin de una nueva ecuacin, captulo, etc., su eliminacin o cambio de orden del texto podra alterar la numeracin, obligndonos a modicar estos nmeros dispersos en el texto. Mucho mejor es referirse a ellos de modo simblico y dejar que T X inserte por nosotros E los nmeros. Lo hacemos con La ecuacin de Euler

\label

\ref.

ei + 1 = 0

(3.5)

rene los nmeros ms importantes. La ecuacin (3.5) es famosa.

La ecuaci\'on de Euler \begin{equation} \label{euler} e^{i\pi} + 1 = 0 \end{equation} re\'une los n\'umeros m\'as importantes. La ecuaci\'on (\ref{euler}) es famosa. \ref)
es una etiqueta simblica. Ella puede ser etiquetas vlidas y distintas.

El argumento de diferentes. As, Podemos usar

\label

(reiterado luego en

cualquier secuencia de letras, dgitos o signos de puntuacin. Letras maysculas y minsculas son

euler, eq:euler, euler_1, euler1, Euler, etc., son \label dentro de equation, eqnarray y enumerate.

VP

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Tambin podemos referenciar pginas con Ver pgina 82 para ms detalles.

\pageref: Ver p\'agina \pageref{significado} para m\'as detalles. ... El significado \label{significado} de la vida... aux
(auxiliar) generado

[Texto en pg. 82]


El signicado de la vida. . .

A L T X puede dar cuenta de las referencias cruzadas gracias al archivo E


durante la compilacin. Al compilar por primera vez el archivo, en el archivo

A encontrados. Al compilar por segunda vez, L T X lee el archivo E

dvi.

(En realidad, tambin lo hizo la primera vez que

aux es escrita la informacin de los \label aux e incorpora esa informacin al se compil el archivo, pero el aux no exista

entonces o no tena informacin til.) Por tanto, para obtener las referencias correctas hay que compilar dos veces, una para generar el

aux

correcto, otra para poner la informacin en el

dvi.

Toda modicacin en la numeracin

tendr efecto slo despus de compilar dos veces ms. Por cierto, no es necesario preocuparse de estos detalles a cada momento. Seguramente compilaremos muchas veces el archivo antes de tener la

A versin nal. En todo caso, L T X avisa, tras cada compilacin, si hay referencias inexistentes u otras E
que pudieron haber cambiado, y sugiere compilar de nuevo para obtener las referencias correctas. (Ver Sec. 3.14.2.)

3.7. Texto centrado o alineado a un costado.


Los ambientes a los mrgenes.

center, flushleft y flushright permiten forzar la ubicacin del texto respecto Lneas consecutivas se separan con \\:
otra

Una lnea centrada, y otra ms. Ahora el texto contina alineado a la izquierda y nalmente dos lneas alineadas a la derecha.

\begin{center} Una l\'{\i}nea centrada,\\ otra\\ y otra m\'as. \end{center} Ahora el texto contin\'ua \begin{flushleft} alineado a la izquierda \end{flushleft} y finalmente \begin{flushright} dos l\'{\i}neas\\ alineadas a la derecha. \end{flushright}

3.8.

ALGUNAS HERRAMIENTAS IMPORTANTES

VQ

3.8. Algunas herramientas importantes


A embargo, stos, junto con el resto de los comandos bsicos de L T X, se vuelven insucientes cuando E
se trata de ciertas aplicaciones demasiado especcas, pero no inimaginables: si queremos escribir un

A Hasta ahora hemos mencionado escencialmente comandos disponibles en L T X standard. Sin E

A texto de alta matemtica, o usar L T X para escribir partituras, o para escribir un archivo E

A teclado croata. . . . Es posible que con los comandos usuales L T X responda a las necesidades, pero E

.tex en un

seguramente ello ser a un costo grande de esfuerzo por parte del autor del texto. Por esta razn,

A las distribuciones modernas de L T X incorporan una serie de extensiones que hacen la vida un poco E
ms fcil a los eventuales autores. En esta seccin mencionaremos algunas extensiones muy tiles. Muchas otras no estn cubiertas, y se sugiere al lector consultar la documentacin de su distribucin para saber qu otros paquetes se encuentran disponibles.

A En general, las extensiones a L T X vienen contenidas en paquetes (packages , en ingls), en E


archivos en el archivo

.sty. As, cuando mencionemos el paquete amsmath, nos referimos a caractersticas disponibles amsmath.sty. Para que los comandos de un paquete <package>.sty estn disponibles,

deben ser cargados durante la compilacin, incluyendo en el prembulo del documento la lnea:

\usepackage{<package>}
Si se requiere cargar ms de un paquete adicional, se puede hacer de dos formas:

\usepackage{<package1>,<package2>}
o

\usepackage{<package1>} \usepackage{<package2>}
Algunos paquetes aceptan opciones adicionales (del mismo modo que la clase opcin

12pt):

article

acepta la

\usepackage[option1,option2]{<package1>}
Revisemos ahora algunos paquetes tiles.

3.8.1. babel
Permite el procesamiento de textos en idiomas distintos del ingls. Esto signica, entre otras cosas, que se incorporan los patrones de silabacin correctos para dicho idioma, para cortar adecuadamente las palabras al nal de cada lnea. Adems, palabras claves como Chapter, Index, List of Figures, etc., y la fecha dada por

A escogido. La variedad de idiomas disponibles es enorme, pero cada instalacin de L T X tiene sE


lo algunos de ellos incorporados. (sta es una decisin que toma el administrador del sistema, de acuerdo a las necesidades de los usuarios. Una conguracin usual puede ser habilitar la compilacin en ingls, castellano, alemn y francs.) Ya sabemos como usar

\date,

son cambiadas a sus equivalentes en el idioma

babel

para escribir en castellano: basta incluir en el prembulo la lnea

\usepackage[spanish]{babel}

VR

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

A 3.8.2. AMS-L TEX


El paquete

amsmath

permite agregar comandos para escritura de textos matemticos profe-

sionales, desarrollados originalmente por la American Mathematical Society. Si un texto contiene abundante matemtica, entonces seguramente incluir la lnea correspondiente en el prembulo:

\usepackage{amsmath}
aliviar mucho la tarea. He aqu algunas de las caractersticas adicionales disponibles con

A L T X. E

AMS-

Ambientes para ecuaciones


Con

equation*

generamos una ecuacin separada del texto, no numerada:

x = 2y 3

\begin{equation*} x = 2y - 3 \end{equation*}

multline permite dividir una ecuacin muy larga en varias lneas, de modo que la primera lnea
quede alineada con el margen izquierdo, y la ltima con el margen derecho:

15

= 1 + 2 + 3 + 4 + 5+
i=1

6 + 7 + 8 + 9 + 10+ 11 + 12 + 13 + 14 + 15
(3.6)

\begin{multline} \sum_{i=1}^{15} = 1 +2+3+4+5+\\ 6+7+8+9+10+\\ 11+12+13+14+15 \end{multline} &,


igual que la

align

permite reunir un grupo de ecuaciones consecutivas alinendolas (usando

alineacin vertical de

tabular

array). gather

hace lo mismo, pero centrando cada ecuacin en la

pgina independientemente.

a1 = b1 + c1 a2 = b2 + c2 d2 + e2

(3.7) (3.8)

\begin{align} a_1 &= b_1 + c_1 \\ a_2 &= b_2 + c_2 - d_2 + e_2 \end{align} \begin{gather} a_1 = b_1 + c_1 \\ a_2 = b_2 + c_2 - d_2 + e_2 \end{gather}

a1 = b1 + c1 a2 = b2 + c2 d2 + e2

(3.9) (3.10)

Con

multline*, align*

gather*

se obtienen los mismos resultados, pero con ecuaciones no

numeradas.

3.8.

ALGUNAS HERRAMIENTAS IMPORTANTES

VS
multline),
pero permite

split align
o

permite escribir una sola ecuacin separada en lneas (como (o sus equivalentes con asterisco):

alinear las lneas con

gather

& (como align). split debe ser usado dentro de un ambiente como equation,

a1 = b1 + c1 = b2 + c2 d2 + e2

(3.11)

\begin{equation} \begin{split} a_1& = b_1 + c_1 \\ & = b_2 + c_2 - d_2 + e_2 \end{split} \end{equation}

Espacio horizontal
\quad
y

\qquad

insertan espacio horizontal en ecuaciones:

x>y , xz ,

x A z B

\begin{gather*} x > y \ , \quad \forall\, x \in A \\ x \leq z \ , \qquad \forall\, z \in B \end{gather*}

Texto en ecuaciones
Para agregar texto a una ecuacin, usamos

\text: \begin{equation*} x = 2^n - 1 \ , \quad \text{con $n$ entero} \end{equation*}

x = 2n 1 ,

con

entero

\text
Vcrtico

se comporta como un buen objeto matemtico, y por tanto se pueden agregar subndices

textuales ms fcilmente que con

\mbox

(ver seccin 3.4.11):

$V_{\text{cr\'{\i}tico}}$

Referencia a ecuaciones
\eqref
ler. es equivalente a

\ref,

salvo que agrega los parntesis automticamente:

La ecuacin (3.5) era la de Eu-

La ecuaci\'on \eqref{euler} era la de Euler.

Ecuaciones con casos


sta es una construccin usual en matemticas:

VT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

f (x) =

1 0

si si

x<0 x>0

f(x)= \begin{cases} 1&\text{si $x<0$} \\ 0&\text{si $x>0$} \end{cases}

Notar cmo es ms simple que el ejemplo con los comandos convencionales en la seccin 3.4.9.

Texto insertado entre ecuaciones alineadas


Otra situacin usual es insertar texto entre ecuaciones alineadas, preservando la alineacin:

x1 = a + b + c , x2 = d + e ,
y por otra parte

x3 = f + g + h .

\begin{align*} x_1 &= a + b + c \ , \\ x_2 &= d + e \ , \\ \intertext{y por otra parte} x_3 &= f + g + h \ . \end{align*}

Matrices y coecientes binomiales


La complicada construccin de matrices usando ambientes como

pmatrix
a b c d

vmatrix,

y comandos como

array (seccin \binom.

3.4.9), se puede reemplazar con

\begin{pmatrix} a&b\\ c&d \end{pmatrix} \Delta = \begin{vmatrix} a_{11} & a_{12}\\ a_{21} & a_{22} \end{vmatrix} v = \binom{k}{2}

a a = 11 12 a21 a22 k 2

v=

Podemos observar que el espaciado entre los parntesis y el resto de la frmula es ms adecuado que el de los ejemplos en la seccin 3.4.9.

Flechas extensibles
Las echas en la tabla 3.6 vienen en ciertos tamaos predenidos. tensibles

\xleftarrow y \xrightarrow, para ajustar sub o superndices demasiado anchos. Adems,

amsmath proporciona echas ex-

tienen un argumento opcional y uno obligatorio, para colocar material sobre o bajo ellas:

3.8.

ALGUNAS HERRAMIENTAS IMPORTANTES

VU
U

A B C D
T

n+1

ni1

A \xleftarrow{n+\mu-1} B \xrightarrow[T]{n\pm i-1} C \xrightarrow[U]{} D

Uso del paquete mssym


Este paquete contiene smbolos matemticos muy estticos a la hora de referirse a los conjuntos de nmeros:

C R Z

\mathbb{C} \mathbb{R} \mathbb{Z}

para los nmeros complejos para los nmeros reales para los nmeros enteros

I Q N

\mathbb{I} \mathbb{Q} \mathbb{N}

para los nmeros imaginarios para los nmeros racionales para los nmeros naturales

Otro smbolo interesante es:

(\therefore)

para por lo tanto.

3.8.3. fontenc
A Ocasionalmente, L T X tiene problemas al separar una palabra en slabas. Tpicamente, eso E
ocurre con palabras acentuadas, pues, debido a la estructura interna del programa, un carcter como la  en matemticas no es tratado igual que los otros. Para solucionar el problema, y poder cortar en slabas palabras que contengan letras acentuadas (adems de acceder a algunos caracteres adicionales), basta incluir el paquete

fontenc:

\usepackage[T1]{fontenc}
Tcnicamente, lo que ocurre es que la codicacin antigua para fonts es la

OT1,

que no contiene

fonts acentuados, y que por lo tanto es til slo para textos en ingls. La codicacin otro.

T1 aumenta los

fonts disponibles, permitiendo que los caracteres acentuados sean tratados en igual pie que cualquier

3.8.4. enumerate
enumerate.sty
dene una muy conveniente extensin al ambiente

enumerate

A de L T X. El coE

mando se usa igual que siempre (ver seccin 3.3.12), con un argumento opcional que determina el tipo de etiqueta que se usar para la lista. Por ejemplo, si queremos que en vez de nmeros se usen letras maysculas, basta usar A Primer tem. B Segundo tem. Si queremos etiquetas de la forma 1.-, 1.- Primer tem. 2.- Segundo tem.

\begin{enumerate}[A]:

\begin{enumerate}[1.-]:

VV

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Si deseamos insertar un texto que no cambie de una etiqueta a otra, hay que encerrarlo entre parntesis cursivos (\begin{enumerate}[{Caso} Caso A: Primer tem. Caso B: Segundo tem.

A:]):

3.8.5. Color.
A A travs de PostScript es posible introducir color en documentos L T X. Para ello, incluimos en E
el prembulo el paquete

color.sty:

\usepackage{color}
De este modo, est disponible el comando

\color,

que permite especicar un color, ya sea por

nombre (en el caso de algunos colores predenidos), por su cdigo

cmyk

rgb

(red-green-blue) o cdigo

(cian-magenta-yellow-black). Por ejemplo:

Un texto en azul Un texto en un segundo color Un texto en un tercer color

Un texto en {\color{blue} azul} Un texto en un {\color[rgb]{1,0,1} segundo color} Un texto en un {\color[cmyk]{.3,.5,.75,0} tercer color}

Los colores ms frecuentes (azul, amarillo, rojo, etc.) se pueden dar por nombre, como en este ejemplo. Si se da el cdigo

rgb, se deben especicar tres nmeros entre 0 y 1, que indican la cantidad cmyk

de rojo, verde y azul que constituyen el color deseado. En el ejemplo, le dimos mxima cantidad de rojo y azul, y nada de verde, con lo cual conseguimos un color violeta. Si se trata del cdigo los nmeros a especicar son cuatro, indicando la cantidad de cian, magenta, amarillo y negro. En el ejemplo anterior pusimos una cantidad arbitraria de cada color, y result un color caf. Es evidente que el uso de los cdigos Observar que

\color

rgb

cmyk

permite explorar innidad de colores.

funciona de modo anlogo a los comandos de cambio de font de la seccin

3.3.13, de modo que si se desea restringir el efecto a una porcin del texto, hay que encerrar dicho texto entre parntesis cursivos. Anlogamente al caso de los fonts, existe el comando que permite dar el texto a colorear como argumento: Un texto en azul Un texto en un segundo color Un texto en un tercer color

\textcolor,

Un texto en \textcolor{blue}{azul} Un texto en un \textcolor[rgb]{1,0,1}{segundo color} Un texto en un \textcolor[cmyk]{.3,.5,.75,0}{tercer color}

3.9.

MODIFICANDO EL ESTILO DE LA PGINA.

VW

3.9. Modicando el estilo de la pgina.


T X toma una serie de decisiones por nosotros. Ocasionalmente nos puede interesar alterar el E comportamiento normal. Disponemos de una serie de comandos para ello, los cuales revisaremos a continuacin. Todos deben aparecer en el prembulo, salvo en los casos que se indique.

3.9.1. Estilos de pgina.


a) Nmeros de pgina. Si se desea que los nmeros de pgina sean arbicos (1, 2, 3. . . ):

\pagenumbering{arabic}
Para nmeros romanos (i, ii, iii,. . . ):

\pagenumbering{roman} arabic
es el default.

b) Estilo de pgina. El comando

\pagestyle

determina dnde queremos que vayan los nmeros de pgina:

\pagestyle{plain}

Nmeros de pgina en el extremo inferior, al centro de la pgina. (Default para estilos

article, report.) \pagestyle{headings}


Nmeros de pgina y otra informacin (ttulo de seccin, etc.) en la parte superior de la pgina. (Default para estilo

book.)

\pagestyle{empty}

Sin nmeros de pgina.

3.9.2. Corte de pginas y lneas.


T X tiene modos internos de decidir cundo cortar una pgina o una lnea. Al preparar la versin E nal de nuestro documento, podemos desear coartar sus decisiones. En todo caso, no hay que hacer esto antes de preparar la versin verdaderamente nal, porque agregar, modicar o quitar texto puede alterar los puntos de corte de lneas y pginas, y los cortes inconvenientes pueden resolverse solos. Los comandos de esta seccin no van en el prembulo, sino en el interior del texto.

WH

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Corte de lneas.
En la pgina 70 ya vimos un ejemplo de induccin de un corte de lnea en un punto deseado del texto, al dividir una palabra en slabas. Cuando el problema no tiene relacin con slabas disponemos de dos comandos:

\newline \linebreak

Corta la lnea y pasa a la siguiente en el punto indicado. Lo mismo, pero justicando la lnea para adecuarla a los mrgenes.

Un corte de lnea no justicado a los mrgenes en curso. Un corte a de los lnea mrgenes

Un corte de l\'{\i}nea\newline no justificado a los m\'argenes en curso. Un corte de l\'{\i}nea\linebreak justificado a los m\'argenes en curso. \linebreak, la separacin entre palabras es

justicado en curso.

Observemos cmo en el segundo caso, en que se usa

alterada para permitir que el texto respete los mrgenes establecidos.

Corte de pginas.
Como para cortar lneas, existe un modo violento y uno sutil:

\newpage \clearpage

Cambia de pgina en el punto indicado. Anlogo a

\newline.

Lo mismo, pero ajustando los espacios verticales en el texto para llenar del mejor modo posible la pgina.

\clearpage,

sin embargo, no siempre tiene efectos visibles. Dependiendo de la cantidad y tipo

de texto que quede en la pgina, los espacios verticales pueden o no ser ajustados, y si no lo son, el resultado termina siendo equivalente a un ptimo. Adicionalmente, tenemos el comando:

\newpage.

T X decide en ltima instancia qu es lo E

\enlargethispage{<longitud>}

Cambia el tamao de la pgina actual en la cantidad

<longitud>.

(Las unidades de longitud que maneja T X se revisan a continuacin.) E

Unidades de longitud y espacios.


a) Unidades.

3.9.

MODIFICANDO EL ESTILO DE LA PGINA.

WI

T X reconoce las siguientes unidades de longitud: E

cm mm in pt em ex

centmetro milmetro pulgada punto (1/72 pulgadas) ancho de una M en el font actual altura de una x en el font actual

Las cuatro primeras unidades son absolutas; las ltimas dos, relativas, dependiendo del tamao del font actualmente en uso. Las longitudes pueden ser nmeros enteros o decimales, positivos o negativos:

1cm
b) Cambio de longitudes.

1.6in

.58pt

-3ex

T X almacena los valores de las longitudes relevantes al texto en comandos especiales: E

\parindent \textwidth \textheight \oddsidemargin \topmargin \baselineskip \parskip


un valor dado, y ejemplo:

Sangra. Ancho del texto. Altura del texto. Margen izquierdo menos 1 pulgada. Margen superior menos 1 pulgada. Distancia entre la base de dos lneas de texto consecutivas. Distancia entre prrafos.

Todas estas variables son modicables con los comandos

\addtolength,

\setlength, que le da a una variable

que le suma a una variable la longitud especicada. Por

\setlength{\parindent}{0.3em} \addtolength{\parskip}{1.5cm}

(\parindent = 0.3 em.) (\parskip =

\parskip

+ 1.5 cm.)

Por default, el ancho y altura del texto, y los mrgenes izquierdo y superior, estn denidos de modo que quede un espacio de una pulgada ( de la pgina. Un problema tpico es querer que el texto llene un mayor porcentaje de la pgina. Por ejemplo, para que el margen del texto en los cuatro costados sea la mitad del default, debemos introducir los comandos:

2.56 cm) entre el borde del texto y el borde

WP

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

\addtolength{\textwidth}{1in} \addtolength{\textheight}{1in} \addtolength{\oddsidemargin}{-.5in} \addtolength{\topmargin}{-.5in}


Las dos primeras lneas aumentan el tamao horizontal y vertical del texto en 1 pulgada. Si luego restamos media pulgada del margen izquierdo y el margen superior, es claro que la distancia entre el texto y los bordes de la pgina sera de media pulgada, como desebamos. c) Espacios verticales y horizontales. Se insertan con

\vspace

\hspace:

\vspace{3cm} \hspace{3cm}

Espacio vertical de 3 cm. Espacio horizontal de 3 cm.

Algunos ejemplos: Un primer prrafo de un pequeo texto.

Un primer p\'arrafo de un peque\~no texto. \vspace{1cm} Y un segundo p\'arrafo separado del otro. Tres\hspace{.5cm}palabras \hspace{.5cm}separadas del resto. \vspace
debiese ser colocado al comienzo

Y un segundo prrafo separado del otro. Tres palabras separadas

del resto.

Si por casualidad el espacio vertical impuesto por

de una pgina, T X lo ignora. Sera molesto visualmente que en algunas pginas el texto E comenzara algunos centmetros ms abajo que en el resto. Lo mismo puede ocurrir si el espacio horizontal de un Los comandos blanco de la

\hspace

queda al comienzo de una lnea.

\vspace*{<longitud>} y \hspace*{<longitud>} permiten que el espacio en <longitud> especicada no sea ignorado. Ello es til cuando invariablemente

queremos ese espacio vertical u horizontal, aunque sea al comienzo de una pgina o una lnea por ejemplo, para insertar una gura.

3.10. Figuras.
A Lo primero que hay que decir en esta seccin es que L T X es un excelente procesador de texto, E
tanto convencional como matemtico. Las guras, sin embargo, son un problema aparte.

\begin{picture}

A L T X provee un ambiente E
y

picture que permite realizar dibujos simples. Dentro de la estructura \end{picture} se pueden colocar una serie de comandos para dibujar lneas,

crculos, valos y echas, as como para posicionar texto. Infortunadamente, el proceso de ejecutar

3.10.

FIGURAS.

WQ
xfig)
que permite superar este problema, pudindose dibujar con el

dibujos sobre un cierto umbral de complejidad puede ser muy tedioso para generarlo directamente. Existe software (por ejemplo, mouse, exportando el resultado al formato

picture

A de L T X. Sin embargo, E

picture

tiene limita-

ciones (no se pueden hacer lneas de pendiente arbitraria), y por tanto no es una solucin ptima. Para obtener guras de buena calidad es imprescindible recurrir a lenguajes grcos externos, y

A L T X da la posibilidad de incluir esos formatos grcos en un documento. De este modo, tanto el E


texto como las guras sern de la ms alta calidad. Las dos mejores soluciones son utilizar Metafont o PostScript. Metafont es un programa con un lenguaje de programacin grco propio. De hecho,

A los propios fonts de L T X fueron creados usando Metafont, y sus capacidades permiten hacer dibujos E
de complejidad arbitraria. Sin embargo, los dibujos resultantes no son trivialmente reescalables, y exige aprender un lenguaje de programacin especco. Una solucin mucho ms verstil, y adoptada como el estndar en la comunidad de usuarios

A de L T X, es el uso de PostScript. Como se mencion brevemente en la seccin 1.17, al imprimir, E


una mquina unix convierte el archivo a formato PostScript, y luego lo enva a la impresora. Pero PostScript sirve ms que para imprimir, siendo un lenguaje de programacin grco completo, con el cual podemos generar imgenes de gran calidad, y reescalables sin prdida de resolucin. Adems, muchos programas grcos permiten exportar sus resultados en formato PostScript. Por lo tanto, podemos generar nuestras guras en alguno de estos programas (xfig es un excelente software, que satisface la mayor parte de nuestras necesidades de dibujos simples; extensin

octave

gnuplot

pueden ser

usados para generar guras provenientes de clculos cientcos, etc.), lo cual crear un archivo con

A documento L T X, a travs del paquete E

.ps

(PostScript) o

.eps

(PostScript encapsulado).

5 Luego introducimos la gura en el

graphicx.

3.10.1. graphicx.sty
Si nuestra gura est en un archivo

figura.eps,

la instruccin a utilizar es:

\documentclass[12pt]{article} \usepackage{graphicx} \begin{document} ... Texto ... \includegraphics[width=w, height=h]{figura.eps} ... \end{document}
Los parmetros

width

height

son opcionales y puede omitirse uno para que el sistema escale

de acuerdo al parmetro dado. Es posible variar la escala completa de la gura o rotarla usando comandos disponibles en

graphicx.

5 eps es el formato preferido, pues contiene informacin sobre las dimensiones de la gura, informacin A que es utilizada por L T X para insertar sta adecuadamente en el texto.
E

WR

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Una gura aqu:

Una figura aqu\'{\i}: \begin{center} \includegraphics[height=3cm]{figura.eps} \end{center} puede hacer m\'as agradable el texto.

puede hacer ms agradable el texto. En este ejemplo, indicamos slo la altura de la gura (3cm). El ancho fue determinado de modo que las proporciones de la gura no fueran alteradas. Si no se especica ni la altura ni el ancho, la gura es insertada con su tamao natural. Observemos tambin que pusimos la gura en un ambiente

center.

Esto no es necesario, pero

normalmente uno desea que las guras estn centradas en el texto.

3.10.2. Ambiente figure.


Insertar una gura es una cosa. Integrarla dentro del texto es otra. Para ello est el ambiente

figure, que permite: (a) posicionar la gura automticamente en un lugar predeterminado o especicado por el usuario; (b) numerar las guras; y (c) agregar un breve texto explicativo junto a la gura. Coloquemos la misma gura de la seccin anterior dentro de un ambiente

figure.

El input:

\begin{figure}[h] \begin{center} \includegraphics[height=3cm]{figura.eps} \end{center} \caption{Un sujeto caminando.} \label{caminando} \end{figure}


da como resultado:

figure delimita lo que en TEX se denomina un objeto

otante, es decir, un objeto cuya posicin

no est determinada a priori, y se ajusta para obtener los mejores resultados posibles. T X considera E (de acuerdo con la tradicin), que la mejor posicin para colocar una gura es al principio o al nal de la pgina. Adems, lo ideal es que cada pgina tenga un cierto nmero mximo de guras, que ninguna gura aparezca en el texto antes de que sea mencionada por primera vez, y que, por supuesto, las guras aparezcan en el orden en que son mencionadas. stas y otras condiciones determinan la posicin que un objeto otante tenga al nal de la compilacin. Uno puede forzar la decisin de

A L T X con el argumento opcional de E

figure:

3.11.

CARTAS.

WS

pigur QFIX n sujeto minndoF


t b h p
(top) (bottom ) (here ) (page of oats ) extremo superior de la pgina extremo inferior de la pgina aqu, en el punto donde est el comando en una pgina separada al nal del texto

El argumento adicional

suprime, para ese objeto otante especco, cualquier restriccin que

exista sobre el nmero mximo de objetos otantes en una pgina y el porcentaje de texto mnimo que debe haber en una pgina. Varios de estos argumentos se pueden colocar simultnemente, su orden dictando la prioridad. Por ejemplo,

\begin{figure}[htbp] ... \end{figure}


indica que la gura se debe colocar como primera prioridad aqu mismo; si ello no es posible, al comienzo de pgina (sta o la siguiente, dependiendo de los detalles de la compilacin), y as sucesivamente. Adems,

figure numera automticamente la gura, colocando el texto Figura N :, y \caption

permite colocar una leyenda, centrada en el texto, a la gura. Puesto que la numeracin es au-

\label y \ref (seccin 3.6). Para que la referencia sea correcta, \label debe estar dentro del argumento de \caption, o despus, como aparece en el ejemplo de la Figura 3.1 (\ref{caminando}!). Finalmente, notemos que la gura debi ser centrada explcitamente con center. figure no hace
tomtica, las guras pueden ser referidas simblicamente con nada ms que tratar la gura como un objeto otante, proporcionar numeracin y leyenda. El resto es responsabilidad del autor.

3.11. Cartas.
Para escribir cartas debemos emplear el estilo ahora,

article.

letter

en vez del que hemos utilizado hasta

Comandos especiales permiten escribir una carta, poniendo en lugares adecuados

la direccin del remitente, la fecha, la rma, etc. A modo de ejemplo, consideremos el siguiente input:

WT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

\documentclass[12pt]{letter} \usepackage[spanish]{babel} \begin{document} \address{Las Palmeras 3425\\ \~Nu\~noa, Santiago} \date{9 de Julio de 1998} \signature{Pedro P\'erez \\ Secretario} \begin{letter}{Dr.\ Juan P\'erez \\ Las Palmeras 3425 \\ \~Nu\~noa, Santiago} \opening{Estimado Juan} A\'un no tenemos novedades. Parece incre\'{\i}ble, pero los recientes acontecimientos nos han superado, a pesar de nuestros esfuerzos. Esperamos que mejores tiempos nos aguarden. \closing{Saludos,} \cc{Arturo Prat \\ Luis Barrios} \end{letter} \end{document}
El resultado se encuentra en la prxima pgina.

3.11.

CARTAS.

WU

Las Palmeras 3425 n Nuoa, Santiago 9 de Julio de 1998 Dr. Juan Prez e Las Palmeras 3425 n Nuoa, Santiago Estimado Juan An no tenemos novedades. u Parece incre ble, pero los recientes acontecimientos nos han superado, a pesar de nuestros esfuerzos. Esperamos que mejores tiempos nos aguarden. Saludos,

Pedro Prez e Secretario Copia a: Arturo Prat Luis Barrios

WV

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Observemos que el texto de la carta est dentro de un ambiente Los comandos disponibles son:

letter,

el cual tiene un argu-

mento obligatorio, donde aparece el destinatario de la carta (con su direccin opcionalmente).

\address{<direccion>} \signature{<firma>} \opening{<apertura>} \closing{<despedida>} \cc{<copias>}

<direccion> <firma>

del remitente.

del remitente.

Frmula de Frmula de

<apertura>. <despedida>. <copias>


(si los hubiera). Caque

Receptores de

Uno puede hacer ms de una carta con distintos ambientes da una tomar el mismo remitente y rma dados por el

\address o \signature valgan slo para una carta \begin{letter} y el \opening correspondiente.
Por ejemplo, la siguiente estructura:

letter en un mismo archivo. \address y \signature. Si deseamos

particular, basta poner dichos comandos entre

\documentclass[12pt]{letter} \begin{document} \address{<direccion remitente>} \date{<fecha>} \signature{<firma>} \begin{letter}{<destinatario 1>} \opening<apertura 1> ... \end{letter} \begin{letter}{<destinatario 2>} \address{<direccion remitente 2>} \signature{<firma 2>} \opening<apertura 2> ... \end{letter} \begin{letter}{<destinatario 3>} \opening<apertura 3> ... \end{letter} \end{document}
dar origen a tres cartas con la misma direccin de remitente y rma, salvo la segunda. En todos estos comandos, lneas sucesivas son indicadas con

\\.

3.12.

L T X Y EL FORMATO E

hp.

WW

A 3.12. L TEX y el formato pdf.


Junto con PostScript, otro formato ampliamente difundido para la transmisin de archivos,

pdf (Portable Document Format). Para generar un A pdf con L TEX es necesario compilarlo con pdflatex. As, pdflatex <archivo> generar un archivo <archivo>.pdf en vez del <archivo>.dvi generado por el compilador usual.
especialmente a travs de Internet, es el formato archivo Si nuestro documento tiene guras, slo es posible incluirlas en el documento si estn tambin en formato

pdf.
el

Por tanto, si tenemos un documento con guras en PostScript, debemos introducir

dos modicaciones antes de compilar con a) Cambiar a argumento de

pdflatex:
(seccin 3.10) de

<archivo_figura>.pdf.

\includegraphics

<archivo_figura>.eps

b) Convertir las guras PostScript a el archivo

pdf (con epstopdf, por ejemplo). Si tenemos una gura en <archivo_figura>.eps, entonces epstopdf <archivo_figura>.eps genera el archivo correspondiente <archivo_figura>.pdf.
Observar que el mismo paquete

graphicx

descrito en la seccin 3.10 para incluir guras

PostScript permite, sin modicaciones, incluir guras en

pdf.

A 3.13. Modicando L TEX.


Esta seccin se puede considerar avanzada. Normalmente uno se puede sentir satisfecho con el

A desempeo de L T X, y no es necesaria mayor intervencin. A veces, dependiendo de la aplicacin E


y del autor, nos gustara modicar el comportamiento default. Una alternativa es denir nuevos comandos que sean tiles para nosotros. Si esos nuevos comandos son abundantes, o queremos reutilizarlos frecuentemente en otros documentos, lo conveniente es considerar crear un nuevo paquete o incluso una nueva clase. Examinaremos a continuacin los elementos bsicos de estas modicaciones.

3.13.1. Denicin de nuevos comandos.


El comando newommnd
Un nuevo comando se crea con:

\newcommand{<comando>}{<accion>}
El caso ms sencillo es cuando una estructura se repite frecuentemente en nuestro documento. Por ejemplo, digamos que un sujeto llamado Cristbal no quiere escribir su nombre cada vez que aparece en su documento: Mi S, nombre como es Cristbal. Cristbal.

oyes,

Cristbal Loyola.

\newcommand{\nombre}{Crist\'obal} ... \begin{document} ... Mi nombre es \nombre. S\'{\i}, como oyes, \nombre. \nombre\ Loyola.

IHH
Un

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

\newcommand \').

puede aparecer en cualquier parte del documento, pero lo mejor es que est

en el prembulo, de modo que sea evidente qu nuevos comandos estn disponibles en el presente documento. Observemos adems que la denicin de un comando puede contener otros comandos (en este caso, Finalmente, notamos que ha sido necesario agregar un espacio explcito con

\ ,

al escribir Cristbal Loyola: recordemos que un comando comienza con un backslash y termina con el primer carcter que no es letra. Por tanto, y el output sera CristbalLoyola. Tambin es posible denir comandos que funcionen en modo matemtico: Sea que

\nombre Loyola

ignora el espacio al nal de

\nombre,

x la velocidad, de x(t) > 0 si t < 0.

modo

\newcommand{\vel}{\dot x} Sea $\vel$ la velocidad, de modo que $ \vel(t)> 0$ si $t<0$.

Como co.

\vel contiene un comando matemtico (\dot), \vel slo puede aparecer en modo matemti-

Podemos tambin incluir la apertura de modo matemtico en la denicin de \vel: \newcommand{\vel}{$\dot x$}. De este modo, \vel (no $\vel$) da como output directamente x. Sin embargo, esta solucin no es ptima, porque la siguiente ocurrencia de \vel da un error. En A efecto, si \vel = $\dot x$, entonces $ \vel(t)>0$ = $ $\dot x$> 0$. En tal caso, L T X ve que E un modo matemtico se ha abierto y cerrado inmediatamente, conteniendo slo un espacio entremedio, y luego, en modo texto, viene el comando compilacin se detiene. La solucin a este problema es utilizar el comando

\dot,

A que es matemtico: L T X acusa un error y la E

\ensuremath,

que asegura que haya modo

matemtico, pero si ya hay uno abierto, no intenta volverlo a abrir: Sea que

x la velocidad, de x(t) > 0 si t < 0.

modo

\newcommand{\vel}{\ensuremath{\dot x}} Sea \vel\ la velocidad, de modo que $ \vel(t)> 0$ si $t<0$.

Un caso especial de comando matemtico es el de operadores tipo logaritmo (ver Tabla 3.9). Si queremos denir una traduccin al castellano de disponible via Ahora

amsmath:
escribir en

\sin, debemos usar el comando \DeclareMathOperator

podemos

castellano,

sen x.

\usepackage{amsmath} \DeclareMathOperator{\sen}{sen} ... Ahora podemos escribir en castellano, $\sen x$.


slo puede aparecer en el prembulo del

A diferencia de documento.

\newcommand, \DeclareMathOperator

Un nuevo comando puede tambin ser usado para ahorrar tiempo de escritura, reemplazando

A comandos largos de L T X: E

3.13.

MODIFICANDO L T X. E

IHI
\newcommand{\be}{\begin{enumerate}} \newcommand{\ee}{\end{enumerate}} \be \item El primer caso. \item Ahora el segundo. \item Y el tercero. \ee

1. El primer caso. 2. Ahora el segundo. 3. Y el tercero.

Nuevos comandos con argumentos


Podemos tambin denir comandos que acepten argumentos. Si el sujeto anterior, Cristbal, desea escribir cualquier nombre precedido de Nombre: en itlica, entonces puede crear el siguiente comando:

Nombre: Cristbal Nombre: Violeta

\newcommand{\nombre}[1]{\textit{Nombre:} #1} \nombre{Crist\'obal} \nombre{Violeta}

Observemos que con

\newcommand tiene un argumento opcional, que indica el nmero de argumentos

que el nuevo comando va a aceptar. Esos argumentos se indican, dentro de la denicin del comando,

#1, #2,

etc. Por ejemplo, consideremos un comando que acepta dos argumentos:

\newcommand{\fn}[2]{f(#1,#2)}
f (x, y) + f (x3 , y) = 0 .

$$ \fn{x}{y} + \fn{x_3}{y*} = 0 \ . $$

A En los casos anteriores, todos los argumentos son obligatorios. L T X permite denir comandos E

n argumentos, el argumento opcional es #1, y se debe indicar, en un segundo parntesis cuadrado, su valor default. As, podemos modicar el comando \fn del ejemplo anterior para que el primer argumento sea opcional, con valor default x:
con un (slo un) argumento opcional. Si el comando acepta el

\newcommand{\fn}[2][x]{f(#1,#2)}
f (x, y) + f (x3 , y) = 0 .

$$ \fn{y} + \fn[x_3]{y*} = 0 \ . $$

Redenicin de comandos
Ocasionalmente no nos interesa denir un nuevo comando, sino redenir la accin de un comando preexistente. Esto se hace con

\renewcommand:

IHP
...

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

La antigua versin de La nueva versin de

ldots: ldots:

La antigua versi\'on de {\tt ldots}: \ldots \renewcommand{\ldots}{\textbullet \textbullet \textbullet} La nueva versi\'on de {\tt ldots}: \ldots

Prrafos y cambios de lnea dentro de comandos


En el segundo argumento de

A de L T X, pero ocasionalmente la aparicin de lneas en blanco (para forzar un cambio de prrafo) E


puede provocar problemas. Si ello ocurre, podemos usar Adems, la denicin del comando queda ms compacta:

\newcommand

\renewcommand

puede aparecer cualquier comando que hace exactamente lo mismo.

\par,

\newcommand{\comandolargo}{\par Un nuevo comando que incluye un cambio de p\'arrafo, porque deseamos incluir bastante texto.\par \'Este es el nuevo p\'arrafo.\par} Observemos en acci\'on el comando: \comandolargo Listo.
da como resultado: Observemos en accin el comando: Un nuevo comando que incluye un cambio de prrafo, porque deseamos incluir bastante texto. ste es el nuevo prrafo. Listo.

Un ejemplo ms til ocurre cuando queremos asegurar un cambio de prrafo, por ejemplo, para colocar un ttulo de seccin: Observemos en accin el comando:

\newcommand{\seccion}[1]{\par\vspace{.5cm} {\bf Secci\'on: #1}\par\vspace{.5cm}} Observemos en acci\'on el comando: \seccion{Ejemplo} Listo.

Seccin: Ejemplo

Listo. Adems de las lneas en blanco, los cambios de lnea pueden causar problemas dentro de la denicin de un nuevo comando. El ejemplo anterior, con el comando notemos que cuando se deni, pusimos un cambio de lnea despus de

\seccion, es un buen ejemplo: \vspace{.5cm}. Ese cambio

de lnea es interpretado (como todos los cambios de lnea) como un espacio en blanco, y es posible que, bajo ciertas circunstancias, ese espacio en blanco produzca un output no deseado. Para ello basta utilizar sabiamente el carcter

%,

que permite ignorar todo el resto de la lnea, incluyendo el

cambio de lnea. Ilustremos lo anterior con los siguientes tres comandos, que subrayan (comando

\underline)

una palabra, y dieren slo en el uso de

para borrar cambios de lnea:

3.13.

MODIFICANDO L T X. E

IHQ
\newcommand{\texto}{ Un texto de prueba } \newcommand{\textodos}{% Un texto de prueba } \newcommand{\textotres}{% Un texto de prueba% } Notar la diferencia entre: \underline{\texto}, \underline{\textodos}, y \underline{\textotres}.

Notar la diferencia entre: Un texto de prueba , Un texto de prueba , Un texto de prueba. y

\texto

conserva espacios en blanco antes y despus del texto,

blanco despus del texto, y

\textotres

\textodos

slo el espacio en

no tiene espacios en blanco alrededor del texto.

Nuevos ambientes
A Nuevos ambientes en L T X se denen con E

\newenvironment:

\newenvironment{<ambiente>}{<comienzo ambiente>}{<final ambiente>} <ambiente>, tal que \begin{ambiente} ejecuta los <comienzo ambiente>, y \end{ambiente} ejecuta los comandos <final ambiente>.
dene un ambiente (\hrule) y deja un espacio vertical de .3cm, y que al terminar cambia de prrafo, coloca serif, deja un nuevo espacio vertical de .3cm, y vuelve al font roman: comandos

Denamos un ambiente que, al comenzar, cambia el font a itlica, pone una lnea horizontal

XXX en sans

\newenvironment{na}{\it \hrule \vspace{.3cm}}{\par\sf XXX \vspace{.3cm}\rm}


Entonces, con

\begin{na} Hola a todos. Es un placer saludarlos en este d\'{\i}a tan especial. Nunca esper\'e una recepci\'on tan calurosa. \end{na}
obtenemos:

Hola a todos. Es un placer saludarlos en este da tan especial. Nunca esper una recepcin tan calurosa.

XXX

IHR

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

Los nuevos ambientes tambin pueden ser denidos de modo que acepten argumentos. Como con

\newcommand,

basta agregar como argumento opcional a

\newenvironment

un nmero que indique

cuntos argumentos se van a aceptar:

\newenvironment{<ambiente>}[n]{<comienzo ambiente>}{<final ambiente>}


Dentro de pueden ser usados en los comandos de cierre del ambiente (<final iquemos el ambiente

<comienzo ambiente>, na

se alude a cada argumento como

#1, #2, etc. Los argumentos no ambiente>). Por ejemplo, mod-

anterior, de modo que en vez de colocar una lnea horizontal al comienzo,

coloque lo que le indiquemos en el argumento:

\newenvironment{na}[1]{\it #1 \vspace{.3cm}}{\par\sf XXX\hrule\vspace{.3cm}\rm}


Ahora usmoslo dos veces, cada una con un argumento distinto: El mismo ejemplo anterior,

El mismo ejemplo anterior, ahora es \begin{na}{\hrule} Hola a todos... \end{na} Pero podemos ahora cambiar el comienzo: \begin{na}{\it XXX} Hola a todos... \end{na}

ahora es

Hola a todos. . .

XXX

Pero podemos ahora cambiar el comienzo:

XXX Hola a todos. . .

XXX

3.13.2. Creacin de nuevos paquetes y clases


Si la cantidad de nuevos comandos y/o ambientes que necesitamos en nuestro documento es sucientemente grande, debemos considerar crear un nuevo paquete o una nueva clase. Para ello hay que tener clara la diferencia entre uno y otro. En general, se puede decir que si nuestros comandos involucran alterar la apariencia general del documento, entonces corresponde crear una nueva clase (.cls). Si, por el contrario, deseamos que nuestros comandos funcionen en un amplio rango de circunstancias, para diversas apariencias del documento, entonces lo adecuado es un paquete (.sty). necesitamos bsicamente la clase Consideremos por ejemplo la experiencia de los autores de estos apuntes. Para crear estos apuntes

book, con ciertas modicaciones: mrgenes ms pequeos, inclusin automtica de los paquetes amsmath, babel y graphicx, entre otros, y denicin de ciertos ambientes
especcos. Todo ello afecta la apariencia de este documento, cambindola de manera apreciable, pero a la vez de un modo que en general no deseamos en otro tipo de documento. Por ello lo hemos compilado usando una clase adecuada, llamada

mfm2.cls. tarea.cls,

Por otro lado, uno de los autores ha necesitado escribir muchas tareas, pruebas y controles de ayudanta en su vida, y se ha convencido de que su trabajo es ms fcil creando una clase que sirve para esos tres propsitos, deniendo comandos que le permiten especicar fcilmente la

3.13.

MODIFICANDO L T X. E

IHS
mfm2.cls,

fecha de entrega de la tarea, o el tiempo disponible para una prueba, los nombres del profesor y el ayudante, etc., una serie de comandos especcos para sus necesidades. Sin embargo, tanto en este documento que usa usan como en las tareas y pruebas que (el mdulo de un vector), o

tarea.cls,

A se utilizan algunos comandos matemticos que no vienen con L T X, pero que E

son recurrentes, como

\TLaplace

\sen

(la funcin seno en castellano),

\modulo

(la transformada de Laplace). Para que estos comandos estn disponibles en cualquier

tipo de documento, necesitamos reunirlos en un paquete, en este caso

mfm2.cls, tarea.cls

addmath.sty.

De este modo,

o cualquier otra clase pueden llamar a este paquete y utilizar sus comandos.

Estructura bsica.
La estructura bsica de un paquete o una clase es: a) Identicacin: Informacin general (nombre del paquete, fecha de creacin, etc.). (Obligatoria.) b) Declaraciones preliminares: Opcionales, dependiendo del paquete o clase en cuestin. c) Opciones: Comandos relacionados con el manejo de las opciones con las cuales el paquete o clase pueden ser invocados. (Opcional.) d) Ms declaraciones: Aqu van los comandos que constituyen el cuerpo de la clase o paquete. (Obligatoria: si no hay ninguna declaracin, el paquete o clase no hace nada, naturalmente.) La identicacin est consituida por las siguientes dos lneas, que deben ir al comienzo del archivo:

\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{<paquete>}[<fecha> <otra informacion>]


A A La primera lnea indica a L T X que ste es un archivo para L T X 2 . La segunda lnea especica E E
que se trata de un paquete, indicando el nombre del mismo (es decir, el nombre del archivo sin extensin) y, opcionalmente, la fecha (en formato ejemplo, nuestro paquete

addmath.sty

YYYY/MM/DD)

y otra informacin relevante. Por

comienza con las lneas:

\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{addmath}[1998/09/30 Macros matematicos adicionales (VM)]


Si lo que estamos deniendo es una clase, usamos el comando clase

mfm2.cls:

\ProvidesClass.

Para nuestra

\NeedsTeXFormat{LaTeX2e} \ProvidesClass{mfm2}[2002/03/25 Estilo para apuntes MFM II (VM)]


A continuacin de la identicacin vienen los comandos que se desean incorporar a travs de este paquete o clase. Como hemos dicho,

addmath.sty

contiene muchos nuevos comandos matemticos que consid-

eramos necesario denir mientras escribamos estos apuntes. Veamos los contenidos de una versin simplicada de dicho paquete:

IHT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{addmath}[1998/09/30 Macros matematicos adicionales (VM)] \newcommand{\prodInt}[2]{\ensuremath \left(\, #1\, |\, #2\, \right ) } \newcommand{\promedio}[1]{\langle #1 \rangle} \newcommand{\intii}{\int_{-\infty}^{\infty}} \newcommand{\grados}{\ensuremath{^\circ}} \newcommand{\Hipergeometrica}[4]{{}_2F_1\left (#1, #2, #3\, ; #4\right )} ...
De este modo, incluyendo en nuestro documento el paquete con nuevos comandos estn disponibles:

\usepackage{addmath},

varios

(x|y) x

\prodInt{x}{y} \promedio{x}

dz f (z) ABC = 90
2 F1 (a, b, c ; d)

\intii dz\, f(z) \angle\, ABC = 90\grados \Hipergeometrica{a}{b}{c}{d}

Incluyendo otros paquetes y clases


Los comandos tivamente. . Esto es de gran utilidad, pues permite construir un nuevo paquete o clase aprovechando la funcionalidad de otros ya existentes. As, nuestro paquete

\RequirePackage

\LoadClass

permiten cargar un paquete o una clase, respec-

addmath.sty amsmath

dene bastantes comandos, pero nos gustara denir var-

ios ms que slo pueden ser creados con las herramientas de

addmath.sty
mandos:

A AMS-L TEX.

Cargamos entonces en

el paquete

y otros relacionados, y estamos en condiciones de crear ms co-

\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{addmath}[1998/09/30 Macros matematicos adicionales (VM)] \RequirePackage{amsmath} \RequirePackage{amssymb} \RequirePackage{euscript} ... \newcommand{\norma}[1]{\ensuremath \left\lVert\, #1 \,\right\rVert} \newcommand{\intC}{{\sideset{^*}{}\int}} \DeclareMathOperator{\senh}{senh} ...
6 Estos comandos slo se pueden usar en un archivo
de cargar un paquete es

\usepackage,

.sty

y para cargar una clase es

.cls Para documentos \documentclass.

normales, la manera

3.13.

MODIFICANDO L T X. E

IHU
x

Por ejemplo:

\norma{x}
dz f (z)

\intC dz \, f(z) \senh (2y)


o

senh(2y)
La posibilidad de basar un archivo

.sty

.cls

en otro es particularmente importante para

una clase, ya que contiene una gran cantidad de comandos y deniciones necesarias para compilar el documento exitosamente. Sin embargo, un usuario normal, aun cuando desee denir una nueva clase, estar interesado en modicar slo parte del comportamiento. Con facilitando enormemente la tarea. Por ejemplo, al preparar este documento fue claro desde el comienzo que se necesitaba esencialmente la clase clase

\LoadClass, dicho usuario

puede cargar la clase sobre la cual se desea basar, y luego introducir las modicaciones necesarias,

book,

ya que sera un texto muy extenso, pero tambin era claro que se requeran

ciertas modicaciones. Entonces, en nuestra clase

book,

mfm2.cls

lo primero que hacemos es cargar la

ms algunos paquetes necesarios (incluyendo nuestro

addmath),

y luego procedemos a

modicar o aadir comandos:

\NeedsTeXFormat{LaTeX2e} \ProvidesClass{mfm2}[2002/03/25 Estilo para apuntes MFM II (VM)] \LoadClass[12pt]{book} \RequirePackage[spanish]{babel} \RequirePackage{enumerate} \RequirePackage{addmath}
En un archivo en cambio, slo

.sty o un .cls se pueden cargar varios paquetes con \RequirePackage. \LoadClass, puede aparecer en un .cls, y slo es posible usarlo una vez (ya que normalmente

clases distintas son incompatibles entre s).

Manejo de opciones
En el ltimo ejemplo anterior, la clase que si nuestro documento comienza con clase

pudiramos especicar el tamao de letra fuera de la clase, de modo que un documento en 10 puntos, y

\documentclass{mfm2} d \documentclass[12pt]{mfm2} uno en 12 puntos. Para lograr esto hay que poder pasar opciones desde la clase mfm2 a book. El modo ms simple de hacerlo es con \LoadClassWithOptions. Si mfm2.cls ha sido llamada con opciones <opcion1>,<opcion2>, etc., entonces book ser llamada con las mismas opciones. Por tanto, basta modicar en mfm2.cls la lnea \LoadClass[12pt]{book} por:

book,

mfm2 carga la clase book con la opcin 12pt. Esto signica \documentclass{mfm2}, ser compilado de acuerdo a la

en 12 puntos. No es posible cambiar esto desde nuestro documento. Sera mejor que

\LoadClassWithOptions{book}

IHV

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

\RequirePackageWithOptions es el comando anlogo para paquetes. Si una clase o un paquete llaman a un paquete <paquete_base> y desean pasarle todas las opciones con las cuales han sido
invocados, basta indicarlo con:

\RequirePackageWithOptions{<paquete_base>}
El ejemplo anterior puede ser suciente en muchas ocasiones, pero en general uno podra llamar a nuestra nueva clase,

mfm2,

con opciones que no tienen nada que ver con

podramos llamarla con opciones

12pt

spanish,12pt. book,

En tal caso, debera pasarle

book. Por spanish a mfm2.cls

ejemplo, babel, y de cierta

a book. Ms an, podramos necesitar denir una nueva opcin, que no existe en ninguna de para modicar el comportamiento de

las clases o paquetes cargados por

manera especca no prevista. Estas dos tareas, discriminar entre opciones antes de pasarla a algn paquete determinado, y crear nuevas opciones, constituyen un manejo ms avanzado de opciones. A continuacin revisaremos un ejemplo combinado de ambas tareas, extraido de la clase con la cual compilamos este texto, La idea es poder

mfm2.cls. llamar a mfm2

con una opcin adicional

informacin sobre las etiquetas (dadas con nueva opcin, con:

\label)

keys,

que permita agregar al

dvi

de ecuaciones, guras, etc., que aparezcan en

el documento (veremos la utilidad y un ejemplo de esto ms adelante). Lo primero es declarar una

\DeclareOption{<opcion>}{<comando>} <opcion>
es el nombre de la nueva opcin a declarar, y

<comando>

es la serie de comandos que se

ejecutan cuando dicha opcin es especicada. As, nuestro archivo

mfm2.cls

debe ser modicado:

\NeedsTeXFormat{LaTeX2e} \ProvidesClass{mfm2}[2002/03/25 Estilo para apuntes MFM II (VM)] ... \DeclareOption{keys}{...} ... \ProcessOptions\relax ...
7 con \ProcessOptions.
Observamos que despus de declarar la o las opciones (en este caso

keys),

hay que procesarlas,

vs lnes nteriores permiten que doumentlss{mfmP} y doumentlsskeys{mfmP} sen ms vlidsD ejeutndose o no iertos omndos dependiendo de l form utilizdF i hor queremos que doumentlsskeysDIPpt{mfmP} se un lne vlidD deeE mos proesr keys dentro de mfmPFlsD y psrle ookFls ls opiones restntesF il siguiente es el digo de(nitivoX
7 \relax es un comando de T X que, esencialmente, no hace nada, ni siquiera introduce un espacio en E
blanco, y es til incluirlo en puntos crticos de un documento, como en este ejemplo.

3.13.

MODIFICANDO L T X. E

IHW

xeedsepormt{vePe} rovidesglss{mfmP}PHHPGHQGPS istilo pr puntes wpw ss @wA newififkeyskeysflse helreyption{keys}{keystrue} helreyptionB{ssyptionsoglss{gurrentyption}{ook}} roessyptionsrelx vodglss{ook} equirekgespnish{el} equirekge{msmth} equirekge{theorem} equirekge{epsfig} equirekge{ifthen} equirekge{enumerte} equirekge{ddmth} ifkeysequirekgenotrefDnotite{showkeys}fi `nuevos omndos de l lse mfmPFlsb

in entrr en demsidos detllesD digmos que l opin keys tiene el efeto de her que un iert vrile lgi ifkeysD se verdder @urt lne del digoAF v siguE iente lne @helreyptionBFFFA he que tods ls opiones que no hn sido proesds @IPptD por ejemploA se psen l lse ookF e ontinuin se proesn ls opiones on roessyptionsD y (nlmente se rg l lse ookF vs lnes siguientes rgn todos los pquetes neesriosD y (nlmente se enuentrn todos los nuevos omndos y de(niiones que queremos inluir en mfmPFlsF yservemos que l form prtiulr en que se rg el pquete showkeysF s es preE ismente l funin de l opin keys que de(nimosX showkeysFsty se rg on ierts opiones slo si se d l opin keysF gul es su efetoc gonsideremos el siguiente texto de ejemploD en que mfmP h sido llmd sin l opin keysX
doumentlssIPpt{mfmP} egin{doument} v opi9on verCkeysC result muy 9util undo tengo ojetos numerdos utom9timenteD omo un eui9onX egin{eqution} lel{newton} ve p a m ve F end{eqution} y luego quiero referirme ellX iF eqref{newton}F

IIH

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

in el primer soD se h ompildo sin l opin keysD y en el segundo on ellF il efeto es queD si se us un lel en ulquier prte del doumentoD pree en el mrgen dereho un j on el nomre de dih etiquet @en este soD newtonAF isto es til pr ulquier tipo de doumentosD pero lo es espeilmente en textos omo estos puntesD muy extensos y on undntes referenisF in tl soD tener un modo visulD rpidoD de ser los nomres de ls euiones sin tener que revisr trjosmente el rhivo fuente es un grn yudF esD versiones preliminres pueden ser ompilds on l opin keysD y l versin (nl sin ellD pr no onfesr l letor nuestr ml memori o nuestr omodiddF

3.13.

MODIFICANDO L T X. E

III

Caso 1: \documentclass[12pt]{mfm2} La opcin keys resulta muy util cuando tengo objetos numeo rados automticamente, como una ecuacin: a o F = ma . y luego quiero referirme a ella: Ec. (1). (1)

Caso 2: \documentclass[keys,12pt]{mfm2} La opcin keys resulta muy util cuando tengo objetos numeo rados automticamente, como una ecuacin: a o F = ma . y luego quiero referirme a ella: Ec. (1). (1) newton

IIP

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

3.14. Errores y advertencias.


3.14.1. Errores. n mensje de error tpio tiene l formX
ve errorF ee ve mnul for explntionF ype r `returnb for immedite helpF 3 invironment itemie undefinedF dltexerr FFFor immedite helpF}errmessge {5I} lFIRH egin{itemie} c
A v primer lne nos omuni que vi h enontrdo un errorF e vees los errores tienen que ver on proesos ms internosD y son enontrdos por iF ist lne nos inform quin enontr el errorF v terer lne omienz on un signo de exlminF ste es el indidor del errorF xos die de qu error se trtF vs dos lnes siguientes desrien el error en trminos de omndos de jo nivelF v lne T nos die dnde ourri el errorX l lne IRH en este soF edems nos inform del texto on)itivoX egin{itemie}F A in reliddD el mensje nos indi dnde vi dvirti el error por primer vezD que no es neesrimente el punto donde el error se ometiF ero l grn myor de ls vees l indiin es preisF he hehoD es fil drse uentD on l terer lne @invironment itemie undefinedA y l sext @egin{itemie}A que el error onsisti en esriir itemie en vez de itemizeF v A informin de vi es lr en este so y nos die orretmente qu ourri y dndeF A vuego viene un cF vi est esperndo un respuest de nosotrosF enemos vris lterE ntivsF gomentremos slo utroD tpimente usdsX

endgroup

@A @A

h `interb

oliitmos yudF i nos expli revemente en qu ree l que onsiste el error yGo nos d lgun reomendinF
x `interb

eortmos l ompilinF heeremos volver l editor y orregir el textoF is l opin ms tpi undo uno tiene y iert experieniD pues el mensje st pr reonoer el errorF
`interb

@A

3.14.

ERRORES Y ADVERTENCIAS.

IIQ

sgnormos el error y ontinumos l ompilinF i he lo que puedeF in lgunos sos esto no tiene onseuenis grves y podremos llegr hst el (nl del rhivo sin myores prolemsF in otros sosD ignorr el error puede provor que ulteriores omndos "perfetmente vlidos en prinipio" no sen reonoidos yD sD umulr muhos errores msF odemos ontinur on `interb suesivos hst llegr l (nl de l ompilinF @dA
q `interb

v in desrit en el punto nterior puede llegr ser tedios o in(nitF q he ingresr i en thmodeD modo en el ul l ompilin prosigue ignorndo todos los errores hst el (nl del rhivoD sin envir mensjes pntll y por ende sin que demos drle in(nitos `interbF

vs opiones @A y @dA son tiles undo no entendemos los mensjes de errorF gomo i seguir ompilndo hiendo lo mejor posileD l mirr el dvi puede que vemos ms lrmente dnde omenzron ir ml ls oss yD por tntoD por quF A gomo dijimosD vi indi extmente dnde enontr el errorD de modo que hemos de ponerle teninF or ejemploD si tenemos en nuestro doumento l lneX
FFF un error inesperdofotnote{in ulquier puntoF} puede deidirFFF

generr el mensje de errorX


3 ndefined ontrol sequeneF lFPRW FFFun error inesperdofotnote {in ulquier puntoF} c
A in l lne de lolizinD vi h ortdo el texto justo despus del omndo inexisE A tenteF vi no slo indi l lne en l ul detet el errorD sino el punto de ell donde ello ourriF @in reliddD hizo lo mismo "ortr l lne pr her resltr el prolem" en el so expuesto en l pgF IIPD pero ello ourri en medio de omndos de jo nivelD s que no er muy informtivo de todos modosFA

Errores ms comunes.

vos errores ms omunes sonX A gomndo ml esritoF A rntesis ursivos no predosF

IIR A dA eA fA gA hA

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

so de uno de los rteres espeiles 5D 6D 7D 8D D {D }D ~D D omo texto ordinrioF wodo mtemtio ierto de un mner y errdo de otrD o no errdoF emiente ierto on eginFFF y errdo on un endFFF distintoF so de un omndo mtemtio fuer de modo mtemtioF euseni de rgumento en un omndo que lo esperF vne en lno en miente mtemtioF

Algunos mensajes de error.


A e ontinuinD un peque list de errores @de vi y iA en orden lftioD y sus posiles ussF

plt end{doument}F @hr gtrlEg o esriir end{doument} pr slir de l ompilinFA


3 egin{FFF} ended y end{FFF}

irror eA de l eF QFIRFIF il nomre del miente en end{FFF} puede estr ml esritoD sor un egin o flt un endF 3 houle supersript @o susriptAF n expresin omo xPQ o xPQF i se dese otener x23 @x23AD esriir {xP}Q @{xP}QAF
3 invironment FFF undefinedF egin{FFF}

on un rgumento que orresponde un miente no de(nidoF


rry

3 ixtr lignment t hs een hngedF

in un tulr o oligtorioF

sor un 8D flt un

o flt un D l r en el rgumento

3 wispled lignment t hrter 8F

n 8 pree fuer de un tulr o rryF irrores AD dAD fAD hA de l eF QFIRFIF 3 wissing { @o }A insertedF rntesis ursivos no predosF
3 wissing 6 insertedF

3.14.

ERRORES Y ADVERTENCIAS.

IIS

3 wissing egin{doument}F

plt egin{doument} o hy lgo inorreto en el premuloF


3 wissing numerD treted s zeroF

plt

A donde vi setlength{textwidth}{}D etF

un

nmero l

lo despus

esperX de un

hspe{}D

vspe mD

3 omething9s wrong EE perhps missing itemF

osilemente

primer plr egin{itemize} no es itemF


3 ndefined ontrol sequeneF

egin{enumerte}

epree un seueni `plrbD donde `plrb no es un omndoF


3.14.2. Advertencias. A v estrutur de un dverteni de vi esX
ve wrningF `mensjebF

elgunos ejemplosX
vel FFF9 multiply definedF

hos lel tienen el mismo rgumentoF vos nmeros impresos por ref y pgeref pueden ser inorretosD pues los vlores orreE spondientes miron respeto l ontenido del ux generdo en l ompilin nteriorF
eferene FFF9 on pge FFF undefinedF vel@sA my hve hngedF erun to get rossEreferenes rightF

il rgumento de un ref o un pgeref no fue de(nido por un lelF i tmin env dvertenisF e reonoen porque no omienzn on e elgunos ejemplosF
yverfull hox FFF

wrningF

i no enontr un uen lugr pr ortr un lneD y puso ms texto en ell que lo onvenienteF
yverfull vox FFF

i no enontr un uen lugr pr ortr un pginD y puso ms texto en ell que lo onvenienteF

IIT

CAPTULO 3.

EL SISTEMA DE PREPARACIN DE DOCUMENTOS T X . E

nderfull hox FFF

i onstruy un lne on muy poo mterilD de modo que el espio entre plrs puede ser exesivoF
nderfull vox FFF

i onstruy un pgin on muy poo mterilD de modo que los espios vertiles @entre prrfosA pueden ser exesivosF
A vs dvertenis de vi siempre deen ser tendidsF n refereni dolemente de(niE A dD o no ompilr por segund vez undo vi lo sugiereD generr un resultdo inorreto en el dviF n refereni no de(nidD por su prteD he preer un signo ?? en el texto (nlF odos resultdos no desedosD por iertoF vs dvertenis de i son menos deisivsF n overfull o underfull puede redundr en que lgun plr se slg del mrgen dereho del textoD que el espido entre plrs en un lne se exesivoD o que el espio vertil entre prrfos se demsidoF vos estndres de lidd de i son ltosD y por eso env dvertenis freuentementeF ero generlmente los defetos en el resultdo (nl son impereptiles simple vistD o por lo menos no son su(ientes pr molestrnos relmenteF e vees sD por supuestoD y hy que estr tentosF iempre onviene revisr el texto y prestr tenin estos detllesD unque ello slo tiene sentido l preprr l versin de(nitiv del doumentoF

Captulo 4 Introduccin a programacin.


in este ptulo se intentr dr los elementos sios de lo que es un lenguje de proE grmin y lo que es progrmrF
versin 1.0, 30 de Agosto del 2007

4.1. Qu es programar?
e ontinuinD presentmos lguns lterntivs de respuest est preguntX rer un progrmF isriir un seueni de instruiones pr que un omputdor hg lgo que uno le pideF hrleD de lgun formD un seueni de psos lgios pr que un omputdor los ejeute on l intenin de lnzr lgn ojetivoF isriir un preis seueni de omndos o instruionesD en lgn lenguje que el omputdor entiend @ este tipo de lenguje lo llmremos lenguaje de programacin A pr que luego el omputdor ls relie extmenteD pso psoF n progrm es un rhivo que puede ser tn orto omo un sol lne de digoD o tn lrgo omo vrios millones de lnes de digoF

4.2. Lenguajes de programacin.


ixisten diferentes tipos de lengujes de progrminD lgunos ms ernos l mquin y menos l progrmdorY otros ms ernos l progrmdor y distntes de l mquinF elmente existe tod un jerrqu entre los lengujes de progrminF emos lgunos ejemplosX IIU

IIV

CAPTULO 4.

INTRODUCCIN A PROGRAMACIN.

4.2.1. Cdigo de Mquina binario. is el lenguje de l gD y el lenguje de ms jo nivelF gompuesto de H y I inrioD lo que est muy er de l mquin pero muy lejos del progrmdorF n de sus grndes desventjs es que no es fil de esriir o de leer pr el progrmdorF n progrm simpleD omo Hola mundoD se ver en digo inrio lgo s omoX
IHHHIHIHIHIHIHHIIIIHHIH IHHHIHIIHIHIHIHHHIIIHIH IIHHHIHIHHHIHIHIHHHHIII HHIHIHIHIHIHIHHIHIIHHHH IIIIHHIHIHIHIHIHIHHHHII IHHHIHIHHIHIHIHIHIHIHHI HHIHIHIHIHIIHIHIHIHIHHI

4.2.2. Lenguaje de Ensamblador (Assembler). il pso siguiente es reemplzr los I y H por un seueni de reviturs de lenguje de mquinD este tipo de lenguje se onoe omo lenguje de insmldor o AssemblerF ist er de l mquin pero no tnto omo el nterior y est un poo ms er del progrmdorF emos el progrm Hola mundo en lenguje de insmldor pr l fmili de proesdores VTF
title rogrm rol wundo @holFsmA Y iste progrm muestr 4rolD wundo34 dosseg Fmodel smll Fstk IHHh Fdt hellomessge d 9rolD wundo39D HdhD HhD 969 Fode min pro mov xD d Fdt mov dsDx mov hDW mov dxD offset hellomessge int PIh mov xDRgHHh int PIh min endp end min

4.2.3. Lenguaje de alto nivel. tilizn delriones y sentenis on plrs y expresiones lgerisF istos lengujes fueron iniilmente desrrolldos en ls dds del SH y THF on lengujes que estn ms er del progrmdor que de l mquinD por lo tntoD neesitn un etp de trduin

4.2.

LENGUAJES DE PROGRAMACIN.

IIW

pr que los entiend l mquinF iste proeso se puede her de dos mnersX trduiendo el progrm fuente todo de un vezD lo que llmremos lenguje ompilndoY o trduiendo el progrm fuente lne por lneD lo que llmremos lenguje interpretndoF
Lenguajes Compilados.

in este soD otro progrm @el ompildorA lee el progrm fuenteD un rhivo en ASCII donde se enuentrn el listdo de instruiones y lo reesrie en un rhivo inrioD en lenguje de mquin pr que l g pued entenderloF isto se he de un sol vez y el progrm (nl se gurd en est nuev form @un ejeutleAF il ejeutle de un progrm que es ompildo se estim que ser onsiderlemente ms lrgo que el originlD progrm fuenteF elgunos de los lengujes ompildos ms notles son portrnD g y gCCF n ejemplo del progrm Hola mundo esrito en gCC es ddo ontinuinX
GG GG rogrm rol wundo GG 5inlude `iostremb using nmespe stdY int min@A { out `` 4rol mundo4 `` endlY return HY }

4.2.4. Lenguajes interpretados. in este so otro progrm @el intrpreteA trdue ls delriones del progrm originl lenguje de mquinD lne por lneD medid que v ejeutndo el progrm originlF n progrm interpretdo suele ser ms pequeo que uno ompildo pero trdr ms tiempo en ser ejeutdoF ixiste grn ntidd de este tipo de lengujesD ythonD erlD fshD por nomrr lgunosF n ejemplo del progrm Hola mundo esrito en ython es ddo ontinuinX
5 rogrm rol mundo print 4rol wundo4

4.2.5. Lenguajes especializados. hesde el punto de vist de l funionlidd de los lengujes podemos seprrlos en lenguE jes de rter generl y lengujes espeilizdosF vos lengujes de rter generl son quelE los que sirven pr progrmr un grn nmero de prolemsD por ejemplo g o gCCD ythonF

IPH

CAPTULO 4.

INTRODUCCIN A PROGRAMACIN.

vos lengujes espeilizdos hn sido disedos pr relizr tres espe(sF ijemplos de ello son r y tvriptD espeilizdos en rer pgins weD o vD redo pr mnipulr informin en ses de dtosF
Una lista de lenguajes.

e ontinuinD dmos un listD prolemente muy inompletD de los lengujes de progrmin ms omunes en l tuliddX efgD edD eD ewkD fesgD gD C++D g5D gmlD goolD digo de mquinD gorD helphiD ii'elD irlngD portrnD rskellD tvD tvriptD vispD vogoD wodulD wodul PD wozrtD wumpsD yeronD yjetive gD yzD slD erlD rD PythonD elsiD eolD exxD qD uyD hemeD mltlkD vD quekD gvD isul fsiF

4.3. Lenguajes naturales y formales.


4.3.1. Lenguajes naturales. on lengujes hldos por l gente @por ejemploX ispolD snglsD elemn o tponsAF n de sus rteristis es que son miguosD por ejemploX hme es os o yhD seguroD qrnde3F in mos ejemplos no es lro que se estn re(riendo y se neesit un ontexto pr entenderlosF wuhs vees estos lengujes son redundntes y estn llenos de expresiones idiomtis ls ules no deen ser tomds literlmenteD por ejemploX we podr omer un vD we mtsteD o ndte l punt del erroF 4.3.2. Lenguajes formales. reho por el homreD omo ls mtemtisD l notin en qumi o los lengujes de progrmin de omputdoresF e rterizn por ser inmiguosF or ejemploD un expresin mtemtiX 1 + 4 = 5Y o un expresin en qumiX gr4CPy2 Pr2yCgy2Y oD (nlmenteD un expresin en lenguje de progrmin print 4rol mundo4F vos lengujes formles son dems onisos y estritmente literlesF
Sintaxis.

vos lengujesD tnto nturles omo formlesD tienen regls de sintxisF or un prteD estn los tokensD que orresponden los elementos sios @i.e. letrsD plrsD smolosA del lengujeX okens orretosX {IDQDRDCDa}Y{negroDgtoDel}Y {gr4Dy2Dr2yDgy2}F okens inorretosX {dD5D8Dc}Y {grneoDgtDlY}Y {gH DPO D2ry}

4.4.

DESARROLLANDO PROGRAMAS.

IPI

or otro ldoD tenemos ls estrutursD esto es l mner en que los tokens son orgnizdosX istruturs orretsX 1 + 3 = 4D el gto negroD gr4CPy2 Pr2yCgy2 istruturs inorretsX 13+ = 4D negro gto elD gr4 Py2 CCPr2y gy2

4.4. Desarrollando programas.


r desrrollr sus primeros progrms prt esriiendo en sus propis plrs lo que el progrm deer herF gonviert est desripin en un serie de psos en sus propis plrsF r d uno de los psos propuestos trduz sus plrs en un digo @ython o gCCAF hentro del digo inluy instruiones que imprimn los vlor de ls vriles pr pror que el progrm est hiendo lo que usted esperF

4.5. La interfaz con el usuario.


iempre que esri un progrm dee tener presente que lguienD que puede no ser ustE ed mismoD lo puede usr lgun vezF vo nterior signi(D en prtiulrD que el progrm dee tener doumentinD y que un progrm sin doumentin es muy difil de usrF ero dems es importnte uidr l prte del progrm on l que el usurio intertD es deir l interfaz con el usuarioF ist interfz podrn ser tnto mensjes simples de texE to omo so(stids ventns gr(sF vo importnte es que yuden l usurio ejeutr orretmente el progrmF evisemos un ml interfz on el usurioF enemos un progrm que no semos lo que heD pero l ejeutrse result lo siguienteX
intre un numero S intre otro numero U v respuest es IP

ry un evidente flt de instruiones de prte del progrmdor pr el usurioD que primero no se pr qu se le pide d nmeroD y luego no se qu hizo on ellosD slo l respuestD IPD sin myor expliin de lo que signi(F gomo ontrprteD un uen interfz on el usurio tiene doumentin nexD o iE enD lgun yud en el mismo progrmF ist doumentin deier explir que he el progrmD los dtos que neesitr y el o los resultdos que entregr undo (nlieF gd vez que se le pide lgo l usurio deern estr lrs ls siguientes preguntsX qu es extmente lo que se supone que yo tipeecY los nmeros que ingreso deen tener deimlescY o deen ser sin deimlescY los nmeros que ingreso son positivos o negtivoscY los nmeros que se piden son grndes o son nmeros pequeoscY en qu uniddes de medids deo ingresrlosc i se trt de plrsD deo ingresrls en minsuls o mysulsc

IPP

CAPTULO 4.

INTRODUCCIN A PROGRAMACIN.

elgunos linemientos sios que deer oservr pr onstruir interfes on el usurio que se lrs son los siguientesX rt on un ttulo e indiiones dentro del progrmF gundo pregunte por un dto que quiere que el usurio ingreseD dele l yud neesriD por ejemplo
intre el lrgo en metros @HEIHHAX

ue ls pregunts tengn sentidoF se espios y rteres espeiles pr mntener l pntll despejdF sndquele l usurio que el progrm terminF n versin mejord del progrm nterior podr ser l siguienteX
glulo sngrese sngrese v sum de l sum de dos numeros un numero enteroX S otro numero enteroX U es IP

4.6. Sacar los errores de un programa.


vos errores en un progrm son llmdos bugsF el proeso de rstrer los errores y orregirE los se le onoe omo debuggingF n progrm espeilizdo en her debugging es llmdo debuggerF El debugging es una de las ms importantes habilidades en programacin. vos tres priniples tipos de errores o bugs y sus onseuenis pr l ejeuin del progrm sonX IF irrores de sintxis sr un token inorreto o usr token orretos pero estruturrlos en form inE orretF gso ompildoD no gener el ejeutleF gso interpretdoD el progrm termin ruptmente on un mensje de errorF PF irrores de ejeuin @run-time error A irrores que ourren durnte l ejeuinF il progrm dej de orrer ruptmenteF

4.6.

SACAR LOS ERRORES DE UN PROGRAMA.

IPQ

QF irrores lgios irrores en mo el progrm est lgimente onstruidoF il progrm orreD pero he ls oss mlF

IPR

CAPTULO 4.

INTRODUCCIN A PROGRAMACIN.

Captulo 5 Una breve introduccin a Python.


in este ptulo se intentr dr los elementos ms sios del lenguje de progrmin ythonF e dee onsignr que no se onsidern tods ls posiiliddes del lenguje y ls expliE iones estn reduids l mnimoF
versin 3.03, 27 de octubre de 2010

5.1. Python.
il lenguje de progrmin ython fue redo lrededor de IWWH por el ient(o en omE putin holnds quido vn ossem y su nomre es un triuto l grupo mio Monty Python del ul quido es dmirdorF is un lenguje de interpretdo o de script multipltforE m on un sintxis muy lr y orientdo ojetosD que fvoree rer digo filmente legile y reutilizleF il sitio o(il del lenguge en l web es httpXGGwwwFpythonForgF il progrm ython @omo progrmD no omo lengujeA posee un miente intertivo que nos permite ejeutr instruiones del lenguje ython diretmenteF r elloD st dr el omndoX
usernmedhostX~6 python ython PFTFT @rPTTXVRPWPD ep IS PHIHD ITXHHXQTA qgg RFRFS PHIHHWHW @prereleseA on linuxP ype 4help4D 4opyright4D 4redits4 or 4liense4 for more informtionF bbb

il progrm ofree un prompt @bbbAD esperndo instruiones del usurioF vs instruE iones son interpretds y ejeutds de inmeditoF ist form de usr ython tiene l venE tj de l retrolimentin inmeditY de inmedito el progrmdor se si l instruin est orret o inorretF in emrgoD tiene l desventj de que el digo no es gurddoD y no puede por tnto ser reutilizdoF or otr prteD undo esriimos un rhivo de instruiones en ython @script AD tenemos l ventj de que el digo s es lmendoD pudiendo ser reutilizdoF in este so ls IPS

IPT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

desventjs son que l retrolimentin no es inmedit y que hitulmente requiere ms debugging pr que el digo funione orretmenteF

5.2. El Zen de Python.


vos usurios de ython se re(eren menudo l pilosof de ythonF istos prinipios o (losof fueron desritos por el desrrolldor de ythonD im etersD en il en de ythonX fello es mejor que feoF ixplito es mejor que implitoF imple es mejor que omplejoF gomplejo es mejor que omplidoF lno es mejor que niddoF lo es mejor que densoF v legiilidd uentF vos sos espeiles no son tn espeiles pr romper ls reglsF eunque lo prtio gn l purezF vos errores nun deen psr sileniosmenteF e menos que est silenido explitmenteF prente l migeddD rehz l tentin de divinrF heer her un !y preferilemente slo un! mner ovi de herloF eunque es mner puede no ser ovi en prinipioD menos que usted se holndsF ehor es mejor que nunF eunque nun es menudo mejor que hor mismoF i l implementin es difil de explirD es un ml ideF i l implementin es fil de explirD puede que se un uen ideF vos espios de nomres @namespaces A son un grn ide rgmos ms de ess oss3 vos digos que que estn esrito jo estos prinipiosD de legiilidd y trnspreniD se die que son pythoniosF gontrrimenteD digos opos u ofusdos son utizdos omo no pythonios @unpythonis en inglsAF

5.3.

EL PRIMER PROGRAMA.

IPU

5.3. El primer programa.


il primer progrm que esriiremos en ython esD el lsioD hol mundoF r rer este script en ython requerimos de un editor @viD jedD xemsD geditF F F elij su fvoritoAF isriimos en un rhivoX
print 4rol mundo4

r poder identi(rlo rpidmenteD ms delnteD gremoslo on extensin FpyF upongE mos que lo grmos on en el nomre holFpyF ehorD ejeutmos el progrm dndo el omndo
usernmedhostX~6 python holFpy

egreguemosle un segund lneD pr que el progrm quede esperndo un enter ntes de terminrF
print 4rol mundo4 rwinput@A

xuevmente ejeutmos el progrm dndo el omndo


usernmedhostX~6 python holFpy

r que el progrm se ejeute on el intrprete deudoD ython en este soD es neesrio dir un nuev lne l prinipio del rhivoX
53GusrGinGpython print 4rol wundo4 rwinput@A

e est lne se le onoe omo hashbangD sharpbang o shebangF il pr de rteres 53 indi l sistem opertivo que el scriptD ontenido en ls siguientes lnes de ese rhivoD se dee ejeutr utilizndo el intrprete espei(do ontinuinF ytr opin es utilizr el progrm env pr preguntr l sistem por el path espe(o del intrprete que nos interesD en este so ythonD
53GusrGinGenv python print 4rol wundo4 rwinput@A

euerde que dems de dir el shebangD dee drle los permisos de ejeuin deudos @hmod uCx rhivoFpyAF pinlmenteD pr ejeutrlo st uirse en el diretorio donde est el rhivo y dr el omndo
jrogndmnqueX~GsnrogressGpython6 FGholFpy

IPV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.4. Tipos bsicos.


vos tipos sios del lenguje son
NmerosD

EnterosX vos nmeros que perteneen l onjunto ZD es deirD sin deimlesF on

nmeros entre 231 = 2147483648 y 231 1 = 2147483647 en un mquin de QP its y entre 263 = 9223372036854775808 y 263 1 = 9223372036854775807 en un mquin de TR itsF r onoer estos lmites se rg el modulo sys en ython intertivoD on el omndo import sysD y luego se dn los omndos EsysFmxintEI y sysFmxintF Enteros largosX xmeros enteros de preisin ritrriD estndo slo limitdos por l ntidd de memori disponile en l mquinF vos distinguimos por un v l (nl del nmeroD por ejemploX PQRQRPQSPQRvF Con punto otanteX vos nmeros que perteneen l onjunto RD pero on un nmero (nito de deimlesF vos vlores vn desde 2.2250738585072020 10308 hst 1.7976931348623157 10308F r onoer estos lmites se rg el modulo sys en ython intertivoD on el omndo import sysD y luego se d el omndo sysFflotinfoF ComplejosX on nmeros que perteneen l onjunto CD donde l prte rel y l prte imginri son nmeros on punto )otnteF e pueden esriir omo real Cimag j o ien omo real Cimag tF

Cadenas de caracteres @strings AX sulmente un onjunto de rteresD i.e. un textoX

4rol mundo4F istn delimitdos por omills simples o dolesF

BooleanosX n tipo que slo puede tomr dos vlores rue@verdderoA o plse@flsoAF

ipo hesripin ijemplo int entero IIU long entero lrgos PQRQRPQSPQRv )ot nmero on punto )otnte IFUV omplex nmero omplejo HFS CPFHj str string 44 ool ooleno rue o plse gudro SFIX vos tipos sios del lenguje ythonF

5.4.

TIPOS BSICOS.

IPW

5.4.1. Las variables. vs vrile son un nomreD usdo dentro del progrmD pr referirse un ojeto o vlorF vs limitiones y onsideriones que hy que tener en uent pr drle nomre un vrile sonX

xo puede ser un plr reservd del lengujeD i.e.


nd else import rise ssert exept in return rek exe is try lss ontinue def finlly for from lmd not or while yield del glol pss elif if print

xo puede omenzr por un nmeroF vs letrs myusuls y ls minsuls en los nomres se onsidern diferentesF xo puede inluir rteres ilegles tles omo 6D7DCDaD etF
5.4.2. Asignacin de variables. r signrle o lmenr un vlor un vrileD por ejemplo en un vrile llmd numD st poner el nomre de l vrile l izquierd un signo igul y l ldo dereho el vlor o expresin que queremos signrle
numaV kaPQRQRPQSPQRv piaQFIR zaIFSCHFSj sludoarol mundo firmionarue 5 esignin de un numapiBQFHBBP 5 intero 5 intero lrgo 5 unto flotnte 5 gomplejo 5 tring 5 fooleno operin

n mismo vlor puede ser signdo vris vriles simultnemente


bbb xayazaH 5 ods ls vriles vlen ero bbb print xDyDz 5 wuestr en pntll el vlor de ls vriles H H H

y ienD podemos her signsiones de diferentes vlores diferentes vriles en un mism signin

IQH
bbb bbb H I bbb bbb I I DDaHDIDP print DD P DaDC print D

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

Consejo:

ree vriles uyos nomres signi(quen lgoX

ddmaQI 5 wev disdelmesaQI 5 fsix

5.4.3. Reciclando variables. n vez que un vrile es red su vlor puede ser resigndoF emos un ejemplo donde l vrile rdvlue es reutilizd
rdID rdPD rdQa IDPDQ rdvlueardICrdP print rdvlue rdvlueardICrdPCrdQ print rdvlue

5.4.4. Comentarios. vos omentrios son notiones que usted esrie pr yudr explir lo que est hiendo el progrmF vos omentrios omienzn on el rter 5F vo esrito despus de 5D hst el (nl de l lneD es ignordo por el intrpreteF or ejemploX
dis a TH 5disponiles pr el proyeto

xturlmenteD los omentrios no son muy tiles undo se trj intertivmente on ythonD pero s lo son undo se esrie un scriptF he este modo se pueden insertr expliiones en el digo que yuden reordr qu he un progrm en d un de sus seionesD o explirlo tererosF Consejo: is uen ostumre de progrmin que ls primers lnes de un digo sen omentrios que inluyn el nomre del progrmdor y un reve desripin del progrmF
5.4.5. Operaciones matemticas. gon ython podemos relizr ls operiones sisX sum @+AD rest @AD multipliin @A y divisin @/AF yperiones menos sis tmin estn disponilesX el exponente @AD l divisin enter @GGA o el mdulo @ 7AF

5.4.

TIPOS BSICOS.

IQI

intre ls operiones hy un orden de preedeniD uns se relizrn primero que otrsF e ontinuinD dmos el orden de preedeniD prtiendo por lo que se he primeroX rntesisD exponentesD divisin y multipliinF um y restF he izquierd derehF gomo ejemplo de l importni de ser el orden de preedeni vemos los siguiente ejemplosX 2 (3 1) = 4 y 231=5
5.4.6. Cadenas de caracteres (strings ). n den de rteres dee estr entre pstrofes o omills simples o dolesF or ejemploX
nomre a 4iste es tu nomre4 nomrePa iste es tmien su nomre9

i un den de rteres neesit un pstrofe dentro de ellD ntepong un pstrofe extrF ijemplosX
titulo a 4ill dijoX 4e mo44 tituloP a s9m oy9

Backslash Characters AF
9 4 n

elguns dens de rteres on signi(do espeil empiezn on el rter @String a snluy F a epstrofe simpleF a epstrofe doleF a gmio de lneF

in un den o strings on triples omills @simples o dolesA podemos esriir un texto en vris lnesX
triple a 444ist es l primer line y estFF es l segund444

IQP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

l imprimir el nterior strings se respetr el slto de lneF n string puede estr preedido por rteresD si el rter es u indin que se trt de un string odi(do en niodeD1 por ejemplo
uniode a u44

si el rter es r indi que se trt de un string raw @del inglsD rudoAF vos string raw son quellos en que los rteres que omienzn on @A no se sustituyenD por ejemplo
rw a r4n4

5.4.7. Operaciones simples con strings. hos de ls operiones ms omunes on strings X gonteninX se pueden ontenr dos strings l sumrlosD vemos un ejemploX
bbb bbb bbb bbb x a 4rol4 y a 4wundo4 print xCy rolwundo

epetiinX
bbb z a 4t4 bbb print zBQ bbb ttt

5.4.8. Los caracteres dentro de un strings. vos strings son hehos de peques uniddesD d rter individulF gd uno de los rteres tiene un direin numri dentro del stringD donde el primer rter tiene l direin ero @HAF gd rter individulD o onjunto de rteresD en un string puede ser esdo usndo sus direiones numrisF se pr esr rteres dentro de un stringF emos un ejemplo
plr a 4omputdor4 letr a plrH

r eder un onjunto de rteres dentro de un string lo podemos her omo sigueX se 5X5 pr otener un onjunto de letrsF
prte a plrIXQ
string
1 En Python 3.x los
pasa a ser

Unicode

luego

cadena="abc"

es lo mismo que

cadena=u"abc"

5.4.

TIPOS BSICOS.

IQQ

r tomr desde el omienzo un punto ddo en el stringF


prte a plrXR prte a plrQX

r tomr desde un punto ddo l (nl del stringF


5.4.9. ndices negativos. emos que ps undo usmos ndies negtivos
bbb a4hol4 bbb H 9h9 bbb EI 99 bbb EP 9l9 bbb EQ 9o9 bbb ER 9h9 bbb ES rek @most reent ll lstAX pile 4`stdinb4D line ID in c sndexirrorX string index out of rnge

5.4.10. Booleanos. n vrile oolen slo puede tomr dos vloresX rue @iertoA o plse @flsoAF ills son el resultdo de ompriones entre vloresF upondremosD pr los ejemplos siguientesD que l vrile aIH y l vrile aPHF il operdor aaD evl si los vlores de los dos operndos son o no igulesD si son igules l ondiin es rue si no lo son es plseF in nuestro soD @ aa A es plseF il operdor 3aD evl si los vlores de los dos operndos son distintos o son igulesD si son distintos l ondiin es rue si no lo sonD es deir son igulesD es plseF in nuestro soD @ 3a A es rueF il operdor `bD evl si los vlores de los dos operndos son distintos o son igulesD si son distintos l ondiin es rue si no lo sonD es deir son igulesD es plseF in nuestro soD @ `b A es rueF il operdor bD evl si el vlor del operndo izquierdo es myor que el vlor del operndo derehoF i l respuest es si entones l ondiin es rue si l respuest es no entones l ondiin es plseF in nuestro soD @ b A es plseF

IQR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

il operdor `D evl si el vlor del operndo izquierdo es menor que el vlor del operndo derehoF i l respuest es si entones l ondiin es rue si l respuest es no entones l ondiin es plseF in nuestro soD @ ` A es rueF il operdor baD evl si el vlor del operndo izquierdo es myor o igul que el vlor del operndo derehoF i l respuest es si entones l ondiin es rue si l respuest es no entones l ondiin es plseF in nuestro soD @ ba A es plseF il operdor `aD evl si el vlor del operndo izquierdo es menor o igul que el vlor del operndo derehoF i l respuest es si entones l ondiin es rue si l respuest es no entones l ondiin es plseF in nuestro soD @ `a A es rueF vos ondiionles pueden ser unidos usndo ls plrs reservds ndD or o notF i oupmos un nd pr unir dos ondiiones lgis tenemos que ms ondiiones deen stisferse pr que el ondiionl se iertoF in el so de oupr or pr unir dos ondiE iones lgis un de ells dee ser stisfeh pr que el ondiionl se iertoF pinlmente el not se ntepone un ondiin y l niegD es deirD ser ierto si l ondiin no es stisfehF in todos los so se pli que plse== 0 y rue== 1 @en relidd rue! = 0AF

5.5. Imprimiendo e ingresando.


v intruin print2 evl l expresin l dereh y esrie el ojeto resultnte l standard outputF i el ojeto no es un stringD primero lo onvierte en string usndo ls regls de onversin y luego lo esrie en el standard outputF elgunos ejemplos simplesD
bbb print 4rol mundo34 rol mundo3 bbb print bbb print 4rol4D 4mundo4 rol mundo bbb print @ID PA @ID PA

5.5.1. Imprimiendo en la misma lnea. egregndo un om @DA l (nl de un instruin print hr que el prximo omndo print prez en l mism lneF ijemplo
print numID4C4D numPD 4a4D print respuest
2 En Python 3.x

print

deja de ser una instruccin y pasa a ser una funcin,

print("Hello world!")

5.5.

IMPRIMIENDO E INGRESANDO.

IQS

5.5.2. Imprimiendo un texto de varias lneas. i queremos imprimir un texto que teng vris lnes podemos usr dos forms distints de l funin print usndo el rter n o ien usndo un texto entre triple omill
bbb print 4primer linensegund line4 primer line segund line bbb print 444primer line FFF segund line444 primer line segund line

5.5.3. Composicin. e pueden ominr sentenis simples en un ompuestD trvs del operdor 4D4X
bbb x a 4ilizeth4 bbb print 4u nomre es X 4D x bbb u nomre es X ilizeth

in el ejemploD x fue signdo explitmente un vrileD pero nturlmente ulquier tipo de signin es posileD por ejemploX
bbb promedioa@notCextrreditosAGposiles bbb print 4u promedio es X 4D promedio

5.5.4. Imprimiendo con formato il siguiente omndo ilustr omo se puede imprimir on formto
bbb entero a IS 5 snt bbb rel a QFIRISW 5 plot bbb den a 4rol4 5 tring bbb print 4|7RdD 7TFRfD7Ss4 7 @enteroDrelDdenA | ISD QFIRITD rol

5 string 7 @tuplA

5.5.5. Entrada (input). r leer strings del stdin use l instruin rwinput@AD por ejemplo
nomre a rwinput@4gul es tu nomrec4A

i neesit leer nmeros del stdin use l instruin input@AX

IQT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

numeroainput@4guntosc4A

in mos sosD el mensje entre omills dentro de los prntesis es opionlD sin emrE goD lr l usurio lo que el progrm le est soliitndoF in el siguiente pr de ejemplosD el progrm soliit informin l usurioD slvo que en el primeroD el progrm qued espernE do un respuest del usurioD quienD menos que sep de ntemno qu quiere el progrmD no tiene modo de ser por qu el progrm no ontin ejeutndoseF ijemplo sin mensje @qued esperndo pr siempre un respuestAX
bbb nomre a rwinput@A

ijemplo on mensjeX
bbb nomre a rwinput@4gul es tu nomrec4A gul es tu nomrec edro bbb

5.6. Tipos avanzados, contenedores.


vos ontenedores del lenguje son ListasX ls lists son oleiones ordends de elementos o tems @stringsD nmeros o inluso otrs listsAF vs lists estn enerrds entre prntesis F gd tem en un list est seprdo por un omF TuplasX ls tupls son oleiones ordends e inmutle de elementos o tems @stringsD nmeros o inluso otrs tuplsAF vs tupls estn enerrds entre prntesis @ AF gd tem en un tupl est seprdo por un omF n tupl es un list inmutleF ConjuntosX los onjuntos se onstruyen medinte set@itemsA donde tems es ulquier ojeto iterleD omo lists o tuplsF DiccionariosX un diionrio es un olein de tems que tiene un llve y un vlorF vos diionrios estn enerrdos entre prntesis de llve { }F gd elemento est seprdo por un om y d elemento est ompuesto por un pr llveXvlor
5.6.1. Listas. emos ejemplos de lists
msots a 4perros4D 4gtos4D 4nrios4D 4elefntes4 numeros a IDPDQDRDSDT oss a ID ISD 4goril4D PQFWD 4lfeto4

5.6.

TIPOS A ANZADOS, CONTENEDORES. V

IQU

ipo hesripin ijemplo list lists ID 9hum9D PFH tuple tupls @ID 9hum9D PFHA set onjuntos set@ID 9hum9D PFHA dit diionrio {99XUFHD PQX rue} gudro SFPX vos tipos ontenedores del lenguje ythonF n elemento de un list puede ser otr listF n list dentro de otr list es llmd lista anidadaF e ontinuin un ejemplo de lists nidds
prher a 4limpir4D 4omid perro4D 4omid gto4D4omid pez4D 4en4

5.6.2. Rebanando listas. n list puede ser esd l igul que un string usndo el operdor F r eder un vlor de l list uno dee ser su ndie de posiinF ijemplo
bbb lista4edro4D 4endres4D 4time4D 4tun4 bbb print listH edro bbb print listIX 9endres9D 9time9D 9tun9

i uno remueve un item desde l listD el ndie puede mir por el de otro tem en l listF r esr un item en un list nidd hy que proveer dos ndiesF ijemplo
bbb listplrs a 4perro4D 4fluffy4D 4mnh4D 4toto4D 4gto4 bbb print listplrsIP toto

5.6.3. Mutabilidad. e difereni de los strings ls lists son mutlesD lo que signi( que se pueden mirF ijemplo
bbb string a 4perro4 bbb string P a 4d4 5 rek @most reent pile 4`stdinb4D line ypeirrorX ojet does ist xy es un instruion evshe ll lstAX ID in c not support item ssignment

in mio en un list

IQV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

bbb list a 4p4D 4e4D 4r4D 4r4D 4o4 bbb list P a 4d4 bbb print list 9p9D 9e9D 9d9D 9r9D 9o9

5.6.4. Modicando listas. gomo se muestr en l omprin nterior un list puede ser mid usndo el operdor F ijemplo
bbb lista4edro4D 4endres4D 4time4D 4tun4 bbb listHa4wtis4 bbb print list 9wtis9D 9endres9D 9time9D 9tun9 bbb listIXPa4perro4D4gto4 bbb print list 9wtis9D 9perro9D 9gto9D 9time9D 9tun9

5.6.5. Agregando a una lista. r gregr items l (nl de un list use listFppend@itemAF ijemplo
bbb lista4edro4D 4endres4D 4time4D 4tun4 bbb listFppend@4wtis4A bbb print list 9edro9D 9endres9D 9time9D 9tun9D 9wtis9

xotemos que ls operiones que modi(n l list l modi(rn de mner tl que si multiples vriles puntn l mism list tods ls vriles mirn l mismo tiempoF
bbb bbb bbb bbb va wav 5 modifi ms lists vFppend@ojA

r rer un list seprd se puede usr el rendo o l funin list pr rer un opiF
bbb bbb bbb bbb bbb va wavX 5 rendo un opi xalist@vA 5 re otr opi 5 modifi solo v vFppend@ojA

5.6.

TIPOS A ANZADOS, CONTENEDORES. V

IQW

5.6.6. Borrando items de una lista. se el omndo del pr remover items sdo en el ndie de posiinF ijemplo en form intertivo
bbb lista4edro4D 4endres4D 4time4D 4tun4 bbb del listI bbb print list 9edro9D 9time9D 9tun9

r remover items desde un list sin usr el ndie de posiinD use el siguiente omnE do nomrelistFremove@4item4A que orr l primer priin del item en l listF n ejemplo intertivo
bbb jovenes a 4nho4D 4ole4D 4timmy4D 4nho4 bbb jovenesFremove@4nho4A bbb print jovenes 9ole9D 9timmy9D 9nho9

5.6.7. Operaciones con listas. vs lists se pueden sumr resultndo un sol list que inluy ms lists iniilesF edemsD podemos multiplir un list por un entero n oteniendo un nuev list on n rplis de l list iniilF emos ejemplos de ms operiones en form intertiv
bbb listIa4edro4D 4endres4D 4time4D 4tun4 bbb listPa4gto4D P bbb print listIClistP 9edro9D 9endres9D 9time9D 9tun9D 9gto9D P bbb print listPBP 9gto9D PD 9gto9D P bbb print PBlistP 9gto9D PD 9gto9D P

v senteni listnmeFsort@A pone l list en orden lftio yGo numrioF


5.6.8. Tuplas. n tupl no puede modi(rse de ningn modo despus de su reinF
bbb t a @44D 44D VA bbb tH 99

IRH

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

n tupl se de(ne del mismo modo que un listD slvo que el onjunto se enierr entre prntesis @ AD en lugr de entre orhetes F vos elementos de l tupl tienen un orden de(nidoD omo los de l listF vs tupls tienen primer ndie HD omo ls listsD de modo que el primer elemento de un tupl tD no v es siempre tHF vos ndies negtivos uentn desde el (nl de l tuplD omo en ls listsF vs poriones funionn omo en ls listsF edviert que l extrer un porin de un listD se otiene un nuev listY l extrerl de un tuplD se otiene un nuev tuplF xo hy mtodos soidos tupls @tl omo ppend@A en un listAF xo pueden dirse elementos un tuplD no pueden eliminrse elementos de un tuplD no pueden usrse elementos en un tuplD se puede usr in pr ver si un elemento existe en l tuplF vs tupls son ms rpids que ls listsF i est de(niendo un onjunto onstnte de vlores y todo lo que v h her on l es reorrerloD utilie un tupl en lugr de un listF n tupl puede utilizrse omo lve en un diionrioD pero ls lists noF vs tupls pueden onvertirse en lists y vie versF v funin inorpord tuple@listA tom un list y devuelve un tupl on los mismos elementosF v funin list@tuplA tom un tupl y devuelve un listF
5.6.9. Conjuntos vos onjuntos no mntienen el orden ni ontienen elementos duplidosF e suelen utilizr pr eliminr duplidos de un seueniD o pr operiones mtemtis omo interseinD unin difereni y difereni simtriF ixiste tmin un versin inmutle de los onjuntosF emos lgunos ejemplosX
bbb onjuntoe a set@4primero4D 4segundo4D 4terero4D 4primero4A bbb onjuntoe set@9terero9D 9segundo9D 9primero9A bbb onjuntof a set@4segundo4D 4urto4A bbb onjuntof set@9urto9D 9segundo9A bbb onjuntoe 8 onjuntof 5 sntersein set@9segundo9A bbb onjuntoe | onjuntof 5 nin set@9urto9D 9primero9D 9segundo9D 9terero9A bbb onjuntoe E onjuntof 5 hifereni eEf set@9primero9D 9terero9A bbb onjuntof E onjuntoe 5 hifereni fEe set@9urto9A bbb onjuntoe onjuntof 5 hifereni simtri set@9urto9D 9primero9D 9terero9A onjuntoinmutle a frozenset@44D 44D 44A 5 xo es mutle

5.6.

TIPOS A ANZADOS, CONTENEDORES. V

IRI

5.6.10. Diccionarios. vos diionrios son preidos ls listsD exepto que en vez de tener signdo un ndie uno re los ndiesF
list a 4primero4D 4segundo4D 4terero4 diionrio a {HX4primero4D IX4segundo4D PX4terero4}

r rer un diionrio deemos enerrr los item entre prntesis de llve {}F heemos proveer un llve y un vlorD un signo X se ui entre l llve y el vlor @llveXvlorAF d llve dee ser niF gd pr llveXvlor est seprdo por un omF emos un pr de ejemplos on diionrios
ingles a {9one9X9uno9D 9two9X9dos9}

no en jpons
nihongo a {} nihongo4ihi4 a 4uno4 nihongo4ni4 a 4dos4 nihongo4sn4 a 4tres4 print nihongo { 9ihi9X9uno9D 9ni9X9dos9D 9sn9X9tres9}

r eder el vlor de un tem de un diionrio uno dee entrr l llveF vos diionrios slo trjn en un direinF no dee dr l llve y le devolvern el vlorF no no puede dr el vlor y que le devuelvn l llveF ijemplo
nihongo a { 9ihi9X9uno9D 9ni9X9dos9D 9sn9X9tres9} print nihongo9ihi9 uno

xotemos que este diionrio trdue del jpons l espol pero no del espol l jponsF
5.6.11. Editando un diccionario. r mir un vlor de un prD simplemente resgnelo
nihongo4ihi4aI

r gregr un pr llveXvlorD ntrelo


nihongo4shi4autro del nihongo4ihi4

r remover un pr use del

IRP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

r ver si un llve y existeD use l funin hskey@A


nihongoFhskey@4ihi4A

r opir el diionrio entero use l funin o mtodo opy@AF


jponesa nihongoFopy@A

vos diionrios son mutlesF no no tiene que resignr el diionrio pr her mE ios en lF vos diionrios son tiles d vez que usted tiene items que dese ligr juntosF min son tiles hiendo sustituiones @reemple todos los x por yAF elmenndo resultdos pr un inspein rpidF riendo mens pr progrmsF grendo mini ses de dtos de informinF

5.7. Control de ujo.


in est sein veremos los ondiionles y los ilos o ulesF
5.7.1. Condicionales. vos ondiionles son expresiones que puede ser ierts o flssF or ejemploD el usurio tipe l plr orretc o il nmero es myor que IHc il resultdo de l ondiin deide que suederD por ejemploD todos los nmeros myores que IHH rstele PHD undo l plr ingresd se l orretD imprim 4fien34 5.7.2. Posibles condicionales. x aa y 5 x es igul yF x 3a y 5 x no es igul yF x `b y 5 x no es igul yF x b y 5 x es myor que yF x ` y 5 x es menor que yF
x ba y x `a y 5 x es myor igul yF 5 x es menor igul yF

e ontinuinD lgunos ejemplos de los nteriores ondiionlesX


x aa IPS

5.7.

CONTROL DE FLUJO.

IRQ

psswd aa 4nix4 num ba H letter b 4v4 numGP aa @numIEnumA num 7S 3a H

5.7.3. Comparando strings. vos strings tmin pueden ser usdos en omprionesF he uerdo ythonD tods ls letrs minsuls son myores que ls letrs mysuls es 44b44F n uen ide es onvertir todos los strings mysul o minsulD segn se el soD ntes de her omprionesF eordemos que el mdulo string ontiene vris funiones tiles inluyendoX lower@stringA y upper@stringAF evise l doumentinF 5.7.4. El if. e ontinuinD estudiemos l instruin ifD prtmos de l form generl de l instruE inX
if ondiionX instruiones

rimero l plr lve ifD luego l ondiin ondiionD que puede ser lgo omo x`y o xaayD etF v lne termin on X requerido por l sintxis del ifF in ls lnes siguientes instruionesD viene ls instruiones seguir si l ondiin es iertF ists instruiones deen ir on sngr @indent AF n ejemplo de un onstruin if simpleF
num a input@4intre su edd4A if num ba PIX print 4erson myor de edd4 print 5line en lno print 4qris4

5.7.5. El if. . . else. v form generl de l onstruin ifFFFelse ontinuinX

IRR
if ondiionX instruionesI elseX instruionesP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

il else dee de estr despus de un prue ondiionlF lo se ejeutr undo l ondiin evlud en el if se flsF se est onstruin undo teng dos onjuntos diferentes de instruiones relizr dependiendo de l ondiinF n ejemplo
xa input@4sngrese un numeroX 4A if x7P aa HX print 4el numero es pr4 elseX print 4el numero es impr4

5.7.6. Forma compacta del if. . . else. ixiste un form ompt de expresr un if elseF in est onstruin se devuelve e si l evlur l ondiin gyxh est result iertD si no se umple se devuelve fD es deirD e if gyxh else fF emos un ejemploX
num a input@4sngrese un nmero enteroX 4A pridd a 4pr4 if @num 7 P aa HA else 4impr4 print pridd

5.7.7. El if...elif...else. v form generl de l onstruin ifFFFelifFFFelseD ontinuinX


if ondiionIX instruionesI elif ondiionPX instruionesP elseX instruionesQ

r ms de dos opiones use l onstruin on elifF elif es l form ortd de ls plrs else ifF vs instruiones soids l opin else se ejeutrn si tods ls otrs fllnF n ejemplo onretoX
xainput@99sngrese un numero X 99A if x`H X

5.7.

CONTROL DE FLUJO.

IRS

print elif xaaH print elseX print

xD4 es negtivo4 X xD4 es ero4 xD4 es positivo4

vos if pueden ser niddosF e uiddosoD y que l nidin puede proE duir onfusin y deer ser usd on moderin y mesurF euerdeX Plano es mejor que anidadoF
Consejo:

5.7.8. La palabra clave pass. il omndo pss no reliz in lgunD es deirD no he ndF n ejemplo
if x`HX hglgo@A elseX pss 5 no he nd

5.7.9. Operadores lgicos. e ontinuinD lgunos ejemplos de operdores lgiosX


if xbH nd x`IHX if ybH nd xbHX if pwdaa4odigo4 or pwdaa4fuente4X if ybH or x`HX if not@x`yAX if xby or not@x`HAX

5.7.10. Forma alternativa, de hacer una pregunta compuesta. gundo pruee vlores pr ` o bD ests prues pueden ser esrits omo un slo ondiE ionl sin usr el ndF emos ejemplos
if H`x`IHHX if IHHH ba x baHX

IRT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.7.11. Qu contiene una lista? gon l plr reservd in podemos preguntr si un tem est en un listD vemos un ejemplo
list a 4rojo4D 4nrnjo4D 4verde4D 4zul4 if 4rojo4 in listX print 4ir rojo4

v plr lve not puede ser omind on in pr her l pregunt ontrriD es deirD si un tem no est en un listF emos un ejemplo
list a 4rojo4D 4nrnjo4D 4verde4D 4zul4 if 4purpur4 not in listX print 4xo hi purpur4

5.7.12. Iteraciones con while. v plr reservd while puede ser usd pr rer un iterinF v instruin while neesit un ondiin que es iert y luego dej de serloD por ejemplo un ontdor que se inrement y super un vlor lmiteF ijemplo
xaH while x ` IHX print x x a xCI

r her un sein de digo reusleD en vez de usr vlores onstntes use vrilesF rimero un ejemplo no generlizdo
Consejo:

xaH while x ` IPX print PBx x a xCI

ehor el mismo ejemplo generlizdo


mxnumaIP numaP xaH while x ` mxnumX print numBx x a xCI

5.7.

CONTROL DE FLUJO.

IRU

tiliemos l instruin while pr her un slid ordend pr un progrmF il digo de espe del tuldor @tA en un string permite her tulionesF vos tuldores mntienen los items linedos dndo un slid ordendF ijemploD en este so ominndo l instruin while y el digo de espe del tuldor hremos un tlX
xaI while x ` IHX print xD 4t4D xBx x a xCI

5.7.13. Recorriendo un string. no puede deser her un prue sore d un de ls letrs que omponen el string tods de un vezF ry dos mners de her esto usndo un instruin while o un instruin for pr relizr el ilo o loopF rimero vemos el ilo on whileX
plr a 4omputdor4 indie a H while indie ` len@plrAX letr a plrindie print letr indieaindie CI

5.7.14. El ciclo for. n mner ms ompt de esriir el ilo usndo un ilo forD vemos mo qued el digo
plr a 4omputdor4 for letr in plrX print letr

while

donde se reorrio un strings es

xotemos que hemos redo l vrile letr undo iniimos el ilo forF e ontinuinD un ejemplo ms ompleto del ilo forX
53GusrGinGenv python 5 EBE odingX isoEVVSWEI EBE 5 rogrm que uent voles import string plr a rwinput@4intre un plr X 4A

IRV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

plrmin a stringFlower@plrA volesa4eiou4 ontdor a H for letr in plrminX if letr in volesX ontdoraontdor CI elseX pss print 4il nmero de voles en l plr que ingres fueron X 4D ontdor

xotemos l segund lne de este progrm que nos permite ingresr e imprimir strings on rteres entudos y rteres espeilesF
5.7.15. Un ciclo for y las listas. vos ilos for pueden ser usdos on lists de l mism mner que lo ern on stringsD un ejemplo pr mostrrlo
emils a 4otodmilFom4D 4ndmilFom4 for item in emilsX enviemil@itemA

5.7.16. Generando listas de nmeros. v funin rnge@numinitD numfinD numpsoA tom tres rgumentos enterosD el nmero de prtidD el numero (nl y el psoD pr generr un list de enteros que omienE z en el nmero de prtidD termin on un nmero menor que el (nl sltndose el pso seldoD si se omite el pso el slto ser de uno en unoF emos ejemplos
rnge@IHA a HD ID PD QD RD SD TD UD VD W rnge@PDIHA a PD QD RD SD TD UD VD W rnge@HDIIDPA a HD PD RD TD VD IH

5.7.17. El comando break. il omndo rek es pz de slirse de un ilo for o whileF n ejemplo que reorre los nmeros lulndo su udrdo mientrs se menor que SHX
for n in rnge@IDIHAX anBn if b SHX print nD 4l udrdo es 4DD4 b SH4 print 4ey4

5.8.

FUNCIONES PRE-HECHAS.

IRW

elseX

rek print nD4su udrdo es 4D

5.7.18. El comando continue. il omndo ontinue es usdo pr que en un ilo for o while se slte el resto del frgmento de digo y ontinue on l prxim iterin del iloF n ejemplo
for n in rnge@IDIHAX if n ` QX ontinue anBn if b SHX print nD 4l udrdo es 4DD4 b SH4 print 4ey4 rek elseX print nD4su udrdo es 4D

5.7.19. El comando else. n ilo puede tener un sein elseD est es ejeutd undo el ilo termin por her gotdo l listD en un ilo for o undo l omprin lleg ser fls en un ilo whileD pero no undo el ilo es ternimdo on rekF e ontinuinD un progrm que muestr este heho y sirve pr enontrr nmeros primos
for n in rnge@PDIHAX for x in rnge@PDnAX if n 7 x aaHX print nD 4igul 4D xD4B4D nGx rek elseX print nD4es un numero primo4

5.8. Funciones Pre-hechas.


n funin de(ne un onjunto de instruiones o trozo de digoD on un nomre soE idoD que reliz un tre espe( devolviendo un vlor y que puede ser reutilizdoF v funin puede ser red por usted o importd desde lgn mduloF ijemplos de funionesX

ISH

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

he lulo mtemtio

logD senD osD tnD expD hypotF

puniones que genern nmeros l zrD funiones de ingresoD funiones que hen mE ios sore un stringF gdigo heho por el usurio que puede ser reildoF ry un grupo de funiones que vienen hehsD es deirD lists pr usrF r enonE trr qu funiones estn disponiles tenemos l doumentin del ython y un sitio we
httpXGGwwwFpythonForgGdoGurrentGmodindexFhtml

ists funiones preEhehs vienen grupds en rhivos llmdos mdulosF n mner de importrD en nuestro progrmD el mdulo propidoD que ontiene l funin que nos interesD es usr el omndo
import modulonme

n vez importdo el mduloD undo queremos llmr l funin pr usrlD deemos dr el omndo
modulonmeFfuntion@rgumentsA

emos un ejemplo on l funin hypot del mdulo mtemtio


import mth print mthFhypot@VDWA

i nlizmos ls lnes nteriores de digo deemos deir que el mdulo que ontiene ls funiones mtemtis se llm mth y ste inluye l funin hypot que devuelve el lrgo de l hipotenusF il smolo F sepr el nomre del mdulo del de l funinF or supuesto hypot es el nomre de l funin y @A es el lugr pr los rgumentosF n funin podr tener o no tener rgumentosD pero n s deen ir los prntesisD son oligtoriosF vos nmeros VDW son envidos l funin pr que los proeseF in el ejemploD estos nmeros orresponden los dos tetos de un tringulo retnguloF in ls seiones nteriores vimos funiones espeilizds en el ingreso de strings y de nmerosF xos referimos input@A pr nmeros y rwinput@A pr stringsF in este soD input e rwinput orresponden l nomre de ls funionesD y entre los prntesis se ept un string omo rgumentoD el ul es desplegdo omo prompt undo se d el omndoF gomo vimosD este rgumento es opionl en ms funionesD sin emrgoD lo inluyn o noD siempre se deen poner los prntesisF puniones omo input@A y rwinput@A estn inorpords l lenguje y no neesitmos importr ningn mdulo pr usrlsF

5.8.

FUNCIONES PRE-HECHAS.

ISI

5.8.1. Algunas funciones incorporadas. flot@ojA gonvierte un string u otro nmero un nmero de punto )otnteF gon deimlesF int@ojA gonvierte un string u otro nmero un nmero enteroF in deimlesF long@ojA gonvierte un string u otro nmero un nmero entero lrgoF in deimlesF str@numA gonvierte un nmero un stringF divmod@xDyA hevuelve los resultdos de xGy y x 7yF len@sA etorn el lrgo de un string u otro tipo de dto @un list o diionrioAF pow@xDyA etorn x l poteni yF rnge@strtDstopDstepA etorn un onjunto de nmeros desde strt hst stopD on un pso igul stepF round@xDnA etorn el vlor del punto )otnte x redondedo n digitos despus del punto deimlF i n es omitido el vlor por defeto es eroF 5.8.2. La funcin que da el largo de un string o una lista. r enontrr untos rteres tiene un string usmos l funin len@stringAF v funin len requiere un string omo rgumentoF n ejemploX
plr a 4omputdor4 lrgo a len@plrA 5 lrgo a IH

v senteni len@mylistA d el lrgo de l list mylistD es deirD su nmero de elementosF


5.8.3. Algunas funciones del mdulo math. entes de usr ests funiones se dee importr el mdulo mthF
os@xAD sin@xAD tn@xA il roosenoD el roseno y l rotngente de un nmeroF

il osenoD el seno y l tngente de un nmeroF log@xAD logIH@xA il logritmo nturl y el logritmo en se IH de un nmeroF hypot@xDyA etorn el lrgo de l hipotenus de un tringulo retngulo de tetos x e yF
os@xAD sin@xAD tn@xA

ISP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.8.4. Algunas funciones del mdulo string. entes de usr ests funiones se dee importr el mdulo stringF pitlize@stringA one en mysul l primer letr de l primer plrF pwords@stringA one en mysul l primer letr de tods ls plrsF lower@stringA ods ls letrs en minsulsF upper@stringA ods ls letrs en mysulsF reple@stringDoldDnewA reemplz tods ls plrs old en string por ls plE rs newF enter@stringD widthA gentr el string en un mpo de un nho ddo por widthF rjust@stringD widthA tusti( l dereh el string en un mpo de un nho ddo por widthF ljust@stringD widthA tusti( l izquierd el string en un mpo de un nho ddo por widthF split@orionA gonvierte un stringD omo un frseD en un list de plrsF join@listA gonvierte un list de plrs en un frse dentro de un stringF 5.8.5. Algunas funciones del mdulo random. entes de usr ests funiones se dee importr el mdulo rndomF rndrnge@strtD stopD stepA h un nmero pseudo l zr entre el nmero strt y el nmero stopEIF il nmero step es opionlF hoie@sequeneA ilige l zr un ojeto que pertenee l seueni sequene @un listAF or ejemplo sequenea44D 44D 44D 4d4D 4e4F 5.8.6. Algunos otros mdulos y funciones. n funin del mdulo timeX sleep@xA il omputdor qued en pus por x segundosF n pr de funiones del mdulo lendrX prl@yerA smprime un lendrio pr el o yerF prmonth@yerD monthA smprime un lendrio pr el mes month del o yerF

5.9.

FUNCIONES HECHAS EN CASA.

ISQ

5.9. Funciones hechas en casa.


n funin de(ne on un nomre un onjunto de instruiones que relizn un tre espe(F e menudo son lmends en rhivos llmdos mdulosF ueden o no neesiE tr rgumentosF ueden o no retornr explitmente un vlor l progrmD de no de(nirlo explitmente por el progrmdor l funin retorn el vlor xoneF
5.9.1. Receta para una funcin. r usr un funin primero hy que de(nir l funinD drle un nomre y esriir el onjunto de instruiones que l onstituyenF v funin relizr ls instruiones undo es llmdF hespusD en el progrmD llme l funin que y de(niF e ontinuin vemos l de(niin forml de un funin heh por nosotros
def nomre@rgumentosAX instruiones

gomenzmos on l plr defD l ul es un plr requeridF hee ir en minsulsF vuego nomre es el nomre que uno le d l funinF hespus vienes los rgumentos @rgumentosA que orresponden ls vriles que se le psn l funin pr que ls utilieF pinlmenteD XD requeridos l (nl de l lne que de(ne un funinF il loque de instruiones soidos l funin deen tener sngr pr identi(rlos omo prte de l mismF e ontinuinD un ejemploX
5 hefiniendo l funion def mifunion@AX print 4xos gust muho l pisi4 5 sndo l funion definid mifunion@A

v de(niin de un funin puede estr en ulquier prte del progrm on l slvedd que dee estr ntes de que l funin mism se llmdF n vez de(nids ls funines ells se ejeutrn undo sen llmdsF gundo envimos vlores nuestrs funiones se ren ls vriles nomrds en l de(niinF or ejemploX
def mifunion@nomreID nomrePAX print nomreICnomreP

vos nomres de ls vriles de un funin slo sern vlidos dentro de l mism funinD esto es lo que se onoe omo vriles localesF ods ls funiones usn por defeto vriles lolesF

ISR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.9.2. Variables globales. i dese signr un vrile de(nid fuer de l funin en l funinD tiene que utilizr l senteni glolF ist se emple pr delrr que l vrile es glol es deir que no es lolF uede utilizr los vlores de ls vriles de(nids fuer de l funin @y no hy vriles on el mismo nomre dentro de l mismAF in emrgoD esto es inpropido y dee ser evitdo puesto que lleg ser onfuso l letor del progrmD en unto donde se h relizdo dih de(niin de vrilesF sndo l senteni glol qued lro que l vrile se de(ne en un loque externoF
53GusrGinGpython def fun@AX glol x print 9x es9D x x a P print 9x mid 9D x 5min x a SH fun@A print 9il vlor de x es9D x

v slid del progrm


x es SH gmid P il vlor de x es P

5.9.3. Pasando valores a la funcin. r envir los vlores nuestr funin pong los vlores en l llmd de l funinF il tipo de los vlores dee estr de uerdo on lo que l funin esperF vs funiones pueden tomr vriles u otrs funiones omo rgumentosF emos un ejemploX
def mifuntion@nomreID nomrePAX print nomreIDnomreP mifuntion@4zul4D4rojo4A

5.9.

FUNCIONES HECHAS EN CASA.

ISS

5.9.4. Valores por defecto de una funcin. in lguns funionesD se puede her que el uso de lgunos prmetros sen opionles y usr vlores predetermindos si el usurio no dese proporionrlos @los vlores de dihos prmetrosAF isto se he on l yud de vlores preEde(nidosF uedes espei(r los vlores por defeto despus del nomre del prmetro en l de(niin de l funin on el operdor de signin @aA seguido por el rgumento de(nirF
53GusrGinGpython def sy@sD times a IAX print s B times sy@9rol9A sy@9wundo 9D SA

lid del progrm

rol wundowundowundowundowundo

olmente los prmetros que estn en el extremo de l list de prmetros pueden tener vlores por defetoY es deirD no puedes tener un prmetro on un vlor por defeto ntes de uno sin un vlorD en el orden de los prmetros delrdosD en l list del prmetro de l funinF isto se dee que los vlores son signdos los prmetros por l posiinF or ejemplo def fun@D aSA es vlidoD pero def fun@aSD A no lo esF
5.9.5. Argumentos claves. i se tiene funiones on muhos prmetros y se quiere espei(r solmente lgunos de ellosD entones se puede signr los vlores pr tles prmetros on slo nomrrlosD esto se denomin rgumentos lvesF tilizmos el nomre en vez de l posiin que se h estdo utilizndoF isto tiene dos ventjsX l primerD es que usr l funin es ms fil puesto que no se neesit preouprnos del orden de los rgumentosF v segundD es que podemos dr vlores solmente los prmetros que desemosD ondiin de que los otros tengn vlores por defetoF sndo rgumentos lves
53GusrGinGpython def fun@D aSD aIHAX print 9 es9D D 9y es9D D 9y es9D fun@QD UA fun@PSD aPRA fun@aSHD aIHHA

IST v slid esX

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

es Q y es U y es IH es PS y es S y es PR es IHH y es S y es SH

5.9.6. Documentacin de una funcin, docstrings. ython tiene un rtersti interesnte llmd dens de doumentin que genE erlmente se onoen por su nomre ortoX docstringsF Docstrings es un herrmient imE portnte de l que se puede her uso puesto que yud doumentr mejor el progrmF odemos inluso uir dostring en un funin tiempo de ejeuinD es deir undo el progrm est funionndoF sndo Docstrings
53GusrGinGpython def printwx@xD yAX 999smprime el mximo de P numerosF vos dos vlores deen ser enterosF i huiern deimlesD son onvertidos enterosF999 x a int@xA 5 gonvierte enterosD si es posile y a int@yA if x b yX print xD 9es mximo9 elseX print yD 9es mximo9 printwx@QD SA print printwxFdo

v slid
S es mximo smprime el mximo de P numerosF vos dos vlores deen ser enterosF i huiern deimlesD son onvertidos enterosF

5.9.

FUNCIONES HECHAS EN CASA.

ISU

5.9.7. Tuplas y diccionarios como argumentos. i l funin reie un tupl deemos delrrl de l form BnomretuplF i l funin reie un diionrio deemos delrrl de l form BBnomrediionrioF i un funin reie mos tipos de rgumentos deen ir Bnomretupl ntes que los BBnomrediionrioF ijemplo
def funion@BmituplD BBnihongoAX FF

odemos de(nir un funin on un nmero vrile de rgumentos olondo un signo B en un ltimo rgumento
def mifunion@rgumentoID BmsrgumentosAX print rgumentoI for i in msrgumentosX print iD print 5 min mifunion@IA mifunion@IDPA mifunion@IDPDQA mifunion@IDPDQDRA

ue tiene omo slid


I I P I P Q I P Q R

il nmero vrile de rgumentos se rtiul rendo un tuplD on el nomre que se puso despus del BD en el que se lmenn todos los rgumentos opionlesF i no se inluye ningn rgumento diionl l tupl qued vF
5.9.8. La palabra clave return. il omndo return termin l ejeuin de un funinF n ejemplo

ISV
import mth

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

def riz@numAX if num`HX print 4sngrese un numero positivo4 return print mthFsqrt@numA
Consejo: vos ondiionles omo el if son espeilmente til pr trpr y mnejr erroresF se el else pr trpr el error undo l ondiin no es stisfehF

5.9.9. Funciones que tienen un valor de retorno explcito. odemos rer funiones que retorne un vlor l progrm que ls llmF or ejemploX
def sumlos@xDyAX new a xCy return new 5 vlmd l funion sum a sumlos@SDTA

5.9.10. Funciones que tienen ms de un valor de retorno. odemos rer funiones que retorne ms de un vlor l progrm que ls llmF v form en que l funin lo he es devolviendo un tuplD por ejemploX
def operiones@xDyAX sum a xCy rest a xEy proda xBy div a xGy return sumDrestDprodDdiv 5 vlmd l funion print operiones@SDTA DDDd a operiones @VDRA print DDDd

el ejeutr el digo nterior su slid es


@IID EID QHD HA IP R QP P

5.9.

FUNCIONES HECHAS EN CASA.

ISW

5.9.11. Recursin. e llm reursin undo un funin se llm si mismF v reursin permite repetir el uso de un funin inluso dentro de l mism funinF n ejemplo es
def ount@xAX xaxCI print x ount@xA

in este so l funin nun prD este tipo de reursin es llmd reursin in(nitF r prevenir este situin remos un so seF il so se es l ondiin que usr que l funin pre de llmrse si mismF n ejemplo
def ount@xAX if x`IHHX xaxCI print x ount@xA elseX return timeFsleep@IA

in un ejemploD ms delnteD veremos un progrm que lul el ftoril de un nmero en form reursivF
5.9.12. Parmetros desde la lnea de comando. ython puede reiir prmetros diretmente de l lne de omndoF v list sysFrgv los ontieneF upongmos que el progrm se llm minFpy y es omo sigueX
53GusrGinGpython import sys for i in sysFrgvX print i print sysFrgvH

i ejeutmos el progrm on l lne de omndo


jrogndhuelenX~6 FGminFpy h El EEms xvzf

v slid ser

ITH
FGminFpy h El EEms xvzf FGminFpy

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

ytro ejemploD un progrm que sum dos nmeros desde l lne de omndoD
53GusrGinGpython import sys if @len@sysFrgvAbPAX nIaflot@sysFrgvIA nPaflot@sysFrgvPA print nICnP elseX pss

i ejeutmos el progrm on l lne de omndo


jrogndhuelenX~6 FGsumFpy IFP QFS

v slid ser
RFU

i se llm el progrm on menos rgumentosD el progrm no hr ndF

5.10. Ejemplos de funciones: raz cuadrada y factorial.


5.10.1. Raz cuadrada. gon lo visto hst horD y podemos esriir un funin que lule l rz udrd de un nmeroF in generlD pr esriir est funinD deemos tener lro qu se esper de ellX untos son los rgumentos que reiirD si tendr o no vlor de retornoD yD por iertoD ponerle un nomre deudoF r l rz udrdD es lro que el rgumento es un nmero y evidentemente espermos que el vlor de retorno de l funin se tmin un nmeroF vlmndo l funin rizD tenemos l delrinX
def riz@xAX

5.10.

EJEMPLOS DE FUNCIONES: RAZ CUADRADA Y F ACTORIAL.

ITI

heido l nturlez de l funin rz udrdD riz@A no tendr sentidoD y por tnto no orresponde delrrl on un vlor defaultF ehor deemos pensr en mo lulr l rz udrdF sndo un vrinte del mtodo de xewtonEphsonD se otiene que l seueni
xn+1 = 1 2 xn + a xn

onverge a undo n F or tntoD podemos lulr l rz udrd on proximE iones suesivsF il lulo terminr en el pso N D undo l difereni entre el udrdo de l proximin tulD xN D y el vlor de aD se menor que un ierto nmero pequeoX | x2 a | < 1F il vlor de determinr l preisin de nuestro luloF n ejemplo de N digo lo enontrmos ontinuinX
53GusrGinGpython 5 5 rogrm que lul l riz udrd import mth def riz@AX x aGPFH 5 pr omenzr dxD epsilon a IeQD IeEVY while @mthFfs@dxAbepsilonAX x a @x C GxAGPY dx a xBx E Y print 4x a 4D xD 4D preision a 4D dx return x 5 min rainput@4sngrese un numeroX 4A print riz@rA

rimero est l funin rizD y luego el minF in el min se pide l usurio que ingrese un nmeroD el ul se loj en l vrile rD y se muestr en pntll el vlor de su rz udrdF in l implementin de l funin hy vrios spetos que oservrF e h llmdo x l vrile que ontendr ls suesivs proximiones l rzF el (nl del iloD x ontendr el vlor @proximdoA de l rz udrdF dx ontiene l difereni entre el udrdo de x y el vlor de D epsilon es el nmero @pequeoA que determin si l proximin es stisftori o noF

ITP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

il ilo est ddo por un instruin whileD y se ejeut mientrs dxbepsilonD es deirD termin undo dx es su(ientemente pequeoF il vlor soluto del rel dx se otiene on l funin mtemti fsD disponile en el mdulo mth inluido l omienzo del progrmF yservr que iniilmente dxaIeQD esto es un vlor muy grndeY esto permite que l ondiin del while se siempre verdderD y el ilo se ejeut l menos un vezF hentro del iloD se lul l nuev proximinD y se env pntll un mensje on l proximin tul y l preisin lnzd @dd por dxAF iventulmenteD undo l proximin es su(ientemente uenD se sle del ilo y l funin devuelve l min el vlor de x tulD que es l ltim proximin luldF
5.10.2. Factorial. ytro ejemplo til es el lulo del ftorilD de(nido pr nmeros nturlesX
n! = n (n 1) 2 1 , 0! 1 .

n estrtegi es utilizr un ilo forD determindo por un vrile enter iD que v desde I nD gurdndo los resultdos en un vrile uxilir que ontiene el produto de todos los nmeros nturles desde I hst iX
53GusrGinGpython 5 5 rogrm que lul el ftoril def ftoril@iAX f a I for j in rnge@PDiCIAX f a fBj return f 5 min nainput@4sngrese un numeroX 4A print 4il ftoril de 4D nD 4 esX 4D ftoril@nA

yservr que l vrile uxilir fD que ontiene el produto de los primeros i nmeros nturlesD dee ser iniilizd IF i se iniilizr HD ftoril@nA ser H pr todo nF ist funin responde orretmente en el so n = 0D pero retorn el vlor I pr todos los enteros negtivosF ytr estrtegi pr lulr el ftoril es her uso de su propiedd reursiv
n! = n (n 1)! 1! = 0! 1

n progrm que lul el ftoril en form reursiv

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

ITQ

53GusrGinGenv python def ft@nAX if n`PX return I elseX return nBft@nEIA 5min iainput@4sngrese un nturl X4A print 4il ftoril de4DiD4 es 4Dft@iA

5.11. Programacin orientada a objetos.


il prdigm de progrmin onoido omo progrmin orientd ojetos @yyA onsiste en representr o modelr los oneptos relevntes de nuestro prolem resolver medinte lses y ojetosF il progrm onsistir de un serie de interiones entre estos ojetosF ry tres oneptos sios en un lenguje que trj en yyX l hereniD el polimor(smo y el enpsulmientoF evisremos estos oneptos ms delnte en est seinF
5.11.1. Objetos y clases. n ojeto es un entidd que grup un estdo y un funionlidd reliondF il estdo del ojeto est desrito por vriles onoids omo triutosF v funionlidd se model trvs de funiones llmds mtodos del ojetoF n lse es un plntill genri prtir de l ul se pueden rer instnis de los ojetosF ist plntill de(ne los triutos y mtodos que tendr los ojetos de es lseF r rer un lse se prte on l plr reservd lssD luego neesit un nomre pr l lseF vos nomres de ls lsesD por onveninD tiene l primer letr en mysulF hespus del nomre se termin l lne on XF vuego de lo nteriorD se re el uerpo de l lseD ls instruiones que formn este uerpo deen ir on sngrF i l primer lne del uerpo orresponde un den de textoD est den ser l doumentin de l lseF in el uerpo se de(nen ls funiones o mtodos de l lseD d un de ests funiones dee inlur self omo prmetroF emos un ejemplo
lss glsewpwHX 444n ejemplo de lse444 def init@selfD nomreAX selfFlumnoanomre def sludo@selfAX print 4fienvenido4D selfFlumno def promedio@selfDBnotsAX nalen@notsA

ITR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

sumaH for i in notsX sum Cai print 4il promedio de4DselfFlumnoD4es4D round@sumGflot@nADIA ploaglsewpwH@4lo rd4A ploFsludo@A ploFpromedio@RDSFSDQA pedroaglsewpwH@4edro erez4A pedroFsludo@A pedroFpromedio@UDTDSDTDUDTDSA pedroFpromedio@TDSDUDRDTDQA

gremos un instni de un lseD un ojetoD l signrl un vrileD medinte l inE struin ploaglsewpwH@4lo rd4AF r plir un funin o mtodo l nuev instni deemos espei(r en form omplet l instni y el mtodo ploFsludo@AF
5.11.2. Clase de muestra LibretaNotas.
lss viretxotsX def init@selfD nmeD vlueAX selfFnomre a nme selfFpuntje a vlue selfFevluiones a I def sumnot@selfD notAX selfFevluiones Ca I selfFpuntje Ca not selfFelpromedio a selfFpuntjeGflot@selfFevluionesA def promedio@selfAX print selfFnomreD 4X promedio a4D selfFelpromedio

il prmetro self permite referirse l ojeto tulF r ededer los triutos y mtodos dentro del ojeto se dee usr el self y luego el nomre del triuto o mtodoF il mtodo init es espeilD es l funin que se ejeutr si un nuev instni del ojeto es redF ist funin es espeil y permite relizr ulquier proeso de iniilizin que se neesrioF sndo l lse viretxots
eli a viretxot@9ilizeth9D TFSA mrio a viretxot@9wrio9D TFHA rmen a viretxot@9grmen9D TFIA

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

ITS

eliFsumnot@TFPA mrioFsumnot@TFIA rmenFsumnot@TFQA eliFsumnot@TFVA mrioFsumnot@TFUA rmenFsumnot@TFTA eliFpromedio@A mrioFpromedio@A rmenFpromedio@A

gd nuev instni de l lse viretxots dee tener un nomre y un primer not porque s lo requiere el mtodo initF xotemos que d instni tiene su propio promedioF
5.11.3. Valores por defecto. n mtodo puede usr vlores por defetoD estos vlores son usdos undo l funin es llmd sin espei(r los rgumentosF emos un ejemplo de vlores por defeto en un lse
lss hineroX def init@selfD ntidd a HA X selfFntiddantidd def imprime@selfAX print 4ienes4D selfFntiddD 4de dinero4 5 vlmds posiles midinero a hinero@IHHA tudinero a hinero@A midineroFimprime@A tudineroFimprime@A

5.11.4. Herencia. el modelr un onjunto heterogeneo que omprte iertos triutos y funionliddesD pero que demsD tiene suonjuntos que poseen propieddes en omn entre ellos pero no on los otros pree el onepto de hereniF odemos de(nir un lse @lse mdre o superlseA que onteng los triutos y mtodos en omn y luego de(nimos otrs lses @lses hijs o sulsesA que herede los triutos y mtodos omunes y que de(n los triutos y mtodos espe(o de los distintos suonjuntosF

ITT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

r indir ul es l lse mdre de l ul hered l lse hij se olo el nomre de l lse mdre entre prntesis despus del nomre de l lse hijF emos un ejemplo de lse mdreF upongmos que queremos modelr reets de oins
5rereni en ython lss viroX 444glse mdre de l ul heredn ls dems444 def init@selfD utorD tituloD isnD pginsD preioA X selfFutor a utor selfFtitulo a titulo selfFisn a isn selfFpgins a pgins selfFpreio a preio def printuliit@selfA X print 4hel fmdo utor4D selfFutorD print 4su nuev or4D selfFtituloD print 4un volumen de4D selfFpginsD print 4pgins soloX 64D selfFpreio lss hiionrios@viroA X 444glse hijD hered de viro sus triutos y sus metodos444 pss lss xovels@viroAX 444glse hijD hered de viro sus triutos y sus metodos444 pss lss wnul@viroAX 444glse hijD hered de viro sus triutos y sus metodos de mnules de progrmion444 pss 5min miliroawnul@4quido vn ossum4D 4en sntrodution to ython4D 4WUVHWSRITIUTU4D ITRD UHHHA miliroFprintuliit@A

i queremos espei(r un nuevo prmetro l hor de rer un lse hij deemos reesriir el mtodo init en l lse hijF i slo neesitmos ejeutr slo un pr de nuevs instruiones y usr el mtodo de l lse mdre entone usmos l sintxisX

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

ITU

glsewdreFmetodo@selfD rgsA pr llmr l mtodo de igul nomre de l lse mdreF upongmosD en nuestro ejemploD que pr l sulse wnul queremos espei(r el lenguE jeD l ul se re(ere el mnulD es ese so deemos sore esriir el mtodo init omo

sigue

5rereni en ython lss viroX 444glse mdre de l ul heredn ls dems444 def init@selfD utorD tituloD isnD pginsD preioA X selfFutor a utor selfFtitulo a titulo selfFisn a isn selfFpgins a pgins selfFpreio a preio def printuliit@selfA X print 4hel fmdo utor4D selfFutorD print 4su nuev or4D selfFtituloD print 4un volumen de4D selfFpginsD print 4pgins soloX 64D selfFpreio lss hiionrios@viroA X 444glse hijD hered de viro sus triutos y sus metodos444 pss lss xovels@viroAX 444glse hijD hered de viro sus triutos y sus metodos444 pss lss wnul@viroAX 444glse hijD hered de viro sus triutos y sus metodos de mnules de progrmion444 def init@selfD lengujeD utorD tituloD isnD pginsD preioA X selfFlengujealenguje viroFinit@selfD utorD tituloD isnD pginsD preioA def printuliit@selfA X print 4hel fmdo utor4D selfFutorD print 4su nuev or de4D selfFlengujeD

ITV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

print 4X4DselfFtituloD print 4un volumen de4D selfFpginsD print 4pgins soloX 64D selfFpreio 5min miliroawnul@4ython4D 4quido vn ossum4D 4en sntrodution to ython4D 4WUVHWSRITIUTU4D ITRD UHHHA miliroFprintuliit@A

xotemos que tmien soreesriimosD pr prtiulrizrloD el mtodo printuliit@selfAF


5.11.5. Herencia multiple. in ython existe l posiilidd de hereni mltipleD es deirD un lse puede heredr de vris lses mdres simultnementeF r implementr est posiilidd st on esE pei(r ls lses mdres de ls que se hered seprndols por oms en l delrin de l lse hijF in el so de que ls lses mdres tuviern mtodos on el mismo nomre y nmero de prmetros el mtodo que se hered es el de l lses ms l dereh en l de(niinF or ejemploD podrmos tener un lse gervez que heredr de l lse feideloholiD mtodos omo eer@A y triutos omo porentjedelohol y de l lse elimentoD on mtodos omo omer@A y triutos omo porterohidrtos o porteproteinsX
lss gervez@feideloholiD elimentoAX pss

ixiste migueddD si en ms lses mdres est presente un mtodo on el mismo nomE re y on el mismo nmero de rgumentoD digmos un mtodoporteloris@ntiddA est presente en nuestro ejemploF il mtodo que heredrD l lse hijD ser el de l lse elimentoD por ser l lse mdre que est ms l dereh en l de(niinF
5.11.6. Polimorsmo. olimor(smo se re(ere l pidd de los ojetos de diferentes lses de responder l mismo mensjeF isto se suele onseguir trvs de hereniD de l siguiente mnerX un ojeto de un lse hij es simultnemente un ojeto de l lse mdreD de est form donde se requiere un ojeto de l lse mdre se puede utilizr uno de l lse hijF ython no impone restriiones los tipos de los rgumentos que se le pueden psr un funinD por lo tntoD el polimor(smo en ython no es de grn importniF il trminoD polimor(smoD tmin se utiliz pr referirse l sorerg de mtodosD que se de(ne omo l pidd del lenguje de determinr qu mtodo ejeutr de entre vrios mtodos on igul nomre segn el tipo o nmero de los prmetros que se le psF in

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

ITW

ython no existe sorerg de mtodos @el ltimo mtodo soreesrir l implementin de los nterioresAF
5.11.7. Encapsulacin. v enpsulin onsiste en restringir el eso determindos mtodos o triutos de los ojetosD estleiendo s qu puede utilizrse desde fuer de l lse y qu noF in otros lengujes existen modi(dores de eso que de(nen si ulquier puede eder es funin o vrile @por ejemploD puli en CCA o si est restringido el eso slo l propi lse @por ejemploD privte en CCAF in ythonD no existen este tipo de modi(dores de esoD y lo que se suele her es que se restringe el eso un triuto o mtodo usndo un tipo de nomre espeilF i el nomre omienz on dos guiones jos @y no termin tmin on dos guiones josD en ese so ser un mtodo espeilA se trt de un triuto o mtodo privdoD en so ontrrio es plioF
5 inpsulion en ython lss viroX def init@selfD ostoA X selfFosto a osto def printreioulio@selfA X print IFSBselfFosto def printreioemigos@selfA X print IFQBselfFosto

el trtr de eder el triuto


miliroaviro@IHHA print miliroFosto

l slid es
rek @most reent ll lstAX pile 4enpFpy4D line ISD in `moduleb print miliroFosto ettriuteirrorX viro instne hs no ttriute 9osto9

el trtr de eder el mtodo


miliroaviro@IHHA miliroFprintreioulio@A miliroFprintreioemigos@A

IUH l slid es

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

ISHFH rek @most reent ll lstAX pile 4enpFpy4D line IUD in `moduleb miliroFprintreioemigos@A ettriuteirrorX viro instne hs no ttriute 9printreioemigos9

vos errores indin que el ojeto no ept tener ese triuto o ese mtodoD respetiE vmenteF vo nteriorD es deido que ls estmos delrndo privdosF in emrgoD los triutos o mtodos no son relmente privdos y pueden ser esdos usndo llmds espeiles
print miliroFviroosto miliroFviroprintreioemigos@A

5.11.8. Atributos comunes a toda una clase. i neesitmos que lgn triuto lo puedn eder tods ls instnis de un lseD ste puede ser lmend omo triuto de l lseF r rer triutos de l lse omplet ellos se ren fuer de tods ls de(niiones de los mtodos de l lseF istos triutos pueden ser esdo dentro de ls de(niin de los mtodos de l lse usndo l notin xomredelglseFxomredelrileF n ejemplo
53GusrGinGenv python lss guentsX listusuriosa def init@selfDnomreAX selfFnomreanomre guentsFlistusuriosFppend@selfFnomreA def egreso@selfAX guentsFlistusuriosFremove@selfFnomreA print 4peliitiones por tu egreso4D selfFnomreD4F4 print def elimindo@selfAX guentsFlistusuriosFremove@selfFnomreA print 4vo sentimos4D selfFnomreD4usted h sido elimindoF4 print def imprimeusurios@AX if len@guentsFlistusuriosAbHX print 4vos usurios on uent sonX4

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

IUI

for i in guentsFlistusuriosX print 4t4D4t4D4t4Di print elseX print 4xo hy usurios on uentF4 5 min hugo a guents@4rugo rurtdo4A po a guents@4o redes4A luis a guents@4vuis vuo4A imprimeusurios@A hugoFegreso@A imprimeusurios@A luisFegreso@A imprimeusurios@A poFelimindo@A imprimeusurios@A

xotese que l list de usurios es siempre llmd por su nomre ompleto guentsFlumnosF r eder l list fuer de l lseD use su nomre ompleto guentsFlumnosF
5.11.9. Mtodos especiales. ixisten un onjunto de mtodos on signi(dos espeilesD tl omo el mtodo init que y vimosD todos ellos se rterizn porque sus nomres siempre omienzn y terminn on dos guiones jos e ontinuinD los mtodos espeiles utilizdo en l iniilizin y en el orrdo de los ojetosX init@selfD rgsA wtodo invodo despus de rer el ojetoD relizr ls tres de iniilizinF del@selfA wtodo invodo undo el ojeto v ser orrdoF min llmdo el destrutorD se utiliz pr relizr tres de limpiezF vs lses pueden mplir los mtodos regulres de ython pr que funiones sore los nuevos ojetos que renF r de(nir ests mpliiones deemos usr otros nomres espeiles undo de(nimos los mtodos en l lseF emos lgunos de ellosX str@selfA wtodo invodo pr rer un den de texto que represente l ojetoF e utiliz undo usmos print pr mostrr el ojeto o undo usmos l funin str@ojA pr rer un den prtir del ojetoF mp@selfD otroA wtodo invodo undo se utilizn los operdores de omprE in pr ompror si el ojeto es menorD myor o igul un segundo ojeto psdo omo

IUP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

prmetroF iste mtodo dee devolver un nmeroD negtivo si el ojeto es menorD ero si son igulesD y positivo si el ojeto es myorF i este mtodo no est de(nido y se intent omprr el ojeto medinte los operdores `D `aD bo ba se lnzr un exepinF i se utilizn los operdores aa o 3a pr ompror si dos ojetos son igulesD se omprue si son el mismo ojetoF len@selfA wtodo invodo pr ompror l longitud del ojetoF e utilizD por ejemploD undo se llm l funin len@ojA sore el ojetoF il mtodo devuelve l longitud del ojetoF repr wtodo invodo pr imprimir el ojetoF dd@selfD otroA wtodo invodo undo se utiliz el operdor C entre el ojeto y un segundo ojeto que es psdo omo prmetroF su@selfD otroA wtodo invodo undo se utiliz el operdor E entre el ojeto y un segundo ojeto que es psdo omo prmetroF mul@selfD otroA wtodo invodo undo se utiliz el operdor B entre el ojeto y un segundo ojeto que es psdo omo prmetroF div@selfD otroA wtodo invodo undo se utiliz el operdor G entre el ojeto y un segundo ojeto que es psdo omo prmetroF pow@selfD otroA wtodo invodo undo se utiliz el operdor BB entre el ojeto y un segundo ojeto que es psdo omo prmetroF vos nterioresD no son los nios mtodos espeiles que existenF r un enumerin sistemti revise l doumentinF
5.11.10. Ejemplos. emos un primer ejemplo pr mostrr l in de los mtodos init y del
53GusrGinGenv python lss urmenteinformtivX def init@selfDnomreAX print 4yjeto iniilizdo4 def del@selfAX print 4yjeto destruido4 5 min a urmenteinformtiv@A a urmenteinformtiv@A print 4ermine4

5.11.

PROGRAMACIN ORIENTADA A OBJETOS.

IUQ

r ilustrr el uso de lgunos de estos mtodos espeilesD esriimos un lse de veE tores idimensionles en l ul se de(nen l sumD l restD el produto y l impresinD entre sus mtodosF
53GusrGinGenv python from mth import sqrt lss ePdX def init@selfD xaHD yaHAX selfFx a x selfFy a y def module@selfAX return sqrt@selfFxBBPCselfFyBBPA def repr@selfAX return 4@7WFSfD7WFSfA4 7 @selfFxDselfFyA def dd@selfDnewveAX return ePd@selfFxCnewveFxDselfFyCnewveFyA def su@selfDnewveAX return ePd@selfFxEnewveFxDselfFyEnewveFyA def mul@selfDnewveAX return selfFxBnewveFxCselfFyBnewveFy 5min aePd@IFQPUVDPFTUA aePd@QFIDRFPA print print print print print 4rimer vetorX4D D 4egundo vetorX4D C E B Fmodule@ADFmodule@A

5.11.11. El __main__. el (nl de un rhivo independiente que ontiene un lseD es deir en un mduloD se suele poner un pr de lnes que permiten pror l lse undo este rhivo independiente es llmdo omo si fuer un progrmF vs lnes tomn l form
if nme aa 9min9X

IUR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

metodoqueheprues@A

vo nteriorD tmin permite de(nir un funin prinipl en un progrm


53GusrGinGenv python def min@AX pss if nme aa 9min9X min@A

5.12. Objetos conocidos.


elgunos tipos siosD que vimos en l sein SFRD y todos los ontenedores o tipos vnzdosD que vimos en l sein SFTD son relmente ojetosF e ontinuinD revisremos lgunos mtodos de los diferentes ojetos y vistosF
5.12.1. String. r ilustrr lgunos de los mtodos del ojeto stringD supongmos que lo signmos est es un den espidD supongmosD demsD que usremos omo sustring l den esD omo seprdor l den y omo sequeni l den aBaD es deirD de(nimos en modo intertivoX
bbb bbb bbb bbb string a 4est es un den espid4 sustring a 4es4 seuenia4aBa4 seprdora4den4

stringFount@sustringD strtD endA hevuelve el uentr sustring en stringF vos prmetros strt y end porin de string donde se relizr l usquedF ijemplo bbb stringFount@sustringA Q bbb stringFount@sustringDIA P bbb stringFount@sustringDIDUA I

nmero de vees que se enE son opionles y de(nen l

stringFfind@sutringD strtD endA hevuelve l posiin en por primer vezD sustring en stringF i no se enontr devuelve EIF

l que se enontrD

5.12.

OBJETOS CONOCIDOS.

IUS

bbb H bbb S bbb IW bbb EI

stringFfind@sustringA stringFfind@sustringDPA stringFfind@sustringDVDPIA stringFfind@4kden4A

hevuelve un den que result de ontenr los rteres de l seueni seprds por l den stringD es deirD sore l que se llm el mtodoF
stringFjoin@seueniA bbb stringFjoin@seueniA 9aest es un den espidBest es un den espida9 stringFprtition@seprdorA fus l den seprdor en string y devuelve un tupl on un suden desde el iniio hst el seprdorD el seprdorD y un suden desde el seprdor hst el (nl delstringF i no enuentr el seprdorD l tupl ontendr el string ompleto y dos dens vsF bbb stringFprtition@seprdorA @9est es un 9D 9den9D 9 espid9A bbb stringFprtition@seueniA @9est es un den espid9D 99D 99A

stringFreple@sustringD seueniD veesA hevuelve un den en l que se hn reemplzdo tods ls ourrenis de l den sustring por l den seueniF i el prmetro vees se espei( explitmenteD este indi el nmero mximo de ourrenis reemplzrF bbb stringFreple@sustringD seueniA 9aBat aBa un den aBapid9 bbb stringFreple@sustringD seueniDIA 9aBat es un den espid9

stringFsplit@seprdor DmximoA hevuelve un list onteniendo ls sudens en ls que se divide string l dividirlo on el delimitdor seprdorF s no se espei( el seprdorD se us espioF i se espei( mximoD indi el nmero mximo de prtiiones relizrF bbb stringFsplit@seprdorA 9est es un 9D 9 espid9 bbb stringFsplit@A 9est9D 9es9D 9un9D 9den9D 9espid9 bbb stringFsplit@4 4DPA 9est9D 9es9D 9un den espid9 bbb

IUT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.12.2. Listas. slustremos lgunos de los mtodos del ojeto list en modo intertivoX listFppend@ojetoA ede ojeto l (nl de l list listF
bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb ojetoa4f4 bbb listFppend@ojetoA bbb list 99D 9e9D 9i9D 9o9D 9u9D 99D 9e9D 9f9 bbb listFount@ojetoA listF

hevuelve el nmero de vees que se enontr ojeto en l list

bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb ojetoa44 bbb listFount@ojetoA P listFextend@otrlistA elementos l list listF

egreg d uno de los elementos de otrlist D omo

bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb otrlista9I9D9P9D9Q9 bbb listFextend@otrlistA bbb list 99D 9e9D 9i9D 9o9D 9u9D 99D 9e9D 9I9D 9P9D 9Q9 bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb listFppend@otrlistA bbb list 99D 9e9D 9i9D 9o9D 9u9D 99D 9e9D 9I9D 9P9D 9Q9 listFindex@ojetoD strtD stopA hevuelve l posiin en l que se enontr l primer ourreni de ojetoF i se espei(nD strt y stop de(nen ls posiiones de iniio

y (n de un sulist en l que usrF


bbb bbb bbb I bbb S

lista99D9e9D9i9D9o9D9u9D99D9e9 ojetoa4e4 listFindex@ojetoA listFindex@44DQDTA

listFinsert@indieD ojetoA

snsert ojeto en l posiin indieF

5.12.

OBJETOS CONOCIDOS.

IUU

bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb ojetoa4f4 bbb indieaP bbb listFinsert@indieD ojetoA bbb list 99D 9e9D 9f9D 9i9D 9o9D 9u9D 99D 9e9

no se espei( l posiinD se utiliz el ltimo elemento de l listF


bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb indieaP bbb listFpop@indieA 9i9 bbb list 99D 9e9D 9o9D 9u9D 99D 9e9 bbb listFpop@A 9e9 bbb list 99D 9e9D 9o9D 9u9D 99 listFremove@ojetoA

listFpop@indieA hevuelve el vlor en l posiin indie y lo elimin de l listF i

iliminr l primer ourreni ojeto de en l listF

bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb ojetoa4e4 bbb listFremove@ojetoA bbb list 99D 9i9D 9o9D 9u9D 99D 9e9 bbb listFremove@ojetoA bbb list 99D 9i9D 9o9D 9u9D 99

se invo el mtodoD no sore un opiF

listFreverse@A snvierte l listF ist funin trj sore l propi list desde l que

bbb list 99D 9i9D 9o9D 9u9D 99 bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb listFreverse@A bbb list 9e9D 99D 9u9D 9o9D 9i9D 9e9D 99 listFsort@mpaxoneD keyaxoneD reverseaplseA yrden l listF i mpD este dee ser un funin que tome omo prmetro dos vlores x e y

se espei( de l list y

IUV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

devuelv EI si x es menor que yD H si son igules y I si x es myor que yF il prmetro reverse es un ooleno que indi si l list se ordenr de form invers o noD lo que ser equivlente llmr primero listFsort@A y despus listFreverse@AF or ltimoD si se espei(D el prmetro key dee ser un funin que tome un elemento de l list y devuelv un lve utilizr l hor de omprrD en lugr del elemento en siF
bbb lista99D9e9D9i9D9o9D9u9D99D9e9 bbb listFsort@A bbb list 99D 99D 9e9D 9e9D 9i9D 9o9D 9u9

5.12.3. Diccionarios.

diionrioFget@kD defetoA fus el vlor de l lve k en el diionrioF is equivE lente utilizr diionriok pero l utilizr este mtodo podemos indir un vlor devolver por defeto defeto si no se enuentr l lveD mientrs que on l sintxis hkD

de no existir l lve se lnzr un exepinF

bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFget@PA 9dos9 bbb diionrioFget@RD4no est4A 9no est9 bbb diionrioR rek @most reent ll lstAX pile 4`stdinb4D line ID in `moduleb ueyirrorX R diionrioFhskey@kA

gomprue si el diionrio tiene l lve kF

bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFhskey@PA rue bbb diionrioFhskey@RA plse diionrioFitems@A

hevuelve un list de tupls on pres lveXvlorF

bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFitems@A @ID 9uno9AD @PD 9dos9AD @QD 9tres9A diionrioFkeys@A

hevuelve un list de ls lves del diionrioF

5.13.

PROGRAMACIN FUNCIONAL.

IUW

bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFkeys@A ID PD Q diionrioFpop@kD defultA forr l lve k del diionrio y devuelve su vlorF i no se enuentr dih lve se devuelve defult si se espei( el prmetroD sino se espei( lnz un exepinF bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFpop@PD4no est4A 9dos9 bbb diionrio {IX 9uno9D QX 9tres9} bbb diionrioFpop@RD4no est4A 9no est9 bbb diionrioFpop@RA rek @most reent ll lstAX pile 4`stdinb4D line ID in `moduleb ueyirrorX R diionrioFvlues@A

hevuelve un list de los vlores lmendos en el diionrioF

bbb diionrioa{ IX4uno4D PX4dos4D QX4tres4} bbb diionrioFvlues@A 9uno9D 9dos9D 9tres9

5.13. Programacin Funcional.


v progrmin funionl es otro prdigm de progrmin que se s si en su totlidd en el mnejo de funionesD entendiendo el onepto de funin segn su de(niin mtemtiF in los lengujes funionles puros un progrm deer onsistir exlusivmente en l pliin de distints funiones un vlor de entrd pr otener un vlor de slE idF ythonD no es un lenguje funionl puro pero inluye rterstis de los lengujes funionles omo son ls funiones de orden superior y ls funiones nnimsF
5.13.1. Funciones de orden superior. in ls funiones de orden superior pueden eptr funiones omo prmetros de entrd o devolver funiones omo vlor de retornoF vs funionesD omo prmetro o vlor de retornoD son usds omo si se trtrn de ojetos ulesquierF gomo en ython todo son ojetosD ls funiones tmin lo sonD lo que permite mnipuE lrls omo si se trtr de ulquier otro ojetoF emos lgunos ejemplos

IVH
import string def dd@numIDnumPAX print numICnumP def mult@numIDnumPAX print numIBnumP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5 rogrm numI a input@4intre el primer numeroX 4A numP a input@4intre el segundo numeroX 4A menu a {99XddD 9w9Xmult} print 4 pr sumr y w pr multiplirX 4 hoie a stringFupper@rwinput@AA menuhoie @numIDnumPA

ytro ejemplo
def holmundo@idioma4es4AX def holmundoes@AX print 4rol wundo4 def holmundoen@AX print 4rello orld4 def holmundode@AX print 4rllo elt4 eleion a {4es4XholmundoesD 4en4XholmundoenD 4de4Xholmundode} return eleionidiom f a holmundo@A f@A g a holmundo@4de4A g@A holmundo@4en4A@A

5.13.2. Iteraciones sobre listas. intre ls funiones de orden superior que reien un funin omo rgumentoD estn mpD filter y redueF u pliin nos permiten reduir muhos de los ilos for de l progrmin impertivF

5.13.

PROGRAMACIN FUNCIONAL.

IVI

Funcin mp.
mp@funionD seueniD seueniD FFFAF v funin de orden superior mp devuelve un list omo resultdo de plir funion d uno de los elemento de seueniF i l funinD usd omo prmetroD neesit ms de un rgumento entones se neesit ms de un seueniF i lgun de ls seuenisD psds omo prmetrosD tiene menos elementos que ls otrs el vlor que le reie l funin es xoneF e ontinuin ejemplosX bbb import mth bbb listID tuplIa IDPDQDRD @IHDPHDQHA bbb mp@mthFsqrtDlistIA IFHD IFRIRPIQSTPQUQHWSID IFUQPHSHVHUSTVVUUPD PFH bbb mp@mthFsqrtDtuplIA QFITPPUUTTHITVQUWSD RFRUPIQSWSRWWWSUWTD SFRUUPPSSUSHSITTIP bbb listPaIDQDSDU bbb mp@mthFhypotDlistIDlistPA IFRIRPIQSTPQUQHWSID QFTHSSSIPUSRTQWVWID SFVQHWSIVWRVRSQHHUD VFHTPPSUURVPWVSRWI bbb def sumr@xDyAX FFF return xCy FFF bbb mp@sumrDlistIDlistPA PD SD VD II bbb listPaIDQDSDUDW bbb mp@sumrDlistIDlistPA rek @most reent ll lstAX pile 4`stdinb4D line ID in `moduleb pile 4`stdinb4D line PD in sumr ypeirrorX unsupported opernd type@sA for CX 9xoneype9 nd 9int9

Funcin filter.
filter@funionD seueniAF v funin de orden superior filter devuelve un list omo resultdo de veri(r si los elementos de seueni umplen o no un determind ondiinF e d elemento de seueni se le pli funion que dee retornr un vlor oolenoD si el resultdo de plir funion l elemento de seueni es rue se inluye el elemento en l list que retornD si el resultdo es plse no se inluyeF e ontinuin un ejemploX bbb def myorqueIH@xAX FFF return xbIH FFF bbb listaQDTDWDIPDIS bbb filter@myorqueIHD listA IPD IS

IVP
Funcin redue.

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

redue@funionD seueniD iniilAF v funin de orden superior redue devuelve un vlor que es el resultdo de plir funion pres onseutivos de elementos de seueni hst que l list se reduz un solo vlorF i iniil est presente es puesto ntes de los elementos de l seueni reduirF irve omo un vlor por defeto undo l seueni es muy ort o est viF i iniil no es espei(do y seueni ontiene un solo elemento este es el devuelto por redueF v funin redue ser removid de ls iliotes stndrd en ython QFHF r usrl se le deer importr del mdulo funtoolsF e ontinuinD ejemplos en que se sumn yGo se multiplin todos los elementos de un listF bbb def sumr@xDyAX FFF return xCy FFF bbb def mult@xDyAX FFF return xBy FFF bbb listaIDPDQDRDSDTDUDVDWDIHDIIDIPDIQDIRDIS bbb redue@sumrDlistA IPH bbb redue@multDlistA IQHUTURQTVHHHv bbb redue@multDlistDHA H bbb redue@multDPDQA T bbb redue@multDIA I

5.13.3. Las funciones lambda. vs funiones lmd son funiones nnimsD es deirD sin nomre y por lo tnto no pueden ser llmd ms trdeF v sintxis de ls funiones lmd prte por l plr lmd luego el o los prmetros se espei(nD seprdos por oms y sin prntesisD despus vn dos puntos X yD (nlmenteD el digo de l funinF vs funiones lmd estn restringidsD por sintxisD un sol expresinF ist onstruin es muy til pr reduir digoF olvmos revisr los ejemplos pr mpD filter y redue usndoD horD funiones lmd
bbb listIaIDPDQDRDS

5.13.

PROGRAMACIN FUNCIONAL.

IVQ

bbb listPaIDQDSDUDW bbb mp@lmd xD y X xCyD listIDlistPA PD SD VD IID IR bbb listaQDTDWDIPDIS bbb bbb filter@lmd xX xbIHD listA IPD IS bbb listaIDPDQDRDSDTDUDVDWDIHDIIDIPDIQDIRDIS bbb redue@lmd xD y X xCyD listA IPH bbb redue@lmd xD y X xByD listA IQHUTURQTVHHHv

5.13.4. Compresin de listas. in ython QFH mpD filter y redue perdern importni fvor de l omprensin de listsF v omprensin de lists onsiste en un onstruin que permite rer lists prtir de otrs listsF gd onstruiones onst de un expresin que determin mo modi(r los elementos de l list originlD seguid de un o ms sentenis for y opionlmente uno o ms ifF emos los ejemplos nteriores usndo ompresin de listsF
bbb listIaIDPDQDRDS bbb listPaIDQDSDUDW bbb xCy for x in listI FFF for y in listP PD RD TD VD IHD QD SD UD WD IID RD TD VD IHD IPD SD UD WD IID IQD TD VD IHD IPD IR bbb xCy for x in listI FFF for y in listP FFF if listIFindex@xAaalistPFindex@yA PD SD VD IID IR bbb listaQDTDWDIPDIS bbb x for x in list FFF if xbIH IPD IS

5.13.5. Expresiones generadoras y generadores. vs expresiones generdors omprten l mism sintxis que l ompresin de list slE vo que se utilizn prntesis @ A en lugr de prnteis de orhetes F in emrgoD l difereniD es que no devuelven un list sino un ojeto llmdo generdorF

IVR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

bbb listaIDPDQDRDSDTDUDVDWDIHDIIDIPDIQDIRDIS bbb PBn for n in list PD RD TD VD IHD IPD IRD ITD IVD PHD PPD PRD PTD PVD QH bbb @PBn for n in listA `genertor ojet `genexprb t HxUQTb

or otr prteD los generdor son un lse espeil de funin que genern vlores sore los ules se puede iterrF r devolver los vlores iterr se us l plr reservd yieldF emos un ejemplo pr lrrlo
bbb def fngenerdor@iniilD finlD psoAX FFF iterdorainiil FFF while @iterdor` finlAX FFF yield iterdor FFF iterdorCapso FFF bbb fngenerdor@HDIHDPA `genertor ojet fngenerdor t HxUQedb

il generdor puede utilizrse donde se neesite un ojeto iterleF or ejemploD en un ilo forEinD siguiendo on el ejemplo nterior
bbb for i in fngenerdor@HDIHDPAX FFF print iD FFF H P R T V

vos generdores oupn menos memori que un list explit on todos los vlores iterrD y que los vlores se genern slo un vlor l vezF iempre podemos generr un list prtir de un generdor usndo l funin listX
bbb list@fngenerdor@HDIHDPAA HD PD RD TD V

5.13.6. Decoradores. n deordor es un funinD de orden superiorD que reie un funin omo prmetro y devuelve otr funin omo resultdoF vos deordores se usn hitulmente pr gregrle funionliddes extrs funiones y existentesF or ejemploD si se tiene un onjunto de funiones y esrits y por rzones de optimizin se quiere que estn funiones informen el tiempo que onsumen undo se ejeutn podemos usr un deordorF e ontinuinD se muestr un digo ompleto en que se progrm un deordor llmdo deordortiempo

5.13.

PROGRAMACIN FUNCIONAL.

IVS

53GusrGinGenv python import time 5 in est vrile glol se umulr el tiempo totl de ejeuion iempototlaHFH 5 iste es el deordor def deordortiempo@funionAX def nuev@BlistrgsAX tiempoini a timeFtime@A vlor a funion@BlistrgsA tiempofin a timeFtime@A delt a tiempofin E tiempoini glol iempototl iempototlCadelt print 4trdo en ejeutrse4D deltD4segundosF4 return vlor return nuev ddeordortiempo def funI@D AX return C ddeordortiempo def funP@D AX return E def min@AX funI@PD QA funP@RD QA glol iempototl print 4il tiempo totl es4D iempototl if nme aa 9min9X min@A

odemos plir ms de un deordorD est vez se requiere que informe el nomre de l funin en ejeuinF r ello esriimos un segund versin del progrm que inluy un nuevo deordor llmdo deordornomre y luego idiendo un nuev lne on el nomre del nuevo deordor sore ls funiones y existentesF vos deordores se ejeutrn de jo hi rriF e ontinuin l segund versin del digoF

IVT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

53GusrGinGenv python import time 5 in est vrile glol se umulr el tiempo totl de ejeuion iempototlaHFH def deordornomre@funionAX def nuev@BlistrgsAX vlor a funion@BlistrgsA print 4v funion4D funionFnmeD return vlor return nuev def deordortiempo@funionAX def nuev@BlistrgsAX tiempoini a timeFtime@A vlor a funion@BlistrgsA tiempofin a timeFtime@A delt a tiempofin E tiempoini glol iempototl iempototlCadelt print 4trdo en ejeutrse4D deltD4segundosF4 return vlor return nuev ddeordortiempo ddeordornomre def funI@D AX return C ddeordortiempo ddeordornomre def funP@D AX return E def min@AX funI@PD QA funP@RD QA glol iempototl print 4il tiempo totl es4D iempototl if nme aa 9min9X min@A

5.14.

EXCEPCIONES.

IVU

5.14. Excepciones.
vos errores produidos durnte l ejeuin de un progrm se onoen omo exepionesD si ests exepiones no se pturn el progrm se interrunpe mostrndo un error en l onsolF in emrgoD ython es pz de gestionr ests exepiones pturndols medinte loques tryFFFexept y tmin permite que el progrmdor genere sus propis exepiones medinte el uso de l senteni riseF vs exepiones no son rrsD preen menudo en ythonD por ejemploD undo se es un lve de diionrio que no existeD se provo un exepin del tipo ueyirrorY undo en un list se us un vlor que no existe se provo un exepin del tipo lueirrorY undo se invo un mtodo que no existe se provo un exepin del tipo ettriuteirrorY undo en el progrm se re(eren un vrile que no existe se provo un exepin del tipo xmeirrorY undo se mezln tipos de dtosD sin onvertirlos previmenteD se provo un exepin del tipo ypeirrorY undo se trt de rir un rhivo que no existe se provo un exepin del tipo syirrorF
5.14.1. Bloque try ... except. rimero el loque que orresponde tryD que es el frgmento de digo en que podr produirse un exepinD se trtr de ejeutrF i lgun exepin se produe l ejeuin sltr l loque de omndos enezdos por exeptF vo nteriorD puede ser usdo en progrms que pueden presentr un fll jo lgun irunstni y de est form que l ejeuin no se detieneF emos un digo sin tryFFFexeptX
53GusrGinGenv python 5 in ry G ixept filenme a rwinput@4intre el nomre de un rhivo que xy existeX 4A file a open@filenmeA 5 instruion que veremos ms delnte

gon slid
intre el nomre de un rhivo que xy existeX nn rek @most reent ll lstAX pile 4FGerrorIFpy4D line RD in `moduleb file a open@filenmeA syirrorX irrno P xo suh file or diretoryX 9nn9

ehor el mismo digo on un loque tryFFFexeptX


53GusrGinGenv python 5 gon ry G ixept

IVV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

filenme a rwinput@4intre el nomre de un rhivo que xy existeX 4A tryX file a open@filenmeA exeptX print 4erhivo no enontrdoF4

gon slid
intre el nomre de un rhivo que xy existeX nn erhivo no enontrdoF

snluso puede reesriirse en form ms intertiv


53GusrGinGenv python 5 gon ry G ixeptD segund version def openfile@filenmea44AX if filenmeaa44X filenme a rwinput@4intre el nomre del rhivoX 4A tryX myfile a open@filenmeA exeptX print 4erhivo 7s@A no enontrdoF4 7 filenme myfile a openfile@A return myfile 5 min fileI a openfile@A fileP a openfile@4lgoFtxt4A

ython permite utilizr ms de uno exept on un solo loque tryD de form que podmos tomr iones distints en so de diferentes exepionesF r esto st indir el nomre del tipo exepin ontinuin del exeptF e ontinuin un mejor del digo nterior
53GusrGinGenv python 5 gon ry G ixeptD terer version def openfile@filenmea44AX if filenmeaa44X filenme a rwinput@4intre el nomre del rhivoX 4A tryX myfile a open@filenmeA

5.14.

EXCEPCIONES.

IVW

exept syirrorX print 4erhivo 7s@A no enontrdoF4 7 filenme myfile a openfile@A exept ypeirrorX print 4il nomre del rhivo neesit ser un string4 myfile a openfile@A return myfile 5 min fileI a openfile@A fileP a openfile@4lgoFtxt4A fileQ a openfile@IA

gundo pree un exepin en el loque tryD se us en d uno de los exept por el tipo de error que se produjoF in so de que no se enuentreD se propg l exepinF edemsD se puede her que un mismo exept sirv pr trtr ms de un exepin usndo un tupl pr listr los tipos de errores que mnejr el loqueX
53GusrGinGenv python 5 gon ry G ixeptD otr version def openfile@filenmea44AX if filenmeaa44X filenme a rwinput@4intre el nomre del rhivoX 4A tryX myfile a open@filenmeA exept @syirrorD ypeirrorAX print 4rolems on el rhivo 7sD reintenteloF4 7 filenme myfile a openfile@A return myfile 5 min fileI a openfile@A fileP a openfile@4lgoFtxt4A fileQ a openfile@IA

vos loques tryFFFexept puede ontrD demsD on un loque elseD que orresponde un frgmento de digo que se ejeutr slo si no se h produido ningun exepin en el loque tryF
53GusrGinGenv python

IWH

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5 gon ry G ixeptD urt version def openfile@filenmea44AX if filenmeaa44X filenme a rwinput@4intre el nomre del rhivoX 4A tryX myfile a open@filenmeA exept syirrorX print 4erhivo 7s@A no enontrdoF4 7 filenme myfile a openfile@A exept ypeirrorX print 4il nomre del rhivo neesit ser un string pr el nomre4 myfile a openfile@A elseX print 4il rhivo se leyo sin prolems4 return myfile 5 min fileI a openfile@A fileP a openfile@4lgoFtxt4A fileQ a openfile@IA

ixisteD tminD l posiilidd de inluir un lusul finlly que se ejeutr siempreD se produz o no un exepinF ist lusul se suele utilizrD entre otrs ossD pr tres de limpiezF
5.14.2. Comando raise. il progrmdor puede rer sus propis exepionesD pr esto st rer un lse que herede de ixeption o de ulquier de sus lses hijs y se lnz on riseF
53GusrGinGenv python 5 gon ry G ixeptD quint version import string lss irrorheipoheerhivo@ixeptionAX def init@selfDodigoAX selfFodigoaodigo def str@selfAX return 4il rhivo no es del tipo orretoD error 7s 4 7 selfFodigo

5.14.

EXCEPCIONES.

IWI

def openfile@filenmea44AX if filenmeaa44X filenme a rwinput@4intre el nomre del rhivoX 4A tryX lalen@filenmeA if stringFupper@filenmelEQXlA3a44X rise irrorheipoheerhivo@QQA myfile a open@filenmeA exept syirrorX print 4erhivo 7s@A no enontrdoF4 7 filenme myfile a openfile@A exept ypeirrorX print 4il nomre del rhivo neesit ser un string pr el nomre4 myfile a openfile@A elseX print 4il rhivo se leyo sin prolems4 return myfile 5 min fileI a openfile@A fileP a openfile@4lgoFtxt4A fileQ a openfile@IA

guy slid es
intre el nomre del rhivoX entryFpng rek @most reent ll lstAX pile 4FGerrorTFpy4D line QID in `moduleb fileI a openfile@A pile 4FGerrorTFpy4D line IUD in openfile rise irrorheipoheerhivo@QQA minFirrorheipoheerhivoX il rhivo no es del tipo orretoD error QQ

isrimos un ejemplo senillo donde l exepin es lnzd diretmente


53GusrGinGenv python iniil a QQ while rueX print iniilD iniil Ea S

IWP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

if iniil ` HX print rise ixeptionD 9v vrile es menor que ero9

v slid de este digo es


QQ PV PQ IV IQ V Q rek @most reent ll lstAX pile 4FGriseFpy4D line IHD in `moduleb rise ixeptionD 9v vrile es menor que ero9 ixeptionX v vrile es menor que ero

5.14.3. La instruccin assert. v instruin ssert en ython permite de(nir ondiiones que dee umplirse siempreF in so que l expresin oolen se rue ssert no hr ndD pero en so de que se plse ssert lnzr un exepionF eesriimos el ejemplo (nl de l susein nterior on ssertF
iniil a QQ while iniil`IHHX print iniilD iniil Ea S ssert iniil ba HD 9v vrile es menor que ero9

v slid de este digo es


53GusrGinGenv python QQ PV PQ IV IQ V Q rek @most reent ll lstAX pile 4FGrisePFpy4D line VD in `moduleb ssert iniil ba HD 9v vrile es menor que ero9 essertionirrorX v vrile es menor que ero

is ms orto que esriir el ifD es lro pr el que lo lee y diionlmente l senteni no se ejeut en so que el intrprete se invoque on EyF

5.15.

MODULOS.

IWQ

5.15. Modulos.
elgunos prolems que se presentn medid que los digos reen sonX on ientos de lnes es muy fil perderseY trjr en equipo se he difil on digos muy grndesF intonesD ser ueno poder seprr el digo en pequeos rhivos independientesF
5.15.1. Dividiendo el cdigo. il digo puede ser dividido en rhivos seprdos llmdos modulosF e h usdo vrios de estos mdulos nteriormenteD los mdulos stringD mthD rndomD entre otrosF r rer un mdulo slo se dee slvr el digo de l mner usulF il rhivo slvdoD on extensin FpyD puede ser usdo omo mdulo l importrlo desde otro progrmF il nuevo mdulo es usdo tl omo ulquier otro mdulo de ythonF 5.15.2. Creando un mdulo. vo prinipl tener en uent undo se lmen digo en un mdulo es que ese digo se reusleF il digo lmendo dee serD priniplmenteD lses y funionesF ry que evitr tener vriles o omndos fuer de ls de(niiones de ls funionesF vs funiones pueden requerir vlores desde el progrm quien ls llmF e slv el digo omo un rhivo regulr FpyF vuego en el progrm priniplD import el mdulo y se usF 5.15.3. Agregando un nuevo directorio al path. gundo ython us mdulos slo lo he en iertos diretoriosF v myor de los mdulos que vienen on ython son slvdos en GusrGliGpythonF gundo slve sus propios mdulos segurmente lo hr en un lugr diferenteD luego es neesrio gregr el nuevo diretorio sysFpthF ry que onsignr que el diretorio desde el ul se invo ythonD si est en el pthF r editr el sysFpthD en el modo intertivo tipee
bbb import sys bbb sysFpth 5imprime los tules diretorios en el pth bbb sysFpthFppend@9GhomeGusurioGmismodulos9A

hentro de un script usmos pr importr mi mdulos misfuniones que est slvdo en mi diretorio de mdulos
import sys sysFpthFppend@9GhomeGusurioGmismodulos9A import misfuniones

IWR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.15.4. Documentando los mdulos. gomo y vimos los omentrios on triple omill son usdos pr gregr doumentin l digoD ejemplo
def mifunion@xDyAX 444mifunion@ primer nomreD ultimo nomreA 444

e dee usr triple omill l prinipio y l (nl del textoF il texto entre ls triples omills deer explir lo que l funinD lse o mdulo heF ists lnes de doumentin se pueden verD en el modo intertivoD si se d el omndo help@moduleFmifunionAF
5.15.5. Usando un mdulo. r rgr un mdulo se dee inluir l plr reservd import y el nomre del mduloD sin extensinD del rhivo en que fue lmendo el mduloF gundo se llm un funin que pertenee l mdulo se dee inluir el nomre del mdulo F el nomre de l funinD ist no es l ni mner de importrlos y usrlosD vemos unos ejemploD primero l form hitulX
5 en f@xDyA un funion y g un lse on un metodo m@xA del modulo stuff import stuff print stuffFf@IDPA print stuffFg@IAFm@PA

un segund form
5 en f@xDyA un funion y g un lse on un metodo m@xA del modulo stuff from stuff import fD g print f@IDPA print g@IAFm@PA

un terer form
5 en f@xDyA un funion y g un lse on un metodo m@xA del modulo stuff from stuff import B print f@IDPA print g@IAFm@PA

5.15.

MODULOS.

IWS

un ltim mner
5 en f@xDyA un funion y g un lse on un metodo m@xA del modulo stuff import stuff s st print stFf@IDPA print stFg@IAFm@PA

5.15.6. Trucos con mdulos. v lusul import permite importr vrios mdulos en l mism lneD
import mthD time

in el so de que ython no enontrr un mdulo on el nomre espei(doD se lnz un exepin de tipo smportirrorF n mdulo puede ser orrido omo progrm independiente si se inluye ls siguientes lnes l (nl del mdulo
if nme aa 9min9X funionorrer@A

e puede sustituir funionorrer@A por el nomre de l funin prinipl en el mE duloF


5.15.7. Paquetes vos mdulos sirven pr orgnizr y dividir el digoD los pquetes y supquetes sirven pr orgnizr los mdulosF vos pquetes y supquetes son tipos espeiles de mdulos que permiten grupr mdulos reliondosF wientrs los mdulos se orresponden on los rhivosD los pquetes y supquetes se orresponden on los diretorios y sudiretoriosF r que ython onsidere que un diretorio es un pquete st rer un rhivo on nomre initFpyD hitulmente voD en el diretorio en uestinF r que un mdulo pertenez un pquete determindoD st on opir el rhivoD que orresponde l mduloD en el diretorio que orresponde l pqueteF r importr pquetes se utilizD tminD ls plrs reservds import y from FFF import FFFF il rter F sirve pr seprr pquetesD supquetes y mdulosF n ejemploX
53GusrGinGenv python import pqueteFsupqueteFmodulo

IWT

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5 r usr lgun funion que pertenee l modulo pqueteFsupqueteFmoduloFfun@A

5.16.

PICKLE

SHELVE.

IWU

5.16. Pickle y Shelve.


ytr di(ultd que se present l progrmr en ython es omo slvr ls estruturs de dtosD es ien undo se re un diionrioD este se puede slvr omo un rhivo de textoD y luego leerloD el prolem es que no podemos leerlo omo un diionrioF er importnte poder slvr ls lists omo listsD los diionrios omo diionrios y s luego poder leerlos e inorporrlos l digo en form fil y diretF
5.16.1. Preservando la estructura de la informacin. ixisten dos mtodos de preservr l dtX

il mdulo pikle que lmen un estrutur de dtos de ython en un rhivo inrioF ist limitdo slo un estrutur de dtos por rhivoF il mdulo shelve que lmen estruturs de dtos de ython pero permite ms de un estrutur de dtos y puede ser indexdo por un llveF
5.16.2. Cmo almacenar? e import el mdulo shelveD se re un rhivo shelveD se sign un itemD por llveD l rhivo shelveF r trer l dt de vuelt l progrmD se re el rhivo shelve y se es el item por l llveF vos shelve trjn omo un diionrioD se puede gregrD esr y orrr items usndo sus llvesF 5.16.3. Ejemplo de shelve.
import shelve olores a 4verde4D 4rojo4D 4zul4 equipos a 4udx4D 4union4D 4lhile4 shelf a shelveFopen@9mirhivo9A 5 elmenendo items shelf9olores9 a olores shelf9equipos9 a equipos 5 tryendolos de vuelt newlist a shelf9olores9 5 gerrndo shelfFlose@A

IWV

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.16.4. Otras funciones de shelve. r tomr un list de tods ls llves disponiles en un rhivo shelveD use l funin keys@AX
list a shelfFkeys@A del shelf@99A

r orrr un itemD use l funin delX r ver si un llve existeD use l funin hskey@AX
if shelfFhskey@99AX print 4si4

5.17.

TRABAJANDO CON ARCHIVOS.

IWW

5.17. Trabajando con archivos.


il lenguje ython puede ser usdo pr rer progrms que mnipuln rhivos sore un sistem de rhivos en un omputdorF il mdulo os ontiene ls funiones neesris pr usrD listrD renomrr y orrr rhivosF il mdulo osFpth ontiene uns pos funiones espeilizds pr mnipulr rhivosF vs funiones neesris pr rirD leer y esriir rhivos son funiones intrnses de ythonF
5.17.1. Funciones del mdulo os. puniones que slo dn un mirdF
getwd@A

etorn el nomre el diretorio tulF etorn un list de todos los rhivos en un diretorioF gmi de diretorioF wueve el foo un diretorio diferenteF ijeut el omndo

listdir@pthA hdir@pthA

punin que ejeut un omndo del sistem opertivoF


system@9omndo9A

puniones que gregnF


mkdir@pthA

re un nuevo diretorio on el nomre ddoF re un sudiretorio y todos los diretorios del pth requeridosF

mkedirs@pthA

puniones que orrn o remuevenF


remove@pthA rmdir@pthA

forr un rhivoF forr un diretorio y todo dentro de lF gmi el nomre de un rhivo de viejo nuevo

forr un diretorio voF

removedirs@pthA

puniones que minF


renme@viejoDnuevoA renmes@viejoDnuevoA gmi el nomre de un rhivo de viejo nuevo mindo

los nomres de los diretorios undo es neesrioF

PHH

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.17.2. Funciones del mdulo os.path. puniones que veri(nF


exists@fileA isdir@pthA

etorn un ooleno si el rhivo file existeF etorn un ooleno si el file es un rhivoF

etorn un ooleno si el pth es un diretorioF

isfile@fileA

5.17.3. Ejemplo de un cdigo. n progrm que orr todo un diretorio


import osD osFpth pth a rwinput@4hiretorio limpir X 4A osFhdir@pthA filesa osFlistdir@pthA print files for file in filesX if osFpthFisfile@fileAX osFremove@fileA print 4orrndo4D file elif osFpthFisdir@fileAX osFremovedirs@fileA print 4removiendo4D file elseX pss

5.17.4. Abriendo un archivo. r rir un rhivos deemos dr l instruin open@filenmeDmodeA donde filenme es el nomre del rhivo y el mode orresponde un de tres letrs 4r4 pr letur solmente del rhivoD 4w4 pr esritur y 44 pr gregr l (nl del rhivo pr poder mnejr un rhivo ierto hy que rer un vrile on lF ijemplo
slida open@4dtosFtxt4D4w4A slideppenda open@4progrmFlog4D44A entrda open@4rhivoFtxt4D4r4A 5 e ontinuin se deerin usr los rhivos iertos 5 finlmente errrlos

5.17.

TRABAJANDO CON ARCHIVOS.

PHI

5.17.5. Leyendo un archivo. entrdFred@A vee el rhivo ompleto omo un stringF


entrdFredline@A

vee un lne en un stringF vee el rhivo ompletoD d lne lleg ser un item tipo

entrdFredlines@A

string

en un listF

5.17.6. Escribiendo a un archivo. slidFwrite@stringA isrie el string l rhivoF gmo se esriir este depende de en qu modo el rhivo fue iertoF

isrie todos los items tipo string en l list listF gd elemento en l list estr en l mism lne menos que un elemento onteng un rter de newline
slidFwritelines@listA slidD

i queremos usr l instruion print pr esriir sore un rhivo iertoD digmos podemos usr l instruin

slid a open@4resultdosFtxt4D 4w4A print bb slidD dtos 5 smprime dtos en el rhivo resultdosFtxt print bb slid 5 smprime un line en lno en el rhivo resultdosFtxt slidFlose@A

5.17.7. Cerrando un archivo. vos rhivos que hn sido iertosD pr letur o esriturD que y se oupronD deen de ser errdosF il omndo pr errr el rhivo fileD previmente ierto on un omndo openD se d ontinuinX
fileFlose@A

gierr un rhivo previmente iertoF

5.17.8. Archivos temporales. vs funiones en el mdulo tempfile puede ser usds pr rer y mnejr rhivos temporlesF v instruin tempfileFmkstemp@A devuelve un list en el que el segundo item es un nomre l zr que no h sido usdoF vos rhivos temporles estrn lolizdos en el diretorio temporl por defetoF

PHP

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5.17.9. Ejemplo de lectura escritura.


5 rogrm que reemplz un plr viej por otr nuev import stringD tempfileD os 5 reguntrle l usurio por snformion filenme a rwinput@4xomre del rhivoX 4A find a rwinput@4fusque porX 4A reple a rwinput@4eemplelo porX 4A 5 er el rhivo del usurioD lelo y ierrelo file a open@filenmeD 4r4A text a fileFredlines@A fileFlose@A 5 idite l informion del rhivo del usurio nuev a for item in textX line a stringFreple@itemD findD repleA nuevFppend@lineA 5 gree un nuevo rhivo temporl newnmeatempfileFmkstemp@A tempfilenmeanewnmeI newfile a open@tempfilenmeD 4w4A newfileFwritelines@nuevA newfileFlose@A 5 gmie los nomres de los rhivos y orr los temporles oldfileafilenmeC4~4 osFrenme@filenmeD oldfileA osFsystem@4 p 4CtempfilenmeC4 4CfilenmeA osFremove@tempfilenmeA

5.18.

ALGUNOS MDULOS INTERESANTES.

PHQ

5.18. Algunos mdulos interesantes.


ry muhos mdulos que le pueden ser tilesD qu le sugerimos unos poos prtiulrE mente importntesF
5.18.1. El mdulo Numeric. ixtensin numri de ython que greg poderosos rreglos multidimensionlesF
bbb import xumeri s num bbb a numFzeros@@QDPAD numFplotA bbb rry@ HFD HFD HFD HFD HFD HFA bbb IaI bbb rry@ HFD HFD IFD IFD HFD HFA bbb HIaQ bbb rry@ HFD QFD IFD IFD HFD HFA bbb Fshpe @QD PA

5.18.2. El mdulo Tkinter iste pquete es el enrgdo de yudrnos desrrollr l interfz gr( on el usurio de nuestro progrmF r omenzr utilizrlo vemos el siguiente ejemploX
Ejemplo
from kinter import B ventak@A etiquetavel@ventD texta4rol wundo334A etiquetFgrid@rowaID olumnaIA ventFminloop@A

Al ejecutar el programa

PHR

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

in l primer line importmos el mdulo kinterD en l segund remos l ventnD l que es proporiond por el window mngerD en l terer line genermos un etiquetD y que en prtiulr pr este ejemplo oupmos l opin de texto  textD en l urt line uimos l etiquet en l (l I y l olumn I de l ventn @omo no hy ms elementos en el ejemploD l ventn se distriuye omo un mtriz de 1 1A y en l ltim line se die l omputdor que ejeute l orden @eFdF l ventn no preer ntes de leer est lineAD por lo que tod in esrit despus de est line no preer en l ventnF
Elementos importantes en una ventana.

v form de on(gurr un elemento en l ventn es de l formX


punion@msterD opionIavlorID opionPavlorPD FFFA

honde d elemento est determindo por un punionD l vrile mster es l que determin l ventn prtiulr @omo en el ejemplo nterior lo er ventAD y tods ls opiones siguientes tienen un vlor por defeto que podemos mir solo enunindols y dndole el nuevo vlorF elgunos de los elementos que podemos gregr sonX
1. Etiquetas
text X

e enunin llmndo l funin vel@FFFAD uys opiones sonX

il texto que llevr esrito l etiquetF @pFeF textarol3A imge X i quiero gregr un imgenF @pFeF imgeaimgen3 A fg X il olor del textoD si es que l etiquet est onformd por texto @pFeF fgaredA g X il olor del fondo de l etiquet @pFeF galkA width X xos die el lrgo de l etiquet en l ventn @pFeF widthaIHHA
2. Botones

e enunin llmndo l funin futton@FFFAD tiene ls misms opiones que l etiquet y dems se le grgn ls siguientesX equi ponemos el nomre de l funin que se ejeut undo se like el otonF relief X is el relieve que tendr el otonD est vrile puede tomr los vlores pveD esihD xuixD qyyi y shqiD el vlor por defeto es esihD esttiE mente se venX
ommnd X

3 Donde la variable

imagen

est determinada por la funcin

imagen=PhotoImage(file=archivo.gif)

5.18.

ALGUNOS MDULOS INTERESANTES.

PHS

is el nomre del ursor que pree undo psmos el mouse sore el otonD lgunos de los vlores que puede tomr est opin sonX rrowD mouseD penilD questionrrowD irleD dotD strD fleurD hndID hertD xtermD etF itmp X vos itmps son imgenes prehehs que vienen inorpords en kinterD lgunos de los vlores que puede tomr st vrile sonX errorD hourglssD infoD questhedD questionD wrningD etD esttimente se venX
ursor X

3. Input

is equivlente l opin rwinputD y se enuni llmndo l funin intry@FFFAD tiene disponiles ls opiones witdhD gD fgD ursorD entre otrosF e ve de l formX

4. Boton de Checkeo

e llm on l funin ghekutton@FFFA y tiene ls misms opiones que futton@AD se ve sX

5. Men

r rer un men deemos generr un vrile similr l mster que determin l ventnD pero est vez pr determinr l menD l form de her esto es on l funin wenu@FFFAD uyo rgumento dee ser l vrile que represent l ventnF vuegoD on est vrile puedo rer un menD vemos el siguiente ejemploX

PHT
ventak@A F F F menawenu@ventA

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

rhivoawenu@menD teroffaHA menFddsde@lela4erhivo4D menarhivoA rhivoFddommnd@lela4erir4D ommndaeA rhivoFddommnd@lela4xuevo4D ommndafA rhivoFddommnd@lela4lir4D ommndagA editrawenu@menD teroffaHA menFddsde@lela4iditr4D menaeditrA editrFddommnd@lela4gopir4D ommndahA editrFddommnd@lela4gortr4D ommndaiA ventFonfig@menuamenA F F F ventFminloop@A

il digo nterior generr un men llmdo erhivoD que ontiene ls opiones erir @uy funion es e@AAD xuevo @uy funin es f@AA y lir @on funin g@AAD y otro men llmdo iditrD de similres rterstisF
Ubicacin de un elemento en la ventana.

r uir en l ventn los distintos elementos existe l funin grid@FFF A uyos rgumentos son desde que (l @rowA hst que (l @rowspnA y desde que olumn @olumnA hst que olumn @olumnspnA se enuentr el lugr que determinr pr el elemento prtiulrD es importnte ser que ls (ls se enumern de rri hi jo y ls olumns de izquierd derehF r ejeutr grid@A orretmente deemos esriirl seguid de un punto despues de l vrile que tiene signd el elementoD por ejemploX
ventak@A F F F eavel@ventD texta4hol4A

5.18.

ALGUNOS MDULOS INTERESANTES.

PHU

fafutton@ventD texta4eptr4D ommndapA eFgrid@rowaID rowspnaPD olumnaID olumnspnaQA fFgrid@rowaQD olumnaIA F F F ventFminloop@A

il digo nterior pondr el texto hol desde l primer (l hst l segund y desde l primer olumn hst l tererD y dejoD en l (l Q y l olumn I pondr un otn que die eptr y ejeut l funin pF
Atributos del mster.

il mster omo y lo hemos vistoD es l vrile que est determind por l funin k@AD y l form de drle distintos triutos esX
msterFtriuto@vlorA

msterFtriuto@opionIavlorIDFFFA

elgunos de los triutos que le puedes signr un ventn sonF


Ttulo : v form de ponerle el ttulo l ventn es dndo l ordenX
msterFtitle@4texto en el titulo de mi ventn4A

Geometra : e re(ere ls dimensiones de l ventn @l unidd que se oup es HDHPQ

donde nanho y maltoF Conguracin : equ ponemos lguns de ls rterstis generles de l ventnD omo por ejemploD el olor de fondoD el ursor que pree undo el mouse ps sore ellD etF e dee dr l ordenX
msterFonfigure@ursora4nomre ursor4D kgrounda 4olor4A

cmAD

msterFgeometry@4nxm4AD

se dee dr l ordenX

Un ejemplo ms elaborado.

emos un ejemplo usndo los elementos explidosF


5swyy iv eii from kinter import B 5hipsxy xe pxgsyx def slir@AX

PHV
ventFdestroy@A 5hipsxy iv wei ventak@A

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

5esfy hiv wei ventFtitle@4ijemplo4A ventFgeometry@4QSHxIPH4A ventFonfigure@ursora4spider4A 5qehy xe sweqix ix ve esefvi diujoI diujoI a hotosmge@filea4tuxFgif4A 5hipsxy vy iviwixy hi ve ixexe hiujoI a vel@ventD imgeadiujoID ga4white4A xomre a vel@ventD texta4xomre4D fga4white4D ga4red4A nomre a intry@ventD widthaPHD ga4white4A epellido a vel@ventD texta4epellido4D fga4white4D ga4red4A pellido a intry@ventD widthaPHD ga4white4A oton a futton@ventDwidthaQHD texta4lir4D ursora4hndI4D fga4white4D ga4lk4D ommndaslirA 5fsgy vy iviwixy ix ve ixexe hiujoI Fgrid@rowaID rowspnaQD olumnaIA xomre Fgrid@rowaID olumnaPA nomre Fgrid@rowaID olumnaQA epellidoFgrid@rowaPD olumnaPA pellidoFgrid@rowaPD olumnaQA oton Fgrid@rowaQD olumnaPD olumnspnaQA 5itigy iv gyhsqy ventFminloop@A

el ejeutr el progrm el resultdo esX

5.18.

ALGUNOS MDULOS INTERESANTES.

PHW

5.18.3. El mdulo Visual. n mdulo que permite rer y mnipulr ojetos Qh en un espio QhF

PIH

CAPTULO 5.

UNA BREVE INTRODUCCIN A PYTHON.

Captulo 6 Ejercicios Propuestos


6.1. Sistema Operativo
IF in ls pls mdres tules existen elementos llmdos puertos que permiten l onexion entre distintos dipositivosF e ontinuin se nomrn lgunos de ellosF gules son los elementos ms omunes que se onetn en dihos puertosc gywF vF fF shiF eeF GPF PF inumere los elementos sios de hardware que se neesitn pr el funionmiento de un sistem qxGvinuxF hesri revemente d uno de ellosF QF in un tque de uriosiddD el miioso y retirdo fill quiere onoer ms sore el sistem opertivo xsD y en prtiulr sore vinuxF r estoD se pone en ontto on usted y le he vris preguntsX u es un sistem opertivoc gules son ls rterstis del sistem opertivo xsc u es vinuxc u es un distriuin de vinuxc y ules son sus ventjsc xomre S distriuionesF u es kernelc honde est en l redc uin lo mntienec u es software lirec PII

PIP

CAPTULO 6.

EJERCICIOS PROPUESTOS

u es l qxc gul es l difereni entre vinux y qxGvinuxc or qu los virus no ejeren efeto en vinuxc gul es l distriuin de qxGvinux fvorit de heldonc gules son los nomres de los omputdores de l sl de omputin de psic RF in un momento de lriddD el miioso fill quiere onoer ms sore el proyeto heinF r estoD se pone en ontto on sn wurdok y le he tres preguntsX gul es el signi(do de un versin estle en heinc gunts versiones hn sido estles y ules hn sido sus nomres lvesc gules son S ventjs que ofree est distriuin on respeto ls otrsc ente l pregunt de fillD sn entr en un olpso y no puede ontestrlsF u le ontestr usted fillc SF hespus de tener lros los oneptos que roden un distriuinD fill ontt vinus pr onoer mo instlr el sistem hein qxGvinux en su omputdor personlF vinus le responde que dee seguir los siguientes psosX gonoer l rquitetur en que v ser instldo el sistemF gonseguir l distriuinF grer ls prtiionesF snstlr el sistem seF hesri d pso pr que fill logre instlr un sistem sio en su omputdorF TF intre los distintos software pr l visulizin de rhivos pdf existe el desrrolldo por l empres edoeF everige el nomre de este softwareF in trminos de portiliddD qu ventjs tiene el formto de rhivo pdf on respeto otrosc c A or qu este software no se inluye en hein qxGvinuxc d A ixplique detlldmente un mner de instlr este software en hein qxGvinuxF UF no de los software que ms hn usdo sensin en l omunidd es el explordor de snternet qoogle ghromeF
aA bA

6.2.

COMANDOS BSICOS

PIQ

aA

ste se distriuye nimente en formto deF everige qu es un formto de y nomre l menos dos distriuiones que utilien este sistem de pquetesF b A everige qu omndo dee relizr pr instlr este software en su omputdorF

VF everige dos forms de instlr un trjet gr( nvidi en su omputdorF

6.2. Comandos bsicos


IF rg un seueni de diretorios de l siguiente mnerX rimero ree un rpet llmd horosopoD dentro de ell ree dos ms llmds hino y oidentlF in el diretorio hino hg doe rpetsD d un on el nomre de un niml distinto de tl horsopo y dentro de d un de ells ree un rhivo de texto on el mismo nomre de l rpet y uyo ontenido se los os orrespondientes tl signo entre IWHH y PHHUF ehorD en l rpet oidentl ree IP rhivos de texto on los nomres de d signo zodilD que ontengn ls fehs del que rnF in su home hg un diretorio on su feh de nimientoD dentro de ste ree un hard link llmdo hino dirigido l rhivo de texto orrespondiente su signo de diho horsopo dems ree un simbolic link llmdo oidentl l rhivo de texto orrespondiente su signoF PF isri en un rhivo txt los omndos neesrios pr rer l siguiente estrutur de diretorios en su homeF in d diretorio ree un rhivo de texto on el nomre del diretorio y on extensin Ftxt en el que se desri revemente el signi(do del nomre del diretorioF QF sndo l estrutur de diretorios que usted re en P esri en un rhivo txt los omndos neesrios prX
aA bA

cA dA eA fA

forrr el diretorio snopertivoF edemsD opie el diretorio heinD on sus sudiretoriosD un nuevo diretoE rio llmdo dein que uelgue del mismo diretorio histriuionesD luegoD en dein orre los diretorios istleD esting e snestle y entones ree tres link simliosD uno llmdo lenny que punte istleD otro llmdo squeeze que punte esting y (nlmente uno llmdo sid que punte snestleF gmie el nomre del diretorio xs unixF pinlmenteD deer mirle los permisos los diretorios que uelgn de hein tl que permitn ejeuin y letur pr el usurio y el resto del mundoF hentro del diretorio olris mirle los permisos l rhivo olrisFtxt slo letur pr el usurio y su grupo y nd pr el resto del mundoF edemsD suponiendo que usted es root deer mir el grupo del diretorio unix users y l propiedd del diretorio istem rootF

PIR

CAPTULO 6.

EJERCICIOS PROPUESTOS

Sistemas

Software Libre

Operativo

Inoperativo

UNIX

GNULinux

Solaris

Distribuciones

Debian

Otros

Estable

Testing

Inestable

RF everige mo podr mir su prompt de nomredmquin yudntesdgeniles en oloresD no olvide respldr el rhivo originlF SF gree un seueni de diretorios niddos omo sigueX primero su nomre de pilD el segundo su pellidoD el tereroD vieniturD el urto enD y el quinto fisiD mtemti o extsF ehorD desde su homeD opie el primer y quinto diretorio en su homeD dejelos en su home y luego orre los diretorios redos on ls seuenis nteriores exepin de ls dos ltimsF TF e omo redtr en un sol lne de omndo lo siguienteX gmiese de diretorio l diretorio GusrD ve que ontiene @inluyendo los rhivos oultosA pr luego ver detlldmente el ontenido del mismoF gomo est perdido pregunte l omputdor donde estD y omo es opuhento @desde el mismo diretorioAD provehe de preguntr unto diso lire qued @tome onieniAF uelv su diretorio home omente en d pso si sue o j del rol del sistemF UF wuvse l diretorio Gpro y le el rhivo puinfoF u informin ontiene el rhivoc epit esto on otros rhivos del diretorio @l menos QAF gomenteF vuego muvse l diretorio Get y le el rhivo fstF u informin ontiene el rhivoc vuego dirijse lfvenD monte el gh de l tre que se enontrr en l sl y r el rhivo yomonteFtxt y explique su ontenidoF etire el ghD y dejelo en su lugr pr uso de otro ompero @si no puede srloD no olvide desmontrloAF VF ome el rhivo yomonteFtxt sdo del gh y opielo en el diretorio on su nomre

6.2.

COMANDOS BSICOS

PIS

en su home @el del ejeriio SAF vuego hg un link llmdo gh que punte hi ese rhivo en su diretorio llmdo fisiD mtemti o ext @tmin del ejeriio SAF vuego miele los permisosD os que usted pued leer y esriirD el grupo solmente leerD y el resto no pued her ndF WF rg ssh lfvenD monte el d que dejremos en l sl y opie el rhivo que est en lD mie los permisos y ejeteloF isri todos los omndos que us y ls slidsF IHF in su omputdorD ve que usurios estn onetdosD est informin reedireinel un rhivo llmdoX usersdomputdorFtxtD luego gregue l (nl de ese rhiE voD los dtos del usurio mrmirezD omenteF everige omo editr su ln de tl mner que dig o prend editr mi lnD y grguelo l (nl del rhivo usersdomputdorFtxtF IIF xomre progrms que sirvn pr umplir ests tresX r ver rhivos pdfF wnejr hojs de lulosF gonfeionr gr(osF xvegr en l WebF iditr de imgenesF qrr d9sF IPF he l pgin we de los yudntesD desrge el rhivo prueFtzF hesomprmlo y dig de qu tipo de rhivo se trtF vuegoD miele los permisos de leturD esritur y ejeuin pr el usurioD de ejeuin pr el grupo y de letur y esritur pr el resto del mundoF IQF il irresponsle fill dese tener un respldo de l tre de su migo vinusF r estoD fill se que vinus tiene su tre en
GhomeGlinusGursosGPHHTGPsemGprogrmionGtresGtHPGtrePEvinusFtzF

fill se enuentr en GhomeGillD y dese dejr el rhivo en ~GtrePEillFtrFzPF he tres forms de her esto en un sol lneF IRF hesri los omndos neesriosX A r rer l siguiente estrutur de diretoriosX un diretorio llmdo horosopo que ontiene utro diretorios llmdos guD tierrD ireD y fuegoF

PIT

CAPTULO 6.

EJERCICIOS PROPUESTOS

A in d uno de estos diretorios ree tres rhivosD uno pr d signoD que orrespondn l elemento en uestinF A isri en d uno de los rhivos que re l feh de iniio y trmino del signo orrespondienteF dA gmiese l diretorio horosopo y ree un link simlio entre su signo y un rhivo llmdo misignoF ISF fill reie un mil su mejor migo vinus el ul inluye los grtos reuerdos de sus vionesF fill primero dee revisr su mil en un nvegdor weF el rir el milD se enuentr on tres rhivos djuntosX un foto en formto tiffD un rhivo de udio en ogg y un video en mpegF el (nl del texto del mil vinus esrie l direion de su uent jer pr mntenerse en onttoF u software dee tener fill en su sistem qxGvinux pr logrr reordr los grtos momentos y mntenerse en ontto on su migoc ITF gonsultndo los mnules del sistemD explique revemente los omndos detlldos ontinuin
less til tee gCC pidgin msn gnuplot sii gunzip top touh disply

IUF upong que el output de un omndo ls es


userdlolhostX~Gdiretorio 6 ls rolFjpeg rolFjpg roF dniFkFtxt dniFkFtxt~ dniFtxtFk mxFtxt yoFtt

6.2.

COMANDOS BSICOS

PIU

gul es el output de los siguientes omndosc a A ls rB b A ls Bct c A ls BFtctB d A ls BFjcBg IVF fillD l trtr de ompilr un progrm en lenguje gCCD se d uent que el ompiE ldor us no enontrr el rhivo ossimportntesFhF rtndo de resolver este prolemD fill deide usr este rhivo en su sistem lol de rhivosF gul es el omndo pr ser si el rhivo est en su sistemc upong que omo resultdo de l squed fill enontr el rhivo meniondo en GusrGinludeGmisinludesGF ve onsult uno de sus yudntes de rogrmin y wtodos xumrios el motivo de este error de ompilinD el ul responde mleE mente que el ompildor lo us en GusrGinlude y le suguiere que hg un link desde este diretorio omo root hi el rhivo enontrdoF hesri el omndo que le permite her est in y logrrD (nlmenteD ompilr su progrmF il error que se present l ompilr por primer vez fue resueltoF in emrgoD l trtr de ompilr el progrm se present un nuevo errorD est vez l slid que nos entreg el ompildor es
progrmFXPXIVX errorX ossimportntesFhX ermission denied

glrmente esto es un prolem de permisosF isri el omndo que nos permite verigur los permisos de este rhivoF v slid de este omndo es
ErwxrExEEE I root in S PHHTEHVEPQ IVXSQ ossimportntesFh

sndique de quin es el rhivoD qu grupo perteneeD ules son los permisos del usurioD del grupo y del resto del mundoF isri el omndo que le permitir este usurio mir los permisos @omo rootA y poder ompilr el progrmF IWF isri un lne de omndoD que determine el tmo y l uiin del rhivo ms grnde que tengn los usurios de zethF h su respuest en uniddes humnsF PHF isri l@sA lne@sA de omndo@sA que mie todos los rhivos on extensin Ftxt extensin FdtF PIF in un futuro erno l sl de omputinD que usted tiene el privilegio de usrD funionr omo un clusterF smgine que este cluster y est operionl y que usted est en el nodo H @zethA y neesit ser que proesos onsumen ms reursos en los nodos del I l IS @nodoHI l nodoISAF gonstruy un omndo que le permit her estoF

PIV

CAPTULO 6.

EJERCICIOS PROPUESTOS

6.3. Filtros
IF sngniesels pr rer un rhivoFdt que onteng P olumns y P (ls de nmerosD y otro rhivoPFdt on Q olumns y Q (ls de nmerosD pr luego intermir @de lgun formD usndo (ltrosD los que quierD yD ojlD de form originlA stos por letrs de mner que logre esriirX y yD on estos rhivosF e ontinuinD pegue estos rhivos y greguele l mensje su nomreD s otendr en l pntll de su terminlX y y xywfiF edjunte todos estos rhivos su treF PF ome el rhivo ejerQFtxt @uido en el servidor zethA y trvs del uso de (ltrosD en un sol lne de omndoD relieX a A sntermie l segund (l on l sptim b A gmie los W por e c A gmie en l sptim (l l urt priin de por s d A gmie ls por e e A gmie los T de l terer (l por f A gmie en l set (l los V por i g A gmie l del otvo elemento @plrA de l quint (l por h A gmie P por u i A gmie R por s j A ilimine tods ls lnes que ontengn ju isto reedireinelo un rhivo llmdo resultdoIFtxtF vuego de her estoD le el rhivoD y omplete l instruin que die steF ist instruin redireionel tmin resultdoPFtxtF ig los psos en ordenD de lo ontrrio no le resultrF QF sndo (ltrosD enuentre l veloidd de d prtul pr el rhivo veloQprtFdt que se enuentr en el servidor zethF edemsD enuentre su rz udrti medi @VrmsAD el promedioD y l udrti mediF i ls uniddes son wuD d sus resultdos @tminA en gqF rte de interpretr lo que est hiendo @fsi o mtemtimenteY reuerde que el rhivo ontiene ls veloiddes por omponentes de d prtul hondo dentro de un jAF RF everige l ntidd de diso usdo por dos de sus omperos y uno de sus yudntesF i summos ests tres ntiddes u porentje de l pidd totl del Ghome de zeth utiliznc SF tilizndo (ltrosD gurde en un rhivo de texto el pth de todos los rhivos dentro del Ghome de zeth uyo tmo se menor o igul IP uytesF

6.3.

FILTROS

PIW elejndro rs UFH TFS TFH wx mrez UFH TFH TFS hniel gornejo TFH UFH TFS

TF gree el rhivo listHUFtxtD on el siguiente texto

sndo (ltrosD ree el rhivo listHUfinlFtxtD que ordene los lumnos por orden lftio y lule sus promediosD de l form siguiente elumno romedio hniel gornejo TFH UFH TFS TFS wx mrez UFH TFH TFS TFS elejndro rs UFH TFS TFH TFS vs plrs elumno y romedio no deen ir en el rhivo (nlF u@sA lne@sA de omndo deen ser vlids pr ulquier nmero de lumnosF UF n d omo hoyD fill reie un orreo eletrnio on un rhivo djuntoD llmdo mensjeFtxtD que ontiene el siguiente textoX
vVew 7dchetVve erefe evdceg vdc 7dc wVtdcV eheV hVv whdc3 ee Vv Vdc hVv whdcF Vv ee esdcD Vv qdc Vdc hV hsVgdcsdc hVgsfe vVqdc vdc Vwsdc vs 7ewdc 6 Gmedi 6 Gpro 6 Gli vdc hV sqsVV hsVgdcsdcX ws 7hV she V 7VV Vv wVtdc gdc gdcwehdc hVv ls El Vv Vgsfe dc

edemsD su emisorD le esrie ls siguientes instruiones en el mensjeX


aA

snviert el orden de ls lnesD es deirD mie l primer por l ltimD l segund por l penltimD etF

PPH
bA cA dA eA fA

CAPTULO 6.

EJERCICIOS PROPUESTOS

gmie en todo el mensje los n 1 meros V por letrs iD ls por xD y los 2 s 1 molos dc por yF 2 ermute l primer olumn del rhivo on l segundF gmie l primer priin de l letr por en tods ls lnes del rhivoF ilimine todos ls priiones del smolo 6 del rhivoF ilimine tods ls lnes que ontengn el smolo 7F

fillD en medio de su desesperinD reurre usted pr logrr deifrr el mensjeF isri en un rhivo txt todos los omndos neesriosD en el orden desritoD pr poder deifrr el mensjeF n vez desifrdo el mensje relie ls instruiones que ontiene y esri su reE spuest en un rhivo llmdo rhivoFtxtF VF ixplique que hen los siguientes omndosX A A A dA eA fA
grep Ev 6 rhivoFtxt sed Ee 9G6Gd9 rhivoFtxt sed 9yGIPQRGdG9 rhivoFtxt wk 9length b IH9 rhivoFtxt wk 96I 3a prev {printY prev a 6I }9 rhivoFtxt wk 96P b 6I {print i C 99I99YiCC}9 rhivoFtxt

WF nos lumnos de terer o relizn un experimento on un fuente rdiotiv de 137 gsD y otienen un olumn de dtos que orresponde l nmero de eletrones emiE tidosF r posteriormente poder gr(rlos se neesitX iliminr los eros que preen l prinipio de l list de dtosF inontrr el vlor mximo de los dtos otenidosF hividir todos los dtos por el mximo rein enontrdo pr normlizr l urvD es deir que los vlores estn entre H y IF snsertr un olumn l izquierd de l existente de modo que enumere los dtosD esto esD l ldo izquierdo del primer dto experimentl dee her un nmero ID l ldo del segundo un P y si susesivmenteF fusque en l pgin de los yudntes httpXGGzethFienisFuhileFlGmfmHG el rhivo filtrosWFtxt y relie el proedimiento nteriomentre desrito utilizndo (ltrosF isri detlldmente d omndo utilizdoF

6.4.

SCRIPTS
reordrioFtxt

PPI on l siguiente

IHF upong que usted tiene un list en un rhivo estrutur

hniel gornejo tn PT mdnielFornejodgmilFom wx mirez pe IU mxFrmirezdgmilFom tose ogn pe IV jrogndmulFienisFuhileFl elejndro rs yt IQ lejndroFvrsdgmilFom

isri l@sA lne@sA de omndo@sA que le mnde el rhivo feliitionesFtxt l mil orrespondiente si undo se ejeute es el d de su umpleosF

6.4.

IF xos piden ser root del servidor tuxForg donde fill es usurio on username dillF gd vez que fill orre su progrm hgmosdineroFin gener un grn rhivo temporl on nomre uents en el diretorio Gtmp que dej l servidor si sin espio en disoF xuestr misinD omo rootD es proteger l servidorF r ello deemos esriir un script que veri(que si fill est onetdo y si est orriendo su mlvolo progrmF he ser s nuestro script dee pturr el nmero del proeso y eliminrloF edemsD dee omprimir el rhivo temporl on zipP y moverlo l diretorio home de fillD mndndole un orreoD su uent en tuxForgD diindole lo ml que funion su progrm yD (nlmenteD dee imprimir un visoD en l impresor orkyD dirigido l omunidd de usurios de tuxForgD ontndoles que hy poo espio en el disoD otr vezD gris fill y sus fehorsF PF rg un script que hequee el hrdwre de su mquin d un horD y si evenE tulmente enuentr lgun difereni en steD mnde un mil djuntndo el rhivo diferenisFhw pmldondzethF QF ixplique detlldmente en d lne lo que he el siguiente script X
53GinGsh eho Ee introduz un frse X 99 red n lgaeho 6n | w E lgaexpr 6lg E I while 6lg Egt H do nra996nr99eho 6n | ut E 6lg lgaexpr 6lg E I done eho Ee 6n n6nr99 56mmmc

Scripts

PPP

CAPTULO 6.

EJERCICIOS PROPUESTOS

eniendo este script omo ejemploD hg otro que le devuelv l plr que uno esri en el terminlD esrit en jerigonzD pr luego devolverl esrit l revsF RF rg un script que ordilmente les pid el nomre que quieren ponerle l rhivo que ontendr un olumn on los nmeros del I l IHHHD y que le signe el rgumento otro que tendr los mismos nmeros en desordenF vuego hg un men que pregunte si uno los quiere pegrD verlosD ponerles l feh l (nlD orrrlosD o slir del progrmF SF isri un script que les pid desde el terminl l posiin y veloidd iniiles de un ms on movimiento de proyetilD dems del intervlo de tiempo que quiereF e ontinuinD hg el lulo pr por lo menos SHH dtos que envir un rhivoFdt pr gr(rloF qr(que dos omo ejemploD pr s mostrrlos en l pntll undo hll termindo el luloY on un intervlo de seprin entre ellos de S segundosF TF fill neesit un gend pr notr los telfonos de los poos migos que tieneF vos produtos omeriles disponiles en el merdo son demsido ros y no quiere gstr ni un slo pesoF ve pregunt vinus si se puede her un script en shD llmdo por ejemplo gendFshD on ls siguientes funionliddesX r gregr un ontto uno use l siguiente sintxis
6 ~GinGgendFsh f mri dniel99 6 ~GinGgendFsh w 6 ~GinGgendFsh e wri hniel99 HWSSSSSSS elulr

r usr un ontto uno dee use l siguiente sintxis

r mostrr l list omplet uno use l siguiente sintxis r eliminr un ontto uno use l siguiente sintxis
6 ~GinGgendFsh i hniel

edems teng un opin de yudD l ul muestr todos los rgumentos que se le pueden dr l scriptF
~GinGgendFsh r

vos onttos se gurden en un rhivo ~GFonttosFtxtF il genil vinus se d uentD de inmeditoD que el script puede tener prolems en los siguientes sosX i se trt de eliminr lguien que no est en l listF i se trt de eliminr un ontto que pree ms de un vezF i se ingres un opin que no est de(nidD el script deer visr que no est de(nid y mostrr l yudD por ejemploF

6.4.

SCRIPTS

PPQ

iF F F eyude nuestro migo vinus en su lor de generr un uen gendD es deirD esE ri un script on ls funionliddes pedids por fillD trte dems de orregir los prolems visulizdos por vinusF e riguroso en estudir otros posile prolemsD se retivo en orregirlosF UF rg un sript que lule el dole ftoril de un nmero nturl nX
(2n + 1)!! = 1 3 5 (2n + 1) (2n)!! = 2 4 6 (2n)

VF rg un sript que elimine todos los tgs de un doumento HTMLD pruelo on el rhivo prueFhtml que estr disponile en el puli de mfmH1F WF gree los rhivosX listFtxtD on el siguiente texto elejndro rs UFH TFS UFH hiego quzmn TFH UFH UFH wF hniel gornejo UFH UFH TFS wF grolin qurhi TFS UFH TFH tor ery UFH TFH TFS xiole willer TFS TFS TFS tF sgnio into TFS TFH TFS y orreosFtxtD on el siguiente texto elejndro rs vrsdjmilFom hiego quzmn dguzmndjmilFom wF hniel gornejo mdnieldkmilFom wF grolin qurhi mroldkmilFom tor ery vrydjmilFom xiole willer nmillerdkmilFom tF sgnio into ipintodjmilFom isri un rhivo de omndos o scriptD que ree el rhivo listpinlFtxtD onteE niendo en l primers olumns el pellido y luego el nomre de los lumnos ordendos lftimente por pellido en otr olum dee inluir los respetivos promediosF edemsD su rhivo de omndos dee envir un eEmil d uno de los lumno de l list slo on su not (nlF u rhivo de omndos dee ser vlido pr ulquier nmero de lumnosF xote que los eEmils son (tiiosF
1 https://zeth.ciencias.uchile.cl/mfm0

PPR IHF n slid tpi del omndo


drwxrExrEx ErwErEErEE Erwxrwxrwx lrwxEEEEEE P I I I ill ill ill ill ill ill ill ill ls El

CAPTULO 6.

EJERCICIOS PROPUESTOS

es l siguienteX
IHXSV IWXPU IWXPU IWXRR fotos verletF verletFpy mitre Eb GhomeGillGtrelinusFpdf ElD desplegndo l informE

RHWT RPUVI RRVVI QSIUP

PHHVEHUEIW PHHVEHTEHT PHHVEHVEQI PHHVEHUEPV

isri un script que reemple l in del omndo ls in nterior de l siguiente mnerX


hiretorio USS fotos erhivo TRR verletF erhivo UUU verletFpy vink UHH mitre Eb GhomeGillGtrelinusFpdf

gomente en el sript lo que reliz d lne del mismoF IIF n rhivo de dtos llmdo dtosFini tiene l formX
5erhivo de dtos distni IFI

il progrm energiFin lee este rhivo de dtos l ejeutrseF gundo orremos el progrm on el omndo energiFin ` dtosFini esrie en l pntll l siguiente slidX
5rmeters file X gmPFini igsi pure wfyv d xwfiypesgvi P gyxpsxfexu I ryPqixiei yxvpsvi yixsev pinnisEinlir psviwvs prueFxyz qw ievei P gonfigurion HHH ia PFWQWWVHVPeCHI e pa TFTRUTQQSWeCHI eGe wa HFHHHH muf d EHFSSHHH HFHHHH HFHHHH d HFSSHHH HFHHHH HFHHHH

6.5.

GRFICA Y L T X E

PPS

isri un script que ejeute el progrm energiFin pr diferentes vlores de l distni en el intervlo [1, 3]D y on un modi(ion en el vlor de l distni de 0.1F edemsD el script deer (ltrr l slidD de tl mner que se genere un rhivo dtosgrfioFdt el ul ontendr dos olumnsX l primer olumn donde estr l distni entre ls prtiulsD y l otr l energ del sistemF ist slid ser utilizd posteriormente en un gr(o de energ versus distniF or tntoD el rhivo dee poseer el siguiente formto
5distni IFH IFI F F F QFH inergi QSFHH PWFQWWVH

EHFHHS

IPF isri un script que hg un respldo de todos sus rhivosD y que teng el formto userErespldofehFtrFzPF IQF isri un script que resuelv l euin ax2 + bx + c = 0 pr vlores ritrrios de aD b y cF i los vlores no perteneen l onjunto de los relesD infrmeselo l usurioF IRF rg un script que pid dos nmerosF i el primero es imprD lule el seno de ese nmeroY si es prD lule su osenoY y si es eroD lule l exponenil de unoF glule esto usndo ls representiones en serie
x2 x + e =1+ + 1! 2!
x

x3 x5 sen x = x + + 3! 5!

x2 x4 cos x = 1 + + , 2! 4!

usndo el segundo nmero pr determinr ul es el ltimo oe(iente usr de l serieF or supestoD informe l usurio el resultdo del luloF ISF isri un script que le todos los e-mails nuevos de su uentD luego ve si tienen rhivos djuntosF i los tieneD que gregue este rhivo djunto un rhivo trF
A 6.5. Grca y L TEX

IF qenere un (gur en el progrm xfig que onteng omo mnimo lo siguienteX a A n (gur importdF b A hos (gurs de ls lirers de xfigF c A n gr(o generdo en gnuplotF

PPT
dA

CAPTULO 6.

EJERCICIOS PROPUESTOS

n diujo redo por usted en xfigF in un doumento pdf esri los psos neesrios pr relizr l (gur e inlyl en steF PF gon los dtos lgoFtxt @disponiles en l pgin we de los yudntesA rg un gr(o on los dtosD luego importe @on el omndo importA este gr(o on el nomre primitivoFjpgF b A wodi(que el gr(oD olondole omo ttulo ijemplo de regresin linelD en el eje de ls iss iempo s y en el eje de ls ordends osiin F vuegoD un los puntos otenidos y exporte este gr(o formto fig on el nomre originlFfigF c A ehorD lule l regresin linel pr estos dtosF qr(que l regresin linel otenid y los dtos experimentles en un slo gr(o y luego exporte este resulE tdo un rhivo regresionFfigF A d A or ltimoD en un rhivo en viD ompildo en pdfD gregue un tl resumen on los dtosD todos los gr(os otenidos y l regresin linel del ltimo gr(oD on l euin otenid un ostdo del mismoF
A QF eproduz el siguiente texto en vi

aA

n punto mteril se mueve por el espio jo l in)ueni de un fuerz derivle de un potenil generlizdo de l form @TFIA donde r es el vetor de posiin trzdo desde un punto (joD L es el momento intio respeto diho punto y es un vetor (jo en el espioF A rllr los omponentes de l fuerz que se ejere sore l prtul en oordends rtesins y en oordends polres esfrisD sndose en l euin
U (r, v) = V (r) + L, Qj = d U + qj dt U qj .

A hemostrr que ls omponentes en los dos sistems de oordends estn relionds entre s omo en l euin
Qj =
i

Fi

ri . qj

6.5.

GRFICA Y L T X E

PPU

A ytener ls euiones del movimiento en oordends polres esfrisF RF isri dos pgins de los puntes del urso de penomenologF xo es neesrio enerrr ls euiones en jsF vs (gursD digrms y gr(os deen inluirse2F edjunte los rhivos tex y pdf y ls (gurs orrespondientesF SF he los puntes del urso de wtodos de l psi wtem 1 ti ss 2
httpXGGllolenFienisFuhileFlG~vmunozGursosGmfmPGmfmPFpdfD A opi en vi de dos pginsF euerde her sus (gurs en xfigF

hg un

TF isri l pgin SI del liro wthemtil wethods for hysiists de erfken y eer A tl ul pree en viD se exulp si el nmero del ptulo es distintoD pero nd msF
A UF isri en vi l pgin VW del mismo liro de l pregunt TD slo se perdonr que ls frmuls tengn otro nmero @en este soAF

VF rg un opi lire de l sein W del ptulo P del liro  Classical Electrodynamics  A de tohn tF tksonD segund ediinF edjunte l opi en vi y l (gur en figF vos mrgenes de l hoj deben serX superior e inferior Q mD dereho e izquierdo PFS mF
A WF edte en vi el siguiente prolemX un ms M deslizndose por un plno inliE ndo on oe(iente de friin eF snvente ls pregunts y posiles hintsF inunie su prolem en un texD un pdf on un (gur explitiv del prolem en formto figF u prolem dee ser soluionleF A IHF esuelv el prolem que propuso en el ejeriio W y esri l soluin ste en viD en el estilo femerF

IIF hd l siguiente serie de pourier


4 f (x) =

n=0

1 sen 2n + 1

(2n + 1)x L

qr(que el vlor otenido de l funin pr distintos n en el intervlo HDIF


aA

qr(queD en gnuplot ls T primers sums priles de est serie en el intervlo x [10, 10] pr L = 1F A b A elie un informe en viD omprndo los resultdos otenidosF
y/o

2 en

xfig

gnuplot

PPV

CAPTULO 6.

EJERCICIOS PROPUESTOS

IPF hd l expnsin de pourier pr l funin diente de sierr


1 1 f (x) = 2
n=1

1 nx sen n L

@TFPA

aA

qr(queD en gnuplot ls T primers sums priles de est serie en el intervlo x [10, 10] pr L = 1F A b A elie un informe en viD omprndo los resultdos otenidosF

6.6. Introduccin a la Programacin


IF he l list de lengujes que se nomr ontinuinD lsi(que ules son interpretdos y ules son ompildosF portrn sl gool uy ython erl gCC g ed ii'el fsi yeron PF snvestigue en qu lengujes estn esritos los siguientes progrms y si orresponden lengujes interpretdos o ompildosX a A 53GusrGinGwish Ef
wm title F 4rello world34 frme Fh Eorderwidth P frme Fq Eorderwidth P utton FhFhello Etext 4rello world4

6.7.

PYTHON

PPW

Eommnd 4puts stdout 4rello world344 Eursor gumy utton FqFquit Etext 4uit4 Eommnd exit Eursor pirte pk pk pk pk Fh Eside left Fq Eside right FhFhello FqFquit

b A with extsoY use extsoY


proedure hello is egin put @4rello world34AY end helloY relloD worldF rogrm rello impliit none write@BDIHA IH formt@9relloD worldF9A ixh puts 4rello orld34

cA

d A for i in IFFI
end

e A 5inlude `iostremb
int min@A{ stdXXout `` 4rello orld34 `` stdXXendlY return HY }

6.7. Python
IF eonoz que iones hen ls siguientes lnes
53GusrGinGenv python 5 a input@rol wundo99A

PQH

CAPTULO 6.

EJERCICIOS PROPUESTOS

while IbHX print rol querido lumno99

PF isri un progrm en ython que le pid su nomre y mio le respond mE lemente fuens trdesD seorD fuens trdesD seor o fuens trdesD seoritD segn se el soD y ontinuin su nomreF QF gonfeione un progrm en ython que le dig si un nmero es pr o imprF RF isri un progrm en ython que imprim el myorD el menorD l sum y l medi ritmti de diez nmeros eptdos por teldoF SF isri un progrm en ython que le pid dos nmeros desde el terminlD luego de instruiones l usurioD es deirD despliegue un men que de ls opiones de dividir los nmeros @donde en est opin dems dig si es eptle el ero omo divisorAD sumrlosD restrlosD inrementrlos en PD ID y IH @usndo ls reviiones prendids en lsesAD y multiplirlosY l (nl de d operin de el resultdo orrespondienteF snluy tmin l opin de slir del progrm en el men @use if pr el menAF TF isri un progrm en ython que le pid l usurio el dD mes y o de su nimiento yD demsD l feh tulF il progrm dee devolverX a A v edd del usurioD en osF b A il tiempo de vid del usurioD en mesesF c A il tiempo de vid del usurioD en dsF d A il signo del usurio en el horsopo oidentlF e A il signo del usurio en el horsopo orientlF UF isri un progrm en ythonD que le pid l usurio un fehX dD mes y oD y que prtir de ell evleX i el o ddo es o no isiestoF il nmero de ds trnsurridos desde el prinipio del oF il nmero de ds que fltn pr l prxim xviddF VF isri un progrm en ython que le pid un ntiddD un entero positivoD y le devuelv el nmero y denominiones de los illetes y moneds pr dr uent de es ntiddD minimize el nmero de illetes y monedsF

6.7.

PYTHON

PQI

WF gonfeione un progrm en ython que lule el mximo omn divisor entre dos nmeros enterosF IHF gonfeione un software en ython que soliite dos nmeros enteros l usurio nD mF vuegoD genere un terer nmero entero l zr en el intervlo [n, m + 10]D on ls funiones intrnses de ythonF pinlmenteD veri(que si este tro de nmeros pueden ser ls medids de un tringulo retnguloF IIF gonfeione un progrm en ython que soliite tres puntos en R3 y que retorne el re del tringulo que formn stos tres puntosF IPF gonfeione un progrm en ython que ree un list on n ingredientes de un reet de oinD ingresles por el usurioF IQF sndo listsD hg un progrm en ython que le pid l usurio ingresr dos vetores y luego despliegue un menu on ls opiones sumrD restrD produto punto y produto ruzF vuego mnde lo pedido pntll @si eligi sum o rest l slid dee preer un vetorAF IRF isri un progrm que pid el ingreso de tres puntos en R3 y on ellos lule un vetor unitrio perpendiulr l plno que ontiene los tres puntosF i los tres puntos ingresdos fuern olinelesD el progrm dee visr l usurio y no seguir lulndoF ISF tilizndo listsD hg un progrm que iniilie un mtriz de dos por dosF vuego veri(que si el determinnte es distinto de eroD si es distinto de eroD lule l invers de l mtrizD si no lo es lule el produto onsigo mismF ITF sndo listsD onfeione un progrm en ython que ree dos mtries de Q olumns y Q (lsF vuegoD rellene estos espios on nmeros l zr entre H y THF or ltimoD imprim en pntll sus mtriesD l sum de ells y el determinnte de d unF IUF tilizndo lists esri un progrm en ython tl que el usurio ingrese un orinD y el omputdor l devuelv esrit l revsF IVF gree los rhivos eFtxt y fFtxt los ules deen ontener un mtriz de nmeros reles y de tmo 3 3 d unoF vuego esri un progrm en ython que le estos rhivos y lule l sumD l multipliin y l invers de d mtrizF u progrm dee esriir estos resultdos en los rhivos sumefFtxtD multipliionefFtxtD inverseFtxt e inversfFtxt respetivmenteF i lgun mtriz no tiene invers dee informrlo en su rhivoF IWF isri un progrm que dd un se ulquier de R4 l somet l proeso de ortonormlizin de qrmEhmidt y l desplieg en pntllF hee usr listsF

PQP

CAPTULO 6.

EJERCICIOS PROPUESTOS

PHF isri el progrm llmdo gto que funione de l mism mner que el omndo t del sistemF is deirD undo lo invoque on un nomre de rhivo este despliegue en l pntll el ontenido de diho rhivoF egreguele un opin diionlD invod on ErD pr l ul despliegue el rhivo de trs pr delnteD tl omo lo he el omndo tF PIF tugndo vudoX isri un progrm en ython que juegue ludoD pr esto utilize los progrms de zr que son inluids en los mdulos de ythonF v ide es que simule el lnzmiento de un ddoD y omo udF jueg ontr el omputdorD el nmero ms grnde prteF v met estr en el sillero SHD y en @por lo menosA ino silleros se vuelve l prtidD pr que sD el primero en llegr SHD gnF PPF isri un progrm en ython que epten que le ingresen un ierto nmero de pres (x, y) y luego lule l regresin linelF se l euin y = mx + b donde
m= xy y xx x x , x

y x orresponde l promedio de ls xF PQF in este prolem fill neesit un gend pr notr los telfonos de los poos migos que tieneF vos produtos omeriles disponiles en el merdo no lo stisfen y no quiere gstr ni un slo pesoF ve pregunt vinus si se puede her un progrm en ythonD llmdo por ejemplo gendD on ls siguientes funionliddesX ue permit gregr un onttoX 4grol z4 HWIIIIIIII elulrF ue permit usr un onttoF ue muestre l list omplet F ue elimine un onttoF edemsD teng un opin de yudD l ul muestr todos los rgumentos que se le pueden dr l progrmF gend Eh vos onttos deen gurdrse en un rhivo ~GFonttosFtxt en l riz de su homeF il genil vinus se d uentD de inmeditoD que el progrm puede tener prolems en los siguientes sosX i se trt de eliminr lguien que no est en l listF i se trt de eliminr un ontto que pree ms de un vezF i se ingres un opin que no est de(nidD el progrm deer visr que no est de(nid y mostrr l yudD por ejemploF iF F F

6.7.

PYTHON

PQQ

eyude nuestro migo vinus en su lor de generr un uen gendD es deirD esri un progrm on ls funionliddes pedids por fillD trte dems de orregir los prolems visulizdos por vinusF e riguroso en estudir otros posile prolemsD se retivo en orregirlosF PRF isri un progrm en ython que le pid l usurio un numro entero positivo menor que un milln @106A y devuelv pntll el nmero en plrsF PSF smplemente un funin omintori que devuelv el nmero de suonjuntos @desorE dendosA de k elementos de un onjunto de n elementosF se un funin ftorilF PTF isri un progrm en ython que pid un nmero l usurioF he uerdo si este nmero es prD evle l expnsin en serie de l funin oseno pr el nmero ingresE do on un error menor que 105Y si el nmero es imprD evle l expnsin en serie de l funin seno pr el nmero ingresdo on un error menor que 105 y (nlmente si el nmero no es ni pr ni imprD evle l expnsin en serie de l funin exponenil de menos el nmero ingresdo on un error menor que 105F PUF isri un progrm en ython que pid un nmero N y evle
N N N 2N

n,
i=1 i=1

n ,
i=1

n ,
i=2

log(n) .

PVF isri un progrm que explique brevemente y lule el dole ftoril de un nmero nturl positivoD es deirD
(2n + 1)!! = 1 3 5 (2n + 1) , (2n)!! = 2 4 6 (2n) .

i el usurio no ingres un nmero nturl positivoD hgselo notrD mlementeF PWF isri un nuevo progrm que repit el lulo de dole ftorilD est vez usndo un funin en form reursivD es deirD que l funin se llme s mismF QHF isri un progrm que evle l sum in(nitD

S(x) =
=0

x ,

pr un |x| < 1 y tl que el usurio ingrese l preisin desedF i el nmero x ingresdo no umple on l ondiin |x| < 1D el progrm dee informrloF

PQR QIF e l funin f (x) de(nid por


f (x) =

CAPTULO 6.

EJERCICIOS PROPUESTOS

x2 + x + 1 x < 0 ln(x + 1) x>0

isri un progrm en ython tl queX a A glule vlor de l integrl superior de iemnn en el intervlo [5, 5]D de mner tl que el vlor de l integrl teng un error menor l pedido por el usurioF b A glule vlor de l integrl inferior de iemnn en el intervlo [5, 5]D de mner tl que el vlor de l integrl teng un error menor l pedido por el usurioF in este ejeriioD el error pedido por el usurio E orresponde enlti sntegrl numri| QPF in este ejeriio lulremos numrimente l siguiente integrl
1

E = |sntegrl

I=
0

4 1 x2 dx

medinte el mtodo del trpeioD es deirD proximremos l integrl por l sum (nit
b

I=
a

1 f (x) dx h(f0 + fN ) + h 2

N 1

fi ,
i=1

donde f0 = f (x0 = a)D fN = f (xN = b)D y fi = f (xi)D donde xi = a + ihD on


h= N

es el nmero de prtiionesF sted dee her un progrm que implemente este lgoritmoF il usurio dee proporE ionr N l progrm y el integrndo dee ser implementdo omo un funinF sdentiE (que el resultdo y estudie l onvergeni de ste en funin de N F rg este estudio en un rhivo seprdo de l fuente de su progrmD es deirD en un rhivo estudioFtxt inluy dos olumns on los resultdos pr N = 10, 100, 1000, 5000, 50000, 100000F QQF gonfeione un progrm en ython que soliite un nmeroF gon este nmeroD evle l funin seno usndo su expnsin en ylor entrd en ero pr el nmero ingresdo on un error menor que 105F se ls propieddes de periodiidd y simetr de est funinD pr que el rgumento de l evluin est en [0, /2]F Extra crditoX eduz el rgumento [0, /4]F

ba . N

6.7.

PYTHON

PQS

QRF gonfeione un progrm en ython que resuelv l euin


ax2 + bx + c = 0

on aD bD y c prmetros ingresles @relesAF QSF gonfeione un software en ython que resuelv l euin udrti ax2 + bx + c = 0 pr vlores de aD b y c ritrriosF e difereni de tres nterioresD lule tnto ls res reles omo omplejsF QTF isri un progrm en ython queD usndo l reursin
(z + 1) = z(z) z N,

lule (z) pr ulquier vlor de z F QUF rogrme un funin en ython que lule el trmino n de l suesin de pioniD donde n es ingresdo por el usurioF edemsD ddo un nmero m veri(que si este nmero es un nmero perteneiente est suesinD e informe l usurio l posiin en l suesin de este nmeroF QVF isri un progrm que luleD trvs de un funinD l siguiente sumtori
M

S=
i=1

in

on M y n proporiondos por el usurioF QWF isri un progrm en ython queD usndo l representin de ls funiones de fessel

J (x) =
s=0

x (1)s s!(s + )! 2

+2s

lule l funin J1(x) pr ulquier vlor de xF RHF isri un progrm que evle ls sums in(nitsD
n=1

(1)n+1 , n

n=1

(1)n+1 , 2n + 1

n=1

(1)n+1 , n2

el usurio dee ingresr l preisin desedF

PQT

CAPTULO 6.

EJERCICIOS PROPUESTOS

RIF ivlue en un progrm ythonD pr diferentes N D ingresdos por el usurioD l onE vergeni de l siguiente expresinX
= 2
N

k=0

(2k 1)!! (2k + 1)(2k)!!

RPF isri un progrm en ython que le permit nlizrD de mner numriD l onE vergeni de l serie
=4
k=0

(1)k 2k + 1

RQF ivlue l rz nEsim pr ulquier nmero ingresdo por el usurio on un progrm en ython utilizndo funiones y whileF se el lgoritmo visto en lsesF RRF sndo el mtodo de Newton-Raphson visto en lsesD hg un progrm en ython que lule ls soluiones de l euin trsendente
x tan x = x .

qr(que ls soluiones en el intervlo [0, 8]F RSF hd l expnsin de pourier pr l funin diente de sierr
f (x) = 1 1 2
n=1

1 nx sen n L

@TFQA

qr(queD en gnuplot ls T primers sums priles de est serie en el intervlo x [10, 10] pr L = 1F b A rogrme l serie @TFQA pr los primeros PH trminos en pythonF vuegoD genere un rhivo dtosFdt en el mismo intervlo de l prte (a) y gr(que su resultdo en xmgreF A c A elie un informe en viD omprndo mos resultdosF RTF hesde l pgin we de los yudntes desrgue el rhivo regresionFtxtF vuegoD plindo ls frmuls de regresin linel que usted onoeD desrrolle un progrm en ython que enuentre l pendiente y el interepto stos dtosF or supuestoD el rhivo input puede ser ulquier rhivo de textoF RUF il digo morse es un form de omunirse grndes distnisF ste se s en ominiones de puntos y rysF hesrrolle un progrm en ython que le desde un rhivo de texto tods ls plrs ontenids en l y que devuelv un rhivomorse

aA

6.7.

PYTHON

PQU

RVF

RWF

SHF SIF SPF

SQF

SRF

on ls letrs orrespondientes pero en lfeto morseF eng preuin on l sepE rin de d letrD y que su trduin puede volverse inteligileF isri un progrm que repit el lulo del ejeriio QPD integrin numri on l regl del trpeioF ist vez el progrm dee leer desde un rhivo dtosFtxt los diferentes vlores de N pedidos en el ejeriio nterior y l tl esrit en el rhivo estudioFtxt en l prueD est vez dee ser generd y esrit desde el progrm en el rhivo estudioFtxtF gopie los rhivos veliniilFdt y velfinlFdt que ontiene IHHH dtos de ls veloiddes de IHHH prtulsD on respeto d un de sus oordendsF elie un progrm que tome stos dtos y le lule un distriuin de veloiddes @l ntidd de prtuls que llevn un iert veloiddAD envindo ests distriuiones dos rhivos diferentesF he un rngo de error en ls veloiddes pr poder gr(r sus distriuinesD y omente mos gr(osF isri un progrm que epte dos rgumentos desde l lne de omndoF il primer rgumento orresponde l monto y el segundo un porentjeF il progrm lulr el porentje pedido del monto ddo y lo esriir en pntllF eesri el progrm del ejeriio IWD donde se pedi que dd un se ulquier de R4 l somet l proeso de ortonormlizin de qrmEhmidt y l despliege en pntllF ist vez use un lseD heh por ustedD de vetores en R4F gree un lse de elumnos de l niversidd de ghileD on pultdD rrerD o de ingresoD D nmero de gr y list de nots @QH notsAF e ontinuinD ree un progrm que le desde el rhivo lumnosmsivosFdt @disponile en l pgin de los yudntesA todos los lumnos existentes en l niversiddF vuegoD elij un lumno l zr @de l rrer on ms lumnos y de l pultd on ms rrersA y rroje l stdout sus dtosF isri un lse de vetores de dimension QD sorergndo el produtoD l sumD l rest y rendo un funin pr el produto puntoF edemsD hg un onstrutor de opiD y sorergue l slid y entrdF il progrm min deer reiir dos vetores y dr ls opiones de sumrlosD restrlosD multiplirlos @los dos produtosAD y el moduloD pr luegoD desplegrlos en pntllF isri un progrmD usndo el desrrollo del ejeriio SQD genere n vetores l zr en dos dimensionesD y uys omponentes estn entre 1 y 1D usndo l funin de zr disponile en ythonF r d vetor determine si su mdulo es myor o menor que unoD si es myor que uno no lo useD si es menor o igul uno untelo y esri sus omponentes en un rhivoF vuegoD hg el oiente entre el nmero ontdo y el nmero totlD multiplquelo por utro @que es el re del udrdoA e imprmloF

PQV

CAPTULO 6.

EJERCICIOS PROPUESTOS

SSF

STF SUF SVF

sndo kinterD gr(que los vetores que umplen l ondiin pedidF ve pree fmilir el nmero otenidoc istudie este nmero en funin de nF isri un progrm on lses de pres ordendos tl que el usurio ingrese tres puntos en el espio de dos dimensiones y el omputdor dig si estos puntos onformn un tringulo isselesD esleno o equilteroF reho estoD que dig si los pres ordendos onformn un ngulo gudoD otuso o retoF rogrme un gendD es deirD que todos los dis el omputdor le dig su itinerrio relizrF uede ompletr hst donde quier el progrmY le puede ser til el omndo ronF isri un progrm on lses de mtries de dimensin 33 que relize ls siguientes operiones X sume ls mtriesD ls multipliqueD lule ls trzsD y sus determinntesF gree un lse de rgs eltris en un espio de dos dimensiones on ls siguientes rterstisX vos elementos deen ser de l form rg@posiionxDposiionyDmoduloDsignoA donde posiionx y posiiony representn ls oordends en x e y de l posiin en el plnoD modulo es el vlor del mdulo de l rgD es deirD |q| y signo es el signo de l rg que puede ser 1F u lse dee tener ls funiones p@rgIDrgPA que es l fuerz que siente l rgI deido l rgP y l funin @rgIDrgPA que es l energ del sistem onstituido por ests dos rgsF

edemsD hg un progrm que utilie su lse on un sistem de Q rgsF SWF smplemente un lse de nmeros rionles y un pequeo progrm en que muestre d un de ls rterstis implementdsF THF v representin integrl de l funiones de fessel de orden entero esX
Jn (x) = 1

cos(n x sen ) d .
0

edemsD ls primers dos funiones de fessel stisfen


J0 (x) = J1 (x) .

inuentre los tres primeros eros de J0(x) pr x > 0 on un preisin de 104F se l representin integrl dd pr evlur ls funiones de fesselF r segurrse que su semill y luego su resultdo se orretoD se sugiere gr(r l funin J0(x) en su A gr(dor fvoritoF ixpong sus resultdos en un rhivo viF edjunte su progrmF

6.7.

PYTHON

PQW

TIF A inuentre nltimente ls soluiones de l euin z 3 = 1D y demuestre que sts onstituyen los vrties de un tringulo equiltero en el plno omplejoF A tilizndo el mtodo de xewtonD enuentre ls res de este prolem numriE menteF yserve queD pr distints eleiones de ls semillsD se onverge un de ls tres res hllds en @AF A qr(que en el plno omplejo ls uens de trin pr d rzD onstituE ids por tods ls semills que onvergen un determind rzF gonsidere ls semills en 2 < x < 2 e 2 < y < 2D y gr(que ls tres uens de trin on distinto olorF yserve l fronter entre dos uensF gomenteF TPF a A il potenil de vennrdEtones entre dos prtuls seprds un distni r es el siguienteX
U (r) = 4 r
12

qr(que el potenil en funin de rD on r [1, 4] y utilizndo = = 1F elie un gr(o en formto eps inluyendo ttulo y etiquets en los ejesF b A xos interes enontrr l distni de equilirio de dos prtulsD es deirD el mnimo de este potenil o lo que es equivlenteD enontrr el ero de l derivdF qr(que l derivd nlti en funin de r on r [1, 4]D relie un gr(o en formto png inluyendo ttulo y etiquets en los ejesF c A isri un progrm en ython que use el lgoritmo de xewtonEphson3 sore l derivd4 del potenil pr enontrr donde st se nulF se omo vlor iniil HDS y un preisin de 107F d A qr(que l suesin de vlores de r en funin de ls iteriones que onverge l ero de l derivdF elie un gr(o en formto pdf inluyendo ttulo y etiquets en los ejesF
3 El algoritmo para encontrar un cero de

f (x)

por Newton-Raphson se escribe como:

xn+1 = xn
4 Para la derivada de

f (xn ) f (xn )

f (x)

use la forma numrica:

f (x) =
con

f (x + h) f (x) h

del orden de

107

PRH

CAPTULO 6.

EJERCICIOS PROPUESTOS

Apndice A Transferencia a diskettes.


v (losof de diferentes uniddes @eXD fXDF F F A di(ere de l estrutur ni del sistem de rhivos que existe en unixF on vris ls lterntivs que existen pr l trnsfereni de informin disketteF n posiilidd es disponer de un mquin win9x on ftp instldo y eso redF implendo dih pliin se pueden intermir rhivos entre un sistem y el otroF ixiste un onjunto de omndos llmdos mtools disponile en multitud pltformsD que permiten el eso diskettes en formto win9x de un form muy e(ienteF mdir X wuestr el ontenido de un diskette en XF mopy file X gopi el rhivo file del sistem de rhivos unix en un diskette en XF mopy Xfile file gopi el rhivo Xfile del diskette en el sistem de rhivos unix on el nomre fileF mdel Xfile forr el rhivo Xfile del disketteF gon X nos referimos l primer disketter GdevGfdH y luego l rhivo que se enE uentr en el disketteF u nomre se ompone de XfilenmeF i se dese empler el rter omodn pr un onjunto de rhivos del disketteD estos deen roderse de doles omills pr evitr l tuin del shell @pFeF mopy XBFdt99AF v opin Et reliz l onversin neesri entre unix y win9xD que se dee relizr slo en rhivos de textoF n lterntiv (nl es montr el dispositivo GdevGfdH en lgn diretorioD tpimente GfloppyD onsiderndo el tipo espeil de sistem de rhivos que posee vft y luego opir y orrr usndo omndos unixF ist form suele estr restringid slo rootD el omndoX
mount Et vft GdevGfdH Gfloppy

PRI

PRP

APNDICE A.

TRANSFERENCIA A DISKETTES.

no puede ser ddo por un usurioF in emrgoD el sistem eptr el omndo mount Gfloppy de prte del usurioF n vez termindo el trjo on el )oppy ste dee ser desmonE tdoD ntes de srloD medinte el omndoX umount GfloppyF

Apndice B Las shells csh y tcsh.


on dos de los hells intertivos ms empledosF n de ls priniples ventjs de tsh es que permite l ediin de l lne de omndosD y el eso l histori de rdenes usndo ls tels de ursoresF1

B.1. Comandos propios.


vos omndos propios o intrnseosD Built-In CommandsD son qullos que proporion el propio shell 2F esign el nomre nme l omndo defF
Command history
33 3n lis nme def history

wuestr ls ltims rdenes introduids en el shellF elgunos omndos reliondos on el sonX epite l ltim ordenF epite l orden nEsimF epite l orden ms reiente que empiee por l den stringF epite l orden ms reiente que onteng l den stringF
1 bash tambin lo permite. 2 A diferencia de los comandos que provienen de un ejecutable situado en alguno de los directorios de la
variable

3string

3cstring

PATH.

PRQ

PRR

APNDICE B.

LAS SHELLS CSH Y TCSH.

o 33XsGstrIGstrPG @substitute A epite l ltim orden reemplnzndo l primer ourreni de l den strI por l den strPF
strI strP

@global substitute A epite l ltim orden reemplzndo tods ls ourrenis de l den strI por l den strPF is el ltimo rgumento de l orden nterior que se hy teledoF
repet ount ommnd epite ount vees el omndo ommndF 36

33XgsGstrIGstrPG

ehe l tl de omndos @hash table AF esign el vlor de un vrile del shellF wuestr el vlor de tods ls vrilesF ermite signr el vlor de un vrile de entornoF ijeut ls rdenes del (hero file en el shell tulF forr l signin del vlor de un vrile del shellF forr l signin del vlor de un vrile de entornoF esign l msr pr los permisos por omisinF ilimin un lis signdoF
unlis nme umsk vlue unsetenv esefvi evi unset vrile soure file setenv esefvi evi set set vrile a evi

rehsh

B.2. Variables propias del shell.


ixiste un onjunto de vriles denominds shell variablesD que permiten modi(r el funionmiento del shellF

B.2.

V ARIABLES PROPIAS DEL SHELL.

PRS

is un vrile toggle que permite que el shell omplete utomtimente el nomre de un rhivo o un diretorio3F r elloD si el usurio introdue slo unos untos rteres de un rhivo y puls el efD el shell omplet diho nomreF i slo existe un posiiliddD el ompletdo es totl y el shell dej un espio trs el nomreF in so ontrrio he sonr un pitidoF ulsndo gtrlEh el shell muestr ls forms existentes pr ompletrF is un vrile de den que ontiene el texto que pree l prinipio de l lne de omndosF ermite de(nir el nmero de rdenes que se dese lmenr l ndonr el shellF isto permite reordr ls rdenes que se ejeutron en l sesin nteriorF
svehist prompt

file @FILE Completion A

3 bash permite no slo completar cheros/directorios sino tambin comandos.

PRT

APNDICE B.

LAS SHELLS CSH Y TCSH.

Apndice C Editores tipo emacs.


vos editores tipo ems se preen muho y en su myor sus omndos son los mismosF r ejempli(r este tipo de editores nos entrremos en imsD pero los omndos y desripiones se plin si por igul todos ellosF vos editores tipo ems onstn de tres zonsX v zon de ediinX donde pree el texto que est siendo editdo y que oup l myor prte de l pntllF v zon de informinX es un rr que est situd en l penltim lne de l pntllF v zon de introduin de dtosX es l ltim lne de l pntllF ims es un editor que permite l ediin visul de un rhivo @en ontrste on el modo de ediin de viAF il texto se greg o modi( en l zon de ediinD usndo ls tels disponiles en el teldoF edemsD existen un serie de omndos disponiles pr sistir en est treF v myor de los omndos de ems se relizn emplendo l tel de gyxyv o l tel wie1F impleremos l nomenlturX gEkey pr indir que l tel key dee de ser pulsd junto on gyxyv y wEkey pr indir que l tel wie dee de ser pulsd junto keyF in este ltimo so xy es neesrio pulsr simultnemente ls tels ig y keyD pudiendo pulsrse seuenilmente ig y luego keyD sin emrgoD si se us ev omo wie deen ser pulsds simultnementeF yservemos que en un teldo norml hy unos SH rteres @letrs y nmerosAF sndo rsp se gregn otros SHF esD usndo gyxyv y wieD hy unos 50 4 = 200 omndos disponilesF edemsD existen omndos espeiles llmdos prejosD que modi(n el omndo siguienteF or ejemploD gEx es un pre(joD y si gEs es un omndo @de squed en este soAD gEx gEs es otro @grr rhivoAF esD trvs de un pre(joD se duplin el nmero de omndos disponiles slo on el teldoD hst llegr unos 200 2 = 400 omndos en totlF
1 Dado que la mayora de los teclados actuales no poseen la tecla

META

se emplea ya sea

ESC

ALT.

PRU

PRV

APNDICE C.

EDITORES TIPO EMACS.

eprte de estos omndos esiles por telsD lgunos de los ules omentremos ontinuinD existen omndos que es posile ejeutr por nomreD hiendo s el nmero de omndos disponiles virtulmente in(nitoF evisemos los omndos ms usulesD ordendos por tpioF
Abortar y deshacer

in ulquier momentoD es posile ortr l operin en ursoD o desher un omndo indesedoX


C-g ortr C-x u desher

Archivos C-x C-x C-x C-x C-x Ventanas C-f i C-s C-w C-c

rgr rhivo insertr rhivo grr rhivo grr on nomre slir

ims permite dividir l pntll en vris ventnsF in d ventn se puede editr texto e ingresr omndos independientementeF isto es til en dos situionesX A si neesiE tmos editr un solo rhivoD pero neesitmos ver su ontenido en dos posiiones distints @por ejemploD el omienzo y el (nl de rhivos muy grndesAY y A si neesitmos editr o ver vrios rhivos simultnementeF xturlmenteD unque son independientesD slo es posile editr un rhivo l vezF e l ventn en l ul se enuentr el ursor en un momento ddo le llmmos l ventn tulF

C-x C-x C-x C-x C-x

2 3 1 0 o

dividir ventn tul en P prtesD on lne horizontl dividir ventn tul en P prtesD on lne vertil slo I ventn @l ventn tulD eliminndo ls otrsA elimin slo l ventn tul mi el ursor l siguiente ventn

il mio del ursor un ventn ulquier se puede her tmin rpidmente trvs del mouseF

PRW
Comandos de movimiento C-b o C-p o C-a o rome M-< o C-rome M-f o M- C-v o ge p M-g @nmeroA

elgunos de estos omndos tienen dos tels soidsD omo se indi ontinuinF izquierd un rter rri un lne prinipio de l lne prinipio del doumento vnz un plr vnz un pgin slt l lne @nmeroA
C-f o C-n o C-e o ind M-> o C-ind M-b o M- M-v o ge hown C-l

dereh un rter jo un lne (n de l lne (n del doumento retroede un plr retroede un pgin refres l pntll

Comandos de insercin y borrado

el ser un editor en modo visulD ls modi(iones se pueden her en el texto sin neesiE dd de entrr en ningn modo espeilF
C-d o helete orr un rter despus del ursor
fkspe

C-k

M-d M-fkspe C-o

orr un rter ntes del ursor orr desde l posiin del ursor hst el (n de lne @no inluye el mio de lneA orr desde el ursor hi delnteD hst que termin un plr orr desde el ursor hi trsD hst que omienz un plr snsert un lne en l posiin del ursor

Maysculas y minsculas M-u gmi mysul desde l posiin del ursor hst el (n de l plr M-l gmi minsul desde l posiin del ursor hst el (n de l plr M-c gmi mysul el rter en l posiin del ursor y

minsul hst el (n de l plr or ejemploD vemos el efeto de d uno de estos omndos sore l plr imeD si el ursor est sore l letr i @el efeto es distinto si est sore ulquier otr letr3AX M-u X ime iweg M-l X ime ems M-c X ime ims
Transposicin

vos siguientes omndos tomn omo refereni l posiin tul del ursorF or ejemploD C-t intermi el rter justo ntes del ursor on el rter justo despusF

PSH

APNDICE C.

EDITORES TIPO EMACS.

C-t rnspone dos rteres M-t rnspone dos plrs C-x C-t rnspone dos lnes Bsqueda y reemplazo C-s C-r M- % M-&

fsqued hi el (n del texto fsqued hi el iniio del texto fsqued y sustituin @pide on(rmin d vezA fsqued y sustituin @sin on(rminA

no de los oneptos importntes en ems es el de reginF r elloD neesitmos dos oneptos uxiliresX el punto y l marcaF il punto es simplemente el ursorF ispe(menteD es el punto donde comienza el ursorF esD si el ursor se enuentr sore l letr en emsD el punto est entre l y l F v mrD por su prteD es un sel que se olo en lgn punto del rhivo on los omndos propidosF v regin es el espio omprendido entre el punto y l mrF r olor un mr st uir el ursor en el lugr desedoD y teler C-pe o C-@F isto olo l mr donde est el punto @en el ejemplo del prrfo nteriorD quedr entre ls letrs y F n vez olod l mrD podemos mover el ursor ulquier otro lugr del rhivo @hi trs o hi delnte respeto l mrAF isto de(ne un iert uiin pr el puntoD yD por tntoD qued de(nid l regin utomtimenteF v regin es un porin del rhivo que se puede mnipulr omo un todoF n regin se puede orrrD opirD pegr en otro punto del rhivo o inluso en otro rhivoY un regin se puede imprimirD grr omo un rhivo distintoY etF esD muhs operiones importntes se pueden efetur sore un loque del rhivoF or ejemploD si queremos duplir un reginD st on de(nir l regin desed @ponienE do l mr y el punto donde orrespondA y teler M-wF isto opi l regin un u'er temporl @llmdo kill buerAF vuego movemos el ursor l lugr donde queremos insertr el texto duplidoD y hemos C-yF iste omndo tom el ontenido del kill buer y lo insert en el rhivoF il resultdo (nl es que hemos duplido un iert porin del textoF i l intenin er mover dih porinD el proedimiento es el mismoD pero on el omndo C-w en vez de M-wF C-w tmin opi l regin un kill buerD pero orr el texto de l pntllF esumiendoX

Denicin de regiones y reemplazo

PSI
C-pe o C-@ M-w C-w C-y

gomienzo de regin gopi regin gort regin eg regin

il onepto de kill buer es muho ms poderoso que lo explido reinF in reliddD muhos omndosD no slo M-w y C-wD opin texto en un kill buerF in generlD ulquier omndo que orre ms de un rter l vezD lo heF or ejemploD C-k orr un lneF vo que he no es slo orrrlD sino dems opirl en un kill buerF vo mismo ourre on los omndos que orrn plrs omplets @M-dD M-fkspeAD y muhos otrosF vo interesnte es que C-y funion tmin en todos esos sosX C-y lo nio que he es tomr el ltimo texto olodo en un kill buer @resultdo de l ltim operin que orr ms de un rter l vezAD y lo olo en el rhivoF or lo tntoD no slo podemos opir o mover regionesD sino tmin plrs o lnesF ws nD el kill buer no es orrdo on el C-yD s que ese mismo texto puede ser duplido muhs veesF gontinur disponile on C-y mientrs no se pong un nuevo texto en el kill buerF edemsD ems dispone no de uno sino de muhos kill buersF isto permite reuperr texto orrdo he muho rtoF in efetoD d vez que se orr ms de un rter de un vezD se un un nuevo kill buerF or ejemploD onsideremos el textoX
v primer line del textoD l segund lineD y finlmente l tererF

i en este prrfo orrmos l primer lne @on C-kAD despus orrmos l primer plr de l segund @on M-dD por ejemploAD y luego l segund plr de l ltimD entones hr tres kill buers oupdosX u'er I X u'er P X u'er Q X
v primer line del textoD l finlmente

el olor el ursor despus del punto (nlD C-y tom el ontenido del ltimo kill buer y lo olo en el textoX
segund lineD y l tererF finlmente

i se tele hor M-yD el ltimo texto reuperdoD finlmenteD es reemplzdo por el penltimo texto orrdoD y que est en el kill buer nteriorX

PSP
segund lineD y l tererF l

APNDICE C.

EDITORES TIPO EMACS.

edemsD l posiin de los kill buers se rotX u'er I X u'er P X u'er Q X


finlmente v primer line del textoD l

uesivs pliiones de M-y despus de un C-y rotn sore todos los kill buers @que pueden ser muhosAF il editorD sD onserv un onjunto de ls ltims zons orrds durnte l ediinD pudiendo reuperrse un ntigu pesr de her seleiondo un nuev zonD o orrdo un nuev plr o lneF od l informin en los kill buers se pierde l slir de ems @C-cAF esumimos entones los omndos pr mnejo de los kill buers X
C-y gopi el ontenido del ltimo kill buer oupdo M-y ot los kill buers oupdos Denicin de macros

v lve de l on(gurilidd de ems est en l posiilidd de de(nir nuevos omnE dos que modi(quen su omportmiento o greguen nuevs funiones de uerdo nuestrs neesiddesF n modo de herlo es trvs del rhivo de on(gurin 6rywiGFemsD pr lo ul se sugiere leer l doumentin disponile en l distriuin instldF in emrgoD si slo neesitmos un nuevo omndo en l sesin de trjo tulD un modo ms simple es de(nir un macroD un onjunto de rdenes que son ejeutdos omo un solo omndoF vos omndos relevntes sonX
C-x ( gomienz l de(niin de un mro C-x ) ermin l de(niin de un mro C-x e ijeut un mro de(nid

ods ls suesiones de tels y omndos ddos entre C-x ( y C-x ) son reorddos por emsD y despus pueden ser ejeutdos de un vez on C-x eF gomo ejemploD onsideremos el siguiente textoD on los ino primeros lugres del rnking e @sistem de entrdA l PT de mrzo de PHHPX

PSQ
I P Q R S hewittD lleyton @eusA kuertenD gustvo @frA ferreroD jun @ispA kfelnikovD yevgeny @usA hsD tommy @qerA

upongmos que queremosX @A poner los nomres y pellidos on mysul @omo deE er serAY @A poner ls sigls de pses slo en mysulsF r de(nir un mroD olomos el ursor l omienzo de l primer lneD en el ID y dmos C-x (F ehor relizmos todos los omndos neesrios pr her ls tres tres soliitds pr el primer jugdor solmenteX M-f @vnz un plrD hst el espio ntes de hewittY M-c M-c @mi rewittD vleytonAY M-u @mi eAY rome @vuelve el ursor l omienzo de l lneAY @olo el ursor l omienzo de l lne siguienteD en el PAF vos dos ltimos psos son importntesD porque dejn el ursor en l posiin orret pr ejeutr el omndo nuevmenteF ehor terminmos l de(niin on C-x )F vistoF i hor ejeutmos l mroD on C-x eD veremos que l segund lne qued modi(d igul que l primerD y s podemos ontinur hst el (nlX
I P Q R S rewittD vleyton @eA uuertenD qustvo @feA perreroD tun @iA ufelnikovD evgeny @A rsD ommy @qiA

Comandos por nombre


wEx

eprte de los y omentdos existen muhs otrs rdenes que no tienen neesrimente un tel soid @bindkey A soidF r su ejeuin dee de telerse previmenteX y ontinuin en l zon inferior de l pntll se introdue el omndo desedoF impleE ndo el ef se puede ompletr diho omndo @igul que en shAF he hehoD esto sirve pr ulquier omndoD inluso si tiene tel soidF or ejemploD y semos M-g n v l lne n del doumentoF ero esto no es sino el omndo gotoElineD y se puede tmin ejeutr telendoX wEx gotoEline nF
Repeticin

odos los omndos de emsD tnto los que tienen un tel soid omo los que se ejeutn on nomreD se pueden ejeutr ms de un vezD nteponindoles un rgumento numrio on
wE@numerA

PSR

APNDICE C.

EDITORES TIPO EMACS.

or ejemploD si desemos esriir PH letrs eD st teler wEPH eF isto es prtiulrmente til on ls mros de(nidos por el usurioF in el ejemplo nteriorD on el rnking eD despus de de(nir l mro quedmos en l lne PD y en vez de ejeutr C-x e R veesD podemos teler wER gEx eD on el mismo resultdoD pero en muho menos tiempoF r terminr l disusin de este editorD diremos que es onveniente onoer ls seuenis de ontrol sio de emsX gED gEeD gEkD gEyD gEwD gEtD gEdD etFD porque funionn pr editr l lne de omndos en el shellD omo tmin en muhos progrms de texto y en ventns de dilogo de ls pliiones X WindowsF e su vezD los editores jedD xjedD jove tmin usn por defeto ests ominionesF

Apndice D Una breve introduccin a Octave/Matlab


D.1. Introduccin
ytve es un poderoso softwre pr nlisis numrio y visulizinF wuhos de sus omndos son omptiles on wtlF in estos puntes revisremos lguns rterstis de estos progrmsF in reliddD el utor de este ptulo h sido usurio durnte lgunos os de wtlD de modo que estos puntes se hn sdo en ese onoimientoD onsiderndo los omndos que le son ms fmilires de wtlF in l myor de ls osiones he veri(do que los omndos desritos son tmin omptiles on ytveD pero osionlmente se puede her omitido lgoF F F F wtl es un reviin de Matrix LaboratoryF vos elementos sios on los que se trj on mtriesF odos los otros tipos de vriles @vetoresD textoD polinomiosD etFAD son trtdos omo mtriesF isto permite esriir rutins optimizds pr el trjo on mtriesD y extender su uso todos los otros tipos de vriles filmenteF

D.2. Interfase con el programa


gon ytveGwtl se puede intertur de dos modosX un modo intertivoD o trvs de scriptsF el llmr ytveGwtl @esriiendo otve en el promptD por ejemploAD se nos present un promptF i esriimos aID el progrm responder aIF elterntivmenteD podemos esriir aQY @on punto y om l (nlAD y el progrm no responder @elimin el eoAD pero lmen el nuevo vlor de F i ontinuin esriimos D el progrm responder aQF rst este puntoD hemos usdo el modo intertivoF elterntivmenteD podemos introduir ls instruiones nteriores en un rhivoD llmdoD por ejemploD prueFmF in el promptD l esriir prueD y si nuestro rhivo est en el pth de squed del progrmD ls lnes de prueFm sern ejeutds un unF or ejemploD si el rhivo onst de ls siguientes utro lnesX
aQY

PSS

PST
aS

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

el progrm responder on
aQ aS aS prueFm

orresponde un scriptF ods ls instruiones de ytveGwtl pueden ejeuE trse tnto en modo intertivo omo desde un scriptF in vinux se puede ejeutr un rhivo de omndos ytve de modo stand-alone inluyendo en l primer lneX 53GusrGinGotve EqF

D.3. Tipos de variables


D.3.1. Escalares e pesr de que stos son slo un tipo espeil de mtries @ver susein siguienteAD onviene menionr lguns rterstis espe(sF

! n nmero sin punto deiml es trtdo omo un entero extoF n nmero on punto deiml es trtdo omo un nmero en dole preisinF isto puede no ser evidente en el outputF or defaultD VFR es esrito en pntll omo VFRHHHF rs l instruin formt longD sin emrgoD es esrito omo VFRHHHHHHHHHHHHHF r volver l formto originlD st l instruin formtF ! ytveGwtl ept nmeros reles y omplejosF v unidd imginri es iX Vi y VBi de(nen el mismo nmero omplejoF gomo i es un vrile hitulmente usd en iterionesD tmin est disponile j omo un sinnimoF ytveGwtl distinguen entre mysuls y minsulsF ! ytveGwtl represent de mner espeil los in(nitos y ntiddes que no son nmerosF inf es in(nitoD y xx es un noEnmero @xotEExumerAF or ejemploD esriir aIGH no rroj un errorD sino un mensje de dverteniD y sign el vlor infF enlogmenteD aHGH sign el vlor xxF
D.3.2. Matrices iste tipo de vrile orresponde eslresD vetores (l o olumnD y mtries onvenE ionlesF

D.3.

TIPOS DE VARIABLES

PSU

Construccin

vs instruionesX
a I P Y Q R

a ID PY QD R

de(nen l mtriz 1 2 F vs oms @opionlesA seprn elementos de olumns distintsD 3 4 y los punto y om seprn elementos de (ls distintsF il vetor (l (1 2) es
a I P

y el vetor olumn
a IYP

1 2

es

n nmero se de(ne simplemente omo d a Q d a QF Nota importante: wuhs funiones de ytveGwtl en ls pgins siguientes epE tn indistintmente eslresD vetores (lsD vetores olumnsD o mtriesD y su output es un eslrD vetor o mtrizD respetivmenteF or ejemploD log@A es un vetor (l si es un vetor (l @donde d elemento es el logritmo nturl del elemento orrespondiente en AD y un vetor olumn si es un vetor olumnF in el resto de este mnul no se advertira este hehoD y se pondrn ejemplos on un solo tipo de vrileD en el entendido que el letor est oniente de est notF
Acceso y modicacin de elementos individuales

eesmos los elementos de d mtriz usndo los ndies de (ls y olumnsD que prten de unoF sndo l mtriz ntes de(nidD @IDPA es PF r modi(r un elementoD st esriirD por ejemploD @PDPA a SF isto onvierte l mtriz en 1 2 F in el so espeil 3 5 de vetores (ls o olumnsD st un ndieF @in los ejemplos nterioresD @PA a @PA a PFA n rtersti muy importnte del progrm es que tod mtriz es redimensiond utomtimente undo se intent modi(r un elemento que soreps ls dimensiones tules de l mtrizD llenndo on eros los lugres neesriosF or ejemploD si a I PD y en seguid intentmos l signin @SA a VD es utomtimente onvertido l vetor (l de S elementos I P H H VF

PSV i a =
d=

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

Concatenacin de matrices
1 2 3 4

Db=

5 6

Dc=

7 8

D entones

d = [a c]
1 2 7 3 4 8 d = [a; b] 1 3 d= 5 d = [a d= 2 4 6 [0; 0] c]

1 2 0 7 3 4 0 8

D.3.3. Strings vs dens de texto son sos prtiulres de vetores (lD y se onstruyen y modi(n de modo idntioF
Construccin

vs instruiones
t t t t a a a a 9un uen texto9 4un uen texto4 9un uen texto9 4un uen texto4

de(nen el mismo string tF


Acceso y modicacin de elementos individuales
r = t(4) r = 'b' t(9) = 's' texto = 'un buen sexto'

D.3.

TIPOS DE VARIABLES

PSW

Concatenacin
t = 'un buen texto'; t1 = [t ' es necesario'] t1 = 'un buen texto es necesario'

D.3.4. Estructuras vs estruturs son extensiones de los tipos de vriles nterioresF n estrutur onst de distintos mposD y d mpo puede ser un mtriz @es deirD un eslrD un vetor o un mtrizAD o un stringF
Construccin

vs lnes
personFnomre a 9idurdo9 personFedd a QH personFmtrizfvorit a P VYIH ISY

de(nen un estrutur on tres mposD uno de los ules es un stringD otro un eslrD y otro un mtrizX
person a { nomre a 9idurdo9Y edd a QHY mtrizfvorit a P VY IH ISY }

Acceso y modicacin de elementos individuales


s = persona.nombre s = 'Eduardo' persona.nombre = 'Claudio' persona.matriz_favorita(2,1) = 8 persona = { nombre = 'Claudio'; edad = 30; matriz_favorita = [2 8; 8 15]; }

PTH

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

D.4. Operadores bsicos


D.4.1. Operadores aritmticos vos operdores CD ED B orresponden l sumD rest y multipliin onvenionl de mtriesF ems mtries deen tener l mism dimensinD menos que un se un eslrF n eslr puede ser sumdoD restdo o multiplido de un mtriz de ulquier dimensinF FB y FG permiten multiplir y dividir elemento por elementoF or ejemploD si
a= 1 2 3 4 b= 5 6 7 8

entones
c = a.*b
c= 5 12 21 32

c = a./b
c= 0.2 0.3333 0.42857 0.5

i es un eslrD FB y FG equivlen B y GF es elevdo D si es un eslrF F elev d elemento de F 9 es l mtriz @trspuest y onjugdA F9 es l mtriz trspuest de F
D.4.2. Operadores relacionales vos siguientes operdores estn disponilesX

il resultdo de ests operiones es I @verdderoA H @flsoAF i uno de los operndos es un mtriz y el otro un eslrD se ompr el eslr on d elemento de l mtrizF i mos operndos son mtriesD el test se reliz elemento por elementoY en este soD ls mtries deen ser de igul dimensinF or ejemploD
a b c d = = = = [1 2 3]; [4 2 1]; (a<3); (a>=b);

`a

ba

aa

~a

c = (1, 1, 0) d = (0, 1, 1)

D.5.

COMANDOS MATRICIALES BSICOS

PTI

D.4.3. Operadores lgicos vos siguientes smolos orresponden los operdores exhD y y xyX

il resultdo de ests operiones es I @verdderoA H @flsoAF


D.4.4. El operador : is uno de los operdores fundmentlesF ermite rer vetores y extrer sumtriesF X re vetores de uerdo ls siguientes reglsX jXk es lo mismo que jDjCIDFFFDkD si j`akF jXiXk es lo mismo que jDjCiDjCPBiDFFFDkD si ibH y j`kD o si i`H y jbkF X extre sumtries de uerdo ls siguientes reglsX e@XDjA es l jEsim olumn de eF e@iDXA es l iEsim (l de eF e@XDXA es eF e@XDjXkA es e@XDjAD e@XDjCIAD F F F D e@XDkAF e@XA son todos los elementos de eD grupdos en un ni olumnF D.4.5. Operadores de aparicin preferente en scripts vos siguientes operdores es ms prole que prezn durnte l esritur de un script que en modo intertivoF 7 X gomentrioF il resto de l lne es ignordoF FFF X gontinuin de lneF i un lne es muy lrg y no e en l pntllD o por lgun otr rzn se dese dividir un lneD se puede usr el operdor FFF F or ejemploD
m a I P Q FFF R S TY

es equivlente
m a I P Q R S TY

D.5. Comandos matriciales bsicos


entes de revisr un un diverss fmilis de omndos disponilesD y puesto que ls mtries son el elemento fundmentl en ytveGwtlD en est sein reuniremos lguns de ls funiones ms freuentes sore mtriesD y mo se relizn en ytveGwtlF

PTP

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

ypF ritmti gonjugr rsponer rsponer y onjugr snvertir eutovloresD utovetores heterminnte ixtrer elementos rz himensiones ixponenil

CD ED BD FBD FG onj@A F9 9 inv@A vDdaeig@A det@A X tre@A size@A exp@A expm@A

@ver susein hFRFIA

@ver susein hFTFSA @ver susein hFRFRA @elemento por elementoA @exponenil mtriilA

D.6. Comandos
in est sein revisremos diversos omndos de uso freuente en ytveGwtlF ist list no pretende ser exhustiv @se puede onsultr l doumentin pr myores detllesAD y est determind por mi propio uso del progrm y lo que yo onsidero ms freuente deido es experieniF snsistimos en que ni l list de omndos es exhustivD ni l list de ejemplos o usos de d omndo lo esF isto pretende ser slo un desripin de los spetos que me preen ms importntes o de uso ms reurrenteF
D.6.1. Comandos generales
ler

forr vriles y funiones de l memori forr tods ls vriles en memori forr l vrile

ler ler disp

resent mtries o texto disp@A present en pntll los ontenidos de un mtrizD sin imprimir el nomre de l mtrizF puede ser un stringF
disp(' c1 disp([.3 .4]); c2');
c1 c2 0.30000 0.40000

lodD sve

grgGqurd vriles desde el diso

D.6.

COMANDOS

PTQ qurd ls vriles y en el rhivo fnme vee el rhivo fnmeD rgndo ls de(niiones de vriles en l de(nidsF

sve fnme lod fnme

sizeDlength

himensiones de un mtrizGlrgo de un vetor i a es un mtrix de n mX


d a size@A mDn a size@A d = mDn

eloj en m el nmero de (lsD y en n el de olumns i b es un vetor de n elementosD length@A es nF who vist de vriles en memori
quit

ermin ytveGwtl

D.6.2. Como lenguaje de programacin


Control de ujo
for
n=3; for i=1:n a(i)=i^2; end a=[1 4 9]

r ytve el vetor resultnte es olumn en vez de (lF yservr el uso del operdor X pr generr el vetor I P QF gulquier vetor se puede utilizr en su lugrX for iaP V W EQD for iaIHXEPXI @equivlente IH V T R PAD etF son vlidsF il ilo for nterior se podr her esrito en un sol lne sX
for iaIXnD @iAaiPY end ifD elseifD else

ijemplosX A A
if ~aD disp@AY end if aaQ V W IH a @IXQAY end

PTR A

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

if bQ ler Y elseif `H sve Y else disp@9lor de no onsiderdo9AY end

xturlmenteD elseif y else son opionlesF in vez de ls expresiones ondiionles indids en el ejemplo pueden preer ulquier funin que d vlores I @verdderoA H @flsoAF
while while s omndos end

wientrs s es ID se ejeutn los omndos entre while y expresin que d por resultdo I @verdderoA H @flsoAF
rek

endF s

puede ser ulquier

snterrumpe ejeuin de ilos for o whileF in loops niddosD rek sle del ms interno solmenteF
Funciones lgicas

edems de expresiones onstruids on los operdores relionles aaD `aD etFD y los operdores lgios 8D | y ~D los omndos de ontrol de )ujo nteriores dmiten ulquier funin uyo resultdo se I @verdderoA H @flsoAF rtiulrmente tiles son funiones omo ls siguientesX ll@A I si todos los elementos de son no nulosD y H si lguno es ero ny@A I si lguno de los elementos de es no nulo isempty@A I si es mtriz v @aA ytrs funiones entregn mtries de l mism dimensin que el rgumentoD on unos o eros en los lugres en que l ondiin es verdder o flsD respetivmenteX finite@A I donde es (nito @no inf ni xxA isinf@A I donde es in(nito isnn@A I donde es un xx

D.6.

COMANDOS

PTS

or ejemploD luego de ejeutr ls lnes


x y a a a a a EP EI H I PY IFGxY finite@yAY isinf@yAY isnn@yAY

se tiene
a I I H I I a H H I H H a H H H H H

ytr funin lgi muy importnte es findX find@A inuentr los ndies de los elementos no nulos de F or ejemploD si ejeutmos ls lnes
xaII H QQ H SSY zIafind@xAY zPafind@xbH 8 x`RHAY

otendremos
zI a I Q S zP a I Q

tmin puede dr dos resultdos de slid simultnemente @ms sore est posiE ilidd en l sein hFTFPAD en uyo so el resultdo son los pres de ndies @ndies de (l y olumnA pr d elemento no nulo de un mtriz
find yaI P Q R SYT U V W IHY zQDzRafind@ybVAY

d omo resultdo
zQ a PYPY zR a RYSY

ontiene los ndie de (l y zR los de olumn pr los elementos no nulos de l mtriz 2 4 ybVF isto permite onstruirD por ejemploD l mtriz zSazQ zR = D en l ul d 2 5 (l es l posiin de y tl que l ondiin ybV es verdder @en este soD es verdder pr los elementos y@PDRA e y@PDSAAF
zQ

PTT

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

Funciones denidas por el usuario

ytveGwtl puede ser filmente extendido por el usurio de(niendo nuevs funiones que le omoden sus propsitosF isto se he trvs del omndo funtionF odemos de(nir @en modo intertivo o dentro de un scriptAD un funin en l form
funtion nomre @rgumentosA omndos endfuntion rgumentos es un list de rgumentos seprdos por omsD y omndos es l suesin de omndos que sern ejeutdos l llmr nomreF v list de rgumentos es opionlD en uyo so los prntesis redondos se pueden omitirF e medino y lrgo plzoD puede ser muho ms onveniente de(nir ls funiones en rhivos espeilesD listos pr ser llmdos en el futuro desde modo intertivo o desde ulquier scriptF isto se he esriiendo l de(niin de un funin en un script on extensin FmF gundo ytveGwtl dee ejeutr un omndo o funin que no onoeD por ejempE loD sum@xDyADus en los rhivos esiles en su pth de squed un rhivo llmdo sumFmD lo rg y ejeut l de(niin ontenid en ese rhivoF or ejemploD si esriimos en el script sumFm ls lnes funtion sasum@xDyA s a xCyY

el resultdo de sum@PDQA ser SF vs funiones s de(nids pueden entregr ms de un rgumento si es neesrio @y hemos visto lgunos ejemplos on find y sizeAF or ejemploD de(nimos un funin que efete un nlisis estdstio sio en sttFmX
funtion menDstdev a stt@xA n a length@xAY men a sum@xAGnY stdev a sqrt@sum@@xEmenAFPGnAAY

el llmrl en l form mDs a stt@xAD si x es un vetor (l o olumnD en m quedr el promedio de los elementos de xD y en s l desviin estndrdF ods ls vriles dentro de un script que de(ne un funin son lolesD menos que se indique lo ontrrio on glolF or ejemploD si un script xFm llm un funin fD y dentro de fFm se us un vrile que queremos se glolD ell se dee delrr en l form glol tnto en fFm omo en el script que l llmD xFmD y en todo otro script que pretend usr es vrile glolF

D.6.

COMANDOS

PTU

D.6.3. Matrices y variables elementales


Matrices constantes importantes

vs siguientes son mtries que se emplen hitulmente en distintos ontextosD y que es til tener muy presenteX eye@nA wtriz identidd de n n ones@mDnA wtriz de m nD on todos los elementos igul IF rnd@mDnA wtriz de m n de nmeros l zrD distriuidos uniformeE menteF rndn@mDnA sgul que rndD pero on distriuin norml @qussinAF zeros@mDnA sgul que onesD pero on todos los elementos HF
Matrices tiles para construir ejes o mallas para gracar

vs siguientes son mtries se emplen hitulmente en l onstrui9on de gr(osX v a linspe@minDmxDnA etor uyo primer elemento es minD su ltimo elemento es mxD y tiene n elementos equiespidosF v a logspe@minDmxDnA enlogo linspeD pero los n elementos estn espiE dos logrtmimenteF D a meshgrid@xDyA gonstruye un mll del plno xEyF vs (ls de son opis del vetor xD y ls olumns de son opis del vetor yF or ejemploX
x a I P QY y a R SY D a meshgrid@xDyAY

d
X=

xotemos que l tomr suesivmente los distintos pres ordendos @@IDIAD@IDIAAD @@IDPAD@IDPAAD @@IDQAD@IDQAAD etFD se otienen todos los pres ordendos posiles tles que el primer elE emento est en x y el segundo est en yF ist rtersti he prtiulrmente til el omndo meshgrid en el ontexto de gr(os de funiones de dos vriles @ver seiones hFTFUD hFTFUAF
Constantes especiales

1 2 3 1 2 3

Y =

4 4 4 5 5 5

ytveGwtl proporion lgunos nmeros espeilesD lgunos de los ules y menE ionmos en l sein hFQFIF

PTV
iD j inf xx pi

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

nidd imginri @ 1 A sn(nito xotEeExumer il nmero @= 3.1415926535897 . . .A

Funciones elementales

hesde luegoD ytveGwtl proporion tods ls funiones mtemtis sisF or ejemploX A puniones sore nmeros relesGomplejos lor soluto de nmeros relesD o mdulo de nmeros imginrios ngulo de fse de un nmero imginrio gomplejo onjugdo rte rel rte imginri igno z udrd A ixponenil y funiones soids
s ngle onj rel img sign sqrt osD sinD etF oshD sinhD etF exp log

A edondeo
eil fix floor round

puniones trigonomtris puniones hiperlis ixponenil vogritmo

edonder hi + edonder hi ero edonder hi edonder hi el entero ms erno

Funciones especiales

edemsD ytveGwtl proporion diverss funiones mtemtis espeilesF elgunos ejemplosX essel punin de fessel esselh punin de rnkel et punin et ellipke punin elpti erf punin error gmm punin gmm

D.6.

COMANDOS

PTW

esD por ejemploD essel@lphDA evl l funin de fessel de orden lphD J(x)D pr d elemento de l mtriz X F
D.6.4. Polinomios ytveGwtl represent los polinomios omo vetores (lF il polinomio
p = cn x n + + c1 x + c0

es representdo en ytveGwtl en l form


p a nD FFFD ID H

odemos efetur un serie de operiones on los polinomios s representdosF poly@xA olinomio uys res son los elementos de xF polyvl@pDxA ivl el polinomio p en x @en los elementos de x si ste es un vetorA roots@pA es del polinomio p

D.6.5. lgebra lineal (matrices cuadradas) nos poos ejemplosD entre los omndos de uso ms hitulX det heterminnte rnk xmero de (ls o olumns linelmente independientes tre rz inv wtriz invers eig eutovlores y utovetores poly olinomio rterstio xotr que poly es l mism funin de l sein hFTFR que onstruye un polinomio de res ddsF in el fondoD onstruir el polinomio rterstio de un mtriz es lo mismoD y por tnto tiene sentido signrles l mism funinF no hy onfusinD pues un oper sore vetores y l otr sore mtries udrdsF il uso de todos estos omndos son utoexplitivosD slvo eigD que se puede empler de dos modosX

v primer form dej en d un vetor on los utovlores de F v segundD dej en h un mtriz digonl on los utovloresD y en un mtiz uys olumns son los utovloresD de modo que eB a BhF or ejemploD si aI PY Q RD entones
d= 5.37228 0.37228

d a eig@A Dh a eig@A

PUH y
D=

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

5.37228 . . . 0 0 0.37228 . . .

V =

0.41597 . . . 0.82456 . . . 0.90938 . . . 0.56577 . . .

v primer olumn de es el utovetor de soido l primer utovlorD 5.37228 . . .F


D.6.6. Anlisis de datos y transformada de Fourier in ytveGwtl estn disponiles diverss herrmients pr el nlisis de series de dtos @estdstiD orrelionesD onvoluinD etFAF elguns de ls operiones sis sonX

A wximos y mnimos i es un vetorD mx@A es el myor elemento de F i es un mtrizD mx@A es un vetor (lD que ontiene el mximo elemento pr d olumnF e sigue que el myor elemento de l mtriz se otiene on mx@mx@AAF min oper de modo nlogoD entregndo los mnimosF A istdsti si vs siguientes funionesD omo min y mxD opern sore vetores del modo usulD y sore mtries entregndo vetores (lD on d elemento representndo d olumn de l mtrizF men lor promedio medin wedin std hesviin stndrd prod roduto de los elementos sum um de los elementos A yrden
sort@A orden los elementos de en orden sendente si es un vetorF i es un mtrizD
a = [1 6 7; 2 8 3; 0 4 1] b = max(a)
b = (2 8 7)

orden d olumnF

b = sort([1 3 9; 8 2 1; 4 -3 0]);

1 3 0 b = 4 2 1 8 3 9

dA rnsformd de pourier or ltimoD es posile efetur trnsformds de pourier direts e inverssD en un o dos dimensionesF or ejemploD fft y ifft dn l trnsformd de pourier y l trnsformd

D.6.

COMANDOS

PUI

invers de xD usndo un lgoritmo de fast Fourier transform @ppAF ispe(menteD si afft@xA y xaifft@AD y los vetores son de lrgo xX
N

X(k) =
j=1

x(j)N
N

(j1)(k1)

1 x(j) = N

X(k)N
k=1

(j1)(k1)

donde N = e2i/N F
D.6.7. Grcos n de ls rterstis ms importntes de wtl son sus mplis posiiliddes grE (sF elguns de ess rterstis se enuentrn tmin en ytveF in est sein reE visremos el so de gr(os en dos dimensionesD en l siguiente el so de tres dimensionesD y luego exminremos lguns posiiliddes de mnipulin de gr(osF
Grcos bidimensionales

r gr(r en dos dimensiones se us el omndo plotF plot@xDyA gr( l ordend y versus l sis xF plot@yA sume sis IDPDFFFnD donde n es l longitud de yF Ejemplo: i xaP V WD yaT Q PD entones
plot@xDyA

pigur hFIX qr(o simpleF or defaultD ytve utiliz gnuplot pr los gr(osF or defaultD los puntos se onetn on un lne roj en este soF il speto de l lne o de los puntos puede ser modi(doF

PUP

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

or ejemploD plot@xDyD9o9A he que los puntos sen indidos on rulos @9o9A zules @99D blue AF ytros modi(dores posiles sonX E lne @defaultA r red F puntos g green d otro estilo de puntos lue C signo ms m mgent B sterisos yn o rulos w white x rues hos o ms gr(os se pueden inluir en el mismo output gregndo ms rgumentos plotF or ejemploX plot@xIDyID9x9DxPDyPD9og9DxQDyQD9F9AF vos mps de ontorno son un tipo espeil de gr(oF hd un funin z = f (x, y)D nos interes gr(r los puntos (x, y) tles que f = cD on c lgun onstnteF or ejemploD onsideremos
z = xex
2 y 2

x [2, 2], y [2, 3] .

r otener el gr(o de ontorno de z D mostrndo los niveles z = .3D z = .1D z = 0D z = .1 y z = .3D podemos usr ls instruionesX
x a EPXFPXPY y a EPXFPXQY D a meshgrid@xDyAY a FBexp@EFPEFPAY ontour@F9DEFQ EFI H FI FQDxDyAY 5 ytve por defult @gnuplotA ontour@xD yD F9DEFQ EFI H FI FQAY 5 ytve on plplot y wtl

vs dos primers lnes de(nen los puntos sore los ejes x e y en los ules l funin ser evludF in este soD esojimos un grill en que puntos ontiguos estn seprdos por FPF r un mp de ontornoD neesitmos evlur l funin en todos los pres ordendos (x, y) posiles l esoger x en x e y en yF r eso usmos meshgrid @introduid sin myores expliiones en l sein hFTFQAF vuego evlumos l funin es un mtrizD donde d elemento es el vlor de l funin en un pr ordendo (x, y)D y (nlmente onstruimos el mp de ontorno pr los niveles desedosF
Grcos tridimensionales

min es posile relizr gr(os tridimensionlesF or ejemploD l mism dole gusE sin de l sein nterior se puede gr(r en tres dimensionesD pr mostrrl omo un super(ie z(x, y)F fst reemplzr l ltim instruinD que llm ontourD por l siguE ienteX
mesh@DDA

D.6.

COMANDOS

PUQ

pigur hFPX gurvs de ontornoF yservr queD mientrs ontour ept rgumentos dos de los ules son vetoresD y el terero un mtrizD en mesh los tres rgumentos son mtries de l mism dimensin @usmos D D en vez de xD yAF Nota importante: ytro modo de her gr(os i y tridimensionles es on gplot y gsplot @instruiones soids relmente no ytve sino gnuplotD y por tnto no equivlentes instruiones en wtlAF e reomiend onsultr l doumentin de ytve pr los detllesF
Manipulacin de grcos

vos siguientes omndos estn disponiles pr modi(r gr(os onstruidos on yE tveGwtlX A ijes
xis@xI yI xP yPA

gmi el eje x l rngo (x1, x2)D y el eje y l rngo (y1, y2)F

A tulos
title@sA xlel@sA ylel@sA zlel@sA

tulo @s es un stringA tulo del eje xD yD z F

PUR

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

pigur hFQX gurvs de ontornoF A qrills


grid

snluye o orr un grill de refereni en un gr(o idimenE sionlF grid on99 olo l grill y grid off99 l sF grid equivle grid on99F

el usr gnuplotD el gr(o mostrdo en pntll no es tulizdo utomtimenteF r tulizrlo y ver ls modi(iones efetudsD hy que dr l instruin replotF vos siguientes omndos permiten mnipulr ls ventns gr(sX hold ermite ongelr l (gur tulD de modo que suesivos omndos gr(os se superponen sore dih (gur @norE mlmente l (gur nterior es reemplzd por l nuevAF hold on tiv este ongelmientoD y hold off lo destiE vF hold mi lterntivmente entre el estdo on y offF loseplot gierr l ventn tulF pinlmenteD si se dese gurdr un gr(o en un rhivoD se puede proeder del siguiente modo si ytve est generndo los gr(os on gnuplot y se trj en un terminl on indowsF i se dese gurdr un gr(o de l funin y = x3D por ejemploX
x a linspe@IDIHDQHAY y a xFQY plot@xDyAY

D.6.

COMANDOS

PUS

gset term postsript olor gset output xuoFps99 replot gset term xII

vs tres primers lnes son los omndos de ytveGwtl onvenionles pr gr(rF vuego se resete el terminl un terminl postsript en olores @gset term postsript si no desemos los oloresAD pr que el output suesivo vy en formto postsript y no l pntllF v siguiente lne indi que l slid es l rhivo xuoFpsF pinlmenteD se rediuj el gr(o @on lo ul el rhivo xuoFps es relmente generdoAD y se vuelve l terminl indows pr ontinur trjndo on slid l pntllF heemos her notr que no neesrimente el gr(o exportdo Postscript se ver igul l resultdo que gnuplot muestr en pntllF hurnte l preprin de este mnulD nos dimos uent de ello l intentr mir los estilos de lne de plotF ued entones dvertido el letorF
D.6.8. Strings r mnipulr un den de textoD disponemos de los siguientes omndosX lower gonvierte minsuls upper gonvierte mysuls esD lower@9exto9A d 9texto9D y upper@9exto9A d 9iy9F r omprr dos mtries entre sD usmos strmpX strmp@DA I si y son idntisD H en so ontrrio odemos onvertir nmeros enteros o reles en stringsD y strings en nmerosD on los omndosX intPstr gonvierte entero en string numPstr gonvierte nmero en string strPnum gonvierte string en nmero or ejemploD podemos usr esto pr onstruir un ttulo pr un gr(oX
s a 9sntensidd trnsmitid vsF freueniD n a 9D numPstr@IFSAY title@sAY

isto pondr un ttulo en el gr(o on el textoX

sntensidd trnsmitid vsF freueniD n a IFSF

PUT

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

D.6.9. Manejo de archivos ysionlmente nos interesr grr el resultdo de nuestros lulos en rhivosD o utilizr dtos de rhivos pr nuevos lulosF il primer pso es rir un rhivoX
rhivo a fopen@9rhivoFdt9D9w9AY

isto re el rhivo rhivoFdt pr esritur @9w9AD y le sign este rhivo un nmero que qued lojdo en l vrile rhivo pr futur refereniF vos modos de pertur posiles sonX r ere pr letur w ere pr esriturD desrtndo ontenidos nteriores si los hy ere o re rhivo pr esriturD gregndo dtos l (nl del rhivo si y existe rC ere pr letur y esritur wC gre rhivo pr letur y esritur C ere o re rhivo pr letur y esriturD gregndo dtos l (nl del rhivo si y existe in un rhivo se puede esriir en modo inrioX fred vee dtos inrios fwrite isrie dtos inrios o en modo texto fgetl vee un lne del rhivoD desrt mio de lne fgets vee un lne del rhivoD preserv mio de lne fprintf isrie dtos siguiendo un formto fsnf vee dtos siguiendo un formto eferimos l letor l yud que proporion ytveGwtl pr interiorizrse del uso de estos omndosF lo expondremos el uso de fprintfD pues el formto es lgo que hitulmente se neesit tnto pr esriir en rhivos omo en pntllD y fprintf se puede usr en mos sosF v instruin
fprintf@rhivoD9formto9DeDfDFFFA

imprime en el rhivo soido on el identi(dor rhivo @soido l mismo l usr fopenD ver ms rriAD ls vriles eD fD etFD usndo el formto 9formto9F rhivoaI orresponde l pntllY si rhivo se omiteD el default es ID es deirD fprintf imprime en pntll si rhivoaI o si se omite el primer rgumentoF

D.6.

COMANDOS

PUU

es un stringD que puede ontener rters normlesD rteres de espe o espei(dores de onversinF vos rteres de espe sonX n xew line t rorizontl t fkspe r grrige return f porm feed fkslsh 9 ingle quote or ejemploD l lne
9formto9 fprintf@9n tuliont y un 99originl99 mio de linen quin9A

d omo resultdo
n tulion qui y un 99originl99 mio de line

is importnte notr que por defaultD el mio de lne l (nl de un fprintf no existeD de modo queD si queremos evitr slids pntll o rhivo poo esttisD siempre hy que terminr on un nF vos espei(dores de onversin permiten dr formto deudo ls vriles numris eD fD etF que se desen imprimirF gonstn del rter 7D seguido de indidores de nho @opionlesAD y rteres de onversinF or ejemploD si desemos imprimir el nmero on S deimlesD l instruin esX
fprintf@9xumero pi a 7FSfn9DpiA

il resultdoX
xumero pi a QFIRISW

vos rteres de onversin pueden ser 7e xotin exponenil @ijFX PFReESA 7f xotin on punto deiml (jo @ijFX HFHHHHPRA 7g 7e o 7fD dependiendo de ul se ms orto @los eros no signi(tivos no se imprimenA intre 7 y eD fD o g segn orrespondD se pueden gregr uno o ms de los siguientes rteresD en este ordenX n signo menos @EAD pr espei(r linemiento l izquierd @ l dereh es el defaultAF

PUV

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

n nmero entero pr espei(r un nho mnimo del mpoF n punto pr seprr el nmero nterior del siguiente nmeroF n nmero indindo l preisin @nmero de dgitos l dereh del punto deimlAF in el siguiente ejemplo veremos distintos sos posilesF il output fue generdo on ls siguientes instruionesD ontenids en un scriptX
a FHRQWSY fprintf@9IPQRSTUVWHIPQRSn9AY fprintf@9 a 7FQfFn9DAY fprintf@9 a 7IHFPfFn9DAY fprintf@9 a 7EIHFPfFn9DAY fprintf@9 a 7RfFn9DAY fprintf@9 a 7SFQeFn9DAY fprintf@9 a 7fFn9DAY fprintf@9 a 7eFn9DAY fprintf@9 a 7gFn9DAY

il resultdoX
IPQRSTUVWHIPQRSTUVWH a HFHRRF a HFHRF a HFHR F a HFHRQWSHF a RFQWSeEHPF a HFHRQWSHF a RFQWSHHHeEHPF a HFHRQWSF

in l primer lneD se imprimen tres deimlesF in l segundD dosD pero el nho mnimo es IH rteresD de modo que se lne l dereh el output y se omplet on lnosF in l terer lne es lo mismoD pero linedo l izquierdF in l urt lne se h espei(do un nho mnimo de R rteresY omo el tmo del nmero es myorD esto no tiene efeto y se imprime el nmero ompletoF in l quint lne se us notin exponenilD on tres deiml @nuevmenteD el nho mnimo espei(doD SD es menor que el nho del outputD luego no tiene efetoAF vs ltims tres lnes omprn el output de 7fD 7e y 7gD sin otrs espei(ionesF i se desen imprimir ms de un nmeroD st gregr ls onversiones deuds y los rgumentos en fprintfF esD l lne
fprintf@9hos numeros ritrriosX 7g y 7gFn9DpiDexp@RAAY

D.6.

COMANDOS

PUW

d por resultdo
hos numeros ritrriosX QFIRISW y SRFSWVPF

i los rgumentos numrios de fprintf son mtriesD el formto es plido d olumn hst terminr l mtrizF or ejemploD el script
x a IXSY yI a exp@xAY yP a log@xAY a xY yIY yPY fprintf a @97g 7Vg 7VFQfn9DAY

d el output
I P Q R S PFUIVPV UFQVWHT PHFHVSS SRFSWVP IRVFRIQ HFHHH HFTWQ IFHWW IFQVT IFTHW

PVH

APNDICE D.

UNA BREVE INTRODUCCIN A OCTA VE/MATLAB

Apndice E Herramientas bsicas en el uso de L.A.M.P.


vFeFwFF es l sigl populr pr referirse l uso onjuntoX vinuxCepheCwysqlCr @tmin st ultim se reemplz por ython o erlA F

E.1. Objetivo.
e esper que trs leer este pndie el letor interesdo se pz deX ilorr sus propis pgins we utilizndo PHPD prtir de ls ules se pued intermir informin de mner segur medinte el sistem gestor de se de dtos MySqlF

E.2. Prerequisitos
gonoimiento sio sore qu es un nvegdorD es deirD tener ierto tiempo utiliznE doloF ener instldos y operndo onjuntmente los siguientes progrmsX
Apache

IFQ o superiorF MySql R o superiorF PHP R o superiorF PVI

PVP

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

E.3. Breve referencia sobre paginas web.


n nvegdor es un software que medinte l onexin snternet interpret scripts preE sentes en el servidor weD desplegndo el resultdo en pntllF hihos scripts normlmente se enuentrn esritos en lenguje htmlF v grn ventj que ofreen ls pgins web son los llmdos hipervnculos o links X ojetos que permiten sltr entre diferentes pgins we de mner filF qris los links existen los roles de pginsX diferentes scripts interonetdos medinte links orrespondientes un mismo dominio1F n pgin omo l nteriormente desrit es pz de desplegr informin en un nvegdor o reiirl trvs de formulriosF iste tipo de pgins reien el nomre de pgins estticasD es deirD si se quiere mir l informin desplegdD se est oligdo modi(r el script en htmlF in ontrsteD existen pgins que min su informin dependiendo de undo o mo son ejeutdsD reiiendo el nomre de pgins dinmicasF r logrr el dinmismoD el servidorD trs leer un serie de rhivosD gener un nuevo digo en html tiempo de ejeuinF ijemplos de dihs pgins son quells visitds dirio por ulquier personX usdoresD nos en lneD orreos eletrnios revisdos desde un nvegdorD etF r generr este tipo de pgins existen muhos lengujes de progrminD sin emrgoD el ms utilizdo y sore l que se introduir qu es el lenguje PHPF
E.3.1. Ejemplos
Pgina Esttica en

Archivo hola.html

html

`htmlb `titleb XXXXXil glsio rol mundoXXX `Gtitleb `odyb rol mundo3 `Godyb `Ghtmlb

il ejemplo nterior orresponde lo ms simple en un pgin we en html Y notr que el script est estruturdo medinte el uso de etiquetas del tipoX `lgob FFFF `GlgobF
Pgina Dinmica en

Archivo hola.php

PHP

`htmlb `cphp 6ha4rol mundo34Y cb `titleb XXXXXil glsio `cphp eho 6hY cbXXX `Gtitleb `odyb `cphp eho 6hY cb `Godyb
1 Nombre del sitio Internet.

E.4.

ADMINISTRADOR DE BASES DE DATOS.

PVQ

`Ghtmlb

i se proede ejeutr mos scripts prolemente no se preie ningun difereniY sin emrgoD el proeso que se h llevdo o por el servidor estlee fuertes diferenis entre mos digosF xotr que el digo en PHP se enuentr inserto por ompleto en el digo htmlF or lo nteriorD es neesrio tenerD l menosD un onoimiento sio de html pr omenzr progrmr en PHPF

E.4. Administrador de Bases de datos.


n se de dtos es un mner ordend de gurdr ulquier tipo de informin prD de este modoD filitr su squed posteriorF il enrgdo de usr l informin de mner efetiv es el administrador de la base de datos Y en nuestro soD el dministrdor orresponder l software MySqlF v informin de l se de dtos se lmen en mtries llmds tablasD onformds por olumns de(nidsF vs diferentes (ls de un tl se vn onstituyendo onforme se gregn nuevos registrosY l informin ontenid en los registros orresponde un onjunto de strings o nmerosF

E.5. Servidor Web.


n servidor e es un software que oper en l mquin remotF il servidor posee l informin ontenid en l pgin y su funin es proporionr l internut el ontenido de stF r efetos de este pndieD esto se redue interpretr el digo en PHP y generr en tiempo de ejeuin el nuevo script en htmlF

Creando scripts.

in ls seiones posteriores se listrn los omndos que permiten generr scriptsD el modo de hequerlos yD de est formD prender medinte ensyo y error esX rer l rpet ~GpulihtmlF isriir un script en el diretorio ntes itdo utilizndo lgn editor2F rir el nvegdor e ir l v httpXGGnomredelhostG~nomredelusurioGpthdelsriptF vuego de seguir estos psosD el nvegdor desplegr en l pntll l ejeuin del scriptF is importnte selr que el nvegdor no us errores de mner tn implle omo ompildores u otros intrpretes @pFejF Python AD por lo ul se reomiend ser espeilmente rigurosoF
2 Existen varios editores especializados en lenguajes web sobre los cuales conviene averiguar un poco.

PVR

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

E.6. Pginas Bsicas en html.

rtimente todo el digo en html orresponde spetos esttios de l pginD sore lo ul no se profundizrF intre los ojetivos que se usn lnzr en este pndieD presenE tn espeil relevni los formulriosD pues permiten introduir informin proporiond por un internut l se de dtosF

E.6.1. Estructura de una pgina en html. i ien el nvegdor es pz de interpretr orretmente digo en html esrito sin seguir ls reglsD es importnte l menos ser lgunsF odo el diseo de l pgin se enuentr entre etiquets del tipo `lgob FFFF `GlgobF vs ms relevntes y que le dn estrutur sonX
`htmlbX ist etiquet delimit en qu prte del script

htmlF

omienz y termin el digo en

`titlebX `hedbX `odybX

vo que se esri dentro de est etiquet onformr el ttulo de l pginD es deirD el nomre que preer en el ttulo de l ventn del nvegdorF gontiene etiquets y ontenidos del enezdoF riniplmente dtos que no preen en l pginD pero que son relevntesF gontiene l informin que ser desplegd en l pntllD y se texto imE genesD sonidoD etF ge destr que ningun de ls etiquets menionds es oligtoriY puede preindirse de ells si tn slo se quiere esriir texto sin ningun estruturF
E.6.2. Algo de estilo. vs etiquets utilizds pr dr estilo l texto dentro del uerpo de l pgin @i.e. etiquet `odybA sonX
Propiedades del texto.
`pbX

helimit un prrfo que (nlizr l errrse l etiquetF ist etiquet dmite opiones espeiles de linein tles omoX `p ligna4enter4bD l ul entr el prrfoF vs vrintes ovis de ls otrs lineiones son dejds l letorF
`hIbXhelimit

un ttulo de porte vrile en dependeni del nmero que se pong ompndo l letr hD diho nmero dee estr entre I y TF

E.6.

PGINAS BSICAS EN

rwv

PVS

un etiquet de errdoF `hrbXsntrodue un lne horizontlF el igul que en l etiquet nteriorD st es desE predF `bX odo lo esrito dentro de est etiquet quedr en negritsF `embX gonvierte en itli todo el texto dentro de est etiquetF `ubX ury el texto dentro de l etiquetF `subX gonvierte en sundie los rteres dentro de est etiquetF `supbX gonvierte en superndie los rteres delimitdos por l etiquetF `fontbX itiquet que permite de(nir triutos sore el textoD tles omo el porte o el olorF or ejemploD si se requiere texto en rojoX `font olora4red4bF
Propiedades globales de la Pgina.

`rbX sntrodue un slto de lneF e difereni de ls etiquets nterioresD st no tiene

gon ls etiquets nteriormente explids es posile rer un pgin on informin de mner reltivmente ordendD ms no esttiF n primer pso en est ltim direin es lo que se trtr ontinuinF odos los triutos gloles orresponden opiones de l etiquet `odybF vo que se hr es de(nir los olores deX el textoD los linksD links y usdos y el fondoF in html los olores se espei(n medinte un digo @pr onoer el digo orrespondiente d olor puede onsultrse l tl de olores @iFPA l (nl de este pndie3AFvo nterior puede preirse en el siguiente ejemploX
`ody golora45HHHHHH4 texta45ffffff4 linka45ffffQQ4 linka45ffff4b

il mpo bgcolor orresponde l olor de fondoY text l olor del textoY link y alinkD los olores de los links por visitr y visitdos respetivmenteF elterntivmenteD es posile poner un foto de fondo de pginD simplemente hy que suplir bgcolor porX
`ody kgrounda4fondoFjpg4b

e reomiend poner fotos peques que sen visulmente grdles omo mosiosD de lo ontrrioD puede vrir el mo se ven dependiendo del nvegdorD dems de her ms pesd l pginF il siguiente ejemplo utiliz ls herrmients desrrolldsF
3 La cual por razones obvias debe ser vista a color.

PVT
Ejemplo

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

Archivo ejemplo2.html

`htmlb `titleb XXXrerrmients de estiloXXX `Gtitleb `ody golora45QQTTWW4 texta45HHHHQQ4 linka45TTHHHH4 linka45QQffHH4b `hI ligna4enter4 b `font olora4red4b ore lo que se hlr en est pgin estti `Gfontb `GhIb `p ligna4right4b `emb FFFequ por ejemplo un it pr omenzr`Gemb `Gpb `rb `p lgina4enter4b isriiendo l prte medulr de l pginFFFFF`rb is posile esriir un formul sin rteres espeiles omo l siguienteX `p ligna4enter4b@`subII`GsubC`subPP`GsubCFFFFA `supbP`Gsupba@trzA`supbP`Gsupb`Gpb `p ligna4left4b pinlmenteD se esper un mnejo `b sio `Gb de `emb html `Gemb si se h logrdo omprender `ub este ejemplo por ompleto `Gub`Gpb `Godyb `Ghtmlb

Otros recursos.

gomo se sel en l introduinD l rtersti ms relevnte de un pgin web es su pidd de interonexin on otrs medinte linksF esimismoD existen otros reursos mplimente usdos que mejorn el speto y orden de un pgin en htmlF
Insertando una imagen

r insertr un imgen existe un etiquet despred4D en st dee drse el path reltivo del rhivo gr(o de l siguiente formX
`img sra4pth4b

min se pueden espei(r triutos diionlesD tles omoX l lineinD el espio vertil y horizontl utilizdo por l fotoX
`img sra4pth4 ligna4left4 hspea4PH4 vspea4QH4b
4 No tiene otra etiqueta de cierre

E.6.

PGINAS BSICAS EN

rwv

PVU

in l orden nteriorD l imgen @dentro del espio que puede utilizrA se enuentr lined l izquierd y tiene un mro de 4PH4 horizontl por 4QH4 vertilF
Links.

il enleD es deirD el espio de l pgin donde el ursor del mouse mi y permite eder l pgin siguienteD puede orresponder tnto texto omo un imgenX Enlace en el texto: r esto existe l etiquetX
` hrefa4pthlpginenuestion4btexto likele del link`Gb

vos path pueden ser reltivos5 si se trt de mteril presente en l mism mquinY de trtrse de un enle externo l pginD dee espei(rse l v ompletF Enlace sobre una imagen: yper extmente de l mism mner que un enle de texto y solo mi el rgumento dentro de l etiquetF
` hrefa4pthlpginenuestion4b`img sra4pth4b`Gb

Tablas.

n tl permite dministrr el espio en un pgin de mner e(iente y es espeilE mente til undo se quiere un pgin ordend y sin muhs rterstis gr(sF v tl es delimitd por l etiquet `tlebD dentro de stD ls (ls quedn delimitds por l etiquet `trbF e su vezD el elemento de d olumn qued trpdo en l etiquet `tdbF hentro de los elementos de l tl es posile utilizr prtimente ulquier etiquetF e ontinuinD un esquem sore mo se progrm un tlX
<table> <tr> <td> "a11"</td> <td>"a12"</td> <td>"a13"</td> <td>"a14"</td> </tr>

<tr> <td> "a21"</td>

<td> "a22"</td>

<td> "a23"</td>

<td> "a24"</td>

</tr>

<tr>

<td> "a31"</td>

<td> "a32"</td>

<td> "a33"</td>

<td> "a34"</td>

</tr>

<tr>

<td> "a41"</td>

<td> "a42"</td>

<td> "a43"</td>

<td> "a44"</td> </table>

</tr>

pigur iFIX isquem de un tl en htmlD utilizndo los elementos de un mtrizF


5 Respecto al cdigo que se est ejecutando

PVV

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

E.6.3. Formularios. od l preprin previ que se h llevdo o tiene omo (n el proveer de interfz gr( l pgin dinmiF il instrumento que permitir reiir informin desde el visiE tnte son los formulriosD el qu se he on dih informin esp de ls posiiliddes de htmlF r proesr l informin dee reurrirse otros lengujesF
Manejo de la informacin utilizando el formulario.

odo formulrio se enuentr de(nido dentro de l etiquet `formbD l ul ontiene lgunos triutos que espei(n qu her on l informinF in entrr en ompliionesD slo se selr que pr poder reuperr l informin ontenid en un formulrio deen de(nirse los siguientes triutosX
`form methoda4post4 tiona4pthdelrhivoquereuperlsvrilesFphp4b

il triuto methoda4post4 determin de qu form es lmend l informinY el triuto tiona4rhivoFphp4D indi el nomre del rhivo l ul es exportd dih informinF
Diseo de formularios.

ixisten un serie de formulrios que deen esogerse segn lo requier l lse de pgin que se ste progrmndoF e ontinuin se listn ls etiquets pr implementr los de myor usoD reurdese que se est dentro de un formulrio y por lo tnto dentro de un etiquet `formbF
Cajas de texto: r rer un dentro del formulrio st esriirX
`input typea4text4 nmea4xomredelinformin4b

i ien son vlids otrs etiquets diionlesD e destr que el triuto type tmE in dmite otrs lterntivs de rellendo tles omo passwordD el ul oult el texto introduidoF sulmenteD l informin reudd en los formulrios es proesd de mner lgortmiD por lo que onviene dr menos liertd sore qu informin es ingresd por el usurioF r ello se le he optrD omo se muestr en los Q siguientes diseos de formulriosF
Listado de opciones: v sintxis es l siguienteX

E.6.

PGINAS BSICAS EN

rwv

PVW

`selet nmea4esog4b `option vluea4opI4bnomreltI`Goptionb `option vluea4opP4bnomreltP`Goptionb `option vluea4opQ4bnomreltQ`Goptionb `option vluea4opR4bnomreltR`Goptionb `Gseletb

eordr que el listdo de opiones dee estr dentro de l etiquet de formulrioD de lo ontrrioD l informin otenid de ste no ir ningn ldoF il triuto vlue orresponde l nomre que se h signdo es lterntiv l proesr l informinD es deirD si por ejemplo l nomreltI es esogidD se registrr opI omo vlor de l vrile esoj undo se proese el formulrioF Botones de radio: v grn ventj de ste sistem es que se olig l internut optrD l sintxis esX
`input typea4rdio4 nmea4esoj4 vluea4opI4bnomreltI `rb `input typea4rdio4 nmea4esoj4 vluea4opP4bnomreltP

or deir que un formulrio puede tmin ser mixtoD es deirD ontener listdos de opiones js de textos yGo otones de rdioF
Envi de la informacin.

n vez que se h (nlizdo l de(niin del formulrioD dee gregrse un otn que enve l informinD el ul orresponde otro input typeF ediionlmenteD si el formulrio es muy lrgo es posile gregr un otn que pong el formulrio en lnoF vs sintxis son ls siguientesX
Botn de envi de la informacin: `input typea4sumit4 vluea4otondeenvio4b Botn de reseteo : `input typea4reset4 vluea4reseter4b Ejemplos

gon ls nuevs herrmients es posile onstruir pgins omo ls expuests en los siguientes ejemplosX usndo el primer ejemplo de est sein omo un rhivo de nomre ejemploPFhtmlD se puede onstruir un pequeo rol de pgins on los siguientes P scriptsF il primer script requiere un foto llmd iniioFjpg en el diretorio lolF

Archivo ejemplo3.html

PWH

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

`htmlb `titleb XXXtilizndo los nuevos reursosXXX `Gtitleb `ody golora45TTTTTT4 texta45TTHHHH4 linka45TTppHH4 linka45TTHHTT4b `hrb `tle ligna4enter4b`trb`tdb` hrefa4ejemploPFhtml4b ejemplo`rb nterior `Gb`Gtdb`tdb ` hrefa4ejemploRFhtml4b `img sra4iniioFjpg4 ligna4enter4 hspea4QH4 vspea4PH4b`Gb `Gtdb `tdb ` hrefa4httpXGGwwwFuhileFl4benle externo`Gb `Gtdb `Gtrb`Gtleb `hrb `Godyb `Ghtmlb

Archivo ejemplo4.html

`htmlb `titlebFXXijemplo del uso de formulrios tipo j de textoXXF`Gtitleb `ody golora45HHHHHH4 texta45pppppp4 linka45TTppHH4 linka45HHppWW4b `rb `hP ligna4enter4b gomplete on sus dtos y gne3`hPb `form 4 methoda4post4 tiona4proesFphp4b `tle ligna4enter4b `trb`tdb xomreX`Gtdb`tdb`input typea4text4 nmea4xomre4b`Gtdb`Gtrb `trb `tdbeEmilX`Gtdb`tdb `input typea4text4 nmea4emil4b`Gtdb`Gtrb `trb`tdbelefonoX`Gtdb`tdb `input typea4numer4 nmea4fono4b`Gtdb`Gtrb `trb`tdbhireinX`Gtdb`tdb `input typea4text4 nmea4dire4b`Gtdb`Gtrb `trb`tdb`Gtdb`tdb`input typea4sumit4 vluea4envir4b`Gtdb`Gtrb `Gformb `Gtleb `Godyb `Ghtmlb

ijemplo de formulriosD tipo listdo de lterntivsX

Archivo ejemplo4b.html

`htmlb`titlebXXvistdo de opionesXXX`Gtitleb `ody golora45HHHHHH4 texta45pppppp4 linka45TTppWW4 linka45TTHHQQ4b `hI lgina4left4b`ubrtiuls sutomis`Gub`GhIb `form methoda4post4 tiona4psFphp4b `tleb`trb`tdbrtiul sutomiX`Gtdb `tdb`selet nmea4ps4b`option vluea4proton4bprotn`Goptionb `option vluea4neutron4bneutrn`Goptionb`option vluea4eletron4beletrn`Goptionb

E.7.

wv

PWI

`Gtdb`Gtrb`trb`tdb`Gtdb`tdb `input typea4sumit4 vluea4ver4b`Gtdb`Gtleb`Gformb`Godyb`Ghtmlb

e prtir de ests herrmients sis en l progrmin de pgins htmlD es posile omenzr introduir elementos que mien dentro de l pgin tiempo de ejeuinF isto esD l progrmin en PHPF in emrgoD primero dee explorrse revemente el lenguje que permite omunirse on l se de dtosF

E.7.

MySql.

E.7.1. Iniciando sesin. MySql es un dministrdor de se de dtos que tiene un estrutur de usurios similr l de UNIXX existe un superusurio llmdo root y los usurios ordinriosD d uno on su propi cuentaF e supondr en los siguientes ejemplos l posesin de un uent uyo nomre de usurio es lamp y de plr lve bdF r omenzr intertur on el dministrdor de ses de dtosD hy que iniir un sesin en ste desde l onsol del siguiente modoX
usdhostX6mysql Eu lmp Ep inter psswordX elome to the wyv monitorF gommnds end with Y or gF our wyv onnetion id is T to server versionX RFHFPRheinEIHsrgePElog ype 9helpY9 or 9h9 for helpF ype 99 to ler the ufferF mysqlb

v orden que se d desde l onsol esX usdhostX6mysql Eu lmp EpD que quiere deirX omienz un sesin de MySql on el nomre de usurio lamp @Eu lmpA y pide el password @EpAF v ltim lne orresponde l prompt de MySqlF
E.7.2. Creando una base de datos. e prtir de qu puede interturse on MySql Y pr herlo dee onoerse el lenguje de interin llmdo SqlD del ul tn slo se ensern ls ordenes sisF ge destr que todo lo que se esri en l onsol de MySql dee (nlizr on  YF il primer pso es rer un se de dtosD de nomre baseD pr ello dee introduirse l ordenX

n vez red l se de dtos se puede omenzr trjrF n usurio de MySql puede tener vris ses de dtos dentro de su uentD es por ello que d vez que ste se onete MySql @ i.e. se loguee A dee esoger l se de dtos que utilizrY desde l onsol esto se he esriiendoX

mysqlb rete dtse seY

PWP

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

mysqlb onnet seY

E.7.3. Creando tablas. v se de dtos ser ompletmente intil si no se hn redo tlsF rolemente esto onstituye el pso ms omplido en el ordje de un prolem soluionr on un se de dtosD pues es en l estrutur de ls tls que quedr plsmdo el esquem jo el ul operr lo que se progrmeF or ello se reomiend fuertemente pensr este punto ntes que ulquier otroF r rer un tl dee espei(rse @el menosAX el nomre de l tlD el nomre de d mpo y el tipo de d mpoF upngse el so simple de un tl on telfonos llmd gendD est tl dee ontener l menos dos mposX nombresD que onteng textoD y telfonoD que onteng nmerosF r rer tl tl dee introduirseX
mysqlb rete tle gend@nomre textD telefono intAY

y en generlX
mysqlb rete tle nomretl@mpoI tipoD mpoP tipoDFFFFFFFDmpoi tipoAY

odr juzgrse el ejemplo demsido simpleD pues no qued lro de untos tipos pueden ser los mpos en un tlY omo l intenin no es extenderseD se reomiend instlr el script en PHP llmdo phpmyadmin 6 D el ul permite un dministrin de l se de dtos desde el nvegdor de un form stnte ms intuitiv y didti que simplemente intertundo on l onsolF xo se dee usr del uso de est interfseD pues es fundmentl onoer l sintxis pr intertur on l se de dtos y que justmente son sts rdenes ls que se inluyen en los scriptsF
E.7.4. Interactuando con la Tabla. eniendo l pidd pr rer ses de dtos yD dentro de stsD rer tlsD lo que rest es prender X insertarD buscar y remover registros de un tlF r ilustrr ests iones se ontinur on el ejemplo de l gend telefniF 7 sxiF upngse que se quiere ingresr un nuevo usurio llmdo edro de nmero telefnio SRQUVWTF r ello dee esriirse en l onsolX
Escribiendo nuevos registros en la tabla: sentencia

mysqlb insert into gend@nomreDtelefonoA vlues @4edro4DSRQUVWTAY


6 Disponible para la distribucin Debian GNU/Linux. 7 Tanto MySql como html no son sensibles a las maysculas al escribir

scripts.

E.7.

wv

PWQ

o en generlX
mysqlb insert into nomretl@mpoIDmpoPDFFFFFDmpojDFFA vlues @vlmpoIDvlmpoPDFFFFDvlmpojDFFFAY

xotr que los string deen ir entre omills doles o simplesD no s los nmerosF i se esrie dos vees el mismo registroD l se de dtos gurdr dos registros diferentes on extmente l mism informin y los diferenir por su feh de ingresoF hiviiF upngse que se quiere orrr exlusivmente edroY pr ello dee esriirseX
Removiendo registros: sentencia

mysqlb delete from gend where nomrea9edro9Y

xotr l priin de l ondiin riiD l ul espei( quin orrrY de trunr l senteni ntes de est ondiinD MySql orrr todos los registros de l tlF gomo es de esperrseD se podri her identi(do quin se quer eliminr medinte ulquier otro mpoF il dministrdor se podr preguntr mo orrr l ntidd de usurios que quier de mner efetiv hiendo lgo similr lo que permite shD esto es posile y filmente deduile de l senteni seletF ivigF v sintxis de l senteni ivig es l siguienteX
Buscando registros en la base de datos: sentencia

mysqlb selet nommpo from nomtl where ondiionesY

n pr de ejemplos pr ilustrr lo nteriorX eleionr todos los elementosX mysqlb selet B from gendY vistr todos los elementos de l gendF eleionr todos los nomres de l gendX mysqlb selet nomre vistr todos los nomres de l gend @dem on los telfonosAF eleionr el pr @telfonoD nomreA del usurio endreX

from gendY

yperdores lgiosX tmin es posile ser ms espe(o medinte operdores lgios omo y o exhD los ules funionn omo se esperrF isto sirve prD por ejemploD orroorr l existeni de un registroF upngse que se onoe el telfono SSQRIPT y se tiene l sospeh de que pertenee endreF r ello puede digitrseX
mysqlb selet B from gend where nomrea9endre9 nd telefonoa SSQRIPTY

mysqlb selet telefonoDnomre from gend where nomrea9endre9Y

PWR

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

i no retorn ningn registro quiere deir que endre no tiene ese nmeroF elterE ntivmenteD pr otener ms informin se puede esriirX
mysqlb selet B from gend where nomrea9endre9 or telefonoa SSQRIPTY

vistr todos los registros que umpln lgun o ms ondiionesF wostrr registros que ontengn informin diferenteX
mysqlb selet nmpos hssxg pyw ntl where ondiiones

yrdenX v myor de ls vees es neesrio ser prilmente de qu form vendrn los dtos listdosD pr ello es neesrio introduir un orden y un tolerniD de est form es posile ontrolr extmente qu her preer en el resultdo de l squedF upngse que se quieren mostrr todos los elementos de l gend ordendos lftimente por nomreD pr esto hy que esriirX
mysqlb selet B from gend order y nomreY

ued lro que he l ondiin yhi fF upngse que se dese invertir el orden y poner los ltimos Q registrosD pr ello dee esriirseX
mysqlb selet B from gend order y nomre des limit QY

v ondiin hig exige un orden desendenteD mientrs que vswsD ompE do de un enteroD d l ntidd mxim de registros que pueden preer omo resultdo de l squedF esult espeilmente importnte her rdenes on nmerosD pues permiten utilizr omprdores ritmtiosF upngse que se tiene un tl llmd usuarios que ontiene los mpos edad y nombre de personsF r enontrr los myores de edd deer esriirseX
mysqlb selet B from usurios where edd ba IVY
Actualizacin de datos, sentencia:

heiF

ist senteni permite l tulizin de los dtosD es deirD tom un registro viejo y le modi( lgn mpoF upngse que en el ejemplo de l gend telefni se quiere mir el telfono un usurio llmdo tunD quien tiene un nuevo telfono VSUITRTF r herlo dee introduirse l ordenX
mysqlb updte gend set telefonoaVSUITRT where nomrea9tun9Y

is evidente l funin de i en l sintxisY de no espei(rse rii y trunrse l frseD se mir el telfono de todos los registros por el nuevo nmeroF

E.8.

PROGRAMACIN EN

PWS

Funciones sobre los campos.

ixistenD demsD funiones que pueden plirse sore los mposD ls ules pueden investigrse utilizndo phpmyadminF e ver un ejemplo simpleX en preseni de un tl on informin importnte omo ontrsesD ser neesrio lgn sistem de seguridd sore ellsF r esto existe l funin eyhD l ul enript el rgumentoF v tl se llm registrados y ontiene P mposX Nombre tipo texto y clave tipo egreF e se omo rer un tl e insertr registrosF v siguiente sintxis muestr l difereni heh por l funin eyhX
mysqlb rete tle registrdos @nomre textD lve egre@PHAAY mysqlb insert into registrdos @nomreD lveA vlues @9ndres9D9teRS9AY mysqlb selet B from registrdosY CEEEEEEEECEEEEEEEC | nomre | lve | CEEEEEEEECEEEEEEEC | ndres | teRS | CEEEEEEEECEEEEEEEC I row in set @HFHH seA

e proede enriptr l lveF


mysqlb updte registrdos set lveaeyh@9teRS9A where nomrea9ndres9Y mysqlb selet B from registrdosY CEEEEEEEECEEEEEEEEEEEEEEEEEEC | nomre | lve | CEEEEEEEECEEEEEEEEEEEEEEEEEEC | ndres | QUdQWSVPIddHSR | CEEEEEEEECEEEEEEEEEEEEEEEEEEC

e h expuesto lo ms sio pr poder intertur on l se de dtosF il onoimiento de est sintxis volver ms rpidosD seguros y e(ientes lo progrmdoY sin emrgoD el lne del pndie utilizr tn slo ls herrmients qu expuestsF

E.8. Programacin en

vos P lengujes ntes vistos no tienen relin entre s yD de hehoD no podrn funionr en onjunto de no ser por el lenguje PHPF iste lenguje es interpretdo por un mdulo del servidor webD por elloD el digo en PHP nun ndon el servidorD es deirD el internut no puede ver l fuente en PHP visitndo l pginF r el estudinte de este pndie se esper un prendizje muy rpido de PHP por su similitud on sh y gCCF in lo suesivoD todo el trjo de PHP ser omunirse on l se de dtos y mnipulr los reursos de html de mner dinmiF

PHP.

PWT

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

E.8.1. Lenguaje PHP. gomo y fue seldo en l introduinD el lenguje en PHP se enuentr inserto dentro del htmlF isto signi( que el script est esrito priniplmente en html on trozos en PHPF odo el digo en PHP qued delimitdo por ls etiquetsX `cphpFFF qui todo el odigo en php FFFF cbF el igul que en shD ls vriles vn nteedids por un smolo 6D por otr prteD l igul que en gCC d lne de digo dee ir (nlizd por un  YF i se regres on est nuev visin sore el primer ejemplo de pgin dinmi expuesto en este pndieD se tendrX
Pgina Dinmica en

Archivo hola.php

PHP

`htmlb `cphp 6ha4rol mundo34Ycb `titleb XXXXXil glsio `cphp eho 6hY cbXXX `Gtitleb `odyb `cphp eho 6hY cb `Godyb `Ghtmlb

vo que ourre l esriir est pgin en el nvegdor es lo siguienteX el servidor we proes el script interpretndo el digo delimitdo en PHPD generndo tiempo de ejeuin el siguiente nuevo script en htmlD el que es interpretdo por el nvegdorF
`htmlb `titleb XXXXXil lsio rol wundo3XXX`Gtitleb `odyb rol wundo3 `Godyb `Ghtmlb

hee quedr ompletmente lro que el digo en PHP jms ndon el servidor webD por lo tntoD el digo en PHP se enuentr inserto dentro del html y no vieversF hentro de un script en html es posileD ls vees que se neesrio y donde se neesrioD esriir digo en PHPF
E.8.2. Variables. vs vriles en PHP pueden ser stringD nmeros o rreglosF r desplegr en pntll un vrile se utiliz l instruin ehoF il ejemplo nterior onstituye un so simple de estoF E.8.3. Recuperando variables desde un formulario. in el formulrio del D ste envi v post ls vriles l rhivo proesFphpF ehor se proeder rer diho rhivo operndo sore ls vrilesF
ejemplo 4

E.8.

PROGRAMACIN EN

PWU

Ejemplo

erhivo proesFphp

`htmlb`titleb reuperndo ls vriles `Gtitleb `ody golora45HHHHHH4 texta45pppppp4 linka45TTppHH4 linka45HHppWW4b `hP ligna4enter4b v informin tird pntll`hPb `p ligna4enter4b u nomre es `b`cphp eho 6y9xomre9Ycb`Gb Dvives en `b `cphp eho 6y9dire9Y cb `GbF u eEmil es `b `cphp eho 6y9orreo9Y cb `Gb D dems tu telfono es `cphp eho 6y9fono9Ycb`Gpb`Godyb `Ghtmlb

iste rhivo simplemente tom ls vriles y ls desplieg en pntllF e dee notr que l informin ontenid en un formulrio qued ontenid en el grupo de vriles 6y9nomredelvrile9F gon este onoimiento es posile reher todo ejeriio propuesto en el ptulo de gCC donde se pidn vriles y opere on ells en PHPF ge destr todo lo que es posile mezlr html y PHPF
E.8.4. Control de ujo. vs sintxis de los ontroles de )ujo ms usules en PHP son extmente igules los y onoidos de gCCF e ontinuin se dn ejemplos de los ules while y if respetivmenteF ge destr que el uso de  F peg los stringF
ejemplo while
`cphp 6iaIY 6ja4ijemplo de un ule hiendo iterionesD iterion no X4Ycb `htmlb`ody golora45QQTTWW4 texta4HHHHQQ4 linka4TTHHHH4 linka45QQffHH4b `hP ligna9enter9b vyy `emb while `GembF `GhPb `p ligna4right4b `cphp while@6i`IHAGGomentrio en php {eho 6j F 6iY 6iCCY cb `rb `cphp } cb `Gpb`Godyb`Ghtmlb

ejemplo if

il ondiionl if logr que el script hg diferentes oss segn el vlor de lgun vrileF e (n de eonomizr digoD ontinuin se ejempli(r el uso del ontrol de )ujo if proesndo l informin introduid en el formulrio del ejemplo4b.htmlF v ide es tener l informin ontenid en vriles diferentes y que st se desplegd en l pntll segn se elijF v sintxis del if es extmente igul que en gCCF erhivo psa.php

PWV

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

`cphp 6opiona6y9ps9Y GGproton 6pmsa4IDTUP B IHPU kg4Y 6prga4IDTHPIUTSQ@IRABIH@EIWAg4Y 6psa4E4Y GGneutron 6nmsa4IDTUP B IHPU kg4Y 6nrga4H4Y 6nsa4no tiene rg4Y GGeletron 6emsa4WDIH B IH@EQIA kg4Y 6erga4IDTHPIUTSQ@IRABIH@EIWAg4Y 6esa4E4Y GGgenerl 6msY 6rgY 6signoY if @6opionaa4proton4A {6msa6pmsY 6rga6prgY 6signoa6psY} else if @6opionaa4eletron4A {6msa6emsY 6rga6ergY 6signoa6esY} else {6msa6nmsY 6rga6nrgY 6signoa6nsY} cb `htmlb`titleb informion`Gtitleb `ody golora45HHHHHH4 texta45pppppp4 linka45TTppWW4 linka45TTHHQQ4b `tleb`trb`tdbv prtiulX `Gtdb`tdb `cphp eho 6opionY cb `Gtdb`Gtrb `trb`tdbtiene un ms de X`Gtdb`tdb `cphp eho 6msY cb `Gtdb`Gtrb `trb`tdbtiene un rg de signo X`Gtdb`tdb `cphp eho 6signoY cb `Gtdb`Gtrb `trb`tdbtiene un ntidd de rg X`Gtdb`tdb `cphp eho 6rgY cb `Gtdb`Gtrb `Gtleb`Ghtmlb

E.8.

PROGRAMACIN EN

PWW

E.8.5. Funcin require. el igul que en todos los dems lengujes estudidos en este ursoD PHP posee funiones intrnses l o que pueden rerseF in este pndie tn slo se hr uso de funiones que vienen y inluids en el lengujeD pues son ls primers que deen onoerseF v funin require pide omo rgumento lgn rhivo undo se ejeut el digoF v funin se enrg de inluir el rhivo y evlurlo dentro del digoF i el rhivo en uestin result ser ms digoD ste ser ejeutdoF sulmenteD esto es utilizdo pr pedir formulriosY el uso de est funin se ejempli( mplimente en el ejemplo (nlF E.8.6. Sesin. PHP tiene l pidd de de(nir vriles gloles sore un onjunto de pgins eleinY pr ello dee relizrse un sesionF sts son usulmente utilizds undo se posee un estrutur de usuriosF r poder rer un sesin dee ontrse onX un rol de pgins y rmdoD un pgin donde se iniie l sesinD y un pgin donde se termine l sesinF r ilustrr el uso de ls sesiones se onsiderrn R pginsX el formulrio del ejemploRFhtmlY el ejemplo nterior proesFphp@on un pr de modi(ionesA omo pgin de iniio de sesinY un nuev pgin ejemploSFphpD que gris l sesin es pz de reuperr ls vrilesY y un pgin de ierre de sesin slirFphpD l ul vuelve l ejemploRFhtmlF is importnte dquirir el hito de generr roles de pgins lo ms intuitivos posileD pues sts suelen ser usds por persons on poo o nulo onoimiento de su onstruin y grn prte de su xito rdir en su simplezF in ms premulosD los ejemplos son los siguientesX
Ejemplos.

xuevo rhivo proesFphp

`cphp sessionstrt@AYGGiniio de l sesin heder@4gheEontrolX privte4AY GGest lne se esrie pr no orrr los formulrios omo lo he iFeF cb `htmlb`titleb reuperndo ls vriles `Gtitleb `ody golora45HHHHHH4 texta45pppppp4 linka45TTppHH4 linka45HHppWW4b `hP ligna4enter4b v informin tird pntll`hPb `p ligna4enter4b u nomre es `b`cphp eho 6y9xomre9Ycb `GbD vives en `b `cphp eho 6y9dire9Y cb `GbF u eEmil es `b `cphp eho 6y9orreo9Y cb `GbD dems tu telfono es `cphp eho 6y9fono9Ycb `Gpb `hI ligna4enter4b ` hrefa4ejemploSFphp4b `font olora4red4b equi pr seguir `Gfontb`Gb`GhIb

QHH

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

`Godyb `Ghtmlb `cphp 6isyx9nomre9a 6y9xomre9Y 6isyx9mil9a 6y9orreo9Y GGhefiniendo ls vriles gloles de sessionFcb

erhivo ejemploSFphp

`cphp sessionstrt@AY cb `htmlb `ody golora45HHHHHH4 texta45pppppp4 linka4TTppHH4 linka4HHppWW4b `tle ligna4enter4b `trb`tdb `b vs vriles un se reupern y sonX `Gb`Gtdb`Gtrb `trb`tdb `b il nomre erX `emb `cphp eho 6isyx9nomre9Y cb `Gemb `Gb`Gtdb `Gtrb `trb`tdb `b il orreo erX `emb `cphp eho 6isyx9mil9Y cb `Gemb `Gb`Gtdb`Gtrb `hI ligna4enter4b ` hrefa4slirFphp4b `font olora4red4b finlizr sesinF `Gfontb`Gb`GhIb `Gtleb `Godyb `Ghtmlb

rhivo slirFphp

`cphp sessionstrt@AY sessionunset@AY heder@4votionXejemploRFhtml4AY eho4`htmlb`Ghtmlb4Y exitY

E.8.

PROGRAMACIN EN

QHI

cb

n pr de omentrios sore los ejemplosX l funin sessionstrt@A dee ser lo primero que prez en el scriptD es deirD lo primero registrdo por el servidorF r de(nir un vrile de sesin st signrl omo 6isyx9nomre9 l ul existe omo vrile glol pr tods ls pgins que integren l sesin prtir desde donde fue de(nid l vrileF r slir se utiliz l funin sessionuset@AD l ul destruye tods ls vriles de l sesinF in el ejemplo slirFphp se h utilizdo un mtodo que permite redireionr l pgin de mner utomti sore el ul no se profundizrF sulmenteD por rzones de seguriddD se requiere un rol de pgins que se errdoD pr ello simplemente st de(nir un vrile de sesin en l pgin de entrd y luegoD en d nuev pgin que integre l sesinD nteponer un ondiionl if que hequee que es vrile existD es deirD heque que se hy psdo por l primer de ls pginsF or ejemploD si se de(ne l vrile de sesin 6isyx9estdo9a4onetdo4Y en l primer pginD un form de de(nir el ondiionl esX
if @ 6isyx9estdo93a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9ejemploRFhtml9bvolver`Gb4AY}

isto quiere deir que si l vrile de sesin 'estado' es diferente de onetdoD niegue l entrd l pgin y despliegue este mensjeF he lo ontrrioD se ontinur proesndo el digoF
E.8.7. PHP interactuando con MySql. i se h seguido el pndie hst qu on xitoD el mino est si ompletoF r logrr el ojetivo (nl tn slo deen introduirse un pr de funiones de PHP que permitirn l onexin MySqlF r esto se esquemtizrn los psos que todo script que se onet l se de dtos dee seguirX IF gonetrse MySqlF PF isoger l seF QF heterminr si se esrie o se lee desde l se de dtosF RF isriir l petiin omo vrile en un stringF SF invirl @si h que esriir en l se de dtosD on esto es su(ienteAF TF i se est leyendo desde l se de dtosD onvertir el resultdo en un rreglo y operr sore l prte de l que se neesiteF iguiendo l numerin respetivD utilizndo el nomre de usurio y ontrse de MySql ntes itdoD ls funiones sonX

QHP IF

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

6onexionamysqlonnet@9lolhost9D9lmp9D 9d9Aor die@9xo es posile onetr9Fmysqlerror@AAY

e onet l servidor de MySql lol jo el usurio lmpF odr preer en prinipio un poo inseguro que prez l lve del usurio explitmente en el script Y sin emrgoD reurdese que est prte del script est esrit en lenguje PHP y por lo tnto jms ndon l mquin donde se enuentr el scriptF PF xotr queD difereni del tem nteriorD qu l selein de se no se lmen omo vrileF QF r leer o esriir en l se de dtosD st rer un vrile de string on l sinE txis de lo requerido en lenguje sqlF or ejemploD supngse que se quiere esriir en l gend un nomre gurddo en l vrile 6nomre y un telfono lmendo en l vrile 6telefonoY l sintxis esX RF or otr prteD si quiere esogerse un registro prtiulrD por ejemplo el nmero teleE fnio del usurio 6usurio D l sintxis esX
6ua4selet nomreDtelefono from gend where nomrea96usurio94Y mysqlseletd@9nomredelse9Aor die @9fse no enontrd9AY

6pa4insert into gend@nomreD telefonoA vlues @96nomre9D96telefono9A4Y

SF sndependiente de si se quier leer o esriirD si l petiin est en un vrile 6pD est se ejeut en MySql medinte l ordenX
6pedidoamysqlquery@6pA or die @9no se pudo9AY

TF upngse que se pidi un registroD lo que se otendr de vuelt en l vrile 6pedido no es un nmero ni un rregloF r poder operr on l informinD primero dee onvertirse en un rregloF hos mners diferentes de herlo sonX
6filamysqlfethrow@6pedidoAY 6rregloamysqlfethrry@6pedidoAY

in mos sosD el rreglo se reorre de l mism mner que en gCCF or ejempE loD en el primer soD si quiere otenerse el primer elementoD ste orresponder l vrile 6filHFin ontrsteD el segundo soD permite seleionr los elementos del rreglo por su nomre dentro de l tl de MySqlF or ejemploD si tenemos un tl on los mpos nomreD direinD entones los elementos del rreglo orresponden 6rreglo9nomre9 y 6rreglo9direin9 respetivmenteF in l prti es muho ms utilizd est representin que l de rowD pues es ms fil identi(r los elementosF pinlmenteD e selr que en mos sosD los rreglos respetivosD ontienen un slo registroD pese que el queryD onteng ms de unoF r otener todos los registros rrojdos por el queryD st reorrerlo on un whileD de l siguiente formF

E.9.

EJEMPLO FINAL.

QHQ

GGsuponiendo onetdo l seD GGy on l senteni sql esrit en un stringF 6pedidoamysqlquery@6sentenimysqlAY GGsupongse que el query de rri devuelve ms de un registroD GG pr otener d uno st her while@6mirregloamysqlfethrry@6pedidoA{eho 6mirreglo9mpo9Y} cb

vo nterior desplegr en pntll el ontenido de los suesivos registros en el mpo mpoF vo nteriorD tmin funion pr mysqlfethrowF gon est sein se d por (nlizdo el pndieY sin emrgoD se h esrito un ejemplo (nl pr ver puests en prti ls herrmients qu expuestsF e invit l letor tomrlo omo un prue (nl de si logr un prendizje relF

E.9. Ejemplo Final.


e esper her reorrido on xito todos los tpios de un mner super(ilF e (n de lrr ulquier onepto que pr el letor hy queddo poo lroD se llevr o un ejemplo simpleD el ul dee umplir el siguiente ojetivoX un sistem en lne donde estudiE ntes que ursen un rmo puedn verigur sus nots y promedio de mner personlizd medinte un lveF e huier esperdo un ejemplo ms ient(oD sin emrgoD tods ls herrmients de este pndie puntn tres dministrtivs ms que otr osF
E.9.1. Paso I: Estructura de las tablas. r todo el ejemplo se tiene el mismo nomre y lve de usurio en MySql que en los ejemplos nterioresF il sistem dee ontener un se de dtos llmd rmo y dentro de stD por lo menosD dos tlsX un on los nomres y ontrses de los diferentes lumnosD es deirD dos mpos y otr on el nomre de d estudinte y ls nots de ls respetivs evluionesF r poner un ot superior se rern V mpos de evluinF ediionlE menteD se rer un tl que onteng tnto el nomre omo l lve del dministrdor de este sistemF v rein de l se de dtos y ls respetivs tls en l onsol de MySql son por lo tntoX
mysqlbrete dtse rmoY mysqlbonnet rmoY mysqlbrete tle lumnos@xomre textDlve vrhr@PHAAY mysqlbrete tle nots@xomre text DnotI flotD notP flotD notQ flotD notR flotD notS flotD notT flotD notU flotD notV flotAY mysqlb rete tle dministrdor@xomre textD lve vrhr@PHAAY mysqlb insert into dministrdor@xomreDlveA

QHR

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

vlues @4dministrdor4D pssword@4dmin4AAY

st es tod l sintxis que es neesrio her desde l onsol de MySqlF ehor to pensr el rol de pgins y l omuniin que tendrn sts on l se de dtosF
E.9.2. Paso II: rbol de pginas. il rol de pgins dee surgir de mner nturl prtir de los ojetivos que dee umplir lo que se est progrmndoF ste se reduir formulrios que permitn introduir informinD l ul ser proesd por otro script en PHPF i ien existen P lses de usurios @el dministrdor y los usurios orrientesAD todos deen psr por un pgin que les permit entrr en el sistemD es deirD 'loguearse'F il rhivo expuesto ontinuin es simplemente un formulrio que env l informin logueoFphp pr ser proesdF erhivo logFhtml
`htmlb`titleb fienvenido `Gtitleb`ody golora45TTpppp4 texta45TTHHHH4b `hI ligna4left4b roed identifirse `GhIb`rb`rb`rb`hrb `form methoda4post4 tiona4logueoFphp4b `tle ligna4left4b `trb`tdb`bxomre de surioX`Gb`Gtdb`tdb `input typea4text4 nmea4nomre4b`Gtdb`Gtrb `trb`tdb`bgontrseX`Gb`Gtdb`tdb`input typea4pssword4 nmea4lve4b `Gtdb`Gtrb `trb`tdb`btipo de usurioX`Gb`Gtdb `tdb`selet nmea4usrls4b`option vluea4I4busurio`Goptionb `option vluea4P4bdministrdor`Goptionb`Gtdb`Gtrb `trb`tdb`input typea4sumit4 vluea4iniir sesion4b`Gtdb`Gtrb `Gtleb`Gformb`rb`rb`rb`rb`rb`hrb`Godyb`Ghtmlb

il formulrio rein expuesto pide Q dtosX el nomreD l ontrse y el tipo de usurio que est intentndo 'loguearse'F il script que proes est informin dee rer un sesinD pues reurdese que esto dee ser lo primero que prez en el scriptF vuego dee hequer que l lve ingresd orrespond un usurio existenteD sin emrgoD tmin dee relizr diferentes iones si se trt de un usurio omn o del dministrdorD por lo nteriorD este script funionr en se l ondiionl ifF xo dee sorprender l ntidd de digoD puesD l ide es un solD mindo los nomres de ls vrilesX erhivo logueoFphp
`cphp sessionstrt@AY 6nomrea6y9nomre9Y 6lvea6y9lve9Y 6tipoa6y9usrls9Y

E.9.

EJEMPLO FINAL.

QHS

6onexionamysqlonnet@9lolhost9D9lmp9D 9d9Aor die@9xo es posile onetr9Fmysqlerror@AAY mysqlseletd@9rmo9Aor die @9error l onetr l se9AY if@6tipoaaIA {6pa4selet xomreDlve from lumnos where xomrea96nomre9 nd lveaeyh@96lve9A4Y 6qamysqlquery@6pA or die@9no se pudo her el pedido9AY 6amysqlfethrow@6qAY if@6aaflseA {eho 4usted no es reonoido por el sistem4Y cb ` hrefa4logFhtml4b`font olora4red4b olver`Gfontb`Gb `cphp} else {6isyx9estdo9a4onetdo4Y require@9notsFphp9AY}} else if@6tipoaaPA {6pa4selet xomreDlve from dministrdor where xomrea96nomre9 nd lveaeyh@96lve9A4Y 6qamysqlquery@6pA or die@9no se pudo her el pedido9AY 6amysqlfethrow@6qAY if@6aaflseA {eho 4usted no es reonoido por el sistem4Y cb ` hrefa4logFhtml4b`font olora4red4b olver`Gfontb`Gb`cphp} else{6isyx9estdo9a4onetdo4Y require@9ionesFphp9AY}} else{require@4logFhtml4AY}cb

v funin del script es l siguienteX primero reuper ls vriles introduids en el formulrio y se onet l se de dtos ramo Y despusD en funin del vlor de l vrile 'usrcls'D deide dnde usr l informin del nomre de usurio y lves respetivsF piE nlmenteD l ltim lne ontempl l posiilidd de que se hy intentdo eder est pgin sin her psdo por el formulrioD requirindolF e prtir de este scriptD el rol de pgins se ifur en P X l rm del usurio y l rm del dministrdorF vos nomE res de ls pgins y fueron nomrdos en el ltimo scriptF e list ontinuin el script ionesFphpD el ul permite l dministrdor ingresr informin de mner intuitivF erhivo ionesFphp
`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY}cb `htmlb`titleb edministrndo ls nots`Gtitleb `ody golora45HHHHHH4 texta45TTppHH4 linka45ggHHQQ4 linka45TTppTT4b `font olora4red4b`ub` hrefa4slirFphp4b`hR ligna4right4b gerrr sesinF`GhRb `hI ligna4enter4b`font olora4lue4b ionesF`GhIb `tleb`trb`tdb`cphp require@9nuserFphp9AYcb`Gtdb`tdb

QHT

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

`cphp require@9nnotFphp9AYcb `Gtdb`Gtrb`Gtleb`Godyb`Ghtmlb

vs primers lnes hequen que el usurio se hy loguedo y espei( el estilo de l pginF vuegoD se utiliz l funin require pr soliitr los P formulrios que orresponden ls iones que pueden ser relizds por el dministrdorX crear nuevos usurios y agregar nots d usurioF emos formulrios son del tipo j de texto y l informin de stos es envid un rhivo del mismo nomre on un p (nl @de proesrAF vos rhivos que proesn l informin solo esrien diretmente en l se de dtos l informin otenid de los formulriosF pinlmenteD e destr el link errr sesinD el ul ondue un script que ul destruye tods ls vriles de sesin y devuelve l pgin de logueo logFhtmlD lo que se present ontinuinX erhivo slirFphp
`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY} sessionunset@AYheder@4votionXlogFhtml4AYeho4`htmlb`Ghtmlb4YexitYcb

e ontinuin se presentn los scripts que permiten poner notsD rer nuevos usurios y sus respetivos rhivos de proesoX erhivo nnotFphpF
`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY}cb `htmlb`ody golora45HHHHHH4 texta45TTppHH4 linka45ggHHQQ4 linka45TTppTT4b `rb`rb`form methoda4post4 tiona4nnotpFphp4b`tle ligna4enter4b `trb`tdb`hPbxuev not`GhPb`Gtdb`Gtrb `trb`tdbxomreX`Gtdb`tdb`input typea4text4 nmea4nomre4b`Gtdb`Gtrb `trb`tdbxot xo X`Gtdb`tdb`input typea4text4 nmea4nnot4b`Gtdb`Gtrb `trb`tdbv xot esX`Gtdb`tdb`input typea4text4 nmea4not4b`Gtdb`Gtrb `trb`tdb`Gtdb`tdb`input typea4sumit4 vluea4ingresr not4b `Gtleb`Gformb`Godyb`Ghtmlb

il rhivo que proes ls vrilesX


nnotpFphp

`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY} 6lumnoa6y9nomre9Y 6nnota6y9nnot9Y6nota6y9not9Y if@6nnotbVA{eho 4el sistem gunt mximo V evluiones4Y require@4ionesFphp4AY} else{6onexionamysqlonnet@9lolhost9D9lmp9D9d9A or die @9xo onet9Fmysqlerror@AAY mysqlseletd@9rmo9AY

E.9.

EJEMPLO FINAL.

QHU

6esriea4updte nots set not6nnota96not9 where nomrea96lumno94Y 6hzamysqlquery@6esrieAY eho 4`b4F6lumnoF 4 so un 4F6notF4 en l evluion no 4F6nnotF4`Gb4Y require@4ionesFphp4AY}cb

heier quedr ompletmente lro lo que ejeut este script X reuper ls vriles y revis que no se hy sorepsdo l ot mxim de ls V nots por lumnoF he ser sD proede esriir l nuev informin en l se de dtosF ge notr que l informin no est esrit on l senteni sxiD sino heiD por lo ul ls nots pueden ser midsF v segund in hilitd por el dministrdor es l de gregr nuevos usuriosD lo ul se he de un mner totlmente nlog los scripts nterioresX erhivo nuserFphp
`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY}cb `htmlb`ody golora45HHHHHH4 texta45TTppHH4 linka45ggHHQQ4 linka45TTppTT4b `rb`rb `form methoda4post4 tiona4nuserpFphp4b`tle ligna4left4b `trb`td ligna4enter4b `hPbxuevo registro`GhPb`rb`Gtdb`Gtrb `trb`tdbxomreX`Gtdb`tdb`input typea4text4 nmea4nomre4b`Gtdb`Gtrb `trb`tdbgontrseX`Gtdb`tdb`input typea4pssword4 nmea4lve4b`Gtdb`Gtrb `trb`tdb`Gtdb`tdb`input typea4sumit4 vluea4ingresr usurio4b`Gtdb`Gtrb `Gtleb`Gformb`Godyb`Ghtmlb

il rhivo que proes ls vrilesF erhivo nuserpFphp

gon esto se d por (nlizdo el proeso de introduir informin l sistemF ehor solo rest generr un script que muestre l informin orrespondiente d usurioF erhivo notsFphp

`cphp sessionstrt@AYif @ 6isyx9estdo9 3a 9onetdo9 A {die@ 4d no est loguedo3Fglik qui pr ` hrefa9logFhtml9bvolver`Gb4AY} 6onexionamysqlonnet@9lolhost9D9lmp9D9d9A or die @9xo onet9Fmysqlerror@AAY mysqlseletd@9rmo9AY 6lumnoa6y9nomre9Y 6lvea6y9lve9Y 6nusurioa4insert into lumnos@xomreDlveA vlues @96lumno9Deyh@96lve9AA4Y 6nusurioa4insert into nots @nomreA vlues @96lumno9A4Y 6esrieamysqlquery@6nusurioAor die@9no se pudo esriir9AY 6esrieamysqlquery@6nusurioA or die@9no se pudo esriir9AY eho 4`b lumno 4F6lumnoF 4 ingresdo on exito`Gb4Y require@4ionesFphp4AYcb

QHV

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

`cphp sessionstrt@AY 6nomrea6y9nomre9Y 6lvea6y9lve9Y 6onexionamysqlonnet@9lolhost9D9lmp9D 9d9A or die@9xo es posile onetr9Fmysqlerror@AAY mysqlseletd@9rmo9Aor die @9error l onttr se9AY 6pedira4selet notID notPD notQD notRD notSD notTD notUD notV from nots where nomrea96nomre94Y 6pedidoamysqlquery@6pedirAY 6notsamysqlfethrow@6pedidoAY cb `htmlb `titleb xotsX `Gtitleb `ody golora45QQQQHH4 texta45QQHHpp4 linka4QQppQQ4 linka45TTWWHH4b `hP ligna4right4b ` hrefa4slirFphp4 b `font olora4red4 `ub gerrr sesionF`Gub `Gb `GhPb `hQ ligna4left4b `font olora4green4b elumno `cphp eho 6nomreYcb`GhQb `tle ligna4left4b`trb`tdb`b us nots son`Gb`Gtdb`Gtrb `trb`tdbivlFxo X`Gtdb`tdbxot`Gtdb`trb `cphp 6iaIY 6gaHY 6ontaHY while@6i`aVA { 6ka6iEIY eho 4`trb`tdb4F 6i F 4`Gtdb`tdb4 F6nots6kF 4`Gtdb`Gtrb4Y 6iCCY if@6nots6kbaIA{6ontCCY} 6ga6gC6nots6kY } if@6gaaHA{eho 4usted no tiene nots4Y} else{6ta6gG6ontY}cb `rb`rb `trb`tdbu promedio finl esX`Gtdb`tdb`b`cphp eho 6tY cb `Gb `Gtdb`Gtrb `Gtleb `Godyb`Ghtmlb

ore el ltimo ejemplo e destrX se piden tods ls nots del lumno en uestinY l se de dtos devuelve pr esto l informin que es onvertid en (l @mysqlfethrow@AAY luego l (l omienz ser reorrid utilizndo un ontrol de )ujo whileD el ul v generndo tiempo de ejeuin un tl en html Y ls vriles uxilires 6iD 6g y 6ont son utilizds pr lulr el promedio del nmero de nots que existnF

E.10.

CONCLUSIONES.

QHW

E.10. Conclusiones.
il ejemplo h sido hequedo siguiendo los psos ddos en este pndie y funion de mner si @pudiendo ser mejordoADpues su (n no es ser opertivoD sino explitivoF odr preer que se trt de un grn ntidd de digoD sin emrgoD l myor prte del tiempo se est repitiendo lo mismo on vriiones ovisF isperndo her logrdo un omprensin eptle por prte del letorD e prtir de ls herrmients entregdsD es posile relizr proyetos stnte ms miiosos tles omoX istem de votiones en lneF gomuniin medinte mensjes entre usurios @un rudimentrio chat AF istem de enuests en lneF in generlD ulquier prolem de dministrin que involure diferentes usurios distni se torn en lgo soluionle medinte ls herrmients qu desrrolldsF or ltimoD se dej omo ejeriio l letor un pr de puntos que restn por mejorr del ejemplo (nlF
E.10.1. Mejoras al Ejemplo nal. plt logrrX xo se repitn usuriosF olo existn nots entre I y UF gomunique l dministrdor undo ste intente ingresr nots un usurio inexistenteF or deir pr el letor on lgo de experieni en progrmin que tods estos proE lems sern filmente soluionles utilizndo el ondiionl ifD de mner de urir tods ls posiiliddesF isto no se h hehoD pues volv el ejemplo demsido redundnte y por lo tnto se h priorizdo su funionliddF

QIH

APNDICE E.

HERRAMIENTAS BSICAS EN EL USO DE L.A.M.P.

E.11. Tabla de Colores en html.

pigur iFPX vos PST olores posiles de desplegr en un pgin en htmlD on su respetivo digoF

También podría gustarte