Está en la página 1de 53

Programación

Orientada a
Objetos
Clase 2

Repaso Programación
Estructurada
Java
Fabián Andrés Giraldo
REPASO – Conceptos Básicos

ALGORITMO
Conjunto finito y ordenado de acciones con las que
podemos resolver un determinado problema.

Si vamos a diseñar un algoritmo para resolver un


determinado problema, tenemos que tener totalmente
estudiado y analizado el contexto de dicho problema. Esto
implica.
• Comprender el alcance.
• Identificar los datos de entrada.
• Identificar los datos de salida o resultados.

2
REPASO – Conceptos Básicos

TEOREMA DE PROGRAMACIÓN ESTRUCTURADA


El teorema de programación estructurada establece que
todo algoritmo puede resolverse mediante el uso de tres
estructuras básicas llamadas “Estructuras de Control”
• Estructura Secuencial o “acción simple”.
• Estructura de decisión o “acción condicional”.
• Estructura Iterativa o “Acción de Repetición”.

(Teorema de Bohm-Jacopini, 1966)

3
REPASO – Diagramas de Flujo

REPRESENTACIÓN GRÁFICA DE LOS ALGORITMOS.


Los algoritmos pueden representarse mediante el uso de
diagramas. Los diagramas proveen una visión simplificada
de la lógica del algoritmo.

Inicio Entrada

Fin Salida
4
REPASO – Diagramas de Flujo

Decisión
Repetición

Llamado a una Función Retorno


5
REPASO – Lenguaje de Programación

• Los lenguajes de programación son lenguajes


formales que se componen de un conjunto de
palabras, reglas sintácticas y semánticas.

• Se puede utilizar un lenguaje de programación


para escribir y codificar los algoritmos. Existen
muchos lenguajes de Programación: Pascal, C,
Java, Basic, etc.

6
REPASO – Lenguaje de Programación

• El lenguaje C fue creado por Dennis Ritchie y


Ken Thompson en 1972.

• El lenguaje C++ fue creado a mediados de los


años ochenta por Bjarme Stroustrup,
extendiendo el lenguaje C para permitir la
orientación a objetos.

• Java fue creado en la década del 90 por Sun


MicroSystem (Fue adquirida por Oracle).

7
REPASO – C++

a = eval(input("Ingrese el valor de A"))

8
REPASO – C++

9
REPASO – C++

10
REPASO – C++

OPERADORES
ARITMÉTICOS

OPERADORES
RELACIONALES

11
REPASO – C++

OPERADORES LÓGICOS

12
REPASO – C++

TIPOS DE DATOS
13
JAVA

APRENDER JUGANDO

14
El mundo de Karel

A programar y la orientación a Objetos se aprende


jugando.
La ciudad donde el Robot Karel vive es muy plana. Esta
incluye otros robots con un amplio rango de capacidades.
También incluye intersecciones conectadas por calles y
avenidas sobre las cuales el robot viaja. Adicionalmente,
sobre dichas vías existen objetos (Thing). Las calles van
de oriente (East) a occidente (West). Las avenidas de norte
a sur

15
El mundo de Karel

• Las intersecciones pueden estar bloqueadas por


paredes en uno o más lados (Wall). Una pared en un
nodo de una intersección bloquea al robot para entrar o
salir de la intersección en determinada dirección.
• Los robots existen para servir a los clientes. Los cuatro
servicios básicos que ellos ejecutan son: Moverse, girar,
tomar cosas, poner cosas.
• Los robots no hacen nada por su propia voluntad. Ellos
responden solo a mensajes que se les envía. Un robot
ejecuta un servicio solo cuando es invocado por el
correspondiente mensaje.

16
El mundo de Karel

Comandos básicos para utilizar el Robot

Clonar el repositorio: https://github.com/fagiraldo/karelPractica

Usaremos las mismas estructuras de control explicadas en pasos previos

17
El mundo de Karel

Programación Estructurada - Definición de main

NOTA: Recordar que vamos a usar Java como lenguaje de Programación Estructurada,
No olvida que Java es un lenguaje Orientado a Objetos. Luego explicaremos el significado
De una clase.

18
El mundo de Karel

• Por convención, una archivo que contiene una clase


public debe tener un nombre que sea idéntico al
nombre de la clase (más la extensión .java) en términos
tanto de ortografía como de uso de mayúsculas o
minúsculas.
• Si se omite el punto y coma al final de una instrucción se
produce un error de sintaxis.

19
El mundo de Karel

• Secuencias • Cada mañana Karel es


Escriba un programa que inicie despertado cuando llega el
con la situación inicial presentada periódico (representado por un
en la figura. Instruya al robot para Thing). Instruya a Karel para
dar una vuelta alrededor en recoger el periódico y retornar
sentido de las manecillas del a la cama.
robot y vuelva a la situación
inicial.

20
El mundo de Karel

Mover el Robot sobre el campo siguiendo un patrón en


espiral, como muestra la figura.
1. Escriba el Pseudocódigo de la solución (Diseño).
2. Implemente la solución.

Le funcionó su diseño ?

21
El mundo de Karel

Decisiones - Iteraciones
Histogramas. Escriba un programa que permita A un robot
leer la situación inicial, para producir la salida deseada.

22
El mundo de Karel

Arreglos
El robot deberá mover las cosas (ladrillos) de un cuarto A otro recordando las
posiciones exactas y finalizando La tarea en la zona demarcada con línea
naranjas. Diseñe el escenario usando Becker y construya el algoritmo para dar
solución a la situación planteada

Los ladrillos pueden


Aparecer en cualquier
Posición. Pruebe varios
escenarios

23
El mundo de Karel

Funciones
Construya un Programa orientado a objetos que permita al robot
ordenar un pila de cosas. Se debe garantizar.
1. El número de columnas puede ser entre 1 y 10 y el número máximo
de cosas en cada columna es entre 1-10. Construya una función para
realizar el ordenamiento. Prueben varios escenarios.

24
REPASO – C++

25
REPASO – C++

26
REPASO – C++

Para - Haga 27
REPASO – C++

Mientras- Haga
28
REPASO – C++

Haga - Mientras
29
REPASO – C++

30
REPASO – C++

31
REPASO – C++

32
REPASO – C++

33
REPASO – C++

34
REPASO – C++

35
REPASO – C++

36
REPASO – PYTHON

Y que paso con PYTHON?

Lectura – Escritura por consola

Decisiones

Iteraciones

37
REPASO – PYTHON

Y que paso con PYTHON?


Funciones

38
REPASO – PYTHON

Arreglos

39
REPASO – PYTHON

Matrices

40
INTRODUCCIÓN - JAVA

41
INTRODUCCIÓN - JAVA

42
INTRODUCCIÓN - JAVA

43
INTRODUCCIÓN - JAVA

EQUIVALENCIA ENTRE C Y JAVA (MODO


PROGRAMACIÓN ESTRUCTURADA)

44
INTRODUCCIÓN - JAVA

45
INTRODUCCIÓN - JAVA

46
INTRODUCCIÓN - JAVA

47
INTRODUCCIÓN - JAVA

48
EJERCICIO CLASE

49
EJERCICIO CLASE

Generación Aleatorios 50
EJERCICIO CLASE

PROBLEMA 2: Tienda de Libros


Se quiere construir una aplicación para una tienda virtual de
libros. La tienda tiene un catálogo o colección de libros que
ofrece para la venta. Los libros tienen un ISBN que los identifica
de manera única, un título y un precio con el que se venden.
Cuando un cliente llega a la tienda virtual a comprar libros,
utiliza un carrito de compras. En el carrito de compras va
adicionando los libros que quiere comprar. El cliente puede
llevar más de un ejemplar de cada libro. Al revisar la cuenta, el
cliente debe poder ver el subtotal de cada libro según la
cantidad de ejemplares que lleve de él, además del total de la
compra, que es igual a la suma de los subtotales.
Fundamentos de programación :
Tomado de libro aprendizaje activo basado en casos. Un
enfoque moderno usando Java, UML,
Objetos y Eclipse / Jorge A. Villalobos S. y
51
Rubby Casallas G.
EJERCICIO CLASE

• El usuario pueda ver el catálogo de libros disponibles en la tienda


(donde también puede adicionar libros), y una zona para manejar el
carrito de compras del cliente (donde puede comprar).
• En la imagen del ejemplo (Pantalla visualización), aparecen cinco
libros en el catálogo. Para adicionar libros a la tienda, se usa el
botón que aparece en la parte superior izquierda.
• En la zona de abajo aparece la información de los libros que el
cliente lleva en su carrito de compras. En la imagen del ejemplo, el
cliente lleva en su carrito 3 ejemplares del libro titulado "El Lenguaje
UML". El monto total de la compra es hasta el momento de
$130.500.
• Con el botón Comprar se pueden añadir libros al carrito de
compras. Se debe dar la cantidad de ejemplares y seleccionar del
catálogo uno de los libros.
• Con el botón Borrar se elimina del carrito de compras el libro que
esté seleccionado.

52
EJERCICIO CLASE

Simular la pantalla de visualización


Usando aplicación basado en
consola.

Ideal realizarlo en dos lenguajes


Diferentes
C – Java
Python - Java

53

También podría gustarte