Universidad Iberoamericana de Ciencias y Tecnología

Facultad de Ingeniería Escuela de Ingeniería ….

Lenguajes de Programación
Claudio Hormazábal Ocampo Primer Semestre 2010 Email: claudio@hormazabal.cl Apuntes, Emuladores, Calificaciones: http://www.hormazabal.cl/e-cursos
Strictly Confidential
1

Descripción de la Asignatura

Los contenidos fundamentales que se estudian en esta asignatura son: Sistemas Numéricos (ej. Memorias), Organización de Microcomputadores, Lenguajes de Bajo Nivel, Lenguajes de Alto Nivel y sus aplicaciones. Los contenidos de esta asignatura son requisitos fundamentales para la asignatura de Microprocesadores.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

2

Objetivos Generales:

Comprender la base conceptual de la interacción humano, software, hardware.(proyecto Lemuc)
Analizar el funcionamiento de un computador para descubrir sus posibilidades y limitaciones. Relacionar la estructura del computador con las instrucciones de software. Elaborar programas de computadora utilizando lenguajes de programación de bajo nivel y alto nivel.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

3

Horario Civil Electrónica e Informática  Martes de 13:00 a 15:10  Miércoles de 13:50 a 15:10
Ejecución Electrónico Diurno  Miércoles de 17:30 a 19:30  Viernes de 13:00 a 14:20 Ejecución Electrónica, Computación, Biomédica Vespertino  Lunes de 20:30 a 22:30  Viernes de 19:00 a 20:20

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

4

TEMARIO

UNIDAD 1: Sistemas Numéricos.
1. 2. 3. 4. 5. 6. Decimales, Binarios, Hexadecimales. Operaciones en Binario. Operaciones en Hexadecimal. Conversiones. Operaciones a nivel de Máquina. Lógica a nivel de máquina.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

5

TEMARIO (Continuación …)

1. 2. 3. 4. 5. 6.

7.

Unidad 2: Organización de un Computador. La memoria. La Unidad Central de Procesos (CPU). La Familia 80x86. Registros de un Microprocesador. Modos de Operación. Interrupciones. Aplicaciones.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

6

TEMARIO (Continuación …) Unidad 3: Lenguajes de Bajo Nivel. (Assembler) 1. Lenguajes de máquina. 2. Ensambladores. 3. Operandos e Instrucciones. 4. Instrucciones de Datos. 5. Instrucciones Aritméticas. 6. Instrucciones Lógicas y de Bits. 7. Instrucciones de Control. 8. Otros tipos de Instrucciones. 9. Directivas. 10. Entradas y Salidas. 11. Depuración. 12. Aplicaciones.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

7

TEMARIO (Continuación …) Unidad 4: Lenguajes de Alto Nivel. (JAVA) 1. Conceptos Básicos. 2. Palabras Reservadas. 3. Identificadores, Constantes, Operadores. 4. Tipos de Datos y Recursos. 5. Estructura Lógica de un programa. 6. Librerias y Componentes. 7. Funciones y Procedimientos. 8. Arreglos y Archivos. 9. Acceso al Hardware. 10. Programación de Aplicaciones.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

8

Evaluación

   

Prueba Acumulativa 1 Prueba Acumulativa 2 Prueba Acumulativa 3 Disertación Laboratorio

:20% :20% :20% :10% :30%

Promedio ponderado es la nota de presentación a examen: NPE. Nota de presentación a examen :70% Examen :30%

Eximidos: Alumnos con promedio de notas ponderado igual o mayor a 5,5 El profesor podrá eximir a los alumnos con promedio igual o superior a 5,0 siempre y cuando se cumpla con el requisito de asistencia exigido en la asignatura y sin nota rojo en alguna prueba.
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

9

Disertación:

 

Formar grupos de 3 personas. Máximo 20 minutos por grupo. Cada grupo disertará sobre algún lenguaje de programación con los siguientes temas como mínimo (excepto Assembler y JAVA):
1. 2. 3. 4. Incidencia de los Sistemas Numéricos en el Lenguaje. Incidencia del Hardware en el Lenguaje. Operativa, Estructura y nociones básicas de la Programación. Crear un programa que calcule el factorial de una división (entero) de 2 números digitado por teclado y explicar la programación. 5. Conclusiones.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

10

Bibliografía:

 

“Fundamentos de la Programación” Luis Joyane. Mc Graw Hill. “Problemas de Metodología de la Programación”. Luis Joyanes. Google¡¡¡ Calificaciones, Apuntes, Software y emuladores en: http://www.hormazabal.cl/e-cursos

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

11

Introducción ¿DE QUE TRATA EL CURSO?
Aprender a ocupar el computador como herramienta de solución de problemas prácticos y teóricos. Para ello es necesario, de acuerdo a orden de importancia: 1º Fundamentalmente saber resolver en forma teórica el problema, independiente de su naturaleza, computador o lenguaje a usar. (saber pensar) 2º Saber metodologías de solución de problemas que permitan expresar el resultado computacionalmente (saber de computación) 3º Escoger un lenguaje apropiado que haga más fácil la implementación de la solución, y del cual se tenga dominio (saber de lenguajes). Programación < > Magia + Conocimiento + Suerte Programación = Concentración + Planificación +Lógica + Perseverancia + Creatividad

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

12

Introducción (Continuación …)

¿Por qué nace la computación?
La continua necesidad de manejar grandes cantidades de información, automatizar procesos de cálculos rutinarios y administrar conocimiento humano. Desde la antigüedad se construyeron máquinas mecánicas capaces de realizar cálculos matemáticos en forma más rápida.
x 2

lon( x) x
x 2

2

Por eso, el nombre de computación viene efectivamente del cálculo. Computación = Del latín que significa pensamiento, Es la ciencia de calcular y procesar información. Por tanto la esencia del computador es almacenar datos y ser capaz de procesarlos y/o calcularlos.
2007, Claudio Hormazábal

2*3+5+8+10*5-14+12 +8-9+6+5+14+13+22 -52+8*44-100+589-2 +3*55-13+51/25+8

Lenguajes de Programación

claudio@hormazabal.cl

13

Introducción (Continuación …)

Reseña Histórica:
Antigüedad : Existían mecanismos de cálculo que sólo pueden hacer lo pre-establecido Notación numérica posicional Construcción de ábacos 1642, Pascal crea una máquina de sumar Modernismo : Mecanismos de cálculo capaces de reconocer nuevas funciones diferentes a las preestablecidas (poseen lenguaje propio de programación) 1822, Charles Babbage crea la máquina análitica y de diferencias 1945, von Neumann crea las bases para el primer computador con tarjetas programables 1946, primer computador eléctrico Post-Modernismo : Mecanismo de cálculo y manejo de información (poseen lenguaje propio de programación) Se transforma en herramienta fundamental en administración y producción (década 50’) Actualidad : Mecanismo de cálculo, manejo de información y conocimiento humano (reconocen diferentes lenguajes de programación a parte del propio) Desde 1960 se comienza a masificar el uso del computador en todas las áreas humanas. Comienzan las técnicas de manejo de conocimiento humano. Ej. Comunidades del conocimiento. Se crean los sistemas expertos y de inteligencia artificial. A partir de la década del ‘80 gracias a los PC (personal computer) el computador se transforma en herramienta útil en toda actividad humana.
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

14

UNIDAD 1: Sistemas Numéricos. Sistemas Numéricos
1.-Sistema N-ario: Ejemplo :
N

X X

x
K i 0

K


i

x x x x
3 2 1 i

0

X 10 94 B5 X 13 9475

D

xN
K

X 9*10 4*10 7 13 5 10 X DD 9*13 4*13 11*10 5*13
Ejemplo :

3

3

2

2

1

1

0

0

2.- Sistema Binario:

X X

B

x
K i 0


i

x x x x
3 2 1 i

0

D

x2

X 1101 X 1* 2 1* 2 0* 2 1* 2
2 3 2 1 D

0

3.- Sistema Hexadecimal: Ej. (Direcciones de Memoria)

Ejemplo :

i

X X

H

x
K i 0

K

x x x x
3 2 1 i

0

D

x 16

X X

16 D

1101 1*16 1*16 0*16 1*16
3 2 1

0

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

15

UNIDAD 1: Sistemas Numéricos.

Sistemas con notación posicional:

La posición del dígito o símbolo tiene relevancia. Es decir, el símbolo adquiere un valor distinto dependiendo de la posición en que este se encuentre. En estos sistemas, el número se construye mediante una sumatoria de los dígitos ponderados por una potencia de la base.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

16

UNIDAD 1: Sistemas Numéricos.

Ejemplo de distintos sistemas de notación posicional:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

17

UNIDAD 1: Sistemas Numéricos. Operaciones en Binario.  Suma binaria. La suma se realiza tomando consideración la siguiente tabla:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

18

UNIDAD 1: Sistemas Numéricos.

Resta Binaria:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

19

UNIDAD 1: Sistemas Numéricos.

Multiplicación Binaria: Se realiza de la misma forma que la multiplicación decimal pero considerando la siguiente tabla de multiplicar binaria.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

20

UNIDAD 1: Sistemas Numéricos.

División Binaria: Se realiza de la misma forma que la división decimal pero tomando en cuenta las tablas de multiplicar en binario.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

21

UNIDAD 1: Sistemas Numéricos. Operaciones en Hexadecimal.
Tabla de números en Hexadecimal:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

22

UNIDAD 1: Sistemas Numéricos.

Suma en sistema hexadecimal. Se debe considerar para efectuar la suma la siguiente tabla:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

23

UNIDAD 1: Sistemas Numéricos.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

24

UNIDAD 1: Sistemas Numéricos.

Multiplicación en Hexadecimal: Para la realización de la multiplicación en hexadecimal es necesario considerar las tablas de multiplicar en el sistema hexadecimal.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

25

UNIDAD 1: Sistemas Numéricos.

Tarea: Averiguar sobre la división en Hexadecimal.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

26

UNIDAD 1: Sistemas Numéricos. Conversiones  En general, para convertir de Base X a base 10:
1.

Método de evaluación del polinomio: Para convertir un número de base cualquiera a base 10 se evalúa el polinomio que genera el número, realizando las operaciones en base 10. Si el sistema tiene base mayor a 10, previo a la evaluación del polinomio se convierten los símbolos en su equivalente a base 10. Ejemplos:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

27

UNIDAD 1: Sistemas Numéricos. 2. Método de los productos sucesivos: Este método se deriva de una forma distinta de evaluar el polinomio y es aplicable sólo a números enteros.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

28

UNIDAD 1: Sistemas Numéricos.

1.

En general, para convertir de Base 10 a Base X. Método para números enteros: Divisiones sucesivas.
1. Se realizan divisiones enteras sucesivas en las cuales el divisor es la base. 2. Primer dividendo es el número en base 10. 3. Siguientes dividendos son los cuocientes de las divisiones enteras. 4. Los dígitos del número en base X están formados por los restos de las divisiones enteras. 5. Dígito menos significativo del número en base X corresponde al primer resto. 6. Dígito más significativo corresponde al último cuociente. 7. Termina la división hasta que el cuociente sea menor que la base.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

29

UNIDAD 1: Sistemas Numéricos. Algoritmo:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

30

UNIDAD 1: Sistemas Numéricos.

Método para números fraccionarios: Para convertir un número fraccionario de base 10 a base X se debe utilizar el siguiente método.
1. Se multiplica el número fraccionario decimal por la base X. 2. La parte entera del número resultante corresponde a la primera cifra decimal del número en la base X. 3. Se realizan sucesivas multiplicaciones por la base X considerando las partes decimales de las multiplicaciones. 4. Los enteros de los productos obtenidos corresponden a los decimales del número en base X. Respecto al número de decimales que debe tener el número en la nueva base se debe recordar lo siguiente:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

31

UNIDAD 1: Sistemas Numéricos.

1.

CONVERSIÓN DECIMAL-BINARIO: Los métodos mas conocidos son: Divisiones sucesivas entre 2: Consiste en dividir sucesivamente el número decimal y los cocientes que se van obteniendo entre 2, hasta que una de las divisiones se haga 0. La unión de todos los restos obtenidos escritos en orden inverso, nos proporcionan el número inicial expresado en el sistema binario. Ej.:10(10)=1010(2)

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

32

UNIDAD 1: Sistemas Numéricos. 2. Multiplicación sucesiva por 2:
Se utiliza para convertir una fracción decimal a binario, consiste en multiplicar dicha fracción por 2, obteniendo en la parte entera del resultado el primero de los dígitos binarios de la fracción binaria que buscamos. A continuación repetimos el mismo proceso con la parte fraccionaria del resultado anterior, obteniendo en la parte entera del nuevo resultado el segundo de los dígitos buscados. Iteramos sucesivamente de esta forma, hasta que desaparezca la parte fraccionaria o hasta que tengamos los suficientes dígitos binarios que nos permitan no sobrepasar un determinado error.

Ejemplo: Convertir la fracción decimal 0.828125 en fracciones binarias

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

33

UNIDAD 1: Sistemas Numéricos. 3 Métodos de las restas sucesivas de las potencias de 2: Consiste en tomar el numero a convertir y buscar la potencia de 2 mas

grande que se pueda restar de dicho numero, tomando como nuevo numero para seguir el proceso el resultado de la resta. Se repiten las mismas operaciones hasta que el número resultante en una de las restas es 0 o inferior al error que deseamos cometer en la conversión. El numero binario resultante será un uno (1) en las posiciones correspondientes a las potencias restadas y un cero (0) en las que no se han podido restar.

Ej. Convertir el número decimal 1994 a binario.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

34

UNIDAD 1: Sistemas Numéricos.

CONVERSIÓN DE BINARIO A DECIMAL: El método consiste

en reescribir él número binario en posición vertical de tal forma que la parte de la derecha quede en la zona superior y la parte izquierda quede en la zona inferior. Se repetirá el siguiente proceso para cada uno de los dígitos comenzados por el inferior: Se coloca en orden descendente la potencia de 2 desde el cero hasta n, donde el mismo el tamaño del número binario, el siguiente ejemplo ilustra de la siguiente manera. Utilizando el teorema fundamental de la numeración tenemos que 1001.1es igual a:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

35

UNIDAD 1: Sistemas Numéricos.

Representación de números con signo. En matemáticas, los números negativos en cualquier base se representan del modo habitual, precediéndolos con un signo "−". Sin embargo, en una computadora, hay varias formas de representar el signo de un número. Se tratarán cuatro métodos para representar números con signo: signo y magnitud, complemento a uno, complemento a dos y exceso N.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

36

UNIDAD 1: Sistemas Numéricos.

Signo y Magnitud. Una primer enfoque al problema de representar el signo de un número podría consistir en asignar un bit para representar el signo, poner ese bit (a menudo el bit más significativo) a 0 para un número positivo, y a 1 para un número negativo. Los bits restantes en el número indican la magnitud (o el valor absoluto). Por lo tanto en un byte con solamente 7 bits (aparte del bit de signo) la magnitud puede tomar valores desde 0000000 (0) a 1111111 (127). Así se puede representar números desde -127(10) hasta +127(10). Observación: El cero tiene 2 representaciones: 00000000 (0) y 10000000 (-0). Ejercicio: Representar el número -100, -50 y -25 en binario.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

37

UNIDAD 1: Sistemas Numéricos.

Complemento a uno. Como alternativa para representar números negativos puede usarse un sistema conocido como complemento a uno. La forma del complemento a uno de un número binario es un NOT bit a bit aplicado al número. Ej: el complemento a uno de 00101011 (43) se convierten en 11010100 (−43). Observación: El cero tiene 2 representaciones 0:00000000 (+0) y 11111111 (−0). El rango para la representación en complemento a uno con 8 bits es −127 a +127 (en base 10).

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

38

UNIDAD 1: Sistemas Numéricos.

Complemento a dos. El complemento a dos de un número N que, expresado en el sistema binario está compuesto por n dígitos, se define como:

Ejemplo: En Complemento a 2, para n = 16, el número -9503(10) se escribe calculando el Complemento a la Base del número 9503(10) representado en base 2, es decir, del número 10010100011111(2): C2(N) = C2(10010100011111) = = 2^n - N = = 2^16 - 10010100011111 = = 10000000000000000 - 10010100011111 = = 1101101011100001C2 En consecuencia, -950310 = 1101011100001C2
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

39

UNIDAD 1: Sistemas Numéricos. Truco para complemento a 2: Una forma fácil de implementar el complemento a dos es la siguiente:

¿Para qué sirve complemento a 2? Su utilidad principal se encuentra en las operaciones matemáticas con números binarios. En particular, la resta de números binarios se facilita enormemente utilizando el complemento a dos: la resta de dos números binarios puede obtenerse sumando al minuendo el complemento a dos del sustraendo.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

40

UNIDAD 1: Sistemas Numéricos.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

41

UNIDAD 1: Sistemas Numéricos. El complemento a uno también se puede definir como una unidad menor que su complemento a dos, es decir:

Por ejemplo, calculemos el complemento a 1 del número 45 que, expresado en binario (101101), tiene 6 dígitos:

su complemento a dos es:

y, su complemento a uno es una unidad más pequeño:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

42

UNIDAD 1: Sistemas Numéricos.

Tarea: Averiguar sobre Exceso N.

Mostrar calendario de pruebas.

Los informes de Laboratorio que se entreguen fuera de plazo, serán calificados, como máximo, con nota 4.0.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

43

UNIDAD 1: Sistemas Numéricos.

Coma Flotante:es un método de representación de números reales que se puede adaptar al orden de magnitud del valor a representar, usualmente trasladando la coma decimal, mediante un exponente, hacia la posición de la primera cifra significativa del valor. De esta forma, con un número dado de dígitos representativos se obtiene mayor precisión que con el punto fijo, debido a que el valor de estos dígitos es siempre significativo sea el que sea el orden de magnitud del número a representar.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

44

UNIDAD 1: Sistemas Numéricos. Representación en coma flotante:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

45

UNIDAD 1: Sistemas Numéricos.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

46

UNIDAD 1: Sistemas Numéricos.

Números con representación especial:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

47

UNIDAD 1: Sistemas Numéricos.
Procedimiento para pasar un número decimal a coma flotante: Ejemplo: Pasar el nº -6,125(10) a binario IEEE754. 1º.-El bit 31 tomará el valor del signo de la mantisa. (-6,125 => - => 1) 2º.-Pasar a binario la mantisa decimal. 6=110 0,125=0,001 6,125=110,001(2) 3º.-Normalizar. Correr la coma a derecha o izquierda hasta convertir el número binario en un numero de la forma 1,……… El número de desplazamientos va a dar valor al exponente de forma que: Desplazamiento a la derecha => Exponente negativo Desplazamiento a la izquierda => Exponente positivo 6,125=110,001(2)=> 1,10001 => Exponente = 2 2 expresado en exceso 127 => 129 => 10000001(2) 4º.-Mantisa representada con bit implícito => 1,10001 => 10001 (el bit 1 de la parte entera no se representa) 5º.-El número final es 1 10000001 10001000000000000000000 (Se agregan a la derecha los “0” necesarios para completar los 23 bits de la mantisa) 6º.-Pasado a hexadecimal 110000001 1000 100 0000 0000 0000 0000 = C0C40000(16)

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

48

UNIDAD 1: Sistemas Numéricos.
Procedimiento para pasar de coma flotante a decimal: 1º.-Convertir a binario el número hexadecimal C0C40000(16) = 1100 0000 1100 0100 0000 0000 0000 0000(2)

2º.-Identificar los campos del número binario: 1 10000001 10001000000000000000000
Signo de la mantisa Exponente representado en exceso 127 Mantisa normalizada con bit implícito

3º.-Convertir cada uno de los campos a decimal 1 => Mantisa negativa 10000001(2) => 129 => +2
10001000000000000000000(2)=>1,10001000000000000000000(2)

=> Con exponente +2 => Hay que desplazar la coma a la derecha (+2) 2 posiciones => 110,001000000000000000000(2) => 6,125(10)
4º.-El número final es la combinación de todos los valores de los campos -6,125
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

49

Unidad 2 :PHP

PHP es lo que se llama un lenguaje de programación del lado del servidor, esto significa que el código se interpreta en el servidor y no en el Computador del usuario. El código php interpretado, produce un resultado que es enviado al navegador del visitante en forma de HTML, imagen, documento .doc... de ninguna manera el navegador del visitante accede al código fuente en php sino solo a su resultado en HTML.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

50

Unidad 2 :PHP

El navegador pide un documento al servidor, en el caso que este documento sea un archivo PHP, el archivo es interpretado y se envía su resultado al navegador.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

51

Unidad 2 :PHP

Veamos un ejemplo sencillo de código escrito en php:
<html> <head> title>Prueba</title> </head> <body> <?php $texto = "Hola mundo"; echo $texto; ?> </body> </html>

Este código producirá el siguiente resultado que es lo que se enviará al navegador del visitante:
<html> <head> <title>Prueba</title> </head> <body> Hola mundo </body> </html>
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

52

Unidad 2 :PHP

Notar que el código php esta delimitado por las etiquetas <?php y ?>.
Otra característica del php es que las variables se identifican con el signo del peso ($) y que cada instrucción debe finalizarse con un punto y coma (;).

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

53

Unidad 2 :PHP

Instalación Apache y PHP. Para empezar a aprender a programar en PHP, debemos tener un servidor web con PHP instalado, y lo más cómodo para trabajar es que lo tengamos en nuestro propio PC. Las herramientas que necesitamos, son un servidor web ( en el curso se utilizará Apache pero IIS de Windows también es una alternativa ), el propio PHP y posiblemente el motor de bases de datos MySQL.
Todo esto se puede instalar por separado, o se puede hacer con paquetes que instalan y configuran PHP, Apache y MySQL. Un paquete de software con todos estos “ingredientes” es XAMPP, existen otros como el WAMP o easyPHP.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

54

Unidad 2 :PHP

XAMPP es el único paquete de los que hemos señalado, disponible para multiplataforma (Windows, Mac OS X, GNU/Linux y Solaris). Incluye, entre otros, aplicaciones como Apache, MySQL, intérprete PHP, OpenSSL, phpMyAdmin, Mercury Mail Transport System y FileZilla FTP Server.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

55

Unidad 2 :PHP

Procedimiento de Instalación: Bajar paquete desde: http://www.apachefriends.org/es/xampp.html

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

56

Unidad 2 :PHP

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

57

Unidad 2 :PHP

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

58

Unidad 2 :PHP

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

59

Unidad 2 :PHP

Comentarios: Para que en futuras revisiones de tu código sea inteligible para la mente humana, es recomendable comentar lo que se esta haciendo en PHP pero en palabras.
De esta manera el código será mucho mas sencillo de comprender y a su vez de modificar, corregir, ampliar...

Los comentarios que soporta PHP són los de C, C++ y los del shell de Unix, asi podemos usar // y /* */ para comentarios y comentarios multilinea respectivamente como haríamos en C:

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

60

Unidad 2 :PHP

Ejemplos: <?php echo 'Esto se ve'; // esto no se ve echo 'esto tambien se ve'; /* esto tampoco se ve */ ?>
<?php # esto no se ve echo 'pero esto si'; ?> <?php /* /* Nunca hacer nunca esto */ */ ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

61

Unidad 2 :PHP

Variables: Una variable es un nombre que contiene determinados datos, ya sean de texto o numéricos, y en php tienen la peculiaridad de ir precedidas por el signo peso ($). En PHP no es necesario declarar las variables antes de usarlas y pueden contener texto y números indiferentemente. Ejemplo de uso de variables: <?php $miVariable = 'Hola '; $miVariable2 = 33; // Imprimimos Hola 33 echo $miVariable.$miVariable2; ?> Como se observa, se asigna algún valor a una variable con el operador de igualdad (=), y concatenamos con el operador punto (.).

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

62

Unidad 2 :PHP

Existe la posibilidad de trabajar con una variable de nombre variable, es decir, podemos acceder a una variable que tenga el nombre que nos viene indicado por el contenido de otra variable, usando ($$): <?php $nombreVariable = "miVariable"; $$nombreVariable = "Hola"; // Imprimimos Hola echo $miVariable; ?>
Para que una variable sea accesible desde cualquier parte de nuestro script php, la definiremos cómo global de la siguiente manera: <?php global $miVariableGlobal = 'Hola'; ?>
Lenguajes de Programación
claudio@hormazabal.cl
63

2007, Claudio Hormazábal

Unidad 2 :PHP

Variables predefinidas PHP tiene muchas variables predefinidas, pero hay que tener en cuenta que todas estas variables no suelen estar activas en todos los servidores, para saber de que variables disponemos, podemos usar la función de info de PHP: <?php phpinfo(); ?> Variables más comúnmente utilizadas y que probablemente nuestro servidor tendrá correctamente habilitadas: 1 $SERVER_NAME: Cuando imprimimos en nuestro servidor la variable $SERVER_NAME nos devolverá normalmente el nombre del server si estamos trabajando en local saldria http://localhost/ o el nombre que le hayamos puesto a la maquina.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

64

Unidad 2 :PHP

2 $SERVER_SOFTWARE: En este caso nos saldrá el tipo de servidor que estamos usando: Ej IIS o apache y la versión.
3 $DOCUMENT_ROOT: La variable DOCUMENT_ROOT imprime en el navegador la ruta de los archivos “mirando” hacia Internet , depende de la configuración del servidor, nos dará la ruta. 4 $HTTP_REFERER: Haciendo referers queremos decir que nos desplegará de donde procede la persona que visita nuestra web. 5 $HTTP_USER_AGENT: nos desplegará la información de que navegador estamos utilizando, Netscape, mozilla, Internet Explorer,etc...

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

65

Unidad 2 :PHP

6 $REMOTE_ADDR: Esta variable nos permite saber la IP del visitante que ve nuestra página.
7 $SERVER_ADMIN: Simplemente nos devolverá el email de configuración del servidor donde esta alojado el script PHP. 8 $REQUEST_METHOD: Si imprimimos esta variable nos devolverá el tipo de petición que usamos para acceder a la pagina si fue con POST o con GET. 9 $HTTP_ACCEPT: Los tipos de archivos que el visitante puede recibir de este servidor con el navegador actual. 10 $REMOTE_PORT: Indica el puerto que se esta utilizando para comunicarse con el servidor web. Estas son algunas variables.
Lenguajes de Programación
claudio@hormazabal.cl
66

2007, Claudio Hormazábal

Unidad 2 :PHP

Constantes. Una constante es como una variable pero con la diferencia que una vez toma un valor este no puede variar durante la ejecución del script, otra particularidad de las constantes es que son globales, por lo que se pueden leer desde el interior de una función sin tener que pasarlas como parámetro.
Al contrario que las variables, las constantes se expresan sin signo del dolar ($), y se tienen que definir usando la función define: <?php define ('miConstante','valor de mi constante'); echo miConstante; ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

67

Unidad 2 :PHP

Existe otra función, llamada defined que nos permite saber si se ha declarado una constante determinada, lo haremos de la siguiente manera: <?php $mivariable = defined(“midato"); // Mostrara 0 si existe la variable y 1 si no existe echo $mivariable; ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

68

Unidad 2 :PHP

En algunos casos no es posible acceder al valor de una constante directamente por su nombre, pues este nombre puede coincidir con el de una función y el resultado producido no sería el esperado, en ese caso usaremos la función constant para leer el valor de dicha constante:
<?php define ('echo','valor de mi constante'); echo constant('echo'); ?> En este ejemplo vemos como la constante tiene un nombre polémico, que coincide con el de una funcion (echo) y para diferenciar el primer echo del segundo hemos usado la funcion constant (palabras reservadas). Existen muchas constantes predefinidas en PHP, entre las cuales encontramos las llamadas constantes mágicas.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

69

Unidad 2 :PHP

Constantes mágicas Existen unas constantes llamadas mágicas que son accesibles para cualquier script PHP, estas nos proporcionan información sobre el script, que depende del lugar en el que las usemos: __FILE__ : Contiene el nombre y la ruta del archivo que se está ejecutando. __LINE__ : Contiene la línea que se está ejecutando en ese momento exacto del fichero actual __FUNCTION__ :Añadida en la versión 4.3 de PHP, contiene el nombre de la función que se está ejecutando actualmente __CLASS__ : Añadida también en la versión 4.3, contiene el nombre de la clase que se ejecuta actualmente __METHOD__ - Añadida el la versión 5, contiene el nombre del método actual

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

70

Unidad 2 :PHP

Ejemplo de uso de estas constantes:
<?php echo "Ejecutando la línea ".__LINE__; ?> Nótese que estas constantes tienen dos barras de subrayado delante y dos detrás del nombre cada una.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

71

Unidad 2 :PHP

Tipos de datos en PHP PHP es un lenguaje de los denominados de tipo dinámico, lo que significa que una misma variable puede tener tipos ( numero, texto, vector... ) diferentes en distintos momentos. Por esta razón, no soporta la definición de tipos en la declaración de variables sino que el tipo de la variable viene determinado por el contexto en el que se encuentra. Ejemplo: <?php // La variable $var1 es un numero ( entero ) $var1 = 3; // La variable $var2 es un texto ( cadena de caracteres ) $var2 = "9 años"; //Si juntamos las variables $var1 y $var2, obtenemos un texto $var3 = $var1 . $var2; // "39 años" // Si en cambio las sumamos obtendremos un número $var3 = $var1 + $var2; // 12 ( 3 + 9) ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

72

Unidad 2 :PHP

Se puede forzar un tipo determinado, con la función settype o ente paréntesis delante de la variable uno de los siguientes tipos de datos: 1) boolean – Lógico: Puede contener 2 valores True o False. Al usarlo cómo entero su valor puede ser 1 ( True ) o 0 ( False ).
Un ejemplo típico de lógico es el resultado de una comparación: <?php $var1= 1 != 2 ; // $var1 es true ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

73

Unidad 2 :PHP 2) integer – Entero: Puede contener enteros ( sin decimales ) positivos y negativos, se pueden escribir en notación octal, decimal y hexadécimal: <?php $var1 = 027; // Notación octal ( 23 en decimal ) $var1 = 23; // Notación decimal $var1 = 0x17; // Notación hexadecimal ( 23 en decimal ) ?>
Si se utiliza cómo lógico su valor es False si es 0 o True en cualquier otro caso.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

74

Unidad 2 :PHP 3) float – Decimal: En versiones anteriores a la 4.2.0 de PHP se les llamaba double, contienen números decimales positivos o negativos. Si lo usamos cómo entero, su valor se redondea a la baja ( truncamiento ). 4) string - Cadena de caracteres: Es una lista de caracteres ( letras, cifras, signos... ) en un orden determinado, por ejemplo "hola mundo". Los representamos delimitados con comillas dobles o simples. No podemos utilizar el mismo tipo de comillas en el interior de una cadena que para delimitarla, en este caso le tendremos que poner un \ delante para diferenciarla del final de la cadena, y se puede confundir, \\ en lugar de \:
<?php // Así si $var1 = "pongo \ delante de las \" pero no de las ' "; $var1 = 'pongo \ delante de las \' pero no de las " '; $var1 = "pongo \\"; // Así no $var1 = "pongo " donde quiero"; // Mal ! " $var1 = "pongo \"; // Mal ! \ ?>
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

75

Unidad 2 :PHP
Las cadenas con comillas dobles, a parte de \" y \' tienen otros caracteres especiales: \n - Salto de línea (en código, no en la presentación de la pág.) \r - Retorno de carro (Enter) \t - Tabulador \$ - Peso

La existencia de un carácter especial \$ para peso, es porque en el interior de comillas dobles podemos usar variables. Si vamos a acceder a elementos de un vector, lo agruparemos con { y } detrás del $:
<?php // Así si $var1 = "php"; $var2 = Array ( "php","html" ); // [0]=>php, [1]=>html $var3 = "aprendo $var1"; // aprendo php $var3 = "aprendo {$var2[0]}"; // aprendo php // Así no $var3 = "aprendo $var2[0]"; // aprendo Array ?>
2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

76

Unidad 2 :PHP Si mezclamos una cadena con números ( enteros o decimales) se utilizará cómo número hasta el primer carácter incorrecto. Si lo mezclamos con lógicos será False cuando la cadena está vacía.
5) null – vacío: No tiene valor, se comporta como cadena vacía, cero o false; 6) array – vector: Se verán a continuación como parte de un nuevo tópico.

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

77

Unidad 2 :PHP

Vectores en PHP Los vectores o array ( a veces mal llamados arreglos ) son listas ordenadas de elementos. Para definir un vector en PHP utilizamos la función array:
<?php $vector = array ( "elemento 1", "elemento 2" ); ?> Una vez definido el vector, podemos acceder a sus elementos, sus elementos estarán identificados por un número ( empezando por 0 ) o una clave que se puede definir así: <?php $vector = array ( "clave 1" => "elemento 1", "clave 2" => "el emento 2" ); ?>

2007, Claudio Hormazábal

Lenguajes de Programación

claudio@hormazabal.cl

78

Sign up to vote on this title
UsefulNot useful