Conceptos Básicos de Algoritmos y Programación
Conceptos Básicos de Algoritmos y Programación
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
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
Procedimientos.
5.2 Activación / Invocación de Funciones y
Procedimientos
5.3 Uso de Funciones y Procedimientos con Parámetros.
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
Software de aplicaciones
Algoritmo.
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)
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)
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)
7
Ventajas de los lenguajes de alto nivel
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 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:
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.
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
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)
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)
12
Ilustración 3: consola de línea de comandos
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)
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
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)
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)
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)
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
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
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
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.
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.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)
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)
int
a=
0;
int a (0);
25
1776
707 -
273
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)
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)
28
Java, C#, PHP, Javascript, etc. (Guzmán, 2021)
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)
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)
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)
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)
Ilustración 12 procedimiento
33
Ilustración 13 algoritmo
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)
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)
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)
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)
Ilustración 16 do while
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)
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)
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 ;
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
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