SlideShare una empresa de Scribd logo
1 de 7
LENGUAJE C

CONTENIDO

1. INTRODUCCIÓN

      1.1. CARACTERÍSTICAS DEL LENGUAJE C
      1.2. VENTAJAS

2. ESTRUCTURA BASICA DE UN PROGRAMA EN C

3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C

4. LAS VARIABLES

5. OPERADORES

      5.1. OPERADORES MÁS FRECUENTES
      5.2. OPERADORES DE ASIGNACION
      5.3. OPERADORES DE RELACION
      5.4. OPERADORES LÓGICOS
      5.5. EXPRESIONES

6. FUNCION DE ENTRADA Scanf ( )

7. FUNCIÓN DE ENTRADA Printf( )

8. ESTRUCTURAS DE CONTROL DE FLUJO

      8.1. SENTENCIAS ALTERNATIVAS
             8.1.1. SENTENCIA If – Else
            8.1.2. SENTENCIA Switch

      8.2. SENTENCIA REPETITIVAS
             8.2.1. SENTENCIA While
             8.2.2. SENTENCIA Do .. While
             8.2.3. SENTENCIA For
             8.2.4. SENTENCIA Break
             8.2.5. SENTENCIA Continue

9. LA DIRECTIVA #include

10. EL PREPROCESADOR #define

11. ARREGLOS EN LENGUAJE C

      11.1. CONCEPTO
      11.2. INICIALIZACION DE UN ARREGLO
      11.3. VECTORES
      11.4. MATRICES

12. FUNCIONES EN C
LENGUAJE C
1. INTRODUCCIÓN

Este lenguaje está inspirado en el Lenguaje B escrito por Ken Thompson en 1970, pero en 1972
Dennis Ritchie toma el relevo y modifica el Lenguaje B, creando el Lenguaje C. La novedad que
proporcionó el Lenguaje C sobre el B fue el diseño de tipos y estructura de datos. El C
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.

C es un lenguaje de programación de propósito general, control de flujo y estructuras sencillas y
un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje
pequeño sencillo y no esta 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.

Se diseño con el objetivo de ser un lenguaje orientado al diseño de Sistemas Operativos, por eso
se ha convertido en un lenguaje de propósito general. Se le dio el nombre “C” porque muchas de
sus características fueron tomadas de un lenguaje anterior llamado “B” fue esencialmente una
simplificación del lenguaje BCPL, BCPL es un acrónimo ingles de Basic Combined Programming
Lenguaje (Lenguaje de Programación Básico Combinado).

Hay muchas leyendas acerca del origen de C y el sistema operativo con el que esta íntimamente
relacionado, Unix( Unix es un sistema operativo creado en lenguaje C). 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ía suficiente control sobre
la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un
PDP-7 (El PDP-7 de DEC fue clasificado como microcomputador en su lanzamiento) de la oficina
que no se utilizaba; pero esa maquina no tenia sistema operativo así que decidieron escribir uno.
Finalmente decidieron portar el sistema operativo del PDP-11 (Fue la primera minicomputadora en
interconectar todos los elementos del sistema –procesador, memoria y periférico- a un único bus
de comunicación, bidireccional, asíncrono) que había en su oficina pero era muy costoso, pues
todo el código estaba escrito en lenguaje ensamblador(un lenguaje ensamblador es un lenguaje
donde se trabaja con códigos y binarios). 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.

1.1. CARACTERÍSTICAS DEL LENGUAJE C

El lenguaje C se conoce como un lenguaje compilado(compilado quiere decir que viene con
algunas características de otros programas). Existen dos tipos de lenguaje: interpretados y
compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (P. Ej.:
Basic). Los compilados convierten el código fuente en un fichero objeto y este en un fichero
ejecutable. Este es el caso del lenguaje C. Podemos decir que el lenguaje C es un lenguaje de
nivel medio, ya que combina elementos del lenguaje de alto nivel con la funcionalidad del lenguaje
ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques
dentro de otros procedimientos. Hay que destacar que el C es un lenguaje portable, ya que
permite utilizar el mismo código en diferentes equipos y sistemas informáticos. Por último solo
queda decir que el C es un lenguaje relativamente pequeño; se puede describir en poco espacio y
aprender rápidamente.

1.2. VENTAJAS
Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar
implementaciones óptimas. A pesar de su bajo nivel es el lenguaje más portado en existencia,
habiendo compiladores para casi todos los sistemas conocidos. Proporciona facilidades para
realizar programas modulares y/o utilizar código o bibliotecas existentes.

2. ESTRUCTURA BASICA DE UN PROGRAMA EN C

La estructura de un programa sencillo en C es la siguiente:

Declaración de importaciones.- La declaración de importaciones se utiliza para
comunicar al compilador qué acciones y funciones de las mencionadas en el programa no
se encuentran implementadas en este. Estos procedimientos externos al programa se
hallan disponibles en ciertas estructuras llamadas módulos que tienen asociado un fichero
con extensión. h que contiene la lista de procedimientos importables. Para incluirlos es
suficiente escribir una instrucción del tipo

#include <nombre_módulo.h> .- Ejemplos de módulos empleados con frecuencia son
stdio (que contiene los procedimientos de entrada salida) y math (que contiene funciones
matemáticas).

Definición de constantes.- Las definiciones de constantes asignan a un identificador una
cadena de caracteres. Un proceso previo a la compilación substituirá el identificador por la
cadena de caracteres cada vez que lo encuentre. Su formato es

#define identificador cadena.- Y al igual que con la instrucción #include, no hace falta
poner el terminador; al final de la instrucción.

Definición de tipos.- La declaración de tipos permite definir tipos de datos que serán
utilizados en todo el programa.

Void main (void)
{
Declaración de variables
Instrucciones ejecutables
}

La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo
que se puede escribir en C es el siguiente:
Main ( )
{
}

Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más
importante de cualquier programa C y además, es el más pequeño que se puede escribir
y que se compile correctamente. En el se define la función main, que es la que ejecuta el
sistema operativo al llamar a un programa C. El nombre de una función C siempre va
seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función
está formada por un bloque de sentencias, que esta encerrado entre llaves {}.

Main (). Indica el comienzo de la función principal del programa la cual se delimita con
llaves.

EJEMPLO: Escriba un programa que imprima el mensaje "Primer programa".
/* Primer programa */
#include <stdio.h>
main()
{
printf("Primer programan");
}

EJEMPLO: Escriba un programa que calcule el factorial de un número.
/* Factorial de un numero */
#include <stdio.h>
main()
{
int i, numero, factorial=1;
printf("nEscriba un numero entero para calcular su factorial: ");
scanf("%d",&numero);
for (i=numero; i>1; --i) factorial *= i;
printf("n%d! = %dn",numero,factorial);
}


3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C

Los tipos básicos de datos definidos por C son caracteres. Números enteros y números en coma
flotante. Los caracteres son representados por char, los enteros por short, int, long y los números
en coma flotante por flota y double. Los tipos básicos disponibles y su tamaño son:

Char             Carácter                      (normalmente 8 bits)
Short            Entero cortó con signo        (normalmente 16 bits)
Int              Entero con signo              (depende de la implementación)
Unsigned         Entero sin signo              (depende de la implementación)
Long             Entero Largo con signo        (normalmente 32 bits)
Float            Flotante simple               (normalmente 32 bits)
Double           Flotante doble                (normalmente 64 bits)

La palabra unsigned en realidad es un modificador aplicable a tipos enteros, aunque si no se
especifica un tipo se supone int. Un modificador es una palabra clave de C que indica que una
variable, o función, no se comporta de forma normal. Hay también un modificador signed, pero
como los tipos son por defecto con signo, casi no se utiliza.
Las variables son definidas utilizando un identificador de tipo seguido del nombre de la variable.
Veamos el siguiente programa

#include<stdio>
main
{
  float cels,farth;             /*Identificador o tipo de dato*/
  farh=35.0;                   /*Variables*/
  cels=5.0*(farh-32.0)/9.0;    /*Asignamos valor a la variable*/
  printf(“->%f F son %fCn”,farh,cels);
}

En el programa anterior se define dos variables float, se asigna un valor a la primera y se calcula
la segunda mediante una expresión aritmética.

DECLARACIÓN DE VARIABLES

#include <stdio.h>
int a;                      /*Identificador   Variable;*/
main()                      /* Muestra dos valores*/
  int b=4;                  /*Asignamos valor a la variable*/
  printf(“b es local y      vale %d”,b);
  a=5;
}

PROGRAMA: Calcular la suma de los números 5 y 6
#include <stdio>
main
{                        /*Identificador o tipo de dato*/
   int a,b,c;            /*Variables*/
   a=5;                  /*Asignamos valores a las variables*/
   b=6;
   c=a+b;
}

4. LAS VARIABLES

Una variable es un tipo de dato, que tiene un identificador ( es el nombre de la variable), se
utilizan para guardar datos dentro de un programa y se puede modificar a lo largo del programa.
Una variable sólo puede tener un tipo de dato, para poder utilizar una variable primero tiene que
ser declarada. El identificador (nombre de la variable) puede ser caracteres como letras :a-z y A-Z
, los números del 0-9 y en símbolos subrayados_.

La ( ñ o Ñ) no esta permitida, y además hay que tener en cuenta que el primer carácter no puede
ser un número .

DÓNDE SE DECLARAN.- Las variables pueden ser de dos tipos según el lugar donde
declaremos: globales o locales:

   •   Las variables globales deben ser declaradas antes de la main ( ) y pueden ser utilizadas en
       cualquier parte del programa.
   •   Las variables locales deben ser declaradas después de la main ( ), solo existe dentro de la
       función en que se declare y se destruye al finalizar dicha función.

EJEMPLO:
/*Declaración de variables*/
# include<stdio.h>
int a;
main( ) /*Muestra los valores */
      int b=4;
      a=5;

Los siguientes son ejemplos de nombres de variables válidos:

Char a;                           /*   Es   una letra del a-z */
int pepe;                         /*   No   es una palabra reservada */
int toto12;                       /*   El   número va después de la palabra */
int un_nombre_largo;              /*   La   palabra lleva subrayado */

Los siguientes son ejemplos no válidos de nombres de variables:

Int 123var;                       /*   Empieza por dígitos */
Char int;                         /*   Palabra reservada */
int una sola;                     /*   Contiene espacios */
int eñe;                          /*   No funciona */


5. OPERADORES

5.1. OPERADORES MÁS FRECUENTES

OPERADORES ARITMETICOS

Tal como era de esperarse los operadores aritméticos comprenden las cuatro operaciones
básicas, suma, resta, multiplicación y división, con un agregado, el operador módulo.
SIMBOLO   DESCRIPCION       EJEMPLO    ORDEN DE EVALUACION
+         SUMA              a + b      3
-         RESTA             a - b      3
*         MULTIPLICACION    a * b      2
/         DIVISION          a / b      2
%         MODULO            a % b      2
-         SIGNO             -a         2

El operador módulo (%) se utiliza para calcular el resto del cociente entre dos ENTEROS,
y NO puede ser aplicado a variables del tipo float ó double.

Si en una operación existen varios operadores, primero se evaluarán los de multiplicación,
división    y     módulo      y      luego     los    de      suma      y     resta.

Para evitar errores en los cálculos se pueden usar paréntesis, sin limitación de
anidamiento, los que fuerzan a realizar primero las operaciones incluidas en ellos. Los
paréntesis no disminuyen la velocidad a la que se ejecuta el programa sino que tan sólo
obligan al compilador a realizar las operaciones en un orden dado, por lo que es una
buena costumbre utilizarlos ampliamente.

Los paréntesis tienen un orden de precedencia 0, es decir que antes que nada se evalúa
lo que ellos encierran.

Se puede observar que no existen operadores de potenciación, radicación, logaritmación,
etc., ya que en el lenguaje C todas estas operaciones (y muchas otras) se realizan por
medio de llamadas a Funciones.

El último de los operadores aritméticos es el de SIGNO. No debe confundírselo con el de
resta, ya que este es un operador unitario que opera sobre una única variable cambiando
el signo de su contenido numérico. Obviamente no existe el operador + unitario, ya que su
operación sería DEJAR el signo de la variable, lo que se consigue simplemente por
omisión del signo.

OPERADORES DE INCREMENTO Y DECREMENTO

Los operadores de incremento y decremento son sólo dos:

SIMBOLO   DESCRIPCION   EJEMPLO       ORDEN DE EVALUACION
++        incremento    ++i ó i++     1
--        decremento    --i ó i--     1

Para visualizar rápidamente la función de los operadores antedichos, digamos que las
sentencias:

a=a+1;       a++ ;

Tienen una acción idéntica, de la misma forma que:

a=a-1;       a-- ;

Es decir incrementa y decrementa a la variable en una unidad
Si bien estos operadores se suelen emplear con variables int, pueden ser usados sin
problemas con cualquier otro tipo de variable. Así si a es un float de valor 1.05 , luego de
hacer a++ adoptará el valor de 2.05 y de la misma manera si b es una variable del tipo
char que contiene el carácter 'C' , luego de hacer b-- su valor será 'B' .
Si bien las sentencias

i++ ;   ++i ;

Son absolutamente equivalentes, en la mayoría de los casos la ubicación de los
operadores incremento ó decremento indica cuando se realiza éste.

EJERCICIO
/* Uso de los operadores aritméticos */
#include <stdio.h>
main()/*Realiza varias operaciones*/
{
      int a=1,b=2,c=3,r;
      r=a+b;
      printf(“%d + %d = %d/n”,a,b,r);
      r=c-a;
      printf(“%d - %d = %d/n”,c,a,r);
      b++;
      printf(“b + 1 = %d”,b);
}


5.2. OPERADORES DE ASIGNACION

Los Operadores de Asignación, como su nombre lo indica, se encargan de asignarle a una
variable, el resultado de una expresión o el valor de otra variable.
Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una
expresión a un identificador. El operador de asignación más utilizado es "=" y su formato es:
                             identificador = expresión;

Donde el identificador representa por lo general una variable y una constante, una variable o una
expresión más compleja.
Si los dos operandos de la expresión de asignación son de tipo de datos diferentes el valor de la
expresión de la derecha se convertirá automáticamente al tipo de identificador de la izquierda de
ésta forma la expresión de asignación será del mismo tipo de datos.
En Lenguaje C, están permitidas las asignaciones múltiples, Ej.:

Identificador1 = identificador2 = identificador3.....= identificador n=expresión.

      En lenguaje C, también existen los siguientes operadores de asignación:


Operador                                        Explicación
+=          Expresión1+=expresión2. Equivale a: expresión1=expresión1 + expresión2
-=          i-=1. equivale a: i=i-1
*=          J*=2. Equivale a: j=j*2
/=          K/=m, equivale a: k=k/m
%=          P%n. Equivale a: p=p%n


      Los Operadores de asignación tiene menos procedencia que el resto de los operadores y
       tienen asociatividad de izquierda a derecha.

5.3. OPERADORES DE RELACION

Más contenido relacionado

La actualidad más candente (20)

Lenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y ComponentesLenguaje Borland C - Estructura y Componentes
Lenguaje Borland C - Estructura y Componentes
 
Lenguaje de programación C
Lenguaje de programación CLenguaje de programación C
Lenguaje de programación C
 
Utp pti_s1_introduccion al lenguaje c
 Utp pti_s1_introduccion al lenguaje c Utp pti_s1_introduccion al lenguaje c
Utp pti_s1_introduccion al lenguaje c
 
Entorno de desarrollo en c++
Entorno de desarrollo en c++Entorno de desarrollo en c++
Entorno de desarrollo en c++
 
Turbo c++
Turbo c++Turbo c++
Turbo c++
 
Repaso del lenguaje C++
Repaso del lenguaje C++Repaso del lenguaje C++
Repaso del lenguaje C++
 
01 lenguaje-c
01 lenguaje-c01 lenguaje-c
01 lenguaje-c
 
C++
C++C++
C++
 
ENSAYO SOBRE EL LENGUAJE C
ENSAYO SOBRE EL LENGUAJE C ENSAYO SOBRE EL LENGUAJE C
ENSAYO SOBRE EL LENGUAJE C
 
Lenguaje de programacion c
Lenguaje de programacion cLenguaje de programacion c
Lenguaje de programacion c
 
Clase 4
Clase 4Clase 4
Clase 4
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Ensayo de programacion c
Ensayo de programacion cEnsayo de programacion c
Ensayo de programacion c
 
C(++) programacion en c y c++
C(++)   programacion en c y c++C(++)   programacion en c y c++
C(++) programacion en c y c++
 
C++
C++C++
C++
 
2 estructura programa-c
2 estructura programa-c2 estructura programa-c
2 estructura programa-c
 
Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++Mi lenguaje de programación de preferencia es C++
Mi lenguaje de programación de preferencia es C++
 
Curso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xxCurso de programacion en c++ para microcontroladores pic 16 f87xx
Curso de programacion en c++ para microcontroladores pic 16 f87xx
 
2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno2.1 Lenguaje de Programación C y su Entorno
2.1 Lenguaje de Programación C y su Entorno
 
Turbo c++ 3.0
Turbo c++ 3.0Turbo c++ 3.0
Turbo c++ 3.0
 

Similar a Lenguaje c completo 6 g x revisar x los estudiantes

2 intcomp milexisromero
2 intcomp milexisromero2 intcomp milexisromero
2 intcomp milexisromero
18511572
 
Introduccion al-lenguaje-c
Introduccion al-lenguaje-cIntroduccion al-lenguaje-c
Introduccion al-lenguaje-c
Dalva Icaza
 
Curso de c antonio lebron bocanegra
Curso de c   antonio lebron bocanegraCurso de c   antonio lebron bocanegra
Curso de c antonio lebron bocanegra
victdiazm
 

Similar a Lenguaje c completo 6 g x revisar x los estudiantes (20)

Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
PROGRAMACION EN C
PROGRAMACION EN CPROGRAMACION EN C
PROGRAMACION EN C
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Informe.
Informe.Informe.
Informe.
 
C ++ Estatutos ciclos
C ++ Estatutos ciclosC ++ Estatutos ciclos
C ++ Estatutos ciclos
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
2 intcomp milexisromero
2 intcomp milexisromero2 intcomp milexisromero
2 intcomp milexisromero
 
Ensayo lenuaje c
Ensayo lenuaje cEnsayo lenuaje c
Ensayo lenuaje c
 
Lenguaje c 1
Lenguaje c 1Lenguaje c 1
Lenguaje c 1
 
Introduccion al-lenguaje-c
Introduccion al-lenguaje-cIntroduccion al-lenguaje-c
Introduccion al-lenguaje-c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Lenguaje c
Lenguaje cLenguaje c
Lenguaje c
 
Lenguaje c josequerales
Lenguaje c josequeralesLenguaje c josequerales
Lenguaje c josequerales
 
331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc331985319 santaella u5-lenguajedeprogramacionc
331985319 santaella u5-lenguajedeprogramacionc
 
Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++Unidad 5 Lenguaje de Programacion C y C++
Unidad 5 Lenguaje de Programacion C y C++
 
Curso de c antonio lebron bocanegra
Curso de c   antonio lebron bocanegraCurso de c   antonio lebron bocanegra
Curso de c antonio lebron bocanegra
 
Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++Santaella u5 Lenguaje C++
Santaella u5 Lenguaje C++
 
Generalidades de la programacion
Generalidades de la programacionGeneralidades de la programacion
Generalidades de la programacion
 
7 lenguaje c
7 lenguaje c7 lenguaje c
7 lenguaje c
 
Manual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky BonillaManual de Programación c/c++ Ricky Bonilla
Manual de Programación c/c++ Ricky Bonilla
 

Lenguaje c completo 6 g x revisar x los estudiantes

  • 1. LENGUAJE C CONTENIDO 1. INTRODUCCIÓN 1.1. CARACTERÍSTICAS DEL LENGUAJE C 1.2. VENTAJAS 2. ESTRUCTURA BASICA DE UN PROGRAMA EN C 3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C 4. LAS VARIABLES 5. OPERADORES 5.1. OPERADORES MÁS FRECUENTES 5.2. OPERADORES DE ASIGNACION 5.3. OPERADORES DE RELACION 5.4. OPERADORES LÓGICOS 5.5. EXPRESIONES 6. FUNCION DE ENTRADA Scanf ( ) 7. FUNCIÓN DE ENTRADA Printf( ) 8. ESTRUCTURAS DE CONTROL DE FLUJO 8.1. SENTENCIAS ALTERNATIVAS 8.1.1. SENTENCIA If – Else 8.1.2. SENTENCIA Switch 8.2. SENTENCIA REPETITIVAS 8.2.1. SENTENCIA While 8.2.2. SENTENCIA Do .. While 8.2.3. SENTENCIA For 8.2.4. SENTENCIA Break 8.2.5. SENTENCIA Continue 9. LA DIRECTIVA #include 10. EL PREPROCESADOR #define 11. ARREGLOS EN LENGUAJE C 11.1. CONCEPTO 11.2. INICIALIZACION DE UN ARREGLO 11.3. VECTORES 11.4. MATRICES 12. FUNCIONES EN C
  • 2. LENGUAJE C 1. INTRODUCCIÓN Este lenguaje está inspirado en el Lenguaje B escrito por Ken Thompson en 1970, pero en 1972 Dennis Ritchie toma el relevo y modifica el Lenguaje B, creando el Lenguaje C. La novedad que proporcionó el Lenguaje C sobre el B fue el diseño de tipos y estructura de datos. El C 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. C es un lenguaje de programación de propósito general, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño sencillo y no esta 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. Se diseño con el objetivo de ser un lenguaje orientado al diseño de Sistemas Operativos, por eso se ha convertido en un lenguaje de propósito general. Se le dio el nombre “C” porque muchas de sus características fueron tomadas de un lenguaje anterior llamado “B” fue esencialmente una simplificación del lenguaje BCPL, BCPL es un acrónimo ingles de Basic Combined Programming Lenguaje (Lenguaje de Programación Básico Combinado). Hay muchas leyendas acerca del origen de C y el sistema operativo con el que esta íntimamente relacionado, Unix( Unix es un sistema operativo creado en lenguaje C). 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ía suficiente control sobre la nave para evitar colisiones con los asteroides. Por ese motivo decidieron portar el juego a un PDP-7 (El PDP-7 de DEC fue clasificado como microcomputador en su lanzamiento) de la oficina que no se utilizaba; pero esa maquina no tenia sistema operativo así que decidieron escribir uno. Finalmente decidieron portar el sistema operativo del PDP-11 (Fue la primera minicomputadora en interconectar todos los elementos del sistema –procesador, memoria y periférico- a un único bus de comunicación, bidireccional, asíncrono) que había en su oficina pero era muy costoso, pues todo el código estaba escrito en lenguaje ensamblador(un lenguaje ensamblador es un lenguaje donde se trabaja con códigos y binarios). 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. 1.1. CARACTERÍSTICAS DEL LENGUAJE C El lenguaje C se conoce como un lenguaje compilado(compilado quiere decir que viene con algunas características de otros programas). Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (P. Ej.: Basic). Los compilados convierten el código fuente en un fichero objeto y este en un fichero ejecutable. Este es el caso del lenguaje C. Podemos decir que el lenguaje C es un lenguaje de nivel medio, ya que combina elementos del lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Es un lenguaje estructurado, ya que permite crear procedimientos en bloques dentro de otros procedimientos. Hay que destacar que el C es un lenguaje portable, ya que permite utilizar el mismo código en diferentes equipos y sistemas informáticos. Por último solo queda decir que el C es un lenguaje relativamente pequeño; se puede describir en poco espacio y aprender rápidamente. 1.2. VENTAJAS
  • 3. Lenguaje muy eficiente puesto que es posible utilizar sus características de bajo nivel para realizar implementaciones óptimas. A pesar de su bajo nivel es el lenguaje más portado en existencia, habiendo compiladores para casi todos los sistemas conocidos. Proporciona facilidades para realizar programas modulares y/o utilizar código o bibliotecas existentes. 2. ESTRUCTURA BASICA DE UN PROGRAMA EN C La estructura de un programa sencillo en C es la siguiente: Declaración de importaciones.- La declaración de importaciones se utiliza para comunicar al compilador qué acciones y funciones de las mencionadas en el programa no se encuentran implementadas en este. Estos procedimientos externos al programa se hallan disponibles en ciertas estructuras llamadas módulos que tienen asociado un fichero con extensión. h que contiene la lista de procedimientos importables. Para incluirlos es suficiente escribir una instrucción del tipo #include <nombre_módulo.h> .- Ejemplos de módulos empleados con frecuencia son stdio (que contiene los procedimientos de entrada salida) y math (que contiene funciones matemáticas). Definición de constantes.- Las definiciones de constantes asignan a un identificador una cadena de caracteres. Un proceso previo a la compilación substituirá el identificador por la cadena de caracteres cada vez que lo encuentre. Su formato es #define identificador cadena.- Y al igual que con la instrucción #include, no hace falta poner el terminador; al final de la instrucción. Definición de tipos.- La declaración de tipos permite definir tipos de datos que serán utilizados en todo el programa. Void main (void) { Declaración de variables Instrucciones ejecutables } La mejor forma de aprender un lenguaje es programando con él. El programa más sencillo que se puede escribir en C es el siguiente: Main ( ) { } Como nos podemos imaginar, este programa no hace nada, pero contiene la parte más importante de cualquier programa C y además, es el más pequeño que se puede escribir y que se compile correctamente. En el se define la función main, que es la que ejecuta el sistema operativo al llamar a un programa C. El nombre de una función C siempre va seguida de paréntesis, tanto si tiene argumentos como si no. La definición de la función está formada por un bloque de sentencias, que esta encerrado entre llaves {}. Main (). Indica el comienzo de la función principal del programa la cual se delimita con llaves. EJEMPLO: Escriba un programa que imprima el mensaje "Primer programa". /* Primer programa */ #include <stdio.h>
  • 4. main() { printf("Primer programan"); } EJEMPLO: Escriba un programa que calcule el factorial de un número. /* Factorial de un numero */ #include <stdio.h> main() { int i, numero, factorial=1; printf("nEscriba un numero entero para calcular su factorial: "); scanf("%d",&numero); for (i=numero; i>1; --i) factorial *= i; printf("n%d! = %dn",numero,factorial); } 3. TIPOS BASICOS DE DATOS EN EL LENGUAJE DE PROGRAMACION C Los tipos básicos de datos definidos por C son caracteres. Números enteros y números en coma flotante. Los caracteres son representados por char, los enteros por short, int, long y los números en coma flotante por flota y double. Los tipos básicos disponibles y su tamaño son: Char Carácter (normalmente 8 bits) Short Entero cortó con signo (normalmente 16 bits) Int Entero con signo (depende de la implementación) Unsigned Entero sin signo (depende de la implementación) Long Entero Largo con signo (normalmente 32 bits) Float Flotante simple (normalmente 32 bits) Double Flotante doble (normalmente 64 bits) La palabra unsigned en realidad es un modificador aplicable a tipos enteros, aunque si no se especifica un tipo se supone int. Un modificador es una palabra clave de C que indica que una variable, o función, no se comporta de forma normal. Hay también un modificador signed, pero como los tipos son por defecto con signo, casi no se utiliza. Las variables son definidas utilizando un identificador de tipo seguido del nombre de la variable. Veamos el siguiente programa #include<stdio> main { float cels,farth; /*Identificador o tipo de dato*/ farh=35.0; /*Variables*/ cels=5.0*(farh-32.0)/9.0; /*Asignamos valor a la variable*/ printf(“->%f F son %fCn”,farh,cels); } En el programa anterior se define dos variables float, se asigna un valor a la primera y se calcula la segunda mediante una expresión aritmética. DECLARACIÓN DE VARIABLES #include <stdio.h> int a; /*Identificador Variable;*/ main() /* Muestra dos valores*/ int b=4; /*Asignamos valor a la variable*/ printf(“b es local y vale %d”,b); a=5; } PROGRAMA: Calcular la suma de los números 5 y 6
  • 5. #include <stdio> main { /*Identificador o tipo de dato*/ int a,b,c; /*Variables*/ a=5; /*Asignamos valores a las variables*/ b=6; c=a+b; } 4. LAS VARIABLES Una variable es un tipo de dato, que tiene un identificador ( es el nombre de la variable), se utilizan para guardar datos dentro de un programa y se puede modificar a lo largo del programa. Una variable sólo puede tener un tipo de dato, para poder utilizar una variable primero tiene que ser declarada. El identificador (nombre de la variable) puede ser caracteres como letras :a-z y A-Z , los números del 0-9 y en símbolos subrayados_. La ( ñ o Ñ) no esta permitida, y además hay que tener en cuenta que el primer carácter no puede ser un número . DÓNDE SE DECLARAN.- Las variables pueden ser de dos tipos según el lugar donde declaremos: globales o locales: • Las variables globales deben ser declaradas antes de la main ( ) y pueden ser utilizadas en cualquier parte del programa. • Las variables locales deben ser declaradas después de la main ( ), solo existe dentro de la función en que se declare y se destruye al finalizar dicha función. EJEMPLO: /*Declaración de variables*/ # include<stdio.h> int a; main( ) /*Muestra los valores */ int b=4; a=5; Los siguientes son ejemplos de nombres de variables válidos: Char a; /* Es una letra del a-z */ int pepe; /* No es una palabra reservada */ int toto12; /* El número va después de la palabra */ int un_nombre_largo; /* La palabra lleva subrayado */ Los siguientes son ejemplos no válidos de nombres de variables: Int 123var; /* Empieza por dígitos */ Char int; /* Palabra reservada */ int una sola; /* Contiene espacios */ int eñe; /* No funciona */ 5. OPERADORES 5.1. OPERADORES MÁS FRECUENTES OPERADORES ARITMETICOS Tal como era de esperarse los operadores aritméticos comprenden las cuatro operaciones básicas, suma, resta, multiplicación y división, con un agregado, el operador módulo.
  • 6. SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION + SUMA a + b 3 - RESTA a - b 3 * MULTIPLICACION a * b 2 / DIVISION a / b 2 % MODULO a % b 2 - SIGNO -a 2 El operador módulo (%) se utiliza para calcular el resto del cociente entre dos ENTEROS, y NO puede ser aplicado a variables del tipo float ó double. Si en una operación existen varios operadores, primero se evaluarán los de multiplicación, división y módulo y luego los de suma y resta. Para evitar errores en los cálculos se pueden usar paréntesis, sin limitación de anidamiento, los que fuerzan a realizar primero las operaciones incluidas en ellos. Los paréntesis no disminuyen la velocidad a la que se ejecuta el programa sino que tan sólo obligan al compilador a realizar las operaciones en un orden dado, por lo que es una buena costumbre utilizarlos ampliamente. Los paréntesis tienen un orden de precedencia 0, es decir que antes que nada se evalúa lo que ellos encierran. Se puede observar que no existen operadores de potenciación, radicación, logaritmación, etc., ya que en el lenguaje C todas estas operaciones (y muchas otras) se realizan por medio de llamadas a Funciones. El último de los operadores aritméticos es el de SIGNO. No debe confundírselo con el de resta, ya que este es un operador unitario que opera sobre una única variable cambiando el signo de su contenido numérico. Obviamente no existe el operador + unitario, ya que su operación sería DEJAR el signo de la variable, lo que se consigue simplemente por omisión del signo. OPERADORES DE INCREMENTO Y DECREMENTO Los operadores de incremento y decremento son sólo dos: SIMBOLO DESCRIPCION EJEMPLO ORDEN DE EVALUACION ++ incremento ++i ó i++ 1 -- decremento --i ó i-- 1 Para visualizar rápidamente la función de los operadores antedichos, digamos que las sentencias: a=a+1; a++ ; Tienen una acción idéntica, de la misma forma que: a=a-1; a-- ; Es decir incrementa y decrementa a la variable en una unidad Si bien estos operadores se suelen emplear con variables int, pueden ser usados sin problemas con cualquier otro tipo de variable. Así si a es un float de valor 1.05 , luego de hacer a++ adoptará el valor de 2.05 y de la misma manera si b es una variable del tipo char que contiene el carácter 'C' , luego de hacer b-- su valor será 'B' .
  • 7. Si bien las sentencias i++ ; ++i ; Son absolutamente equivalentes, en la mayoría de los casos la ubicación de los operadores incremento ó decremento indica cuando se realiza éste. EJERCICIO /* Uso de los operadores aritméticos */ #include <stdio.h> main()/*Realiza varias operaciones*/ { int a=1,b=2,c=3,r; r=a+b; printf(“%d + %d = %d/n”,a,b,r); r=c-a; printf(“%d - %d = %d/n”,c,a,r); b++; printf(“b + 1 = %d”,b); } 5.2. OPERADORES DE ASIGNACION Los Operadores de Asignación, como su nombre lo indica, se encargan de asignarle a una variable, el resultado de una expresión o el valor de otra variable. Se utilizan en forma de expresiones de asignación en los que se asigna en el valor de una expresión a un identificador. El operador de asignación más utilizado es "=" y su formato es: identificador = expresión; Donde el identificador representa por lo general una variable y una constante, una variable o una expresión más compleja. Si los dos operandos de la expresión de asignación son de tipo de datos diferentes el valor de la expresión de la derecha se convertirá automáticamente al tipo de identificador de la izquierda de ésta forma la expresión de asignación será del mismo tipo de datos. En Lenguaje C, están permitidas las asignaciones múltiples, Ej.: Identificador1 = identificador2 = identificador3.....= identificador n=expresión.  En lenguaje C, también existen los siguientes operadores de asignación: Operador Explicación += Expresión1+=expresión2. Equivale a: expresión1=expresión1 + expresión2 -= i-=1. equivale a: i=i-1 *= J*=2. Equivale a: j=j*2 /= K/=m, equivale a: k=k/m %= P%n. Equivale a: p=p%n  Los Operadores de asignación tiene menos procedencia que el resto de los operadores y tienen asociatividad de izquierda a derecha. 5.3. OPERADORES DE RELACION