Vous êtes sur la page 1sur 14

FACULTAD DE INGENIERIA DE SISTEMAS Y MECANICA ELECTRICA

ESCUELA PROFESIONAL DE INGENIERÍA SISTEMAS

NOMBRE DEL CURSO

Investigación de operaciones

CICLO: IV - SEMESTRE ACADÉMICO: 2018-I

INTEGRANTES:

Contreras Ramos Caled Código: 7810907062

DOCENTE DEL CURSO:

ING. LEYDI VIOLETA CUBAS CORONEL

CHACHAPOYAS, 2018
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Contenido
FUNDAMENTOS DE PROGRAMACIÓN........................................................................................... 3
¿Qué es un lenguaje de programación? ................................................................................... 3
Por nivel:................................................................................................................................ 3
Por la forma como se ejecutan ............................................................................................. 3
Datos: ........................................................................................................................................ 4
Variables y constantes: ......................................................................................................... 4
Los ciclos o bucles ..................................................................................................................... 6
Partes de una bucle ............................................................................................................... 6
Tipos de bucles ...................................................................................................................... 6
Bifurcaciones ............................................................................................................................. 7
Bifurcación 'If'........................................................................................................................ 7
Bifurcación 'If', 'else'.............................................................................................................. 7
Bifurcación 'If', 'elseif', 'else' ................................................................................................. 7
Bifurcaciones If anidadas....................................................................................................... 8
Funciones .................................................................................................................................. 9
Definición de funciones ......................................................................................................... 9
Errores de programación. ....................................................................................................... 10
Errores de sintaxis: .............................................................................................................. 10
Errores de enlazado: ........................................................................................................... 11
Errores de ejecución:........................................................................................................... 11
Errores de diseño: ............................................................................................................... 11
CARACTERÍSTICAS Y PROPIEDADES DE LOS ALGORITMOS.......................................................... 11
Características de los algoritmos ............................................................................................ 11
Propiedades de un algoritmo .................................................................................................. 12
Enunciado del problema. .................................................................................................... 12
Análisis de la solución general. ........................................................................................... 12
Elaboración Del Algoritmo .................................................................................................. 12
Bibliografía .................................................................................................................................. 13
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

FUNDAMENTOS DE PROGRAMACIÓN
Se llama Programación a la implementación de un algoritmo en un determinado lenguaje de
programación, para realizar un programa.

Algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse
para resolver un problema.

Programa (Software en inglés) es una secuencia de instrucciones que una computadora puede
interpretar y ejecutar a través de un ordenador para realizar una determinad tarea.

El proceso de creación de software es materia de la ingeniería del software, una de las ramas
propias de la Ingeniería Informática.

¿Qué es un lenguaje de programación?


Los lenguajes de programación son herramientas de comunicación, los destinarios de los
leguajes de programación no solo son humanos sino también ordenadores.

El propósito general de un lenguaje de programación es permitir a un ser humano (el


programador) traducir la idea de un programa a una secuencia de instrucciones que el
ordenador sea capaz de ejecutar.

Tipos de lenguajes de programación

Los lenguajes de programación se clasifican en varios tipos, los hay por nivel, y por la forma
como se ejecutan.

Por nivel:
Hay lenguajes de programación de alto nivel y lenguajes de bajo nivel. Los lenguajes de alto
nivel permiten que con pocas palabras se logre hacer lo mismo que se logra con un lenguaje de
bajo nivel.

Ejemplos de lenguajes de alto nivel: C++, Java, Python

Ejemplos de lenguaje de bajo nivel: assembler

Por la forma como se ejecutan


Hay lenguajes compilados e interpretados.

Los lenguajes compilados necesitan de un programa especial que lea el código fuente y cree un
archivo binario ejecutable para una plataforma específica. Ejm: C++, Pascal.

Los lenguajes interpretados necesitan de un programa que traduzca en directo el código fuente
escrito a instrucciones de la plataforma en la que se ejecutan. Ejm: Python, Visual Basic, Script.

Los primeros son más rápidos, mientras que los segundos son más lentos, esto debido a que al
compilar un programa las ordenes son más entendibles para la computadora, mientras que al
interpretarlo la máquina primero debe leer el código y convertir al paso las instrucciones a
instrucciones de máquina entendibles para ella.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Además tiene cuatro aspectos fundamentales que se podrían decir que son las cuatro patas de
la programación qué son las siguientes.

 Datos
 Bucles
 Bifurcaciones
 Funciones

Datos:
Los datos que almacena un ordenador son siempre números. Incluso las letras almacenadas en
un ordenador se almacenan como números; en este caso los números codifican una letra (por
ejemplo: la letra a es el número 97 en la codificación ASCII).

Dentro de los datos existen tipos de este el cual se nos hace de manera muy primordial poderlo
mencionar, así más adelante no tengamos inconvenientes al tratar de entender la
programación.

Variables y constantes:
Una variable o una constante es un dato, o conjunto de datos en la memoria del ordenador de
especial interés para el programa y que recibe un nombre simbólico dentro del código del
programa.

Cuando el valor de ese dato puede verificarse, se dice que es una variable cuando el valor de
este puede modificarse y sino se dice que es una constante.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

TIPO DE
SUBTIPO DESCRIPCIÓN VARIABLES VALORES
DATO

nroEstudiantes 40
Este tipo dato corresponde a aquellas
ENTEROS variables que exclusivamente pueden anio 2015
recibir VALORES SIN PARTE DECIMAL.
nroLados 3
NUMÉRICOS
Este tipo de dato, en cambio
sueldo 354,25
corresponde a aquellas variables
REALES cuyos VALORES TIENEN PARTE area 12,56
DECIMAL, aunque al mismo tiempo
valorRadio 3,0
puede contener valores enteros.

En este tipo de dato se encuentran


todos los caracteres conocidos, una
letra, un número, un símbolo especial.
Por lo tanto, está conformado por los paralelo 'A'
CARACTERES DÍGITOS:'0', '1', '2', ... , '9';
LETRAS: 'a', 'b', 'c', ... , 'z'; opcion '1'
MAYÚSCULAS: 'A', 'B', 'C', ...
, 'Z'; y CARACTERES
TEXTO ESPECIALES: '%', '*', '?', ... , '/'.

direccion "Calle
Constituyen conjuntos de caracteres,
Juan León
es decir la UNIÓN DE VARIOS
Mera"
CARACTERES, que pueden ser palabras
CADENAS nombre
o frases. El valor de este tipo de datos "Sandra
se encierra generalmente Vásquez"
entre comillas (" ").
estadoCivil "soltero"

Los booleanos o tipos de datos lógicos,


únicamente reciben dos valores: true o
false. Se utilizan generalmente como
banderas, para identificar si se realizó o
no un proceso. Más adelante se podrán
LÓGICOS BOOLEAN bandera true
aplicar en ejemplos y comprender su
funcionamiento. Lo importante por
ahora es conocer que únicamente
pueden tomar DOS VALORES:
VERDADERO (true) o FALSO (false)
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Los ciclos o bucles


Partes de un bucle
En una repetición, por muy simple o compleja que sea, vamos a encontrar tres elementos
principalmente. Podemos encontrarlos en todas las repeticiones, aunque a veces nos podemos
referir a ella con nombres distintos. José nos las introdujo a partir del minuto 10 del vídeo:

Inicialización:
Es la creación de una variable o alguna estructura para poder llevar el control de las
repeticiones.

Condición:
Es la condición que se evaluará en cada paso de la repetición, para saber si se debe seguir
ejecutando algo. El ejemplo que ponía era de un juego de ordenador. Tú tienes los enemigos del
juego a los que disparas. Disparas hasta que el enemigo se muera. Esa condición "hasta que el
enemigo se muera" es la condición.

Incremento:
En cada paso del bucle cambiarán las condiciones del programa, probablemente se
incrementará algo en una variable, que luego se evaluará en la condición para ver si se debe de
continuar el bucle.

Tipos de bucles
A partir del cuarto de hora de clase nos muestra ya código en Javascript para mostrarnos los
tipos de bucles o repeticiones que vamos a tener disponible en este lenguaje.

El bucle FOR es el que explica para comenzar y es el bucle donde mejor se encuentran o se
localizan las tres partes de una repetición. Su sintaxis es esta:

For (inicialización; condición; incremento) {

//instrucciones de la repetición

También nos explica en la clase otros bucles disponibles en Jacascript, como son el while y el
do...while, junto con una explicación sobre qué situaciones son ideales para uno y otro bucle.

El bucle for
Se usa generalmente cuando sabes el número de veces que debes ejecutar algo y las condiciones
las puedes expresar de manera numérica.

El bucle while
Se usa generalmente cuando no sabes el número de veces que debes ejecutar algo. También es
necesario cuando la condición para ejecutar el bucle no depende de algo que pueda ser
numérico, por ejemplo, pedir una clave al usuario hasta que ésta sea la válida. Como podrás ver,
no sabes el número de veces que un usuario introducirá texto hasta que acertará la clave.

El bucle do...while
Es exactamente igual que while, solo que sabes con seguridad que debes hacer algo al menos
una vez. Por ejemplo, el bucle del ejemplo anterior, pedir la clave hasta que el usuario te dé la
clave verdadera, sería bueno para realizar con una estructura do...while, porque siempre sabes
que la clave la vas a tener que pedir al menos una vez.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Bifurcaciones
Las bifurcaciones permiten ejecutar una de entre varias acciones en valor de una expresión
lógica o relacional. Se tratan de estructuras importantes ya que son las encargadas de controlar
el flujo de ejecución de un programa.

Bifurcación 'If'
Se utiliza cuando se desea ejecutar una o varias sentencias solo cuando la condición sea
verdadera.

Bifurcación 'If', 'else'


Una ampliación de la anterior, las sentencias incluidas en el 'else' se ejecutarán en el caso de no
cumplirse la condición.

Bifurcación 'If', 'elseif', 'else'


Permite introducir más de una expresión de comparación. Si la primera condición no se cumple,
se compara la segunda y así sucesivamente. En el caso de que no se cumpla ninguna de las
comparaciones se ejecutan las sentencias correspondientes al 'else'.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

En una sentencia 'If' 'elseif' se pueden evaluar tantas condiciones como se deseen. Al igual que
el resto de las sentencias 'If', los lenguajes de programación suelen escribir de forma distinta
esta sentencia en función del número de sentencias que se ejecuten en cada alternativa. Si en
cada alternativa hay una sola sentencia se escribe de una forma mientras que si hay varias se
escribe de otra.

Bifurcaciones If anidadas
Las sentencias de selección 'If' se basan en la evaluación de una condición (compuesta por una
o varias expresiones lógicas) y en función de ésta el ordenador ejecuta unas u otras
instrucciones. Estas instrucciones que se ejecutan en función de la evaluación de la condición
pueden ser cualquier función o sentencia, incluidas las sentencias 'If'.

Una sentencia 'If' anidada es una sentencia 'If' que contiene otras sentencias 'If' en sus
instrucciones alternativas.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Funciones
En programación, una función es una sección de un programa que calcula un valor de manera
independiente al resto del programa.

Una función tiene tres componentes importantes:

Los parámetros, que son los valores que recibe la función como entrada;

El código de la función, que son las operaciones que hace la función; y

El resultado (o valor de retorno), que es el valor final que entrega la función.

En esencia, una función es un mini programa. Sus tres componentes son análogos a la entrada,
el proceso y la salida de un programa.

En el ejemplo de la factorial, el parámetro es el entero al que queremos calcularle la factorial, el


código es el ciclo que hace las multiplicaciones, y el resultado es el valor calculado.

Definición de funciones
Las funciones en Python son creadas mediante la sentencia def:

Def nombre (parámetros):

# Código de la función

Los parámetros son variables en las que quedan almacenados los valores de entrada.

La función contiene código igual al de cualquier programa. La diferencia es que, al terminar,


debe entregar su resultado usando la sentencia return.

Por ejemplo, la función para calcular la factorial puede ser definida de la siguiente manera:

Def factorial (n):

f=1
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

For i in range (1, n + 1):

F *= i

Return f

En este ejemplo, el resultado que entrega una llamada a la función es el valor que tiene la
variable f al llegar a la última línea de la función.

Una vez creada, la función puede ser usada como cualquier otra, todas las veces que sea
necesario:

>>> Factorial (0)

>>> Factorial (12) + factorial (10)

482630400

>>> Factorial (factorial (3))

720

>>> n = 3

>>> Factorial(n ** 2)

362880

Las variables que son creadas dentro de la función (incluyendo los parámetros y el resultado) se
llaman variables locales, y sólo son visibles dentro de la función, no desde el resto del programa.

Por otra parte, las variables creadas fuera de alguna función se llaman variables globales, y son
visibles desde cualquier parte del programa. Sin embargo, su valor no puede ser modificado, ya
que una asignación crearía una variable local del mismo nombre.

Errores de programación.
Los errores de programación responden a diferentes tipos y pueden clasificarse dependiendo
de la fase en que se presenten. Algunos tipos de errores son más difíciles de detectar y reparar
que otros, veamos entonces:

Errores de sintaxis:
Son errores en el código fuente. Pueden deberse a palabras reservadas mal escritas, expresiones
erróneas o incompletas, variables que no han sido declaradas, etc. Los errores de sintaxis se
detectan en la fase de compilación. El compilador, además de generar el código objeto, nos dará
una lista de errores de sintaxis. De hecho nos dará sólo una cosa o la otra, ya que si hay errores
no es posible generar un código objeto.

Advertencias:

Además de errores, el compilador puede dar también advertencias (warnings). Las advertencias
son errores, pero no lo suficientemente graves como para impedir la generación del código
objeto. No obstante, es importante corregir estos errores la mayoría de las veces, ya que ante
un aviso el compilador tiene que tomar decisiones, y estas no tienen por qué coincidir con lo
que nosotros pretendemos hacer, ya se basan en las directivas que los creadores del compilador
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

decidieron durante la creación del compilador. Por lo tanto en ocasiones, ignorar las
advertencias puede ocasionar que nuestro programa arroje resultados inesperados o erróneos.

Errores de enlazado:
El programa enlazador también puede encontrar errores. Normalmente se refieren a funciones
que no están definidas en ninguno de los ficheros objetos ni en las bibliotecas. Puede que
hayamos olvidado incluir alguna biblioteca, o algún fichero objeto, o puede que hayamos
olvidado definir alguna función o variable, o lo hayamos hecho mal.

Errores de ejecución:
Incluso después de obtener un fichero ejecutable, es posible que se produzcan errores, durante
la ejecución del código. En el caso de los errores de ejecución normalmente no obtendremos
mensajes de error muy específicos o incluso puede que no obtengamos ningún error, sino que
simplemente el programa terminará inesperadamente. Estos errores son más difíciles de
detectar y corregir (pues se trata de la lógica como tal de nuestra aplicación). Existen
herramientas auxiliares para buscar estos errores, son los llamados depuradores (debuggers).
Estos programas permiten detener la ejecución de nuestros programas, inspeccionar variables
y ejecutar nuestro programa paso a paso (instrucción a instrucción). Esto resulta útil para
detectar excepciones, errores sutiles, y fallos que se presentan dependiendo de circunstancias
distintas. Generalmente los errores en tiempo de ejecución se dan por situaciones no
consideradas en la aplicación, por ejemplo, que el usuario ingrese una letra en vez de un número
y esto no es controle.

Errores de diseño:
Finalmente los errores más difíciles de corregir y prevenir. Si nos hemos equivocado al diseñar
nuestro algoritmo, no habrá ningún programa que nos pueda ayudar a corregirlos, pues es
imposible que un programa pueda determinar qué es lo que tratamos de conseguir o un
programa que realice aplicaciones cualquiera por nosotros. Contra estos errores sólo cabe
practicar y pensar, realizar pruebas de escritorio, hacerle seguimiento y depuración a la
aplicación hasta dar con el problema (una mala asignación, un valor inesperado, olvidar
actualizar una variable, etc.), también es útil buscar un poco de ayuda de libros o en sitios y foros
especializados.

CARACTERÍSTICAS Y PROPIEDADES DE LOS ALGORITMOS

Características de los algoritmos

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

Un algoritmo debe ser preciso e indicar el orden de realización de cada paso.

Un algoritmo debe estar definido. Si se sigue un algoritmo dos veces, se debe obtener el mismo
resultado cada vez.

Un algoritmo debe ser finito. El algoritmo se debe terminar en algún momento; o sea, debe
tener un número finito de pasos.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Un algoritmo debe ser legibles: El texto que lo describe debe ser claro, tal que permita
entenderlo y leerlo fácilmente.

Un algoritmo debe definir tres partes: Entrada, Proceso y Salida. Ejemplo: el algoritmo de receta
de cocina se tendrá:

Entrada: ingrediente y utensilios.

Proceso: elaboración de la receta en la cocina.

Salida: terminación del plato (por ejemplo, Pollo al horno)

Propiedades de un algoritmo

Las propiedades de un algoritmo son puntos guías a seguir para su elaboración, ya que éstos
permiten un mejor desarrollo del problema.

Enunciado del problema.


El enunciado del problema debe de ser claro y completo. Es importante que conozcamos
exactamente lo que deseamos que haga el computador. Mientras esto no se comprenda, no
tiene caso pasar a la siguiente etapa.

Análisis de la solución general.

Entendido el problema, para resolverlo es preciso analizar:

Los datos de entradas que nos suministran.


El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.

Los datos o resultados que se esperan.

Áreas de trabajo, fórmulas y otros recursos necesarios.

“Diferentes alternativas de solución.

Analizando el problema, posiblemente tengamos varias formas de resolverlo. Lo importante es


determinar cuál es la mejor alternativa: la que produce los resultados esperados en el menor
tiempo.”

Elaboración Del Algoritmo

Los conocimientos adquiridos anteriormente son las herramientas necesarias para llevar a cabo
la elaboración de un algoritmo a través de un problema. Se recomienda tomar en cuenta cada
una de las propiedades de un algoritmo, ya que de ahí se inicia el proceso de elaboración.
FACULTAD DE INGENIERÍA DE
SISTEMAS Y MECÁNICA
ELÉTRICA

Bibliografía
aulatec. (27 de Julio de 2018). Obtenido de aulatec:
https://aulatec.wordpress.com/caracteristicas-y-propiedades-de-los-algoritmos/

Ikker Aguinaga, Gonzalo Martinez, Javier Diaz. (2015). APRENDA A PROGRAMAR COMO SI
ESTUBIERA EN PRIMERO. ESPAÑA: TECUN.

José Dimas Luján. (11 de Enero de 2015). desarrolloweb. Obtenido de desarrolloweb:


https://desarrolloweb.com/articulos/repeticiones-bucles.html

Juan David Meza González. (26 de Marzo de 2018). programarya. Obtenido de programarya:
https://www.programarya.com/Cursos/Fundamentacion/Errores

Universidad Tecnica Federico Santa Maria. (13 de diciembre de 2017). usm. Obtenido de usm:
http://progra.usm.cl/apunte/materia/funciones.html

utn. (12 de Noviembre de 2018). Obtenido de utn:


http://www.utn.edu.ec/reduca/programacion/fundamentos/tipos_de_datos.html

wikidot. (16 de Febrero de 2018). Obtenido de wikidot:


http://algoritmiaokase.wikidot.com/bifurcaciones-if-else-y-variantes