28 jul 2010

Tipos de usuario : Structure (2da parte)


Como vimos en la primera parte de Structures, los nuevos tipos en .NET, no solo permiten la declaraciones de diferentes datos, sino que ahora, tambien permiten la declaracion funciones y procedimientos que actuan como metodos a modo de clases sencillas.

Algo nuevo que tambien tiene el tipo Structure, es que a diferencia de visual basic clasico, ahora los datos declarados tambien necesitan que se especifique hasta donde podran ser usados esas variables, esto se hace antecediento al tipo de dato la etiqueta PUBLIC/PRIVATE/FRIENDS, con el primero los datos declarados podran ser usados en cualquier parte del programa, con el segundo, solo pueden ser usados dentro de Structure, con el tercero es una combinacion de public y private.

Se utlizará el mismo problema visto en la primera parte de este tutorial Structures

Ejemplo: 
se desea construir una aplicacion de consola, que dado el radio, la generatriz y la altura de un cono; calcule e imprima el area de la base , el area lateral, el area total y su volumen. Esta aplicación debe ser construida utilizando tipos de usario (Structure) para gestionar los datos.

Consideraciones:
El area de la base se calcula como:
AREA DE LA BASE = PI * RADIO^2

El area lateral se calcula:
AREA LATERAL = PI * RADIO * GENERATRIZ

El area toral se calcula como:
AREA TOTAL = AREA BASE + AREA LATERAL

El volumen se calcula:
VOLUMEN = (1/3) * AREA BASE * ALTURA

Codigo


01 Module Module1
02     'declaracion del tipo de usario "cono"
03     Structure cono
04         ' se declaran las variables como PRIVATE
05         Private radio As Single
06         Private altura As Single
07         Private generatriz As Single
08         Private area_base As Double
09         Private area_lateral As Double
10         Private area_total As Double
11         Private volumen As Single
12         'tambien se declara una constante PI
13         Private Const PI = 3.141592
14 
15         'se declara un constructor 
16         Public Sub New(ByVal r As Double, ByVal h As Double, ByVal g As Double)
17             radio = r
18             altura = h
19             generatriz = g
20         End Sub
21         'se declaran los metodos
22         Public Sub Leer() 'para leer y asignar datos
23             Console.Write("Radio= ")
24             radio = Val(Console.ReadLine)
25             Console.Write("Altura= ")
26             altura = Val(Console.ReadLine)
27             Console.Write("Generatriz= ")
28             generatriz = Val(Console.ReadLine)
29         End Sub
30 
31         Public Sub Imprimir() 'para imprimir los resultados en pantalla
32             Console.WriteLine("Area Base: " & area_base)
33             Console.WriteLine("Area Lateral: " & area_lateral)
34             Console.WriteLine("Area Total: " & area_total)
35             Console.WriteLine("Volumen: " & volumen)
36             Console.ReadLine()
37         End Sub
38 
39         Public Sub Calcular() 'para realizar las operaciones
40             area_base = PI * radio ^ 2
41             area_lateral = PI * radio * generatriz
42             area_total = area_base + area_lateral
43             volumen = (1 / 3) * area_base * altura
44         End Sub
45     End Structure
46 
47     'programa principal
48     Sub Main()
49         '-------------------------
50         Dim mi_cono As cono
51         mi_cono.Leer()
52         mi_cono.Calcular()
53         mi_cono.Imprimir()
54         '--------------------------
55         'tambien se puede declarar el tipo como si fuera una clase
56         Dim otro_cono As cono = New cono(1.61, 1.2, 2.05)
57         otro_cono.Calcular()
58         otro_cono.Imprimir()
59     End Sub
60 
61 End Module

RESULTADOS

0 comentarios:

Publicar un comentario

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | cna certification