2. LA PROGRAMACIÓN: RESOLUCIÓN DE
PROBLEMAS
Un programa es una secuencia de instrucciones con un propósito
concreto que un ordenador puede interpretar y ejecutar
Programar es resolver problemas
Conjunto de actividades implicadas en la descripción, el desarrollo y la
implementación eficaz de soluciones algorítmicas a problemas bien
especificados
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite
hallar la solución de un problema.
(Extraído del Diccionario de la RAE, 22ª edición)
Un algoritmo es, por tanto, una sistemática que transforma un
estado inicial en un estado final
La entrada del programa: Precondiciones
Descripción del estado inicial (datos y situación de partida)
La salida del programa: Postcondiciones
Descripción del estado final (datos y situación deseada al acabar)
3. ELEMENTOS BASICOS DE
ALGORITMOS
Nombre Símbolo Función
Terminal Representa el inicio y fin del algoritmo.
Entrada / salida
Entrada o salida de datos. Por ejemplo leer un
dato, mostrar un dato en pantalla, etc.
Proceso
Cualquier tipo de operación que pueda originar
cambio de valor
Decisión
Indica operaciones lógicas o de comparación
entre datos y en función del resultado de la
misma determina (normalmente si y no) cual de
los distintos caminos alternativos del programa
se debe seguir
Conector Misma
Página
Sirve para enlazar dos partes cualesquiera de
un diagrama a través de un conector en la
salida y otro conector en la entrada. Se refiere
a la conexión en la misma pagina del diagrama
Indicador de
dirección o línea de
flujo
Indica el sentido de la ejecución de las
operaciones
Salida
Se utiliza en ocasiones en lugar del símbolo de
salida. El dibujo representa un pedazo de hoja.
Es usado para mostrar datos o resultados.
4. Utilizamos los lenguajes de programación para
expresar los algoritmos de forma que el ordenador
los entienda
De igual forma, que utilizamos la lengua castellana
para expresar nuestras ideas a otras personas
Recuerda: Programar BIEN no es sólo conocer la
sintaxis de uno o varios lenguajes de programación
5. PSEUDOCÓDIGO
El principal objetivo del pseudocódigo es el de representar la
solución a un algoritmo de la forma más detallada posible, y a
su vez lo más parecida posible al lenguaje que posteriormente
se utilizara para la codificación del mismo.
Las principales características de este lenguaje son:
• Se puede ejecutar en un ordenador
• Es una forma de representación sencilla de utilizar y de
manipular.
• Facilita el paso del programa al lenguaje de programación.
• Es independiente del lenguaje de programación que se
vaya a utilizar.
• Es un método que facilita la programación y solución al
algoritmo del programa.
6.
7. EJERCICIO:
El problema del montón de fichas
Supongamos que tenemos un montón de fichas, cada una de las
cuales tiene escrito el nombre de una persona junto con otros datos
personales (fecha de nacimiento, dirección, número de teléfono).
Las fichas están ordenadas alfabéticamente por el nombre.
Creamos una nueva ficha y deseamos incorporarla al montón
existente.
¿Cómo dividimos el montón original en dos montones, tales que
todas las fichas del primer montón precedan a la nueva en la
ordenación y todas las del segundo no le precedan, pudiendo estar
alguno de los montones finales vacío?
¿Cuáles son las precondiciones?
¿Cuáles son las postcondiciones?
¿Qué algoritmos se te ocurren?
¿Qué lenguaje utilizamos para describir todo lo anterior?
8. EL CICLO DE VIDA DEL SOFTWARE
Todas las tareas a realizar desde que se concibe
un programa hasta que se deja de utilizar (no sólo
“hasta que se codifica” ni “hasta que se instala”)
Existen distintos modelos del ciclo de vida software:
Modelo en Cascada
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
9. ¿QUÉ SIGNIFICA TODO ESTO?
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
“Quiero 3 habitaciones,
2 baños, garaje...”
Planos, diseño circuito
eléctrico y de agua...
Se construye la casa
Se comprueba la solidez de la
estructura, el funcionamiento de
las instalaciones, el acabado...
Algunas reparaciones, se cierra
la terraza, se instala aire
acondicionado...
Casa
¿Qué tiene que hacer
exactamente nuestro
programa?
¿Cómo vamos a organizar
el programa? ¿Qué partes
tendrá y cómo funcionará?
Se construye el software
Ponemos a prueba nuestro
programa, incluso en
situaciones límite
Pequeñas modificaciones o
correcciones (parches),
actualizaciones, etc...
Software
10. FASES EN EL DESARROLLO DE UNA APLICACIÓN
Análisis
Actividad en la que se analizan y clarifican los diferentes
aspectos del problema que debe ser resuelto por la
aplicación, con el fin de establecer claramente qué debe
ser construido
El resultado es, normalmente, un documento de
requisitos software que especifica claramente las
funcionalidades de la aplicación
Funcionalidad = lo que tiene que hacerse (sin saber todavía
cómo)
11. Diseño
Actividad en la que se decide la organización y la
estructura de una aplicación que satisfaga los diferentes
requisitos establecidos en la fase de análisis
El resultado es uno (o varios) documentos de diseño
que especifican claramente cómo construir la aplicación
Mientras que el análisis se ocupa de qué hay que hacer,
el diseño se ocupa de cómo hacerlo
Hay varias técnicas de diseño, nosotros estudiaremos
una de las más básicas: el diseño funcional
12.
13. Pruebas
Actividad en la que se asegura que la aplicación
construida satisface los requisitos del usuario
Se debe invertir mucho tiempo en hacer pruebas
(¡mucho más que en su implementación!)
Dos pasos diferenciados
Verificación: ¿Se ajusta la aplicación construida a los requisitos
establecidos?
Validación: ¿Resuelve la aplicación el problema que realmente
tenía el usuario?
14. Mantenimiento
Actividad en la que la aplicación se modifica para satisfacer
cambios o ampliaciones en los requisitos del usuario, corregir
errores, etc.
¡Es la actividad más costosa en el desarrollo de software!
(Tened en cuenta que hay programas que están muchos años
en funcionamiento y lo usan miles de personas)
Estos costes pueden aliviarse si se hacen bien todo lo anterior
*Otras actividades
Confección de los manuales de usuario
Planificación y control del proyecto
Gestión de versiones
...
15. Ejercicios.
Realizar el algoritmo de los siguientes
enunciados:
• Recibir tres números y regresar la suma
de ellos.
• Que convierte pulgadas a centímetros (la
entrada es un número en pulgadas y la
salida el equivalente en centímetros.
16. HISTORIA DE C Y C++
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 autores.
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.
17. CAMBIO EN LA EXTENSIÓN DEL NOMBRE
DE LOS FICHEROS
El primer cambio que tiene que conocer cualquier
programador es que los ficheros fuente de C++ tienen la
extensión *.cpp (de C plus plus, que es la forma oral de
llamar al lenguaje en inglés), en lugar de *.c.
Esta distinción es muy importante, pues determina ni
más ni menos el que se utilice el compilador de C o el
de C++. La utilización de nombres incorrectos en los
ficheros puede dar lugar a errores durante el proceso de
compilación.
18. INTRODUCCIÓN AL LENGUAJE DE
PROGRAMACIÓN C++
Lenguaje C++como extensión del lenguaje C.
Este lenguaje abarca tres paradigmas de la programación:
1. Programación Estructurada: es un paradigma de programación orientado
a mejorar la claridad, calidad y tiempo de desarrollo de un programa
2. Programación Genérica: es un tipo de programación que está mucho más
centrada en los algoritmos que en los datos
3. Programación Orientada a Objetos:es un paradigma de programación
que usa los objetos en sus interacciones, para diseñar aplicaciones y programas
informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión,
abstracción, polimorfismo, acoplamiento y encapsulamiento
En la actualidad, C++ es un lenguaje versátil, potente y general.
19. ENTORNO DE DESARROLLO TÍPICO EN C++
Por lo general, los sistemas de C++ consisten en
tres partes:
un entorno de desarrollo de programas,
el lenguaje y
la Biblioteca estándar de C++.
Comúnmente, los programas en C++ pasan a
través de seis fases: edición, preprocesamiento,
compilación, enlace, carga y ejecución.
20.
21. Fase 1: Creación de un programa:
Consiste en editar un archivo con un programa de edición.
Fases 2 y 3: Preprocesamiento y compilación de un
programa en C++
Se introduce el comando para compilar el programa.
En un sistema de C++, un programa preprocesador se
ejecuta de manera automática antes de que empiece la fase
de traducción del compilador (por lo que a la fase 2 la
llamamos preprocesamiento, y a la fase 3 la llamamos
compilación).
El preprocesador de C++ obedece a comandos denominados
directivas del preprocesador, las cuales indican que deben
realizarse ciertas manipulaciones en el programa, antes de
compilarlo. Por lo general, estas manipulaciones incluyen
otros archivos de texto a ser compilados y realizan varios
reemplazos de texto.
22. Fase 4: Enlace
Por lo general, los programas en C++ contienen referencias
a funciones y datos definidos en otra parte, como en las
bibliotecas estándar o en las bibliotecas privadas de grupos
de programadores que trabajan sobre un proyecto
específico.
El código objeto producido por el compilador de C++
comúnmente contiene “vacios”, debido a estas partes
faltantes.
Un enlazador relaciona el código objeto con el código para
las funciones faltantes, de manera que se produzca una
imagen ejecutable (sin piezas faltantes).
Si el programa se compila y se enlaza de manera correcta,
se produce una imagen ejecutable.
23. Fase 5: Carga
A la fase 5 se le conoce como carga. Antes de poder
ejecutar un programa, primero se debe colocar en la
memoria.
Esto se hace mediante el cargador, que toma la imagen
ejecutable del disco y la transfiere a la memoria. También se
cargan los componentes adicionales de bibliotecas
compartidas que dan soporte al programa.
Fase 6: Ejecución
Por último, la computadora, bajo el control de su CPU,
ejecuta el programa una instrucción a la vez.
24. INVESTIGUE:
Las buenas práctica de programación.
Los errores más frecuentes en la programación.
35. PALABRAS RESERVADAS DE C++
Una palabra reservada, tal como void (ausencia de tipo, o tipo
genérico), es una característica del lenguaje C++.
Una palabra reservada no se puede utilizar como nombre de
identificador, objeto o función.
37. COMENTARIOS INTRODUCIDOS EN EL PROGRAMA
En C los comentarios empiezan por los caracteres /* y terminan con los
caracteres */. Pueden comprender varias líneas y estar distribuidos de cualquier
forma, pero todo aquello que está entre el /* (inicio del comentario) y el */ (fin del
comentario) es simplemente ignorado por el compilador.
Algunos ejemplos de formato de comentarios son los siguientes:
/* Esto es un comentario simple. */
/* Esto es un comentario más largo,
distribuido en varias líneas. El
texto se suele alinear por la izquierda. */
/**************************************
* Esto es un comentario de varias *
* líneas, encerrado en una caja para *
* llamar la atención. *
**************************************/
41. OPERADORES LOGICOS DE C++
Los operadores relacionales se utilizan para comprobar una condición.
42. CONSTANTES Y VARIABLES
Son porciones de memoria que almacenan un valor.
• Las variables son palabras que manipulan datos. Dicho valor puede ser
modificado en cualquier momento durante la ejecución del programa. Las
variables son posiciones en memoria donde estarán guardados los diferentes
valores que le damos o que toman durante la ejecución
• Las datos constantes, mal llamadas por algunos "variables constantes"
(realmente no son variables) tienen un valor fijo durante toda la ejecución del
programa, es decir, este valor no cambia ni puede ser cambiado a lo largo de la
ejecución de nuestro programa.
• Las variables pueden almacenar todo tipo de datos: caracteres, números,
estructuras, etc … Dependiendo del valor de la variable, decimos que dicha
variable es de un tipo de dato.
43. CONSTANTES Y VARIABLES
• Tanto las variables como las constantes están constituidas por un nombre y
un valor. El nombre lo llamaremos identificador.
Toda variable utilizada en un programa debe ser declarada previamente. En
C++, ésta declaración puede situarse en cualquier parte del programa.
Dependiendo de dónde se definan,
tenemos varios tipos:
Variables globales
Variables locales
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;
int x;
char x, y, z;
long int i =10, j, k=0;
44. CONSTANTES Y VARIABLES
Una constante es una variable cuyo valor no puede ser modificado.
Los nombres de las constantes se suelen escribir en mayúsculas.
Dos formas de declara una constante a primera es por medio del
comando #define nombre_constante valor y la segunda es usando la
palabra clave const
const int DIAS = 7;
const char VACIO = ‘ ‘;
const char PORCENTAJE = ‘% ‘;
Constantes definidas
Se declaran mediante la directiva #define
#define <nombre_de_constante> <valor>
…
#define pi 3.14
#define fin ‘F’
...
45.
46. EJERCICIO:
1.- Escriba un programa en C++ que le pida su
nombre y año de nacimiento y le devuelva la
edad que tiene.
https://www.stackscale.com/es/blog/lenguajes-programacion-
mas-populares/
EJEMPLO:
1.- Escriba un programa en C++ solicite el
nombre y edad de una persona y devuelva un
valor aleatorio de dicha edad.