martes, 16 de junio de 2015

Foto del equipo

  
Descripción del grupo:
Somos de la faculta Ciencia y Tecnología de Técnico en Ingeniería en Sistemas y redes informáticas nuestro grupo de trabajo cuenta con 3 integrantes somos responsables, puntuales y nos gusta aprender algo nueva cada día acerca de la materia ya sera de mucho beneficio para nosotros en un futuro.

Conclusión del aprendizaje obtenido


Una gran experiencia obtenida al desarrollar la materia de fundamento de programación lograr el aprendizaje de programar en los diferentes programas.

Glosario


CD-ROM (Compact Disc Read-Only Memory): Tecnología de almacenamiento óptico sólo de lectura, utilizada por los discos compactos.

Algoritmo: Procedimiento lógico-matemático, aplicado para resolver un problema.

Almacenamiento aleatorio: Método de almacenamiento que permite el acceso directo a los datos sin pasar por los anteriores, lo cual reporta una mayor rapidez.

Análisis de sistemas: Estudio de una tarea o función para comprenderla y encontrar mejores maneras de realizarla.

Bus: Caminos eléctricos internos de la computadora por los que transitan señales o datos entre los componentes de la computadora y la CPU.

Byte: Conjunto de 8 bits usado para designar un carácter, letra o número.

C: Lenguaje de programación usado principalmente para la programación de sistemas o sofisticadas aplicaciones.

Alfanumérico: Característica que indica un conjunto de caracteres que incluye letras, números y signos de puntuación.

Ciclo de máquina: Tiempo requerido por el computador para realizar completamente una operación.

Dato: Representación de un hecho o idea que puede ser manipulado y al cual se le puede asignar un significado.

Diagrama de flujo: Representación gráfica de los tipos y secuencia de operaciones de un programa o proceso.

Byte: Conjunto de 8 bits usado para designar un carácter, letra o número.
Depuración: Detección, localización y eliminación de errores en un programa. También llamado debugging.




Unidad 1


Introducción de la programación:
Se pueden utilizar muchos lenguajes para programar una computadora. El más básico es el lenguaje de máquina, una colección de instrucciones muy detallada que controla la circuitería interna de la máquina. Este es el dialecto natural de la máquina. Muy pocos programas se escriben actualmente en lenguaje de maquina por dos razones importantes: primero, porque el lenguaje de maquina es muy incómodo para trabajar y segundo porque la mayoría de las maquinas se pide programar en diversos tipos de lenguajes, que son lenguajes de alto nivel, cuyas instrucciones son más compatibles con los lenguajes y la forma de pensar humanos como lo es el lenguaje c que además es de propósito general.

Conceptos Generales y Terminología de la Programación.

La computadora no solamente  es una máquina que puede realizar procesos para darnos resultados.

También podemos diseñar soluciones a la medida, de problemas específicos que se nos presenten.

Más aún, si estos involucran operaciones matemáticas complejas o repetitivas, o requieren del manejo de un volumen muy grande de datos.

Lenguajes de programación:

Es un conjunto de símbolos, caracteres y reglas 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, cálculo, manipulación de textos, lógica/comparación y almacenamiento/recuperación.

Los lenguajes de programación se clasifican en.

Lenguaje Máquina: 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. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

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.

Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascalcobol, 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.

Importancia de la Programación.
Programación.
Secuencia de instrucciones mediante las cuales se ejecutan diferentes acciones de acuerdo con los datos que se estén procesando.

Es un algoritmo desarrollado para ser utilizado por la computadora.

Expresión de un algoritmo en un lenguaje preciso que puede llegar a entender una máquina de cómputo.
Utilizar el transporte (autobús, carro, bicicleta, etc.)


Fases para la creación de un programa.

Definición del Problema. Esta fase está dada por el enunciado del problema, el cual requiere una definición clara y precisa. Es importante que se conozca lo que se desea que realice la computadora; mientras esto no se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

 Análisis del Problema.
Una vez que se ha comprendido lo que se desea de la computadora, es necesario definir: Los datos de entrada. Cuál es la información que se desea producir (salida) Los métodos y fórmulas que se necesitan para procesar los datos. Una recomendación muy práctica es el que nos pongamos en el lugar de la computadora y analicemos que es lo que necesitamos que nos ordenen y en que secuencia para producir los resultados esperados.

Diseño del Algoritmo.
Las características de un buen algoritmo son: Debe tener un punto particular de inicio. Debe ser definido, no debe permitir dobles interpretaciones. Debe ser general, es decir, soportar la mayoría de las variantes que se puedan presentar en la definición del problema. Debe ser finito en tamaño y tiempo de ejecución.

 Codificación.
La codificación es la operación de escribir la solución del problema (de acuerdo a la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones detalladas, en un código reconocible por la computadora, la serie de instrucciones detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de programación o lenguaje de alto nivel.

 Prueba y Depuración.
Los errores humanos dentro de la programación de computadoras son muchos y aumentan considerablemente con la complejidad del problema. El proceso de identificar y eliminar errores, para dar paso a una solución sin errores se le llama depuración. La prueba consiste en la captura de datos hasta que el programa no presente errores (los más comunes son los sintácticos y lógicos).

 Documentación.

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados, procedimientosdibujos o diagramas.

Unidad 2 Metodologías que Permiten Desarrollar Actividades Básicas de la Programación.


 Definición del Problema.

Está dada por el enunciado del problema, el cuál debe ser claro y completo. Es importante que conozcamos exactamente que se desea del computador; mientras que esto no se comprenda, no tiene caso pasar a la siguiente etapa. 
El proceso de resolución de un problema con una computadora conduce a la escritura de un programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente un proceso creativo, se pueden considerar una serie de fases o pasos comunes, que generalmente deben seguir todos los programadores.

Análisis de variables (Entrada - Proceso - Salida).

Entendido el problema (que se desea obtener del computador), para resolverlo es preciso analizar.
Los datos o resultados que se esperan.
Los datos de entrada que nos suministran.
El proceso al que se requiere someter esos datos a fin de obtener los resultados esperados.
Áreas de trabajo, fórmulas y otros recursos necesarios. 

Algoritmo.
Serie de pasos ordenados encaminados a resolver un problema, debe ser escrita en forma clara y fácil de entender
Podríamos decir que explicar con nuestras propias palabras como resolver el problema.

El algoritmo debe contar con tres partes esenciales

Entradas: datos desconocidos que hacen falta para resolver el problema.

Procesos: aplicación de fórmulas y operaciones que sean necesarias para resolver el problema.

Salidas: resultados que se desean obtener es decir la información

Flujogramas.

Utiliza símbolos gráficos para la representación del algoritmo combinación de constantes, variables, operadores e incluso palabras reservadas  que siguiendo la sintaxis de un determinado lenguaje de programación permiten al procesador ejecutar una acción.

Símbolos utilizados en los diagramas de flujo.

Inicio o terminal.
Representa el inicio y el final de un programa puede representar también una parada o interrupción programada que sea necesario realizar en un grupo.

Entrada/salida en pantalla.
Significa introducción de datos en la memoria desde los periféricos de entradas o registros de información procesada o salida.


Proceso.
Cualquier tipo de operación que pueda originar cambio de valor formato o posición de la información almacenada en memoria entre ellas operaciones aritméticas.

Decisión.
Indica operaciones lógicas o de comparación entre datos generando una salida falsa o verdadera.

Conector de programas.
Sirve para enlazar dos partes cuales quiera de un flujo grama atraves de un conector de salidas y otros conectores en la salida. Se refiere a la conexión en la misma página.

Conector de página.
Conexión entre dos puntos de flujo grama situado en páginas diferentes.

Línea conectora.
Sirve de unión entre dos símbolos.

Indicador de dirección.
Línea de flujo indica el sentido de ejecución de las operaciones.

Impresora.
Se utiliza para generar la salida de los programas en papel en ocasiones en lugar del símbolo de entrada/salida.

Comentarios.
Se utiliza para añadir comentarios clasificadores a otros símbolos del diagrama de flujo. Se puede dibujar a cualquier lado del símbolo.

Estructura repetitiva.
Permite la ejecución de un ciclo de acciones dos o más veces.

Reglas para elaborar un diagrama de flujo.

Todos los flujos tienen un principio y un final.
Las líneas de conexión de un flujo deben de ser siempre rectas verticales y horizontales.

Las líneas que enlazan los símbolos entre si deben estar todas conectadas y cada línea debe entrar a un bloque.

La visualización de recorrido del flujo grama debe de ser desde arriba hacia abajo.
Realizar un gráfico claro equilibrado procurando que el flujo que el flujo central quede en la parte central de la página.

Evitar la utilización de la terminología especifica de un lenguaje de programación.
Indicar con comentarios margen del flujo grama las variables utilizadas.

Al comienzo del diagrama de flujo  deben dejarse uno o dos bloques de procesos libres.
En las operaciones lógicas preferir la lógica positiva que la negatividad.

Cada bloque puede tener diferentes entradas pero su salida es única a excepción de la estructura condicional o de decisión.

Realizar todas las notaciones o comentarios al final del flujo grama.
Utilizar correctamente los conectores de página o de programas.


Codificación y Edición del Programa.

La codificación consiste en traducir el programa de flujo a instrucciones de un lenguaje de programación  específico, es decir, la elaboración del programa. La edición consiste en introducir el programa a la computadora por medio de editor de texto o el editor de texto o el editor de texto de un lenguaje de programación.

Prueba y depuración.

Una vez que se ha introducido el programa a la computadora debe probarse continuamente ejecutando el programa hasta concluir con los con los resultados deseados y que no tengan errores
Para ello se deben preparar datos de prueba en papel  así como su solución para compararlo con los resultados que obtengan la computadora.

Documentación del problema.

Son todos los comentarios, referencias desde que se dio el problema hasta que se encontró la solución.

a) documentación interna, es el encabezado, descripción, declaración del problema, son todos los comentarios que puedan llegar a servir dentro del código fuente.

b) documentación externa, son los manuales que se hacen para una mejor ejecución del programa, ahí se explicara cómo usar el programa.




Unidad 3 Estructura lógicas fundamentales y extendidas


Introducción:
Hemos estudiado en los contenidos anteriores los elementos fundamentales que nos permite avanzar en el mundo de la programación, con estos contenidos en mente llegamos a los fundamentos de la promoción: las estructuras de control fundamentales y extendidas de la promoción. Indistintamente del lenguaje que se utilice las estructuras de control seguirán acompañándoles en su formación académica y en su información como programador. Iniciamos conociendo las características que debe cumplir un programa. 

Las estructuras de control principales permiten actividades básicas de programación, estas estructuras son tradicionalmente conocidos como: secuencial, decisión, repetitiva o hacer mientras. Para proporcionar otras estructuras complementarias estudiamos las extendidas: Hacer Hasta Que, Hacer Desde Hasta Incremento, Seleccionar caso. Por ultimo abordamos la temática de las estructuras más adecuadas según el problema a resolver y discriminar aquellas estructuras que no permiten llegar a la solución optima del programa. 

Demostrara capacidad para el trabajo en equipo; tendrá una actitud  proactiva y dinámica al utilizar las estructuras lógicas de control y extendidas mostrando capacidad de análisis para solucionar los problemas reales planteados de manera innovadora, creativa y productiva.

Estructuras de control.

Son construcciones mediante las cuales se escribe la lógica de los programas, son empleadas y definidas de manera ordenada y sistemáticas para dirigir el flujo de acciones que el procesador efectuara sobre los datos que se manejan en un programa.

Entre las estructuradas de control se encuentran:
Ø Estructura de secuenciación o secuencial.
Ø Estructuras de decisión o condicional.
Ø Estructuras de hacer-mientras.

Estructura de secuenciación o secuencial.
Es aquella en que una acción sigue a otra en secuencia lógica y ordenada

Ø La acción 2 se ejecuta después de la acción 1 y ninguna acción puede ejecutarse entre ellas. La acción 3 sigue a la acción 2.
Ø Y Así sucesivamente.

ESTRUCTURA DE SECUENCIACION O SECUENCIAL.
Es aquella en que una acción sigue a otra en secuencia lógica y ordenada.
La acción 2 se ejecute después de acción 1 y ninguna acción puede ejecutarse entre ellas. Las acción 3 sigue a la acción 2
Y así sucesivamente.

                                             
                                           
                                               
ESTRUCTURA CONDICIONAL O DE DECISIÓN

Esta estructura lógica, permite la toma de decisiones en un programa, es decir, que las solución a estés tipo de problemas son una serie de acciones en que la ejecución de algunas dependerá de que se cumplan una o barias condiciones.

Cuando el programador desea especificar 2 o más caminos alternativos en un programa se deben utilizar una estructura de decisión, que evalúa una condición obteniendo una sola salida.

¿Qué es una condición?
Es aquella que se establece por medio de una expresión lógica que puede ser simple o compuesta. Por lo tanto solo puede tomar dos valores: falso o verdadero.

Condiciones simples
Una condición simple se identifica porque está constituida únicamente por una condición A > B utilizando los operadores relacionales.

Ejemplo:
A > B                                     
B < C
D= A
R <> W
G <= T
F <= H
Condiciones compuesta
Una condición compuesta,  se identifica porque para solucionarla se necesita establecer más de una condición utilizando operadores lógicos relacionales, aritméticos y de asociación.

Ejemplos:
·        (P <= 10) AND (P >=1)
·        [8=(2+6)-3ᶺP] AND [4=(5*3)-14]





Una condición se representa gráficamente de la siguiente manera:
Es la más importante desde el punto de vista de la programación porque permite la ejecución de un conjunto de instrucciones cuantas veces sea necesario.
También se le llama estructura repetitiva a aquellos operadores en cuya solución es necesario utilizar un mismo conjunto de acciones que puedan ejecutarse más de una vez. Para solucionar problemas repetitivos recurriremos al uso de ciclos, que nos evitaran escribir muchas veces un conjunto de acciones.


Elementos que constituyen la estructura repetitiva

·     CICLO: Es la ejecución de un mismo conjunto de acciones dos o más veces.
·     PROCESO: conjuntos de acciones a los que se les asigna un nombre, es decir, la operación a realizar.
·     ESTRUCTURA CICLICA: conjuntos de acciones que permiten que el cuerpo del ciclo se ejecute dos o más acciones
·     LA ITERACIÓN: se define como cada una de las ejecuciones del cuerpo del ciclo.

Clasificaciones de los ciclos:
·     Ciclos con un número determinado de iteraciones.
·     Ciclos con un número indeterminado de iteraciones.

Ciclos con un número determinado de iteraciones:
Son aquellos en que el número de iteración es determinable antes de ejecutarse el ciclo, este número de iteración pueden obtenerse de la definición del problema, o bien mediante una entrada de datos cuando el problema indique que un conjunto de acciones se debe de ejecutar n ocurrencias.

Ciclos con un número de indeterminado de iteraciones:

Son aquellos en donde el número de iteraciones permanece indeterminado durante la ejecución del ciclo y el proceso repetitivo termina hasta que el usuario lo indique.
En este tipo de ciclos el usuario decide dentro del ciclo cuando terminar con el proceso repetitivo sin importar cuantas iteraciones se hayan efectuado a diferencia de los ciclos anteriores, en donde el número de iteraciones está determinado desde el principio. También se le llama BANDERA.
Antes de iniciar la evaluación de la estructura hacer mientras es necesario inicializar las variables a utilizar con el propósito que estas pueden ser identificadas en el programa.

TERMINSO RELACIONADOS CON ESTA ESTRUCTURA:

Contador: variable que se utiliza para llevar la cuenta de las vueltas que ejecuta la estructura del ciclo.

Acumulador: mantiene los resultados parciales de las operaciones, guardando el valor que obtiene en cada vuelta del ciclo en una variable.

CONCLUSIONES DE LA APLICACIÓN DE LA ESTRUCTURAS HACER MIENTRAS.

No es posible salir de la estructura hacer mientras por otra ruta que no sea la que determina la evaluación de la condición.

Puede darse el caso en que la condición llegue a ser falsa en este caso si no pudiéremos salirnos de la estructura tendríamos que aplicar banderas para salirse.
Es necesario inicializar antes de entrar a la estructura, todas las variables que intervienen en la condición con el fin que esta pueda ser evaluada por la computadora.


ESTRUCTURAS LÓGICAS EXTENDIDAS.

Con el objeto de proporcionarles a los programadores otras que faciliten las actividades de programar se agregaran las siguientes:

Hacer – desde – hasta- incremento
Hacer- hasta- que
Hacer caso- seleccionar caso
Estas estructuras representan situaciones de control del flujo de ejecución de cualquier programa, que no lo hacen las estructuras de control.

ESTRUCTURA HACER-DESDE-HASTA-INCREMENTO

A esta estructura se le considera una de las más útiles en la programación por ello la proveen casi todos los lenguajes de programación.

ESTRUCTURA HACER-HASTA-QUE

Esta estructura repite la ejecución de un conjunto de instrucciones hasta que tome el valor de cierto. La condición se ubica al final de ciclo; el conjunto de acciones se repetirán hasta que cumpla la condición si no cumple sigue interactuando.

ESTRUCTURA HACER CASO O SELECCIONAR CASO.

Permite asociar un conjunto de condiciones a un conjunto de acciones que se excluyen mutuamente.
La estructura se conoce como case y permite una deviación del flujo de control hacia múltiples procesos en función del resultado de la evaluación de una expresión o indicador. Es decir; que permite seleccionar las instrucciones que deben ser ejecutadas dependiendo del valor de una expresión aritmética. Exp = opción.

Estructuras de Datos.

Una estructura de datos es una forma de organizar un conjunto de datos elementos con el objetivo de facilitar su manipulación. Un dato elemental es la mínima información que se tiene en un sistema. Una estructura de datos define la organización e interrelación de estos y un conjunto de operaciones que se pueden realizar sobre ellos. Las operaciones básicas son:

Ø Alta, adicionar un nuevo valor a la estructura.
Ø Baja, borrar un valor de la estructura.
Ø Búsqueda, encontrar un determinado valor en la estructura para realizar una operación con este valor, en forma secuencial o binario (siempre y cuando los datos estén ordenados).

Las estructuras de datos más comunes son:
Ø Arreglos (Matrices)
Ø Colas
Ø Pilas
Ø Listas Enlazados
Hablaremos un poco sobre cada una de ellas a continuación.

Arreglos:
Un arreglo es un conjunto finito ordenado de elementos homogéneos, la propiedad de ordenación significa que es posible identificar el primer, segundo, tercero… y el enésimo elemento del arreglo, un arreglo, un arreglo puede ser un conjunto de elementos de tipo cadena en tanto que potro puede ser tipo entero.
Los arreglos son una herramienta maravillosa, permite asociar un solo nombre de variable a una colección completa de datos puede mover el arreglo completo en menoría, copiarlo y además solo haciendo referencia a un solo nombre de variable.

Arreglo Bidimensionales
Un array bidimensional se puede considerar como un vector de vectores. Es decir un conjunto de elementos todos del mismo tipo, en el orden de los componentes es significativo y en el que se necesita especificar dos subíndices para poder identificar cada elemento del arreglo: una forma importante de representar datos en un array bidimensional puede verse de forma lógica como una tabla de filas y columnas.

Arreglos Multidimensionales.
Existen grupos de datos que se representan mejor en forma de tabla o matriz cada dos o más subíndices a esos les llamamos arreglos multidimensionales se les llama así porque a diferencia de un arreglo bidimensional estos constan de dos o más dimensiones.

Colas:
En las colas el elemento que entro en primer lugar también es el primero en salir por ello se conocen como listas FIFO (First in – First out).
Así pues la diferencia con las pilas recibe en el modo de entrada y salida de datos. En las colas las inserciones se realizan al final de la lista no al principio por ello las colas se usan para almacenar datos que necesiten ser procesados según el orden de llegada.
En la información muchas aplicaciones para las colas (colas de aplicación) etc. Por ejemplo un sistema de tiempo compartido suele tener un proceso central y una serie de periféricos compartido: discos, impresoras, etc.
Los recursos se comparten con diferentes usuarios y se utiliza una cola para almacenar el programa por los diferentes usuarios que esperan su torno de ejecución. El procesador atiende por riguroso orden de llamado de usuario.

Pilas:
Una pila es un tipo de lista lineal en la que la inserción y borrada de nuevos elementos solo se pueden realizar por un extremo que se denomina tope o cima.
La pila es una estructura con numerosas analogías en la vida real, una pila de platos, una pila de documentos, una pila de monedas. Dado que la operación de insertar y eliminar se realizó por un solo extremo (superior) los elementos solo pueden eliminarse en un orden inverso al que se inserta en la pila.
El último elemento que se pone en la pila es el primero que se puede sacar; por ello a esta lista se les conoce como LIFO (Last In – first Out).

Listas Enlazadas:
Se pueden almacenar los elementos de una lista lineal en posiciones que no sean continuas o adyacentes una lista enlazadas es un conjunto de elementos en la que cada elemento contiene la posición o dirección del siguiente elemento en la lista debe tener al menos dos campos. Un campo que tiene el valor del elemento y un campo que contiene la dirección del siguiente elemento es decir su posición enlace o encadenamiento a diferencia de las pilas las listas enlazadas mantienen un orden dentro de ellas. Las listas requieren un campo que será la clave por la que serán ordenadas.

CARACTERISTICAS
La lista debe estar ordenada.
A diferencia de las pilas y colas se pueden extraer e insertar elementos en cualquier parte de la lista.