Estrategia de prompts, primeras ideas para su construcción
Programación
1. PROGRAMACIÓN.
INDICE.
1.CONCEPTOS
2.CREACIÓN DE UN PROGRAMA INFORMÁTICO
2.1.DISEÑO DE ALGORITMOS.
3.LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA.
3.1.VARIABLES Y CONSTANTES
3.2. ESTRUCTURAS SECUENCIALES
3.3. ESTRUCTURAS SELECTIVAS
3.4. ESTRUCTURAS REPETITIVAS
3.5. FUNCIONES
4.PROGRAMACIÓN ESTRUCTURADA Y ORIENTADA A OBJETOS: C++
4.1. ENTORNO DE DESARROLLO
4.2. ESTRUCTURA DE UN PROGRAMA C++
4.3. TIPOS DE DATOS Y OPERADORES
4.4. LECTURA Y ENTRADA DE DATOS.
2. • La programación informática consiste en desarrollar aplicaciones que
facilitan las tareas cotidianas, tales como hacer compras, escuchar
música, comunicarse con otros usuarios, encontrar una dirección en el
mapa; en definitiva mejorar la calidad de vida de la sociedad.
• Al igual que las personas se comunican entre sí
con diferentes lenguajes o idiomas, para la
comunicación con un ordenador se utilizan los
lenguajes de programación. Estos lenguajes
son un conjunto de símbolos y reglas que,
siguiendo una estructura lógica, permiten
escribir las líneas de código que componen las
aplicaciones.
• Programar no radica únicamente en el dominio de un lenguaje informático,
sino en disponer de habilidades para plantear un problema, dividirlo en
una secuencia de pasos y tomar decisiones basadas en el pensamiento
lógico. Lo más sencillo es traducirlo a un lenguaje de programación
concreto.
1.CONCEPTOS.1.CONCEPTOS.
3. 2.CREACIÓN DE UN PROGRAMA INFORMÁTICO.2.CREACIÓN DE UN PROGRAMA INFORMÁTICO.
El concepto
programa tiene
múltiples acepciones
Temario de una asignatura
Secuencia de actos que acontecerán en un espectáculo.
Declaración de intenciones en unas elecciones
Planificación de tareas en una tarde de estudio
Cada emisión periódica que se transmite por televisión
Todos estos ejemplos tienen una raíz común: realizan una actividad de modo
ordenado.
Al conjunto de instrucciones y reglas ordenadas que guían el desarrollo de estas
actividades se denomina algoritmo.
Un programa informático es un conjunto de instrucciones (algoritmos), escritas en
un lenguaje de programación para que el ordenador lo pueda entender.
Para crear un
programa informático
se siguen las
siguientes fases:
1. Análisis del problema
2. Diseño del algoritmo
3. Codificación del programa
4. Pruebas y depuración
5. Documentación
4. Análisis del problema.
Consiste en hacer un estudio detallado del problema a resolver, con la
finalidad de que el resultado coincida con lo que se esperaba. Aunque no lo
parezca, esta es una de las fases más complejas, ya que requiere hacer un
estudio exhaustivo del problema para conocer todas las características,
propiedades y restricciones que debe tener el programa desarrollado.
Diseño de algoritmos.
En la fase de diseño se crean
los algoritmos que permiten
resolver el problema. Para
representarlos, se utilizan
diagramas de flujo y
pseudocódigos. Se puede
decir que esta fase es donde
realmente se resuelve el
problema, ya que un algoritmo
adecuado garantiza el buen
funcionamiento del programa. Fin
5. Codificación del programa.
La codificación es la traducción del lenguaje algorítmico a un lenguaje de
programación que el ordenador pueda entender, tal como Java, Python, C++
o Ruby.
Las instrucciones de los programas se almacenan en ficheros denominados
código fuente, que se traducen con un compilador a lenguaje máquina.
Pruebas y depuración.
Una vez escrito el programa, hay que someterlo a una serie de pruebas para
detectar posibles errores de funcionamiento. Es muy importante examinar todas
las opciones y posibilidades del programa, ya que, se corre el riesgo de que el
programa pueda fallar en cualquier momento durante su ejecución. Las
actualizaciones, entre otros aspectos, corrigen errores que se han detectado.
Documentación.
Cada uno de los pasos anteriores debe llevar asociado un documento con todas
las especificaciones necesarias. Durante la programación es importante añadir
comentarios al código fuente con el objeto de clarificar y explicar cada elemento
del programa. Esta documentación sirve para hacer más comprensible el código
a otros programadores que tengan que hacer futuras revisiones
6. 2.1.DISEÑO DE ALGORITMOS.2.1.DISEÑO DE ALGORITMOS.
Un algoritmo es un conjunto de instrucciones o reglas establecidas que, por me-
dio de una sucesión de pasos, permite solucionar un problema determinado.
En la vida cotidiana se emplean algoritmos frecuentemente para realizar tareas
como conducir, cocinar, vestirse, ir al colegio, etc. A continuación se muestra
un ejemplo de algoritmo con los pasos necesarios para cocinar un bizcocho de
chocolate: Paso 1) Batir en un bol 4 huevos, 200 g de azúcar, 125 ml de aceite y 200 ml de leche.
Paso 2) Añadir 25 g de cacao en polvo, 400 g de harina y 1 sobre de levadura.
Paso 3) Remover hasta obtener una mezcla homogénea.
Paso 4) Verter la mezcla en un molde untado con mantequilla.
Paso 5) Introducir en el horno a 180 °0 durante una hora.
Las características más importantes que debe cumplir todo algoritmo es que
sus pasos sean:
*Finitos. Solamente hay un inicio y un final, de forma que el algoritmo debe
estar constituido por un conjunto determinado de pasos.
*Definidos. Si se aplica el algoritmo varias veces, para los mismos datos de
entrada, se debe obtener siempre el mismo resultado.
*Precisos. Establece claramente los pasos a seguir, sin posibilidad de
ambigüedad en ningún momento
En un algoritmo se deben de considerar tres partes: Entrada (información dada
al algoritmo), Proceso (operaciones o cálculos necesarios para encontrar la
solución), Salida (respuesta del algoritmo o resultado final de los cálculos).
7. Ejemplo de un algoritmo: Ir al cine
Análisis del problema.
Datos de salida: Ver la película
Datos de entrada: Nombre de la película, dirección de la sala, hora
de proyección.
Datos auxiliares: número de asiento.
Para solucionar el problema, se debe seleccionar una película de la cartelera del
periódico, ir a la sala y comprar la entrada para, finalmente, poder ver la película
8. Diagramas de flujo.
En programación, los algoritmos(instrucciones) se representan gráficamente
mediante los diagramas de flujo, que están constituidos por una serie de
símbolos específicos.
***
*** En el caso de un sistema informático se puede sustituir por cualquiera
de los siguientes periféricos.
9. Ejemplo: Diagrama de flujo para determinar de los dos números
introducidos cual es el mayor
Ejercicios.
1. Hacer el diagrama de flujo para sumar dos números leídos por teclado y escribir
el resultado.
2. Realizar el diagrama de flujo que permita leer 2 números diferentes y nos diga
cuál es el mayor de los 2 números.
3. Crear un diagrama de flujo en el que se almacenen 3 números y el diagrama
debe decidir cuál es el mayor y cuál es el menor.
4. Realizar el diagrama de flujo para que nos calcule la hipotenusa de un triángulo
rectángulo, conocidos sus dos catetos.
5. Investiga sobre los distintos lenguajes de programación a lo largo de la historia.
10. INICIO
LEER A
LEER B
C=A+B
ESCRIBIR C
FIN
EJERCICIO 1 INICIO
“INTRODUZCA
DOS VALORES
DISTINTOS
A,B
A=B SI
NO
A>B
A “Es el
mayor”
B “Es el
mayor”
FIN
EJERCICIO 2
SINO
11. Pseudocódigo.
Otro método para representar un algoritmo, que utiliza palabras reservadas y
exige una sangría izquierda en algunas líneas.
El pseudocódigo se concibió para superar las dos principales desventajas del
diagrama de flujo: lento de crear y difícil de modificar sin un nuevo redibujo.
Es una herramienta muy buena para el seguimiento de la lógica de un
algoritmo y para transformar con facilidad los algoritmos a programas,
escritos en un lenguaje de programación específico.
Un pseudocódigo comenzará siempre con la palabra inicio y terminará con la
palabra fin. Para introducir un valor o serie de valores desde el dispositivo
estándar y almacenarlos utilizaremos leer (<lista de variables>). Con
<nombre_de_variable> ← <expresión> almacenará en una variable el resultado
de evaluar una expresión. Para imprimir en el dispositivo estándar de salida
una o varias expresiones emplearemos escribir (<lista_de_expresiones>)
Tanto inicio, fin, leer, escribir y las
palabras que aparecen en negrita
en las distintas estructuras
siguientes se consideran palabras
reservadas y no deberán utilizarse
en su lugar otras similares.
Ejemplo: Diseñar un algoritmo que
transforme los grados Celsius en kelvin
13. Cuando asignamos valores a las variables, están van tomando distintos
valores según vamos ejecutando el programa. Por ejemplo:
Resuelve: ¿Qué valores se obtienen en las variables A,B y C después de
ejecutar las siguientes instrucciones?
Solución A=23, B=23, C=23
14. 3.LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA3.LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA
Para realizar las diferentes construcciones de órdenes, los lenguajes de
programación suelen utilizar variables, constantes, estructuras secuenciales, bucles,
funciones etc.
3.1. VARIABLES Y CONSTANTES
Los sistemas informáticos descomponen la información en datos sobre los que se
opera hasta obtener el resultado deseado. Tanto en el mundo real como en
informática, los datos pueden ser de distintos tipos: textos, números enteros,
números decimales, fechas, lógicos, etc.
Si un dato no va a cambiar durante la ejecución de un programa se puede definir
como constante, mientras que los datos cuyos valores pueden cambiar son
variables.
En algunas ocasiones se trabaja con un conjunto de variables del mismo tipo,
que se almacena de forma consecutiva, lo que se define en programación con
el nombre de array o cadena
Los distintos tipos de datos con los que se puede trabajar, los más importantes
son los de la tabla siguiente:
15. A la hora de nombrar un dato, hay que tener en cuenta que:
• Se puede utilizar cualquier carácter alfanumérico, pero siempre debe
comenzar con una letra.
•No se pueden incluir espacios en blanco, por lo que es frecuente utilizar el
carácter guion bajo (_) para nombres compuestos.
•La longitud del nombre no puede ser superior a 32 caracteres
•No se pueden utilizar puntos ni otros caracteres especiales, ni tampoco
palabras clave del lenguaje: text, caption, for, and ...
16. Por otra parte, los programas han de crearse siguiendo una estructura
secuencial, ya que de este modo será más sencillo su diseño, escritura e
interpretación. Además de esta estructura secuencial, existen otras, entre las
que destacan las estructuras selectivas y las estructuras repetitivas, que
proporcionan técnicas de trabajo muy interesantes
3.2. ESTRUCTURAS SECUENCIALES
Estas estructuras permiten que la ejecución del programa se realice siguiendo un
orden determinado. Por este motivo, las sentencias han de escribirse de forma
secuencial, una tras otra, en el mismo orden en el que deban interpretarse al
ejecutar el programa.
Dentro de las estructuras secuenciales se pueden encontrar diferentes tipos de
expresiones:
Sentencias
Las sentencias son instrucciones que realizan acciones. Cada sentencia suele
colocarse en una línea del programa, seguida de un punto y coma (;). Para
agrupar un conjunto de sentencias, que se ejecutan en bloque, se utilizan las
llaves {}.
Llamadas a funciones
Las llamadas a funciones ejecutan instrucciones que se encuentran fuera del
programa, ya sea en una biblioteca o en otra parte del programa. Por ejemplo:
Máximo_Común_Divisor (8,4,10,29,12,18)
17. Asignación
Una sentencia de asignación es la que permite el almacenamiento de un valor
en una variable o una constante. La asignación se realiza con el símbolo igual
(=), por lo que es importante no confundirlo con el operador de comparación
igual a (==).
Operaciones aritméticas
Los operadores aritméticos (+, -, *,1, %) realizan sumas, restas, productos,
divisiones y calculan el resto.
La mayoría de lenguajes permiten simplificar las instrucciones aritméticas en
que se modifica el valor de una variable a partir de su valor anterior. Para ello
se utilizan los siguientes operadores:
18. 3.3. ESTRUCTURAS SELECTIVAS.
Las estructuras selectivas, también conocidas como condicionales o de control,
se utilizan para tomar decisiones lógicas. En ellas se evalúa una condición y, en
función del resultado de esta, se realizan unas u otras acciones. El uso de
estructuras selectivas permite que un mismo programa pueda dar diferentes
resultados dependiendo de lo que ocurra cuando se evalúe cada condición.
Sentencia if-else
La estructura de selección if permite realizar una acción concreta en caso de
cumplirse una condición; si no se cumpliera la condición, el programa seguiría
con la siguiente sentencia sin haber realizado ninguna acción.
Como alternativa, se puede utilizar la sentencia if-else, de modo que si la
condición evaluada es verdadera, se ejecutan las sentencias del bloque if, y en
caso de ser falsa, se ejecutan las sentencias del bloque else. En este caso, las
acciones de los dos bloques son excluyentes entre sí.
Sentencia switch
La sentencia switch se utiliza para las decisiones múltiples, es decir, cuando la
evaluación de una expresión puede dar como resultado varios valores. Es
equivalente a utilizar varios if-else anidados.
Para evaluar las condiciones, se utilizan diferentes operadores de comparación
y lógicos:
19. 3.4. ESTRUCTURAS REPETITIVAS.
Las estructuras repetitivas, también denominadas bucles, se utilizan para repetir la
ejecución de un determinado grupo de sentencias, dependiendo de determinadas
condiciones. Existen distintas estructuras repetitivas, cuya diferencia principal
está en el modo en que se define el número de repeticiones. Analizamos las más
comunes:
Mientras (while)
La estructura Mientras tiene como propósito repetir un bloque de sentencias
mientras se cumpla una condición. La evaluación de la condición se realiza antes
de la ejecución de las sentencias, de modo que:
•Si es verdadera, las sentencias se realizan y se vuelve a evaluar la condición.
•Si es falsa, la estructura Mientras finaliza y el control pasa a la siguiente
instrucción del programa.
20. Ejemplo:
La estructura Hacer-Mientras tiene como propósito repetir un bloque de
sentencias mientras se cumpla una condición. La condición se evalúa al final de
las sentencias, de modo que:
•Si es verdadera, las sentencias se vuelven a repetir.
•Si es falsa, la estructura Hacer-Mientras finaliza y el control pasa a la siguiente
instrucción del programa.
Hacer-Mientras (do-while)
Ejemplo:
Para (for)
La estructura for permite fijar el número de veces que se ha de repetir un bloque
de sentencias. Para ello, se utiliza un contador que comienza con un valor inicial
que incrementa o disminuye en cada iteración del bucle. La estructura finaliza
cuando se deje de cumplir una condición.
21. 3.5. FUNCIONES
El diseño de un programa es una tarea compleja, por lo que se suele abordar
siguiendo el enfoque" divide y vencerás", cuya filosofía es resolver un problema
dividiéndolo en partes más sencillas. La herramienta fundamental para abordar la
solución de problemas complejos es la abstracción, con la que se puede tratar
un problema identificando sus elementos fundamentales y sin entrar en detalles
secundarios. En programación, la abstracción permite disponer de muchas
funciones que pueden ser utilizados en los programas, sin conocer los detalles de
su programación.
Las funciones son un conjunto de instrucciones que realizan una tarea
específica. En general, toman ciertos valores de entrada llamados parámetros
y proporcionan un valor de salida.
Los lenguajes de programación incluyen un conjunto de bibliotecas con
colecciones de funciones ya programadas que facilitan el diseño de las
aplicaciones. Para utilizarlas, es suficiente con incluir el nombre de la librería
con directivas como #include, no obstante, cada programador puede añadir las
funciones que desee en su aplicación.
22. 4.PROGRAMACIÓN ESTRUCTURADA Y ORIENTADA A4.PROGRAMACIÓN ESTRUCTURADA Y ORIENTADA A
OBJETOS: C++OBJETOS: C++
C++ es un lenguaje de propósito general, basado en el lenguaje de
programación C, se considera un lenguaje multiparadigma que da soporte tanto
a la programación estructurada como a la orientación a objetos.
4.1.ENTORNO DE DESARROLLO4.1.ENTORNO DE DESARROLLO
Para programar en C++, se suele utilizar cualquiera de los entornos de
desarrollo integrado más populares, denominados comúnmente IDE, que están
compuestos por una serie de herramientas que ayudan al programador en todas
las fases de creación de software. Estos entornos disponen de editor de código
(fuente), compilador, depurador y generador de interfaces gráficas.
Algunos de los entornes más conocidos son Microsoft Visual Studio, NetBeans,
Eclipse y Dev-C++.
Los programas que vayamos realizando los
guardaremos con la extensión .cpp.
23. Los comentarios los utilizamos para incluir
pequeñas descripciones de partes y elementos del
programa. Si el comentario es de una línea,
comienza con los caracteres // y si ocupa varias
líneas, el texto se coloca entre los símbolos /* y */.
Directivas del procesador
(Bibliotecas) #include <….>,
iostream=para que nuestro
programa pueda tener
entrada y salida de datos
Directiva para reconocer las
instrucciones cout <<
(mostrar en pantalla) y cin>>
(para introducir o guardar
datos)
Función main, es el punto de inicio
de la aplicación e incluye todo el
código del programa, las llamadas
a las funciones y a las clases.
int main(){ …..
}
Muestra en la pantalla todo lo que se
escribe entre “…..”
Llamada a una función de tipo entero,
es decir que tiene que devolver algo
para que el programa detecte que ha
finalizado todo correctamente
Todas las instrucciones de nuestro
programa acaban en ; sino dará error
Si queremos
introducir un
salto de
línea:
<<endl; ó
n” dentro de
las comillas
4.2.ESTRUCTURA DE UN PROGRAMA C++4.2.ESTRUCTURA DE UN PROGRAMA C++
Ejercicios: 1. Realiza un primer programa con tu propio saludo
24. 4.3.TIPOS DE DATOS Y OPERADORES4.3.TIPOS DE DATOS Y OPERADORES
Tipo de dato...nombre..= asignamos un valor;
Solo tomará la parte entera del número
Para números decimales
Para elementos cualquiera, puede ser
una letra, símbolo o un numero.
Siempre irá entre comillas simples
Sobre estos tipos de datos se pueden emplear operadores aritméticos (+,-,*,/,%),
de comparación (==,!=,<,>,<=,>=,||,&&)
Ejercicios: 2. Desarrolla un programa que muestre una variable X=15, su cuadrado,
su cubo y el resultado del siguiente polinomio: 25x3
+12x2
-8x+2
25. 4.4.LECTURA Y ENTRADA DE DATOS4.4.LECTURA Y ENTRADA DE DATOS Definimos la variable que
vamos a trabajar, en este
ejemplo va a ser una
variable de tipo entero. Si
quisiéramos definir más
variables del mismo tipo lo
haríamos en esta
instrucción todas seguida y
separadas por ,
Escribimos un texto para
introducir nuestra variable
Utilizamos este comando para que nos
guarde la variable. (Esta instrucción la
podemos escribir en este lugar o a
continuación del ; del cout)
Por último pedimos que nos
muestre el dato que hemos
introducido
Practica cambiando el tipo de variable para poder introducir un número decimal
Ejercicio: 3. Escribe un programa que lea dos números y muestre en la salida su
suma, resta, multiplicación y división. (Ten en cuenta que tendrás que definir 6
variables, las 4 últimas de las operaciones iguálalas a 0). Cuando son del mismo tipo, las
definimos en la misma línea únicamente separadas por coma.
26. Ejercicio: 4. Realiza un programa que lea de la entrada estándar los siguientes
datos de un persona:
Edad: dato de tipo entero
Sexo: dato de tipo carácter
Altura en metros: dato de tipo real.
Tras leer los datos, el programa debe mostrarlos en la salida
Ejercicio:5. Escribe un programa que lea de la entrada estándar el precio de un
producto y muestre en la salida el precio del producto al aplicarle el IVA.
Ejercicio:6. Escribe un programa que nos calcule la siguiente expresión:
a+b
c+d
Explicar como disminuir la cantidad de decimales.
Ejercicio7: Escribe un programa que permite intercambiar los valores de dos
variables. (Ten en cuenta que tendrás que introducir otra variable aux, que te permite hacer el cambio)
Ejercicio8: La calificación final de un estudiante es la media ponderada de tres
notas: la nota de prácticas que cuenta un 30% del total, la nota teórica que cuenta
un 60% y la nota de participación que cuenta el 10% restante. Escriba un programa
que lea de la entrada estándar las tres notas de un alumno y escriba en la salida
estándar su nota final.
Ejercicio:9. Escribe un programa que nos calcule la siguiente
expresión: (Ten en cuenta que tendrás que introducir la funcion sqrt y la
función pow y,2 ).
27. 4.5.ESTRUCTURA CONDICIONAL: SENTENCIA IF, SWITCH4.5.ESTRUCTURA CONDICIONAL: SENTENCIA IF, SWITCH
Hasta ahora en todos nuestros programas todo el código se leía se copilaba y se
ejecutaba, pero ahora con los condicionales no se va a ejecutar todo el código,
sino se ejecutará una parte u otra dependiendo que se cumpla la condición o no.
Sintaxis es de un
condicional doble:
Vemos un ejemplo: En este caso tenemos un programa que nos determina si el
número que introducimos aleatoriamente es 5 o es diferente de 5
Función if-else,
Si se cumple la
condición, se
ejecutará la
primera parte y
sino la segunda
¡¡Cuidado!!!
Debemos
diferenciar entre
el símbolo de
asignación = y el
símbolo de
igualdad en una
comparación que
es ==
SENTENCIA IF-ELSE
28. Practica con otros opciones como:
-Si el número es diferente de 5, utiliza el operador !=
- Si el número es mayor que el dato (5)
- Si el numero es menor o igual que 5 <=
Sintaxis es de un
condicional múltiple:
SENTENCIA SWITCH
Es importante que después de
cada caso pongamos un break,
es como decirle al programa que
ya tengo la solución y que no siga
ejecutando las otras opciones
Y por último además las diferentes opciones
o case debemos poner un default, que sería
el caso de no cumplirse ninguna opción
Ejemplo: Realizamos un programa que le pidamos al usuario que
introduzca un número del 1-5, y el caso que el número introducido sea
uno que me lo demuestre en pantalla y así con los distintas opciones
hasta el 5. (Ver programa)
29. Ejercicio:10. Escribe un programa que lea dos números y determine cual de
ellos es el mayor.
Ejercicio:11. Realiza un programa que lea un valor entero y determine si se
trata de un número par o impar. (utiliza la condición numero%2==0, esto
significa que el número al dividirlo entre 2 da un residuo de 0, es decir es par)
Ejercicio:12. Realiza un programa que compruebe si un número es positivo o
negativo
Ejercicio:13. Escriba un programa que lea de la entrada estándar un carácter e
indique en la salida estándar si el carácter es una vocal minúscula o no. (los
cinco casos son a,e,i,o,u).
Ejercicio:14. Escriba un programa que lea de la entrada estándar un carácter e
indique en la salida estándar si el carácter es una vocal minúscula, es una vocal
mayúscula o no es una vocal.