Guia#11: Tema: Estructuras en C#.

Documentos relacionados
Guia#12: Tema: Archivos en C#.

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

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

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)

Tema: Introducción al IDE de Microsoft Visual C#.

GUIA 2: Repaso sobre uso de C#. Funciones, métodos y arreglos.

ESTRUCTURAS DE CONTROL Y DE SELECCIÓN

Tema 7.- Fundamentos de la Programación Orientada a Objetos

Tema: Entorno a C# y Estructuras Secuenciales.

Tema: Clases y Objetos en C#. Parte II.

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

Programación III. 1. Facultad: Ingeniería Escuela: Computación Asignatura:Programación III I. OBJETIVOS II. INTRODUCCIÓN TEÓRICA

Guía - Taller # 2 (JAVA)

1. Cuántas sentencias hay en la secuencia principal del siguiente programa?

Estatutos de Control C# Estatutos de Decisión (Selección)

Los nombres y marcas comerciales mencionados en este manual son propiedad de sus respectivos autores o fabricantes.

PROGRAMA DE ASIGNATURA DE PROGRAMACIÓN I

Taller: Introducción a Windows Communication Foundation

Fundamentos de Programación Visual Basic

Tema: Métodos de Ordenamiento. Parte 1.

Crear una Nueva Solución Vacía:

Sistema de Información de Compras y Contrataciones del Estado (SICE) Gestión de pedidos para compras centralizadas

Un identificador le da nombre único a un elemento en un programa (Variables, procedimientos, etc.). No puede contener operadores como + - * /

Agenda..NET C# Laboratorio #1

FACULTAD DE INGENIERÍA

Conexión SQL Server y C# (Consola)

Matriz A Matriz B Matriz C C [1,1]=A [1,1]+B [1,1]=1+15= 16; C [1,2]=A [1,2]+B [1,2]=3+12= 15;

EXAMEN PARCIAL TRABAJO INTEGRADOR (TI) EVALUACIÓN CONTINUA PESO PORCENTUAL PESO PORCENTUAL 1 30% 06-MAY-14 30% 03-MAY-14 20% 20%

5. Sentencias selectivas o condicionales

Universidad de Managua

Pontificia Universidad Católica del Ecuador

Tema: Arreglos de Objetos en C++.

Ejercicios de Programación Tema 7. Programación Orientada a Objetos

Universidad Ricardo Palma

PROGRAMACIÓN EN C#.NET Programación Orientada a Objetos en C# Ing. Bruno López Takeyas

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

Instrucciones de control

Práctica: Creación de un programa C# sencillo

Laboratorio. Instalación de Visual Studio Community. Back To Basics Instalando Visual Studio Community. Versión: 1.0.

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

PRÁCTICA DE LABORATORIO 4 Programación Orientada a Objetos

ESCUELA DE INFORMÁTICA

Programación con Visual C#

UNIDAD ACADÉMICA PROFESIONAL TIANGUISTENCO

Tema: Punteros a Objetos. Puntero this.

Tema: Clases y Objetos en C++.

Caracteres y Cadenas Conversión de Datos Funciones y procedimientos Archivos cabecera. Fundamentos de programación

Tema: Excel Formulas, Funciones y Macros

INTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA

Tema: Tipos de datos y conversiones

APUNTADORES. Un apuntador es un objeto que apunta a otro objeto. Es decir, una variable cuyo valor es la dirección de memoria de otra variable.

Columnas

Programación Estructurada

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

3. Calcular el área de un cuadrado conociendo que área_cuadrado = lado * lado.

Universidad de Guanajuato Tronco Común de Ingenierías

MANUAL DE AUTENTICACIÓN DE USUARIO ACCIÓN FIDUCIARIA

Introducción al lenguaje Java

Facultad de Ingeniería Escuela de Ingeniería de Sistemas y Computación Algoritmia y Programación

Sensor de Temperatura utilizando el Starter Kit Javelin Stamp. Realizado por: Bertha Palomeque A. Rodrigo Barzola J.

Instructivo de Ingreso al Sistema Estudiantes Activos

LENGUAJES DE PROGRAMACION I. Propósito del curso :

Manual de Usuario para Proponentes

Tema: CREACIÓN DE DIAGRAMAS ESQUEMATICOS CON MICROSOFT VISIO

1

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

MISIÓN UNIVERSIDAD DEL ISTMO VICERRECTORIA ACADÉMICA PROGRAMA ANALÍTICO

Realizar ejercicios de cifrado por medio de los cuales se comprenderá el funcionamiento e importancia del mismo.

Manual de turbo pascal

Programación. Carrera: MAE 0527

Carrera: Participantes Miembros de la academia de Metal- Mecánica

INTRODUCCIÓN...9 CAPÍTULO 1. ELEMENTOS DE UN PROGRAMA INFORMÁTICO...11

Automatización Industrial

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

INTERFACE COMPARATOR. DIFERENCIAS ENTRE COMPARATOR Y COMPARABLE. CLASE COLLECTIONS. EJERCICIOS RESUELTOS. (CU00918C)

Tema: Autómata de Pila

GUÍA DE ESTILO EN JAVA

Informática I para Bachillerato

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

UNIVERSIDAD NACIONAL EXPERIMENTAL DE GUAYANA VICERRECTORADO ACADÉMICO COORDINACION DE PRE-GRADO PROYECTO DE CARRERA DE INGENIERIA INDUSTRIAL

Escuela Politécnica Superior de Elche

Universidad Don Bosco (UDB) Facultad de Ingeniería / Escuela de Computación

Guía de obtención e instalación del Certificado digital de usuario emitido por CamerFirma

Tutorial básico del entorno de desarrollo Eclipse.

Elementos de un programa en C

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

MANUAL DE USUARIO. Sistema CLASS Profesores

Control de Flujo. Estructuras de Control! Experiencia Educativa de Algorítmica CONTROL DE FLUJO

Tema: Tipos Abstractos de Datos (TAD s) en C++.

Derechos de Acceso: COMPOSICION

BIENVENIDOS. Para acceder al Aplicativo Web Cálculos Topográficos debe ingresar con la siguiente ruta:

FACULTAD DE INGENIERÍA

PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez

SIGE (Instructivo de Uso)

TEMA 3. CLASES. EJERCICIOS

$0 Representa al parámetro cero o nombre del programa $1 Representa al parámetro uno $2 Representa al parámetro dos

Ciclos. Recordando Estructuras de Control Básicas: SELECCIÓN (condición) SECUENCIAL

Instrucciones para la consulta de la programación de asignaturas:

Manejo del módulo de Empresas Procedimientos:

USO DEL SERVIDOR ESCUELA

Transcripción:

Programación1 Guia#11 1 Guia#11: Tema: Estructuras en C#. Objetivos Conocer el concepto de estructura y cómo se utilizan en C#. Conocer las operaciones con estructuras y sus aplicaciones. Desarrollar programas utilizando estructuras. Facultad: Ingeniería Escuela: Ingeniería en Computación Asignatura: Programación I Introducción En el desarrollo de aplicaciones se necesita trabajar con diferentes tipos de datos asignados dependiendo el tipo de información con la que se trabaja. En clases anteriores, se ha trabajado con la primera estructura de datos: los arreglos. Dicha estructura permite trabajar con una colección de elementos del mismo tipo; sin embargo, hay problemas que requiere la utilización de varios tipos de datos que describen una misma entidad. Qué es una entidad? Una entidad es todo aquello que se puede describir. La descripción puede hacerse en términos de atributos y métodos. Definición Una estructura es un tipo de valor que se suele utilizar para encapsular pequeños grupos de variables relacionadas. Las variables que se agrupan no necesariamente deben ser del mismo. Un registro o estructura se define con la palabra clave struct. Qué pueden contener las Estructuras? Constructores. Constantes. Campos. Métodos. Propiedades. Indizadores. Operadores. Eventos. Tipos anidados Para declarar una estructura, se utiliza la siguiente sintaxis: Modificador_Acceso struct Nombre_Estructura { Miembros; // Variables, Funciones y/o Procedimientos. } En C#, primero deberemos declarar cual va a ser la estructura de nuestro registro, lo que no se puede hacer dentro de "Main". Más adelante, ya dentro de "Main", podremos declarar variables de ese nuevo tipo. Los datos que forman un "struct" pueden ser públicos o privados. Por ahora, a nosotros nos interesará que sean

Programación1 Guia#11 2 accesibles desde el resto de nuestro programa, por lo que les añadiremos delante la palabra public para indicar que queremos que sean públicos. Ya desde el cuerpo del programa, para acceder a cada uno de los datos que forman el registro, tanto si queremos leer su valor como si queremos cambiarlo, se debe indicar el nombre de la variable y el del dato (o campo) separados por un punto: En este contexto, al operador punto lo llamaremos operador de acceso, ya que permitirá acceder a cada uno de los miembros que forman parte de la estructura, es decir, podremos acceder a las variables. Cómo se realiza el acceso a los miembros de una estructura? Variable_tipo_estructura.nombre_del_miembro Material y Equipo Guía de laboratorio No. 11. Computadora con Visual Studio 2013 o superior. Dispositivo de almacenamiento (USB). Procedimiento G11 Ejemplo1. Forma de capturar y mostrar datos utilizando estructuras. 6 7 namespace G11_e1 8 { 9 class Program 10 { 11 struct Estudiante 12 { 13 public String Nombre; 14 public int Edad; 15 public String Colegio; 16 public int Tel; 17 } 18 public static void Main(string[] args) 19 { 20 Console.Title = "Primer ejemplo de estructuras"; 21 String Opcion; 22 Estudiante Objeto = new Estudiante(); 23 int Op; 24 do 25 { 26 Console.Clear(); 27 Console.WriteLine("=========================="); 28 Console.WriteLine(" Menu Principal "); 29 Console.WriteLine("1. Registrar"); 30 Console.WriteLine("2. Mostrar"); 31 Console.WriteLine("3. Salir"); 32 Console.WriteLine("=========================="); 33 Console.WriteLine("\n"); 34 Console.WriteLine("Digitar su opcion (1-3)?"); 35 Op = int.parse(console.readline());

Programación1 Guia#11 3 36 switch (Op) 37 { 38 case 1: 39 Console.Clear(); 40 Console.WriteLine("INGRESE LA INFORMACION DEL ESTUDIANTE"); 41 Console.WriteLine("\nDigite su Primer Nombre y Primer Apellido: "); 42 Objeto.Nombre = Console.ReadLine(); 43 Console.WriteLine("\nSu Edad: "); 44 Objeto.Edad = int.parse(console.readline()); 45 Console.WriteLine("\nColegio donde estudio su Bacillerato: "); 46 Objeto.Colegio = Console.ReadLine(); 47 Console.WriteLine("\nTelefono: "); 48 Objeto.Tel = int.parse(console.readline()); 49 break; 50 case 2: 51 Console.Clear(); 52 Console.WriteLine("INFORMACION DEL ESTUDIANTE"); 53 Console.WriteLine("Nombre: " + Objeto.Nombre); 54 Console.WriteLine("Edad: " + Objeto.Edad); 55 Console.WriteLine("Colegio: " + Objeto.Colegio); 56 Console.WriteLine("Telefono: " + Objeto.Tel); 57 break; 58 case 3: 59 Environment.Exit(0); 60 break; 61 } 62 Console.WriteLine("\n"); 63 Console.WriteLine("\tDesea continuar? (S/N)"); 64 Opcion = Console.ReadLine(); 65 } while (Opcion == "s"); 66 Console.ReadKey(); 67 } 68 } 69 } G11 Ejemplo2: Arreglos de Estructuras En ocasiones se trabajará con datos o campos que provienen de varias estructuras, entonces lo que se hace es introducir una estructura dentro de otra. Veamos el siguiente ejemplo: 6 namespace G11_e2 7 { 8 class Program 9 { 10 struct Persona 11 { 12 public String Nombre; 13 public int Edad; 14 public String Direccion; 15 } 16 public static void Main(string[] args) 17 { 18 Console.Title = "Ejemplo2 de estructuras"; 19 int max; 20 Console.WriteLine(" Digitar la cantidad de personas?");

Programación1 Guia#11 4 21 max = int.parse(console.readline()); 22 Persona[] Acceso = new Persona[max];// Acceso es la variable timbre 23 Console.WriteLine("\n"); 24 for (int i = 0; i < max; i++) 25 { 26 Console.WriteLine("Persona con ID:[" + (i + 1) + "]"); 27 Console.Write("Nombre: "); 28 Acceso[i].Nombre = Console.ReadLine();// uso del timbre con la variable Nombre 29 Console.Write("Edad: "); 30 Acceso[i].Edad = int.parse(console.readline());// uso del timbre con la variable Edad 31 Console.Write("Direccion: "); 32 Acceso[i].Direccion = Console.ReadLine();// uso del timbre con la variable Direccion 33 Console.WriteLine("\n"); 34 } 35 Console.Clear(); 36 Console.WriteLine("Las personas digitadas son:"); 37 Console.WriteLine("\n"); 38 for (int i = 0; i < max; i++) 39 { 40 Console.WriteLine("Persona con ID:[" + (i + 1) + "]"); 41 Console.WriteLine("Nombre:" + Acceso[i].Nombre); 42 Console.WriteLine("Edad: " + Acceso[i].Edad); 43 Console.WriteLine("Direccion:" + Acceso[i].Dirreccion); 44 Console.WriteLine("--------------------------------------"); 45 } 46 Console.ReadKey(); 47 } 48 } 49 } G11 Ejemplo3: Estructuras Anidadas En ocasiones se trabajará con datos o campos que provienen de varias estructuras, entonces lo que se hace es introducir una estructura dentro de otra. Veamos el siguiente ejemplo: 6 namespace G11_e3 7 { 8 class Program 9 { 10 struct programa 11 { 12 public String Universidad; 13 public String Carrera; 14 } 15 struct Estudiante 16 { 17 public String nombre; 18 public int edad; 19 public programa Estudios; 20 } 21 static void Main(string[] args) 22 { 23 Console.Title="Ejemplo3 de estructuras anidadas"; 24 Estudiante student = new Estudiante();

Programación1 Guia#11 5 25 //Entrada de datos 26 Console.Write("Ingrese Nombre: "); 27 student.nombre = Console.ReadLine(); 28 Console.Write("Edad: "); 29 student.edad = int.parse(console.readline()); 30 Console.Write("Carrera: "); 31 //Accedemos a miembros de otra estructura 32 student.estudios.carrera = Console.ReadLine(); 33 Console.Write("Universidad: "); 34 student.estudios.universidad = Console.ReadLine(); 35 Console.Clear(); 36 Console.WriteLine("Mostrando datos: "); 37 Console.WriteLine("Estudiante: " + student.nombre); 38 Console.WriteLine("Edad: " + student.edad); 39 Console.WriteLine("Carrera: " + student.estudios.carrera); 40 Console.WriteLine("Universidad: " + student.estudios.universidad); 41 Console.ReadKey(); 42 } 43 } 44 } G11 Ejemplo4: Estructuras y Procedimientos 6 namespace G11_e4 7 { 8 class Program 9 { 10 struct Alumno 11 { 12 public String carnet; 13 public String Nombre; 14 public void Mostrar(Alumno X) 15 { 16 Console.WriteLine("\nNombre: " + X.Nombre); 17 Console.WriteLine("\nCarnet: " + X.carnet); 18 } 19 } 20 public static void Main() 21 { 22 Alumno Var = new Alumno(); 23 int op, O; 24 Console.Title = "Ejemplo4 Utilizando procedimientos y estructuras"; 25 do 26 { 27 Console.Clear(); 28 Console.WriteLine("======================="); 29 Console.WriteLine(" MENU "); 30 Console.WriteLine("\n"); 31 Console.WriteLine(" 1.Ingresar."); 32 Console.WriteLine(" 2.Mostrar."); 33 Console.WriteLine("\n"); 34 Console.WriteLine("=======================");

Programación1 Guia#11 6 35 Console.WriteLine("Digitar la opcion (1-2)"); 36 op = int.parse(console.readline()); 37 switch (op) 38 { 39 case 1: 40 Console.Clear(); 41 Console.Write("Nombre: "); 42 Var.Nombre = Console.ReadLine(); 43 Console.Write("Carnet: "); 44 Var.carnet = Console.ReadLine(); 45 break; 46 case 2: 47 Console.Clear(); 48 Var.Mostrar(Var); 49 break; 50 } 51 Console.WriteLine("Si desea continuar regresar al menu presione 1, para finalizar presione 2"); 52 O = int.parse(console.readline()); 53 } while (O == 1); 54 Console.ReadKey(); 55 } 56 } 57 } G11 Ejemplo5: Paso de parámetros a método miembro de estructura: 6 namespace G11_e5 7 { 8 class Program 9 { 10 struct ejemplo 11 { 12 public String Name; 13 public String Equipo; 14 public int Edad; 15 public void Registrar(string n, string g, int e) 16 { 17 Name = n; 18 Equipo = g; 19 Edad = e; 20 } 21 } 22 static void Main(string[] args) 23 { 24 int opcion, op; 25 int tan; 26 Console.Title = "Ejemplo5 de estructura con paso de parametros"; 27 Console.WriteLine("Digite el numero de estudiantes a registrar: "); 28 tan = int.parse(console.readline()); 29 ejemplo[] E = new ejemplo[tan];

Programación1 Guia#11 7 30 do 31 { 32 Console.Clear(); 33 Console.WriteLine("\nMenu:"); 34 Console.WriteLine("1.Registrar."); 35 Console.WriteLine("2.Mostrar."); 36 Console.WriteLine("3.Salir."); 37 Console.WriteLine("Digite su opcion."); 38 opcion = int.parse(console.readline()); 39 switch (opcion) 40 { 41 case 1: 42 for (int i = 0; i < tan; i++) 43 { 44 Console.Clear(); 45 Console.Write("Nombre: "); 46 String n = Console.ReadLine(); 47 Console.Write("EquipodeFutbol: "); 48 String g = Console.ReadLine(); 49 Console.Write("Edad: "); 50 int e = int.parse(console.readline()); 51 E[i].Registrar(n, g, e); 52 } 53 break; 54 case 2: 55 Console.WriteLine("Informacion Ingresada..."); 56 Console.WriteLine("------------------------"); 57 for (int i = 0; i < tan; i++) 58 { 59 Console.WriteLine("Nombre: " + E[i].Name); 60 Console.WriteLine("Equipo: " + E[i].Equipo); 61 Console.WriteLine("Edad: " + E[i].Edad); 62 Console.WriteLine("----------------------"); 63 } 64 break; 65 case 3: 66 Environment.Exit(0); 67 break; 68 } 69 Console.WriteLine("Para continuar presione 1..."); 70 op = int.parse(console.readline()); 71 } while (op == 1); 72 Console.ReadKey(); 73 } 74 } 75 } Analisis de Resultados Desarrollar las siguientes aplicaciones en C#. 1. Modifique el ejemplo 4 para que acepte más de un registro. 2. Un "struct" que almacene datos de una canción en formato MP3: Artista, Título, Duración (en segundos), Tamaño del fichero (en KB). Un programa debe pedir los datos de una canción al usuario, almacenarlos en dicho "struct" y después mostrarlos en pantalla. 3. Un struct que guarde los datos de n vehículos. Los datos a solicitar son los siguientes: Placa, Color, Año,

Programación1 Guia#11 8 Marca, Modelo, Propietario. El programa debe solicitar los datos al usuario y mostrarlos haciendo uso de un procedimiento. Investigacion Complementaria 1. Desarrolle un programa haciendo uso de estructuras que simule una agenda. La aplicación debe solicitar los datos y mantenerlos en tiempo de ejecución (el programa debe estar activo hasta que se escoja la opcion de Salir). Los datos que se deben solicitar son los siguientes: Nombre, DUI, Dirección, Teléfono, Email, Profesión u Oficio. El menú debe tener las opciones: 1. Ingresar Datos. 2. Mostrar Datos. 3. Buscar Persona. 4.Salir En la opción 3, debe buscar por DUI, ya que es un datos que es único para cada usuario, al encontrar dicha persona el programa debe mostrar los datos encontrados. 2. Investigar sobre el uso de archivos en C#. Bibliografia Deitel, Harvey M. y Paul J. Deitel, Cómo Programar en C#, Segunda Edición, México, 2007.