intro to programming using c master visuals vol 3 v3 (espa+¦ol)
DESCRIPTION
awdawdTRANSCRIPT
Introducción a la Programación con C
Copyright © 2005
Código de Curso: CY320
Volumen 3
Tipos de Datos Estructurados en C
Copyright © 2005
Programar con Arreglos
Copyright © 2005
Unidad 1
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.
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.
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.
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};
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;
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]);
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.
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'.
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
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.
Copyright © 2005
Unidad 2
Arreglos Multidimensionales
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.
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];
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.
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
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”);}
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.
Laboratorio de Arreglos
Copyright © 2005
Unidad 3
Estructuras
Copyright © 2005
Unidad 4
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.
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;
};
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;
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;
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.
Copyright © 2005
Uniones
• Ejemplo de definición de union:
union{
int x;
float y;
char z;
}a, b, c;
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.