Está en la página 1de 22

1

Administrar Datos en Arreglos

Juan Camilo Alonso

CC 80852161

Walter Colorado

CC 93415085

Elmer Yezid Torres Sánchez

CC 80842523

Juan Guillermo cárdenas

CC 80880284

301304_81

Gerardo Andrés penagos

CC 91186490

José Alfair Morales

Tutor Introducción a la programación

Universidad nacional abierta y a distancia

C.E.A.D José Acevedo y Gómez

Ingeniería de sistemas

Introducción a la programación

2018
Tabla de Contenidos

Mapa Conceptual.............................................................................................................................4
Presentación soluciones propuestas.................................................................................................5
a) Ejercicio a solución propuesta por Walter Colorado...........................................................5
b) Ejercicio b solucion propuesta por Juan Guillermo Cardenas.............................................8
c) Ejercicio c solucion planteada por Elmer Torres...............................................................12
d) Ejercicio d solucion propuesta por Juan Camilo Alonso...................................................14
e) Ejercicio e Solución propuesta por Gerardo Andres Penagos...........................................16
Conclusiones..................................................................................................................................20
Bibliografía....................................................................................................................................21
Introducción

El presente documento se realiza con la finalidad de demostrar la apropiación conceptos

teóricos y prácticos correspondientes a la unidad 3 fase 3 que trata el tema de administración de

arreglos. Con estos conceptos se desarrollan varios ejercicios mostrando la utilidad y eficiencia

de los vectores y matrices creando un trabajo de tipo teórico-práctico mejorando la capacidad de

los estudiantes del curso abordar problemas del día a día y trasladar estos conocimientos a un

enfoque más profesional.


4

Mapa Conceptual
5

Presentación soluciones propuestas

a) Ejercicio a solución propuesta por Walter Colorado

Simular un sistema de votación con 3 candidatos, los usuarios elegirán su candidato


favorito registrando su voto. Al final se debe informar la cantidad de votos recibidos por
candidato y quién ganó.

//sistema de votación con 3 candidatos


using System;
class votación
{
static void Main()
{
// int sum = 0;
int max;
int max1;
int max2;
int[] cand1 = new int[10];
int[] cand2 = new int[10];
int[] cand3 = new int[10];
int a = 0;
int b = 0;
int c = 0;
int opc;
DateTime thisDay = DateTime.Today;
Console.WriteLine("Walter colorado");
Console.WriteLine(thisDay.ToString("D"));
do
{
{
Console.WriteLine("seleccione el numero del candidato a votar: ");
Console.WriteLine("1. candidato a ");
Console.WriteLine("2. candidato b ");
Console.WriteLine("3. candidato c");
Console.WriteLine("\nDigie su opción");
opc = int.Parse(Console.ReadLine());
switch (opc)
{
case 1:
{
cand1[a] = a + 1;
a = a + 1;
Console.WriteLine("Gracias por su voto");
break;
}
case 2:
{
cand2[b] = b + 1;
b = b + 1;
Console.WriteLine("Gracias por su voto");
break;
}
case 3:
{
cand2[c] = c + 1;
c = c + 1;
Console.WriteLine("Gracias por su voto");
break;
}
default:
Console.WriteLine("Selección invalida. Debe Seleccione 1, 2 o 3. ");
break;
}
}
Console.WriteLine("¿Desea continuar con la votacion?");
Console.WriteLine("1 = Si\t 2 = no");
opc = int.Parse(Console.ReadLine());
} while (opc != 2);
max = cand1[0];
max1 = cand2[0];
max2 = cand2[0]; 
for (int i = 1; i < 10; i++)
{
if (cand1[i] > max) max = cand1[i];
if (cand2[i] > max1) max1 = cand2[i];
if (cand2[i] > max2) max2 = cand2[i];
}
Console.WriteLine("cantidad de votos candidato a: " + max);
Console.WriteLine("cantidad de votos candidato b: " + max1);
Console.WriteLine("cantidad de votos candidato c: " + max2);
if (max > max1 && max > max2)
{
Console.WriteLine("el candidato ganador es el 'a' con " + max + " votos");
}
else
{
if (max1 > max && max1 > max2)
{
Console.WriteLine("el candidato ganador es el 'b' con " + max1 + " votos");
}
else
{
Console.WriteLine("el candidato ganador es el 'c' con " + max2 + " votos");
}
}
Console.ReadKey();
}
b) Ejercicio b solucion propuesta por Juan Guillermo Cardenas

Una empresa necesita realizar un censo entre sus empleados con la siguiente información: estado
civil, número de hijos, casa propia. Se debe establecer el porcentaje de empleados con vivienda
propia, porcentaje de casados y porcentaje de solteros.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Arreglos
{
class Matriz
{
public string[] ecivil, vivienda, nombre, trabajadores;
int[] hijos;
int nem;
int soltero = 0;
int casado = 0;
public int casa = 0;

public void Ingreso()


{

Console.WriteLine("Cuantos empleados tiene en su empresa:");


string linea = Console.ReadLine();
nem = int.Parse(linea);

hijos = new int[nem];


nombre = new string[nem];
ecivil = new string[nem];
trabajadores = new string[nem];
vivienda = new string[nem];
for(int i=0; i<nem; i++)
{
Console.WriteLine("ingrese el nombre del empleado " + (i + 1));
linea = Console.ReadLine();
nombre[i] = linea;
Console.WriteLine();
Console.WriteLine("Cuantos hijos tiene {0}", nombre[i]);
linea = Console.ReadLine();
hijos[i] = int.Parse(linea);
Console.WriteLine();

do
{
Console.WriteLine("El estado civil de {0} es: \ncasado, soltero,
viudo, union libre",nombre[i]);
linea = Console.ReadLine();
ecivil[i] = linea;
Console.WriteLine();
}
while (linea != "soltero" && linea != "casado" && linea != "viudo" &&
linea != "union libre");
do
{
Console.WriteLine("que tipo de vivienda tiene {0} es: \npropia
familiar o arrendanda: ", nombre[i]);
linea = Console.ReadLine();
vivienda[i] = linea;
Console.WriteLine();
}
while (linea != "propia"&& linea!= "familiar" && linea != "arrendada");

Console.WriteLine("----------------------------------------------------------------------
-------------------------------------");
}
}
public void Porcentaje()
{
int s = 0;
for (int i =0;i<nem;i++)
{
if (ecivil[i] == "soltero")
{
s = s+1;
soltero = ( s* 100) / nem;

}
}
;
int k = 0;
for (int i=0;i<nem;i++)

{
if (ecivil[i] == "casado")
{

k = k + 1;
casado = (k * 100) / nem;
}
}

int v = 0;
for (int i = 0; i < nem; i++)

{
if (vivienda[i] == "propia")
{

v = v + 1;
casa = (v * 100) / nem;
}
}
}
public void Imprimir()
{

Console.WriteLine("El porcentaje de empleados solteros es {0}%", soltero);


Console.WriteLine("El porcentaje de empleados casados es {0}%", casado);
Console.WriteLine("El porcentaje de empleados con vivienda propia es {0}%",
casa);
}
static void Main(string[] args)
{
Matriz ing = new Matriz();
ing.Ingreso();
ing.Porcentaje();
ing.Imprimir();

Console.ReadKey();
}
}
}
c) Ejercicio c solucion planteada por Elmer Torres

Registrar cédulas y nombres de N personas. Cada vez que se registren datos, se debe verificar
que el número de cédula no se repita. Al final se debe presentar la lista de personas registradas.

using System;

namespace CedulasYNombres
{
class CedulasYNombres
{
static void Main(string[] args)
{
int i, j, n;
do
{
Console.Write("Ingrese el n\u00FAmero de personas N: ");
n = int.Parse(Console.ReadLine());
if (n <= 0)
{
Console.WriteLine("Número inv\u00E1lido. Ingr\u00E9selo
nuevamente.");
}
} while (n <= 0);
string[] cedulas = new string[n], nombres = new string[n];
for (i = 0; i < n; i++)
{
Console.WriteLine();
do
{
Console.Write("Ingrese la c\u00E9dula de la persona {0}: ", i + 1);
do
{
cedulas[i] = Console.ReadLine();
} while (cedulas[i] == "");
for (j = 0; j < i && cedulas[j] != cedulas[i]; j++)
{
}
if (j < i)
{
Console.WriteLine("La c\u00E9dula '{0}' ya est\u00E1 registrada.
Ingr\u00E9sela nuevamente.", cedulas[i]);
}
else
{
Console.Write("Ingrese el nombre de la persona {0}: ", i + 1);
nombres[i] = Console.ReadLine();
}
} while (j < i);
}
Console.WriteLine("\n\nLista de personas registradas");
for (i = 0; i < n; i++)
{
Console.WriteLine("Persona: {0,-2} C\u00E9dula: {1,15} Nombre: {2}",
i + 1, cedulas[i], nombres[i]);
}
Console.Write("Presione una tecla para continuar . . . ");
Console.ReadKey(true);
}
}
}
d) Ejercicio d solucion propuesta por Juan Camilo Alonso

Registrar las notas (de 0 a 5) de parcial 1, parcial 2 y parcial 3 de N estudiantes. Calcular la nota
final, teniendo en cuenta que el parcial 1 equivale al 30%, el parcial 2 al 30% y el parcial 3 al
40%. Al final se debe imprimir toda la información.

using System;
namespace CalculaNotas
{
class Program
{
struct variables
{
public string Documento;
public string Nombre;
public string Apellido;
public double nota1;
public double nota2;
public double nota3;
public double notaTot;
}
static void Main(string[] args)
{

Console.WriteLine("Cuantos estudiantes desea registrar");


int Veces = int.Parse(Console.ReadLine());
variables[] estudiante = new variables[Veces];
for (int i = 0; i < Veces; i++)
{
Console.WriteLine("Ingrese su numero de documento");
estudiante[i].Documento = Console.ReadLine();
Console.WriteLine("Ingrese su Nombre");
estudiante[i].Nombre = Console.ReadLine();
Console.WriteLine("Ingrese su Apellido");
estudiante[i].Apellido = Console.ReadLine();
PreguntaNota1:
Console.WriteLine("Ingrese su Primer Nota");
estudiante[i].nota1 = double.Parse(Console.ReadLine());
if (estudiante[i].nota1 <= 0 || estudiante[i].nota1 >= 5)
{
Console.WriteLine("Esta nota esta fuera del rango");
goto PreguntaNota1;
}
PreguntaNota2:
Console.WriteLine("Ingrese su Segunda Nota");
estudiante[i].nota2 = double.Parse(Console.ReadLine());
if (estudiante[i].nota1 <= 0 || estudiante[i].nota2 >= 5)
{
Console.WriteLine("Esta nota esta fuera del rango");
goto PreguntaNota2;
}
PreguntaNota3:
Console.WriteLine("Ingrese su Tercer Nota");
estudiante[i].nota3 = double.Parse(Console.ReadLine());
if (estudiante[i].nota1 <= 0 || estudiante[i].nota2 >= 5)
{
Console.WriteLine("Esta nota esta fuera del rango");
goto PreguntaNota3;
}
estudiante[i].notaTot = (estudiante[i].nota1 * 0.3) + (estudiante[i].nota2 * 0.3) +
(estudiante[i].nota3 * 0.4);
}
for (Int64 i = 0; i < Veces; i++)
{
Console.WriteLine("Su documento :" + estudiante[i].Documento);
Console.WriteLine("Su Nombre :" + estudiante[i].Nombre);
Console.WriteLine("Su Apellido :" + estudiante[i].Nombre);
Console.WriteLine("Su Primer Nota :" + estudiante[i].nota1);
Console.WriteLine("Su Segunda Nota :" + estudiante[i].nota2);
Console.WriteLine("Su Tercer Nota :" + estudiante[i].nota3);
Console.WriteLine("Su Nota Final :" + estudiante[i].notaTot);
Console.WriteLine("*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/*/");
}
Console.ReadKey();
}
}
}
e) Ejercicio e Solución propuesta por Gerardo Andres Penagos

Crear una lista con identificación, nombre, apellido y clave. El programa debe permitir el
registro de datos, sin que se repita la identificación. También debe brindar la posibilidad de
consultar nombre y apellido al digitar la clave.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace RegistroUsuariosFase3
{
class Program
{
public static int cantidadUsuariosMax = 10;
public static int ultimoUsuarioRegistrado = 0;
public static string[,] usuarios = new string[10,4];
static void Main(string[] args)
{
Console.WriteLine("Bienvenido(a).");
SeleccionarOpcion();

Console.WriteLine("Preciona una tecla para finalizar.");


Console.ReadKey();
}

static void SeleccionarOpcion()


{
string opcionRead;
bool flagOpcion = false;
while (flagOpcion == false)
{
Console.WriteLine("Selecciona que operacion deseas realizar.");
Console.WriteLine("Preciona 1 para ingresar un usuario");
Console.WriteLine("Preciona 2 para buscar un usuario");
Console.WriteLine("Preciona 3 para salir.");
opcionRead = Console.ReadLine();
switch (opcionRead)
{
case "1":
flagOpcion = true;
IngresarUsuario();
break;
case "2":
flagOpcion = true;
BuscarUsuario();
break;
case "3":
flagOpcion = true;
ListarUsuarios();
break;
default:
flagOpcion = false;
Console.WriteLine("Opcion incorrecta");
break;
}
}
}

static void IngresarUsuario() {


string cedula, nombre, apellido, clave;
Console.WriteLine("Ingresa a continuación los datos del usuario");
Console.WriteLine("Ingresa el número de identificación");
cedula = Console.ReadLine();
Console.WriteLine("Ingresa el nombre del usuario");
nombre = Console.ReadLine();
Console.WriteLine("Ingresa el apellido del usuario");
apellido = Console.ReadLine();
Console.WriteLine("Ingresa la clave del usuario");
clave = Console.ReadLine();
Console.WriteLine("Los datos ingresados son: ");
Console.WriteLine("Cédula: {0}",cedula);
Console.WriteLine("Nombre: {0}", nombre);
Console.WriteLine("Apellido: {0}", apellido);
Console.WriteLine("Clave: {0}", clave);
string opcionRead;
bool flagOpcion = false;
while (flagOpcion == false)
{
Console.WriteLine("Preciona 1 si es correcto y deseas almacenar los
datos.");
Console.WriteLine("Preciona 2 si deseas ingresar nuevamente los datos.");
Console.WriteLine("Preciona 0 si deseas cancelar y volver al menu
principal.");
opcionRead = Console.ReadLine();
switch (opcionRead)
{
case "0":
flagOpcion = true;
SeleccionarOpcion();
break;
case "1":
flagOpcion = true;
AlmacenarDatos(cedula,nombre,apellido,clave);
break;
case "2":
flagOpcion = true;
IngresarUsuario();
break;
default:
flagOpcion = false;
Console.WriteLine("Opcion incorrecta");
break;
}
}
Console.ReadKey();

static void AlmacenarDatos(String cedula, String nombre, String apellido, String


clave)
{
bool usuarioValido = ValidarUsuario(cedula);
if (usuarioValido)
{
usuarios[ultimoUsuarioRegistrado, 0] = cedula;
usuarios[ultimoUsuarioRegistrado, 1] = nombre;
usuarios[ultimoUsuarioRegistrado, 2] = apellido;
usuarios[ultimoUsuarioRegistrado, 3] = clave;
Console.WriteLine("Usuario almacenado con éxito.");
}
else
{
Console.WriteLine("Ya se encuentra un usuario registrado con la cédula
{0}.",cedula);
}
SeleccionarOpcion();
}

static bool ValidarUsuario(String cedula)


{
bool estado = false;
for (int usuario = 0; usuario < cantidadUsuariosMax; usuario++)
{
if(usuarios[usuario,0] == cedula)
{
estado = false;
}
else
{
estado = true;
if (usuarios[usuario,0] == null)
{
ultimoUsuarioRegistrado = usuario;
break;
}
}
}
return estado;
}
static void BuscarUsuario()
{
Console.WriteLine("Ingresa la clave para consultar los datos.");
string claveRead = Console.ReadLine();
for (int usuario = 0; usuario < cantidadUsuariosMax; usuario++)
{
if (usuarios[usuario, 3] == claveRead)
{
Console.WriteLine("Usuario encontrado.");
Console.WriteLine("El nombre del usuario: {0}",usuarios[usuario,1]);
Console.WriteLine("El apellido del usuario: {0}", usuarios[usuario,
2]);
Console.WriteLine("El número de cédula del usuario: {0}",
usuarios[usuario, 0]);
break;
}
else
{
Console.WriteLine("La clave ingresada no se encuentra registrada.");
}
}
Console.WriteLine("Preciona una tecla para continuar.");
SeleccionarOpcion();
Console.ReadKey();
}
static void ListarUsuarios()
{
Console.WriteLine("Los usuarios registrados fueron:");
for (int usuario = 0; usuario < cantidadUsuariosMax; usuario++)
{
Console.WriteLine("Usuario {0}.",usuario+1);
Console.WriteLine("El número de cédula del usuario: {0}",
usuarios[usuario, 0]);
Console.WriteLine("El nombre del usuario: {0}", usuarios[usuario, 1]);
Console.WriteLine("El apellido del usuario: {0}", usuarios[usuario, 2]);
Console.WriteLine("La clave del usuario: {0}", usuarios[usuario, 3]);

}
}
}
}
Conclusiones

Un arreglo, es una estructura que permite almacenar un conjunto de elementos, facilitando

su manejo.

La combinación de ciclos y arreglos, toma importancia al momento de recorrer los

segundos para referenciarlos.

Mediante arreglos podemos crear programas más robustos con la menor cantidad de

memoria, y que este no sea imposible de manejar al tener demasiadas variables.

Se concluye que las matrices son un tipo de variable muy útil al momento de desarrollar

en cualquier tipo de lenguaje, gracias a estos podemos dar una estructura más manejable al

desarrollo de nuestro programa.


BIBLIOGRAFIA

munguia, E. (2017). Udemy. Obtenido de https://www.udemy.com/c-sharp-para-

principiantes/

Schildt, H. (2010). Fundamentos de C# 3.0. (pp. 153 - 160). Madrid, ES: McGraw-Hill

España. Recuperado de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?

docID=10515217&ppg=170

Schildt, H. (2010). Fundamentos de C# 3.0. (pp. 161 - 169). Madrid, ES: McGraw-Hill

España. Recuperado de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?

docID=10515217&ppg=170

Schildt, H. (2010). Fundamentos de C# 3.0. (pp. 177 - 182). Madrid, ES: McGraw-Hill

España. Recuperado de http://bibliotecavirtual.unad.edu.co:2077/lib/unadsp/reader.action?

docID=10515217&ppg=170

Paso a Paso. (2018) C# Paso a Paso : Ejercicios con Vectores en C#. Retrieved , from

http://csharp-facilito.blogspot.com.co/2013/07/ejercicios-con-vectores-en-c-sharp.html.

También podría gustarte