Tecnológico de Estudios Superiores de San Felipe del Progreso
Ingeniería en Energías Renovables
SIMULACIÓN DE SISTEMAS
“Conceptos de Programación”
Grupo. 701
Alumnos: Miguel Ángel Tapia Reyes
Docente: Francisco Alba Dionicio
San Felipe del Progreso Estado de México a
3 de noviembre del 2023
Introducción
La programación, esencialmente, es el lenguaje que conecta las ideas con la
ejecución, el medio mediante el cual damos vida a la innovación digital. En este
fascinante viaje, nos adentramos en un universo donde las líneas de código se
convierten en arquitecturas complejas que definen nuestra interacción con la
tecnología. En este contexto, los lenguajes de programación se erigen como las
herramientas lingüísticas que permiten a los desarrolladores comunicarse con
las máquinas y traducir conceptos abstractos en programas funcionales.
Cada lenguaje de programación es único, con su gramática y sintaxis distintivas,
diseñadas para abordar desafíos específicos. Desde el versátil Python hasta el
robusto C++, estos lenguajes son las paletas de los creadores digitales,
ofreciendo diferentes enfoques para resolver problemas y construir
soluciones. Así, la programación y sus lenguajes se entrelazan en un ballet de
creatividad y precisión, definiendo el paisaje en constante evolución de la
tecnología
Concepto de Algoritmo
Un algoritmo informático es un conjunto de instrucciones definidas, ordenadas y
acotadas para resolver un problema, realizar un cálculo o desarrollar una tarea. Es
decir, un algoritmo es un procedimiento paso a paso para conseguir un fin. A partir
de un estado e información iniciales, se siguen una serie de pasos ordenados para
llegar a la solución de una situación.
En programación, un algoritmo supone el paso previo a ponerse a escribir el código.
Primero debemos encontrar la forma de obtener la solución al problema (definir el
algoritmo informático), para luego, a través del código, poder indicarle a la máquina
qué acciones queremos que lleve a cabo. De este modo, un programa informático
no sería más que un conjunto de algoritmos ordenados y codificados en un lenguaje
de programación para poder ser ejecutados en un ordenador.
No obstante, los algoritmos no son algo exclusivo de los ámbitos de las
matemáticas, la lógica y la computación. Utilizamos numerosos algoritmos para
resolver problemas en nuestra vida cotidiana. Algunos de los ejemplos más
habituales son los manuales de instrucciones o las recetas de cocina.
Características de los Algoritmos
Asimismo, los algoritmos presentan una serie de características comunes. Son:
Precisos: Objetivos, sin ambigüedad.
Ordenados: Presentan una secuencia clara y precisa para poder llegar a la solución.
Finitos: Contienen un número determinado de pasos.
Concreto:. Ofrecen una solución determinada para la situación o problema
planteados.
Definidos: El mismo algoritmo debe dar el mismo resultado al recibir la misma
entrada.
Independientemente del uso que se le dé a los algoritmos, todos guardan en común
las siguientes características:
Inicio y fin: parten de un estado inicial desde el cual ejecutan una serie de
instrucciones para llegar a un estado final de salida o finalización.
Exactitud: deben indicar un orden claro, específico y lógico de instrucciones para la
ejecución de cada paso, sin que exista espacio para la ambigüedad.
Secuencia: deben seguir una serie de pasos ordenados, entendibles y previamente
establecidos.
Completos: deben tener en cuenta todas las posibilidades y presentaciones del
problema para ejecutar la solución exacta.
Finitos: el número de pasos para ejecutar la tarea debe ser finito para darla por
concluida.
Abstractos: representan una guía o modelo para ordenar procesos.
Partes de un Algoritmo
Todo algoritmo debe constar de las siguientes partes:
Input o entrada. El ingreso de los datos que el algoritmo necesita para operar.
Proceso. Se trata de la operación lógica formal que el algoritmo emprenderá con lo
recibido del input.
Output o salida. Los resultados obtenidos del proceso sobre el input, una vez
terminada la ejecución del algoritmo.
Concepto de Variable en Programación
Una variable representa un contenedor o un espacio en la memoria física o virtual
de una computadora, donde se almacenan distintos tipos de datos (valores) durante
la ejecución de un programa. A cada variable se le asigna un nombre descriptivo o
un identificador que se refiere al valor guardado. Los datos almacenados pueden
cambiar de valor o ser constantes.
Las variables sirven para guardar y recuperar datos, representar valores existentes
y asignar unos nuevos. Las variables permiten que los programadores se refieran a
un valor con un nombre representativo en vez de tener que recordar este valor, lo
que facilita muchas tareas complejas.
Así, puedes usar valores almacenados en cálculos, operaciones de entrada y salida,
comparaciones y otros tipos de procesamiento de datos. Por ejemplo, en un
programa de contabilidad, una variable puede almacenar el saldo de una cuenta, y
otra variable representa el monto de una transacción. A través de las variables,
puedes realizar fácilmente operaciones matemáticas para actualizar el saldo de la
cuenta.
Concepto de Constante en Programación
Una constante es un valor que se establece en una sección del código y permanece
constante durante la ejecución del programa. A diferencia de las variables, las
constantes no cambian de valor mientras el programa está en funcionamiento. Las
constantes se utilizan para asegurar que un valor crítico permanezca inalterable y
no pueda ser modificado accidentalmente o intencionalmente. En programación
dato que no cambia su valor.
Básicamente las constantes son un valor fijo que no cambia durante la ejecución
del programa. Las constantes son utilizadas en programas para evitar errores,
asegurando que ciertas variables y valores permanezcan inalterables.
Concepto de Pseucodigo
Qué es pseudocódigo
Una de las mejores formas de aprender a programar es empezar por
los diagramas de flujo y el pseudocódigo. Ambos facilitan al estudiante
su inmersión en la resolución de problemas mediante algoritmos.
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.
Aprender a escribir pseudocódigo para la resolución de un problema
permite hacer mucho más sencilla su programación en un lenguaje
convencional, por lo que si estás interesado en comenzar tu formación
como programador y no tienes conocimientos previos, resulta muy
recomendable y conveniente formarse en pseudocódigo antes de
empezar a estudiar cualquier lenguaje de programación.
Podemos considerar al pseudocódigo como un lenguaje intermedio, que
se encuentra en medio de nuestro propio lenguaje y el lenguaje de
programación que entiende el ordenador.
Principales características del pseudocódigo
Para comprender qué es el pseudocódigo podemos utilizar un símil: los
planos de una casa sería el pseudocódigo y la casa en sí el programa.
Su principal característica es la de representar un método que facilita la
programación y solución del algoritmo del programa. También se
caracteriza por ser una forma de representación, fácil de utilizar y de
manipular, que simplifica el paso del programa, al lenguaje de
programación.
Otra característica que tiene el pseudocódigo es su independencia al
código en el que se va a escribir el programa, proporcionando un
método que facilita la posterior programación y la resolución del
algoritmo del programa.
Concepto de Base de Datos
Una base de datos es una herramienta para recopilar y organizar información. Las
bases de datos pueden almacenar información sobre personas, productos, pedidos
u otras cosas. Muchas bases de datos comienzan como una lista en una hoja de
cálculo o en un programa de procesamiento de texto. A medida que la lista aumenta
su tamaño, empiezan a aparecer redundancias e inconsistencias en los datos. Cada
vez es más difícil comprender los datos en forma de lista y los métodos de búsqueda
o extracción de subconjuntos de datos para revisión son limitados. Una vez que
estos problemas comienzan a aparecer, una buena idea es transferir los datos a
una base de datos creada con un sistema de administración de bases de datos
(DBMS), como Access.
Una base de datos computarizada es un contenedor de objetos. Una base de datos
puede contener más de una tabla. Por ejemplo, un sistema de seguimiento de
inventario que usa tres tablas no son tres bases de datos, sino una base de datos
que contiene tres tablas. Salvo que haya sido específicamente diseñada para usar
datos o códigos de otro origen, una base de datos de Access almacena sus tablas
en un solo archivo, junto con otros objetos como formularios, informes, macros y
módulos.
Sistemas Gestores de Bases de Datos
El sistema de gestión de base de datos subyacente a toda base de datos es tan
fundamental como el propio conjunto de los datos, puesto que no sería posible
administrarlos sin él.
Qué es un sistema gestor de base de datos:
Un sistema gestor de base de datos (SGBD) o Database Management System
(DBMS) es un conjunto de programas invisibles para el usuario final con el que se
administra y gestiona la información que incluye una base de datos.
Los gestores de datos o gestores de base de datos permiten administrar todo
acceso a la base de datos, pues tienen el objetivo de servir de interfaz entre esta,
el usuario y las aplicaciones.
Entre sus funciones se encuentran la de permitir a los usuarios de negocio
almacenar la información, modificar datos y acceder a los activos de conocimiento
de la organización. Asimismo, el gestor de base de datos también se ocupa de
realizar consultas y hacer análisis para generar informes.
Además, los sistemas de gestión de base de datos pueden entenderse como una
colección de datos interrelacionados, estructurados y organizados en el ecosistema
formado por dicho conjunto de programas que acceden a ellos y facilitan su gestión.
Qué permiten los SGBD:
En pocas palabras, el gestor de base de datos controla cualquier operación
ejecutada por el usuario contra la BBDD. Para desarrollar esta función, es normal
que se requieran herramientas específicas, como por ejemplo sistemas de
búsqueda y de generación de informes, así como distintas aplicaciones. Los
gestores de base de datos también permiten lo siguiente:
● Que las interacciones con cualquier base de datos gestionada puedan
desarrollarse siempre separadamente a los programas o aplicaciones que los
gestionan.
● La manipulación de bases de datos, garantizando su seguridad, integridad y
consistencia.
● La definición de bases de datos a diferentes niveles de abstracción.
Lenguaje de Programación
En informática, se conoce como lenguaje de programación a un programa destinado
a la construcción de otros programas informáticos. Su nombre se debe a que
comprende un lenguaje formal que está diseñado para organizar algoritmos y
procesos lógicos que serán luego llevados a cabo por un ordenador o sistema
informático, permitiendo controlar así su comportamiento físico, lógico y su
comunicación con el usuario humano.
Dicho lenguaje está compuesto por símbolos y reglas sintácticas y semánticas,
expresadas en forma de instrucciones y relaciones lógicas, mediante las cuales se
construye el código fuente de una aplicación o pieza de software determinado. Así,
puede llamarse también lenguaje de programación al resultado final de estos
procesos creativos.
La implementación de lenguajes de programación permite el trabajo conjunto y
coordinado, a través de un conjunto afín y finito de instrucciones posibles, de
diversos programadores o arquitectos de software, para lo cual estos lenguajes
imitan, al menos formalmente, la lógica de los lenguajes humanos o naturales.
No deben confundirse, sin embargo, con los distintos tipos de lenguaje informático.
Estos últimos representan una categoría mucho más amplia, en donde están
contenidos los lenguajes de programación y muchos otros protocolos informáticos,
como el HTML de las páginas web.
Normalmente se distingue entre los siguientes tipos de lenguaje de programación
Lenguajes de bajo nivel. Se trata de lenguajes de programación que están
diseñados para un hardware específico y que por lo tanto no pueden migrar o
exportarse a otros computadores. Sacan el mayor provecho posible al sistema para
el que fueron diseñados, pero no aplican para ningún otro.
Lenguajes de alto nivel. Se trata de lenguajes de programación que aspiran a ser
un lenguaje más universal, por lo que pueden emplearse indistintamente de la
arquitectura del hardware, es decir, en diversos tipos de sistemas. Los hay de
propósito general y de propósito específico.
Lenguajes de nivel medio. Este término no siempre es aceptado, que propone
lenguajes de programación que se ubican en un punto medio entre los dos
anteriores: pues permite operaciones de alto nivel y a la vez la gestión local de la
arquitectura del sistema.
Lenguajes de Programación de Alto Nivel
Los lenguajes de alto nivel son aquellos que utilizan el lenguaje natural para realizar
programas y, por tanto, necesitan otro programa para generar el código máquina ya
que el ordenador no los entiende directamente. Este programa puede ser:
- Un intérprete.- traduce cada línea del programa siguiendo la secuencia; ejecuta el
programa paso a paso hasta el final o hasta que encuentra un error, en cuyo caso,
se detiene.
- Un compilador.- traduce el programa completo creando otro que entiende en
ordenador y que se llama programa objeto; si encuentra errores, indica su posición
para que sean corregidos. El programa objeto obtenido es el ejecutable.
La gran ventaja de los lenguajes de alto nivel es que consiguen distanciarse del
lenguaje máquina y se aproximan al lenguaje natural.
Uno de los mayores problemas de estos lenguajes es la cantidad de ellos que
existen y las nuevas versiones que aparecen continuamente.
A continuación vamos a describir algunos de los lenguajes más conocidos. En el
tema 3 de esta unidad, aprenderás uno de ellos.
FORTRAN
Es el primer lenguaje de programación de alto nivel y fue creado en 1955 por IBM
para resolver ecuaciones algebraicas de uso científico.
Está especializado en aplicaciones técnicas y científicas y se caracteriza por su
potencia en los cálculos matemáticos. Sin embargo, su uso es limitado en las
aplicaciones de gestión, manejo de archivos y edición de informes, aunque las
últimas versiones han evolucionado también en este sentido.
A lo largo de la historia, han ido apareciendo distintas versiones: FORTRAN IV,
FORTRAN 77, FORTRAN 80 Y FORTRAN 90. Debido a sus características, ha sido
adoptado por la comunidad científica para cálculos intensivos.
COBOL
Fue creado en 1960 en Estados Unidos con el fin de disponer de un lenguaje
universal para aplicaciones comerciales y constituyó el origen de la llamada
informática de gestión.
Destaca su capacidad para manejar ficheros y tablas y en la producción de informes.
Los mayores inconvenientes son la rigidez de las reglas de formatos de escritura, la
extensión excesiva en sus sentencias, la inexistencia de funciones matemáticas. Se
utiliza en sistemas que requieren gran capacidad de procesamiento por lotes.
También ha evolucionado en sus distintas versiones hasta la actualidad en los
modelos COBOL-ANSI y COBOL-ENTRERPRISE.
Hola mundo
“HOLA, MUNDO” en COBOL
BASIC
Fue diseñado en 1965 por los profesores John G. Kemeny y Thomas E. Kurtzun
para crear un lenguaje sencillo para utilizar en educación. La popularización de los
ordenadores personales hizo que se extendiese su uso y se convirtiese en un
lenguaje útil para todo tipo de aplicaciones.
Está disponible para casi todas las plataformas y sistemas operativos. Las versiones
más conocidas de los compiladores son QBASIC, Visual BASIC (de Microsoft),
RealBASIC (de MAC OS) y FreeBASIC (versión libre).
Hola mundo
“HOLA, MUNDO” en BASIC
PASCAL
Fue creado en 1970 por el matemático suizo Niklaus Wirth, basándose en el
lenguaje ALGOL (Algorithmit Language), y su objetivo era proporcionar un lenguaje
para enseñar técnicas de programación.
Con el tiempo ha llegado a ser un lenguaje ampliamente utilizado en todo tipo de
aplicaciones y en la enseñanza de la programación estructurada. Aporta los
conceptos de tipo de datos, programación estructurada y diseño descendente.
Es el predecesor de otros lenguajes como MODULA-2, DELPHI y ADA.
C
Fue creado en 1972 por Dennis Ritchie para conseguir un lenguaje que permitiera
crear sistemas operativos. Posteriormente se ha extendido a aplicaciones técnico-
científicas, bases de datos o proceso de textos, etc. Con el se creó el sistema
operativo UNIX, que es dónde su utilización es óptima.
Su evolución ha sido hacia la programación orientada a objetos, creándose el C++
y el Objective C.
Entre sus características destaca el uso de programación estructurada, acceso a
dispositivos hardware a bajo nivel y el amplio número de librerías de las que
dispone, con rutinas y ficheros estandarizados por la ISO. Se dice que es un
lenguaje de nivel medio puesto que conjuga las facilidades de los lenguajes de alto
nivel con la potencia de los de bajo nivel.
Lenguaje de Programación C#
C# es un lenguaje de programaciónmoderno, innovador, de código abierto,
multiplataforma orientado a objetos y uno de los 5 principales lenguajes de
programación de GitHub.
¿Tiene experiencia con JavaScript, Java o C++? C# le resultará familiar al instante
y disfrutará de sus características en constante evolución, como seguridad de tipos,
genéricos, coincidencia de patrones, asincrónico, registros, y mucho más.
Cuando se ejecuta el programa C#, el ensamblado se carga en CLR. CLR realiza la
compilación Just-In-Time (JIT) para convertir el código IL en instrucciones de
máquina nativas. Además, CLR proporciona otros servicios relacionados con la
recolección de elementos no utilizados, el control de excepciones y la administración
de recursos. El código que se ejecuta en CLR a veces se conoce como “código
administrado”. El “código no administrado” se compila en un lenguaje nativo de la
máquina destinado a un sistema concreto.
La interoperabilidad entre lenguajes es una característica principal de .NET. El
código IL generado por el compilador de C# se ajusta a la especificación de tipo
común (CTS). El código IL generado desde C# puede interactuar con el código
generado a partir de las versiones de .NET de F# , Visual Basic y C++. Hay más de
otros 20 lenguajes compatibles con CTS. Un solo ensamblado puede contener
varios módulos escritos en diferentes lenguajes .NET y los tipos se pueden hacer
referencia mutuamente igual que si estuvieran escritos en el mismo lenguaje.
Además de los servicios en tiempo de ejecución, .NET también incluye amplias
bibliotecas, que admiten muchas cargas de trabajo diferentes. Se organizan en
espacios de nombres que proporcionan una amplia variedad de funcionalidades
útiles. Las bibliotecas incluyen todo, desde la entrada y salida de archivos, la
manipulación de cadenas y el análisis de XML hasta los marcos de aplicaciones
web y los controles de Windows Forms. En una aplicación de C# típica se usa la
biblioteca de clases de .NET de forma extensa para controlar tareas comunes de
infraestructura.
Heredan implícitamente del tipo object.
Un tipo interface define un contrato como un conjunto con nombre de miembros
públicos. Un valor class o struct que implementa interface debe proporcionar
implementaciones de miembros de la interfaz. Un interface puede heredar de varias
interfaces base, y un class o struct pueden implementar varias interfaces.
Un tipo delegate representa las referencias a métodos con una lista de parámetros
determinada y un tipo de valor devuelto. Los delegados permiten tratar métodos
como entidades que se puedan asignar a variables y se puedan pasar como
parámetros. Los delegados son análogos a los tipos de función proporcionados por
los lenguajes funcionales. También son similares al concepto de punteros de función
de otros lenguajes. A diferencia de los punteros de función, los delegados están
orientados a objetos y tienen seguridad de tipos.
Los tipos class, struct, interface y delegate admiten parámetros genéricos, mediante
los que se pueden parametrizar con otros tipos.
C# admite matrices unidimensionales y multidimensionales de cualquier tipo. A
diferencia de los tipos enumerados antes, no es necesario declarar los tipos de
matriz antes de usarlos. En su lugar, los tipos de matriz se crean mediante un
nombre de tipo entre corchetes. Por ejemplo, int[] es una matriz unidimensional de
int, int[,] es una matriz bidimensional de int y int[][] es una matriz unidimensional de
las matrices unidimensionales, o la matriz “escalonada”, de int.
Los tipos que aceptan valores NULL no requieren una definición independiente.
Para cada tipo T que no acepta valores NULL, existe un tipo T? que acepta valores
NULL correspondiente, que puede tener un valor adicional, null. Por ejemplo, int?
Es un tipo que puede contener cualquier entero de 32 bits o el valor null y string?
Es un tipo que puede contener cualquier string o el valor null.
El sistema de tipos de C# está unificado, de tal forma que un valor de cualquier tipo
puede tratarse como object. Todos los tipos de C# directa o indirectamente se
derivan del tipo de clase object, y object es la clase base definitiva de todos los tipos.
Los valores de tipos de referencia se tratan como objetos mediante la visualización
de los valores como tipo object. Los valores de tipos de valor se tratan como objetos
mediante la realización de operaciones de conversión boxing y operaciones de
conversión unboxing. En el ejemplo siguiente, un valor int se convierte en object y
vuelve a int.
Conclusión
En conclusión, la programación emerge como el puente entre la creatividad humana
y el poder de la tecnología. Es la habilidad de traducir ideas en sistemas funcionales,
de convertir desafíos en oportunidades. En este universo de códigos y algoritmos,
cada línea escrita es un testimonio de la capacidad humana para moldear el futuro
digital. La programación no solo es un conjunto de instrucciones, sino una
herramienta que impulsa la innovación, desbloquea soluciones y da forma al mundo
en constante evolución en el que vivimos.
En última instancia, la programación se revela como la columna vertebral de la era
digital, donde la habilidad de comunicarnos con las máquinas se convierte en un
catalizador para la transformación. Es más que un conjunto de códigos y comandos;
es la manifestación de la creatividad humana, la capacidad de imaginar y construir
mundos virtuales que redefinen nuestra realidad.
La programación despliega su importancia en diversos campos, desde la creación
de aplicaciones que simplifican nuestras vidas hasta el desarrollo de algoritmos que
impulsan descubrimientos científicos. Es un lienzo en blanco donde los
programadores, como artistas digitales, dan forma a soluciones innovadoras y
experiencias únicas.
A medida que avanzamos en esta era tecnológica, la programación se erige como
un lenguaje universal que conecta culturas y personas alrededor del globo. Cada
línea de código escrita es una contribución al progreso, un paso hacia adelante en
la construcción de un futuro digital que refleje nuestras aspiraciones colectivas.
Referencias Bibliográficas
Maluenda, R. (2023, 19 octubre). Qué es un algoritmo informático:
características, tipos y ejemplos. Profile Software Services.
https://profile.es/blog/que-es-un-algoritmo-informatico/amp/
De La Empresa, U. (2021, 6 julio). ¿Qué entendemos por algoritmo? UDE
Universidad de la Empresa. https://www.google.com/amp/s/ude.edu.uy/que-
son-algoritmos/
Algoritmos: qué son y qué tipos existen – Ferrovial. (2022, 18 octubre).
Ferrovial. https://www.ferrovial.com/es/stem/algoritmos/
Algoritmo en informática – concepto, partes, tipos y ejemplos. (s. f.).
Concepto. https://concepto.de/algoritmo-en-informatica/
BillWagner. (2023, 15 febrero). Un paseo por C#: Información general.
Microsoft Learn. https://learn.microsoft.com/es-es/dotnet/csharp/tour-of-
csharp/
2.2 Lenguajes de alto nivel. (s. f.).
https://www.cienciasfera.com/materiales/informatica/tecnologiainformacion
/tema21/22_lenguajes_de_alto_nivel.html
Lenguaje de programación – concepto, tipos y ejemplos. (s. f.). Concepto.
https://concepto.de/lenguaje-de-programacion/
https://intelequia.com/es/blog/post/gestor-de-base-de-datos-qu%C3%A9-es-
funcionalidades-y-
ejemplos#:~:text=Un%20sistema%20gestor%20de%20base%20de%20datos%
20(SGBD)%20o%20Database,incluye%20una%20base%20de%20datos.
Conceptos básicos sobre bases de datos – Soporte técnico de Microsoft. (s.
f.). https://support.microsoft.com