Programacion-Java-Volumen-1.pdf

      Proogrram macciónn enn Jaavaa VVolúmeen 1       1 Desarrollador de Software Especialista en Tecnologías Java

Views 211 Downloads 0 File size 28MB

Report DMCA / Copyright

DOWNLOAD FILE

Citation preview

     

Proogrram macciónn enn Jaavaa VVolúmeen 1    

 

1

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)     

 

 

2

2

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

El desarrollo de la Sociedad de la Información y Convergencia con Europa y entre Comunidades Autónomas (Plan Avanza), es una nueva iniciativa para el desarrollo de la sociedad de la Información en España durante el año 2010 – 2011. El Plan Avanza se orienta a conseguir la adecuada utilización de las Tecnologías de la Información y las Comunicaciones, para contribuir al éxito de un modelo de crecimiento económico basado en el incremento de la competitividad y la productividad.

Objetivos generales del programa:  Dotar de las habilidades interpersonales que son claves para trabajar en equipo en los proyectos, y conseguir resultados a través de las personas, para satisfacer las necesidades de sus clientes.  Que los alumnos, sin experiencia en el desarrollo de programas, comprendan como se estructura un programa de aplicaciones, a nivel general.  Diseñar y escribir programas en lenguaje Java que se ejecutan en el lado del servidor Web, utilizando el API J2EE.  Los alumnos que superen los cursos de formación con evaluación positiva recibirán soporte para poder participar en diversos procesos de selección de empresas relacionadas en con el mundo de las TIC. El propósito de esta guía es darte una pauta de apoyo para que pueda planificar tu estudio. Hemos distribuido cada una de las unidades, por día para que tengas una referencia en la dedicación que esperamos que tengas en el transcurso de esta formación.

 

3

3

Desarro ollador de SSoftware Especialista e en Tecnologgías Java (IFCD04TIC))   

 

4

4

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

INTRODUCCIÓN MODALIDAD

TOTAL DÍAS

Presencial

4

DÍA

CONTENIDOS TEÓRICOS

1

Introducción del curso y sistemas de evaluación.

2

Explicación de los contenidos teóricos

3

Explicación de los contenidos teóricos

4

Explicación de los contenidos teóricos

 

5

5

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MODALIDAD TELEFORMACION

TOTAL DÍAS 38

CONTENIDOS TEÓRICOS

MÓDULO 1. TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 1. LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN. 1.1. 1.2. 1.3. 1.4. 1.5. 1.6.

La información y el tratamiento mecanizado de la información: La informática. El ordenador y sus componentes. Procesamiento de la información. Tipos de datos básicos. Sistemas de Numeración. Binario y Hexadecimal. Cambio de base y operaciones aritméticas básicas: suma, resta complementos. 1.7. Codificación de la Información: ASCII, EBCDIC y orden de los datos en función del código. Formatos clásicos internos de almacenamiento en memoria. 1.8. Tipos de archivos de información: Ficheros y Bases de datos y operaciones típicas de entrada/salida.

2. INTRODUCCIÓN A LA PROGRAMACIÓN. 2.1. Concepto de algoritmo y de programa. 2.2. Ciclo de vida: Fases clásicas de diseño de aplicaciones informáticas. 2.3. Estructura de un centro de proceso de datos. Roles habituales. 2.4. Lenguajes de programación. Lenguajes de bajo, medio y alto nivel. 2.5. Ensambladores, intérpretes y compiladores. 2.6. Código fuente, código objeto y código ejecutable. 2.7. Estructura de un programa. Datos e instrucciones. 2.8. Flujogramas: organigramas, ordinogramas. 2.9. Flujogramas versus pseudocódigos. 2.10. Elementos básicos de programación.

3. ESTRUCTURAS BÁSICAS DE LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS. 3.1. 3.2. 3.3. 3.4.

 

Métodos de diseños deductivos e inductivos. Diseño TOP DOWN. Instrucciones secuenciales. Instrucciones alternativas (bifurcaciones). Instrucciones repetitivas (bucles).

6

6

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

4. ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES Y TRIDIMENSIONALES. 4.1. Diseño y creación de Tablas o Arrays. 4.2. Inicializar o preparar tablas. 4.3. Cargar una tabla desde el teclado. 4.4. Recorrer secuencialmente una tabla. 4.5. Buscar un contenido determinado dentro de uno de los elementos. 4.6. En una tabla que está ordenada. 4.7. Si la tabla no está ordenada. 4.8. Ordenar una tabla por cualquier método. 4.9. Insertar un elemento en uno libre del final. 4.10. Insertar un elemento en uno de los elemento intermedios desplazando el resto hacia el final (debe haber elementos vacíos al final). 4.11. Borrar un elemento de una tabla. 5. FUNCIONES Y PROCEDIMIENTOS. 5.1. Introducción al concepto de rutinas, funciones y procedimientos. 5.2. Datos en los procedimientos. 5.3. Parámetros formales y actuales. 5.4. Variables globales y locales. 5.5. Funciones y ámbito de las variables. 5.6. Funciones y procedimientos: Representación gráfica. 5.7. Esquema básico de llamadas a rutinas y procedimientos. 5.8. Esquema básico de llamadas a funciones. 5.9. Ejemplo de llamada a procedimientos en lenguaje C, C++ y JAVA. 5.10. Ejemplo de llamada a procedimientos en lenguaje Visual .NET. 5.11. Ejemplo de llamada a procedimientos en lenguaje COBOL. 6. INTRODUCCIÓN AL TRATAMIENTO DE FICHEROS. 6.1. Estructura de un archivo o fichero 6.2. Programas de Creación de ficheros secuenciales. 6.3. Programas de consulta de ficheros secuenciales.

 

7

7

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 2. INTRODUCCIÓN A JAVA 1. CARACTERÍSTICAS DE LA TECNOLOGÍA JAVA. 1.1. Características del lenguaje Java. 1.2. La Máquina Virtual Java (JVM). 1.3. Soporte de fabricantes software. 2. EDICIONES JAVA. 2.1. Java Standar Edition. 2.2. Java Enterprise Edition. 2.3. Java Micro Edition. 3. PRIMEROS PASOS EN JAVA. 3.1. 3.2. 3.3. 3.4. 3.5.

 

El Java Development Kit JDK 6.0. Configuración de variables de entorno. Nociones básicas de sintaxis Java. Creación del primer programa Java. Utilización de un entorno de desarrollo IDE.

8

8

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 3. SINTAXIS DEL LENGUAJE 1. VARIABLES, CONSTANTES Y TIPOS DE DATOS. 2. EL TIPO CADENA DE CARACTERES. 3. OPERADORES. 4. INSTRUCCIONES DE CONTROL. 5. ARRAYS. 6. CLASES Y OBJETOS. 6.1. 6.2. 6.3. 6.4. 6.5.

Definición formal de clase y objeto. Creación de objetos a partir de clases. Implementación de métodos y atributos de una clase. Métodos estáticos. Modificadores de acceso.

7. CLASES DE TIPO JAVABEANS. 8. TIPOS GENÉRICOS. 8.1. 8.2. 8.3. 8.4.

 

La clase Object y las conversiones de tipos. Definición de tipos genéricos. Ventajas. Comodines y restricciones de tipos. Métodos genéricos.

9

9

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 4. UTILIZACIÓN DE LAS LIBRERÍAS BÁSICAS DE JAVA 1. IMPORTAR CLASES Y PAQUETES EXTERNOS. 2. EL PAQUETE JAVA.LANG. 2.1. 2.2. 2.3. 2.4.

Manipulación de cadenas con la clase String. Operaciones matemáticas con la clase Math. Clases de envoltorio. Autoboxing y autounboxing.

3. MANIPULACIÓN Y FORMATO DE FECHAS. 3.1. La clase Calendar. 3.2. La clase DateFormat. 4. OPERACIONES DE ENTRADA-SALIDA. 4.1. 4.2. 4.3. 4.4.

La clase PrintStream para salida de datos. Lectura de caracteres con InputStream. Lectura de cadenas con BufferedReader. Lectura de datos con la clase Scanner.

5. GESTIÓN DE COLECCIONES. 5.1. Las clases de colección Java.util.ArrayList y Java.util.Hashtable. 5.2. Enumeraciones e iteraciones.

 

10

10

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 5. PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA 1. CONSTRUCTORES. 2. SOBRECARGA DE MÉTODOS. 3. HERENCIA. 3.1. 3.2. 3.3. 3.4. 3.5. 3.6. 3.7.

Concepto de herencia. Características de la herencia en Java. Ejecución de constructores en la herencia. Uso de super y this. Sobreescritura de métodos. Uso de modificadores final y protected. Herencia y tipos genéricos.

4. CLASES ABSTRACTAS. 5. POLIMORFISMO. 6. INTERFACES.

 

11

11

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 6. EXCEPCIONES 1. CLASES DE EXCEPCIÓN. 2. EXCEPCIONES MARCADAS Y NO MARCADAS. 3. CONTROL DE EXCEPCIONES. 3.1. Utilización de los bloques try, catch, finally. 3.2. Declaración de una excepción. 3.3. Lanzamiento de excepciones. 4. EXCEPCIONES PERSONALIZADAS.

 

12

12

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 7. APLICACIONES BASADAS EN ENTORNO GRÁFICO 1. LOS PAQUETES JAVA.AWT Y JAVAX.SWING. 2. CREACIÓN DE VENTANAS Y CUADROS DE DIÁLOGO AWT. 3. GESTIÓN DE EVENTOS. 3.1. Principales clases de eventos. 3.2. Interfaces de escucha y adaptadores. 3.3. Registro de un evento. 4. UTILIZACIÓN DE CONTROLES SWING. 4.1. Creación de un control. 4.2. Añadir controles a un contenedor. 4.3. Principales controles swing. 5. GESTORES DE ORGANIZACIÓN. 6. APPLETS. 6.1. Características de un applet. 6.2. Creación de un applet. 6.3. Métodos del ciclo de vida de un applet.

 

13

13

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 8. ACCESO A DATOS EN JAVA 1. FUNDAMENTOS DEL LENGUAJE SQL. 2. LA TECNOLOGÍA JDBC. 2.1. Drivers JDBC. 2.2. Carga de un driver en una aplicación. 2.3. El API JDBC. 3. ACCESO MEDIANTE JDBC A UNA BASE DE DATOS RELACIONAL. 3.1. 3.2. 3.3. 3.4.

Creación de conexiones. Ejecución de consultas SQL. Manipulación de resultados. Ejecución de procedimientos almacenados.

4. XML COMO ALMACENAMIENTO DE DATOS. 4.1. Características del lenguaje XML. 4.2. Manipulación de documentos XML desde una aplicación Java. 5. ACCESO A FICHEROS. 5.1. Lectura y escritura en ficheros de texto. 5.2. Serialización y des-serialización de objetos.

 

14

14

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

TUTORÍA MODALIDAD

TOTAL DÍAS

Presencial

2

DÍA

CONTENIDOS TEÓRICOS

42

Resolución de dudas

43

Resolución de dudas 

 

15

15

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MODALIDAD TELEFORMACION

TOTAL DÍAS 20

CONTENIDOS TEÓRICOS

MÓDULO 9.PROGRAMACIÓN DE APLICACIONES MULTITAREA 1. CONCEPTO DE TAREA Y MULTITAREA. 2. CREACIÓN DE APLICACIONES MULTITAREA. 2.1. 2.2. 2.3. 2.4.

Herencia de la clase Thread. Sobreescritura del método run(). Inicio de una tarea. Utilización de la interfaz Runnable.

3. PRINCIPALES MÉTODOS PARA EL CONTROL DE LA MULTITAREA. 4. SINCRONIZACIÓN DE PROCESOS.

 

16

16

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 10. COMUNICACIÓN DE APLICACIONES EN RED 1. CONCEPTOS BÁSICOS SOBRE REDES. 1.1. Dirección IP, Nombre de dominio y URL. 1.2. Puertos de escucha. 1.3. El protocolo TCP. 2. LA CLASE INETADDRESS. 3. INTERCONEXIÓN DE APLICACIONES MEDIANTE SOCKETS. 3.1. 3.2. 3.3. 3.4. 3.5.

 

Creación de un socket. La clase Socket. Lectura y escritura a través de un socket. Creación de sockets de servidor. La clase ServerSocket. Escucha de peticiones en un socket del servidor. Principales métodos de la clase ServerSocket.

17

17

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 11. ARQUITECTURA DE APLICACIONES JAVA EE 1. EL MODELO DE TRES CAPAS EN INTERNET. 1.1. 1.2. 1.3. 1.4.

Características de las aplicaciones de tres capas. Interacción cliente – capa intermedia. El Protocolo HTTP. Tecnologías cliente, capa intermedia y datos.

2. LA ARQUITECTURA J2EE. 2.1. Capa Web y capa de negocio. 2.2. Componentes y servicios Java EE. 2.3. Contenedores Java EE. 3. ESTRUCTURA DE UNA APLICACIÓN WEB JAVA EE. 4. EL DESCRIPTOR DE DESPLIEGUE WEB.XML.

 

18

18

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 12. FUNDAMENTOS DE HTML Y JAVASCRIPT 1. EL PAPEL DE HTML Y JAVASCRIPT EN UNA APLICACIÓN WEB. 2. ESTRUCTURA DE UN DOCUMENTO HTML. 3. PRINCIPALES ETIQUETAS HTML. 3.1. Estilos y formato. 3.2. Imágenes. 3.3. Tablas y listas. 4. FUNDAMENTOS DE HOJAS DE ESTILO. 5. FORMULARIOS HTML. 5.1. 5.2. 5.3. 5.4.

La etiqueta y sus atributos principales. Los controles de texto. Los controles de selección. Controles tipo botón.

6. INCLUSIÓN DE SCRIPTS EN UNA PÁGINA WEB. 7. SINTAXIS BÁSICA DE JAVASCRIPT. 7.1. 7.2. 7.3. 7.4. 7.5.

 

Variables Operadores. Instrucciones de control. Funciones del lenguaje. Principales Objetos Java Script.

19

19

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 13. DESARROLLO DE APLICACIONES WEB CON SERVLETS 1. CARACTERÍSTICAS DE UN SERVLET. 2. CREACIÓN DE UN SERVLET. 2.1. 2.2. 2.3. 2.4.

Extensión de la clase HttpServlet. Sobreescritura de los métodos del ciclo de vida de un servlet. Creación del primer servlet. Registro de un servlet en web.xml.

3. GENERACIÓN DINÁMICA DE PÁGINAS DESDE UN SERVLET. 4. ENVÍO DE DATOS A UN SERVLET. 5. REDIRECCIONAMIENTO Y REENVÍO DE PETICIONES. 6. MANTENIMIENTO DEL ESTADO EN APLICACIONES WEB JAVA EE. 6.1. Inserción de datos en URL. 6.2. Variables de petición, sesión y aplicación. 6.3. Cookies. 7. ESCUCHADORES. 8. OPCIONES DE CONFIGURACIÓN DEL ARCHIVO WEB.XML. 9. ACCESO A DATOS DESDE UN SERVLET.

 

20

20

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 14. DESARROLLO DE APLICACIONES WEB CON JSP 1. CARACTERÍSTICAS DE LA TECNOLOGÍA JSP. 2. INSERCIÓN DE CÓDIGO JAVA EN UNA PÁGINA JSP. 3. GENERACIÓN DE PÁGINAS WEB CON JSP. 4. LOS OBJETOS INTEGRADOS JSP. 5. DIRECTIVAS JSP. 6. ACCIONES JSP. 7. UTILIZACIÓN DE JAVABEANS EN PÁGINAS JSP. 8. ACCESO A DATOS DESDE UNA PÁGINA JSP. 9. CREACIÓN DE LIBRERÍAS PERSONALIZADAS PARA JSP. 10. EL LENGUAJE DE EXPRESIONES EL PARA JSP. 11. LA LIBRERÍA DE ACCIONES ESTÁNDAR JSTL.

 

21

21

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 15. LA ARQUITECTURA MODELO VISTA CONTROLADOR 1. PATRONES DE DISEÑO JAVA EE. 2. ESTRUCTURACIÓN DE APLICACIONES WEB JAVA EE. 3. CAPAS MVC. 3.1. El controlador. 3.2. La vista. 3.3. El modelo. 4. EL ACCESO A LOS DATOS EN UNA APLICACIÓN MVC. 5. DESPLIEGUE DE UNA APLICACIÓN EN UN SERVIDOR DE APLICACIONES.

 

22

22

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

MÓDULO 16. CREACIÓN DE COMPONENTES ENTERPRISE JAVABEANS (EJBs) 1. LA ARQUITECTURA EJB. 1.1. Definición de EJB. 1.2. Características y ventajas. 1.3. Ámbito de utilización de EJBs. 2. TIPOS DE COMPONENTES EJB. 3. DIFERENCIAS ENTRE UN EJB 3.0 Y VERSIONES ANTERIORES. 4. IMPLEMENTACIÓN DE UN EJB. 4.1. Anotaciones, interfaces, clases y descriptores de despliegue. 4.2. Descriptores de despliegue. 4.3. Despliegue de un EJB. 5. CREACIÓN DE APLICACIONES WEB CLIENTES DE EJB. 5.1. Utilización de JNDI. 5.2. Parámetros de inicialización de contexto. 6. ANÁLISIS DE LOS EJBS DE SESIÓN. 6.1. Stateless Session Bean frente a Stateful Sesion Bean. 6.2. Métodos del ciclo de vida. 6.3. Proceso de construcción de un EJB de sesión. 7. MESSAGE-DRIVEN BEAN. 7.1. Introducción a JMS. 7.2. Construcción y despliegue de un MDB. 8. DESPLIEGUE DE UN MÓDULO EJB. 9. PERSISTENCIA DE DATOS. 9.1. Entidades y persistencia. 9.2. El API EntityManager. 9.3. Empaquetado y despliegue de clases de entidad.

 

23

23

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)   

TUTORÍA MODALIDAD

TOTAL DÍAS

Presencial

1

DÍA

CONTENIDOS TEÓRICOS

64

Resolución de dudas

 

24

24

Desarrollador de Software Especialista en Tecnologías Java (IFCD04TIC)     

 

25

25

     

Módulo 1: Técnicas de Programación Estructurada    

 

26

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN

27

ÍNDICE LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN

1. Procesamiento de la información . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Tipos de datos básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .10 3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16

28

La informática y el manejo de la información Objetivos A lo largo de éste te mostraremos los dispositivos de almacenamiento de la memoria principal y las unidades de medida del ordenador, entre otros.

1. Procesamiento de la información Almacenamiento de la Información El almacenamiento de la información es una de las actividades o capacidades más importantes que tiene un ordenador. A través de esta propiedad el sistema puede recordar la información guardada en la sección o proceso anterior. Esta información suele ser almacenada en estructuras de información denominadas “archivos”.

i 3 29

La informática y el manejo de la información La información se almacena en las unidades típicas de almacenamiento externos o periféricos tales como discos magnéticos o discos duros, memorias USB y los discos compactos (CD-ROM), etc., en los cuales se almacenan de forma segura todos los programas o datos que el usuario desee. Los datos son introducidos por el fabricante del ordenador (instrucciones que carga el computador cuando enciende) y la memoria auxiliar o externa (almacenamiento). Para que se procese la información es imprescindible que todo ello, tanto instrucciones como datos sean cargados en la memoria central o principal. Memoria Central o Principal La memoria central o principal, se refiere a componentes de un ordenador, dispositivos y medios de grabación que retienen datos informáticos durante un intervalo de tiempo. Es uno de los componentes fundamentales de todos los ordenadores modernos que, acoplados a la Unidad Central de Proceso (CPU por su acrónimo en inglés, Central Processing Unit), implementa lo fundamental del modelo de ordenador de Von Neumann, usado desde los años 1940. La memoria central se divide en: MEMORIA CENTRAL - Memoria R.O.M - Memoria R.A.M Memoria RAM Es un tipo de memoria temporal que pierde sus datos cuando se queda sin energía (por ejemplo, al apagar el ordenador), por lo cual es una memoria volátil. Esto es cierto desde el punto de vista teórico: científicos de la Universidad de Princeton han descubierto una destrucción gradual de los datos almacenados en la memoria RAM que oscila entre unos segundos y varios minutos, siendo inversamente proporcional a la

i 4 30

La informática y el manejo de la información temperatura. Esto puede significar una brecha en la seguridad en tanto que las claves de acceso de cifradores de información como BitLocker quedan almacenadas en la memoria RAM.

Direccionamiento de la información El direccionamiento de la información es posible a través de 3 tipos de memorias: - Memoria de localización direccionable - Memoria de contenido direccionable - Memoria de sistema de archivos En la memoria de localización direccionable, cada unidad de información accesible individualmente en la memoria se selecciona con su dirección de memoria numérica. En los ordenadores modernos, la memoria de localización direccionable se suele limitar a memorias primarias, que se leen internamente por programas de ordenador ya que la localización direccionable es muy eficiente, pero difícil de usar para los humanos. Unidades de medida de almacenamiento El ser humano, siempre ha sentido la necesidad de medir todo lo que tiene a su alcance, como por ejemplo la distancia, el tiempo, el volumen y la velocidad, entre otros. La información, no podría ser la excepción,

i 5 31

La informática y el manejo de la información pues es necesario conocer cuánta información podemos almacenar en un dispositivo, o qué espacio disponible poseemos para guardar un archivo.

Información en el ordenador La técnica de informática no es algo natural, si una máquina, como es el ordenador, es capaz de guardar y representar datos, es porque alguien se ha inventado un procedimiento artificial para poder conseguir eso. El principio de funcionamiento de los ordenadores se basa en la facilidad que tienen los dispositivos electrónicos para manejar informaciones binarias. En cualquier caso, para el ordenador todas esas informaciones siempre se resumen en lo mismo, tensión o no tensión, 0 o 1. Sistema Binario Cuando un ordenador guarda su información en algún periférico, sustituye el estado de tensión / no tensión por estado como campo magnético/no magnético (discos magnéticos) o reflexión de la luz/no reflexión de la luz (discos ópticos), pero en cualquier caso siempre podemos interpretar que estamos tratando

i 6 32

La informática y el manejo de la información informaciones 0 o 1. Estas informaciones 0 o 1, independientemente de la naturaleza de la señal con la que estén representadas, es la que se llama dígito binario o bit. Un sistema como éste, que sólo maneja dos estados o dos signos, recibe el nombre de Sistema Binario, y a la información representada con estos dos signos o estados se le llama información.

Cómo opera la memoria del ordenador Para comprender mejor lo anteriormente expuesto, veamos el siguiente ejemplo. Imagina que cada una de las celditas de la tabla inferior es una posición de memoria y que la memoria es como cada uno de los cuadritos de una hoja de papel cuadriculada, con 160 posiciones de memoria. Cada una de estas posiciones esta identificada perfectamente por sus coordenadas.

i 7 33

La informática y el manejo de la información Como se puede observar una hoja cuadriculada está compuesta única y exclusivamente de cuadros, desde el principio hasta el final. En este caso tenemos una hoja que posee 160 cuadritos, que podría compararse con el espacio total disponible en la memoria RAM o en cualquier dispositivo de almacenamiento. Cada cuadro sería utilizado para colocar dentro un carácter, ya sea letra número o caracteres especiales. El Byte Un Byte está compuesto de 8 bits, el bit es la unidad más pequeña de este sistema de medida llamado Sistema Binario. El sistema métrico decimal se compone de 10 dígitos desde el 0 hasta el 9, pero el Sistema Binario solo se compone de dos dígitos que son el 0 y el 1. El 0 es un bit y el 1 es otro bit. Como cada carácter (letra, número, símbolo) corresponde a un BYTE (byte) entonces, por ejemplo, el 1 en binario sería así: 00000001. Estos 8 bit dan origen al BYTE.

En el ejemplo anterior, si la hoja cuadriculada fuera un diskette, entonces podríamos decir que ese diskette tiene un espacio total de 160 BYTES, que 99 BYTES han sido utilizados y que hay un espacio disponible en disco de uno 60 BYTES (sin considerar los blancos intercalados).

i 8 34

La informática y el manejo de la información Múltiplos y submúltiplos de la unidad Byte Igual que otras unidades de medida, la unidad byte también posee múltiplos y submúltiplos.

En la conversión de las medidas se utiliza una “aproximación” haciendo siempre los cálculos de 1000 en 1000, aunque la unidad BYTE no va de 1000 en 1000, sino de 1024 en 1024. Ej: 7 Kilobytes son realmente 7168 bytes (7 x 1024 = 7168), sin embargo, generalmente se calcula multiplicando (7 * 1000 =7000). Desde 1998, existen unidades especialmente orientadas a base 2 y no a base 10, destinadas al campo de la informática. El KB es 210, el MB es 220, el GB es 230, el TB es 240 y así sucesivamente.

i 9 35

La informática y el manejo de la información 2. Tipos de datos básicos En éste te mostraremos las diferentes categorías de datos y la manipulación de datos en la memoria principal.

Los datos Un dato se define como la expresión general que describe los objetos con que opera un ordenador. Los datos de entrada se transforman, después de las etapas intermedias, en datos de salida.

i 10 36

La informática y el manejo de la información Los datos se clasifican en diversas categorías, según el tipo de máquina o del lenguaje en uso. Generalmente podemos encontrar las siguientes categorías: -

NUMÉRICOS. LÓGICOS. CADENAS. COMPUESTOS.

Datos numéricos Los datos numéricos son aquellos que representan una cantidad o valor determinado. Son todos aquellos datos creados con posibilidades de realizar operaciones numéricas con ellos. Su representación se lleva a cabo en los formatos ya conocidos en las matemáticas (enteros, punto y fracciones decimales si éstas existen). A partir de estos Tipos de datos básicos el programador definirá en sus programas constantes y variables para dar solución a determinadas funcionalidades que deberá desarrollar y comprobar Los datos numericos pueden representarse de dos formas distintas: - Tipo numérico ENTERO - Tipo numérico REAL Datos alfanuméricos o cadena de caracteres Las cadenas de caracteres son los datos que representan información textual (palabras, frases, símbolos, etc.) es decir, datos alfanuméricos.

i 11 37

La informática y el manejo de la información No representan valor alguno para efectos numéricos. Pueden distinguirse porque son delimitados por apóstrofes o comillas. Se suelen clasificar en dos categorías en la mayoría de los lenguajes de programación actuales: - Datos tipo CARÁCTER (Char) - Datos tipo CADENA ALFANUMERICA (String) Datos lógicos También se los denomina boléanos (booleanos o boolean). Son aquellos datos que sólo pueden tomar uno de dos valores: falso ó verdadero (false o true). Este tipo de datos se utiliza para representar las alternativas (verdadero/falso) a determinadas condiciones. Por ejemplo: - Cuando se pide si un valor entero es primo, la respuesta será verdadera o falsa, según sea el número primo o no lo sea - Si digo que el número: -32 es positivo esto será FALSO.

(3>2)= Verdadero (7>9)= Falso

i 12 38

La informática y el manejo de la información Datos constantes y variables Los datos también se pueden clasificar en función de si sus contenidos se pueden modificar o no a lo largo de toda la ejecución de un programa, así pues, podemos diferenciar entre constantes y variables. En ambos casos se asocian a direcciones de memoria donde el procesador guarda la información para su proceso posterior. Datos constantes Tienen un valor fijo que se le da cuando se define la constante y que ya no puede ser modificado durante la ejecución. Las constantes pueden llevar asociadas un nombre o no, si no lo llevan, se llaman literales. El tipo, dependiendo de los lenguajes hay que ponerlo, y en otros no hace falta ponerlo porque toma el tipo del dato que se le asigna. Datos variables Su valor puede cambiar durante la ejecución del algoritmo, pero nunca varía su nombre y su tipo. Deben tener un nombre, y debe ser un nombre significativo. Tiene que empezar por una letra, y el tamaño depende del lenguaje.

i 13 39

La informática y el manejo de la información Características de los datos Los datos es una expresión general que describe los objetos con los que opera el ordenador. La información de entrada-salida se clasifica y se convierte en datos para hacerlos más manejables. Los algoritmos y programas que crean los programadores operan con estos datos para obtener unos resultados. De esta forma los datos de entrada se transforman por el programa en las etapas intermedias para generar los datos de salida, es decir unos resultados. - Tienen un nombre asignado por el programador que los diferencia del resto de datos del programa. - Tienen asociado un tipo de dato que determina y restringe qué tipo de operaciones podemos hacer con estos tipos de datos. - Se les puede cargar con un valor inicial que puede variar o no a lo largo del proceso. - Cada uno de estos datos tiene una longitud y una dirección de almacenamiento en memoria que se le asigna el sistema durante la fase de compilación (la cual en la actualidad es transparente para el programador).

i 14 40

La informática y el manejo de la información Manipulación de Datos en la Memoria Principal Veamos un ejemplo de manipulación de datos en la memoria tal cual lo haría el ordenador al ejecutar un programa:

Los datos definidos y usados por el programa, quedarían representados de la siguiente manera en la memoria RAM del ordenador.

Datos en memoria antes de la ejecución del programa

Datos en memoria después de la ejecución del programa

i 15 41

La informática y el manejo de la información 3. Resumen Has llegado al final de esta lección de formación que denominamos “La informática y el manejo de la información”. En esta lección hemos estudiado los siguientes contenidos:

i 16 42

SISTEMAS DE NUMERACIÓN Y CODIFICACIÓN DE LA INFORMACIÓN

43

ÍNDICE SISTEMAS DE NUMERACIÓN Y CODIFICACIÓN DE LA INFORMACIÓN

1. Sistemas de numeración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Codificación de la información y formatos de almacenamiento . . . . . . . . . . . . . . . . . . . . . . .19 3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33

44

Sistemas de numeración y codificación de la información 1. Sistemas de numeración Objetivos A lo largo éste te mostraremos los diferentes sistemas de numeración que utiliza el ordenador, cambio de bases y operaciones aritméticas básicas de los sistemas binario y hexadecimal y conversiones entre los diferentes sistemas.

Introducción a los sistema de numeración Tanto el hombre como el ordenador trabajan con sistemas de numeración. El hombre en su vida cotidiana trabaja desde el punto de vista numérico con el sistema decimal y desde el punto de vista alfabético con un determinado idioma. 0123456789

i 3 45

Sistemas de numeración y codificación de la información Asimismo, el ordenador debido a su construcción, lo hace desde ambos puntos de vista con el sistema binario, utilizando una serie de códigos que permiten su perfecto funcionamiento. 0 1

Sistemas de numeración del ordenador Tanto el sistema decimal como el binario están basados en los mismos principios. En ambos, la representación de un número se efectúa por medio de cadenas de símbolos, los cuales representan una determinada cantidad dependiendo del propio símbolo y de la posición que ocupa dentro de la cadena. Los sistemas de numeración que utiliza la computadora son: el Sistema Binario, el Decimal, el Octal y el Hexadecimal:

i 4 46

Sistemas de numeración y codificación de la información A continuación revisaremos el sistema binario y hexadecimal. Repasaremos el sistema decimal como medio de comparación y comprensión de los demás sistemas de numeración. Todo ello con el objetivo de poder garantizar una mayor comprensión a la hora de manejar un sistema informático. El Sistema Decimal El sistema decimal es uno de los denominados sistemas posicionales, utilizando un conjunto de símbolos cuyo significado depende fundamentalmente de su posición relativa al símbolo coma (,), denominado coma decimal, que en caso de ausencia se supone colocada implícitamente a la derecha. Utiliza como base el 10, que corresponde al número de símbolos que comprende para la representación de cantidades. Estos símbolos (también denominados dígitos) son: 0123456789 Estos dígitos pueden tener un valor absoluto o valor relativo. Sistema de Numeración Posicional El valor relativo posicional se deduce a partir del Teorema Fundamental de la Numeración (TFN). Éste indica que en cualquier sistema de numeración posicional todos los números pueden expresarse mediante la siguiente suma de productos:

i 5 47

Sistemas de numeración y codificación de la información Es decir que una determinada cantidad, que llamaremos numero decimal, se puede expresar así:

A partir de esta formula podemos saber cuál es el valor relativo de cualquier dígito dentro de una cifra en función de la posición que ocupa. Imaginémonos una cifra constituida por 12 cincos, sus valores relativos serían:

Por ello, la cifra 5902 es igual a: 5 * 10³ + 9 * 10² + 0 * 10¹ + 2 * 10° Teorema Fundamental de la Numeración (TFN) El Teorema Fundamental relaciona una cantidad expresada en cualquier sistema de numeración con la misma cantidad expresada en el sistema decimal: “El valor en el sistema decimal de una cantidad expresada en otro sistema cualquiera de numeración, viene dado por la fórmula”

i 6 48

Sistemas de numeración y codificación de la información Donde “X” es el dígito y la “B” la base. Este teorema es fundamental en informática, ya que los ordenadores únicamente trabajan con el sistema binario es decir, con ceros y unos.

Origen del Sistema Numérico del ordenador El sistema numérico binario fue el escogido por los ingenieros informáticos para el funcionamiento de los ordenadores, porque era más fácil para el sistema electrónico de la máquina distinguir y manejar solamente dos dígitos, o sea, el "0" y el "1" que componen el sistema numérico binario, en lugar de los diez dígitos (del 0 al 9), que constituyen el sistema numérico decimal.

i 7 49

Sistemas de numeración y codificación de la información De no haber existido el sistema matemático binario, el desarrollo de una tecnología para que los ordenadores pudieran funcionar empleando el sistema decimal, hubiera sido tan costosa que los ordenadores no hubieran estado siquiera al alcance de la mayoría de las empresas, tal como ocurría con las voluminosas computadoras o “mainframes” que se utilizaron a partir de los años 50 del siglo pasado. El Sistema Binario La mayoría de los circuitos electrónicos que conforman un ordenador sólo puede detectar la presencia o ausencia de tensión en el circuito. A la presencia de tensión en un punto del circuito le asignamos el valor 1 y a la ausencia de la misma el valor (lógica positiva).

Los ordenadores son digitales, esto quiere decir que la información se guarda como cadenas de unos y ceros, sí o no (dígitos). Ya que el hardware por el momento sólo reconoce estos dos estados, se creó el Sistema Binario, cuya base por lo tanto es 2 (número de dígitos del sistema).Cada dígito de un número representado en este sistema se denomina bit (binary digit) Ejemplo: 1 00010011101111000000111000011110

i 8 50

Sistemas de numeración y codificación de la información Suma y resta binaria Para comprender mejor lo anterior, a continuación veremos algunas operaciones básicas con binarios: la suma y la resta. Suma Binaria Es semejante a la suma en el sistema decimal, con la diferencia de que se manejan sólo 2 dígitos (0 y 1), y que cuando el resultado excede de los símbolos utilizados se agrega el exceso (acarreo) a la suma parcial siguiente hacia la izquierda. Veamos en el cuadro de abajo las tablas de sumar en binario.

Como ejemplo, realizamos un paralelo a la aritmética binaria su equivalente en decimal:

9 51

Sistemas de numeración y codificación de la información Resta Binaria La resta binaria es similar a la decimal con la diferencia de tener sólo 2 dígitos y que al realizar las restas parciales entre 2 dígitos, 1 del minuendo y otro del sustraendo, si el segundo excede al primero, se sustrae una unidad del dígito de más a la izquierda en el minuendo (si existe y vale 1), convirtiéndose este último en 0 y equivaliendo la unidad extraída a 1 * 2 en el minuendo de resta parcial que estamos realizando. Si es 0 el dígito siguiente a la izquierda, se busca en los sucesivos teniendo en cuenta que su valor se multiplica por 2ª cada desplazamiento a la derecha.

Ejemplo

10 52

Sistemas de numeración y codificación de la información Resta por complemento Un truco para hacer la resta sin complicaciones es convertir el número a restar en su contrario, en su “complemento” (es decir, cambiar los unos por ceros y los ceros por unos, excepto el número de la derecha) y después realizamos la suma de los dos números. Con ello en lugar de hacer una resta directamente, estamos recurriendo a la suma que parece más sencilla. Ejemplo

Cambiamos el sustraendo por su complemento a 2. El complemento a 2 de un número binario es el complemento a 1 más 1. Para este número nos quedaría así: 0 1 0 0 1 0 1 La resta se convierte en la siguiente suma:

Y nos sale el mismo resultado que si hacemos la resta.

i 11 53

Sistemas de numeración y codificación de la información Complemento a uno y a dos El complemento a uno de un número N, compuesto por n bits es, por definición, una unidad menor que el complemento a dos: Es decir: C1N = C2N – 1 y, por la misma razón: C2N = C1N + 1 Calculemos el complemento a uno del número 101101: N = 101101, y su complemento a dos C2N = 01001 C1N = C2N – 1 = 010011 – 000001 = 010010 C1N = 010010 El complemento a uno de un número binario es el número resultante de invertir los UNOS y CEROS de dicho número. Ejemplo Si: N = 110100101, obtenemos su complemento a uno invirtiendo ceros y unos, con lo que resulta: C1N = 001011010 Y su complemento a dos es: C2N = C1N + 1 = 001011011 Sistema de Numeración Hexadecimal En el sistema hexadecimal los números se representan con dieciséis símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F. Se utilizan los caracteres A, B, C, D, E y F representando las cantidades decimales 10, 11, 12, 13, 14 y 15 respectivamente (porque no hay dígitos mayores que 9 en el sistema decimal). El valor de cada uno de estos símbolos depende, como es lógico, de su posición, que se calcula mediante potencias de base 16.

i 12 54

Sistemas de numeración y codificación de la información Es posible para los humanos trabajar con este sistema de numeración tan complejo conociendo las equivalencias y transformaciones posibles. Como sabemos cualquier dígito de un número del sistema hexadecimal, como en el sistema decimal, tiene un valor relativo o posicional en función de la base 16.

Por ello, el número hexadecimal 2CA equivale al 714 en decimal:

Suma y resta en el Sistema Hexadecimal Ejemplo de suma en Hexadecimal

i 13 55

Sistemas de numeración y codificación de la información Ejemplo de resta en Hexadecimal

Cuadro de conversiones directas Como recordarás, el Teorema Fundamental de la Numeración afirma qué cantidad expresada en cualquier sistema de numeración se puede convertir a cualquier otro sistema de numeración obteniéndose valores perfectamente equivalentes. Para convertir un numero en b1 a otra base cualquiera b2, hay que pasarlo primero a base 10 y luego a la base deseada. A continuación se muestra un recuadro con las conversiones más directas:

14 56

Sistemas de numeración y codificación de la información Conversión Decimal-Binario Para la conversión de decimales a binarios se hacen divisiones sucesivas por 2 y como resultado se recoge el último cociente y todos los restos, colocándolos en orden inverso a como se obtuvieron. Ejemplo: Convertir el número decimal 1992 a binario.

Conversión Decimal-Hexadecimal Para la conversión de decimales enteros a hexadecimal, recurrimos al método de las divisiones sucesivas por 16.

i 15 57

Sistemas de numeración y codificación de la información Se divide el número decimal y los cocientes sucesivos por 16 hasta obtener un cociente igual a cero. El número hexadecimal buscado será el compuesto por todos los restos obtenidos en orden inverso a su obtención. Ejemplo: Convertir el número decimal 1000 a hexadecimal.

Conversión Binario-Hexadecimal La conversión de números binarios a hexadecimales se realiza "expandiendo" o "contrayendo" cada dígito hexadecimal a cuatro dígitos binarios. Por ejemplo, para expresar en hexadecimal el número binario 1010011100112 bastará con tomar grupos de cuatro bits, empezando por la derecha, y reemplazarlos por su equivalente hexadecimal:

i 16 58

Sistemas de numeración y codificación de la información En caso de que los dígitos binarios no formen grupos completos de cuatro dígitos, se deben añadir ceros a la izquierda hasta completar el último grupo. Por ejemplo:

Ejemplo de transformación directa, agrupando de 4 en 4 bits:

Conversión Hexadecimal-Binario La conversión de números hexadecimales a binarios se hace del mismo modo, reemplazando cada dígito hexadecimal por los cuatro bits equivalentes de la tabla. Para convertir a binario, por ejemplo, el número hexadecimal 1F616 hallaremos en la tabla las siguientes equivalencias

i 17 59

Sistemas de numeración y codificación de la información

Otro ejemplo de transformación directa apoyándonos en la tabla de equivalencias de arriba, 4 bits por cada hexadecimal.

i 18 60

Sistemas de numeración y codificación de la información 2. Codificación de la información y formatos de almacenamiento Los códigos a través de la historia I En éste te mostraremos las diferentes códigos utilizados por los ordenadores, ejemplos de su representación y los formatos internos de almacenamiento de datos en la memoria.

Código es el término genérico para nombrar las instrucciones del programa, utilizadas en dos sentidos generales: código fuente y código máquina ejecutable. El ordenador no fue el primer dispositivo en utilizar este recurso. En la década de los años 50, las grandes empresas utilizaron ampliamente las máquinas tabuladoras IBM para realizar listados y cálculos de contabilidad, hasta que fueron sustituidas por los ordenadores personales de mesa o PCs. Esas máquinas empleaban tarjetas perforadas para tabular los datos.

i 19 61

Sistemas de numeración y codificación de la información Las tarjetas IBM (también conocidas como tarjetas de código Hollerith), tenían 80 columnas a todo lo ancho con doce posiciones predeterminadas en cada una de las columnas para ubicar las perforaciones. Por medio de una máquina perforadora provista de un teclado de máquina de escribir, se introducían los datos perforando las tarjetas. Una sola perforación en una columna correspondía a un número, mientras que dos perforaciones en diferentes posiciones de una misma columna correspondían a una letra. Los códigos a través de la historia II En la década de 1960, se adoptó el código ASCII como nuevo estándar. ASCII es un código de caracteres basado en el alfabeto latino tal como se usa en inglés moderno y en otras lenguas occidentales.

Fue creado en 1963 por el Comité Estadounidense de Estándares (ASA, conocido desde 1969 como el Instituto Estadounidense de Estándares Nacionales, o ANSI) como una refundición o evolución de los conjuntos de códigos utilizados entonces en telegrafía. Más tarde, en 1967, se incluyeron las minúsculas, y se redefinieron algunos códigos de control para formar el código conocido como US-ASCII.

i 20 62

Sistemas de numeración y codificación de la información ASCII fue publicado como estándar por primera vez en 1967 y fue actualizado por última vez en 1986. En la actualidad define códigos para 33 caracteres no imprimibles, de los cuales la mayoría son caracteres de control obsoletos que tienen efecto sobre cómo se procesa el texto, más otros 95 caracteres imprimibles que les siguen en la numeración (empezando por el carácter espacio). El Código ASCII Un mapa de caracteres ASCII es una manera de mantener todos los caracteres imprimibles o mostrados por pantalla en una lista.

Para formar cada carácter alfanumérico, es decir una letra, número o signo, los ingenieros informáticos, después de realizar muchas pruebas, optaron por combinar ocho bits o cadena de ceros y unos para formar un “octeto” al que denominaron “byte”. A cada carácter alfanumérico le asignaron un byte de información y estructuraron 256 valores binarios distintos en un código que llamaron ASCII.

i 21 63

Sistemas de numeración y codificación de la información En el Código ASCII los valores binarios entre 0 y 31 corresponden a instrucciones, entre 32 y 127 corresponden al alfabeto alfanumérico y entre 128 y 255 a caracteres de otros idiomas y signos menos convencionales

22 64

Sistemas de numeración y codificación de la información El Código ASCII y su equivalencia en Binario Cada uno de los caracteres alfanuméricos del Código ASCII equivale a un Byte de información, aunque el número binario correspondiente al decimal no ocupe ocho cifras. En el código binario, el número “0” corresponde igualmente al "0" y el “255” al "1111 1111". En la tabla podemos ver la representación de algunos números decimales y sus equivalentes en Binario y en Octeto formando Bytes en código ASCII.

El código ASCII comprende sólo hasta el número decimal 255, porque a partir de ahí, el número 256 en binario pasa a ser 1 0000 0000, sobrepasando los ocho dígitos requeridos para completar un byte de información.

i 23 65

Sistemas de numeración y codificación de la información Origen del Código EBCDIC El Código EBCDIC tiene como objetivo la representación de caracteres alfanuméricos, controles y signos de puntuación. Cada carácter está compuesto por 8 bits = 1 byte, por eso EBCDIC define un total de 256 caracteres. Gracias a él, será posible almacenar letras mayúsculas, caracteres especiales, etc. , para los dispositivos de E/S. Aunque EBCDIC no se utiliza mucho en las microcomputadoras, es conocido y aceptado internacionalmente, sobre todo como código de IBM para los mainframes y minicomputadoras de la compañía. Fue ideado entre 1963 y 1964 IBM y anunciado con el lanzamiento de la línea de ordenadores IBM System/360. IBM adaptó el EBCDIC del código de tarjetas perforadas y lo promulgó como una táctica de control de clientes cambiando el código estándar ASCII ampliándolo a 256 caracteres.

i 24 66

Sistemas de numeración y codificación de la información Características del Código EBCDIC Cuando fue ideado, el EBCDIC hizo relativamente fácil incorporar datos en un ordenador con las tarjetas perforadas. Puesto que estas tarjetas han quedado obsoletas, el EBCDIC se utiliza en arquitecturas modernas solamente para la compatibilidad con aparatos antiguos. Características - No tiene ninguna ventaja técnica sobre las páginas de código ASCII, tales como la serie ISO-8859. - La mayoría de los codepages de EBCDIC permiten utilizar solamente hasta 2 idiomas (inglés y otra lengua) en un archivo de base de datos o de texto. - Cuando se requiere utilizar texto multilingüe, es necesario un sistema de apoyo con más caracteres, generalmente una versión de Unicode. - Existen muchas versiones ("codepages") de EBCDIC con caracteres diferentes, respectivamente sucesiones diferentes de los mismos caracteres. Por ejemplo, al menos hay 9 versiones nacionales de EBCDIC con Latín 1 caracteres con sucesiones diferentes. - Para ver los valores del código EBCDIC más utilizados en programación y edición de programas - Para ver la equivalencia de la mayoría de los caracteres que se utilizan, tanto en el código ASCII como en el código EBCDIC,

25 67

Sistemas de numeración y codificación de la información

Cómo se traduce la información en Códigos ASCII y EBCDIC A continuación veamos cómo se traduce la información en los diferentes códigos que acabamos de ver. La siguiente tabla nos muestra cómo está subdividido un OCTETO de cara a la construcción de los distintos valores de los distintos códigos existentes:

i 26 68

Sistemas de numeración y codificación de la información Por ejemplo, cuando se escribe en el teclado la letra “A” mayúscula, se generan automáticamente 8 bits u octeto, equivalentes a un byte, que representan esa letra. El código numérico que se genera, para que el ordenador reconozca que se ha escrito la letra “A” , es: 0100 0001. Cada uno de los bits correspondientes a los dígitos “1” contenidos en ese byte de información generan pulsos eléctricos, mientras que los representados por el dígito “0” no generan prácticamente ningún pulso eléctrico. Según lo anterior, veamos cómo quedaría almacenada en código ASCII y en código EBCDIC una frase con el texto siguiente “ LA PROGRAMACION ES TAN FACIL COMO ====> 1 + 1 = 2 ” Traducido a Código ASCII

i 27 69

Sistemas de numeración y codificación de la información Traducido a Código EBCDIC

Orden de datos en función del código En cualquier circuito electrónico digital, como el que posee el ordenador, el bit “0” puede estar en ocasiones cercano a “0” volt y el bit “1” cercano a 3 ó 5 volt, de forma tal que la tensión o voltaje que pueda llegar a tener el dígito “0” nunca llegará a alcanzar un valor alto, ni el dígito “1” un valor muy bajo.

i 28 70

Sistemas de numeración y codificación de la información Gracias a ese mecanismo el circuito digital puede diferenciar perfectamente el valor correspondiente a estos dos dígitos sin equivocarse, por lo que el riesgo de que se produzcan confusiones o errores a la hora de reconocer el valor de ambos es prácticamente nula. Combinación de pulsos y no pulsos eléctricos 0100 0001 I MEMORIA RAM I A Cuando la memoria RAM del ordenador recibe una combinación de pulsos y no pulsos eléctricos correspondientes a los unos y los ceros que forman el byte 0100 0001, reconoce que le están enviando el código correspondiente a la letra “A”. De esa forma lo descifra y retiene como tal, permitiendo, a su vez, que esa letra se pueda representar en la pantalla del monitor. Formatos internos de almacenamiento de los datos en memoria. Ahora veremos los tres formatos clásicos de almacenamiento que existen para guardar los datos en memoria. Ello nos dará una mejor idea de cómo funcionan los bits y los bytes en el ordenador. Existen distintos formatos de almacenamiento de datos. Estos formatos son:

i 29 71

Sistemas de numeración y codificación de la información 1. FORMATO ZONA para valores alfanuméricos A razón de 1 carácter por octeto. (Cada uno de los caracteres del código EBCDIC ó ASCII se almacenan en un BYTE de memoria).

2. FORMATO ZONA para valores numéricos El signo +, - o absoluto se localiza en los 4 primeros bits del último octeto de la cifra, de esta forma:

Signo + = Signo = Signo absoluto =

C D F

1100 1101 1111

i 30 72

Sistemas de numeración y codificación de la información 3. FORMATO DE ALMACENAMIENTO EMPAQUETADO para valores numéricos Se almacenan a razón de 2 dígitos por octeto, excepto el octeto extremo derecha que contiene un sólo dígito y el signo.

El signo: +, -, o absoluto, se localiza en los 4 últimos bits del último octeto de la cifra, con las mismas configuraciones de bits que en FORMATO ZONA (C, D o F).

i 31 73

Sistemas de numeración y codificación de la información 4. FORMATO DE ALMACENAMIENTO BINARIO PURO para valores numéricos Es el formato que más se utiliza en los lenguajes más recientemente creados. Los valores numéricos son almacenados en formato binario puro. Es decir, el valor numérico decimal, antes de almacenarse es traducido al sistema numérico en base 2 (ceros y unos). Son campos de "longitud fija" a razón de: 2 Octetos: 4 Octetos: 8 Octetos:

Media palabra (de 1 a 4 dígitos) Una palabra (de 5 a 9 dígitos) Doble palabra (de 10 a 18 dígitos)

El signo: + o - , se localiza en este tipo de campos en el primer bit del primer octeto de la izquierda. Véase el ejemplo:

i 32 74

Sistemas de numeración y codificación de la información 3. Resumen Has llegado al final de esta lección de formación que denominamos “Sistemas de numeración y codificación de la información”. A continuación te invitamos a realizar un repaso de los contenidos estudiados a lo largo de la misma.

i 33 75

INTRODUCCIÓN A LA PROGRAMACIÓN

76

ÍNDICE INTRODUCCIÓN A LA PROGRAMACIÓN

1. Estructura de un Programa: Datos e Instrucciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Flujogramas y Pseudocódigos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 3. Elementos básicos de programación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 4. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .29

77

Introducción a la programación 1. Estructura de un Programa: Datos e Instrucciones Objetivos

A lo largo de éste te mostraremos qué es un programa y sus características. Programas del ordenador Un ordenador, básicamente es capaz de realizar solo tres cosas: operaciones aritméticas muy básicas, operaciones de tipo lógico (comparar dos valores) y almacenar o recuperar (copiar) información. Estas tres operaciones convenientemente ligadas entre sí forman lo que llamamos programas.

i 3 78

Introducción a la programación Un programa en definitiva es un conjunto de órdenes que ejecuta el ordenador para conseguir un objetivo. Las órdenes se dan a través de un lenguaje de programación (códigos). Esencialmente un programa es un conjunto de instrucciones destinadas a realizar una tarea. De forma general este conjunto de instrucciones toma unos datos de entrada y devuelve unos datos de salida, unos resultados. Un ordenador funciona bajo control de un programa que debe estar almacenado en la unidad de memoria masiva, como puede ser un disco duro, un disquete, un disco óptico, etc. Este software, o parte de él, es cargado en la memoria electrónica del ordenador para su posterior ejecución. Fases del diseño y creación de programas Puesto que el objetivo de un programa es realizar una tarea, ésta debe ser hecha en un tiempo finito. Además es razonable pensar que dados unos mismos datos de entrada al programa siempre se obtengan unos mismos datos de salida, ya que el programa está destinado a realizar una tarea definida explícitamente. Así pues, para nuestros propósitos, un programa debe cumplir con el algoritmo a partir del cual se diseño. Cualquier conjunto de instrucciones que no cumpla esto será considerado como un programa incorrecto o simplemente no será considerado como tal.

i 4 79

Introducción a la programación Especificaciones de los programas El programador debe establecer el conjunto de especificaciones que debe contener el programa y las entradas, salidas y algoritmos de resolución que incluirán las técnicas para obtener las salidas a partir de las entradas. Se debe establecer de dónde provienen las entradas al programa, es decir, los dispositivos de entrada como el teclado, disco, etc. Las salidas de datos se deben presentar en dispositivos de salida como impresora, monitor o disco.

i 5 80

Introducción a la programación Instrucciones de los programas El proceso de algoritmo o de codificación del programa consiste en definir las acciones o instrucciones que resolverán el problema. Las instrucciones se deben escribir y almacenar en memoria en el mismo orden en el que han de ejecutarse es decir en secuencia. Un programa puede ser lineal o no lineal, el lineal es el que las instrucciones se den en secuencia sin bifurcación, no lineal es si tienen bifurcación. Tipos de instrucciones Las instrucciones son las acciones básicas que se pueden implementar de manera general en un algoritmo y que esencialmente soportan todos los lenguajes (son independientes del lenguaje de codificación). -

Instrucciones Instrucciones Instrucciones Instrucciones

de de de de

inicio/fin asignación lectura escritura

Para diseñar o crear nuestros programas podemos recurrir a dos herramientas básicas, los diagramas de flujo y los pseudocódigos que veremos a continuación.

i 6 81

Introducción a la programación 2. Flujogramas y Pseudocódigos Diagrama de flujo: Ordinograma Uno de los procedimientos más conocidos y utilizados para resolver problemas se llama Diagrama de Flujo o Flujogramas. Hasta la década de los 90 era uno de las más usados y aún cuando en la actualidad esta técnica no es la más adecuada, debido a su sencillez es una de las más utilizadas. Uno de los diagramas de flujos más utilizado es el ordinograma.

Ordinograma es un diagrama de flujos que muestra la secuencia lógica y detallada de las operaciones que necesitamos para la realización de un programa.

En programación, antes de escribir un programa en un lenguaje de programación específico (C, Pascal, COBOL, etc.), es conveniente diseñar un algoritmo para definir los pasos o acciones que debe llevar a cabo el programa en cuestión. Pues bien, dicho algoritmo se suele diseñar utilizando pseudocódigo o, también, un ordinograma. Mediante un ordinograma se puede representar el mismo algoritmo, pero, de manera gráfica. Como suele decirse “una imagen vale más que mil palabras”.

i 7 82

Introducción a la programación Características de un Ordinograma El Ordinograma es independiente del lenguaje de programación que usemos y debe estar compuesto por:

Los elementos básicos para crear Ordinogramas, son bastante intuitivos y se entienden con bastante facilidad. Observa el resumen de los símbolos más importantes.

i 8 83

Introducción a la programación Reglas de un Ordinograma A la hora de hacer un Ordinograma, se deben respetar ciertas reglas: - Todos los símbolos utilizados deben estar unidos por líneas de flujo solo horizontales y/o verticales. - No se pueden cruzar las líneas de flujo. Evitar los cruces. - No deben quedar líneas de flujo sin conectar. - A un símbolo de proceso pueden llegarle varias líneas de flujo pero sólo puede salir una de él. - Al símbolo de inicio no puede llegarle ninguna línea de flujo - De un símbolo de fin no puede salir ninguna línea de flujo pero sí le pueden llegar varias. - Se deben trazar los símbolos de manera que se pueda leer de arriba abajo y de izquierda a derecha.

Este símbolo se utiliza para representar la pantalla del ordenador

i 9 84

Introducción a la programación Ejemplo de un Ordinograma Veamos otro ejemplo de diseño utilizando diagramas de flujo para dar solución al algoritmo de calcular áreas de triángulos. En este ejemplo, suponemos que a partir de un fichero con información de Identificación del triángulo además de la base y la altura de distintos triángulos, se irán leyendo los distintos registros con esta información y se irá grabando en el dispositivo de salida el área de cada uno de esos triángulos. El proceso continuará hasta que se terminen de leer todos los registros del fichero.

i 10 85

Introducción a la programación Veamos cómo quedaría el mismo algoritmo diseñado con un algoritmo rudimentario:

Tipos de instrucciones usando Ordinogramas A continuación se muestran los tres tipos de instrucciones que usaremos para diseñar todos nuestros programas utilizando los ordinogramas.

i 11 86

Introducción a la programación Y aquí tenemos dos formatos de instrucciones repetitivas:

Flujograma v/s Pseudocódigo Cuando logremos habilidad para desarrollar programas, es posible que no recurramos a los diagramas de flujo y que en su lugar prefiramos hacer directamente el pseudocódigo del programa. Flujograma Cuando sabemos cómo resolver un problema podemos planificar y dibujar gráficamente la lógica de la alternativa seleccionada que da solución al problema. Eso es precisamente un diagrama de flujo: la representación gráfica de una secuencia lógica de pasos a cumplir por el ordenador para producir un resultado esperado. Pseudocódigo La experiencia nos ha demostrado que resulta muy útil trasladar esos pasos lógicos planteados en el diagrama a frases que indiquen lo mismo, es decir, hacer una codificación del programa pero utilizando instrucciones en español, como si le estuviéramos hablando al ordenador, ordenándole qué es lo que tiene que hacer. Esto es lo que denominamos Pseudocódigo. El pseudocódigo utiliza palabras que nos indicarán el proceso a realizar.

i 12 87

Introducción a la programación Ventajas del Pseudocódigo y Flujograma En la programación estructurada, la técnica desarrollada para la resolución de problemas es el pseudocódigo y es la herramienta base de diseño en la programación actual. Ventajas del uso de un Pseudocódigo en un diagrama de flujo -

No se requieren símbolos ni líneas de flujo. Cada instrucción es expresada en lenguaje cotidiano. Ocupa menos espacio en una hoja de papel. Las alteraciones en la secuencia del algoritmo son reflejadas por medio de palabras reservadas. Permite representar en forma fácil operaciones repetitivas complejas. - Es muy fácil pasar el pseudocódigo a un programa en alguno de los lenguajes de programación actuales. - Fácil comprensión, fácil seguimiento y fácil corrección y modificación. Si se siguen las reglas se puede observar claramente los niveles que tiene cada operación. Ventajas del uso de un Flujograma en un Pseudocódigo - Cuando se tiene poca experiencia en programación, es mucho más claro y más intuitivo. - Una imagen vale más que mil palabras. Son más fáciles de entender. Ejemplo comparativo Veamos un ejemplo para clarificar esta comparativa entre flujograma y pseudocódigo:

i 13 88

Introducción a la programación Diseño del algoritmo Pseudocódigo 1. 2. 3. 4. 5. 6. 7.

Inicio Escribir “Área de un triangulo” Leer a, b, c Calcular s=(a+b+c)/2 Calcular A= √(s(s-a)(s-b)(s-c)) Escribir A Fin

Flujograma

i 14 89

Introducción a la programación 3. Elementos básicos de programación En éste recordaremos los elementos típicos de los lenguajes de programación y los tipos de operadores, entre otros. Como hemos visto a lo largo de este curso, para el diseño de programas son necesarios una serie de elementos. Recordemos cuáles son éstos:

A continuación haremos una breve revisión de cada uno de ellos.

i 15 90

Introducción a la programación Palabras claves e identificadores Recordemos en qué consisten las palabras claves e identificadores. Las palabras claves son características de cada lenguaje de programación, aunque muchas son comunes a muchos lenguajes. Todos los lenguajes tienen palabras reservadas y su utilización tiene un misión previamente establecida. Veamos como ejemplo las 32 palabras reservadas que utiliza el lenguaje C, muchas de las cuales son comunes a JAVA. Palabras claves:

Identificadores:

i 16 91

Introducción a la programación Identificadores son palabras escogidas por el programador para nombrar elementos particulares del programa. Podemos considerar que son sinónimos de los datos. Todos los lenguajes tienen unas reglas para dar nombres válidos a los datos. Suelen ser combinaciones de letras y números que comienzan por una letra. Pueden usarse guiones para aportar claridad. Veamos algunos ejemplos tanto válidos como inválidos para la mayoría de los lenguajes. Datos Los datos constituyen la información que procesará el programa. Podemos nombrar datos de cualquier lenguaje de programación: numéricos, alfanuméricos o de carácter y lógicos (booleano), y están identificados gracias a: - LUGAR DE ALOJAMIENTO: Nombre, longitud del campo. - CARACTERISTICAS: Clase o tipo, formato y uso del dato. - Y PERTENENCIA: A qué familia de datos pertenece para datos compuestos. Los datos se pueden subdividir en los siguientes campos: - Simples -Compuestos o registros

i 17 92

Introducción a la programación

Constantes y variables Constantes Las constantes son datos que no modifican su valor a lo largo del programa. Todas las constantes tienen un nombre y un valor asociado.

i 18 93

Introducción a la programación Variables Las Variables son datos cuyo valor se va modificando a lo largo del programa. Su valor cambia o varía durante los procesos del algoritmo. Toda variable tiene un nombre y un valor asociado.

Las variables dentro de un programa pueden tener muchas utilidades. Por ello, en función de qué uso les demos pueden clasificarse como: - Variables de trabajo. - Contadores. - Acumuladores. - Índices o indicadores. - Switch o interruptores. Operadores Los Operadores son símbolos que representan las distintas operaciones que se pueden realizar con los datos: aritméticas, alfanuméricas, de asignación, relacionales, lógicos, etc.

i 19 94

Introducción a la programación Orden de prioridad de todos los operadores Los operadores no los utilizamos aisladamente, sino que solemos utilizar más de uno en una misma expresión compleja. En este caso tendremos que tener en cuenta las normas de preferencia para no encontrarnos con resultados no deseados. Estas normas dependen del lenguaje utilizado, pero de forma general se puede establecer de mayor a menor prioridad de la siguiente forma: 1. 2. 3. 4. 5.

Paréntesis (comenzando por los más internos) Signo Potencia Producto, división y módulo Suma y resta

6. Concatenación 7. Relacionales 8. Negación NOT 9. Conjunción AND 10. Disyunción OR

20 95

Introducción a la programación Instrucción o sentencia Las instrucciones o sentencias, son elementos que realizan alguna acción en concreto, es decir, son expresiones que por sí solas llevan a cabo una tarea. Serán instrucciones secuenciales, alternativas o bucles. Las expresiones son una combinación de palabras claves, datos y operadores. Una expresión en cualquier lenguaje de programación es cualquier combinación de operadores, constantes y variables. Existen distintos tipos de expresiones: - Aritméticas - Relacionales - Lógicas Expresiones aritméticas En el mundo real tenemos que trabajar con las matemáticas, y por ello debemos saber cómo las distintas proposiciones y formulas matemáticas se introducen en el ordenador para que las ejecute correctamente. Los operadores son expresiones que nos permiten manipular los datos que les pasamos, cada uno de los datos que se le pasa a un operador se llama operando, y según el número de operandos de que disponga un operador estaremos hablando de un operador unario (un operando), binario (dos operandos), ternario... A continuación se muestran los operadores matemáticos más normales:

i 21 96

Introducción a la programación Expresiones aritméticas algorítmicas Observa la siguiente expresión algebraica, en ella se pretende obtener la solución de una ecuación de segundo grado.

Veamos otro ejemplo. La expresión algorítmica correcta a partir de la siguiente expresión algebraica:

Expresiones relacionales En ocasiones en los programas se necesitan realizar comparaciones entre distintos valores. Esto se realiza utilizando los operadores relacionales.

i 22 97

Introducción a la programación Los operadores de comparación son operadores en su mayoría binarios que nos permiten comparar variables devolviendo un valor booleano a 1 (TRUE), si se cumple la condición que expresan y a 0 (FALSE), en el caso contrario. Estos operadores se usan mayormente como condición para las estructuras de control (instrucciones alternativas o repetitivas. Pulsa sobre los botones para ver algunos ejemplos. Ejemplo 1

Ejemplo 2

i 23 98

Introducción a la programación Expresiones y operadores lógicos Los operadores lógicos permiten combinar los resultados de los operadores relacionales, y así ver si se cumplen varias condiciones simultáneamente o sólo alguna de ellas. Las funciones lógicas son aquellas que nos van a permitir dar a conocer la relación entre dos condiciones, y en función de si el resultado es verdadero o falso se pueden realizar acciones diferentes. Estas expresiones devuelven siempre un valor 1 (true) o 0 (false). Los operadores lógicos son: i,

NOT, no: Negación (lo contrario)

&&, AND, y: Conjunción: todas las relaciones han de ser verdad.

(1)

II,

(2)

OR,

o: Disyunción: alguna relación ha de ser cierta.

Los operadores lógicos se fundamentan en conceptos electrónicos. Recordemos que los ordenadores están construidos por “chips o puertas lógicas” las cuales dan lugar a poder construir fácilmente los operadores lógicos. 1. Operador AND (&&): Operador lógico o funtor PRODUCTO. REGLA: todas las condiciones simples han de ser verdaderas para que la compuesta también lo sea. Sólo en tal caso se ejecuta la parte THEN del IF. 1*1*1*1=1

1*0*1*1=0

i 24 99

Introducción a la programación 2. Operados OR (||): Operador lógico o funtor SUMA. REGLA: basta con que una condición sea cierta para que la condición compuesta también lo sea. En tal caso se ejecutarán las declaraciones de la parte THEN. 0+0+1+0=1

0+0+0+0=0

Roll over Operadores lógicos

i 25 100

Introducción a la programación Expresiones y operadores lógicos: condiciones Las condiciones pueden ser simples o compuestas. Son compuestas si aparecen varios operadores lógicos relacionados y su formato simplificado es el siguiente:

Orden de evaluación de condiciones 1º PARENTESIS (si hay varios niveles, de dentro hacia fuera) 2º Operadores de RELACION 3º Operador lógico NOT 4º Operador lógico AND 5º Operador lógico OR 6º A IGUALDAD de operadores, de izquierda a derecha Ejemplo en JAVA: if ( (b > c) && (c > d) ) || (c == e) || (e == b) Ejemplo en COBOL: IF ( (b > c) AND (c > d) ) OR (c == e) OR (e == b)

i 26 101

Introducción a la programación Codificación de condiciones y Leyes Morgan El operador lógico NOT, se usa para negar una condición simple (de relación, de clase o de nombre de condición), o una condición compuesta y se puede codificar delante de la condición completa encerrada entre paréntesis. Así pues: A OR B es lo contrario de NOT (A OR B) y viceversa. C AND D es lo contrario de NOT (C AND D) y viceversa NOT A AND NOT B es lo contrario de NOT (NOT A AND NOT B) NOT C OR D es lo contrario de NOT (NOT C OR D)

Una condición compuesta puede simplificarse o si se prefiere negarse directamente, aplicando las LEYES DE MORGAN. Veamos cómo quedaría la parte de la derecha del ejemplo de arriba, simplificando o negando estas condiciones: Simplificando las condiciones NOT NOT NOT NOT

(A OR B) (C AND D) (NOT A AND (NOT C OR

es igual que NOT A AND NOT B es igual que NOT C OR NOT D NOT B) es igual que A OR B D) es igual que C AND NOT D

Negando las condiciones

i

A OR B es lo contrario de NOT A AND C AND D es lo contrario de NOT C OR NOT A AND NOT B es lo contrario de A NOT C OR D es lo contrario de C AND

NOT B NOT D OR B NOT D

27 102

Introducción a la programación Asignación de valores a las variables En programación una de las instrucciones más comunes es la de asignación de valores a las variables y constantes. Veamos algunos ejemplos de asignación sin centrarnos en ningún lenguaje en particular. Ejemplos: A = 50 ó A A Queremos decir que el valor 50 se va a copiar a la variable A. A= B+C ó A := B + C ó Calcular A = B + C El valor de la suma de a B y C copiará a la variable A perdiéndose el valor anterior que pudiera tener la variable A. Frase = “Soy programador” ó Mover “Soy programador” a Frase.

i 28 103

Introducción a la programación 4. Resumen Has llegado al final de esta lección de formación que denominamos “Introducción a la programación”. A continuación te invitamos a realizar un repaso de los contenidos estudiados a lo largo de la misma.

i 29 104

ARRAYS Y TABLAS

105

ÍNDICE ARRAYS Y TABLAS

1. Aspectos Generales de Tablas o Arrays. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Operaciones Típicas con Tablas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23

106

Arrays y Tablas 1. Aspectos Generales de Tablas o Arrays. Conceptos Básicos

Antes de comenzar, revisemos algunos conceptos básicos que necesitas conocer, para el posterior diseño de Tablas o Arrays.

Estructura de datos constituida por un número fijo de elementos, todos ellos del mismo tipo y ubicados en direcciones de memoria físicamente contiguas.

i 3 107

Arrays y Tablas Clasificación de las Tablas Las Tablas pueden clasificarse según su estructura, dimensión, valores y número de elementos.

i 4 108

Arrays y Tablas Representación Gráfica de Tablas Unidimensionales Las Tablas Unidimensionales también son conocidas como vectores. Representación Gráfica Los elementos se almacenan en posiciones contiguas adyacentes en la memoria principal de un ordenador.

Acceso Individual a los Elementos de Tablas Unidimensionales En las Tablas Unidimensionales, los elementos se almacenan en posiciones contiguas adyacentes en la memoria principal de un ordenador. Es suficiente su nombre seguido de 1 índice: - Nombre_tabla(índice) - Nombre_Elemento(índice) NOTA: Algunos lenguajes consideran que el primer elemento se direcciona con valor de índice 0 (cero) y otros con valor de índice 1.

i 5 109

Arrays y Tablas Ejemplo Tabla Números: Nombre de la Tabla: Números Tipo: Numérico entero Tamaño: 6 Elementos de la tabla: Numéros (1) …… 2 Numéros (2) …… 4 Numéros (3) …… 6 Numéros (4) …… 8 Numéros (5) …… 10 Numéros (6) …… 12 Numéros (1) …… 2 Dimensión: 1 Representación Gráfica de Tablas BIidimensionales Las Tablas Bidimensionales también son conocidas como matrices. Cada elemento o alguno se sus campos es, a su vez, una tabla. Representación Gráfica

i 6 110

Arrays y Tablas Acceso Individual a los Elementos de Tablas Biidimensionales En las Tablas Bidimensionales, los elementos se almacenan en posiciones contiguas adyacentes en la memoria principal de un ordenador. Para acceder a uno de los elementos de una tabla es necesario utilizar 2 índices: el 1º marca la fila, el 2º la columna: Nombre_tabla(índice_fila, índice_columna) Ejemplo:

Tabla Notas:Alumnos del 1 al 10: Nombre de la Tabla: Notas Tipo: Numérico entero Elementos de la tabla: Notas (4,1) …… Nota del alumno 1 en Filosofía Notas (1,3) …… Nota del alumno 3 en Matemáticas Notas (1,9) …… Nota del alumno 9 en Matemáticas Dimensión: 2 ASIGNATURAS (Matemáticas, Física, historia y Filosofía)

i 7 111

Arrays y Tablas 2. Operaciones Típicas con Tablas

A partir de aquí, veremos un ejercicio de programación a partir de un Array de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana. Para esto, desarrollaremos algunas de las tareas habituales que se suele necesitar realizar en la mayoría de los programas con este tipo de datos. - Inicializar o preparar Tablas - Cargar una Tabla - Recorrido o acceso secuencial a una Tabla. - Búsqueda de un contenido dentro de uno de los elementos: - En tablas ordenadas - En tablas desordenadas - Ordenar una tabla por cualquier método. - Insertar elementos en una tabla: - Al final de la tabla - En una tabla ordenada en su sitio en función del orden. - Borrar elementos de una tabla.

i 8 112

Arrays y Tablas Inicializar o Preparar Tablas A partir de dicha TABLA de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana. Inicializar con el valor cero en cada uno de los elementos. PROGRAMA DE INICIALIZAR TABLAS Inicio Definición de Datos TablaGastosDia(7)

‘ creación sin inicializar

TablaGastosDia(7)= 1,2,3,4,5,6,7 ‘ creación con contenido Dia=1

‘Indice para apuntar a cada uno de los dias

1ª forma con DO WHILE y test antes

i 9 113

Arrays y Tablas 2ª forma con DO WHILE y test después

3ª forma con FOR

i 10 114

Arrays y Tablas 4ª forma con DO UNTIL y test antes

5ª forma con DO UNTIL y test después

i 11 115

Arrays y Tablas Programas de Cargar/Rellenar Tablas Una tabla se puede cargar/rellenar/inicializar en el momento de su definición, para ello, lógicamente, se deben conocer los datos con los que se quiere rellenar la tabla en el momento de su creación: TablaGastosDia(7) = 40, 29, 90, 71, 28, 93, 100

Cargar una Tabla desde el Teclado (terminal) A partir de dicho array de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana.

CARGAR UNA TABLA DESDE EL TECLADO Inicio Definición de Datos TablaGastosDia(7)= 40, 29, 90, 0, 0, 0, 0 Dia= 1

‘Indice para apuntar a cada elemento

CantidadTecleada= 0 ContinuarSiNo= ”S”

i 12 116

Arrays y Tablas 1ª forma con DO WHILE y test antes

2ª forma con FOR

i 13 117

Arrays y Tablas Cargar una Tabla desde un Fichero En una tabla de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana. Definicion de Datos TablaGastosDia(7)= 40, 29, 90, 0, 0, 0, 0 Dia integer, Reg_E String, FinFichero=”NO” Pseudocodigos Abrir FICHERO “c:\gastos.txt” LEER_FICHERO( ) ´rellena el registro Reg_E desde fichero Dia=1 , (HAYA ELEMENTOS VACIOS EN TABLA) y (HAYA REGISTROS QUE CARGAR DESDE EL FICHERO) DO WHILE ( Dia solo )

(El IF de abajo se podría meter aqui dentro antes del EXIT FOR sin el ELSE)

i 21 125

Arrays y Tablas Búsqueda Binaria o Dicotómica de Tablas Veamos como realizar una búsqueda binaria o dicotómica de Tablas, sólo para Tablas Ordenadas.

RECORRER SECUENCIALMENTE UNA TABLA Definicion de Datos 1 2 3 4 5 6 7 TablaGastosDia(7)= 29, 48, 90, 98, 156, 3769, 32767 Centro=0 Izqda=1 Decha=7 ((el último elemento)) ValorBuscado= 0 Encontrado=”NO” ((esto es un swtich))

Pseudocodigo

i 22 126

Arrays y Tablas 3. Resumen

¡Enhorabuena! Has llegado al final de esta lección de formación que denominamos “Arrays y Tablas”. En esta lección hemos estudiado los siguientes contenidos:

i 23 127

FUNCIONES Y PROCEDIMIENTOS

128

ÍNDICE FUNCIONES Y PROCEDIMIENTOS

1. Teoría y Funciones con Funciones y Procedimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20

129

Funciones y Procedimientos 1. Teoría y Funciones con Funciones y Procedimientos Funciones y Procedimientos A lo largo éste te mostraremos diferentes cálculos que puedes realizar con los distintos lenguajes de programación

- Función de cada módulo - Realizar una operación independiente de los restantes desde el punto de vista funcional, pero este puede estar relacionado con otros procedimientos y funciones para el intercambio de valores de variables. - Cualquier algoritmo se puede transformar en un procedimiento para ser utilizado dentro de otro algoritmo mayor.

i 3 130

Funciones y Procedimientos Parámetros Formales y Actuales

Entre los procedimientos, funciones y su entorno se producen una relación en base a un intercambio de valores de las variables. Variables Globales y Locales La Variable global es aquella que puede ser utilizada (leída, modificada, etc.) a lo largo de todo el algoritmo principal y también por cualquiera de los sub-algoritmos (entiéndase funciones y procedimientos) que componen el algoritmo en sí.

Variable local Aquella que sólo puede ser referenciada dentro del sub-algoritmo en el cual ha sido declarada

i 4 131

Funciones y Procedimientos Funciones y Ámbitos de las Variables Para ver las funciones y el ámbito de las variables presiona cada botón FUNCIONES

AMBITO DE LAS VARIABLES

i 5 132

Funciones y Procedimientos Funciones y Procedimientos. Representación Grafica Analice la representación grafica de las Funciones y Procedimientos.

i 6 133

Funciones y Procedimientos Llamadas a Procedimientos A través del esquema siguiente podrá ver como se realizan las llamadas a procedimientos.

i 7 134

Funciones y Procedimientos Esquema Básico de llamadas a Procedimientos Ahora veremos el esquema básico de llamadas a procedimientos.

i 8 135

Funciones y Procedimientos Formato de Funciones en Visual Basic Analizaremos en este punto el formato de funciones en visual basic.

i 9 136

Funciones y Procedimientos Formatos de Funciones en JAVA , C y C++ En esta pantalla se presenta el esquema de FORMATOS DE FUNCIONES EN JAVA , C y C++

i 10 137

Funciones y Procedimientos Suma de dos números. Métodos METODO 1º) Sin necesidad de procedimientos. Todo en el programa principal

i 11 138

Funciones y Procedimientos METODO 2º) Usando variables GLOBALES dentro del procedimiento.

i 12 139

Funciones y Procedimientos METODO 3º) Usando variables LOCALES dentro del procedimiento..

i 13 140

Funciones y Procedimientos METODO 4º) Pasándole los valores de las variables GLOBALES al procedimiento y ejecutándose dentro del mismo con variables LOCALES.

i 14 141

Funciones y Procedimientos METODO 5º) Pasándole los valores de las variables GLOBALES a la Función y ejecutándose el proceso dentro de la misma con variables LOCALES y una vez ejecutado se devuelve el resultado al módulo principal .

i 15 142

Funciones y Procedimientos METODO 6º) Pasándole los valores de las variables GLOBALES a la Función y ejecutándose el proceso dentro de la misma con variables LOCALES y una vez ejecutado se devuelve el resultado al módulo principal .

i 16 143

Funciones y Procedimientos Anexo Tablas y Procedimiento Versión 1 Estudia el siguiente pseudocódigo y elige las salidas correctas del procedimiento:

POSIBLES SOLUCIONES: a)2, 4, b)4, 6, c)1, 2, d)10, 9,

6, 8, 10, 12, 14, 16, 18, 20 12, 16, 21, 27, 34, 42, 51, 61 3, 4, 5, 6, 7, 8, 9, 10 8, 7, 6, 5, 4, 3, 2, 1

i 17 144

Funciones y Procedimientos Anexo Tablas y Procedimiento Versión 2 Estudia el siguiente pseudocódigo y elige las salidas correctas del procedimiento:

POSIBLES SOLUCIONES: e) 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 f) 4, 6, 12, 16, 21, 27, 34, 42, 51, 61 g) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 h) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

i 18 145

Funciones y Procedimientos Anexo Tablas y Procedimiento Versión 3 Estudia el siguiente pseudocódigo y elige las salidas correctas del procedimiento:

POSIBLES SOLUCIONES: i) 2, 4, 6, 8, 10, 12, 14, 16, 18, 20 j) 4, 6, 12, 16, 21, 27, 34, 42, 51, 61 k) 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 l) 10, 9, 8, 7, 6, 5, 4, 3, 2, 1

i 19 146

Funciones y Procedimientos 2. Resumen ¡Enhorabuena! Has llegado al final de esta lección de formación que denominamos “Arrays y Tablas”. En esta lección hemos estudiado los siguientes contenidos:

i 20 147

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN

148

ÍNDICE LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN 1. LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3

149

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN 1. LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN. 1.1. La información y el tratamiento mecanizado de la información y La Informática. Hoy en día el uso eficaz de la información para la empresa determina en gran medida sus beneficios, su competitividad frente a la competencia e incluso su supervivencia a corto o largo plazo. La informática: Es la Ciencia que estudia el tratamiento, elaboración, transmisión y utilización de la información. La informática es la disciplina que estudia el tratamiento automático de la información utilizando dispositivos electrónicos y sistemas computacionales. También es definida como el procesamiento de la información en forma automática. El vocablo informática proviene del francés informatique, acuñado por el ingeniero Philippe Dreyfrus en 1962. El vocablo es acrónimo de las palabras information y automatique. En lo que hoy día conocemos como informática confluyen muchas de las técnicas y de las máquinas que el hombre ha desarrollado a lo largo de la historia para apoyar y potenciar sus capacidades de memoria, de pensamiento y de comunicación. Según el Diccionario de la Real Academia Española RAE informática es el: “Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores”. Los computadores se han convertido en una herramienta indispensable para la vida actual. La mayor parte de los aparatos electrónicos están dotados de algún elemento de computación (lavadoras, celulares, televisores, etc.). De forma genérica, podemos entender el concepto de informática como aquella disciplina encargada del estudio de métodos, procesos, técnicas, desarrollos y su utilización en ordenadores (computadores) con el fin de almacenar, procesar y transmitir información y datos en formato digital. El Computador u ordenador es una maquina electrónica que procesa gran cantidad de datos en forma rápida y segura.

3

150

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN Perspectiva histórica de la automatización de los cálculos hasta la era de la informática: 1. Ábaco: En el 3000 a. C. Era digital. 2. En el siglo XVII Pascal construye una máquina que suma y resta. Era manual. 3. Leibnitz mejora la máquina de Pascal introduciendo la multiplicación y la división pero seguía siendo manual. 4. En el siglo XIX Babbage introduce el concepto de programa externo. 5. En el siglo XX comienza “la era de la informática” debido a Von Newman y el desarrollo de la electrónica.

Las primeras maquinas de calculo fueron los ábacos. Luego los científicos estaban interesados en crear una maquina calculadora que pudiera realizar cálculos matemáticos. En 1642 el filósofo y científico francés Blaise Pascal invento la primera maquina calculadora, ella podía sumar y restar. En 1843 apareció la maquina analítica diseñada por Charles Babbage. Esta máquina era mecánica, luego en 1940 aparecieron las primeras computadoras electrónicas. En los inicios del procesado de información, con la informática sólo se facilitaba los trabajos repetitivos y monótonos del área administrativa, gracias a la automatización de esos procesos, ello trajo como consecuencia directa una disminución de los costes y un incremento en la producción.

4

151

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN En la informática convergen los fundamentos de las ciencias de la computación, la programación y las metodologías para el desarrollo de software, la arquitectura de computadores, las redes de datos (como Internet), la inteligencia artificial y ciertas cuestiones relacionadas con la electrónica. Se puede entender por informática a la unión sinergia de todo este conjunto de disciplinas. Esta disciplina se aplica a numerosas y variadas áreas del conocimiento o la actividad humana, como por ejemplo: gestión de negocios, almacenamiento y consulta de información, monitorización y control de procesos, industria, robótica, comunicaciones, control de transportes, investigación, desarrollo de juegos, diseño computerizado, aplicaciones/herramientas multimedia, medicina, biología, física, química, meteorología, ingeniería, arte, etc. Una de la aplicaciones más importantes de la informática es facilitar información en forma oportuna y veraz, lo cual, por ejemplo, puede tanto facilitar la toma de decisiones a nivel gerencial (en una empresa) como permitir el control de procesos críticos. Actualmente es difícil concebir un área que no use, de alguna forma, el apoyo de la informática; en un enorme abanico que cubre desde las más simples cuestiones domésticas hasta los cálculos científicos más complejos. Entre las funciones principales de la informática se cuentan las siguientes: -

Creación de nuevas especificaciones de trabajo. Desarrollo e implementación de sistemas informáticos. Sistematización de procesos. Optimización de los métodos y sistemas informáticos existentes.

La aparición del ordenador y con él de la informática en la década de los años 50 estableció nuevas bases en el tratamiento y manipulación de la información. Lo que ha permitido avances tecnológicos jamás soñados por el hombre hasta la fecha.

5

152

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN Podemos definir el ordenador como una máquina con la que automatizar el tratamiento de la información. Debemos entender que el ordenador no es más que una herramienta de trabajo segura y rápida, pero no tiene inteligencia, no puede pensar, solo puede realizar las pocas tareas para las cuales ha sido programado. El ordenador ejecuta aplicaciones que gestionan datos con el objetivo de generar información útil a la toma de decisiones. Datos de Entrada Salida y el proceso de la información: Básicamente la misión del ordenador es recoger en sus dispositivos de ENTRADA algún tipo de información, esta es elaborada con mayor o menos complejidad, es decir, es PROCESADA y después una vez transformada es enviada a sus dispositivos de SALIDA para que los humanos la analicemos adecuadamente. Esquema de Entrada, Procesamiento y salida de la información.

Un ordenador, básicamente es capaz de realizar solo tres cosas: operaciones aritméticas muy básicas, operaciones de tipo lógico (comparar dos valores) y almacenar o recuperar (copiar) información. Estas tres operaciones convenientemente ligadas entre sí forman lo que llamamos programas. Debemos entender que el ordenador es una máquina “tonta” solo sabe hacer lo que le ordenemos los humanos, pero tiene la ventaja que lo hace a una velocidad increíble.

6

153

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN El esquema siguiente pretende mostrar, de una forma sencilla y gráficamente las distintas partes de la organización física de un ordenador.

El ordenador esta integrado por un conjunto de componentes relacionados y que interactúan para realizar una tarea determinada. Sus componentes se subdividen en dos tipos de elementos. Los consabidos elementos HARDWARE (componentes físicos) y los elementos lógicos blandos los conocidos como SOFTWARE: - Elementos Hardware (CPU, dispositivos periféricos) - Elementos Software (sistema operativo y los programas). Vemos una comparación entre los trabajos que se hacen en la vida real, por ejemplo en una panadería típica y los que se realizan dentro del ordenador para transformar la información que le llega a sus componentes de entrada:

7

154

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN Dispositivos de Entrada/Salida del ordenador: 1.- Los Dispositivos de Entrada: Estos dispositivos permiten al usuario del computador introducir datos, comandos y programas en el CPU. El dispositivo de entrada más común es un teclado similar al de las máquinas de escribir. La información introducida con el mismo, es transformada por el ordenador en modelos reconocibles. Los datos se leen de los dispositivos de entrada y se almacenan en la memoria central o interna. Los Dispositivos de Entrada, convierten la información en señales eléctricas que se almacenan en la memoria central. 2.- Los Dispositivos de Salida: Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora. El dispositivo de salida más común es la unidad de visualización (VDU, acrónimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor. Algunos de los dispositivos y periféricos de entrada/salida más usados y conocidas a lo largo de la historia de la informática, (sin pretensión de recogerlos todos) se relacionan en el cuadro siguiente: Resumen de dispositivos y periféricos de entrada/salida más conocidos.

8

155

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN Como se ha podido observar existen muchos tipos de dispositivos que utiliza la computadora y que son indispensables para poder comunicarnos con la máquina. Un ejemplo muy claro lo es el Teclado y el Mouse. A lo largo del tiempo, se ha demostrado que la tecnología avanza cada día más en busca de mejores cosas y mayor comodidad para el usuario. Por ello debemos tener en cuenta como utilizar los dispositivos periférico del ordenador para obtener un mayor aprovechamiento de cada uno de estos y hacer nuestro trabajo más rápido y con la mayor comodidad posible, para lograr facilitar nuestras labores cotidianas en las ayuda de estas maquinas. Los Tipos de Dispositivos de Entrada, salida o entrada/salida más comunes son: a) Teclado: El teclado es un dispositivo eficaz para introducir datos no gráficos como rótulos de imágenes asociados con un despliegue de gráficas. Los teclados también pueden ofrecerse con características que facilitan la entrada de coordenadas de la pantalla, selecciones de menús o funciones de gráficas.

b) Ratón ó Mouse: Es un dispositivo electrónico que nos permite dar instrucciones a nuestra computadora a través de un cursor que aparece en la pantalla y haciendo clic para que se lleve a cabo una acción determinada; a medida que el Mouse rueda sobre el escritorio, el cursor (Puntero) en la pantalla hace lo mismo. Tal procedimiento permitirá controlar, apuntar, sostener y manipular varios objetos gráficos (Y de texto) en un programa.

9

156

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN c) Micrófono, cascos, altavoces: Los micrófonos son los transductores encargados de transformar energía acústica en energía eléctrica, permitiendo, por lo tanto el registro, almacenamiento, transmisión y procesamiento electrónico de las señales de audio. Son dispositivos duales de los altoparlantes, constituyendo ambos transductores los elementos mas significativos en cuanto a las características sonoras que sobre imponen a las señales de audio.

d) Scanner: Es una unidad de ingreso de información. Permite la introducción de imágenes gráficas al computador mediante un sistema de matrices de puntos, como resultado de un barrido óptico del documento. La información se almacena en archivos en forma de mapas de bits (bit maps), o en otros formatos más eficientes como Jpeg o Gif.

e) Cámara Digital. Webcam: se conecta al ordenador y le transmite las imágenes que capta, pudiendo ser modificada y retocada, o volverla a tomar en caso de que este mal. Puede haber varios tipos. Webcam: Es una cámara de pequeñas dimensiones. Sólo es la cámara, no tiene LCD. Tiene que estar conectada al PC para poder funcionar, y esta transmite las imágenes al ordenador. Su uso es generalmente para videoconferencias por Internet, pero mediante el software adecuado, se pueden grabar videos como una cámara normal y tomar fotos estáticas.

10

157

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN f) Pantalla o Monitor: Es en donde se ve la información suministrada por el ordenador. En el caso más habitual se trata de un aparato basado en un tubo de rayos catódicos (CRT) como el de los televisores, mientras que en los portátiles y en ordenadores actuales es una pantalla plana de cristal líquido (LCD).

g) Impresora: es el periférico que el ordenador utiliza para presentar información impresa en papel. Las primeras impresoras nacieron muchos años antes que el PC e incluso antes que los monitores, siendo el método más usual para presentar los resultados de los cálculos en aquellos primitivos ordenadores. En nada se parecen las impresoras a sus antepasadas de aquellos tiempos, no hay duda de que igual que hubo impresoras antes que PCs, las habrá después de éstos, aunque se basen en tecnologías que aún no han sido siquiera inventadas.

h) Los discos magneticos: Se considera un dispositivo de almacenamiento de información magnético todo aquel que se base en las propiedades magnéticas de algunos materiales. Un disco magnético esta constituido por un superficie metálica, en el caso de los hard disks o plástica en el caso de los floppy disks, recubierta por un capa de un material magnetizable, los datos se almacenan cambiando el sentido del campo magnético de dicha sustancia, y una cabeza de lectura y grabación por cada superficie de disco (actualmente los discos duros vienen en paquetes de varios platos), esta cabeza esta conformada por un electroimán que puede inducir un campo magnético o detectar el sentido del cambio magnético. La cabeza se mueve radialmente

11

158

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN mientras que el disco gira en un sentido. La información se almacena en pistas concéntricas que a su vez se dividen en sectores que a su vez se dividen en bloques.

Dentro de los discos magnéticos existen varios tipos diferentes: Discos flexibles, Discos intercambiables, Discos fijos, Discos con tecnología Winchester, discos externos conectables vía USB.

i) Pen Drive, Memorias FLASH, Memorias USB: Una memoria USB (de Universal Serial Bus, en inglés pendrive o USB flash drive) es un pequeño dispositivo de almacenamiento que utiliza memoria flash para guardar la información que puede requerir o no baterías (pilas), en los últimos modelos la batería no es requerida, la batería era utilizada por los primeros modelos. Estas memorias son resistentes a los rasguños (externos) y al polvo que han afectado a las formas previas de almacenamiento portátil, como los DVD y los CDs.

12

159

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN El Pen Drive es un dispositivo de conexión USB para almacenamiento que se puede llevar en el bolsillo y de fácil acceso y conexión a una computadora.

Estas memorias se han convertido en el sistema de almacenamiento y transporte personal de datos más utilizado, desplazando en este uso a los tradicionales disquetes, y a los CDs. Se pueden encontrar en el mercado fácilmente memorias de 1, 2, 4, 8, 16, 32 GB o más (esto supone, como mínimo, el equivalente a miles de los antiguos disquetes). j) El disco compacto (conocido popularmente como CD, por las siglas en inglés de Compact Disc) es un soporte digital óptico utilizado para almacenar cualquier tipo de información (audio, vídeo, documentos y otros datos). En español o castellano, se puede escribir «cedé», aunque en gran parte de Latinoamérica (no en España) se pronucia «sidí» (en inglés). En un CD la información se almacena en formato digital, es decir, utiliza un sistema binario para guardar los datos. Estos datos se graban en una única espiral que comienza desde el interior del disco (próximo al centro), y finaliza en la parte externa. Los datos binarios se almacenan en forma de llanuras y salientes (cada una de ellas es casi del tamaño de una bacteria), de tal forma que al incidir el haz del láser, el ángulo de reflexión es distinto en función de si se trata de una saliente o de una llanura.

13

160

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN k) El DVD (también conocido como “Digital Versatile Disc“ o “Disco Versátil Digital“, debido a su popular uso en películas algunos lo llaman Disco de Video Digital) es un formato de almacenamiento óptico que puede ser usado para guardar datos, incluyendo películas con alta calidad de vídeo y audio. Se asemeja a los discos compactos en cuanto a sus dimensiones físicas (diámetro de 12 u 8 centímetros), pero están codificados en un formato distinto y a una densidad mucho mayor. A diferencia de los CD, todos los DVD deben guardar los datos utilizando un sistema de archivos denominado UDF (Universal Disk Format), el cual es una extensión del estándar ISO 9660, usado para CD de datos. El DVD Forum (un consorcio formado por todas las organizaciones que han participado en la elaboración del formato) se encarga de mantener al día sus especificaciones técnicas.

14

161

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN 1.2 El ordenador y sus componentes: CPU, UC, UAL y dispositivos de entrada/salida de la información. Unidad Central de Proceso (CPU o UCP): La UCP, es la Unidad Central de proceso, tambien se la conce como CPU tomado del ingles Central Process Unit Es el verdadero cerebro de la computadora. Su misión consiste en coordinar y controlar o realizar todas las operaciones del sistema. Se compone de elementos cuya naturaleza es exclusivamente electrónica (circuitos).

La figura de arriba representa el esquema básico de un ordenador

15

162

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN

Diseño interno de un microprocesador La Unidad de control (UC). Es el centro nervioso de la computadora; desde ella se controla y gobiernan todas las operaciones (búsqueda, decodificación, y ejecución de la instrucción). Las funciones principales de la Unidad de Control: 1234-

Identificar cual es la instrucción y la operación que conlleva la Localizar los datos u operandos. Desencadenar la ejecución de la instrucción. Desencadenar el almacenamiento del resultado.

instrucción.

Funcionamiento de la unidad de control: El secuenciador interpreta la operación que está en el registro de instrucción y activa circuitos para ejecutar la instrucción. Envía los operandos a la unidad aritmetico-lógica. Recoge el resultado de esta y lo envía a la unidad de memoria. Después se almacena la siguiente instrucción en el registro de instrucción y realiza de nuevo el proceso.

16

163

LA INFORMÁTICA Y EL MANEJO DE LA INFORMACIÓN La Unidad aritmético–lógica (UAL). Es la encargada de realizar las operaciones elementales de tipo aritmético (generalmente sumas o restas) y de tipo lógico (generalmente comparaciones). Su función es ejecutar la operación sobre los datos que recibe de la unidad de control. Solo sabe las operaciones suma, resta, AND (‘y’ lógica) y OR (‘o’ lógica). Las demás operaciones las realiza a través de programas. La Unidad Aritmético Lógica consta de dos partes: El Banco de registros generales: Que es donde se almacenan los datos que vienen de la unidad de control. Uno de estos registros es el acumulador que es donde se van almacenando los resultados de las operaciones. Y el operador que es el que realiza las operaciones. Funcionamiento:

UNIDAD ARITMÉTICO-LÓGICA (UAL)

17

164

TIPOS DE ARCHIVOS DE INFORMACIÓN

165

ÍNDICE TIPOS DE ARCHIVOS DE INFORMACIÓN 1. FICHEROS Y BASES DE DATOS Y OPERACIONES TÍPICAS DE ENTRADA/SALIDA . . . . . . . . . . . . . . . .3 2. CONCEPTO DE ORGANIZACIÓN DE FICHEROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 3. CONCEPTO DE METODO DE ACCESO A LA INFORMACION DE LOS FICHEROS . . . . . . . . . . . . . . . . .7 4. OPERACIONES TIPICAS QUE SE HACEN CON LOS FICHEROS . . . . . . . . . . . . . . . . . . . . . . . . . . .10 5. LAS BASES DE DATOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .12

166

TIPOS DE ARCHIVOS DE INFORMACIÓN 1. Ficheros y Bases de Datos y operaciones típicas de Entrada/salida. Todas las aplicaciones necesitan almacenar y recuperar información. En una computadora, cuando se ejecuta una aplicación (un proceso) la información se almacena en la memoria principal electrónica del computador; este es un tipo de memoria volátil, de forma que cuando la aplicación termina la información se pierde. Esto es inaceptable para muchas aplicaciones, que pueden requerir que la información permanezca disponible durante largos periodos de tiempo. Con respecto a la memoria principal de las computadoras, se trata de un tipo de memoria electrónicas cuyas principales características son: - La memoria principal tiene poca capacidad de almacenamiento. No se pueden manipular grandes cantidades de datos, ya que puede haber casos en los que no quepan en la memoria principal. - La memoria principal es volátil. - Acceso rápido a la información. Otro problema es que varios procesos pueden necesitar acceder a una misma información de forma concurrente. Como los espacios de memoria de los procesos son privados, un proceso no puede acceder a los datos en el espacio de memoria de otro. La solución es hacer que la información sea independiente de los procesos. Por tanto, hay tres requisitos esenciales para almacenar información durante un tiempo indefinido: - Debe ser posible almacenar una gran cantidad de información. - La información debe mantenerse (persistir) tras la terminación de los procesos que la usan. - Varios procesos deben de ser capaces de acceder a la información de forma concurrente. La solución a estos problemas consiste en almacenar la información en discos magnéticos u otros dispositivos en unas unidades llamadas ficheros o archivos. Podemos definir un fichero como “la abstracción de un mecanismo que permite almacenar información en un dispositivo y leerla posteriormente”. De igual forma podemos definir un fichero “como una colección de información que tiene un nombre”.

3

167

TIPOS DE ARCHIVOS DE INFORMACIÓN Los fichero pueden ser leídos y escritos por cualquier proceso. Son una forma de almacenamiento denominada memoria secundaria. Sus principales cualidades son: - Capacidad de almacenamiento sólo limitada por el soporte físico de que se disponga. - La información está almacenada permanentemente. - Acceso lento a la información, ya que tiene que ser transportada desde el dispositivo externo hasta la memoria principal para su tratamiento. Existe un área de memoria principal destinada a recibir esta información procedente del dispositivo secundario. Esta área se denomina Buffer. De la definición vista de fichero, se deduce que existen diferentes tipos de ficheros en función de: - El tipo de información que contienen. - El método de organización de la información. En función del tipo de información que contienen los ficheros y según el método usado para guardarla codificarla dentro de estos podemos diferenciar entre : - Ficheros de texto: Se guarda la información en caracteres, tal y como se mostraría en pantalla. - Ficheros binarios: Se guarda la información en binario, tal y como está en memoria

4

168

TIPOS DE ARCHIVOS DE INFORMACIÓN 2. CONCEPTO DE ORGANIZACIÓN DE FICHEROS La organización hace referencia a la forma en que los registros lógicos están almacenados, o se van a almacenar, dentro del dispositivo de memoria auxiliar para ese fichero. La elección de la organización de un fichero determina un mayor o menor uso de recursos del sistema, o una mayor o menor velocidad de procesamiento así como el tipo de acceso a la hora de procesar los registros. La organización es decidida por el analista en función del tamaño del fichero y de la volatilidad y actividad de los registros lógicos. Para soportar las distintas organizaciones, los sistemas operativos contienen un conjunto de rutinas especializadas llamadas métodos de acceso (secuencial, aleatorio o los dos). ORGANIZACIONES STANDARD DE FICHEROS (ANSI) Son tres las organizaciones que suelen estar implementadas en todos los compiladores. (ANSI = AMERICAN NATIONAL STANDARD INSTITUTE). - Organización Secuencial - Organización Indexada - Organización Relativa ORGANIZACION SECUENCIAL (SEQUENTIAL) Los registros lógicos son almacenados unos detrás de otros, por orden de llegada. Sólo se pueden procesar en forma secuencial. Se pueden colocar en cualquier tipo de almacenamiento auxiliar. El archivo sólo contiene registros lógicos (ninguna información secundaria). ORGANIZACION INDEXADA (INDEXED) Los registros son almacenados en orden ascendente de acuerdo con el contenido de un CAMPO CLAVE predefinido, que identifica a cada registro lógico.

5

169

TIPOS DE ARCHIVOS DE INFORMACIÓN Se pueden procesar tanto secuencialmente como aleatoriamente y sólo son posible en dispositivos de acceso directo. También se conoce a esta organización como SECUENCIAL-INDEXADA. Los ficheros indexados están compuestos de un área de datos y un área de índices en la cual se guarda la clave de registro y la dirección de su posición en el área de datos. Esto permite el acceso directo a él. ORGANIZACION DIRECTA O ALEATORIA O RELATIVA (RELATIVE) Se basa en la división del espacio físico de que disponga el fichero, en celdas destinadas a contener un sólo registro. Estas celdas están numeradas por el número de posición relativa en el fichero, y podrán o no contener registro. El usar archivos con organización relativa requiere que el programador desarrolle un algoritmo de direccionamiento que asocie la clave de los registros lógicos con el número de posición del registro en el fichero. Es posible el proceso secuencial (en el orden del número de registro); también es posible el acceso directo a un registro, ya que, el sistema operativo es capaz de calcular la dirección en el disco a partir del número de registro. Es imprescindible dispositivo de almacenamiento de acceso directo. Esta organización también recibe el nombre de “aleatoria“.

6

170

TIPOS DE ARCHIVOS DE INFORMACIÓN 3. CONCEPTO DE METODO DE ACCESO A LA INFORMACION DE LOS FICHEROS. Los métodos de acceso a ficheros son el conjunto de técnicas que tienen por objeto facilitar la búsqueda de información dentro de la organización física de los ficheros. Esta función la realizan el Subsistema de Gestión de Ficheros integrado en el Sistema Operativo, que actúa como intermediario entre la “organización física” y la “organización lógica” (lo cual, es transparente al usuario). Los principales métodos son: ACCESO SECUENCIAL, ACCESO DIRECTO y ACCESO DINAMICO. El acceso Dinámico, se usa, para procesar un mismo fichero empleando los dos métodos de acceso anteriores a la vez. ACCESO SECUENCIAL (SEQUENTIAL) Permite procesar registros secuencialmente, es decir, se leen o actualizan en el mismo orden en el que se encuentren. Para acceder a un determinado registro es imprescindible, recorrer todos los anteriores hasta llegar a él. Es el tipo de acceso que se asume por defecto. ACCESO DIRECTO (RANDOM) Permite acceder directa y aleatoriamente a cualquier registro del fichero. Es posible el acceso directo con ficheros Indexados (ISAM, y VSAM-KSDS) y también en ficheros Relativos (y VSAM-RRDS). SECUENCIAL Y DIRECTO A LA VEZ (DYNAMIC) Este tipo de acceso en realidad es una mezcla de los dos anteriores. Nos permite acceder directamente a un determinado registro lógico y después secuencialmente, todos los que estén grabados a continuación de él, hasta el final del fichero.

7

171

TIPOS DE ARCHIVOS DE INFORMACIÓN CONCEPTOS BÁSICOS SOBRE FICHEROS La información almacenada en ficheros debe ser persistente, es decir, no debe verse afectada por la creación y finalización de los procesos. La gestión de ficheros es tarea del sistema operativo, y la parte del mismo que realiza dicha gestión se conoce como sistema de ficheros. Desde el punto de vista de los usuarios, el aspecto más importante de un sistema de ficheros es cómo éste se presenta a ellos. Es decir, qué es un fichero, cómo se nombra, qué operaciones se permiten, etc. En definitiva, al usuario le interesa saber qué es lo que puede hacer. Desde el punto de vista de los diseñadores de sistemas, lo interesante es saber cómo está implantado el sistema de ficheros. Veamos ahora una serie de conceptos básicos: - Registro lógico: Un registro es una colección de información relativa a una entidad particular. Por tanto, el registro va a contener a todos aquellos campos lógicamente relacionados, referentes a una determinada entidad, y que pueden ser tratados globalmente por un programa. Por ejemplo la información de un determinado alumno, que contiene los campos DNI, nombre, apellidos, fecha de nacimiento, etc. - Clave de un registro lógico: Una clave es un campo o conjunto de campos de datos que identifica al registro lógico y lo diferencia del resto de registros lógicos del fichero. Por tanto, esta clave debe ser distinta para cada registro. - Registro activo: El registro lógico que va a procesarse en la siguiente operación del fichero. - Apuntador: Marca interna que siempre apunta al registro lógico activo. Se incrementa automáticamente cada vez que se procesa un registro (se lee o se escribe). - Marca de fin de fichero: Una marca situada al final de cada fichero, para no acceder mas allá del último registro lógico existente, ya que el tamaño del fichero no está limitado y no se conoce a priori. Existe una función lógica, eof (end of file), que toma el valor verdadero cuando llegamos al final del fichero y falso en caso contrario.

8

172

TIPOS DE ARCHIVOS DE INFORMACIÓN - Registro físico o bloque: Un registro físico o bloque es la cantidad más pequeña de datos que pueden transferirse en una operación de entrada/salida entre la memoria principal del ordenador y los dispositivos periféricos o viceversa. El tamaño del bloque o registro físico dependerá de las características del ordenador. En la mayoría de los casos el tamaño del bloque suele ser mayor que el del registro lógico. La adaptación consiste en empaquetar en cada bloque tantos registros lógicos como se pueda. El empaquetamiento puede ser de tipo fuerte o débil, según que se permita o no aprovechar el sobrante de un bloque, situando registros a caballo entre dos bloques contiguos. - Factor de bloqueo: Factor de bloqueo es el nº de registros lógicos que puede contener un registro físico.

9

173

TIPOS DE ARCHIVOS DE INFORMACIÓN 4. OPERACIONES TIPICAS QUE SE HACEN CON LOS FICHEROS Una vez visto lo que es un fichero y los principales conceptos al hablar de ellos, pasemos ahora a estudiarlos desde un punto de vista operativo. Básicamente se trata de responder: ¿qué operaciones se pueden realizar sobre un fichero?. La respuesta es:

- Creación: Para poder realizar cualquier operación sobre un fichero es necesario que haya sido creado previamente, almacenando sobre el soporte seleccionado la información requerida para su posterior tratamiento, como por ejemplo el nombre del dispositivo, el nombre del fichero, etc. Con anterioridad a la creación de un archivo se requiere diseñar la estructura del mismo mediante los campos del registro, longitud y tipo de los mismos. - Apertura: Para poder trabajar con la información almacenada en un fichero, éste debe estar abierto, permitiendo así el acceso a los datos, dando la posibilidad de realizar sobre ellos las operaciones de lectura y escritura necesarias. - Cierre: Una vez finalizadas las operaciones efectuadas sobre el fichero, éste debe permanecer cerrado para limitar el acceso a los datos y evitar así un posible deterioro o pérdida de información. Para cerrar un fichero previamente debe estar abierto. - Actualización: Esta operación permite la puesta al día de los datos del fichero mediante la escritura de nuevos registros (alta) y la eliminación (baja) o modificación de los ya existentes. La actualización puede afectar a parte o la totalidad de los registros del fichero. Cuando se escribe un nuevo registro en el fichero se debe comprobar que no existe previamente. La baja de un registro puede ser lógica o física. Una baja lógica supone el no borrado del registro en el archivo. Esta baja lógica se manifiesta en un determinado campo del registro con una bandera, indicador o “flag”, o bien con la escritura o rellenado de espacios en blanco en el registro específico. Una baja física implica el borrado y desaparición del registro, de modo que se crea un nuevo archivo que no incluye al registro dado de baja. - Consulta: Tiene como fin visualizar la información contenida en el fichero, bien de un modo completo, bien de modo parcial. - Borrado o destrucción: Es la operación inversa a la creación de un fichero. Consiste en la supresión de un fichero del soporte o dispositivo de almacenamiento. El espacio utilizado por el archivo borrado puede ser utilizado por otros archivos. Para borrar un fichero tiene que estar cerrado.

10

174

TIPOS DE ARCHIVOS DE INFORMACIÓN - Ordenación o clasificación: Consiste en lograr una nueva disposición sobre el soporte de los registros de un archivo, con una secuencia de ubicación determinada por el valor de uno o varios campos. - Compactación o empaquetamiento: Esta operación permite la reorganización de los registros de un fichero eliminando los huecos libres intermedios existentes entre ellos normalmente ocasionados por la eliminación de registros.

11

175

TIPOS DE ARCHIVOS DE INFORMACIÓN 5. LAS BASES DE DATOS. Una base de datos o banco de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados sistemáticamente para su posterior uso. En este sentido, una biblioteca puede considerarse una base de datos compuesta en su mayoría por documentos y textos impresos en papel e indexados para su consulta. En la actualidad, y debido al desarrollo tecnológico de campos como la informática y la electrónica, la mayoría de las bases de datos están en formato digital (electrónico), que ofrece un amplio rango de soluciones al problema de almacenar datos. Existen unos programas denominados sistemas gestores de bases de datos, abreviado SGBD, que permiten almacenar y posteriormente acceder a los datos de forma rápida y estructurada. Las propiedades de estos SGBD, así como su utilización y administración, se estudian dentro del ámbito de la informática. Tipos de bases de datos. Las bases de datos pueden clasificarse de varias maneras, de acuerdo al criterio elegido para su clasificación: Según la variabilidad de los datos almacenados: Bases de datos estáticas: Éstas son bases de datos de sólo lectura, utilizadas primordialmente para almacenar datos históricos que posteriormente se pueden utilizar para estudiar el comportamiento de un conjunto de datos a través del tiempo, realizar proyecciones y tomar decisiones. Bases de datos dinámicas: Éstas son bases de datos donde la información almacenada se modifica con el tiempo, permitiendo operaciones como actualización y adición de datos, además de las operaciones fundamentales de consulta. Un ejemplo de esto puede ser la base de datos utilizada en un sistema de información de una tienda de abarrotes, una farmacia, un videoclub, etc. Según el contenido: Bases de datos bibliográficas: Solo contienen un surrogante (representante) de la fuente primaria, que permite localizarla. Un registro típico de una base de datos bibliográfica contiene información sobre el autor, fecha de publicación, editorial, título, edición, de una determinada publicación, etc. Puede contener un resumen o extracto de la publicación original, pero nunca el texto completo, porque sino estaríamos en presencia de una base de datos a texto completo (o de fuentes primarias—ver más abajo). Como su nombre lo indica, el contenido son cifras o números. Por ejemplo, una colección de resultados de análisis de laboratorio, entre otras.

12

176

TIPOS DE ARCHIVOS DE INFORMACIÓN Bases de datos de texto completo: Almacenan las fuentes primarias, como por ejemplo, todo el contenido de todas las ediciones de una colección de revistas científicas. Modelos de bases de datos: Además de la clasificación por la función de las bases de datos, éstas también se pueden clasificar de acuerdo a su modelo de administración de datos. Un modelo de datos es básicamente una “descripción” de algo conocido como contenedor de datos (algo en donde se guarda la información), así como de los métodos para almacenar y recuperar información de esos contenedores. Los modelos de datos no son cosas físicas: son abstracciones que permiten la implementación de un sistema eficiente de base de datos; por lo general se refieren a algoritmos, y conceptos matemáticos. Algunos modelos con frecuencia utilizados en las bases de datos: - Base de datos relacional - Bases de datos orientadas a objetos - Gestión de bases de datos distribuida - Bases de datos jerárquicas - Base de datos de red - Bases de datos documentales - Bases de datos documentales - Bases de datos multidimensionales

13

177

INTRODUCCIÓN A LA PROGRAMACIÓN

178

ÍNDICE INTRODUCCIÓN A LA PROGRAMACIÓN

1. Concepto de algoritmo y de programa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Ciclo de vida: Fases clásicas de diseño de aplicaciones informáticas. . . . . . . . . . . . . . . . . . . . .4 3. Estructura de un Centro de Proceso de Datos. Roles habituales . . . . . . . . . . . . . . . . . . . . . . .7 4. Lenguajes de Programación. Lenguajes de bajo, medio y alto nivel . . . . . . . . . . . . . . . . . . . . .9 5. Ensambladores, Interpretes y Compiladores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15 6. Código fuente, código objeto y código ejecutable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .19

179

INTRODUCCIÓN A LA PROGRAMACIÓN 1. Concepto de algoritmo y de programa. Un algoritmo es un método de resolución de problemas en un número finito de pasos. Un algoritmo es la descripción exacta y sin ambigüedades de la secuencia de pasos elementales a aplicar a un proceso para, que a partir de unos datos iniciales se obtenga la solución buscada a un problema determinado. Un programa es la expresión de un algoritmo en un lenguaje de programación entendible por el ordenador. Cualquier programa por muy complejo que sea, consta de: datos de entrada, instrucciones para tranformar estos datos y obtener los resultados que se mostrarán en la salida.

Un programa en definitiva es un conjunto de órdenes que ejecuta el ordenador para conseguir un objetivo. Las órdenes se dan a través de un lenguaje de programación (códigos).

3

180

INTRODUCCIÓN A LA PROGRAMACIÓN 2. Ciclo de vida: Fases clásicas de diseño de aplicaciones informáticas. Se conoce como ciclo de vida de un sistema informático, al conjunto de actividades a realizar desde que se concibe la realización de un producto software hasta la retirada de de la explotación del mismo. Análisis.En esta fase se establece cuál es el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear, para satisfacer las necesidades y restricciones en el desarrollo de la aplicación. Suele ser misión del analista funcional. Su principal objetivo es establecer QUÉ debe hacer el software a desarrollar (y no CÓMO). - Recoger las ideas expuestas poe el cliente, y transformarlas en especificaciones válidas para el diseñador. - Validar con el cliente que las especificaciones realizadas por él, se ajustan a los deseos que cliente le transmitió.

Diseño.En esta fase, partiendo de la información recogida en el análisis el diseñador establece CÓMO se llevan a cabo los objetivos presentados en el Análisis. Suele ser ésta, la misión del analista orgánico. - Todo gasto de tiempo en diseño se convierte en ahorro cuando se escriba y depura el programa.

4

181

INTRODUCCIÓN A LA PROGRAMACIÓN En esta fase se alcanza una solución óptima, detallada y con la mayor precisión posible para el desarrollo de la aplicación. Para esta fase se utilizan principalmente dos tipos de herramientas de diseño para dar solución a los algoritmos definidos en fases anteriores:: Pseudocódigo: El algoritmo se expresa con palabras del lenguaje común y de la forma más detallada posible. Diagrama de flujo: Se definen como la representación gráfica que mediante el uso de símbolos estándar conectados o unidos mediante líneas de flujo, muestran la secuencia lógica de las operaciones o acciones que debe de realizar u ordenador, así como la corriente o flujo de datos en la resolución de un problema. Los diseños deben de ser normalizados para facilitar el intercambio de documentación entre el personal informático. Los diagramas de flujo se pueden clasificar en dos grandes grupos: - a) Organigramas - b) Ordinogramas Una de las principales diferencias entre ambos, es que pertenecen a diferentes fases o etapas de la resolución de un programa. Mientras que los organigramas corresponden a la fase de análisis, los ordinogramas corresponden a la fase de diseño. Pese a estas diferencias, en muchos ámbitos, se suele llamar indistintamente a los dos generalizando ambos con el nombre de organigramas. El gráfico de debajo, muestra otro esquema clásico del ciclo de vida de las aplicaciones informáticas:

5

182

INTRODUCCIÓN A LA PROGRAMACIÓN

Las otras fases del ciclo de vida de las aplicaciones informáticas son:

6

183

INTRODUCCIÓN A LA PROGRAMACIÓN 3. Estructura de un Centro de Proceso de Datos. Roles habituales. Un Centro de procesos de Datos CPD (tambien conocido como un sistema de información (SI) es un conjunto organizado de elementos, estos elementos son de 4 tipos: - Personas. - Datos. - Actividades o técnicas de trabajo. - Recursos materiales en general (típicamente recursos informáticos y de comunicación, aunque no tienen por qué ser de este tipo obligatoriamente).

Todo ese conjunto de elementos interactúan entre si para procesar los datos y la información (incluyendo procesos manuales y automáticos) y distribuirla de la manera más adecuada posible en una determinada organización en función de sus objetivos. Normalmente el término es usado de manera errónea como sinónimo de sistema de información informático, estos son el campo de estudio de la tecnología de la información (IT), y aunque puedan formar parte de un sistema de información (como recurso material), por sí solos no se pueden considerar como sistemas de información, este concepto es más amplio que el de sistema de información informático.

7

184

INTRODUCCIÓN A LA PROGRAMACIÓN Los sistemas de información tratan el desarrollo, uso y administración de la infraestructura de la tecnología de la información en una organización.

El mayor de los activos de una compañía hoy en día es su información, representada en su personal, experiencia, conocimiento, innovaciones (patentes, derechos de autor, secreto comercial). Para poder competir, las organizaciones deben poseer una fuerte infraestructura de información, en cuyo corazón se sitúa la infraestructura de la tecnología de información. De tal manera que el sistema de información se centre en estudiar las formas para mejorar el uso de la tecnología que soporta el flujo de información dentro de la organización. LOS ROLES de las personas implicadas en un CPD son muchos y muy variados, pudiendo estos variar en función de la organización en que desempeñen su trabajo. Los más habituales son: - Director del departamento - Gerente de cuentas claves - Jefe de Proyectos - Analista Funcional - Analista Orgánico - Analista-Programador - Programador Senior - Programador Junior - Usuarios - Técnico de sistemas de redes - Técnico de seguridad - Técnico de calidad software - Jefe de explotación - Operadores - Administrador de Bases de Datos - Administrador se Seguridad - Otros

8

185

INTRODUCCIÓN A LA PROGRAMACIÓN 4. Lenguajes de Programación. Lenguajes de bajo, medio y alto nivel. La codificación de programas. Consiste en la traducción de la solución obtenida a un determinado lenguaje de programación, basándonos en las especificaciones de diseño expresadas en el cuaderno de carga, dando como resultado unas instrucciones ejecutables por el ordenador. Asimismo, se deberán realizar las pruebas necesarias para depurar errores y verificar la calidad de los programas. Lenguajes de Programación. Los lenguajes de programación son una notación para escribir programas, a través de los cuales podemos comunicarnos con el hardware y dar así las órdenes adecuadas para la realización de un determinado proceso. Lógicamente, para escribir los programas, aplicaciones o “softwares” que el ordenador emplea para trabajar, el programador utiliza un lenguaje de programación denominado “de alto nivel”, que le permite crearlos escribiendo líneas de texto codificadas. Esas líneas de texto u órdenes el programador las puede escribir, leer y entender, no así el ordenador mientras se mantengan escritas de esa forma. Para que el ordenador pueda entender las ordenes contenidas en un programa cualquiera escrito por el programador en lenguaje de “alto nivel”, es necesario que otro programa denominado “compilador” las traduzca y convierta a código máquina “de bajo nivel”. Este código, compuesto solamente de unos y ceros, es el único que entiende el ordenador y es el que le permite interpretar las órdenes contenidas en los programas para que las pueda ejecutar.

9

186

INTRODUCCIÓN A LA PROGRAMACIÓN Los lenguajes de programación a lo largo de la historia. Periodo

Influencias

Lenguajes

1950 - 1955

Ordenadores primitivos

Lenguajes ensamblador. Lenguajes experimentales de alto nivel

1956 - 1960

Ordenadores pequeños, caros y lentos Cintas magnéticas. Compiladores e intérpretes Optimización del código.

FORTRAN ALGOL 58 y 60 COBOL LISP

1961 - 1965

Ordenadores grandes y caros Discos magnéticos Sistemas operativos Lenguajes de propósito general.

FORTRAN IV COBOL 61 Extendido ALGOL 60 Revisado APL (como notación sólo)

1966 - 1970

Ordenadores de diferentes tamaños, velocidades, y costes. Sistemas caros de almacenamiento masivo de datos. Sistemas operativos multitarea e interactivos. Compiladores con optimización. Lenguajes estándar, flexibles y generales.

PL/I FORTRAN 66 (estándar) COBOL 65 (estándar) ALGOL 68 SIMULA 67 BASI C APL/360

1971 - 1975

Micro ordenadores. Sistemas pequeños y baratos de almacenamiento masivo de datos. Programación estructurada. Ingeniería del software. Lenguajes sencillos.

PASCAL COBOL 74 PL/I

10

187

INTRODUCCIÓN A LA PROGRAMACIÓN Periodo

Influencias

Lenguajes

1976 - 1980

Ordenadores baratos y potentes. Sistemas distribuidos. Programación interactiva. Abstracción de datos. Programación con fiabifidad y fácil mantenimiento.

ADA FORTRAN 77 PROLOG COBOL II

1980 -1990

Ordenadores más baratos y potentes. Mayor abstracción de datos. Menor costo de memorias Programación Orientada o Objetos

SmallTalk OOCOBOL C++ Objective C Object Pascal (Delphi) Visual Basic

1990 - 2008

Ordenadores más baratos y potentes. Conexión universal. INTERNET Ordenadores mucho más pequeños. …, …, …, … .

JAVA HTML,XM JAVASCRIPT C# Visual Basic .NET y muchos más, …,

Tipos de lenguajes de programación. Un lenguaje de programación es un conjunto de símbolos y caracteres combinados entre sí de acuerdo con una sintaxis ya definida para posibilitar la transmisión de instrucciones al ordenador. Estos símbolos son traducidos a un conjunto de señales eléctricas representadas en código binario porque es el único lenguaje que entienden los microprocesadores. El único lenguaje que realmente maneja una computadora es el lenguaje Máquina, este lenguaje esta formado exclusivamente de números binarios. Además un programa en lenguaje máquina debe especificar todos los detalles referentes al hardware, lo que hace que además de muy largo, sea dependiente de la máquina en que se trabaje. Por su parte un programa escrito en un lenguaje de alto nivel, esta compuesto de sentencias en un lenguaje más cercano al lenguaje natural con respecto al primero. Un lenguaje de alto nivel es por tanto mas fácil de entender y aprender, permite a los programadores olvidarse de los detalles del hardware y concentrarse en

11

188

INTRODUCCIÓN A LA PROGRAMACIÓN la lógica del programa; además produce programas que se pueden ejecutar en diferentes equipos de computo con pocos o ningún cambio.

Tipos de lenguajes de programación: Bajo nivel (Lenguaje máquina) Intermedios (Lenguaje ensamblador), C Alto nivel Gestión Científicos Propósito general y específicos

Lenguajes máquina. Lenguajes de Bajo Nivel.Fue el primer lenguaje utilizado en la programación de computadoras. Son también llamados de bajo nivel por que el lenguaje que utilizan unos y ceros (sistema binario) para dar órdenes al ordenador. Son los que más bajan al nivel hardware de la maquina, los ceros y unos son en realidad niveles de tensión eléctrica más o menos elevada. Es el único que entiende directamente la computadora. Utiliza el alfabeto binario que como vimos más arriba, que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios).

EJEMPLO: 0000 1000 0011 0111 1110

0001 1001 1010 0100 1001

1010 1001 1001 0111 0010

0001 1010 1100 0000 0000

01 A1 89 9A 3A 9C 74 70 E9 20

12

189

INTRODUCCIÓN A LA PROGRAMACIÓN Lenguaje de ensambladores.Es el primer intento de sustituir el lenguaje máquina por otro más similar a los utilizados por las personas. Cada instrucción equivale a una instrucción en lenguaje máquina, utilizando para su escritura palabras nemotécnicas en lugar de cadenas de bits. Formado por nemotécnicos es decir, palabras abreviadas procedentes del inglés formadas por letras y números (Ejemplo: MOV A, B). La programación en lenguaje ensamblador precisa de un amplio conocimiento sobre la constitución, estructura y funcionamiento interno de un ordenador, así como un hábil manejo de los códigos y sistemas de numeración, en especial el binario y el hexadecimal.

EJEMPLO: INICIO:

FIN :

ADD MOV CMP JE JMP END

B, 1 A, E A, B FIN INICIO

Este lenguaje presenta la mayoría de los inconvenientes del lenguaje máquina: Cada modelo de computadora tiene un lenguaje ensamblador propio diferente del de los demás, por lo cual un programa sólo puede utilizarse en la máquina para la cual se programó. El programador ha de conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de memoria, registros del procesador y demás elementos físicos. Todas las instrucciones son elementales, es decir, en el programa se deben describir con el máximo detalle todas las operaciones que se han de llevar a cabo en la máquina para la realización de cualquier proceso. Mínima ocupación de memoria y mínimo tiempo de ejecución en comparación con el resultado de la compilación del programa equivalente escrito en otros lenguajes.

13

190

INTRODUCCIÓN A LA PROGRAMACIÓN Lenguajes de Alto Nivel.Se llaman lenguajes de alto nivel cuando el conjunto de órdenes que utilizan son fáciles de entender y aprender. Además no hay incompatibilidades entre un microprocesador y otro. Como inconveniente destacable, es la necesidad de traducir los programas escritos en un lenguaje de alto nivel a un lenguaje de programación tan primitivo como el lenguaje máquina para que pueda ser interpretado y ejecutado por la unidad central de proceso, lo que significa disponer necesariamente de un traductor (ensamblador, compilador o intérprete) para cada tipo de ordenador utilizado. Las características de los lenguajes de alto nivel son: - Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador, que lo suministra el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate. Además, no se necesita conocer el hardware específico de dicha máquina. - Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente. - Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.

14

191

INTRODUCCIÓN A LA PROGRAMACIÓN 5. Ensambladores, Interpretes y Compiladores. Cuando programamos en un lenguaje distinto al lenguaje máquina, los programas diseñados deben ser traducidos a código binario, para que así las instrucciones en ellos especificadas puedan ser entendidas y ejecutadas. El sistema o software encargado de traducir estos programas (denominados programas fuentes) puede ser un ensamblador, intérprete o compilador. Representación grafica de los 3 modelos de traducción a ejecutable.

Programas Ensambladores.Son los encargados de transformar o traducir directamente (lo que aporta al ordenador mayor velocidad de operación) los programas escritos en ensamblador a su correspondiente en código máquina o código binario para que puedan ser ejecutados por la CPU. Programas Intérpretes.Analiza el programa fuente y lo ejecuta directamente, sin generar ningún código equivalente. Suele generar programas más rápidos y eficientes, ya que el análisis del lenguaje fuente se hace una sola vez, durante la generación del programa equivalente. Un intérprete es un programa de software encargado de procesar y traducir cada instrucción o sentencia de un programa escrito en un lenguaje de alto nivel a código máquina y después ejecutarla; es decir, que el microprocesador ejecuta la orden o instrucción una vez traducida y después de comprobar que no existe error alguno de sintaxis. La traducción o interpretación y la ejecución no se realizan como procesos independientes, sino en una misma operación e instrucción por instrucción, respetando rigurosamente el orden establecido en ellas.

15

192

INTRODUCCIÓN A LA PROGRAMACIÓN Programas Compiladores.Son los traductores a lenguaje máquina de los lenguajes de alto nivel. Un compilador es un programa de software escrito en algún lenguaje de programación cuyo objetivo es traducir el correspondiente programa fuente (fichero constituido por un conjunto de instrucciones desarrolladas en un lenguaje de alto nivel) a su equivalente en código máquina, también denominado programa objeto. Su misión, con otras palabras es, analizar el programa fuente y traducirlo a otro equivalente escrito en otro lenguaje (por ejemplo, en el lenguaje de la máquina). La diferencia más destacable entre un compilador y un intérprete radica en que, mientras que un intérprete acepta un programa fuente que traduce y ejecuta simultáneamente analizando cada sentencia o instrucción por separado, un compilador efectúa dicha operación en fases independientes, primero traduce completamente el programa fuente a código máquina y seguidamente ejecuta el programa. Otra de las funciones del compilador además de la DEPURACIÓN SINTÁCTICA del programa FUENTE es producir un listado indicando la línea donde se ha detectado y la regla sintáctica que se ha infringido. Pasos para la creación de un programa ejecutable escrito en un lenguaje de alto nivel: 1. - Escribir el código fuente (editor de texto). 2. - Compilar y Linkeditar el código 3. - Ejecutar el código que produce la compilación. Como se ha enumerado más arriba, las Fases de creación de ejecutables son: 1. Edición: El programador con un editor de textos genera el código fuente, en un archivo o en varios. 2. Compilación: Cada archivo de código fuente se compila y se obtiene un archivo de código objeto. La compilación tiene las siguientes fases: - Análisis léxico - Análisis sintáctico - Análisis semántico - Optimización - Generación de código.

16

193

INTRODUCCIÓN A LA PROGRAMACIÓN

Linkaje: Se montan, enlazan y vinculan todos los códigos objeto y se genera un archivo en código máquina, capaz de ser ejecutado en el ordenador. Ejecución: El sistema operativo monta en memoria el programa ejecutable y lo ejecuta. Visto secuencialmente :

17

194

INTRODUCCIÓN A LA PROGRAMACIÓN Y este mismo proceso de compilación en los lenguajes de alto nivel se ve secuencialmente y con un poco más de profundidad en el esquema siguiente:

El analizador léxico: Detecta las palabras reservadas, signos de puntuación, variables etc. El analizador sintáctico: Comprueba que las sentencias son correctas desde el punto de vista sintáctico. El analizador semántico: Comprueba que las sentencias son correctas desde el punto de vista semántico. El operador de código intermedio: Realiza la primera traducción del código fuente. El optimizador de código: Realiza mejoras en la eficiencia del programa. El operador de código final: Realiza la última traducción dando lugar al código objeto, que es el código escrito en lenguaje ensamblador.

18

195

INTRODUCCIÓN A LA PROGRAMACIÓN 6. Código fuente, código objeto y código ejecutable. Definición de conceptos de Compilación:

PROGRAMA FUENTE:

Programa cuyas instrucciones están escritas en un lenguaje simbólico.

PROGRAMA OBJETO:

Programa cuyas instrucciones están escritas en lenguaje reconocible por el ordenador.

COMPILAR:

Fundamentalmente acción de traducir un programa FUENTE a OBJETO.

COMPILADOR:

Programa que realiza básicamente la función de traducir un programa FUENTE a OBJETO.

Un programa FUENTE que ha sido compilado y por tanto traducido a lenguaje máquina, es decir, convertido en programa OBJETO, es un programa que todavía no es EJECUTABLE. No es EJECUTABLE, porque está incompleto. Cada una de las instrucciones de un programa FUENTE, al ser ‘traducido’ a OBJETO, se ‘EXPANDEN’ en varias INSTRUCCIONES MAQUINA. Estas instrucciones, además, son ordenadas y direccionadas secuencialmente. Existen, sin embargo, en el programa ya compilado algunas instrucciones que necesitan un número de instrucciones complejas para poderse EJECUTAR. Estos conjuntos de INSTRUCCIONES MAQUINA se almacenan en unas LIBRERIAS, formando MODULOS localizables mediante unos nombres que el compilador ‘asocia’ a determinadas instrucciones especiales. Por tanto, en el programa OBJETO no están todavía las instrucciones de esos MODULOS, aunque estos sí están definidos y direccionados. Además, existen instrucciones del lenguaje de alto nivel que piden la ayuda de otros programas. Por ejemplo, el verbo CALL. El compilador direcciona la instrucción, pero no incorpora el programa LLAMADO.

19

196

INTRODUCCIÓN A LA PROGRAMACIÓN El programa “LINKEDITADOR”, tiene como función básica incorporar (ENLAZAR), tanto los módulos OBJETO definidos por el compilador, como los programas o subprogramas también llamados funciones o procedimientos. Con el conjunto formado por el programa OBJETO, más los módulos o librerias incorporados, más los subprogramas añadidos, genera lo que se denomina programa EJECUTABLE. Definición de conceptos de Linkeditación y enlace:

MODULO COBOL:

Conjunto de instrucciones máquina, que son capaces de realizar la acción pedida por un verbo COBOL.

NOMBRE MODULO:

Nombre predefinido que asocia el compilador a un verbo COBOL y el LINKEDITOR a un conjunto de instrucciones residentes en una librería.

PROGRAMA EJECUTABLE:

Programa generado por el linkeditor a partir del programa OBJETO generado por el compilador, los módulos COBOL Y LOS POSIBLES PROGRAMAS LLAMADOS. El programa EJECUTABLE, como dice la palabra, está dispuesto para realizar el proceso.

PROGRAMA LLAMANTE:

Programa, en nuestro caso COBOL, que contiene una o n veces el verbo CALL para solicitar que se le incorpore una copia del programa indicado como operando de dicho verbo.

Ejecución y Puesta a Punto de Programas. Una vez que el programa ha sido LINKEDITADO, ya SI se puede ejecutar. Los PROGRAMAS que de forma automática desarrollan los Sistemas de la Compañía (nóminas, control de producción, etc..) son, como es lógico, PROGRAMAS EJECUTABLES, que residen permanentemente en LIBRERIAS. Para que se ejecuten, basta con “llamarlos” o referenciarlos adecuadamente. Sin embargo, hasta que un PROGRAMA pasa a SER EJECUTABLE, ha de recorrer un camino que podemos definir como de PUESTA a PUNTO.

20

197

INTRODUCCIÓN A LA PROGRAMACIÓN Este camino a recorrer tiene como objetivo garantizar que el PROGRAMA ‘funciona’ y ‘funciona bien’. Sólo a partir de este momento el programa podrá pasar a residir en la librería de PROGRAMAS EJECUTABLES (programas en explotación). Durante la PUESTA a PUNTO el programa se hará EJECUTABLE solamente el tiempo necesario para ‘probarlo’ y conseguir unos resultados. Si es necesario, se corregirán instrucciones y de nuevo se probará el Programa. El circuito de la PUESTA a PUNTO será COMPILAR, LINKEDITAR y EJECUTAR tantas veces como se considere necesario. Lógicamente en esta Fase intervienen también los DATOS de ENTRADA así como los RESULTADOS. Definición de conceptos de Ejecución y puesta apunto de programas: PROGRAMA EJECUTABLE TEMPORAL: Programa en situación de prueba que permanece en un disco durante el tiempo imprescindible para que pueda ser probado. PROGRAMA EJECUTABLE CATALOGADO: Programa Puesto a Punto que reside permanentemente en una LIBRERIA dispuesto para SER EJECUTADO cuando sea llamado. CIRCUITO DE PRUEBA: Ciclo normalmente repetitivo en el que intervienen: EL PROGRAMA FUENTE recién corregido, que pasa a ser PROGRAMA OBJETO, a continuación PROGRAMA EJECUTABLE (provisional) que da unos resultados revisables. JUEGO DE FICHEROS DE PRUEBAS ENSAYO: FICHEROS que simulan a FICHEROS REALES, como entrada de datos al programa, para conseguir probar todas las instrucciones y todas las situaciones y “caminos” del Programa.

21

198

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

199

ÍNDICE LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

1. Introducción a la Programación Estructurada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Instrucciones secuenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6 3. Instrucciones alternativas (bifurcaciones) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 4. Instrucciones repetitivas (bucles) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

200

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS 1. Introducción a la Programación Estructurada. Como se vio más arriba, un algoritmo es un conjunto finito de acciones o pasos ordenados que terminan en la solución del problema, y que nos permitan resolver cualquier problema, ya sea práctico o no. Un algoritmo es solución para un solo problema, es decir, distintos problemas tienen sus propios algoritmos específicos para cada uno, pero un problema puede tener uno o más algoritmos distintos como solución. Ejemplo de Algoritmo: “Encender un fósforo”. - Tenemos una caja de fósforos con al menos 1 fósforo en su interior. - Abrimos la caja de fósforos. - Introducimos dedo pulgar e índice en la caja de fósforos. - Tomamos y sacamos un fósforo de la caja. - Sin soltar el fósforo, deslizamos su cabeza por el costado de la caja de fósforos. - El fósforo se enciende. A finales de los años sesenta surgió una nueva forma de programar que no solamente daba lugar a programas fiables y eficientes, sino que además estaban escritos de manera que facilitaba su comprensión posterior. El teorema del programa estructurado, demostrado por Böhm-Jacopini, demuestra que todo programa puede escribirse utilizando únicamente por tres tipos de instrucciones de control. Esta metodología es esencial e imprescindible para la programación de los ordenadores. En la programación estructurada, la técnica desarrollada para la resolución de problemas es el pseudocódigo y es la herramienta base de diseño en la programación actual. El primer paso de la realización de un programa es razonar la solución del problema para determinar: - Las operaciones que debe realizar el ordenador, y - En qué secuencia Al diseñar el pseudocódigo el programador tendrá en cuenta: - El objetivo que persigue el programa y como llegar a él, según su forma habitual de razonar. - Siempre ayuda algo, a encontrar una solución más fácilmente, el tener en cuenta el lenguaje de alto nivel escogido para su codificación final. De esta forma se facilita la traducción de la solución al lenguaje final. - También es conveniente tener presente, las limitaciones de los recursos de los ordenadores en donde se ejecutará.

3

201

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS La programación estructurada se basa en unos conceptos y unas técnicas muy básicas. Para diseñar programas vamos a utilizar las siguientes reglas: - Diseño descendente (TOP-DOWN). Consiste en descomponer una acción compuesta o compleja en otras acciones más simples. Realizamos el diseño partiendo de lo más general a lo más particular descomponiendo el problema en aproximaciones sucesivas. - El programador sigue un razonamiento deductivo subordinando lo lo particular a lo general. De esta forma, establece las líneas maestras de su algoritmo atendiendo a las funciones generales que deberá hacer su programa. Debe razonar que “grandes cosas” debe hacer el programa y en que secuencia. Así pues, utilizará en sus diseños: - Recursos abstractos (subprogramas, rutinas, etc.). - Refinamientos sucesivos hasta lo más elemental. En programación y diseño de algoritmos, el diseño estructurado persigue elaborar algoritmos que cumplan la propiedad de modularidad, para ello, dado un problema que se pretende resolver mediante la elaboración de un programa de ordenador, se busca dividir dicho programa en módulos siguiendo los principios de diseño de Descomposición por refinamientos sucesivos, creación de una Jerarquía modular y elaboración de módulos Independientes. - Teorema de la estructura: Todo programa por muy complejo que sea puede ser diseñado con solo tres estructuras básicas: - secuencias - alternativas o instrucciones condicionales - y repetitivas ligadas a condiciones (bucles o iteraciones ) Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de control, éstas pueden ser construidas mediante las tres básicas. Ventajas de la programación estructurada Con la programación estructurada, elaborar programas de computador sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este estilo podemos obtener las siguientes ventajas:

4

202

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS - 1. Los programas son más fáciles de entender, ya que pueden ser leído de forma secuencial, sin necesidad de hacer seguimiento a saltos de línea (GOTO) dentro de los bloques de código para entender la lógica. - 2. La estructura del programa es clara puesto que las instrucciones están más ligadas o relacionadas entre sí. - 3. Reducción del esfuerzo en las pruebas. El seguimiento de los fallos o errores del programa (“debugging”) se facilita debido a la estructura más visible, por lo que los errores se pueden detectar y corregir más fácilmente. - 4. Reducción de los costos de mantenimiento de los programas. - 5. Programas más sencillos y más rápidos (ya que es más fácil su optimización). - 6. Los bloques de código son auto explicativos, lo que facilita a la documentación. - 7. Los GOTO se reservan para construir las instrucciones básicas. Aunque no se usan de forma directa, por estar prohibida su utilización, están incluidas implícitamente en las instrucciones de selección e iteración. - 8. Un programa escrito de acuerdo a estos principios no solamente tendra una estructura sino también una excelente presentación. - 9. La programación estructurada ofrece estos beneficios,pero no se la debe considerar como una panacea ya que el desarrollo de programas es, principalmente, una tarea de dedicación, esfuerzo y creatividad. Inconvenientes de la programación estructurada El principal inconveniente de este método de programación, es que se obtiene un único bloque de programa, que cuando se hace demasiado grande puede resultar problemático su manejo, esto se resuelve empleando la programación modular, definiendo módulos interdependientes programados y compilados por separado. Un método un poco más sofisticado es la programación por capas, en la que los módulos tienen una estructura jerárquica muy definida y se denominan capas.

5

203

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS 2. Instrucciones secuenciales. El Teorema de la estructura afirma que todo programa por muy complejo que sea puede ser diseñado con solo tres estructuras básicas. Las instrucciones secuenciales son una se ellas. Y en último termino, TODO SON INSTRUCIONES secuenciales en un programa, ya que en la CPU del ordenador todo se ejecuta secuencialmente. Una instrucción detrás de otra. El único matiz a destacar que estas instrucciones secuenciales una veces serán muy elementales y otras veces serán más complejas. Veamos su representación en pseudocódigo y su equivalente en ordinagrama.

6

204

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS 3. Instrucciones alternativas (bifurcaciones). En el mundo real constantemente tenemos que tomar decisiones, y en función de la elección se toman distintos caminos o acciones para dar solución a nuestros problemas diarios. Cuando queremos plasmar estas mismas decisiones en el pseudocódigo usamos una serie de reglas muy estandarizadas en programación. El Teorema de la estructura afirma que todo programa por muy complejo que sea puede ser diseñado con solo tres estructuras básicas. Las instrucciones alternativas o instrucciones condicionales o bifurcaciones condicionales son las otras estructuras de diseño necesarias.

Siempre en las instrucciones o bifurcaciones condicionales, tendremos la posibilidad de “bifurcar” el orden secuencial típico de los ordenadores gracias al análisis de una condición. En función de que la condición se cumpla, (sea verdadera “trae”) o que la condición asociada al IF no se cumpla (sea falsa) se pueden realizar las instrucciones que coloquemos en dos o más caminos alternativos. Veamos a continuación todos los formatos conocidos de alternativas condicionales y su representación en pseudocódigo y su equivalente en ordinagrama.

7

205

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

8

206

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

9

207

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

10

208

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS 4. Instrucciones repetitivas (bucles). Como razonábamos antes, en el mundo real constantemente tenemos que realizar acciones y algunas de ellas las tenemos que repetir varias o muchas veces hasta dar por terminado una tarea. Cuando queremos plasmar estas mismas tareas repetitivas en el pseudocódigo usamos una serie de reglas muy estandarizadas en programación. El Teorema de la estructura afirma que todo programa por muy complejo que sea puede ser diseñado con solo tres estructuras básicas. Las instrucciones repetitivas ligadas a condiciones también conocidas como instrucciones iterativas o más coloquialmente como bucles son la tercera estructura de diseño necesarias para diseñar nuestros programas. Veamos todos los formatos conocidos de repetitivas y su representación en pseudocódigo y su equivalente en ordinagrama.

11

209

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

12

210

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

13

211

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

14

212

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS Funcionamiento interno del BUCLE FOR Se ejecutan las instrucciones de la repetitiva mientras la condición es cierta.

15

213

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

16

214

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

17

215

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

18

216

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS Los 4 modelos o paradigmas de la programación actual se pueden ver representados gráficamente a continuación:

Un programa secuencial es un programa que: - Arranca - Lee los datos que necesita - Realiza los cálculos - Imprime o guarda en el disco los resultados. Mientras un programa secuencial está ejecutándose no necesita ninguna intervención del usuario. A este tipo de programas se les llama también programas basados u orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente en la actualidad, pero la difusión de los PC’s y los GUIs (Interfaces Gráficos de Usuario) ha puesto de actualidad otros tipos de programación.

19

217

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

Los programas interactivos exigen la intervención del usuario en tiempo de ejecución: - Para suministrar datos - Para indicar al programa lo que debe hacer por medio de menús. Los programas interactivos limitan y orientan la acción del usuario. Como en los programas secuenciales también se les llama programas basados u orientados a procedimientos o a algoritmos (procedural languages). Este tipo de programas siguen utilizándose ampliamente en la actualidad, pero la difusión de los PC’s y los GUIs (Interfaces Gráficos de Usuario) ha puesto de actualidad otros tipos de programación.

20

218

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

Los programas orientados a eventos son los programas típicos de Windows, tales como Explorer, Word, Excel, PowerPoint, Access y otros. Cuando uno de estos programas se ha iniciado, se queda en espera de las acciones del usuario o del sistema, dichas acciones se denominan eventos. El usuario decide, interactuando con el interfaz, si quiere abrir y modificar un fichero existente, o bien comenzar a crear un fichero desde el principio, o cualquier otra acción que el programa ofrezca al usuario mediante el interfaz. El tipo de programación que ejecuta código cuando se producen determinados eventos es la denominada programación orientada a eventos. Un evento se produce sobre un elemento del interfaz, y esto hace que se ejecute el código asociado a ese elemento para ese evento. Los elementos del interfaz se denominan controles y los códigos que un control ejecuta como reacción a un evento se llaman métodos. Los controles tienen caracterizado su comportamiento según el estado de sus propiedades.

21

219

LA PROGRAMACIÓN ESTRUCTURADA. PSEUDOCÓDIGOS Y ESTRUCTURAS BÁSICAS

22

220

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA

221

ÍNDICE TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA

1. TIPOS DE DATOS MÁS UTILIZADOS EN LA MAYORÍA DE LOS LENGUAJES DE PROGRAMACIÓN (Revisión de Conceptos) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. EJERCICIOS DE TEORÍA Y TÉCNICASDE PROGRAMACIÓN ESTRUCTURADA . . . . . . . . . . . . . . . . .8

222

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 1. TIPOS DE DATOS MÁS UTILIZADOS EN LA MAYORÍA DE LOS LENGUAJES DE PROGRAMACIÓN. (Revisión de Conceptos) Número enteros: Caracter Numerico Entero Numerico Entero largo

Byte (1 byte) Integer (2 bytes) Long (4 bytes)

0 a 255 -32768 a 32767 -2.147.483648 a +2.147.483647

Número decimales o reales (coma flotante): Coma flotante. Simple Precisión Single/Float (4 bytes) -3,40E+38 a 3,40E+38 Coma flotante. Doble Precisión

Double (8 bytes)

-1,79D+308 a 1,79D+308

Coma fija con 4 decimales Currency (8 bytes) +/- 922.337.203.685.477,5807 Datos Alfanuméricos Cadena de caracteres alfanum.

String (hasta 64K. Un caracter por byte)

Datos Boleanos (verdadero/falso) Booleano/Switch

Boolean (2 bytes)

Datos tipo Fechas Fecha y Hora

Date (8 bytes) desde año 100 a 9999

RESUMEN:

True o False

Tipología y Tamaño de los datos

BYTE INTEGER LONG INTEGER

0 a 255 -32.768 a 32.767 -2.147.483.648 a 2.147.483.647

BOOLEAN FLOAT STRING

True / False Decimales Alfanuméricos

3

223

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA LOS OPERADORES EN INFORMÁTICA: Los operadores son símbolos que sirven para conectar los datos haciendo diversas clases de operaciones. TIPOS DE OPERADORES DE DATOS EN INFORMÁTICA:

Prioridad de los Operadores Aritméticos - Todas las expresiones entre paréntesis se evalúan primero. Las expresiones con paréntesis anidados se evalúan de dentro a fuera, el paréntesis mas interno se evalúa primero. - Dentro de una misma expresión los operadores se evalúan en el siguiente orden . 1º.- ^ Exponenciación 2º.- *, /, mod. (Multiplic., división, resto). 3º- +, -(Suma ,resta). - Los operadores en una misma expresión con igual nivel de prioridad se evalúan de izqui. a dcha. - Los operadores aritméticos permiten la realización de operaciones matemáticas con los valores (variables y constantes). - Los operadores aritméticos pueden ser utilizados con tipos de datos enteros o reales. Si ambos son enteros, el resultado es entero; si alguno de ellos es real, el resultado es real.

4

224

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA

-

Se utilizan para establecer una relación entre dos valores. Compara estos valores entre si y esta comparación produce un resultado de verdadero o falso. Los operadores relaciónales comparan valores del mismo tipo (numéricos o cadenas). Tienen el mismo nivel de prioridad en su evaluación. Los operadores relaciónales tiene menor prioridad que los aritméticos.

5

225

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA Formatos De Las Instrucciones Utilizadas En La Programación Estructurada Para El Diseño De Algoritmos Y Programas A Través De Pseudocódigos.

6

226

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA Instrucciones Repetitivas o Instrucciones Cíclicas.

7

227

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 2. EJERCICIOS DE TEORÍA Y TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 1. Leer un número y, si es par, que lo imprima, si no, que vuelva a leer otro. (Se leerá uno o dos números dependiendo de que meta el par a la primera). (Ejemplo de lo que no se debe hacer en Programación estructurada).

8

228

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA Versión del uno: Leer un número y, si es par, que lo imprima, si no, que vuelva a leer números indefinidamente hasta que se introduzca un número par. Cuando se lee un par se parará el programa. OJO: CON (numero MOD 2 = 0) EL CERO SE CUELA COMO PAR

9

229

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 2. Leer dos números e imprimir el mayor de ellos.

10

230

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 3. Leer un número, si es negativo lo imprime, si no, lee un nuevo número e imprime la suma de ambos.

11

231

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 4. Leer TRES números y decir cual es el mayor de los tres (no se considerará la opción de iguales, es decir, al programa llegarán siempre tres números distintos. Se da por supuesto que los tres núm. siempre serán distintos).

12

232

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (4.2 continuación. Otra forma válida)

13

233

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (4.3 continuación. Otra forma Válida. Aunque solo se guarda el número mayor. Los tecleados se van perdiendo. )

14

234

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (4.4 continuación. Otras formas Válidas. Aunque solo se guarda el número mayor. Los tecleados se van perdiendo. CON REPETITIVAS).

15

235

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (4.5 continuación. Otra forma válida EN LA QUE SE DETECTA LA POSIBILIDAD DE QUE HAYA NÚMEROS IGUALES). Se pueden dar tres situaciones: Que los 3 números sean iguales Que 2 de ellos sean iguales

Y que los 3 sean distintos

N1 N2 N3 1 1 1 N1=N2 Y N1=N3 1 1 2 N1=N2 ó N1=N3 ó N2=N3 1 2 1 2 1 1 2 2 1 2 1 2 1 2 1 ===> Ya visto en versiones anteriores en la pizarra

16

236

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 5. Leer dos números e imprimir todos los números naturales comprendidos entre los dos números leídos.

17

237

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (Tercera Versión valida : Se imprimirá del numero primero al número segundo con independencia de cual sea el mayor y el menor).

18

238

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (Versiones Cuarta y quinta : Se imprimirá del numero primero al número segundo con independencia de cual sea el mayor y el menor). HACEN LO MISMO QUE LA VERSION ANTERIOR.

19

239

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA (Sexta Versión: Se imprimirá del numero primero al número segundo con independencia de cual sea el mayor y el menor). Con WHILE y text posterior y CONTROL DE IGUALES)

20

240

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 6. Leer el nombre de una figura geométrica (triángulo, cuadrado o pentágono) e imprimir su área.

21

241

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA LO MISMO PERO LLAMANDO A PROCEDIMIENTOS DONDE SE DESARROLLA

22

242

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 7. Leer un número, entre 1 y 9, e imprimir su tabla de multiplicar

NOTA: Esta es una solución válida, muy eficaz ya que no se tienen que analizar condiciones antes de hacer la multiplicación de cada número, pero menos práctica que usar repetitivas. Si tuviesemos que hacer la tabla de multiplicar de hasta el 1000 de un numero tecleado entre el 1 y el 9, nos veríamos obligados a repetir mil veces esa linea en el programa, con lo que el programa fuente sería muy grande. Veamos a continuación, otras opciones de codificación más estandarizadas.

23

243

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA

24

244

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA OTRAS POSIBILIDADES: (MENOS NORMALES)

25

245

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA 8. Leer un número entero positivo e imprimir su tabla de multiplicar así como la de los números anterior y posterior al tecleado.

26

246

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA OTRAS POSIBILIDADES: TABLA DE MULTIPLICAR DE UN NÚMERO Y DEL ANTERIOR Y DEL POSTERIOR QUE ESTE COMPRENDIDO ENTRE EL 0 Y EL 300 Y ADEMÁS SE MULTIPLICA HASTA EL nº 20 EN LUGAR DE HASTA EL 10 Y ADEMAS SE VALIDA LA ENTRADA DE UN NÚMERO VALIDO

27

247

TÉCNICAS DE PROGRAMACIÓN ESTRUCTURADA OTRAS POSIBILIDADES: TABLA DE MULTIPLICAR DE UN NÚMERO Y DEL ANTERIOR Y DEL POSTERIOR QUE ESTE COMPRENDIDO ENTRE EL 0 Y EL 300 Y ADEMÁS SE MULTIPLICA HASTA EL nº 20 EN LUGAR DE HASTA EL 10 Y ADEMAS SE VALIDA LA ENTRADA DE UN NÚMERO VALIDO LOS TRES EN LA MISMA LINEA

28

248

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN

249

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 1. Leer un número entero e imprimir todos los NÚMEROS NATURALES comprendidos entre 1 y el número entero leído inclusive.

2

250

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 2. Leer un número e imprimir todos los números PARES comprendidos entre 1 y ese número.

3

251

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 3. Leer un número e imprimir la suma de todos los números comprendidos entre 1 y el número leído. Una vez terminado el programa, modificarlo para que además de la suma final imprima cada uno de los números que se van sumando además de las sumas parciales que se van obteniendo.

4

252

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 4. Crear un programa que lea las edades de una serie de personas (hasta que se reciba una EDAD NEGATIVA o CERO) y que después imprima la media de todas las edades procesadas (tecleadas).

5

253

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 5. Leer cinco números y si alguno de ellos es par, que imprima la suma de estos cinco números.

6

254

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 6. Lee las notas de los alumnos de una clase de 40 alumnos e imprime el número de aprobados y de suspensos. Imprime además la media de los aprobados y la media de los suspensos.

7

255

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 7. Lee las notas (entre 0 y 10) de Matemáticas de los 40 alumnos de una clase introducidas por el profesor e imprime la nota mayor y la nota menor.

8

256

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN (AQUÍ CON ALGÚN MATIZ DISTINTO)

9

257

EJERCICIOS DE METODOLOGÍA DE PROGRAMACIÓN 8. El programa nada más comenzar solicita al usuario que teclee una clave o password numerica de acceso. Si esta es correcta, le pide un nuevo número y el programa imprime todos los pares menores que ese número hasta llegar al cero (ó desde el cero hasta el número tecleado). Si la clave no es correcta el programa vuelve a solicitar otra vez la password, hasta un máximo de 5 intentos. (Yo soy el programador y sé que la PW definida internamente es 88).

10

258

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

259

ÍNDICE ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

- Ordenar una tabla por cualquier método - Insertar un elemento en uno libre del final - Insertar un elemento en uno de los elemento intermedios desplazando el resto hacia el final (debe haber elem. vacios al final). - Borrar un elemento de una tabla.

260

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. Programas de proposito General con TABLAS (Arrays, Vectores, Matrices, Poliedros) A partir de un Array de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana: Hacer la tareas habituales que se suele necesitar realizar en la mayoría de los programas con este tipo de datos:

- ORDENAR UNA TABLA POR CUALQUIER MÉTODO - INSERTAR UN ELEMENTO EN UNO LIBRE DEL FINAL - INSERTAR UN ELEMENTO EN UNO DE LOS ELEMENTO INTERMEDIOS DESPLAZANDO EL RESTO HACIA EL FINAL (DEBE HABER ELEM. VACIOS AL FINAL). - BORRAR UN ELEMENTO DE UNA TABLA.

3

261

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. 1. ORDENACION DE TABLAS (Existen múltiples Métodos) 5. A partir de dicho tabla de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana. Ordenar los elementos de la tabla e imprimirlos una vez ordenados.

Con este método en la primera pasada se compara el primer elemento con todos los demás y, al final de ésta el valor más pequeño queda en el primer elemento. En la segunda pasada se compara el segundo elemento con todos los demás y al final de esta el siguiente valor más pequeño queda ordenado en el segundo elemento y así sucesivamente.

4

262

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

5

263

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

6

264

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. ORDENACION DE TABLAS (OTRO MÉTODO OPTIMIZADO) 6. A partir de dicho tabla de una dimensión (vector) de 7 elementos que contendrá los gastos de cada uno de los 7 días de la semana. Ordenar los elementos de la tabla e imprimirlos una vez ordenados.

Con este segundo método de ordenación, se van comparando parejas de elementos, siempre juntos. Todos los elementos que van quedándose detrás, van quedando ordenados. Conforme se avanza, cada vez que se encuentran dos elementos que no están ordenados se ordenan y se va retrocediendo hasta dejar el valor más pequeño colocado en su lugar. Una vez ordenado se continua a partir del elemento desde el que se comenzó a retroceder. Y así sucesivamente hasta dejar todos los elementos ordenados en su lugar.

7

265

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. PROGRAMA ORDENACION DE TABLAS MUY OPTIMIZADO (continuación)

8

266

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

9

267

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. ORDENACION POR MÉTODO DE LA BURBUJA MEJORADO Este tercer método de ordenación, es uno de las más representativos (aunque no por ello el más eficaz). Se van comparando parejas de elementos, siempre juntos. Si se encuentra un valor desordenado se va arrastrando hacia la izquierda hasta dejar el valor más pequeño en la posición CERO. Conforme se avanza, cada vez que se encuentran dos elementos que están desordenados se ordenan y se activa el Switch y se va retrocediendo hasta dejar el valor más pequeño colocado en su lugar. Después de incrementar el indice más a la izquierda se comienza el proceso hasta que el indice de la izquierda se iguala al indice máximo posible para esa tabla.

10

268

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. ORDENACION POR MÉTODO DE LA BURBUJA MEJORADO

11

269

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. 6. A partir de una tabla como de 7 elementos. Y QUE ESTA INCOMPLETA, es decir, que HAY SITIO LIBRE AL FINAL de la tabla y los últimos elementos están vacios. Insertar uno o más números (u otros datos) introducidos por el usuario desde el teclado.

12

270

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. INSERTAR UN NUMERO EN SU LUGAR EN UNA TABLA ORDENADA DESPLAZANDO LOS VALORES MAYORES QUE EL HACIA EL FINAL (Como es lógico, debe haber elementos vacios al final de la tabla y conocer la posición del 1º vacio). 7. A partir de una tabla ordenada como de 7 elementos y que está incompleta. Insertar uno o más números introducidos por el usuario.

13

271

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES.

14

272

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. BORRAR UN ELEMENTO DE UNA TABLA . 8. A partir de una tabla de 7 elementos. Eliminar uno o más números de elementos introducidos por el usuario.

15

273

ARRAYS Y TABLAS UNIDIMENSIONALES, BIDIMENSIONALES, TRIDIMENSIONALES Y MULTIDIMENSIONALES. BORRAR UN ELEMENTO DE UNA TABLA (continuación)

16

274

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES)

275

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) FORMATOS TIPICOS DE TRATAMIENTOS DE TABLAS BIDIMENSIONALES:

2

276

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 1. Diseñar un programa que a partir de un array o tabla de dos dimensiones de 16 por 16 elementos (16 filas y 16 columnas) cuyo nombre será producto: A.) Cargar el array con el PRODUCTO del número de la fila por el número de la columna . B.) Imprimir en pantalla el contenido del array una vez cargado.

3

277

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 2. Diseñar un programa que cargue un array BIDIMENSIONAL llamado DIAGONAL de 10 por 10 elementos de tal forma que los elementos de una de las diagonales se rellenen con el valor ‘1’ y todos los demás con el valor ‘0’.

4

278

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) Opcion2: Si el lenguaje NO permite inicializar a la hora de crear las variables.

5

279

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) Opcion3:

AQUÍ SE METEN UNOS EN LA OTRA DIAGONAL.

6

280

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 3. A partir de una tabla BIDIMENSIONAL de 4 filas por 10 columnas ya cargada con los valores que se deseen por parte del alumno, obtener su array transpuesto (10 filas por 4 columnas).

7

281

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) Otra posibilidad con tablas de tamaños invertidos:

8

282

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 4. A partir de una tabla BIDIMENSIONAL de 20 filas por 10 columnas ya cargada con los valores de las notas de las 10 asignaturas de 20 alumnos. A: Hallar la media de las notas de cada uno de los alumnos y formato que desee el alumno.

mostrarlas por pantalla con el

B: Hallar también la media obtenida por los alumnos en cada una de las 10 asignaturas.

OTRA VERSION PODRIA SER CREAR UNA NUEVA TABLA CON UNA FILA MAS Y UNA COLUMNA MÁS PARA GUARDAR EN ELLAS LA MEDIA DE LAS ASIGNATURAS Y LA MEDIA DE LOS ALUMNOS CONFORME SE VAN OBTENIENDO Y SE VAN IMPRIMIENDO.

9

283

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 5. Tenemos la información de las notas de un colegio guardadas en un array de tres dimensiones, organizada de la siguiente forma: EL primer nivel de 20 cursos, el segundo nivel 10 alumnos por curso y en el tercer nivel las 15 asignaturas de cada uno de los alumnos. Hacer el algoritmo que recorra todos los elementos de la tabla y que a todas las notas con valor 4 ó 5 que les sume 1 punto más. A la vez irá sumando todas las notas (después del posible incremento) y al final del programa imprimir por pantalla la media de todas las notas de la tabla. (RECORRIDO SECUENCIAL de una tabla Tridimensional).

10

284

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 6. Tenemos la información de las notas de un colegio guardadas en un array de tres dimensiones, organizada de la siguiente forma: EL primer nivel de 20 cursos, el segundo nivel 10 alumnos por curso y en el tercer nivel las 15 asignaturas de cada uno de los alumnos. Hallar e imprimir por pantalla la media de las notas de cada uno de los alumnos así como la media de las notas de cada uno de los 20 cursos y además la media total de todas las medias.

11

285

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES) 7. A partir de un array tridimensional con informacion acumulada con los gastos de 10 años cada uno de 12 meses y a su vez cada uno con 31 gastos (31 días, 31 posible gasto por mes). Sacar un informe semejante e este:

12

286

EJERCICIOS CON TABLAS/ARRAYS BIDIMENSIONALES (MATRICES)

13

287

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos)

288

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 1. Indica qué Tipo de Estructura de la PROGRAMACIÓN ESTRUCTURADA es cada una de los siguientes Pseudocódigos. Recuerda: el Teorema de la Estructura afirma que para realizar cualquier programa basta con utilizar distintas combinaciones de tres tipos básicos de instrucciones, que son ... :

Tipo de Estructura de:

2

289

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 2. Los siguientes algoritmos pretenden validar un código con cuatro posibles valores válidos de ficha (1, 2, 3 y 4). ¿Qué pseudocódigo investigaría correctamente si el código de ficha es válido o erróneo?

3

290

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 3. Dada una variable llamada Num con un valor mayor que 0 (cero), indica cuál de los siguientes pseudocódigos imprimiría el resultado de las siguientes operaciones:

4

291

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 4. Cuando termine el algoritmo siguiente qué procedimiento se habrá procesado:

5

292

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 5. Cuando haya finalizado el siguiente proceso, indica el valor de las variables “R”, “ T” y “X”.

6

293

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 6. Cuando haya finalizado el siguiente proceso, indica el valor de la variables “A”, “ B” , “Z” e “Y”.

7

294

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 7. Qué valor deberá tener la variable “Z” para que, con independencia del resto del proceso, la estructura del DO WHILE más interna SE REPITA SÓLO TRES VECES.

8. Qué valor deberá tener la variable “T” cuando finalice el proceso.

8

295

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) Finalizado el proceso ¿Qué valores tendrán las variables A y B ?

10. Finalizado el proceso ¿Qué valor de X se imprimirá ?

9

296

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos)

297

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 1.- Finalizado el proceso ¿Qué valores tendrán las variables A y B ?.

1. Finalizado el proceso ¿Qué valor de X se imprimirá ?.

2

298

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 2. Finalizado el proceso ¿Qué valores tendrán las variables A y B ?.

3. Finalizado el proceso ¿Qué valor de X y de P se imprimirán ?.

3

299

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 4. Finalizado el proceso ¿Qué valores tendrán las variables A y B ?.

5. Finalizado el proceso ¿ Qué valor de I se imprimirá ?.

4

300

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 6. Finalizado el proceso ¿Qué valores tendrán las variables X, Y y Z ?.

5

301

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 7. Finalizado el proceso ¿Qué valores tendrán las variables A y B ?.

6

302

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 8. Finalizado el proceso ¿ Qué valor de X y de A se imprimirá ?

7

303

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 9. Se desea sumar los números enteros desde 10 hasta 20 ambos inclusive. ¿Cuál de los siguientes pseudocódigos lo haría correctamente ?

(10-19)(10-21)(11-21)(10-20)

8

304

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 10. Los siguientes Pseudocódigos pretenden buscar un código de artículo en una Tabla de 20 elementos ya cargada con los 20 artículos existentes. El código de artículo a buscar se obtiene a partir de un Registro de un fichero. Selecciona el Pseudocódigo que realiza una búsqueda secuencial de artículos en esta tabla, parando la búsqueda al encontrar el artículo en alguno de los 20 elementos de la tabla. (El primer elemento de la tabla es el 1).

9

305

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos)

10

306

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos)

11

307

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos)

308

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 1. Los siguientes Pseudocódigos pretenden buscar un código de artículo en una Tabla de N elementos ya cargada con los N artículos existentes. El código de artículo a buscar se obtiene a partir de un Registro de un fichero. Selecciona el Pseudocódigo que realiza una búsqueda secuencial de artículos en dicha tabla, parando la búsqueda (saliendo de la repetitiva), en el caso de encontrar el artículo en alguno de los N elementos de la tabla. (El primer elemento de la tabla se direcciona con el índice con valor 1).

2

309

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 1. Los siguientes Pseudocódigos pretenden buscar un código de artículo en una Tabla de 20 elementos ya cargada con los 20 artículos existentes. El código de artículo a buscar se obtiene a partir de un Registro de un fichero. Selecciona el Pseudocódigo que realiza una búsqueda secuencial de artículos en esta tabla, parándo la búsqueda Saliendo de la repetitiva) al encontrar el artículo en alguno de los 20 elementos de la tabla. (El primer elemento de la tabla es el 1).

3

310

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 2. Dado el siguiente pseudocódigo con DOS REPETITIVAS. ¿Cuántas veces se ejecuta cada uno de los dos bucles?

RESPUESTAS: ¿Cuántas veces se ejecutan las 2 repetitivas? a.-

El Bucle 1º INFINITAS Veces y el Bucle 2º TAMBIÉN.

b.-

El Bucle 1º INFINITAS Veces y el Bucle 2º NUNCA.

b.-

El Bucle 2º se realiza 3 Veces por cada 10 del Bucle 1º.

d.-

Ninguna de las anteriores respuestas es válida.

OPCIÓN CORRECTA:

4

311

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 3. Qué valor tendrá la variable “X” cuando termine el programa.

4. Qué valor tendrá la variable “Z” cuando termine el programa.

5

312

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 5. Qué valor tendrá la variable “Z” cuando termine el programa.

6

313

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 6. Finalizado el proceso ¿ Qué valor de X y de C se imprimirá ?.

7

314

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 7. ¿ Qué valor debería estar puesto en el recuadro, para que una vez finalizado el programa, el valor impreso de X sea igual a 10 ?.

8. Para que una vez finalizado el programa, el valor impreso de X sea igual a 10. ¿ Qué valor inicial se debería haber dado a P ?.

8

315

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 9. Finalizado el proceso ¿ Qué valor tendrá CONTADOR ?

10. Finalizado el proceso ¿ Qué valor tendrá CONTADOR ?

9

316

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 11. ¿Qué valor tendrán estas variables cuando haya finalizado el programa?

10

317

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 12. ¿Qué valor tendrán estas variables cuando haya finalizado el programa?

11

318

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) 13. Cuál de los Tres pseudocódigos siguientes cumple mejor la especificación siguiente: “ De estas 3 ciudades: Zaragoza, Oviedo y Sevilla, ¿Cuál es la que tiene mayor extensión? “. (NOTA: No es posible que sean iguales).

12

319

PRÁCTICAS DE PROGRAMACIÓN ESTRUCTURADA CON PSEUDOCÓDIGOS (seguimiento de algoritmos) Dado el siguiente pseudocódigo que pretende leer datos de un fichero y guardar en una tabla los datos de los registros con código=1 e imprimir los restantes. También, una vez rellenada la tabla y antes de terminar el proceso, tiene que imprimir la tabla. Indica cuál de las afirmaciones de abajo es correcta (Nota: El primer elemento de la tabla es el 1).

RESPUESTAS: ¿Qué afirmación es la válida? a.- En el Punto-1 debería poner “Imprimir Tabla(I)” y en el Punto-2 “J Utilidades de Java. Pasos en el desarrollo de aplicaciones Java - Editor de texto (código fuente). Se archiva con la extensión .java. - Compilación: javac.exe. Se genera el archivo con extensión .class. A este archivo se le denomina BYTECODE - Intérprete de Java: java.exe (ejecución del Bytecode) - Visor de Applets: appleviewer.exe (ejecución del Bytecode). - Depurador: jdb.exe. - Generador de documentación javadoc.exe. Analiza el código fuente y genera documentación en código HTML.

2 371

INTRODUCCIÓN A JAVA Estructura del JDK 1.5 stándar edition ( J2SE)

Imagen sacada de la página oficial de SUN Microsystems

3 372

INTRODUCCIÓN A JAVA Operadores condicional y de bits 1. Operador condicional: ? : c = b!= 0 ? b : 0; 2. Operadores & | ~ ^ & 1& 1& 0& 0&

1 0 1 0

> > > >

a nivel de bits: (AND Binario) (OR Binario) (NOT Binario) (XOR Binario)

1 0 0 0

a = 30; b = 12; c= a & b; //c = 12 a 00011110 b 00001100 ————————— c 00001100

| 1 1 0 0

| | | |

1 0 1 0

> > > >

1 1 1 0

a = 30; b = 12; c= a | b; //c = 30 a 00011110 b 00001100 ————————— c 00011110

1|1>1

a = 30; b = 12; c= a | b; //c = 30

1|0>1 0|1>1 0|0>0

a b c

00011110 00001100 -----------------00011110

~ ~1>0 ~0>1

a = ~a; a ~a

00011110 11100001

^ 1 1 0 1

^ ^ ^ ^

1 0 1 1

> > > >

0 1 1 0

a = 30; b = 12; c= a ^ b; //c = 18 a 00011110 b 00001100 ————————— c 00010010

4 373

INTRODUCCIÓN A JAVA Las funciones o métodos estáticos 1. Introducción Función se considera un conjunto de sentencias recogidas bajo un nombre: class Mensaje { public static void main (String [] args) { salidaCliente(); // Llamada a función. ... // Mis Operaciones. ... despideCliente() // Llamada a función. } static void salidaCliente () { System.out.println (“Buenos días.”); } static void despideCliente () { System.out.println (“Adios.”); } }

5 374

INTRODUCCIÓN A JAVA 2. El prototipo, la implementación y la llamada a la función. Implementar la función consiste en diseñar el interior de la función. La llamada a la función se considera el hecho de ejecutar las instrucciones implementadas dentro de la función. Una función sólo se la puede implementar una vez pero se la puede llamar muchas veces. Las funciones pueden estar parametrizadas, es decir, la ejecución depende de las variables que se pasan en la función. Estas variables que se pasan se las denomina parámetros. Además opcionalmente la función puede devolver una solución. A esta solución se le denomina retorno de la función. static () { cuerpo de la función [return ] }

parámetros

static void saludaCliente (String Usuario) { System.out.println (“Buenos días”+Usuario); } Retorno parámetro

static int suma (int a, int b) { return (a+b); } Ejecución del Retorno String usuario; saludoCliente(usuario); int z, x=8, y=7; z = suma(x,y); System.out.println(“Resultado “+suma(x,y)); if (suma(x,y) > 13)

Llamadas a las funciones

6 375

INTRODUCCIÓN A JAVA

Organización de la memoria en un programa Java

Todos los programas que se ejecutan en la misma Máquina Virtual de Java (JVM) utilizan el HEAP (espacio de memoria) en tiempo de ejecución: - Segmento Código, contiene el programa (bytecode) que se ejecuta. - Segmento Datos, contiene las variables de clases. - Segmento Pila, sirve para almacenar las variables locales. Para recoger espacio de memoria del Heap se utiliza el operador new. El Heap también es llamado memoria dinámica. Los arrays se almacenan en el Heap. La referencia del array se almacena en el segmento de datos como variable de clase o en el segmento de pila cuando es una variable local. El tamaño del array se genera en el Heap (new). Paso por valor y paso por referencia - Parámetros formales, variables donde recogen los parámetros la implementación de la función. - Parámetros reales, valores que se pasan a la función durante la llamada. Los parámetros reales pueden tener los mismos nombres que los parámetros formales.

7 376

INTRODUCCIÓN A JAVA static int suma (int a, int b) { return (a + b); } public static void main (String [] args) { int c = suma (3,4); int x = 3, y = 5; int z = suma(x,y); int a = 1, b = 8; int z = suma (a,b); }

PARÁMETROS FORMALES

PARÁMETROS REALES

- Paso de parámetros por valor, consiste en hacer una copia de los parámetros y pasarlos a la función para que la función no modifique las variables originales. - Paso de parámetros por referencia, consiste en pasar la variable original a la función. En Java los tipos de datos fundamentales se pasan por valor y no hay forma de pasarlos por referencia. Los arrays y los objetos se pasan por referencia y no hay forma por pasarlos por valor. static void intercambia(int a, int b) { int x = a; PASO POR VALOR a = b; b = x; } public static void main (String [] args) { int a = 2, b = 5; intercambia (a, b); System.out.println(“a: “+a+” b: “+b); // Visualiza a: 2 b: 5. } static void intercambia(int [] numeros) { int z = numeros[0]; PASO POR REFERENCIA numeros[0] = numeros[1]; numeros[1] = z; } public static void main (String [] args) { int [] numeros {2,5}; intercambia (numeros); System.out.println(“a: “+numeros[0]+” b: “+numero[1]s); // Visualiza a: 5 b: 2. }

8 377

INTRODUCCIÓN A JAVA Recursividad Una función para resolver un problema, en vez de llamar a otra función, se llama a sí misma pero con unos valores en los parámetros más cercanos a la solución. La idea de recursividad va ligada a la de repetición. Son recursivos aquellos programas que, estando encapsulados dentro de una función, son llamados desde ella misma una y otra vez, en contraposición a los algoritmos iterativos, que hacen uso de bucles while, do-while, for, etc. Ejemplo: Calcular el factorial de un número: n != n * (n –1) * (n –2) …. * 1 static int factorial (int n) { if (n == 1) return 1; return n * factorial (n – 1); } Calcular la sucesión de Fibonacci para los primeros 20 números: static int fibonacci (int n) { if (n == 1 | n == 2) return 1; return fibonacci (n – 1) + fibonacci (n - 2); } public static void main (String [] args) { for (int i=0; i < 20); i++) System.out.print (fibonacci(i)+” “); System.out.println(); }

9 378

INTRODUCCION A JAVA – Caso práctico Módulo: INTRODUCCION A JAVA – Caso práctico Explica brevemente cuáles son las dos características fundamentales del lenguaje JAVA y por qué decimos que es un lenguaje portable, seguro y multitarea.

1

379

INTRODUCCION A JAVA – Caso práctico Módulo: INTRODUCCION A JAVA – Caso práctico Realiza un programa JAVA, llamado Mostrar en modo MS-DOS, que muestre por pantalla la famosa frase “ Hellow World”, describiendo uno a uno todos los pasos desde que empezamos a escribir el código fuente en el bloc de notas hasta que obtenemos el resultado por pantalla, explicando en qué paso se realiza la compilación y en cuál la ejecución.

1

380

     

Módulo 3: Sintaxis del lenguaje

   

 

381

TIPOS DE DATOS Y CADENAS DE CARACTERES

382

ÍNDICE TIPOS DE DATOS Y CADENAS DE CARACTERES

1. Variables, constantes y tipos de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Cadena de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11

383

Tipos de datos y cadenas de caracteres 1.Variables, constantes y tipos de datos Variables y tipos de variables Una variable representa un espacio de memoria donde almacenamos un valor, que puede variar durante la ejecución del programa. - Características de las variables: nombre, tipo y valor. - Operaciones con las variables: declaración, uso general (asignaciones, operaciones, ...).

Ejemplo: int x=2; Declaramos la variable numérica x y le damos el valor 2 con el que se guarda en memoria. x=4; Posteriormente variamos su valor asignándole un valor de 4.

Tipos de variables en Java - Variables de instancia: algo similar a variables globales, van dentro de la clase y fuera de cualquier método. - Variables de clase: van dentro de la clase y fuera de cualquier método. Llevan el modificador static (lo veremos más adelante). - Variables locales: van siempre dentro de los métodos.

i 3 384

Tipos de datos y cadenas de caracteres Declaración de variables Lo primero que se hace con una variable es declararla y en ese momento, si interesa, se le asigna un valor. La declaración de una variable consiste en incluirla en un tipo y darle un nombre.

Ejemplo: int numero; Variable de tipo entero String nombre; Variable de tipo cadena boolean verdadero; Variable de tipo booleano

Las variables se suelen declarar al comienzo de una clase o de un método. Las variables locales han de tener un valor asignado antes de su utilización. Las variables de clase y las de instancia tienen valores por defecto y al crearse se inicializan automáticamente a uno de los siguientes valores según el tipo de almacenamiento: -

Variables Variables Variables Variables

de cadena: null numéricas enteras: 0 , reales: 0.0 de carácter:’ \u0000’ booleanas: false

Nombrar variables Al nombrar variables no se puede comenzar por números. Podemos utilizar los caracteres que queramos, pero cuidado con usar operadores. Java es case-sensitive y por ello diferencia las mayúsculas de las minúsculas.

i 4 385

Tipos de datos y cadenas de caracteres Expresiones Conjunto de variables relacionadas con todo tipo de operadores (=, +, -, *, /, etc.). Terminadas en ";" siempre. Todas las sentencias de Java al igual que en C y C++ finalizan en punto y coma. Y Java también al igual que C y C++ diferencia entre mayúsculas y minúsculas. No es lo mismo SUMA que suma o que Suma.

Ejemplo: int i = 1; int c=a+b; boolean verdad = true;

Tipos primitivos de datos o tipos de datos básicos Los tipos básicos (primitivos) en Java son: enteros, números en coma flotante, caracteres y booleanos. Enteros:

i 5 386

Tipos de datos y cadenas de caracteres Números en coma flotante: Hay dos tipos de datos de números en coma flotante: - float 32 bits simple-precisión - double 64 bits doble-precisión Caracteres: - char 16 bits de precisión. Los caracteres se representan entre comillas simples: char letra=’n’; Booleanos Este tipo de datos tienen dos posibles valores: true o false (por defecto). boolean verdad=true; Asignación de valores a variables Podemos asignar un valor a una variable simplemente utilizando el operador "=". Para asignar a una variable un número que queremos sea flotante se añade al final del valor una "f", ya que Java cuando detecta un literal (lo que va a la derecha del símbolo =) con coma, automáticamente se lo asigna al tipo double, con lo que si estamos definiendo un float habrá que ponerle la “f” al final. Ejemplo: float b = 12.5f;

i 6 387

Tipos de datos y cadenas de caracteres Comentarios 1. Haciendo uso del señalizador de comentario de varias líneas:

Ejemplo: /* esto es un comentario multilinea */

2. Utilizando el señalizador de comentario de una línea:

Ejemplo: // esto es un comentario // multilinea

Caracteres de escape Los caracteres de escape, como en la mayoría de los lenguajes, representan secuencias de escape que se pueden representar dentro de un programa Java.

7 388

Tipos de datos y cadenas de caracteres Una combinación de caracteres es un String. Se especifican entre dobles comillas. Los Strings pueden contener caracteres de escape:

"Esto es un String" "" // String vacío "Esto es un \t String"

i 8 389

Tipos de datos y cadenas de caracteres 2. Cadenas de caracteres El tipo String Java define además otros tipos que no están en la anterior clasificación de tipos primitivos o elementales de datos, uno de éstos es el tipo String. Los “String” son objetos de Java con una sintaxis especialmente cómoda para representar cadenas de caracteres. También en Java los arrays son considerados como objetos (ésta es otra característica importante del lenguaje Java).

Ejemplo: String cadena =”Hola”;

Aunque en otros lenguajes sería un tipo básico, en Java se considerará un objeto de la clase String con lo que tendrá propiedades y métodos. Dentro de una clase Java, lo que vamos a tener siempre son propiedades y métodos únicamente, solo en algunos casos que veremos más adelante, se pueden incluir otras clases también. En Java no sucede como en C, no podemos “apuntar” a cada posición dentro de un String, solamente a la cadena entera. Para poder manipular cada posición de un String tendríamos la clase StringBuffer que nos permite acceder igual que en C a cada una de las posiciones como si se tratara de un array .

i 9 390

Tipos de datos y cadenas de caracteres Creación de objetos de la clase String Los Strings u objetos de la clase String se pueden crear explícita o implícitamente. String Implícitamente Para crearlo se pone una cadena de caracteres entre comillas dobles: System.out.println("Curso de Java"); Java crea un objeto de la clase String automáticamente. String Explícitamente Para crear un String explícitamente (operador new) escribimos: String cadena=new String("Curso de Java"); También se puede escribir, alternativamente: String cadena="Nuestro primer programa"; String Vacío o Nulo Para crear un String vacío o nulo (cadena vacía) se puede hacer de estas dos formas: String cadena=""; String cadena=new String();

i 10 391

Tipos de datos y cadenas de caracteres 3. Resumen Has llegado al final de este recurso formativo que denominamos “Tipos de datos y cadenas de caracteres” En esta lección hemos estudiado los siguientes contenidos:

i 11 392

OPERADORES Y SENTENCIAS DE CONTROL DE FLUJO

393

ÍNDICE OPERADORES Y SENTENCIAS DE CONTROL DE FLUJO

1. Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 2. Sentencias de control de flujo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 3. Resumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15

394

Operadores y Sentencias de control de flujo 1. Operadores Operadores Java Las variables, como base de información de un lenguaje, pueden ser creadas, modificadas y comparadas con otras por medio de los llamados operadores. A continuación se enumeran los operadores utilizados en el lenguaje Java, pulsa sobre cada uno para conocerlos. Operadores aritméticos

Asignaciones

i 3 395

Operadores y Sentencias de control de flujo Incrementos y decrementos

Comparaciones

Operadores lógicos

i 4 396

Operadores y Sentencias de control de flujo Operadores bit a bit

Precedencia y Jerarquía de Operadores Los operadores se organizan de acuerdo al nivel de precedencia de cada uno. Primeramente preceden incrementos y decrementos, luego los aritméticos, después las comparaciones, detrás vienen los booleanos u operaciones lógicas y por último las operaciones de asignación. Los operadores de líneas superiores tienen prioridad sobre los que están por debajo y en una misma línea se evaluarían de izquierda a derecha según aparecieran en la expresión.

5 397

Operadores y Sentencias de control de flujo Aritmética de Strings A continuación revisemos la aritmética de Strings. El comando System.out.println("hola “+” desde Java"), manda el mensaje a la salida standard de nuestro sistema, es decir, a la pantalla. El signo "+" sirve para concatenar cadenas con el fin de obtener una única cadena, con lo que en la salida se obtendrá la concatenación (suma) de ambas cadenas Hola desde Java. Si lo que queremos es concatenar una cadena de texto con una variable, la variable no debe de ir entrecomillada.

Ejemplo int x=3; System.out.println(“valor de x es: “ + x ); La salida que se obtiene es  valor de x es: 3

i 6 398

Operadores y Sentencias de control de flujo 2.Sentencias de control de flujo Sentencia condicional if Existe una condición que se evalúa a cierto o falso; si resulta cierto, se evalúan las sentencias que están inmediatamente a continuación y si resulta falso se evalúan las sentencias dentro del else. La sintaxis o estructura general de la sentencia condicional if es la siguiente: if (condicion) { sentencia1; sentencia2; ... sentencian; } else { sentencia1; sentencia2; ... sentencian; }

i 7 399

Operadores y Sentencias de control de flujo El operador ternario El operador ternario se emplea para asignar valores a una variable en función del cumplimiento o no de una condición, es decir, evalúa una condición y retorna un valor dependiendo si la condición es verdadera (true) o falsa (false). La sintaxis del operador ternario es la siguiente: pregunta ? trueresultado : falseresultado;

Ejemplo int radio = (x