• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Lenguaje C
 

Lenguaje C

on

  • 4,811 views

 

Statistics

Views

Total Views
4,811
Views on SlideShare
4,801
Embed Views
10

Actions

Likes
0
Downloads
66
Comments
0

1 Embed 10

http://www.slideshare.net 10

Accessibility

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Lenguaje C Lenguaje C Presentation Transcript

    • LENGUAJE "C"
      • Todo programa en C consta de una o mas funciones, una de las cuales se llama MAIN . El programa siempre comenzara por la ejecución de la función MAIN.
      • Cada función debe tener :
      • - Una cabecera de la función, que consta del nombre de la función, seguido de un alista opciones de argumentos encerrados en paréntesis.
      • - Una lista opcional de argumentos, si se incluyan estos en la cabecera.
      • Una sentencia compuesta, que contiene el resto de la función.
      • EJEMPLO:
      • /* Primer programa en C */}
      • # include < stdio.h >
      • # i nclude < conio.h >
      • Void main () (
      • // Imprime el texto en pantalla
      • Printf ( “ hola mundo ”)
      • Getch ();
      • {
      &quot;ESTRUCTURA GENERAL DE UN PROGRAMA EN `C`&quot;
      • Todo programa c, desde el mas pequeño hasta el mas complejo, tiene un programa principal que es con el que se comienza la ejecución del programa.
      • Este programa principal es también una función, pero una función que esta por encima de todas las demás. Tiene la forma siguiente (la palabra void es opcional en este caso):
      • void main ( void )
      • {
      • Sentencia_1
      • Sentencia_2
      • }
      • Las llaves {…} constituyen el modo utilizado por el lenguaje C, para agrupar varias sentencias de modo que se comparten como una sentencia única (sentencia compuesta o bloque) todo el cuerpo de la función debe ir comprendido entre las llaves de apertura y cierres.
      • Además la función MAIN () puede devolver un valor. El valor devuelto por MAIN () debe de ser tipo entero .
      `FUNCION MAIN'
      • Si MAIN no devuelve un numero entero al sistema operativo, mediante una sentencia return , entonces nuestro programa devolverá un numero desconocido.
      • Importante: es buena idea incluir un return al final de la función MAIN ().
      • Generalmente la devolución de un 0 indica que el sistema operativo ha finalizado las programas sin problemas, mientras que cualquier otro valor señala que ha producido algún error.
      • Int main (void)
      • {
      • .. instrucciones de algoritmo principal…
      • }
      • Hay que observar que MAIN () no tiene argumentos, por lo que aparece el identificador void entre paréntesis en la declamación.
      EJEMPLO
      • En todo lenguaje de programación, tiene la posibilidad de trabajar con datos de distinta naturaleza: texto formado por caracteres alfanuméricos, números enteros. A continuación se mostrara los tipos de daros que se utilizan en C:
      • En C existen cinco tipos básicos de datos: dos para datos enteros (char e int), y tres para reales
      • ( float, double y long double ).
      • Con los tipos enteros se pueden usar además los modificadores de
      • tamaño ( short, long ), y/o los modificadores de signo ( signed, unsigned ).
      `TIPOS DE DATOS` Signed long int Signed int Signed short on Long double Double Float DATOS REALES Unsigned char Signed char Char DATOS GENERALES
    • `DATOS Y VARIABLES`
      • Las variables carácter (tipo char) contienen un único carácter y se almacenan en un byte de memoria (8 bits).
      • En un bit se pueden almacenar dos valores (0 y 1); con dos bits se pueden almacenar 22 = 4 valores (00, 01, 10, 11 en binario; 0, 1 2, 3 en decimal).
      • Con 8 bits se podrán almacenar 28 = 256 valores diferentes (normalmente entre 0 y 255; con ciertos compiladores entre -128 y 127).
      • La declaración de variables tipo carácter puede tener la forma:
      • char nombre;
      • char nombre 1, nombre 2, nombre 3;
      `CARACTERES (TIPO CHAR)`
      • De ordinario una variable tipo int se almacena en 2 bytes (16 bits ), aunque algunos compiladores utilizan 4 bytes (32 bits).
      • Con 16 bits se pueden almacenar 216 = 65536 números enteros diferentes: de 0 al 65535 para variables sin signo, y de -32768 al 32767 para variables con signo (que pueden ser positivas y negativas), que es la opción por defecto.
      • Este es el rango de las variables tipo int .
      • Una variable entera (tipo int ) se declara, o se declara y se inicializa en la forma:
      • unsigned int numero ;
      • int nota = 10 ;
      • En este caso la variable numero podrá estar entre 0 y 65535, mientras que nota deberá estar comprendida entre -32768 al 32767.
      `NUMEROS ENTEROS (TIPO INT)`
      • Existe la posibilidad de utilizar enteros con un rango mayor si se especifica como tipo long en su declaración:
      • long int numero_grande;
      • o, ya que la palabra clave int puede omitirse en este caso,
      • long numero_grande;
      • El rango de un entero long puede variar según el computador o el compilador que se utilice, pero de ordinario se utilizan 4 bytes (32 bits) para almacenarlos, por lo que se pueden representar 232 = 4.294.967.296 números enteros diferentes.
      • Si se utilizan números con signo, podrán representarse números entre -2.147.483.648 y 2.147.483.647. También se pueden declarar enteros long que sean siempre positivos con la palabra unsigned :
      • unsigned long numero_positivo_muy_grande;
      `NUMEROS ENTEROS (TIPO LONG)`
      • Las variables tipo float tienen un rango y – sobre todo – una precisión muy limitada, insuficiente para la mayor parte de los cálculos técnicos y científicos.
      • Este problema se soluciona con el tipo double , que utiliza 8 bytes (64 bits) para almacenar una variable.
      • Se utilizan 53 bits para la mantisa (1 para el signo y 52 para el valor) y 11 para el exponente (1 para el signo y 10 para el valor) . La precisión es en este caso, 252 = 4.503.599.627.370.496 lo cual representa entre 15 y 16 cifras decimales equivalentes.
      • Con respecto al rango , con un exponente de 10 bits el número más grande que se puede representar será del orden de 2 elevado a 2 elevado a 10 (que es 1024): 21024 = 1.7977 · 10308
      • Las variables tipo double se declaran de forma análoga a las anteriores:
      • double real_grande;
      `NUMEROS REALES (TIPO DOUBLE)`
      • Nombres de las variables
      • Sólo están permitidas letras de la 'a' a la 'z' (la ñ no vale), números y el símbolo '_', puede contener números, pero no en el primer carácter.
      • Ejemplos de nombres válidos:
      • camiones numero buffer a1 j10hola29 num_alumnos
      • Ejemplos de nombres no válidos :
      • 1abc nombre? Num /alumnos
      • Tampoco valen como nombres de variable las palabras reservadas que usa el compilador. Por ejemplo: for, main, do, while.
      • C distingue entre mayúsculas y minúsculas. Por lo tanto:
      • Nombre nombre NOMBRE serían tres variables distintas.
      `TIPO DE VARIABLES`
      • ¿ Dónde se declaran las variables?
      • Tenemos dos posibilidades, una es declararla como global y otra como local. Es global aquella variable que se declara fuera de la función main y local la que se declara dentro:
      • Las variables globales se pueden usar en cualquier procedimiento y las locales sólo pueden usarse en el procedimiento en el que se declaran. Es buena costumbre usar variables locales en vez de globales.
      • Podemos declarar más de una variable en una sola línea:
      • int x, y .
      #include <stdio.h> int main() { int x; } #include <stdio.h> int x; int main() { } Variable Local Variable Global
      • Un ejemplo de esta posibilidad de C++ es la declaración del contador dentro de un bucle. Por ejemplo:
      • # include
      • main () {
      • for (int i=0; i < 10; i++) {
      • cout << &quot;hola&quot; << ' n';
      • }
      • }
      • El índice i se ha definido dentro del bucle for. En algunos compiladores, su validez se extiende hasta el final del bloque donde han sido definidos
      • En muchas aplicaciones son capaces de representar magnitudes que contengan una parte entera y una parte fraccionaria o decimal.
      • Es por eso que estas se representan por la `mentisa` que es un numero mayor o igual que 0.1 y menor que 1.0, y un `exponente` que representa la potencia de 10 por lo que hay que multiplicar la mantisa para obtener el numero considerado.
      • 223 = 8.388.608
      • Aquí es 22 elevado a la 3.
      `FLOAT`
      • Los operadores lógicos que se pueden utilizar en C son:
      • Los valores lógicos en C están representados por enteros:
      • 0 es falso y un valor no cero es verdadero. Por ejemplo, el operador ! toma un operando numérico y devuelve int 1 para un operando cero y int 0 en caso contrario.
      • El operador << devuelve 1 si los dos operandos son valores no cero, y 0 en cualquier otro caso. El operador || devuelve 1 si cualquiera de los dos operandos es no cero, y 0 en otro caso. Los operadores << y || evalúan primero el operando de su izquierda, y no evalúan el operando de la derecha si no es necesario. Por ejemplo, si y es cero, la expresión y << x/y da 0 y no realiza la división por 0 .
      `TIPOS DE OPERADORES LOGICOS` O lógico || Y lógico << Negación lógica ! Acción Operador
      • La función consiste en la definición del código necesario para que ésta realice las tareas por las que ha sido prevista.
      • La definición de una función se debe realizar en alguno de los ficheros que forman parte del programa. La forma general de la definición de una función es la siguiente:
      • tipo_valor_de_retorno nombre_funcion(lista de argumentos con tipos )
      • {
      • declaración de variables y/o de otras funciones
      • código ejecutable
      • return (expresión); // optativo
      • }
      • La primera línea recibe el nombre de encabezamiento (header) y el resto de la
      • definición – encerrado entre llaves – es el cuerpo ( body ) de la función.
      • Cada función puede disponer de sus propias variables, declaradas al comienzo de su código. Estas variables, por defecto, son de tipo auto , es decir, sólo son visibles dentro del bloque en el que han sido definidas, se crean cada vez que se ejecuta la función y permanecen ocultas para el resto del programa.
      • Si estas variables de definen como static , conservan su valor entre distintas llamadas a la función. También pueden hacerse visibles a la función variables globales definidas en otro fichero (o en el mismo fichero, si la definición está por debajo de donde se utilizan), declarándolas con la palabra clave extern .
      `FUNCION`
      • Las expresiones de C son unidades o componentes elementales de unas entidades de rango superior que son las sentencias .
      • Las sentencias son unidades completas, ejecutables en sí mismas. Ya se verá que muchos tipos de sentencias incorporan expresiones aritméticas, lógicas o generales como componentes de dichas sentencias.
      • SENTENCIAS SIMPLES
      • Una sentencia simple es una expresión de algún tipo terminada con un carácter (;). Un caso típico son las declaraciones o las sentencias aritméticas. Por ejemplo:
      • float real;
      • espacio = espacio_inicial + velocidad * tiempo;
      `SENTENCIAS`
      • SENTENCIA VACÍA Ó NULA
      • En algunas ocasiones es necesario introducir en el programa una sentencia que ocupe un lugar, pero que no realice ninguna tarea . A esta sentencia se le denomina sentencia vacía y consta de un simple carácter (;). Por ejemplo:
      • ;
      • SENTENCIAS COMPUESTAS O BLOQUES
      • Muchas veces es necesario poner varias sentencias en un lugar del programa donde debería haber una sola.
      • Esto se realiza por medio de sentencias compuestas. Una sentencia compuesta es un conjunto de declaraciones y de sentencias agrupadas dentro de llaves {...} .
      • También se conocen con el nombre de bloques. Una sentencia compuesta puede incluir otras sentencias, simples y compuestas.
      • Un ejemplo de sentencia compuesta es el siguiente:
      • {
      • int i = 1, j = 3, k;
      • double masa;
      • masa = 3.0;
      • k = y + j;
      • }
      • Esta sentencia de control permite ejecutar o no una sentencia simple o compuesta según se cumpla o no una determinada condición.
      • if (expresión)
      • sentencia;
      • Se evalúa expresión. Si el resultado es true (#0), se ejecuta sentencia; si el resultado es false (=0), se salta sentencia y se prosigue en la línea siguiente. Hay que recordar que sentencia puede ser una sentencia simple o compuesta ( bloque { ... }).
      ESTUCTURA `IF`
      • Esta sentencia permite realizar una bifurcación , ejecutando una parte u otra del programa
      • según se cumpla o no una cierta condición. La forma general es la siguiente:
      • if (expresion)
      • sentencia_1;
      • else
      • sentencia_2;
      • Si el resultado es true (#0), se ejecuta sentencia_1 y se prosigue en la línea siguiente a
      • sentencia_2 ; si el resultado es false (=0), se salta sentencia_1 ,
      • se ejecuta sentencia_2 y se prosigue en la línea siguiente. Hay que indicar aquí también que
      • sentencia_1 y sentencia_2 pueden ser sentencias simples o compuestas ( bloques { ... }).
      `IF...ELSE`
      • Esta sentencia permite realizar una ramificación múltiple, ejecutando una entre varias partes del programa según se cumpla una entre n condiciones. La forma general es la siguiente:
      • if (expresion_1)
      • sentencia_1;
      • else if (expresion_2)
      • sentencia_2;
      • else if (expresion_3)
      • sentencia_3;
      • else if (...)
      • ...
      • [else
      • sentencia_n;]
      • La expresión_1 . Si el resultado es true , se ejecuta sentencia_ 1 .
      • Si el resultado es false , se salta sentencia_1 y se evalúa expresión_2 .
      • Si el resultado es true se ejecuta sentencia_2 , mientras que si es false se evalúa expresión_3 y así sucesivamente.
      • Si ninguna de las expresiones o condiciones es true se ejecuta expresion_n que es la opción por defecto (puede ser la sentencia vacía, y en ese caso puede eliminarse junto con la palabra ( else ). Todas las sentencias pueden ser simples o compuestas.
      `IF...ELSE` MULTIPLE
      • switch (expresión) {     case valor1:        Sentencias a ejecutar si la expresión tiene como valor a valor1        break     case valor2:        Sentencias a ejecutar si la expresión tiene como valor a valor2        break     case valor3:        Sentencias a ejecutar si la expresión tiene como valor a valor3         break     default:        Sentencias a ejecutar si el valor no es ninguno de los anteriores }
      • Esta expresión se evalúa: si vale valor1 se ejecutan las sentencias relacionadas con ese caso. Si la expresión vale valor2 se ejecutan las instrucciones relacionadas con ese valor y así sucesivamente. La palabra break es opcional, pero si no la ponemos a partir de que se encuentre coincidencia con un valor se ejecutarán todas las sentencias relacionadas con este y todas las siguientes. Es decir, si en nuestro esquema anterior no hubiese ningún break y la expresión valiese valor1 , se ejecutarían las sentencias relacionadas con valor1 y también las relacionadas con valor2 , valor3 y default .
      ESTUCTURA `SWITCH`
      • Switch (dia_de_la_semana) {     case 1:        document.write(&quot;Es Lunes&quot;)        break     case 2:        document.write(&quot;Es Martes&quot;)        break     case 3:        document.write(&quot;Es Miércoles&quot;)        break     case 4:        document.write(&quot;Es Jueves&quot;)        break     case 5:        document.write(&quot;Es viernes&quot;)         break     case 6:     case 7:         document.write(&quot;Es fin de semana&quot;)         break     default:        document.write(&quot;Ese día no existe&quot;) }
      • Supongamos que queremos indicar que día de la semana es.
      • Si el día es 1 (lunes) sacar un mensaje indicándolo, si el día es 2 (martes) debemos sacar un mensaje distinto y así sucesivamente para cada día de la semana, menos en el 6 (sábado) y 7 (domingo) que queremos mostrar el mensaje &quot;es fin de semana&quot;.
      • Para días mayores que 7 indicaremos que ese día no existe.
      EJEMPLO
      • Formato general de la estructura for:
      • for (expresión1; expresión2; expresión3);
      • for (contador=1;contador<=10;contador++);
      Variable de control Valor final de la variable de control Incremento de la variable de control Palabra reservada La variable de control para cuenta el número de repeticiones , ya que ésta se incrementa según se especifique, cada vez que se ejecuta el grupo de instrucciones. Cuando el valor de la variable indica que se ha ejecutado el numero correcto de repeticiones, se termina el ciclo y la computadora continua ejecutando el enunciado siguiente al de la estructura de repetición. `FOR`
      • Estructura general:
      • for (inicialización; condición_de_continuación; actualización)
      • sentencia;
      • Inicialización: Se ejecuta justo antes de entrar en el bucle. Se pueden inicializar una o más variables. En caso de que sean más de una, se separan por comas.
      • Condición de continuación : La condición se evalúa antes de cada iteración del bucle, incluso antes de la primera vez, continuando el bucle mientras la condición sea verdadera.
      • Actualización : Se realiza como si fuera la última sentencia del bloque de sentencias del bucle, es decir, sólo se ejecutará si la condición Es verdadera. Si se realizase más de una actualización, también se separarían por comas.
      • Ejemplos:
      • For (x=0; x<10; x++)
      • For (x=0, y=1; x+y<10; ++x, ++y)