Вы находитесь на странице: 1из 32

FUNDAMENTOS DE LA

PROGRAMACIÓN
Elementos para solucionar problemas, Secuenciación

Ing. Santiago Quiñones – lsquinones@gmail.com

Tuesday, April 12, 2016 1


Agenda

• Estructura de datos
• Operaciones primitivas elementales
• Funciones matemáticas
• Estructura general en pseudocódigo
• Ambiente de desarrollo Java
• Estructura y diseño de un algoritmo
• Primer algoritmo
• Problemas
2
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

3
Estructuras de datos
Variables
• 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.

Constantes
• Son valores específicos, en consecuencia invariables.
• Su identificador se escribe con letras mayúsculas.

4
Operaciones primitivas elementales. Declaraciones

[OBJETOS]
PSEUDOCÓDIGO

NomClase nomObj = new NomClase()


[CONSTANTES]
nomConstante = valor
[VARIABLES]
nomVariable: Tipo de dato

5
Salida de datos
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.
PSEUDOCÓDIGO

Imprimir nomVar1,nomVar2, nomVarN


Imprimir nombreEmp
Imprimir “NOMBRE = ”, nombreEmp

6
Lectura de datos
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

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

7
Operaciones aritméticas fundamentales

+ Adición 5+2 7

- Substracción 5-2 3

* Multiplicación 5*2 10

/ División 5/2 2.5


Las expresiones aritméticas deben escribirse en una línea para que la computadora pueda
evaluarlas.

Desarrollo de juego y ejercicios.

8
Funciones matemáticas - Pseudocódigo

Seno Seno Seno(x)

Coseno Coseno Coseno(x)

Logaritmo
Ln natural
Ln(x)

Exp Exponencial Exp(x)

Abs Absoluto Abs(x)

RaízCuad Raíz Cuadrada RaíaCuad(x)

Potencia Potencia Potencia(a, b)

9
Estructura general en pseudocódigo

Algoritmo IDENTIFICACIÓN
Clase NomClase Encabezado
Método principal
a. Acción 1
b. Acción 2 Clases
c. Acción 3
d. Acción 4
Fin Método principal Método
Fin Clase NomClase
Fin

10
Estructura básica de un prog. en java

• Clase:
public class Ejemplo {
• Método principal:
public static void main (String args[]) {
• Variables
• Sentencias

11
Comentarios en java
Existen 3 tipos de comentarios:
– De línea: //Es es un comentario de línea
– De bloque:
/*En un comentario de bloque puedo utilizar
* Varias líneas!!!
*/
– De documentación: Similares a los de bloque (Ver vídeo tutorial).
Ejemplo:
/**
* @author lsantiago
*/

12
Bloques y sentencias
• Una sentencia es una línea simple de código terminada con un
punto y coma.
System.out.println(“Hola mundo”);
• Un bloque es un conjunto de sentencias agrupadas entre llaves
({}). Bloque anidados
while(true){
x = x + 1;
y = x + 1;
}

13
Estructuras de programación
• Una expresión es un conjunto variables unidos por operadores
• No se debe confundir con una sentencia: Una sentencia es una
expresión que acaba en punto y coma (;)

14
Estructura de datos - Java
Variables
int edad = 3;
edad: Entero
float sueldo = 1825.54f;
sueldo: Real
char letra = ‘G’;
letra: Carácter
boolean casado = false;
casado: lógico

int edad = (int) 3; //typecast


Inicio
float sueldo = (float) 1825.54f;
edad = 3
char letra = (char) ‘G’;
sueldo = 1825.54
boolean casado = (boolean) false;
letra = “G”
casado = falso
Integer edad = new Integer(3); //wrapper class
Float sueldo = new Float(1825.54);
Character letra = new Character(‘G’);
Boolean casado = new Boolean(false);

15
Tipos de datos - Java
Tipo Clase de
Familia Tamaño Ejemplo
Primitivo Envoltura

Lógico boolean Boolean 1 bit true


char Character 1 byte ‘A’
Literales
- String 1 byte / letra “Java”
byte Byte 1 byte -128 a 127
short Short 2 bytes -32768 a 32 767
Enteros
int Integer 4 bytes 2 147 483
long Integer 8 bytes 263
float Float 4 bytes 3.4e+38
Reales
double Double 8 bytes 1.8e+308

16
Estructura de datos - Java

17
Incompatibilidades. Números - Cadenas

Java

int edad = 30;


String valor = edad;
String valor = (String) edad;
String valor = Integer.toString(edad);

String valor = “30”;


int edad = valor;
int edad = (int) valor;
int edad = Integer.parseInt(valor);

Demo - GUI

18
Salida de datos - Ejemplo

Pseudocódigo Java
nota:Real float nota = 8.5f;
Imprimir “Su nota es” + nota System.out.print(“Su nota es: ” + nota);
System.out.println(“Su nota es: ” + nota);
System.out.printf(“Su nota es: %.2f “, nota);

19
E/S - Ejemplo

20
E/S - Ejemplo

21
Operadores unarios - Java

++ Incremento a++ a=a+1

-- Decremento a-- a=a-1

22
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

23
Clase Math - Java

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

24
Redondeos - Java

abs Valor absoluto Math.abs(-10) 10


Redondeo hacía
floor abajo
Math.floor(3.9) 3
Redondeo hacia
ceil arriba
Math.ceil(4.2) 5
Redondeo
round aritmético
Math.round(5.6) 6

25
Nuestro primer programa. Estilo
Elaborar un algoritmo para calcular e imprimir el sueldo de un empleado.

1. Definir el problema
Calcular el sueldo de un empleado
2. Analizar el problema
Información por producir: Nombre, Sueldo
Datos disponibles: Nombre, Horas trabajadas y Cuota por hora.
Proceso a seguir: Sueldo = Horas trabajadas x Cuota por hora
3. Diseñar el programa
Se diseña la estructura de la solución, elaborando el algoritmo de acuerdo con los
lineamientos que se explican a continuación.

Estructuras de
datos

Operaciones
primitivas
elementales

Estructuras de control

26
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 Estructuras de
datos

Imprimir nombreEmp, sueldo


Fin Método principal
Operaciones
primitivas
elementales

Fin Clase NomClase Estructuras de control

Fin

27
Algoritmos. Ejercicios
1. Elaborar un algoritmo que permita leer el tamaño de un ángulo en radianes, luego que
calcule e imprima el seno y coseno.
2. Elaborar un algoritmo que permita leer un número en radianes e imprima su equivalencia
en grados; asimismo que permita leer un número en grados e imprima su equivalencia en
radianes.
3. Elaborar un algoritmo para calcular el área de un triángulo. Se requiere imprimir como
salida el área del triángulo. Los datos disponibles para leer como entrada son la base y la
𝐵𝑎𝑠𝑒 𝑥 𝐴𝑙𝑡𝑢𝑟𝑎
altura del triángulo. 𝐴 =
2
4. Elaborar un algoritmo para calcular el promedio de calificaciones de un estudiante. Los
datos posibles para lectura son el nombre, calificación 1, calificación 2, calificación 3 y
calificación 4; de cada uno de los exámenes presentados. La información que se debe
imprimir es el Nombre y el promedio de las calificaciones. El promedio se obtiene
sumando las cuatro calificaciones y dividiendo la suma entre 4.
5. Elaborar un algoritmo que calcule e imprima el precio de venta de un artículo. Se tiene los
datos Descripción del artículo y Costo de producción. El precio de venta se calcula
añadiéndola al costo 120% como utilidad, y 15% de impuesto.

28
Algoritmos. Ejercicios
1. Elaborar un algoritmo que lea una cantidad de horas e imprima su equivalente en
minutos, segundos y días.
2. La velocidad de la luz es 300 000 kilómetros por segundo. Elaborar un algoritmo que lea
un tiempo en segundos e imprima la distancia que recorre en dicho tiempo.
3. Hacer un algoritmo que obtenga e imprima el valor de Y a partir de la ecuación: 𝑌 =
3𝑋 2 + 7𝑋 − 15 solicitando como dato de entrada el valor de X.
4. Elaborar un algoritmo que permita leer valores para B, X, Y, Z y W; e imprima el valor de F,
(4𝑥 2 𝑦 2 2𝑧𝑤)2
𝐹= 4𝑥1/2
𝑏3/4
𝑤2
1 −
5. Elaborar un algoritmo que lea el valor de W e imprima el valor de Z, 𝑍 = 𝑒 2
2𝜋
6. Elaborar un algoritmo que permita leer un valor e imprima el logaritmo natural,
exponencial, el valor absoluto y la raíz cuadrada.
7. Elaborar un algoritmo que permia leer el tamaño de un ángulo en radianes e imprima la
tangente, cotangente y cosecante.
8. Elaborar un algoritmo similar al anterior; sólo que el dato que se lee estará dado en
grados. Los grados leídos deben convertirse en radianes antes de hacer los cálculos.
29
Algoritmos. Ejercicios
1. Elaborar un algoritmo que permita leer valores para A y B; e imprima Y, Z y W.
𝑌 = 3𝑎2 𝑏2 2𝑎
𝑊 = 4 2𝑎 𝑎 3𝑎2 𝑏2 − 2𝑎
1
12𝑎2
𝑍= 3
𝑏4

30
Referencias: 31

Bibliográficas
• LUÍS, JOYANES AGUILAR. (2003): “Fundamentos de Programación,
Algoritmos, Estructuras de Datos y Objetos.” Mc-Graw Hill. Madrid.
Páginas 83 y siguientes.
Gracias
Que tenga un maravilloso día.

32

Вам также может понравиться