Algoritmos y estructuras de datos
|
|
|
- Rosa María Guzmán Campos
- hace 7 años
- Vistas:
Transcripción
1 Algoritmos y estructuras de datos Estructuras, apuntadores y memoria dinámica Francisco Javier Zaragoza Martínez Universidad Autónoma Metropolitana Unidad Azcapotzalco Departamento de Sistemas 11 de mayo de 2015 Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 1 / 34
2 Resumen Cadenas 1 Una cadena se almacena en un arreglo de caracteres char s[n]. 2 Una cadena debe terminar con el caracter nulo \0. 3 Hay diversas formas de inicializar, leer y escribir cadenas. 4 Un arreglo de cadenas se almacena en un arreglo de apuntadores. Operaciones de cadenas 1 Longitud de una cadena (int strlen(char *s)). 2 Copia de cadenas (char* strcpy(char *s, char *t)). 3 Concatenación de cadenas (char* strcat(char *s, char *t)). 4 Comparación de cadenas (char* strcmp(char *s, char *t)). Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 2 / 34
3 Problema Longitud de la cadena destino Dos de las funciones de cadenas que vimos comparten un problema: cuando llamamos a strcpy o a strcat debemos garantizar que la cadena destino es suficiente larga. Por qué? Otra operación con el mismo problema Considere una función cuyo propósito sea crear un duplicado de una cadena (char *strdup(char *s)). Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 3 / 34
4 Memoria dinámica Memoria estática y dinámica La memoria estática se pide en tiempo de compilación, mientras que la memoria dinámica se pide en tiempo de ejecución. Ventajas y desventajas Con memoria dinámica podemos pedir exactamente la memoria que necesitemos (ni más ni menos) pero debemos administrarla nosotros (en particular, debemos avisar cuando ya no la necesitemos). Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 4 / 34
5 Memoria dinámica en C Biblioteca Las funciones de administración de la memoria dinámica se pueden acceder agregando #include <stdlib.h> a tu programa. Solicitud de memoria La función void *malloc(int n) sirve para solicitar n bytes consecutivos. Regresa un apuntador al primero de esos bytes o NULL si no hay memoria suficiente. Esto se usa en combinación con sizeof que da el número de bytes que necesita una variable de tipo arbitrario para almacenarse. Liberación de memoria La función void free(void *p) sirve para liberar la memoria solicitada. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 5 / 34
6 Ejemplos Arreglos de longitud arbitraria Para pedir un arreglo de enteros de longitud arbitraria podemos hacer: int n; /* escoge un valor de n */ int *a; /* lugar para el arreglo */ scanf (" %d", &n); a = ( int *) malloc (n* sizeof ( int )); /* pide */ if (a!= NULL ) { /* todo bien, usa a [0] a[n -1] */ else { /* no hubo memoria suficiente */ free (a); /* libera */ Observe: malloc regresa un void * y necesitamos un int *. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 6 / 34
7 Ejemplo Duplicar una cadena char * duplica ( char *s) { char *p; /* cambio de tipo */ p = ( char *) malloc ( longitud (s) +1) ; /* bytes necesarios */ if ( p!= NULL ) /* si hubo memoria */ copia (p, s); /* copia s en p */ return p; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 7 / 34
8 Ejercicios Cadenas 1 Escribe una función char *invierte(char *s) que invierta la cadena s en una cadena nueva y regrese un apuntador a ella. 2 Escribe una función char *concatena(char *s, char *t) que concatene las cadenas s y t en una cadena nueva y regrese un apuntador a ella. 3 Escribe una función char *multiplica(char *s, int n) que concatene n copias de la cadena s en una cadena nueva y regrese un apuntador a ella. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 8 / 34
9 Estructuras Estructuras Una estructura agrupa una o más variables (del mismo o varios tipos) bajo un solo nombre. Las estructuras sirven en particular para organizar datos complicados ya que permiten que un grupo de variables relacionadas se les trate como una unidad. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 9 / 34
10 Estructuras Estructuras Una estructura agrupa una o más variables (del mismo o varios tipos) bajo un solo nombre. Las estructuras sirven en particular para organizar datos complicados ya que permiten que un grupo de variables relacionadas se les trate como una unidad. Ejemplos de estructuras Un punto tiene dos coordenadas enteras. Un triángulo tiene tres puntos. Un número complejo está formado por dos números reales. Un racional tiene un numerador y un denominador. Un monomio tiene un coeficiente, un exponente y una incógnita. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 9 / 34
11 Ejemplo Puntos Queremos que un punto tenga dos coordenadas enteras x y y. Esto lo podemos lograr de la siguiente forma: struct punto { /* nombre de la estructura */ int x; /* coordenada x */ int y; /* coordenada y */ p, q; /* dos puntos */ Esto define dos puntos p y q, cada uno con coordenadas x y y: p.x p.y q.x q.y El operador. da acceso a los miembros de la estructura. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 10 / 34
12 Operaciones con estructuras Operaciones válidas con estructuras 1 Una estructura se puede inicializar struct punto p = {10, Dos estructuras se pueden copiar con p = q. 3 La dirección de inicio de la estructura p es &p. 4 Se puede acceder a los miembros de p con p.x y p.y. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 11 / 34
13 Operaciones con estructuras Operaciones válidas con estructuras 1 Una estructura se puede inicializar struct punto p = {10, Dos estructuras se pueden copiar con p = q. 3 La dirección de inicio de la estructura p es &p. 4 Se puede acceder a los miembros de p con p.x y p.y. Operación inválida con estructuras Las estructuras no se pueden comparar. Es ilegal decir p == q o p!= q. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 11 / 34
14 Estructuras y funciones Valor de regreso Una función puede regresar una estructura: struct punto creapunto ( int x, int y) { struct punto t; t.x = x; t.y = y; return t; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 12 / 34
15 Estructuras y funciones Parámetros Una función puede recibir parámetros que sean estructuras: int compara ( struct punto p, struct punto q) { return (p.x == q.x) && (p.y == q.y); Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 13 / 34
16 Estructuras y funciones Parámetros Una función puede regresar y recibir parámetros que sean estructuras: struct punto suma ( struct punto p, struct punto q) { struct punto t; t.x = p.x + q.x; t.y = p.y + q.y; return t; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 14 / 34
17 Definición de tipos Definición de tipos La palabra reservada typedef nos permite definir tipos nuevos. typedef int entero ; define el tipo entero como sinónimo de int. typedef char cadena [ 10]; define el tipo cadena como un arreglo de diez char. typedef struct punto { int x; int y; point ; define el tipo point como sinónimo de struct punto. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 15 / 34
18 Estructuras y funciones Parámetros por valor Usando tipos definidos se simplifica la escritura de funciones: point suma ( point p, point q) { point t; t.x = p.x + q.x; t.y = p.y + q.y; return t; No es necesario anotar una y otra vez que eran struct. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 16 / 34
19 Estructuras y funciones Parámetros por referencia Con frecuencia se usan parámetros por referencia para las estructuras: point suma ( point *p, point *q) { point t; t.x = (*p).x + (*q).x; t.y = (*p).y + (*q).y; return t; Esto es para evitar la copia de la estructura. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 17 / 34
20 Estructuras y funciones Parámetros por referencia Por supuesto, también se pueden modificar los parámetros por referencia: void suma ( point *p, point *q, point *t) { /* modificaremos la estructura * t */ (*t).x = (*p).x + (*q).x; (*t).y = (*p).y + (*q).y; Esto requiere una estructura ya existente para colocar el resultado. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 18 / 34
21 Estructuras y funciones Parámetros por referencia La expresión (*p).x es tan común, que existe otra forma de escribirla: void suma ( point *p, point *q, point *t) { /* modificaremos la estructura * t */ t->x = p->x + q->x; t->y = p->y + q->y; La expresión p->x es equivalente a (*p).x. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 19 / 34
22 Estructuras con miembros estructurados Ejemplos Una estructura puede tener miembros que son estructuras: typedef struct { float area ; /* area de un triangulo */ float peri ; /* perimetro del mismo */ point a, b, c; /* vertices del triangulo */ triangulo ; Esto también se pudo hacer así: typedef struct { float area ; /* area de un triangulo */ float peri ; /* perimetro del mismo */ point a [3]; /* vertices del triangulo */ triangulo ; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 20 / 34
23 Ejercicios Puntos 1 Escribe la función int domina(point p, point q) que diga si las dos coordenadas de p son menores a las dos coordenadas de q. 2 Escribe la función point domina(point p, point q) que reste las coordenadas de p y q. 3 Reescribe estas funciones usando referencias. Triángulos 1 Escribe la función triangulo crea(point a, point b, point c) que llene todos los miembros de una estructura triangulo. Cómo se calcula el área y el perímetro de un triángulo? Reescribe esta función usando referencias. 2 Escribe la función void reloj(triangulo *t) que asegure que los tres vértices del triángulo están en el orden de las manecillas del reloj. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 21 / 34
24 Otros ejemplos sencillos Complejos typedef struct { /* (re, im) */ double re, im; complejo ; Racionales typedef struct { /* a/b */ long long a, b; racional ; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 22 / 34
25 Ejercicios Complejos 1 Escribe funciones que sumen, resten, multipliquen y dividan complejos. Qué hacer con la división por cero? 2 Escribe una función complejo potencia(complejo z, int n) que calcule la potencia n de z (suponga que n >= 0). Racionales 1 Escribe una función void simplifica(racional *r) que simplifique r, es decir, el numerador y denominador no deben tener factores comunes y el denominador debe ser positivo. 2 Escribe funciones que sumen, resten, multipliquen y dividan racionales. Qué hacer con la división por cero? Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 23 / 34
26 Tipo de datos concreto: Arreglos de bits Cómo representar un conjunto? Si queremos representar un conjunto en un programa debemos saber: 1 La cantidad de elementos (digamos int n). 2 El tipo de sus elementos (digamos int de 0 a n-1). 3 Dónde almacenar el conjunto (digamos int a[n]). 4 Cómo guardar los elementos (ceros y unos en a[0..n-1]). Ejemplo de un conjunto int n = 10; /* hasta diez elementos en el conjunto */ int a [10] = {0, 1, 0, 1, 1, 1, 0, 1, 0, 1; int b [10] = {1, 0, 1, 1, 1, 0, 1, 0, 1, 0; int c [10]; /* conjunto sin inicializar */ Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 24 / 34
27 Problemas y soluciones Problemas 1 Todos los elementos deben ser del mismo tipo. 2 Todos los elementos deben ser enteros en el rango 0 a n 1. 3 Debemos saber al principio la cantidad máxima de elementos. 4 No podemos cambiar esa cantidad en tiempo de ejecución. 5 Algunas funciones como une y cardinalidad son muy lentas. 6 Las funciones requieren pasar al menos dos parámetros por conjunto. Soluciones Hoy vamos a resolver dos de estos problemas (el tercero y el último). Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 25 / 34
28 Construir un conjunto Crear un conjunto vacío void crea ( int n, int a []) { int i; for (i = 0; i < n; i ++) a[i] = 0; /* i no esta */ Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 26 / 34
29 Construir un conjunto Crear un conjunto vacío Pediremos un arreglo suficientemente grande: int * crea ( int n) { int i; int *a; a = ( int *) malloc (n* sizeof ( int )); if (a!= NULL ) { for (i = 0; i < n; i ++) a[i] = 0; /* i no esta */ return a; No debemos olvidar liberarlo después con free. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 27 / 34
30 Estructura para conjuntos Estructura Un arreglo de bits consta de dos componentes: la cantidad de elementos y el arreglo. Podemos declarar una estructura conveniente para esto. typedef struct { int n; /* cantidad de elementos */ int *a; /* apuntador al arreglo */ conjunto ; Observe que no declaramos un arreglo dentro de la estructura; lo haremos con memoria dinámica. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 28 / 34
31 Construir un conjunto Crear un conjunto vacío conjunto crea ( int n) { int i; conjunto s; s.a = ( int *) malloc (n* sizeof ( int )); if (s.a!= NULL ) { s.n = n; for (i = 0; i < n; i ++) s.a[i] = 0; /* i no esta */ else s.n = 0; return s; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 29 / 34
32 Agregar y eliminar elementos Agregar un elemento void agrega ( conjunto s, int x) { if (0 <= x && x < s.n) s.a[x] = 1; Eliminar un elemento void elimina ( conjunto s, int x) { if (0 <= x && x < s.n) s.a[x] = 0; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 30 / 34
33 Agregar y eliminar elementos Agregar un elemento void agrega ( conjunto * s, int x) { if (0 <= x && x < s->n) s->a[x] = 1; Eliminar un elemento void elimina ( conjunto * s, int x) { if (0 <= x && x < s->n) s->a[x] = 0; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 31 / 34
34 Igualdad Igualdad S = T int igual ( conjunto s, conjunto t) { int i; if (s.n!= t.n) return 0; for (i = 0; i < s.n; i ++) if (s.a[i]!= t.a[i]) return 0; return 1; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 32 / 34
35 Igualdad Igualdad S = T int igual ( conjunto * s, conjunto * t) { int i; if (s->n!= t->n) return 0; for (i = 0; i < s->n; i ++) if (s->a[i]!= t->a[i]) return 0; return 1; Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 33 / 34
36 Ejercicios Conjuntos 1 Escribe una función void destruye(conjunto s) que libere la memoria pedida para el conjunto s. 2 Escribe una función int cardinalidad(conjunto s) que diga cuántos elementos tiene s. 3 Escribe una función void complemento(conjunto s) que invierta los elementos de s. 4 Escribe una función int igualdad(conjunto s, conjunto t) que maneje conjuntos de tamaño máximo distinto. 5 Escribe une, intersecta, diferencia y simetrica destructivas. 6 Escribe une, intersecta, diferencia y simetrica no destructivas, es decir, el resultado debe quedar en un tercer conjunto. Francisco Zaragoza (UAM Azcapotzalco) Algoritmos y estructuras de datos 2015 Primavera 34 / 34
Punteros. Índice. 1. Qué es un puntero y por que son importantes.
Punteros Índice 1. Qué es un puntero y por que son importantes. 2. Punteros a tipos básicos. 3. Punteros sin tipo. 4. Memoria dinámica. 5. Punteros a estructuras. 6. Punteros a matrices. 7. Punteros a
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 [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
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
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
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.
Tipos de datos y Operadores Básicos
Módulo I: Conceptos Básicos Tema 1. Qué es un ordenador? Tema 2. Cómo se representan los datos en un ordenador? Tema 3. Qué es un lenguaje de programación? Tema 4. Cómo se hace un programa informático?
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
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.
FUNDAMENTOS DE PROGRAMACIÓN. PRÁCTICA 11: Apuntadores
Objetivos El alumno conocerá y aplicará el concepto de apuntadores para la solución de programas en Lenguaje C Introducción Un apuntador es una variable que mantiene la dirección de memoria de un elemento
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
1. Presentación del lenguaje C Creado en 1972 por D. Ritchie Lenguaje de propósito general Portátil o transportable (generalmente) Inicialmente de niv
Introducción al lenguaje C Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Instrucciones del pre-procesador procesador 4. Tipos de datos
Repaso Lenguaje C Área de Servicios Programación (Ing. Elect. y Prof. Tec.), Programación I (TUG y TUR) y Electrónica programable (TUE)
Repaso Lenguaje C OBJETOS Variables Constantes Variable: objeto del ambiente cuyo contenido puede cambiar. Constante: objeto cuyo contenido no puede cambiar. Variables: - un nombre que la identifica. Deben
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
Tema 16: Tipos de datos estructurados en lenguaje C
Tema 16: Tipos de datos estructurados en lenguaje C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México
Universidad Autónoma del Estado de México 2016, Año del 60 Aniversario de la Universidad Autónoma del Estado de México Unidad Académica Profesional Tianguistenco Ingeniería de Software Estructura de Datos
Programación En Lenguaje C
Programación En Lenguaje C Introducción Básica para Primero de Bachillerato TECNOLOGÍA DE LA INFORMACIÓN IES PALAS ATENEA Lenguaje C Estructurado Secuencial De alto Nivel Altamente portable Necesita un
INFORMATICA II PRIMER PARCIAL
Grupo 1 INFORMATICA II PRIMER PARCIAL Hacer un programa en C o C++ que realice lo siguiente: a. Almacenar en un archivo binario 100 juegos de valores compuestos por un valor entero, un número real y una
Estructuras y Uniones
1 Estructuras y Uniones Estructuras. Las estructuras ( struct ) son agrupaciones de una o más variables de tipos posiblemente diferentes, agrupadas bajo un mismo nombre. Esto permite un manejo más cómodo
Programación Estructurada. Sesión 2:El lenguaje de programación C
Programación Estructurada Sesión 2:El lenguaje de programación C Contextualización Una parte importante del lenguaje C son las palabras reservadas, son identificadores con un significado predefinido. Estas
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
Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS
Contenido PARTE II: ESTRUCTURAS DE DATOS AVANZADAS TEMA 4. - La Estructura de datos Árbol 4.1. Árboles, definiciones 4.2 Árboles binarios y su representación 4.3 Operaciones básicas de un árbol binario
Apuntadores en C y C++
Apuntadores en C y C++ Universidad de Carabobo Facultad Experimental de Ciencias y Tecnología Prof. Marcos A. Gil T. 8 de diciembre de 2004 1. Introducción Los apuntadores en C y C++ son una herramienta
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
UNIDAD 4 ESTRUCTURAS Y UNIONES
UNIDAD 4 ESTRUCTURAS Y UNIONES Programación Primavera 2010 Contenido Definición de estructura Procesamiento de una estructura Tipos de datos definidos por el usuario (typedef) Estructuras y apuntadores
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
Tema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
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
TEMA 8: Gestión dinámica de memoria
TEMA 8: Gestión dinámica de memoria 8.1.-Tipo de datos puntero Hasta ahora, los tipos de datos que hemos visto (a excepción de strings y ficheros) eran estructuras de datos estáticas, es decir, estructuras
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,
Tipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Algoritmos y estructuras de datos
Algoritmos y estructuras de datos Dr. Eduardo A. Rodríguez Tello Laboratorio de Tecnologías de Información Cinvestav Tamaulipas [email protected] Cursos de inducción a la MCC Cinvestav Tamaulipas
Variables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y
Este material es de uso exclusivo para estudio, los textos fueron tomados textualmente de varios libros por lo que está prohibida su impresión y distribución. Listas Enlazadas Estructuras de datos dinámicas
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 [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido
Introducción general al Lenguaje C (2010/2011)
Luis Valencia Cabrera [email protected] (http://www.cs.us.es/~lvalencia) Ciencias de la Computacion e IA (http://www.cs.us.es/) Introducción general al Lenguaje C (2010/2011) Universidad de Sevilla Índice
Lenguaje C [Apuntadores y arreglos]
Lenguaje C [Apuntadores y arreglos] M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 14-O Sergio Luis Pérez (UAM CUAJIMALPA) Curso de Lenguaje C 1 / 20 Apuntadores y direcciones
TEMA 8. ESTRUCTURAS Y UNIONES.
TEMA 8. ESTRUCTURAS Y UNIONES. Este capítulo examina estructuras, uniones, enumeraciones y s definidos por el usuario que permite a un programador crear nuevos s de datos. La capacidad para crear nuevos
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
Memoria Dinámica en C++
Memoria Dinámica en C++ Algoritmos y Estructuras de Datos II DC-FCEyN-UBA 26 de Agosto de 2015 AED2 (DC-FCEyN-UBA) Memoria Dinámica en C++ 26 de Agosto de 2015 1 / 46 Repaso: Qué es una variable? Matemática:
Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas
Listas Enlazadas que está prohibida su impresión y distribución. Estructuras de datos dinámicas Contrariamente a las estructuras de datos estáticas (arreglos-listas, vectores y tablas- y estructuras) en
Programación I Funciones
1 Funciones Iván Cantador 2 Funciones: definición, sintaxis, ejemplos (I) Una funciónes un bloque de sentencias identificado con un nombre que se ejecutan de manera secuencial ofreciendo una funcionalidad
Sintaxis de los aspectos generales de un lenguaje de programación
Sintaxis de los aspectos generales de un lenguaje de programación por Iván Cruz Un lenguaje de programación cuenta con una estructura y sintaxis que debe ser utilizada exactamente como se indique para
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)
Í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
Algoritmo, Estructuras y Programación II Ing. Marglorie Colina
Unidad III Punteros Algoritmo, Estructuras y Programación II Ing. Marglorie Colina Ejemplo: Paso de Punteros a una Función Arreglos (Arrays) Unidimensionales Los Arreglos son una colección de variables
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
Programación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Tema 13: Apuntadores en C
Tema 13: Apuntadores en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1 Contenido Introducción
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 [email protected] @edfrancom
2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Tema 1. Programación modular. Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas
Tema 1. Programación modular Programación Avanzada Ingeniería Técnica en Informática de Gestión Jorge Badenas 1.1. Objetivos Repasar brevemente mediante ejemplos los elementos principales del lenguaje
Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación
Asignatura: Programación I Fecha: Marzo 2012 Benemérita Universidad Autónoma de Puebla Facultad de Ciencias de la Computación Área de Programación Funciones 1. Escriba un programa en C que intercambie
Introducción al lenguaje C
Introducción al lenguaje C Programación 2 Instituto de Computación, Facultad de Ingeniería, Universidad de la República, Uruguay 2 de marzo de 2016 Programación 2 Introducción al lenguaje C 2 de marzo
Tema 2: Elementos básicos de un programa. Tipos de datos, variables y constantes Asignación Operadores y expresiones
Tema 2: Elementos básicos de un programa Tipos de datos, variables y constantes Asignación Operadores y expresiones Ejemplo de programa Dados dos números, leídos desde el teclado, visualizar el mayor #include
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,
Hoja de ejercicios del Tema 9
Facultad de Informática Universidad Complutense Fundamentos de la programación Curso 2013 2014 Hoja de ejercicios del Tema 9 1. Sin ejecutarlo, qué mostraría el siguiente código? int x = 5, y = 12, z;
Sobrecarga de operadores, listas
Sobrecarga de operadores, listas mat-151 Alonso Ramírez Manzanares Computación y Algoritmos 28.02 1 Problema: Alonso Ramírez Manzanares Computación y Algoritmos 28.02 Problema: Dadas 2 listas no vacias
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
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
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
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2
Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C++ Sesión 2 Contenidos: 1. Definición de clases 2. Implementación de los métodos 3. Constructores y destructores 4. Objetos
Universidad del Papaloapan
Universidad del Papaloapan Materia: Programación Estructurada Tema: Punteros Expositor: M. C. Bertha López Azamar Tuxtepec, Oaxaca. Enero/2005-2006 1 PUNTEROS M. C. Bertha López Azamar Un tema muy ligado
Cadenas de caracteres
Trabajo práctico Nº 6 (Trabajos con cadenas de caracteres y estructuras) Realiza el programa en Lenguaje C correspondiente. Cadenas de caracteres 1- Construir una función PASSWORD que pida por teclado
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.
Estructura de Datos. Temario Unidad VI. Árboles Árboles Binarios
Estructura de Datos Árboles Árboles Binarios Temario Unidad VI 6.1 Definición y operaciones 6.2 Implementación 6.3 Recorrido en Árboles Binarios 6.4 Árboles AVL y su implementación 6.5 Árboles n-arios
Unidad 2: Estructuras de Datos estáticas y dinámicas.
FUNCIONES Y PUNTEROS Apunte realizado por Leonel Guccione 1/7 Unidad 2: Estructuras de Datos estáticas y dinámicas. Temas: Algoritmos sobre arreglos: búsqueda del mínimo, máximo, ordenacón por selección
Programación I Unidad III. Tema: Tipos, estructuras y uniones
Programación I Unidad III Tema: Tipos, estructuras y uniones El especificador typedef La palabra reservada typedef representa un especificador de clase de almacenamiento, y se utiliza para definir nuevos
Repaso 02: Apuntadores y manejo de memoria dinámica
Repaso 02: Apuntadores y manejo de memoria dinámica Solicitado: Ejercicios 02: Programación con memoria dinámica M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com [email protected] @edfrancom
Tema: Plantillas en C++.
Programación II. Guía 11 1 Facultad: Ingeniería Escuela: Computación Asignatura: Programación II Tema: Plantillas en C++. Objetivos Específicos Conocer los tipos de plantillas Utilizar las plantillas de
Estructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
El lenguaje C. 1. Estructuras. Principios de Programación. 1.1. Definicion de estructuras
Principios de Programación El lenguaje C 1. Estructuras Las estructuras son colecciones de variables relacionadas bajo un nombre. Las estructuras pueden contener variables de muchos tipos diferentes de
Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan problemas de tipo numérico.
Universidad Nacional Autónoma de México Facultad de Ingeniería ARREGLOS Y ESTRUCTURAS Objetivo El alumno conocerá y aplicará los conceptos de arreglo y estructura en la realización de programas que resuelvan
PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C
PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C Presenta: David Martínez Torres Universidad Tecnológica de la Mixteca Instituto de Computación Oficina No. 37 [email protected] Contenido
