Guia2 - Procedimientos, Funciones y Menus (C#)
Guia2 - Procedimientos, Funciones y Menus (C#)
Guia2 - Procedimientos, Funciones y Menus (C#)
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 1 de 10
I. SUBRUTINAS DE CÓDIGO
Se denomina subrutina a una porción de código que tiene como principal función ejecutar una
determinada tarea. Estas tienen un nombre que las identifica, con dicho nombre se les puede
llamar y así ejecutar la tarea programada. Las subrutinas tienen un principio y un fin y estas
pueden ser de tipo privadas o públicas.
En este ejemplo se tiene una subrutina o procedimiento de tipo Privado, esto quiere decir que la
podemos utilizar solo en el formulario o módulo donde está declarada.. En este caso lel
procedimiento de llama Button1_click(…) . Si quisiéramos que este procedimientos se pueda
llamar desde otro formulario, lo que tendríamos que hacer es cambiar el alcance del procedimiento,
en vez de private cambiarlo por public. Si hacemos esto, el procedimiento puede ser utilizado
desde cualquier parte del proyecto.
También podemos crear nuestros propios Procedimientos o Subrutinas de código para ejecutar
una determinada tarea. Para crear un procedimiento de código se debe escribir la palabra private
void o public void (depende el alcance), seguida del nombre del procedimiento y parámetros de
entrada que son opcionales. Se debe tener en cuenta que nunca se puede crear un procedimiento
dentro de otro. Un ejemplo para crear un procedimiento seria:
La principal ventaja de crear procedimientos de código es que evita tener que escribir varias veces
las mismas instrucciones en un programa, el código se hace mucho más funcional y entendible, se
pueden dividir un problema (una rutina), en varios procedimientos y probarlos independientemente,
y además la posibilidad de enviar parámetros de entrada.
Los parámetros de entrada también conocidos como argumentos, Se utilizan para que el
procedimiento no ejecute siempre las mismas líneas de código, teniendo la posibilidad de
programar las tareas de un procedimiento de manera más dinámica. En ciertas ocasiones no es
necesario enviar parámetros, pero en otras es prácticamente fundamental. Los parámetros son
datos, casi de cualquier tipo, que se pasan seguido del nombre del procedimiento, si son más de
uno deben ir separados por comas (,). Por Ejemplo:
En este ejemplo se pasan tres parámetros: El primero es un nombre y es un dato de tipo string y
por ende debe ir entre comillas. El segundo es un número y el tercero también un string. Cuando
se va a pasar parámetros a un procedimiento, al momento de crear el procedimiento se debe
establecer qué tipo de parámetros va a recibir el mismo. La definición de procedimiento de
este ejemplo seria:
Una vez se ha definido el procedimiento, en el evento click de cualquier Button, se puede llamar al
procedimiento y pasarle los parámetros. Por Ejemplo:
GUÍA DE TRABAJO N° 2 – C#
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 3 de 10
Es muy importante respetar el orden en que se pasan los parámetros en un procedimiento, por
ejemplo en el caso anterior si hubiésemos pasado los parámetros de esta forma:
Otra aspecto importante es que cuando se requiera crear, por ejemplo un procedimiento que va a
recibir 2 parámetros, cuando se llame, no se puede enviar solo 1 parámetro, se debe
obligatoriamente pasarle los 2 parámetros que hubiésemos declarado en el. Un ejemplo que daría
un error por no pasar adecuadamente los parámetros sería:
Se crea un procedimiento llamado sumar que recibirá 2 parámetros de tipo int, si se llama al
procedimiento y le pasamos un solo valor, por ejemplo: Sumar(300), Esto daría un error de
compilación por que el procedimiento espera recibir 2 parámetros. La forma correcta debería ser
con dos parámetros de entradas como por ejemplo: Sumar(600, 400);
GUÍA DE TRABAJO N° 2 – C#
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 4 de 10
Los parámetros en las funciones y procedimientos, se pueden enviar de dos maneras: por Valor y
por Referencia. La diferencia entre uno y otra forma de paso de parámetros, es que “Por Valor” se
envía una copia de la variable, de tal manera que si se efectúa un cambio en el procedimiento,
solo tendrá efecto dentro del procedimiento o función, una vez que termine y finalice el mismo, la
variable original pasará a valer el dato que tenía, es decir este no se modifica.
Por otra lado en los parámetros enviados “Por Referencia”, lo que se hace es enviar un puntero de
la variable original, entonces, si en la función o procedimiento se cambia el valor de la variable, el
cambio seguirá manteniéndose una vez que finalice la ejecución del procedimiento o función.
En el ejemplo anterior hay un procedimiento o subrutina llamada Sumar que recibe como entrada
un parámetro enviado por valor (es decir es una copia de la variable original) al presionar el
Button1. Al entrar en la subrutina Sumar, el dato se modifica (Valor = Valor + 100). Cuando finaliza
el procedimiento Sumar y retorna a la línea siguiente de la llamada a la Subrutina sumar, muestra
mediante un “MessageBox” el valor de la misma, en este caso es 100, y No 200 que es el cambio
que tuvo dentro del procedimiento Sumar ( Valor = Valor + 100 ).
Con esto queda visto que en realidad al enviar el parametro por valor, se envía una copia de la
variable original y cualquier cambio que se produzca, será solo en el ámbito del procedimiento o
función
Este ejemplo es igual que el anterior, pero en la Subrutina sumar, la variable Valor se declara por
Referencia
GUÍA DE TRABAJO N° 2 – C#
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 5 de 10
Las funciones son prácticamente iguales que los procedimientos con respecto a la forma en que se
les llama, se les crea o declara en el código, en cómo se le pasa los parámetros etc.. La diferencia
fundamental con respecto a los procedimientos o subrutinas es que estos, luego de ejecutar el
código que tengan en su interior, al final retornan un valor, y este valor luego lo podemos utilizar
para una determinada tarea. En cambio los procedimientos, solo ejecutan el código que contienen
y luego Terminan. Un ejemplo de cómo crear o definir una función seria:
Se ha declarado una función llamada Multiplicar cuyo tipo de retorno es long, es decir, que en este
caso la función al finalizar su ejecución devolverá un valor de tipo long, el cual se pude utilizar en
cualquier otra parte del programa. Las Funciones pueden retornar cualquier tipo de dato, como
números, cadenas, fechas, arreglos (vectores y/o matrices). Las funciones pueden o no recibir
parámetros de entrada. Para llamar a la función del ejemplo anterior podríamos hacerlo de la
siguiente manera, tomando como base un formulario con dos textbox, un boton y un label.
num1= int.Parse(textBox1.Text);
num2 = int.Parse(textBox2.Text);
multiplicacion = Multiplicar(num1,num2);
label1.Text = num1 + "x" + num2 + "=" + multiplicacion.ToString();
MessageBox.Show("La multiplicacion es " + multiplicacion.ToString());
}
En este caso al llamar la función Multiplicar, se realiza la multiplicación de los valores enviados
como parámetros de entrada y luego el valor final de la operación retornaria y se le asigna a la
variable “multiplicacion” para finalmente mostrar los resultados en un label y en un MessageBox.
Los menús y submenús en una interfaz gráfica de usuario (I.G.U) mejoran considerablemente la
usabilidad de un programa, ya que le permite al usuario navegar por diferentes opciones y
seleccionar de manera rápida y eficiente la funcionalidad que desea ejecutar o el formulario que
dese visualizar.
Las Aplicaciones tipo Windows pueden tener varios formularios donde se distribuyen las diferentes
tareas o funcionalidades, y una forma muy eficiente de dar acceso a ellos es por medio de un
formulario principal (MDI) que contenga un menú con enlaces a los formularios que a su vez se
comportarían como formularios hijos.
EJERCICIO:
1. Cree un nuevo proyecto tipo “Windows Forms” C#, agregue un formulario nuevo y colóquele
“Principal” como nombre.
2. En tiempo de diseño, diseñe su formulario principal tal y como se muestra a continuación: (Use
los controles MenuStrip, ToolStrip y StatusStrip para crear las barras en el formulario)
3. Cambie el valor la propiedad del formulario Principal llamada “IsMdiContainer” de false a true
GUÍA DE TRABAJO N° 2 – C#
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 7 de 10
6. Configure el “MenuStrip para que muestre el menú de opciones con la siguiente distribución:
1. Menú Archivo
o Salir
2. Menú Ventana
o Cascada
o Mosaico Vertical
o Mosaico Horizontal
o Cerrar Todo
3. Menú Formularios
Fomulario1
Fomulario2
Formulario3
4. Menú Ayuda
Acerca De
7. Agregar al proyecto tres formularios de nombre Form1, Form2, Form3 respectivamente donde
por medio de un label indique el nombre del formulario tal y como se muestra a continuación:
8. Agregar un formulario llamado “FormAcercaDe” donde debe mostrar los nombres, los
apellidos y la identificación de la persona que está realizando el ejercicio.
Nota: Tenga en cuenta que puede acceder al código de cada menú haciendo doble click en ellos.
GUÍA DE TRABAJO N° 2 – C#
Programación de Software
Articulación SENA Grado 11°
Ing. Néstor Raúl Suarez Perpiñan
Página 8 de 10
Para establecer cuál es el formulario de inicio, es decir, el primer formulario que aparecerá
inmediatamente se ejecute el programa, diríjase al archivo llamado Program.cs, y dentro de
este ubique la línea de código “Application.Run(...)” y dentro de los paréntesis escriba el
nombre del formulario que desea establecer como fomulario de inicio.
Por ejemplo para establecer como formulario de inicio un formulario llamado “Principal” la línea de
código dentro del archivo Program.cs seria;
TALLER
Realizar una única aplicación tipo Windows que tenga varios formularios. Debe tener un formulario
principal que por medio de un menú proporcione acceso de forma independiente a cada uno de los
otros formularios de la solución de los problemas planteados a continuación. Para la solución de
los problemas debe Aplicar Procedimientos y/o Funciones
Diseñe un formulario que permita ingresar el nombre del usuario y la hora (formato 24 horas) y
salude al usuario dependiendo de la hora ingresada así:
Diseñe un formulario que permita ingresar dos números y mostrar la tabla de multiplicar del primero
hasta el valor que indique el segundo.
Diseñe un formulario que permita ingresar el nombre de una asignatura, el nombre del estudiante y
tres notas en un rango de 1 a 5 (Debe Validar Las Entradas). Se debe permitir calcular el promedio
de las notas y determinar si el estudiante aprobada o no la asignatura; sabiendo que una
asignatura se pierde con una nota promedio menor a 4.0. El resultado a mostrar debe además
contener el nombre del estudiante, el nombre de la asignatura y la nota promedio calculada.
Diseñe un formulario que permita seleccionar una figura geométrica y calcularle el área o volumen
dependiendo de la selección. Las figuras geométricas deben ser: Circulo, triangulo, cuadrado,
rombo, rectángulo, Trapecio, cubo, cilindro, cono y esfera.
a.) Por un monto menor o igual a $5000 se hará un descuento del 10%
b) Por un monto mayor de $5000 pero menor o igual a $20.000 se hará un descuento del 15%
c) Por un monto mayor de $20.000 pero menor o igual a $100.000 se hará un descuento del 25%
d) Por un monto mayor a $100.000 se hará un descuento del 40%
Diseñe un formulario donde se ingrese el monto de la compra y se muestre el valor del descuesto y
el valor que finalmente pagara el cliente. Se debe agregar el valor del IVA (16%)