Programación

29
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.

Transcript of Programación

Page 1: Programación

PROGRAMACIÓN.INDICE.

1.CONCEPTOS2.CREACIÓN DE UN PROGRAMA INFORMÁTICO

2.1.DISEÑO DE ALGORITMOS.3.LENGUAJES DE PROGRAMACIÓN ESTRUCTURADA.

3.1.VARIABLES Y CONSTANTES3.2. ESTRUCTURAS SECUENCIALES3.3. ESTRUCTURAS SELECTIVAS3.4. ESTRUCTURAS REPETITIVAS3.5. FUNCIONES

4.PROGRAMACIÓN ESTRUCTURADA Y ORIENTADA A OBJETOS: C++4.1. ENTORNO DE DESARROLLO4.2. ESTRUCTURA DE UN PROGRAMA C++4.3. TIPOS DE DATOS Y OPERADORES4.4. LECTURA Y ENTRADA DE DATOS.

Page 2: Programación

• 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.

Page 3: Programación

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 problema2. Diseño del algoritmo3. Codificación del programa4. Pruebas y depuración5. Documentación

Page 4: Programación

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

Page 5: Programación

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

Page 6: Programación

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

Page 7: Programación

Ejemplo de un algoritmo: Ir al cine

Análisis del problema.Datos de salida: Ver la películaDatos 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

Page 8: Programación

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.

Page 9: Programación

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.

Page 10: Programación

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

Page 11: Programación

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

Page 12: Programación

Las distintas estructuras se representan de la siguiente forma:

Page 13: Programación

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

Page 14: Programación

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:

Page 15: Programación

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

Page 16: Programación

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 SECUENCIALESEstas 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:

SentenciasLas 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 funcionesLas 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)

Page 17: Programación

AsignaciónUna 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éticasLos 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:

Page 18: Programación

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-elseLa 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 switchLa 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:

Page 19: Programación

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.

Page 20: Programación

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.

Page 21: Programación

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.

Page 22: Programación

4.PROGRAMACIÓN ESTRUCTURADA Y ORIENTADA A 4.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.

Page 23: Programación

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

Page 24: Programación

4.3.TIPOS DE DATOS Y OPERADORES4.3.TIPOS DE DATOS Y OPERADORESTipo de dato...nombre..= asignamos un valor;

Solo tomará la parte entera del númeroPara números decimalesPara 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

Page 25: Programación

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.

Page 26: Programación

Ejercicio: 4. Realiza un programa que lea de la entrada estándar los siguientes datos de un persona:

Edad: dato de tipo enteroSexo: dato de tipo carácterAltura 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+bc+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 ).

Page 27: Programación

4.5.ESTRUCTURA CONDICIONAL: SENTENCIA IF, SWITCH4.5.ESTRUCTURA CONDICIONAL: SENTENCIA IF, SWITCHHasta 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

Page 28: Programación

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)

Page 29: Programación

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.