TEMA 5: ESTRUCTURAS ESTÁTICAS

Tamaño: px
Comenzar la demostración a partir de la página:

Download "TEMA 5: ESTRUCTURAS ESTÁTICAS"

Transcripción

1 TEMA 5: ESTRUCTURAS ESTÁTICAS Estructuras estáticas: definición, características y tipos Cadenas de caracteres: declaración, operaciones y funciones para su manejo. Arrays: tipos (vectores y matrices), declaración y operaciones.números Aleatorios. Estructuras: creación y operaciones Uniones: creación y operaciones Punteros. Uso de punteros con arrays, estructuras y uniones Arrays de punteros Profesora: Mª Alejandra Tomás Fdez 1

2 1.- Estructuras estáticas: definición, características y tipos 1.1. RESUMEN DE LOS TIPOS DE VARIABLES SEGÚN EL TIPO DE DATOS QUE ALMACENAN Una variable es un elemento del lenguaje que REPRESENTA UNA ZONA DE MEMORIA donde se almacenarán datos. Las variables SÓLO PUEDEN almacenar valores del TIPO DE DATOS DEL QUE SE HAN DEFINIDO. Los tipos de datos en C los dividimos en: 1) Simples (char, int, long int, float,...) 2) Compuestos o estructuras de datos estáticas dinámicas matrices o arrays o tablas estructuras uniones Punteros: listas, pilas, colas, árboles,... vectores o matrices unidimensionales matrices multidimensionales cadenas de caracteres Profesora: Mª Alejandra Tomás Fdez 2

3 1.2. ESTRUCTURAS ESTÁTICAS: Definición, Características y Tipos DEFINICIÓN: Una estructura de datos COMPUESTA se contruye a partir de otros tipos de datos. ESTÁTICA: se refiere a que a estas variables se les asigna una zona de memoria en tiempo de compilación y NO SE PUEDE CAMBIAR DURANTE su ejecución. TIPOS: 1) Matrices Matrices unidimensionales o vectores Matrices multidimensionales Cadenas de caracteres 2) Estructuras 3) Uniones Profesora: Mª Alejandra Tomás Fdez 3

4 2.- Cadenas de caracteres: declaración, operaciones y funciones para su manejo 2.1. DECLARACIÓN Una cadena de caracteres es un tipo especial de ARRAY, por tanto, veremos primero la definición de array: Una tabla o matriz o array es un conjunto finito de variables simples del mismo tipo y agrupadas bajo un mismo nombre. Los componentes individuales de un array se llaman elementos y se distinguen entre ellos especificando el nombre del array seguido por uno o más índices, con cada índice encerrado entre corchetes. Cada índice debe ser expresado como un entero no negativo. El valor de cada índice puede ser expresado como una constante entera, una variable entera o una expresión entera más compleja. Los índices en C empiezan siempre en 0. no en 1. Ejemplo de un array unidimensional de n elementos: Posición determinada por el número que hay dentro del corchete X[0] x[1] x[2] x[3]... x[n] Contenido de la posición Los elementos de un array se almacenan en memoria en posiciones adyacentes. Se pueden procesar individualmente todas las veces que se desee, o bien todo el array completo. Antes de utilizar un array hay que declararlo al principio del programa para reservar una zona de memoria y se hace mediante el nombre, el número de índices y el tipo de datos que va a contener. Profesora: Mª Alejandra Tomás Fdez 4

5 Las cadenas son un tipo especial de arrays que se utiliza para almacenar varios caracteres seguidos(por ejemplo: el nombre de una persona, la dirección de una persona, una frase, una contraseña, ). Por tanto, una cadena se puede definir como una estructura de datos formada por una cantidad fija y conocida de caracteres. A cada carácter de la cadena se le hace referencia indicado la posición que éste ocupa dentro de la cadena. TODAS LAS CADENAS TERMINAN EN UN CARÁCTER ESPECIAL LLAMADO NULO \0. Aunque C no tiene un tipo de dato tipo cadena, permite utilizar constantes de cadena. Una constante de cadena es una lista de caracteres delimitados por comillas dobles. No es necesario añadir de forma manual el carácter nulo al final de las constantes de cadena, el compilador C lo hace de forma automática OPERACIONES DECLARACIÓN: Se debe indicar el tamaño o longitud de la cadena (cuántos caracteres va a tener). Tener en cuenta que el carácter \0 ocupa una posición más. Es decir, si queremos una cadena para guardar 4 caracteres, declararemos una cadena de 5 caracteres. char nombrecadena [numerocaracteres]; Ejemplo: Para almacenar la palabra Hola declararé: char palabra[5]; Profesora: Mª Alejandra Tomás Fdez 5

6 INICIALIZACIÓN: Consiste en darle valor a la cadena. Se puede hacer con una sola orden o bien carácter a carácter (letra a letra). Se puede hacer de varias formas: A) Al declarar la cadena: FORMATO 1: char nombrecadena [ ] = valor de la cadena ; El carácter nulo es añadido al final automáticamente. Por ejemplo: char nombre[ ]= Maria ; FORMATO 2: char nombrecadena [ tamaño] = { car1, car2,... carn, \0 }; Tenemos que añadir nosotros el carácter nulo al final. Por ejemplo: char nombre[ ]= { M, a, r, i, a, \0 }; El carácter nulo \0 no debe ocupar obligatoriamente el último elemento o componente del array, sino el último elemento o componente después del último valor añadido a la cadena de caracteres. En el ejemplo anterior tendríamos: M a r i a \0 Profesora: Mª Alejandra Tomás Fdez 6

7 Siempre es conveniente inicializar una cadena antes de utilizarla y limpiarla antes de volver a utilizarla. Para realizar dicha operación podemos hacerlo de la manera siguiente: Es decir poniendo el carácter nulo en el primer elemento de la cadena de caracteres. nombre-cadena [0]= \0 ; B) En cualquier parte del programa: FORMATO 1: Consiste en introducir los datos en la cadena con una sola orden, mediante el uso de una de la funciones estándar de entrada vistas (gets, scanf). Por ejemplo: char nombre[9]; printf ( dime tu nombre: ); gets(nombre); FORMATO 2: Consiste en introducir los datos en la cadena de uno en uno, es decir, carácter a carácter. Para eso necesitamos un bucle FOR que recorra todas las casillas de la cadena desde la 0 a la última. Tenemos que añadir nosotros el carácter nulo al final. Sería: for (i=0;i<tamaño;i++) nombrecadena [i]= carácter ; nombrecadena[i]= \0 ; Profesora: Mª Alejandra Tomás Fdez 7

8 Por ejemplo: char nombre[9], letra; printf ( dime tu nombre letra a letra: ); for (i=0;i<9;i++) { letra=getchar( ); nombre[i]=letra; } nombre[i]= \0 ; ASIGNACIÓN: Esta operación consiste en asignar de manera individual a cada elemento de la cadena un carácter delimitado por comillas simples y una vez que asignemos todos aquellos caracteres que queremos que formen parte de la cadena, asignamos el carácter nulo \0 para determinar el fin de la cadena. Por ejemplo: vocal[0] = a ; vocal[1] = e ; vocal[2] = i ; vocal[3] = o ; vocal[4] = u ; vocal[5] = \0 ; char vocales[6]; Profesora: Mª Alejandra Tomás Fdez 8

9 2.3. FUNCIONES PARA EL MANEJO DE CADENAS Las funciones para el manejo de cadenas están en el fichero cabecera: string.h. Por tanto, para usarlas, se debe añadir en nuestro programa: #include <string.h> FUNCIONES DE ENTRADA/SALIDA PARA CADENAS: Para LEER UNA CADENA: scanf y gets (ya vistas en tema anterior). Su formato es: scanf ( %s, nombre-cadena); También podemos introducir una cadena de caracteres, carácter a carácter mediante un bucle con los siguientes formatos: scanf( %c, &nombre-cadena[indice]); nombre-cadena[indice]= getchar(); En cuyo caso al final debemos ser nosotros quien pongamos el carácter nulo \0 en la ultima posición para poder utilizar ese array como cadena. Ejemplo #include <stdio.h> /*Programa ejemplo sobre el uso de scanf mediante un bucle. Admite espacios en blanco. Tendremos que añadir \0 en la ultima posicion */ void main(void) { int i; char cadena[11]; Profesora: Mª Alejandra Tomás Fdez 9

10 printf("\nintroduce una cadena de caracteres "); for (i=0; i<10; i++) scanf("%c", &cadena[i]); cadena[10]= '\0'; printf("\nla cadena introducida es %s", cadena); } Ejemplo #include <stdio.h> /*Programa ejemplo sobre el uso de getchar() mediante un bucle. Admite espacios en blanco. Tendremos que añadir \0 en la ultima posicion */ void main(void) { int i=0; char cadena[11]; printf("\nintroduce una cadena de caracteres "); while (((cadena[i]= getchar())!= '\n') && (i<=10)) i++; cadena[i]= '\0'; printf("\nla cadena introducida es %s", cadena); } El formato de gets es: gets(nombre-cadena); Ejemplo #include <stdio.h> //Programa ejemplo sobre el uso de gets(). void main(void) { char cadena[10]; printf("\nintroduce una cadena de caracteres "); gets(cadena); printf("\nla cadena introducida es: %s", cadena); } Profesora: Mª Alejandra Tomás Fdez 10

11 Para ESCRIBIR anterior). UNA CADENA: printf y puts (ya vistas en tema Printf: Su formato es: printf ( %s, nombre-cadena); Puts: Su formato es el siguiente: puts(nombre-cadena); El carácter nulo que marca el final de la cadena de caracteres es convertido al carácter de nueva línea. Ejemplo #include <stdio.h> //Programa ejemplo sobre el uso de puts(). void main(void) { char cadena[10]; printf("\nintroduce una cadena de caracteres "); gets(cadena); puts(cadena); } FUNCIONES ESPECIALES PARA CADENAS: strlen(): devuelve la longitud de una cadena. Su formato es: longitud=strlen( cadena); Devuelve la longitud de la cadena. strcpy() : copia una cadena en otra. Su formato es: strcpy( cadena1,cadena2); Copia la cadena2 en cadena1. Profesora: Mª Alejandra Tomás Fdez 11

12 strcat (): concatena cadenas. Su formato es: strcat( cadena1, cadena2); Concatena cadena2 al final de cadena1. strcmp(): compara dos cadenas. Su formato es: strcmp(cadena1,cadena2); Devuelve: 0 si cadena1 y cadena2 son iguales. Un número negativo si cadena 1 menor que cadena2. Y un número positivo si cadena1 mayor que cadena2. Mayor o menor no se refiere al número de letras, sino al orden de sus letras en el alfabeto. Por ejemplo: barra es > que babas porque la r es posterior a la b de babas. 3.- Arrays: Tipos (vectores y matrices), declaración y operaciones. Números Aleatorios DEFINICIÓN DE ARRAYS, TIPOS Y OPERACIONES DEFINICIÓN: - Un array es una estructura de datos formada por una cantidad fija y conocida de datos de un mismo tipo. - El array se identifica por un nombre único. - A cada elemento del array se le hace referencia indicando la posición que este ocupa dentro del array mediante un número llamado ÍNDICE. - Cada índice debe ser expresado como un entero no negativo. El valor de cada índice puede ser expresado como una constante entera, una variable entera o una expresión entera más compleja. Profesora: Mª Alejandra Tomás Fdez 12

13 Ejemplo de un array unidimensional de n elementos: Posición determinada por el número que hay dentro del corchete X[0] x[1] x[2] x[3]... x[n] Contenido de la posición - Los elementos de un array se almacenan en memoria en posiciones adyacentes. Se pueden procesar individualmente todas las veces que se desee, o bien todo el array completo. - Antes de utilizar un array hay que declararlo TIPOS: - Según el número de índices necesarios para dimensionar un array se pueden clasifican en: Unidimensionales (son los VECTORES y CADENAS) Son matrices o arrays de una sola dimension (una fila o una columna) Bidimensionales (son las MATRICES o ARRAYS) Son arrays de dos dimensiones: tienen filas y columnas (la típica tabla del 3 en raya o de jugar a los barcos) Multidimensionales (son los ARRAYS) Son matrices o arrays de más de 2 dimensiones: filas, columnas y fondo, Profesora: Mª Alejandra Tomás Fdez 13

14 OPERACIONES: - Declaración y definición - Inicialización - Recorrido - Insertar y Borrar elementos en un array - Búsqueda de un elemento en un array - Ordenación del array VECTORES: Declaración y operaciones DEFINICIÓN: - Es una secuencia de objetos del mismo tipo. Internamente es un conjunto de posiciones contiguas de memoria. - Su tamaño es fijo y debe conocerse a priori - Para acceder a cada objeto se usa un INDICE que indica lo posición que ocupa ese objeto en el vector: el 4º, el 1º,... - Las posiciones en C SIEMPRE SE NUMERAN EMPEZANDO POR LA 0,1,2,3,... - EJEMPLOS DE VECTORES: o Para guardar la edad de los 30 alumnos de una clase o Para guardar las temperaturas de cada día de un mes. Profesora: Mª Alejandra Tomás Fdez 14

15 Ejemplo de un array unidimensional de n elementos: Posición determinada por el número que hay dentro del corchete X[0] x[1] x[2] x[3]... x[n] Contenido de la posición OPERACIONES: 1) DECLARACIÓN: Se debe indicar el tamaño o longitud del vector (número de celdas o casillas). tipo_dato nombre_vector [numelementos]; donde: Tipo_dato: es el tipo de dato del vector común a todos los elementos, puede ser cualquiera, int, float, char,... Nombre_vector: es el nombre que damos al vector, tiene que ser un identificador válido. Numelementos: es el número de elementos del array. Ejemplo: para almacenar la edad de 30 alumnos: int edades [30]; A veces es conveniente definir el tamaño de un array en términos de una constante simbólica en vez de una cantidad entera fija. Esto hace más fácil Profesora: Mª Alejandra Tomás Fdez 15

16 modificar un programa que utiliza un array, ya que todas las referencias al tamaño máximo del array puede ser alterado cambiando simplemente el valor de la constante simbólica. Ejemplo: #include <stdio.h> #define TAM 80 void main(void) { int notas[tam];.. } Al declarar una variable tipo ARRAY, estamos indicando al compilador que reserve una cantidad de espacio en memoria, esta cantidad dependerá del tipo de dato del ARRAY y del tamaño del mismo. Para un VECTOR el tamaño total en bytes que ocupa en memoria, se calcula: Total de bytes = sizeof(tipo)*longitud del vector El lenguaje C no comprueba los límites de los ARRAYS, con lo cual si no tenemos cuidado al programar, podemos pasarnos de los extremos del array y escribir o manipular otra variable de datos o incluso código del programa. En todos los arrays el índice del primer elemento es el 0. Por tanto cuando se escribe por ejemplo int nume[10]; se está declarando un array de números enteros que contiene 10 elementos desde el nume[0] hasta nume[9]. 2) INICIALIZACIÓN: Profesora: Mª Alejandra Tomás Fdez 16

17 Consiste en dar valores a cada elemento del array. Si el array tiene 100 elementos se da valores a los 100 elementos Básicamente hay 3 formas de inicializar: A) Al declarar el array: Su formato es: tipo_dato nombre_vector[tamaño] = {valor-1, valor-2,... valor-n} donde: valor-1: valor-2:... valor-n: se refiere al valor del 1er elemento. al valor del 2º elemento. al valor del último elemento. Ejemplo: int digitos[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; float notas[5]= {2.3, 8.5, 5, 7, 9.5}; float x[6]= {0, 0.5, 4.3, 0, 0, 8.5} ; El resultado de la asignación será: Digitos[0]= 1 notas[0]= 2.3 x[0]= 0 Digitos[1]= 2 notas[1]= 8.5 x[1]= 0.5 Digitos[2]= 3 notas[2]= 5 x[2]= 4.3 Digitos[3]= 4 notas[3]= 7 x[3]= 0 Digitos[4]= 5 notas[4]= 9.5 x[4]= 0 Profesora: Mª Alejandra Tomás Fdez 17

18 Digitos[5]= 6 x[5]= 8.5 Digitos[6]= 7 Digitos[7]= 8 Digitos[8]= 9 Digitos[9]= 10 Todos los elementos de un array que no tienen asignados valores iniciales explícitos tendrán valores basura (suelen ser números negativos muy grandes. El tamaño de un vector no es necesario especificarlo cuando se incluyen valores iniciales como una parte de la definición del vector. Por ejemplo: int digito[ ] = {1, 2, 3, 4, 5, 6}; float x[ ]= {0, 0.25, 0, 0.50}; El resultado de estas asignaciones será: Digito[0]= 1 x[0]= 0 Digito[1]= 2 x[1]= 0.25 Digito[2]= 3 x[2]= 0 Digito[3]= 4 x[3]= 0.50 Digito[4]= 5 Digito[5]= 6 B) En cualquier parte del programa: Por ejemplo si queremos inicializar un vector a 0: #define TAM 4 Profesora: Mª Alejandra Tomás Fdez 18

19 int i, precios[ 4 ]; for (i=0; i <TAM; i++) precios[ i ] = 0; C) Para dar valor sólo a algún elemento del vector: El lenguaje C no permite manipular vectores completos, ni arrays completos, sino que hay que hacerlo elemento a elemento. Para hacer referencia al elemento que se quiere manipular hay que seguir el formato siguiente: nombre-array [posición] donde posición es el lugar que ocupa en el array el elemento que se quiere manipular. #define TAM 4 int precios[ 4 ]; precios[ 0 ] = 10; precios[ 3 ] = -5; 3) RECORRIDO: Consiste en recorrer cada casilla del vector de la primera a la última o viceversa. La forma de hacerlo es con un bucle de la forma: int vector[tam], i; for (i=0; i<tam;i++) Profesora: Mª Alejandra Tomás Fdez 19

20 tratar (vector[i]); EJEMPLO: Dado un vector de 100 enteros, contar los números positivos: #include <stdio.h> #define TAM 100 void inicializar (int [ ], int); void main(void) { int i, cont, vect[tam]; cont=0; inicializar (vect, TAM); for (i=0; i<tam; i++) if (vect[ i ] >0) cont++; } printf( El número de positivos es %d\n,cont); void inicializar (int v[ ], int max) { int i; for (i=0; i<max; i++) scanf( %d, &v[ i ]); } 4) INSERCIÓN DE UN ELEMENTO EN UN VECTOR: Consiste en añadir un nuevo elemento al vector Siempre antes de insertar debemos mirar que quede sitio en el vector. Profesora: Mª Alejandra Tomás Fdez 20

21 Se puede hacer una inserción de varias formas: a) Insertar en la primera posición libre que haya: i=0; seguir=1; MIENTRAS (i<tam) y (seguir) HACER: SI (vector[ i] ==ocupado) i++; SINO seguir=0; SI (! seguir) vector[ i] = elemento; SINO escribir que no hay sitio para añadir elementos; b) Insertar en un vector ordenado de N elementos ocupados, en la posición que le toque: if (haysitio(vector,tam)) { posicion = buscarpos(vector,tam, elemento); moverelementos(posicion,n, vector); vector[posicion]=elemento; } else escribir que no hay sitio en el vector c) Insertar un elemento ELEM en la posicion POS del vector VECTOR de tamaño TAM y que tiene N elementos ocupados: if (haysitio(vector,tam)) { LEER posicion y elemento; moverelementos(posicion,n, vector); vector[posicion]=elemento; Profesora: Mª Alejandra Tomás Fdez 21

22 } else escribir que no hay sitio en el vector 5) BORRADO DE UN ELEMENTO EN UN VECTOR: Consiste en eliminar un elemento del vector. El elemento se debe buscar y puede ser que no exista. Se haría: LEER elemento a borrar; posicion = buscarpos(vector,tam, elemento); if (posición!= no_existe) { vector[posición]=valor_vector_vacio; moverelementos(posicion,tam, vector); } else escribir que ese elemento no existe en el vector NÚMEROS ALEATORIOS Profesora: Mª Alejandra Tomás Fdez 22

23 Obtención de números aleatorios en C A veces queremos que nuestro programa obtenga números de forma aleatoria, por ejemplo, para simular una tirada de dados o el reparto de cartas en un juego. En C de linux tenemos varias funciones que nos permiten obtener estos valores aleatorios. En esta explicación vamos a ver un uso básico de estas funciones. Algunas de las cosas que contamos aquí no son útiles para aplicaciones más serias, en las que se requiere que la secuencia de números aleatorios sea muy aleatoria, impredecible, que no se repita hasta pasado muchos números, etc, etc. Sin embargo, las explicaciones aquí presentadas servirán para la mayoría de nuestros programas. LA FUNCIÓN rand() En C, para obtener números aleatorios, tenemos la función rand(). Esta función, cada vez que la llamamos, nos devuelve un número entero aleatorio entre 0 y el RAND_MAX (un número enorme, como de 2 mil millones). El primer problema que se nos presenta es que no solemos querer un número aleatorio en ese rango, sería un dado muy curioso el que tenga tantas caras. Podemos querer, por ejemplo, un número aleatorio entre 0 y 10. O de forma más general, entre 0 y N. La cuenta que debemos echar para eso es esta #include <stdlib.h>... numero = rand() % 11; numero = rand() % (N+1); La operación módulo (%) nos da el resto de dividir rand() entre 11. Este resto puede ir de 0 a 10. De la misma forma, el módulo de rand() entre N+1 va de 0 a N. Y si queremos un rango que no empiece en 0?. Por ejemplo, queremos un rango entre 20 y 30 (de forma más general, entre M y N con N mayor que M). Pues es fácil, obtenemos un número entre 0 y 10 y le sumamos 20 (un número entre 0 y N-M y le sumamos M) numero = rand () % ; // Este está entreo 20 y 30 numero = rand () % (N-M+1) + M; // Este está entre M y N LA FUNCIÓN srand() Se nos presenta un nuevo problema. Si ejecutamos varias veces nuestro programa, la secuencia de números aleatorios se repite. Imaginemos que tenemos un programa que escribe 3 número aleatorios entre 0 y 10. Lo ejecutamos una vez y sale, por ejemplo 4, 7 y 9. Lo ejecutamos por segunda vez y vuelve a salir 4, 7 y 9. La tercera vez sale lo mismo y cuando ya nos hemos hartado de ejecutar, vuelve a salir lo mismo. Profesora: Mª Alejandra Tomás Fdez 23

24 El problema es que rand() "calcula" los números aleatorios. Parte de un número inicial (llamado semilla), echa unas cuentas y saca un número aleatorio. Para el segundo número, echa unas cuentas con el resultado anterior y saca un segundo número y así sucesivamente. Si volvemos a ejecutar el programa desde el principio, el número inicial (la semilla) que usa rand() es el mismo, con lo que la secuencia de números aleatorios es la misma, ya que las cuentas son las mismas. Para evitar este problema tenemos la función srand(), a la que se le pasa de parámetro un número que se utilizará como número inicial para las cuentas. A esta función sólo debemos llamarla una vez en nuestro programa. Qué número le ponemos a este srand()?. No podemos ponerle un número fijo, porque entonces no hemos hecho nada. No podemos ponerle un número obtenido con rand(), porque la primera vez siempre nos dará el mismo y el resultado será igual que si le ponemos un número fijo. Debemos buscar la forma de obtener un número que sea distinto en la ejecución de cada programa. Hay dos números que se utilizan habitualmente para ello: La fecha/hora del sistema. Este valor cambia si ejecutamos el programa en distinto instante de tiempo. Tendriamos que arrancar el programa dos veces en el mismo segundo para obtener la misma secuencia de números aleatorios. En C de linux esta fecha/hora se obtiene con la función time() srand (time(null)); El número de proceso del programa. El primer programa que se arranca cuando se enciende el ordenador con el sistema operativo linux, tiene el número de proceso 1, el segundo el 2, el tercero el 3 y así sucesivamente. Cuando arrancamos nuestro programa, se le asignará el número que le toque, por ejemplo, el 215. Cuando lo volvamos a arrancar, se le asignará el que le toque (puede ser 216 si no hemos ejecutado nada entre medias o 345, si nos hemos entretenido con otras cosas). Después de ejecutar nuestro programa varios miles de veces, el número de proceso puede que se repita, pero ya no nos acordaremos de la secuencia que se sacó la primera vez. El número de proceso se obtiene con getpid() srand (getpid()); A esta función sólo hay que llamarla una vez al principio de nuestro programa. Cada vez que la llamemos, estaremos reiniciando los calculos de números aleatoriosd desde el principio, con lo que se repetirá todo. LAS FUNCIONES drand48() y srand48() Y si queremos un número aleatorio con decimales?. Tenemos la función drand48() que nos devuelve un número aleatorio con decimales entre 0.0 (incluido, puede salir el 0,0) y 1.0 (excluido, nunca saldrá 1.0). A partir de ahí es fácil transformarlo al rango Profesora: Mª Alejandra Tomás Fdez 24

25 que queramos. Si queremos un rango entre 10.0 y 20.0 (o entre M y N siendo N mayor que M y ambos con decimales, aunque sean.0) #include <stdlib.h>... numero = drand48() * ( ) ; numero = drand48() * (N-M) + N; De la misma forma que antes, la secuencia de números aleatorios se repetirá cada vez que ejecutemos nuestro programa y de igual manera, tenemos manera de cambiar la "semilla" de esa secuencia. Hay que llamar a la función srand48() pasándole un entero que sea disntinto en cada ejecución del programa. Nuevamente, tenemos las dos opciones anteriores. Profesora: Mª Alejandra Tomás Fdez 25

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Vectores y cadenas en lenguaje C Vectores y cadenas en lenguaje C Vectores Declaración de vectores Vectores unidimensionales Vectores multidimensionales

Más detalles

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES

UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES UNIDAD IV ESTRUCTURA DE DATOS ESTÁTICAS MATRICES 1. Arreglos Unidimensionales (Vectores) Con fines académicos, un arreglo unidimensional puede compararse con una columna de una hoja electrónica, por ejemplo,

Más detalles

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes

Objetivos. Conocer y saber utilizar diferentes tipos de datos. estructurados: cómo se definen. cómo están organizadas sus componentes Objetivos Conocer y saber utilizar diferentes tipos de datos estructurados: cómo se definen cómo están organizadas sus componentes cómo se accede a ellas y sus operaciones y algoritmos básicos Tema: Estructuras

Más detalles

TEMA 7. ARRAYS (LISTAS Y TABLAS).

TEMA 7. ARRAYS (LISTAS Y TABLAS). TEMA 7. ARRAYS (LISTAS Y TABLAS). En capítulos anteriores se han descrito las características de los tipos de datos básicos o simples (carácter, entero y coma flotante). Asimismo, se ha aprendido a definir

Más detalles

Estructura de Datos ARREGLOS

Estructura de Datos ARREGLOS Estructura de Datos ARREGLOS ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden ser caracterizados por su organización y las operaciones que se definen

Más detalles

Programación 1 Grado de Ingeniería Robótica

Programación 1 Grado de Ingeniería Robótica Programación 1 Grado de Ingeniería Robótica Tema 6: Datos estructurados Índice (sesión 11/11/2015): Arrays estáticos Cadenas de caracteres Funciones de la librería string.h Punteros Declaración de punteros

Más detalles

Algoritmos y Programación I

Algoritmos y Programación I Algoritmos y Programación I ARREGLOS Y ESTRUCTURAS EN C Arreglos Un arreglo o vector es un conjunto de datos del mismo tipo, almacenados de forma contigua (es decir uno al lado del otro) en memoria principal.

Más detalles

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( "\nla temperatura media es %f\n", media );

media = ( temp0 + temp1 + temp2 + temp3 + temp temp23 ) / 24; printf( \nla temperatura media es %f\n, media ); Arrays en el lenguaje C Introducción Una posible definición de array sería: Un conjunto de datos del mismo tipo, identificados por el mismo nombre, y que se pueden distinguir mediante un número de índice.

Más detalles

Fundamentos de Informática

Fundamentos de Informática Fundamentos de Informática 8. : grandes volúmenes de datos Fundamentos de Informática Grado en Ingeniería Química 2 Contenidos Arrays Arrays e iteraciones Cadenas de caracteres 1 3 Arrays 4 Arrays (definición)

Más detalles

Práctica Guiada: Vectores y Matrices

Práctica Guiada: Vectores y Matrices Práctica Guiada: Vectores y Matrices 1. Objetivos Al finalizar esta actividad, serás capaz de: 1. Escribir la declaración de vectores y matrices de tipos básicos. 2. Escribir el código necesario para recorrer

Más detalles

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa:

Índice. Estructuras de datos en Memoria Principal: Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa: Índice Estructuras de datos en Memoria Principal: Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa: Ficheros Tema: Estructuras de Datos 2 Cadenas de caracteres

Más detalles

Tema 10: Arreglos estáticos en C

Tema 10: Arreglos estáticos en C Tema 10: Arreglos estáticos en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido

Más detalles

Tipo de Dato: Arreglos

Tipo de Dato: Arreglos Tipo de Dato: Arreglos Unidimensionales Prof. Judith Barrios Albornoz Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes Semestre A_2013 Este

Más detalles

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn

Estructuras de datos: vectores en C. Clase 7 y 8 Introducción a la Computación Patricia Borensztejn Estructuras de datos: vectores en C Clase 7 y 8 Introducción a la Computación Patricia Borensztejn Estructuras de Datos Son agrupaciones de datos si el tamaño de la estructura es conocido en tiempo de

Más detalles

Programación I Teoría III.

Programación I Teoría III. Programación I Teoría III http://proguno.unsl.edu.ar proguno@unsl.edu.ar DATOS ESTRUCTURADOS Estructuras de Datos Hasta ahora hemos trabajado con Datos simples enteros reales Caracteres punteros Sin embargo,

Más detalles

Tema 14: Arreglos estáticos en C

Tema 14: Arreglos estáticos en C Tema 14: Arreglos estáticos en C Solicitado: Ejercicios 05: Ejercicios con arreglos estáticos unidimensionales M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom

Más detalles

LENGUAJE. Tema 4 Vectores, Matrices y Cadenas de caracteres.

LENGUAJE. Tema 4 Vectores, Matrices y Cadenas de caracteres. LENGUAJE Tema 4 Vectores, Matrices y Cadenas de caracteres. VECTORES UNIDIMENSIONALES Los vectores (array o arreglo) unidimensionales son secuencias de valores del mismo tipo que se almacenan en localidades

Más detalles

TIPOS DE DATOS ESTRUCTURADOS

TIPOS DE DATOS ESTRUCTURADOS TIPOS DE DATOS ESTRUCTURADOS Arreglos unidimensionales, bidimensionales y cadenas de caracteres ESTRUCTURAS DE INFORMACIÓN Una estructura de datos o de información es una colección de datos que pueden

Más detalles

Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs

Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs Bloque 5 Tipos de datos compuestos estáticos: arrays, strings y structs Hasta ahora... Tipos de datos simples: Caracteres: char Números: int, float, double (y modificadores) Problema: calcular la temperatura

Más detalles

En un arreglo x de n elementos los elementos del arreglo son: El número de índices determina la dimensionalidad del arreglo.

En un arreglo x de n elementos los elementos del arreglo son: El número de índices determina la dimensionalidad del arreglo. 1 Arreglos (Arrays). Muchas aplicaciones requieren el procesado de múltiples datos que tienen características comunes. En tales situaciones es a menudo conveniente colocar los datos en un arreglo ó array,

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 2 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº 2 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Reserva

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio PROGRAMA EDUCATIVO PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE TRONCO COMÚN 2009-2 11214 PROGRAMACIÓN PRÁCTICA No. LABORATORIO DE CIENCIAS BÁSICAS (PROGRAMACIÓN) DURACIÓN

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados Departamento de Informática Universidad Técnica Federico Santa María Tipos de Datos Estructurados Programación de Computadores IWI-131-p1 Prof.: Teddy Alfaro Olave Arreglos (array) El arreglo es un tipo

Más detalles

SEGUNDA PARTE: TIPOS COMPLEJOS

SEGUNDA PARTE: TIPOS COMPLEJOS SEGUNDA PARTE: TIPOS COMPLEJOS Introducción En la primera parte del tema se vieron los tipos simples de datos que es capaz de almacenar el ordenador: booleanos, caracteres, enteros y reales. Sin embargo,

Más detalles

ALGORITMOS Y PROGRAMACIÓN I Unidad 3

ALGORITMOS Y PROGRAMACIÓN I Unidad 3 ALGORITMOS Y PROGRAMACIÓN I Unidad 3 Tipos de Datos Estructurados Prof. Jaime Soto Sección (007) Material original de Prof. AURELY LEAL Introducción a las Estructuras de Datos Una estructura de datos es

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Prácticas de C++ Practica Nº 5 Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Practica Nº5 Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción... 1 1.1 Ejercicio 1: Trabajando

Más detalles

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS

CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS CAPÍTULO 3 ESTRUCTURAS DE DATOS ESTÁTICAS Capítulo 3 Estructuras de datos estáticas 1/37 1. INTRODUCCIÓN Las estructuras de datos se utilizan, generalmente, para procesar una colección de valores que están

Más detalles

Arreglos Estructura (struct)

Arreglos Estructura (struct) Universidad Rafael Urdaneta Escuela de Ingeniería de Computación Arreglos Estructura (struct) MSc Jaime Soto Una estructura de datos es una colección de datos que pueden ser caracterizados por su organización

Más detalles

Tema 8 Vectores y Matrices

Tema 8 Vectores y Matrices Tema 8 Vectores y Matrices Contenidos 1. Vectores. 1.1. Declaración. 1.2. Inicialización. 1.3. Acceso a elementos. 1.4. Operaciones. 2. Cadenas de caracteres (vectores de caracteres). 2.1. Declaración,

Más detalles

Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs. Parte II: Strings y structs

Bloque 5. Tipos de datos compuestos estáticos: arrays, strings y structs. Parte II: Strings y structs Bloque 5 Tipos de datos compuestos estáticos: arrays, strings y structs Parte II: Strings y structs Strings (cadenas de caracteres) Muy parecido a un array de caracteres La diferencia principal es que

Más detalles

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.

Informática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el

Más detalles

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C

INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C Programación en Entornos Multitarea Curso 2006/2007 Introducción C: lenguaje de medio nivel 32 palabras clave Eficiencia de ejecución del código generado Portabilidad

Más detalles

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C.

En este artículo vamos a conocer los tipos de datos que podemos manejar programando en C. El primer objetivo de un programa informático es el manejo de datos. Un dato es toda aquella información que se puede tratar en un programa informático. En este artículo vamos a conocer los tipos de datos

Más detalles

Principal material bibliográfico utilizado

Principal material bibliográfico utilizado Vectores y Punteros Principal material bibliográfico utilizado www.jorgesanchez.net Fundamentos de Programación C/C++ - Ernesto Peñaloza Romero. Lenguaje C Adolfo Beltramo, Nélida Matas. En C el primer

Más detalles

Operaciones de E/S en ANSI C

Operaciones de E/S en ANSI C Operaciones de E/S en ANSI C Las operaciones de entrada/salida estándar (realizadas habitualmente con printf y scanf) se realizan en realidad sobre ficheros que representan los dispositivos mediante los

Más detalles

Informática I para Bachillerato

Informática I para Bachillerato CIMAT C/C++ Arreglos CIMAT Sesión 12 Un arreglo en C/C++ Un arreglo es una colección ordenada de variables del mismo tipo. Las variables que pertenecen a un arreglo se conocen por el nombre de elementos.

Más detalles

Cadenas y Caracteres. Universidad Católica de Honduras Nuestra Señora Reina de la Paz. Asignatura. Programación Científica. Tema de Exposición

Cadenas y Caracteres. Universidad Católica de Honduras Nuestra Señora Reina de la Paz. Asignatura. Programación Científica. Tema de Exposición Universidad Católica de Honduras Nuestra Señora Reina de la Paz Asignatura Programación Científica Tema de Exposición Caracteres y Cadenas Catedrático: Ing. Henry Pinto Tegucigalpa, M. D. C. del 2008 01

Más detalles

PUNTEROS (Apuntadores)

PUNTEROS (Apuntadores) PUNTEROS (Apuntadores) Unidad III INTRODUCCIÓN A PUNTEROS. CONCEPTOS BÁSICOS. DECLARACIÓN DE PUNTEROS. PUNTEROS Como una colección de posiciones de memoria consecutivas. En ella se almacenan los distintos

Más detalles

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas Unidad IV Arreglos y estructuras M.C. Juan Carlos Olivares Rojas 4.1 Concepto de arreglo Agenda 4.2 Manejo de cadenas 4.3 Concepto de estructuras 4.4 Concepto de unión 4.5 Empleo de apuntadores 4.1 Concepto

Más detalles

Laboratorio de Técnicas Informáticas FACULTAD DE FÍSICAS

Laboratorio de Técnicas Informáticas FACULTAD DE FÍSICAS Objetivos de la práctica: - Declaración y utilización del tipo de dato estructurado array. - Aprender a utilizar el tipo string y las funciones definidas sobre él. - Declarar y utilizar el tipo de dato

Más detalles

Arrays, Matrices y Cadenas

Arrays, Matrices y Cadenas Funciones Departamento de Electrónica Fundación San Valero Un array es un conjunto de variables del mismo tipo que tienen el mismo nombre y se diferencian en el índice. /* Declaramos 24 variables, una

Más detalles

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C"

Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C. Presentación resumen del libro: EMPEZAR DE CERO A PROGRAMAR EN lenguaje C Presentación resumen del libro: "EMPEZAR DE CERO A PROGRAMAR EN lenguaje C" Autor: Carlos Javier Pes Rivas (correo@carlospes.com) Capítulo 11 INTRODUCCIÓN A LA CODIFICACIÓN EN C 1 OBJETIVOS Aprender a

Más detalles

Punteros. Programación en C 1

Punteros. Programación en C 1 Punteros Programación en C 1 Índice Variables y direcciones de memoria. Punteros definición, declaración e inicialización. Punteros declaración, asignación y dereferencia. Puntero nulo, tipo void. Aritmética

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Tema 18: Memoria dinámica y su uso en C

Tema 18: Memoria dinámica y su uso en C Tema 18: Memoria dinámica y su uso en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1

Más detalles

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS

Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Aprendiendo a programar Microcontroladores PIC en Lenguaje C con CCS Por Andrés Raúl Bruno Saravia Entrega Nº 6 Cuáles son las estructuras básicas de C? Estas estructuras son las que le dan inteligencia

Más detalles

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/

ESTRUCTURAS. Struct Identificador_ tipo_estructura { Tipo miembro_1; /*Declaración de los miembros*/ DECLARACION DE ESTRUCTURAS ESTRUCTURAS La estructura es una colección de variables, la cual puede poseer distintos tipos de datos (a diferencia de los arreglos que solamente pueden tener un solo tipo de

Más detalles

Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I

Programación de Videojuegos Tema 15 Tipos de Dato I. 15. Tipos de Dato I 15. Por ahora ya sabemos lo suficiente sobre el muestreo de textos por pantalla, aunque por supuesto a falta de practicar un poco. Vamos a cambiar un poco de temática y vamos a ver otros aspectos avanzados

Más detalles

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.

TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C

Más detalles

Informática Ingeniería en Electrónica y Automática Industrial

Informática Ingeniería en Electrónica y Automática Industrial Informática Ingeniería en Electrónica y Automática Industrial Entrada y salida estándar V1.3 Autores Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato:

Más detalles

Formatos para prácticas de laboratorio

Formatos para prácticas de laboratorio CARRERA TRONCO COMÚN PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA 2003-1 5320 PROGRAMACIÓN PRÁCTICA No. PRAC-09 LABORATORIO DE NOMBRE DE LA PRÁCTICA Ciencias Básicas (Programación) DURACIÓN

Más detalles

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. APUNTADORES Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección de memoria con el contenido

Más detalles

Max-1

Max-1 TEMA 8. Estructuras de Datos Complejas 8.1 Vectores Estáticos Con las variables que conocemos hasta ahora, ES POSIBLE almacenar la nota de todos los alumnos en UNA SOLA VARIABLE? NO Vble Necesitamos algo

Más detalles

PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos.

PROBLEMA 1. Rellena el hueco 1 (línea 23). Realiza la reserva de memoria para almacenar los n puntos. PROBLEMA 1. El siguiente programa tiene algunos huecos en blanco que tienes que rellenar para que funcione correctamente. En cada hueco va una única línea de C, salvo en el cuerpo de la función calcula_area_triangulo,

Más detalles

PUNTEROS (APUNTADORES)

PUNTEROS (APUNTADORES) 2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Algoritmo y Estructura de Datos. PUNTEROS (APUNTADORES) TEMA 4: PUNTEROS (APUNTADORES)

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

directamente indirectamente

directamente indirectamente PUNTEROS EN C PUNTEROS Permiten simular el pasaje de parámetros por referencia. Permiten crear y manipular estructuras de datos dinámicas. Su manejo es de fundamental importancia para poder programar en

Más detalles

Arreglos. Donde en cada posición del array se puede guardar un elemento. tipo_dato nombre_array[cant_elem];

Arreglos. Donde en cada posición del array se puede guardar un elemento. tipo_dato nombre_array[cant_elem]; Arreglos Los arreglos o arrays son colecciones de datos del mismo tipo. De esta manera, podemos encontrar arrays de números enteros, arrays de números double, arrays de caracteres. Tradicionalmente, la

Más detalles

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros.

UNIDAD 8 Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Tipos de datos dinámicos: Punteros Asignación dinámica de memoria. Uso de punteros. Inicialización y asignación de punteros. Procedimientos para asignación y liberación de memoria. Tipos de datos recursivos.

Más detalles

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez

Memoria Dinámica. Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez Jornadas de Marzo 2010 Grupo de Usuarios de Linux Tania Pérez 1. PUNTEROS 2. MEMORIA DINÁMICA 2 1. PUNTEROS 3 Qué es un puntero? Un tipo de variable cuyo valor es la dirección de memoria de otra variable.

Más detalles

Laboratorio de Arquitectura de Redes. Entrada y salida estándar

Laboratorio de Arquitectura de Redes. Entrada y salida estándar Laboratorio de Arquitectura de Redes Entrada y salida estándar Entrada y salida estándar Entradas y salidas Salida con formato: printf() Entrada de datos con formato: scanf() El buffer de teclado Entrada

Más detalles

8. Vectores (arrays)

8. Vectores (arrays) 8. Vectores (arrays) Fundamentos de Informática Especialidad de Electrónica 2009-2010 Ismael Etxeberria Agiriano 16/12/2009 Índice 8. Vectores (arrays) 1. Números aleatorios 2. Serie ordenada 3. Números

Más detalles

PROGRAMACION / Clave: 11214

PROGRAMACION / Clave: 11214 PRACTICA 10. Programas en DevC++ 1.- Programa que imprima las tablas de multiplicar del 1 al 10, se deberá hacer una pausa entre tabla y tabla de multiplicar. 2.- Programa que se repita N cantidad de veces

Más detalles

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática

Tema 7 Vectores y cadenas de caracteres. Fundamentos de Informática Tema 7 Fundamentos de Informática Índice 1. Qué es un vector? 2. Vectores unidimensionales 3. Cadenas de caracteres 4. Paso de vectores unidimensionales a funciones. 5. Vectores multidimensionales: matrices

Más detalles

Instituto Tecnológico de Celaya

Instituto Tecnológico de Celaya CADENAS DE CARACTERES Hasta ahora se han manejado variables de tipo caracter cuyo valor es un sólo caracter. En algunos casos, sin embargo, es necesario usar variables cuyos valores sean un conjunto (cadena)

Más detalles

Programación. Test Autoevaluación Tema 3

Programación. Test Autoevaluación Tema 3 Programación Test Autoevaluación Tema 3 Autores: M. Paz Sesmero Lorente Paula de Toledo Heras Fco. Javier Ordoñez Morales Juan Gómez Romero José A. Iglesias Martínez José Luis Mira Peidro SOLUCIONES 1.

Más detalles

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero

Tipos de variables. Lenguaje C. Departamento de Electrónica. Tipos de datos, variables y constantes. Fundación San Valero Lenguaje C Tipos de variables Departamento de Electrónica Fundación San Valero Tipos de datos, Cinco tipos de datos básicos: Carácter (char): 8 bits -128 a 127. Entero (int): 32 bits -2.147.483.648 a 2.147.483.647.

Más detalles

ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo

ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo ESTRUCTURA DE DATOS Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo DATOS ESTÁTICOS Su tamaño y forma es constante durante la ejecución

Más detalles

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación

roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. Nociones básicas de programación There are no translations available. Introducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C. roducción a la programación con el lenguaje C usando el entorno de trabajo Dev-C.

Más detalles

Cursosindustriales. Curso de C / C++ Por Deimos_hack

Cursosindustriales. Curso de C / C++ Por Deimos_hack MÓDULO 1. ARRAYS. Es muy habitual que nuestro programa acumule ciertos datos en diferentes variables. En cada variable se almacena un dato y un tipo de dato y ocupa un espacio en memoria. Cuando en un

Más detalles

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas

Estructuras de Datos Estáticas. Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas Fundación Misión Sucre Colegio Universitario de Caracas Taller 2: Estructuras de Datos Estáticas Objetivo Diseñar y programar en lenguaje C soluciones utilizando estructuras de datos estáticas Contenido

Más detalles

UNIDAD 10. LAS CONSULTAS DE ACCIÓN

UNIDAD 10. LAS CONSULTAS DE ACCIÓN UNIDAD 10. LAS CONSULTAS DE ACCIÓN Las consultas de acción son consultas que permiten realizar cambios en los datos almacenados en una tabla. Con estas consultas podemos crear una nueva tabla a partir

Más detalles

Los tipos de datos que con mayor frecuencia se utilizan en Informática son:

Los tipos de datos que con mayor frecuencia se utilizan en Informática son: Los tipos de datos que con mayor frecuencia se utilizan en Informática son: Datos Simples ó Básicos Numéricos No Numéricos Variables sin Subíndices: Numéricas Alfanuméricas Char Lógicas En general, los

Más detalles

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS

TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:

Más detalles

Punteros. Lenguaje C ANSI

Punteros. Lenguaje C ANSI Punteros. Lenguaje C ANSI Qué es un PUNTERO?: Un puntero es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable. No hay que confundir una dirección

Más detalles

Arrays y Cadenas en C

Arrays y Cadenas en C Arrays y Cadenas en C Los arrays son variables estructuradas, donde cada elemento se almacena de forma consecutiva en memoria. Las cadenas de caracteres son declaradas en C como arrays de caracteres y

Más detalles

Tipos de Datos Estructurados

Tipos de Datos Estructurados - Unidad 3 Tipos de Datos Estructurados 1 Tipos de Datos Compuestos en C 2 Arreglos (1) Un arreglo (array) una colección homogénea de datos simples ó compuestos, que se referencian con un nombre comú,

Más detalles

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES.

Curso de Programación en C. Licenciatura, FCQeI. APUNTADORES. APUNTADORES. La memoria de una máquina esta ordenada en forma de celdas numeradas consecutivamente y que se pueden manipular individualmente o en grupos contiguos. La siguiente figura muestra una representación

Más detalles

Tema 13: Apuntadores en C

Tema 13: Apuntadores en C Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción

Más detalles

Elementos de un programa en C

Elementos de un programa en C Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución

Más detalles

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres

Cadena de caracteres. 1. Fundamentos de cadenas y caracteres 1. Fundamentos de cadenas y caracteres Cadena de caracteres Los caracteres son bloques de construcción fundamentales para los programas fuente. Un programa puede contener constantes de carácter. Una constante

Más detalles

2. Variables dinámicas

2. Variables dinámicas 2. Variables dinámicas 1. Introducción 2. Gestión de memoria dinámica 3. Punteros y variables dinámicas en lenguaje algorítmico 4. Gestión de memoria dinámica y punteros en C Bibliografía Biondi y Clavel.

Más detalles

Tema 5. Entrada y Salida

Tema 5. Entrada y Salida Tema 5 Entrada y Salida Contenidos 1. Conceptos Previos de Entrada y Salida de Datos. 2. Funciones de Salida de Datos. putchar puts printf 3. Funciones de Entrada de Datos. getchar gets scanf 4. Ficheros

Más detalles

Cadenas de caracteres. 1. Definición 2. Funciones para manejo de cadenas

Cadenas de caracteres. 1. Definición 2. Funciones para manejo de cadenas Cadenas de caracteres 1. Definición 2. Funciones para manejo de cadenas Cadenas de Caracteres Una cadena en C es un conjunto de caracteres, o valores de tipo "char", terminados con el carácter nulo (\0).

Más detalles

TEMA 6. TIPOS DE DATOS ESTRUCTURADOS

TEMA 6. TIPOS DE DATOS ESTRUCTURADOS M.P. Sesmero, P. de Toledo, F.J. Ordoñez, J. Gómez-Romero, J.A. Iglesias, J.L. Mira Programación TEMA 6. TIPOS DE DATOS ESTRUCTURADOS Grado en Ingeniería en Tecnologías Industriales Programación CONTENIDOS

Más detalles

Estructuras Dinámicas

Estructuras Dinámicas Departamento de Lenguajes yciencias de la Computación 4 Estructuras Dinámicas Contenido 1. Gestión dinámica de memoria. 2. El tipo puntero. 3. Operaciones con punteros. 4. Operaciones básicas sobre listas

Más detalles

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa Índice Estructuras de datos en Memoria Principal Vectores Matrices Cadenas de caracteres Estructuras Estructuras de datos en Memoria Externa Ficheros Tema: Estructuras de Datos 2 Estructuras Una estructura

Más detalles

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION CICLO: 02/ 2012 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION Nombre de la Practica: Lugar de Ejecución: Tiempo Estimado: MATERIA: GUIA DE LABORATORIO #07 Arreglos. Uso

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN

FUNDAMENTOS DE PROGRAMACIÓN Universidad Nacional de Entre Ríos Facultad de Ingeniería Departamento de Informática FUNDAMENTOS DE PROGRAMACIÓN UNIDAD 5 ARREGLOS ESTÁTICOS Y ESTRUCTURAS Unidad 5 2 Introducción En esta unidad aprenderemos

Más detalles

Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h

Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Unidad 5: Estructuras Estáticas I: Tablas 1 Unidad 5 ESTRUCTURAS ESTÁTICAS I: Tablas Desarrollo de la unidad : 36 h Prácticas: Ejercicios: Conceptos: Tablas unidimensionales, vectores, cadenas, modificación,

Más detalles

Departamento de Electrónica

Departamento de Electrónica Introducción al Departamento de Electrónica Fundación San Valero Introducción al 1 Introducción al Introducción al 2 Introducción al Introducción al 3 Características del Características del Departamento

Más detalles

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica

Tema 2: Desarrollo de Algoritmos. E.E. de Algorítmica Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de

Más detalles

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO LICENCIATURA EN INGENIERÍA DE SOFTWARE UNIDAD DE APRENDIZAJE: PROGRAMACIÓN Créditos institucionales de la UA: 8 Material visual: Diapositivas Unidad de competencia

Más detalles

Guía básica de programación en C++ estructurado. Manejo básico de la parte estructurada de C++

Guía básica de programación en C++ estructurado. Manejo básico de la parte estructurada de C++ Guía básica de programación en C++ estructurado Manejo básico de la parte estructurada de C++ 1 Introducción Durante el curso, se empleará el lenguaje de programación C++. Este lenguaje de programación

Más detalles

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES VARIABLES Y CONSTANTES Variables: Es un espacio reservado en la memoria donde podemos almacenar un valor durante la ejecución de un programa, a dicho espacio se le asocia un nombre (identificador). El

Más detalles