viernes, 6 de mayo de 2011

Lenguaje C..




Universidad Autónoma de Santo Domingo

Lenguaje C


Autores:
Nombres:                                                    Matriculas:
o   Sergio Florentino                                      DC-3651

Grupo:
            Los Súper C

Datos del curso:

Materia:
Sistema Operativo

Sección:
01

Profesor:
José Binet





Contenido

¿Qué es El Lenguaje C?

Historia Del  Lenguaje C

Características Del Lenguaje C

Operadores

Compilación de un programa en C

Algunas desventajas

Ventajas del lenguaje C

Algunas de las versiones existentes son

Conclusiones

Referencias



Introducción

C es un lenguaje de programación de propósito general que ofrece una sintaxis fácil de aprender y un buen conjunto de operadores. Es considerado un lenguaje de nivel medio y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje.

Este lenguaje ha sido estrechamente ligado al sistema operativo UNIX, puesto que fueron desarrollados conjuntamente. Se le suele llamar lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se puede desarrollar cualquier tipo de aplicación.

La base del C proviene del BCPL, escrito por Martin Richards, y del B escrito por Ken Thompson en 1970 para el primer sistema UNIX en un DEC PDP-7. Estos son lenguajes sin tipos, al contrario que el C que proporciona varios tipos de datos. Los tipos que ofrece son caracteres, números enteros y en coma flotante, de varios tamaños. Además se pueden crear tipos derivados mediante la utilización de punteros, vectores, registros y uniones. El primer compilador de C fue escrito por Dennis Ritchie para un DEC PDP-11.












¿Qué es El Lenguaje C?

Es un lenguaje de programación de nivel medio ya que combina los elementos del lenguaje de alto nivel con la funcionalidad del ensamblador.

Historia Del  Lenguaje C

En 1967 Martin Richard creo el lenguaje BCPL que fue la base para la creación del lenguaje B escrito por Ken Thompson en 1970 con la intención de recodificar el UNIX, que en su fase de arranque estaba codificado en lenguaje ensamblador.

 El lenguaje c fue creado por Dennis Ritchie en los laboratorios Bell Telephone en 1972, el c fue creado con un fin específico: el diseño del sistema operativo UNIX. Este lenguaje solo es una modificación del lenguaje B. El lenguaje C se llama de esta forma debido a que su predecesor fue llamado B.
La novedad que proporcionó el lenguaje C sobre el B fue el diseño de tipos y estructuras de datos. Los tipos estructurados básicos de C son las estructuras, las uniones, y los arrays. Estos permiten la definición y declaración de tipos de mayor complejidad.

Como el  C es un lenguaje muy poderoso y flexible su uso se difundió muy rápidamente más allá de los laboratorios Bell. Los programadores de todo el mundo comenzaron a usarlo para escribir todo tipo de programas. Sin embargo, diferentes organizaciones comenzaron a utilizar muy pronto sus propias versiones del C,  las pequeñas diferencias entre las  implementaciones comenzaron a dar problemas a los programadores. Para resolver este problema, el American National Stándards (ANSI) formo un comité en 1983 para establecer una definición estándar del C, que llego a ser conocida como C estándar  ANSI. Con unas cuantas excepciones, todos los compiladores del C modernos de adhieren a este estándar.

El lenguaje C inicialmente fue creado para la programación de

v  Sistemas operativos
v  Intérpretes
v  Editores
v  Ensambladores
v  Compiladores
v  Administradores de bases de datos.

Actualmente, debido a sus características, puede ser utilizado para todo tipo de programas.

Características Del Lenguaje C

El lenguaje C ha sido utilizado para el desarrollo de infinidad de herramientas de trabajo (sistemas operativos, compiladores, procesadores de texto, bases de datos, etc.). Mientras que otros lenguajes de programación se caracterizan por ser utilizados en áreas más concretas:

            Fortran            ámbito Científico
            Pascal              soporte a la enseñanza
            COBOL          gestión

El C se caracteriza por no tener ninguna connotación sectorial; dicho de otra forma es un lenguaje de propósito general.

La ventaja más destacable es la transportabilidad o portabilidad, es decir, la posibilidad de utilizarlo tanto en macroordenadores como en mini y microordenadores.

Tipos De Datos

v  Básicos:
·         Numéricos:
o   Entero          palabra clave               int
o   Real             
§  precisión simple           float
§  Precisión doble            double
·     Carácter                                        char  
.     Vacio:                                             void
                                                                             
v  Derivados:    
·         Puntero      
                                     
v  Estructurados:           
·         Complejos.
o   Estáticos     
§  Tabla
o   Dinámicos  
§  Lista
§  Pila
§  Cola
§  Árbol
§  Grafo                                                                                                     
·         Compuestos.
o   Estructura
o   Unión
o   Enumeración
o   Campos de Bit

v  Definidos por el Usuario                             
·         Typedef
Operadores:

Son símbolos que en C tienen un significado determinado y que indican al procesador que tiene que hacer una operación determinada.
Operadores de Expresión:

Paréntesis ( )

1.      Determinan la máxima prioridad en la expresión, comenzando por los internos
2.      Para encerrar los parámetros de una función

Corchetes [ ]

1.      Encierran los índices de tablas.

Operadores Aritméticos:

1.      Monarios, necesitan un solo valor
            Signo negativo             -
            Incremento                  ++
            Decremento                 --

2.      Binarios, necesitan dos valores
            Suma                             +
            Resta                             -
            Multiplicación                *
            División                         /
            Módulo                        %

Operadores Relacionales y Lógicos:

1.      Relacionales:
            Menor que                     <
            Menor o igual que        <=
            Mayor que                     >
            Mayor o igual que        >=
            Igual a                            ==
            Distinto                          !=

No confundir este operador ==  con el operador asignación  =

2.      Lógicos:

            Conjunción Y              &&
            Disyunción O               ||
            Negación                     !

Operadores Para tratamiento de Bits:

Se utilizan para realizar operaciones a nivel de bit, y los operandos deben ser de tipo char o int.

            Y (AND) Binario            &
            O (OR) Binario               |
            O Exclusivo XOR           ^ (ASCII 94)
            Complemento Not       ~ (ASCII126)
            Desplaza. Derecha         >>
            Desplaza. Izquierda       <<

Operadores de Asignación:

Se utilizan para cargar una variable con el valor de expresión. Pueden ser de dos tipos, simple o compuesto.

1.      Asignación Simple:
            Variable = Expresión:              media = suma / num;
2.      Asignación Compuesto
            Variable simbolo_operación = Expresión
3.      Esta asignación es equivalente a:
            Variable = Variable Simbolo_operación (expresión)

Operadores coma:

 Se utiliza para separar dos expresiones dentro de una expresión total.

1.      Para realizar una asignación de una expresión, que previamente requiere otra expresión                         a=(b=5,b+2);    
     equivale a b=5;      a= b+2

2.      Para realizar varias operaciones dentro de la condición de un bucle.
     For (i=0, k=15, i<k; k--)

Operador tamaño:

 Se utiliza para obtener la longitud en bytes de una variable o de un especificador de dato.
 Sizeof(int) Obtiene la longitud de un tipo de datos.

 Sizeof permite obtener la longitud de una estructura sin necesidad de sumar las longitudes de cada una   de  las variables.

            Struct datos {
            nt num;                                                                                                                                                        char nom [40];                                                                                                                   
            float abono;                                                                                                             
                                } socio;
            
            Sizeof socio

Operador de molde

Se utiliza para convertir un tipo de dato en una expresión:
·         (Tipo) Operando
                   float a = 9,25;
     b= (int) a / 2;

Operador condicional:

Se utiliza para realizar una operación alternativa mediante una condición.

    Expresión1? expresión2: expresión3;

Se evalúa la expresión 1 si el resultado es verdadero se evalúa la expresión 2 y su resultado se toma como resultado de la expresión total, por el contrario si el resultado es falso se ejecuta la expresión 3.
    
    Result = (a>b) ? a: b;
    Es equivalente a: If (a >b ) result = a;  else result = b;

Compilación de un programa en C

Los programas en C deben llevar la extensión ".c". Pueden ser escritos en cualquier editor de texto. Una vez escritos, es necesario compilarlos para que puedan ser ejecutados. El proceso de compilación consta de tres etapas: el pre-procesamiento, la compilación, y el enlazamiento. El pre-procesamiento realiza algunas acciones que deben hacerse antes de compilar, por ejemplo, el cambio de nombres de constantes por su valor real, entre otras. El compilado se encarga de convertir el programa en lenguaje C, a lenguaje máquina, generándose un programa en código objeto con extensión ".obj". El enlazamiento se encarga de agregar al programa objeto, todas aquellas funciones o módulos que forman parte del programa pero que se encuentran en archivos separados, para finalmente generar un programa ejecutable con extensión ".exe".

Ventajas del lenguaje C:

.  Es un lenguaje muy flexible
.  Muy apropiado para controlar rutinas hechas en ensamblador
.  Permite general programas de fácil modificación
.  Lenguaje predominante bajo cualquier máquina UNIX
.  Muy veloz y potente, lo que permite un software efectivo
.  Posibilita una programación estructurada o modular
.  Produce programas de código compacto y eficiente
.  Características de Alto nivel que conserva características de bajo nivel, por lo que se puede clasificar           como lenguaje de bajo-medio nivel.
.  Es un lenguaje compilado
.  El código fuente se escribe mayoritariamente en minúsculas

Algunas desventajas:

.  No dispone de editor propio
.  Se requiere más tiempo en conseguir el ejecutable, porque cada vez compila todo el fichero.
.  La modularidad en C tiende a incrementar el tiempo de compilación
.  Poco legible y eminentemente críptico

Algunas de las versiones existentes son:

.  Quick C
.  C++
.  Turbo C
.  Turbo C ++
.  Borland C
.  Borland C++
.  Microsoft C
.  Turbo C
.  Turbo C++
.  Borland C++ 

Conclusiones

Ø  El lenguaje C es un lenguaje de nivel medio ya que combina las propiedades de un lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es esa misma característica la que le da a este lenguaje más potencia y dominio sobre los recursos del sistema. Entre una de las características más importantes de C está la portabilidad, esto es, un programa escrito en C se puede trasladar fácilmente entre distintos sistemas operativos como Windows, DOS o Linux. 
            
Ø  Debido al gran uso que ha tenido C, durante algún tiempo se derivaron diversas versiones lo que generó incompatibilidades. Para solucionar esto, en 1989 nace ANSI C, el cual fue un estándar definido por ANSI para el lenguaje C. Este es la versión de C más utilizada.                                     


Referencias

Libros:
Jordá, Pedro Alonso. García, Fernando.  Onaindía, Eva (2004)                                              

Web:
Alex, Coral                                                                                                                 
Introducción al lenguaje c                                                                                     

                                                                                                                                                                                





Universidad Autónoma de Santo Domingo
(UASD)
Facultad de Ciencias
Escuela de Informática

Inf 3240 01 – 2010 01
Sistemas Operativos


Lenguaje de Programación C


Integrantes



Prof.: José Binet

Santo Domingo, Mayo 2010

 


 


Índice

 















 

 


Introducción  G



        El lenguaje C, a diferencia de lenguajes como Basic y Pascal que son lenguajes de alto nivel, es un lenguaje de nivel medio ya que combina las propiedades de un lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador.

        Es esa misma característica la que le da a este lenguaje más potencia y dominio sobre los recursos del sistema. Entre una de las características más importantes de C está la portabilidad.

        Aunque C fue diseñado para la aplicación de software del sistema, también es ampliamente utilizado para el desarrollo de portátiles de software de aplicación. Tambien fue diseñado para acceder al hardware de la computadora en forma directa es por eso que cuenta con instrucciones para la comunicacion con los puertos a muy bajo nivel.


        El objetivo de esta investigacion es que se enteren desde como fue creado hasta los objetivos y logros del mismo. 

 

 

 

 

 

 

 

 

 

 

 
















 




Definición  G

 

El lenguaje 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  G




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").

 

Precedentes G

 

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. Entonces decidieron usar un lenguaje de alto nivel y portátil para que el sistema operativo se pudiera portar fácilmente de un ordenador a otro. Consideraron usar B, pero carecía de las funcionalidades necesarias para aprovechar algunas características avanzadas del PDP-11. Entonces empezaron a crear un nuevo lenguaje, C.

La justificación para obtener el ordenador original que se usó para desarrollar Unix fue crear un sistema que automatizase el archivo de patentes. La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde, el lenguaje C se desarrolló para poder reescribir el sistema operativo. En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961). 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 semántica 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.

Variantes / Evolución   G

Windows Code::Blocks: Excelente IDE que usa por defecto MinGW32 
Dev-C++: Otro excelente IDE que tambien usa MinGW32 
Visual C++ toolit 2003: El excelente compilador de Microsoft. 
GCC: Uno de los mejores compiladores multilataforma que existe. 
MinGW: El famoso compilador de los mejoes IDEs. 
DJGPP: Otro buen compilador para DOS 
LCC-w32: Un compilador con un IDE basico. 
lcc: Un buen compilador multiplataforma. 
Cygwin: Excelente para portar aplicaciones linux a windows. 

GNU/Lunix

GCC: La mayoria de las distribuciones GNU/Linux y Unix vienen con este gran compilador incluido. 

KDevelop: Este es un completisimo IDE para cualquier lenguaje incluyendo C y C++. Debes configurarlo correctamente para que use el gcc como compilador. Usa KDE. 

Anjuta: Otro excelente IDE que en si no tiene nada que envidiarle a KDevelop. Usa Gnome 

Eric: IDE que soporta una gran variedad de lenguajes. Igualmente debes configurar para que use gcc. 

Otros: En GNU/Linux, Unix y toda su variedad hay una infinidad de editores muy buenos. desde el mas basico como nano hasta vi. Incluso Kate y Kwrite pueden ser considerados excelentes IDEs. Gedit tambien es una buena opcion.

 

Proceso de Compilación  G


Creación del programa

Se puede crear un archivo que contenga el programa completo, como en los ejemplos que se tienen más adelante. Se puede usar cualquier editor de textos ordinario con el que se este familiarizado. Un editor disponible en la mayoría de los sistemas UNIX es vi, y en Linux se puede usar pico. 

Por convención el nombre del archivo debe terminar con ``.c'' por ejemplo: miprograma.c progprueba.c. El contenido del archivo deberá obedecer la sintaxis de C. 
Compilación

Existen muchos compiladores de C. El cc es el compilador estándar de Sun. El compilador GNU de C es gcc, el cual es bastante popular y esta disponible en varias plataformas. 

Existen también compiladores equivalentes de C++ los cuales usualmente son nombrados como CC. Por ejemplo, Sun provee CC y GNU GCC. El compilador de GNU es también denotado como g++. 

Existen otros compiladores menos comunes de C y C++. En general todos los compiladores mencionados operan esencialmente de la misma forma y comparten muchas opciones comunes en la línea de opciones. Más adelante se listan y se dan ejemplos de opciones comunes de los compiladores. Sin embargo, la mejor referencia de cada compilador es a través de las páginas en línea, del manual del sistema. Por ejemplo: man gcc. 

Para compilar el programa usaremos el comando gcc. El comando deberá ser seguido por el nombre del programa en C que se quiere compilar. Un determinado número de opciones del compilador pueden ser indicadas también. Por el momento no haremos uso de estas opciones todavía, se irán comentando algunas más esenciales. 

Por lo tanto, el comando básico de compilación es: gcc programa.c


donde programa.c es el nombre del archivo. 

Si hay errores obvios en el programa (tales como palabras mal escritas, caracteres no tecleados u omisiones de punto y coma), el compilador se detendrá y los reportará. 

Podría haber desde luego errores lógicos que el compilador no podrá detectar. En el caso que esta fuera la situación se le estará indicando a la computadora que haga las operaciones incorrectas. 

Cuando el compilador ha terminado con éxito, la versión compilada, o el ejecutable, es dejado en un archivo llamado a.out, o si la opción -o es usada con el compilador, el nombre después de -o es el nombre del programa compilado. 

Se recomienda y es más conveniente usar la opción -o con el nombre del archivo ejecutable como se muestra a continuación: gcc -o programa programa.c


el cual pone el programa compilado en el archivo del programa señalado, en éste caso en programa, en vez del archivo a.out. 
Ejecución del programa

El siguiente estado es correr el programa ejecutable. Para correr un ejecutable en UNIX, simplemente se escribe el nombre del archivo que lo contiene, en este caso programa (o a.out). 

Con lo anterior, se ejecuta el programa, mostrando algún resultado en la pantalla. En éste estado, podría haber errores en tiempo de ejecución (run-time errors), tales como división por cero, o bien, podrían hacerse evidentes al ver que el programa no produce la salida correcta. 

Si lo anterior sucede, entonces se debe regresar a editar el archivo del programa, recompilarlo, y ejecutarlo nuevamente.



Tipos de Datos en C   G



Una variable es un espacio reservado en el ordenador para contener valores que pueden
cambiar durante la ejecución de un programa. Los tipos determinan cómo se manipulará la
información contenida en esas variables. No olvides, si es que ya lo sabías, que la
información en el interior de la memoria del ordenador es siempre binaria, al menos a un
cierto nivel. El modo en que se interpreta la información almacenada en la memoria de un
ordenador es siempre arbitraria, es decir, el mismo valor puede usarse para codificar una
letra, un número, una instrucción de programa, etc. El tipo nos dice a nosotros y al
compilador cómo debe interpretarse y manipularse la información binaria almacenada en
la memoria de un ordenador.
De momento sólo veremos los tipos fundamentales, que son: void, char, int, float y double,
en C++ se incluye también el tipo bool. También existen ciertos modificadores, que
permiten ajustar ligeramente ciertas propiedades de cada tipo; los modificadores pueden
ser: short, long, signed y unsigned o combinaciones de ellos. También veremos en este
capítulo los tipos enumerados, enum.
Tipos fundamentales
En C sólo existen cinco tipos fundamentales y los tipos enumerados, C++ añade un
séptimo tipo, el bool, y el resto de los tipos son derivados de ellos. Los veremos uno por
uno, y veremos cómo les afectan cada uno de los modificadores.
Las definiciones de sintaxis de C++ se escribirán usando el color verde. Los valores entre
[] son opcionales, los valores separados con | indican que sólo debe escogerse uno de los
valores. Los valores entre <> indican que debe escribirse obligatoriamente un texto que se
usará como el concepto que se escribe en su interior.
[signed|unsigned] char <identificador> significa que se puede usar signed o unsigned, o
ninguna de las dos, ya que ambas están entre []. Además debe escribirse un texto, que debe
ser una única palabra que actuará como identificador o nombre de la variable. Este
identificador lo usaremos para referirnos a la variable durante el programa.
Para crear un identificador hay que tener en cuenta algunas reglas, no es posible usar
cualquier cosa como identificador.
l Sólo se pueden usar letras (mayúsculas o minúsculas), números y ciertos caracteres
no alfanuméricos, como el '_', pero nunca un punto, coma, guión, comillas o
símbolos matemáticos o interrogaciones.
l El primer carácter no puede ser un número.
l C y C++ distinguen entre mayúsculas y minúsculas, de modo que los
identificadores numero y Numero son diferentes.
http://localhost/conclase/c/curso/curso.php?cap=002 (1 de 7) [29/08/2003 17:22:40]
Curso de C++. Capítulo 002
Serán válidos estos ejemplos:
signed char Cuenta
unsigned char letras
char caracter
Tipo "char" o carácter:
[signed|unsigned] char <identificador>
Es el tipo básico alfanumérico, es decir que puede contener un carácter, un dígito
numérico o un signo de puntuación. Desde el punto de vista del ordenador, todos esos
valores son caracteres. En C y C++ este tipo siempre contiene un único carácter del código
ASCII. El tamaño de memoria es de 1 byte u octeto. Hay que notar que en C un carácter
es tratado en todo como un número, de hecho puede ser declarado con y sin signo. Y si
no se especifica el modificador de signo, se asume que es con signo. Este tipo de variables
es apto para almacenar números pequeños, como los dedos que tiene una persona, o letras,
como la inicial de mi nombre de pila.
Tipo "int" o entero:
[signed|unsigned] [short|long|long long] int <identificador>
[signed|unsigned] long long [int] <identificador>
[signed|unsigned] long [int] <identificador>
[signed|unsigned] short [int] <identificador>
Las variables enteras almacenan números enteros dentro de los límites de su tamaño, a su
vez, ese tamaño depende de la plataforma del compilador, y del número de bits que use
por palabra de memoria: 8, 16, 32... No hay reglas fijas para saber el mayor número que
podemos almacenar en cada tipo: int, long int o short int; depende en gran medida del
compilador y del ordenador. Sólo podemos estar seguros de que ese número en short int es
menor o igual que en int, y éste a su vez es menor o igual que en long int y que long long
int es mayor o igual a long int. Veremos cómo averiguar estos valores cuando estudiemos
los operadores.
A cierto nivel, podemos considerar los tipos "char", "short", "int", "long" y "long long"
como tipos diferentes, todos enteros. Pero sólo se diferencian en el tamaño del valor
máximo que pueden contener.
Este tipo de variables es útil para almacenar números relativamente grandes, pero sin
decimales, por ejemplo el dinero que tienes en el banco, salvo que seas Bill Gates, o el
http://localhost/conclase/c/curso/curso.php?cap=002 (2 de 7) [29/08/2003 17:22:40]
Curso de C++. Capítulo 002
número de lentejas que hay en un kilo de lentejas.
Tipo "float" o coma flotante:
float <identificador>
Las variables de este tipo almacenan números en formato de coma flotante, mantisa y
exponente, para entendernos, son números con decimales. Son aptos para variables de tipo
real, como por ejemplo el cambio entre euros y pesetas. O para números muy grandes,
como la producción mundial de trigo, contada en granos. El fuerte de estos números no es
la precisión, sino el orden de magnitud, es decir lo grande o pequeño que es el número que
contiene. Por ejemplo, la siguiente cadena de operaciones no dará el resultado correcto:
float a = 12335545621232154;
a = a + 1;
a = a - 12335545621232154;
Finalmente, "a" valdrá 0 y no 1, como sería de esperar. Los formatos en coma flotante
sacrifican precisión en favor de tamaño. Sin embargo el ejemplo si funcionaría con
números más pequeños. Esto hace que las variables de tipo float no sean muy adecuadas
para los bucles, como veremos más adelante.
Puede que te preguntes (alguien me lo ha preguntado), qué utilidad tiene algo tan
impreciso. La respuesta es: aquella que tú, como programador, le encuentres. Te aseguro
que float se usa muy a menudo. Por ejemplo, para trabajar con temperaturas, la precisión
es suficiente para el margen de temperaturas que normalmente manejamos y para
almacenar al menos tres decimales. Pero hay cientos de otras situaciones en que resultan
muy útiles.
Tipo "bool" o Booleana:
bool <identificador>
Las variables de este tipo sólo pueden tomar dos valores "true" o "false". Sirven para
evaluar expresiones lógicas. Este tipo de variables se puede usar para almacenar
respuestas, por ejemplo: ¿Posees carné de conducir?. O para almacenar informaciones que
sólo pueden tomar dos valores, por ejemplo: qué mano usas para escribir. En estos casos
debemos acuñar una regla, en este ejemplo, podría ser diestro->"true", zurdo->"false".
bool respuesta;
http://localhost/conclase/c/curso/curso.php?cap=002 (3 de 7) [29/08/2003 17:22:40]
Curso de C++. Capítulo 002
bool continuar;
Nota: En algunos compiladores antiguos de C++ no existe el tipo bool. Lo lógico sería
no usar esos compiladores, y conseguir uno más actual. Pero si esto no es posible se
puede simular este tipo a partir de un enumerado.
enum bool {false=0, true};
Tipo "double" o coma flotante de doble precisión:
[long] double <identificador>
Las variables de este tipo almacenan números en formato de coma flotante, mantisa y
exponente, al igual que float, pero usan mayor precisión. Son aptos para variables de tipo
real. Usaremos estas variables cuando trabajemos con números grandes, pero también
necesitemos gran precisión. Lo siento, pero no se me ocurre ahora ningún ejemplo.
Bueno, también me han preguntado por qué no usar siempre double o long double y
olvidarnos de float. La respuesta es que C siempre ha estado orientado a la economía de
recursos, tanto en cuanto al uso de memoria como al uso de procesador. Si tu problema no
requiere la precisión de un double o long double, ¿por qué derrochar recursos?. Por
ejemplo, en el compilador Dev-C++ float requiere 4 bytes, double 8 y long double 12, por
lo tanto, para manejar un número en formato de long double se requiere el triple de
memoria y el triple o más tiempo de procesador que para manejar un float.
Como programadores estamos en la obligación de no desperdiciar nuestros recursos, y
mucho más los recursos de nuestros clientes, para los que haremos nuestros programas. C
y C++ nos dan un gran control sobre estas características, es nuestra responsabilidad
aprender a usarlos como es debido.
Tipo "void" o sin tipo:
void <identificador>
Es un tipo especial que indica la ausencia de tipo. Se usa en funciones que no devuelven
ningún valor, también en funciones que no requieren parámetros, aunque este uso sólo es
obligatorio en C, y opcional en C++, también se usará en la declaración de punteros
genéricos, lo veremos más adelante.
Las funciones que no devuelven valores parecen una contradicción. En lenguajes como
Pascal, estas funciones se llaman procedimientos. Simplemente hacen su trabajo, y no
revuelven valores. Por ejemplo, funciones como borrar la pantalla, no tienen nada que
http://localhost/conclase/c/curso/curso.php?cap=002 (4 de 7) [29/08/2003 17:22:40]
Curso de C++. Capítulo 002
devolver, hacen su trabajo y regresan. Lo mismo se aplica a funciones sin parámetros de
entrada, el mismo ejemplo de la función para borrar la pantalla, no requiere ninguna
entrada para poder hacer su cometido.
Tipo "enum" o enumerado:
enum [<identificador_de_enum>] {
<nombre> [= <valor>], ...} [lista_de_variables];
Se trata de una sintaxis muy elaborada, pero no te asustes, cuando te acostumbres a ver
este tipo de cosas las comprenderás mejor.
Este tipo nos permite definir conjuntos de constantes, normalmente de tipo int, llamados
datos de tipo enumerado. Las variables declaradas de este tipo sólo podrán tomar valores
entre los definidos.
El identificador de tipo es opcional, y nos permitirá declarar más variables del tipo
enumerado en otras partes del programa:
[enum] <identificador_de_enum> <lista_de_identificadores>;
La lista de variables también es opcional. Sin embargo, al menos uno de los dos
componentes opcionales debe aparecer en la definición del tipo enumerado.
Varios identificadores pueden tomar el mismo valor, pero cada identificador sólo puede
usarse en un tipo enumerado. Por ejemplo:
enum tipohoras { una=1, dos, tres, cuatro, cinco,
seis, siete, ocho, nueve, diez, once,
doce, trece=1, catorce, quince,
dieciseis, diecisiete, dieciocho,
diecinueve, veinte, ventiuna,
ventidos, ventitres, venticuatro = 0};
En este caso, una y trece valen 1, dos y catorce valen 2, etc. Y veinticuatro vale 0. Como
se ve en el ejemplo, una vez se asigna un valor a un elemento de la lista, los siguientes
toman valores correlativos. Si no se asigna ningún valor, el primer elemento tomará el
valor 0.
Los nombres de las constantes pueden utilizarse en el programa, pero no pueden ser leídos
ni escritos. Por ejemplo, si el programa en un momento determinado nos pregunta la hora,
http://localhost/conclase/c/curso/curso.php?cap=002 (5 de 7) [29/08/2003 17:22:40]
Curso de C++. Capítulo 002
no podremos responder doce y esperar que se almacene su valor correspondiente. Del
mismo modo, si tenemos una variable enumerada con el valor doce y la mostramos por
pantalla, se mostrará 12, no doce. Deben considerarse como "etiquetas" que sustituyen a
enteros, y que hacen más comprensibles los programas. Insisto en que internamente, para
el compilador, sólo son enteros, en el rango de valores válidos definidos en cada enum.
Palabras reservadas usadas en este capítulo
Las palabras reservadas son palabras propias del lenguaje de programación. Están
reservadas en el sentido de que no podemos usarlas como identificadores de variables o de
funciones.
char, int, float, double, bool, void, enum, unsigned, signed, long, short, true y false.





Aplicaciones Hechas en C   G




  •  Android es un sistema operativo para dispositivos móviles y ordenadores basado en el núcleo Linux. Los desarrolladores deben escribir código gestionado en lenguaje de programación Java a través de SDK proporcionada por el mismo Google. Una alternativa es el uso de la NDK (Native Development Kit) de Google para hacer el desarrollo en lenguaje C como código fuente.

  • Windows esta hecho en C. 

    C tiene la ventaja de que puede escalarse con assembler, lo cual es buena opcion para optimizar ciertos modulos. Las versiones anteriores de windows estaban hechas en basic (basic NO visual basic) que es un lenguaje de bajo nivel de hace unos cuantos años ya. Es un lenguaje que se usa mucho en la electronica aun. Actualmente windows 7 mac osx leopard y linuxusan mas de una tecnologia ya se empezo a usar c# c++ y hasta java.

  • En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Éste fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961).

  •  Un 97% de los juegos para PC estan hecho con el lenguaje C, como: DOOM, QUAKE II, QUAKE III.

  • Tambien se han desarrollado algoritmos sobre graficos e Inteligencia Artificial, manejo de API's graficas como Direct Graphics (Direct 3D o Direct Draw) u OpenGL. 

  • Compiladores
  • Pidgin (anteriormente llamado Gaim) es un cliente de mensajería instantánea multiplataformacapaz de conectarse a múltiples redes (multiprotocolo) y cuentas (multicuenta) de manera simultánea.

  • GIMP (GNU Image Manipulation Program) es un programa de edición de imágenes digitales en forma de mapa de bits, tanto dibujos como fotografías. Es un programa libre y gratuito

  • GNOME es un entorno de escritorio e infraestructura de desarrollo para sistemas operativos Unix y derivados Unix como GNU/Linux, BSD o Solaris; compuesto enteramente de software libre.

  • Vim  es una versión mejorada del editor de texto vi, presente en todos los sistemas UNIX.

  • Nmap es un programa de código abierto que sirve para efectuar rastreo de puertos escrito originalmente por Gordon Lyon (más conocido por su alias Fyodor Vaskovich). Se usa para evaluar la seguridad de sistemas informáticos, así como para descubrir servicios o servidores en una red informática
  • Links es un navegador web de código abierto en modo texto (y gráfico a partir de su versión 2 en modo terminal).
  • Blender es un programa informático multiplataforma, dedicado especialmente al modelado, animación y creación de gráficos tridimensionales. Hecho en, casi su totalidad,  C.

  • OpenSolaris es un sistema operativo libre publicado en 2005 a partir de la versión propietariadel sistema operativo Solaris de Sun Microsystems, ahora parte de Oracle Corporation. 

  • Entre muchas mas.


        Como podemos ver el lenguaje C no tiene limites en lo que a desarrollo de software se refiere.




  


C y Sistemas Operativos G


  
        El uso principal de C es para "la programación del sistema", incluyendo la implementación de sistemas operativos y aplicaciones integradas del sistema, debido a una combinación de características deseables tales como la portabilidad del código y la eficiencia, la capacidad de acceder a direcciones específicas de hardware, la capacidad de "juego de palabras" tipos para que coincida con impuestos desde el exterior requisitos de acceso de datos, y la demanda de tiempo de ejecución bajo en los recursos del sistema. C también se puede utilizar para la programación de página web a través de CGI como una "puerta" para obtener información entre la aplicación Web, el servidor y el navegador. Algunos de los factores para elegir C en lenguajes interpretados son su velocidad, estabilidad y menor susceptibilidad a los cambios en entornos de funcionamiento debido a su naturaleza compilado. 

       La justificación para obtener el ordenador original que se usó para desarrollar Unix fue crear un sistema que automatizase el archivo de patentes. La versión original de Unix se desarrolló en lenguaje ensamblador. Más tarde, el lenguaje C se desarrolló para poder reescribir el sistema operativo.

        Una de las consecuencias de la aceptación de C y la eficiencia es que los compiladores, bibliotecas, y los intérpretes de lenguajes de programación que frecuentemente se han implementado en C. 

        C es a veces utilizado como un lenguaje intermedio de las implementaciones de otros idiomas. Este enfoque puede ser utilizado para la portabilidad o la conveniencia; mediante el uso de C como un lenguaje intermedio, no es necesario para desarrollar generadores de código específicos de la máquina. Algunos compiladores C que utilizan esta forma se BITC, Gambito, el Glasgow Haskell Compiler, Squeak, y Vala. Sin embargo, C fue diseñado como un lenguaje de programación, no como un idioma de destino del compilador, por lo que es menos que ideal para ser utilizado como un lenguaje intermedio. Esto ha llevado al desarrollo de lenguajes intermedios basados en C como C -. 

        C también ha sido ampliamente utilizado para implementar aplicaciones de usuario final, sino como aplicaciones se hicieron más grandes, gran parte de que el desarrollo pasó a otros idiomas.




















































Estructura Básica de un Programa Escrito en C   G



 ELEMENTOS GENERALES DE UN PROGRAMA EN C

        Aunque cada uno de los programas son distintos, todos tienen características comunes. Los elementos de un programa en C son los siguientes:

Comentarios
Inclusión de archivos
main()
{
variables locales
flujo de sentencias
}
Definición de funciones creadas por el programador utilizadas en main()


Veamos en que consiste cada uno:

Comentarios: Se identifican porque van entre diagonales y asterisco.Nos sirve para escribir información que nos referencie al programa pero que no forme parte de él. Por ejemplo especificar que hace elprograma, quien lo elaboró, en que fecha, que versión es, etc.

Inclusión de archivos: Consiste en mandar llamar a la o las bibliotecas donde se encuentran definidas las funciones de C (instrucciones) que estamos utilizando en el programa. En realidad, la inclusión de archivos no forma parte de la estructura propia de un programa sino que pertenece al desarrollo integrado de C. Se incluye aquí para que el alumno no olvide que debe mandar llamar a los archivos donde se encuentran definidas las funciones estandar que va a utilizar.

main(): En C, todo está constituido a base de funciones. El programa principal no es la excepción. main() indica el comienzo de la función principal del programa la cual se delimita con llaves.

Variables locales: Antes de realizar alguna operación en el programa, se deben declarar la(s) variable(s) que se utilizarán en el programa.

Flujo de sentencias: Es la declaración de todas las instrucciones que conforman el programa.

Definición de funciones creadas por el programador utilizadas en main(): Finalmente,se procede a definir el contenido de las funciones utilizadas dentro de main(). 



 Ejemplo: Hola Clase

# Include <stdio.h>
int main (void) 
printf ("hola, clase \ n"); 
return 0;
)

































Sugerencias  G








 































 

 





Conclusiones   G


        C es un lenguaje que se puede trasladar fácilmente entre distintos sistemas operativos como Windows, DOS o Linux.

Como podemos ver el lenguaje C no tiene limites en lo que a desarrollo de software se refiere.

        En parte a causa de ser de relativamente bajo nivel y de tener un modesto conjunto de características, se pueden desarrollar compiladores de C fácilmente. En consecuencia, el lenguaje C está disponible en un amplio abanico de plataformas.

        Además, a pesar de su naturaleza de bajo nivel, el lenguaje se desarrolló para incentivar la programación independiente de la máquina. Un programa escrito cumpliendo los estándares e intentando que sea portátil puede compilarse en muchos computadores.

  
        La creación del lenguaje de programación C supuso un antes y un después en la historia de la programación. En nuestra opinión, el lenguaje C ha sido el lenguaje de más repercusión en la historia de los ordenadores, y su sintaxis ha servido como punto de partida para muchos de los lenguajes de programación actuales como Java, Vala, Objective-C, AWK, bc, C++ o C#. Hoy en día sigue siendo muy utilizado en multitud de aplicaciones, incluido el sistema operativo Linux, cuyo núcleo está escrito en su mayor parte en lenguaje C.
                                                                                                   

  










Referencias  G


        Lenguaje de programación C. (2010, 27) de abril. Wikipedia, La enciclopedia libre. Fecha de consulta: 19:49, abril 29, 2010 from http://es.wikipedia.org/w/index.php?title=Lenguaje_de_programaci%C3%B3n_C&oldid=36504100.
curso de c++ con clase, salvador pozo coronado (2003) http:www.conclase.net

     El Lenguaje de Programación C,segunda edición. Brian Kernighan y Dennis Ritchie, 1988. No. Páginas 272.































  

Cuestionario    G



1-     El lenguaje C fue creado en el año:

a.      2005.
b.      2003
c.      2008
d.      1950
e.      1972

2-     Una de las características más importantes de C

a.      Compatibilidad.
b.      Portabilidad.
c.      Confiabilidad.
d.      Encapsulamiento.
e.      Orientado a Objetos.

3-     Primera estandarización del lenguaje C

a.      ISO 9001.
b.      ANSI.
c.      ASCII.
d.      C Standar.
e.      Kernel Standar.

4-     Es uno de los lenguaje que C ha influenciado

a.      Visual Basic.NET.
b.      Delphi.
c.      Visual Foxpro.
d.      Java
e.      ADA


 5- Para que nos sirve un comentario en el lenguaje de programacion c?
                    
                        a.  Nos sirve para escribir información que nos referencie al programa pero que no forme parte de él. 
                        b. Nos sirve para escribir un trozo de codigo que no se compilara.
                        c. Nos sirve para identificar las referencias del compilador.
                        d. Nos sirve para escribir una nota al usuario final.
                        e. Nos ayuda a leer mejor  las funciones del programa.

6. Para que sirve el Lenguaje C?
                
                        a. Para buscar informacion actualizada.
                        b. Para escribir texto.
                        c. Implementar aplicacions de ususario final.
                        d.  Para implementar programas inservibles.
                        e. Para usarlo como herramienta de aprendizaje.

7.  Que es main()?

                    a. Una funcion de C.
                    b. Parte obligatoria y fundamental del codigo para hacer comentarios.
                    c. Parte no importante del codigo en C.
                    d. Un estado del compilador.
                    e. Un programa.
 
8.Determinan como se manipularan la informacion contenida en esas variables:
 
                    a. Tipos de datos en c.
                    b. Las clases.
                    c. Librerias.
                    d. compilador.
                    e. identificadores.
 
9. Es el tipo basico alfanumerico, es decir que puede contener un caracter.
 
                          a. char.
                    b. void.
                    c. int.
                    d. compilador.
                    e. long
 
10. En C sólo existen________________tipos fundamentales y los tipos enumerados, C++ añade un séptimo tipo, el bool, y el resto de los tipos son derivados de ellos.

                         a. cinco.
                    b. diez.
                    c. dos.
                    d. cuatro.
                    e. ninguna de las anteriores.
 




 










Video  G











No hay comentarios:

Publicar un comentario