Anda di halaman 1dari 23

SEMANA 1

SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

INTRODUCCIÓN A LA PROGRAMACIÓN

SEMANA 1
Fundamentos de
Programación

Todos los derechos de autor son de la exclusiva propiedad de IACC o de los otorgantes de sus licencias. No está
IACC-2017
permitido copiar, reproducir, reeditar, descargar, publicar, emitir, difundir, poner a disposición del público ni
utilizar los contenidos para fines comerciales de ninguna clase. 1
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

OBJETIVOS ESPECÍFICOS
Reconocer los conceptos básicos fundamentales,
primitivas algorítmicas y principios de estructuras de
datos en la programación.

IACC-2017
2
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

OBJETIVOS ESPECÍFICOS ...................................................................................................................... 2


INTRODUCCIÓN ................................................................................................................................... 3
1. FUNDAMENTOS DE PROGRAMACIÓN......................................................................................... 4
1.1. CONCEPTOS BÁSICOS .......................................................................................................... 5
1.1.1. LÓGICA......................................................................................................................... 5
1.1.2. ALGORITMO ................................................................................................................ 6
1.1.3. SISTEMA..................................................................................................................... 10
1.1.4. ALGORITMO EN EL MARCO DE LA LÓGICA................................................................ 11
1.2. PRIMITIVAS ALGORÍTMICAS .............................................................................................. 12
1.2.1. TIPOS DE PRIMITIVAS ................................................................................................ 12
1.2.2. LAS PRIMITIVAS BÁSICAS........................................................................................... 14
1.2.3. ESTRUCTURAS LÓGICAS ............................................................................................ 14
1.3. PRINCIPIOS DE ESTRUCTURAS DE DATOS ......................................................................... 20
COMENTARIO FINAL.......................................................................................................................... 21

INTRODUCCIÓN

IACC-2017
3
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Conocer los fundamentos de la programación diarias y tener una visión basada en entradas
y los conceptos básicos permitirá desarrollar – procesos y salidas. Esta unidad brinda
un pensamiento basado en la teoría general elementos que definen una metodología
de sistemas que todo ingeniero o técnico estructurada de pensamiento lógico esto
debe conocer para resolver problemas en definiendo las bases y los conceptos
distintas áreas. La lógica aplicada a la generales que conllevarán a desarrollar más
programación así como el uso de algoritmos adelante programas en lenguajes
permiten lograr la organización de actividades especializados.

“Hay algo más importante que la lógica: es la imaginación”

Alfred Hitchcock

1. FUNDAMENTOS DE PROGRAMACIÓN

IACC-2017
4
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Los fundamentos de programación representan las bases comunes a todos programas que incluso
se deben manejar antes de elegir un lenguaje o software de programación. Estos fundamentos se
componen de elementos básicos y de estructuras claramente definidas que se deben identificar a
la hora de programar sistemas o aplicaciones.

1.1. CONCEPTOS BÁSICOS


Los siguientes conceptos permitirán comprender a nivel general la fundamentación teórica del
análisis y diseño de algoritmos que posteriormente permiten el desarrollo de la lógica de
programación:

1.1.1. LÓGICA
De acuerdo con DefinicionMX (s/f), se define a la lógica como una

“disciplina consistente en el estudio de los procedimientos formales de la razón. Esto quiere

decir que la misma se abocará a intentar conocer qué tipo de estos procedimientos son los

correctos a la hora de razonar. Su existencia se remonta a la antigüedad, en el seno del

nacimiento de la filosofía. En la actualidad es especialmente útil a la hora de realizar aportes

a la ciencia mediante el establecimiento de parámetros correctos e incorrectos para teorizar

y para procesar la información que se suscita de la experimentación”.

En el caso de la computación, la informática y el área ingenieril en general se puede hacer una


adaptación menos filosófica de lo que es la lógica definiendo una “lógica computacional”.

De acuerdo con Martínez (2014), la lógica computacional se fundamenta en la misma lógica


matemática pero con una aplicación al contexto de las ciencias de la computación. Su uso es
fundamental a varios niveles: en los circuitos computacionales (los circuitos internos de un
computador o equipo y su funcionamiento), en la programación lógica (diseño de diagramas de flujo
y algoritmos) y en el análisis y optimización (de recursos temporales y espaciales) de algoritmos.

IACC-2017
5
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

1.1.2. ALGORITMO
Este concepto es un término que todo ingeniero debe tener claro, dentro de la visión sistemática
del mundo (el mundo es un sistema con entradas y salidas) el término de algoritmo se puede definir,
de acuerdo con Mancilla (2014), como una secuencia o serie de pasos que deben seguirse para llegar
a un objetivo o lograr algo, El autor también menciona un conjunto de características que debe
tener todo algoritmo:

 Cada paso debe estar claramente definido.


 No tiene ambigüedades.
 Tiene un punto de partida y un punto de finalización.
 Se pueden identificar claramente entradas o insumos y salidos o productos.

A continuación se presenta un ejemplo de un algoritmo implementado como un proceso en una


organización:

Imagen 1: algoritmo como un proceso

Fuente: https://goo.gl/8np1bM

IACC-2017
6
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

A continuación se presenta un ejemplo de algoritmo implementado como una receta de cocina:

Imagen 2: algoritmo como una receta

Fuente: https://goo.gl/TdA3oM

Por último, se presenta un ejemplo de algoritmo en una situación cotidiana implementado como
diagrama de flujo:

IACC-2017
7
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Imagen 3: algoritmo como diagrama de flujo

Fuente: https://goo.gl/8bvew8

El siguiente video menciona la definición de un algoritmo y explica


por qué es importante conocerlo:

https://goo.gl/BACX8e

IACC-2017
8
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Imagen 4: algoritmo como modelo

La imagen 4 muestra que un algoritmo puede


definirse como un modelo que representa
una serie de pasos que deben cumplirse con
una secuencia específica. Además tiene
entradas que se procesan hasta obtener una
salida. También la imagen permite inferir que
un algoritmo es una representación previa al
desarrollo de un programa informático.

Fuente: https://goo.gl/1iku7j

En la imagen que se presenta a continuación se observa un diagrama de flujo que se puede seguir
paso a paso para verificar el funcionamiento de una lámpara. Si se siguen los pasos a detalle se
podrá diagnosticar el estado de la lámpara y saber la razón por la cual no ilumina.

IACC-2017
9
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Fuente: https://goo.gl/WGYwhA

1.1.3. SISTEMA
De acuerdo con Alegsa (2017), se define un sistema como un conjunto de partes o una serie de
elementos que se organizan y se relacionan generando interacciones entre sí para lograr un objetivo
o meta común. Los sistemas reciben (entrada) datos, energía o materia del ambiente y proveen
(salida) información, energía o materia.

A continuación se presentan algunos ejemplos de sistema:

a) El proceso de fotosíntesis de un árbol es un sistema, tal como se aprecia en la figura. La


meta es generar oxígeno para el hombre, pero requiere de entradas como luz solar,
nutrientes, agua, etc.

Fuente: www.alegsa.com.ar

b) El sistema respiratorio humano, que hace que el organismo absorba oxígeno y se genere la
respiración. Se puede identificar como entrada al sistema el oxígeno que ingresa por medio
de la nariz o boca, ese aire es procesado por todos los órganos que componen el sistema
respiratorio y como salida, se expulsa dióxido de carbono. El objetivo común de todos los
elementos del sistema es que los pulmones realicen su función y el organismo puede estar
vital y activo.

IACC-2017
10
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Fuente: www.alegsa.com.ar

1.1.4. ALGORITMO EN EL MARCO DE LA LÓGICA


Para definir lo que representa un algoritmo en el marco de la lógica se deben considerar dos
elementos de acuerdo con Mancilla (2015), por un lado que la lógica está conformada por el
conjunto de reglas que conforman el sistema de razonamiento y por otro lado, un algoritmo es un
conjunto de pasos finitos que responde a una lógica tal que permite su automatización y posterior
codificación en un lenguaje de programación. Por lo tanto, al hablar de un algoritmo en el marco
de la lógica se debe tener presente la Teoría de la Información, teoría en la que se fundamenta el
procesamiento de datos bajo una secuencia ordenada, bajo ciertas estructuras de control.

De acuerdo con Holik (2016), el objetivo de la Teoría de la Información es el de proporcionar una


definición rigurosa de la noción de información, que permita cuantificarla dentro de un sistema.
Esta teoría fue desarrollada con el fin de encontrar los límites fundamentales en las operaciones de
procesamiento de señales tales como compresión de datos, almacenamiento y comunicación.

Por lo tanto a partir de un algoritmo se puede generar información como salida, y por ende, se debe
fundamentar la definición de algoritmos en el contexto de la teoría de la información.

IACC-2017
11
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Además, un algoritmo permite representar situaciones de todo nivel de complejidad y abstracción


del mundo real, esto, por medio de reglas lógicas. El hombre por medio de la imaginación incluso
puede encontrar soluciones a problemas utilizando un “pensamiento algorítmico” o estructurado
por pasos claramente definidos.

Una vez que se tiene una lógica algorítmica, o un algoritmo claramente definido se requiere de un
lenguaje de programación que permita un procesamiento electrónico de los datos, por tanto este
algoritmo es el esqueleto de un programa de computación. Esta relación entre algoritmo – lógica y
lenguaje de programación genera la “lógica de programación”, competencia necesaria en personas
dedicadas al diseño y desarrollo de software.

Se puede mencionar de acuerdo con Mancilla (Ob. Cit.) que los datos son elementos de entrada que
proveen información al algoritmo, el cual procesa los datos generando información que a su vez
genera el conocimiento y éste es interpretado por el usuario.

1.2. PRIMITIVAS ALGORÍTMICAS


De acuerdo con Mancilla (2014), se presentan a continuación los principales bloques o componentes
de un algoritmo. Estas primitivas representan la manera en la que se traduce la secuencia de pasos
que componen el algoritmo pero con una lógica estructurada, secuencial y ordenada.

1.2.1. TIPOS DE PRIMITIVAS


De acuerdo con Mancilla (2014), existen diferentes tipos de primitivas:

a) Primitiva de Inicio y Fin: estas primitivas representan en un algoritmo cuando comienza y


cuando termina el mismo. Se debe considerar que todo algoritmo debe ser finito, es decir,
el número de pasos debe conocerse y por tanto el algoritmo debe terminar en algún
momento.
b) Primitivas de Asignación: esto consiste en saber cuándo un dato debe ser almacenado en
una variable. Un ejemplo de esta primitiva se puede ver en el siguiente caso:

IACC-2017
12
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

EJEMPLO

Juan se está mudando de casa, para ello tiene 5 cajas en las cuales debe asignar elementos
similares, por lo tanto decide: en la caja 1 asigna libros, caja 2: ROPA, caja 3: artículos de
limpieza, caja 4: zapatos y en la caja 5: objetos frágiles. De esta manera al identificar cada
caja Juan podrá conocer en todo momento el contenido de ellas.

c) Primitivas de entrada y salida:


a. En un algoritmo, las entradas que ingresan al conjunto de pasos o al proceso se
introducen por medio de un procedimiento de lectura: LEER.
b. En un algoritmo, las salidas que se muestran luego de ejecutar un conjunto de pasos
se visibilizan mediante un procedimiento de escritura: ESCRIBIR.

EJEMPLO

Diseñar un algoritmo que sume dos números que indique una persona o usuario.

INICIO

Paso 1: LEER (número 1)

Paso 2: LEER (número 2)

Paso 3: SUMA = número 1 + número 2

Paso 4: ESCRIBIR: (La suma es: SUMA)

FIN

 Es importante destacar que antes del paso 1 y luego del paso 4 se tienen
primitivas de inicio y fin.
 El paso 3 evidencia una política de asignación.
 Los pasos 1 y 2 muestran primitivas de entrada.
 El paso 4 muestra una primitiva de salida.

Las primitivas anteriores (inicio/fin, asignación y de entrada y salida) se denominan estructuras


básicas o estructuras pi.

IACC-2017
13
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

1.2.2. LAS PRIMITIVAS BÁSICAS


Estas primitivas corresponden al conjunto de estructuras de tipo lógico que se deben ejecutar
secuencialmente desde el paso 1 hasta el fin de un algoritmo de acuerdo con Mancilla (Ob. Cit), ya
que las mismas permiten construir estructuras lógicas más complejas.

Entonces, una primitiva básica no es más que una instrucción que permite ejecutar una o varias
acciones dentro del algoritmo o programa.

Es importante destacar que una primitiva es equivalente a una instrucción de un lenguaje de


programación cuando el algoritmo ya ha sido ejecutado en un software.

1.2.3. ESTRUCTURAS LÓGICAS


Una estructura lógica parte de una condición simple, generalmente asociada a una causa y a un
efecto. Por ejemplo:

“Si María estudia y revisa el material de la semana, ENTONCES le irá bien en el control”

La condición no es otra cosa que una decisión que debe ser tomada, por tanto genera dos posibles
respuestas, una afirmativa (VERDADERA) si se cumple la condición y una negativa en caso de que
no se cumpla (FALSO).

Figura 1: Esquema de un condicional simple

Fuente: https://goo.gl/LYMgvc

De acuerdo con Urbaez (2005), a las estructuras condicionales simples se les conoce como “tomas
de decisión”. Estas tomas de decisión se clasifican de la siguiente manera:

IACC-2017
14
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Simples:

Las estructuras condicionales simples están compuestas de una única condición que si se cumple
genera una acción, en caso de que no se cumpla no ocurre ninguna acción y finaliza la estructura de
control.

Pseudocódigo: Diagrama de flujo:

Dobles:

Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en
función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Pseudocódigo: Diagrama de flujo:

Dónde:
 Si: indica el comando de comparación.
 Condición: indica la condición a evaluar.
 Entonces: precede a las acciones a realizar cuando se cumple la condición.
 Instrucción(es): son las acciones a realizar cuando se cumple o no la condición.

IACC-2017
15
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

 si no: precede a las acciones a realizar cuando no se cumple la condición.


 Dependiendo de si la comparación es cierta o falsa, se pueden realizar una o más
acciones.

Múltiples:

Las estructuras de comparación múltiples, son tomas de decisión especializada que permiten
comparar una variable con distintos posibles resultados, ejecutando para cada caso una serie de
instrucciones específicas. La forma común es la siguiente:

Pseudocódigo: Diagrama de flujo:

Variable edad entero // Uso de variables de tipo número entero


Inicio // Primitiva de inicio, indica que inicia el algoritmo
Escribir “¿Cuál es tu edad?” // Primitiva de salida
Leer edad // Primitiva de entrada
Si edad >= 18 entonces // Estructura condicional simple
Escribir “Eres mayor de edad” // Primitiva de salida
Fin // Primitiva de fin.

IACC-2017
16
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

EJEMPLO 1

Algoritmo en el cual se pide la edad del usuario; si es mayor de edad debe aparecer un
mensaje indicándolo. Expresado en Pseudocódigo:

Variable edad entero // Uso de variables de tipo número entero


Inicio // Primitiva de inicio, indica que inicia el algoritmo
Escribir “¿Cuál es tu edad?” // Primitiva de salida
Leer edad // Primitiva de entrada
Si edad >= 18 entonces // Estructura condicional simple
Escribir “Eres mayor de edad” // Primitiva de salida
Fin // Primitiva de fin.

Nota: En este momento no se ha hablado de variables y de tipos de datos, por lo tanto se


debe poner mayor atención en comprender la lógica de la estructura condicional.

IACC-2017
17
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

EJEMPLO 2

Construir un algoritmo, que dado como dato la calificación de un alumno en un


examen, escriba "Aprobado" en caso que esa calificación fuese mayor que 4. Un
alumno aprueba si la calificación es mayor que 4.

Salidas: mensaje de aprobado si se cumple la condición


Entradas: calificación.
Expresado en seudocódigo:
Variables Calificación real // Uso de variables de tipo numero con decimales
Inicio
Leer (calificación)
Si calificación > 8
entonces
Escribir ("aprobado")
Fin

IACC-2017
18
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

EJEMPLO 3

Construir un algoritmo, que dado como datos el nombre de un empleado y su


venta diaria, realice el cálculo de sus comisiones. Si vendió menos de 250000 pesos
la comisión es del 1%; si vendió entre 250000 y 500000, la comisión es 2%; y si
vendió más, la comisión será de un 3%.

Variable nombre cadena [25]


Variable monto_vendido REAL
Variable comisión REAL // Este valor no lo conocemos, será calculado

Inicio
Leer nombre
Leer monto_vendido

Si monto_vendido < 250000 entonces


comisión = 250000*1%
sino

Si monto_vendido >= 250000 y <= 500000 entonces


comisión = 2500000*2%

Sino

Comisión = 2500000*3%

Escribir: ("El monto de las comisiones de" nombre, “es de”: comisión)

Fin

IACC-2017
19
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Esta estructura condicional también puede ser compuesta y


pueden dar origen a otras estructuras más complejas de datos
que serán estudiadas en las siguientes semanas.

1.3. PRINCIPIOS DE ESTRUCTURAS DE DATOS


De acuerdo con Martín, Toledo y Cerverón(2002), la información útil no aparece de manera aislada
como simples datos que trabajan como entradas en el procesamiento electrónico de la información,
es decir, existen estructuras organizadas que definen la forma en que los datos se encuentran. Un
ejemplo es un diccionario o un libro, que se comporta como una estructura de colección de datos
útil y organizada que requiere de cierta secuencia para ser comprendida por los lectores.

En este sentido, identificar las estructuras de datos a la hora de realizar algoritmos es fundamental
ya que permitirá tomar decisiones para resolver un determinado problema. En este sentido, Martín
(Et al.,2012), indican que:

Programación = Estructura de Datos + Algoritmos

Con esta ecuación se destaca el hecho de que un algoritmo bien definido con estructuras de datos
coherentes y claras genera programas implementados en lenguajes de programación que son
capaces de generar la salida adecuada, de acuerdo al objetivo que pretendia alcanzar el algoritmo.

Conceptos generales:

A continuación se presentan dos conceptos generales que se deben tener en cuenta al deinifir una
estructura de datos, ya que los datos pueden variar de acuerdo a su complejidad y el programador
del algoritmo debe tener la capacidad de traducirlos dentro del programa a diseñar.

 Dato simple: es un dato que no está compuesto por ninguna otra estructura de datos, su
representación es directa.
Por ejemplo: se tiene un algoritmo que recibe como entrada el dato NÚMERO, si el número
es par debe mostrar un mensaje que indique: “NUMERO PAR” de lo contrario debe mostrar
un mensaje que indique que: “EL NUMERO NO ES PAR”. El dato NÚMERO en este algoritmo
representa un dato simple.
 Estructura de datos: colección de datos que se caracteriza por su organización.

IACC-2017
20
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Por ejemplo: se tiene un algoritmo que registra el dato ESTUDIANTE, el estudiante tiene su
RUT, dirección, carrera, notas y correo. El algoritmo debe identificar el promedio de notas
del estudiante y si está activo o inactivo. En este caso el dato ESTUDIANTE, es una estructura
de datos que lo componen.

COMENTARIO FINAL
El mundo actual requiere que los problemas sean solucionados en menos tiempo y con la menor
cantidad de recursos. Bajo esta premisa el conocer la lógica aplicada a la programación permitirá el
ordenamiento de ideas y la definición de procesos de manera correcta que permita dar soluciones
a situaciones de todo tipo.

Además, para comprender la lógica algorítmica se debe generar un estándar de orden y estructura,
por tanto es vital que las estructuras de datos así como las primitivas puedan ser identificadas en
cualquier situación real sea cual sea el ámbito. Dentro del mundo de la computación, la informática,
las telecomunicaciones, la automatización y la ingeniería en general estos elementos permitirán
desarrollar programas vía software que permitan la integración con elementos e interfaces de
hardware con diversidad de aplicaciones en todas las áreas de la vida.

REFERENCIAS

IACC-2017
21
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

Alegsa, A. (2017) Definición de sistema. Recuperado de:

http://www.alegsa.com.ar/Dic/sistema.php

DefinicionMX (s.f). Lógica. Recuperado de: https://definicion.mx/logica/.

Holik, F. (2016). Teoría de la información de Claude E. Shannon. Recuperado de:

http://dia.austral.edu.ar/Teoría_de_la_información_de_Claude_E._Shannon

Mancilla, A., Ebratt, R. y Capacho, J. (2014). Diseño y construcción de algoritmos. Barranquilla,

Colombia: Editorial Universidad del Norte.

Martínez, A. (2014). La lógica Computacional. Recuperado de:

http://computacionallogica.blogspot.cl/

Martín, G.; Toledo, F.; y Cerverón, C. (2002). Fundamentos de la Informática y la Programación.

Universidad de Valencia. Recuperado de: http://robotica.uv.es/Libro/Indice.html

Urbaez (2005); Estructuras Condicionales. Recuperado de:


https://desarrolloweb.com/articulos/2225.php

IACC-2017
22
SEMANA 1 – INTRODUCCIÓN A LA PROGRAMACIÓN

IACC-2017
23

Anda mungkin juga menyukai