29
Introducción a la Programación con C Copyright © 2005 Código de Curso: CY320

Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Embed Size (px)

DESCRIPTION

awdawd

Citation preview

Page 1: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Introducción a la Programación con C

Copyright © 2005

Código de Curso: CY320

Page 2: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Volumen 3

Tipos de Datos Estructurados en C

Copyright © 2005

Page 3: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Programar con Arreglos

Copyright © 2005

Unidad 1

Page 4: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Objetivos del Aprendizaje

• Explicar el concepto de arreglos en la solución de problemas.

• Definir qué es un arreglo.

• Describir cómo acceder a un elemento de un arreglo.

• Explicar cómo usar los arreglos en algoritmos.

• Desarrollar algoritmos para problemas que requieren el uso de arreglos.

• Explicar cómo convertir algoritmos en programas C.

Page 5: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Introducción

• Los arreglos son estructuras en memoria que ayudan a almacenar múltiples elementos de datos que tienen una característica común.

• Los arreglos son un almacén de múltiples elementos de datos.

• Los elementos de datos individuales pueden ser de cualquier tipo: enteros, flotantes o caracteres.

• Los arreglos pueden ser de una o dos dimensiones.

Page 6: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Declarar un Arreglo en Lenguaje C

• Un arreglo unidimensional se puede declarar de la siguiente forma:

int a[5];

• Los arreglos se declaran como las variables de tipo int, float o char.

• Un especificador de tamaño define el número de elementos en el arreglo.

• Se recomienda definir nombres simbólicos para el tamaño de los arreglos.

• #define es una directiva del preprocesador.

Page 7: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Inicializar un Arreglo

Un arreglo se puede inicializar:

1. Mediante asignación.• Ejemplo:

/* Declaración */int k, num[100];

/* Inicialización */for(k=0;k<100;k++)

num[k] = 0;

Los 100 elementos en el arreglo se inicializan en 0.

2. AI momento de declarar el arreglo.• Ejemplo:

int num[5] = {12, 24, 2, 65, 7};

Page 8: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Algoritmo con Arreglos... Ejemplo 1 Escribir un segmento de programa que realice lo siguiente:

• Para un arreglo num declarado en el programa, se debe hacer que el primer elemento sea 1, el segundo elemento 2, y así sucesivamente.

• Por lo tanto cuando k es 0, num[0] se le asigna 1 y así sucesivamente.

Segmento del programa:

/* Declaración */

int k, num[100];

for(k=0;k<100;k++)

/* Asignación */

num[k] = ++k;

Page 9: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Algoritmo con Arreglos... Ejemplo 2

Imprimir los números pares de un arreglo.

• Algoritmo:

Paso 1: Declare el arreglo num[100].

Paso 2: Leer la entrada en el arreglo num.

Paso 3:

for(k = 0; k <100; k++)

if(num [k] % 2 != 0)

printf(“%d\n”, num[k]);

Page 10: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Algoritmo con Arreglos... Ejemplo 3

• Dado un arreglo de enteros num que contiene un número máximo de elementos n.

• El problema es escribir un programa que indica la presencia o la ausencia de una entrada var_num en un arreglo, buscándolo desde el comienzo hasta el final del arreglo.

• Si el elemento se encuentra, se muestra la posición en donde se encontró.

• Si no se encuentra se muestra un mensaje apropiado.

Page 11: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Cadenas de Caracteres en C• El arreglo char name[30]; se puede considerar

como un string.

• Se puede ser leer o escribir directamente como sigue :

scanf("%s", name);printf("%s",name);

• El compilador inserta el carácter null para indicar el fin de la cadena y se denota como '\0'.

Page 12: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

1 main(){2 char texto[1000];3 int i = 0, noTo = 0;4 printf("Ingresar un palabra:\n");5 scanf("%s", texto);6 while(texto[i] != '\0'){7 if(toupper(texto[i]) == 'T' &&

toupper(texto[i + 1]) == 'O'){8 noTo++;9 i = i + 2;10 }11 else 12 i++;13 }14 printf("El numero de \"to\" en el texto\

dado %s es %d\n", texto, noTo);15}

Cadenas de Caracteres en C ... Ejemplo 1

Page 13: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Resumen

• Se discutió el uso de arreglos en la solución de problemas.

• Se definió qué es un arreglo.

• Se explicó cómo acceder a un elemento de un arreglo.

• Se explicó cómo usar los arreglos en algoritmos.

• Se desarrollaron algoritmos para problemas que requieren el uso de arreglos.

• Se explicó cómo convertir algoritmos en programas C.

Page 14: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Unidad 2

Arreglos Multidimensionales

Page 15: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Objetivos del Aprendizaje

• Definir qué son arreglos multi-dimensionales.

• Describir la naturaleza y uso de los arreglos bidimensionales.

• Explicar la importancia de los arreglos bidimensionales en la solución de problemas.

• Explicar como declarar, inicializar y emplear arreglos bidimensionales en C.

• Describir el uso de los arreglos bidimensionales en los algoritmos.

• Discutir la implementación de algoritmos que usan arreglos bidimensionales en C.

Page 16: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Arreglos Multi-dimensionales• Los arreglos multi-dimensionales se usan cuando

varios arreglos unidimensionales, cada uno de ellos del mismo tipo, se usan para denotar una entidad lógica y de significado completo.

• La forma general de declarar un arreglo de dos dimensiones es:

data-type array[exp1][exp2];

• Ejemplo de declaración de arreglos bidimensionales: int a[100][100];

char text[25][80];

float numb[10][18];

Page 17: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Arreglos Bidimensionales

• Los arreglos unidimensionales estáticos se pueden inicializar como parte de la misma declaración.

• Los arreglos estáticos son aquellos arreglos que se declaran dentro de una función, incluyendo la función main.

• Los arreglos bidimensionales se pueden inicializar de muchas maneras.

• Se realiza mejor la inicialización de arreglos bidimensionales grandes dentro del programa y no en la etapa de declaración.

• Los arreglos bidimensionales requieren dos variables subíndices.

Page 18: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

• Programa para leer los valores de un arreglo de dos dimensiones:

/* Declaración del Arreglo */ int tabla[10][10], k, l;

/* Acceder al arreglo */ for(k=0; k<10;k++){ printf(“Ingrese los valores de la Fila %d\n”,k);

for(l=0;l<10;l++){ printf(“Ingresar el valor de la fila %d \ columna %d\n”,k,l);

/* Almacenar elemento en el arreglo */ scanf(“%d”,&tabla[k][l]);

} }

Problemas con Arreglos Bidimensionales

Page 19: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Problemas con Arreglos Bidimensionales...2

• Programa para imprimir los valores de un arreglo de dos dimensiones:

int tabla[10][10], k,j;for(k=0; k<10; k++){

for(j=0; j<10; j++)printf(“%d ”,tabla[k][j]);

printf(“\n”);}

Page 20: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Resumen

• Se definieron qué son arreglos multi-dimensionales.

• Se explicó la naturaleza y uso de los arreglos bidimensionales.

• Se discutió la importancia de los arreglos bidimensionales en la solución de problemas.

• Se discutió el uso de los arreglos bidimensionales en los algoritmos.

• Se explicó como declarar, inicializar y emplear arreglos bidimensionales en C.

• Se presentó la implementación de algoritmos que emplean arreglos bidimensionales en C.

Page 21: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Laboratorio de Arreglos

Copyright © 2005

Unidad 3

Page 22: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Estructuras

Copyright © 2005

Unidad 4

Page 23: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Objetivos del Aprendizaje

• Explicar cómo declarar estructuras en C.

• Discutir el uso de las estructuras en la solución de problemas a través de programas en C.

• Describir el uso de los tipos de datos definidos por el usuario.

• Definir uniones y explicar cómo sus usos difieren del de las estructuras.

Page 24: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Tipo de Dato struct • C provee un tipo de dato llamado struct.

• Las estructuras, como los arreglos, pueden manejar multiples elementos de datos usando un único identificador que los agrupa a todos juntos.

• Los elementos de una estructura se denominan miembros.

• El tipo de dato llamado struct en C se define como:

struct <nombre de la estructura>{miembro_1;miembro_2;…miembro_n;

};

Page 25: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

/* Versión 1 */

struct date{

int day;

int month;

int year;

}var_date;

Ejemplos de Definición de una Estructura:

Ejemplos de Definición de una Estructura:

/* Versión 2 */

struct date{

int day;

int month;

int year;

};

/* Versión 3 */

struct{

int day;

int month;

int year;

}var_date;

Page 26: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Tipos de Datos Definidos por el Usuario• C permite al usuario definir sus propios tipos de

datos.

• La sentencia typedef permite a los usuarios definir nuevos tipos de datos que son equivalentes a los tipos de datos existentes.

• Un nuevo tipo de dato puede ser definido como sigue:

typedef existing-type new-type;

• Ejemplo:

typedef int anio;

Page 27: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Uniones

• Las uniones son similares a las estructuras.

• Las uniones tienen miembros cuyos tipos de dato pueden ser diferentes.

• En una unión, los miembros comparten el mismo espacio en memoria.

• La razón principal para el uso de una unión es ahorrar espacio en memoria.

• La manera de crear variables y usarlas es de la misma forma que en struct.

Page 28: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Uniones

• Ejemplo de definición de union:

union{

int x;

float y;

char z;

}a, b, c;

Page 29: Intro to Programming Using C Master Visuals Vol 3 V3 (Espa+¦ol)

Copyright © 2005

Resumen

• Se explicó cómo declarar estructuras en C.

• Se discutió el uso de las estructuras en la solución de problemas a través de programas en C.

• Se explicó el uso de los tipos de datos definidos por el usuario.

• Se definió el concepto de uniones y se explicó cómo sus usos difieren del de las estructuras.