La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES.

Presentaciones similares


Presentación del tema: "UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES."— Transcripción de la presentación:

1 UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES CORTÉS

2 El compilador de C Compilador Código fuente Código objeto errores de sintaxis y semántica ligador Código máquina bibliotecas errores de memoria y de ejecución resultados datos Preprocesador Código fuente con adecuaciones

3 Guía de referencia rápida de lenguaje C Identificadores Un identificador es una palabra o secuencia de caracteres que forman el nombre de un objeto del programa Deben empezar con letra, excepto ñ o Ñ, o guión bajo y estar seguidos de cero o más letras, números o guiones bajos No se permiten símbolos como $ ¡ ! ¿ ? ° | & - % # @,. ‘ “ / \ o espacios en blanco ni tabuladores

4 Guía de referencia rápida de lenguaje C Palabras reservadas en C C posee un conjunto de palabras que no pueden ser utilizadas como nombres de identificadores ni de funciones. Son las siguientes: auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while

5 Guía de referencia rápida de lenguaje C Palabras reservadas en C++ Además de las palabras reservadas de C, C++ también posee un conjunto de palabras que se deben de considerar cuando se programe en C con compiladores de C++. Son las siguientes: asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum,explicit, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static. static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, while

6 Guía de referencia rápida de lenguaje C Constante: Un valor declarado u objeto que no cambia durante la ejecución y que se especifica mediante la directiva de sustitución o macro #define, por ejemplo: #define LMAX 21 #define PI 3.1416 Variable: Un objeto declarado que toma un valor que se puede modificar durante la ejecución del programa y que se especifica en la parte de declaración de variables. Las variables se representan por identificadores válidos y se les antepone el tipo de dato que representan. Por ejemplo: int a; float b; Se le denomina ámbito al alcance o utilización que pueden tener las variables en C. De acuerdo a esto existen variables globales y variables locales

7 Guía de referencia rápida de lenguaje C Variable global: Aquella variable que puede ser modificada y utilizada en cualquier parte del programa, es decir su ámbito o alcance no está restringido Variable local: Aquella variable que sólo puede ser modificada y utilizada solamente en la parte del programa donde fue definida, como en el caso de las variables que se declaran dentro de las funciones. En otras palabras el ámbito de una variable local se encuentra restringido a la función donde fue declarada

8 Guía de referencia rápida de lenguaje C Tipos de datos en C Los tipos básicos en C son – int (entero) – float (real de precisión sencilla) – double (real de precisión doble) – char (carácter) – char nombre[TAMAÑO] (cadenas) – Los booleanos no existen en C. En su lugar se toman int con valor 0 para falso y diferente de 0 como verdadero C cuenta con otros tipos de datos. Para ello hace uso de modificadores. Véase el artículo Tipos de datos en C.Tipos de datos en C

9 Guía de referencia rápida de lenguaje C Estructura general de un programa en C La forma más sencilla de elaborar un programa en C es: #include /*Bibliotecas o archivos de cabecera*/ #include /*donde están las funciones que usa C*/ #define MACRO1 valor /*Declaración de constantes donde */ #define MACRO2 valor /*también se pueden definir expresiones compuestas*/ int main()/*función principal*/ { /*Declaración de variables*/ /*Asignación de variables*/ /*Cuerpo de la función principal*/ return 0; /*Devuelve el control al S.O. indicando que todo terminó bien*/ }

10 Guía de referencia rápida de lenguaje C Estructura general de un programa en C En realidad existen dos estructuras formales que se pueden usar al elaborar un programa en C. Estructura 1 #include /*Bibliotecas o archivos de cabecera*/ #include /*donde están las funciones que usa C*/ #define MACRO1 valor /*Declaración de constantes donde */ #define MACRO2 valor /*también se pueden definir expresiones compuestas*/ … tipo1 funcion1(lista de parámetrosA);/*Declaración de los prototipos*/ tipo2 funcion2(lista de parámetrosB);/*de funciones definidas por el usuario*/ … tipoA variabletipoA;/*Variables globales*/ tipoB variabletipoB; …

11 Guía de referencia rápida de lenguaje C int main()/*función principal*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función principal*/ return 0; /*Devuelve el control al S.O. indicando que todo terminó bien*/ } /*funciones definidas por el usuario*/ tipo1 funcion1(lista de parámetrosA)/*función1 que devuelve un valor de tipo1*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función1*/ return valor_de_tipo1; /*Devuelve el valor a la función que la invocó*/ }

12 Guía de referencia rápida de lenguaje C tipo2 funcion2(lista de parámetrosB)/*función2 que devuelve un valor de tipo1*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función2*/ return valor_de_tipo1; /*Devuelve el valor a la que la invocó*/ } …

13 Guía de referencia rápida de lenguaje C Estructura general de un programa en C Estructura 2 #include /*Bibliotecas o archivos de cabecera*/ #include /*donde están las funciones que usa C*/ #define MACRO1 valor /*Declaración de constantes donde */ #define MACRO2 valor /*también se pueden definir expresiones compuestas*/ … tipoA variabletipoA;/*Variables globales*/ tipoB variabletipoB; … /*funciones definidas por el usuario*/ /*Aquí se definen los cuerpos de las funciones antes de la función principal main*/ /*No es necesario declarar su prototipo. Cada función termina con ; después de definirla a diferencia de la Estructura 1*/

14 Guía de referencia rápida de lenguaje C tipo1 funcion1(lista de parámetrosA)/*función1 que devuelve un valor de tipo1*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función1*/ return valor_de_tipo1; /*Devuelve el valor a la función que la invocó*/ }; tipo2 funcion2(lista de parámetrosB)/*función2 que devuelve un valor de tipo1*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función2*/ return valor_de_tipo1; /*Devuelve el valor a la función que la invocó*/ };

15 Guía de referencia rápida de lenguaje C … int main()/*función principal*/ { /*Declaración de variables locales*/ /*Asignación de variables*/ /*Cuerpo de la función principal*/ return 0; /*Devuelve el control al S.O. indicando que todo terminó bien*/ }

16 Guía de referencia rápida de lenguaje C Operador de asignación = Operadores aritméticos Precedencia - (operador monario) *, / (división), % (residuo de división entera) +, -

17 Guía de referencia rápida de lenguaje C Operadores relacionales Precedencia >, < >=, <= == (igualdad) != (desigualdad)

18 Guía de referencia rápida de lenguaje C Operadores lógicos Precedencia ! not (negado) && (AND) || (OR ) Nota: En C un valor falso se toma como 0 y un valor verdadero se toma como cualquier valor diferente de cero A! 01 10 AB&&|| 0000 0101 1001 1111

19 Guía de referencia rápida de lenguaje C Operador sizeof Este es un operador muy útil. Nos permite conocer el tamaño en bytes de una variable. De esta manera no tenemos que preocuparnos en recordar o calcular cuanto ocupa en memoria. Además el tamaño de una variable cambia de un compilador a otro, es la mejor forma de asegurarse. Se usa poniendo el nombre de la variable después de sizeof y separado de un espacio: #include int main() { int variable; printf( "Tamaño de la variable: %i\n", sizeof (variable) ); return 0; }

20 Guía de referencia rápida de lenguaje C Operador (++) : Incremento Este operador equivale a sumar uno a la variable  a++ (postincremento)  ++a (preincremento) Operador (--) : Decremento Este operador equivale a restar uno a la variable  a-- (postdecremento)  --a (predecremento)  NOTA: Existen otros operadores que no se tratan en este texto pero que se pueden consultar en los manuales de referencia de C

21 Guía de referencia rápida de lenguaje C Sentencias de asignación int a = 5, b; b = 12; Expresiones aritméticas 5*A/2%4-5 Expresiones lógicas o booleanas (a 4) (x 0.25) ((a != b) && !c) || (c == d)

22 Guía de referencia rápida de lenguaje C Notación abreviada. Se usa cuando una variable opera consigo misma y con una constante o una expresión int a = 5, b = 12; a += 7; /* a = a + 7; */ b *= 2; /* b = b * 2; */ a/=2; /*a = a / 2; */ suma*=x/fact; /*suma = suma*x/fact */

23 Guía de referencia rápida de lenguaje C Funciones predefinidas. Existen varias funciones predefinidas en C que se pueden usar al momento de programar. Necesitan de su respectiva Biblioteca para poder ser utilizadas. De hecho C agrupa a las funciones en Bibliotecas de acuerdo a las tareas que realizan. Las más comunes son: BibliotecaDescripciónFunciones stdio.hFunciones de entrada/salida estándarprintf, scanf, gets, puts, fflush, etc. math.hFunciones matemáticas y trigonométricassin, cos, tan, asin, acos, atan,etc. exp, sqrt, log, log10, pow, etc. string.hFunciones que manipulan cadenasstrlen, strcpy, strcat, strcmp, etc. ctype.hFunciones que manipulan y clasifican caracteres toupper, tolower, isalpha, isalnum, isdigit, etc. stdlib.hFunciones usadas comúnmente: rutinas de conversión, búsqueda/ordenamiento y miscelaneas abs, atoi, atof, max, min, random, randomize, etc

24 Guía de referencia rápida de lenguaje C Operaciones de entrada/salida Entrada (leer valores por vía teclado) scanf(“%cf_tipo1%cf_tipo2…”, &var_tipo1, &var_tipo2,…); Salida Mostrar en pantalla una cadena con formato y/o una lista de variables printf(“texto %cf_tipo1 %cf_tipo2…”,var_tipo1, var_tipo2,…); *cf = código de formato

25 Guía de referencia rápida de lenguaje C Estructuras de control Un algoritmo simple presenta flujo secuencial, sin embargo, no todos los algoritmos son así ya que es necesario realizar procedimientos más complejos que involucren ya sea elegir una o varias alternativas o realizar el mismo procedimiento varias veces El control de flujo de un lenguaje especifica el orden en el que se ejecuta cada sentencia o instrucción Tenemos entonces tres tipos principales de estructuras de control: Estructura secuencial, estructuras de decisiónes o selecciones y los ciclos o estructuras de repetición

26 Guía de referencia rápida de lenguaje C Estructuras de control Estructura secuencial

27 Guía de referencia rápida de lenguaje C Estructuras de control DecisiónSimpleDobleAnidadaMúltiple Expresión condicional

28 Guía de referencia rápida de lenguaje C Decisiones simples

29 Guía de referencia rápida de lenguaje C Decisiones dobles

30 Guía de referencia rápida de lenguaje C if (condición1) { /*bloque1*/} else if(condición2) { /*bloque2*/} else if(condición3) {…} else if(condiciónN) {/*bloqueN*/} else {/*bloqueN+1*/} Decisiones anidadas

31 Guía de referencia rápida de lenguaje C Decisión múltiple

32 Guía de referencia rápida de lenguaje C Expresión condicional Se usa para simplificar una decisión doble que afecta a una única variable. var = condición ? expresión1: expresión2; Por ejemplo: Se puede abreviar como if(condición) a = 5.7; else a = sqrt(10.0); a = condición ? 5.7 : sqrt(10.0);

33 Guía de referencia rápida de lenguaje C Estructuras de control Estructuras de repetición (ciclos, loops, lazos o bucles) Ciclossimpleswhiledo-whileforanidados

34 Guía de referencia rápida de lenguaje C Estructuras de control Ciclo while

35 Guía de referencia rápida de lenguaje C Estructuras de control Ciclo do-while

36 Guía de referencia rápida de lenguaje C Estructuras de control

37 Guía de referencia rápida de lenguaje C Arreglos Un arreglo es un conjunto ordenado de variables del mismo tipo que se encuentran reunidas bajo un mismo nombre La forma de declarar un arreglo en C es tipo nombredelarreglo[tamaño]; La forma de acceder a cada elemento del arreglo es por medio de un índice que indica la posición del elemento dentro del arreglo, p. ej. arrentero [4] = 18; 100714182-10 0123456 arrentero índices del arreglo

38 Guía de referencia rápida de lenguaje C Arreglos (cont.) Un arreglo se utiliza para manejar un conjunto de variables que están relacionadas entre sí como los componentes de un vector o los coeficientes de un polinomio. Los elementos de un arreglo ocupan direcciones contiguas en memoria, p. ej. 10 0 7 14 18 2 -10 0x2000 0x2001 0x2002 0x2003 0x2004 0x2005 0x2006 0x2007 0x2008 0x2009 0x200A 0x200B 0x200C 0x200D 0 1 2 3 4 5 6 dirección de memoria memoria índices del arreglo

39 Guía de referencia rápida de lenguaje C Arreglos La forma de declarar un arreglos de varias dimensiones en C es tipo nombredelarreglo[dimensión1] [dimensión2]…[dimensiónN]; La forma de acceder a cada elemento del arreglo es por medio del índice en cada dimensión, p. ej. int matriz[2][2] = {{1,0},{2,1}}; matriz[0][1]= -1;

40 Guía de referencia rápida de lenguaje C Arreglos (cont.) También los elementos de un arreglo multidimensional ocupan direcciones contiguas en memoria, para el ejemplo anterior. 1 0 2 1 0x200E 0x200F 0x2010 0x2011 0x2012 0x2013 0x2014 0x2015 0,0 0,1 1,1 1,2 dirección de memoria memoria índices del arreglo

41 Cadenas en C En C las cadenas no se definen en forma explícita, se definen como arreglos de caracteres: char nombre_cadena[tamaño] char cadena[7]; scanf(“%s”,cadena); /*suponiendo que se tecleo hola*/ ‘h’‘h’‘o’‘o’‘l’‘l’‘a’‘a’‘\0’ 0123456

42 Cadenas en C Se considera que toda cadena lleva al final de ella un “fin de cadena” o “terminador nulo”, el cuál permite delimitar a la cadena. Se debe considerar el fin de cadena cuando se trabaje con ellas, así al definir el tamaño de la cadena siempre se debe de tener en cuenta su terminador nulo y reservar siempre un espacio adicional para el tamaño que se quiera asignar a la cadena.

43 Funciones que manipulan cadenas NombreDescripción getsLee cadenas con espacios en blanco putsMuestra una cadena en pantalla strcpyCopia el contenido de una cadena en otra strcatConcatena 2 cadenas strcmpCompara 2 cadenas strlenLongitud de una cadena Están definidas en la biblioteca string.h

44 Estructuras en C (struct) A los registros en C se les denomina estructuras o struct Conjunto de variables de distintos tipos agrupados bajo un mismo nombre.

45 Estructuras (struct) Las estructuras se utilizan para agrupar variables de distintos tipos que tienen relación entre sí, por ejemplo: – Una persona posee un nombre propio, un apellido, una edad, un género, un estado civil, un domicilio, etc. – Otro ejemplo podría ser un polinomio que contiene un grado y un conjunto de coeficientes. Cada uno de los componentes de una estructura se denomina campo.

46 Estructuras (struct) La forma de definir una estructura en C es: struct id_estructura { tipo 1 id_campo 1 ; tipo 2 id_campo 2 ; … tipo n id_campo n ; };

47 Estructuras en C (struct) A un ejemplo específico de una estructura se le denomina instancia Una instancia se puede declarar ya sea después de definir la estructura struct id_estructura { tipo 1 id_campo 1 ; tipo 2 id_campo 2 ; … tipo n id_campo n ; } variable_de_tipo_id_estructura;

48 Estructuras en C (struct) o anteponiendo el nombre de la estructura seguido del nombre de la o las variables que se desean declarar. id_estructura variable_de_tipo_id_estructura;

49 Estructuras en C (struct) Retomando el ejemplo de la persona struct Persona { char nombre[30]; char apellido[30]; int edad; char genero; }; Podemos declarar variables de tipo estructura como: struct Persona A; Asignamos valores a sus campos usando el operador. – scanf(“%s”,A.nombre); – scanf(“%s”,A.apellido); – A.edad = 22; – A.genero = ‘M’;

50 Estructuras en C (struct) Con las variables definidas podemos hacer operaciones entre sus campos: – A.edad = A.edad*2; Y los podemos mostrar en pantalla printf(“Persona 1:\nnombre:%s\napellido: %s\nedad: %d\n género: %c”, A.nombre, A.apellido, A.edad, A.genero);

51 Diferencias entre arreglos y estructuras Un arreglo puede almacenar N elementos del mismo tipo, mientras que una estrutura puede almacenar N elementos de diferentes tipos. Los elementos de una arreglo se accesan por medio de índices (posición del elemento en el arreglo) mientras que los elementos de una estructura (campos) se acceden directamente por su nombre En un arreglo es posible establecer un orden entre sus elementos, mientras que en una estructura no existe orden entre los campos

52 Estructuras en C (struct) Una persona también tiene un domicilio struct Domicilio { char calle[30]; int número_int; int número_ext; char colonia[30]; char deleg_munic[50]; unsigned long cp; };

53 Estructuras en C (struct) Podemos tener arreglos de estructuras struct Persona contactos[10] ;

54 Apuntadores en C Un apuntador es una variable que almacena una dirección de memoria de otra variable La forma de declararlos es: – tipo 1 *id_variabletipo 1 ; – tipo 2 *id_variabletipo 2 ;

55 Manejo de archivos en C


Descargar ppt "UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE INGENIERIA DIVISIÓN DE INGENIERÍA ELÉCTRICA COMPUTACIÓN PARA INGENIEROS PROF. M.I. JAIME ALFONSO REYES."

Presentaciones similares


Anuncios Google