Computing">
TLYA - Marcelo
TLYA - Marcelo
TLYA - Marcelo
con ambas partes (cuatro en total). uno teórico, uno práctico → Capaz distinto día.
Ambos parciales tiene que estar aprobados
Lunes: Parte práctica por lo general virtual sincrónica. Jueves: parte teórica.
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Un Objeto es la entidad que maneja Una clase es un template. Define Con la clase se pueden crear
un conjunto de datos e instrucciones de manera genérica cómo van a serinstancias de un objeto, cada uno
para poder manejar y comunicar los objetos de un determinado tipo.
de ellos con sus atributos
esos datos: elemento que está vivo Por ejemplo, una clase para definidos de forma independiente.
dentro de la aplicación. Los objetos representar a animales puede Con esto podríamos crear un gato
se construyen en base a un template llamarse ‘animal’ y tener una serie
llamado Paco, con 3 años de edad,
/ plano que se arman en base a las de atributos, como ‘nombre’ o y otro animal, este tipo perro y
clases. Un ejemplo sencillo de un ‘edad’ (que normalmente son llamado Pancho, con una edad de
objeto, como decíamos antes, podría propiedades), y una serie con los4 años. Los dos están definidos
ser un animal. Un animal tiene una comportamientos que estos pueden por la clase animal, pero son dos
edad, por lo que creamos un nuevo tener, como caminar o comer, y que
instancias distintas. Por lo tanto,
atributo de ‘edad’ y, además, puede a su vez se implementan como llamar a sus métodos puede tener
envejecer, por lo que definimos un métodos de la clase (funciones). Se
resultados diferentes. Los dos
nuevo método. Datos y lógica. Esto define en el código escrito. comparten la lógica, pero cada
es lo que se define en muchos La clase no ocupa espacio de uno tiene su estado de forma
programas como la definición de una memoria, sino que es un plano de independiente.
clase, que es la definición global y cómo se debe construir el objeto.
genérica de muchos objetos.Cuando
Buscamos reutilizar las clases en
ponemos el objeto vivo, ahí ocupará
una aplicación, o varias.
un espacio de memoria
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Datos privados: acceder a los datos a través de los métodos. Creamos un método
(kioskero) que responda cuando se pregunte, por ejemplo, “ cuántos caramelos hay” , por lo
que encapsulamos el conocimiento para que no haya libre interpretación. Esta propiedad
permite asegurar que la información de un objeto esté oculta para el mundo exterior,
agrupando en una Clase las características o atributos que cuentan con un acceso privado, y
los comportamientos o métodos que presentan un acceso público. La encapsulación de
cada objeto es responsable de su propia información y de su propio estado. La única forma
en la que este se puede modificar es mediante los propios métodos del objeto. Por lo tanto,
los atributos internos de un objeto deberían ser inaccesibles desde fuera, pudiéndose
modificar sólo llamando a las funciones correspondientes.
Ej: un coche comparte información pública a través de las luces de freno o intermitentes
para indicar los giros (interfaz pública). Por el contrario, tenemos la interfaz interna, que
sería el mecanismo propulsor del coche, que está oculto bajo el capó. Cuando se conduce
un automóvil es necesario indicar a otros conductores tus movimientos, pero no exponer
datos privados sobre el tipo de carburante o la temperatura del motor, ya que son muchos
datos, lo que confundiría al resto de conductores.
Si estos datos, yo los ubico en la clase, la clase sería mi policía de los datos. Lo que permite
que se cree la lógica de negocios.
Datos públicos: Dentro del alcance de la instancia de ese objeto que puedo utilizarlos como
si fueran variables sin ningún tipo de control. Dejamos que cualquiera pueda observar
cuántos caramelos hay, sacar, poner, cambiar.
Clase 2
Características del IDE: Entorno de desarrollo integrado. Ej. Visual Studio
● Nos permite trabajar con repositorios de código —> Podemos realizarlo de manera
colaborativa.
● Nos permite trabajar de manera más ordenada.
Características del código .NET
➔ Hacer que las aplicaciones se ejecuten aislado de un sistema en un entorno
controlado.
➔ Tiene múltiples lenguajes: C# (es con el que
vamos a trabajar). Para luego compilarlo con las
normas . NET.
➔ Está pensado para hacer aplicaciones
corporativas.
➔ Nos permite trabajar con el patrón MVC (Modelo,
Vista y Controlador). Es un patrón en el diseño de
software comúnmente utilizado para implementar
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
namespace PruebaConsola
{
static void main (String [] args)
internal class Program
{
Console. //Clase. Writeline(“Hola Mundo!”) ;
Console. //Clase). .ReadKey() ; //espera una tecla
Console.Writeline(“Hola Mundo!”) ;
Console.ReadKey( ) ; //espera una tecla
Hay un break POINT: Nos permite detener el código en un punto particular. Para poder ver
dónde falló.
——————
● Variable por valor: se genera una copia cuando se ejecuta un programa. Es una
copia en el espacio de memoria. Si el valor cambia no afecta a la variable original,
solo modifica en la función.
● Variable por referencia: dirección de espacio de memoria. La variable que se recibe
como parámetro en la función apunta exactamente a la misma dirección de memoria
que la variable original por lo que si dentro de la función se modifica su valor,
también se modifica su valor original.
+
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Array ejemplo
RDO
JUAN : 9 8 4
ANA: 9 5
Errores de programación:
● No complia
● Compila pero el programa no hace lo que espero
Depuración/debugging: depuramos cuando vemos línea por línea que es lo que está
haciendo el programa.
1. Eliminación de causas
2. Back traicing: ver el código de atrás para adelante para ver donde falla - prueba de
escritorio
3. Fuerza bruta: seguir la ejecución del código para ver su camino.
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Ejemplo parcial:
● Tipos de alcance de variable y método: si es pública, privada. Cuál es el alcance de
las variables, de los tipos de datos.
● Componentes dentro de un objeto
● Tipos de datos.
● Distintas capas de validación: Primera etapa por tipo de datos, segunda etapa de
regla de negocios, tercera capa de integridad diferencial.
● Depurar para entender qué está pasando en el código.
● SEGURAMENTE SEA UN CHOICE
Algoritmo: Nos permite resolver un problema a través de una serie de pasos precisos.Cada
paso tiene un orden de realización. Es un proceso definido si se sigue dos veces, obtiene el
mismo resultado cada vez dados los mismos ingresos. Es finito (número finito de pasos).
Problemáticas habituales:
A. Búsqueda secuencial → buscar en una lista de elementos. Por ejemplo, el registro
de un alumno. 1- validar por tipo de dato. 2 - tipo de negocio ( ej registro no puede
ser menor a mil) 3- bool referencial.
B. Colas → Poder ir agregando los elementos a una cola.
C. Pilas → Tipo de colas. Último que entra, último que sale.
D. Ordenamiento por burbujeo → Ordenar los elementos con los que estamos
trabajando. Es un ordenamiento puntual. Por ejemplo, si tengo una secuencia del 1
al 10 y busco al 7, preguntaré número por número si es un 7 hasta llegar allí( 1: es
un 7? no, sigo. 2. ¿Es un 7? no, sigo). Otra manera, puede ser particionando la
búsqueda por ej al 5. No va a tomar diferentes tipos de búsqueda.
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Herramientas de programación
1. Representación gráfica
2. Pseudocódigo: abstraernos del lenguaje de programación en particular, pero utilizando
un código que es legible y comprensible a simple vista para el usuario
= Modelo de lo que nos pidieron que hagamos: para ver hacia donde vamos.Ej prototipo.
Diagrama de flujo
➔ Siempre y cuando el proceso sea lineal
➔ Cada forma indica información distinta
Ejemplo integrador.
Pseudocódigo
Tablas de verdad
V V V N/A
V V F N/A
V F V NO
V F F SI
F V V NO
F V F SI
F F V N/A
F F F NO
namespace: permite clasificar y ordenar lo que estamos desarrollando, permite armar una
jerarquía.
Dentro de namespace está la clase, y puede haber múltiples clases. Puede haber dentro de
un namespace, varias clases.
Teoría de los Lenguajes y los Algoritmos Marcelo Esteban Blanco
Cuál es la diferencia entre clases y objetos. Los objetos son las instancias de las clases. Las
clases se asocian a sustantivos.
Funciones, la función puede o no retornar una valor. Lo que nos importa es si es void o si
retorna un tipo de dato. Lineas de codigo que devuelve una línea específica.
Metodos: Se asocian a verbos, acciones.