Top Banner
Metodología de la Programación Tema 0. Structs Departamento de Ciencias de la Computación e I.A. ETSIIT Universidad de Granada Curso 2012-13 DECSAI (Universidad de Granada) Metodología de la Programación Curso 2012-13 1 / 22 Contenido del tema 1 Introducción Definición y sintaxis 2 Operaciones con estructuras Declaración de variables Inicialización Operadores de acceso a miembros de la estructura Operación de asignación Operaciones de entrada y salida 3 Paso de estructuras a funciones 4 Peculiaridad de arrays o matrices miembros de una estructura 5 Arrays y matrices de estructuras 6 Estructuras de estructuras DECSAI (Universidad de Granada) Metodología de la Programación Curso 2012-13 2 / 22 Introducción Contenido del tema 1 Introducción Definición y sintaxis 2 Operaciones con estructuras Declaración de variables Inicialización Operadores de acceso a miembros de la estructura Operación de asignación Operaciones de entrada y salida 3 Paso de estructuras a funciones 4 Peculiaridad de arrays o matrices miembros de una estructura 5 Arrays y matrices de estructuras 6 Estructuras de estructuras DECSAI (Universidad de Granada) Metodología de la Programación Curso 2012-13 3 / 22 Introducción Definición y sintaxis Definición y sintaxis Definición Las estructuras o registros son tipos de dato compuestos que se definen a partir de elementos de otros tipos. Sintaxis struct <NombreEstructura> { <tipo1><miembro1>; <tipo2><miembro2>; ... ... <tipon><miembron>; }; La estructura tiene un nombre <NombreEstructura> que es el nombre del tipo de dato. Cada miembro tiene un nombre asociado <miembroX> que nos permitirá referenciarlo. DECSAI (Universidad de Granada) Metodología de la Programación Curso 2012-13 4 / 22
6
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • Metodologa de la Programacin

    Tema 0. Structs

    Departamento de Ciencias de la Computacin e I.A.

    ETSIIT Universidad de Granada

    Curso 2012-13

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 1 / 22

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 2 / 22

    Introduccin

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 3 / 22

    Introduccin Definicin y sintaxis

    Definicin y sintaxis

    Definicin

    Las estructuras o registros son tipos de dato compuestos que se definen apartir de elementos de otros tipos.

    Sintaxis

    struct {

    ;

    ;

    ... ...

    ;

    };

    La estructura tiene un nombre que es el nombre deltipo de dato. Cada miembro tiene un nombre asociado quenos permitir referenciarlo.

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 4 / 22

  • Introduccin Ejemplos

    Ejemplos

    Definicin de un punto en el plano (con coordenadas x, y).

    struct Punto{double x;double y;

    };

    Informacin sobre un alumno (NIF, nombre, curso, grupo,calificaciones parciales).

    struct Alumno{string NIF;string nombre;int curso;char grupo;double notas[3];

    };

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 5 / 22

    Introduccin Structs y class

    Structs y class

    Los struct son herramientas muy similares a las clases. Puedencontener:

    Especificadores de accesoMtodos miembroConstructores y destructores

    Diferencia:

    Los miembros de una estructura son por defecto public ( privateen class ).

    Habitualmente usaremos struct en lugar de class cuando la clasees muy simple y no necesita mtodos (comportamiento): servira comoforma de agrupar los datos que contiene.

    Los struct suelen usarse a menudo para ayudar a definir estructurasde datos.

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 6 / 22

    Operaciones con estructuras

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 7 / 22

    Operaciones con estructuras Declaracin de variables

    Declaracin de variables

    struct Alumno{string NIF;string nombre;int curso;char grupo;double notas[3];

    };

    Ejemplo

    Alumno ahora, arrayAlumnos[10], matrizAlumnos[5][7];

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 8 / 22

  • Operaciones con estructuras Inicializacin

    Inicializacin

    Una estructura se puede inicializar en la declaracin usando la mismanotacin que para inicializar arrays.

    Ejemplo

    1 struct Punto{2 double x;3 double y;4 };5 struct Alumno{6 string NIF;7 string nombre;8 int curso;9 char grupo;

    10 double notas[3];11 };12 Punto origen = {0.0, 0.0};13 Alumno estudiante = {"12345678Z", "Juan Sevilla", 1, B,14 {0.0,0.0,0.0} };

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 9 / 22

    Operaciones con estructuras Operadores de acceso a miembros de la estructura

    Operadores de acceso a valores miembros de la estructura

    Los miembros de una estructura se acceden mediante:

    El operador punto ( . )Accede a un miembro a travs del nombre de la variable del tipo de laestructura.

    Punto punto={7.5, 2.3};

    cout

  • Operaciones con estructuras Operaciones de entrada y salida

    Operaciones de entrada y salida

    En principio, se deben realizar individualmente sobre cada valor miembro dela estructura, y consiste en combinar las operaciones de entrada y salidacon las operaciones de acceso a valores miembro.

    Punto punto;...cout>punto.x;cout

  • Peculiaridad de arrays o matrices miembros de unaestructura

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 17 / 22

    Peculiaridad de arrays o matrices miembros de unaestructura

    Peculiaridad de arrays o matrices miembros de una

    estructura

    No es vlida la asignacin directa de arrays:int v1[50], v2[50];

    v2 = v1;

    Se produce un error ya que las copias de arrays se deben hacercomponente a componente.

    Sin embargo, s que es vlido lo siguiente:

    struct array50int{int util; // num de elementos usadosint miarray[50];

    };array50int v1, v2;...v2 = v1;

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 18 / 22

    Arrays y matrices de estructuras

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 19 / 22

    Arrays y matrices de estructuras

    Arrays y matrices de estructuras

    El acceso a los diferentes miembros de las estructuras, se realizacombinando el acceso a los elementos de la matriz con las operaciones deacceso a los miembros de la estructura.

    struct Alumno{string NIF;string nombre;int curso;char grupo;double notas[3];

    };int main(){

    Alumno listaAlumnos[100];

    listaAlumnos[0].NIF="26262727T";...cin >> listaAlumnos[3].notas[0];...listaAlumnos[1]=listaAlumnos[0];

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 20 / 22

  • Estructuras de estructuras

    Contenido del tema

    1 Introduccin

    Definicin y sintaxis2 Operaciones con estructuras

    Declaracin de variables

    Inicializacin

    Operadores de acceso a miembros de

    la estructura

    Operacin de asignacin

    Operaciones de entrada y salida3 Paso de estructuras a funciones

    4 Peculiaridad de arrays o matrices

    miembros de una estructura5 Arrays y matrices de estructuras6 Estructuras de estructuras

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 21 / 22

    Estructuras de estructuras

    Estructuras de estructuras

    Como caso particular, un valor miembro de una estructura puede ser asu vez otra estructura.

    struct Punto{double x;double y;

    };struct Circulo{

    Punto centro;double radio;

    };Circulo circulo1={{5.0,4.0},10.0};Circulo circulo2;circulo2.centro.x=7.2;circulo2.centro.y=5.2;circulo2.radio=3.0;

    DECSAI (Universidad de Granada) Metodologa de la Programacin Curso 2012-13 22 / 22