Estructura de Datos

11
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

description

Lenguaje C

Transcript of Estructura de Datos

Universidad Fermín toroDecanato de ingeniería

Cabudare EDO Lara

Método de adquisición a nivel de programación en c

Integrantes:Daniela atacho

Flor villaJosé parad

Introducción

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 cual corren los programas

C es un lenguaje de programación creado en 1972 por Dennis M. Ritchie en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.Al igual que B, es un lenguaje orientado a la implementación de Sistemas Operativos, concretamente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.

Se trata de un lenguaje 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 del sistema operativo.

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 inicialEl 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 CUna 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%2Bhttp://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/Tru64UNIXscreenshot.jpg&imgrefurl=http:/

/tareasdigitales.blogspot.com/2009/06/unix-celebra-40-

anos.html&usg=__x_aCNrFWYMCL-KkyDX8FCgMsiAU=&h=571&w=800&sz=79&hl=es&start=5&sig2=f3SPNNeck85X0c85rXNScA&zoom=1&tbnid=G108b8k07AEDBM:&tbnh=102&tbnw=143&ei=KMH2TNKg

IYL78Abn-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