Fundamentos de la programación Elementos para solucionar problemas, Secuenciación Ing. Santiago Quiñones – lsquinones@gmail.com Friday, February 22, 2019
Agenda Estructura de datos Operaciones primitivas elementales Estructuras de control Primer problema – Secuenciación Estructura y diseño de un algoritmo Primer algoritmo Funciones matemáticas Problemas
Estructuras de datos Tipos de datos Numéricos Enteros, no contienen componente fraccionario.: 450, 0, 325 Reales, contienen una parte fraccionaria: -24.5, 42.3 Cadena de caracteres Ej. “Universidad de Loja” Carácter, utiliza un byte y puede almacenar cualquier carácter válido según el código ASCII Boolean – Valores posibles V y F Tipos de datos
Estructuras de datos Variables Constantes Sirven para representar y manejar datos y siempre debe identificarse como variable los datos a introducir y los datos que dependa de un cálculo. Características Nombre → Puede utilizar combinación de mayús. y minús., dígitos y el símbolo de subrayado. Debe iniciar con una letra. Su longitud no debe pasar de 20 caracteres. No debe ser una palabra reserevada (if, else, while…) Deben definirse de tal manera que indiquen lo que están representando (datos, métodos, clases, objetos). Utilizar el estilo CamelCase en nombres de clases (*), variables, objetos, métodos. Contenido → Cada variable es como una casilla donde se almacena el valor. Tipo de dato → Debe estar asociada a un tipo de dato entero, real, cadena, etc. Variables Son valores específicos, en consecuencia invariables. Su identificador se escribe con letras mayúsculas. Constantes
Operaciones primitivas elementales JAVA NomClase nomObj = new NomClase(); final tipo_de_dato nomConstante = valor; tipo_de_dato nomVariable; PSEUDOCÓDIGO [OBJETOS] NomClase nomObj = new NomClase() [CONSTANTES] nomConstante = valor [VARIABLES] nomVariable: Tipo de dato
Estructura de datos - Java Variables edad: Entero sueldo: Real letra: Carácter casado: lógico Inicio edad = 3 sueldo = 1825.54 letra = “G” casado = falso int edad = 3; float sueldo = 1825.54f; char letra = ‘G’; boolean casado = false; int edad = (int) 3; //typecast float sueldo = (float) 1825.54f; char letra = (char) ‘G’; boolean casado = (boolean) false; Integer edad = new Integer(3); //wrapper class Float sueldo = new Float(1825.54); Character letra = new Character(‘G’); Boolean casado = new Boolean(false);
Operaciones de asignación - Java Lógico boolean Boolean 1 bit true Literales char a -= b a = a - b a = a - b - a *= b a = a * b a = a * b Enteros byte a /= b a = a / b a = a / b short a %= 2 a = a % b a = a % b int a %= 2 a = a % b a = a % b Reales float a %= 2 a = a % b a = a % b double a %= 2 a = a % b a = a % b
Lectura de datos PSEUDOCÓDIGO Leer nomVar1 Leer peso Esta operación nos permite introducir los datos a la computadora, es decir, introducir la materia prima para el proceso. PSEUDOCÓDIGO Leer nomVar1 Leer peso Leer nombreEmp, horasTrab Leer caracter JAVA nomVar1 = sc.next(); peso = sc.nextDouble(); nombreEmp = sc.next(); horasTrab = sc.nextInt(); caracter = sc.next().charAt(0); Estas acciones esperan a que se tecleen los datos correspondientes, los cuales se almacenaran en las variables especificadas, pero puede hacerse de una forma más detallada, haciendo que vaya acompañada por una solicitud de los datos. Solicitar Nombre del empleado y Horas trabajadas Leer nombreEmp, horasTrab
Salida de datos Imprimir nomVar1,nomVar2, nomVarN Imprimir nombreEmp Mediante la escritura damos salida a los datos de la computadora hacia un medio periférico como por ejemplo la pantalla de vídeo, la impresora, disco u otro. Imprimir nomVar1,nomVar2, nomVarN Imprimir nombreEmp Imprimir “NOMBRE = ”, nombreEmp PSEUDOCÓDIGO System.out.println(nomVar1 + nomVar2 + nomVarN); System.out.print(nombreEmp); System.out.printf( “NOMBRE = %s“, nombreEmp); JAVA
Operaciones primitivas elementales + Adición 5 + 2 7 - Substracción 5 - 2 3 * Multiplicación 5 * 2 10 / División 5 / 2 2.5
Operadores unarios - Java ++ Incremento a++ a = a + 1 -- Decremento a-- a = a - 1
Operaciones de asignación - Java += Sumar y asignar a += b a = a + b -= Restar y asignar a -= b a = a - b *= Multiplicar y asignar a *= b a = a * b /= Dividir y asignar a /= b a = a / b %= Resto y asignar a %= 2 a = a % b
Funciones matemáticas - Pseudocódigo Seno Seno Seno(x) Coseno Coseno Coseno(x) Ln Logaritmo natural Ln(x) Exp Exponencial Exp(x) Abs Absoluto Abs(x) RaízCuad Raíz Cuadrada RaíaCuad(x) Potencia Potencia Potencia(a, b)
Clase Math - Java PI pow sqrt cbrt 3.1416… 25 5 3 Math.PI Constante π Math.PI 3.1416… pow Potencia Math.pow(5, 2) 25 sqrt Raíz Cuadrada Math.sqrt(25) 5 cbrt Raíz Cúbica Math.cbrt(27) 3
Redondeos - Java abs floor ceil round 10 3 5 6 Math.abs(-10) Valor absoluto Math.abs(-10) 10 floor Redondeo hacía abajo Math.floor(3.9) 3 ceil Redondeo hacia arriba Math.ceil(4.2) 5 round Redondeo aritmético Math.round(5.6) 6
Generador de números - Java Math.random() 0.0 a 1.0
Primer problema - Estructura Algoritmo IDENTIFICACIÓN Clase NomClase Método principal a. Acción 1 b. Acción 2 c. Acción 3 d. Acción 4 Fin Método principal Fin Clase NomClase Fin Encabezado Clases Método
Primer problema - Ejemplo Elaborar un algoritmo para calcular e imprimir el sueldo de un empleado. Algoritmo CALCULA SUELDO DE UN EMPLEADO Clase Empleado Método principal Declaraciones Variables nombreEmp: Cadena horasTrab: Entero cuotaHora, sueldo: Real Solicitar Nombre del empleado, número de horas trabajadas y cuota por hora Leer nombreEmp, horasTrab, cuotaHora Calular sueldo = horasTrab * cuotaHora Imprimir nombreEmp, sueldo Fin Método principal Fin Clase NomClase Fin
Referencias: Bibliográficas Cevallos, F. y Ochoa, J. (2013). Texto Guía de Computación. Loja, Ecuador: Ediloja.
Gracias