Documentos de Académico
Documentos de Profesional
Documentos de Cultura
3er. cuatrimestre
• Imperativo:
– Von Neumann, Interpretado (scripting), Orientado a objetos.
Entrada de Datos
Proceso
Salida de Datos
Decisión
3
Diagramas de Flujo
• Elementos adicionales en un diagrama de flujo
Inicio y Final del Programa
Conector
Proceso
Disco Magnético
Decisión
Subprograma
4
Diagramas de Flujo
• Planteo de una situación a resolver utilizando
diagramas de flujo.
• Para plantear un diagrama de flujo debemos
tener muy en claro la situación a resolver.
Ejemplo: Calcular el sueldo mensual de un
operario conociendo la cantidad de horas
trabajadas y el pago por hora.
5
Diagramas de Flujo
Podemos identificar:
• Proceso: (PROCESO)
Cálculo del sueldo multiplicando la cantidad de horas
por el pago por hora.
7
Diagramas de Flujo
En el diagrama de flujo
no indicamos la
definición de variables:
Leer las horas trabajadas
int horasTrabajadas;
float costoHora;
float sueldo;
Leer el costo por hora
sueldo=horasTrabajadas*costoHora
Imprimir el sueldo
sueldo=horasTrabajadas*costoHora
Imprimir el sueldo
13
Diagramas de Flujo
Situación a Resolver
• Realizar la carga del
precio de un
producto y la
cantidad a llevar.
Mostrar cuánto se
debe pagar (se
ingresa un valor
entero en el precio
del producto)
14
Diagramas de Flujo
Situación a Resolver
• Realizar la carga de
dos números
enteros por teclado
e imprimir su suma y
su producto.
15
Diagramas de Flujo
Situación a Resolver
• Realizar la carga de
dos números
enteros por teclado
e imprimir su suma y
su producto.
16
Representación de Información
Tipos de datos:
• Numéricos
– Reales (que tienen decimales)
• float, double
– Enteros
• byte, short, int, long
• Texto
– String (dependiendo del lenguaje), char
• Lógicos
– boolean
17
This page intentionally left blank
18
Instalación de Java
Situaciones a resolver
21
This page intentionally left blank
22
Paradigmas de programación
• Un paradigma de programación consiste en un
método para llevar a cabo cómputos y la forma
en la que deben estructurarse y organizarse las
tareas que debe realizar un programa.
• Conjunto de creencias, prácticas y conocimientos
que guían el desarrollo de una disciplina durante
un período de tiempo.
• Un paradigma de programación es un estilo de
desarrollo de programas. Es decir, un modelo
para resolver problemas computacionales.
23
Paradigmas de programación
Principales paradigmas de programación
• Imperativo. Los programas se componen de un conjunto de sentencias
que cambian su estado. Son secuencias de comandos que ordenan
acciones a la computadora.
Asociados al paradigma imperativo se encuentran los paradigmas
procedural, modular, y la programación estructurada.
El lenguaje representativo sería FORTRAN-77, junto con COBOL, BASIC,
PASCAL, C, ADA.
También lo implementan Java, C++, C#, Eiffel, Python, ...
Lógicos
• La sintaxis del programa está mal, pero las instrucciones
pueden estar en secuencia incorrecta, mal escrito el
cálculo, se nos olvidó algo o pusimos de mas, etc.
• Ej: Xcuadrada = x*x*x; perimetro = lado*lado*lado*lado;27
Errores al programar
Lógicos
• Ningún compilador o intérprete es capaz de localizar
los errores lógicos, pues no sabe qué situación deseas
resolver.
• El error lógico aparece durante el tiempo de ejecución
del programa. Los errores en tiempo de ejecución se
detectan observando el programa, ya que éste no hace
lo que el programador desea (Errores lógicos sin aviso)
• o que hagan que la ejecución del programa de aborte o
marque algún error el sistema operativo (Errores
lógicos con aviso)
28
Errores al programar
En resumen
• De sintaxis
– Que no escribiste bien la sintaxis del código. Es
como las faltas de ortografía (pero aquí no te las
corrige el Word)
• Lógicos
– Que la secuencia de la instrucciones no es
correcta, o falta algo
29
Errores al programar
Debugger
• Un debugger es un programa de cómputo con las
siguientes capacidades:
• Permite ejecutar las líneas del programa una a una.
• Permite establecer puntos en el programa en los que el
flujo del mismo debe detenerse pasando el control al
debugger. Estos puntos son conocidos como puntos de
ruptura, o más comúnmente mediante su nombre en
inglés “breakpoint”
• Permite ver (y en algunos casos modificar) el contenido
de las variables
• El debugger permite comprobar como se ejecuta en la
realidad un programa y supone una ayuda inestimable
en el desarrollo de programas. 30
Errores al programar
Debugger
36
Lenguajes de Programación
Lenguajes imperativos y funcionales
Estos lenguajes son lenguajes de alto nivel que ofrecen una serie de
construcciones de control del flujo del programa como son:
• Las bifurcaciones, donde un bloque de código se ejecutará
dependiendo de una condición (IF, SWITCH-CASE).
• Los ciclos, donde un bloque de código se ejecutará de forma repetida
o bien mientras que se cumpla una condición (WHILE) o bien un
número determinado de veces (FOR).
• Las funciones, que son bloques autónomos e independientes de
código que se encargan de realizar una operación concreta, y que
pueden recibir datos de otras partes del programa en forma de
parámetros y que pueden devolver uno o más valores al terminar de
ejecutarse.
• Entre los lenguajes que soportan la programación estructurada se
encuentra Matlab, C, C++, Fortran, Pascal, Modula, etc.
39
Lenguajes de Programación
• Lenguajes que soportan la programación
orientada a objetos
• Se pasa de trabajar con instrucciones y datos
por separado a unirlos en lo que se denomina
un objeto. Los tipos de los objetos se pueden
definir en estos lenguajes mediante clases.
• Existe una gran cantidad de lenguajes que
soportan este paradigma: C++, Java, C#, Simula,
Smalltalk, Eiffel, Python, Ada, Lisp, OCaml, etc.
40
Lenguajes de Programación
Lenguajes fuertemente y débilmente “tipados”
• Un lenguaje débilmente “tipado” no define de forma explícita el tipo
de las variables (y por lo tanto las operaciones que son válidas con la
variable), sino que el tipo de variable se determina durante la
ejecución, en función de los valores que se les asignan. Matlab
pertenece a este grupo de lenguajes:
a=3
a=“Hola mundo”
//no es necesario decir el tipo de variable, y hasta puede cambiarle el tipo de dato
que contiene
• Por el contrario en un lenguaje fuertemente “tipado”, se determina
de forma explícita el tipo de las variables (y de nuevo las operaciones
que son válidas), el siguiente código no es válido en un lenguaje
fuertemente tipado como C++ (nótese que int indica que la variable
es un número entero):
int a=3;
a=“Hola mundo”;
41
// error: no se puede asignar una cadena de caracteres a un entero directamente
This page intentionally left blank
42
Ejercicios
a) Diseñar un programa en el que se captura la
base y la altura de un triángulo, y se calcule e
imprima su área.
b) Diseñar un programa en el que se capture la
base y la altura de un rectángulo, y que calcule
e imprima el área y el perímetro.
c) Diseñar un programa en el que se capturen los
tres lados de un triángulo, y diga si es
equilátero, isósceles o escaleno.
43
Ejercicios
d. Diseñar y codificar un programa que solicite los
catetos de un triángulo rectángulo, y calcule la
hipotenusa.
Teorema de Pitágoras: a2 + b2 = c2
44
Ejercicios
f) Se tiene una fecha que es un dato numérico con
valor 20190506
Descomponerla en año, mes y día
Ejemplo: fecha = 20190506
Extraer: año=2019, mes=5, día=6
• Casting y Promoción
47
Precedencia de los Operadores en Java
NOMBRE SIMBOLO
Paréntesis, Corchetes, Punto ( ), [ ], .
Signo negativo, Decremento, -num, --, ++, !
Incremento, Negación
Nuevo objeto new (tipo)
Multiplicación, División, Módulo *, /, %
Suma, Resta +, -
Mayor, Menor, Mayor o igual que, >, <, =>, =<
Menor o igual que
Igualación, Distinto ==, !=
AND &&
OR ||
Condicional (Ternario) ?:
Asignación =, +=, -=, *=, /=, %=
48
https://www.discoduroderoer.es/prioridad-operadores-java/
http://www.esi.uclm.es/www/cmunoz/mytp/operadores.pdf
49
Indica cuáles de los siguientes identificadores son válidos en
Java. Si el identificador no es válido explica porqué no lo es.
1) registro1 18) _$Único
2) 1registro 19) tamaño_màximo
3) archivo_3 20) peso.maximo
4) while 21) Precio___
5) $impuesto 22) matrícula?
6) año 23) cuántoVale
7) primer apellido 24) high
8) primer_apellido 25) barça
9) primer-apellido 26) piragüista
10) primerApellido 27) B_011
11) Tom’s 28) X012AB
12) C3PO 29) 70libro
13) 123# 30) nombre&apellido
14) PesoMáximo 31) 0X1A
15) %descuento 32) else
16) Weight
17) $$precioMínimo
50
Indica cuáles de los siguientes literales son válidos en Java. Si el literal es válido indica
además de qué tipo es (int, double, long, etc) y el sistema de numeración en el que
está escrito (decimal, binario, octal, hexadecimal). Si el literal no es válido explica
porqué no lo es.
1) 0.5 17) .00.8E2 33) abcd
2) .5 18) .3e3f 34) 0125
3) 9.3e12 19) 0b111 35) .01011
4) 9.3e-12 20) 12_234L 36) 3e12
5) 12345678 21) 0Xabcd 37) 3_e12
6) 12345678_L 22) 0xabcEL 38) -3E-1_2
7) 0.8E+0.8 23) _234 39) 0.8E
8) 0.8E 8 24) 1010B 40) 0B1212
9) 05_15 25) 0x1010B 41) 1_2_3
10) 018CDF 26) 1_234.2E-2 42) 0xedad
11) 0XBC5DA 27) 1234.2EF 43) 0XBE2
12) 0x87e3a 28) 1234.2E3F 44) 101e2
13) 234567L 29) 1_1.2e_2 45) B1101
14) 0_B11 30) 0bABCDL 46) 1.34.5
15) 010101 31) 0X1A 47) 12.3E4F
16) 0_557 32) 0X12AL 48) 0X12AG
51
Si a, b y c son variables enteras con valores a=8, b=3, c=-5,
determina el valor de las siguientes expresiones aritméticas:
a) a + b + c j) a * (c % b)
b) 2 * b + 3 * (a – c) k) (3 * a – 2 * b) % (2 * a – c)
c) a / b l) 2 * ( a / 5 + (4 - b * 3)) % (a + c - 2)
d) a % b m) (a - 3 * b) % (c + 2 * a) / (a - c)
e) a / c n) a - b - c * 2
f) a % c
g) a * b / c
h) a * (b / c)
i) (a * c) % b
52
Si x, y, z son variables de tipo double con valores x= 88, y = 3.5, z = -5.2,
determina el valor de las siguientes expresiones aritméticas. Obtén el
resultado de cada expresión con un máximo de cuatro decimales.
a) x + y + z i) x * y % z
b) 2 * y + 3 * (x – z) j) x * (y % z)
c) x / y k) 3 * x – z – 2 * x
d) x % y l) 2 * x / 5 % y
e) x / (y + z) m) x - 100 % y % z
f) (x / y) + z n) x - y - z * 2
g) 2 * x / 3 * y
h) 2 * x / (3 * y)
53
Si c1, c2 y c3 son variables de tipo char con valores c1=’E’, c2=’5’,
c3=’?’, determina el valor numérico de las siguientes expresiones
aritméticas.
Nota el valor ASCII de los caracteres del ejercicio
son:
’E’ 69
’5’ 53
’?’ 63
• a) c1 + 1 • f) c1 % c3
• b) c1 – c2 + c3 • g) '2' + '2'
• c) c2 – 2 • h) (c1 / c2) * c3
• d) c2 – '2' • i) 3 * c2
• e) c3 + '#' • j) '3' * c2
54
Si X, Y y Z son variables de tipo boolean con valores X = true,
Y = false, Z = true, determina el valor de las siguientes
expresiones lógicas:
a) (X && Y) || (X && Z)
b) (X || !Y)&& (!X || Z)
c) X || Y && Z
d) !(X || Y) && Z
e) X || Y || X && !Z && !Y
f) !X || !Y || Z && X && !Y
55
Si W, X, Y y Z son variables de tipo boolean con valores W = false,
X = true, Y = true, Z = false, determina el valor de las siguientes
expresiones lógicas:
56
Si x es una variable de tipo int con valor 10, determina qué se
muestra por pantalla cuando se ejecutan las siguientes
instrucciones:
int x = 10;
System.out.println(x);
x++;
System.out.println(x);
System.out.println(++x);
System.out.println(x++);
System.out.println(x);
System.out.println(x++);
System.out.println(++x);
System.out.println(++x);
++x;
x++;
System.out.println(++x);
System.out.println(x++);
System.out.println(++x);
57
Ejercicios
1. Declara dos variables numéricas (con el valor que desees), muestra por
consola la suma, resta, multiplicación, división y módulo (resto de la
división).
2. Declara un String para que solicite tu nombre, después muestra un
mensaje de bienvenida por consola. Por ejemplo: si
introduces “Fernando”, aparezca “Bienvenido Fernando”.
3. Lee un número por teclado y muestra por consola, el carácter al que
pertenece en la tabla ASCII. Por ejemplo: si introduzco un 97, me
muestre una a.
4. Programa para que en lugar de pedir un número, pida un carácter (char)
y muestre su código en la tabla ASCII.
5. Lee un número por teclado que pida el precio de un producto (puede
tener decimales) y calcule el precio final con IVA. El IVA será una
constante con valor del 21%.
6. Realiza una aplicación que nos calcule una ecuación de segundo grado.
Debes pedir las variables a, b y c por teclado y comprobar antes que
el discriminante (operación en la raíz cuadrada). Para la raíz cuadrada
usa el método sqrt de Math. Te recomiendo que uses mensajes de traza.
7. Dada una cadena, extraer la cuarta y quinta letra usando el método
substring.
58
https://www.discoduroderoer.es/ejercicios-propuestos-y-resueltos-basicos-java/
Ejercicios
1. http://puntocomnoesunlenguaje.blogspot.com/p/ejercicios.html
2. http://puntocomnoesunlenguaje.blogspot.com/2018/09/ejercicio-sobre-
indentificadores-java.html
3. http://puntocomnoesunlenguaje.blogspot.com/2018/09/ejercicio-sobre-
literales-java.html
4. http://puntocomnoesunlenguaje.blogspot.com/2018/09/ejercicio-sobre-
operadores-aritmeticos.html
5. https://puntocomnoesunlenguaje.blogspot.com/2018/09/ejercicios-sobre-
operadores-logicos.html
6. https://puntocomnoesunlenguaje.blogspot.com/2018/09/ejercicios-operadores-
incremento-y-decremento.html
7. http://puntocomnoesunlenguaje.blogspot.com/2012/10/java-ejercicios-
iniciales.html
8. http://puntocomnoesunlenguaje.blogspot.com/2012/10/java-ejercicios-iniciales-
2.html
9. http://puntocomnoesunlenguaje.blogspot.com/2012/10/java-ejercicios-iniciales-
3.html
10. http://puntocomnoesunlenguaje.blogspot.com/2018/10/ejercicios-con-el-
operador-condicional-java.html
11. https://puntocomnoesunlenguaje.blogspot.com/2018/10/ejercicios-sobre-
expresiones.html
59