1 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 1 Introducción a la programación
2 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 2 Introducción a la programación Los programas son escritos por programadores, es decir, seres humanos que le dicen al computador, paso a paso, exáctamente qué es lo que quieren que haga. La programación tiene un poco de ciencia y poco de arte, de ahí que varios programadores pueden hacer la misma tarea de diferentes formas. A pesar de ello, hay un número claramente identificable de pasos que siempre están involucrados en el proceso de desarrollo de programas.
3 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 3 Ciclo de vida del software Pasos involucrados en el desarrollo de programas: –Definir el problema –Planear la solución –Construir la solución Codificar Depurar Probar –Mantener la solución
4 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 4 Definir el problema Identificar claramente –¿Qué es lo que se quiere hacer? –¿Cuáles son los objetivos a alcanzar? A esta actividad también se le conoce como análisis
5 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 5 Planear la solución Aquí ya se sabe lo que se quiere hacer, pero hay que planear cómo hacerlo. Se requiere un plan detallado, con todas las especificaciones que guiarán los pasos siguientes. También se le llama Etapa de Diseño, dividida en: –Diseño Global –Diseño Detallado El producto final es una descripción detallada de los pasos a llevar a cabo; este conjunto de pasos se conoce como algoritmo.
6 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 6 Construir la solución Aquí se convierte el plan en un programa computacional, con los siguientes pasos: –Codificar: traducir los algoritmos a un lenguaje de programación –Depurar: consiste en localizar y remover los errores que pueda contener el programa codificado. –Probar: Se pone a prueba el programa, para ver si realmente hace lo que se quiere. Es decir, se comparan los resultados que éste arroja con los que debiera arrojar.
7 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 7 Mantener la solución Como todo producto, un programa (o sistema) debe ser mantenido, adaptándolo a cambios del medio ambiente o agregándole nuevas capacidades que antes no tenía. Este conjunto de pasos permite producir programas de manera más o menos eficiente. Puede requerirse volver a alguno de los pasos anteriores en caso de errores o cambios de diseño.
8 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 8 Algoritmos Es un conjunto finito de pasos (instrucciones) bien definidos, dispuestos en una secuencia tal que lleve a la solución de un problema específico. Algunos ejemplos de algoritmos son: recetas de cocina, etiquetas de envases, direcciones de amigos, mapas de ruta, etc.
9 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 9 Algoritmos Ejemplo: Instrucciones de uso del champú en la etiqueta. –Humedezca el cabello –Aplique el champú –Frote hasta obtener abundante espuma –Enjuague –Repita
10 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 10 Algoritmos El nivel en que presentamos un algoritmo depende de la audiencia. Las indicaciones de un algoritmo incluyen sentido común. Una interpretación literal del ejemplo anterior haría repetir el lavado de pelo continuamente hasta que se acabe la botella. Lo que en realidad quiere expresar es que “REPITA si es necesario”.
11 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 11 Los computadores interpretan sus instrucciones muy literalmente. Por esto se debe indicar los pasos en forma detallada, aún cuando un paso sea muy obvio. Un algoritmo es una idea abstracta, independiente de cualquier máquina que pueda ejecutarlo. Un programa de computador es una implementación de un algoritmo en un lenguaje de programación particular.
12 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 12 Carcaterísticas de un algoritmo Debe realizar el proceso requerido Ser completo, es decir, entregar los resultados en todas las circunstancias Ser preciso, no debe tener resultados ambiguos Correcto La solución debe entregarse en un número finito de pasos Simple y claro.
13 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 13 Algoritmo del lavado de pelo 1.Humedezca el cabello 2.Aplique el champú 3.Frote hasta obtener espuma 4.Enjuague 5.Si es necesario, Ir al paso 2. Sino Ir al paso 6 6.Termine.
14 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 14 Problema: Tenemos datos de niños recién nacidos, entre ellos: sexo, peso, estatura y día de nacimiento. Se pide determinar el total de varones con un peso superior a 3900 kg; indicar el total de damas con una estatura mayor que 50 cm.
15 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 15 Solución: 1.Tomar tarjeta 2.¿Es sexo masculino? Si: ir a 3 No: Ir a 6 3.¿Es peso > 3900 gr.? Si: ir a 4 No: ir a 8 4.Contabilizar hombre 5.Ir a 8 6.¿Es estatura > 50 cm? Si: Ir a 7 No: Ir a 8 7.Contabilizar mujer 8.¿Hay más fichas? Si: Ir a 1 No: Ir a 9 9.Resultados 10.Fin.
16 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 16 Algoritmos Ejercicio 1: Transformar una cantidad en pesos chilenos en su equivalente en dólares.
17 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 17 Ejercicio 2: La densidad del hombre en Kg. por litro es 0.97. El volumen de la persona se calcula con la fórmula Volumen =peso/0.97 Haga un algoritmo que lea el peso de una persona y calcule su volumen.
18 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 18 Algoritmos Ejemplo: Calcular las raíces de una ecuación de segundo grado ax 2 +bx+c=0 Dados los valores de a,b y c => encuentre x 1 y x 2 Para resolver este problema se debe seguir los siguientes pasos:
19 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 19 Algoritmos –Inicio –Leer los coeficientes a, b y c. –Si a=0 la ecuación lineal, entonces se debe calcular y escribir un aviso. –Sino, es cuadrática por lo tanto se debe calcular las raíces con los siguientes pasos: –Calcular el discriminante (b 2 - 4ac)
20 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 20 Algoritmos –Si el discriminante es negativo entonces las raíces son imaginarias, por lo tanto se debe escribir un mensaje indicándolo. –Sino, si el discriminante es 0, entonces existe una única solución real, la cual se debe escribir. –Sino (discriminante positivo), las raíces son reales, entonces calcular x1 y x2 según la fórmula. –Escribir el valor de x1 y x2 –Terminar.
21 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 21 Diagramas de flujo Representación Gráfica de la lógica de un programa. Esta definido por un conjunto de símbolos, los cuales están conectados mediante flechas que indican el flujo de los datos.
22 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 22
23 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 23 Con estos elementos se puede identificar: –Qué pasos se llevan a cabo (Símbolos) –En qué orden se ejecutan (Líneas)
24 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 24 La construcción de los diagramas se realiza utilizando los elementos antes descrito y dependerá de lo que se quiera implementar, la manera de dibujar dichos elementos, es decir se puede construir: secuencias selección iteración
25 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 25 Acción 2 Acción 1 Acción 3 SECUENCIA
26 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 26 Escribir ‘Ingrese un entero:’ Leer(num) Escribe a la pantalla Lee un valor desde el teclado ENTRADA/SALIDA num num+1
27 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 27 acción F condi c. acción V FALSOVERDADERO... Selector acción nacción 1acción 2 valor nvalor 1valor 2 SELECCION
28 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 28 condic. acción V F V condic. acción V F Iteración
29 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 29 Condiciones a) SI condición ENTONCES acción FIN_SI b)SI condición ENTONCES acción1 SINO acción2 FIN_SI acción F condi c. acción V FALSOVERDADERO
30 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 30 FALSO edad>18 VERDADERO ‘ Mayor’ ‘Menor’ SI edad>18 ENTONCES ESCRIBIR(‘Mayor’) SINO ESCRIBIR(‘Menor’) FIN_SI
31 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 31 condic. acción V F a)REPITA-HASTA HACER acción1 acción2... acciónN MIENTRSA condición
32 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 32 b) MIENTRAS-HACER MIENTRAS condición HACER acción1 acción2... acciónN FIN_MIENTRAS condic. acción V F V
33 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 33 Diagramas de N-S Diagramas de Nassi - Schneiderman Compuesto no por líneas si no por cajones uno sobre el otro, que indican la secuencia de acciones a realizar. Al igual que los diagramas de flujo, es posible representar 3 acciones: secuencia selección iteración
34 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 34 acción 1 acción 2 acción n...... Secuencia
35 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 35 condición SN acción 1acción 2... valor 1valor 2valor n acc 1acc 2acc n... Selector SELECCION
36 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 36 condición acción condición acción ITERACION
37 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 37 Pseudolenguaje
38 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 38 Pseudolenguaje Para escribir algoritmos de computador es conveniente usar pseudolenguaje o pseudocódigo, el cual posee sentencias precisas, tales como: –LEER –ESCRIBIR –SI-ENTONCES-SINO –MIENTRAS-HACER –REPITA-HASTA –etc.
39 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 39 Pseudolenguaje 1.- Estructura de un algoritmo en pseudolenguaje: ALGORITMO nombre_algoritmo DECLARO CONSTANTE nombre_const=valor VARIABLE nombre_valor: tipo_de_dato INICIO FIN
40 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 40 Pseudolenguaje 2.- Acciones en cuerpo del algoritmo De entrada LEER (variable) LEER (var1, var2, var3) Lee desde el teclado Escribe en la pantalla De salida ESCRIBIR(variable) ESCRIBIR(var1,var2,var3) ESCRIBIR(‘El resultado es’, var) De asignación: asocia un valor a una variable variable valor
41 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 41 Pseudolenguaje 3.- Condiciones a) SI condición ENTONCES acción FIN_SI b) SI condición ENTONCES acción1 SINO acción2 FIN_SI c) SI condición ENTONCES INICIO Acción1 Acción2... AcciónN FIN SINO INICIO Acción1 Acción2... AcciónN FIN FIN_SI
42 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 42 Pseudolenguaje a)HACER-MIENTRAS HACER acción1 acción2... acciónN MIENTRAS condición b) MIENTRAS-HACER MIENTRAS condición HACER acción1 acción2... acciónN FIN_MIENTRAS 4.- Iteraciones
43 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 43 Pseudolenguaje INICIO ESCRIBIR(‘Ingrese su edad:’) LEER(edad) SI edad>18 ENTONCES ESCRIBIR(‘Es mayor de edad’) SINO ESCRIBIR(‘Es menor de edad’) FIN_SI FIN Uso del SI-ENTONCES. Ejemplo 1: Hacer un algoritmo en pseudocódigo que indique si una persona es mayor o menor de edad.
44 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 44 INICIO ESCRIBIR(‘Ingrese un número:’) LEER(num) SI num>0 ENTOCES ESCRIBIR(‘Es positivo’) SINO SI num
45 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 45 INICIO LEER (a,b,c) SI a=0 ENTONCES ESCRIBIR( “Ecuación lineal, el resultado es:”, -c/b) SINO discriminante (b 2 - 4ac). SI discriminante < 0 ENTONCES ESCRIBIR( “Las raíces son imaginarias”) SINO SI discriminante = 0 ENTONCES ESCRIBIR( “existe única raíz:” -b/(2*a)) SINO x1 (-b +SQRT(discriminante))/(2*a)) x2 (-b – SQRT(discriminante))/(2*a)) ESCRIBIR(“las raices son:” x1, x2) FIN_SI FIN Ejemplo 3: cálculo de la ecuación de 2do. grado
46 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 46 Pseudolenguaje Uso de REPITA-HASTA Ejemplo 1: Haga un algoritmo que lea repetitivamente números enteros y termine cuando se ingrese el 0. INICIO HACER LEER(num) MIENTRAS (num0) FIN
47 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 47 Pseudolenguaje Uso de un contador Ejemplo 2: Haga una algoritmo que lea 10 números enteros y escriba en pantalla los positivos. INICIO i0i0 HACER i i+1 LEER(num) SI num>0 ENTONCES ESCRIBIR (num) FIN_SI MIENTRAS (i
48 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 48 Ejemplo 3: Haga un algoritmo que lea números enteros e indique cuántos positivos se ingresaron. El programa debe terminar cuando se haya ingresado 10 números positivos o cuando se haya ingresado el 0. INICIO cont 0 HACER LEER(a) SI a>0 ENTONCES cont cont+1 FIN_SI MIENTRAS (a 0 AND cont 10) FIN El y lógico en pseudolenguaje es AND
49 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 49 Tipos de Datos Aritméticos ENTERO:conjunto de números enteros REAL:conjunto de números reales Lógicos BOOLEANO :puede tener dos valores: Verdadero o Falso Texto CARACTER :Letras: A-Z, a-z dígito: 0-9 signo:’+’,’-’,’_’, etc. STRING:Secuencia de caracteres
50 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 50 Ejemplo 1: ALGORITMO define_edad DECLARO edad: ENTERO INICIO ESCRIBIR(‘Ingrese su edad:’) LEER(edad) SI edad>18 ENTONCES ESCRIBIR(‘Es mayor de edad’) SINO ESCRIBIR(‘Es menor de edad’) FIN_SI FIN
51 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 51 Ejemplo 2: Cálculo del perímetro de una circunferencia ALGORITMO perimetro_cincunf DECLARO CONSTANTEpi=3.1415 VARIABLEradio,perim: real INICIO ESCRIBIR(‘ingrese el radio de la circunferencia:’) LEER(radio) perim 2 * pi * radio ESCRIBIR(‘El perímetro es:’, perim) FIN
52 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 52 Ejemplo 3: Haga un algoritmo en pseudocódigo que lea nombre, edad y sexo de una persona. Si es hombre mayor de 45 años recibe un bono de $10000 pesos, si es mujer mayor de 35 recibe un bono de $20000. ALGORITMO bono DECLARO VARIABLES nombre: STRING edad: ENTERO sexo: CARACTER bono: REAL
53 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 53 INICIO bono 0 LEER(nombre, edad, sexo) SI edad>45 AND sexo=‘M’ ENTONCES bono 10000 SINO SI edad>35 AND sexo=‘F’ ENTONCES bono 20000 FIN_SI ESCRIBIR(nombre, ‘recibe: $’, bono) FIN
54 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 54 Operadores Aritméticos SímboloSignificadoOperandosResultado +Adiciónenteros,realesEntero, real -SustracciónEnteros, realesEntero, real *multiplicaciónEnteros, realesEntero, real /divisiónEnteros, realesCuociente real DIVdivisiónenterosCuociente de la división entera MODdivisiónenterosResto de la división entera
55 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 55 Operadores SímboloSignificadoOperandosResultado =Igualdad aritméticológico Desigualdad =Mayor o igual que Relacionales
56 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 56 Operadores SímboloSignificadoOperandosResultado AND‘y’ lógico lógicoslógico OR‘o’ lógico NOTnegación Lógicos ( o booleanos)
57 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 57 Tablas de verdad VANDVV VFF FVF FFF VORVV VFV FVV FFF NOTVF FV
58 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 58 Precedencia NOT1 (mayor) * / div mod AND2 + - OR3 = > >= <
59 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 59 Ejemplo: Un algoritmo tiene las siguientes declaraciones DECLARO a, b, c: ENTERO x,y: REAL s: STRING letra: CARACTER sigo: BOOLEANO Diga se las siguientes instrucciones son correctas o falsas: 1.- c x*yFALSA 2.- c a/bFALSA 3.- sigo ‘FALSO’FALSA 4.- letra ’3’VERDADERA 5.- a x MOD bFALSA
60 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 60 Ejercicos Evaluar las siguientes expresiones aritméticas: 1.2 * 3 + 4 * 5 2.15 DIV 4 * 4 3.15 DIV ( 4 * 4 ) 4.8 MOD 3 DIV 2 5.2 + 3 * 4 - 5 6.80 / 5 / 3 7.4 / 2 * 3 8.-x + y / z = (-x) + (y / z) 9.(8 + 7 >= 15) AND (4 < 5) OR (3 < 2 + 4) 10.x x
61 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 61 Ejercicios Se tienen 3 variables booleanas a, b y c a Falso b Verdadero c Verdadero Determine el valor de b para las siguientes asignaciones 1.b (ac) OR (a>=c) 2.b a OR NOT b OR c 3.b (a
62 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 62 Programación Programación Modular –Existe complejidad en los problemas que se manejan comúnmente, por lo tanto se usa la sentencia… “Dividir para Vencer”, es decir dividir el problemas en subproblemas mas simples de enfrentar, para hacer esto existe la programación modular. –Exige uso de abstracción.
63 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 63 Programación
64 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 64 EJEMPLO
65 Departamento de Computación Instituto de Matemáticas y Física. Universidad de Valparaíso 65