Portafolios de Programación

En este espacio se podrán ver las tareas en el curso de programación de la sección 114/s5. Además de algunas investigaciones.

Se pretende agregar prácticas de laboratorio y algunos algorítmos simples que se incluyen en el temario de fundamentos de programación.

Abajo se muestra la tarea, investigación o ejercicio que se hizo por última vez en el curso.

Celina O. O.

Tarea 5: Operadores y Expresiones en C

El lenguaje C posee un gran número de operadores que se pueden agrupar en diferentes categorías, los datos sobre los que actúan los operadores se denominan operandos. Algunos operadores requieres dos operandos, mientras que otros actúan sólo sobre un operando.


Operadores Aritméticos
En C, existen cinco operadores aritméticos:
Los operadores (/) y (%) requieren que el segundo operando no sea nulo.



Operadores Unarios

C incluye una serie de operadores que actúan sobre un solo operando para producir un nuevo valor. Estos operadores se denominan operadores unarios o monarios. Los operadores unarios suelen preceder a su único operando.

Es probable que el operador unario de uso más frecuente sea el menos (-) unario, que consiste en el menos elante de una constante numética, una variable o una expresión. La operación menos unaria es distinta del operador aritmético que representa a la resta (-) ya que la resta requiere de dos operandos.



Operadores Relacionales y Lógicos

En C existen cuatro operadores relacionales:


Estos operadores se encuentran dentro del mismo grupo de procedencia que es menor que la de los operadores unarios y aritméticos. La asociatividad de estos operadores es de izquierda a derecha.


Muy asociados a los operadores relacionales, existen los operadores de igualdad:

Los operadores de igualdad se encuentran en otro grupo de procedencia, por debajo de los operadores relacionales. La asociatividad de estos operadores es también de izquierda a derecha. Éstos se utilizan para formar expresiones lógicas que representan condiciones que pueden ser verdaderas o falsas. La expresión resultante puede ser de tipo enterio, ya que verdadero es representado por 1 y falso por 0.

Oeradores de Asignación

Existen en C, varios operadores de asignación que se utilizan para formar expresiones de asignación, en las que se asigna el valor de una expresión a un identificador.
El operador de asignación más usado es =. Se escribe de la siguiente forma:











Bibliografía: "Programación en C", Byron, Gottfried, Ed. Mac Graw Hill, Madrid, 2005.




Tarea 4: Reglas para Declarar Variables

Una variable es un espacio de memoria donde se almacena un dato, los nombres de las variables han de construirse con caracteres alfanuméricos y el caracter subrayado (_). Deben comenzar con un caracter alfanumérico o (_). No podemos utilizar caracteres raros como el signo +, un espacio, o un $. Se evita nombrar variables utilizando nombres reservados como for o return.
Todo elemento declarado tiene un nombre también denominado identificador. Ese elemento debe comenzar por un caracter alfabético o signo subyarado, solo puede contener caracteres alfabéticos, digitos decimales y signos de subrayado. Debe contener por lo menos un caracter alfanumérico si empieza con (_), algunos nombres no se distinguen entre mayúsculas y minúsculas y no puede declarar dos variables globales con el mismo nombre.

Tarea 3: Clasificación de Lenguajes de Programación

Los lenguajes de programación son un conjunto de símbolos y reglas para combinar dichos símbolos. Los elementos del lenguaje de programación son léxicos, sintáxicos y semánticos.

Los lenguajes de programación pueden clasificarse por su propósito, es decir, el tipo de problemas a tratar con ellos o por estilo de programación.

Por propósito:

- General: Aptos para todo tipo de tareas, por ejemplo "C".
- Específico: Hechos para un objetivo muy concreto, por ejemplo Csound (para crear ficheros de audio).
- Programación de Sistemas: Para realizar sistemas operativos o drivers, por ejemplo "C".
- Script: Para realizar tareas varias de control y auxiliares. Antiguamente eran los llamados lenguajes de procesamiento por lotes (batch) o JCL (Job Control Languages). Se subdividen en varias clases. Ejemplos: bash (shell), Java Script.


Por estilo de programación:

-Imperativos: Indican cómo hay que hacer la tarea, es decir, expresan los pasos a realizar, como ejemplo esta "C".
-Declarativos: Indican qué hay que hacer, por ejemplo Lisp y Prolog.
Fuente: http://qbitacora.wordpress.com/2007/09/21/clasificacion-de-lenguajes-de-programacion/

Tarea 2: Memoria Flash

Chip de memoria que mantiene su contenido sin energía, pero que se deben borrar a granel. Fue concebido originalmente por Toshiba, el término viene de la capacidad de poderse borrar <>. Derivado de EEPROMS*, los chips de memoria flash son menos caros y proporcionan densidades más altas de bits.
Como los diseños futuros proporcionan borrado de chips pero no en su totalidad, y últimamente, borrado byte por byte, la memoria flash puede proporcionar una alternativa de la RAM actual.
*EEPROM (Ellectricaly Erasable Programmable Read Only Memory), Memoria de solo lectura programable y borrable eléctricamente. Un chip de memoria que retiene su contenido sin potencia, puede ser borrado tanto dentro de la computadora, como externamente, y usualmente requiere más voltaje para el borrado que el común de +5 voltios usado en los circuítos lógicos. Funciona como RAM no volátil, pero grabar en EEPROM es mucho más lento que grabar en RAM. Las EEPROM son usadas en dospositivos que deben mantener datos al día sin potencia.
Por ejemplo: En una terminal de punto de venta que esta apagada por la noche. Cuando los precios cambian, la EEPROM puede actualizarse desde una computadora central durante el día.
Bibliografía: "Diccionario de la Computación", Freedman, Allan, Editorial Mac Graw Hill, 1995.

Tarea 1: Memoria Caché


La memoria caché es una sección reservada de la memoria, que se utiliza para mejorar el rendimiento. Un caché de disco es una porción reservada en la memoria normal o memoria adicional en la tarjeta controladora de disco. Cuando el disco es leido, se copia un gran bloque de daros en el caché. Si los requisitos de los datos subsiguientes pueden ser satisfechos por el caché, no se necesita el empleo de un acceso a disco que es más lento. Si el caché es utilizado para escritura, los datos se alinearán en memoria y se grabarán en el disco en bloques más grandes.


Los cachés de memoria son bancos de memoria de alta velocidad entre la memoria normal y la CPU. Los bloques de instrucciones y datos se copian en el caché, y la ejecución de las instrucciones y la actualización de los datos son llevados a cabo en la memoria de alta velocidad.


Bibliografía: "Diccionario de la Computación", Freedman, Allan, Editorial Mac Graw Hill, 1995.