Fundamentos
Fundamentos
Fundamentos
Ejemplos de algoritmos
Aunque es un término habitual en áreas como las matemáticas, la informática, la lógica y
demás disciplinas relacionadas, lo cierto es que en la vida cotidiana también usamos
algoritmos para solucionar cuestiones, por ejemplo
Recetas de cocina
Explican el paso a paso para crear una comida con una cantidad finita de ingredientes. El
estado inicial serían los ingredientes sin procesar y el estado final la comida preparada.
Manuales
Sirven de guía para ejecutar procesos, desde cómo armar una biblioteca hasta cómo activar
un teléfono móvil. En estos casos, el estado final es el producto armado, instalado,
encendido, en funcionamiento, etc.
Operaciones matemáticas
En matemáticas, algunos ejemplos de algoritmos son la multiplicación, en donde seguimos
una secuencia de operaciones para obtener un producto; o la división, que nos permite
determinar el cociente de dos números. El algoritmo de Euclides, con el cual sacamos el
máximo común divisor de dos enteros positivos es otro ejemplo de algoritmo.
Algoritmo en programación
En informática o programación, el algoritmo es la secuencia de instrucciones mediante la
cual podemos resolver un problema o cuestión.
Diagrama de flujo
Un diagrama de flujo es un diagrama que describe un proceso, sistema o algoritmo
informático. Se usan ampliamente en numerosos campos para documentar, estudiar,
planificar, mejorar y comunicar procesos que suelen ser complejos en diagramas claros y
fáciles de comprender. Los diagramas de flujo emplean rectángulos, óvalos, diamantes y
otras numerosas figuras para definir el tipo de paso, junto con flechas conectoras que
establecen el flujo y la secuencia. Pueden variar desde diagramas simples y dibujados a
mano hasta diagramas exhaustivos creados por computadora que describen múltiples pasos
y rutas. Si tomamos en cuenta todas las diversas figuras de los diagramas de flujo, son uno
de los diagramas más comunes del mundo, usados por personas con y sin conocimiento
técnico en una variedad de campos. Los diagramas de flujo a veces se denominan con
nombres más especializados, como "diagrama de flujo de procesos", "mapa de procesos",
"diagrama de flujo funcional", "mapa de procesos de negocios", "notación y modelado de
procesos de negocio (BPMN)" o "diagrama de flujo de procesos (PFD)". Están relacionados
con otros diagramas populares, como los diagramas de flujo de datos y los diagramas de
actividad de lenguaje unificado de modelado.
Pseudocódigo
El pseudocódigo es una forma de expresar los distintos pasos que va a realizar un programa,
de la forma más parecida a un lenguaje de programación. Su principal función es la de
representar por pasos la solución a un problema o algoritmo, de la forma más detallada
posible, utilizando un lenguaje cercano al de programación. El pseudocódigo no puede
ejecutarse en un ordenador ya que entonces dejaría de ser pseudocódigo, como su propio
nombre indica, se trata de un código falso (pseudo = falso), es un código escrito para que lo
entienda el ser humano y no la máquina.
Concepto de datos
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.
Los tipos de datos más comunes son: números enteros, números con signo (negativos),
números de coma flotante (decimales), cadenas alfanuméricas (y unicodes), estados, etc.
Códigos de representación
Para entender la manera en que las computadoras procesan datos, es importante conocer
cómo la computadora representa los datos. Las personas se comunican a través del habla
combinando palabras en oraciones. El habla humana es análoga porque utiliza señales
continuas que varían en fortaleza y calidad. Las computadoras son digitales, pues reconocen
solo dos estados: encendido (on) y apagado (off).
El sistema binario es un sistema numérico que tiene tan solo dos dígitos, 0 y 1, llamados
bits. Un bit (binary digit) es la unidad de datos más pequeña que la computadora puede
representar. Por sí solo, un bit no es muy informativo. Cuando ocho bits se agrupan como
una unidad, forman un byte. El byte es informativo porque provee suficientes
combinaciones diferentes de 0 y 1 para representar 256 caracteres individuales.
Las combinaciones de 0 y 1 que representan caracteres son definidas por
patrones llamados esquemas de códigos (coding scheme). Esquemas de códigos
populares son:
Sintaxis
Cada lenguaje de programación tiene unas reglas especiales para la construcción de
programación, a esto se le denomina sintaxis
El compilador lee el programa y comprueba que el programa sigue las reglas de sintaxis del
lenguaje de programación, el compilador traduce el código fuente de Java a un código
máquina (código objeto).
Código Objeto
Consta de instrucciones máquina e información de cómo cargar el programa en la memoria
antes de su ejecución.
Si el compilador encuentra errores, los presentará en la pantalla, una vez corregidos los
errores se vuelve a compilar sucesivamente hasta que no se produzcan más errores.
Depuración
Los programas rara vez funcionan bien la primera vez que se ejecutan, por lo que los errores
que se detectan deben ser corregidos
Al proceso de encontrar errores se denomina depuración del programa, esta tarea es de las
más difíciles en el proceso de programación.
Errores de sintaxis
Son aquellos que se producen cuando el programa viola la sintaxis, es decir, las reglas
gramaticales del lenguaje.
Errores lógicos
Son errores del programador en el diseño del algoritmo, son difíciles de encontrar y aislar,
ya que no suelen ser detectados por el compilador.
Errores de regresión
Son aquellos que son provocados cuando accidentalmente se producen al corregir un error
lógico y se produce otro en otra parte del programa.
Identificador
Es una secuencia de caracteres, letras dígitos y subrayados(_)
El primer carácter debe de ser una letra, no un subrayado
Las letras mayúsculas y minúsculas son diferentes para cada identificador
Ejemplo:
Nombre
Nombre_clase
Cantidad_Total
Palabras Reservadas
Es aquella que tiene un significado especial para el lenguaje de programación
Una palabra reservada no puede ser utilizada como identificador, objeto o función.
Operadores algorítmicos
Los operadores son símbolos que representan una acción a realizar con los números o
elementos que se encuentran antes o después.
En Matemáticas los operadores nos sirven para realizar la representación de fórmulas. En la
Programación, los operadores nos sirven como para utilizarse en fórmulas dentro de un
algoritmo además de realizar comparaciones y también para agrupar elementos. Estos
operadores pueden ser:
RELACIONALES: Son operadores que se encargan de unir y comparar dos o más valores, se
utilizan en comparaciones de parejas por los símbolos:
== : igual que
!= : diferente a
> : mayor que
< : menor que
>= : mayor igual que
<= : menor igual que
Estos operadores se usan para comparar valores de variables por pares es decir,no se
pueden comparar más de 2 valores al mismo tiempo:
a > b > c //ERROR
(a > b) && (b > c) //BIEN
El operador de asignación básico es el igual (=), el cual asigna el valor del operando derecho
al operando izquierdo. Es decir, x = y asigna el valor de y a x. El otro operador de asignación
son usualmente son abreviaciones para operaciones estándar, como se muestra en las
siguientes definiciones y ejemplos.
x=y x = y: Asignación
x += y x = x + y: Asignación de adición
x -= y x = x - y: Asignación de sustracción
x *= y x = x * y: Asignación de multiplicación
x /= y x = x / y: Asignación de división
x %= y x = x % y: Asignación de Resto
x **= y x = x ** y: Asignación de exponenciación
x <<= y x = x << y: Asignación de desplazamiento a la izquierda
x >>= y x = x >> y: Asignación de desplazamiento a la derecha
x >>>= y x = x >>> y: Asignación sin signo de desplazamiento a la derecha
x &= y x = x & y: Asignacion AND
x ^= y x = x ^ y: Asignación X OR
x |= y x = x | y: Asignación OR
La notación BNF
La notación BNF es un metalenguaje, esto se dice porque se le usa para describir otro
lenguaje, es una nomenclatura que nos permite una descripción compacta y precisa de los
constructores sintácticos usando ciertos símbolos y reglas.
También para diferenciar los elementos simbólicos incluídos en las reglas, se emplearán
distintos estilos de letra para diferenciar los siguientes elementos:
Elemento_no_terminal: son elementos que habrán de ser definidos por alguna regla, se
encuentran entre <>.
Para recordar...
Semántica
Por medio de la semántica de un lenguaje de programación podemos ver como los
programas están compuestos por un programador e interpretados por el computador.
Sintaxis
La sintaxis es la forma en que se escribe un lenguaje de programación por medio de reglas
que especifican si un programa está bien escrito o no.
Expresión
Una expresión es una combinación de constantes, variables o funciones, que es interpretada
de acuerdo con las normas particulares de un lenguaje de programación
● Compuestas.
○ Las operadores compuestos combinan una operación aritmética con una
■ ++, –
■ += , -= , *= , /=
Las sentencias como casi todas las cosas, se dividen en simples y estructuradas.
Las simples serán las que tratemos en este tema, dejando para el siguiente las
estructuradas.
Este tema debería ser de repaso, pues lo que aquí se cuenta ya se ha mencionado a lo
largo del tutorial. Pues, sentencias de asignación, expresiones y operadores seguro que ya te
suenan y que sabes lo qué son. Por otro lado, a las llamadas a procedimientos, que son otro
bloques.
Ideas de la estructura del bloque se desarrollaron en la década de los años 1950, durante el
únicamente con control de flujo. El posterior informe revisado que describe la sintaxis y la
sentencias encerrada entre begin y end..." en la que "cada declaración aparece en un bloque
El control de flujo se refiere al orden en que se ejecutan las instrucciones que tenemos en
el programa.
y hasta que el valor cumple alguna condición se dejen de ejecutar esas instrucciones.
Flujo secuencial
Se refiere a la ejecución de instrucciones una trás otra, es decir de una línea, a la siguiente
Función
Flujo alternativo
secuencial) y se salta directamente a otra aunque este en una dirección de memoria más
alejada, puede ser que se salte a otra linea incondicionalmente, es decir de manera
obligatoria, o que se haga condicionalmente que es cuando alguna expresión cumple alguna
Flujo selectivo
Se utiliza cuando para realizar algún programa se tienen diferentes casos y que los podemos
identificar con algún valor, este valor nos va a ayudar a saber si es cierto caso a que bloque
de código se debe de brincar. Es como tener un tipo directorio en el que tenemos registrado
el identificador del caso que puede ser un valor "x" con el correspondiente bloque de código
Flujo repetitivo
Por ejemplo cuando en un bloque de código se tiene una instrucción incondicional que salte
al principio de ese bloque de código diríamos que estamos teniendo un flujo repetitivo
aunque en este caso infinito, pero si en cambio tenemos nuestro bloque de código, con
alguna variable que vaya cambiando su valor y al final una instrucción condicional en la que
cumple se regrese al principio del bloque, entonces tenemos un flujo de control en el que el