La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0.

Presentaciones similares


Presentación del tema: "Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0."— Transcripción de la presentación:

1 Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0 Unidad Didáctica 22

2 UD22: Introducción al lenguaje C (I) Introducción  Diseñado en el año 1972 por Brian Kernighan y Dennis Ritchie en los laboratorios Bell Telephone.  Vinculado al sistema operativo UNIX  Lenguaje de medio nivel  Sentencias de control  Manejo de memoria  Lenguaje NO orientado a objetos  Estándar ANSI (American National Standard Institute)

3 UD22: Introducción al lenguaje C (I) Elementos de C: Tipos básicos  Tipos básicos: char, int/long, float/double  Tipos enumerados: enum{…}  Arrays, punteros, cadenas de caracteres  Declaración de variables  tipo lista_de_identificadores;  Nuevos tipos: typedef  No existe el tipo boolean, se define mediante typedef

4 UD22: Introducción al lenguaje C (I) Ejemplos de C: Tipos básicos I  Declaración de variables:  Definición de tipos nuevos: char c; int edad; double radio, longitud; float f; typedef int entero; entero edad = 18; edad = edad + 1;

5 UD22: Introducción al lenguaje C (I) Ejemplos de C: Tipos básicos II  Definición de tipos enumerados: typedef enum {Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo} diaSemana; diaSemana d = Lunes; typedef enum {false, true} boolean; boolean res = false;

6 UD22: Introducción al lenguaje C (I) Elementos de C: Expresiones  Operadores equivalentes a los de JAVA  Asignación =  La expresiones lógicas devuelven un entero (0 si false y cualquier valor distinto de 0 si true) ARITMÉTICOS +- */ Módulo % Decremento - - Incremento ++ RELACIONALES >< >=<= ==!= LÓGICOS && || !

7 UD22: Introducción al lenguaje C (I) Elementos de C: Est. de control y selectiva  Iguales a las ya estudiadas  No existe for extendido FalsoCierto sentencia-1 sentencia-2... sentencia-n sentencia-1 sentencia-2... sentencia-n sentencia-n+1 sentencia-n+2 sentencia-m sentencia-n+1 sentencia-n+2 sentencia-m condición Falsa Cierta sentencia-1 sentencia-2 sentencia-n sentencia-1 sentencia-2 sentencia-n condición sentencia-1 sentencia-2 sentencia-n sentencia-1 sentencia-2 sentencia-n inicialización condición Falsa actualización Cierta If While For clásico

8 UD22: Introducción al lenguaje C (I) Elementos de C: Estructura de un programa Declaración de importaciones Definición de constantes Definición de tipos Declaración de prototipos void main (void) { declaración de variables instrucciones } Definición de funciones …

9 UD22: Introducción al lenguaje C (I) Elementos de C Declaración de importaciones #include Definición de constantes #define identificador_constante valor Definición de tipos typedef tipo nuevo_nombre; Declaración de prototipos tipo_retorno nombre_funcion (parámetros); void main (void) { declaración de variables tipo nombre1, nombre2; instrucciones } Definición de funciones tipo nombre funcion(parámetros){…} …

10 UD22: Introducción al lenguaje C (I)  Programa “Hola Mundo” Ejemplo de CI #include void main(void) { printf("Hola Mundo\n"); //Imprime a consola }

11 UD22: Introducción al lenguaje C (I) Ejemplo de C II #include typedef enum {false, true} boolean; boolean estaEn (int a, int b, int v); void main (void) { boolean res = estaEn (5,10,8); if(res == true){ printf(“El valor SÍ está en el intervalo”); } else { printf(“El valor NO está en el intervalo”); } } // <-- Llave que cierra main boolean estaEn(int a,int b,int v) { boolean res = false; if (a<b && a<=v && v<=b) { res=true; } return res; }  ¿Está el valor contenido en el intervalo?

12 UD22: Introducción al lenguaje C (I) Ejemplo de C III #include typedef enum {Lunes, Martes, Miercoles, Jueves, Viernes, Sabado, Domingo} diaSemana; void main(void){ diaSemana d = Martes; if (d <= Viernes){ printf(“El día es laborable”); } else{ printf(“El día es fin de semana”); }  ¿Es un determinado día laborable o fin de semana?

13 UD22: Introducción al lenguaje C (I) Elementos de C: Arrays  Declaración:  Declaramos una constante que indica el tamaño del array. Su nombre puede ser nombreTAM.  En muchos casos un array no está lleno completamente. Definimos una variable de tipo entero que indica cuántos elementos hay en el array. Su nombre puede ser nombreLength.  El acceso a los índices del array se hará con el operador [] indicando como índice la posición a la que se desea acceder. tipo nombre [dim]; tipo nombre [dim1][dim2];

14 UD22: Introducción al lenguaje C (I) Elementos de C: Ejemplos de arrays I #define VTAM 10 void main(void){ int vLength = 0; int v[VTAM]; v[0] = 2; v[1] = 3; v[2] = 4; vLength = 3; }  Podemos declarar el tamaño del array en la inicialización void main(void){ int vLength = 0; int v[] = {2,3,4}; // El tamaño del array v es 3 vLength = 3; }

15 UD22: Introducción al lenguaje C (I) Elementos de C: Ejemplos de arrays II #include #define VTAM 10 float mediaPares (int v[], int vLength); void main (void){ int v[VTAM]; int vLength = 0; float res; v[0] = 3; v[1] = 8; v[2] = 6; v[3] = -5; int vLength = 4; res = mediaPares(v, vLength); printf(“Resultado calculado y almacenado en la variable res”); } float mediaPares(int v[], int vLength){ int i; float res = 0; for(i = 0; i < vLength; i=i+2){ res = res + v[i]; } return res/vLength; }  Calcula la media de los elementos PARES de un array

16 UD22: Introducción al lenguaje C (I) Elementos de C: Punteros I  Un puntero es una variable que contiene la dirección de otra variable.  Cuando una variable puntero es definida, el nombre de la variable debe ir precedido de un asterisco (*). Este identifica que la variable es un puntero  Operadores: tipo * identificador; * : acceso al contenido &: obtención de la dirección

17 UD22: Introducción al lenguaje C (I) void main (void){ int i = 15; int *p = &i; // p apunta a i int j = *p; // se accede a lo apuntado por p } Elementos de C: Punteros II Contenido de la memoria 13B6 ? 5FC4 ? ? ? i j p Variable Operación 15 13B6 15

18 UD22: Introducción al lenguaje C (I) Elementos de C: Ejemplos con punteros void main (void){ int i = 10, j; int *p; // Declaración de un puntero a int p = &i; // Se fuerza a que p apunte a la dirección de memoria de i j = *p + 1; // Se asigna a la variable j el contenido de p (es decir, 10) más 1 -> j = 11 *p = j * 2; // Se asigna al contenido del puntero p (es decir, la variable i), el valor de la variable j multiplicado por 2 -> i = 22 }

19 UD22: Introducción al lenguaje C (I) Elementos de C: Arrays y punteros  Hay una fuerte relación entre arrays y punteros.  El nombre de un array es un puntero a la base del array.  Se pueden sumar y restar enteros a un nombre de array (operaciones con punteros).  Si está declarado el array int x[]={1,2,3,4,5}  La dirección al primer elemento puede referirse como &(x[0]) o simplemente como x. El contenido de la primera posición se puede acceder como x[0] o como *x.  Para el segundo elemento sería: dirección &x[1] o x+1, contenido x[1] o *(x+1).

20 UD22: Introducción al lenguaje C (I) Elementos de C: Ejemplos de arrays y punteros #define VTAM 10 void main (void){ int v [VTAM]; int * pv; v+3; // es un puntero a la base de la casilla 3, equivalente a &v[ 3 ] v[3]; // es equivalente a *(v+3) pv = v+3; // pv apunta a la base de la casilla 3 de v, a v[3]. *pv = 5 // escribe en la posición v[3] el valor 5, es decir v[3]=5. }


Descargar ppt "Introducción al Lenguaje C (I) Tipos básicos, arrays y punteros Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.0."

Presentaciones similares


Anuncios Google