ProgramaciónInfo1. Progra Conceptos
Algoritmos

Es una secuencia de pasos lógicos necesarios para llevar a cabo una tarea especifica, como la solución de un problema. Los algoritmos son independientes tanto del lenguaje de programación en que se expresan como de la computadora que los ejecuta.

Ejemplos:

  • Los pasos a seguir en la solución de una ecuación de segundo grado.
  • Los pasos matemáticos para la solución de un número factorial.
  • Las instrucciones para la liquidación de una nómina.
  • Las acciones que se deben seguir para la obtención de una estadística.

Características fundamentales que debe cumplir todo algoritmo:

  • Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.
  • Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo resultado cada vez.
  • Un algoritmo debe ser finito. Si se sigue un algoritmo, se debe terminar en algún momento; o sea debe de tener un número finito de pasos.
  • La definición de un algoritmo debe describir tres partes: Entrada, Proceso y Salida
Dato

Un dato es la representación de una variable que puede ser cuantitativa o cualitativa que indica un valor que se le asigna a las cosas y se representa a través de una secuencia de símbolos, números o letras.

Variable

Las variables son un espacio reservado en la memoria principal con la capacidad de almacenar un dato (este dato puede ser de cualquier tipo) y con la particularidad que puede variar en cualquier momento.

Las variables se utilizan para almacenar información en un programa. También pueden llamarse símbolos, etiquetas o constantes.

Una variable es el tipo de datos más básico en un lenguaje de programación. En los lenguajes de programación se pueden utilizar variables para almacenar diferentes tipos de datos como números, palabras y cadenas en la memoria del ordenador.

¿Qué son los tipos de datos y cuál debo elegir? Los tipos de datos son los diferentes tipos de datos que empleamos para almacenar información. También podemos pensar en ellos como tipos de variables que utilizamos para representar y almacenar datos. Existen tres tipos principales: escalares, agregados y estructurados.

El primero y más común es el tipo escalar, que es cualquier tipo de datos de un solo valor, como un entero o una cadena. El segundo son los tipos agregados, que son estructuras que tienen miembros con sus propios conjuntos de atributos o campos, como arrays o hashes. Y por último, están los estructurados, que pueden ser objetos agregados o escalares con atributos y campos anidados.

¿Cuándo debo utilizar los tipos de datos al escribir código? Los tipos de datos se usan cuando se escribe código en un lenguaje de programación. Esto ayuda al compilador a saber con qué tipo de datos está trabajando. También ayuda al programador a saber con qué tipo de datos está trabajando, para poder asignar valores o establecer funciones que trabajen con ese tipo de datos en particular.

Una variable es un nombre que se da a un lugar de almacenamiento de información, como un entero o un carácter.

En esta lista podrás ver algunos ejemplos para cada uno de los diferentes tipos de variables:

  • Int: Un valor entero (contiene solo números enteros)
  • Char: Un valor de caracteres (contiene letras y números)
  • Float: Un número con decimales (contiene fracciones)
  • Bool: Un valor booleano (conocido comúnmente como verdadero o falso)
Constante

Las constantes son tipos de datos que no son mutables. Como en toda declaración de tipo, es necesario asignar un valor a la constante en el momento de la declaración.

A las constantes se les debe asignar un valor cuando se declaran. La única excepción es si la constante se declara como “final”. Declarar una variable final como constante significa que no puede ser reasignada, incluso si tiene un valor inicial.

Algunos lenguajes de programación como C utilizan const para declarar constantes y permiten asignarles valores en el momento de la declaración. Esto puede hacer que el código sea más legible y eficiente de usar porque elimina la necesidad de declarar e inicializar por separado.

Operaciones Primitivas de los Datos

Son las acciones básicas que la computadora “sabe” hacer y que se ejecutan sobre los datos para darles entrada, transformarlos y darles salida convertidos en información.

Operadores Aritméticos Permiten realizar cualquier operación aritmética. Ellos son básicamente los siguientes:

OperadorAcciónEjemplo
+sumax = 6 + 3 // x vale 9
-restax = 6 - 3 // x vale 3
*multiplicaciónx = 6 * 3 // x vale 18
/divisiónx = 6 / 3 // x vale 2
%módulox = 5 % 3 // x vale 0
–decrementox = 1; x– // x vale 0
++incrementox = 1; x++ // x vale 2

Operadores Lógicos Se utilizan para combinar valores lógicos (Verdadero/Falso) y obtener nuevos valores lógicos que determinen el flujo de control de un algoritmo o programa.

OperadorSignificado
||OR lógico (ó)
&&AND lógico (ó)
!NOT lógico (no)

Operadores Relacionales Permiten relacionar y/o comparar variables o constantes dentro del algoritmo. Básicamente son los siguientes

OperadorAcción
>mayor que
<menor que
>=mayor o igual que
≤menor o igual que
==estrictamente igual que
<>diferente que
Lenguajes de Programación

Al igual que los idiomas sirven de vehículo de comunicación entre seres humanos, existen lenguajes que realizan la comunicación entre ellos y las computadoras. Estos lenguajes permiten expresar las instrucciones que el programador desea que la computadora ejecute.

Los principales tipos de lenguajes utilizados en la actualidad son tres:

  • Lenguaje máquina: Instrucciones que se dan directamente a la computadora, utilizando una serie de dígitos binarios o bits, representados por los números 0 y 1 que especifican una operación. Aunque este lenguaje es el que entiende la computadora, es muy difícil de manejar en la comunicación humana.
  • Lenguaje de bajo nivel (ensamblador): Los lenguajes de bajo nivel son más fáciles de utilizar que los lenguajes máquina, pero, al igual que ellos, dependen de la máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador (assembler lenguaje). Las instrucciones en lenguaje ensamblador son conocidas como mnemotécnicos.
  • Lenguajes de alto nivel: Son los más utilizados por los programadores. Están diseñados para que las personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y ensambladores.
    • Ejemplos:
      • Java
      • PHP
      • C++
      • .NET

Todo lenguaje de Programación debe tener compilador y un traductor.

El compilador determina los errores de la sintaxis del programa. Y el traductor realiza la tarea de traducir las instrucciones creadas en el lenguaje de programación a lenguaje máquina.

Sintaxis: estudio la forma escrita del programa.

Programa: es un conjunto de instrucciones (ordenas dadas a la computadora) que producirán la ejecución de una determinada tarea en consecuencia para la solución de un problema.

Fases para el desarrollo de un programa: 1) Definición y análisis del problema. 2) Diseño de algoritmos (DF, Pseudocódigo) 3) Codificación del programa. 4) Depuración y verificación del programa. 5) Documentación. 6) Mantenimiento.

proga_conceptos1

¿Qué es Debugging? El proceso de debugging o depuración, es cuando un programa se ejecuta paso a paso, verificando qué elementos pueden representar un problema, lo que le permite al programador reconocer en qué parte del código existe un error.

¿Qué es POO? Consiste en la creación de objetos que interactúan entre sí para realizar operaciones y resolver problemas. En la POO se modela el mundo real a través de la definición de objetos, los cuales poseen propiedades (atributos) y comportamientos (métodos).

¿Qué es una clase? Como en cualquier lenguaje orientado a objetos, las clases en Java sirven para definir el estado de datos complejos y su respectivo comportamiento. Son la plantilla que posteriormente nos permitirá declarar objetos.

¿Qué es un objeto? La clase sirve de plantilla para poder definir datos con un estado y un comportamiento concretos. Los datos con esta estructura son los objetos. La clase Java no ocupa memoria, es simplemente la definición. Sin embargo, el objeto si, puesto que es el que tendrá la información con la estructura descrita en la clase.

¿Qué es la abstracción? Consiste en representar una entidad compleja mediante sus características más relevantes y ocultando los detalles innecesarios. Es como si creáramos una versión simplificada de algo, manteniendo solo lo que necesitamos para interactuar con él.

Ventajas:

  • Simplificación del código: al ocultar los detalles innecesarios, podemos trabajar con objetos de manera más simple y clara.
  • Reutilización de código: podemos utilizarla en múltiples partes de nuestro programa, evitando duplicar código y ahorrando tiempo y esfuerzo.
  • Facilita el mantenimiento: si necesitamos realizar cambios en la implementación interna de un objeto, solo tenemos que actualizar la abstracción correspondiente, sin afectar otras partes del programa que interactúan con él.
  • Mayor modularidad: nos permite dividir nuestro código en componentes más pequeños y manejables, lo cual facilita la colaboración y el mantenimiento a largo plazo.

¿Qué es la herencia? Permite a un objeto heredar propiedades y comportamientos de otro objeto. En términos simples, la herencia es una relación entre dos objetos en la que uno de los objetos es una versión especializada del otro objeto.

¿Qué es encapsulamiento? Es la capacidad de ocultar el estado interno de un objeto y restringir el acceso a sus propiedades y métodos. De esta manera, el encapsulamiento evita que otros objetos accedan directamente a los datos internos y los modifiquen de manera inapropiada, lo que podría causar errores y problemas en el programa.

**Beneficios: **

  • **Protección de datos: **Al encapsular los datos, podemos aplicar mecanismos de control de acceso a los datos y aseguran su integridad.
  • Modularidad y mantenibilidad: Promueve la modularidad del código al agrupar datos y funciones relacionadas en una sola unidad.
  • **Abstracción y ocultamiento de detalles: **Al ocultar los detalles internos de un objeto, los usuarios solo necesitan conocer cómo interactuar con el objeto, sin preocuparse por su implementación interna.

¿Qué es polimorfismo? Permite que los objetos de diferentes clases respondan a un mismo mensaje de diferentes maneras. Esto significa que el mismo método puede tener diferentes comportamientos según la clase del objeto que lo recibe.

Tipos:

  • Polimorfismo de sobrecarga: La sobrecarga de métodos es una técnica que permite que una clase tenga varios métodos con el mismo nombre, pero con diferentes parámetros.
  • Polimorfismo de sobreescritura: La sobreescritura de métodos es una técnica que permite que una subclase redefina un método de su superclase. Esto significa que el método de la subclase reemplaza al método de la superclase y se ejecuta en su lugar cuando se llama al método.

¿Qué es un método? Es un bloque de código que realiza alguna operación.

Un método o función puede definir opcionalmente parámetros de entrada que permiten a los llamadores pasar argumentos a la función. Una función también puede devolver un valor como salida.

¿Qué es un constructor? Es un elemento de una clase cuyo identificador coincide con el de la clase correspondiente y que tiene por objetivo obligar a y controlar cómo se inicializa una instancia de una determinada clase.

Sobrecarga de un constructor: permite que puedan declararse varios constructores (con el mismo identificador que el de la clase), siempre y cuando tengan un tipo y/o número de parámetros distinto.

Public, protected o private Cuando estamos definiendo una clase en un lenguaje de programación orientado a objetos, las variables y los métodos pueden estar en uno de los siguientes niveles de acceso:

  • private
  • protected
  • public
  • default (depende del lenguaje)

Estas palabras reservadas nos indican el nivel de visibilidad de cada una de las partes dónde lo declaramos.

¿Qué es private? Una clase, función o variable que este indicada como private indica que sólo está accesible a los métodos de la misma clase en la que la variable o método se ha declarado.

¿Qué es protected?

  • Una clase, variable o método indicado con el modificador protected es accesible desde los métodos definidos en las clases que pertenecen al mismo paquete, al igual que hemos visto con private.
  • Pero, además es accesible desde cualquier función de cualquier subclase, es decir, de las clases que heredan donde se han definido.
  • El acceso protegido es apropiado para una subclase de la clase, pero no para una clase sin relación.

¿Qué es public?

  • Cuando declaramos como public, se puede acceder de manera universal a las clases, variables y métodos que hemos creado.
  • Al poner esta palabra reservada, estamos diciendo que siempre se podrá acceder desde cualquier lugar del código, ya que es el nivel más permisivo de todos.

¿Qué es default?

  • Una variable o un método es por defecto (default) si no tienen ninguno de los modificadores que hemos visto anteriormente.
  • Esto permite acceso desde cualquier método que pertenece a las clases que sean miembros del mismo paquete donde se ubica la variable, función o clase.
  • Estos paquetes se llaman package-friendly o packageprivate.

Herencia El diagrama de clases La clase persona es una clase “normal” definida tal y como lo venimos haciendo habitualmente, mientras que la clase Profesor es una subclase de Persona.

Los objetos de la subclase van a tener campos nombre, apellidos y edad (heredados de Persona) y un campo específico IdProfesor. El constructor de una subclase ha de llevar obligatoriamente como parámetros al menos los mismos parámetros que el constructor de la superclase.

El constructor de la subclase invoca al constructor de la superclase. Para ello se incluye, obligatoriamente, la palabra clave super como primera línea del constructor de la subclase. La palabra super irá seguida de paréntesis dentro de los cuales pondremos los parámetros que requiera el constructor de la superclase al que queramos invocar. En este caso solo teníamos un constructor de superclase que requería tres parámetros.

API

¿Qué es una API?

  • Una API (application programming interface) es un conjunto de funciones y procedimientos (métodos) que se usan para diseñar e integrar el software de diferentes aplicaciones.
  • Permiten que varias aplicaciones se puedan comunicar entre sí, por más que estén desarrolladas en lenguajes de programación completamente distintos.

¿Qué significa REST?

  • La forma más común de implementación de una API es mediante REST (Representational State Transfer).
  • REST es un tipo de servicio que se caracteriza por no tener estado alguno y por lograr interconexiones mediante el protocolo HTTP con mensaje de tipo XML o JSON.
proga_conceptos2
Built with LogoFlowershow