0% encontró este documento útil (0 votos)
119 vistas29 páginas

ALGORITMO

El documento describe los algoritmos, definiéndolos como un conjunto ordenado de operaciones para resolver un problema. Explica que los algoritmos se usan en la vida cotidiana de forma inconsciente para actividades como hacer una llamada telefónica. También señala que los algoritmos se pueden representar a través de pseudocódigo o diagramas de flujo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
119 vistas29 páginas

ALGORITMO

El documento describe los algoritmos, definiéndolos como un conjunto ordenado de operaciones para resolver un problema. Explica que los algoritmos se usan en la vida cotidiana de forma inconsciente para actividades como hacer una llamada telefónica. También señala que los algoritmos se pueden representar a través de pseudocódigo o diagramas de flujo.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 29

REPUBLICA BOLIVARIANA DE VENEZUELA

MINISTERIO DEL PODER POPULAR PARA LA EDUCACION UNIVERSITARIA


UNIVERSIDAD POLITECNICA TERRITORIAL DE CARACAS "MARISCAL SUCRE"
DISTRITO CAPITAL – CARACAS
PNF: INGENERIA EN INFORMATICA
CATEDRA: ALGORITMO Y PROGRAMACION
TRAYECTO I
SECCION: INTENSIVO

INVESTIGACION

Tutor Académico: Autor:


ING. Ruperto E Mora Pérez. Blanco Ramón
C.I: 13.747.338.

Caracas, 2021
ALGORITMO
LA VIDA COTIDIANA
Hay muchas cosas que queremos llegar saber y aprender en nuestras vidas como también
hay otras que a veces nos preguntamos si realmente nos servirán de algo.

Pero es que a veces no nos fijamos que un conocimiento vasto es algo muy bueno y
conveniente. Con esto se quiere llegar al siguiente punto: “Los algoritmos”. Y es que todo
lo que aprendemos en esta vida vale para algo, como también puede cumplir una función
especial en esta. Tan claro como lo es enseñar las matemáticas que lo están en todo,
también ocurre lo mismo con los algoritmos, estos están en todo lo que hacemos.
Primero vamos a dejar en claro ¿qué es un algoritmo? Pues la RAE lo define como el
“conjunto ordenado y finito de operaciones que permita hallar la solución de un
problema”. Esto nos quiere decir que podemos presentar un problema y que nosotros al
buscar una solución, este lo realizaremos en varias operaciones agrupadas de forma
ordenada y que esto lleve a una conclusión, o sea, tenga un número delimitado de
operaciones.

Un algoritmo (del griego y latín, dixit algorithmus y éste del griego arithmos que significa
número, quizás también etimológicamente su influencia puede tener origen árabe,
proveniente del matemático Persa Al-Juarismi) es un término que tanto en la ciencia de la
computación, la física y la matemática un conjunto de prescripto de instrucciones o reglas
bien definidas, ordenadas y finitas que permiten llevar a cabo una actividad mediante
pasos sucesivos que no generen dudas a quien deba hacer dicha actividad. Dados un
estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se
obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas, en
términos de programación, un algoritmo es una secuencia de pasos lógicos que permiten
solucionar un problema.
Ahora la cuestión es, ¿cómo esto nos puede ayudar en nuestra vida diaria? Tan sencillo
como el hecho de saber que todos tenemos problemas y que tengamos bien sabido que
estos pueden llegar a tener una o varias formas de solucionarlos, es ahí donde los
algoritmos aparecen. Estos buscaran de forma clara las operaciones que mejor lo
representen, y que mejor forma de hacerlo que por pasos. De esta manera se puede dejar
detallada la solución al problema.
Los algoritmos se pueden representar de dos formas:
PSEUDOCÓDIGO: “se escriben las instrucciones o pasos del algoritmo en lenguaje
natural”. DIAGRAMA DE FLUJO: “Es la representación gráfica del Pseudocódigo”.

Este es un ejemplo de cómo se puede representar el algoritmo de una actividad cotidiana


como lo es realizar una llamada de teléfono.
Ahora comprenden la realidad de que todo lo que hacemos es un conjunto de cosas que
hacemos, en un orden definido y que este posee un fin.
Solo vea este otro planteamiento: El auto no funciona, considera lo más importante de
un algoritmo más detallado, el uso de condicionales.
Ya que todo tiene su razón de porque ocurre y nosotros probamos con diferentes
soluciones hasta dar con la condición o condiciones que puedan dar con el fin deseado. Es
por ello que cuando intentamos algo puede ser “sí” o “no” la respuesta a nuestro dilema.
Los algoritmos están en todo, nuestra vida cotidiana es un algoritmo que nosotros vamos
definiendo y, necesariamente, mejorando con cada día que vivimos.
En el árabe es donde podemos encontrar el origen etimológico del término algoritmo que
ahora vamos a analizar en profundidad. Más exactamente se halla en el nombre del
matemático Al-Khwarizmi, que nació en la Edad Media en una de las zonas de lo que hoy
se conoce como Uzbiekistán, en Asia central.
En Bagdad fue donde este desarrolló gran parte de su carrera y es que hasta allí se
trasladó para, por orden del califa, crear un centro superior de investigaciones científicas
que se dio en llamar Casa de la Sabiduría. Diversos tratados de álgebra o astronomía
fueron algunos de los trabajos que realizó dicho sabio que también ha dado lugar a la
creación de otra serie de términos científicos tales como álgebra o guarismo.
Tal fue la importancia que tuvo dicho personaje histórico que actualmente está
considerado no sólo como el padre del álgebra sino también como quien se encargó de
introducir nuestro sistema de numeración.
Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica y
ordenada que permite solucionar un determinado problema. Se trata de una serie de
instrucciones o reglas establecidas, y que por medio de una sucesión de pasos, permiten
arribar a un resultado o solución.
Según los expertos en matemática, los algoritmos permiten trabajar a partir de un estado
básico o inicial y, tras seguir los pasos propuestos, llegar a una solución. Cabe resaltar que,
si bien los algoritmos suelen estar asociados al ámbito matemático (ya que permiten, por
citar casos concretos, averiguar el cociente entre un par de dígitos o determinar cuál es el
máximo común divisor entre dos cifras pertenecientes al grupo de los enteros), aunque no
siempre implican la presencia de números.
Además de todo lo expuesto, en el ámbito matemático, y cuando estamos decididos a
llevar a cabo la descripción de uno de esos algoritmos hay que tener en cuenta que se
puede efectuar mediante tres niveles. Así, en primer lugar, nos encontramos con el de alto
nivel, lo que es la descripción formal y finalmente la tarea de implementación.
Asimismo, tampoco podemos pasar por alto que los algoritmos se pueden expresar a
través de lenguajes de programación, pseudocódigo, el lenguaje natural y también a
través de los conocidos como diagramas de flujo.
Un manual de instrucciones para el funcionamiento de un electrodoméstico y una serie de
órdenes del jefe a un empleado para desarrollar una cierta tarea también pueden incluir
algoritmos.
Esta amplitud de significado permite apreciar que no existe una definición formal y única
de algoritmo. El término suele ser señalado como el número fijo de pasos necesarios para
transformar información de entrada (un problema) en una salida (su solución). De todas
formas, algunos algoritmos carecen de final o no resuelven un problema en particular.
Existen ciertas propiedades que alcanzan a todos los algoritmos, con excepción de los
denominados algoritmos paralelos: el tiempo secuencial (los algoritmos funcionan paso a
paso), el estado abstracto (cada algoritmo es independiente de su implementación) y
la exploración acotada (la transición entre estados queda determinada por una
descripción finita y fija).
Cabe mencionar por último que los algoritmos son muy importantes en la informática ya
que permiten representar datos como secuencias de bits. Un programa es un algoritmo
que indica a la computadora qué pasos específicos debe seguir para desarrollar una tarea.
En general, la parte común en todas las definiciones se puede resumir en las siguientes
tres propiedades siempre y cuando no consideremos algoritmos paralelos: 
Tiempo secuencial. Un algoritmo funciona en tiempo discretizado –paso a paso–,
definiendo así una secuencia de estados computacionales por cada entrada válida (la
entrada son los datos que se le suministran al algoritmo antes de comenzar).
Estado abstracto. Cada estado computacional puede ser descrito formalmente utilizando
una estructura de primer orden y cada algoritmo es independiente de su implementación
(los algoritmos son objetos abstractos) de manera que en un algoritmo las estructuras de
primer orden son invariantes bajo isomorfismo.

 Exploración acotada. La transición de un estado al siguiente queda completamente


determinada por una descripción fija y finita; es decir, entre cada estado y el
siguiente solamente se puede tomar en cuenta una cantidad fija y limitada de
términos del estado actual. 
Tampoco hay que dejar pasar por alto que los algoritmos se pueden expresar a través de
lenguajes de programación, pseudocódigo, el lenguaje natural y también a través de los
conocidos diagramas de flujo, además cabe mencionar que los algoritmos son muy
importantes en la informática ya que permiten representar datos como secuencias de bits.
Un programa es un algoritmo que indica a la computadora que pasos específicos debe
seguir para desarrollar una tarea. 
Porque, aunque los algoritmos existen por lo menos desde los tiempos de los babilonios,
con la llegada de los ordenadores tomaron mucho más protagonismo. La unión de
máquinas y algoritmos es lo que está cambiando el mundo. El matemático británico Alan
Turing, famoso por haber reventado la máquina Enigma de mensajes cifrados de los nazis
y por haberse suicidado mordiendo una manzana envenenada tras sufrir una dura
persecución debido a su condición homosexual, fue de los primeros que relacionó
algoritmo y ordenadores. De hecho, fue de los primeros que imaginó un ordenador tal y
como los conocemos. Incluso llegó a pensar que las máquinas podrían pensar, y hasta
escribir poemas de amor. 
La Máquina de Turing no es una máquina que exista en el mundo físico, sino un constructo
mental. Consiste en una cinta infinita sobre la que se van haciendo operaciones repetitivas
hasta dar soluciones, viene a ser una definición informática del algoritmo y un ordenador,
el primero, conceptualizado: “En esencia, es el precursor de los ordenadores: tiene una
memoria, unas instrucciones (un programa), unas operaciones elementales, una entrada
y una salida”, explica el profesor Peña. Lo más interesante es que es una máquina
universal, que puede llevar a cabo cualquier programa que se le ordene. Dentro de los
problemas del mundo hay de dos tipos: los que puede resolver una Máquina de Turing
(llamados computables) y los que no (los no computables), igual que vemos en el mundo
real tareas que pueden realizar las máquinas (cada vez más) y otras que solo pueden
realizar los humanos. Todos los ordenadores, tablets, smartphones, etc., que conocemos
son máquinas de Turing. 
En definitiva, el trabajo de los programadores informáticos consiste en traducir los
problemas del mundo a un lenguaje que una máquina pueda entender. Es decir, en
algoritmos que la máquina maneje: para ello hay que picar realidad en pequeños
problemas en sucesión y poner a la computadora a la tarea. Un programa de ordenador es
un algoritmo escrito en un lenguaje de programación que al final acaba convertido en
miles de sencillas operaciones que se realizan con corrientes eléctricas en el procesador,
corrientes representadas por los famosos unos y ceros, los dígitos que caracterizan lo
digital. Cuando jugamos a un videojuego en tres dimensiones, o miramos Facebook, o
utilizamos un procesador de textos, en realidad la máquina está realizando numerosas
operaciones con pequeñas corrientes eléctricas, sin saber que de todo eso sale Lara Croft
con dos pistolas. La clave es que son muchas operaciones a la vez: un ordenador de 4
gigahertzios puede hacer 4.000 millones de operaciones en solo un segundo. En esencia,
esto son los algoritmos y esto es la informática. 
A pesar de la longevidad de los algoritmos, y de la ya madurez de las computadoras, la
palabra algoritmo se ha puesto de moda en los últimos años. ¿A qué se debe? “Los
ordenadores pueden calcular mucho más rápido que un cerebro humano y desde la
aparición de internet hay un salto y se están llegando a cosas que parecían imposibles”,
dice Miguel Toro. Por ejemplo, en disciplinas en plena ebullición como el big data o la
inteligencia artificial. 
“Los algoritmos se usan para predecir resultados electorales, conocer nuestros gustos y el
mundo del trabajo se va algoritmizando: las diferentes tareas se convierten en algoritmos
y se automatiza el trabajo”, explica el catedrático. Las únicas tareas no algoritmizables,
por el momento, son las relacionadas con la creatividad y las emociones humanas, esa es
nuestra ventaja. Aunque se suele argumentar que la Revolución Tecnológica creará
nuevos puestos de trabajo, Toro cree que nunca serán tantos como los empleos
destruidos y que se concentrarán en personas y países con la suficiente preparación. “Por
eso una idea que parecía propia de la izquierda, como la renta básica universal, está
siendo propuesta hasta por Bill Gates y experimentada en lugares como California o
Finlandia. Es necesario que haya consumidores para que el sistema económico no
colapse”.
Un dato más que primordial describir, es sobre los 5 algoritmos que ya están tomando
decisiones sobre la vida de los seres humanos y que muy poco y nada se sabe: 

 La inteligencia artificial es la que decide si vas a tener trabajo o no : Las hojas de


vida o currículums ahora son más propensos a ser descartados sin siquiera pasar
por las manos y la vista de un ser humano.
 Si se quiere pedir un préstamo, el perfil de uno mismo en las redes puede
impedirlo: la capacidad de pagar un crédito ahora es evaluada por algoritmos que
acumulan datos de distintas fuentes, que van desde patrones de compra hasta
búsquedas en internet y actividad en redes sociales.

 Te puede ayudar a encontrar el amor de tu vida, quizás no el que estabas


esperando: especialmente después de que eHarmony, uno de los sitios de citas
más exitosos del planeta, revelara el año pasado que ajustaba los perfiles de
algunos clientes con la idea de volverlos más simpáticos y atractivos.

 Un programa puede determinar si eres un adicto o puedes tener un seguro


médico: Más recientemente, en el estado de Tennessee, el proveedor de seguro
médico Blue Cross y la firma tecnológica Fuzzy Logix anunciaron la creación de un
algoritmo que analizaba nada menos que 742 variables para evaluar el riesgo de
abuso e identificar posibles adictos. 
Y, por último, uno de los más interesantes para un estudio exhaustivo, un computador
puede enviarte a prisión: jueces en al menos 10 estados de EE.UU. están dictando
sentencia con la ayuda de una herramienta llamada COMPAS. Es un algoritmo de
evaluación de riesgos que puede predecir las probabilidades de que un individuo haya
cometido un crimen. Uno de los casos más famosos que involucra el uso de COMPAS
ocurrió en 2013, cuando Eric Loomis fue sentenciado a siete años de prisión por eludir el
control policial y manejar un vehículo sin el consentimiento de su dueño. 
Políticas públicas, gestión de la información, relaciones interpersonales: en los distintos
senderos posibles por los que evolucione la vida social de los algoritmos se juega buena
parte del futuro de nuestra existencia colectiva y por ello hay quienes ya están analizando
como los algoritmos cambiaran nuestro futuro y que impacto tendrán en el mundo en que
vivimos. -
 - Dr. Mario Ramón Duarte, abogado, Juez adm. Mun. Faltas – sauce (ctes.) Argentina.
Especialista derecho faltas y contravencional.  Miembro dossier geopolitico/cees.
Especialista ciberseguridad/ciberdefensa.
ALGORITMO Y PROGRAMAS
ALGORITMO

Se denomina algoritmo a un grupo finito de operaciones organizadas de manera lógica


y ordenada que permite solucionar un determinado problema. Se trata de una serie
de instrucciones o reglas establecidas que, por medio de una sucesión de pasos, permiten
arribar a un resultado o solución. Los algoritmos son el objeto de estudio de la algoritmia.
En la vida cotidiana, se emplean algoritmos frecuentemente para resolver problemas.
Algunos ejemplos son los manuales de usuario, que muestran algoritmos para usar un
aparato, o las instrucciones que recibe un trabajador por parte de su patrón. Algunos
ejemplos en matemática son el algoritmo de multiplicación, para calcular el producto, el
algoritmo de la división para calcular el cociente de dos números, el algoritmo de Euclides
para obtener el máximo común divisor de dos enteros positivos, o el método de Gauss
para resolver un sistema de ecuaciones lineales.
Los algoritmos pueden ser expresados de muchas maneras, incluyendo el lenguaje
natural, pseudocódigo, diagramas de flujo y lenguajes de programación, entre otros. Las
descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo
y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones
son formas más estructuradas para representar algoritmos; no obstante, los algoritmos
son independientes de los lenguajes de programación. En cada problema el algoritmo
puede escribirse y luego ejecutarse en un lenguaje de diferente programación. El
algoritmo es la infraestructura de cualquier solución, escrita luego en cualquier lenguaje
de programación.
Los algoritmos se pueden clasificar en cuatro tipos:
 Algoritmo computacional: Es un algoritmo que puede ser ejecutado en una
computadora.
Ejemplo: Fórmula aplicada para un cálculo de la raíz cuadrada de un valor x.
 Algoritmo no computacional: Es un algoritmo que no requiere de una
computadora para ser ejecutado.
Ejemplo: Instalación de un equipo de sonido.
 Algoritmo cualitativo: Un algoritmo es cualitativo cuando en sus pasos o
instrucciones no están involucrados cálculos numéricos.
Ejemplos: Las instrucciones para desarrollar una actividad física, encontrar un
tesoro.
 Algoritmo cuantitativo: Un algoritmo es cuantitativo cuando en sus pasos o
instrucciones involucran cálculos numéricos.
Ejemplo: Solución de una ecuación de segundo grado.

PROGRAMAS

Un programa informático o programa de computadora es una secuencia de instrucciones,


escritas para realizar una tarea específica en una computadora. Este dispositivo requiere
programas para funcionar, por lo general, ejecutando las instrucciones del programa en
un procesador central. El programa tiene un formato ejecutable que la computadora
puede utilizar directamente para ejecutar las instrucciones. El mismo programa en su
formato de código fuente legible para humanos, del cual se derivan los programas
ejecutables (por ejemplo, compilados), le permite a un programador estudiar y desarrollar
sus algoritmos. Una colección de programas de computadora y datos relacionados se
conoce como software.
Generalmente, el código fuente lo escriben profesionales conocidos como programadores
de computadora. Este código se escribe en un lenguaje de programación que sigue uno de
los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente puede ser
convertido en un archivo ejecutable (usualmente llamado un programa ejecutable o un
binario) por un compilador y más tarde ejecutado por una unidad central de
procesamiento. Por otra parte, los programas de computadora se pueden ejecutar con la
ayuda de un intérprete, o pueden ser empotrados directamente en hardware.
De acuerdo a sus funciones, los programas informáticos se clasifican en software de
sistema y software de aplicación, al hecho de alternar la ejecución simultánea de varios
programas se le conoce como multitarea.

LENGUAJE ALGORITMO Y DE PROGRAMAS

LENGUAJE ALGORÍTMICO
Es una serie de símbolos y reglas que se utilizan para describir de manera explícita un
proceso. Teniendo en cuenta la forma en que describen el proceso, existen dos tipos de
lenguajes algorítmicos:
Es la representación gráfica de las operaciones que realiza un algoritmo
(diagrama de flujo).
Representa en forma descriptiva las operaciones que debe realizar un algoritmo
(pseudocódigo).
LENGUAJE PROGRAMACION

Es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por
máquinas como las computadoras.

Pueden usarse para crear programas que controlen el comportamiento físico y lógico de
una máquina, para expresar algoritmos con precisión, o como modo de comunicación
humana.

Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su
estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código
fuente de un programa informático se le llama programación.

También la palabra programación se define como el proceso de creación de un programa


de computadora, mediante la aplicación de procedimientos lógicos, a través de los
siguientes pasos:

 El desarrollo lógico del programa para resolver un problema en particular.


 Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
 Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
 Prueba y depuración del programa.
 Desarrollo de la documentación.

ELEMENTOS DE LOS LENGUAJES DE PROGRAMACIÓN

VARIABLES Y VECTORES

Las variables son títulos asignados a espacios en memoria para almacenar datos
específicos. Son contenedores de datos y por ello se diferencian según el tipo de dato que
son capaces de almacenar. En la mayoría de lenguajes de programación se requiere
especificar un tipo de variable concreto para guardar un dato específico. Por ejemplo, en
Java, si deseamos guardar una cadena de texto debemos especificar que la variable es del
tipo String. Por otra parte, en lenguajes como PHP este tipo de especificación de variables
no es necesario. Además, existen variables compuestas llamadas vectores. Un vector no es
más que un conjunto de bytes consecutivas en memoria y del mismo tipo guardadas
dentro de una variable contenedor. A continuación, un listado

Tipo de dato Breve descripción


Char Estas variables contienen un único carácter, es decir, una letra, un signo
o un número.
Int Contienen un número entero.
Float Contienen un número decimal.
String Contienen cadenas de texto, o lo que es lo mismo, es un vector con
varias variables del tipo Char.
Boolean Solo pueden contener un cero o un uno.

En el caso de variables booleanas, el cero es considerado para muchos lenguajes como el


literal falso ("False"), mientras que el uno se considera verdadero ("True").

CONDICIONALES

Las sentencias condicionales son estructuras de código que indican que, para que cierta
parte del programa se ejecute, deben cumplirse ciertas premisas; por ejemplo: que dos
valores sean iguales, que un valor exista, que un valor sea mayor que otro... Estos
condicionantes por lo general solo se ejecutan una vez a lo largo del programa. Los
condicionantes más conocidos y empleados en programación son:

 If: Indica una condición para que se ejecute una parte del programa.
 Else if: Siempre va precedido de un "If" e indica una condición para que se ejecute
una parte del programa siempre que no cumpla la condición del if previo y si se
cumpla con la que el "else if" especifique.
 Else: Siempre precedido de "If" y en ocasiones de "Else If". Indica que debe
ejecutarse cuando no se cumplan las condiciones previas.

BUCLES

Los bucles son parientes cercanos de los condicionantes, pero ejecutan constantemente
un código mientras se cumpla una determinada condición. Los más frecuentes son:

 For: Ejecuta un código mientras una variable se encuentre entre 2 determinados


parámetros.
 While: Ejecuta un código mientras que se cumpla la condición que solicita.

Hay que decir que a pesar de que existan distintos tipos de bucles, todos son capaces de
realizar exactamente las mismas funciones. El empleo de uno u otro depende, por lo
general, del gusto del programador.

FUNCIONES

Las funciones se crearon para evitar tener que repetir constantemente fragmentos de
código. Una función podría considerarse como una variable que encierra código dentro de
sí. Por lo tanto, cuando accedemos a dicha variable (la función) en realidad lo que estamos
haciendo es ordenar al programa que ejecute un determinado código predefinido
anteriormente.

Todos los lenguajes de programación tienen algunos elementos de formación primitivos


para la descripción de los datos y de los procesos o transformaciones aplicadas a estos
datos (tal como la suma de dos números o la selección de un elemento que forma parte
de una colección). Estos elementos primitivos son definidos por reglas sintácticas y
semánticas que describen su estructura y significado respectivamente.

 SINTAXIS

A la forma visible de un lenguaje de programación se le conoce como sintaxis. La mayoría


de los lenguajes de programación son puramente textuales, es decir, utilizan secuencias
de texto que incluyen palabras, números y puntuación, de manera similar a los lenguajes
naturales escritos. Por otra parte, hay algunos lenguajes de programación que son más
gráficos en su naturaleza, utilizando relaciones visuales entre símbolos para especificar un
programa.

La sintaxis de un lenguaje de programación describe las combinaciones posibles de los


símbolos que forman un programa sintácticamente correcto. El significado que se le da a
una combinación de símbolos es manejado por su semántica (ya sea formal o como parte
del código duro de la referencia de implementación). Dado que la mayoría de los
lenguajes son textuales, este artículo trata de la sintaxis textual.
La sintaxis de los lenguajes de programación es definida generalmente utilizando una
combinación de expresiones regulares (para la estructura léxica) y la Notación de Backus-
Naur (para la estructura gramática).

SEMÁNTICA ESTÁTICA

La semántica estática define las restricciones sobre la estructura de los textos válidos que
resulta imposible o muy difícil expresar mediante formalismos sintácticos estándar. Para
los lenguajes compilados, la semántica estática básicamente incluye las reglas semánticas
que se pueden verificar en el momento de compilar. Por ejemplo, el chequeo de que cada
identificador sea declarado antes de ser usado (en lenguajes que requieren tales
declaraciones) o que la etiqueta en cada brazo de una estructura case sean distintas.
Muchas restricciones importantes de este tipo, como la validación de que los
identificadores sean usados en los contextos apropiados (por ejemplo, no sumar un
entero al nombre de una función), o que las llamadas a subrutinas tengan el número y
tipo de parámetros adecuado, puede ser implementadas definiéndolas como reglas en
una lógica conocida como sistema de tipos. Otras formas de análisis estáticos, como los
análisis de flujo de datos, también pueden ser parte de la semántica estática. Otros
lenguajes de programación como Java y C# tienen un análisis definido de asignaciones,
una forma de análisis de flujo de datos, como parte de su semántica estática.

 SISTEMA DE TIPOS

Un sistema de tipos define la manera en la cual un lenguaje de programación clasifica los


valores y expresiones en tipos, cómo pueden ser manipulados dichos tipos y cómo
interactúan. El objetivo de un sistema de tipos es verificar y normalmente poner en vigor
un cierto nivel de exactitud en programas escritos en el lenguaje en cuestión, detectando
ciertas operaciones inválidas. Cualquier sistema de tipos decididle tiene sus ventajas y
desventajas: mientras por un lado rechaza muchos programas incorrectos, también
prohíbe algunos programas correctos, aunque poco comunes. Para poder minimizar esta
desventaja, algunos lenguajes incluyen lagunas de tipos, conversiones explícitas no
verificadas que pueden ser usadas por el programador para permitir explícitamente una
operación normalmente no permitida entre diferentes tipos. En la mayoría de los
lenguajes con tipos, el sistema de tipos es usado solamente para verificar los tipos de los
programas, pero varios lenguajes, generalmente funcionales, llevan a cabo lo que se
conoce como inferencia de tipos, que le quita al programador la tarea de especificar los
tipos. Al diseño y estudio formal de los sistemas de tipos se le conoce como teoría de
tipos.
CLASIFICACIÓN DE LOS LENGUAJES DE PROGRAMACIÓN

LOS LENGUAJES DE PROGRAMACIÓN SE PUEDEN CLASIFICAR ATENDIENDO A VARIOS


CRITERIOS:

 Según el nivel de abstracción.


 Según la forma de ejecución.
 Según el paradigma de programación que poseen cada uno de ellos.

SEGÚN SU NIVEL DE ABSTRACCIÓN

 LENGUAJES MAQUINA

Están escritos en lenguajes directamente inteligibles por la maquina (computadora), ya


que sus instrucciones son cadenas binarias (0 y 1).

 LENGUAJES DE BAJO NIVEL

Son lenguajes de programación que se acercan al funcionamiento de una computadora. El


lenguaje de más bajo nivel por excelencia es el código máquina.

 LENGUAJES DE ALTO NIVEL

Son normalmente fáciles de aprender porque están formados por elementos de lenguajes
naturales, como el inglés.

SEGÚN LA FORMA DE EJECUCIÓN

LENGUAJES COMPILADOS

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que
traducirse a un código que pueda utilizar la máquina.

 LENGUAJES INTERPRETADOS

Se puede también utilizar una alternativa diferente de los compiladores para traducir
lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma
permanente el código objeto que se produce durante la compilación para utilizarlo en una
ejecución futura, el programador sólo carga el programa fuente en la computadora junto
con los datos que se van a procesar.
 LENGUAJES INTERMEDIARIOS

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el
programa escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de
compilación intermediaria, en un archivo escrito en un lenguaje ininteligible (por lo tanto,
diferente al archivo fuente) y no ejecutable (requeriría un intérprete). Los applets Java,
pequeños programas que a menudo se cargan en páginas web, son archivos compilados
que sólo pueden ejecutarse dentro de un navegador web (son archivos con la extensión
.class).

SEGÚN EL PARADIGMA DE PROGRAMACIÓN

Un paradigma de programación representa un enfoque particular o filosofía para la


construcción del software. No es mejor uno que otro, sino que cada uno tiene ventajas y
desventajas. Dependiendo de la situación un paradigma resulta más apropiado que otro.

ATENDIENDO AL PARADIGMA DE PROGRAMACIÓN, SE PUEDEN CLASIFICAR LOS


LENGUAJES EN:

 El paradigma imperativo o por procedimientos que programa mediante una serie


de comandos, agrupados en bloques y compuestos de órdenes condicionales que
permiten al programa retornar a un bloque de comandos si se cumple la condición.
Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos
lenguajes modernos usan este principio, es considerado el más común y está
representado, por ejemplo, por el C o por BASIC.
 El lenguaje de programación funcional (a menudo llamado lenguaje
procedimental) es un lenguaje que crea programas mediante funciones, devuelve
un nuevo estado de resultado y recibe como entrada el resultado de otras
funciones. Cuando una función se invoca a sí misma, hablamos de recursividad. El
paradigma funcional está representado por la familia de lenguajes LISP (en
particular Scheme), ML o Haskell.
 El paradigma lógico, un ejemplo es PROLOG.
 El paradigma orientado a objetos. Un lenguaje completamente orientado a
objetos es Smalltalk.
LENGUAJE UNIFICADO DE MODELADO

El lenguaje unificado de modelado (UML, por sus siglas en inglés, Unified Modeling
Language) es el lenguaje de modelado de sistemas de software más conocido y utilizado
en la actualidad; está respaldado por el Object Management Group (OMG).

Es un lenguaje gráfico para visualizar, especificar, construir y documentar un sistema. UML


ofrece un estándar para describir un "plano" del sistema (modelo), incluyendo aspectos
conceptuales tales como procesos, funciones del sistema, y aspectos concretos como
expresiones de lenguajes de programación, esquemas de bases de datos y compuestos
reciclados.

Es importante remarcar que UML es un "lenguaje de modelado" para especificar o para


describir métodos o procesos. Se utiliza para definir un sistema, para detallar los
artefactos en el sistema y para documentar y construir. En otras palabras, es el lenguaje
en el que está descrito el modelo.

Se puede aplicar en el desarrollo de software gran variedad de formas para dar soporte a
una metodología de desarrollo de software (tal como el Proceso Unificado Racional,
Rational Unified Process o RUP), pero no especifica en sí mismo qué metodología o
proceso usar.

UML no puede compararse con la programación estructurada, pues UML significa


Lenguaje Unificado de Modelado, no es programación, solo se diagrama la realidad de una
utilización en un requerimiento. Mientras que programación estructurada es una forma
de programar como lo es la orientación a objetos, la programación orientada a objetos
viene siendo un complemento perfecto de UML, pero no por eso se toma UML solo para
lenguajes orientados a objetos.

UML cuenta con varios tipos de diagramas, los cuales muestran diferentes aspectos de las
entidades representadas.
LENGUAJE ENSAMBLADOR

El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm),


es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos
que representan instrucciones básicas para los computadores, microprocesadores,
microcontroladores y otros circuitos integrados programables. Implementa una
representación simbólica de los códigos de máquina binarios y otras constantes necesarias
para programar una arquitectura de procesador y constituye la representación más
directa del código máquina específico para cada arquitectura legible por un programador.
Cada arquitectura de procesador tiene su propio lenguaje ensamblador que usualmente
es definida por el fabricante de hardware, y está basada en los mnemónicos que
simbolizan los pasos de procesamiento (las instrucciones), los registros del procesador, las
posiciones de memoria y otras características del lenguaje. Un lenguaje ensamblador es
por lo tanto específico de cierta arquitectura de computador física (o virtual). Esto está en
contraste con la mayoría de los lenguajes de programación de alto nivel, que idealmente
son portátiles.

Un programa utilitario llamado ensamblador es usado para traducir sentencias del


lenguaje ensamblador al código de máquina del computador objetivo. El ensamblador
realiza una traducción más o menos isomorfa (un mapeo de uno a uno) desde las
sentencias mnemónicas a las instrucciones y datos de máquina. Esto está en contraste con
los lenguajes de alto nivel, en los cuales una sola declaración generalmente da lugar a
muchas instrucciones de máquina.

Muchos sofisticados ensambladores ofrecen mecanismos adicionales para facilitar el


desarrollo del programa, controlar el proceso de ensamblaje, y la ayuda de depuración.
Particularmente, la mayoría de los ensambladores modernos incluyen una facilidad de
macro (descrita más abajo), y se llaman macro ensambladores.

Fue usado principalmente en los inicios del desarrollo de software, cuando aún no se
contaba con potentes lenguajes de alto nivel y los recursos eran limitados. Actualmente se
utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando
se requiere la manipulación directa de hardware, alto rendimiento, o un uso de recursos
controlado y reducido. También es utilizado en el desarrollo de controladores de
dispositivo (en inglés, device drivers) y en el desarrollo de sistemas operativos, debido a la
necesidad del acceso directo a las instrucciones de la máquina. Muchos dispositivos
programables (como los microcontroladores) aún cuentan con el ensamblador como la
única manera de ser manipulados.

CARACTERÍSTICAS

 El código escrito en lenguaje ensamblador posee una cierta dificultad de ser


entendido directamente por un ser humano ya que su estructura se acerca más
bien al lenguaje máquina, es decir, lenguaje de bajo nivel.
 El lenguaje ensamblador es difícilmente portable, es decir, un código escrito para
un Microprocesador, suele necesitar ser modificado, muchas veces en su totalidad
para poder ser usado en otra máquina distinta, aun con el mismo
Microprocesador, solo pueden ser reutilizados secciones especiales del código
programado.
 Los programas hechos en lenguaje ensamblador, al ser programado directamente
sobre Hardware, son generalmente más rápidos y consumen menos recursos del
sistema (memoria RAM y ROM). Al programar cuidadosamente en lenguaje
ensamblador se pueden crear programas que se ejecutan más rápidamente y
ocupan menos espacio que con lenguajes de alto nivel.
 Con el lenguaje ensamblador se tiene un control muy preciso de las tareas
realizadas por un Microprocesador por lo que se pueden crear segmentos de
código difíciles de programar en un lenguaje de alto nivel.
 También se puede controlar el tiempo en que tarda una Rutina en ejecutarse, e
impedir que se interrumpa durante su ejecución.
 El lenguaje ensamblador es un código estructurado y gravitatorio desarrollado
sobre un archivo de programación (.ASM), en el cual pueden existir varios
programas, macros o rutinas que pueden ser llamados entre sí.
PARTES DE UN ALGORITMO

Todo algoritmo debe obedecer a la estructura básica de un sistema, es decir: entrada,


proceso y salida. Donde:
ENTRADA DE DATOS
Es la información dada al algoritmo o los valores con los que se va a trabajar para ofrecer
los resultados esperados.
PROCESOS
Son los cálculos o pasos necesarios para que a partir de un dato de entrada se pueda
llegar a un resultado de solución del problema o la situación planteada
SALIDA DE DATOS
Son los resultados finales o la transformación de la entrada a través del proceso.

CARACTERÍSTICAS DE UN ALGORITMO

Las características fundamentales que debe cumplir todo algoritmo son:

 Un algoritmo debe ser preciso: tiene que 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: el algoritmo se debe terminar en algún momento; o
sea, debe tener un número finito de pasos.
 Un algoritmo debe ser legible: El texto que lo describe debe ser claro, tal que
permita entenderlo y leerlo fácilmente.
 Un algoritmo debe definir tres partes: Entrada, Proceso y Salida.

ELEMENTOS PARA CONSTRUIR UN ALGORITMO

Dado que un algoritmo es un conjunto de instrucciones elaboradas con la finalidad de


resolver un problema, los elementos que se utilizan en la construcción de algoritmos son
los siguientes:

 Comandos
 Datos
 Variables y constantes
 Operadores
COMANDOS O PALABRAS RESERVADAS
Todos los lenguajes, naturales o computacionales, tienen palabras que denotan una
acción. Los comandos no son más que acciones que debe interpretar y ejecutar el
computador. Cada comando conserva una sintaxis determinada, es decir la forma de
utilizarlo.
Los lenguajes computacionales tienen en su repertorio comandos dirigidos al
procesamiento de archivos y datos, entre ellos: Inicio, Leer, Imprimir.
 DATOS
Un dato es un campo que puede convertirse en información. Un dato puede significar un
número, una letra, un signo ortográfico o cualquier símbolo que represente una cantidad,
una medida, una palabra o una descripción. La importancia de los datos está en su
capacidad de asociarse dentro de un contexto para convertirse en información. Es decir,
por si mismos los datos no tienen capacidad de comunicar un significado y por tanto no
pueden afectar el comportamiento de quien los recibe. Para ser útiles, los datos deben
convertirse en información que ofrezca un significado, conocimiento, ideas o
conclusiones.
Los datos simples pueden ser:

 Numéricos (Reales, Enteros)


 Lógicos
 Carácter (Char, String)
 VARIABLES Y CONSTANTES
Son espacios de memoria creados para contener valores que de acuerdo a su naturaleza d
eseen mantenerse (Constantes) o que puedan variar (Variables).
 CONSTANTE
Es un dato que permanece con un valor, sin cambios, es decir constante, a lo largo del
desarrollo del algoritmo o a lo largo de la ejecución del programa. Se utiliza cuando
necesitamos que el valor de determinada variable se mantenga durante la ejecución del
programa o hasta tanto se requiera su cambio.
 VARIABLE
Es un dato cuyo valor puede variar a lo largo del desarrollo del algoritmo o en el
transcurso de la ejecución del programa.
Una variable descrita o declarada de un tipo determinado, sólo podrá contener,
valores de ese tipo.  Una variable declarada numérica entera, no podrá contener números
reales. Se utiliza cuando el dato que contiene sufrirá cambios o variará en la medida que
cambien los valores que maneje.
OPERADORES ARITMÉTICOS
Son utilizadas para construir fórmulas matemáticas. 
Las variables y constantes utilizadas son de naturaleza numérica,
es decir números enteros o reales, las operaciones a efectuar son de orden aritmético.
 OPERADORES RELACIONALES
Los operadores relacionales sirven para expresar las condiciones en los algoritmos.
Las variables y constantes utilizadas son de distinta naturaleza, el resultado de una
expresión lógica y relacional es de tipo lógico.
OPERADORES LÓGICOS
Se utilizan en los programas cuando se requiere conocer o evaluar si los valores de variabl
es o constantes determinadas cumplen con ciertas condiciones. De cumplirse o no,
permiten un conjunto de instrucciones que pueden o no ejecutarse. Una expresión lógica
puede ser verdadera o falsa.

FORMAS DE REPRESENTAR UN ALGORITMO

Los algoritmos pueden ser expresados de muchas maneras, incluyendo al lenguaje


natural, pseudocódigo, diagramas de flujo y lenguajes de programación entre otros. Las
descripciones en lenguaje natural tienden a ser ambiguas y extensas. El usar pseudocódigo
y diagramas de flujo evita muchas ambigüedades del lenguaje natural. Dichas expresiones
son formas más estructuradas para representar algoritmos; no obstante, se mantienen
independientes de un lenguaje de programación específico.

La descripción de un algoritmo usualmente se hace en tres niveles:

1. Descripción de alto nivel. Se establece el problema, se selecciona un modelo


matemático y se explica el algoritmo de manera verbal, posiblemente con
ilustraciones y omitiendo detalles.
2. Descripción formal. Se usa pseudocódigo para describir la secuencia de pasos que
encuentran la solución.
3. Implementación. Se muestra el algoritmo expresado en un lenguaje de
programación específico o algún objeto capaz de llevar a cabo instrucciones.

También es posible incluir un teorema que demuestre que el algoritmo es correcto, un


análisis de complejidad o ambos.

LENGUAJE NATURAL

Son aquellas lenguas que han sido generadas espontáneamente en un grupo de hablantes
con propósito de comunicarse, a diferencia de otras lenguas, como puedan ser una lengua
construida, los lenguajes de programación o los lenguajes formales usados en el estudio
de la lógica formal, especialmente la lógica matemática.

Los algoritmos escritos en este lenguaje se caracterizan por seguir un proceso de


ejecución común y lógico, describiendo textualmente paso a paso cada una de las
actividades a realizar para resolver un problema determinado.
Los inconvenientes de escribir algoritmos en este lenguaje son: la ambigüedad, la no
universalidad y la amplitud del mismo lo cual genera errores y no puede ser interpretado
correctamente por el computador.

PSEUDOCÓDIGO

Es una descripción de alto nivel de un algoritmo que emplea una mezcla de lenguaje
natural con algunas convenciones sintácticas propias de lenguajes de programación, como
asignaciones, ciclos y condicionales, aunque no está regido por ningún estándar. Es
utilizado para describir algoritmos en libros y publicaciones científicas, y como producto
intermedio durante el desarrollo de un algoritmo, como los diagramas de flujo, aunque
presentan una ventaja importante sobre estos, y es que los algoritmos descritos en
pseudocódigo requieren menos espacio para representar instrucciones complejas.

El pseudocódigo está pensado para facilitar a las personas el entendimiento de un


algoritmo, y por lo tanto puede omitir detalles irrelevantes que son necesarios en una
implementación. Programadores diferentes suelen utilizar convenciones distintas, que
pueden estar basadas en la sintaxis de lenguajes de programación concretos. Sin embargo,
el pseudocódigo, en general, es comprensible sin necesidad de conocer o utilizar un
entorno de programación específico, y es a la vez suficientemente estructurado para que
su implementación se pueda hacer directamente a partir de él.
DIAGRAMAS DE FLUJO

Son descripciones gráficas de algoritmos; usan símbolos conectados con flechas para
indicar la secuencia de instrucciones y están regidos por ISO.

Los diagramas de flujo son usados para representar algoritmos pequeños, ya que abarcan
mucho espacio y su construcción es laboriosa. Por su facilidad de lectura son usados como
introducción a los algoritmos, descripción de un lenguaje y descripción de procesos a
personas ajenas a la computación.
SÍMBOLOS PARA REPRESENTAR DIAGRAMAS DE FLUJO

DIAGRAMAS ESTRUCTURADOS (Nassi-Schneiderman)

 El diagrama estructurado N-S también conocido como diagrama de chapin es como


un diagrama de flujo en el que se omiten las flechas de unión y las cajas son
contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y como en
los diagramas de flujo, se pueden escribir diferentes acciones en una caja.
 Los diagramas estructurados, son una técnica que permite formular algoritmos
mediante una representación geométrica y de asignación de espacios de un bloque
específico.

También podría gustarte