Bienvenidos A nuestro foro, espero que os guste


    Teoria tema 1 (introducción)

    Comparte
    avatar
    javat
    Admin

    Mensajes : 16
    Fecha de inscripción : 26/11/2009
    Edad : 29
    Localización : Doctoral

    Teoria tema 1 (introducción)

    Mensaje  javat el Sáb Nov 28, 2009 2:35 pm


    Aquí os dejo la teoria del tema 1, ahora subo el tema 2 que es bastante mas largo... a quien le guste como lo tengo pos ke se lo pille si kiere xD

    Tema 1: introducción a la programación en C
    1.1 Historia del C.
    ¿Qué es el C? El C es un lenguaje de programación y ¿qué es un lenguaje de programación? Pues es una manera de hacer programas y ¿qué es un programa? Un programa es un conjunto de órdenes para el ordenador y ¿para qué son esas órdenes? Pues esas órdenes son para que el ordenador haga lo que nosotros queramos y como nosotros queramos que lo haga.
    La manera de decirle al ordenador lo que queremos hacer y como lo queremos hacer es mediante un programa el cuál vamos a realizar mediante un determinado lenguaje de programación y uno de ellos en concreto es el lenguaje C.
    Como ejemplo vamos a suponer que regentamos un comercio textil y llega la época de rebajas. A todos los productos le vamos a aplicar un 5% de descuento, ¿cómo lo hacemos? Cogemos el producto, le quitamos la etiqueta, miramos el precio, calculamos el 5% de ese precio, se lo restamos al precio original, cogemos una nueva etiqueta, escribimos en ella el precio obtenido y la nueva etiqueta se la ponemos al producto. Ese es el conjunto de instrucciones necesarias y sería, por así decirlo, el programa correspondiente y el lenguaje C sería nuestro lenguaje para realizar nuestro programa.
    Entrando ya a hablar sobre el C propiamente, este surgió por la necesidad de crear un lenguaje de programación de alto nivel independiente del hardware. Un lenguaje de programación de alto nivel independiente del hardware es aquel que sirve para hacer programas, pera compilarse y ejecutarse en cualquier hardware de cualquier máquina y el lenguaje utilizado sea lo más abstracto posible. La creación del C está ligada a la del sistema operativo Linux. En 1978 Brian Kernighan y Dennis Ritchie publicaron la primera edición del libro de C programas: “the C programming Language”= “K & R” y a la versión del C se le llama “K & R C”. Se considera esta versión como la parte básica que un compilador de C debe admitir. Durante los años 80 la popularidad del C fue incrementando y el señor Bjarne Stroustrup y su equipo añadieron al C la POO (programación orientada a objetos). De esta manera nace el C++. A la vez de todo esto, durante los años 80 se fueron desarrollando otras versiones de C hasta que en 1983-> ANSI (american nacional estándar institute) creó un comité para establecer una especificación estándar para todos y evitar así problemas de compatibilidad. Esta versión se conoce como ANSI C y nació en el año 1989.
    ¿Qué es el ANSI? Es una organización encargada de establecer normas generales que en el año 1990 y el ANSI C sufre unas pequeñas modificaciones y lo adopta la ISO (international organization for standarization) y al C se le llama ISO C.





    1.2. C COMO LENGUAJE ESTRUCTURADO:
    El C es un lenguaje de programación que controla determinadas características del hardware (componentes) de un ordenador. Es similar al lenguaje ensamblador. Por ello es más bien que se llama lenguaje de nivel medio. El C es estructural por las siguientes características:
    Primera: Es un lenguaje simple con importantes funcionalidades.
    Segunda: Es un lenguaje enfocado a instrucciones imperativas, que facilita la programación estructurada.
    Tercera: Tiene un conjunto pequeño de palabras reservadas.
    Cuarto: permite definir macros e incluir múltiples ficheros de código.
    Quinta: Sistema de tipos de datos simples.
    Sexto: Acceso de bajo nivel a la memoria del ordenador.
    Séptimo: Parámetros pasados siempre por valor, nunca por referencia.
    Octavo: Registro y tipos de datos definidos por el usuario.
    Noveno: Punteros a función para facilitar polimorfismo y abstracción.
    Existen características de otros lenguajes que el C no admite.
    1.3 CONCEPTOS DE PROGRAMACIÓN:
    Antes de entrar en metodología vamos a definir una serie de conceptos necesarios a entender.
    1. Entorno de programación: Conjunto de herramientas utilizada por el programador con el fin de desarrollar una aplicación en un lenguaje determinado. Un entorno de programación debe estar formado por: un editor de texto, un compilador, un enlazador, ficheros de biblioteca y ficheros de inclusión.
    2. Algoritmo: Es la definición de una secuencia de pasos que se deben seguir con el objetivo de solucionar un problema específico. Debe poseer una serie de características:
    a. Debe ser preciso, es decir, se indica la orden a realizar en cada paso.
    b. Debe estar definido, es decir, si realizamos dos veces el mismo algoritmo con los mismos datos debe dar lo mismo.
    c. Debe ser finito.
    En un algoritmo se diferencian tres partes:
    ENTRADA -> PROCESO -> SALIDA
    Para llegar a un buen programa hay que partir de un buen diseño de algoritmo y de una buena estructura de datos.
    ALGORITMO + ESTRUCTURA DE DATOS= PROGRAMA
    3. Programa: Un programa es la escritura de algoritmo en un lenguaje de programación.
    4. Lenguaje de programación: Es un conjunto de palabras y caracteres utilizados para crear programas y se utiliza mediante un entorno de programación.

    1.4 METODOLOGÍA DE LA PROGRAMACIÓN:
    El ordenador se utiliza para resolver o intentar resolver problemas. Si es programador (persona que hace programas), para resolver una tarea deberá seguir una serie de pasos que son:
    1. Definir el problema a resolver, posteriormente se analiza.
    2. Diseñar el algoritmo para resolver el problema.
    3. Transformar o codificar el algoritmo en un programa mediante un lenguaje de programación.
    4. Ejecutar y validar la solución encontrada.

    1.5 REPRESENTACIÓN DE ALGORITMOS:
    Hay varias formas de representar un algoritmo, pero nosotros vamos a trabajar con las dos más usuales que son:
    • Diagrama de flujo.
    • Pseudocódigo.
    1.5.1 DIAGRAMA DE FLUJO:
    Los diagramas de flujo son un conjunto de símbolos que detallan los pasos del algoritmo mediante flechas o líneas de flujo, que muestran las secuencias de los pasos a ejecutar. Hay tres tipos de diagrama de flujo:
    1. De sistema o configuración: Son los utilizados para describir el flujo de información que se realiza entre los distintos soportes físicos en un sistema informático
    2. De macroprocesos o bloques: Son los utilizados para representar la estructura de los bloques en los que se ha dividido el problema a resolver.
    3. De detalles u ordinograma: Detalla las secuencias de instrucciones que debe realizar el ordenador para resolver el problema.
    Como nosotros vamos a entrar en detalles con las secuencias de instrucciones para resolver un problema, vamos a estudiar los ordinogramas. Todo ordinograma debe contener:
    1. El inicio del programa.
    2. Operaciones del programa.
    3. Secuencias en que se realizan las operaciones.
    4. El fin del programa.
    El esquema de un ordinograma debe ser algo como lo siguiente: (FOLIO)


    A la hora de realizar un ordinograma hay que seguir las siguientes reglas:
    1. Se debe utilizar líneas rectas.
    2. El comienzo del programa figurará en la parte superior del programa.
    3. Los símbolos de comienzo y de fin aparecerán una sola vez.
    4. El flujo de operaciones debe ir de arriba hacia abajo y de izquierda a derecha.
    5. El ordinograma tiene que guardar la mayor simetría posible.
    6. Se evitarán los cruces de línea mediante el empleo de conectores.
    7. Las instrucciones han de ser mínimas.
    8. Se debe restringir en lo máximo el uso de comentarios (arnaudis quiere que los haga).

    1.5.1 PSEUDOCÓDIGO:
    Es otra forma de representar un algoritmo y consiste en una aproximación a la codificación final de la solución del problema planteado sin utilizar ningún lenguaje de programación. Para representar un algoritmo el pseudocódigo utiliza palabras reservadas para describir la secuencia de paso a realizar con el objetivo de resolver un problema específico. Todo algoritmo representado como pseudocódigo debe permitir la descripción de una serie de elementos a saber:
    1. Instrucciones de entrada y salida.
    2. Instrucciones de proceso.
    3. Sentencias para controlar el flujo de la ejecución del programa.
    4. Si el problema se ha dividido en varios módulos, describirlos.
    Las instrucciones que se utilizan se pueden agrupar en varios tipos:
    A. Instrucciones declarativas: se utilizan para definir las variables y otros objetos que forman parte del programa. Un ejemplo de estas instrucciones puede ser el nombre de la variable seguido del tipo de la variable. A=entero B=real C=ristra
    B. Instrucciones de asignación: Una instrucción de asignación es aquella que asigna a la variable que está a la izquierda del símbolo de asignación el valor que se encuentra la derecha. Como ejemplo tenemos a=3 o b=d
    C. Instrucciones de entrada: Estas instrucciones permiten representar la entrada de datos al programa desde un dispositivo o periférico de entrada. Los datos se van a almacenar en las variables o estructuras de datos. Un ejemplo puede ser Leer A.
    D. Instrucciones de salida: Mediante estas instrucciones se permite grabar, imprimir o visualizar en un dispositivo de salida los datos almacenados. Un ejemplo es Escribir A.
    E. Instrucciones de control: Permiten controlar el flujo de ejecución del programa, pueden ser:
    • Condicionales: se ejecutará una u otra instrucción dependiendo de la evaluación de una condición.
    o Simples: solo hay instrucciones si la condición es verdadera. Si (condición) Enteras instr1 instr2 ….. Fin Si
    o Dobles: Hay instrucciones tanto para si se cumple la condición como para si no se cumple. Si (condición) Enteras instr1 instr2 sino instr 3 fin si
    o Múltiple: se dan en situaciones donde el flujo dependerá de la evaluación de una expresión que puede tener múltiples respuestas, se representa de la siguiente manera: caso (excepción) valor ? instr1 instr2 valor ? instr 3 Fin caso.
    • De iteración y repetición: podemos representar bucles, es decir: procesos repetitivos o iterativos. Hay tres tipos de bucles:
    • El primero es el tipo mientras: podemos representar un proceso repetitivo que se ejecutará mientras una condición sea verdadera. La condición va siempre al principio. Mientras (condición) hacer instr1 instr2 fin mientras.
    • El segundo es Hasta o repetir: es igual que la sentencia mientras excepto que la condición se evalúa al final. Por esto las instrucciones que están dentro del bucle de ejecución se ejecutarán por lo menos 1 vez. Repetir instr1 instr2 mientras (condición).
    • Es el bucle para: cuando conocemos a priori cuantas veces ha de repetirse un bucle. Hay que incluir una variable contadora, una variable inicial, una variable final y un incremento. Para Vc desde Vi hasta Vf incremento i Hacer instr1 instr2 fin para.

      Fecha y hora actual: Mar Oct 17, 2017 7:47 am