Está en la página 1de 69

Semana1

Foro1:

A la luz de lo tratado en los contenidos de la semana y segn su opinin, qu herramienta de


programacin resulta ms adecuada para realizar la descripcin ordenada de las distintas
actividades diarias de una persona? Puede ser aplicada dicha herramienta para describir
cualquier situacin? Por qu? Fundamente su respuesta.

La herramienta de programacin que resulta ms adecuada para realizar la descripcin ordenada


de las distintas actividades diarias de una persona es el Algoritmo. Este puede expresarse lnea por
lnea, en palabras, describiendo acciones o a travs de su representacin grfica en el diagrama de
flujo (que a su vez contiene simbologa estandarizada para su entendimiento universal).

La herramienta "algoritmo" fue creada para poder percibir los requerimientos que presentan las
distintas situaciones, siendo una forma ordenada de sistematizarlos y de consensuar entre quien
solicita y quien desarrolla la tarea tarea asignada. De esta manera se puede representar el proceso
desde la entrada/inicio, hasta su salida/final. El algoritmo necesita tres estructuras bsicas:
Secuencial, condicional y repetitiva. Sus estructuras de control son a su vez: Secuenciacin,
seleccin y repeticin, las que pretenden trabajar con distintos flujos dentro de un mismo
programa.

Por otra parte, la diferencia entre el pseudocdigo y el diagrama de flujo, estara en que la primera
es una forma escrita del algoritmo, que representa un trmino intermedio entre el lenguaje
humano y el cdigo; mientras que el diagrama de flujo es la representacin grfica mediante
smbolos. La utilizacin de una u otra depender del momento en el proceso de desarrollo y de las
distintas informaciones que se necesiten registrar para poder garantizar un ptimo resultado.

Foro 2:

Qu problemas podemos encontrar al utilizar el lenguaje natural o los diagramas de flujo para
describir la secuencia de ejecucin de un programa complejo y cmo podemos evitarlos? Cul es,
segn usted, el problema de utilizar programacin con saltos para abordar problemas de tipo
complejo? Por qu? Fundamente su respuesta.
El problema que podramos encontrar al utilizar el lenguaje natural, es tener imprecisiones en
cuanto a los pasos secuenciados para poder seguir un proceso dado. Podramos caer en
subjetividades o saltarnos lneas consecutivas dentro de un algoritmo. Tambin sera ms
complejo seccionar en partes ms pequeas un problema dado, sobre todo si tenemos por
objetivo categorizar los pasos de un problema en estructuras simples, es decir en: secuencias,
selecciones y repeticiones. .

El problema que se podra tener en un diagrama de flujo, es la lentitud para poder reproducirlos
adecuadamente y lo complejo de su modificacin sin tener que alterar el dibujo del diagrama
completo (por ejemplo, cuando se detectan errores, mejorar el programa o agregar nuevos
procesos).

Para evitar problemas en la utilizacin del lenguaje natural, podemos secuencias las actividades
que necesite desarrollar un proceso dado. Esta secuencia lgica llamada Algoritmo, permitir
poder traspasar a lenguaje de cdigo un proceso explicado en forma naturalmente humana. Para
llegar a l, se puede desarrollar un paso intermedio llamado Pseudocdigo el cual ayuda a
disear un programa secuencial, lgicamente ordenado, vislumbrando los pasos necesarios para
resolver un problema, es intermedio porque es una mezcla de lenguaje humano con cdigo
puro. De esta manera sera ms sencillo poder ir corrigiendo, agregando nuevos procesos al flujo
de un programa y detectar errores en alguna parte del cdigo.

El problema de utilizar saltos, es que a medida que se va escalando dentro de un sistema ms


complejo, se hace cada vez ms engorroso y dificil poder auditar errores as como tambin poder
corregir, mejorar o cambiar alguna funcin desarrollada dentro del cdigo de algn mdulo o
sistema. Esto, ya que al variar una parte de todo el cdigo, probablemente se alteren muchas
otras al estar unidas o consideradas dentro de una funcin ir a. Tambin se hace complejo
poder entender cmo es el flujo final de las operaciones que estn implcitamente escritas en cada
order GoTo.

(volver)

Semana 2

ALGORITMOS PARA LA PROGRAMACIN ESTRUCTURADA ................................................................


4

OBJETIVOS ESPECFICOS
........................................................................................................................... 4

coprender tipos de algoritmos existentes dentro de la programasin estructurada

usar distintos tipos

utilizar elementos para representarlos


INTRODUCCIN
...................................................................................................................................... 4

permiten obtener buenos resultados cuando realizamos una accin o resolvemos un


problema

se sigue una serie de pasos establecidos

es posible de representarlo de distintas maneras

pseudocdigo y diagramas de flujo

herramientas para visualizar el algoritmo

comprueba el funcionamiento

tipos de datos y operadores que soporta un lenguaje

doferencias entre constantes y variables

1. FORMAS DE REPRESENTAR UN ALGORITMO .............................................................................. 5

serie de pasos para un objetivo

el pseudocdigo y el diagrama de flujo evita impresiciones del lenguaje natural

1.1. DIGRAMAS DE FLUJO ........................................................................................................... 5

representacin grafica de un algoritmo

muetra flujo lgico

simbologa normada por la ANSI

se usa en pequeos algoritmos

simbolos

principios

debe tener inicio y fin

lineas rectas

lenguaje distinto del cdigo

arriba a abajo, iquierda a derecha

diagramas extensos, ennumerar bien las pginas saber de donde viene y donde se va.
cada smbolo solo puede tenr una linea

1.1.1. DECISIONES EN UN DDF .............................................................................................. 7

solo se puede elegir si o no

false o true

1.1.2. CICLOS EN UN DDF ...................................................................................................... 8

es posible utilizar estructuras de repeticin

se vuelve a algun elemento anterior despus de una decisin

1.2. PSEUDOCDIGO .................................................................................................................. 8

mezcla lenguaje natural y codigo

de manera secuencial

descricion de una programa

usa palabras que identifican los procesos

supera los problemas del DDF

lentitud

dificil modificacin

permite facil mejoras

permite agregar nuevos procesos

Facilita un lenguaje ms cercano al natural

obliga precicin preestablecida

palabra clave

ejemplo: seleccin

iteracin

instrucciones adicionales

estructuras de control

estructura general
comienza con la palabra Proceso + nombre

termina con FINPROCESO

cada instruccin termina con un punto y como ;

la variable usa <- , ejemplo iva 19 sera iva<-19

valores desde el teclado, la instruccin es leer

Estructuras de seleccin

2. ELEMENTOS DE UN LENGUAJE DE PROGRAMACIN REPRESENTABLES MEDIANTE ALGORITMOS


..................................................................................................................................... 10

elementos basicos de todo lenguaje

se realizanoperaciones con ellos

conocer los operadores

diferencias entre variables y constantes

lenguaje PHP

porque?

simple

poderoso, de alto nivel

logros concretos para medir avance

es necesario declarar y asignar variables antes de usarlas

posee una gran libreria PHP

PHP se integra con HTML en simple

se pueden publicar paginas web

creado el 94

modificacin del original PERL


2.1. TIPOS DE DATOS ................................................................................................................ 12

Numeros enteros

integer en ingles, no decimales, positvos y negativos

nros, reales:

con decimales + y -

cadenas de caracteres

strings en ingles

contineen datos en hilera

representa mensajes, nombres, direcciones, productos, se encierra entre comillas

ej.: hola mundo

datos boleanos

solo puede ser true o false

se debe indicar que tipo de dato se almacenar

PHP PUEDE GUARDAR CUALUIER TIPO DE DATO EN UNA VARIABLE.

2.2. CONSTANTES Y VARIABLES ................................................................................................ 12

constante: dato que no puede cambiar

se asigna un nombre

Ejemplo, el iva 19%

variable

si puede cambiar

pueden arrojar un dato

tresaspectos

nombre
contenido

tipo de dato

permiten acceder al lenguaje a estructuras de datos y manipular informacin

los nombres deben cumplir reglas:

comenzar un una letra con un guin bajo

minuscula, mayuscula, digito y caracter especial

np tildes ni ,

conveniente nombre corto, no + de 20 caracteres

2.3. OPERADORES ..................................................................................................................... 13

elementos del lenguaje

toma 1 o + valores y producen otro valor

operadores de 1 valore (unarios)

operadores 2 valores (binarios) como suma o resta.

PHP agrupa operadores segun sus funciones

2.3.1. OPERADORES ARITMTICOS ..................................................................................... 14

operaciones matemticas bsicas

2.3.2. OPERADORES DE COMPARACIN ............................................................................. 14

algo trivial pero muy usado en programacin


2.3.3. OPERADORES LGICOS ............................................................................................. 14

equivalentes en PHP con aritmticos

para resultados de expresiones, eje.: estructuras de seleccin

2.3.4. PRECEDENCIA DE LOS OPERADORES ......................................................................... 15

los pc no priorizan operaciones, por ello tienen una tabla de precedencia.

la precedencia e puede forzar con el uso de parentesis

COMENTARIO FINAL ..........................................................................................................................


17

REFERENCIAS ........................................................................................................................................
18

(volver al indice)

Semana 3

Foros

Foro 1

Explique las principales caractersticas de la estructura if-else y proporcione 2 ejemplos de la vida


real en los cuales se utilice dicha estructura. No repita los ejemplos planteados por sus
compaeros.

Principales caractersticas de la estructura if-else:


if, significa si; a diferencia de yes del ingls que significa afirmacin; if tiene que
que ver con si es que pasa algo.

se puede traducir como de lo contrario

puede evaluar si se cumple una sentencia

puede ejecutar una sentencia si no se cumple una condicin.

----

Ejemplo de la vida real 1:Notas menores a 3.9 del colegio. (pseudocdigo)

Si <el promedio de las notas colocadas mensualmente es menor a 3,9>

Entonces

<Enviar email de aviso al alumno y al apoderado>

Sino

<No enviar email>

FinSi

----

Ejemplo de la vida real 2: Asistencia a clases por asignatura

Si <el alumno est presente>

Entonces

<se pone signo check en la lista, se repite para la siguiente hora con posibilidad de modificacin y
se suma al conteo de alumnos en clase durante la hora>

Sino

<se pone signo equis en la lista, se resta del total de alumnos en clase durante la hora, se repite
para la siguiente hora con posibilidad de modificacin y se enva aviso a inspectora respecto de la
ausencia>
FinSi

De esta manera, cada vez que una instruccin requiere evaluar una condicin para saber si se
cumple o no, se podr utilizar esta estructura de control. As, en caso de que se cupla, podr
ejecutar las instrucciones que estn asignadas a esta condicin cumplida; en caso de que no se
cumpla la condicin, realizar las otras instrucciones durante la ejecucin del flujo del programa.
Cada grupo de instrucciones se les denomina Ramas de cdigo.

-------

FORO 2

En su equipo usted hace clic sobre un recurso y aparece una ventana con el siguiente mensaje El
recurso no ha podido ser accesado, desea reintentar?. En este caso, qu tipo de bucle se
utiliz? Hubiera sido posible realizar lo mismo con otro bucle? Fundamente su respuesta.

En el caso de que hubiese realizado un click sobre un recurso y hubiese aparecido una ventana con
el mensaje el recurso no ha podido ser accesado, desea reintentar?; el bucle utilizado
probablemente hubiese sido el if else if.

El algoritmo debe haber sido algo como:

se muestra una lista de opciones definida (supongamos 3)

cada una corresponde a las opciones del else-if

se selecciona una de las opciones

si la opcin definida no permite acceso, mostrar el mensaje El recurso no ha podido ser


accesado, desea reintentar?

luego, volver a la lista de opciones anterior.

Esta accin tambin se podra haber realizado con el bucle SWITCH, por ejemplo switch case,
indicando por defecto las posibilidades de volver al anterior o simplemente salir de las opciones de
la ventana y volver al inicio.
El algoritmo podra ser algo como:

se muestra una lista de opciones (supongamos 3)

luego se evala la opcin 1

si no corresponde, se pasa a la siguiente

se evala la opcin 2

si no corresponde, se pasa a la siguiente

se evala la opcin 3

si no corresponde, se pasa a la siguiente

se contina con el valor por default, que sera el mensaje el recurso no ha podido ser
accesado, desea reintentar?.

--------------------------

Apuntes de Lectura

ESTRUCTURAS DE CONTROL APLICADAS A LA PROGRAMACIN ESTRUCTURADA ............................

OBJETIVOS ESPECFICOS
........................................................................................................................... 4

comprender estructuras de control

condicionales

iteracin

aplicarlas

utilizarlas para resolver problemas

INTRODUCCIN
...................................................................................................................................... 4
importancia de !controlar el flujo de un programa

Manejo de las estructuras de control

el flujo puede controlarse a travs de

las estructuras de iteracin

permiten repetir un bloque de instrucciones

una cierta cantidad de veces o

hasta que se cumpla una condicion

las estructuras condicionantes

tambien se llaman de raificacin

evaluan una condicin

deciden si ejecutar o no una rama de cdigo u otra

1. ESTRUCTURAS DE CONTROL DE ITERACIN................................................................................ 5

cuando es necesario utilizar ms de una vez una misma instruccion o serie de instrucciones
se puede ITERAR

por ejemplo:

solicitar el nombre de 300.000 personas.

Ac no es necesario escribir la misma cantidad de lneas.

Semana 3, se vern 3 estructuras de control de ITERACIN

While (mientras)

Do-while (hacer mientras)

For (para)

Iteracin o ciclo es lo mismo, tambin lo son bucle y loop

1.1. WHILE .................................................................................................................................. 5


este bucle itera mientras ocurre algo

se pueden repetir instrucciones indeterminadas veces

se escribe especificando una condicin y se ejecutar mientras la condicin se cumpla.

Ejemplo utilizando PSelnt en PSEUDOCDIGO

en DF

Ejemplo utilizando una cantidad de datos indeterminada

Ingrese nota alumno, cuando termine de ingresarlos, (presione S para salir)

Importante:

el ciclo while evala la condicin ANTES de ejecutar el cdigo

si no se cumple la condicin, nunca se ejecutarn las instrucciones dentro del bucle

en el ejemplo, si el usuario entre la letra S, no sera necesario ejecutar el cdigo del ciclo.

1.2. DO-WHILE ............................................................................................................................ 7

significa HAcer mientras

similar al ciclo while

ambos se usan cuando no se sabe la cantidad de veces que se necesita repetir el ciclo.

ambos tienen una condicin que se debe evaluar para continuar el ciclo

la diferencia

este cdigo se ejecuta al menos una vez

ejemplo Pseudocdigo

con DF

La diferencia

est en el momento en que se evala la condicin

todo ciclo puede escribirse con ambos y viceversa

1.3. CICLO FOR ............................................................................................................................ 7

distinto de los anteriores

se utiliza cuando se sabe la cantidad de veces que se debe ejecutar e bloque de


instrucciones

no es intuitivo

Se utiliza con una cantidad determinada de veces

se indica en 3 instrucciones que en conjunto forman la condicin del ciclo for

Las instrucciones necesarias para el ciclo for son:

Condicin inicial (rojo)

Condicin de salida (azul)

variacin de la condicin inicial (verde)

ejemplo:

se necesita ejecutar un ciclo 10 veces

1. se define una variable con un valor inicial (generalmente 0)

2. se especifica la condicin (en el ejemplo es que la variable sea <10)

3. se indica un incremental (para que la variable vaya aumentando hasta llegar al valor
indicado 10)

traduccin de la ejecucin

Pseudocdigo

DF

2. ESTRUCTURAS DE CONTROL CONDICIONAL ............................................................................... 9

tarea comun de un algoritmo

decidir y ejecutar instrucciones

condicionar el flujo de ejecucin de un programa

la condicin permite elegir entre RAMAS de instrucciones

IF-ELSE

IF-ELSEIF-ELSE

SWITCH

2.1. IF-ELSE ............................................................................................................................... 10

if se traduce SI

else se traduce de lo contrario

se usa para bifurcar el flujo de ejecucin de un algoritmo

descripcin

cuando un programa se ejecuta

se evala la condicin especificada en el IF

si la evaluacin se cummple, se ejecuta el interior del cdigo

si la evaluacin no se cumple, se ejecuta lo que est en el cdigo ELSE

Pseudicdigo

DF

Ejemplo en cdigo

2.2. IF-ELSEIF-ELSE .................................................................................................................... 11

estructuralmente es similar a la anterior

se usa cuando se desean poner ms condiciones en un mismo momento del cdigo

ejemplo impuetos

si una persona gana <100, se le cobrar 10% de impuestos

si gana entre 100 y 200, pagar 35%

si gana > 200, pagar 50%

Si se escribe con if sera:

a medida que se ponen + condiciones, se anidan + lneas y es- prctico.

la estructura else-if permite colocarlo de modo natural

EN DF se ve de la siguiente forma

2.3. SWITCH .............................................................................................................................. 13

se comporta similar a las anteriores

se usa para reevaluar una variable que puede tomar muchos valores

ejecmplo de codigo

la sentenicia SWITCH-CASE

el programa reconoce el valor de una sentencia caso1

si se cumple, ejecuta todas sus instrucciones hasta que encuentre un BREAK

si el programa reconoce el valor de una sentencia caso2

si se cumple, ejecuta todas sus instruciones hasta que encuentre un break.

si no reconoce ningun valor en la vriable, ejecutar lo que est parcado como default
(por defecto)

Estructura en Pseudocfico

Estructura en DF

Ejemplo igua utilizando if y switch

COMENTARIO FINAL ..........................................................................................................................


16

estructuras de control

mecanismos potentes para desarrolladores

permite controlar el flujo de un programa

bifurca eementos

ejecuta ciertos segmentos del cdigo

itera ciertos elementos

diferencia entre switch y el ifelse


switch

evalua el valor de una variable

es mas eficiente generalmente que una serie elseif

elseif

permite evaluar contra una expresin

es ms util que evaluar contra un valor.

REFERENCIAS ........................................................................................................................................
17

(volver al ndice)

Semana 4

introduccion

evaluar uso de diferentes estrucutas en un problema

diagnositoc de caracteristicas estructurales y pontenciales

identificar ventajas y desventajas

aplicar diferentes estructuras

estructuras de datos

construcciones lgicaas

dentro de un programa

tienen ciertas caractersticas


se debe dominar las estrucutas

per,otem reazar naturalmente labores no triviales de algoritmos

facilitan labores

como ordenar datos

accesarlos eficientemente

3 tipos de estructuras

arreglo

pilas

colas

1. arreglos

se manerjan muchos objetos de lmismo tipo en programas computacionales

ejemplo:

banco, maneja cuentas de clientes.

pueden ser cientos, miles

es imposible declarar una vaiable para cada uno de estos datos

la organizacin de ellos sera algo dificil y mayor

para ello se construye una estructura de datos

almacena y nombra el conjuto de informacin

jemplo: jueces otorgan puntajes a clavadistas en deportes

son 6 jueces

cada uno asigna valor fracionario

a cada participante

6 valores que se recolectan

se manejan de distinta forma

ordenados de mayor a menor,


viceversa

desviacin

promedio

naturalmente se ordenaran :

si se escribe un codigo para determinar el mayor puntaje, se utilizara la estructura de


control y el cdigo sera algo como:

si fuesen 6 puntajes seran ms complejos

si se solicita un algoritmo que muestra los puntajes ordenados de menor a mayor se


necesita un algoritmo distinto.

una forma eficiente de realizarlo es con un ciclo

este lo puede visitar del puntaje uno al 6. el problema es que un ciclo no puede combinar
6 variables.

se busca una forma de manejar ndices

forma de referirnos a puntaje como puntajesub cero, puntaje sub uno y as sucesivamente.

ejemplo

el ejemplo anterior puede determinar el mayor puntaje entre el grupo.

Arreglos

bsicamente es una coleccin de variables

dependiendo del lenguaje pueden ser de distinto o igual tipo

en PHP puede ser distintos

Analoga

variable como un CD

arreglo, sera el porta CD

as se pueden tener los discos ordenados en vez de estar repartidos en distintos lugares.

Forma de arreglos en PHP

Anlisis del ejemplo

puntajes: nombre de la variable

array: tipo de datos, en donde se indica que es una coleccin de elementos.

Cada elemento de esta coleccion tiene el nombre $puntajes[0], $puntajes[1],...,


$puntajes[5];

El dibujo tradicional de un arreglo es

en un arreglo, el primer elemento iempre es cero [0]

El ndice contenido en los parntesis cuadrados puede ser una Variable o una expresin
aritmtica.

ejemplo de ambas

gracias a estas precisiones se pueden imprimir los elementos en las posiciones 3 y 4 del
arreglo;

tambin se pueden escribir loops inteligentes.

si se quisiera saber el mayor puntaje de un clavadista,

Esta forma de escribir es ms sencilla que si se utiliza una serie if.

su gran ventaja es que puede extenderse a 10 jueces, 30 o 100, mientras que con el if
sera ms complejo.

cuando se plantea el cambio de valor de i en cada iteracin

se pueden examinar todos los elementos del arreglo

permite resolver el problema como el planteado de los jueces del clavadista

los arreglos pueden almacenar

nmeros, como en el ejemplo anteriro

enteros

carcteres

cadenas de carcteres

cualquier objeto que se desee


ejemplo:

1.1 arreglos con llaves

ventaja de arreglos en PHP

se puede utilizar para acceder a un valor

ejemplo de un hotel con varios dormitorios

se puede acceder a uno indicando su nmero

se puede asignar llaves para acceder amigablemente a ellos

a estos arreglos se les denomina arreglos asociativos

ejemplo:

se desea almacenar en un arreglo informacin de una persona en especfico

nmbre,

apellido

edad

sexo

da de nacimiento

mes de nacimiento

aoo de nacimiento

ruto

digito verificador

numero de telfono

direccion

nmero de la direccin
nmero de departamento.

al utilizar arreglos con ndices se tendr algo como lo siguiente:

lo anterior crea la siguiente estructura:

esta es una estructura vlida,

pero algunas veces podemos olvida que $persona[5] hace referencia al mes.

para tener claridad en ello usamos las llaves en cada campo

de forma general de declarar una llave de este estilo es:

por ello, en vez de usar $persona[5] para referirse al mes, se utiliza una llave explicativa:

$persona[mes_nasc]

al usar este tipo de arreglos, se puede acceder directo al valor de un campo usando su
llave:

este tipo de arreglos permite:

hace ms amigable el cdigo

mayor facilidad de mantenerlo.

2. Pilas

ejemplos:

pila de platos al lavar la loza

una pila de papeles

al colocar bateras a una linterna, se instalan en forma de pila

todos tienen en comn que el ltimo elemento al entrar es el primero en salir.

a este tipo de pila se les llama LIFO


del ingls ltimo en entrar, primero en salir; last in, first out

se usan con frecuencia en computacin

ejemplo:

en un editor de texto:

todos los comandos quedan en una pila

cuando se comete un error

se presiona el botn deshacer

reversa el ltimo cambio ejecutado

esto equivale a retirar un elemento de la pila

principal caracterstica

restringen el acceso a los datos

slo podemos acceder a los datos que estn en la cima de la pila

si se desea un dato del fondo, debemos extraer todo los datos anteriores sobre l.

las pilas

soportan operaciones bsica para interactar con ellas.

ejemplo:

si se desea agregar un elemento

existe una operacin encargada de ello denominada push

para extraer, se llama pop

en PHP existe facilidades que permiten trabajar mejor las pilas

provee de algunos comandos

ejemplo:

este cdigo:

declara un arreglo sin elementos


luego realiza un push de cinco elementos

17 fue ingresado primero, por ello queda al fondo de la pila

12 fue ingresado ltimo, queda al tope de la pila

si se requiere la operacin inversa

retirar los elemento de la pila

el cdigo sera:

esta instruccin retira el primer elemento de la pila

en el ejemplo, corresponde al valor 12

es posible asignar el valor obtenido de esta forma a una variable declarando en conjunto
con este comando:

3. Colas

ejemplos:

al pagar en el supermercado, uno se debe ubicar en una cola

para echar bencina, los autos se colocan en cola

en la esquina, en un semforo en rojo, los autos esperan el verde en una cola.

en todas las situaciones, en las colas se debe esperar el turno propio.

se atiende en orden de llegada

se denominan FIFO, first in first out; primero en entrar, primero en salir.

esta propiedad en cola es til

asegura que los elementos sern procesados en el orden en que fueron insertados en ella.
ejemplo:

escribir la palabra c,a,b,a,l,l,o.

si el equipo procesara en otro orden, la palabra quedara ilegible.

cuando se necesita asegurar el orden de las operaciones, la estructura en cola es la ideal.

Las colas

soportan operaciones bsicas

para agregar un elemento, la operacin se denomina queue (encolar en espaol)

siempre se agrega un elemento al final de la cola

para quitar un elemento (siempre es el primero de la cola) se llama dequeue


(desencolar)

En PHP

eisten algunas facilidades, enmarcadas en algunos comandos.

ejemplo:

en el ejemplo se declara un arreglo sin elementos $cola=array()

luego encola cinco elementos

12 fue el primer ingreso

queda al principio de la cola

17 fue el ltimo ingreso

queda al final de la cola

si se quiere hacer la operacin inversa dequeue

el cdigo sera:

Es posible asignar el valor obtenido de esta forma a una variable, declarando en conjunto
con este comando:

Comentario

las structuras de datos son parte bsica de dominar de un desarrollador

el manejo de arreglos es algo bsico

arreglo

estructura que permite almacenar un conjunto de variables

bajo un mismo nombre

se pueden accesar segn sus ndices

o tambin segn sus llaves si se han declarado

colas

los elementos ingresados se pueden extraer en el mismo orden en que fueron insertados

esta propiedad es fundamental cuando el orden en que se ejecutan o procesan los datos
es importante

las pilas

son parecidas a las colas

la diferencia es que el primer elemento ingresado, es el primero en salir

son utilizadas para dar estructura a la memoria de un computador o en la forma en que el


CPU del computador accede al registro.

---

Buen da Alumn@s.

Para aclarar una de las dudas comunes al hablar de array y su uso como pilas y colas, les comento:

Pilas y colas son el mismo tipo de datos; es decir, ambos son de tipo Array. Lo que determina si es
una Pila o Cola es su comportamiento, la forma en que inserta un elemento y la forma en que
extrae un elemento.

Pilas: inserta un elemento siempre al principio del array y extrae siempre el elemento que se
encuentre en el principio del array.
Colas: inserta un elemento siempre al final del array (cuando el array est vaco, el elemento
insertado queda al principio) y extrae siempre el elemento que se encuentre en el principio de
array.

Como ven ambos comparten el mismo mtodo de extraccin.

Ahora, en Php tenemos varios funciones para insertar y extraer de array: pop, push, shift, unshift.
Y cada uno de estos tiene su propia funcin, uno sirve para insertar al inicio, otro para insertar al
final, otro para extraer del inicio y otro para extraer del final.

Estos mtodos son independientes del uso de pilas y colas. Por lo que ustedes para identificar si es
pila o cola, deben evaluar cuales de estos mtodos se est usando y determinar la manera como
inserta y extrae del array, as sabrn si se esta comportando como pila o como cola.

Saludos.

(volver al ndice)

SEMANA 5

-------------------------------------

FORO2

Un colega le informa que para acceder a un archivo remoto se necesita un usuario y una
contrasea.

Cul cree usted que es la forma de acceso que su colega est utilizando?

Si un colega tiene la oportunidad de informarme que puede acceder a algun archivo remoto con
usuario y contrasea, probablemente pueda estar utilizando alguna de estas dos posibilidades de
acceso:

Una es FTP:

- requiere la autenticacin de usuario y su password o contrasea por default.

- para ello, el usuario y contrasea debe ser ingresada en la direccion URL de la siguiente
manera: ftp://user:password@ftp.ejemplo.com/dir/al/archivo

- en este caso, el colega puede escribir solo si tiene los permisos o privilegios para ello y
slo puede agregar archivos nuevos, no editar existentes.
otra podra ser CURL:

- ya que soporta protocolos FTP

- es ampliamente utilizada debido a la variedad de protocolos que soporta

- entre los especficos que pusiese utilizar el colega estaran:

- FTP uploading

- continuacin de transferencias interrumpidas y

- autenticacin user-plus-password.

-------------------------------

FUNCIONES Y USO DE ARCHIVOS ........................................................................................................


4

OBJETIVOS ESPECFICOS
........................................................................................................................... 4

nalaizar y utilizar

funchones php

aplicar recepcin de resultados

operar datos mediante archivos locales y remotos con PHP

utilizar permisos

para operacin con archivos mediante PHP


INTRODUCCIN
...................................................................................................................................... 4

qu son las funciones

cmo ayudan

como se aprovechan

funciones

tecnica efectiva

estan presentes en todas las aplicaciones actuakles

conocer funciones

escribir funciones

de plantilla

propias originales

a veces se solicita que la entrega sea fcil de manejar

si la salida es extensa

o se solicita que sea la entrada de otro programa

se debe trabajar con archivos

para lectura

para escritura

los archivos pueden ser locales

sel mismo equipo

o remotos

1. TIPOS DE FUNCIONES EN PHP ..................................................................................................... 5

1.1 INCORPORADAS EN EL LENGUAJE ....................................................................................... 5


php tiene funciones internas del lenguaje

funcion no definida

riezgo de encontrarn en PHP

para solucionarlas se necesitan extensiones compiladas especficas de PHP

PHP est estandarizado con muchas funciones y consstrucciones

ejemplos

imagecreatetruecolor()

exige que PHP haya sid compilado con soporte para GD

GD, libreria linuxpara trabajar imgenes

mysql_connect()

sirve para abrir una conexxion a una base de dato

se necesita que php se haa compilado con soporte para MySQL o que se instale la
extensin correspondiente.

funciones nucleo

son las predefinidas en PHP

ejemplo

funciones string

dunciones de variable

funciones cargadas

pueden ser ejecutadas por comandos

ejemplos

phpinfo()

get_loaded_extensions()

y las cargadas por defecto

para escribir correctamente en PHP

comprender
interpretar

el prototipo de cada funcin

sintaxis

foram de funcionamiento

resultado que arroja su ejecucion

argumentos qu toma omo entrada son pasados por parmetro

etc

mayor profundicazin del codigo y funciones en :

http://www.php.net/manual/es/funcref.php

(volver al inicio)

Funcin COUNT

retorna la cantidad de elementos en un arreglo

toma como parmetro el arreglo

FUNCIN ARRAY_DIFF

calcula la diferencia entre dos arreglos.

toma como parmetro dos arreglos

Funcin ARRAY_SEARCH:

busca un elemento dentro de un arreglo;

si lo encuentra, retorna la llave de su posicin

sino, retorna FALSE

toma como parametros el valor a buscar y el arreglo donde buscarlo

Funcin ASORT

ordena un arreglo,
toma como parametro el arreglo a ordenar

Funcin ARSORT

idntica a la anterior, pero en orden inverso.

Funcin EXPLODE:

separa strings que contienen un delimitador

toma como parmetros el delimitador y el string a separar

Notese que retorna un arreglo

Funcin STRTOUPPER:

toma un string, lo convierte en maysculas

toma como parmetro el string a convertir

1.2 DEFINIDAS POR EL USUARIO ............................................................................................... 7

en los lenguajes modernos, se puede definir una funcion propia

cualquier cdigo validament eescrito puede formar parte de una funcin

puede incluir otra funciones

puede incluir definiciones de clses

coleccin de variables y funciones

las reglas de otros tipos de etiquetas sonn aplicables tambien a los nomrs de las funciones
en php

el nombre de una funcin vlida debe tener:


comenzar por una letra o guin bajo

puede estar seguido de cuelqier

numero de letras

numeros o

guiones bajos

las funciones ophp no necesitan ser definidas antes de su diferenciacin a menos que
estencondicionalmente definidas

las funciones igual que ne las clses en PHP tienen un mbito global cuando

tradicionalmente

se especifica que se va a realizar una funci indicando en elparntis la caantidad de


parmntros recibir

ejemplo: definir una funcion que devuelva la multiplicacin de dos nmeros

1.3 FORMAS DE PASAR PARMETROS ...................................................................................... 8

debe tenerse claridad en la sintaxis

debe tenerse claridad en la forma de pasar informacion con la cual debe operar para
cumplir su fin

esta info que se pasa, se llama parmetro

se les puede pasar informacion a las funciones a travs de una lista de ARGUMENTOS

son expresiones separads por comas

Formas habituales soportadas por PHP para pasarle argumentos a una funcin son:

por valor (por defecto)

por referencia
por valores de argumentos predeterminados

POR DEFECTO

o sea

cuando se pasa una variable a una funcin, en realidad se pasa el valor de dicha funcin,
no la variable.

al pasarle una variable a una funcin en PHP, este realiza una copia de ella y utiliza esta
copia

em realidad nunca se altera el valor que tena la variable originalmente

anteponiendo el signo AMPERSAND (&) al nombre del argumento se logra que

este sea siempre pasado por referencia a una funcin determinada

El signo debe ser colocado en la definicin de la funcin Misma

asegurar la escritura de tres variables

rellenar la ltima variable si el usuario no la pone

1.4 VOID .................................................................................................................................. 10

en ciertos lenguajes se debe declarar qu tipo de dato retornan las funciones

cuando no retornan valores las funciones, se declaran como de tipo VOID (vaco)

en PHP no se necesita

cuando est vaco, la instruccion no tiene instruccin de return y se tiene el mismo


efecto.
2 RECEPCIN DE RESULTADOS ..................................................................................................... 10

2.1 CARACTERSTICAS FUNDAMENTALES ............................................................................... 10

funcin, caja negra que entra un dato, se procesa y devueklve un valor

2.2 CONTEXTO DE USO ............................................................................................................ 11

una funcin arroja un valor

para capturar ese valor se asigna una variable

el codigo anterior se almacena en la variable &resultado

tambin se puede imprimir el resultado de la operacin

algunas funcinones no retornan valores,

solo son operaciones importantes para el algoritmo

se les denominan procedimientos

funciones que retornan null o void

3 ARCHIVOS LOCALES Y REMOTOS............................................................................................... 11

Caractersticas

archivo local, un archivo que esta en el mismo servidor en donde ocurre PHP

PHP por lo general es un lenguaje que ejecuta en forma remota

si se quiere trabajar un archivo del equipo local en un servidor web, hay que asegurar que
este pose al capacidad de subir archivos

para trabajar con archivos, PHP debe poder acceder con permisos a ellos

permisos de:
lectura

escritura

si es en una maquina windows

probablemente tenga todos los permisos

en linux o mac

se debe verificar que usuario tenga los privilegios necesarios

Contexto de Uso

para abir un archivo se usa la funcion (en php) fopen

fopen acepta dos parmetros

nombre del archivo

modo en que se abrira el arhivo

lista de modos:

4 PERMISOS PARA ACCEDER ARCHIVOS ...................................................................................... 13

4.1 READ WRITE (RW) / LECTURA ESCRITURA ................................................................... 13

para leer y escribir un archivo

5 modos

r+

lee y escribe

retorna error si no hay archivo


puntero inicio

lee desde el inicio

w+

lee/escribe

no no existe archivo, intenta crearlo

si hay archivo previo, lo borra y crea nuevo

deja puntero en inicio de archivo sin nada que leer

a+

lee/escribe

si no hay, intenta crearlo

deja el puntero al final; no lee lo que hay por esa razon

si ya existe, no borra;

x+

lee/escribe

similr a w+

si el archivo existe, no lo borra y genera un error

c+

lee/escribe

similar a w+

no trunca el archivo,

si existe , no genera error


4.2 READ ONLY (RO) / SOLO LECTURA .................................................................................... 13

4.3 WRITE (W) / ESCRITURA .................................................................................................... 14

4.4 APPEND (A) / AADIR ........................................................................................................

........................................................................................................ 14

5 FORMAS DE ACCEDER A ARCHIVOS REMOTOS ......................................................................... 14

se puede acceder a algun archivo fuera del servidor o computador en el que corre el
lenguaje

PHP debe poseer los permisos para poder acceder a los archivos

tanto para eleer

como para escribir en ellos

la funcin es fopen

la ruta del archivo se esecifica el protocolo con uqe se debe recuperar el archivo, en este
caso es http

5.1 FTP ..................................................................................................................................... 15

5.2 HTTP .................................................................................................................................. 15

5.3 GET .................................................................................................................................... 16

5.4 CURL .................................................................................................................................. 16

COMENTARIO FINAL ..........................................................................................................................


18

REFERENCIAS ...............................................................................................................................

FORO1

Una empresa de juegos de azar realiza sorteos diariamente y los ganadores se escriben en un
archivo en el servidor web. El archivo contiene la informacin de los ganadores de todo el mes.
Cul cree usted que debiera ser el mtodo de acceso a ese archivo? Escriba un pequeo cdigo
que realice esto.

Cmo cree usted que debiera recibirse el resultado de la funcin de escritura?

Mtodo de acceso al archivo

Creo que se debiese utilizar el mtodo Aadir

de esta manera se puede agregar el nombre de los ganadores en el archivo.

El modo a+ abre el archivo para lectura/escritura. Si el archivo no existe lo intenta crear. Si


el archivo existe, lo abre pero deja el puntero al final del archivo.

Luego, se puede escribir el nombre de los ganadores que iran quedando al final del
documento.

Recepcin del resultado de la funcin de escritura

<?php

$puntero=fopen("c:ArchivoGanadoresganadoresDelMes.txt","a+");

fwrite($file,"nombregranador");

$nombreganador="pedro peres , 2.222.222.-2 ";

Fclose($file);

?>

(volver al ndice)

Semana 6

EXPRESIONES REGULARES Y VARIABLES .............................................................................................


4
OBJETIVOS ESPECFICOS
........................................................................................................................... 4

construir algoritmos

utilizar expresiones regulares y variables

crear programa en PHP

INTRODUCCIN ...................................................................................................................................
4

expresiones regulares herramienta poderosa

ser constante en desarrollarlas

[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[AZ]{2,4}

caractersticas bsicas

tiposde datos

Variables variables

1. EXPRESIONES REGULARES ........................................................................................................... 5

1.1. SINTAXIS .............................................................................................................................. 5

elementos de la sintaxis de expresin regular

Set de caracteres:

regexp es un comando o expresin para buscar carcteres o cadenas de carcteres

buscar casa o caza se usa: ca[sz]a

buscar un dgito entre 0 y 9 o letra mayscula entre A y H se usa: [0-9A-H]


Negacin

se puede solicitar excluir algo

metacaracter ^ ,

no calzar con qh se usa q[^h]

no calzar con queqhe: se usa que[^h]e

repeticin binaria

buscar caracter entre 0y1 vez

metacaracter ?

buscar patron cazan?

retorna: Caza porque la n esta 0 vez

retorna: cazan porque la n est 1 vez

repeticin

metacaracter *

el caracter puede estar 1 o ms veces

busca tr*i : encuentra trio, poruqe la r ocurre una vez

tambin encuentra tio, porque la r ocurre 0 vez

repeticin nica

metacaracter +

cuando pasa una o ms veces

busca tr+i , encuentra trio porque la r ocurre una vez

no encuentra tio, porque la r ocurre 0 vez.

repeticin exacta

encuentra un patron que se repite una cantidad epecfica de veces

la cantidad se especifica entre llaves {}

buscar un string que tenga 8 nmeros [0-9]{8} de un telefono movil

agrupacin
se pueden agrupar expresiones con ( )

o lgico

operador

se quiere calzar uno u otro argumento al operador

buzcar ca[s|z]a , encuentra caza y tambin casa

1.2. CARACTERSTICAS ................................................................................................................ 6

expresin regular

patron

describe una cantidad de texto

se aboradar como regex o regexp

literal:

cualquier carcter de una bsqueda

buscar mpa dentro de campana

la bsqueda es literal

metacarcter

caracter con significado especfico y no se usa literal

^ es un metacaracter

target string

string sobre el que se realiza una bsqueda

buscar el patron hola es distinto de Hola por la mayscula

expresin de bsqueda

o xpresin regular
es el patron que se ntenta encontrar dentro del target string

secuencia de escape

dice que se quiere utilizar un metacaracter como un literal

se utiliza el caracter backslash \ delante del metacaracter que se quiere utilizar como
literal

buscar (s) dentro de patatas, el patron que se debe usar es \(s\)

1.3. FUNCIONES DE PHP ............................................................................................................. 7

solo se han presentado las caractristicas de la sintaxis de regexp

ahora se ver cmo se utiliza dentro del cdigo PHP

Funciones nativas algunas de PHP para utilizarlas

se recurre a la libreria de PHP

Preg_match_all:

retorna los resultados de bsqueda de un patron

en simple funsinrecibe 3 parmetros

primero es patron

segunto texto en que se realiza la busqueda

tercero es un arreglo en el que se almacenan los resultados

Preg_replace:

realiza un reemplazo de texto

toma 3 parmetros

a. patron que se busca para reemplazar

b. texto que se insertar


c. texto sobre el que se trabajar

despues retorna el texto que resulta

ejemplo, reeemplazar los espacios en blanco en exceso:

Preg_split:

separa un string

usa como separador una expresin regular

parmetros

a. el patron a buscar

b. el texto en donde se realizar la bsqueda

c. retorna el arreglo con los resultados

revisar los conceptos en el Manual https://secure.php.net/manual/es/

1.4. POTENCIALIDADES Y FORMAS DE USO ............................................................................... 8

las expreiones regulares son un arte

ejemplos:

1.4.1. BSQUEDA DE FECHAS ................................................................................................ 8

algo comn

buscqueda mediante regexp

para el ejemplo se utilizar el formato aaa-mm-dd


epresin regular para buscar fecha

19 o 20 en la primera parte de la elxpresin para bsuqeda (19|20)

en el tercer y cuarto carcter se buscan cualquier nero entre 0 y 9 (19|20) [0-9] [0-9]

luego separador [- /.]

luego expresin del mes

primera parte calsa con los meses desde 01 a 09 y la segunda entre los meses 10 y 12
separados por la opcin o

( 0 [1-9] | 1[012] )

separador nuevamente [- /.]

para el da, se separan 3 grupos

del 01 al 09 ; ( 0 [1-9]

o; |

del decena o veintena [12]

desde 0 a 9 en ambos casos: [0-9]

o: |

del treintenta: 3

desde 0 a 1: [01]

la expresin [- /.] reconoce fechas con formatos aaa-mm-dd aunque se haya usado

guin -

slash /

punto .

o espacio en blanco para separar

1.4.2. BUSCAR DIRECCIONES IP ............................................................................................. 9


entontrar numero IP

lo ms trivial podra ser

expresin regular

busca dgitos en grupos de a uno hasta de a 3

funciona con direcciones IP tipos como las siguientes

10.123.111.45

211.110.95.11

999.999.999.999, pero esta no es una direccin IP vlida

1.5. DINMICA INTERNA DE UN MOTOR DE EXPRESIONES REGULARES ................................. 10

dos principales

regexp

orientados a texto

orientados a regexp

los segundos permiten funciones mas avanzadas

busca los carcteres en orden de isquerda a derecha, si no coinice comienza con la cadena
siguiente.

2. EXPRESIONES VARIABLES .......................................................................................................... 11

cuatro tipos bsicos

booleanos: guarcan true o false


enteros: numeros enteros positivos y negativos

reales o flotantes: numeros reales positivos y negativ

cadenas de carcteres: tambin conocidos como strings

variables compuestos

en PHP

arreglos: coleccion de elementos de uno a ms tipos, poseen indices o llaves si se


especifican

objetos: una variable puede almacenar un objeto

objeto sera un eleento que puede tener un numero designado de caractersticas y


mtodos

variables especiales en PHP

NULL: valor especial que dice no hay valor o valor nulo

Recurso: almacena referencias o punteros a arrchivos abiertos

conexiones a bases de datos similares

2.1. CONCEPTOS BSICOS DE LAS VARIABLES ......................................................................... 11

2.2. VARIABLES PREDEFINIDAS ................................................................................................. 12

arrreglo $_SERVER

contiene 30 elementos con sus respectivas llaves, mayoria tiles

conitne info como cabeceras, rutas, ubicaciones de script

son creadas por el servidor web.

ver especificacin CGi 1.1 al cuadrado en el manial PHP, ver acerca de las variables.

2.3. MBITO DE LAS VARIABLES ............................................................................................... 15

variables globales

son vlidas en tdo el cdigo en el que se escribe el programa

su mbito es todo el programa

su vida perdura mientras se est ejecutando el programa

variables dentro de una funcion son las variables locales

ejemplo

las variables globales se leen en cualquier parte

las variables locales solo se leen dentro de la funcion dada

2.4. VARIABLES VARIABLES....................................................................................................... 17

ambas profucen el resuldato : hola mundo

3. FUNCIONES ................................................................................................................................ 19

3.1. FUNCIONES REGULARES .................................................................................................... 19

funcione propias
caracteristicas

comenzar por letra o guion bajo

seguirse on letras , numeros o guiones bajos

las funciones tienen un mbito global

forma egnerl de especificar una funcion es con la plalabra function

ejemplo

solo arroja el valor final

si se desea que se muestre la oeracin, se podra realizar algo como lo suiguiente

3.2. FUNCIONES VARIABLES ..................................................................................................... 20

COMENTARIO FINAL ..........................................................................................................................


21

REFERENCIAS ........................................................................................................................................
22

Semana 7

Al parecer, ambos tienen grandes posibilidades de ser utilizados para el proyecto con su pros y sus
contras. Sin embargo, la eleccin no ira por lo estrictamente tcnico, sino ms bien por el
rendimiento de la produccin, las posibilidades de recuperarse de los posibles errores futuros (ya
que no habr tiempo para probarlas) ya que siempre es necesario prevenir incluso sabiendo que lo
que viene es inevitable.

Ahora bien, el problema principal es la falta de tiempo, por ello, se necesita desarrollar algo
rpido. Entonces ASP.Net permitira poder hacer con mayor facilidad y rapidez un desarrollo
productivo; frente a la posibilidad de que alguna parte del edificio desarrollado C++ pueda arrojar
un error en las bases del edificio sera muy complicado poder arreglar el problema en poco
tiempo.

Por ello, .Net sera la mejor opcin. Ahora bien, si hubiese la posibilidad de poder dar mayor
espacio, sera ms sencillo, ya que se podra probar, revisar e ir construyendo con seguridad.

En la construccin del edificio rascacielos (manteniendo la metfora) hay un plan bien detallado
de los tiempos y de lo que se construye, no se puede decir poco tiempo, el tiempo que se toma
en construir algo, es el tiempo que se necesita y punto, no es menor. En cambio, en programacin,
si puede haber menos tiempo considerando asuntos a favor y en contra, pero si la prioridad es tal
que afecta a que tampoco se pueda probar el compilador, ello ameritara priorizar un lenguaje por
sobre otro.

Usted es el arquitecto de una solucin de software y debe definir el lenguaje de programacin a


utilizar. El gerente del proyecto le comenta que no tiene muy claro en qu influye la eleccin del
lenguaje en cuanto a la verificacin de los tipos de variables. Cules son las ventajas y
desventajas de revisar los tipos de variables en la compilacin o tiempo de ejecucin?
Fundamente su respuesta.

Una manera de plantearlo es indicando que los programas o lenguajes de programacin, pueden
clasificarse segn lo estricto que sean para evaluar los diferentes tipos de variables.

Por ejemplo, PHP no es un lenguaje de programacin estricto. Una variable puede ser de tipo
entero, en otro momento en el cdigo puede asignar un string y en otro momento un comando de
booleano.
Por otra parte, los lenguajes como C++ y .net son lenguajes de programacin que hacen una
verificacin cuando compilan, cada uno con mayor o menor profundidad; en este ejemplo, c++ es
menor porque debe mantener compatibilidad con C.

Ahora bien, un lenguaje liviano de compilar que no es estricto, permitira una mayor rapidez y
tambin el uso de diversos tipos de datos en una variable; con otro lenguaje ms estricto, la
compilacin podra ser ms profunda, por ende ms robusta pero el tipo de variables hara el
cdigo ms extenso.

Entonces, dependiendo de la disponibilidad de recursos (mayor o menor tiempo para crear ms o


menos cdigo); la importancia y los tipos de datos (si son datos delicados o no tanto) y de lo que el
usuario final requiera, las posibilidades de programacin pueden darse de mejor manera un un
lenguaje por sobre otro.

Entonces, conociendo ls posibilidades que cada lenguaje ofrece en sus tiempos de compilacin y
sus tipos por una pate, y las caractersticas del proyecto que el jefe de proyecto tenga que cubrir,
ser ms sencillo poder escoger un lenguaje o combinacin de ellos por sobre otro.

INTRODUCCIN A LA PROGRAMACIN ORIENTADA AL OBJETO. PARTE I .........................................


3

OBJETIVOS ESPECFICOS
........................................................................................................................... 3

INTRODUCCIN
...................................................................................................................................... 3

1. PROGRAMACIN ORIENTADA AL OBJETO


.......................................................................................... 4

hay tres tipos de programacin historicas

imperativa

tiene el problema de variables globales, las cuales se puede n usar y modificar en


contenido desde cualquier pate del programa.
los programas que no tienen estructura adecuada ni sistemas de control para administrar
este tipo de variables, se hace compleja.

los mdulos que las utilizan no se pueden entender completamente

y de manera independiente de aquellos que acceden a las mismas variables

todo se encuentra conectado y relacionado dentro del programa

se pone vulnerable

propenso a errores por motivo de su interdependencia

de construccion

de ejecucn

el uso de saltos globales como el JUM y el GOTO lo hacen dificil de leer.

estructurada

centra sua tencin en las siguientes ideas

la no repeticin de cdigo (no redundancia=

Proteccion de las variables (para que no sean modifcabls por otra partes del programa)

estructuras de control de alto nivele, reemplazan a las estructuras de salro

repetir codigo por lo general induce errores, es una barrera al momento de realizar
mantenimiento o actualizaciones de programa o sistema de informacion

la solucin es crear variables que siempre hagan la misma tarea y que se llamenr cuando
sean necesarios.

asegurando de que siempre harn lo mismo, no imprta cuantas veces sean llamados.

en caso sde las variables

se protejen, permiten la definicion de variables locales

seran aquellas solo en un mbito de la funcin o procedimiento para losque se definen.

evita el riesgo de que otra funcin o procedimiento pueda cambiarlas o modificarlas como
lo que sucede en la programacin imperativa.

los saltos son reemplazados por estructuras ordenadas y finitas en las cuales es predecible
el resultado.
fomenta el uso de procedimientos pequeos, un codigo bien estructurado debiese
implementar una funcion o procedimiento para resolver el problema.

La subdivicin de probleas comlejos enotros ms simples es fundamental

orientada a objetos

POO

paradigma o metodologiaa de programacin

no lenguaje

conceto objeto

disea a partir del objeto la estructura modular de los programas que confiorman su
codigo

forma de programar

optimiza el manejo de la informacin

se hace a travs de:

factores que potencien y faciliten el mantenimiento del software

factores que faciliten la extencin del software

factores que faciliten la reutilizacin del cdigo generado

intenta ajustar la programacin al modo de pensar del hombre y no de la maquina como


ne los otros paradigmas

el objeto

es la representacin de un concetpo

encapsuka o cotniene la informacin necesaria para realizar la abstracin de dicho


conceto

las fescripciones de su estado y las operaciones que permiten modificarlo

las operaciones que determinan tambin sus capacidades.

1.1. VENTAJAS Y DESVENTAJAS DE LA POO ........................................................................................


6

1.1.1. VENTAJAS .................................................................................................................... 6

analista/programador/uruario mejor comunicados

mejor productividad

facilita la representacin de estructuras complejas

semantica sencilla de entender

ayuda a ser ms cercano al usuario final y el programa

favorece

modularidad de sistemas y programas

resusabilidad del cdigo

mejor mantenimiento

1.1.2. DESVENTAJAS .............................................................................................................. 6

si hay una error en la definicin de los coneptso abbstractos, puede dejar con el error todo
el sistema

exige actualizacion de conocimientos de quienes etan a cargo de los proyectos de software

exige experticia y experiencia en programacin segun el paradigma

1.2. CONCEPTOS DE LA POO ............................................................................................................ 7

1.2.1. OBJETOS ...................................................................................................................... 7

un objeto en POO equivale a una variable en Pestr


la instanciacin en POO quivale a una declaracin de variables

eltiempo de vida de un bojeto equivale al mbito de una variable

1.2.2. CLASES ......................................................................................................................... 7

abstracciones de conjjunto de objetos

poseen comportamiento y propiedades comunes

clase= implementacin de un objeto

objetos= instancias de la calse

atributos, variables, son el estado de las clases que indican los objetos que los representan

durante la ejecucin

el compilador crea espacio en la memoria

para todas las variables

que esten en una determinada calse

cuando se instancia un objeto de una clase

mtodos

funciones

una clase representa el comortamietno de un objeto al que pertenede

permiten modifiar valores de atributos de un objeto determinado

representan las capacidades del objeto

se les conocen como servicios

una clase en POO es un mdulo en Pestruc

Los atributos equvalen a las variables globales

los mtodos equivaln a las funciones del mdulo


1.2.3. ATRIBUTOS .................................................................................................................. 8

datos que caracterizan al objeto

se define info oculta dentro de un objeto

se manipula por metodos especficos para el objeto

atribut: nombre + valor

puede ser dato simple o testructurado

1.2.4. MTODOS .................................................................................................................... 8

operaciones o acciones sobre objetos

secuencias de acciones

1.2.5. CONSTRUCTORES ........................................................................................................ 9

una instancia se crea mediante un mtodo llamado/denominado constructor

el metodo constructor tiene el mismo nombre dela lcase

1.2.6. DESTRUCTORES ........................................................................................................... 9

puede ser hecha por el programador o automtico segn el leunguaje

se deben conocer de cada lenguaje

1.2.7. ENVO DE MENSAJES ................................................................................................... 9

comuncacin entre objetos


se invoca una operacin de un mpetodo

este a su vez puede invocar otros asociados

1.3. INSTANCIACIN DE UNA CLASE .................................................................................... 10

una clase es un molde o plano

dice cmo es un objeto de dicha clase

a partir de la clase, se pueden hacer muchos objetos

cada uno de los objetos es una instancia de dicha clase

clase

atributo color

cada instancia de esa clase puede tener un valor asignado distinto

creacin de nuevo objeto

da valor inicial a los atributos

se usa el mtodo constructor

se ejecuta automtico cuando se inicia un objeto

1.4. REFERENCIA AL OBJETO ACTUAL ................................................................................... 10

this

2. LENGUAJES ORIENTADOS AL OBJETO ...............................................................................................


11
2.1. CHEQUEO DE VARIABLES AL COMPILAR O EN TIEMPO DE EJECUCIN
............................................ 11

programas evaluados segun cuan estricos son para aevaluar los tipos de variables

segun

metodos de llamados

tipo de parmitros,

largo de sus arreglos

PHP no es estricto en este sentido

una variable puede ser

tipo entero

el codigo puedeasegnarle un string

puede ser booleano

otros lenguajes no tienen dicha libertado

ejemplo

jaba

c++

.net

ellos realizan verificacional momento de la compilacin con diferente grado de


profundidad

c++ .net java

menos preciso en la profundidad de compilacin. ms preciso que c++ interpreta bien el


byte-code, es bastante exhaustivo en los mismos.

junto a PHP es un lenguaje hbrido ya que permite utilizar de igual forma el enfoque de la
programacin estructurada si se desea es un POO puro,
en C++ eliminar objetos de la pla es simple, pero eliminar objetos creados dinmicamente es ms
difcil.

Existen soluciones como contar referencias y punteros inteligentes, pero no facilita esta labor el
lenguaje. .net junto a PHP incluyen un recolector de basura automtico, se encarga de
recuperar toda la memoria que el programa ya no est utilizando idem que en .net

2.2. LENGUAJES HBRIDOS VS. LENGUAJES PUROS ............................................................................


12

puros

solo un modelo de programacin

modelo orientado a objetos

se pueden declaar metodos y clases

no se puede definir una funcin sola o procedimientos sin tener datos globales

JAVA

sintaxis ms complejja por generar uso de bastantes mtodos datos estticos

C++ PHP

hibridos

permite utilizar programacin estructurada

2.3. RECOLECCIN DE BASURA ...................................................................................................... 12

COMENTARIO FINAL
.............................................................................................................................. 13

REFERENCIAS ........................................................................................................................................
14

La Programacin Orientada a Objetos vendra a ser de gran ayuda al aplicarla en los lenguajes, ya
que nos permitira de alguna manera poder saldar las deficiencias que pueda tener uno u otro
lenguaje; teniendo muy presente la definicin de los conceptos para no incurrir en errores que
podran ser garrafales para todo un proyecto; podramos ahorrarnos muchos futuros problemas
en la realizacin de procedimientos, construccin de objetos y la utilizacin de las distintas
variables ordenndose de manera modular nos permitir abarcar un mantenimiento y mejora de
mejor (valga la redundancia) manera. Esto, junto a las fortalezas de .net para este caso en que se
necesita crear un trabajo sin el tiempo suficiente para los tiempos de ejecucin, nos puede dar
mayor espacio por el lado del mantenimiento y los posibles errores que pudieran ocurrir;
brindando mayor claridad de a qu parte del cdigo dirigirse para plantear la mejora en caso de
que algo falle, teniendo muy presente los conceptos y los procesos llevados a cabo durante la
codificacin.

Semana 8

INTRODUCCIN A LA PROGRAMACIN ORIENTADA AL OBJETO. PARTE II


........................................................ 4

OBJETIVOS ESPECFICOS
........................................................................................................................... 4

Analizar las propiedades fundamentales de la programacin orientada al objeto (POO).

Analizar los modos de acceso en la programacin orientada a objetos.

Distinguir la sobrecarga de mtodos y operadores.

Diferenciar los tipos de relaciones entre clases de objetos.


INTRODUCCIN
...................................................................................................................................... 4

POO desde el desarrollo hasta la mantencin del cdigo

cmo integrar sistemas complejos de software

popular en desarrollo de software en 20 aos

1. PROPIEDADES FUNDAMENTALES DE LA POO


....................................................................................... 5

paradigma de programacin

1.1. INTERFACES ............................................................................................................................ 5

clases abstractas

ennumera mtodos pero no implementa ninguno

todos los mtodos son abstractos

permite establecer la estructura de una clse con sus atributos y mtodos u otros

sin realizar la implementacin

cada clase puede herredar la interfaz

implementar mtodos de la forma conveniente

todos los mtodos deben ser pblicos

una interfaz no puede tener construtores

por ello no se puede crear una instancia de interfaz


1.2. POLIMORFISMO ...................................................................................................................... 5

puede presentarse en diferentes formas, o diferentes comportamientos

un objeto POO depende de su contexto

Un metodo puede implementarse de diferentes maneras

depende de los argumentos recibidos

depende de parmetros para realizar una misma operacin

ejecuta acciones diferentes en funcin delnivel de abstraccin que le corresponda

un mtodo es capaaz de realizar mltiples acciones

depende de

cmo se invoque

dnde se le invoque

si la invocacin vara en cuanto a parametros de inicio

polimorfismo de sobrecarga

cuando las funciones del mismo nombre existen

de funcionalidad similar

en clases independientes, no secundarias

ejemplo

clases: complex, image y link: tienen la funcin display

una clase hereda mismo mtodo

una implementacion de un mtodo no es identica en cada subclase

se invoca en contextos diferentes

puede realizar funciones distintas

Polimorfismo paramtrico

capacidadde definir varias funciones

se utiliza el mismo nombre


se usan parmetros diferentes

selecciona automticamente el mtodo correcto a aplicar en funcin del tipo de dato


pasado en el parmetro.

1.3. HERENCIA .............................................................................................................................. 7

classes pueden heredad una o varias subclases, astributos y mtodos

se le llama superclase o clase padre

una sub clase puede comportarse como una super clase

herencias mltiples, una subclase hereda de varias clases.

se puede compartir de modo jerarquizado

arboles de herencia

1.4. ABSTRACCIN......................................................................................................................... 8

captura de caracteristicas y comportamientos de un objeto

proceso de modelado de a realidad

se necesita entender los objeto como una suma de omportamietnos bien definidos.

1.5. MODULARIDAD ...................................................................................................................... 8

subdivision de na aplicacion enpartes ms pequeas

realizan tareas especficas con mayor independencias que otras partes

permite disminuir el grado de fdificultad entre ls partes

facilita problemas
disea programas ms eficientes

1.6. ENCAPSULAMIENTO ................................................................................................................ 9

alta cohesin y bajo nivel de acoplamiento

los objtos presentan sus mtodos como interfases pblicas

sus atributos como caractersticas privadas

para que el no sean accesible para otros objetos

2. MODOS DE ACCESO .........................................................................................................................


9

Tal como especifica Joyanes (p cit.), existen varios niveles de acceso a los distintos
atributos y mtodos de una clase:

PRIVATE: cuando se utiliza este modificador, el atributo o mtodo no podr ser accesado
desde fuera de la clase. Adicionalmente, las clases que hereden de esta tampoco tendrn acceso al
mtodo o atributo.

PROTECTED: un atributo o mtodo protegido es accesible solo desde la clase, pero


cualquier clase que herede tambin tendr acceso al mtodo o atributo.

PUBLIC: cualquiera puede acceder al mtodo o atributo.

3. SOBRECARGA ............................................................................................................................... 10

3.1. SOBRECARGA DE MTODOS ................................................................................................... 10

posibilidades disponibles en la POO


funciones con mismo nombre pero:

diferentes parmetros de cada una

es util cuando a una clase con un metodo, le hereda otra sublcase con un metodo
agregando ms parmetros o cambiando el tipo de estos

3.2. SOBRECARGA DE OPERADORES ............................................................................................... 11

idea de redifinir los distintos operadores del lenguaje para extenderlo

cuando una clase posee muchos atributos, no queda claro cmo operar con ella

la sobrecarga facilita la comprensin del cdigo y la lgica dentro de este.

ejemplo: eun una empresa; Clase persona

atributos, rut edad, nombre, sueldo

el dpto de finanzas necesita saber el sueldo de los empleados en total

define el operador + como la suma de los sueldos

el dpto de RRHH le intereza saber edades

define el operador + como suma de edades

ejemplo de sobrecarga de operadores en C++

en la vida laboral se trabajan multiples lenguajes, es imporante conocer y verificar que el


lenguaje soporte la funcionalidad de SOBRECARGA

tipos de operadores

que usan un operando para funcionar , ejemplo ! en lgica, convierte negativo el valor de
una expresin

binarios, necesitan dos operandos para entregar un resultado, por ejemplo + y - .

4. RELACIONES ENTRE CLASES Y OBJETOS


............................................................................................. 12

las relaciones son crreadas de manera natural

distintos tipos:

4.1. ASOCIACIN ......................................................................................................................... 12

objetos de una calse onectados con objetos de otra clase

Ejemplo: relacion de pertenencia entre sillas y una mesa

se indica que 4 silals pertenecen a una mesa o al reves, una mesa tiene 4 sillas

4.2. AGREGACIN Y COMPOSICIN ............................................................................................... 13

tipo especial de asociacin

acoplamiento fuerte entre clases

relaciones

maestro y eclavo

todo y parte de

compuesto y componentes

ejemplo: en un restorante

un sandwich

pertenece a la categora comida rpida


si se elimina el sandwich no es necesario eliminr la categora, pueden haber otro tipos
de comida rpida como pizas o papas fritas.

relaciones de composicin

son relaciones fuertes

no puede estar una parte sin la otra

ejemplo: patente y vehculo

4.3. HERENCIA ............................................................................................................................ 13

clase y su hija

hay jerarquia

se asumen los aotributos y mtodos, y luego se agregan los propios

no significa que la clase hija est compuesta por la clase padre.

ejemplo: clase vehculo

hereda atributo a sus clases hijas: automvil, avion, barco

todas son vehculos pero no corresponden todas a medios de transporte terrestres

COMENTARIO FINAL
.............................................................................................................................. 14

tecnica ms utilizada en el mundo

formas de controlar visibilidad mtodos y atributos, evita que otras clases no lean cosas
que no les correspondan

sobrecarga

tecnica muy utilizada, provee lgica coherente al codigo y sus operaciones

distinta relaciones

comrpensin de cmo se relacionan y comoponen un desarrollo

deja claro tipo de relacion, cardinalidad, fuerza y atributos de ella.


REFERENCIAS ........................................................................................................................................
15