Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porMaría Antonia Soriano Maestre Modificado hace 8 años
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. }
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.