1 Chapter 11 Structured Types, Data Abstraction and Classes Dale/Weems/Headington.

Slides:



Advertisements
Presentaciones similares
FUNDAMENTALS OF THE JAVA PROGRAMMING LANGUAGE (SL-110) CAPÍTULO 5: DECLARACIÓN, INICIALIZACIÓN Y USO DE VARIABLES Ing. Ronald Criollo.
Advertisements

Curso de java básico (scjp)
Curso de java básico (scjp)
PROF. CARLOS RODRIGUEZ SANCHEZ COMP 242 Introducci Ó n a los Arreglos (arrays) en C++
Conceptos Básicos Prof. Carlos Rodríguez Sánchez
Uso de variables de tipo valor
Fundamentos de la Programación Estructurada
Clase 3: Punteros y Referencias
Desarrollo de Aplicaciones para Internet
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
Algoritmos y Estructuras de Datos
ESTRUCTURAS DE SECUENCIA
SOBRECARGA DE FUNCIONES
Estructuras de Datos Punteros y algo más.
Unidad 3 Punteros.
Vectores en java.
Tema 7: Polimorfismo Antonio J. Sierra. Índice Introducción. Sobrecarga de métodos. Objetos como parámetros. Paso de argumentos. Devolución de objetos.
CI TEORIA semana 8 Subprogramas o funciones Definición de funciones.
Chapter 7 Functions Dale/Weems/Headington. 2 Tópicos Capítulo 7 l Writing a Program Using Functional Decomposition l Writing a Void Function for a Task.
Métodos Algoritmos y Desarrollo de Programas I. Cuando utilizar métodos  Los métodos se utilizan para romper un problema en pedazos de forma que este.
POO Java Módulo 3 Elementos de programas Identificadores
Introducción a clases Programación Orientada a Objetos.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
POO en C++ Programación Orientada a Objetos. Declaración de clases con struct Las clases en C++ pueden definirse utilizando la construcción struct Ejemplo:
Tema 9 Estructuras.
SCJP Sun Certified Programmer for Java 6
1 Chapter 15 Pointers, Dynamic Data, and Reference Types Dale/Weems/Headington.
FUNCIONES EN C. SOBRE FUNCIONES... Caja negra in_1 in_N out_1 In_2 Función: Nombre. (Con el cual es invocada). Entradas. (Parámetros de la función). Salida.
Introducción a los punteros
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
Programación III Clase 06 Funciones.
Numeric Types, Expressions, and Output
Índice. Revisando conceptos acerca de la memoria.
Estructuras.
Algoritmos y Desarrollo de Programas I
TABLAS Definición. El tipo tabla permite definir objetos formados por un conjunto de elementos del mismo tipo. Ejemplos. El tipo tabla se utiliza para.
1 Chapter 12 Arrays Dale/Weems/Headington. 2 Chapter 12 Topics l Declaring and Using a One-Dimensional Array l Passing an Array as a Function Argument.
ELO3201 Vectores (Vector) Agustín J. González ELO320.
Unidad VI Registros (estructuras, uniones y enumeraciones)
Tipo de Datos Básicos.
PUNTEROS Ing Anghello Quintero.
El lenguaje de programación C - Vectores y matrices -
ELO3201 C++ Biblioteca Estándar de Templates Standar Template Library Agustín J. González ELO320.
Manejo de Punteros y objetos en memoria dinámica en C++
Elementos básicos del lenguaje
Unidad II Introducción a la programación en C++
Programación Técnica1UVM Tipos de Datos. Programación Técnica2UVM.
Programación en C para electrónicos
Elementos básicos del lenguaje
1 Definición y Conversión de datos Agustín J. González ELO-329.
1 Algunas ideas básicas en C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
Los punteros Programación modular.
Registros Prof. Flor Narciso Departamento de Computación Escuela de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Los Andes.
Funciones y Clases Amigas (Friend)‏ Miembros Estáticos (Static)
Modularización (Funciones) Prof. Miguel Vélez Rubio.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
1 Algunas ideas básicas de C++ Agustín J. González ELO-329.
INTRODUCCION A LA PROGRAMACION
Empleando apuntadores una función puede entregar múltiples resultados / /Esta función no funciona #include void intercambiaValores(float a, float b) {
6. Clases y Métodos..  6.1 Structs  6.2 Funciones  6.3 Namespaces  6.4 Clases.
ARREGLOS. La sintaxis para declarar e inicializar un array será: Tipo_de_variable[ ] Nombre_del_array = new Tipo_de_variable[dimensión]; También podemos.
1 Definición y Conversión de datos Agustín J. González ELO-329.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Reutilización de código Elementos básicos del lenguaje Java Definición de variables, expresiones y asignaciones Fundamentos de Programación Departamento.
PROF. RAFAEL MONTENEGRO B. UNELLEZ-APURE Introducci Ó n a los Arreglos (“arrays”) en C++
3.6 Manejo de E/S Estructuras En la creación de soluciones para algunos problemas surge la necesidad de agrupar datos de diferente tipo o de manejar datos.
Computación I :: Prof. Yeniffer Peña Lenguaje C Presentación Computación I.
Fundamentos básicos del lenguaje C#. Parte 1 Introducción a C#
Transcripción de la presentación:

1 Chapter 11 Structured Types, Data Abstraction and Classes Dale/Weems/Headington

2 Chapter 11 Topics l Meaning of a Structured Data Type Declaring and Using a struct Data Type C++ union Data Type

3 C++ Data Types structured array struct union class address pointer reference simple integral enum char short int long bool floating float double long double

4 Tipo de dato Structured El tipo de dato “structured” tiene la particularidad de que cada valor es una colección de items. l Toda la colección tiene un solo nombre l Cada componente (item) puede ser acedido individualmente

5 Structured Type (Cont.) A menudo en los programas tenemos información relacionada de varios tipos de datos que queremos almacenar juntos para un acesso más conveniente debajo del mismo “identifier”, por ejemplo...

6 thisAnimal 5000.id name “giant panda”.genus “Ailuropoda”.species “melanoluka”.country “China”.age 18.weight health Good

7 anotherAnimal 6000.id name “llama”.genus “Lama”.species “peruana”.country “Peru”.age 7.weight health Excellent

8 struct AnimalType enum HealthType { Poor, Fair, Good, Excellent } ; struct AnimalType// declares a struct data type {// does not allocate memory long id ; string name ; string genus ; string species ; struct members string country ; int age ; float weight ; HealthType health ; } ; AnimalType thisAnimal ; // declare variables of AnimalType AnimalType anotherAnimal ; 8

9 Declaración del tipo struct SYNTAXIS struct TypeName // does not allocate memory { MemberList } ; MemberList SYNTAXIS DataType MemberName ;.

10 Declaración (continuación) La declaración de struct nombra los tipos y nombres de los miembros de la estructura. Esta declaración no separa espacio en memoria para ninguna de las variables mencionadas. Para eso, se necesita declarar las variables.

11 Más sobre las declaraciones tipo struct Si la declaración precede a todas las funciones, entonces todas esas funciones la pueden reconocer. Si se pone dentro de una función, solo la puede utilizar esa función. Es común definir estas estructuras en archivos tipo “header” (.h) los cuales son invocados con la directiva #include. Es posible que miembros de otras estructuras tengan los mismos “identifiers”(nombres de variables). También es posible usar los mismos “dentifiers” en variables que no esten dentro de una estructura como tal.

12 Acceder miembros de un struct Dot ( punto ) es el “member selection operator”. Despues de ser declarados, los miembros puedes ser usados precedidos del nombre de la estructura, el punto y el nombre de la variable al final. EJEMPLOS thisAnimal.weight anotherAnimal.country

13 Operaciones Válidas en los miembros de una estructura de acuerdo a su tipo de dato thisAnimal.age = 18; thisAnimal.id = ; cin >> thisAnimal.weight; getline ( cin, thisAnimal.species ); thisAnimal.name = “giant panda”; thisAnimal.genus[ 0 ] = toupper (thisAnimal.genus[ 0 ] ) ; thisAnimal.age++;

14 Operación “Aggregate” Es una operación en una estructura de datos como un todo, al contrario de las otras operaciones en que se trabajan los datos individualmente

15 Operaciones de una estructura Aggregate l I/O, aritmética, y comparaciones de la estructura completa no es permitido. l operaciones válidas que incluyan una estructura completa son: n asignaciones de una estructura a otra del mismo tipo, n pasar a una función como argumento (por valor o por referencia), n devolver (return) como un valor de una función

16 Ejemplos de operaciones válidas del aggregate struct anotherAnimal = thisAnimal ; // assignment WriteOut(thisAnimal); // value parameter ChangeWeightAndAge(thisAnimal); // reference parameter thisAnimal = GetAnimalData( ); // return value of function Ahora vienen 3 funciones que nos muestra el uso de esta estructura...

17 void WriteOut( /* in */ AnimalType thisAnimal) // Prints out values of all members of thisAnimal // Precondition: all members of thisAnimal are assigned // Postcondition: all members have been written out { cout << “ID # “ << thisAnimal.id << thisAnimal.name << endl ; cout << thisAnimal.genus << thisAnimal.species << endl ; cout << thisAnimal.country << endl ; cout << thisAnimal.age << “ years “ << endl ; cout << thisAnimal.weight << “ lbs. “ << endl ; cout << “General health : “ ; WriteWord ( thisAnimal.health ) ; } 17

18 void ChangeAge ( /* inout */ AnimalType& thisAnimal ) // Adds 1 to age // Precondition: thisAnimal.age is assigned // Postcondition: thisAnimal.age == + 1 { thisAnimal.age++ ; } Pasando un tipo struct por Referencia

19 AnimalType GetAnimalData ( void ) // Obtains all information about an animal from keyboard // Postcondition: // Function value == AnimalType members entered at kbd { AnimalType thisAnimal ; char response ; do {// have user enter all members until they are correct. } while (response != ‘Y’ ) ; return thisAnimal ; } 19

20 Estructuras Jerárquicas El miembro de una estructura, puede ser otra estructura como tal. Esto se conoce como “nested or hierarchical structures”. Las estructuras Jerárquicas son útiles cuando existe mucha información detallada en un record. POR EJEMPLO...

21 struct MachineRec La información de cada máquina contiene: un idNumber, una descripción escrita, la fecha de compra (“purchase date”), el costo, y un historial (incluye “failure rate”, “number of days down”, y fecha del último servicio).

22 struct DateType {int month ; // Assume int day ;// Assume int year ; // Assume }; struct StatisticsType {floatfailRate ; DateTypelastServiced ; // DateType is a struct type intdownDays ; } ; struct MachineRec {int idNumber ; string description ; StatisticsType history ; // StatisticsType is a struct type DateType purchaseDate ; float cost ; } ; MachineRec machine ; 22

23 struct type variable machine 7000.idNumber.description. history.purchaseDate.cost.month.day.year 5719 “DRILLING…” failrate.lastServiced.downdays month.day.year machine.history.lastServiced.year has value 1999

24 Uniones en C++ DEFINICIÓN Una unión es una estructura que maneja sólo uno de sus miembros a la vez durante la ejecución del programa. EJEMPLO union WeightType { long wtInOunces ; int wtInPounds; only one at a time float wtInTons; } ;

25 Utilizando “Unions” union WeightType// declares a union type { long wtInOunces ; int wtInPounds; float wtInTons; } ; WeightType weight;// declares a union variable weight.wtInTons = 4.83 ; // Weight in tons is no longer needed. Reuse the memory space. weight.wtInPounds = 35; 25