Informática I para Bachillerato



Documentos relacionados
Informática I para Bachillerato

Informática I para Bachillerato

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

Índice. Estructuras de datos en Memoria Principal. Vectores. Matrices. Cadenas de caracteres. Estructuras. Estructuras de datos en Memoria Externa

PROGRAMACION ORIENTADA A OBJETOS EN C++

Apuntadores en C y C++

Objetivos de la sesión. Aplicación de consola 7/30/11. Código con que se inicia un programa en Visual C# (aplicación de consola)

Elementos de un programa en C

Unidad IV Arreglos y estructuras. M.C. Juan Carlos Olivares Rojas

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

Programación Orientada a Objetos en C++

Lenguaje C, tercer bloque: Funciones

Sintaxis de los aspectos generales de un lenguaje de programación

Fundamentos de Informática 4. Primeros Programas, Primeros Diseños

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

Tema 16: Tipos de datos estructurados en lenguaje C

Carlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas

Modulo 11. Clases y Objetos en Java

Formato para prácticas de laboratorio

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

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

Introducción al Lenguaje de Programación C

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLÓGICOS ESCUELA DE COMPUTACION

Programación 1 Tema 3. Información, datos, operaciones y expresiones

Tema 6: Memoria dinámica

Clases y Objetos en C++

Lenguaje de Programación: C++ Estructuras de control:switch

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

TEMA 7: Ficheros. TEMA 7: Ficheros Concepto de fichero

TEMA 7. ARRAYS (LISTAS Y TABLAS).

CAPITULO 2: VARIABLES Y CONSTANTES

Procesos e Hilos en C

Unidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.

Laboratorio de Arquitectura de Redes. Introducción al lenguaje C

LABORATORIO #1 INTRODUCCIÓN AL LENGUAJE DE PROGRAMACIÓN C++

Programación C++ (1 Parte) Dr. Oldemar Rodríguez Rojas Escuela De Informática Universidad Nacional

Programación. Test Autoevaluación Tema 6

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

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

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

PROGRAMACION ESTRUCTURADA: Tema 1. El lenguaje de programación C

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

Unidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.

Java Avanzado Facultad de Ingeniería. Escuela de computación.

En el siguiente ejemplo se declara un registro y luego variables de ese tipo de registro:

Capítulo 3. Introducción a la programación. Continuar

Laboratorio de Arquitectura de Redes. Datos en lenguaje C

Programación n Orientada a Objetos Sentencias Java Parte I. Ing. Julio Ernesto Carreño o Vargas MsC.

12. Tipos de atributos

Los constructores son funciones miembro especiales que sirven para inicializar un objeto de una determinada clase al mismo tiempo que se declara.

Programación Estructurada

Sentencias de salto: break, continue, goto Sentencia de Salto: break

Tema 6: Clases. Índice

ESTRUCTURA DE DATOS. Memoria estática Memoria dinámica Tipo puntero Declaración de punteros Gestión de memoria dinámica Resumen ejemplo

Instituto Tecnológico de Celaya

ASIGNATURA PROGRAMACIÓN EN C++ GUÍA: 1 DOCENTE. LIZETH CORTÉS VARIABLES C++

CAPITULO 6: FUNCIONES

Programación Orientada a Objetos. Resumen de Temas Unidad 3: Constructores y destructores

Programación Orientada a Objetos Sentencias Java Parte I Ing. Julio Ernesto Carreño Vargas MsC.

Introducción a Java. Introducción a Java. Programación I

Tema 10: Arreglos estáticos en C

Introducción al Lenguaje "C++"

PROGRAMACION / Clave: 11214

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

Programación Orientada a Objetos (POO)

Manual de turbo pascal

PRINCIPIOS DE PROGRAMACIÓN. Mtro. en Ingeniería de Software. Especialidad en e-commerce Ismael Jiménez Hernández

USO DE SUBRUTINAS, TRANSMISIÓN DE PARÁMETROS Y COMPILACIÓN CONDICIONAL EN C++

PROGRAMACIÓN EN LENGUAJE C VARIABLES Y CONSTANTES

Tema 4. Control de flujo. Programación Programación - Tema 4: Control de Flujo

DEFINICIONES BÁSICAS DE LAS ESTRUCTURAS DE DATOS

UNIDAD 4 ESTRUCTURAS Y UNIONES

Introducción a la. Programación con

Transcripción:

CIMAT C++ C/C++ de Datos CIMAT Sesión 15

Una estructura es un grupo de variables las cuales pueden ser de diferentes tipos sostenidas o mantenidas juntas en una sola unidad, a diferencia de los arreglos que solo pueden contener un mismo tipo de dato. Las estructuras de datos se emplean con el objetivo principal de organizar los datos contenidos dentro de la memoria de la PC. Así, nuestra primera experiencia con estructuras comienza desde el momento mismo en que usamos en nuestros programas variables de tipos primitivos (char, short, int, float, etc).

Sintaxis En C/C++ se forma una estructura utilizando la palabra reservada struct, seguida por un campo etiqueta opcional conocida como rótulo de la estructura, y luego una lista de miembros dentro de la estructura. La etiqueta opcional se utiliza para crear otras variables del tipo particular de la estructura: 1 s t r u c t [ <nombre t i p o de e s t r u c t u r a > ] { 2 [< t i p o > <nombre v a r i a b l e [, nombre v a r i a b l e,... ] > ] ; 3 [< t i p o > <nombre v a r i a b l e [, nombre v a r i a b l e,... ] > ] ; 4... 5 } [ < v a r i a b l e s de e s t r u c t u r a > ] ; Un punto y coma finaliza la definición de una estructura puesto que ésta es realmente una sentencia C/C++.

Sintaxis: Caso uno, estructura anónima De acuerdo con la sintaxis general de la orden struct es posible crear estructuras de datos anónimas. Solamente hay que tener en cuenta que en una declaración anónima se debe definir al menos una variable al final de la declaración. Por ejemplo, con el siguiente fragmento de código: Ver código 1 1 s t r u c t { 2 i n t a ; 3 i n t b ; 4 } p1 ; se declara y define la variable estructurada p1, misma que se compone por los miembros a y b; ambos del tipo int.

Ahora bien, la sintaxis mostrada no es tan común ni conveniente, ya que con la misma solamente se esta creando una variable estructurada pero no un nuevo tipo. Es decir, si deseáramos tener otra variable que tuviera las mismas características que posee la variable p1, necesitaríamos escribir exactamente la misma instrucción, salvo que cambiando el nombre de la variable. Por ejemplo: 1 s t r u c t { i n t a, b ; } p2 ; Por supuesto, en una misma ĺınea de instrucción podemos definir más de una variable. Ejemplo: 1 s t r u c t { i n t a, b ; } p1, p2 ; Entonces, para crear nuevos tipos con struct deberemos de modificar la sintaxis mostrada en los ejemplos anteriores.

Sintaxis: Caso dos, estructura con nombre Observe que, la sintaxis para declarar estructuras con nombre es bastante parecida a la sintaxis para declarar estructuras anónimas; salvo que una declaración de estructura con nombre se debe especificar el nombre deseado para la misma. Además, en una declaración de estructura con nombre la o las variables definidas al final de la misma son opcionales. 1 s t r u c t p a r e j a { i n t a, b ; } p1 ; Observación En el fragmento de código anterior se declara la estructura identificada como pareja, misma que se compone de los miembros a y b, ambos de tipo int. En el mismo ejemplo, se define la variable p1; la cual es una variable estructurada de tipo pareja.

Uso del nombre Una vez que una estructura con nombre ha sido creada, la misma puede ser usada para declarar cualquier número de variables. Por ejemplo, en el siguiente fragmento de código se crea la estructura tiempo compuesta por los miembros hora, minuto y segundo; todos del tipo int. En el mismo ejemplo, se declaran las variables t1 y t2. 1 / d e c l a r a c i ó n de e s t r u c t u r a tiempo / 2 s t r u c t tiempo { i n t hora, minuto, segundo ; } ; 3 4 / d e c l a r a c i ó n de v a r i a b l e s de t i p o tiempo / 5 s t r u c t tiempo t1, t2 ; Nota En C++ puede obviarse la palabra struct a la hora de declarar variables. Así, en C++ la ĺınea de instrucción struct tiempo t1, t2; ( del ejemplo anterior) puede escribirse como: tiempo t1, t2;

Acceso a los miembros de una estructura En orden de poder leer o escribir uno de los miembros de una variable estructurada se debe usar el operador de acceso (. ), o sea, el nombre de la variable seguida por un punto seguido por el nombre del miembro o componente deseado de la estructura. Por ejemplo, para acceder a los miembros de la variable t1 (mostrada arriba) podemos hacerlo de la siguiente manera: Ejemplo 1 t1. hora = 1 2 ; 2 t1. minuto = 0 ; 3 t1. segundo = 0 ; 4 5 p r i n t f ( %i \n, t1. hora ) ;

anidadas Los miembros de una estructura pueden ser ellos mismos otra estructura previamente identificada o bien una estructura anónima. Por ejemplo, en el siguiente fragmento de código se crean las estructuras pareja y pareja2. Obsérvese cómo dentro de los miembros de pareja2 se declara el miembro X, mismo que es una estructura del tipo pareja. Luego, las variables declaradas a raíz de la estructura pareja2 poseerán los miembros variables a y b heredados de pareja, y c. 1 s t r u c t p a r e j a { i n t a, b ; } ; 2 s t r u c t p a r e j a 2 { s t r u c t p a r e j a X ; i n t c ; } P3 ;

Acceso en este caso Ahora bien, para acceder a los miembros de una estructura dentro de otra estructura se emplea el mismo mecanismo de acceso (el punto). Por ejemplo, para desplegar el miembro a de la variable P3 declarada en el ejemplo anterior, lo haremos más o menos así: 1 p r i n t f ( %i \n, P3. X. a ) ;

Declaración de una estructura 1 #i n c l u d e <s t d i o. h> 2 3 s t r u c t punto { 4 i n t x ; 5 i n t y ; 6 } ; 7 s t r u c t l i n e a { 8 punto p1 ; 9 punto p2 ; 10 } ; 11 12 i n t main ( ) { 13 r e t u r n 0 ; 14 }

Ejemplo de uso de las estructuras descritas 1 i n t main ( ) { 2 l i n e a l 1 ; 3 l 1. p1. x =1; 4 l 1. p1. y =1; 5 l 1. p2. x =2; 6 l 1. p2. y =2; 7 p r i n t f ( La l i n e a l 1 pasa por l o s puntos ( %d, %d ),( %d, %d ) \n, l 1. p1. x, l 1. p1. y, l 1. p2. x, l 1. p2. y ) ; 8 r e t u r n 0 ; 9 }

Herencia El termino herencia se usa con gran frecuencia en Programación Orientada al Objeto, y se le relaciona principalmente con las clases. Sin embargo, la herencia está presente siempre y cuando una estructura struct posea a otra estructura. En ese sentido, en C++ se presentan dos tipos de herencia: herencia por agregación o composición. herencia por extensión. Por ejemplo, en la definición de las estructuras pareja y pareja2, se dice que pareja2 hereda por composición todos los miembros de pareja. Ahora, en el siguiente ejemplo se usa la sintaxis para que la estructura pareja2 herede por extensión los miembros de pareja: 1 // s o l o C++ 2 s t r u c t p a r e j a { i n t a, b ; } ; 3 s t r u c t p a r e j a 2 : p a r e j a { i n t c ; } P3 ;

La palabra reservada proporciona un mecanismo para la creación de sinónimos para tipos de datos anteriormente definidos. Por lo cual los nombres de los tipos de estructura se declaran comúnmente utilizando. Por ejemplo: 1 t y p e d e f s t r u c t p a r e j a 2 P a r e j a ;

Hay que advertir que en C++ es muy frecuente utilizar en la declaración de estructuras. De hecho, los ficheros de cabecera de los compiladores C++ están repletos de ellos. Es muy frecuente que utilicen expresiones como: 1 t y p e d e f s t r u c t { 2 u n s i g n e d c h a r curp ; // C u r r e n t a c t i v e p o i n t e r 3 u n s i g n e d c h a r b u f f e r ; // Data t r a n s f e r b u f f e r 4 i n t l e v e l ; // f i l l /empty l e v e l o f b u f f e r 5... 6 u n s i g n e d c h a r token ; // Used f o r v a l i d i t y c h e c k i n g 7 } FILE ; // This i s the FILE o b j e c t

Necesario??? Es posible crear un al mismo tiempo que se declara una estructura, con o sin nombre, como se ve en los ejemplos. Generalmente no se necesitan un y un nombre al mismo tiempo, ya que cualquiera de ellos sirve para las declaraciones. 1 t y p e d e f s t r u c t m y s t r u c t {.. ;.. ; } MST; 2 MST s, ps, a r r s [ 1 0 ] ; // i g u a l que s t r u c t m y s t r u c t s, e t c. 3 t y p e d e f s t r u c t {.. ;.. ; } YST ; // s i n nombre 4 YST y, yp, a r r y [ 2 0 ] ;

Crear un tipo de dato estudiante que contenga: nombre(hasta 30 caracteres) punto extra 3er Parcial Crear un programa que permita meter los datos de 5 estudiantes, y que imprima todos los datos de un estudiante al ingresar la matricula del estudiante.

Crear un tipo de dato estudiante que contenga: nombre(hasta 30 caracteres) matricula(hasta 5 dígitos) punto extra 3er Parcial Crear un programa que permita meter los datos de 5 estudiantes, y que imprima todos los datos de un estudiante al ingresar la matricula del estudiante.

Crear un tipo de dato estudiante que contenga: nombre(hasta 30 caracteres) matricula(hasta 5 dígitos) carrera(hasta 30 caracteres) punto extra 3er Parcial Crear un programa que permita meter los datos de 5 estudiantes, y que imprima todos los datos de un estudiante al ingresar la matricula del estudiante.

Crear un tipo de dato estudiante que contenga: nombre(hasta 30 caracteres) matricula(hasta 5 dígitos) carrera(hasta 30 caracteres) semestre(un dígito) punto extra 3er Parcial Crear un programa que permita meter los datos de 5 estudiantes, y que imprima todos los datos de un estudiante al ingresar la matricula del estudiante.

Crear un tipo de dato estudiante que contenga: nombre(hasta 30 caracteres) matricula(hasta 5 dígitos) carrera(hasta 30 caracteres) semestre(un dígito) promedio(con decimales) punto extra 3er Parcial Crear un programa que permita meter los datos de 5 estudiantes, y que imprima todos los datos de un estudiante al ingresar la matricula del estudiante.

Bases Herramientas Estructura de un videojuego

Bases Herramientas La función básica de un juego seria la siguiente: 1 M i e n t r a s ( no f i n a l i c e ) { 2 P r o c e s a r E n t r a d a s ( ) ; 3 A c t u a l i z a r G r a f i c o s ( ) ; 4 A c t u a l i z a r S o n i d o ( ) ; // s i hay s o n i d o 5 M o s t r a r G r a f i c o s ( ) ; 6 R e p r o d u c i r S o n i d o s ( ) ; // s i hay s o n i d o 7 }

Bases Herramientas Puyo puyo Puyo Puyo es un juego de rompecabezas fue inspirado por ciertos elementos de los juegos Tetris y Dr. Mario. El objetivo del juego es derrotar al oponente en una batalla llenando su área de juego hasta la parte superior de la pantalla con basura. Los Puyos, pequeñas criaturas gelatinosas con ojos, caen desde la parte superior de la pantalla en pares de distintos colores. El par puede moverse de izquierda a derecha, y rotarse 90 en sentido de las manecillas del reloj o en sentido contrario. La pareja cae hasta tocar el suelo del área de juego u otro par de puyos, siguiendo las leyes de la gravedad. El par se rompe, de modo que el otro puyo cae libremente hasta que el caigan en otro puyo o en la parte inferior de la pantalla.

Bases Herramientas Puyo puyo Cuando cuatro o más puyos del mismo color forman un grupo en el que están unidos horizontal o verticalmente, explotan y desaparecen. A esto se le llamada Cadena. Cuando los puyos desaparecen, aquellos que están encima de ellos caen hasta aterrizar en otras piezas o en la parte inferior de la pantalla. Los Combos se crean del mismo modo, cuando se forma un grupo de más de cuatro puyos, o más de un grupo se forma al tiempo. Todos los puyos del combo son borradas al mismo tiempo. Las Reacciones en Cadena, se crean cuando los puyos que caen, ya por acción del jugador o por unos puyos que caen de una cadena anterior, causan una reacción en cadena donde los grupos de puyos se borran, uno por vez.

Bases Herramientas Puyo puyo Hay más reglas y opciones pero por el momento intentaremos programar estas.

Bases Herramientas Versión simplificada de Puyo puyo

Bases Herramientas Crear la función goto xy 1 #i n c l u d e <s t d i o. h> 2 #i n c l u d e <windows. h> 3 i n t g o t o x y ( i n t x, i n t y ) { 4 COORD coord ; 5 coord. X = x ; 6 coord. Y = y ; 7 S e t C o n s o l e C u r s o r P o s i t i o n ( GetStdHandle ( STD OUTPUT HANDLE), coord ) ; 8 r e t u r n 0 ; 9 } 10 11 i n t main ( i n t argc, c h a r a r g v [ ] ) { 12 system ( c l s ) ; 13 g o t o x y ( 1 0, 1 0 ) ; 14 p r i n t f ( HOLA MUNDO ) ; 15 r e t u r n 0 ; 16 }

Bases Herramientas Como Programar en C/C++, Deitel (Prentice Hall), 2da Edición. Programming Principles and Practice Using C++, Bjarne Stroustrup. http://www.codeblocks.org http://www.wxwidgets.org