programacion

30
Programa en lenguaje C Funciones Creaci´on de sentencias Programaci´ on estructurada Estructura de un programa en lenguaje C Oscar Alvarado Nava [email protected] Departamento de Electr´ onica Divisi´on de Ciencias B´ asicas e Ingenier´ ıa Universidad Aut´onoma Metropolitana, Unidad Azcapotzalco 13O, septiembre de 2013 Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 1/30

description

Estructurada

Transcript of programacion

  • Programa en lenguaje C Funciones Creacion de sentencias

    Programacion estructuradaEstructura de un programa en lenguaje C

    Oscar Alvarado Nava

    [email protected]

    Departamento de ElectronicaDivision de Ciencias Basicas e Ingeniera

    Universidad Autonoma Metropolitana, Unidad Azcapotzalco

    13O, septiembre de 2013

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 1/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Contenido

    1 Programa en lenguaje CComponentes

    2 FuncionesFuncionesDirectivas al pre-procesador

    3 Creacion de sentenciasTokensPalabras reservadasTipos de datos

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 2/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Componentes

    Numero de caracteres en un nombre

    1 /* Comentario 12 Comentario 2 */3 #include /* archivo encabezado */4 #define N 10 /* constante global */56 /* variable global */7 /*tipo identificador */8 char nombre[N];9

    10 int main() /* funcion principal */11 {12 /* declaracion de variables locales a la funcion main*/13 /*tipo e indentificador */14 int i;1516 printf("Ingresa tu nombre: "); /* caracteres a salida estandar */17 scanf(" %s", nombre); /* caracteres de entrada estandar */1819 i = 0; /* sentencia */20 /* estructura repetitiva */21 while( nombre[i] != \0 ) /* expresion relacional */22 i = i + 1;2324 printf("compuesto por %d letras\n",i);2526 return 0;27 }

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 3/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Componentes

    Elementos de un programa en lenguaje C

    Comentarios

    Directivas al preprocesador

    Funciones

    Variables y constantes

    Variables globales y locales

    Tipos de datos

    Operadores

    Expresiones

    Sentencias

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 4/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Comentarios

    Los comentarios son anotaciones legibles y generalmentedescriptivas del codigo para el programador

    Son eliminados por el pre-procesador

    En C, los comentarios deben ser encerrados entre /* y */ ypueden extenderse por varias lneas

    Se puede comentar por lnea al iniciarla con //

    No includo en el estandar ANSI

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 5/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Funciones

    Funciones

    Un programa en C se compone a traves de funciones

    Una funcion agrupa e identifica una secuencia de sentencias

    De a cuerdo a la complejidad del problema y de suimplementacion, el programa podra constar de una o variasfunciones

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 6/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Funciones

    Funcion principal

    Sin importar el numero de funciones en el programa, una deellas debera tener el nombre main

    La nombre main o principal, indica quer sera la primerafuncion en ser ejecutada

    En un programa bien escrito, la funcion main es la partecentral del programa y debera llamar a otras funciones

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 7/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Funciones

    Grafo de llamadas a funciones

    main funcionA

    funcionBfuncionC

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 8/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Funciones

    Desarrollo de funciones

    Las funciones seran desarrolladas por el programador

    Algunas funciones podran ser de biblioteca, las cuales fuerondesarrolladas por otros programadores y son enlazadas alejecutable

    En lenguaje C, toda funcion debera contar

    DeclaracionDefinicionLlamada

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 9/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Directivas al pre-procesador

    Directivas al pre-procesador

    El pre-procesador es una programa de apoyo para compiladory el programador

    Identifica y procesa directivas o comandos, tambien conocidascomo macro-instrucciones

    En lenguaje C, las directivas al pre-procesador son indicadascon el caracter #

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 10/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Directivas al pre-procesador

    Algunas directivas al pre-procesador en lenguaje C

    Directiva Descripcion#include Inclusion del contenido de un archivo

    #defineDefinicion de constantesy macro-instrucciones

    #ifdefCompilacion condicional

    #ifndef

    #error Definicion de mensajes de error

    #pragma Extensiones del lenguaje

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 11/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Directivas al pre-procesador

    Directiva #include

    A traves de la directiva #include, el pre-procesador agrega elcontenido de una archivo al programa

    El nombre del archivo debera contener su ruta absoluta orelativa y se escribira en entre comillas (cadena)

    /home/oscar/programas/sockets.h

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 12/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Directivas al pre-procesador

    Ruta estandar

    Si el nombre del archivo se coloca entre los caracteres < y >,indicara que el archivo se encuentra en la ruta estandar

    La ruta estandar indica la ruta donde fueron instalados losarchivos encabezados

    Generalmente en un sistema UNIX/Linux se instalan en laruta

    /usr/include/

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 13/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Directivas al pre-procesador

    Archivos encabezados

    Las declaraciones de las funciones deberan estar antes dedefinirlas y llamarlas

    Los archivos encabezados contienen entre otras cosasdeclaraciones de funciones

    < tss-7-01@ce >< /users/tss/7/tss-7-01 >$ pico /usr/include/stdio.h

    < tss-7-01@ce >< /users/tss/7/tss-7-01 >$ pico /usr/include/math.h

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 14/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tokens

    Creacion sentencias

    Una sentencia es compuesta por expresiones y estructuras decontrol

    Las expresiones se crean a traves de variables, operadores ypalabras reservadas

    Las variables y operadores se describen con identificadores

    El lenguaje reconoce todos los elementos por medio de laidentificacion de tokens

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 15/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tokens

    Tokens

    Un token o componente lexico, es una conjunto de caracteresque tiene un significado coherente en un lenguaje deprogramacion

    En lenguaje C existen cinco tipos de tokens

    IdentificadoresPalabras reservadasVariablesOperadoresSeparadores

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 16/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Palabras reservadas

    Identificadores

    Un identificador es una secuencia de carateres, letras, dgitos

    Un identificador es utilizador para asignar nombres a variables,constantes y funciones

    Las reglas para la formacion de identificadores

    La longitud no debe exceder los 32 caracteresEl primer caracter debera ser una letra o un guon bajoSensible a mayusculas y minusculas. Convencionalmente lasvariables se escriben en minuscula y las constantes enmayusculasNo deberan ser palabras reservadas

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 17/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Palabras reservadas

    Palabras reservadas de ANSI C

    auto double int struct

    break else long switch

    case enum register typedef

    char extern return union

    const float short unsigned

    continue for signed void

    default goto sizeof volatile

    do if static while

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 18/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Palabras reservadas

    Palabras reservadas

    Las palabras reservadas (keyword) representan

    Tipos de datos, modificadores de tipo y estructuras de control

    Todas las palabras reservadas deben de ser escritas enminusculas

    C hace diferencia entre las palabras escritas en mayusculas yminusculas

    else es diferente a ELSE, elsE, ElSe

    Las palabras reservadas no deben ser utilizadas comoidentificadores de variables o nombres de funciones

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 19/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Palabras reservadas

    Variables y constantes

    En un lenguaje de programacion, una variable es una localidadde memoria donde se almacena un valor de cierto tipo

    Una variable que NO podra cambiar su valor durante laejecucion del programa se le llama constante

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 20/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Palabras reservadas

    Creacion y ambito de variables

    Una variable debera tener asociado un tipo de dato y unidentificador

    Una variable debera ser declarada antes de ser utilizada

    De acuerdo al lugar en donde sean declaradas las variablestendran un ambito o visibilidad

    GlobalLocal o privadaDinamicas

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 21/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Tipos de datos

    En el lenguaje C hay cinco tipos de datos primitivos

    Tipo En C No. Bytes Rango

    Caracter charEntero intReal o de punto flotante floatReal o de punto flotante doble precision doubleSin tipo o generico void

    El numero de bytes que los implementa y el rangodependera del procesador y del compilador utilizados

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 22/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Modificadores de tipos de datos

    Con excepcion del tipo de dato void, a todos los tipos dedatos se les pueden aplicar algun modificador de tipo

    Modificador Descripcion

    signed

    unsigned

    long

    short

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 23/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Rango, precision y numero de bytes

    Los tipos de datos en lenguaje C estan compuestos de uno ovarios bytes

    Cual es la relacion entre el numero de bytes (o bits) y elrango del tipo de dato?

    Cual es la relacion entre el numero de bytes (o bits) y laprecision del tipo de dato?

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 24/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Tarea de tipos de datos

    Investigar el numero de bytes de cada tipo de dato y sumodificacion

    Revisar el operador sizeof

    Investigar las restrciones al aplicar los modificadores a lostipos de datos

    Investigar el rango de cada tipo de datos y su modificacion

    Revisar las en la pagina de GNU limits.h y float.h

    Investigar la representacion de numeros con signo y sin signoen binario

    Signo-magnitud y complemento a dos

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 25/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Sentencias

    Un programa en C esta compuesto de sentencias agrupadas enfunciones

    Una sentencia siempre termina con un punto y coma (;)

    Salvo en algunos casos en que una sentencia estructuradatermina con una palabra reservada

    Una sentencia esta compuesta de expresiones

    varA = varB + 4;

    varA = varB + varC * varD;

    y = sqrt( x ) + 1.0;

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 26/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Expresiones

    Una expresion es una combinacion de operadores, variables yfunciones

    De acuerdo a los operadores se tienen expresiones aritmeticas,logicas y de asignacion

    Cada expresion debera ser evaluada de acuerdo a las reglas deprecedencia y asociatividad de los operadores

    varA = varB + varC * varD;

    varA = (varB + varC) * varD;

    varA = 1;

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 27/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Operadores

    El lenguaje C tiene varios tipos de operadores

    AsignacionAritmeticosDe incremento y decrementoRelacionalesLogicosManipulacion de bitsDireccion e indireccionCondicionalListadoLongitud de tipoConversion de tipoAumento de prioridad

    Hay operadores unarios, binarios y ternarios

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 28/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Precedencia y asociatividad

    La precedencia (o prioridad) de los operadores determina elorden en el que se aplican los operadores

    La asociatividad de los operadores es la regla para aplicar losoperadores con la misma precedencia

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 29/30

  • Programa en lenguaje C Funciones Creacion de sentencias

    Tipos de datos

    Tarea de operadores

    Investigar todos los operadores en lenguaje C y su clasificacion

    Investigar la precedencia y asociatividad de los operadores

    Oscar Alvarado Nava UAM Azcapotzalco Estructura de un programa en lenguaje C 30/30

    Programa en lenguaje CComponentes

    FuncionesFuncionesDirectivas al pre-procesador

    Creacin de sentenciasTokensPalabras reservadasTipos de datos