Sie sind auf Seite 1von 50

UNIVERSIDAD NACIONAL PEDRO RUIZ GALLO

Facultad de Ingeniería Civil, Sistemas y Arquitectura

Escuela Profesional de Ingeniería de Sistemas

LENGUAJE DE PROGRAMACIÓN

ALUMNO:

Leonardo García Walter

CURSO:

Taller de computación informática básica

DOCENTE:

Olavarría Paz Jesús

Lambayeque, junio del 2018

1
INTRODUCCIÓN
Un lenguaje de programación es el idioma utilizado para controlar el comportamiento de una
máquina, particularmente una computadora. Consiste en un conjunto de símbolos y reglas
sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones.

En la actualidad los lenguajes de programación están escritos para ser comprensibles por el ser
humano, a este código se le llama código fuente, pero no es comprendido por la máquina ya que
esta solo maneja el lenguaje binario.

Se ha visto hasta ahora que los lenguajes de programación son un simbolismo, que nos permite
expresar en operaciones elementales (instrucciones) la solución a nuestro problema y se basan
en un sistema de instrucciones previamente establecidas que indican al ordenador lo que debe
realizar. Existen muchos y muy variados, y evolucionan constantemente, tanto en potencia como
en facilidad de uso. La mayoría está escrita en inglés, aunque cada vez son más visuales e
intuitivos.

2
EVOLUCIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

1. HISTORIA
Los primeros lenguajes de programación surgieron de la idea de Charles Babbage, la cual se le
ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de
Cambridge e inventor inglés, que al principio del siglo XIX predijo muchas de las teorías en que se
basan los actuales ordenadores. Consistía en lo que él denominaba la maquina analítica, pero que
por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada
Lovedby, la cual es considerada como la primera programadora de la historia, pues realizo
programas para aquélla supuesta máquina de Babbage, en tarjetas perforadas. Como la maquina
no llego nunca a construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse,
pero si suponen un punto de partida de la programación, sobre todo si observamos que en cuanto
se empezó a programar, los programadores utilizaron las técnicas diseñadas por Charles Babbage,
y Ada, que consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de
ello, Ada ha permanecido como la primera programadora de la historia. Se dice por tanto que
estos dos genios de antaño, se adelantaron un siglo a su época, lo cual describe la inteligencia de
la que se hallaban dotados.

En 1823 el gobierno británico lo apoyo para crear el proyecto de una máquina de diferencias, un
dispositivo mecánico para efectuar sumas repetidas. Pero Babbage se dedicó al proyecto de la
máquina analítica, abandonando la máquina de diferencias, que se pudiera programar con
tarjetas perforadas, gracias a la creación de Charles Jacquard (francés). Este hombre era un
fabricante de tejidos y había creado un telar que podía reproducir automáticamente patrones de
tejidos, leyendo la información codificada en patrones de agujeros perforados en tarjetas de
papel rígido. Entonces Babbage intento crear la máquina que se pudiera programar con tarjetas
perforadas para efectuar cualquier cálculo con una precisión de 20 dígitos. Pero la tecnología de
la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babbage no llegaron a
materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores actuales
responden a un esquema análogo al de la máquina analítica. En su diseño, la máquina constaba
de cinco unidades básicas:

 Unidad de entrada, para introducir datos e instrucciones.


 Memoria, donde se almacenaban datos y resultados intermedios.
 Unidad de control, para regular la secuencia de ejecución de las operaciones.

3
 Unidad Aritmético-Lógica, que efectúa las operaciones.
 Unidad de salida, encargada de comunicar al exterior los resultados.

Charles Babbage, conocido como el "padre de la informática" no pudo completar en aquella


época la construcción del computador que había soñado, dado que faltaba algo fundamental: la
electrónica. El camino señalado de Babbage, no fue nunca abandonado y siguiéndolo, se
construyeron los primeros computadores.

Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And
Calculator), su programación se basaba en componentes físicos, o sea, que se programaba,
cambiando directamente el Hardware de la máquina, exactamente lo que sé hacia era cambiar
cables de sitio para conseguir así la programación de la máquina. La entrada y salida de datos se
realizaba mediante tarjetas perforadas.

2. DEFINICIÓN
Según la definición teórica, como lenguaje se entiende a un sistema de comunicación que posee
una determinada estructura, contenido y uso. La programación es, en el vocabulario propio de la
informática, el procedimiento de escritura del código fuente de un software. De esta manera,
puede decirse que la programación le indica al programa informático qué acción tiene que llevar
a cabo y cuál es el modo de concretarla.

Un lenguaje de programación consiste en todos los símbolos, caracteres y reglas de uso que
permiten a las personas "comunicarse" con las computadoras. Existen varios cientos de lenguajes
y dialectos de programación diferentes. Algunos se crean para una aplicación especial, mientras
que otros son herramientas de uso general más flexibles que son apropiadas para muchos tipos
de aplicaciones. En todo caso los lenguajes de programación deben tener instrucciones que
pertenecen a las categorías ya familiares de entrada/salida, cálculo/manipulación de textos,
lógica/comparación y almacenamiento / recuperación.

Cabe diferenciar entre el lenguaje de programación y el lenguaje informático. Existen lenguajes


informáticos que no son, en realidad, lenguajes de programación, como es el caso del HTML (un
lenguaje de marcas).

El lenguaje de programación tiene la capacidad de especificar, de forma precisa, cuáles son los
datos que debe trabajar un equipo informático, de qué modo deben ser conservados o
transferidos dichos datos y qué instrucciones debe poner en marcha la computadora ante ciertas
circunstancias.

4
Existen diversos lenguajes de programación, lo que ha llevado al desarrollo de intérpretes
(programas que adaptan las instrucciones encontradas en otro lenguaje) y compiladores
(aquellos programas que traducen de un lenguaje a otro).

3. CARACTERÍSTICAS
Existen muchos lenguajes de programación, que responden a necesidades específicas y que
poseen características y funcionalidades específicas. Por lo tanto, la elección del lenguaje de
programación depende, sobre todo, de los requerimientos a satisfacer, así como de los recursos
existentes para la comprensión y la práctica del lenguaje. Criterios de selección de un lenguaje de
programación.

1) Utilidad: Fácil de aprender, fácil de usar por un programador experimentado


2) Rendimiento: Velocidad de ejecución de los programas, velocidad de ejecución del
compilador.
3) Portabilidad y flexibilidad: La posibilidad de desarrollar el lenguaje y su implementación,
existencia de bibliotecas de funciones, clases, etc.
4) Continuidad: Continuidad del fabricante, continuidad del lenguaje, continuidad de
implementación, existencia de una norma internacional para definir el lenguaje,
conformidad de implementación con respecto a la norma, existencia de varios
fabricantes para un mismo lenguaje.
 Basic y Pascal que son herramientas de programación, idóneas para la inicialización de
los programadores.
 C y C++ que sirven para la programación de sistemas.
 Cobol, que es una herramienta de programación orientada hacia sistemas de gestión
empresarial como nóminas y contabilidad.
 Fortran, que son lenguajes específicos para cálculos matemáticos y o numéricos.
 Herramientas de programación para ambientes gráficos como son Visual Basic, Delphi y
Visual C.
 HTML y Java, que permiten la creación de páginas WEB para Internet.

5
4. HTML
El World Wide Web (WWW) es un sistema que contiene una cantidad de información casi infinita.
Pero esta información debe estar ordenada de alguna forma de manera que sea posible encontrar
lo que se busca. La unidad básica donde está almacenada esta información son las páginas Web

HTML se compone por una serie de comandos, que son interpretados por el visualizador o
programa que utilizamos para navegar por el www. El visualizador es el encargado de ejecutar
todas las órdenes contenidas con el código HTML.

Características del lenguaje HTML

• El Web tenía que ser distribuido: La información repartida en páginas no muy grande enlazadas
entre sí.

• El Web tenía que ser hipertexto y debía ser fácil navegar por él: Las páginas no son elementos
aislados, sino que están unidas a otras mediante los links o enlaces hipertexto.

• Tenía que ser compatible con todo tipo de ordenadores (PC’s, Macintosh, estaciones de
trabajo...) y con todo tipo de sistemas operativos (Windows, MS-DOS, UNIX, MACOS...).

• Debía ser dinámico: el proceso de cambiar y actualizar la información debía ser ágil y rápido.

¿Qué se necesita para crear una página web?

Una de las características de este lenguaje más importantes para el programador es que no es
necesario ningún programa especial para crear una página Web. Gracias a ello se ha conseguido
que se puedan crear páginas con cualquier ordenador y sistema operativo.

El código HTML no es más que texto y por tanto lo único necesario para escribirlo es

✓ Un editor de texto. - Vale cualquiera siempre y cuando no altere el texto. El más usado es como
por ejemplo el bloc de notas. Es recomendable usar el Bloc de notas que viene con Windows, u
otro editor de textos sencillo. Hay que tener cuidado con algunos editores más complejos como
Wordpad o Microsoft Word, pues colocan su propio código especial al guardar las páginas y HTML
es únicamente texto plano, con lo que podremos tener problemas.

✓ Un visualizador o navegador del web. - Netscape, Microsoft explore, Mosaic, Opera, etc, sirve
para interpretar los códigos.

Algunas razones para usar HTML

6
Todos estos editores HTML tipos pueden ser de gran ayuda y tienen sus ventajas e
inconvenientes, pero la experiencia demuestra que conocer el lenguaje HTML ofrece bastantes
ventajas:

• Seremos capaces de aprovechar todas las características de este lenguaje, incluso las más
nuevas.

• Aunque se use inicialmente un editor WYSWYG tendremos los conocimientos suficientes para
modificar posteriormente el código que éste ha creado. Así se pueden corregir errores o incluir
etiquetas no soportadas por el editor.

• No dependeremos de la disponibilidad de una herramienta concreta para poder crear páginas


web. Con un simple editor de textos será suficiente. Estructura de un documento HTML Un
documento HTML no es más que el texto definido entre las marcas

<HTML>

.…….

</HTML>

Un documento HTML siempre se componte de las siguientes dos partes:

<HTML>

<HEAD> Cabecera del documento

</HEAD>

<BODY> Contenido del documento

</BODY>

</HTML>

✓ Cabecera: Se inició mediante el comando <HEAD> y se termina con </HEAD>.Dentro de la


cabecera hay información del documento, que no se ve en la pantalla principal, y que precisa las
características del documento, principalmente el título del documento. El título del documento
se declara entre las etiquetas <TITLE> y </TITLE>.El título debe ser breve y descriptivo de su
contenido, pues será lo que vean los demás cuando añadan nuestra página a su bookmark (o libro
de direcciones favoritas)

7
✓ Cuerpo: Se inicia mediante el comando <BODY> y se termina con el comando </BODY>. Este
comando acepta numerosos modificadores. Dentro del cuerpo del documento se incluye
cualquier carácter imprimible.

En la cabecera de la página se introduce toda aquella información que afectará a toda la página.
En un principio esta información se limitará al título. Este título se indicará con la etiqueta “title”
usando la siguiente sintaxis:

<html>

<head>

<title> Mi primera página WEB </title>

</head>

</html>

Los encabezados

Usualmente un documento tiene, además de texto llano, una serie de encabezados o titulares.
Para ello el lenguaje HTML posee una serie de etiquetas que permiten disponer de titulares de
hasta 6 niveles de importancia.

Estas etiquetas son: <h1>, <h2>, <h3>, <h4>, <h5> y <H6>. La letra "h" al principio del nombre de
estas etiquetas proviene de la abreviatura de la palabra inglesa heading que significa encabezado.
Siguiendo a la hache hay un número del uno al seis que indica la importancia del titular siendo el
más importante el uno y el menos importante el seis.

Saltos de línea

En ocasiones puede ser conveniente introducir un punto y aparte cuando estamos escribiendo
un texto. En HTML para hacer esto puede usarse la etiqueta <br>. Cuando el navegador se
encuentra con esta etiqueta provoca un salto de línea y sigue mostrando el contenido de la
página. Veamos un ejemplo:

Estaba internándose en lo desconocido.

<br>

Durante todo el trayecto hasta Woodfield no dejó de pensar en los aspectos económicos, con el
temor de estar cometiendo...

8
En este texto podemos observar cómo tras el primer punto era necesario un cambio de línea, por
lo que hemos usado <br>.

Espacio entre líneas

Para introducir un espacio vertical entre líneas debe usarse la etiqueta <br>. Si se ponen varias
seguidas no se mostrará más espacio, pero esto puede solucionarse insertando entre las
etiquetas la cadena " ". Por ejemplo, para insertar tres líneas en blanco puede usarse:

<br> &nbsp;

<br> &nbsp;

<br> &nbsp;

El atributo ’align’ en la etiqueta <p> permite especificar la alineación del párrafo. Puede tener
tres valores:"center", "left" y "right", para obtener un párrafo centrado, alineado a la izquierda o
alineado a la derecha respectivamente. En la figura 2.4 se muestra el párrafo del código anterior
con los tres tipos de alineación.

Líneas horizontales para separar párrafos

Si lo que se necesita es separar dos secciones diferentes de una página, ya sea texto o no, puede
emplearse una nueva etiqueta: <hr>. Su nombre proviene del inglés Horizontal Rule (línea
horizontal). Esta etiqueta está formada por una única instrucción y provoca que el navegador
inserte una línea horizontal que separaba los dos párrafos que se estaban comparando. Existen
cuatro atributos que permiten modificar su apariencia. Estos son:

• ’align’: Permite cambiar la alineación de la línea. Puede tomar tres valores:"left", "center" y
"right" para conseguir alineación a la izquierda, centro y derecha respectivamente.

• ’noshade’: ’noshade’, que en inglés significa sin sombra, existe porque algunos navegadores
gráficos como Navigator™ o Explorer™ muestran las líneas horizontales con un efecto
tridimensional con sombra. Al incluir este atributo se elimina este efecto de manera que el
navegador sólo mostrará una línea horizontal negra.

• ’size’: Con este atributo se puede controlar el grosor de la línea. Como valor de este atributo se
debe especificar el valor deseado en pixeles (puntos de pantalla).

• ’width’: Este atributo permite especificar el ancho de la línea. El valor puede ser dado de una
manera absoluta, especificando el ancho en pixeles (por ejemplo, width=100) o de manera
relativa respecto al ancho de la ventana del navegador usando porcentajes (por ejemplo,

9
width="90%"). Es más que recomendable usar este último sistema de que obtengamos un
resultado apropiado independientemente del tamaño que cada usuario quiera dar a la ventana
de su navegador.

Estos atributos pueden ser usados conjuntamente para combinar sus efectos

La etiqueta <blockquote>... </blockquote>

Otra etiqueta relacionada con el formato de párrafos en HTML es <blockquote>, que consta de
una instrucción de inicio y una de fin y que indica que el párrafo que encierra es un texto
parafraseado. Al usar esta etiqueta el navegador mostrará el texto en un nuevo párrafo con
márgenes a la izquierda y a la derecha

Cómo insertar imágenes en una página.

En el cuarto capítulo de la obra trataremos con detalle el mundo de las imágenes en el WWW y
aprenderemos todas las posibilidades gráficas que ofrece. En este capítulo aprenderemos, como
introducción, a insertar imágenes para dar más vida a nuestra página.

La etiqueta usada para insertar imágenes es: <img >. Esta etiqueta está compuesta por una única
instrucción y por tanto </img> no existe y su uso está prohibido.

10
Podemos insertar una imagen en medio de una frase como si fuese una palabra más de ella y será
mostrada por el navegador a continuación del texto (o cualquier otro elemento anterior)

Pulsa en la flecha <img src="flecha1.gif"> para pasar a la página siguiente.

Cómo crear enlaces hipertexto.

Una vez visto como introducir distintos tipos de texto y párrafos, así como insertar imágenes en
una página, lo único que queda por aprender para ser capaces de crear una página Web bastante
completa son los enlaces hipertexto. Con ellos se pueden activar frases o palabras de la página
para que al pulsar sobre ellas se salte a cualquier otra página de Internet que decidamos.

Estos enlaces hipertexto (en inglés links) no son más que unas zonas (habitualmente palabras o
frases) especiales de nuestro texto que ofrecen la posibilidad de pulsar sobre ellas para ir a otras
páginas.

Los enlaces pueden clasificarse en dos tipos, los internos o locales y los externos:

- Los enlaces internos son aquellos que enlazan las páginas que componen un mismo sitio web
(web site).

Todas estas páginas estarán (generalmente) en el mismo servidor WWW, y por tanto estarán
también en el mismo ordenador. Por esta razón sólo será necesario indicar en nuestro código el
nombre del archivo donde está la página que queremos enlazar y el directorio en el que se
encuentra. Un ejemplo dirección de un enlace interno es:

/hobbies/index.html

- Los enlaces externos permiten saltar desde una página hasta otra puede estar en cualquier otro
lugar del mundo en otro servidor web. Al crear estos enlaces es necesario especificar la dirección
completa de Internet (la URL) de la página que queremos enlazar. Por ejemplo:

http://www.otroservidor.com/hobbies/index.html

11
Por último, cabe resaltar que, aunque la mayoría de las veces los links se usan para enlazar una
página con otras también pueden usarse con imágenes, sonido, vídeo y prácticamente cualquier
tipo de fichero.

La etiqueta <a>... </a>

Esta etiqueta, de nombre sencillo, es la que va a permitir incluir en las páginas enlaces hipertexto.
Su atributo ’href’ permite indicar cuál es la página a la que debe saltar el usuario al pulsar sobre
el texto adecuado. El texto del enlace será aquel que se introduzca entre la instrucción de inicio
y la instrucción de final de la etiqueta y debe ser resaltado por el navegador para que el usuario
sepa que puede pulsar en él. La estructura de un link es:

<a href="dirección_URL">

Texto que será sensible (hipertexto)

</a>

Los navegadores gráficos como Netscape Navigator y Microsoft Internet Explorer resaltan este
texto mostrándolo de un color diferente y subrayándolo, además el cursor cambiará al situarlo
sobre el texto. Los navegadores que funcionan en modo texto como Lynx™ resaltan los enlaces
hipertexto cambiando el color del texto y de su fondo.

Veamos un ejemplo sencillo del uso de enlaces. Se ha creado un sitio web personal con 2 páginas.
La página principal se encuentra en el archivo index.html y se quiere que en ella haya un enlace
a otra página donde se han escrito sobre los hobbies del creador del sitio web y que se encuentra
en el archivo hobbies.html. El enlace podría ser algo así:

También puedes conocer mis <a href="hobbies.html">hobbies</a>

5. Java
Java es un lenguaje de programación creado por Sun Microsystems, (empresa que
posteriormente fue comprada por Oracle para poder funcionar en distintos tipos de
procesadores. Su sintaxis es muy parecida a la de C o C++, e incorpora como propias algunas
características que en otros lenguajes son extensiones: gestión de hilos, ejecución remota, etc.

El código Java, una vez compilado, puede llevarse sin modificación alguna sobre cualquier
máquina, y ejecutarlo. Esto se debe a que el código se ejecuta sobre una máquina hipotética o
virtual, la Java Virtual Machine, que se encarga de interpretar el código (ficheros compilados

12
.class) y convertirlo a código particular de la CPU que se esté utilizando (siempre que se soporte
dicha máquina virtual).

Características de java

Es un lenguaje sencillo de aprender. Su sintaxis es la de C++ “simplificada”. Los creadores de Java


partieron de la sintaxis de C++ y trataron de eliminar de este todo lo que resultase complicado o
fuente de errores en este lenguaje.

Java es un lenguaje orientado a objetos, aunque no de los denominados puros; en Java todos los
tipos, a excepción de los tipos fundamentales de variables (int, char, long...) son clases. Sin
embargo, en los lenguajes orientados a objetos puros incluso estos tipos fundamentales son
clases, por ejemplo, en Smalltalk.

El código generado por el compilador Java es independiente de la arquitectura: podría ejecutarse


en un entorno UNIX, Mac o Windows. El motivo de esto es que el que realmente ejecuta el código
generado por el compilador no es el procesador del ordenador directamente, sino que este se
ejecuta mediante una máquina virtual. Esto permite que los Applets de una web pueda
ejecutarlos cualquier máquina que se conecte a ella independientemente de qué sistema
operativo emplee (siempre y cuando el ordenador en cuestión tenga instalada una máquina
virtual de Java).

 Lenguaje totalmente orientado a Objetos. Todos los conceptos en los que se apoya esta
técnica, encapsulación, herencia, polimorfismo, etc., están presentes en Java.

 Disponibilidad de un amplio conjunto de bibliotecas. Como ya se mencionó


anteriormente, Java es algo más que un lenguaje. La programación de aplicaciones con
Java se basa no solo en el empleo del juego de instrucciones que componen el lenguaje,
sino, fundamentalmente, en la posibilidad de utilizar el amplísimo conjunto de clases que
Sun pone a disposición del programador y con las cuales es posible realizar prácticamente
cualquier tipo de aplicación.

 Lenguaje simple. Java posee una curva de aprendizaje muy rápida. Resulta relativamente
sencillo escribir applets interesantes desde el principio. Todos aquellos familiarizados con
C++ encontrarán que Java es más sencillo, ya que se han eliminado ciertas características,
como los punteros. Debido a su semejanza con C y C++, y dado que la mayoría de la gente
los conoce, aunque sea de forma elemental, resulta muy fácil aprender Java. Los

13
programadores experimentados en C++ pueden migrar muy rápidamente a Java y ser
productivos en poco tiempo.

 Distribuido. Java proporciona una colección de clases para su uso en aplicaciones de red,
que permiten abrir sockets y establecer y aceptar conexiones con servidores o clientes
remotos, facilitando así la creación de aplicaciones distribuidas.

 Interpretado y compilado a la vez. Java es compilado, en la medida en que su código


fuente se transforma en una especie de código máquina, los bytecodes, semejantes a las
instrucciones de ensamblador. Por otra parte, es interpretado, ya que los bytecodes se
pueden ejecutar directamente sobre cualquier máquina a la cual se hayan portado el
intérprete y el sistema de ejecución en tiempo real (run-time).

 Robusto. Java fue diseñado para crear software altamente fiable. Para ello proporciona
numerosas comprobaciones en compilación y en tiempo de ejecución. Sus características
de memoria liberan a los programadores de una familia entera de errores (la aritmética
de punteros), ya que se ha prescindido por completo de los punteros, y la recolección de
basura elimina la necesidad de liberación explícita de memoria.

 Seguro (?). Dada la naturaleza distribuida de Java, donde las applets se bajan desde
cualquier punto de la Red, la seguridad se impuso como una necesidad de vital
importancia. A nadie le gustaría ejecutar en su ordenador programas con acceso total a
su sistema, procedentes de fuentes desconocidas. Así que se implementaron barreras de
seguridad en el lenguaje y en el sistema de ejecución en tiempo real.

 Indiferente a la arquitectura. Java está diseñado para soportar aplicaciones que serán
ejecutadas en los más variados entornos de red, desde Unix a Windows Nt, pasando por
Mac y estaciones de trabajo, sobre arquitecturas distintas y con sistemas operativos
diversos. Para acomodar requisitos de ejecución tan diversos o variopintos, el compilador
de Java genera bytecodes: un formato intermedio indiferente a la arquitectura diseñado
para transportar el código eficientemente a múltiples plataformas hardware y software.
El resto de problemas los soluciona el intérprete de Java.

 Portable. La indiferencia a la arquitectura representa sólo una parte de su portabilidad.


Además, Java especifica los tamaños de sus tipos de datos básicos y el comportamiento
de sus operadores aritméticos, de manera que los programas son iguales en todas las
plataformas. Estas dos últimas características se conocen como la Máquina Virtual Java
(JVM).

14
El entorno de desarrollo de java

Existen distintos programas comerciales que permiten desarrollar código Java. La compañía Sun,
creadora de Java, distribuye gratuitamente el Java(tm) Development Kit (JDK). Se trata de un
conjunto de programas y librerías que permiten desarrollar, compilar y ejecutar programas en
Java. Incorpora además la posibilidad de ejecutar parcialmente el programa, deteniendo la
ejecución en el punto deseado y estudiando en cada momento el valor de cada una de las
variables (con el denominado Debugger). Cualquier programador con un mínimo de experiencia
sabe que una parte muy importante (muchas veces la mayor parte) del tiempo destinado a la
elaboración de un programa se destina a la detección y corrección de errores. Existe también una
versión reducida del JDK, denominada JRE (Java Runtime Environment) destinada únicamente a
ejecutar código Java (no permite compilar).

Los IDEs (Integrated Development Environment), tal y como su nombre indica, son entornos de
desarrollo integrados. En un mismo programa es posible escribir el código Java, compilarlo y
ejecutarlo sin tener que cambiar de aplicación. Algunos incluyen una herramienta para realizar
Debug gráficamente, frente a la versión que incorpora el JDK basada en la utilización de una
consola (denominada habitualmente ventana de comandos de MS-DOS, en Windows NT/95/98)
bastante difícil y pesada de utilizar.

El compilador de Java

se trata de una de las herramientas de desarrollo incluidas en el JDK. Realiza un análisis de sintaxis
del código escrito en los ficheros fuente de Java (con extensión *.java). Si no encuentra errores
en el código genera los ficheros compilados (con extensión *.class). En otro caso muestra la línea
o líneas erróneas. En el JDK de Sun dicho compilador se llama javac.exe. Tiene numerosas
opciones, algunas de las cuales varían de una versión a otra. Se aconseja consultar la
documentación de la versión del JDK utilizada para obtener una información detallada de las
distintas posibilidades.

El java virtual machine

Tal y como se ha comentado al comienzo del capítulo, la existencia de distintos tipos de


procesadores y ordenadores llevó a los ingenieros de Sun a la conclusión de que era muy
importante conseguir un software que no dependiera del tipo de procesador utilizado. Se planteó
la necesidad de conseguir un código capaz de ejecutarse en cualquier tipo de máquina. Una vez
compilado no debería ser necesaria ninguna modificación por el hecho de cambiar de procesador

15
o de ejecutarlo en otra máquina. La clave consistió en desarrollar un código “neutro” el cual
estuviera preparado para ser ejecutado sobre una “máquina hipotética o virtual”, denominada
Java Virtual Machine (JVM). Es esta JVM quien interpreta este código neutro convirtiéndolo a
código particular de la CPU utilizada. Se evita tener que realizar un programa diferente para cada
CPU o plataforma.

La JVM es el intérprete de Java. Ejecuta los “bytecodes” (ficheros compilados con extensión

*.class) creados por el compilador de Java (javac.exe). Tiene numerosas opciones entre las que
destaca la posibilidad de utilizar el denominado JIT (Just-In-Time Compiler), que puede mejorar
entre 10 y 20 veces la velocidad de ejecución de un programa.

Las variables PATH y CLASSPATH

El desarrollo y ejecución de aplicaciones en Java exige que las herramientas para compilar
(javac.exe) y ejecutar (java.exe) se encuentren accesibles. El ordenador, desde una ventana de
comandos de MS-DOS, sólo es capaz de ejecutar los programas que se encuentran en los
directorios indicados en la variable PATH del ordenador (o en el directorio activo). Si se desea
compilar o ejecutar código en Java, el directorio donde se encuentran estos programas (java.exe
y javac.exe) deberá encontrarse en el PATH. Tecleando PATH en una ventana de comandos de
MS-DOS se muestran los nombres de directorios incluidos en dicha variable de entorno.

Java utiliza además una nueva variable de entorno denominada CLASSPATH, la cual determina
dónde buscar tanto las clases o librerías de Java (el API de Java) como otras clases de usuario. A
partir de la versión 1.1.4 del JDK no es necesario indicar esta variable, salvo que se desee añadir
conjuntos de clases de usuario que no vengan con dicho JDK. La variable CLASSPATH puede incluir
la ruta de directorios o ficheros *.zip o *.jar en los que se encuentren los ficheros *.class. En el
caso de los ficheros *.zip hay que observar que los ficheros en él incluidos

no deben estar comprimidos. En el caso de archivos *.jar existe una herramienta (jar.exe),
incorporada en el JDK, que permite generar estos ficheros a partir de los archivos compilados

*.class. Los ficheros *.jar son archivos comprimidos y por lo tanto ocupan menos espacio que los
archivos *.class por separado o que el fichero *.zip equivalente.

Una forma general de indicar estas dos variables es crear un fichero batch de MS-DOS (*.bat)
donde se indiquen los valores de dichas variables. Cada vez que se abra una ventana de MS-DOS

16
será necesario ejecutar este fichero *.bat para asignar adecuadamente estos valores. Un posible
fichero llamado jdk117.bat, podría ser como sigue:

set JAVAPATH=C:\jdk1.1.7

set PATH=.; %JAVAPATH%\bin; %PATH%

set CLASSPATH=.\; %JAVAPATH%\libo\classes.zip; %CLASSPATH%

lo cual sería válido en el caso de que el JDK estuviera situado en el directorio C:\jdk1.1.7.

Si no se desea tener que ejecutar este fichero cada vez que se abre una consola de MS-DOS es
necesario indicar estos cambios de forma “permanente”. La forma de hacerlo difiere entre
Windows 95/98 y Windows NT. En Windows 95/98 es necesario modificar el fichero Autoexec.bat
situado en C:\, añadiendo las líneas antes mencionadas. Una vez desarrancado el ordenador
estarán presentes en cualquier consola de MS-DOS que se cree. La modificación al fichero
Autoexec.bat en Windows 95/98 será la siguiente:

set JAVAPATH=C:\jdk1.1.7

donde en la tercera línea debe incluir la ruta de los ficheros donde están las clases de Java. En el
caso de utilizar Windows NT se añadirá la variable PATH en el cuadro de diálogo que se abre con
Start -> Settings -> Control Panel -> System -> Environment -> User Variables Nombre Usuario.

También es posible utilizar la opción –classpath en el momento de llamar al compilador javac.exe


o al intérprete java.exe. En este caso los ficheros *.jar deben ponerse con el nombre completo
en el CLASSPATH: no basta poner el PATH o directorio en el que se encuentra. Por ejemplo, si se
desea compilar y ejecutar el fichero ContieneMain.java, y éste necesitara la librería de clases
G:\MyProject\OtherClasses.jar, además de las incluidas en el CLASSPATH, la forma de compilar y
ejecutar sería:

java -classpath.\; G:\MyProject\OtherClasses.jar ContieneMain

Se aconseja consultar la ayuda correspondiente a la versión que se esté utilizando, debido a que
existen pequeñas variaciones entre las distintas versiones del JDK.

Cuando un fichero filename.java se compila y en ese directorio existe ya un fichero filename.


class, se comparan las fechas de los dos ficheros. Si el fichero filename.java es más antiguo que
el filename.

17
Ejemplos

A continuación, se muestra el programa principal, contenido en el fichero Ejemplo1.java. En


realidad, este programa principal lo único que hace es utilizar la clase Geometría y sus clases
derivadas. Es pues un programa puramente “usuario”, a pesar de lo cual hay que definirlo dentro
de una clase, como todos los programas en Java.

1. // fichero Ejemplo1.java
2. import java. útil. Vector;
3. import java.awt. *;

4. class Ejemplo1 {
5. public static void main (String arg[]) throws InterruptedException 6. {
6. System.out.println("Comienza main () ...");
7. Circulo c = new Circulo (2.0, 2.0, 4.0);
8. System.out.println("Radio = " + c. r + " unidades.");
9. System.out.println("Centro = (" + c. x + "," + c. y + ") unidades.");
10. Circulo c1 = new Circulo (1.0, 1.0, 2.0);
11. Circulo c2 = new Circulo (0.0, 0.0, 3.0);
12. c = c1. el Mayor(c2);
13. System.out.println("El mayor radio es " + c. r + ".");
14. c = new Circulo (); // c. r = 0.0;
15. c = Circulo. El Mayor (c1, c2);
16. System.out.println("El mayor radio es " + c. r + ".");

17. VentanaCerrable ventana =


18. new VentanaCerrable ("Ventana abierta al mundo...");
19. ArrayList v = new ArrayList();

20. Circulo Grafico cg1 = new Circulo Grafico (200, 200, 100, Color. Red);
21. Circulo Grafico cg2 = new Circulo Grafico (300, 200, 100, Color. Lúe);
22. RectanguloGrafico r g = new
23. RectanguloGrafico (50, 50, 450, 350, Color. Green);

18
24. v. add (cg1);
25. v.add(cg2)

La sentencia 1 es simplemente un comentario que contiene el nombre del fichero. El compilador


de Java ignora todo lo que va desde los caracteres // hasta el final de la línea.

Las sentencias 2 y 3 “importan” clases de los packages de Java, esto es, hacen posible acceder a
dichas clases utilizando nombres cortos. Por ejemplo, se puede acceder a la clase Vector
simplemente con el nombre Vector en lugar de con el nombre completo java.

Variables

Una variable es un nombre que contiene un valor que puede cambiar a lo largo del programa. De
acuerdo con el tipo de información que contienen, en Java hay dos tipos principales de variables:

1. Variables de tipos primitivos. Están definidas mediante un valor único que puede ser
entero, de punto flotante, carácter o booleano. Java permite distinta precisión y
distintos rangos de valores para estos tipos de variables (char, byte, short, int, long,
float, double, booleana). Ejemplos de variables de tipos primitivos podrían ser: 123,
3456754, 3.1415, 12e-09, 'A', True, etc.

2. Variables referencia. Las variables referencia son referencias o nombres de una


información más compleja: arrays u objetos de una determinada clase.

Desde el punto de vista del papel o misión en el programa, las variables pueden ser:

1. Variables miembros de una clase: Se definen en una clase, fuera de cualquier


método; pueden ser tipos primitivos o referencias.

2. Variables locales: Se definen dentro de un método o más en general dentro de


cualquier bloque entre llaves {}. Se crean en el interior del bloque y se destruyen al
finalizar dicho bloque. Pueden ser también tipos primitivos o referencias.

Nombres de variables

Los nombres de variables en Java se pueden crear con mucha libertad. Pueden ser cualquier
conjunto de caracteres numéricos y alfanuméricos, sin algunos caracteres especiales utilizados
por Java como operadores o separadores (+-*/ etc.).

19
Existe una serie de palabras reservadas las cuales tienen un significado especial para Java y por lo
tanto no se pueden utilizar como nombres de variables. Dichas palabras son:

abstract boolean Break Byte case catch

char Class const* continue default do

double Else Extends Final finally float

For goto* If implements import instanceof

Int interface Long native new null

package private Protected public return short

static super Switch synchronized this throw

throws transient Try Void volatile while

(*) son palabras reservadas, pero no se utilizan en la actual implementación del lenguaje Java.

Tipos primitivos de Variables

Se llaman tipos primitivos de variables de Java a aquellas variables sencillas que contienen los
tipos de información más habituales: valores boolean, caracteres y valores numéricos enteros o
de punto flotante.

Java dispone de ocho tipos primitivos de variables: un tipo para almacenar valores true y false
(boolean); un tipo para almacenar caracteres (char), y 6 tipos para guardar valores numéricos,
cuatro tipos para enteros (byte, short, int y long) y dos para valores reales de punto flotante (float
y double). Los rangos y la memoria que ocupa cada uno de estos tipos se muestran en la Tabla.

Tipo de variable Descripción

Boolean 1 byte. Valores true y false

Char 2 bytes. Unicode. Comprende el código ASCII

Byte 1 byte. Valor entero entre -128 y 127

Short 2 bytes. Valor entero entre -32768 y 32767

Int 4 bytes. Valor entero entre -2.147.483.648 y 2.147.483.647

20
Long 8 bytes. Valor entre -9.223.372.036.854.775.808 y 9.223.372.036.854.775.807

Float 4 bytes (entre 6 y 7 cifras decimales equivalentes). De -3.402823E38 a -1.401298E-


45 y de 1.401298E-45 a 3.402823E38

Double 8 bytes (unas 15 cifras decimales equivalentes). De -1.79769313486232E308 a

-4.94065645841247E-324 y de 4.94065645841247E-324 a 1.79769313486232E308

Tabla 2.1. Tipos primitivos de variables en Java.

1. Los tipos primitivos de Java tienen algunas características importantes que se resumen a
continuación:
2. El tipo boolean no es un valor numérico: sólo admite los valores true o false. El tipo
boolean no se identifica con el igual o distinto de cero, como en C/C++. El resultado de la
expresión lógica que aparece como condición en un bucle o en una bifurcación debe ser
boolean.
3. El tipo char contiene caracteres en código UNICODE (que incluye el código ASCII), y
ocupan 16 bits por carácter. Comprende los caracteres de prácticamente todos los
idiomas.
4. Los tipos byte, short, int y long son números enteros que pueden ser positivos o
negativos, con distintos valores máximos y mínimos. A diferencia de C/C++, en Java no
hay enteros unsigned.
5. Los tipos float y double son valores de punto flotante (números reales) con 6-7 y 15 cifras
decimales equivalentes, respectivamente.
6. Se utiliza la palabra void para indicar la ausencia de un tipo de variable determinado.
7. A diferencia de C/C++, los tipos de variables en Java están perfectamente definidos en
todas y cada una de las posibles plataformas. Por ejemplo, un int ocupa siempre la misma
memoria y tiene el mismo rango de valores, en cualquier tipo de ordenador.
8. Existen extensiones de Java 1.2 para aprovechar la arquitectura de los procesadores Intel,
que permiten realizar operaciones de punto flotante con una precisión extendida de 80
bits.

21
6. JavaScript
JavaScript es un lenguaje de programación que se utiliza principalmente para crear páginas web
dinámicas.

Una página web dinámica es aquella que incorpora efectos como texto que aparece y desaparece,
animaciones, acciones que se activan al pulsar botones y ventanas con mensajes de aviso al
usuario.

Técnicamente, JavaScript es un lenguaje de programación interpretado, por lo que no es


necesario compilar los programas para ejecutarlos. En otras palabras, los programas escritos con
JavaScript se pueden probar directamente en cualquier navegador sin necesidad de procesos
intermedios.

Breve historia

A principios de los años 90, la mayoría de usuarios que se conectaban a Internet lo hacían con
módems a una velocidad máxima de 28.8 kbps. En esa época, empezaban a desarrollarse las
primeras aplicaciones web y, por tanto, las páginas web comenzaban a incluir formularios
complejos.

Con unas aplicaciones web cada vez más complejas y una velocidad de navegación tan lenta,
surgió la necesidad de un lenguaje de programación que se ejecutara en el navegador del usuario.
De esta forma, si el usuario no rellenaba correctamente un formulario, no se le hacía esperar
mucho tiempo hasta que el servidor volviera a mostrar el formulario indicando los errores
existentes.

Brendan Eich, un programador que trabajaba en Netscape, pensó que podría solucionar este
problema adaptando otras tecnologías existentes (como ScriptEase) al navegador Netscape
Navigator 2.0, que iba a lanzarse en 1995. Inicialmente, Eich denominó a su lenguaje LiveScript.

Posteriormente, Netscape firmó una alianza con Sun Microsystems para el desarrollo del nuevo
lenguaje de programación. Además, justo antes del lanzamiento Netscape decidió cambiar el
nombre por el de JavaScript. La razón del cambio de nombre fue exclusivamente por marketing,
ya que Java era la palabra de moda en el mundo informático y de Internet de la época.

La primera versión de JavaScript fue un completo éxito y Netscape Navigator 3.0 ya incorporaba
la siguiente versión del lenguaje, la versión 1.1. Al mismo tiempo, Microsoft lanzó JScript con su
navegador Internet Explorer 3. JScript era una copia de JavaScript al que le cambiaron el nombre

22
para evitar problemas legales. Para evitar una guerra de tecnologías, Netscape decidió que lo
mejor sería estandarizar el lenguaje JavaScript. De esta forma, en 1997 se envió la especificación

JavaScript 1.1 al organismo ECMA (European Computer Manufacturers Association). ECMA creó
el comité TC39 con el objetivo de "estandarizar de un lenguaje de script multiplataforma e
independiente de cualquier empresa". El primer estándar que creó el comité TC39 se denominó
ECMA-262, en el que se definió por primera vez el lenguaje ECMAScript. Por este motivo, algunos
programadores prefieren la denominación ECMAScript para referirse al lenguaje JavaScript. De
hecho, JavaScript no es más que la implementación que realizó la empresa Netscape del estándar
ECMAScript.

La organización internacional para la estandarización (ISO) adoptó el estándar ECMA-262 a través


de su comisión IEC, dando lugar al estándar ISO/IEC-16262.

Especificaciones oficiales

ECMA ha publicado varios estándares relacionados con ECMAScript. En junio de 1997 se publicó
la primera edición del estándar ECMA-262. Un año después, en junio de 1998 se realizaron
pequeñas modificaciones para adaptarlo al estándar ISO/IEC-16262 y se creó la segunda edición.

Cómo incluir JavaScript en documentos XHTML

La integración de JavaScript y XHTML es muy flexible, ya que existen al menos tres formas para
incluir código JavaScript en las páginas web.

Incluir JavaScript en el mismo documento XHTML

El código JavaScript se encierra entre etiquetas <script> y se incluye en cualquier parte del
documento. Aunque es correcto incluir cualquier bloque de código en cualquier zona de la página,
se recomienda definir el código JavaScript dentro de la cabecera del documento (dentro de la
etiqueta <head>):

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Ejemplo de código JavaScript en el propio documento</title>

23
<script type="text/javascript"> alert("Un mensaje de prueba");

</script>

</head>

<body>

<p>Un párrafo de texto. </p>

</body>

</html>

Para que la página XHTML resultante sea válida, es necesario añadir el atributo type a la etiqueta
<script>. Los valores que se incluyen en el atributo type están estandarizados y para el caso de
JavaScript, el valor correcto es text/javascript.

Este método se emplea cuando se define un bloque pequeño de código o cuando se quieren
incluir instrucciones específicas en un determinado documento HTML que completen las
instrucciones y funciones que se incluyen por defecto en todos los documentos del sitio web. El
principal inconveniente es que si se quiere hacer una modificación en el bloque de código, es
necesario modificar todas las páginas que incluyen ese mismo bloque de código JavaScript.

Definir JavaScript en un archivo externo

Las instrucciones JavaScript se pueden incluir en un archivo externo de tipo JavaScript que los
documentos XHTML enlazan mediante la etiqueta <script>. Se pueden crear todos los archivos
JavaScript que sean necesarios y cada documento XHTML puede enlazar tantos archivos
JavaScript como necesite. Ejemplo:

Archivo codigo.js

Alert ("Un mensaje de prueba"); Documento XHTML

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

24
<title>Ejemplo de código JavaScript en el propio documento</title>

<script type="text/javascript" src="/js/codigo.js"></script>

</head>

<body>

<p>Un párrafo de texto. </p>

</body>

</html>

Además del atributo type, este método requiere definir el atributo src, que es el que indica la URL
correspondiente al archivo JavaScript que se quiere enlazar. Cada etiqueta <script> solamente
puede enlazar un único archivo, pero en una misma página se pueden incluir tantas etiquetas
<script> como sean necesarias.

Los archivos de tipo JavaScript son documentos normales de texto con la extensión .js, que se
pueden crear con cualquier editor de texto como Notepad, Wordpad, wEmEditor, UltraEdit, Vi,
etc.

La principal ventaja de enlazar un archivo JavaScript externo es que se simplifica el código XHTML
de la página, que se puede reutilizar el mismo código JavaScript en todas las páginas del sitio web
y que cualquier modificación realizada en el archivo JavaScript se ve reflejada inmediatamente
en todas las páginas XHTML que lo enlazan.

Incluir JavaScript en los elementos XHTML

Este último método es el menos utilizado, ya que consiste en incluir trozos de

JavaScript dentro del código XHTML de la página:

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>Ejemplo de código JavaScript en el propio documento</title>

25
</head>

<body>

<p onclick="alert ('Un mensaje de prueba')">Un párrafo de texto. </p>

</body>

</html>

El mayor inconveniente de este método es que ensucia innecesariamente el código XHTML de la


página y complica el mantenimiento del código JavaScript. En general, este método sólo se utiliza
para definir algunos eventos y en algunos otros casos especiales, como se verá más adelante.

Etiqueta noscript

Algunos navegadores no disponen de soporte completo de JavaScript, otros navegadores


permiten bloquearlo parcialmente e incluso algunos usuarios bloquean completamente el uso de
JavaScript porque creen que así navegan de forma más segura.

En estos casos, es habitual que, si la página web requiere JavaScript para su correcto
funcionamiento, se incluya un mensaje de aviso al usuario indicándole que debería activar
JavaScript para disfrutar completamente de la página. El siguiente ejemplo muestra una página
web basada en JavaScript cuando se accede con JavaScript activado y cuando se accede con
JavaScript completamente desactivado.

Posibilidades y limitaciones

Desde su aparición, JavaScript siempre fue utilizado de forma masiva por la mayoría de sitios de
Internet. La aparición de Flash disminuyó su popularidad, ya que Flash permitía realizar algunas
acciones imposibles de llevar a cabo mediante JavaScript. Sin embargo, la aparición de las
aplicaciones AJAX programadas con JavaScript le ha devuelto una popularidad sin igual dentro de
los lenguajes de programación web. En cuanto a las limitaciones, JavaScript fue diseñado de
forma que se ejecutara en un entorno muy limitado que permitiera a los usuarios confiar en la
ejecución de los scripts.

De esta forma, los scripts de JavaScript no pueden comunicarse con recursos que no pertenezcan
al mismo dominio desde el que se descargó el script. Los scripts tampoco pueden cerrar ventanas
que no hayan abierto esos mismos scripts. Las ventanas que se crean no pueden ser demasiado
pequeñas ni demasiado grandes ni colocarse fuera de la vista del usuario (aunque los detalles
concretos dependen de cada navegador). Además, los scripts no pueden acceder a los archivos

26
del ordenador del usuario (ni en modo lectura ni en modo escritura) y tampoco pueden leer o
modificar las preferencias del navegador.

Por último, si la ejecución de un script dura demasiado tiempo (por ejemplo, por un error de
programación) el navegador informa al usuario de que un script está consumiendo demasiados
recursos y le da la posibilidad de detener su ejecución.

A pesar de todo, existen alternativas para poder saltarse algunas de las limitaciones anteriores.
La alternativa más utilizada y conocida consiste en firmar digitalmente el script y solicitar al
usuario el permiso para realizar esas acciones.

JavaScript y navegadores

Los navegadores más modernos disponibles actualmente incluyen soporte de JavaScript hasta la
versión correspondiente a la tercera edición del estándar ECMA-262.

La mayor diferencia reside en el dialecto utilizado, ya que mientras Internet Explorer utiliza
JScript, el resto de navegadores (Firefox, Opera, Safari, Konqueror) utilizan JavaScript.

JavaScript en otros entornos

La inigualable popularidad de JavaScript como lenguaje de programación de aplicaciones web se


ha extendido a otras aplicaciones y otros entornos no relacionados con la web.

Herramientas como Adobe Acrobat permiten incluir código JavaScript en archivos PDF. Otras
herramientas de Adobe como Flash y Flex utilizan ActionScript, un dialecto del mismo estándar
de JavaScript.

Photoshop permite realizar pequeños scripts mediante JavaScript y la versión 6 de Java incluye
un nuevo paquete (denominado javax.script) que permite integrar ambos

lenguajes.

Por último, aplicaciones como Yahoo Widgets (http://widgets.yahoo.com/) y el

Dashboard de Apple (http://www.apple.com/downloads/dashboard/) utilizan

JavaScript para programar sus widgets.

El primer script

A continuación, se muestra un primer script sencillo pero completo:

<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

27
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />

<title>El primer script</title>

<script type="text/javascript"> alert (¡” Hola Mundo!”);

</script>

</head>

<body>

<p>Esta página contiene el primer script</p>

</body>

</html>

En este ejemplo, el script se incluye como un bloque de código dentro de una página XHTML. Por
tanto, en primer lugar, se debe crear una página XHTML correcta que incluya la declaración del
DOCTYPE, el atributo xmlns, las secciones <head> y <body>, la etiqueta <title>, etc.

7. Dreamweaver
Dreamweaver es un software fácil de usar que permite crear páginas web profesionales. Las
funciones de edición visual de Dreamweaver permiten agregar rápidamente diseño y
funcionalidad a las páginas, sin la necesidad de programar manualmente el código HTML. Editar
páginas web Tal y como ya hemos visto, cualquier editor de texto permite crear páginas web.
Para ello sólo es necesario crear los documentos con la extensión HTML o HTM, e incluir como
contenido del documento el código HTML deseado. Puede utilizarse incluso el Bloc de notas para
hacerlo. Pero crear páginas web mediante el código HTML es más costoso que hacerlo utilizando
un editor gráfico. Aunque es necesario conocer algo de HTML para poder hacer páginas de cierta
calidad. Hoy en día existe una amplia gama de editores de páginas web. Uno de los más utilizados,
y que destaca por su sencillez y por las numerosas funciones que incluye, es Macromedía
Dreamweaver

28
Para elegir un diseño del espacio de trabajo:

• Seleccione uno de los siguientes diseños:

El espacio de trabajo de diseñado

Es un espacio de trabajo integrado que utiliza MDI (Interfaz para múltiples documentos,
Multiple Document Interface) en el que todas las ventanas de documentos y todos los paneles
están integrados en una ventana de aplicación de mayor tamaño, con los grupos de paneles
acoplados a la derecha. Este diseño es el recomendado para la mayoría de usuarios.

El espacio de trabajo del codificador

Es el mismo espacio de trabajo integrado, pero con los grupos de paneles acoplados a la izquierda;
es un diseño similar al que utilizan Macromedia HomeSite y Macromedia ColdFusion Studio, en
el que las ventanas de documentos muestran de forma predeterminada la vista de código. Esta
disposición es la recomendada para usuarios de HomeSite o ColdFusion Studio y otras personas
que escriban código manualmente que deseen contar con una disposición del espacio de trabajo
que les resulte familiar.

29
La página de inicio

permite abrir un documento reciente o crear un documento nuevo. Desde la página de inicio
también puede profundizar sus conocimientos sobre Dreamweaver mediante una visita guiada o
un tutorial del producto.

La barra Insertar

contiene botones para la inserción de diversos tipos de “objeto”, como imágenes, tablas y capas,
en un documento. Cada objeto es un fragmento de código HTML que le permite establecer
diversos atributos al insertarlo. Por ejemplo, puede insertar una tabla haciendo clic en el botón
Tabla de la barra Insertar. Si lo prefiere, puede insertar objetos utilizando el menú Insertar en
lugar de la barra Insertar.

La barra de herramientas

Documento que contiene botones y menús emergentes que proporcionan diferentes vistas de la
ventana de documento (como la vista Diseño y la vista Código), diversas opciones de visualización
y algunas operaciones comunes como la obtención de una vista previa en un navegador.

La ventana de documento

Muestra el documento actual mientras lo está creando y editando. El inspector de propiedades


le permite ver y cambiar diversas propiedades del objeto o texto seleccionado. Cada tipo de
objeto tiene diferentes propiedades.

30
Los grupos de paneles

son conjuntos de paneles relacionados apilados bajo un encabezado común. Para ampliar un
grupo de paneles, haga clic en la flecha de ampliación situada a la izquierda del nombre del grupo;
para desacoplar un grupo de paneles, arrástrelo por los puntos situados en el borde izquierdo de
la barra de título del grupo.

Introducción a los menús

El menú Archivo y el menú Edición contienen los elementos de menú estándar para estos menús,
como Nuevo, Abrir, Guardar, Guardar todo, Cortar, Copiar, Pegar, Deshacer y Rehacer. El menú
Archivo también contiene otros comandos para la visualización o manipulación del documento
actual, como Vista previa en el navegador e Imprimir código.

El menú Edición contiene los comandos de selección y de búsqueda, como:

Seleccionar etiqueta padre y Buscar y reemplazar. En Windows, el menú Edición también


proporciona acceso a Preferencias; en Macintosh, utilice el menú de Dreamweaver para abrir el
cuadro de diálogo Preferencias.

El menú Ver

Le permite obtener diversas vistas del documento (como la vista Diseño y la vista Código), y
mostrar y ocultar diversos tipos de elementos de página y herramientas de Dreamweaver.

El menú Insertar

Ofrece una alternativa a la barra Insertar para la inserción de objetos en el documento.

El menú Modificar le permite cambiar las propiedades del elemento de página seleccionado. A
través de este menú, puede editar los atributos de etiquetas, cambiar las tablas y elementos de
tablas y realizar diversas operaciones relacionadas con elementos de biblioteca y plantillas.

El menú Texto

Le permite aplicar formato al texto fácilmente. El menú Comandos Proporciona acceso a diversos
comandos, entre otros, uno para aplicar formato al código en función de las preferencias de
formato, otro para crear un álbum de fotos y otro para optimizar una imagen empleando
Macromedia Fireworks.

31
El menú Sitio

Ofrece elementos de menú para administrar sitios y cargar y descargar archivos. Sugerencia:
algunas de las funciones incluidas en el menú Sitio en versiones anteriores de Dreamweaver se
encuentran ahora en el menú Opciones del panel Archivos.

El menú Ventana

Proporciona acceso a todos los paneles, inspectores y ventanas de Dreamweaver.

El menú Ayuda

Proporciona acceso a la documentación de Dreamweaver, incluidos los sistemas de ayuda para


la utilización de Dreamweaver y la creación de extensiones para Dreamweaver.

Además de información de referencia para diversos lenguajes. Además de los menús de la barra
de menús, Dreamweaver ofrece numerosos menús contextuales que proporcionan acceso
sencillo a útiles comandos relacionados con la selección o el área actual.

8. lenguaje C++
Comenzaremos estudiando el soporte del C++ a la programación imperativa, es decir, la forma
de definir y utilizar los tipos de datos, las variables, las operaciones aritméticas, las estructuras de
control y las funciones. Es interesante remarcar que toda esta parte está heredada del C, por lo
que también sirve de introducción a este lenguaje.

Estructura de los programas


El mínimo programa de C++ es:

Main () { }

Lo único que hemos hecho es definir una función (main) que no tiene argumentos y no hace nada.
Las llaves { } delimitan un bloque en C++, en este caso el cuerpo de la función main.

Todos los programas deben tener una función main () que es la que se ejecuta al comenzar el
programa.

Un programa será una secuencia de líneas que contendrán sentencias, directivas de compilación

y comentarios.

Las sentencias simples se separan por punto y coma y las compuestas se agrupan en bloques
mediante llaves.

32
Las directivas serán instrucciones que le daremos al compilador para indicarle que realice alguna

operación antes de compilar nuestro programa, las directivas comienzan con el símbolo # y no

llevan punto y coma. Los comentarios se introducirán en el programa separados por /* y */ o


comenzándolos con //. Los comentarios entre /* y */ pueden tener la longitud que queramos,
pero no se anidan, es

decir, si escribimos /* hola /* amigo */ mío */, el compilador interpretará que el comentario

termina antes de mío, y dará un error. Los comentarios que comienzan por // sólo son válidos

hasta el final de la línea en la que aparecen.

Un programa simple que muestra todo lo que hemos visto puede ser el siguiente.

/* Este es un programa mínimo en C++, lo único que hace es escribir una frase

en la pantalla

#include <iostream.h>

int main ()

cout << "Hola guapo\n"; // imprime en la pantalla la frase "hola guapo"

La primera parte separada entre /* y */ es un comentario. Es recomendable que se comenten los


programas, explicando que es lo que estamos haciendo en cada caso, para que cuando se lean
sean más comprensibles.

La línea que empieza por # es una directiva. En este caso indica que se incluya el fichero
"iostream.h", que contiene las definiciones para entrada/salida de datos en C++. En la declaración
de main () hemos incluido la palabra int, que indica que la función devuelve un entero. Este valor
se le entrega al sistema operativo al terminar el programa. Si no se devuelve ningún valor el
sistema recibe un valor aleatorio.

La sentencia separada ente llaves indica que se escriba la frase "Hola guapo". El operador <<
("poner en") escribe el segundo argumento en el primero. En este caso la cadena "Hola guapo\n"
se escribe en la salida estándar (cout). El carácter \ seguido de otro carácter indica un solo
carácter especial, en este caso el salto de línea (\n).

Veremos el tema de la entrada salida estándar más adelante. Hay que indicar que las operaciones
de E/S se gestionan de forma diferente en C y C++, mientras que el C proporciona una serie de
funciones (declaradas en el fichero "stdio.h"), el C++ utiliza el concepto de stream, que se refiere

33
al flujo de la información (tenemos un flujo de entrada que proviene de cin y uno de salida que
se dirige a cout) que se maneja mediante operadores de E/S.

Por último, señalar que debemos seguir ciertas reglas al nombrar tipos de datos, variables,
funciones, etc. Los identificadores válidos del C++ son los formados a partir de los caracteres del
alfabeto (el inglés, no podemos usar ni la ñ ni palabras acentuadas), los dígitos (0.9) y el subrayado
(_), la única restricción es que no podemos comenzar un identificador con un dígito (es así porque
se podrían confundir con literales numéricos). Hay que señalar que el C++ distingue entre
mayúsculas y minúsculas, por lo que Hola y hola representan dos cosas diferentes. Hay que evitar
el uso de identificadores que sólo difieran en letras mayúsculas y minúsculas, porque inducen a
error.

Tipos de datos y operadores

Los tipos elementales definidos en C++ son:

char, short, int, long, que representan enteros de distintos tamaños (los caracteres son

enteros de 8 bits)

float, double y long double, que representan números reales (en coma flotante).

Para declarar variables de un tipo determinado escribimos el nombre del tipo seguido del de la

variable. Por ejemplo:

int i;

double d;

char c;

Sobre los tipos elementales se pueden emplear los siguientes operadores aritméticos:

+ (más, como signo o como operación suma)

- (menos, como signo o como operación resta)

* (multiplicación)

/ (división)

% (resto)

Y los siguientes operadores relacionales:

== (igual)

34
! = (distinto)

< (menor que)

> (mayor que)

<= (menor o igual que)

>= (mayor o igual que)

El operador de asignación se representa por =.

En la bibliografía del C++ se suelen considerar como tipos derivados los construidos mediante la
aplicación de un operador a un tipo compuesto en su declaración. Estos operadores son:

* Puntero

& Referencia

[] Vector (Array)

() Función

Los tipos compuestos son las estructuras (struct), las uniones (unión) y las clases (class).

Estructuras de control

Como estructuras de control el C++ incluye las siguientes construcciones:

condicionales:

if: instrucción de selección simple

switch: instrucción de selección múltiple bucles:

do-while: instrucción de iteración con condición final

while: instrucción de iteración con condición inicial

for: instrucción de iteración especial (similar a las de repetición con contador) de salto:

break: instrucción de ruptura de secuencia (sale del bloque de un bucle o instrucción


condicional)

continue: instrucción de salto a la siguiente iteración (se emplea en bucles para saltar a la
posición donde se comprueban las condiciones)

goto: instrucción de salto incondicional (salta a una etiqueta)

return: instrucción de retorno de un valor (se emplea en las funciones)

35
Veremos cómo se manejan todas ellas en el punto dedicado a las estructuras de control

Funciones

Una función es una parte con nombre de un programa que puede ser invocada o llamada desde

cualquier otra parte del programa cuando haga falta. La sintaxis de las funciones depende de si

las declaramos o las definimos.

La declaración se escribe poniendo el tipo que retorna la función seguido de su nombre y de una
lista de parámetros entre paréntesis (los parámetros deben ser de la forma tipo-param
[nom_param], donde los corchetes indican que el nombre es opcional), para terminar la
declaración ponemos punto y coma (recordar que una declaración es una sentencia).

Para definir una función se escribe el tipo que retorna, el nombre de la función y una lista de
parámetros entre paréntesis (igual que antes, pero aquí si que es necesario que los parámetros
tengan nombre). A continuación, se abre una llave, se escriben las sentencias que se ejecutan en
la función y se cierra la llave.

Un ejemplo de declaración de función sería:

int eleva_a_n (int, int);

Y su definición sería:

int eleva_a_n (int x, int n)

if (n<0) error ("exponente negativo");

switch (n) {

case 0: return 1;

case 1: return x;

default: return eleva_a_n (x, n-1);

Por defecto los parámetros se pasan por valor, para pasarlos por referencia usaremos punteros
y referencias. Veremos más ampliamente las funciones en el punto dedicado a ellas.

Soporte a la programación modular

El soporte a la programación modular en C++ se consigue mediante el empleo de algunas palabras


clave y de las directivas de compilación.

36
Lo más habitual es definir cada módulo mediante una cabecera (un archivo con la terminación
.h) y un cuerpo del módulo (un archivo con la terminación .c,cpp, o algo similar, depende del
compilador). En el archivo cabecera (header) ponemos las declaraciones de funciones, tipos y
variables que queremos que sean accesibles desde el exterior y en el cuerpo o código definimos
las funciones públicas o visibles desde el exterior, además de declarar y definir variables, tipos o
funciones internas a nuestro módulo.

Si queremos utilizar en un módulo las declaraciones de una cabecera incluimos el archivo


cabecera mediante la directiva #include. También en el fichero que empleamos para definir
las funciones de una cabecera se debe incluir el .h que define.

Existe además la posibilidad de definir una variable o función externa a un módulo mediante el
empleo de la palabra externa delante de su declaración. Por último, indicar que cuando incluimos
una cabecera estándar (como por ejemplo "iostream.h") el nombre del fichero se escribe entre
menor y mayor (#include <iostream.h>), pero cuando incluimos una cabecera definida
por nosotros se escribe entre comillas (#include "mi_cabecera.h"). Esto le sirve al
compilador para saber dónde debe buscar los ficheros

Soporte a los Tipos de Datos Abstractos

Para soportar los tipos de datos se proporcionan mecanismos para definir operadores y funciones
sobre un tipo definido por nosotros y para restringir el acceso a las operaciones a los objetos de
este tipo. Además, se proporcionan mecanismos para redefinir operadores e incluso se soporta
el concepto de tipos genéricos mediante las templates (plantillas).

También se define un mecanismo para manejo de excepciones que permite que controlemos de
forma explícita los errores de nuestro programa.

TIPOS DE DATOS, OPERADORES Y EXPRESIONES

Tipos de datos:

Para declarar una variable ponemos el nombre del tipo seguido del de la variable. Podemos
declarar varias variables de un mismo tipo poniendo el nombre del tipo y las variables a declarar
separadas por comas:

int i, j,k;

Además, podemos inicializar una variable a un valor en el momento de su declaración:

int i=100;

37
Cada tipo definido en el lenguaje (o definido por el usuario) tiene un nombre sobre el que se
pueden emplear dos operadores:

sizeof, que nos indica la memoria necesaria para almacenar un objeto del tipo, y

new, que reserva espacio para almacenar un valor del tipo en memoria.

Tipos elementales

El C++ tiene un conjunto de tipos elementales correspondientes a las unidades de


almacenamiento típicas de un computador y a las distintas maneras de utilizarlos:

— enteros:

char

short int

int

long int

— reales (números en coma flotante):

float

double

long double

La diferencia entre los distintos tipos enteros (o entre los tipos reales) está en la memoria que
ocupan las variables de ese tipo y en los rangos que pueden representar. A mayor tamaño, mayor
cantidad de valores podemos representar. Con el operador sizeof podemos saber cuánto
ocupa cada tipo en memoria.

Para especificar si los valores a los que se refieren tienen o no signo empleamos las palabras
signed y unsigned delante del nombre del tipo (por ejemplo, unsigned int para enteros
sin signo).

Para tener una notación más compacta la palabra int se puede eliminar de un nombre de tipo
de más de una palabra, por ejemplo, short int se puede escribir como short, unsigned es
equivalente a unsigned int, etc.

38
El tipo entero char es el que se utiliza normalmente para almacenar y manipular caracteres en
la mayoría de los computadores, generalmente ocupa 8 bits (1byte), y es el tipo que se utiliza
como base para medir el tamaño de los demás tipos del C++.

Un tipo especial del C++ es el denominado void (vacío). Este tipo tiene características muy
peculiares, ya que es sintácticamente igual a los tipos elementales, pero sólo se emplea junto a
los derivados, es decir, no hay objetos del tipo void Se emplea para especificar que una función
no devuelve nada o como base para punteros a objetos de tipo desconocido (esto lo veremos al
estudiar los punteros). Por ejemplo:

void BorraPantalla (void);

indica que la función Borra Pantalla no tiene parámetros y no retorna nada.

Tipos enumerados

Un tipo especial de tipos enteros son los tipos enumerados. Estos tipos sirven para definir un

tipo que sólo puede tomar valores dentro de un conjunto limitado de valores. Estos valores

tienen nombre, luego lo que hacemos es dar una lista de constantes asociadas a un tipo.

La sintaxis es:

enum booleano {FALSE, TRUE}; // definimos el tipo booleano

Aquí hemos definido el tipo booleano que puede tomar los valores FALSE o TRUE. En realidad,
hemos asociado la constante FALSE con el número 0, la constante TRUE con 1, y si hubiera más
constantes seguiríamos con 2, 3, etc. Si por alguna razón nos interesa dar un número concreto a
cada valor podemos hacerlo en la declaración:

enum colores {rojo = 4, azul, verde = 3, negro = 1};

azul tomará el valor 5 (4+1), ya que no hemos puesto nada. También se pueden usar números
negativos o constantes ya definidas.

Para declarar un variable de un tipo enumerado hacemos:

enum booleano test; // sintaxis de ANSI C

booleano test; // sintaxis de C++

En ANSI C los enumerados son compatibles con los enteros, en C++ hay que convertir los enteros
ha enumerado:

39
booleano test = (booleano) 1; // asigna TRUE a test (valor 1)

Si al definir un tipo enumerado no le damos nombre al tipo declaramos una serie de constantes:

enum {CERO, UNO, DOS};

Hemos definido las constantes CERO, UNO y DOS con los valores 0, 1 y 2.

Tipos derivados

De los tipos fundamentales podemos derivar otros mediante el uso de los siguientes operadores
de declaración:

* Puntero

& Referencia

[] Vector (Array)

() Función

Ejemplos:

int *n; // puntero a un entero

int v [20]; // vector de 20 enteros

int *c [20]; // vector de 20 punteros a entero

void f (int j); // función con un parámetro entero

El problema más grave con los tipos derivados es la forma de declararlos: los punteros y las
referencias utilizan notación prefija y los vectores y funciones usan notación postfija. La idea es
que las declaraciones se asemejan al uso de los operadores de derivación. Para los ejemplos
anteriores haríamos lo siguiente:

int i; // declaración de un entero i

i = *n; // almacenamos en i el valor al que apunta n

i = v [2] // almacenamos en i el valor del tercer elemento de v

// (recordad que los vectores empiezan en 0)

i = *v [2] // almacenamos en i el valor al que apunta el tercer puntero


de v

f(i) // llamamos a la función f con el parámetro i

40
Hay que indicar que otra fuente de errores es la asociación de operadores, ya que a veces es
necesario el uso de paréntesis. Por ejemplo, en la declaración de c anterior hemos declarado un
vector de punteros, pero para declarar un puntero a un vector necesitamos paréntesis:

int *c [20]; // vector de 20 punteros a entero

int (*p) [20] // puntero a vector de 20 enteros

Tipos compuestos

Existen cuatro tipos compuestos en C++:

Estructuras

Uniones

Campos de bits

Clases de c ++

Estructuras

Las estructuras son el tipo equivalente a los registros de otros lenguajes, se definen poniendo la
palabra struct delante del nombre del tipo y colocando entre llaves los tipos y nombres de sus
campos. Si después de cerrar la llave ponemos una lista de variables las declaramos a la vez que
definimos la estructura. Si no, luego podemos declarar variables poniendo struct nomtipo
(ANSI C, C++) o nomtipo (C++).

Ejemplo:

struct persona {

int edad;

char nombre [50];

} empleado;

struct persona alumno; // declaramos la variable alumno de tipo persona


(ANSI C)

persona profesor; // declaramos la variable profesor de tipo persona

persona *p; // declaramos un puntero a una variable persona

Podemos inicializar una estructura de la misma forma que un array:

41
persona juan= {21, "Juan Pérez"};

Para acceder a los campos de una estructura ponemos el nombre de la variable, un punto y el
nombre del campo. Si trabajamos con punteros podemos poner -> en lugar de referenciar el
puntero y poner un punto (esto lo veremos en el punto de variables dinámicas):

alumno. Edad = 20; // el campo edad de alumno vale 20

p->nombre = "Pepe"; // el nombre de la estructura apuntada por p vale


"Pepe"

(*p). nombre = "Pepe"; // igual que antes

Empleando el operador sizeof a la estructura podemos saber cuántos bytes ocupa.

Uniones

Las uniones son idénticas a las estructuras en su declaración (poniendo unión en lugar de struct),
con la particularidad de que todos sus campos comparten la misma memoria (el tamaño de la
unión será el del campo con un tipo mayor).

Es responsabilidad del programador saber que está haciendo con las uniones, es decir, podemos
emplear el campo que queramos, pero si usamos dos campos a la vez uno machacará al otro.

Ejemplo:

union codigo {

int i;

float f;

} cod;

cod.i = 10; // i vale 10

cod.f = 25e3f; // f vale 25 * 1000, i indefinida (ya no vale 10)

Por último, diremos que podemos declarar uniones o estructuras sin tipo siempre y cuando
declaremos alguna variable en la definición. Si no declaramos variables la estructura sin nombre
no tiene sentido, pero la unión permite que dos variables compartan memoria.

Ejemplo:

struct {

42
int i;

char n [20]

} reg; // Podemos usar la variable reg

union {

int i;

float f;

}; // i y f son variables, pero se almacenan en la misma memoria

Campos de bits

Un campo de bits es una estructura en la que cada campo ocupa un número determinado de bits,
de forma que podemos tratar distintos bits como campos independientes, aunque estén juntos
en una misma palabra de la máquina.

Ejemplo:

struct fichero {

:3 // nos saltamos 3 bits

unsigned int lectura: 1; // reservamos un bit para lectura

unsigned int escritura: 1;

unsigned int ejecución: 1;

:0 // pasamos a la siguiente palabra

unsigned int directorio: 8;

} flags;

flags. lectura = 1; // ponemos a 1 el bit de lectura

9. Lenguaje C.
Se desarrollado en el año 1972 por Dennis Ritchie para UNIX un sistema operativo
multiplataforma. El lenguaje C es del tipo lenguaje estructurado como son Pascal, Fortran, Basic.
Sus instrucciones son muy parecidas a otros lenguajes incluyendo sentencias como if, else, for,
do y while.... Aunque C es un lenguaje de alto nivel (puesto que es estructurado y posee
sentencias y funciones que simplifican su funcionamiento) tenemos la posibilidad de programar
a bajo nivel ( como en el Assembler tocando los registros, memoria etc. ). Para simplificar el
funcionamiento del lenguaje C tiene incluidas librerías de funciones que pueden ser incluidas

43
haciendo referencia la librería que las incluye, es decir que si queremos usar una función para
borrar la pantalla tendremos que incluir en nuestro programa la librería que tiene la función para
borrar la pantalla.

Ventaja del lenguaje

La programación en C tiene una gran facilidad para escribir código compacto y sencillo a su misma
vez. En el lenguaje C no tenemos procedimientos como en otros lenguajes solamente tenemos
funciones los procedimientos los simula y esta terminante mente prohibido escribir funciones ,
procedimientos y los comandos en mayúscula todo se escribe en minúsculas (a no ser las
constantes J ) Los archivos en la C se escriben en texto puro de ASCII del Dos si se escribe en
WORD por ejemplo el mismo incluye muchos códigos no entendidos por el compilador y generara
errores ;una vez escrito se debe pasar a compilar el archivo; los archivos tienen 2
Extensiones archivo que es el archivo a compilar el que contiene todas los procedimientos
funciones y código de nuestro programa y archivo que es las librerías que contienen las funciones
de nuestro programa.

Variables en C

Para la definición de variables de debe poner primero el tipo de variable a definir y luego el
nombre de la variable (si queremos inicializarla podemos a continuación poniendo = valor) y si
queremos definir más de una variable del mismo tipo podemos poniendo una coma a
continuación.

44
Tipo de Variables en C

45
Funciones

Una función es una parte del código independiente del programa que se llama dentro de él, como
dijimos anteriormente C no tiene procedimientos solamente funciones los procedimientos los
simula con funciones que no devuelven nada (Void) la estructura de la función en C y es los
elementos más fuertes del lenguaje. El desarrollo de una función es:

Tipo_de_valor_retorno nombre Función (lista de argumentos) {

declaracion de variables locales a la función

código ejecutable

return (expresión) // optativo

las variables de nuestras funciones son locales es decir que solamente viven cuando se está
ejecutando la llamada a la función; el código ejecutable son las sentencias que el programa utiliza
para funcionar y el valor de retorno es el resultado que va a devolver la misma función ( si se dice
que una función retorna un entero en el return se debe poner un entero como valor de
devolución Ej: esta función de ejemplo cuenta cuantos caracteres existen dentro de una variable
que se le pase como parámetro.

Estructura de un programa C
Un programa e C consta de uno o más módulos (ficheros fuentes)

Cada módulo puede contener

directivas del pre compilador, para “incluir” otros ficheros


(#incluye) y “definir” constantes y macros (#define)
declaraciones de variables y prototipos de funciones
una o más funciones
comentarios

Cada función puede contener

directivas del pre compilador


declaraciones
uno o más bloques
comentarios

46
Compilación del programa
Normalmente invocamos al compilador con cc o gcc (el compilador de gnu)

Cuando tecleamos cc programa c, para generar un ejecutable a partir de un fichero fuente


obtenemos un ejecutable, típicamente denominado a.out. Sin embargo, se realizan tres tareas.

 Paso por el preprocesador C. Es el que procesa las líneas que comienzan con # (pe
#incluye, #define. . .). Puede invocarse directamente con cpp.
 La compilación propiamente dicha. Genera ficheros objeto (. o) a partir de los ficheros
fuente. Puede invocarse como cc –c
 El enlazado. Realizado por ld.

10-Lenguaje Python
Python es un lenguaje de programación desarrollado como proyecto de código abierto y es
administrado por la empresa Python software Foundation.

Fue creado por Guido van Rossum y su nombre se debe a la afición de su creador a los
humoristas británicos Monty Python.Se trata de un lenguaje de programación en scripts,
competencia directa de Perl.

Python permite dividir el programa en módulos reutilizables desde otros programas Python.
También viene con una gran colección de módulos estándar que proporcionan E/S de ficheros,
llamadas al sistema, sockets, interfaces GUI, etc.

Se trata de un lenguaje interpretado, lo que permite ahorrar el proceso de compilado.

Características generales de Python


 Lenguaje de programación de alto nivel del tipo scripting.
 Diseñado para ser fácil de leer y simple de implementar.
 Es código abierto (de libre uso).
 Puede ejecutarse en Mac, Windows y sistemas Unix; también ha sido portado a
máquinas virtual JAVA y .NET.
 Es a menudo usado para desarrollar aplicaciones web y contenido web dinámico.
 Se utiliza para crear extensiones tipo plug-ins para programas de 2d y 3d como
Autodesk Maya, GIMP, Blender, Inkscape, etc.
 Los scripts de Python tienen la extensión de archivo .PY, que pueden ser parseados y
ejecutados inmediatamente.
 Permite grabar programas compilados con extensión de archivo. PYC, los cuales suelen
ser usados como módulo que pueden ser referenciados por otros programas Python.

Historia de Python
Python comenzó a concebirse a finales de los 80 y su implementación fue iniciada en diciembre
de 1989 por Guido van Rossum en el CWI en Países Bajos, como un sucesor al lenguaje de
programación ABC, capaz de manejar excepciones e interactuar con el sistema operativo
Amoeba.

47
La comunidad Python ha llamado a Guido van Rossum el BDFL (benevolent dictator for life o
dictador benevolente de por vida), debido a su rol central en la toma de decisiones del desarrollo
de Python.

Python 2.0 fue lanzado el 16 de octubre de 2000, con grandes cambios y características como
un recolector completo de basura y soporte para Unicode. Con el lanzamiento de esta versión,
el proceso de desarrollo cambió y se volvió más transparente y más apoyado en la comunidad
Python.

Software popular escritos en Python


 Aplicaciones: BitTorrent, Blender 3D, Calibre, Dropbox, MusicBrainz Picard, Ubuntu
Software Center, YUM, etc.
 Aplicaciones web: GNU Mailman, OpenERP.
 Videojuegos: Civilization IV, Disney Toontown Online, Battlefield 2, Vega Strike.

Uso de Python
El lenguaje de programación Python es uno de los más usados en el mundo, según una medición
de TIOBE Programming Community Index (2008) es el octavo más popular. Además, es el tercero
más popular en aquellos lenguajes que no basan su sintaxis gramatical en C.

Un estudio mostró que Python hace un uso de la memoria mejor que JAVA y no tan lejos de la
eficiencia de C o C++.

Grandes organizaciones utilizan Python para algunos de sus productos como Google, CERN,
NASA.

Es empleado en tareas de inteligencia artificial, como por ejemplo en tareas de procesamiento


de lenguajes naturales.

1-Definir una función máxima () que tome como argumento dos números y devuelva el mayor
de ellos. (Es cierto que Python tiene una función máximo () incorporada, pero hacerla nosotros
mismos es un muy buen ejercicio.

2- Definir una función máximo de tres () que tome tres números como argumentos y devuelva
el mayor de ellos.

3- Definir una función que calcule la longitud de una lista o una cadena dada. (Es cierto que
Python tiene la función () incorporada, pero escribirla por nosotros mismos resulta un muy
buen ejercicio.

4- Escribir una función que tome un carácter y devuelva True si es una vocal, de lo contrario
devuelve False.

5- Escribir una función suma() y una función múltiplo() que sumen y multipliquen
respectivamente todos los números de una lista. Por ejemplo: suma ([1,2,3,4]) debería
devolver 10 y múltiplo ([1,2,3,4]) debería devolver 24.

48
6- Definir una función inversa () que calcule la inversión de una cadena. Por ejemplo la
cadena "estoy probando" debería devolver la cadena "odnaborp yotse"

7 - Definir una función es palíndromo () que reconoce palíndromos (es decir, palabras que
tienen el mismo aspecto escritas invertidas), ejemplo: es palíndromo ("radar") tendría que
devolver True.

8- Definir una función superposición() que tome dos listas y devuelva True si tienen al
menos 1 miembro en común o devuelva False de lo contrario. Escribir la función usando el
bucle for anidado.

9- Definir una función generar “n” caracteres () que tome un entero n y devuelva el
carácter multiplicado por n. Por ejemplo: generar “n” caracteres(5, "x") debería devolver
"xxxxx".

10- Definir un histograma procedimiento() que tome una lista de números enteros e
imprima un histograma en la pantalla.

49
BIBLIOGRAFÍA

Downey, A. (2008). How to Think Like a Computer Scientist. Learning with Python, Green Tea
Press

Eguiluz, J. (2009). Introducción a JavaScript.

Ferrer, J, (2014). Curso Completo de HTML. Madrid, España: Tesla.

Guy Steele y Gilad Bracha,(2016). Java lenguaje especificación, tercera edición. Addison-
Wesley.

Stroustrup, B, (2012). El lenguaje de programación C++. Madrid, España: Addison

50

Das könnte Ihnen auch gefallen