Universidad Fermín toro decanato de ingeniería cabUdare edo Lara
método de adqUisición a niveL de programación en c
integrantes: danieLa atacho FLor viLLa José parad
El lenguaje de programación C está caracterizado por ser de uso general, con una sintaxis sumamente compacta y de alta portabilidad. Es común leer que se lo caracteriza como un lenguaje de "bajo nivel". No debe confundirse el término "bajo" con "poco", ya que el significado del mismo es en realidad "profundo", en el sentido que C maneja los elementos básicos presentes en todas las computadoras: caracteres, números y direcciones. Esta particularidad, junto con el hecho de no poseer operaciones de entrada-salida, manejo de arreglo de caracteres, de asignación de memoria, etc , puede al principio parecer un grave defecto; sin embargo el hecho de que estas operaciones se realicen por medio de llamadas a Funciones contenidas en Librerías externas al lenguaje en sí, es el que confiere al mismo su alto grado de portabilidad, independizándolo del "Hardware" sobre el
CC es es un un lenguaje lenguaje de de programación programación creado creado en en 1972 1972 por por Dennis Dennis M. M. Ritchie Ritchie en en los los Laboratorios Laboratorios Bell Bell
como como evolución evolución del del anterior anterior lenguaje lenguaje B, B, aa su su vez vez basado basado en en BCPL. BCPL.
Al Al igual igual que que B, B, es es un un lenguaje lenguaje orientado orientado aa la la implementación implementación de de Sistemas Sistemas Operativos Operativos, , concretamente concretamente Unix. Unix. CC es es apreciado apreciado por por la la eficiencia eficiencia del del código código que que produce produce yy es es elel lenguaje lenguaje de de programación programación más más popular popular para para crear crear software software de de sistemas, sistemas, aunque aunque también también se se utiliza utiliza para para crear crear aplicaciones. aplicaciones.
débilmente tipificado de medio nivel pero con muchas características de bajo nivel.
Dispone de las estructuras típicas de los lenguajes de alto nivel pero, a
su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o
dispositivos periféricos.
La primera estandarización del lenguaje C fue en ANSI, con el estándar X3.159-1989. El lenguaje que define este estándar fue conocido vulgarmente como ANSI C.
Posteriormente, en 1990, fue ratificado como estándar ISO (ISO/IEC 9899:1990). La adopción de este estándar es muy amplia por lo que, si los programas creados lo siguen, el código es portátil entre plataformas y/o arquitecturas. En la práctica, los programadores suelen usar elementos no-portátiles dependientes del compilador o
Características Propiedades
•Un núcleo del lenguaje simple, con funcionalidades añadidas importantes, como funciones matemáticas y de manejo de archivos, proporcionadas por bibliotecas. •Es un lenguaje muy flexible que permite programar con múltiples estilos. Uno de los más empleados es el estructurado "no llevado al extremo" (permitiendo ciertas licencias de ruptura). •Un sistema de tipos que impide operaciones sin sentido. •Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como definir macros e incluir múltiples archivos de código fuente. •Acceso a memoria de bajo nivel mediante el uso de punteros. •Interrupciones al procesador con uniones.
•Un conjunto reducido de palabras clave. •Por defecto, el paso de parámetros a una función se realiza por valor. El paso por referencia se consigue pasando explícitamente a las funciones las direcciones de memoria de dichos parámetros. •Punteros a funciones y variables estáticas, que permiten una forma rudimentaria de encapsulado y polimorfismo. •Tipos de datos agregados (struct) que permiten que datos relacionados (como un empleado, que tiene un id, un nombre y un salario) se combinen y se manipulen como un todo (en una única variable "empleado").
Carencias •Recolección de basura nativa, sin embargo se encuentran a tal efecto bibliotecas como la "libgc" desarrollada por Sun Microsystems, o el
Recolector de basura de Boehm. •Soporte para programación orientada a objetos , aunque la implementación original de C++ fue un preprocesador que traducía código fuente de C++ a C. •Encapsulación. •Funciones anidadas, aunque GCC tiene esta característica como extensión. •Polimorfismo en tiempo de
código en forma de sobrecarga, sobrecarga de operadores y sólo dispone de un soporte rudimentario para la programación genérica. •Soporte nativo para programación multihilo y redes de computadores.
class Punto { public: // Coordenadas del punto float x; float y; // Constructor Punto() : x ( 0 ), y ( 0 ) // Inicializamos las variables "x" e "y" {} }; // Main para demostrar el funcionamiento de la clase # include <iostream> // Esto nos permite utilizar "cout" using namespace std; int main() { Punto MiPunto; // creamos un elemento de la clase Punto llamado MiPunto cout << "Coordenada X: " << MiPunto.x << endl; // mostramos el valor acumulado en la variable x cout << "Coordenada Y: " << MiPunto.y << endl; // mostramos el valor acumulado en la variable y return 0; }
Desarrollo inicial
El desarrollo inicial de C se llevó a cabo en los Laboratorios Bell de AT&T entre 1969 y 1973; según Ritchie, el periodo más creativo tuvo lugar en 1972. Se le dio el nombre "C" porque muchas de sus características fueron tomadas de un lenguaje anterior llamado "B".
Hay muchas leyendas acerca del origen de C y el sistema operativo con el que está íntimamente relacionado, Unix. Algunas de ellas son: El desarrollo de C fue el resultado del deseo de los programadores de jugar con Space Travel. Habían estado jugando en el mainframe de su compañía, pero debido a su poca capacidad de proceso y al tener que soportar 100 usuarios, Thompson y Ritchie no tenían suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 de la oficina que no se utilizaba; pero esa máquina no tenía sistema operativo, así que
decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 que había en su oficina, pero era muy costoso, pues todo el código estaba escrito en lenguaje ensamblador.
El C de Kernighan y Ritchie
En 1978, Ritchie y Brian Kernighan publicaron la
primera edición de El lenguaje de programación C, también conocido como La biblia de C. Este libro fue durante años la especificación informal del lenguaje. El lenguaje descrito en este libro recibe habitualmente el nombre de "el C de Kernighan y Ritchie" o simplemente "K&R C" (La segunda edición del libro cubre el estándar ANSI C, descrito más abajo.)
Kernighan y Ritchie introdujeron las siguientes características al lenguaje: •El tipo de datos struct. •El tipo de datos long int. •El tipo de datos unsigned int. •Los operadores =+ y =- fueron sustituidos por += y -= para eliminar la ambigüedad sintáctica de expresiones como i=-10, que se podría interpretar bien como i =- 10 o bien como i = -10. El C de Kernighan y Ritchie es el subconjunto más básico del lenguaje que un compilador debe de soportar. Durante muchos años, incluso tras la introducción del ANSI C, fue considerado "el mínimo común denominador" en el que los programadores debían programar cuando deseaban que sus programas fueran transportables, pues no todos los compiladores soportaban completamente ANSI, y el código razonablemente bien escrito en K&R C es también código ANSI C válido. En estas primeras versiones de C, las únicas funciones que necesitaban ser declaradas si se usaban antes de la definición de la función eran las que retornaban valores no enteros. Es decir, se presuponía que una función
Biblioteca C
Una biblioteca de C es una colección de rutinas utilizadas en el lenguaje de programación C. Las bibliotecas más comunes son la biblioteca estándar de C y la ISO y estándar ANSI C provee las especificaciones de los estándares, las cuales son
ampliamente compartidas entre bibliotecas. La biblioteca ANSI C estándar incluye rutinas para la entrada y salida de archivos, alojamiento de memoria y operaciones con datos comunes como funciones matemáticas, funciones de cadenas y funciones de hora y fecha. Otros juegos de bibliotecas C son aquellas utilizadas para desarrollar sistemas Unix, las cuales proveen interfaces hacia el núcleo. Estas funciones son detalladas en varios estándares tales como POSIX y el Single UNIX Specification. Ya que muchos programas han sido escritos en el lenguaje C existe una gran variedad de bibliotecas disponibles. Muchas bibliotecas son escritas en C debido a que C genera código objeto rápido; los programadores luego generan interfaces a la biblioteca para que las rutinas puedan ser utilizadas desde lenguajes de mayor nivel, tales como Java, Perl y Python.
Conclusión
A pesar de las limitaciones ya mencionadas que presenta nuestro algoritmo podemos decir que cumplimos con los objetivos planeados, ya que los resultados que se obtienen para cualquier función son los correctos. Esto cumple con la creación de una herramienta que facilite el cálculo de la FFT. Por otro lado, este proyecto sirvió como fuente de información en cuanto a nociones de la FFT. Averiguamos algunas de sus principales aplicaciones como el reconocimiento de voz, la compresión y decompresión de archivos y algunas otras que utilizamos en la vida diaria y que en la mayoría de las ocasiones no nos detenemos para analizar su funcionamiento. Todo esto confirma nuestra noción sobre la importancia de una buena base teórica para la aplicación eficiente de la tecnología actual, la cual como estudiantes de Ingeniería en Electrónica y Comunicaciones resulta fundamental. Notamos en particular una importante falta de conocimiento sobre lenguaje C, ya que a pesar de que logramos realizar el programa no fuimos capaces de extender sus capacidades. Probablemente si hubiéramos encontrado la librería mencionada en la sección anterior lo más sencillo hubiera sido simplemente seguir el código de la referencia 2, sin embargo fue mucho más motivante y satisfactorio llegar a un resultado mediante el uso nuestra propia creatividad y esfuerzo.
BIBLIOGRAFIA http://es.wikipedia.org/wiki/C%2B%2B http://www.google.co.ve/search? um=1&hl=es&biw=1280&bih=607&q=c%2B %2B&ie=UTF-8&sa=N&tab=iw http://www.google.co.ve/imgres? imgurl=http://paranoid.dechengst.nl/images/Tru64U NIXscreenshot.jpg&imgrefurl=http://tareasdigitales.bl ogspot.com/2009/06/unix-celebra-40anos.html&usg=__x_aCNrFWYMCLKkyDX8FCgMsiAU=&h=571&w=800&sz=79&hl=es&s tart=5&sig2=f3SPNNeck85X0c85rXNScA&zoom=1&t bnid=G108b8k07AEDBM:&tbnh=102&tbnw=143&ei =KMH2TNKgIYL78Abn-Zi5Bw&prev=/images%3Fq %3DLaboratorios%2BBell%2Bde%2BAT%2526T %26um%3D1%26hl%3Des%26sa%3DN%26biw %3D1280%26bih%3D607%26tbs %3Disch:1&um=1&itbs=1
The end