1 / 39

INFORMATICA I

INFORMATICA I. Arreglos 1. CLASE 17. CICLOS. Zona de Preguntas…. #include < stdio.h > // 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 );

awena
Download Presentation

INFORMATICA I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INFORMATICA I Arreglos 1 CLASE 17

  2. CICLOS Zona de Preguntas… #include <stdio.h> //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){ staticint 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); } • Funciones en C

  3. 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.

  4. Creación de Librerías Ejemplo program.c #include < libreriaX.h> #include "archivo.h" intvarGlobal; intmain(void){ ….. } program.c #include < libreriaX.h> #define CONST1 10 int funcion1(void); int funcion2(int); int funcion3(float); intvarGlobal; intmain(void){ { ….. } int funcion1(void){ intvarLocal; printf("%d",CONST1); ….. } int funcion2(int x){ intvarLocal= CONST1; ….. } int funcion3(float x){ intvarLocal; varLocal=2*CONST1; …. } funcion1.c #include < libreriaX.h> #include "archivo.h " externintvarGlobal; int funcion1(void){ intvarLocal; printf("%d",CONST1); ….. } archivo.c archivo.h #include < libreriaX.h> #include "archivo.h" externintvarGlobal; int funcion1(void){ intvarLocal; printf("%d",CONST1); ….. } int funcion2(int x){ intvarLocal= CONST1; ….. } int funcion3(float x){ intvarLocal; varLocal=2*CONST1; …. } #define CONST1 10 int funcion1(void); int funcion2(int); int funcion3(float); funcion2.c #include < libreriaX.h> #include "archivo.h " externintvarGlobal; int funcion2(int x){ intvarLocal=CONST1; ….. } funcion3.c #include < libreriaX.h> #include "archivo.h " externintvarGlobal; int funcion3(float x){ intvarLocal; varLocal=2*CONST1; …. }

  5. Creación de Librerías Compilando y Enlazando librerías Archivo Fuente 2 Archivo Fuente 1 Archivo Fuente 3 Archivo Fuente n COMPILADOR Archivo objeto 2 Archivo objeto 1 Archivo objeto 3 Archivo objeto n Librerias internas ENLAZADOR PROGRAMA EJECUTABLE Revisar Makefile. Forma de realizar todo este proceso de una manera Automática e “Inteligente”

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

  7. Definición 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

  8. INTRODUCCION Ejemplo Arreglos 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? Solución 1: Crear una variable especifica por empleado en la cual se almacene la identificación de cada uno de los empleados.

  9. INTRODUCCION 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, …)

  10. INTRODUCCION Ejemplo Arreglos 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.

  11. INTRODUCCION 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….

  12. INTRODUCCION Introducción • Un arrayse 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. Subíndices Nombre Número de elementos = 10

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

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

  15. DECLARACIÓN 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. tipoDatosnombreArreglo[#deElementos]; Nombreque Representa al arreglo EnteroPositivo int, float,char,…

  16. DECLARACIÓN Declaración de Arreglos • Ejemplo: 7 espacios de memoria intEdad[7]; 30 espacios de memoria intTemp[30];

  17. INICIALIZACIÓN Inicialización de Arreglos En el momento de declarar el arreglo, se puedeinicializar. Se utilizalas {} parainicializar un arreglo. int edad[10]={16,22,19,21,21,18,19,15,32,28}; Se crea el arreglo y se inicializa 16 22 19 21 21 18 19 15 32 28 floattemp[4]={21.3, 23.5, 27.5, 26.4}; Se crea el arreglo y se inicializa 23.5 21.3 26.4 27.5

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

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

  20. INICIALIZACIÓN Asignación de valores al Arreglo • Unavezdeclarado el arreglo se puedeescribir o leer cualquierposición del arreglo intedad[9]; //Declaración edad[2]=21; edad[5]=17; edad[9]=edad[5]; Asignando valor a un elemento Solo se crea el arreglo 17 21 17

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

  22. EJEMPLOS Ejemplo 1 Realice un programaqueencuentre el promedio de los elementos del siguiente vector:

  23. EJEMPLOS Ejemplo 1 #include <stdio.h> intmain (void){ intnum[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; }

  24. EJEMPLOS Ejemplo 2 Realice un programaqueinicialice con 0s (mediante un ciclofor) un vector de 10 posiciones:

  25. EJEMPLOS Ejemplo 2 #include <stdio.h> intmain (void){ intnum[10]; int i; for (i=0; i<10; i++){ num[i]=0; } printf(“Elemento Value\n”); for(i=0; i<=9; i++){ printf(“%7d%13d\n”,i,num[i]); } return 0; }

  26. EJEMPLOS Ejemplo 3 Realice un programaqueinicialice con 2, 4, 6,… 20 (mediante un ciclofor)un vector de 10 posiciones:

  27. EJEMPLOS Ejemplo 3 #include <stdio.h> #define SIZE 10 intmain (void){ intnum[SIZE]; int i; for (i=0; i<SIZE; i++){ num[i]=2 + 2*i; } printf(“Elemento Value\n”); for(i=0; i<=SIZE-1; i++){ printf(“%7d%13d\n”,i,num[i]); } return 0; }

  28. EJEMPLOS Ejemplo 4 Realice un programaque determine cuantoselementos pares e imparestiene un vector de N posiciones. N y los datos son asignadospor el usuario:

  29. EJEMPLOS Ejemplo 4 #include <stdio.h> intmain (void){ int N, i, par=0, impar=0; printf(“Ingrese el numero de elementos: ”); scanf(“%d”,&N); intnum[N]; for (i=0; i<N; i++){ printf(“Ingrese el valor: ”); scanf(“%d”,&num[i]); } for(i=0; i<N; i++){ if(num[i]%2==0){ par=par+1; }else{ impar++; } } printf(“Pares: %d\n”, par); printf(“Impares: %d\n”, par); return 0; }

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

  31. CADENAS DE CARACTERES CADENA DE CARACTERES Un tipo de arreglomuyútiles el arregloquemanejaelementostipocaracter. Sirveparamanejarmensajes. Se declara e inicializaarreglo 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’};

  32. CADENAS DE CARACTERES CADENA DE CARACTERES(2) Es muycomún y muyútilmarcar con un caracter especial el final de un arreglo de caracteres (\0).Un arreglo de caracteresquetenga el caracter de finalización lo llamamoscadena de caracteres. • char nombre[5]= {‘L’,’U’,’I’,’S’,’\0’}; • char nombre[10]= “ANA”; • char nombre[]= “ANA”; • char nombre[]= {‘L’,’U’,’I’,’S’,´\0´}; Si un vector no se le indica el tamaño, este se define automáticamente de acuerdo a la inicialización Tamaño 4

  33. CADENAS DE CARACTERES Ejemplo Almacenar la palabrapereira en unacadenaque se llameciudad. Almacenar la palabramanzana en unacadenallamadafrutas charciudad[30] = “pereira”; charciudad[] = “pereira”; charciudad[30] = {‘p’, ‘e’, ‘r’, ‘e’, ‘i’, ‘r’, ‘a’, ‘\0’}; charciudad[] = {‘p’, ‘e’, ‘r’, ‘e’, ‘i’, ‘r’, ‘a’, ‘\0’}; charfrutas[30] = “manzana”; charfrutas[] = “manzana”; charfrutas[30] = {‘m’, ‘a’, ‘n’, ‘z’, ‘a’, ‘n’, ‘a’, ‘\0’}; charfrutas[] = {‘m’, ‘a’, ‘n’, ‘z’, ‘a’, ‘n’, ‘a’, ‘\0’};

  34. CADENAS DE CARACTERES Lectura y Escritura de Cadenas • Leer una cadena introducida por teclado: • letra=getchar; //igual que scanf (“%c”,&letra); • gets(linea); // cadena completa hasta '\n' • scanf(“%s”, palabra); // 1 palabra Sin espacios • Escribiruna cadena en la pantalla: • putchar(letra); //Igual que printf(“%c”,letra); • puts(palabra); • printf(“%s”,palabra);

  35. CADENAS DE CARACTERES 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 (.).

  36. #include <stdio.h> #define MAXCAR 60 voidmain() { charLIN[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]< '9'))||((LIN[i]>='A‘)&&(LIN[i]< 'Z'))||((LIN[i]>='a') && (LIN[i]< 'z'))) { LIN[i]= LIN[i]+ 1; } elseif(LIN[i]== '9') LOUT[i]='0'; elseif(LIN[i]== 'Z') LOUT[i]='A'; elseif(LIN[i]== 'z') LOUT[i]='a'; else LOUT[i]='.'; putchar(LOUT[i]); } putchar('\n'); }

  37. CADENAS DE CARACTERES FUNCIONES PARA MANIPULAR CADENAS

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

  39. GRACIAS POR SU ATENCIÓN

More Related