0% encontró este documento útil (0 votos)
41 vistas49 páginas

Conceptos Básicos de Algoritmos y Programación

Este documento presenta un temario sobre conceptos básicos de algoritmos y programación. El temario incluye 7 temas principales como conceptos básicos de algoritmos, introducción a la programación, control de flujo, arreglos y estructuras, módulos, punteros y archivos. Cada tema contiene varios subtemas para explicar conceptos clave de programación como clasificación de software, definición de algoritmo, lenguajes de programación, estructuras de control de flujo y más.
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 PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
41 vistas49 páginas

Conceptos Básicos de Algoritmos y Programación

Este documento presenta un temario sobre conceptos básicos de algoritmos y programación. El temario incluye 7 temas principales como conceptos básicos de algoritmos, introducción a la programación, control de flujo, arreglos y estructuras, módulos, punteros y archivos. Cada tema contiene varios subtemas para explicar conceptos clave de programación como clasificación de software, definición de algoritmo, lenguajes de programación, estructuras de control de flujo y más.
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 PDF, TXT o lee en línea desde Scribd

Tecnológico nacional de México

Instituto Tecnológico Superior De Uruapan

Evidencia digital
Presenta:
Arévalos Moreno Edwin Fernando
Pérez Martínez Jorge Marlon
Sánchez Torres Imara Abigail
. Ventura de la cruz Jared

Docente:
Nahim Rios García

Uruapan Michoacán, Jueves 11 de mayo


del 2023
TEMARIO
No. Temas Subtemas

Conceptos y 1.1 Clasificación del software de: sistemas y


Básicos
Algoritmos. aplicación.
1 1.2 Definición de: Algoritmo, Lenguaje de
Programación, Programa, Programación, Paradigmas de
programación, Editores de texto, Compiladores e
intérpretes,
Ejecutables, Consola de línea de comandos.
1.3 Análisis de problemas.
1.4 Representación de algoritmos: gráfica
y pseudocódigo.
1.5 Diseño de algoritmos aplicados a problemas.
1.6 Diseño algorítmico de funciones

2 Introducción a la 2.1 Características del lenguaje de


Programación
programación
2.2 Estructura básica de un programa.
2.3 Traducción de un programa: compilación, enlace de
un programa, errores en tiempo de compilación.
2.4 Ejecución de un programa.
2.5 Elementos del lenguaje: datos, literales y constantes,
identificadores, variables, parámetros, operadores,
entrada y salida de datos.
2.6 Errores en tiempo de ejecución.

3 Control de flujo 3.1 Estructuras secuenciales.

3.2 Estructuras selectivas: simple, doble y múltiple.


3.3 Estructuras iterativas: repetir mientras, hasta, desde
3.4 Diseño e implementación de funciones

1
4 Arreglos, 4.1 Unidimensionales: conceptos básicos,
Estructuras y
Uniones operaciones y aplicaciones.
4.2 Multidimensionales: conceptos básicos, operaciones y
aplicaciones. 4.3 Aplicaciones en programas

5 Módulos 5.1 Diferencia entre Funciones y

Procedimientos.
5.2 Activación / Invocación de Funciones y
Procedimientos
5.3 Uso de Funciones y Procedimientos con Parámetros.

6 Punteros 6.1 Declaración e inicialización


6.2 Operadores de apuntador
6.3 Uso de apuntadores
6.4 Llamadas por valor y referencia

7 Archivos 7.1 Creación, lectura, escritura y cierre de

archivos de acceso secuencial


7.2 Creación, lectura, escritura y cierre de archivos de
acceso directo

2
Tema 1 Conceptos básicos algoritmos
1.1 CLASIFICACION DEL SOFTWARE DE: SISTEMAS Y APLICACION.
Varios tipos de software se describen basándose en su método de
distribución. Entre estos se encuentran los así llamados programas
enlatados, el software desarrollado por compañías y vendido principalmente
por distribuidores, el freeware y software de dominio público, que se ofrece
sin costo alguno, el shareware, que es similar al freeware, pero suele con
llevar una pequeña tasa a pagar por los usuarios que lo utilicen
profesionalmente y, por último, el infame vapourware, que es software que
no llega a presentarse o que aparece mucho después de lo prometido.
(Guzmán, 2021)
El software es la parte lógica de computadora, que permite el manejo
de los recursos y la realización de tareas específicas, también denominados
programas. (Guzmán, 2021)
Se clasifica en 2 partes:

• SOFTWARE DE SISTEMAS
• SOFWARE DE APLICACION

1. SOFTWARE DE SISTEMAS: Son aquellos programas que permiten la


administración de la parte física o los recursos de la computadora, es la que
interactúa entre el usuario y los componentes hardware del ordenador. Se
clasifican el Sistemas Operativos Monousuarios y Multiusuarios. (Guzmán,
2021)

2. SOFTWARE DE APLICACION: Son aquellos programas que nos ayudan


a tareas específicas como edición de textos, imágenes, cálculos, etc.
también conocidos como aplicaciones. (,Guzmán 2021)

Software de Uso General


El software para uso general ofrece la estructura para un gran número
de aplicaciones empresariales, científicas y personales. El software de hoja
de cálculo, de diseño asistido por computadoras (CAD), de procesamiento
de texto, de manejo de Bases de Datos, pertenece a esta categoría. La
mayoría de software para uso general se vende como paquete; es decir, con
software y documentación orientada al usuario (manuales de referencia,
plantillas de teclado y demás). (Guzmán, 2021)

Software de aplicaciones

El software de aplicación está diseñado y escrito para realizar tareas


específicas personales, empresariales o científicas como el procesamiento
de nóminas, la administración de los recursos humanos o el control de
inventarios. Todas éstas aplicación es procesan datos (recepción de
materiales) y generan información
3
(registros de nómina). para el usuario. (Guzmán, 2021)
Software de Aplicación, programa informático diseñado para facilitar
al usuario la realización de un determinado tipo de trabajo. Posee ciertas
características que le diferencia de un sistema operativo (que hace funcionar
al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso
general) y de un lenguaje (con el cual se crean los programas informáticos).
Suele resultar una solución informática para la automatización de ciertas
tareas complicadas como puede ser la contabilidad o la gestión de un
almacén. Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una
gran potencia ya que están exclusivamente diseñadas para resolver un
problema específico. (Guzmán, 2021)

Otros, llamados paquetes integrados de software, ofrecen menos


potencia, pero a cambio incluyen varias aplicaciones, como un programa
procesador de textos, de hoja de cálculo y de base de datos. (Guzmán,
2021)

Algoritmo.

La palabra algoritmo se deriva de la traducción al latín de la palabra


árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que
escribió un tratado sobre manipulación de números y ecuaciones en el siglo
IX. (Guzmán, 2021)
Un algoritmo es una serie de pasos organizados que describe el
proceso que se debe seguir, para dar solución a un problema específico.
(Guzmán, 2021)

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

- Debe ser preciso. e indicar el orden de realización de cada paso.


- Debe ser definido. Si se sigue un algoritmo dos veces, se debe
obtener el mismo resultado.
- Debe ser finito. Si se sigue un algoritmo, se debe terminar en algún
momento; o sea debe tener un número finito de pasos. (Guzmán,
2021)

4
La definición de un algoritmo debe describir tres partes: Entrada, Proceso y
Salida.
Tipos de Algoritmos
- Cualitativos: Son aquellos en los que se describen los pasos
utilizando palabras.
- Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos
para definir los pasos del proceso.

Ilustración 1: algoritmo

Lenguaje de Programación.
Es un conjunto de símbolos, caracteres y reglas (programas) que les
permiten a las personas comunicarse con la computadora.
Los lenguajes de programación tienen un conjunto de instrucciones que nos
permiten realizar operaciones de entrada/salida, calculo, manipulación de
textos, lógica/comparación y almacenamiento/recuperación. (Guzmán
,2021)

Los lenguajes de programación se clasifican en:


Lenguaje Maquina: Son aquellos cuyas instrucciones son directamente
entendibles por la computadora y no necesitan traducción posterior para que
la CPU pueda comprender y ejecutar el programa. La instrucción en lenguaje
maquina se expresan en términos de la unidad de memoria más pequeña el
bit (dígito binario 0 o 1). (Guzmán ,2021)
Son aquéllos que están escritos en lenguajes directamente inteligibles por la
máquina (computadora), ya que sus instrucciones son cadenas binarias

5
(cadenas o series de caracteres de dígitos 0 y 1) que especifican una
operación y las posiciones (dirección) de memoria implicadas en la
operación se denominan instrucciones de máquina o código máquina. El
código máquina es el conocido código binario.
(Guzmán, 2021)
Las instrucciones en lenguaje máquina dependen del hardware de la
computadora y, por tanto, diferirán de una computadora a otra.
Ventajas del Lenguaje Máquina
- Posibilidad de cargar (transferir un programa a la memoria) sin
necesidad de traducción posterior, lo que supone una velocidad de
ejecución superior a cualquier otro lenguaje de programación.
(Guzmán, 2021)

Desventajas del Lenguaje Máquina

- Dificultad y lentitud en la codificación.


- Poca fiabilidad.
- Gran dificultad para verificar y poner a punto los programas.
- Los programas solo son ejecutables en el mismo procesador (CPU).
En la actualidad, las desventajas superan a las ventajas, lo que hace
prácticamente no recomendables a los lenguajes máquinas. (GUZMAN
LOZANO, 2021)
Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones
se escriben en códigos alfabéticos conocidos como mnemotécnicos para las
operaciones y direcciones simbólicas. (Guzmán, 2021)
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. Las instrucciones en lenguaje ensamblador
son instrucciones conocidas como nemotécnicos. Por ejemplo,
nemotécnicos típicos de operaciones aritméticas son: en inglés: ADD, SUB,
DIV, etc.; en español: SUM, RES, DIV, etc.
Una instrucción típica de suma sería:
ADD M, N, P
Esta instrucción significa "sumar el contenido en la posición de memoria M
al número almacenado en la posición de memoria N y situar el resultado en
la posición de memoria P”. Evidentemente es más sencillo recordar la
instrucción anterior con un nemotécnico que su equivalente en código
máquina. (Guzmán, 2021)

6
0110 1001 1010 101
Un programa escrito en lenguaje ensamblador, requiere de una fase de
traducción al lenguaje máquina para poder ser ejecutado directamente por
la computadora. (Guzmán, 2021)
El programa original escrito en lenguaje ensamblador se denomina
programa fuente y el programa traducido en lenguaje máquina se conoce
como programa objeto, el cual ya es directamente entendible por la
computadora. (Guzmán 2021)

Ventajas del lenguaje ensamblador frente al lenguaje máquina

- Mayor facilidad de codificación y, en general, su velocidad de cálculo.


Desventajas del lenguaje ensamblador
- Dependencia total de la máquina lo que impide la transpirabilidad de
los programas (posibilidad de ejecutar un programa en diferentes
máquinas. El lenguaje ensamblador del PC es distinto del lenguaje
ensamblador del Apple
Macintosh. (Guzmán, 2021)
- La formación de los programadores es más compleja que la
correspondiente a los programadores de alto nivel, ya que exige no solo
las técnicas de programación, sino también el conocimiento del interior
de la máquina. (Guzmán, 2021)
Los lenguajes ensamblador tienen sus aplicaciones muy reducidas, se
centran básicamente en aplicaciones de tiempo real, control de procesos y
de dispositivos electrónicos. (Guzmán, 2021)
Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel
(C++, Objet Pascal, Java, Cobol, Fortran, etc.) son aquellos en los que las
instrucciones o sentencias a la computadora son escritas con palabras
similares a los lenguajes humanos (en general en inglés), lo que facilita la
escritura y comprensión del programa. (Guzmán, 2021)
Estos lenguajes 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. Un
programa escrito en lenguaje de alto nivel es independiente de la máquina
(las instrucciones no dependen del diseño del hardware o de una
computadora en particular), por lo que estos programas son portables o
transportables. Los programas escritos en lenguaje de
alto nivel pueden ser ejecutados con poca o ninguna modificación en
diferentes tipos de computadoras. (Guzmán ,2021)

7
Ventajas de los lenguajes de alto nivel

- El tiempo de formación de los programadores es relativamente corto


comparado con otros lenguajes. (Guzmán ,2021)
- La escritura de programas se basa en reglas sintácticas similares a
los lenguajes humanos. Nombres de las instrucciones tales como
READ,
WRITE, PRINT, OPEN, etc. (GUZMAN LOZANO, 2021)
- Las modificaciones y puestas a punto de los programas son más
fáciles.
- Reducción del coste de los programas. - Transpirabilidad. (Guzmán,
2021)

Desventajas de los lenguajes de alto nivel

- Incremento del tiempo de puesta a punto al necesitarse diferentes


traducciones del programa fuente para conseguir el programa
definitivo.
- No se aprovechan los recursos internos de la máquina que se
explotan mucho mejor en lenguajes máquina y ensambladores.
- Aumento de la ocupación de memoria.
- El tiempo de ejecución de los programas es mucho mayor. (Guzmán,
2021)

Ilustración 2: lenguaje de programación

Programa.
Es el conjunto de instrucciones escritas de algún lenguaje de
programación y que ejecutadas secuencialmente resuelven un problema
específico. (Guzmán, 2021)
Programación.
La programación es un arte en que se ejercita la mente para cumplir
unos objetivos, en los cuales, aparte de nosotros -los humanos- también lo

8
interpretan las máquinas. La programación se basa en códigos. Un código
es una serie de instrucciones que aprovecharemos para hacer nuestros
programas. (Guzmán, 2021)

Paradigmas de programación.
En nuestro contexto, los paradigmas de programación nos indican las
diversas formas que, a lo largo de la evolución de los lenguajes, han sido
aceptadas como estilos para programar y para resolver los problemas por
medio de una computadora.(Guzmán, 2021)

Programación por procedimientos


Es el paradigma original de programación y quizá todavía el de uso
más común. En él, el programador se concentra en el procesamiento, en el
algoritmo requerido para llevar a cabo el cómputo deseado. (Guzmán, 2021)
Los lenguajes apoyan este paradigma proporcionando recursos para
pasar argumentos a las funciones y devolviendo valores de las funciones.
Fortran es el lenguaje de procedimientos original, Pascal y C son inventos
posteriores que siguen la misma idea. La programación estructurada se
considera como el componente principal de la programación por
procedimientos. (Guzmán, 2021)

Programación modular
Con los años, en el diseño de programas se dio mayor énfasis al diseño
de procedimientos que a la organización de la información. Entre otras cosas
esto refleja un aumento en el tamaño de los programas. La programación
modular surge como un remedio a esta situación. A menudo se aplica el
término módulo a un conjunto de procedimientos afines junto con los datos
que manipulan. Así, el paradigma de la programación modular consiste en:

a) Establecer los módulos que se requieren para la resolución de un


problema.
b) Dividir el programa de modo que los procedimientos y los datos queden
ocultos en módulos. (Guzmán, 2021)
Este paradigma también se conoce como principio de ocultación de
procedimientos y datos. Aunque C++ no se diseñó específicamente para
desarrollar la programación modular, su concepto de clase proporciona
apoyo para el concepto de módulo. (Guzmán, 2021)

Abstracción de datos
9
Los lenguajes como ADA y C++ permiten que un usuario defina tipos que
se comporten casi de la misma manera que los tipos definidos por el
lenguaje. Tales tipos de datos reciben a menudo el nombre de tipos
abstractos o tipos definidos por el usuario. El paradigma de programación
sobre este tipo de datos consiste en:
a) Establecer las características de los tipos de datos abstractos se
desean definir.

b) Proporcionar un conjunto completo de operaciones válidas y útiles


para cada tipo de dato. (Guzmán, 2021)
Cuando no hay necesidad de más de un objeto de un tipo dado, no es
necesario este estilo y basta con el estilo de programación de ocultamiento
de datos por medio de módulos. (Guzmán, 2021)
Programación orientada a objetos (OOP)
El problema con la abstracción de datos es que no hay ninguna distinción
entre las propiedades generales y las particulares de un conjunto de objetos.
Expresar esta distinción y aprovecharla es lo que define a la OOP a través
del concepto de herencia. El paradigma de la programación orientada a
objetos es, entonces,

A. Definir que clases se desean


B. Proporcionar un conjunto completo de operaciones para cada clase
C. Indicar explícitamente lo que los objetos de la clase tienen en común
empleando el concepto de herencia
En algunas áreas las posibilidades de la OOP son enormes. Sin
embargo, en otras aplicaciones, como las que usan los tipos aritméticos
básicos y los cálculos basados en ellos, se requiere únicamente la
abstracción de datos y/o programación por procedimientos, por lo que los
recursos necesarios para apoyar la OOP podrían salir sobrando. (Guzmán,
2021)

Editores de texto.
Un editor de texto es un programa que permite crear y modificar
archivos digitales
compuestos únicamente por texto sin formato, conocidos comúnmente como
archivos de texto o texto plano. (Guzmán, 2021)
Tipos de editores de texto
Hay una gran variedad de editores de texto. Algunos son de uso
general, mientras que otros están diseñados para escribir o programar en

10
un lenguaje. Algunos son muy sencillos, mientras que otros tienen
implementadas gran cantidad de funciones. (Guzmán, 2021)

Ejemplos

· Bloc de notas, editor integrado en Windows, también conocido como


Notepad (en inglés).
· Emacs, otro editor muy común en Unix.
· Gedit, editor libre que se distribuye junto con GNOME para sistemas tipo
Unix. También disponible para Windows.
· jEdit, editor popular multiplataforma.
· Kate, editor para Unix.
· Notepad++, editor de código fuente para Windows.
· Vi, editor muy común en Unix. (Guzmán, 2021)

Compiladores e intérpretes.
Existen dos tipos principales de traductores de los lenguajes de
programación de alto nivel:
· Compilador, traduce el código fuente a código objeto, una vez obtenido
el código objeto, el programa puede ejecutarse independientemente del
código fuente. La traducción con un compilador implica dos fases separadas,
una de compilación y otra de ejecución en la primera estaremos en fase de
compilación y en la segunda en fase de ejecución. Su acción equivale a la
de un traductor humano, que toma un libro y produce otro equivalente escrito
en otra lengua. (Guzmán, 2021)
Intérprete, que analiza el programa fuente y lo ejecuta directamente, sin
generar ningún código equivalente. Su acción equivale a la de un intérprete
humano, que traduce las frases que oye sobre la marcha, sin producir ningún
escrito permanente. Intérpretes y compiladores tienen diversas ventajas e
inconvenientes que los hacen complementarios: (Guzmán, 2021)
Un intérprete facilita la búsqueda de errores, pues la ejecución de un
programa puede interrumpirse en cualquier momento para estudiar el
entorno (valores de las variables, etc.). Además, el programa puede
modificarse sobre la marcha, sin necesidad de volver a comenzar la
ejecución. (Guzmán, 2021)
Un compilador suele generar programas más rápidos y eficientes, ya
que el análisis del lenguaje fuente se hace una sola vez, durante la
generación del programa equivalente. En cambio, un intérprete se ve

11
obligado generalmente a analizar cada instrucción tantas veces como se
ejecute (incluso miles o millones de veces). (Guzmán, 2021)

Un intérprete permite utilizar funciones y operadores más potentes,


como por ejemplo ejecutar código contenido en una variable en forma de
cadenas de caracteres. Usualmente, este tipo de instrucciones es imposible
de tratar por medio de compiladores. Los lenguajes que incluyen este tipo
de operadores y que, por tanto, exigen un intérprete, se llaman
interpretativos. Los lenguajes comparativos, que permiten el uso de un
compilador, prescinden de este tipo de operadores. (Guzmán, 2021)

Ejecutables.
Archivo que tiene la capacidad de poder ser ejecutado de forma
independiente, o, en otras palabras, que no necesita ser ejecutado por una
aplicación externa. Estos archivos son ejecutados y controlados por el
sistema operativo. Un archivo ejecutable contiene un programa, y
generalmente necesitan de otros archivos para funcionar (aunque no es
necesario). (Guzmán, 2021)
Un ejemplo de archivo ejecutable en Windows son los .EXE, o los
.COM en MSDOS.
En general, los archivos ejecutables son el principal medio de
transmisión de virus y malware. (Guzmán, 2021)

Consola de línea de comandos.


Es una interfaz para manipular un programa o sistema operativo con
instrucciones escritas. (Guzmán, 2021)
Sirve para configurar una computadora, Instalarle Software o trabajar
en una maquina remota. (Guzmán, 2021)

Análisis del Problema.


Es el primer paso a seguir para encontrar la solución a un problema
es el análisis del problema. (Guzmán, 2021)
En el análisis del problema se requiere del máximo de creatividad e
imaginación Debido a que se busca una solución se debe examinar
cuidadosamente el problema a fin de identificar qué tipo de información es
necesaria producir. En seguida se deben identificar aquellos elementos de
información ofrecidos por el problema y que resulten útiles para obtener la
solución al problema. un procedimiento para producir los resultados
deseados a partir de los datos, es el algoritmo (Guzmán, 2021)

12
Ilustración 3: consola de línea de comandos

1.3 Análisis de problemas.


Es el primer paso a seguir para encontrar la solución a un problema
es el análisis del problema. (Guzmán,2021)
En el análisis del problema se requiere del máximo de creatividad e
imaginación Debido a que se busca una solución se debe examinar
cuidadosamente el problema a fin de identificar qué tipo de información es
necesaria producir. En seguida se deben identificar aquellos elementos de
información ofrecidos por el problema y que resulten útiles para obtener la
solución al problema. un procedimiento para producir los resultados
deseados a partir de los datos, es el algoritmo (Guzmán,2021)

1.4 Representación de algoritmos: gráfica y pseudocódigo.


Las herramientas de programación utilizadas como lenguajes algorítmicos
son:

· Pseudocódigo: es un lenguaje algorítmico, muy parecido al español,


pero más conciso que permite la redacción rápida del algoritmo.
· Diagramas de flujo: ha sido la herramienta de programación por
excelencia, y aún hoy sigue siendo muy utilizada. Es fácil de diseñar
pues el flujo lógico del algoritmo se muestra en un diagrama en lugar
de palabras.
(Guzmán, 2021)
Pseudocódigo
Es un lenguaje de pseudoprogramación, muy parecido a un lenguaje de
programación. El pseudocódigo es muy fácil de utilizar, ya que es muy
similar al español. Algunas palabras utilizadas en el pseudocódigo:
– Inicio
– Fin
– Leer
– Escribir

13
– Asignar (x← yaz) (Guzmán, 2021)
Ejemplo Programa Calculo Área Rectángulo
1. Inicio
2. Leer; base, altura
3. Área ← base x altura
4. Escribir; base, altura, área
5. Fin (Guzmán, 2021)
Para desarrollar un seudocódigo se necesita saber los tipos de datos que
se deben tener:
Entero: Subconjunto finito de los números enteros, cuyo rango
dependerá del lenguaje en el que posteriormente codifiquemos el algoritmo
y del ordenador.
El rango depende de cuantos bits utilice para codificar el número,
normalmente 2 bytes. Para números positivos, con 16 se pueden almacenar
216. (Guzmán, 2021)

Real: Subconjunto de los números reales limitado no sólo en cuanto al


tamaño, sino
también en cuanto a la precisión (Guzmán, 2021)

Lógico: Conjunto formado por los valores Cierto y Falso. ‘1’ y ‘0’. (Guzmán,
2021)
Carácter: Conjunto finito y ordenado de los caracteres que el Ordenador
(Guzmán 2021)
Diagramas
Un diagrama de flujo utiliza símbolos estándar en el que cada paso
del algoritmo se visualiza dentro del símbolo y en el orden en que estos
pasos se ejecutan, se indica conectándolos con flechas llamadas líneas de
flujo, ya que indican el flujo lógico del algoritmo. (Guzmán, 2021)
El diagrama de flujo es la representación gráfica del algoritmo o
proceso. Se utiliza en disciplinas como la programación, la economía, los
procesos industriales y la psicología cognitiva. Estos diagramas utilizan
símbolos con significados bien definidos que representan los pasos del
algoritmo, y representan el flujo de ejecución mediante flechas que conectan
los puntos de inicio y de fin de proceso.
(Guzmán, 2021)

14
Ilustración 4: representacion de algoritmos en grafica

1.5 Diseño de algoritmos aplicados a problemas.


Los algoritmos son independientes tanto del lenguaje de
programación en que se expresan como de la computadora que lo ejecuta.
En cada problema el algoritmo se puede expresar en un lenguaje diferente
de programación y ejecutarse en una computadora distinta; sin embargo, el
algoritmo será siempre el mismo.
(Guzmán ,2021)
Dada la importancia del algoritmo en la ciencia de la computación, un
aspecto muy importante será el diseño de algoritmos. El diseño de la
mayoría de los algoritmos requiere creatividad y conocimientos profundos
de la técnica de la programación. (Guzmán, 2021)

Técnicas de diseño de algoritmos


Algoritmos voraces (greedy): seleccionan los elementos más
prometedores del conjunto de candidatos hasta encontrar una solución. En
la mayoría de los casos la solución no es óptima. (Guzmán, 2021)
Algoritmos paralelos: permiten la división de un problema en
subproblemas de forma que se puedan ejecutar de forma simultánea en
varios procesadores.
(Guzmán, 2021)
Algoritmos probabilísticos: algunos de los pasos de este tipo de
algoritmos están en función de valores pseudoaleatorios (Guzmán, 2021).

15
Algoritmos no determinantes: el comportamiento del algoritmo tiene forma
de árbol y a cada paso del algoritmo puede bifurcarse a cualquier número
de pasos inmediatamente posteriores, además todas las ramas se ejecutan
simultáneamente. (Guzmán, 2021)
Divide y vencerás: dividen el problema en subconjuntos disjuntos
obteniendo una solución de cada uno de ellos para después unirlas,
logrando así la solución al problema completo. (Guzmán, 2021)
Programación dinámica: intenta resolver problemas disminuyendo su
coste computacional aumentando el coste espacial. (Guzmán, 2021)
Ramificación y acotación: se basa en la construcción de las soluciones al
problema mediante un árbol implícito que se recorre de forma controlada
encontrando las mejores soluciones. (Guzmán, 2021)
Vuelta atrás (backtracking): se construye el espacio de soluciones del
problema en un árbol que se examina completamente, almacenando las
soluciones menos costosas. (GUZMAN LOZANO, 2021)

Ilustración 5: diseño de algoritmos

1.6 Diseño algorítmico de funciones


En este se explica detalladamente lo que realiza el algoritmo para
resolver el problema planteado. en un diseño de algoritmo que sea complejo
puede subdividirse en subprogramas para el estudio o la revisión de los
pasos que lleven a la solución y sea menos el índice de errores que tenga
al momento de la prueba, y a este diseño se le conoce como diseño modular
pues es sencillo revisar cada proceso ya antes dividido para su rápida
especificación y prueba. (Guzmán, 2021)
Un algoritmo cuenta con un inicio y sus subprogramas llamados
también diseño modular. (Guzmán, 2021)

16
La función es una estructura autónoma similar a los módulos. La
diferencia radica en que la función se usa para devolver un solo valor de un
tipo de dato simple a su punto de referencia. La función se relaciona
especificando su nombre en una expresión, como si fuera una variable
ordinaria de tipo simple. Las funciones se dividen en estándares y definidas
por el usuario. (Guzmán, 2021)
Estándar: Son funciones proporcionadas por cualquier lenguaje de
programación de alto nivel, y se dividen en aritméticas y alfabéticas.
(Guzmán 2021)
Definidas por el usuario: son funciones que puede definirlas el
programador con el propósito de ejecutar alguna función específica, y que
por lo general se usan cuando se trata de hacer algún cálculo que será
requerido en varias ocasiones en la parte principal del algoritmo. (Guzmán,
2021)

Tema 2 Introducción a la programación

17
2.1 Características del lenguaje de programación.
Un lenguaje de programación es un idioma artificial diseñado para
expresar procesos que pueden ser llevadas 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 y se mantiene el código fuente de un programa informático se le
llama programación. (Guzmán, 2021)
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.
(Guzmán, 2021)
Escritura de la lógica del programa empleando un lenguaje de
programación específico (codificación del programa). (Guzmán, 2021)
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de
máquina. (Guzmán, 2021)
Prueba y depuración del programa. (Guzmán, 2021)
Desarrollo de la documentación. (Guzmán, 2021)
Existe un error común que trata por sinónimos los términos 'lenguaje
de programación' y 'lenguaje informático'. Los lenguajes informáticos
engloban a los lenguajes de programación y a otros más. (Guzmán,
2021)
Un estándar de lenguaje de programas es un grupo de reglas que
describen como deben escribirse las sentencias y comandos de
programación. La regla de que los nombres variables tienen que
comenzar con una letra es un ejemplo de un estándar. Una variable es
un elemento que puede tomar diferentes valores (Guzmán, 2021)

2.2 Estructura básica de un programa.


Las partes principales de un programa están relacionadas con dos
bloques: declaraciones e instrucciones. (Guzmán ,2021)
En las instrucciones podemos diferenciar tres partes fundamentales
(Guzmán, 2021)
Entrada de Datos: La constituyen todas las instrucciones que toman los
datos de entrada desde un dispositivo externo y los almacena en la
memoria principal para que puedan ser procesados. (Guzmán, 2021)

18
Proceso o algoritmo: Está formado por las instrucciones que modifican
los objetos a partir de su estado inicial (datos de entrada) hasta el estado
final (resultados) dejando los objetos que lo contiene disponibles en la
memoria principal (Guzmán, 2021).
Salida de resultados: Conjunto de instrucciones que toman los datos
finales (resultado) de la memoria principal y los envían a los dispositivos
externos. (Guzmán, 2021)

El teorema de Böhm y Jacopini (1966) dice que un programa propio puede ser
escrito utilizando sólo tres tipos de estructuras de control (Guzmán, 2021):

ilustración 6 teoremas

2.2.1 Estructura secuencial


Una estructura de programa es secuencial si las instrucciones se
ejecutan una tras otra, a modo de secuencia lineal, es decir que una
instrucción no se ejecuta hasta que finaliza la anterior, ni se bifurca el
flujo del programa. (Guzmán, 2021)

2.2.2 Estructura selectiva o de selección


La estructura selectiva permite que la ejecución del programa se
bifurque a una instrucción (o conjunto) u otra/s, según un criterio o
condición lógica establecida, sólo uno de los caminos en la bifurcación
será el tomado para ejecutarse. (Guzmán, 2021)

• Estructura de control selectiva simple


• Estructura de control selectiva doble
• Estructura de control selectiva múltiple

19
2.2.3 Estructura de control cíclica o repetitiva
• Estructura de control desde
• Estructura de control mientras
Para estas estructuras son necesarios los operadores lógicos y de relación
(Guzmán, 2021)

Operadores de relación
Mayor a >
Menor a <
Mayor o igual a >=
Menor o igual a <=
Diferente a ~=
Operadores lógicos
Y (and) &
O (or) |
No (not) ~
Exclusivo o (or) xor

Tabla 1.1 estructuras

2.3 Traducción de un programa: compilación, enlace de un


programa, errores en tiempo de compilación.

2.3.1 Compilación
Un compilador es un programa informático que traduce un programa
escrito en un lenguaje de programación a otro lenguaje de programación,
generando un programa equivalente que la máquina será capaz de
interpretar. Usualmente el segundo lenguaje es lenguaje de la máquina,
pero también puede ser un código intermedio, o simplemente texto. Este
proceso de traducción se conoce como compilación. (Escobar, 2010)
Un programador puede diseñar un programa en un lenguaje mucho
más cercano a cómo piensa un ser humano, para luego compilarlo a un
programa más manejable por una computadora. (Escobar, 2010)

20
Ilustración 7 programador

2.3.2 ENLACE DE UN PROGRAMA


La creación de un programa ejecutable conlleva dos pasos. El primer
paso se llama compilación (propiamente dicho) y traduce el código fuente
escrito en un lenguaje de programación almacenado en un archivo a
código en bajo nivel (normalmente en código objeto, no directamente a
lenguaje máquina). El segundo paso se llama enlazado en el cual se
enlaza el código de bajo nivel generado de todos los ficheros y sub
programas que se han mandado compilar y se añade el código de las
funciones que hay en las bibliotecas del compilador para que el
ejecutable pueda comunicarse directamente con el sistema operativo,
traduciendo así finalmente el código objeto a Código máquina, y
generando un módulo ejecutable. (Escobar, 2010)

2.4 Ejecución de un programa.


A un programa en ejecución se le suele llamar también proceso. El
proceso de ejecución de un programa escrito en un lenguaje de
programación y mediante un compilador tiene los siguientes pasos:
(Escobar, 2010)
1. Escritura del programa fuente con un editor (programa que permite a
una computadora actuar de modo similar a una máquina de escribir
electrónica) y guardarlo en un dispositivo de almacenamiento.
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador.
4. Verificar y corregir errores de compilación.
5. Obtención del programa objeto

21
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendrá la salida del
programa.

Ilustración 8 proceso de ejecución

Se denomina tiempo de ejecución (runtime en inglés) al intervalo de


tiempo en el que un programa de computadora se ejecuta en un sistema
operativo. Este tiempo se inicia con la puesta en memoria principal del
programa, por lo que el sistema operativo comienza a ejecutar sus
instrucciones. El intervalo finaliza en el momento en que éste envía al
sistema operativo la señal de terminación, sea ésta una terminación
normal, en que el programa tuvo la posibilidad de concluir sus
instrucciones satisfactoriamente, o una terminación anormal, en el que el
programa produjo algún error y el sistema debió forzar su finalización.
Este término suele emplearse, en oposición a tiempo de compilación,
para indicar si una acción o hecho sucede en uno u otro tiempo. (Escobar,
2010)

2.5 Elementos del lenguaje: datos, literales y constantes,


identificadores, variables, parámetros, operadores, entrada y
salida de datos.

2.5.1 Tipos de datos


Todos los lenguajes de programación soportan algún conjunto de
diferentes tipos de datos. Un tipo de dato es un conjunto de valores y un
conjunto de operaciones definidas para esos valores. Un tipo de dato
describe un conjunto de objetos con la misma representación. Existe un
número de operaciones asociadas con cada tipo, por ejemplo: es posible
realizara aritmética sobre tipos de datos enteros y reales, concatenar con
los datos de tipo cadena o recuperar o modificar el valor de un elemento
de un arreglo. Un tipo de dato proporciona una descripción de sus
instancias que indican al compilador cosas como cuanta memoria se

22
debe asignar para una instancia, cómo representar los datos en memoria
y qué operaciones son permisibles sobre esos datos.
(Guzmán, 2021)
Los tipos de datos que se construyen en el compilador se conocen
como tipos de datos fundamentales o predefinidos. Cada lenguaje de
programación incorpora una colección de tipos de datos fundamentales,
que incluyen normalmente enteros, reales, carácter etc. Los lenguajes
soportan también un número de constructores de tipos de datos
estructurados o compuestos, que son tipos más complejos (Guzmán
,2021)

2.5.2 SIMPLES O PRIMITIVOS (Básicos, Fundamentales o predefinidos)


Son aquellos que reconoce directamente el lenguaje, sirven de base
para otros tipos de datos (complejos), ocupan solo una localidad de
memoria, para el almacenamiento de un valor simple, no de objetos
complejos. Por lo tanto, la variable que lo identifica hace referencia a un
valor único a la vez., este tipo de datos se clasifican de la siguiente
manera: (Guzmán, 2021)

2.5.3 Numéricos:
Son aquellos que solamente aceptan caracteres numéricos y el
carácter punto en el caso de aquellos valores fraccionarios. (Guzmán,
2021)
2.5.3 Enteros:
Son aquellos que consideran solamente valores enteros (sin
fracciones decimales) pudiendo ser precedidos por el carácter (-), para
asignarle el signo a los valores negativos. (Guzmán, 2021)
2.5.4 Carácter o char:
Ocupan 16 bits, con un rango de 0 a 65,536. Este rango tan amplio,
le permite al lenguaje representar cualquier carácter alfabético, numérico
(sin signo) o especial de cualquier lenguaje o idioma de cualquier parte
del mundo, garantizando con esto la portabilidad. El carácter debe estar
delimitado por comillas simples (apostrofes). (Guzmán, 2021)

2.5.6 NO PRIMITIVOS (Estructurados o compuestos)


Son aquellos que no están considerados por el lenguaje y tendrán
que ser definidos por el programador, empleando para ello los tipos de
datos simples o básicos. (Guzmán, 2021)

23
2.5.7 Identificadores, Variables y Constantes
Algunos de los principales componentes de un programa son los
Identificadores, las variables y las constantes. (Guzmán, 2021)
Identificadores: Se emplean para asignarle un nombre a una clase,
objeto, atributo, etc. Y se puede emplear en él, cualquier secuencia de
caracteres alfabéticos en mayúsculas o minúsculas, numéricos, los
caracteres de subrayado (guion bajo), el de dólar ($) y no se permiten los
espacios en blanco como separadores de palabras. (Guzmán, 2021)

2.5.8 Constantes
Una constante es una partida de datos que permanecen sin cambios en
el programa
(durante el desarrollo y ejecución). (Guzmán, 2021)

2.5.9 Variables
Una variable es una partida de datos cuyo valor puede cambiar en el
programa
(durante el desarrollo y ejecución). Los diferentes tipos de variables dependen
del lenguaje de programación, por lo general estas suelen ser enteras, reales,
carácter, lógicas y de cadena.
(Guzmán, 2021)

Tanto las variables como las constantes tienen un nombre o


identificador generalmente conformado por caracteres alfanuméricos
(ciertos lenguajes de programación admiten el carácter de subrayado ‘_’
como válido en los identificadores), y el primero de éstos debe ser una letra.
Para poder usar una variable en C++, primero debemos declararla
especificando cuál de los tipos de datos presentados arriba queremos que
sea. La sintaxis para declarar una nueva variable es escribir el especificador
de tipo de dato que queremos (como int, short, float...) seguido por un
identificador de variable. Por ejemplo: (Guzmán, 2021)
int a; float my number;

Son declaraciones validas de variables. La primera declara una variable


de tipo int con el identificador a. La segunda declara una variable de tipo
float con el identificador my number. Una vez declaradas, las variables a y
my number pueden ser usadas dentro del resto de su contexto en el
programa. (Guzmán, 2021)

Si necesita declarar algunas variables del mismo tipo y quiere


ahorrarse escritura, puede declarar todas estas en la misma línea
separando los identificadores con comas ( , ). Por ejemplo: (Guzmán,
2021)
24
Int
a,b,
c;

Declara tres variables (a, b y c) de tipo int, y tiene exactamente el


mismo significado que si hubiéramos escrito: (Guzmán, 2021)
int a; int
b; int c;

2.5.10 Inicialización de variables


Cuando declaramos una variable local, su valor es indeterminado por
defecto. Pero usted podría querer que una variable almacene un valor en
concreto al momento de su declaración. Para hacer esto, usted tiene que
anexar un signo igual seguido por el valor deseado en la declaración de la
variable: (Guzmán, 2021)

type identifier = initial_value ;

Por ejemplo, si queremos declarar una variable entera int llamada a


que contenga el valor 0 al momento en el cual es declarada, podríamos
escribir: (Guzmán, 2021)

int
a=
0;

Adicionalmente a esta forma de inicialización de variables (conocida


como clike), C++ ha añadido una nueva manera de inicializar una variable:
encerrando el valor inicial entre paréntesis ():type identifier (initial_value);
por ejemplo: (Guzmán,2021)

int a (0);

Ambas formas son válidas y equivalentes en C++. (GUZMAN LOZANO,


2021)

2.5.11 Constantes: Literales.

Una constante es cualquier expresión que tenga un valor arreglado.


Estos pueden ser divididos en números Enteros, números Punto-Flotante,
Cadenas y símbolos.
(Guzmán, 2021)
Números Enteros

25
1776
707 -
273

Estas son constantes numéricas que identifican números enteros


decimales. Note que para expresar una constante numérica no necesitamos
escribir comillas (") ni otro símbolo especial. No hay duda de que es una
constante dondequiera que se escriba 1776 en un programa, nos estaremos
refiriendo a el valor 1776. (Guzmán, 2021)
En adición a los números decimales (esos que ya todos nosotros conocemos)
C++ permite el uso de constantes literales de números octales (base 8) y números
hexadecimales (base 16). Si queremos expresar un número octal debemos
precederlo con un símbolo 0 (carácter cero). Y para expresar un número
hexadecimal tenemos que precederlo con los símbolos 0x (cero, x). Por ejemplo,
las siguientes constantes literales son todas equivalentes entre sí: 75 // decimal
0113 // octal 0x4b // hexadecimal. Todas representan el mismo número: 75 (setenta
y cinco) expresado como un número base 10, octal y hexadecimal,
respectivamente. (Guzmán, 2021)

2.5.12 Números Punto Flotante


Estos expresan números con decimales y/o exponentes. Estos
pueden incluir un punto decimal, un símbolo e (que expresa "por 10 a la n-
esima potencia", donde n es el siguiente valor entero) o ambos.
(Guzmán, 2021)
3.14159 // 3.14159 6.02e23 // 6.02 x 1023 1.6e-19 // 1.6 x 10-19 3.0 // 3.0

Estos son cuatro números válidos con decimales expresados en C++. El


primer número es PI, el segundo es el número de Avogadro, el tercero es la
carga eléctrica de un electrón (un número extremadamente pequeño) -todos
ellos aproximados- y el último es el número 3 expresado como un literal
numérico en punto flotante.
(Guzmán, 2021)

2.5.13Constantes declaradas (const)


Con el prefijo const usted puede declarar constantes con un tipo
especifico exactamente igual a como haría con una variable: (Guzmán,
2021)
const int width = 100;
const char tab = '\t';
const zip = 12440;

26
En caso de que el tipo no sea especificado (como en el último
ejemplo) el compilador asume que es de tipo int. (Guzmán, 2021)

2.6 Errores en tiempo de ejecución.


Los errores en tiempo de ejecución son los que se producen durante
la ejecución del programa. Son los más difíciles de encontrar, no son
detectados por el compilador, ya que son errores de lógica, no de
sintaxis. Aunque al compilar un programa no de errores, el programa
puede funcionar incorrectamente y/o a dar errores durante su ejecución.
Por ejemplo: (Sandoval , 2008)
• Un programa puede producir resultados erróneos, al equivocarnos
(errores lógicos) al programar el algoritmo (sumar en vez de restar, etc.).
(Sandoval, 2008)
• Un programa puede interrumpirse bruscamente, por ejemplo si
tenemos que hacer una división y el divisor es cero,etc. (Sandoval, 2008)
Los errores que se pueden producir en la fase de compilación son:

− Errores fatales: Son raros. Indican errores internos del compilador.


Cuando ocurren la compilación se detiene inmediatamente. (Sandoval,
2008)

− Errores de sintaxis: Son los errores típicos de sintaxis. No detienen la


compilación, sino que al finalizar ésta se mostrará la lista con todos los
errores encontrados. Algunos errores suelen ser consecuencia de otros
cometidos con anterioridad. Con este tipo de errores no se puede obtener
un programa objeto y por lo tanto tampoco el ejecutable. (Sandoval ,
2008)

Ilustración 9 errores

27
− Advertencias o avisos (warnings): Indican que hay líneas de código
sospechosas que, a pesar de no infringir ninguna regla sintáctica, el.
(Sandoval, 2008)
Compilador las encuentra susceptibles de provocar un error. Cuando
se detecta un warning la compilación no se detiene. Si en un programa.
(Sandoval, 2008)
fuente sólo se detectan warnings sí que se podrá obtener un programa
objeto, que tras el linkado dará lugar a un programa ejecutable.
(Sandoval, 2008)
Encontrar la causa que los provoca es una labor en ocasiones
complicada, razón por la cual los EID
(Entornos Integrados de Desarrollo,) nos proporcionan una
herramienta llamada Depurador que nos ayuda a encontrar los errores
lógicos y demás errores producidos en tiempo de ejecución. (Sandoval,
2008)
Un depurador (debugger), es un programa diseñado específicamente
para la detección, verificación y corrección de errores. Los depuradores
nos permiten trazar el programa (ejecutarlo sentencia a sentencia) y
visualizar el contenido de las variables y direcciones de memoria durante
la ejecución del programa. (Sandoval,2008)
Además, permiten alterar el flujo de ejecución de este, cambiar los
valores de las variables e introducir puntos de parada. (Sandoval, 2008)

2.7 Características del lenguaje C++


Algunas de las características más importantes que posee el lenguaje
C++ son:
Compatibilidad con bibliotecas: A través de bibliotecas hay muchas
funciones que están disponible y que ayudan a escribir código
rápidamente.
Orientado a Objetos: El foco de la programación está en los objetos y
la manipulación y configuración de sus distintos parámetros o
propiedades.
Rapidez: La compilación y ejecución de un programa en C++ es mucho
más rápida que en la mayoría de los lenguajes de programación.
(Guzmán, 2021)
Compilación: En C++ es necesario compilar el código de bajo nivel antes
de ejecutarse, algo que no ocurre en otros lenguajes.
Punteros: Los punteros del lenguaje C, también están disponibles en
C++.
Didáctico: Aprendiendo programación en C++ luego es mucho más fácil
aprender lenguajes como

28
Java, C#, PHP, Javascript, etc. (Guzmán, 2021)

2.7.1 Origen de C++


C++ es un lenguaje de programación que proviene de la extensión del
lenguaje C para que pudiese manipular objetos. A pesar de ser un
lenguaje con muchos años, su gran potencia lo convierte en uno de los
lenguajes de programación más demandados.
Fue diseñado a mediados de los años 80 por el danés Bjarne
Stroustrup. Si intención fue la de extender el lenguaje de programación
C (con mucho éxito en ese momento) para que tuviese los mecanismos
necesarios para manipular objetos. Por lo tanto, C++ contiene los
paradigmas de la programación estructurada y orientada a objetos, por
lo que se le conoce como un lenguaje de
programación multiparadigma. (Sandoval Ruiz, 2008)

Ilustración 10 paradigma

2.7.2 Función
Las aplicaciones del lenguaje C++ son muy extensas. Podemos
nombrar que navegadores WEB,Sistemas operativos, Bases de datos,
bibliotecas, aplicaciones gráficas, nubes, videojuegos, compiladores, etc
están escritos o tienen bastante de su estructura, programada C ++.
Vamos a hablar de algunas de estas aplicaciones: Bases de Datos:
MySQL, una de las bases de datos más utilizadas está escrita en C++.
Navegadores WEB: Utilizan C++ porque necesitan rapidez a la hora de
mostrar los resultados en pantalla.
Sistemas operativos: La columna principal tanto de Windows, como
Linux o Mac OS, están escritas en C++. Su potencia y rapidez lo hace un
lenguaje de programación ideal para programar un sistema operativo.
Compiladores: los compiladores de muchos lenguajes de
programación están escritos en C++.
29
Videojuegos: C++ es utilizado aún en el mundo de los videojuegos,
bien para programar motores gráficos o para alguna parte concreta del
videojuego.
También tiene otras aplicaciones como en máquinas médicas, relojes
inteligentes, etc. por su capacidad de estar cerca del lenguaje máquina
que otros lenguajes de alto nivel.
Por todos estos usos y aplicaciones podemos concluir que la
importancia del lenguaje C++ es muy grande y está presente en muchos
sitios. (Escobar, 2010)
2.7.3 Función de main
La función main sirve como punto de partida para la ejecución del
programa. Normalmente, controla la ejecución del programa dirigiendo
las llamadas a otras funciones del programa. A la función main se le
aplican varias restricciones que no se aplican a otras funciones de C.
El método Main es el punto de entrada de un programa ejecutable; es
donde se inicia y finaliza el control del programa. Main se declara dentro
de una clase o estructura. El valor de Main debe serstatic y no publico
(Escobar, 2010)

Ilustración 11 función main

2.7.4 Librería
Una librería es un conjunto de recursos (algoritmos) prefabricados,
que pueden ser utilizados por el programador para realizar determinadas
operaciones. Las declaraciones de las funciones (prototipos) utilizadas
en estas librerías, junto con algunas macros y constantes predefinidas
que facilitan su utilización, se agrupan en ficheros de nombres conocidos
que suelen encontrarse en sitios predefinidos (Sandoval , 2008)

2.7.5 Clases de librerías


Los compiladores C++ incluyen un amplio repertorio de clases,
funciones y macros que permiten realizar una amplia variedad de tareas,

30
incluyendo entradas/salidas de bajo y alto nivel; manipulación de
cadenas alfanuméricas y ficheros; control de procesos (incluyendo
multiproceso); manejo de memoria; cálculos matemáticos y un largo
etcétera. Este repertorio de recursos es denominado colectivamente
como "Rutinas de librería"; "Librerías de ejecución" RTL ("Runtime
Librarys") o simplemente "Librerías". Puede decirse que el lenguaje
aislado (tal cual) no tiene prácticamente ninguna utilidad sin la
concurrencia de estas utilidades. El Estándar C++ las clasifica según su
utilidad:
• Soporte del lenguaje • Diagnóstico • Utilidades generales
• Cadenas alfanuméricas ("Strings")
• Localización
• Contenedores
• Iteradores
• Algoritmos
• Cálculo numérico
• Entrada/Salida (Guzmán, 2021)

2.7.6¿Qué es una variable?


Podemos definir una variable, como un espacio en la memoria Ram
de nuestro ordenador, donde podemos guardar información, y
dependiendo del tipo de variable que nosotros necesitemos, ese espacio
ocupara mas o menos tamaño en la memoria. (Sandoval, 2008)

2.7.7 Función de una variable


C++ maneja varios tipos de variables: numéricas, de caracteres y
boolean (cierto o falso) esencialmente.
Para declarar una variable numérica llamada peso que inicie con un valor
de 0, escribimos esto: int peso=0;
Para declarar una variable numérica llamada distancia que inicie con un
valor de 2.67, escribimos esto: float distancia=2.67;
Para declarar una variable de carácter llamada inicial, con un valor de R,
escribimos esto: char inicial=’R’;
Para declarar una variable boolean llamada terminado, que empiece
como falso, escribimos esto:
bool terminado=false;
Las variables que podemos declarar en C++; son las siguientes:
Para variables numéricas sin decimales se usa: int
Para variables numéricas con decimales se usa: float
Para variables de un solo caracter se usa: char

31
Para variables boolean se usa: bool
Como declarar varias variables en C++
Solo se pone el tipo de dato (int, float, char, bool) y separamos las
variables con comas. int num=0, peso=16, altura=10;
Siempre va un punto y coma (;) al final de la declaración de variables
Una variable es un espacio de memorıa reservado en el ordenador
para contener valores que pueden cambiar durante la ejecución de un
programa. Los tipos que se le asignen a estas determinan como se
manipularía la información contenida en ellas (Sandoval, 2008)
Cada variable necesita un identificador que la distingue de las demás.
Un identificador valido es una secuencia de una o más letras, dígitos o
guiones bajos, recordando que no deben coincidir con palabras
reservadas del lenguaje, deben comenzar por una letra y además tomar
en cuenta que C++ hace diferencia entre mayúsculas y minúsculas.
(Sandoval, 2008)
Las variables que se pueden presentar en un programa son de los
siguientes tipos:
1. Variables Locales. Se definen solo en bloque en el que se vayan a
ocupar, de esta
manera evitamos tener variables definidas que luego no se utilizan.
(Sandoval, 2008)
2. Variables Globales. No son lo más recomendable, pues su existencia
atenta contra la comprensión del código y su encapsulamiento.
(Sandoval , 2008)
3. Variables estáticas. Se tienen que inicializar en el momento en que se
declaran, de manera obligatoria. (Sandoval, 2008)
Ahora hablemos de los tipos de datos que reconoce C++. Estos
definen el modo en que se usa el espacio (memoria) en los programas.
Al especificar un tipo de datos, estamos indicando al compilador como
crear un espacio de almacenamiento en particular, y también como
manipular este espacio. Un tipo de dato define el posible rango de valores
que una variable puede tomar al momento de ejecución del programa y
a lo largo de toda la vida útil del propio programa (Sandoval,2008)
Los tipos de datos pueden ser predefinidos o abstractos. Un tipo de
dato predefinido es intrínsecamente comprendido por el compilador. En
contraste, un tipo de datos definido por el usuario es aquel que usted o
cualquier otro programador crea como una clase, que comúnmente son
llamados tipos de datos abstractos.Los tipos de datos m´as comunes en
C++ son: TipodeDato EspacioenMemoria Rango unsigned char 8 bits 0
a 255 char 8 bits -128 a 127 short int 16 bits -32,768 a 32,767 unsigned

32
int 32 bits 0 a 4,294,967,295 int 32 bits -2,147,483,648 a 2,147,483,647
unsigned long 32 bits 0 a 4,294,967,295 enum 16 bits -2,147,483,648 a
2,147,483,647 long 32 bits -2,147,483,648 a 2,147,483,647 float 32 bits
3.4 x 10-38 a 3.4 x 10+38(6 dec) double 64 bits 1.7 x 10-308 a
1.7*10+308(15 dec long double 80 bits 3.4 x 10-4932 a 1.1 x 10+4932
void sin valo (Sandoval , 2008)

2.7.8 ¿Qué es un procedimiento?


Los procedimientos son básicamente lo un conjunto de instrucciones
que se ejecutan sin retornar ningún valor, hay quienes dicen que un
procedimiento no recibe valores o argumentos, sin embargo en la
definición no hay nada que se lo impida (Escobar, 2010)

Ilustración 12 procedimiento

Tema 3 Control de flujo


3.1 Estructuras secuenciales.
Las estructuras de control secuencial. Es decir, las estructuras más
sencillas y simples que se puedan crear en un código fuente.
Este programa será capaz de identificar unos datos de entrada,
procesarlos y mostrarlos o imprimirlos en la salida. Eso es lo más simple
frente a las estructuras de control selectivo, y las repetitivas, que veremos
en los dos próximos artículos de esta serie. Si se hace una comparación
entre una ruta y un algoritmo correspondiente a una de estas estructuras,
en el caso del control secuencial sería un camino recto, con un principio
y un final. En cambio, en la estructura de control selectivo el camino
podría tener bifurcaciones, y en el repetitivo podría asemejarse a una
especie de circuito. (Guzmán, 2021)

33
Ilustración 13 algoritmo

La estructura de control secuencial es un camino recto, desde un


inicio hasta el final. Y se irán ejecutando una serie de instrucciones o
pasos. Por ejemplo, que se introduzca un dato a través del teclado como
dos números y luego sumar ambos números y mostrar el resultado de la
suma. (Guzmán, 2010)
Eso sería un ejemplo de código con estructura secuencial. Realmente
todos los programas constan de unas instrucciones secuenciales, con un
inicio y un final, incluso otras estructuras que veremos más adelante, ya
que aunque haya varias bifurcaciones, saltos o bucles, siempre se suele
iniciar y terminar cuando se cumple una serie de condiciones. Así es al
menos desde el punto de vista de la CPU, que ejecutará la secuencia de
instrucciones hasta completar la ejecución de dicho programa (Guzmán,
2021)

3.2 Estructuras selectivas: simple, doble y múltiple.


La especificación formal de algoritmos tiene realmente utilidad
cuando el algoritmo requiere una descripción más complicada que una
lista de sencilla de instrucciones. (Guzmán, 2021)
34
Este es el caso cuando existe un número de posibles alternativas
resultantes de la evaluación de una determinada condición. (Guzmán,
2021)
Las estructuras selectivas se utilizan para tomar decisiones lógicas;
de ahí que se suelan denominar también estructuras de decisión o
alternativas (Guzmán, 2021).
En las estructuras selectivas se evalúan una condición y en función
del resultado de esta se realiza una opción u otra. Las condiciones se
especifican usando expresiones lógicas. (Guzmán, 2021)
La representación de una estructura selectiva se hace con palabras
en pseudocódigo (if, then, else\o bien en español si, entonces, si_no),
con una figura geométrica en forma de rombo o bien conun triangulo en
el interior de una caja rectangular. las estructuras selectivas o alternativas
pueden ser:
• Simples
• Dobles
• Múltiples (Guzmán, 2021)
La estructura simple es si (if) con dos formatos: Formato Pascal, si-
entonces (ifthen) y en formato C, si(if) a estructura selectiva doble es
igual que la estructura simple si al cual se le añade la cláusula si-no (else)
a estructura selectiva múltiples según-sea (switch en lenguaje C, case en
pascal (Guzmán, 2021)

Estructura Selectiva Simple


Se identifican porque están compuestos únicamente de una
condición. La estructura si-entonces evalúa la condición y en tal caso:
(Guzmán, 2021)
Si la condición es verdadera, entonces ejecuta la acción Si (o
acciones si son varias). Si la condición es falsa no se hace nada
(Guzmán, 2021)

Estructura Selectiva Doble


Son estructuras lógicas que permiten controlar la ejecución de varias
acciones y se utilizan cuando se tienen dos opciones de acción, por la
naturaleza de estas se debe ejecutar una o la otra, pero no ambas a la
vez, es decir, son mutuamente excluyentes. (Guzmán, 2021)

35
Estructura Selectiva Múltiple
Aplicando la estructura de decisión múltiples se evaluará una
expresión que podrá tomar n valores distintos, 1, 2, 3…, n y según que
elija uno de estos valores en la condición, se realizara una de las n
acciones o lo que es igual, el flujo del algoritmo seguirá solo un
determinado camino ente los n posibles. Esta estructura se representa
por un selector el cual si toma el valor 1 ejecutará la acción 1, si toma el
valor 2 ejecutará la acción 2, si toma el valor n realizará la acción n.
(Guzmán, 2021)

3.3 Estructuras iterativas: repetir mientras, hasta, desde

Ciclo for
Los ciclos for son lo que se conoce como estructuras de control de flujo
cíclicas o simplemente estructuras cíclicas, estos ciclos, como su nombre lo
sugiere, nos permiten ejecutar una o varias líneas de código de forma
iterativa, conociendo un valor especifico inicial y otro valor final (Guzmán,
2021)

• ¿Cómo funciona un Ciclo For?


Para comprender mejor el funcionamiento del ciclo for,
pongamos un ejemplo, supongamos que queremos mostrar los
números pares entre el 50 y el 100, si imaginamos un poco como
seria esto, podremos darnos cuenta que nuestro ciclo deberá
mostrar una serie de números como la siguiente: 50 52 54 56 58
60 ... 96 98 100. Como podemos verificar, tenemos entonces los
componentes necesarios para nuestro ciclo for, tenemos un valor
inicial que sería el 50, tenemos también un valor final que sería el
100 y tenemos un tamaño de paso que es 2 (los números pares).
Estamos ahora en capacidad de determinar los componentes
esenciales para un ciclo for. (Guzmán, 2021)

Ilustración 14 for ciclo

36
Ciclo while

Los ciclos while son también una estructura cíclica, que nos permite
ejecutar una o varias líneas de código de manera repetitiva sin necesidad
de tener un valor inicial e incluso a veces sin siquiera conocer cuando se
va a dar el valor final que esperamos, los ciclos while, no dependen
directamente de valores numéricos, sino de valores booleanos, es decir
su ejecución depende del valor de verdad de una condición dada,
verdadera o falso, nada más. (Guzmán, 2021)

• ¿Cómo funciona un Ciclo While?


Para comprender mejor el funcionamiento del ciclo while,
pongamos un buen ejemplo, imaginemos que, por algún motivo,
queremos pedirle a un usuario una serie de números cualquiera y que
solo dejaremos de hacerlo cuando el usuario ingrese un número
mayor a 100. Como vemos, aquí no podríamos utilizar un ciclo for,
pues no tenemos ni idea de cuándo al usuario se le va a ocurrir
ingresar un número mayor que 100, es algo indeterminado para
nosotros, sin embargo, el ciclo while nos permite ejecutar una acción
de forma infinita hasta que se cumpla alguna condición especifica, en
nuestro caso sería que el numero ingresado sea mayor a 100. De
modo que, si el usuario nos ingresa de manera sucesiva los
siguientes números 1,50,99, 49, 21, 30, 100 ..., nuestro programa no
finalizara, pues ninguno de estos números es mayor que 100, sin
embargo, si nos ingresara el número 300, el programa finalizaría
inmediatamente (Guzmán, 2021)

Ilustración 15 ciclo while

Ciclo do-while
Los ciclos do-while son una estructura de control cíclica, los cuales
nos permiten ejecutar una o varias líneas de código de forma repetitiva
sin necesidad de tener un valor inicial e incluso a veces sin siquiera
conocer cuando se va a dar el valor final, hasta aquí son similares a los
ciclos while, sin embargo el ciclo do-while nos permite añadir cierta

37
ventaja adicional y esta consiste que nos da la posibilidad de ejecutar
primero el bloque de instrucciones antes de evaluar la condición
necesaria, de este modo los ciclos do-while, son más efectivos para
algunas situaciones específicas. En resumen, un ciclo do-while, es una
estructura de control cíclica que permite ejecutar de manera repetitiva un
bloque de instrucciones sin evaluar de forma inmediata una condición
especifica, sino evaluándola justo después de ejecutar por primera vez
el bloque de instrucciones (Guzmán, 2021)

• ¿Cómo funciona un Ciclo Do-While?


Para comprender mejor el funcionamiento del ciclo while,
usemos de nuevo el ejemplo de la sección anterior sobre el ciclo
while. Imaginemos entonces que, por algún motivo, queremos pedirle
a un usuario una serie de números cualquiera y que solo dejaremos
de hacerlo cuando el usuario ingrese un número mayor a 100. Como
vimos anteriormente, esto se puede hacer por medio de un ciclo
while, pero vamos ahora a ver como lo podemos hacer usando un
ciclo do-while mejorando así un poco nuestro algoritmo, evitando
ciertos comandos, tal como se dijo con el ciclo while, en efecto aquí
estamos en la situación de no tener ni idea de cuándo al usuario se
le va a ocurrir ingresar un número mayor que 100, pues es algo
indeterminado para nosotros, sin embargo el ciclo while y en efecto
el do-while nos permite ejecutar cierta acción de forma infinita hasta
que se cumpla alguna condición especifica, en nuestro caso sería que
el numero ingresado sea mayor a 100.
De modo que si el usuario nos ingresa de manera sucesiva los
siguientes números 1,50,99, 49, 21, 30, 100 ..., nuestro programa no
finalizara, pues ninguno de estos números es mayor que 100, sin
embargo si nos ingresara el número 300, el programa finalizaría
inmediatamente. (Guzmán, 2021)

Ilustración 16 do while

3.4 Diseño e implementación de funciones

38
Las funciones son estructuras que pueden tomar una serie de parámetros, y
que al finalizar el proceso contenido en la función vuelve al punto seguido donde
fue invocado o llamado. Las funciones usan un identificador de la misma forma
que las variables, y además permiten devolver un valor. Normalmente se
ejecutan de forma secuencial, mientras la función no acabe su proceso el
programa que lo haya invocado espera.
(Guzmán, 2021)

Tema 4 Arreglos, Estructuras y Uniones


4.1 Unidimensionales: conceptos básicos, operaciones y aplicaciones
El concepto de array o arreglo nace de la necesidad de querer tener
datos del mismo tipo en un elemento contenedor que facilite la
accesibilidad, recordamos que el elemento contenedor variable
solamente puede contener un valor y que para almacenar muchos datos
tendríamos que tener tantas variables como datos existan. (Guzmán,
2021)
Los datos en un arreglo se almacenan de forma continua como
vagones en un tren, pero previamente se debe indicar la cantidad de
elementos o inicializarlo con los datos que se quiera almacenar. La forma
en que se opera con un arreglo es por medio de un índice de manera
similar a como trabaja una variable, normalmente no permiten tener
acceso a todos los elementos de una vez y en algunos lenguajes si se
omite el índice devuelve la dirección de memoria donde se encuentran los
elementos contenidos empezando desde el primero. Si se desea agregar
un nuevo elemento se tiene que redefinir el tamaño, no es posible
mediante un arreglo la agregación o eliminación de elementos,
solamente la lectura o modificación de elementos existentes. Las
aplicaciones comunes están ligadas a la gestión de datos, y suelen ser un
componente base para el desarrollo de otros elementos más complejos
dedicados a la gestión de datos como las listas. (Guzmán, 2021)

Aplicación Sencilla De Un Arreglo:


int[] arregloInicializado = { 12, 13, 14 };

// Declaracion del arreglo indicándole el tamaño o cantidad maxima de


elementos
int [] miArreglo = new int[9];

for (int indice = 0; indice < 10; indice ++ )


{
// ESCRITURA
//Indicamos donde queremos almacenar el elemento
miArreglo[indice]= indice;

39
// Asignamos el elemento, en este caso númerico

// LECTURA
Console.Out.WriteLine(miArreglo[indice]);
// Optenemos el elemento que se encuentre en el indice indicado
}
Ilustración 17 arreglo ejemplo

Operaciones
Para manejar un arreglo las operaciones a efectuarse son:
• Declaración del arreglo
• Creación del arreglo
• Inicialización del arreglo
• Acceso a los elementos de arreglo (Guzmán, 2021)
Aplicaciones
Los elementos de un arreglo son variables del tipo base del vector, por lo
que utilizan de la misma manera en expresiones y demás instrucciones,
como la asignación. Por ejemplo, para asignar un valor a un elemento de un
arreglo basta con escribir:
Arreglo[índice]=valor;
Importante: puesto que los arreglos son estructuras complejas (es
decir, no básicas), no es posible asignar un arreglo a otro mediante una
simple asignación (=). Para hacer esto es necesario escribir un ciclo y
asignar elemento a elemento (Guzmán, 2021)

4.2 Multidimensionales: Conceptos básicos, Operaciones y aplicaciones


Conceptos básicos.
Los arreglos multidimensionales tienen más de una dimensión. Este
también es un tipo de dato estructurado, que está compuesto por n
dimensiones. Para hacer referencia a cada componente del arreglo es
necesario utilizar n índices, uno para cada dimensión. (Guzmán, 2021)

Operaciones
Para manejar un arreglo, las operaciones a efectuarse son:
• Declaración del arreglo
• Creación del arreglo
• Inicialización de los elementos del arreglo
• Acceso a los elementos del arreglo(Guzmán, 2021)

Aplicaciones.

40
Se necesita manejar, en un arreglo, la posición todos los caracteres
escritos en una enciclopedia. El arreglo deberá tener las siguientes
dimensiones:
• Una para manejar el renglón en la página,
• otra para la columna en la página,
• otra para la hoja en el volumen y
• otra para el volumen en la enciclopedia.
Cada página tiene 30 renglones y 80 columnas.
Cada volumen tiene 500 páginas.
La enciclopedia tiene 18 volúmenes.
El siguiente fragmento de programa implementa la solución a este problema.
(Guzmán, 2021)

char car;
// Declara y crea el arreglo. char[ , , , ] enciclopedia
= new char [18,500,30,80] ; // Lee, desde el teclado,
cada carácter para la enciclopedia.
for(int v = 0 ; v < 18 ; v++) // Volumen
for(int p = 0 ; p < 500 ; p++) // Página
for(int r = 0 ; r < 30 ; r++) // Renglón
for(int c = 0 ; c < 80 ; c++) // Columna
{
Car = (char)Console.Read( );
enciclopedia[v,p,r,c] = car ;

4.3 aplicaciones en el programa


La aplicación más usual de los arreglos unidimensionales es para
guardar un conjunto de datos de forma consecutiva, por ejemplo requieres guardar
los nombres de varias personas.
(Guzmán,2021)
String nombres[]={"Julia", "José", "Manuel", "Brenda"};
Con el arreglo si quieres encontrar un nombre basta con recorrer arreglo
hasta encontrarlo, de otra forma usarías una variable para cada nombre algo que
no sirve si tienes una cantidad n muy grande de nombres que debes
guardar.(Guzmán,2021)
Otras aplicaciones de los arreglos son para hacer estructuras de datos tales cómo.
• Pilas
• Colas
• Listas

41
En el caso de arreglo Multidimensional, lo más común es usar matrices, las
cuales pueden ocuparse para hacer operaciones con matrices en términos
matemáticos:
• Suma de matrices
• Resta de matrices
• Multiplicación de matrices
• Determinante de una matriz
• Resolución de sistemas de ecuaciones (Guzmán,2021)

Glosario
Argumentos: valores de entrada con los cuales trabaja una rutina o
programa. Cuando un argumento se usa para ajustar un programa a los
requerimientos de un cliente se llama parámetro.
Batch: término inglés que en informática se traduce por los términos 'por
lotes', 'conjunto' o 'grupo'. Característica típica de ciertos procesos, que
indica una serie de tareas que se ejecutan de forma sucesiva en el
ordenador y se consideran como una unidad.
Capas o niveles de software: son todos aquellos niveles software que
se sitúan entre el usuario y los dispositivos físicos de la máquina, de
forma que el nivel de complejidad para la utilización de las capas o
niveles aumenta conforme nos acercamos al hardware.
Cargador: programa encargado de cargar las distintas líneas de código
de un programa ejecutable en la memoria principal del ordenador para
su posterior ejecución.
Código portable: aquel que puede moverse fácilmente de un tipo de
máquina a otra, aunque cambien las características internas de la misma.

42
Consola: dispositivo de entrada de datos a un ordenador, conocido más
genéricamente como teclado o terminal, ya sea manual o por conectores.
Controladores de E/S: dispositivos físicos encargados de gestionar la
transferencia de datos entre la CPU, a través del bús de datos del
ordenador y un periférico conectado al puerto de E/S.
CPU: Acrónimo inglés de "Central Processing Unit", en castellano,
"Unidad Central de Proceso". Aquella unidad incluida íntegramente en el
microprocesador (solo en PC's) de un computador que controla el resto
de unidades. Formada por la unidad aritmético-lógica, la unidad de
control y de pequeños registros principalmente. El control lo lleva a cabo
mediante la interpretación y la ejecución de instrucciones, según las
señales que le dicta un reloj.
Depurador: programa especializado en la corrección y eliminación de
errores en un código fuente durante su edición, o capturando diversos
datos durante su ejecución.
Editor de texto: programa orientado a la edición, y manipulación de
archivos de texto. No presenta características de procesamiento
complejas.
Enlazador: programa encargado de unir o enlazar el código de varios
módulos separados que mantienen llamadas o referencias cruzadas
entre los mismos, de forma que se pueda realizar su posterior ejecución.
Ensamblador: lenguaje de programación de medio nivel, el cual es
traducible directamente a lenguaje máquina. Está constituido por un
juego de instrucciones característico de cada máquina con distinta
arquitectura.
Hardware: conjunto de dispositivos físicos, metálicos y de materiales
plásticos que forman el ordenador u otro dispositivo conectado al mismo.
Interactividad: propiedad que es característica de entes comunicativos
en los cuales priman los tiempos cortos de respuesta. Es característico
de ciertos procesos y dispositivos.
Interfaz o interface: de un objeto es la parte de un objeto accesible
desde su exterior, que nos permite utilizarlo y consultar su estado interno.
La vamos a utilizar como medio de comunicación entre el objeto y
cualquier ente que quiera comunicarse con él.
Interrupción: detención temporal en un punto determinado de un
programa, para permitir el acceso y proceso de una rutina que tomará el
control del sistema. Puede ocurrir debido a diferentes causas ya sean
hardware o software.
Lenguajes de alto nivel: lenguajes simbólicos constituidos por un léxico,
una sintaxis y una semántica; los cuales son fácilmente entendibles por
el usuario cuando tiene que realizar programas para computadoras.
43
Lenguaje máquina: (instrucciones) son aquellas que basadas en
secuencias de ceros y unos (código binario), son entendibles
directamente por el ordenador y por lo tanto ejecutables sin necesidad
de traducción.
Máquina virtual: es aquella interface que mantiene una máquina
mediante la cual nos comunicamos con los dispositivos hardware del
ordenador. De esta forma nosotros trabajamos a un nivel superior
eliminando la complejidad de dichos dispositivos. De esta forma
podemos mantener distintos Sistemas Operativos corriendo sobre una
misma máquina.
Memoria dinámica: zona de la memoria principal que reservan los
compiladores para poder utilizarla mediante una serie de peticiones al
gestor de memoria en tiempo de ejecución.
Memoria principal: dispositivo que almacena información en forma de
datos codificados en binario. Es accedida directamente por la CPU y
además es de lectura y escritura, pero volátil. Está formada por una serie
de posiciones o celdillas de memoria, las cuales son referenciadas
mediante un sistema de direcciones lógicas.
Memoria secundaria: tipo de memoria auxiliar que retiene toda la
información almacenada cuando se desconecta de la fuente de
alimentación. Es de acceso lento, pero de gran capacidad.
Multiprogramación: sistema de programación que permite la ejecución
simultanea de varios procesos residentes en la memoria principal. Es
decir, todos los procesos avanzan en su ejecución
Nombre simbólico: nombre de variable, constante o tipo de dato,
mediante el cual accedemos lógicamente a los datos en memoria
principal sin tener que referenciar sus posiciones físicas. Utilizado en
lenguajes de programación.
Shells (interprete de órdenes): término inglés traducido por intérprete
de órdenes. Este es capaz de recoger las órdenes que el usuario realiza,
pasándolas al núcleo del Sistema Operativo para su ejecución.
Software: son los programas, incluyendo procedimientos, utilidades,
sistemas operativos, programas de aplicación y paquetes informáticos,
implementados para un sistema informático.
Software de sistemas: aquel que está orientado a la manipulación y
control directo del hardware mediante una serie de rutinas
especializadas.
Tarjetas: dispositivos estandarizados de material plástico con
perforaciones que permiten el almacenamiento de programas de forma
permanente.

44
Traductor: programa que convierte mediante una traducción un lenguaje
fuente en un lenguaje objeto, sin que por ello varíe la semántica del
código traducido, ya que tan solo cambia su representación
Compilación y depuración: La compilación es el procedimiento por el
cual un programa traduce un lenguaje de programación a lenguaje
máquina para que la computadora pueda interpretarlo. Al programa
encargado de realizar ésta tarea se le conoce como compilador.
La depuración es el proceso de búsqueda, identificación y corrección de
errores de programación. Existen varios métodos de depuración como
técnicas de revisión, programas de detección de errores (depuradores),
herramientas integradas en el entorno de desarrollo o revisión manual
por parte del programador usando un papel y bolígrafo o sentencias
auxiliares dentro del programa.
Los identificadores: son palabras o símbolos léxicos que sirven para
nombrar entidades y elementos dentro de un programa y que hacen
posible la referencia a ellos. Los lenguajes de programación cuentan con
restricciones para el uso de los caracteres posibles en identificadores.
Palabras reservadas: son un conjunto de términos que forman parte del
lenguaje de programación y tiene significado gramatical dentro de él, por
lo que no pueden usarse como identificadores.
Variable: es un espacio reservado en la memoria de un computador
durante la ejecución de un programa y que contiene valores susceptibles
de alterarse con el tiempo.
Constante: es exactamente lo mismo que una variable, pero a diferencia
de ésta, en una constante el valor que contiene no puede ser alterado.
Tipos de datos: Las variables y las constantes (y otras cosas) tienen otra
característica que es el tipo de dato, un atributo que indica a la
computadora la clase de datos que va a manejar dentro de una celda de
memoria concreta, imponiendo así restricciones acerca de las
operaciones que se pueden hacer con ellos.
Operador de datos: es un elemento del programa que se aplica a uno o
varios operando (variables, constantes, etc.) y por los cuales se
construye una expresión o instrucción.
Las estructuras de control: permiten al programador poder modificar el
flujo de ejecución de un programa, obligando a éste a realizar
repetidamente una serie de acciones o seleccionar para su ejecución una
entre varias de ellas.
Comentarios: son anotaciones legibles y aclaratorias que el
programador introduce dentro del código fuente de un programa.
Librerías: Una librería en C++ es un archivo en donde se define la
función y uso de muchas funciones diferentes. Si incluimos una librería
45
en nuestro programa entonces podemos usar rápida y fácilmente las
instrucciones que se definen en ella Compilación: La palabra compilar
significa traducir un código de programación a código ejecutable por la
máquina. Para compilar un código fuente y convertirlo en ejecutable hay
distintas formas dependiendo del compilador que se utilice
Datos: Todos los lenguajes de programación soportan algún conjunto de
diferentes tipos de datos. Un tipo de dato es un conjunto de valores y un
conjunto de operaciones definidas para esos valores
Numéricos: Son aquellos que solamente aceptan caracteres numéricos
y el carácter punto en el caso de aquellos valores fraccionarios.
Enteros: Son aquellos que consideran solamente valores enteros (sin
fracciones decimales) pudiendo ser precedidos por el carácter (-), para
asignarle el signo a los valores negativos.
Carácter o char: Ocupan 16 bits, con un rango de 0 a 65,536. Este rango
tan amplio, le permite al lenguaje representar cualquier carácter
alfabético,
No primitivos: Son aquellos que no están considerados por el lenguaje
y tendrán que ser definidos por el programador,
Constantes: Una constante es una partida de datos que permanecen sin
cambios en el programa
Variables: Una variable es una partida de datos cuyo valor puede
cambiar en el programa. Los diferentes tipos de variables dependen del
lenguaje de programación, por lo general estas suelen ser enteras,
reales, carácter, lógicas y de cadena.
Main: Main sirve como punto de partida para la ejecución del programa.
Normalmente
Función: Una función es un bloque de código que realiza alguna
operación. Una 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
Procedimiento: Los procedimientos son básicamente lo un conjunto de
instrucciones que se ejecutan sin retornar ningún valor bucle: También
denominado lazo, ciclo o instrucción de repetición. Es una estructura de
control que permite la repetición de una serie determinada de sentencias.
El cuerpo del bucle contiene las sentencias que se repiten. La acción o
acciones que se repiten en un bucle se denominan el cuerpo del bucle.:
Break: Se utiliza para interrumpir la ejecución de los ciclos como en el
caso del while, do while, for, Switch (Select Case). Ésta sentencia
proporciona una salida forzada y a continuación se ejecutará la línea de
programa que se encuentra al final del sitio.

46
Lista de referencias

BASURTO, M. A. P., & ESPÍN, J. M. C. (2010). INTRODUCCIÓN A LA PROGRAMACIÓN EN C


(VOL. 42). UNIV. POLITÈC. DE CATALUNYA.
RUIZ, C. J. M. (2008). FUNDAMENTOS DE PROGRAMACIÓN.
GUZMAN LOZANO, D. A. (2021). INTRODUCCION A LA PROGRAMACION/PROGRAMACION
BASICA.
ESCOBAR, A. M. V., & ORTEGA, Á. E. (2010). ASPECTOS FUNDAMENTALES
PARA LA ENSEÑANZA DE PROGRAMACIÓN BÁSICA EN INGENIERÍA.
AVANCES EN SISTEMAS E INFORMÁTICA, 7(1), 7-14.

47
SANDOVAL RUIZ, C. E., & FEDÓN, A. (2008). DESCRIPCIÓN MODULAR DE UN
ESQUEMA DE CODIFICACIÓN CONCATENADO PARA CORRECCIÓN DE
ERRORES CON PROGRAMACIÓN DE HARDWARE. INGENIARE. REVISTA
CHILENA DE INGENIERÍA, 16(2), 310-317. (SANDOVAL RUIZ, 2008

48

También podría gustarte