You are on page 1of 56

2DO AÑO DE BACHILLERATO

RECOPILACIÓN
UNIDAD DE TRABAJO 1: ALGORITMOS Y PROGRAMAS
OBJETIVO: Presentar los conceptos básicos de la programación
TIEMPO ESTIMADO: 10 periodos
CONTENIDO PROCEDIMENTAL:
 Manejar e interpretar el material bibliográfico
 Procesar la información
 Describir el ciclo de vida de una aplicación informática
 Interpretar problemas
 Interpretar algoritmos
 Interpretar errores
 Describir las características que debe tener un buen programa
 Documentar algoritmos y programas
 Identificar y utilizar los objetos de un programa
CONTENIDO CONCEPTUAL:
 Los sistemas de procesamiento de la información
 Algoritmos
 Aplicación informática
 Ciclo de vida de una aplicación informática. Diseño del programa. Instalación y
explotación del programa
 Errores. Tipos de errores
 Programación. Tipos de programación. Calidad de los programas
 Documentación de los programas. Formas de documentación
 Nociones sobre estructuras de datos. objetos de un programa. Tipos sencillos de
datos: identificadores, tipos de datos, constantes, variables, expresiones. Tipos
operadores. Tipos complejos de datos
 Estructuras estadísticas. Definición, características básicas. Almacenamiento
 Estructuras externas. Ficheros. Definición. Tipos de ficheros. Características
básicas. Almacenamiento. Estructuras dinámicas. Definición. Características
básicas. Almacenamiento.
 Bases de datos.
CONCEPTOS ACTITUDINALES:
 Realizar trabajos encomendados con autonomía
 Responsabilizarse de las tareas realizadas
 Tomar iniciativas, realizar sugerencias de mejora
 Desarrollar los trabajos y actividades emprendidos con eficacia.
DESARROLLO DE LA UNIDAD 1
LOS SISTEMAS DE PROCESAMIENTO DE LA INFORMACIÓN
Un sistema de información es un conjunto de elementos orientados al tratamiento y
administración de datos e información, organizados y listos para su posterior uso,
generados para cubrir una necesidad (objetivo).

Elementos de un sistema de información.

 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).

Todos estos elementos interactúan entre sí para procesar los datos (incluyendo procesos
manuales y automáticos) dando lugar a información más elaborada y distribuyéndola de la
manera más adecuada posible en una determinada organización en función de sus
objetivos.

EN INFORMÁTICA, un sistema de información es cualquier sistema o subsistema de


equipo de telecomunicaciones o computacional interconectados y que se utilicen para
obtener, almacenar, manipular, administrar, mover, controlar, desplegar, intercambiar,
transmitir o recibir voz y/o datos, e incluye tanto los programas de computación
("software" y "firmware") como el equipo de cómputo.

ACTIVIDADES BÁSICAS DE UN SISTEMA DE INFORMACIÓN INFORMÁTICO

Entrada de Información: Es el proceso mediante el cual el Sistema de Información toma


los datos que requiere para procesar la información. Las entradas pueden ser manuales o
automáticas. Las manuales son aquellas que se proporcionan en forma directa por el
usuario, mientras que las automáticas son datos o información que provienen o son
tomados de otros sistemas o módulos. Esto último se denomina interfaz automática.

Las unidades típicas de entrada de datos a las computadoras son las terminales, las cintas
magnéticas, las unidades de diskette, los códigos de barras, los escáner, la voz, los
monitores sensibles al tacto, el teclado y el mouse, entre otras.
Almacenamiento de información: El almacenamiento es una de las actividades o
capacidades más importantes que tiene una computadora, ya que a través de esta
propiedad del 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. La unidad típica de almacenamiento son los discos magnéticos o
discos duros, los discos flexibles o diskettes y los discos compactos (CD-ROM).
Procesamiento de Información: Es la capacidad del Sistema de Información para efectuar
cálculos de acuerdo con una secuencia de operaciones preestablecida. Estos cálculos
pueden efectuarse con datos introducidos recientemente en el sistema o bien con datos
que están almacenados. Esta característica de los sistemas permite la transformación de
datos fuente en información que puede ser utilizada para la toma de decisiones, lo que
hace posible, entre otras cosas, que un tomador de decisiones genere una proyección
financiera a partir de los datos que contiene un estado de resultados o un balance general
de un año base.
Salida de Información: La salida es la capacidad de un Sistema de Información para sacar
la información procesada o bien datos de entrada al exterior. Las unidades típicas de
salida son las impresoras, terminales, diskettes, cintas magnéticas, la voz, los graficadores
y los plotters, entre otros. Es importante aclarar que la salida de un Sistema de
Información puede constituir la entrada a otro Sistema de Información o módulo. En este
caso, también existe una interfaz automática de salida. Por ejemplo, el Sistema de Control
de Clientes tiene una interfaz automática de salida con el Sistema de Contabilidad, ya que
genera las pólizas contables de los movimientos procesales de los clientes.

Ejemplo de actividades que puede realizar un Sistema de Información de Control de


Clientes:

Entradas:
 Datos generales del cliente: nombre, dirección, tipo de cliente, etc.
 Políticas de créditos: límite de crédito, plazo de pago, etc.
 Facturas (interfaz automático).
 Pagos, depuraciones, etc.
Proceso:
 Cálculo de antigüedad de saldos.
 Cálculo de intereses moratorios.
 Cálculo del saldo de un cliente.

Almacenamiento:
 Movimientos del mes (pagos, depuraciones).
 Catálogo de clientes.
 Facturas.

Salidas:
 Reporte de pagos.
 Estados de cuenta.
 Pólizas contables (interfaz automática)
 Consultas de saldos en pantalla de una terminal.

ACTIVIDADES:

1) Realizar un organizador gráfico con los componentes de los sistemas de


información
2) recortar y pegar gráficos de los periféricos utilizados en las actividades básicas
de un sistema informático

ALGORITMOS

DEFINICIONES:

a) Es un conjunto finito y ordenado de acciones que permiten resolver problemas.


b) Conjunto de reglas que permiten obtener un resultado determinado a partir de
ciertas reglas definidas.
c) Toda receta, proceso, rutina, método, procedimiento, técnica, formula que resuelven
un determinado problema
d) Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las
operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo
más finito
CARACTERÍSTICAS

Las características fundamentales son:

 Ser definido: Sin ambigüedad, cada paso del algoritmo debe indicar la acción a
realizar sin criterios de interpretación.
 Ser finito: Un número específico y numerable de pasos debe componer al
algoritmo, el cual deberá finalizar al completarlos.
 Tener cero o más entradas: Datos que son proporcionados a un algoritmo como
insumo (o estos son generados de alguna forma) para llevar a cabo las operaciones
que comprende.
 Tener una o más salidas: Debe siempre devolver un resultado; de nada sirve un
algoritmo que hace algo y nunca sabemos que fue.
 Efectividad: El tiempo y esfuerzo por cada paso realizado debe ser preciso, no
usando nada más ni nada menos que aquello que se requiera para y en su
ejecución.

EJEMPLOS:

1. Diseñar un algoritmo con las instrucciones necesarias para cocinar un arroz

PASOS:

1. Inicio
2. Buscar la olla en la que cocinare el arroz
3. Ponerle agua a la olla
4. Encender el fuego en la cocina
5. Poner la olla al fuego
6. Escoger el arroz
7. lavar el arroz
8. ponerlo en la olla para que se cocine
9. verificar que tenga el agua suficiente para que se cocine
10. ponerle aceite y sal al gusto
11. moverlo de vez en cuando
12. dejar secar el agua
13. ponerle una protección (algo de metal) entre el fuego y la olla
14. esperar a que se cocine y apagar el fuego
15. Fin
2. Realizar la suma de dos números

PASOS:

1. Inicio
2. Leer los valores de los 2 números
3. Realizar la suma
4. Almacenar el resultado anterior en suma
5. Escribir el valor de la suma
6. Fin

ACTIVIDADES:

1) Basándose en las definiciones de algoritmo aquí anotadas, escribir su propio


concepto de los que es un algoritmo
2) Realizar un cuadro sinóptico con las características de los algoritmos
3) Diseñar algoritmos que den solución a los siguientes problemas:
 Escribir los pasos que permitan lavarse los dientes
 Escribir los pasos que permitan bañarse
 Se dispone de una cantidad ilimitada de agua, de un recipiente de 5 litros y
otra de 4 litros, escribir los pasos que permitan colocar exactamente 2 litros
de agua en el recipiente de 5 litros
 Calcular la superficie de un triángulo. S= (b x a)/2
 Calcular la hipotenusa de un triángulo rectángulo

APLICACIÓN INFORMÁTICA

DEFINICIÓN: Es un tipo de programa informático diseñado como herramienta para


permitir a un usuario realizar uno o diversos tipos de trabajo. Esto lo diferencia
principalmente de otros tipos de programas como los sistemas operativos (que hacen
funcionar al ordenador), las utilidades (que realizan tareas de mantenimiento o de uso
general), y los lenguajes de programación (con el cual se crean los programas
informáticos).

Suele resultar una solución informática para la automatización de ciertas tareas


complicadas como pueden ser la contabilidad, la redacción de documentos, o la gestión
de un almacén. Algunos ejemplos de programas de aplicación son los procesadores de
textos (Word), hojas de cálculo(Excel), y base de datos (Access).
Otros ejemplos de programas de aplicación pueden ser: programas de comunicación de
datos, Multimedia, presentaciones, diseño gráfico, cálculo, finanzas, correo electrónico,
presupuestos de obras, gestión de empresas, etc.

CICLO DE VIDA DE UNA APLICACIÓN INFORMÁTICA.

DISEÑO DEL PROGRAMA

1.- Fase de análisis

* Equipo a utilizar.
* Personal informático.
* Estudio de los datos de entrada (INPUT).
* Estudio de los datos de salida o resultados (OUTPUT).
* Relación entre la salida y la entrada.
* Descomposición del problema en módulos.

2.- Fase de programación

Consiste en el diseño de la solución al problema planteado en forma de algoritmo.

3.- Fase de codificación

En esta fase se transcribe el algoritmo resultante de la fase anterior a un lenguaje de


programación concreto.

Al resultado se le denomina programa.

INSTALACIÓN Y EXPLOTACIÓN DEL PROGRAMA

1.- Fase de edición

Escritura del programa fuente. Se hace con la ayuda de un programa del sistema
denominado editor.

2.- Fase de compilación

Traducción del programa fuente a lenguaje máquina. Para ello se dispone de programas
compiladores o intérpretes.

3.- Fase de montaje


En los programas compilados es necesario añadir al programa objeto algunas rutinas del
sistema o en algunos casos subprogramas externos que se hayan compilado
separadamente. De ello se encarga el programa montador

4.- Fase de prueba de ejecución

Consiste en ejecutar el programa sucesivas veces don diferentes datos de prueba.

5.- Fase de explotación y mantenimiento

La explotación consiste en el uso continuo y habitual por parte de los usuarios.

Paralelamente a la explotación de una aplicación, consiste en la comprobación periódica


de su buen funcionamiento.

EJEMPLOS:
1) PREPARACIÓN DE ARROZ CON POLLO
DISEÑO
Fase de análisis
 Equipo a utilizar: utensilios y vasijas necesarias
 Personal informático: cheff y ayudantes de cocina
 Estudio de los datos de entrada (INPUT): ingredientes necesarios, cantidad de
comensales
 Estudio de los datos de salida o resultados (OUTPUT): arroz con pollo
 Relación entre la salida y la entrada: arroz con pollo suficiente para cantidad de
comensales
 Descomposición del problema en módulos: preparación del arroz, picar hortalizas,
preparación del relleno
Fase de programación: escribir los pasos necesarios para realizar la preparación
Fase de codificación: concretar y pulir el listado anterior
INSTALACIÓN Y EXPLOTACIÓN
 Fase de edición: iniciar cocción de alimentos por separado (módulos)
 Fase de compilación: detección de posibles errores
 Fase de montaje: unir todos los ingredientes
 Fase de prueba de ejecución: probar sazón, verificar que todo esté de acuerdo a
especificaciones
 Fase de explotación y mantenimiento: servir el arroz con pollo y mantenerlo al
temple acorde a los requerimientos de los usuarios.
2) PROMEDIO DE CALIFICACIONES DEL QUIMESTRE
DISEÑO
Fase de análisis
 Equipo a utilizar: características necesarias de computador
 Personal informático: programador, digitador.
 Estudio de los datos de entrada (INPUT): calificaciones de asignaturas/módulos
 Estudio de los datos de salida o resultados (OUTPUT): calificación quimestral
 Relación entre la salida y la entrada: calificación quimestral con las calificaciones de
asignaturas/módulos necesarias
 Descomposición del problema en módulos: ingreso de calificaciones, sumatoria de
calificaciones, promedio quimestral
Fase de programación: elaborar el algoritmo
Fase de codificación: pasar el algoritmo realizado anteriormente a codificación en un
lenguaje de programación

INSTALACIÓN Y EXPLOTACIÓN
Fase de edición: digitar en un lenguaje de programación el programa realizado en la fase
de codificación
Fase de compilación: pasar por un compilador el programa digitado, el cual detectara
posibles errores
Fase de montaje: no necesaria para todos los programas
Fase de prueba de ejecución: ejecutar el programa para verificar su buen funcionamiento
Fase de explotación y mantenimiento: ponerlo a disposición del usuario para su
utilización, realizarle posibles modificaciones para mejora su eficacia.

ACTIVIDADES

1. Realizar un mentefacto con el tema aplicación informática


2. Elaborar un mapa mental con los elementos del ciclo de vida de una
aplicación informática
3. Realizar el siguiente ejercicio aplicando las fases del ciclo de vida de una
aplicación informática
a) Encontrar la hipotenusa de un triángulo rectángulo

ERRORES
Incluso los programadores más experimentados cometen errores; y conocer cómo
depurar una aplicación y encontrar esos errores es una parte importante de la
programación. No obstante, antes de obtener información sobre el proceso de
depuración, conviene conocer los tipos de errores que deberá buscar y corregir.

TIPOS DE ERRORES:
Error del usuario. Errores que se producen cuando el usuario realiza algo inesperado y el
programa no reacciona apropiadamente.
Error del programador. Son errores que ha cometido el programador al generar el código.
La mayoría de errores son de este tipo.
Errores de documentación. Ocurren cuando la documentación del programa no es
correcta y provoca fallos en el manejo
Error de interfaz. Ocurre si la interfaz de usuario de la aplicación es enrevesada para el
usuario impidiendo su manejo normal. También se llaman así los errores de protocolo
entre dispositivos.
Error de entrada / salida o de comunicaciones. Ocurre cuando falla la comunicación
entre el programa y un dispositivo (se desea imprimir y no hay papel, falla el teclado,...)
Error fatal. Ocurre cuando el hardware produce una situación inesperado que el software
no puede controlar (el ordenador se cuelga, errores en la grabación de datos,...)
Errores de compilación: Los errores de compilación, también conocidos como errores
del compilador, son errores que impiden que su programa se ejecute.
Errores en tiempo de ejecución: Los errores en tiempo de ejecución son errores que
aparecen mientras se ejecuta su programa. Estos errores aparecen normalmente cuando
su programa intenta una operación que es imposible que se lleve a cabo.
Errores lógicos: Los errores lógicos son errores que impiden que su programa haga lo
que estaba previsto. Su código puede compilarse y ejecutarse sin errores, pero el
resultado de una operación puede generar un resultado no esperado.

PROGRAMACIÓN
La programación es el proceso de diseñar, escribir, probar, depurar y mantener el código
fuente de programas computacionales. El código fuente es escrito en un lenguaje de
programación. El propósito de la programación es crear programas que exhiban un
comportamiento deseado. El proceso de escribir código requiere frecuentemente
conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar,
algoritmos especializados y lógica formal. Programar no involucra necesariamente otras
tareas tales como el análisis y diseño de la aplicación (pero si el diseño del código),
aunque si suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.

TIPOS DE PROGRAMACIÓN

PROGRAMACION ESTRUCTURADA: La programación estructurada es una forma de


escribir programas de ordenador (programación de
computadora) de manera clara. Para ello utiliza únicamente tres
estructuras: secuencia, selección e iteración; siendo innecesario
el uso de la instrucción o instrucciones de transferencia
incondicional (GOTO, EXIT FUNCTION, EXIT SUB o múltiples
RETURN).

Hoy en día las aplicaciones informáticas son mucho más


ambiciosas que las necesidades de programación existentes en
los años 1960, principalmente debido a las aplicaciones gráficas,
por lo que las técnicas de programación estructurada no son
suficientes.

PROGRAMACIÓN MODULAR: La programación modular es un paradigma de


programación que consiste en dividir un programa en
módulos o subprogramas con el fin de hacerlo más
legible y manejable.

Se presenta históricamente como una evolución de la


programación estructurada para solucionar problemas
de programación más grandes y complejos de lo que
ésta puede resolver.

Al aplicar la programación modular, un problema


complejo debe ser dividido en varios subproblemas
más simples. Esto debe hacerse hasta obtener
subproblemas lo suficientemente simples como para poder ser resueltos fácilmente con
algún lenguaje de programación. Ésta técnica se llama refinamiento sucesivo, divide y
vencerás ó análisis descendente.

Un módulo es cada una de las partes de un programa que resuelve uno de los
subproblemas en que se divide el problema complejo original. Cada uno de estos módulos
tiene una tarea bien definida y algunos necesitan de otros para poder operar. En caso de
que un módulo necesite de otro, puede comunicarse con éste mediante una interfaz de
comunicación que también debe estar bien definida.

Si bien un módulo puede entenderse como una parte de un programa en cualquiera de


sus formas y variados contextos, en la práctica es común representarlos con
procedimientos y funciones.

PROGRAMACIÓN ORIENTADA A OBJETOS: Es un estilo de programación en el que un


programa se contempla como un
conjunto de objetos limitados que, a
su vez, son colecciones
independientes de estructuras de
datos y rutinas que interactúan con
otros objetos. Una clase define las
estructuras de datos y rutinas de un
objeto. Un objeto es una instancia de
una clase, que se puede usar como
una variable en un programa. En
algunos lenguajes orientados a
objetos, éste responde a mensajes,
que son el principal medio de comunicación. En otros lenguajes orientados a objeto se
conserva el mecanismo tradicional de llamadas a procedimientos.

DOCUMENTACIÓN DE LOS PROGRAMAS


La documentación de los programas es un aspecto sumamente importante, tanto en el
desarrollo de la aplicación como en el mantenimiento de la misma. Mucha gente no hace
este parte del desarrollo y no se da cuenta de que pierde la posibilidad de la reutilización
de parte del programa en otras aplicaciones, sin necesidad de conocerse el código al
dedillo.

La documentación de un programa empieza a la vez que la construcción del mismo y


finaliza justo antes de la entrega del programa o aplicación al cliente. Así mismo, la
documentación que se entrega al cliente tendrá que coincidir con la versión final de los
programas que componen la aplicación.

Una vez concluido el programa, los documentos que se deben entregar son: una guía
técnica, una guía de uso y de instalación.

Tipos de documentación

La documentación que se entrega al cliente se divide claramente en dos categorías,


interna y externa:

 Interna: Es aquella que se crea en el mismo código, ya puede ser en forma de


comentarios o de archivos de información dentro de la aplicación.
 Externa: Es aquella que se escribe en cuadernos o libros, totalmente ajena a la
aplicación en si. Dentro de esta categoría también se encuentra la ayuda
electrónica.

La guía técnica

En la guía técnica o manual técnico se reflejan el diseño del proyecto, la codificación de la


aplicación y las pruebas realizadas para su correcto funcionamiento. Generalmente este
documento está diseñado para personas con conocimientos de informática, generalmente
programadores.

El principal objetivo es el de facilitar el desarrollo, corrección y futuro mantenimiento de


la aplicación de una forma rápida y fácil.

Esta guía está compuesta por tres apartados claramente diferenciados:

 Cuaderno de carga: Es donde queda reflejada la solución o diseño de la aplicación.


Esta parte de la guía es únicamente destinada a los programadores. Debe estar
realizado de tal forma que permita la división del trabajo
 Programa fuente: Es donde se incluye la codificación realizada por los
programadores. Este documento puede tener, a su vez, otra documentación para
su mejor comprensión y puede ser de gran ayuda para el mantenimiento o
desarrollo mejorado de la aplicación. Este documento debe tener una gran
claridad en su escritura para su fácil comprensión.
 Pruebas: es el documento donde se especifican el tipo de pruebas realizadas a lo
largo de todo el proyecto y los resultados obtenidos.

La guía de uso
Es lo que comúnmente llamamos el manual del usuario. Contiene la información
necesaria para que los usuarios utilicen correctamente la aplicación.

Este documento se hace desde la guía técnica pero se suprimen los tecnicismos y se
presenta de forma que sea entendible para el usuario que no sea experto en informática.

Un punto a tener en cuenta en su creación es que no debe hacer referencia a ningún


apartado de la guía técnica y en el caso de que se haga uso de algún tecnicismo debe ir
acompañado de un glosario al final de la misma para su fácil comprensión.

La guía de instalación
Es la guía que contiene la información necesaria para implementar dicha aplicación.
Dentro de este documento se encuentran las instrucciones para la puesta en marcha del
sistema y las normas de utilización del mismo.

Dentro de las normas de utilización se incluyen también las normas de seguridad, tanto
las físicas como las referentes al acceso a la información.

NOCIONES SOBRES ESTRUCTURAS DE DATOS


ESTRUCTURA DE DATOS: En programación, una estructura de datos es una forma de
organizar un conjunto de datos elementales (un dato elemental es la mínima información
que se tiene en el sistema) con el objetivo de facilitar la manipulación de estos datos
como un todo o individualmente.

TIPOS SENCILLOS DE DATOS


IDENTIFICADORES: un identificador es un conjunto de caracteres alfanuméricos de
cualquier longitud que sirve para identificar las entidades del programa (clases, funciones,
variables, tipos compuestos, Etc.) Los identificadores pueden ser combinaciones de letras
y números. Cada lenguaje tiene sus propias reglas que definen como pueden estar
construidos.

TIPOS DE DATOS: es un atributo de una parte de los datos que indica al ordenador (y/o al
programador) algo sobre la clase de datos sobre los que se va a procesar. Esto incluye
imponer restricciones en los datos, como qué valores pueden tomar y qué operaciones se
pueden realizar. Tipos de datos comunes son:

entero, real, lógico y caracter

CONSTANTES: es un valor que no puede ser alterado durante la ejecución de un


programa.
Una constante corresponde a una longitud fija de un área reservada en la memoria
principal del ordenador, donde el programa almacena valores fijos.

Por ejemplo:

 El valor de pi = 3.1416

Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la


mayoría de lenguajes.

VARIABLES: las variables son espacios reservados en la memoria que, como su nombre
indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una
variable corresponde a un área reservada en la memoria principal del ordenador pudiendo
ser de longitud:
 Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del
programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo
algunas excepciones — como las colecciones de otras variables (arreglos) o las
cadenas.
 Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución.
Típicamente colecciones de datos.

EXPRESIONES: una expresión es una combinación de constantes, variables o funciones,


que es interpretada (evaluada) de acuerdo a las normas particulares de precedencia y
asociación para un lenguaje de programación en particular

TIPOS DE EXPRESIONES: Ejm:

 Expresión aritmética: 3+2, x+1, ...


 Expresión lógica: x OR y, NOT x, ...
 Expresión con predicados: P(a) AND Q(b), …
OPERADORES: Son elementos que relacionan de forma diferente, los valores de una
o más variables y/o constantes. Es decir, los operadores nos permiten manipular
valores.

 OPERADORES ARITMÉTICOS: 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

Operador Acción
Resta
Suma
Multiplicación
División
Módulo
Decremento
Incremento

 OPERADORES RELACIONALES: Se utilizan para establecer una relación entre


dos valores. Luego compara estos valores entre si y esta comparación
produce un resultado de certeza o falsedad (verdadero o falso).
Los operadores relacionales comparan valores del mismo tipo (numéricos o
cadenas). Estos tienen el mismo nivel de prioridad en su evaluación.
Los operadores relaciónales tiene menor prioridad que los aritméticos.

OPERADOR ACCIÓN
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente a
= Igual

 OPERADORES LÓGICOS: Estos operadores se utilizan para establecer


relaciones entre valores lógicos. Estos valores pueden ser resultado de una
expresión relacional.

OPERADOR ACCIÓN
AND Y
OR O
NOT Negación

TIPOS COMPLEJOS DE DATOS


ESTRUCTURA DE DATOS ESTÁTICAS
Son aquellas en las que el espacio ocupado en memoria se define en tiempo de
compilación y no puede ser modificado durante la ejecución del programa. Corresponden
a este tipo los arreglos (arrays) y registros

Arreglos: Son una agrupación de datos homogéneos, es decir, con un mismo tipo de
dato básico asociado. Se almacenan en forma contigua en la memoria y son
referenciados con un nombre común y una posición relativa.

Registros: Son un tipo de datos formado por una colección finita de elementos no
necesariamente homogéneos. El acceso se realiza a través del nombre del registro
seguido del campo específico al que se desea acceder.

ESTRUCTURAS DE DATOS DINÁMICAS


Son aquellas en las que el espacio ocupado en memoria puede ser modificado en tiempo
de ejecución. Corresponden a este tipo las listas, árboles y grafos. Estas estructuras no son
soportadas en todos los lenguajes. La elección de la estructura de datos idónea dependerá
de la naturaleza del problema a resolver y, en menor medida, del lenguaje. Las estructuras
de datos tienen en común que un identificador, nombre, puede representar a múltiples
datos individuales.

LINEALES:
 Punteros: Son tipos de datos simples capaces de almacenar la posición de una
variable en memoria principal. Se dice que ellos direccionan a otras variables.

 Pilas o colas lifo: Imagina un montón de platos "apilados" o bien fichas de dominó
formando una torre e intenta eliminar una desde el centro, ¿qué ocurre?,
naturalmente esta operación no está permitida si queremos mantener intactos a
los platos o a la torre construida. Por esta razón, una pila se asocia a una
estructura de datos LIFO (LAST IN FIRST OUT

 Listas Enlazadas: Corresponde a una estructura lineal compuesta por una


colección de datos homogéneos con alguna relación entre ellos

NO LINEALES:
 ÁRBOLES: Es una estructura de datos no lineal que posee raíz, ramas y hojas,
técnicamente constituye un grafo finito y sin ciclos. Un árbol define ciertos
niveles jerárquicos precedidos por la raíz (1er. nivel), en donde las hojas
constituyen el nivel más bajo.
Componentes
Raíz: Nodo que constituye la única entrada a
la estructura (por ello es necesario tener un
puntero sobre él).
Ramas o Arcos: Conexión entre dos nodos
del árbol que representa una relación de
jerarquía.
Hojas: Nodo sin hijos.

ESTRUCTURAS DE DATOS EXTERNAS


Hasta ahora, todos los mecanismos de almacenamiento de información que hemos
estudiado (constantes, variables, estructuras, vectores, punteros, etc.) son volátiles. Es
decir, cuando el programa que los utiliza termina su ejecución desaparecen y la
información contenida en ellos se pierde. Para resolver este problema se necesitan
estructuras de datos externas al programa. Al ser externas no desaparecerán con él.
Además, si dichas estructuras externas se almacenan en un dispositivo no volátil (un disco,
una cinta, un CD-ROM,...), se puede decir, siempre con una seguridad relativa, que la
información permanecerá aunque se desconecte el ordenador de la alimentación,
desaparezca el programa que lo creó, etc. La estructura de datos externa básica es el
fichero (archivo).

FICHEROS: Los archivos también denominados ficheros (file); es una colección de


información (datos relacionados entre sí), localizada o almacenada como una unidad en
alguna parte de la computadora.

Los archivos son el conjunto organizado de informaciones del mismo tipo, que pueden
utilizarse en un mismo tratamiento; como soporte material de estas informaciones.

TIPOS DE FICHEROS
TEXTO FORMATEADO: Existen muchos tipos (tantos como fabricantes), el contenido es
principalmente ASCII pero acompañado de múltiples caracteres específicos de control de
formato y presentación. Son los ficheros producidos por procesadores de texto (del tipo
Word de MS o WordPerfect, por ejemplo) y sistemas de auto edición. Requieren un
programa específico para abrirlos. Pueden ser también abiertos con un procesador de
texto ASCII puro, pero entonces son difícilmente legibles, porque junto con el texto
normal aparecen combinaciones de caracteres extraños (los denominados caracteres de
control) que sirven para indicar que tipo de letra se utiliza en cada párrafo, si es negrita,
subrayado, etc. etc.

Tienen terminaciones muy diversas, a continuación incluimos algunas (incluimos también


algunos formatos correspondientes a hojas de cálculo): DOC, RTF, WPD, PDF, DVI, GID,
HLP, GID, VK1, XLS.

FICHEROS DE AUDIO: Ficheros de sonido de diversos tipos, existen multitud de "codecs"


para este tipo de ficheros, pero los más frecuentes en la Web son los siguientes [3]: WAV,
AU, RA, RAM, AIF, AIFC, AIFF, MID, MIDI, LAM, SND, MP3, VCD, RMI.

FICHEROS DE IMAGEN: Ficheros con imágenes estáticas o animadas (no-video),


incluyendo formatos para diseño gráfico CAD ("Computer Aided Design").
En informática se utilizan dos formas básicas para almacenar imágenes, a su vez de cada
una existen muchas variantes; son denominadas raster y vectorial. El sistema raster
consiste en descomponer la imagen en una serie de puntos (píxel) como si fuese un
mosaico, y almacenar el color y brillo de cada uno de estos puntos. Naturalmente se
consigue más definición cuanto mayor sea el número de puntos, pero a cambo de que el
fichero resultante es mayor (hay que almacenar más datos).

Este tipo de imagen es el que vemos en la pantalla de nuestro monitor (que a fin de
cuentas muestra puntos), y es poco adecuado para ciertas manipulaciones, por ejemplo
hacer zoom (aumentar o disminuir). Es fácil entender que si se aumenta mucho la imagen
empiezan a verse lo puntos (como si nos acercamos demasiado a una foto del periódico).
Entre los ficheros de este tipo están los terminados en GIF, JPG, TIF, JPEG, PNG, BMP, ICO.
Los formatos para ser vistos en páginas Web son todos de este tipo.

En el sistema vectorial, cada elemento de la imagen, línea, punto, polígono, zona de color,
etc. es definida por sus propiedades matemáticas, de forma que, por ejemplo, una línea
entre dos puntos puede ser definida como una recta (o un tipo de curva) que pasa por
dichos puntos, con un color, un grueso y un tipo de trazo (continuo, discontinuo, puntos,
etc).

Las imágenes vectoriales son muy indicadas para dibujos de tipo técnico, por ejemplo:
mapas geográficos, cartografía, diseño arquitectónico, diseño mecánico, etc, así como
para cierto tipo de diseño artístico. Resulta imprescindible para dibujos en los que se
necesita conocer la escala, o sobre los que es necesario hacer cálculos. Por ejemplo,
conocer la distancia entre dos puntos o la intersección de dos líneas. Soporta los cambios
de tamaño (zoom) con absoluta precisión. Entre los ficheros de este tipo están los
terminados en DWG, DWF, DXF.

FICHEROS DE VIDEO: Ficheros con video para ser reproducido en el ordenador (pueden
incluir sonido) y en general contenidos multimedia: MOV, AVI, QT, MPE, MPEG, MPG, ASF.

FICHEROS EJECUTABLES: Ficheros que pueden ser ejecutados directamente en el


ordenador; son realmente programas, aunque algunos tienen la sola finalidad de
desempaquetar un cierto contenido que viene incluido en el propio fichero (caso de los
denominados ficheros auto-extraíbles y compresores). Entre estos últimos están los de
terminación: EXE, ZIP, ARC, COMO, ARJ, LZH, TAR y TGZ. También existen ejecutables de
tipo muy específico, por ejemplo ser incluidos en páginas Web. Entre estos están los
programas Java y Active-X, por ejemplo: CLASS, JAVA, JS, CAB, INF y OCX
CARACTERÍSTICAS BÁSICAS
ALMACENAMIENTO

BASE DE DATOS
Una base de datos o banco de datos (en ocasiones abreviada con la sigla BD o con la
abreviatura b. d.) 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 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.

UNIDAD DE TRABAJO 2
CONCEPTOS BÁSICOS DE METODOLOGÍA DE LA PREOGRAMACIÓN
OBJETIVO: Introducción a la metodología de la programación
TIEMPO ESTIMADO: 35 períodos

CONTENIDO PROCEDIMENTAL
 Manejar e interpretar los manuales y el material bibliográfico
 Interpretar el problema
 Elegir las estructuras de programación necesarias para la resolución del problema
 Construir el algoritmo utilizando las estructuras elegidas
 Editar el algoritmo
 Realizar pruebas
 Corregir los errores observados
 Documentar el programa

CONTENIDO CONCEPTUAL
 Herramientas y notaciones para el diseño de algoritmos. Diagramas de flujo.
Seudocódigo. Tablas de decisión. Otros
 Estructura general de un programa. Partes de un programa: entrada, proceso y
salida. Clasificación de las instrucciones: de declaración, primitivas, de control,
compuestas. Variables auxiliares: contador, acumuladores, switches
 Nociones básicas sobre técnicas de programación. Programación convencional.
Programación estructurada: teorema y herramientas. Programación modular:
subprogramas, procedimientos, funciones y recursividad.

CONCEPTOS ACTITUDINALES
 Realizar trabajos encomendados con autonomía
 Responsabilizarse de las tareas realizadas
 Tomar iniciativas, realizar sugerencias de mejora
 Desarrollar los trabajos y actividades emprendidos con eficacia
 Mostrar interés y aprecio por la buena finalización de los trabajos realizados
 Rigurosidad en el análisis de las necesidades y de los recursos disponibles.

DESARROLLO DE LA UNIDAD 2
HERRAMIENTAS Y NOTACIONES PARA EL DISEÑO DE ALGORITMOS

DIAGRAMAS DE FLUJO: son una herramienta gráfica para descripción de algoritmos. Un


diagrama de flujo consta de una serie de símbolos estándar, que representan las distintas
acciones del algoritmo, conectados mediante líneas que indican el orden en el cual deben
realizarse las operaciones.
Un diagrama de flujo muestra la lógica del algoritmo, acentuando los pasos individuales y
sus interconexiones.

Un diagrama de flujo debe reflejar:


 El comienzo del programa
 Las operaciones que el programa realiza
 El orden en que se realizan
 El final del programa
Los símbolos utilizados han sido normalizados por las organizaciones ANSI (American
National Standard Institute) y por ISO (International Standard Organization) y son los
siguientes:

SÍMBOLOS UTILIZADOS EN LOS DIAGRAMAS DE


FLUJO
Este se utiliza para representar el inicio o el fin de un algoritmo.
También puede representar una parada o una interrupción
programada que sea necesaria realizar en un programa.
Este se utiliza para un proceso determinado, es el que se utiliza
comúnmente para representar una instrucción, o cualquier tipo de
operación que origine un cambio de valor.

Este símbolo es utilizado para representar una entrada o salida de


información, que sea procesada o registrada por medio de un
periférico.

Este es utilizado para la toma de decisiones, ramificaciones, para la


indicación de operaciones lógicas o de comparación entre datos.

Este es utilizado para enlazar dos partes cualesquiera de un diagrama a


través de un conector de salida y un conector de entrada. Esta forma un
enlace en la misma página del diagrama.

Este es utilizado para enlazar dos partes de un diagrama pero que no se


encuentren en la misma pagina

Este es utilizado para indicar la secuencia del diagrama de flujo, es decir,


para indicar el sentido de las operaciones dentro del mismo.
Este es utilizado para representar la salida de información por medio de la impresora.

Este es utilizado para representar la salida o para mostrar la información por medio
del monitor o la pantalla.

ENTRADA DE Este símbolo es utilizado para representar el ingreso de datos a


DATOS POR
TECLADO través del teclado.

PSEUDOCÓDIGO
El pseudocódigo (o falso lenguaje) es utilizado por programadores para describir
algoritmos en un lenguaje humano simplificado que no es dependiente de ningún lenguaje
de programación. Por este motivo puede ser implementado en cualquiera lenguaje por
cualquier programador que utilice el pseudocódigo.

Características y partes
Las principales características de este lenguaje son:
1. Se puede ejecutar en un ordenador
2. Es una forma de representación sencilla de utilizar y de manipular.
3. Facilita el paso del programa al lenguaje de programación.
4. Es independiente del lenguaje de programación que se vaya a utilizar.
5. Es un método que facilita la programación y solución al algoritmo del programa.

Todo documento en pseudocódigo debe permitir la descripción de:


1. Instrucciones primitivas.
2. Instrucciones de proceso.
3. Instrucciones de control.
4. Instrucciones compuestas.
5. Instrucciones de descripción.

Estructura a seguir en su realización:

1. Cabecera.
1. Programa.
2. Modulo.
3. Tipos de datos.
4. Constantes.
5. Variables.
2. Cuerpo.
1. Inicio.
2. Instrucciones.
3. Fin.

Para comentar en pseudocódigo se le antepone al comentario dos asteriscos (*)

Ejemplo

* Programa que calcula el área de un cuadrado a partir de un lado dado por teclado.

Programa: area_cuadrado
Modulo: main **( también se puede llamar principal)
Variables:
lado: natural
area: natural
Inicio
Visualizar "Introduce el lado del cuadrado"
Leer lado
Area<- lado * lado
Visualizar "El área del cuadrado es", area
Fin

Ventajas del pseudocódigo sobre los diagramas de flujo

1. Ocupan mucho menos espacio en el desarrollo del problema.


2. Permite representar de forma fácil operaciones repetitivas complejas.
3. Es más sencilla la tarea de pasar de pseudocódigo a un lenguaje de programación
formal.
4. Si se siguen las reglas de identación se puede observar claramente los niveles en la
estructura del programa.
5. En los procesos de aprendizaje de los alumnos de programación, éstos están más
cerca del paso siguiente (codificación en un lenguaje determinado, que los que se
inician en esto con la modalidad Diagramas de Flujo).
6. Mejora la claridad de la solución de un problema.
ESTRUCTURA GENERAL DE UN PROGRAMA
PARTES DE UN PROGRAMA

• Entrada. Los datos iniciales que posee el algoritmo antes de ejecutarse.


• Proceso. Acciones que lleva a cabo el algoritmo.
• Salida. Datos que obtiene finalmente el algoritmo.

CLASIFICACIÓN DE LAS INSTRUCCIONES


Independientemente de la notación que utilicemos para escribir algoritmos, éstos
contienen instrucciones, acciones a realizar por el ordenador. Lógicamente la escritura de
estas instrucciones sigue unas normas muy estrictas. Las instrucciones pueden ser de
estos tipos:

♦ Primitivas. Son acciones sobre los datos del programa. Son:


• Asignación
• Instrucciones de Entrada/Salida
♦ Declaraciones. Obligatorias en el pseudocódigo, opcionales en otros esquemas. Sirven
para advertir y documentar el uso de variables y subprogramas en el algoritmo.
♦ Control. Sirven para alterar el orden de ejecución del algoritmo. En general el algoritmo
se ejecuta secuencialmente. Gracias a estas instrucciones el flujo del algoritmo depende
de ciertas condiciones que nosotros mismos indicamos.

INSTRUCCIONES DE DECLARACIÓN
Sólo se utilizan en el pseudocódigo. Indican el nombre y las características de las variables
que se utilizan en el algoritmo. Las variables son nombres a los que se les asigna un
determinado valor y son la base de la programación. Al nombre de las variables se le llama
identificador.

IDENTIFICADORES
Los algoritmos necesitan utilizar datos. Los datos se identifican con un determinado
identificador (nombre que se le da al dato). Este nombre:

♦ Sólo puede contener letras, números y el carácter _


♦ Debe comenzar por una letra
♦ No puede estar repetido en el mismo algoritmo. No puede haber dos elementos
del algoritmo (dos datos por ejemplo) con el mismo identificador.
♦ Conviene que sea aclarativo, es decir que represente lo mejor posible los datos
que contiene. x no es un nombre aclarativo, saldo_mensual sí lo es.
Los valores posibles de un identificador deben de ser siempre del mismo tipo (lo cual es
lógico puesto que un identificador almacena un dato). Es decir no puede almacenar
primero texto y luego números.

DECLARACIÓN DE VARIABLES
Es aconsejable al escribir pseudocódigo indicar las variables que se van a utilizar (e incluso
con un comentario indicar para qué se van a usar).
Esto se hace mediante la sección del pseudocódigo llamada variable, en esta sección se
colocan las variables que se van a utilizar. Esta sección se coloca antes del inicio del
algoritmo. Y se utiliza de esta forma:

Programa: nombre_De_Programa
Variables:
identificador1: tipoDeDatos
identificador2: tipoDeDatos
Inicio
instrucciones
fin

El tipo de datos de la variable puede ser especificado de muchas formas, pero tiene que
ser un tipo compatible con los que utilizan los lenguajes informáticos. Se suelen utilizar los
siguientes tipos:

♦ entero. Permite almacenar valores enteros (sin decimales).


♦ real. Permite almacenar valores decimales.
♦ carácter. Almacenan un carácter alfanumérico.
♦ lógico (o booleano). Sólo permiten almacenar los valores verdadero o falso.
♦ texto. A veces indicando su tamaño (texto(20) indicaría un texto de hasta 20
caracteres) permite almacenar texto.

Ejemplo de declaración:

Variables:
numero_cliente: entero // código único de cada cliente
valor_compra: real //lo que ha comprado el cliente
descuento: real //valor de descuento aplicable al cliente
También se pueden declarar de esta forma:

Variables:
numero_cliente: entero // código único de cada cliente
valor_compra, //lo que ha comprado el cliente
descuento :real //valor de descuento aplicable al cliente

La coma tras valor_compra permite declarar otra variable real.

CONSTANTES
Hay un tipo especial de variable llamada constante. Se utiliza para valores que no van a
variar en ningún momento. Si el algoritmo utiliza valores constantes, éstos se declaran
mediante una sección (que se coloca delante de la sección variable), llamada constante.

Ejemplo:

programa ejemplo1
constante
PI=3.1415
NOMBRE=”Jose”
variable
edad: entero
sueldo: real
Inicio
....
Fin

Es conveniente (aunque en absoluto obligatorio) utilizar letras mayúsculas para declarar


variables.

INSTRUCCIONES PRIMITIVAS
Son instrucciones que se ejecutan en cuanto son leídas por el ordenador. En ellas sólo
puede haber:

♦ Asignaciones ( )
♦ Operaciones (+, -, * /,...)
♦ Identificadores (nombres de variables o constantes)
♦ Valores (números o texto encerrado entre comillas)
♦ Llamadas a subprogramas

En el pseudocódigo se escriben entre el inicio y el fin. En los diagramas de flujo y tablas de


decisión se escriben dentro de un rectángulo instrucción de asignación Permite almacenar
un valor en una variable. Para asignar el valor se escribe el símbolo , de modo que:
Identificador valor

El identificador toma el valor indicado.

Ejemplo:
X 8

Ahora x vale 8. Se puede utilizar otra variable en lugar de un valor. Ejemplo:

Y 9
X y

x vale ahora lo que vale y, es decir x vale 9.

Los valores pueden ser:

♦ Números. Se escriben tal cual, el separador decimal suele ser el punto (aunque hay
quien utiliza la coma).
♦ Caracteres simples. Los caracteres simples (un solo carácter) se escriben entre comillas
simples: ‘a’, ‘c’,etc.
♦ Textos. Se escriben entre comillas doble “Hola”
♦ Lógicos. Sólo pueden valer verdadero o falso (se escriben tal cual)
♦ Identificadores. En cuyo caso se almacena el valor de la variable con dicho identificador.

Ejemplo:
X 9
y x //y valdrá nueve

En las instrucciones de asignación se pueden utilizar expresiones más complejas con


ayuda de los operadores.

Ejemplo:
X (y*3)/2

Es decir x vale el resultado de multiplicar el valor de y por tres y dividirlo entre dos.

Los operadores permitidos son:


+ Suma
- Resta o cambio de signo
* Producto
/ División
mod Resto. Por ejemplo 9 mod 2 da como resultado 1
div División entera. 9 div 2 da como resultado 4 (y no 4,5)
Exponente. 9 2 es 9 elevado a la 2
Hay que tener en cuenta la prioridad del operador.

INSTRUCCIONES DE ENTRADA Y SALIDA


LECTURA DE DATOS: Es la instrucción que simula una lectura de datos desde el teclado. Se
hace mediante la orden leer en la que entre paréntesis se indica el identificador de la,
variable que almacenará lo que se lea. Ejemplo (pseudocódigo): leer(x)
El mismo ejemplo en un diagrama de flujo sería:

x x

En ambos casos x contendrá el valor leído desde el teclado.

Se pueden leer varias variables a la vez:

leer(x,y,z)

x, y, z x,y,z

ESCRITURA DE DATOS
Funciona como la anterior pero usando la palabra escribir. Simula la salida de datos del
algoritmo por pantalla.
escribir(x,y,z)
escribir x, y, z

EJEMPLO DE ALGORITMO
El algoritmo completo que escribe el resultado de multiplicar dos números leídos por
teclado sería (en pseudocódigo)

programa mayorDe2
variable
x,y: entero
inicio
leer(x,y)
escribir(x*y)
fin

INSTRUCCIONES DE CONTROL
Con lo visto anteriormente sólo se pueden escribir algoritmos donde la ejecución de las
instrucciones sea secuencial. Pero la programación estructurada permite el uso de
decisiones y de iteraciones.
Estas instrucciones permiten que haya instrucciones que se pueden ejecutar o no según
una condición (instrucciones alternativas), e incluso que se ejecuten repetidamente hasta
que se cumpla una condición (instrucciones iterativas). En definitiva son instrucciones que
permiten variar el flujo normal del programa.

EXPRESIONES LÓGICAS
Todas las instrucciones de este apartado utilizan expresiones lógicas. Son expresiones que
dan como resultado un valor lógico (verdadero o falso). Suelen ser siempre
comparaciones entre datos. Por ejemplo x>8 da como resultado verdadero si x vale más
que 8. Los operadores de relación (de comparación) que se pueden utilizar son:

> Mayor que


< Menor que
≥ Mayor o igual
≤ Menor o igual
≠ Distinto
= Igual
También se pueden unir expresiones utilizando los operadores Y (en inglés AND), el
operador O (en inglés OR) o el operador NO (en inglés NOT). Estos operadores permiten
unir expresiones lógicas. Por ejemplo:

Expresión Resultado verdadero si...

a>8 Y b<12 La variable a es mayor que 8 y (a la vez) la variable b es menor que 12


a>8 Y b<12 O la variable a es mayor que 8 o la variable b es menor que 12. Basta que se
cumpla una de las dos expresiones.
a>30 Y a<45 La variable a está entre 31 y 44
a<30 O a>45 La variable a no está entre 30 y 45
NO a=45 La variable a no vale 45
a >8 Y NO b<7 La variable a es mayor que 8 y b es menor o igual que 7
a>45 Y a<30 Nunca es verdadero instrucción de alternativa simple

INSTRUCCIÓN ALTERNATIVA SIMPLE


La alternativa simple se crea con la instrucción si (en inglés
if). Esta instrucción evalúa una determinada expresión lógica
y dependiendo de si esa expresión es verdadera o no se
ejecutan las instrucciones siguientes.

Funcionamiento:
si expresión_lógica entonces
instrucciones
fin_si

Las instrucciones sólo se ejecutarán si la expresión


evaluada es verdadera.

INSTRUCCIÓN DE ALTERNATIVA DOBLE

Se trata de una variante de la alternativa en la que se


ejecutan unas instrucciones
si la expresión evaluada es verdadera y otras si es falsa.
Funcionamiento:
si expresión_lógica entonces
instrucciones //se ejecutan si la expresión es
verdadera
si_no
instrucciones //se ejecutan si la expresión es falsa
fin_si

Sólo se ejecuta unas instrucciones dependiendo de si la expresión es verdadera.

Hay que tener en cuenta que se puede meter una instrucción si dentro de otro sí. A eso se
le llama ALTERNATIVAS ANIDADAS.
Ejemplo:
si a≥5 entonces
escribe(“apto”)
si a≥5 y a<7 entonces
escribe(“nota:apro
bado”)
fin_si
si a≥7 y a<9 entonces
escribe(“notable”)
si_no
escribe(“sobresalie
nte”)
fin_si
si_no
escribe(“suspenso”
)
fin_si
Al anidar estas instrucciones hay que tener en cuenta que hay que cerrar las instrucciones
si interiores antes que las exteriores.
Eso es una regla básica de la programación estructurada:

VARIABLES AUXILIARES
Son variables que realizan funciones específicas dentro de un programa.

CONTADORES: Un contador es un campo de memoria cuyo valor se incrementa en una


cantidad fija, positiva o negativa, generalmente asociado a un bucle. Toma un valor inicial
antes de comenzar su función, y cada vez que se realiza el suceso, incrementa un valor. Se
utiliza en los siguientes casos:
 Para contabilizar el número de veces que es necesario repetir una acción (variable
de control de un bucle)
 Para contar un suceso particular asociado por el enunciado del problema (asociado
a un bucle o independientemente)

ACUMULADORES: Un acumulador es un campo de memoria cuyo valor se incrementa


sucesivas veces en cantidades variables. Se utiliza en aquellos casos en que se desea
obtener el total acumulado de un conjunto de cantidades, siendo preciso inicializado con
el valor 0.
También en las situaciones en que hay que obtener un total como producto de distintas
cantidades se utiliza un acumulador, debiéndose inicializar con el valor 1.

INTERUPTORES (SWITCHES): Un interruptor es un campo de memoria que puede tomar


dos valores exclusivos (0 y 1; -1 y 1; FALSO y CIERTO; otros). Se utiliza para
 Recordar en un determinado punto de un programa la ocurrencia o no de un
suceso anterior, para salir de un bucle o para decidir en una instrucción alternativa
qué acción realizar.
 Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un
bucle.

NOCIONES BASICAS SOBRE TÉCNICAS DE PROGRAMACIÓN


PROGRAMACIÓN DESORDENADA
Se llama así a la programación que se realizaba en los albores de la informática (aunque
desgraciadamente en la actualidad muchos programadores siguen empleándola). En este
estilo de programación, predomina el instinto del programador por encima del uso de
cualquier método lo que provoca que la corrección y entendimiento de este tipo de
programas sea casi ininteligible.

PROGRAMACIÓN ESTRUCTURADA
La programación estructurada es un estilo con el cual el se busca que el programador
elabore programas sencillos y fáciles de entender. Para ello, la programación estructurada
hace uso de tres estructuras básicas de control.
Éstas son:
 Estructura Secuencial
 Estructura Selectiva
 Estructura Repetitiva (ó Iterativa)

La programación estructurada se basa un teorema fundamental, el cual afirma que


cualquier programa, no importa el tipo de trabajo que ejecute, puede ser elaborado
utilizando únicamente las tres estructuras básicas (secuencia, selección, iteración).

DEFINICIÓN DE LAS TRES ESTRUCTURAS BÁSICAS

ESTRUCTURA SECUENCIAL
Indica que las instrucciones de un programa se
ejecutan una después de la otra, en el mismo orden en
el cual aparecen en el programa. Se representa
gráficamente como una caja después de otra, ambas
con una sola entrada y una única salida. 45

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un
módulo o programa completo, siempre y cuando éstos también sean programas
apropiados.

Las cajas A y B pueden ser definidas para ejecutar desde una simple instrucción hasta un
módulo o programa completo, siempre y cuando éstos también sean programas
apropiados.

ESTRUCTURA SELECTIVA
También conocida como la estructura SI-VERDADERO-FALSO, plantea la selección entre
dos alternativas con base en el resultado de
la evaluación de una condición; equivale a la
instrucción IF de todos los lenguajes de
programación y se representa gráficamente
de la siguiente manera:

En el diagrama de flujo anterior, C es una


condición que se evalúa; A es la acción que
se ejecuta cuando la evaluación de esta
condición resulta verdadera y B es la acción
ejecutada cuando el resultado de la
evaluación indica falso. La estructura
también tiene una sola entrada y una sola
salida; y las funciones A y B también pueden
ser cualquier estructura básica o conjunto
de estructuras.

ESTRUCTURA REPETITIVA (ITERATIVA)


También llamada la estructura HACER-MIENTRAS-QUE,
corresponde a la ejecución repetida de una instrucción
mientras que se cumple una determinada condición. El
diagrama de flujo para esta estructura es el siguiente:
Aquí el bloque A se ejecuta repetidamente mientras que
la condición C se cumpla o sea cierta. También tiene una
sola entrada y una sola salida; igualmente A puede ser
cualquier estructura básica o conjunto de estructuras.
Ventajas de la Programación Estructurada
Con la programación estructurada, elaborar programas de computadora sigue siendo una
labor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin embargo, con este
nuevo estilo podemos obtener las siguientes ventajas:

1. Los programas son más fáciles de entender. Un programa estructurado puede ser
leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un
sitio a otro en la lógica, lo cual es típico de otros estilos de programación.

2. Se logra una reducción del esfuerzo en las pruebas. El seguimiento de las fallas o
depuración (debugging) se facilita debido a la lógica más visible, de tal forma que
los errores se pueden detectar y corregir más fácilmente.

3. Se crean programas más sencillos y más rápidos.

PROGRAMACIÓN MODULAR
Completa la programación anterior permitiendo la definición de módulos independientes
cada uno de los cuales se encargará de una tarea del programa.
De esta forma el programador se concentra en la codificación de cada módulo haciendo
más sencilla esta tarea. Al final se deben integrar los módulos para dar lugar a la aplicación
final.
El código de los módulos puede ser invocado en cualquier parte del código.
Realmente cada módulo se comporta como un subprograma que, partir de unas
determinadas entradas obtiene unas salidas concretas. Su funcionamiento no depende del
resto del programa por lo que es más fácil encontrar los errores y realizar el
mantenimiento.

PROGRAMACIÓN ORIENTADA A OBJETOS


Es la más novedosa, se basa en intentar que el código de los programas se parezca lo más
posible a la forma de pensar de las personas. Las aplicaciones se representan en esta
programación como una serie de objetos independientes que se comunican entre sí.
Cada objeto posee datos y métodos propios, por lo que los programadores se concentran
en programar independientemente cada objeto y luego generar el código que inicia la
comunicación entre ellos.
Es la programación que ha revolucionado las técnicas últimas de programación ya que han
resultado un importante éxito gracias a la facilidad que poseen de encontrar fallos, de
47
reutilizar el código y de documentar fácilmente el código.

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


UNIDAD DE TRABAJO 3
C++, UN LENGUAJE HÍBRIDO.
OBJETIVO: Presentar el lenguaje de programación C++
TIEMPO ESTIMADO: 10 períodos

CONTENIDO PROCEDIMENTAL
 Manejar e interpretar los manuales y el material bibliográfico
 Utilizar los recursos del sistema
 Crear una guía-resumen de instalación y utilización del compilador empleado, a
partir de los manuales del producto
 Crear una guía-resumen de utilización del editor de textos empleado, a partir de los
manuales del producto
 Describir e identificar los distintos elementos del listado de un programa fuente
escrito en C++
 Identificar las distintas estructuras de programación que aparecen en el listado
fuente
 Utilizar el compilador de C++ empleado
 Realizar pruebas
 Corregir errores observados
 Documentar el programa

CONTENIDO CONCEPTUAL
 Lenguajes de programación. Tipos de lenguajes. Ensambladores. Intérpretes.
Compiladores
 Compiladores frente a intérpretes
 Historia del lenguaje C++
 Ciclo de creación de un programa
 Estructura general de un programa. Bloques de declaración. Bloques de ejecución.
 Editor Borland C++. Elementos de programación. Estructura de un programa.
Directrices para el procesador. Declaración de variables y funciones externas.
Declaración de variables globales y funciones prototipo. Funciones (main(),, etc.
 Funciones. De usuario. De librería
 La compilación. Características del compilador que se empleará. Opciones más
utilizadas
 El enlazado. Opciones más utilizadas
 Librerías de C++. Librerías más utilizadas
 Ejecución de un programa
 La depuración. Opciones del depurador.
CONCEPTOS ACTITUDINALES
 Realizar trabajos encomendados con autonomía
 Respons0abilizarse de las tareas realizadas
 Tomar iniciativas, realizar sugerencias de mejora
 Desarrollar los trabajos y actividades emprendidos con eficacia

49

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


UNIDAD DE TRABAJO 3
C++, UN LENGUAJE HÍBRIDO.
LENGUAJES DE PROGRAMACIÓN
INTRODUCCIÓN
Los lenguajes de programación permiten codificar algoritmos en el ordenador. Son una
serie de símbolos e instrucciones de acuerdo con una sintaxis que facilita su posterior
traducción a código entendible por el ordenador.

En realidad los ordenadores sólo reconocen un lenguaje formado por los unos y ceros del
código binario. Según la disposición de esos unos y ceros entenderá unas instrucciones u
otras. De esa forma hay lenguajes más próximos al lenguaje de las computadores
(lenguajes de bajo nivel) y lenguajes más próximos al lenguaje humando (lenguajes de
alto nivel)

LENGUAJES DE BAJO NIVEL


CÓDIGO MÁQUINA (LENGUAJE DE PRIMERA GENERACIÓN)
Está formado por una sucesión de unos y ceros que el procesador del ordenador reconoce
como instrucciones. Es el lenguaje que reconoce directamente el ordenador por lo tanto
es el que está a más bajo nivel.

Sólo se ha utilizado por los programadores en los inicios de la informática. Su incomodidad


de trabajo hace que sea impensable para ser utilizado. Pero cualquier programa de
ordenador debe, finalmente, ser convertido a este código para que un ordenador pueda
ejecutar las instrucciones de dicho programa.

Un detalle a tener en cuenta es que el código máquina es distinto para cada tipo de
procesador. Lo que hace que los programas en código máquina no sean portables entre
distintas máquinas.

ENSAMBLADOR (LENGUAJES DE SEGUNDA GENERACIÓN)


Se trata de un lenguaje que representa el código máquina pero escrito con una serie de
términos mnemotécnicos que facilitan su escritura. Después un software especial se
encargará de traducir las instrucciones a código máquina.

Ejemplo2 (programa que saca el texto “Hola mundo” por pantalla):


DATOS SEGMENT
saludo db "Hola mundo!!!","$"
DATOS ENDS
CODE SEGMENT
assume cs:code,ds:datos
START PROC
mov ax,datos
mov ds,ax
mov dx,offset saludo
mov ah,9
int 21h

mov ax,4C00h
int 21h
START ENDP
CODE ENDS
END START

Este lenguaje tiene traducción exacta al código máquina, por lo que es un lenguaje
diferente para cada procesador; es decir, no es portable.

La ventaja de este lenguaje es que se puede controlar absolutamente el funcionamiento


de la máquina, lo que permite crear programas muy eficientes. Lo malo es precisamente
que hay que conocer muy bien el funcionamiento de la computadora para crear
programas en estos lenguajes. Además las líneas requeridas para realizar una tarea se
disparan ya que las instrucciones de la máquina son excesivamente simples.

LENGUAJES DE ALTO NIVEL


LENGUAJES DE TERCERA GENERACIÓN
Se aproximan más al lenguaje de los humanos. Los programas se diseñan en un lenguaje
estricto pero independiente de la máquina, lo que permite que la escritura del código cree
programas ejecutables en cualquier máquina.

Hace falta software que transforme el código del lenguaje de alto nivel en código
entendible por el ordenador en un proceso conocido como interpretación o compilación
(dependiendo del lenguaje).

51

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


El código es menos eficiente que en el caso anterior, pero es más entendible y mucho más
fácilmente corregible.

Ejemplo (código Java):


/**
*Calcula los primos del 1 al 1000
*/
public class primos {
/** Función principal */
public static void main(String args[]){
int nPrimos=10000;
boolean primo[]=new boolean[nPrimos+1];
short i;
for (i=1;i<=nPrimos;i++) primo[i]=true;
for (i=2;i<=nPrimos;i++){
if (primo[i]){
for (int j=2*i;j<=nPrimos;j+=i){
primo[j]=false; }
}
}
for (i=1;i<=nPrimos;i++) { System.out.print(" "+i);
}
A veces se habla de lenguajes de medio nivel para referirse a lenguajes que utilizan una
codificación que está entre el ensamblador y el lenguaje de alto nivel. El C se considera a
menudo un lenguaje de nivel medio ya que su codificación puede resultar tan críptica
como un código en ensamblador. De hecho las posibilidades del C son similares a las del
ensamblador, pero su estructura es la de un lenguaje de alto nivel.

LENGUAJES DE CUARTA GENERACIÓN O 4GL (FOURTH GENERATION LANGUAGES)


Son lenguajes en los que apenas hay código y en su lugar aparecen indicaciones sobre qué
es lo que el programa debe de obtener. En estos lenguajes hay herramientas de tipo más
visual mediante las que se diseña el funcionamiento del programa.

Los lenguajes de consulta de datos, creación de formularios, informes,... son lenguajes de


cuarto nivel. Aparecieron con los sistemas de base de datos.

INTÉRPRETRES Y COMPILADORES
Existen dos tipos principales de traductores de los lenguajes de programación de alto
nivel:

 Compilador, que analiza el programa fuente y lo traduce a otro equivalente escrito


en otro lenguaje (por ejemplo, en el lenguaje de la máquina). Su acción equivale a
la de un traductor humano, que toma un libro y produce otro equivalente escrito
en otra lengua.

 Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin generar


ningún código equivalente. Su acción equivale a la de un intérprete humano, que
traduce las frases que oye sobre la marcha, sin producir ningún escrito
permanente.

VENTAJAS E INCOVENIENTES DE LOS INTÈRPRETES Y COMPILADORES

Intérpretes y compiladores tienen diversas ventajas e inconvenientes que los hacen


complementarios:

 Un intérprete facilita la búsqueda de errores, pues la ejecución de un programa


puede interrumpirse en cualquier momento para estudiar el entorno (valores de
las variables, etc.). Además, el programa puede modificarse sobre la marcha, sin
necesidad de volver a comenzar la ejecución.
 Un compilador 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. En cambio, un intérprete se ve obligado generalmente a analizar cada
instrucción tantas veces como se ejecute (incluso miles o millones de veces).
 Un intérprete permite utilizar funciones y operadores más potentes, como por
ejemplo ejecutar código contenido en una variable en forma de cadenas de
caracteres. Usualmente, este tipo de instrucciones es imposible de tratar por
medio de compiladores. Los lenguajes que incluyen este tipo de operadores y que,
por tanto, exigen un intérprete, se llaman interpretativos. Los lenguajes
compilativos, que permiten el uso de un compilador, prescinden de este tipo de
operadores.

HISTORIA DEL LENGUAJE C++


53

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


El comité para el estándar ANSI C fue formado en 1983 con el objetivo de crear un
lenguaje uniforme a partir del C original, desarrollado por Kernighan y Ritchie en 1972, en
la ATT. Hasta entonces el estándar lo marcaba el libro escrito en 1978 por estos dos
autores1.

El lenguaje C++ se comenzó a desarrollar en 1980. Su autor fue B. Stroustrup, también de


la ATT. Al comienzo era una extensión del lenguaje C que fue denominada C with classes.
Este nuevo lenguaje comenzó a ser utilizado fuera de la ATT en 1983. El nombre C++ es
también de ese año, y hace referencia al carácter del operador incremento de C (++). Ante
la gran difusión y éxito que iba obteniendo en el mundo de los programadores, la ATT
comenzó a estandarizarlo internamente en 1987. En 1989 se formó un comité ANSI
(seguido algún tiempo después por un comité ISO) para estandarizarlo a nivel americano e
internacional.

En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los


programadores profesionales le ha llevado a ocupar el primer puesto como herramienta
de desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de
operadores y expresiones, flexibilidad, concisión y eficiencia. Además, ha eliminado
algunas de las dificultades y limitaciones del C original. La evolución de C++ ha continuado
con la aparición de Java, un lenguaje creado simplificando algunas cosas de C++ y
añadiendo otras, que se utiliza para realizar aplicaciones en Internet.
Hay que señalar que el C++ ha influido en algunos puntos muy importantes del ANSI C,
como por ejemplo en la forma de declarar las funciones, en los punteros a void, etc. En
efecto, aunque el C++ es posterior al C, sus primeras versiones son anteriores al ANSI C, y
algunas de las mejoras de éste fueron tomadas del C++.

El C++ es a la vez un lenguaje procedural (orientado a algoritmos) y orientado a objetos.


Como lenguaje procedural se asemeja al C y es compatible con él, aunque ya se ha dicho
que presenta ciertas ventajas (las modificaciones menores, que se verán a continuación).
Como lenguaje orientado a objetos se basa en una filosofía completamente diferente, que
exige del programador un completo cambio de mentalidad. Las características propias de
la Programación Orientada a Objetos (Object Oriented Programming, u OOP) de C++ son
modificaciones mayores que sí que cambian radicalmente su naturaleza.

BORLAND C++

Borland International es el productor del Turbo C++ y del Borland C++. Todos los
productos del lenguaje C++ de Borland, comenzando con la versión 3.0 con compatibles
con el estándar 3.0 de AT&T. Ser compatible con la versión 3.0 de AT&T es la prueba que
determina si un compilador es lo suficientemente moderno como para ser usado como un
compilador serio de C++. Si no usa alguno de los compiladores de C++ de Borland, tal vez
esté satisfecho con el suyo si se apega al estándar 3.0 de AT&T. Comenzando con la
versión 8.0, el compilador de C++ de Microsoft se apega al de AT&T, con la salvedad de
que al compilador de Microsoft todavía le falta la característica de plantilla. Se considera
que la plantillas son vitales para la productividad de un programador formal de C++.
Aunque las plantillas son importantes, si se llega a usar un compilador que no las acepte,
pero que soporta todos los demás aspectos del estándar 3.0 de AT&T, puede quedar
satisfecho con ese compilador.

A través de los años, AT&T ha aprobado muchas características del C++ que no son OOP
pero que hacen al C++ mejor que el C. Tantas mejoras han sido añadidas al C++ que el
comité ANSI ha tomado varios elementos del C++ para el lenguaje C. Por ejemplo, los
prototipos de función no se iniciaron en el C, aunque han sido parte del lenguaje C desde
hace varios años. Los prototipos de función se iniciaron el C++, y, debido a que
contribuyen a hacer mejores programas, ANSI incluyó la característica en el lenguaje C.

CICLO DE CREACIÓN DE UN PROGRAMA


Independientemente de la metodología utilizada suele haber una serie de pasos comunes
a todas ellas (relacionados con el ciclo de vida de la aplicación):

1. Análisis: Al programar aplicaciones siempre se debe realizar un análisis. El análisis


estudia los requisitos que ha de cumplir la aplicación. El resultado del análisis es una
hoja de especificaciones en la que aparece los requerimientos de la aplicación. Esta
hoja es redactada por el o la analista, la persona responsable del proceso de creación
de la aplicación. En la creación de algoritmos sencillos, el análisis consistiría
únicamente en:

 Determinar las entradas. Es decir, los datos que posee el algoritmo cuando
comienza su ejecución. Esos datos permiten obtener el resultado.

 Determinar las salidas. Es decir, los datos que obtiene el algoritmo como
resultado. Lo que el algoritmo devuelve al usuario.

 Determinar el proceso. Se estudia cuál es el proceso que hay que realizar 55

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


2. Diseño: En esta fase se crean esquemas que simbolizan a la aplicación. Estos esquemas
los elaboran analistas. Gracias a estos esquemas se simboliza la aplicación. Estos
esquemas en definitiva se convierten en la documentación fundamental para plasmar
en papel lo que el programador debe hacer. En estos esquemas se pueden
simbolizar: la organización de los datos de la aplicación, el orden de los procesos que
tiene que realizar la aplicación, la estructura física (en cuanto a archivos y carpetas)
que utilizará la aplicación, etc.

3. Codificación: Escritura de la aplicación utilizando un lenguaje de programación (C,


Pascal, C++, Java,...). Normalmente la herramienta utilizada en el diseño debe ser
compatible con el lenguaje que se utilizará para codificar. Es decir si se utiliza un
lenguaje orientado a objetos, la herramienta de diseño debe ser una herramienta que
permita utilizar objetos.

4. Ejecución: Tras la escritura del código, mediante un software especial se traduce a


código interpretable por el ordenador (código máquina). En este proceso pueden
detectarse errores en el código que impiden su transformación. En ese caso el
software encargado de la traducción (normalmente un compilador o un intérprete)
avisa de esos errores para que el programador los pueda corregir.

5. Prueba: Se trata de testear la aplicación para verificar que su funcionamiento es el


correcto. Para ello se comprueban todas las entradas posibles, comprobando que las
salidas son las correspondientes.

6. Mantenimiento: En esta fase se crea la documentación del programa (paso


fundamental en la creación de aplicaciones). Gracias a esa documentación se pueden
corregir futuros errores o renovar el programa para incluir mejoras detectadas,
operaciones que también se realizan en esta fase.

ESTRUCTURA GENERAL DE UN PROGRAMA


Un programa puede considerarse como una secuencia lógica de acciones (instrucciones)
que manipulan un conjunto de objetos (datos) para obtener unos resultados que serán la
solución al problema que resuelve dicho programa.
Todo programa, en general contiene dos bloques bien diferenciados para la descripción de
los dos aspectos anteriormente citados:
- Bloque de declaraciones. En él se especifican todos los objetos que utiliza el programa
(constantes, variables, tablas, registros, archivos, etc.) indicando las características de
estos. Este bloque se encuentra localizado siempre por delante del comienzo de las
acciones.
- Bloque de instrucciones. Constituido por el conjunto de operaciones que se han de
realizar para la obtención de los resultados deseados.

ESTRUCTURA DE UN PROGRAMA EN C++


Consta de 3 partes importantes que son:
1.- CABECERA DEL PROGRAMA:
COMENTARIOS
Un comentario es cualquier información que se escribe el en programa para proporcionar
información de cualquier tipo.
Ejemplo:
#include <iostream.h>
/* podemos hacer
comentarios que ocupen
varias líneas */
int main()
{
int x, y;
int aux; // éste es un comentario de una sola línea
cin >> x >> y;
...
return 0;
}

DIRECTIVAS DEL PREPROCESADOR


Los compiladores de C++ proporcionan bibliotecas de funciones. Cada biblioteca de
funciones tiene asociada un archivo de definición que se denomina cabecera.

Para utilizar algo de una biblioteca en un programa, hay que colocar al principio del
programa una directiva de preprocesamiento seguida de la cabecera de la biblioteca
entre ángulos.

Instrucciones al compilador antes


de que se compile el programa principal

Las directivas más usuales son:


57
# include

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


# define
# include <iostream.h>

Indica al compilador que lea las directivas


antes de compilar la función principal

Por ejemplo, para mostrar datos en la pantalla podemos usar el operador << con el
elemento cout
#include <iostream.h>
int main()
{
cout << “Hola amigos”;
return 0;
}
Pero para poder usar cout y << debemos incluir la biblioteca donde están definidos. Esta
biblioteca tiene como archivo de cabecera iostream.h.
Una vez que se incluye el archivo de cabecera, se puede utilizar todo lo que está definido
en ella.

Existen archivos de cabecera estándar muy utilizados. El uso más frecuente en C++ de las
directivas del preprocesador es la inclusión de archivos de cabecera, pero también se usan
para definir macros, nombres de constantes, etc.

LIBRERÍAS
DEFINICIÓN: Una librería es un conjunto de recursos (algoritmos) prefabricados, que
pueden ser utilizados por el programador para realizar determinadas operaciones.

LIBRERIAS MÁS UTILIZADAS


iostream : entrada y salida
iomanip : manipuladores de entrada/salido con argumentos
fstream : flujos de archivos
sstream : flujos de cadenas (tipo c++)
strstream : flujos de cadenas (tipo c)
vector : contenedor para crear vectores
list : contenedor para crear listas
deque : contenedor para una cola de extremo doble
map : contenedor para grupo de pares (id,valor)
string : cadenas

2.- CABECERA DE FUNCION – FUNCION PRINCIPAL


Debajo de la cabecera principal del programa, se coloca la “cabecera de funcion”, ésta
función es obligatoria en cada programa porque indica el comienzo del programa:
main ( )
Y se requiere de los paréntesis después de la palabra restringida “main“

3.- CUERPO – DESARROLLO


Después de colocar main ( ) es decir nuestro indicador que comienza el programa, ya
podemos comenzar con la programación, ya que la programación va en el cuerpo del
programa, se debe indicar cuál es el cuerpo, ósea los limites. En un programa los limites
son marcados por el símbolo { }, es decir “las llaves “
Ejemplo:
{
....
.......
}

Aquí va la declaración de variables y constantes y por ultimo tenemos las sentencias, es


decir nuestra programación, lo que vayamos realizando en el cuerpo del programa, lo que
va a hacer el programa al compilarlo y ejecutarlo. Todo eso va a ir en el cuerpo es decir
DENTRO de los límites que establecimos ( las llaves principales del programa )

DECLARACIÓN DE VARIABLES:
La declaración de una variable consiste en escribir una sentencia que proporciona
información al compilador de C++.
• El compilador reserva un espacio de almacenamiento en memoria.
• Los nombres de las variables se suelen escribir en minúsculas.
El procedimiento para declarar una variable:
<tipo_de_dato> <nombre_de_variable> ;
<tipo_de_dato> <lista de variables> ;
<tipo_de_dato> <nombre_de_variable> = valor;

Declaraciones locales
Son variables locales aquellas que están declaradas dentro de las funciones o de los
bloques.

59
Declaraciones globales ( variables globales, funciones, …)

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


La zona de declaraciones globales de un programa puede incluir declaraciones de
variables y declaraciones de funciones (prototipos).

Declaración de Constantes
Una constante es una variable cuyo valor no puede ser modificado. Los nombres de las
constantes se suelen escribir en mayúsculas.
 Constantes declaradas const
La palabra reservada const es un calificador de tipo variable e indica que el valor de
variable no se puede modificar.
const <tipo_de_dato> <nombre_de_constante> = <valor> ;
 Constantes definidas
Se declaran mediante la directiva #define
#define <nombre_de_constante> <valor>
 Constantes enumeradas
Las constantes enumeradas permiten crear listas de elementos afines
enum <nombre_de_constante> { <lista_de_valores> };

Ejemplo del funcionamiento de enumeraciones


#include <iostream.h>
int main()
{
enum Dias { Lunes, Martes, Miercoles, Jueves, Viernes };
Dias libre = Viernes; // Dias libre = 4;
cout << libre; // se visualiza por pantalla el número 4
return 0;
}

TIPOS DE DATOS
El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo
de dato define un dominio de valores y las operaciones que se pueden realizar con éstos
valores. C++ dispone de unos cuantos tipos de datos predefinidos (simples) y permite al
programador crear otros tipos de datos

Tipo de datos básicos

• int ( Números enteros )


• float ( Números reales )
• double ( Números reales más grandes que float )
• bool ( Valores lógicos )
• char ( Caracteres y cualquier cantidad de 8 bits )
• void ( Nada. Sirve para indicar que una función no devuelve valores )

TIPO int
Tamaño en bytes: 2 bytes (16 bits)
Dominio: son todos los números enteros entre los valores -32.768 y 32.767
Operaciones:
+ Suma
- Resta
* Producto
/ División entera
% Resto de la división entera
(módulo)
- , + Signo negativo, positivo
++ Incrementación
-- Decrementación

TIPO float
Tamaño en bytes: 4 bytes
Dominio: son todos los números reales que contienen una coma decimal comprendidos
entre los valores: 3,4 × 10-38 y 3,4 × 1038 61

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán


TIPO double
Tamaño en bytes: 8 bytes
Dominio: son todos los números reales que contienen una coma decimal comprendidos
entre los valores: 1,7 × 10-308 y 1,7 × 10308

TIPO bool
Tamaño en bytes: 1 byte
Dominio: dos únicos valores: { true, false }
No todos los compiladores de C++ tienen éste tipo de dato. En su lugar se utiliza el tipo int
para representar el tipo de datos bool, de forma que el valor entero 0 representa false y
cualquier otro valor representa true.
Falso → Cero
Verdadero → Distinto de cero

Operaciones:
&& Y lógica (and)
|| O lógica (or) OPERADORES LÓGICOS
! Negación lógica (not)

Prioridad de los operadores


!
&&, ||

Tabla de verdad:

Operadores relacionales:
= = Igual a
!= Distinto
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que

ESCRITURA DE VALORES BOOL


Raramente se tiene la necesidad de escribir o leer valores de tipo bool ya que éste tipo de
datos se utiliza sobre todo para evaluar expresiones lógicas.
En caso necesario, si escribimos un dato de tipo bool cuyo valor es true, en consola se
visualiza el valor 1. La lectura es análogo.

TIPO CHAR
Tamaño en bytes: 1 byte
Dominio: dígitos, letras mayúsculas, letras minúsculas y signos de puntuación.
0 < 1 < 2 …. < 9 < A < B < … < Z < a < b < …< z
Internamente, los caracteres se almacenan como números. El tipo char representa valores
en el rango -128 y 127 y se asocian con el código ASCII. Así, el carácter ‘A’ se almacena
como el número 65, etc ...

FUNCIONES
Funciones declaradas en conio.h.

La consola es un concepto heredado de los ambientes multiusuario, y está formada por el teclado y el monitor.
En las implementaciones de Borland C++ existe una serie de funciones que manejan la entrada/salida por la
consola, entre otras:
clrscr(), que limpia la pantalla y posiciona el cursor en la esquina superior izquierda de la ventana
actual.

gotoxy(a,b), posiciona el cursor en la posición establecida por la columna a y el renglón b.


window(a,b,x,y), establece la ventana actual. Los valores a,b pertenecen a la columna y el renglón de
la esquina superior izquierda; los valores x,y corresponden a la columna y el renglón de la esquina inferior
derecha de la nueva ventana.

getch(), toma un carácter desde el teclado y no lo despliega en la pantalla.


getche(), toma un carácter desde el teclado y lo despliega en la pantalla.
Para poder utilizar las funciones relacionadas con la consola, es necesario incluir la linea:
#include <conio.h>

Donde conio.h es el archivo de cabecera donde se encuentran declarados los prototipos de las funciones que
manejan la entrada/salida estándar por la consola.

63

RECOPILACIÓN REALIZADA POR: Lic. Fabiola Roldán de Galán

You might also like