Introducción al Software Científico y a la Programación Resolución de Problemas
Programas Curso 2015-16
Grupo ISCyP
1
Departamento de Ingeniería de la Información y las Comunicaciones Universidad de Murcia
28 de septiembre de 2015
1
Erratas y sugerencias a [email protected]
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 1 / 30
Índice de Contenidos
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Resolución de Problemas con Ordenadores
Desarrollo
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 3 / 30
Resolución de Problemas con Ordenadores
Solución de problemas con ordenadores
Las fases del proceso de resolución de problemas con ordenadores son:
• Fase de resolución del problema
Fase cuyo objetivo es encontrar unalgoritmo.
• Fase de implementación/programación
Fase en la que se programa elalgoritmoen el ordenador.
Ahora nos centramos en la segunda fase.
Notes Notes
Resolución de Problemas con Ordenadores
Fase de resolución del problema
Recuerda
1 Enunciado.Definición clara del problema.
2 Análisis.¿Qué afecta? ¿Cómo se hace? Determinar los procesos, entradas y salidas.
3 Diseño.Construir un algoritmo.
4 Verificación.Comprobar que realiza las tareas para las que ha sido diseñado.
Produce el resultado correcto y esperado.
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 5 / 30
Resolución de Problemas con Ordenadores
Fase de implementación
1 Codificación.Escribir el algoritmoen un lenguaje de programación.
2 Compilación, para comprobar que no haya errores en el código fuente, y ejecución, para ver su comportamiento.
3 Prueba y verificación.A partir de una matriz de entrada establecidas y sus salidas esperadas se determina la validez de la solución propuesta al problema.
4 Depuración, para corregir los errores encontrados.
5 Documentación.Referenciar desde que se dio el problema hasta la solución encontrada.
A esta segunda fase también se le conoce como programación de la solución:
Definición (Programación)
Laprogramaciónes unprocesomediante el cual creamosprogramasque son ejecutadospor un sistema computacional, todo ello con el fin deresolveruna tarea.
Notes Notes
Programas
Desarrollo
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 7 / 30
Programas
Programas
Definición (Programa)
Unprogramaes el conjunto de
instruccionesque se ejecutan en unorden secuencial y se expresan en unlenguaje de programación.
Definición (Ciclo de instrucción)
Unciclo de instrucciónes el período que tarda la unidad central de proceso(CPU) en ejecutar una instrucción delenguaje máquina.
Ciclo de ejecución de un programa
Notes Notes
Programas
Lenguajes de programación
Definición
Unlenguaje de programaciónes un lenguaje formal diseñado para expresar procesos que pueden ser llevados a cabo por computadoras.
• Escompiladosi es traducido a lenguaje máquina antes de ser ejecutado.
• Esinterpretadosi es ejecutado paso a paso su código fuente.
• Existen multitud de lenguajes de programación.
Elíndice TIBOEindica cuáles son los lenguajes más utilizados cada año.
• Estamos sujetos a una sintaxis.
• No podemos comunicarnos como queramos.
• Debemos someternos a las normas de escritura que establezca el lenguaje.
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 9 / 30
Cómo se Expresan los Programas
Desarrollo
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Cómo se Expresan los Programas
Instrucciones. Funciones. Librerías.
Si esto no lo entiendes ahora ... tranqui. Es el objetivo de la asignatura.
Instrucción. Responde a una acción que puede entender y ejecutar el lenguaje de programación:
• Declaración y uso de variables.int a=2;
• Expresiones. P.e. las aritméticas.2 + 3 * 5;
• Instrucciones de control.
if (cierto) then { print("hola");}
Función o procedimiento. Es un conjunto de instrucciones (y funciones) que se agrupan bajo un nombre para realizar una tarea concreta.
• Funciones del lenguaje.
print("hola");
• Funciones de librería (o biblioteca).
import Stat; mean([2,3,4]);
• Funciones de usuario.
real miSuma (a,b) { return a+b; }
Librería. Conjunto de funciones para un fin concreto.
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 11 / 30
Cómo se Expresan los Programas
Las 4 reglas básicas para expresar un programa
1 Usa las 4 regla básicas para expresar un algoritmo:
1 Usar elinfinitivopara las acciones.
2 Usar los condicionalessi-entonces.
3 Usar la expresiónmientras-hacerohacern-vecespara expresar tareas repetitivas.
4 Usarvariablespara guardar/recuperar valores.
2 Traduce las acciones en funciones.
3 Traduce los condicionales y tareas repetitivas en estructuras de control.
4 Traduce el uso de variables en expresiones y variables.
Notes Notes
Cómo se Expresan los Programas
Ejemplo de la función/instrucción “imprimir ” en varios lenguajes de programación.
ASP. Response.Write("Hola Mundo") Bash. echo "Hola Mundo"
Basic. print "Hola Mundo";
C. printf("¡Hola, mundo!\n");
C++. std::cout << "Hola mundo\n";
C#. Console.WriteLine("¡Hola mundo!");
CLIPS. (printout t "Hola, Mundo" crlf) D. writefln("Hola mundo");
Java. System.out.println("Hola Mundo");
Pascal. WriteLn(’¡Hola, Mundo!’);
Prolog. write(’Hola mundo’).
R. print("¡Hola, mundo!")
Visual Basic .NET Messagebox.show("¡Hola, mundo!")
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 13 / 30
Introducción a Processing
Desarrollo
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Introducción a Processing
Processing
• Web:https://www.processing.org/
• Descarga:https://www.processing.org/download/
• Instalación: Descomprime el .zip y guardar donde se desee (p.e. escritorio).
• Lugar de trabajo: Preferencias>Sketchbook location
• MenúFile para cargar, guardar y ejemplos.
• MenúSketchpara ejecutar y parar los programas.
• Algunas opciones deFile y Sketchen barra de herramientas.
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 15 / 30
Introducción a Processing Primeras nociones de programación en Processing
Profundizamos en ...
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Introducción a Processing Primeras nociones de programación en Processing
Expresiones y algunas Funciones
RECUERDA
Instrucción. En lenguaje ensamblador un comando que puede entender y ejecutar la CPU.
En lenguajes de alto nivel:
• Declaración y uso de variables.int a=2;
• Expresiones.2 + 3 * 5;
• Instrucciones de control.
if (cierto) then { print("hola");}
Función o procedimiento. Es un conjunto de instrucciones (y funciones) que se agrupan bajo un nombre para realizar una tarea concreta.
• Funciones del lenguaje.
print("hola");
• Funciones de librería (o biblioteca).
import Stat; mean([2,3,4]);
• Funciones de usuario.
real miSuma (a,b) { return a+b; } Librería. Conjunto de funciones para un fin concreto.
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 17 / 30
Introducción a Processing Expresiones y su impresión en la consola
Profundizamos en ...
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Introducción a Processing Expresiones y su impresión en la consola
Expresiones aritméticas
A Processing hay que decirle todo. Necesitas la instrucciónprintln();
Operación Aritmética Programación
Suma + +
Resta − −
Multiplicación × ∗
División ÷ /
Resto mod %
Números Aritmética Programación
Enteros . . . , −2, −1, 0, 1, 2, . . . . . . , −2, −1, 0, 1, 2, . . .
Decimales , (coma) . (punto)
Reales π 3. 1415Una aproximación. Punto flotante.
1 2+3 8 2 + 3 ; 8 p r i n t l n( 2 + 3 ) ; 4 2 p r i n t l n(2 ,5) ; 8 p r i n t l n( 2 . 5 ) ; 4 3 p r i n t l n( 2 / 3 ) ; 4 p r i n t l n( 2 . 0 / 3 . 0 ) ; 4 4 // Es diferente a 2/3 que 2.0/3.0
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 19 / 30
Introducción a Processing Expresiones y su impresión en la consola
Funciones matemáticas
Processing Matemáticas Significado
abs(x ) |x| Valor absoluto
ceil(x ) dxe Entero más cercano superior exp(x ) ex Exponencial en base e floor(x ) bxc Entero más cercano inferior log(x ) ln(x ) Logaritmo en base e pow(x , y ) xy Potencia y en base x round(x ) x ≈ x0 Redondeo de x es x
0
sq(x ) x2 Cuadrado de x
sqrt(x )
√x Raíz cuadrada de x
Invocación Matemáticas Expresión
Sencilla sen(3) sin(3);
Composición ln(p| − 3|) log(sqrt(abs(-3)));
Notes Notes
Introducción a Processing Expresiones y su impresión en la consola
Funciones trigonométricas y asociadas
Processing Matemáticas Significado acos(x ) cos−1(x ) Arco coseno de x asin(x ) sen−1(x ) Arco seno de x atan(x ) tg−1(x ) Arco tangente de x atan2(y , x ) No existe Arco tangente de (x , y ) cos(x ) cos(x ) Coseno de x
degrees(x ) No existe Convierte radianes a grados sexagesimales.
radians(x ) No existe Convierte grados sexagesimales a radianes.
sin(x ) sen(x ) Seno de x tan(x ) tg(x ) Tangente de x
1 // Calculamos el seno de 90
2 p r i n t l n( sin ( 9 0 ) ) ; 8 p r i n t l n( sin ( r a d i a n s ( 9 0 ) ) ) ; 4 3 p r i n t l n( sin ( 3 . 1 4 1 5 / 2 ) ) ; 4 p r i n t l n( sin ( a t a n 2 (1 ,0) ) ) ; 4
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 21 / 30
Introducción a Processing Expresiones y su impresión en la consola
Evaluación de expresiones matemáticas
Precendencia de operadores
1 Paréntesis: ( expresión )
2 Funciones matemáticas.
3 Productos y divisiones: *,/, %.
4 Suma y resta. +,-.
En caso de empate precede el situado más a la izquierda.
Evalúa las siguientes expresiones
• 2∗ 4+ 3 ∗ 5
• 2+ 4 ∗ 3 + 5
• 2 ∗ 4/3 ∗ 5
• 1/3.0+ (abs (2 − 4) + 5) ∗ (sin(3.1415) + 2)
Notes Notes
Introducción a Processing Expresiones y su impresión en la consola
Expresiones alfanuméricas
• Expresiones alfanuméricas es una secuencia de caracteres (visibles o no) delimitados por el símbolo ".
• Los símbolos delimitadores " no forman parte de la cadena.
• Para incluir " hace falta el carácter de escape \.
Ejemplo: "Hola:\n\t... saludos humano ... bip".
• Incluye al alfabeto en mayúscula o minúscula.
• Incluye los caracteres de los números: 0, 1, ..., 9.
• No confundir"2 + 2" vs 2+ 2
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 23 / 30
Introducción a Processing Concepto de Función
Profundizamos en ...
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Introducción a Processing Concepto de Función
Función y conceptos asociados
Función: Conjunto de instrucciones para realizar una tarea.
Parámetros: Conjunto de valores necesarios para realizar una función.
Argumentos: Conjunto de valores concretos para realizar una función.
Valor de retorno: Valor devuelto por la función.
Ejemplo
• print()y println()son funciones.
• Admiten un parámetro, que puede ser numérico o alfanumérico.
• Enprint("2+2=");el argumento es "2+2=".
• Enprint(2+2); el argumento es el resultado de la expresión numérica2+2.
• Estas funciones no retornan valores.
Función destacada
1 v o i d s e t u p () {
2 I n s t r u c c i o n e s que t ú q u i e r a s de P r o c e s s i n g 3 }
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 25 / 30
Introducción a Processing Ventana gráfica
Profundizamos en ...
1 Resolución de Problemas con Ordenadores
2 Programas
3 Cómo se Expresan los Programas
4 Introducción a Processing
Primeras nociones de programación en Processing Expresiones y su impresión en la consola
Concepto de Función Ventana gráfica
Notes Notes
Introducción a Processing Ventana gráfica
Ventana gráfica
size(w,h);
• Aparece una sola vez en todo el sketch y debe ser la primera línea del programa.
• Sus argumentos representan el ancho y el alto de la ventana gráfica medido en píxeles.
• El color del fondo viene dado por la función background(r, g, b);
1 s i z e( 3 0 0 , 4 0 0 ) ;
2 b a c k g r o u n d( r a n d o m ( 2 5 5 ) , r a n d o m ( 2 5 5 ) , r a n d o m ( 2 5 5 ) ) ;
La funciónrandom(Max) genera números en[0, Max ).
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 27 / 30
Introducción a Processing Ventana gráfica
Sistema de Coodenadas
NotesNotes
Introducción a Processing Ventana gráfica
Listado de funciones 2D
Figuras geométricas.
• point(x,y);
• line(x1, y1, x2, y2);
• triangle(x1, y1, x2, y2, x3, y3);
• rect(a, b, c, d);
• quad(x1, y1, x2, y2, x3, y3, x4, y4);
• ellipse(a, b, c, d);
• arc(a, b, c, d, inicio, final);
• text(expresión, x, y);
“Efectos”
• fill (r, g, b, alpha);
• noFill();
• stroke(r, g, b, alpha);
• strokeWeight(grosor);
• noStroke();
Cuidado: Aplicar noFill(); y noStroke();no dibujará nada.
Otros
• save("fichero");
Grupo ISCyP (DIIC. Univ.de Murcia) Resolución de Problemas 28 de septiembre de 2015 29 / 30
Introducción a Processing Ventana gráfica
Ejemplos
Escribe el código necesario para hacer los siguientes dibujos. Después modifica el código para que contenga la función principal.
• Dibuja un triángulo equilátero “perfecto” con el vértice superior en el punto(200, 10)y su lado opuesto de 180 pixeles de largo.
• Dibuja una estrella de David.
Notes Notes