Sunteți pe pagina 1din 15

Practica nro.

2 Programación Orientada a Objetos

2.1. Estructuras de control


Veremos todas las estructuras de control antes de ingresar a ver los objetos
Se dividen en dos partes:
2.1.1 Estructuras condicionales
Ciclo if
La forma general del if es:

la condición puede ser cualquier expresión que devuelve true o false.


Por ejemplo:

Ejemplo
Condicional else

La condición else se ejecuta cuando la condición del if se evalúa como falsa


Sintaxis:

if aninado

También puedes incluir o anidar declaraciones dentro de un if.


Por ejemplo:

Puede anidar un número ilimitado de sentencias if-else.


Por ejemplo:
Ciclo switch
Se utiliza para agilizar la toma de decisiones múltiples; trabaja de la misma manera que lo
harían if, else, else if.
A cada valor se le llama case, y la variable se enciende cuando comprueba el caso.
Por ejemplo:

default case
En una instrucción switch, el caso opcional default es ejecutado cuando ninguno de los casos
anteriores es encontrado.
Ejemplo:
2.1.2 Estructuras Repetitivas

Ciclo for

Bucle for ejecuta un conjunto de instrucciones un número específico de veces


sintaxis:

for (Init; condición; incremento) {


//sentencia
}

Un contador se declara una vez en init.


La condición evalúa el valor del contador y bucle se ejecuta si la condición es verdadera. el
buble para cuando la condición se hace falsa
Por ejemplo:

Los operadores aritméticos compuestos pueden utilizarse para controlar más iteraciones del
bucle.
Por ejemplo:

Los Estados init y el incremento pueden ser declarados afuera del for, pero recuerda que el
punto y coma es obligatorio.
Por ejemplo:

También puedes tener las instrucciones de incremento en el cuerpo del bucle:


Ciclo while
Un ciclo while ejecuta un bloque de código mientras una condición dada sea verdadera.
Por ejemplo, el siguiente código muestra los números del 1 al 5:

Podemos acortar el ejemplo anterior, incrementando el valor de num justo en la condición:

Ciclo do while
Un ciclo do-while es similar al ciclo while, excepto que do-while se ejecutará al menos una
vez.
Por ejemplo:
do-while vs while

Si la condición del do-while se evalúa como false, la declaración se ejecutará una vez:

break

Otro uso de break es en los bucles: cuando se encuentra la instrucción break dentro de un
bucle, el bucle se termina inmediatamente.
Por ejemplo:

Continue

la sentencia continue es similar a la instrucción break, pero en vez de terminar el bucle


completo, salta la iteración actual del bucle y continúa con la siguiente iteración.
Por ejemplo:
Por ejemplo, si se quiere mostrar el texto “Bienvenido” para personas mayores de 18 años y
con dinero

Con todos los operadores puedes unir tantas condiciones como quieras.

Operador AND

Es True si todas las condiciones son verdaderas

Operador OR
Es True si al menos una condición es verdadera

Operador NOT

el operador logico NOT (!) revierte el estado lógico de una condición. Así, si una condición es
true el operador la hace falsa y viceversa.
2.2. Arreglos
En C# llamamos arreglo a una colección de objetos, dicha colección tiene longitud definida y
esta no puede cambiar con el flujo del programa, esto podrá sonar limitante, pero al trabajar
con arreglos se obtiene un mejor desempeño que con cualquier otra colección. Usando el
lenguaje podemos crear, recorrer y manipular arreglos de cualquier tipo de objeto.

2.2.1 Arreglos Unidimensionales

Comenzando por lo más básico, los arreglos unidimensionales son colecciones lineales, que
nos pueden ayudar a representar una secuencia numérica, letras del alfabeto o un
cromosoma dentro de un programa de algoritmos genéticos, entre muchas otras otras.

Instanciación

Para crear un arreglo haremos uso de la palabra reservada new y los corchetes cuadrados [ ],
también es necesario conocer el tamaño que necesitaremos, puesto que como ya lo
mencioné, no es posible cambiar el tamaño una vez creado:

Si creamos arreglos de esa manera, cada posición tendrá el valor por default del tipo de dato
del arreglo… bueno, mejor usamos nuestro ejemplo:

El arreglo de vocales contendrá 5 \0, que es el valor por default de un char.


El arreglo conteo contendrá 10 0, que es el valor por default de un entero.
El arreglo misObjetos contendrá 3 null, que es el valor por default de un object.

Además de la instanciación tradicional, también podemos emplear la instanciación de


colecciones, la cual nos permite inicializar un arreglo asignándole valores inmediatamente:

como podemos ver, tenemos varias opciones para inicializar arreglos unidimensionales:

1. new char[5] { ..., nos permite indicar el tamaño y el tipo explícitamente y posteriormente
indicar los valores, si cambiáramos el 5 por un 7sin aumentar la cantidad de valores
obtendríamos un error de compilación.
2. new int[] { 1, 2, ..., nos permite indicar solamente el tipo de dato de los elementos, la
cantidad es inferida por el compilador, en este caso podemos incrementar o reducir la
cantidad de elementos al momento de inicializar sin ningún problema.
3. { "3", 1, 99.99 }, al inicializar de esta manera estamos dejandole al compilador la tarea de
inferir tanto el tipo de dato del arreglo como la cantidad de elementos que contiene. Dicho
sea de paso, el declarar un arreglo así puede resultar un poco confuso de leer.

Acceso a los elementos

Una vez instanciado, podemos acceder a los elementos del arreglo usando nuevamente los
corchetes cuadrados [ ] y el índice del elemento al que queremos acceder. Nota importante
los arreglos están indizados en 0 es decir, el primer elemento de un arreglo está en el índice
0.

Retomemos los arreglos del ejemplo pasado. Para acceder a la a dentro del arreglo vocales
debemos acceder a la posición 0:

O, digamos que queremos reemplazar la i por una t:

Propiedades y métodos

A pesar de que los arreglos implementan la interfaz IList, con todo y sus propiedades, la única
rescatable para los arreglos unidimensionales es la propiedad Length (o LongLength si
metemos más de 2^32-1 elementos en el arreglo), que nos devuelve la longitud del arreglo:

Posdata

Sin importar su contenido, los arreglos siempre son tipos por referencia, por lo que es posible
tener las siguientes líneas de código:
2.2.2 Arreglos Bidimensionales

Los arreglos escalonados (o jagged arrays) son los tipos de arreglos multidimensionales más
conocidos, y es que también son comunes en otros lenguajes de programación. Un arreglo
escalonado no es más que un arreglo de arreglos.

Instanciación

Para crear estos arreglos de arreglos, tenemos una sintaxis similar a la creación de arreglos
unidimensionales, con [ ] para cada dimensión:

Acá es importante notar que al instanciar un arreglo multidimensional de esta manera


únicamente estamos indicando el tamaño de la primera dimensión, 3 en el caso de
gato, 3 también para rubik y 2 para escalera. Es tarea nuestra inicializar los
arreglos interiores:

Con los arreglos escalonados no hay nada que nos prohíba crear arreglos internos de
dimensiones iguales a la de arreglo que las contiene, es más, podemos crear arreglos
internos de distintos tamaños en la misma dimensión, hagamos algo con nuestro
arreglo escalera:
Con estos arreglos de arreglos también podemos usar la instanciación de colecciones:

Acceso a los elementos

De nueva cuenta, y por tratarse de arreglos, usaremos los [ ] para acceder a los
elementos de nuestros arreglos, de tal manera que es posible escribir algo como esto:

2.3. Funciones y Procedimientos


Todas las instrucciones deben estar incluidas en un procedimiento o función, a las que
llamaremos mediante su identificador. A estas funciones y procedimientos podemos pasarles
parámetros.

En C# tenemos 4 tipos:

1. Los procedimientos que ejecutan un código a petición sin devolver ningún resultado.
2. Las funciones que ejecutan un código y devuelven el resultado al código que las llamó.
3. Los procedimientos de propiedades que permiten manejar las propiedades de los objetos
creados.
4. Los procedimientos de operador utilizados para modificar el funcionamiento de un
operador cuando se aplica a una clase o una estructura.
2.3.1 Que son las funciones
La función devuelve un resultado al código invocante. La ejecución de return provoca la
salida de la función.

Programa que permite hacer conversión de monedas digitando una cantidad en dólares,
utilizando funciones.
1. static void Main(string[] args)
2. {
3. //Inicia el programa principal
4. Console.ForegroundColor = ConsoleColor.Black;
5. Console.BackgroundColor = ConsoleColor.White;
6. Console.Clear();
7. Console.Title = "Ejemplo utilizando la sintaxis de funciones";
8. Double x,p,r;
9. Console.WriteLine("Digitar la cantidad en dólares:");
10. x = Double.Parse(Console.ReadLine());
11. // llamadas a las funciones
12. p = euros(x);
13. Console.WriteLine("Los {0} dolares son {1} euros ", x, p);
14. r = libras(x);
15. Console.WriteLine("Los {0} dolares son {1} libras ", x, r);
16. Console.WriteLine("\n");
17. Console.WriteLine("-->Fin del programa");
18. Console.ReadKey();
19. }
20.
21. static Double euros(Double a)
22. {
23. Double g;
24. g = a * 1.15;
25. return g;
26. }
27. static Double libras(Double a)
28. {
29. Double v;
30. v = a * 3.15;
31. return v;
32. }
2.3.2. Que son los Procedimientos
La visibilidad de un procedimiento viene determinada por la declaración private, public o
internal. Por defecto si no se indica nada se entiende que es public.

Programa que permite digitar un número entero positivo y me diga si es par o impar.
1 static void Main(string[] args)
2 {
3 //Inicio del programa principal
4 Console.ForegroundColor = ConsoleColor.Black;
5 Console.BackgroundColor = ConsoleColor.White;
6 Console.Clear();
7 Console.Title = "Uso de un procedimiento";
8 int num;
9 Console.WriteLine("Digitar un numero entero positivo:");
10 num = Convert.toInt32(Console.ReadLine());
11 Par(num);
12 Console.WriteLine("\n");
13 Console.WriteLine("-->Fin del programa");
14 Console.ReadKey();
15 }
16 //Aqui termina el programa principal
17 static void Par(int a)
18 {
19 int x;
20 x = (a % 2);
21 if (x == 0)
22 {
23 Console.WriteLine("\nEs par");
24 }
25 Else
26 {
27 Console.WriteLine("\nEs impar");
28 }
29 }
Ejercicios para Desarrollar

Ejemplos de estructuras condicionales


1. Ingresar por teclado n notas y debe listar los aprobados y desaprobados
2. Ingresar por teclado 5 números y mostrar solo los números primos
3. Ingresar un numero de 5 digitos y debe mostrar en pantalla el numero de decenas, centenas,
miles, etc.
4. ingresar al siguiente menú. Y debe mostrar el total de lista1 y la lista2 donde debe hallar al
ganador en porcentajes.
Menu
1. Elija lista 1
2. Elija lista 2
3. Otra vez
4. Ver totales
5. salir
5. Ingresar por teclado un número del menú la opción 6(donde mostrara el total de alumnos
ingresados y el total por cada carrera) solo saldrás del ciclo cuando presione 7
1. epis
2. epie
3. epia
4. epic
5. epii
6. ver totales
7. salir

Ejemplos de estructuras repetitivas


1. Generar n números de un rango de 5 a 100 y debe mostrar en pantalla los números primos
2. Generar n números hallar la media, la moda, la desviación standard.
3. Generar n notas mayores de 0 y menores o iguales a 20 y debe mostrar en un cuadro
resumen cuantos están aprobados y cuantos están jalados.
4. Generar 10000 números de 1 al 500 y debe mostrar en pantallas los numeros repetidos y
cuantas veces se han repetido
5. Generar n alumnos y generar sus edades de 16 a 30 y mostrar en pantalla los que son
mayores de edad y los que son menores de edad.

Ejemplos de Arreglos
1. Generar 50 numeros almacenarlos en un arreglo y debe mostrar en pantalla los pares al
lado izquierdo y los impares al lado derecho(no debe permitir 0)
2. Almacenar en un arreglo las vocales y en otro las consonantes y debe elegir en un menú Si
hace clic en 1. Debe elegir aleatoriamante una vocal(desde la a hasta la u) y luego la opción
2 para elegir aleatoriamente una consonante y asi sucesivamente hasta mostrar un
nombre aleatoriamente.
Menú crear nombre
1. Variable
2. Consonante
3. Ver nombre
4. salir
3. generar un arreglo de n numeros y debe ver el siguiente menú
Menu
1. Generar arreglo
2. ver lista de arreglos
3. ver y buscar un numero de la lista
4. salir
4. Crear un arreglo n frutas y debe generar en una cadena todas las frutas en una sola línea
5. Generar 3 arreglos con las siguientes
Menu
1. Arreglo 1 numeros menores a 20
2. Arrelgo 2 numeros entre 20 a 50
3. Arreglo 3 numeros entre 30 a 60
4. Mostrar la unión del 2 y3
5. Mostrar la intersección 1 y 2
6. Mostrar la suma de 1 y 3
7. salir

Ejemplos de funciones y procedimientos

1. Crear un programa que solicite el año de nacimiento de una persona y retorne la edad
haciendo uso de procedimientos.
2. Desarrollar un programa que implemente una función para convertir coordenadas polares a
rectangulares. Debe tener en cuenta lo siguiente: x = rcos(θ) ; y = rsen(θ)
3. Cree un programa que contenga el siguiente menú:
a) Dividir.
b) Obtener cubo.
c) Cálculo de IMC (Índice de Masa Corporal).
d) Salir.

4. Escribir un programa que lea dos números desde teclado (x y n) e implemente una función
para calcular la siguiente progresión:
1 + X + X2+ X3+... + Xn
5. Escribir un programa que permita al usuario elegir el cálculo del área de cualquiera de las
figuras geométricas: circulo, cuadrado, rectángulo o triangulo, mediante procedimientos o
funciones. No se le olvide presentarlo en un menú
6. El usuario introducirá un primer número entero positivo (de no más de 6 cifras) que indicará
la cantidad de casos de prueba. Después seguirán varias líneas, cada una con un número
entero positivo (de no más de 15 cifras). Para cada uno de esos casos de prueba, tu
programa debe mostrar el número, un espacio en blanco, un signo de igualdad, otro espacio
en blanco y los factores primos de ese número (repetidos si es el caso), cada uno de ellos con
un espacio en blanco a continuación.

7. El mínimo común múltiplo de varios números es el menor número que es múltiplo de todos
ellos a la vez.

Por ejemplo, el mcm de 3 y 7 es 21, el de 4 y 12 es 12, y el de 9 y 12 es 36.

El usuario introducirá tres números enteros (positivos, de no más de 5 cifras), uno en cada
línea. Tu programa debe mostrar el mínimo común múltiplo de esos tres números.

S-ar putea să vă placă și