Estructuras y Uniones

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

Download "Estructuras y Uniones"

Transcripción

1 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 de la información cuando ésta está relacionada. La forma general de definición es: struct tipo_estructura { tipo miembro_1; tipo miembro_2;. tipo miembro_n; Lista_variables_estructura; donde tipo_estructura ( que será el nombre de la estructura ) ó Lista_variables_estructura ( que es una lista de las variables que serán de este tipo de estructura ) pueden omitirse pero no ambos. Las estructuras ayudan a agrupar información relacionada como los datos de una cédula de identidad, las coordenadas de un punto, etc. Ejemplos de declaración de estructuras struct datos { char nombre[20]; char direccion[20]; long int NumCedula; char sexo; /* Veamos ahora como declaramos una variable de tipo struct datos. Aquí tenemos a a como una estructura de este tipo y b como un array de 5 estructuras de este tipo*/

2 2 struct datos a,b[5]; Las estructuras también pueden estar anidadas. Esto quiere decir que un elemento de una estructura puede ser a su vez otra estructura. Veamos un ejemplo: struct fecha { int dia; int mes; int anio; struct persona { char nombre[20]; struct fecha nacimiento; struct persona p; Aquí vemos que la estructura persona contiene un elemento que es del tipo de estructura fecha. OJO: Como vimos en la definición, también pueden declararse las variables que serán de un tipo de estructura desde el momento de la declaración haciendo algo como: struct persona {

3 3 char nombre[20]; struct fecha nacimiento; p, q ; // Esto declara 'p' y 'q' de tipo struct persona" Los elementos individuales de una estructura se referencian utilizando el operador punto (. ) entre el nombre de la variable de tipo estructura y el nombre del miembro de la estructura. A los elementos de una estructura se les denomina miembros. Continuando con las estructuras de los ejemplos anteriores, se pueden tener las siguientes referencias a miembros: a.nombre // Referencia la variable nombre de la estructura datos llamada a a.dirección // Referencia la variable dirección de la estructura datos llamada a b[2].numcedula // Referencia la variable NumCedula del segundo elemento del arreglo de tipo struct datos llamado b p.nombre p.nacimiento.dia // Estos casos referencian un elemento de una struct fecha dentro p.nacimiento.mes // de la struct persona. Analícenlo.

4 4 Funciones y estructuras. 1.- Paso por valor de miembros de una estructura a una función. Se realiza como si fueran variables simples. Por ejemplo, para pasar por valor el miembro a.numcedula : void funcion f1(int x); /*declaración de la función prototipo*/ f1(a.numcedula); /* llamada a la función */ void f1(int x) { /* definición de la función */ Paso por dirección (lo mismo que por referencia) de miembros de una estructura a una función. Se realiza como si fueran variables simples. Por ejemplo, para pasar por referencia el miembro a.numcedula : void funcion f1(int *) /*declaración de la función prototipo*/ f1(&a.numcedula); /* llamada a la función */ void f1(int *x) { /* definición de la función */ Hay que tener en cuenta que si lo que se pasa a una función es un miembro de una estructura que sea un arreglo, éste siempre se pasa por dirección ( ya que el nombre del arreglo es la dirección del primer elemento del mismo ). 3.- Paso por valor de estructuras completas a funciones.

5 5 En el siguiente ejemplo, suma es una función que recibe dos estructuras pasadas por valor y a su vez devuelve una estructura. struct vector { int x,y,z; struct vector (struct vector v1, struct vector v2); void main() { struct vector v1,v2,v3;... v3=suma(v1,v2);... struct vector suma(struct vector v1, struct vector v2) { v1.x+=v2.x; v1.y+=v2.y; v1.z+=v2.z; return (v1); 4.- Paso por referencia de estructuras completas a funciones.

6 6 Cuando las estructuras son muy grandes es más eficiente pasarlas por dirección. En ese caso se utilizan punteros a estructuras para realizar la comunicación. Para acceder a los miembros de la estructura debe utilizarse la combinación de los operadores * y punto. Sin embargo el operador punto tiene más precedencia que * siendo necesario el uso de paréntesis para asegurar que se aplique primero * y después punto. También puede utilizarse el operador -> para acceder a los miembros de una estructura referenciada por un puntero y de hecho este es la forma más usada en la actualidad. #include <stdio.h> struct pareja { int a,b; void f1(struct pareja *q); void main() { struct pareja p = { 13, 17 /* inicialización de los miembros*/ f1(&p); printf("a:%d y b:%d\n", p.a, p.b); /* a: 14 y b:18 */ void f1(struct pareja *q) { q->a++; /* equivalente a (*q).a++ pero más usado */ q->b++; return; /*Este return no retorna nada ya que la función es void En este caso no era necesario su uso pero recuerden que return también se usa para finalizar una función inmediatamente.*/ En este ejemplo también se observó como se inicializan los elementos de una estructura: con {ele1, ele2,...,elen igual que en los arreglos. El primer elemento inicializa la primera

7 7 variable de la estructura, el segundo elemento a la segunda variable y así sucesivamente. Así, si usamos la estructura datos que mencionamos al principio, una forma de inicializarla sería algo como: Uniones struct datos a = { Juan, Maracay, , 'M' Las uniones son otro tipo de datos que pueden ser usados en C y aunque tienen una sintaxis similar a las estructuras se diferencian de éstas en que sus miembros comparten almacenamiento. Esto quiere decir que una variable unión define a un conjunto de valores alternos que se almacenan en una porción compartida de memoria El compilador asigna una porción de almacenamiento que pueda acomodar al más grande de los miembros especificados. La notación para acceder a un miembro de la unión es idéntica a la que se emplea para acceder a un miembro de una estructura. Un ejemplo de unión es el siguiente: union simple { char ch; int i; union simple a; // podemos acceder a las variables de la unión haciendo: a.ch = a ;... a.i = 3; Como ya comentamos, las uniones comparten el almacenamiento, o sea, que sólo se reserva espacio en memoria como para almacenar la más grande de las variables que en este caso es un int por lo que son dos bytes. Dentro de esos dos bytes se almacenarán las variables pero, como usted ya habrá analizado, sólo puede mantenerse el valor de una de ellas. O sea que en el ejemplo anterior, al usar a.i, a.ch se pierde. Veamos otro ejemplo:

8 8 union ejemplo { long int cedula; char nombre[10]; char Nacimiento[12]; Esta variable sólo ocupará 12 bytes que es el mayor dato que puede contener y mantendrá en cada momento sólo a una de ellas. OJO: Es muy importante que sepan que una unión sólo puede ser inicializada con un valor del tipo de su primer miembro. union ejemplo a={ Uso de sizeof para asegurar la portabilidad. El uso de este operador es de gran importancia a la hora de calcular el tamaño real de las variables, el cual puede variar de maquina en maquina. Por ejemplo, en MSDOS: char c; sizeof(int); //Retorna 2, ya que int ocupa dos bytes sizeof(c); // retorna 1 ya que c es de tipo char y ocupa un byte mientras que en Linux, aunque los char son del mismo tamaño, sizeof(int) retorna 4. El operador sizeof se usa en el cálculo de tamaños de variables definidas por el usuario tales como estructuras y uniones. Supongamos que se necesita guardar datos en un arreglo que será creado dinámicamente con malloc y que este arreglo contendrá, por ejemplo, 27 elementos de un tipo de estructura que ha sido creada por nosotros. Supongamos también que la estructura es la siguiente:

9 9 struct tamaño { char ch; int i; long int li; float f; double d; long double ld; char cad[10]; int mat[10][15]; me; Para poder reservar memoria con malloc de forma directa deberíamos primero calcular cuantos bytes ocupa esta estructura que en MSDOS sería: ch = 1, i = 2, li = 4, f = 4, d = 8, ld = 10, cad = 10 y mat = 2*10*15 = 300. Sumado todo da 339 bytes por estructura que luego multiplicamos por 27 para obtener el espacio total requerido = 9153 bytes. Así, haríamos: struct tamaño *pe; pe = (struct tamaño *)malloc(9153); y tendríamos que hacer los distintos cálculos para las diferentes plataformas. Usando sizeof sólo haríamos: pe = (struct tamaño *)malloc(27*sizeof(me));

10 10 Tipos de datos definidos por el usuario. C soporta la creación de nuevos nombres de tipos de datos. Esto se realiza utilizando la palabra reservada typedef: typedef tipo nombre Ejemplos: Con tipos simples: typedef int ENTERO typedef float REAL ENTERO a,b; // Define a y b como de tipo ENTERO, o sea, int. REAL c; Con tipos estructurados: typedef struct{ int dia; int mes; int anio;

11 11 FECHA; FECHA a; ó incluso si la estructura ya está creada: struct test { int i; char ch; char cad[10]; podemos usar: typedef struct test MiNuevoTipo;... MiNuevoTipo a;

Definición de estructuras. Estructuras, uniones y enumeraciones. Declaración. Definición y declaración. (struct, union y enum)

Definición de estructuras. Estructuras, uniones y enumeraciones. Declaración. Definición y declaración. (struct, union y enum) Estructuras, uniones y enumeraciones (struct, union y enum) Definición de estructuras Una Estructura es una colección de variables simples (como int x; char cad[30]; etc), que pueden contener diferentes

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

Í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

Tema 6: Memoria dinámica

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

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

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

Manejo de memoria en C

Manejo de memoria en C Manejo de memoria en C Todas las variables, en el lenguaje C, se definen dentro de alguna función, fuera de esa función no es posible acceder a ellas. Al entrar a una función, a cada una de las variables

Más detalles

Conceptos Básicos. Programación

Conceptos Básicos. Programación Conceptos Básicos Programación Introducción Lenguaje. Código Máquina. Lenguajes de alto nivel. Criterios clasificación Nivel de abstracción. Propósito. Evolución histórica. Manera de ejecutarse. Paradigma

Más detalles

TEMA 8. ESTRUCTURAS Y UNIONES.

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

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

Universidad del Papaloapan

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

Más detalles

Funciones Definición de función

Funciones Definición de función Funciones Definición de función Una función es un bloque de código que realiza una tarea específica. Una función es una porción de programa, identificable mediante un nombre, que realiza determinadas tareas

Más detalles

Tema 16: Tipos de datos estructurados en lenguaje C

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 edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo

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

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

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos

1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos 1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición

Más detalles

Punteros. Índice. 1. Qué es un puntero y por que son importantes.

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

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

REPRESENTACIÓN DE DATOS

REPRESENTACIÓN DE DATOS REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener

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

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 Á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

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

Apuntadores (Punteros)

Apuntadores (Punteros) Apuntadores (Punteros) x9ff10 X int 209 SESION 7 *ptr Definición Llamados también punteros. Un Apuntador es una variable que contiene una dirección de memoria, la cual corresponderá a un dato o a una variable

Más detalles

Punteros. 1.- Paso de parámetros por referencia. Ya hablamos de ésto en funciones. 2.- Declaración de arreglos dinámicos.

Punteros. 1.- Paso de parámetros por referencia. Ya hablamos de ésto en funciones. 2.- Declaración de arreglos dinámicos. 1 Punteros. Dentro de la memoria de la computadora cada dato almacenado ocupa una o más celdas contiguas de memoria. El número de celdas de memoria requeridas para almacenar un dato depende de su tipo.

Más detalles

Algoritmo, Estructuras y Programación II Ing. Marglorie Colina

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

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

Apuntadores en C y C++

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

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

Objetivos. El alumno conocerá y aplicará el concepto de apuntador para la realización de programas de manejo eficiente de memoria.

Objetivos. El alumno conocerá y aplicará el concepto de apuntador para la realización de programas de manejo eficiente de memoria. Objetivos El alumno conocerá y aplicará el concepto de apuntador para la realización de programas de manejo eficiente de memoria. Al final de esta práctica el alumno podrá: 1. Acceder a localidades de

Más detalles

UNIDAD 3 Modularidad

UNIDAD 3 Modularidad Modularidad Funciones de biblioteca, uso. Módulos. Concepto. Clasificación. Ámbito de identificadores. Transferencia de información a y desde procedimientos: los parámetros, tipos de parámetros. Conceptos

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

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

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

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

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 Algoritmos y Estructuras de Datos Ingeniería en Informática, Curso 2º SEMINARIO DE C Sesión 2 Contenidos: 1. Punteros 2. Arrays 3. Estructuras (registros) y uniones 4. Funciones Ejercicios Algoritmos y

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

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

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

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 Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones

Más detalles

UNIDAD 4 ESTRUCTURAS Y UNIONES

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

Más detalles

Repaso de lenguaje C. Índice. Repaso de lenguaje C. Repaso de lenguaje C: Tipos básicos

Repaso de lenguaje C. Índice. Repaso de lenguaje C. Repaso de lenguaje C: Tipos básicos Índice. Repaso de C: Tipos de variables. Declaración de variables Sentencias de control Funciones. Paso de argumentos a una función. Punteros, operaciones con punteros, punteros y arrays. Repaso de lenguaje

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

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C

Laboratorio de Arquitectura de Redes. Punteros en lenguaje C Laboratorio de Arquitectura de Redes Punteros en lenguaje C Punteros en lenguaje C Definición Declaración e inicialización de punteros Operadores de punteros: «*» y «&» Operaciones con punteros Operaciones

Más detalles

Programación I Teoría II.

Programación I Teoría II. Programación I Teoría II http://proguno.unsl.edu.ar proguno@unsl.edu.ar MODULARIDAD FUNCIONES EN C Modularidad Principio para resolución de problemas: Dividir para reinar Modularidad Módulo Función Procedimiento

Más detalles

Las plantillas permiten definir funciones genéricas.

Las plantillas permiten definir funciones genéricas. Introducción (Genericidad). Plantillas de funciones o funciones genéricas. Sintaxis de plantillas. Ejemplos de declaraciones. A tener en cuenta Un ejemplo de plantilla de funciones: Máximo de un vector.

Más detalles

Algoritmos y estructuras de datos

Algoritmos y estructuras de datos 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

Más detalles

Tema 2. El lenguaje JAVA

Tema 2. El lenguaje JAVA Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias

Más detalles

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado.

Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. 1.6. EXPRESIONES CONCEPTO: Una expresión es una combinación de uno o más operandos y operadores para obtener un resultado. Los operandos pueden ser constantes, variables, otras expresiones e incluso funciones.

Más detalles

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main. LENGUAJE C CARACTERISTICAS DEL LENGUAJE 'C' El lenguaje 'C' se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan

Más detalles

Curso de Java Introducción a la Programación II

Curso de Java Introducción a la Programación II Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice

Más detalles

Apuntadores y Memoria dinámica. Apuntadores. M.C. Yolanda Moyao Martínez

Apuntadores y Memoria dinámica. Apuntadores. M.C. Yolanda Moyao Martínez Apuntadores y Memoria dinámica Apuntadores M.C. Yolanda Moyao Martínez Por que? Es la única forma de expresar algunos cálculos. Se genera código compacto y eficiente. Es una herramienta muy poderosa. Uso

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

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 Tipos de datos definibles en Tipos de datos definibles en Estructuras Uniones Campos de bits Definición de tipos con typedef 2 1 Estructuras

Más detalles

Programación Estructurada. Sesión 2:El lenguaje de programación C

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

Más detalles

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO.

UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. UNIVERSIDAD DE LOS ANDES NUCLEO UNIVERSITARIO RAFAEL RANGEL (NURR) DEPARTAMENTO DE FISICA Y MATEMATICA AREA COMPUTACION TRUJILLO EDO. TRUJILLO 1.- Resumen de Prog1 Comentarios es C++ Declaraciones de variables.

Más detalles

Lección 2 Introducción al lenguaje C

Lección 2 Introducción al lenguaje C Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)

Más detalles

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada.

Introducción a C. Grupo de Sistemas y Comunicaciones. Febrero 2008 C 1. Programación imperativa estructurada. Grupo de Sistemas y Comunicaciones gsyc-profes@gsyc.es Febrero 2008 C 1 C Características: Programación imperativa estructurada. Relativamente de bajo nivel. Lenguaje simple, la funcionalidad está en las

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

CAPITULO 6: FUNCIONES

CAPITULO 6: FUNCIONES CAPITULO 6: FUNCIONES 1. INTRODUCCIÓN Un problema de programación en C se resuelve descomponiéndolo en varias partes. Cada una de estas partes se puede asociar a una función que resuelva su fracción correspondiente

Más detalles

Una función es un miniprograma dentro de un programa. Las funciones contienen varias

Una función es un miniprograma dentro de un programa. Las funciones contienen varias TEMA 6. FUNCIONES. Una función es un miniprograma dentro de un programa. Las funciones contienen varias sentencias bajo un solo nombre, que un programa puede utilizar una o más veces para ejecutar dichas

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

Introducción a C++ y Code::Blocks

Introducción a C++ y Code::Blocks Introducción a C++ y Práctica Imperativo Clase 1 Luis Agustín Nieto Departamento de Computación, FCEyN,Universidad de Buenos Aires. 28 de mayo de 2010 Menu de esta Tarde Funcional Vs. Imperativo (Intérprete

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

Para crear un arreglo de cualquier tipo de elementos la sintaxis es:

Para crear un arreglo de cualquier tipo de elementos la sintaxis es: Arreglos (arrays) Un arreglo es una estructura de datos homogénea o conjunto de elementos del mismo tipo. En Java se pueden manejar arreglos de elementos de tipo primitivo (8 tipos primitivos hay en Java)

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

Clase 19/02/2013. Bibliografía recomendada. #include <stdio.h> void main() { printf("hola mundo\n"); } ENLAZADOR

Clase 19/02/2013. Bibliografía recomendada. #include <stdio.h> void main() { printf(hola mundo\n); } ENLAZADOR Bibliografía recomendada Introducción a la Programación en C. Apuntes de la asignatura 1 2.1 La función main: Hola Mundo Clase CODIGO FUENTE Archivo de texto *.c PREPROCESADOR ARCHIVOS DE CABECERA Archivo

Más detalles

Unidad 2: Estructuras de Datos estáticas y dinámicas.

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

Más detalles

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos

Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos Laboratorio 5 Tema 7. Tipos de Datos Estructurados: Arreglos, Registros y Archivos PARTE 1. Arreglos Unidimensionales o Vectores Un arreglo es una estructura de datos conformada por una sucesión de celdas,

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

Laboratorio de Arquitectura de Redes. Tipos de datos definibles en lenguaje C

Laboratorio de Arquitectura de Redes. Tipos de datos definibles en lenguaje C Laboratorio de Arquitectura de Redes Tipos de datos definibles en lenguaje C Tipos de datos definibles en lenguaje C Estructuras Uniones Campos de bits Definición de tipos con typedef Laboratorio de Arquitectura

Más detalles

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

Más detalles

El operador contenido ( ) permite acceder al contenido de

El operador contenido ( ) permite acceder al contenido de 3. Memoria Dinámica y Punteros Objetivos: Distinguir los conceptos de memoria estática y memoria dinámica Comprender el concepto de puntero como herramienta de programación Conocer cómo se definen y cómo

Más detalles

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez

Objetivo N 2. Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez Objetivo N 2 Conocer la Estructura General de un Programa en C++ Estructura de Datos Prof. Egilde Márquez * Un programa en C++ está definido por funciones (grupo de instrucciones que pueden o no hacer

Más detalles

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno

Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno 1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->

Más detalles

Lenguaje C, tercer bloque: Funciones

Lenguaje C, tercer bloque: Funciones Lenguaje C, tercer bloque: Funciones José Otero 1 Departamento de informática Universidad de Oviedo 28 de noviembre de 2007 Índice 1 Tipo puntero Concepto de puntero Operador dirección Operador indirección

Más detalles

Tipos de datos y Operadores Básicos

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?

Más detalles

PUNTEROS EN C (APUNTADORES)

PUNTEROS EN C (APUNTADORES) 2010 UNAN LEON Departamento de Computación Ing. En Sistemas Sabatino Autor: Ing: Karina Esquivel Alvarado. Asignatura: Programación Estructurada PUNTEROS EN C (APUNTADORES) TEMA 10: PUNTEROS (APUNTADORES)

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

Parte A: Tipos de Datos Elementales Ejercicio 1. Considerando el siguiente fragmento de código en C:

Parte A: Tipos de Datos Elementales Ejercicio 1. Considerando el siguiente fragmento de código en C: Análisis Comparativo de Lenguajes - Año 2017 Práctico Nro. 4 Tipos de Datos Elementales y Estructurados Corresponde a Cap. IV (Pratt en Español) Tipos de Datos págs. 107-181. Parte A: Tipos de Datos Elementales

Más detalles

Tipos de datos y operadores en C++

Tipos de datos y operadores en C++ Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar

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

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

Estructuras en C. ESTRUCTURAS EN C: Veamos primero un ejemplo de un programa que declara y usa estructura para representar a un cliente.

Estructuras en C. ESTRUCTURAS EN C: Veamos primero un ejemplo de un programa que declara y usa estructura para representar a un cliente. Estructuras en C INTRODUCCIÓN: Hasta ahora hemos trabajado con datos elementales (enteros, reales, caracteres) o con vectores (agregaciones de datos del mismo tipo). En ocasiones es necesario trabajar

Más detalles

* Operador de Indirección ( o de referencia ) ( o de desreferencia )

* Operador de Indirección ( o de referencia ) ( o de desreferencia ) PUNTEROS INTRODUCCION Una de las características más poderosas del C, es el puntero o apuntador. Los punteros permiten simular las llamadas por referencia y crear y manipular estructuras de datos dinámicas,

Más detalles

Tema 10: Tipos de datos definidos por el usuario

Tema 10: Tipos de datos definidos por el usuario Tema 10: Tipos de datos definidos por el usuario Indice 1. Introducción 2. Registros 2.1. Elementos de un registro 2.2 Arrays de registros 2.3. Registros con arrays 2.4. Registros con registros 2.5. Paso

Más detalles

Estructuración del programa en partes más pequeñas y sencillas

Estructuración del programa en partes más pequeñas y sencillas Introducción Estructuración del programa en partes más pequeñas y sencillas Modularización Propósito único Identificable Reusable Mayor claridad: programación, depuración, etc. Construcción de librerías

Más detalles

El lenguaje C. 1. Estructuras. Principios de Programación. 1.1. Definicion de estructuras

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

Más detalles

Programación Estructurada

Programación Estructurada Programación Estructurada PROGRAMACIÓN ESTRUCTURADA 1 Sesión No. 2 Nombre: El lenguaje de programación C Contextualización Una constante en todos los lenguajes de programación (viejos y nuevos) es la implementación

Más detalles

Notas de estructura de datos con lenguaje C. Estructuras de datos dinámicas

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

Más detalles

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria.

Punteros. Definición Un puntero es un dato que contiene una dirección de memoria. Punteros Definición Un puntero es un dato que contiene una dirección de memoria. NOTA: Existe una dirección especial que se representa por medio de la constante NULL (definida en ) y se emplea

Más detalles

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++

Memoria en C++ Punteros - Referencias Clases Y ahora, a trabajar! Memoria Dinámica en C++ Qué es una variable? Variables Memoria Matemática: una etiqueta que representa a un valor en una expresión: f (y) = y 2 + 2y Programación: Nombre simbólico dado a un valor residente en la memoria. Propiedades

Más detalles

INTRODUCCIÓN A LA POO EN C++

INTRODUCCIÓN A LA POO EN C++ INTRODUCCIÓN A LA POO EN C++ ÍNDICE DEL TEMA 1.- Introducción 2.- Diferencias C/C++ 3.- Programación orientada a objetos 4.- Aspectos avanzados C++ 1 1. Introducción Lenguaje C Lenguaje de propósito general

Más detalles

Programación estructurada (Introducción a lenguaje C)

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

Más detalles

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso:

Introducción a variables de tipo Puntero (Apuntadores) Contenidos. 1. Introducción a las variables puntero 2. Repaso: Contenidos 1. Introducción a las variables untero 2. Reaso: - oerador de dirección: & - referencias 3. Declaración de variables de tio untero 4. Inicialización de variables de tio untero - El untero nulo:

Más detalles

4. Estructuras (registros) Programación II, FCFM, BUAP

4. Estructuras (registros) Programación II, FCFM, BUAP 4. Estructuras (registros) Programación II, FCFM, BUAP Son colecciones de variables relacionadas bajo un nombre. Permiten agrupar variables del mismo o diferente tipo, bajo un mismo nombre. Inclusive puede

Más detalles

Programación I Unidad III. Tema: Tipos, estructuras y uniones

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

Más detalles

Introducción general al Lenguaje C (2010/2011)

Introducción general al Lenguaje C (2010/2011) Luis Valencia Cabrera lvalencia@us.es (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

Más detalles