Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Metodologa de la Programacin
Tema 0. Structs
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
1
ETSIIT
Universidad de Granada
Curso 2012-13
DECSAI (Universidad de Granada)
Metodologa de la Programacin
Curso 2012-13
1 / 22
Introduccin
Metodologa de la Programacin
Introduccin
Curso 2012-13
2 / 22
Definicin y sintaxis
Definicin y sintaxis
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
Definicin
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>;
};
Metodologa de la Programacin
Curso 2012-13
3 / 22
Metodologa de la Programacin
Curso 2012-13
4 / 22
Introduccin
Ejemplos
Introduccin
Ejemplos
Structs y class
Structs y class
Los struct son herramientas muy similares a las clases. Pueden
contener:
Especificadores de acceso
Mtodos miembro
Constructores y destructores
Diferencia:
Informacin sobre un alumno (NIF, nombre, curso, grupo,
calificaciones parciales).
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
Metodologa de la Programacin
Curso 2012-13
5 / 22
Curso 2012-13
6 / 22
Declaracin de variables
Declaracin de variables
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
Metodologa de la Programacin
Metodologa de la Programacin
Ejemplo
Alumno ahora, arrayAlumnos[10], matrizAlumnos[5][7];
Curso 2012-13
7 / 22
Metodologa de la Programacin
Curso 2012-13
8 / 22
Inicializacin
Inicializacin
Ejemplo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
struct Punto{
double x;
double y;
};
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
Punto origen = {0.0, 0.0};
Alumno estudiante = {"12345678Z", "Juan Sevilla", 1, B,
{0.0,0.0,0.0} };
Importante:
En general, <variable>.<miembro> es una variable y se comporta como
cualquier variable.
El operador flecha ( -> )
El operador flecha accede a un miembro a travs de la direccin de
memoria de una variable del tipo de la estructura.
Lo estudiaremos ms adelante.
Metodologa de la Programacin
Curso 2012-13
9 / 22
Operacin de asignacin
Metodologa de la Programacin
Curso 2012-13
10 / 22
Operacin de asignacin
Asignacin completa
Ejemplo
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
Alumno estudiante1 = {"12345678Z", "Juan Sevilla", 1, B,
{7.2,5.3,3.7} };
Alumno estudiante2;
estudiante2=estudiante1;
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
Alumno alumno;
alumno.NIF="26262727T";
...
alumno.notas[0]=7.2;
...
DECSAI (Universidad de Granada)
Metodologa de la Programacin
Curso 2012-13
11 / 22
Metodologa de la Programacin
Curso 2012-13
12 / 22
Metodologa de la Programacin
Curso 2012-13
13 / 22
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
1
Metodologa de la Programacin
Curso 2012-13
14 / 22
Metodologa de la Programacin
Curso 2012-13
15 / 22
El paso por referencia constante, pasa una referencia sobre el dato con el
que se quiere trabajar (con lo que evitamos una copia que puede ocupar
mucha memoria) pero lo protege para que no se pueda modificar el dato
original.
DECSAI (Universidad de Granada)
Metodologa de la Programacin
Curso 2012-13
16 / 22
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
Metodologa de la Programacin
Curso 2012-13
17 / 22
Metodologa de la Programacin
Curso 2012-13
18 / 22
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
struct Alumno{
string NIF;
string nombre;
int curso;
char grupo;
double notas[3];
};
int main(){
Alumno listaAlumnos[100];
Metodologa de la Programacin
listaAlumnos[0].NIF="26262727T";
...
cin >> listaAlumnos[3].notas[0];
...
listaAlumnos[1]=listaAlumnos[0];
Curso 2012-13
19 / 22
Metodologa de la Programacin
Curso 2012-13
20 / 22
Estructuras de estructuras
Estructuras de estructuras
Estructuras de estructuras
Introduccin
Definicin y sintaxis
2 Operaciones con estructuras
Declaracin de variables
Inicializacin
Operadores de acceso a miembros de
la estructura
Operacin de asignacin
Operaciones de entrada y salida
3 Paso de estructuras a funciones
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;
Metodologa de la Programacin
Curso 2012-13
21 / 22
Metodologa de la Programacin
Curso 2012-13
22 / 22