La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

CLASE 17. Resumen: Ámbito de las variables El ámbito de un elemento en C depende de donde se sitúe la definición y de los modificadores que le acompañan.

Presentaciones similares


Presentación del tema: "CLASE 17. Resumen: Ámbito de las variables El ámbito de un elemento en C depende de donde se sitúe la definición y de los modificadores que le acompañan."— Transcripción de la presentación:

1 CLASE 17

2 Resumen: Ámbito de las variables El ámbito de un elemento en C depende de donde se sitúe la definición y de los modificadores que le acompañan. En resumen, se puede decir que un elemento definido dentro de una función tiene ámbito local, o si se define fuera de cualquier función, se dice que tiene un ámbito global. #include #define CONST 10 int funcion1(void); /*Las vbles. declaradas aquí tienen un ambito global. Cualquier función dentro de este mismo archivo puede hacer uso de ellas.*/ int main(void) { ….. } int funcion1() { /*Las vbles. declaradas aquí tienen un ambito local a funcion1. Ninguna otra función puede hacer uso de ellas.*/ /*Los apuntadores le permiten a otras funciones manipular estas vbles*/ } program.c

3 Zona de Preguntas… Funciones en C CICLOS #include //Prototipos void a(void); void b(void); void c(void); void d(int x); int x=1; int main(void){ int x=5; printf("%d\n",x); { int x=7; printf("%d\n",x); } printf("%d\n",x); a(); b(); c(); d(x); a(); b(); c(); d(x); printf("%d\n",x); return 0; } //Declaracion de las funciones void a(void){ int x=25; printf("%d\n",x); x++; printf("%d\n",x); } void b(void){ static int x=50; printf("%d\n",x); x++; printf("%d\n",x); } void c(void){ printf("%d\n",x); x*=10; printf("%d\n",x); } void d(int x){ printf("%d\n",x); x--; printf("%d\n",x); }

4 Estructurando funciones en archivos separados Hasta ahora todos los programa se han escrito en un solo archivo (.c), solo se ha hecho uso de la inclusión de algunas librerias (archivos.h) del sistema. Los programas grandes son más fáciles de gestionar si se dividen en varios archivos fuente, también llamados módulos, cada uno de los cuales puede contener una o más funciones.

5 #include #include "archivo.h" int varGlobal; int main(void){ ….. } program.c #include #include "archivo.h" extern int varGlobal; int funcion1(void){ int varLocal; printf( "%d", CONST1); ….. } int funcion2(int x){ int varLocal= CONST1; ….. } int funcion3(float x){ int varLocal; varLocal=2*CONST1; …. } archivo.c archivo.h #include #define CONST1 10 int funcion1(void); int funcion2(int); int funcion3(float); int varGlobal; int main(void){ { ….. } int funcion1(void){ int varLocal; printf( "%d", CONST1); ….. } int funcion2(int x){ int varLocal= CONST1; ….. } int funcion3(float x){ int varLocal; varLocal=2*CONST1; …. } program.c #include #include "archivo.h " extern int varGlobal; int funcion1(void){ int varLocal; printf( "%d", CONST1); ….. } funcion1.c funcion2.c funcion3.c #include #include "archivo.h " extern int varGlobal; int funcion2(int x){ int varLocal=CONST1; ….. } #include #include "archivo.h " extern int varGlobal; int funcion3(float x){ int varLocal; varLocal=2*CONST1; …. } Creación de Librerías #define CONST1 10 int funcion1(void); int funcion2(int); int funcion3(float);

6 Archivo Fuente 1 Archivo Fuente 2 Archivo Fuente 3 Archivo Fuente n Archivo objeto 1 Archivo objeto 2 Archivo objeto 3 Archivo objeto n COMPILADOR Librerias internas ENLAZADOR Creación de Librerías Revisar Makefile. Forma de realizar todo este proceso de una manera Automática e Inteligente

7 AGENDA 1 Introducción 2 Declaración 3 Inicialización 14 Ejemplos 5 Cadena de Caracteres

8 Definición: Un array es una colección de variables del mismo tipo de datos con un mismo nombre. En los arrays: –Hay un número de piezas de datos contenidos en el mismo nombre. –Hay un método ordenado para la extracción de datos individuales del array Definición

9

10 Ejemplo Arreglos Solución 1: Crear una variable especifica por empleado en la cual se almacene la identificación de cada uno de los empleados. Problema: Supongamos el señor Burns le solicita a usted un programa que le permita llevar un registro de la identificación de cada uno de los empleados de la planta nuclear de Springfield, ¿Cómo lo haría? INTRODUCCION

11 Ejemplo Arreglos Problema solución anterior: El problema se vuelve mas difícil a medida que el numero de empleados aumenta, pues implicara la creación de mas variables individuales (id5, id6, …) INTRODUCCION

12 Solución al problema anterior: En los arrays se encuentra la respuesta. Pues un array es como una caja para guardar de manera organizada elementos tal como un archivador. Utiliza un sistema de indexación para encontrar el valor de cada una de las variables almacenadas en su interior. INTRODUCCION Ejemplo Arreglos

13 Introducción Ejemplo: –Arreglo con la edad de los alumnos de una clase –Arreglo con las temperaturas de cada día de un mes en una ciudad determinada –Arreglo con los precios de cada uno de los productos de una tienda…. INTRODUCCION

14 Introducción Un array se identifica con un nombre. Y contiene N elementos. Los elementos de un array se enumeran consecutivamente 0, 1, 2, 3,.. (N-1) Esta enumeración se denomina valores índice o subindice del array. Y sirven para accesar cualquier elemento del array. Número de elementos = 10 Subíndices INTRODUCCION Nombre

15 El arreglo edad tiene 10 elementos (edades), los indice van desde 0 hasta 9. Cada elemento se accede con el nombre del arreglo y con el indice al que corresponda. El elemento 0 del vector Edad vale 24 El elemento 5 del vector Edad vale 17 Número de elementos = 10 Subíndices Valores Nombre Introducción INTRODUCCION

16 AGENDA 1 Introducción 2 Declaración 3 Inicialización 2 4 Ejemplos 5 Cadena de Caracteres

17 Declaración de Arreglos Un arreglo es un espacio en memoria al cual hay que reservarle ese espacio. Al igual que con las variables los arreglos hay que declararlos antes de utilizarlos, y se pueden inicializar o no. La declaración de los arreglos tiene la misma connotación de la Vbles. DECLARACIÓN tipoDatos nombreArreglo[#deElementos]; int, float,char,… Nombre que Representa al arreglo Nombre que Representa al arreglo Entero Positivo

18 Declaración de Arreglos Ejemplo: DECLARACIÓN 7 espacios de memoria int Edad[7]; 30 espacios de memoria int Temp[30];

19 Inicialización de Arreglos INICIALIZACIÓN En el momento de declarar el arreglo, se puede inicializar. Se utiliza las {} para inicializar un arreglo. Se crea el arreglo y se inicializa int edad[10]={16,22,19,21,21,18,19,15,32,28}; Se crea el arreglo y se inicializa float temp[4]={21.3, 23.5, 27.5, 26.4};

20 AGENDA 1 Introducción 2 Declaración 3 Utilización 3 4 Ejemplos 5 Cadena de Caracteres

21 Accediendo a los arreglos Un array así como las variables ordinarias debe ser declarado antes de ser usado. edad[i] índice Nombre del arreglo int edad[10]; Cada dato de un arreglo puede ser utilizado como si fuera una variable mas. Un dato de un arreglo se referencia así: Número de elementos = 10 Subíndices Valores Nombre

22 Asignación de valores al Arreglo Una vez declarado el arreglo se puede escribir o leer cualquier posición del arreglo int edad[9];//Declaración edad[2]=21; edad[5]=17; edad[9]=edad[5]; INICIALIZACIÓN 2117 Solo se crea el arreglo Asignando valor a un elemento

23 AGENDA 1 Introducción 2 Declaración 3 Inicialización 4 Ejemplos 5 Cadena de Caracteres 4

24 Ejemplo 1 Realice un programa que encuentre el promedio de los elementos del siguiente vector: EJEMPLOS

25 Ejemplo 1 EJEMPLOS #include int main (void){ int num[7]={12, 4, 65, 21, 4, 6, 25}; int i, promedio, suma; for (i=0; i<7; i++){ suma= suma + num[i]; } promedio = suma / 7; printf(El promdio del vector es: %d\n,promedio); return 0; }

26 Ejemplo 2 Realice un programa que inicialice con 0s (mediante un ciclo for) un vector de 10 posiciones: EJEMPLOS

27 Ejemplo 2 EJEMPLOS #include int main (void){ int num[10]; int i; for (i=0; i<10; i++){ num[i]=0; } printf(ElementoValue\n); for(i=0; i<=9; i++){ printf(%7d%13d\n,i,num[i]); } return 0; }

28 Ejemplo 3 Realice un programa que inicialice con 2, 4, 6,… 20 (mediante un ciclo for)un vector de 10 posiciones: EJEMPLOS

29 Ejemplo 3 EJEMPLOS #include #define SIZE 10 int main (void){ int num[SIZE]; int i; for (i=0; i

30 Ejemplo 4 Realice un programa que determine cuantos elementos pares e impares tiene un vector de N posiciones. N y los datos son asignados por el usuario: EJEMPLOS

31 Ejemplo 4 EJEMPLOS #include int main (void){ int N, i, par=0, impar=0; printf(Ingrese el numero de elementos: ); scanf(%d,&N); int num[N]; for (i=0; i

32 AGENDA 1 Introducción 2 Declaración 3 Inicialización 4 Ejemplos 5 Cadena de Caracteres 5

33 CADENA DE CARACTERES Un tipo de arreglo muy útil es el arreglo que maneja elementos tipo caracter. Sirve para manejar mensajes. Se declara e inicializa arreglo de caracteres: –char marca[4]= {F,I,A,T}; –char nombre[5]= {L,U,I,S}; –char apellido[10]= {S,U,A,R, E, Z, \0}; CADENAS DE CARACTERES

34 CADENA DE CARACTERES(2) Es muy común y muy útil marcar con un caracter especial el final de un arreglo de caracteres (\0).Un arreglo de caracteres que tenga el caracter de finalización lo llamamos cadena de caracteres. –char nombre[5]= {L,U,I,S,\0}; –char nombre[10]= ANA; –char nombre[]= ANA; –char nombre[]= {L,U,I,S,´\0´}; CADENAS DE CARACTERES Si un vector no se le indica el tamaño, este se define automáticamente de acuerdo a la inicialización Tamaño 4

35 Ejemplo Almacenar la palabra pereira en una cadena que se llame ciudad. Almacenar la palabra manzana en una cadena llamada frutas CADENAS DE CARACTERES char ciudad[30] = pereira; char ciudad[] = pereira; char ciudad[30] = {p, e, r, e, i, r, a, \0}; char ciudad[] = {p, e, r, e, i, r, a, \0}; char frutas[30] = manzana; char frutas[] = manzana; char frutas[30] = {m, a, n, z, a, n, a, \0}; char frutas[] = {m, a, n, z, a, n, a, \0};

36 Lectura y Escritura de Cadenas CADENAS DE CARACTERES

37 Ejemplo Escribir un programa en C que lea una secuencia de caracteres ASCII y que escriba este mensaje codificado: –Si el carácter es una letra o dígito, será reemplazado por el siguiente carácter en el conjunto de caracteres, excepto Z que será reemplazado por A, z por a y 9 por 0. –Por tanto, 1 se transforma en 2, C en D, p en q, etc. Cualquier carácter que no sea letra o dígito será reemplazado por un punto (.). CADENAS DE CARACTERES

38 #include #define MAXCAR 60 void main() { char LIN[MAXCAR], LOUT [MAXCAR]; int i; puts("INGRESE TEXTO A CODIFICAR: \n"); gets(LIN); puts("EL TEXTO CODIFICADO ES: \n"); for (i= 0; LIN[i] != '\0'; i++){ if (((LIN[i] >='0')&&(LIN[i] ='A)&&(LIN[i] ='a') && (LIN[i] < 'z'))) { LIN[i]= LIN[i] + 1; } else if (LIN[i] == '9') LOUT[i]='0'; else if (LIN[i] == 'Z') LOUT[i]='A'; else if (LIN[i] == 'z') LOUT[i]='a'; else LOUT[i]='.'; putchar(LOUT[i]); } putchar('\n'); }

39 FUNCIONES PARA MANIPULAR CADENAS CADENAS DE CARACTERES

40 Bibliografía Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo8. Google

41


Descargar ppt "CLASE 17. Resumen: Ámbito de las variables El ámbito de un elemento en C depende de donde se sitúe la definición y de los modificadores que le acompañan."

Presentaciones similares


Anuncios Google