Crea un programa que solicite al usuario ingresar una oración. Luego, utiliza un diccionario para contar la frecuencia de cada palabra en la oración.
using System;
using System.Collections.Generic;
namespace ejercicio1
{
class Program
{
static void Main(string[] args)
{
Dictionary<string,int> palabras = new Dictionary<string,int> ();
string frase;
string[] palabrasCortadas;
Console.WriteLine("Introduce una frase");
frase = Console.ReadLine();
palabrasCortadas = frase.Split(" ");
foreach (string p in palabrasCortadas)
{
if (!palabras.ContainsKey(p))
{
palabras[p]=1;
}
else
{
palabras[p]++;
}
}
foreach( var p in palabras)
{
Console.WriteLine($"La palabra {p.Key} se encuentra {p.Value} veces");
}
}
}
}
Desarrolla un programa que almacene información sobre estudiantes (nombre, edad, nota) en un diccionario. Permite al usuario agregar, actualizar y eliminar información de estudiantes.
using System;
using System.Collections.Generic;
namespace ejercicio2
{
class Program
{
struct Estudiante
{
public string nombre;
public int edad;
public double nota;
}
static void Main(string[] args)
{
int opcion = 0;
Dictionary<int, Estudiante> universidad = new Dictionary<int, Estudiante>();
do
{
Console.WriteLine("**** Menu Universidad ****");
Console.WriteLine("(1).Agregar estudiante");
Console.WriteLine("(2).Actualizar estudiante");
Console.WriteLine("(3).Eliminar estudiante");
Console.WriteLine("(4).Ver lista estudiantes");
Console.WriteLine("(5).Salir");
Console.Write("Opcion:");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Estudiante estudiante = new Estudiante();
Console.WriteLine("Introduce el nombre del estudiante:");
estudiante.nombre = Console.ReadLine();
Console.WriteLine("Introduce la edad del estudiante:");
estudiante.edad =int.Parse(Console.ReadLine());
Console.WriteLine("Introduce la nota del estudiante:");
estudiante.nota =double.Parse(Console.ReadLine());
int idEstudiante = universidad.Count + 1;
universidad[idEstudiante] = estudiante;
Console.WriteLine("Estudiante agregado correctamente");
break;
case 2:
int id = 0;
Console.WriteLine("Introduce el id de estudiante:");
id = int.Parse(Console.ReadLine());
if (!universidad.ContainsKey(id))
{
Console.WriteLine("El estudiante no existe");
}
else
{
char actualizo;
Estudiante estudianteBorro = new Estudiante();
Console.WriteLine($"ID: {id}");
Console.WriteLine($"Nombre: {universidad[id].nombre}");
Console.WriteLine($"Edad: {universidad[id].edad}");
Console.WriteLine($"Nota: {universidad[id].nota}");
do
{
Console.WriteLine("¿Seguro que quieres actualizar al estudiante?(s/n)");
actualizo = Convert.ToChar(Console.ReadLine());
actualizo = char.ToLower(actualizo);
} while (!actualizo.Equals('s') && !actualizo.Equals('n'));
if (actualizo.Equals('s'))
{
Estudiante estudianteActualizo = new Estudiante();
Console.WriteLine("Introduce el nombre del estudiante:");
estudianteActualizo.nombre = Console.ReadLine();
Console.WriteLine("Introduce la edad del estudiante:");
estudianteActualizo.edad = int.Parse(Console.ReadLine());
Console.WriteLine("Introduce la nota del estudiante:");
estudianteActualizo.nota = double.Parse(Console.ReadLine());
universidad[id] = estudianteActualizo;
Console.WriteLine("Estudiante actualizado correctamente");
}
else
{
Console.Clear();
}
}
break;
case 3:
id = 0;
Console.WriteLine("Introduce el id de estudiante:");
id = int.Parse(Console.ReadLine());
if (!universidad.ContainsKey(id))
{
Console.WriteLine("El estudiante no existe");
}
else
{
char borro;
Estudiante estudianteBorro = new Estudiante();
Console.WriteLine($"ID: {id}");
Console.WriteLine($"Nombre: {universidad[id].nombre}");
Console.WriteLine($"Edad: {universidad[id].edad}");
Console.WriteLine($"Nota: {universidad[id].nota}");
do
{
Console.WriteLine("¿Seguro que quieres borrar al estudiante?(s/n)");
borro = Convert.ToChar(Console.ReadLine());
borro = char.ToLower(borro);
} while (!borro.Equals('s') && !borro.Equals('n'));
if (borro.Equals('s'))
{
universidad.Remove(id);
Console.WriteLine("Estudiante borrado correctamente");
}
else
{
Console.Clear();
}
}
break;
case 4:
foreach(var estu in universidad)
{
Estudiante estudianteVeo = new Estudiante();
estudianteVeo = estu.Value;
Console.WriteLine();
Console.WriteLine($"ID: {estu.Key}");
Console.WriteLine($"Nombre: {estudianteVeo.nombre}");
Console.WriteLine($"Edad: {estudianteVeo.edad}");
Console.WriteLine($"Nota: {estudianteVeo.nota}");
Console.WriteLine();
}
break;
case 5:
Console.WriteLine("Saliendo de la Universidad");
break;
default:
Console.WriteLine("opcion no contemplada");
break;
}
} while (opcion != 5);
}
}
}
Escribe un programa que realice conversiones de moneda. Utiliza un diccionario para almacenar las tasas de cambio entre diferentes monedas.
using System;
using System.Collections.Generic;
namespace ejercicio3
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, double> monedero = new Dictionary<string, double>();
monedero["Euro"]=1.0;
monedero["Dolar"] = 0.92;
monedero["Rublo"] = 97.07;
int opcion = 0;
double dinero = 0.0;
do
{
Console.WriteLine("Conversor");
Console.WriteLine("(1).Euro --> Dolar");
Console.WriteLine("(2).Euro --> Rublo");
Console.WriteLine("(3).Dolar --> Euro");
Console.WriteLine("(4).Dolar --> Rublo");
Console.WriteLine("(5).Rublo --> Euro");
Console.WriteLine("(6).Rublo --> Dolar");
Console.WriteLine("(7).Salir");
Console.WriteLine("Escoge opcion:");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("¿Cuantos Euros quieres cambiar por dolares?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero / monedero["Dolar"];
Console.WriteLine($"Te corresponden {Math.Round(dinero,2)} dolares");
break;
case 2:
Console.WriteLine("¿Cuantos Euros quieres cambiar por rublos?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero * monedero["Euro"];
dinero = dinero * monedero["Rublo"];
Console.WriteLine($"Te corresponden {Math.Round(dinero, 2)} rublos");
break;
case 3:
Console.WriteLine("¿Cuantos dolares quieres cambiar por euros?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero * monedero["Dolar"];
Console.WriteLine($"Te corresponden {Math.Round(dinero, 2)} euros");
break;
case 4:
Console.WriteLine("¿Cuantos dolares quieres cambiar por rublos?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero * monedero["Dolar"];
dinero = dinero * monedero["Rublo"];
Console.WriteLine($"Te corresponden {Math.Round(dinero, 2)} rublos");
break;
case 5:
Console.WriteLine("¿Cuantos rublos quieres cambiar por euros?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero / monedero["Rublo"];
Console.WriteLine($"Te corresponden {Math.Round(dinero, 2)} euros");
break;
case 6:
Console.WriteLine("¿Cuantos rubos quieres cambiar por dolares?");
dinero = double.Parse(Console.ReadLine());
dinero = dinero * monedero["Rublo"];
dinero = dinero * monedero["Dolar"];
Console.WriteLine($"Te corresponden {Math.Round(dinero, 2)} dolares");
break;
case 7:
Console.WriteLine("Saliendo del conversor");
break;
default:
Console.WriteLine("Cambio d emoneda no permitido");
break;
}
} while (opcion != 7);
}
}
}
Crea un sistema simple de registro de productos que utiliza un diccionario para almacenar información sobre cada producto (nombre, precio, cantidad en stock).
using System;
using System.Collections.Generic;
namespace ejercicio4
{
class Program
{
struct Almacen
{
public string nombre;
public double precio;
public int cantidad;
}
static void Main(string[] args)
{
Dictionary<int, Almacen> stock = new Dictionary<int, Almacen>();
Almacen almaceno = new Almacen();
int opcion = 0;
int idArticulo = 0;
do
{
Console.WriteLine("**** ALMACEN ****");
Console.WriteLine("(1).Almacenar");
Console.WriteLine("(2).Ver alamcen");
Console.WriteLine("(3).Salir");
Console.WriteLine("Opcion:");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("Introduce nombre del articulo");
almaceno.nombre = Console.ReadLine();
Console.WriteLine("Introduce precio del articulo");
almaceno.precio = double.Parse(Console.ReadLine());
Console.WriteLine("Introduce cantidad del articulo");
almaceno.cantidad = int.Parse(Console.ReadLine());
idArticulo = stock.Count + 1;
stock[idArticulo] = almaceno;
Console.WriteLine("Articulo alamcenado correctamente");
break;
case 2:
foreach (var s in stock)
{
almaceno = stock[s.Key];
Console.WriteLine();
Console.WriteLine($"Id: {s.Key}");
Console.WriteLine($"Nombre: {almaceno.nombre}");
Console.WriteLine($"Precio: {almaceno.precio}");
Console.WriteLine($"Cantidad: {almaceno.cantidad}");
Console.WriteLine();
}
break;
case 3:
Console.WriteLine("Cerrando almacen");
break;
default:
Console.WriteLine("Nuestro almacen no tiene esa opcion");
break;
}
} while (opcion !=3);
}
}
}
Desarrolla una agenda de contactos utilizando un diccionario. Permite al usuario agregar contactos con nombre y número de teléfono, y busca información de contacto por nombre.
using System;
using System.Collections.Generic;
namespace ejercicio5
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, string> agenda = new Dictionary<string, string>();
int opcion = 0;
string nombre, telefono;
do
{
Console.WriteLine("AGENDA");
Console.WriteLine("(1).AGENDAR");
Console.WriteLine("(2).BUSCAR");
Console.WriteLine("(3).SALIR");
Console.WriteLine("Escoge opcion:");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("Introduce nombre:");
nombre = Console.ReadLine();
Console.WriteLine("Introduce telefono:");
telefono = Console.ReadLine();
if (agenda.ContainsKey(telefono))
{
agenda[telefono] = nombre;
Console.WriteLine("Contacto actualizado");
}
else
{
agenda[telefono] = nombre;
Console.WriteLine("Contacto agregado");
}
break;
case 2:
Console.WriteLine("Introduce el nombre a buscar");
nombre = Console.ReadLine();
foreach(var a in agenda)
{
if (a.Value.StartsWith(nombre))
{
Console.WriteLine($"Nombre: {a.Key}");
Console.WriteLine($"Telefono: {a.Value}");
}
}
break;
case 3:
Console.WriteLine("Saliendo de la agenda");
break;
default:
Console.WriteLine("Opcion no existente");
break;
}
} while (opcion != 3);
}
}
}
Escribe un programa que cuente la frecuencia de cada carácter en una cadena utilizando un diccionario.
using System;
using System.Collections.Generic;
namespace ejercicio6
{
class Program
{
static void Main(string[] args)
{
string cadena = "";
Console.WriteLine("Introduce una frase");
cadena = Console.ReadLine();
Dictionary<char, int> frecuencia = new Dictionary<char, int>();
for(char letra = 'a'; letra < 'z'; letra++)
{
int contadorLetras = 0;
for(int i = 0; i < cadena.Length; i++)
{
if (char.ToLower(cadena[i]).Equals( char.ToLower(letra)))
{
contadorLetras++;
}
if (contadorLetras != 0)
{
frecuencia[letra] = contadorLetras;
}
}
}
foreach(var f in frecuencia)
{
Console.WriteLine($"Letra: {f.Key} {f.Value} veces");
}
}
}
}
Crea un juego de puntajes que utilice un diccionario para almacenar los puntajes de diferentes jugadores. * Permite al usuario agregar nuevos puntajes y mostrar la clasificación.
using System;
using System.Collections.Generic;
namespace ejercicio7
{
class Program
{
struct Jugadores
{
public int juga;
public int puntos;
}
static void Main(string[] args)
{
Dictionary<int, int> jugadores = new Dictionary<int, int>();
int opcion,jugador;
do
{
Console.WriteLine("**** MENU ****");
Console.WriteLine("(1).Agregar jugador");
Console.WriteLine("(2).Sumar puntos");
Console.WriteLine("(3).Clasificacion");
Console.WriteLine("(4).Salir");
Console.WriteLine("Opcion:");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
jugador = jugadores.Count + 1;
jugadores[jugador] = 0;
Console.WriteLine("Jugador agregado");
break;
case 2:
Console.WriteLine("Introduce numero de jugador para sumar puntos");
jugador = int.Parse(Console.ReadLine());
if(jugador>jugadores.Count || jugador < 1)
{
Console.WriteLine("El jugador no existe");
}
else
{
Console.WriteLine("Introduce numero de puntos a sumar");
int puntos = int.Parse(Console.ReadLine());
jugadores[jugador] += puntos;
Console.WriteLine("Puntos sumados correctamente");
}
break;
case 3:
int puesto = 1;
Console.WriteLine("Clasificacion");
Dictionary<int, int> temporal = new Dictionary<int, int>(jugadores);
List<int> jugadoresClaficiacion = new List<int>();
List<int> puntosClaficiacion = new List<int>();
while (temporal.Count > 0)
{
int puntuacionMaxima = 0;
int idjugador = 0;
foreach (var t in temporal)
{
if (t.Value > puntuacionMaxima)
{
puntuacionMaxima = t.Value;
idjugador = t.Key;
}
}
jugadoresClaficiacion.Add(idjugador);
puntosClaficiacion.Add(puntuacionMaxima);
temporal.Remove(idjugador);
}
Console.WriteLine($"Puesto Jugador PUNTOS");
for (int i=0;i<jugadoresClaficiacion.Count;i++)
{
Console.WriteLine($" {i+1} Jugador{jugadoresClaficiacion[i]} {puntosClaficiacion[i]}pts");
}
break;
case 4:
Console.WriteLine("Fin del programa");
break;
default:
Console.WriteLine("Opcion no valida");
break;
}
} while (opcion != 4);
}
}
}
Desarrolla un programa que tome una lista de elementos y utilice un diccionario para eliminar los elementos duplicados, manteniendo la primera aparición de cada elemento.
using System;
using System.Collections.Generic;
namespace ejercicio8
{
class Program
{
static void Main(string[] args)
{
Dictionary<int, int> final = new Dictionary<int, int>();
List<int> lista = new List<int>() {1,1,2,3,2,7,3,4,5,5,4,};
int i = 1;
foreach(int numero in lista)
{
if (!final.ContainsValue(numero))
{
final[i] = numero;
i++;
}
}
Console.Write("Dicionario sin repetidos --> ");
foreach (var f in final)
{
Console.Write($"{f.Value} ");
}
}
}
}
Construye un diccionario bilingüe simple que almacene traducciones entre dos idiomas. Permite al usuario buscar traducciones de palabras.
using System;
using System.Collections.Generic;
namespace ejercicio9
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, string> traducciones = new Dictionary<string, string>()
{
{"casa", "house"},
{"perro", "dog"},
{"gato", "cat"},
{"mesa", "table"},
{"silla", "chair"},
{"sol", "sun"},
{"luna", "moon"},
{"agua", "water"},
{"fuego", "fire"},
{"tierra", "earth"},
{"aire", "air"},
{"amor", "love"},
{"odio", "hate"},
{"feliz", "happy"},
{"triste", "sad"},
{"grande", "big"},
{"pequeño", "small"},
{"rápido", "fast"},
{"lento", "slow"},
{"bueno", "good"},
{"malo", "bad"},
{"nuevo", "new"},
{"viejo", "old"},
{"rico", "rich"},
{"pobre", "poor"},
{"caliente", "hot"},
{"frío", "cold"},
{"alto", "tall"},
{"bajo", "short"},
{"fuerte", "strong"},
{"débil", "weak"},
{"claro", "clear"},
{"oscuro", "dark"},
{"derecha", "right"},
{"izquierda", "left"},
{"primavera", "spring"},
{"verano", "summer"},
{"otoño", "autumn"},
{"invierno", "winter"},
{"norte", "north"},
{"sur", "south"},
{"este", "east"},
{"oeste", "west"},
{"cielo", "sky"},
{"mar", "sea"},
{"montaña", "mountain"},
{"ciudad", "city"},
{"país", "country"}
};
int opcion = 0;
do
{
Console.WriteLine("Traductor");
Console.WriteLine("(1).Traducir");
Console.WriteLine("(2).Salir");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("Introduce una palabra en español");
string palabra = Console.ReadLine();
if (traducciones.ContainsKey(palabra))
{
Console.WriteLine($"La palabra castellana {palabra} en ingles es {traducciones[palabra]}");
}
else
{
Console.WriteLine("No existe la palabra en nuestro diccionario");
}
break;
case 2:
Console.WriteLine("Cerramos traductor");
break;
default:
Console.WriteLine("No existe esa opcion");
break;
}
} while (opcion != 2);
}
}
}
Implementa un sistema de gestión de inventario utilizando un diccionario. Permite al usuario agregar productos, actualizar cantidades y realizar búsquedas de productos por nombre.
using System;
using System.Collections.Generic;
namespace ejercicio10
{
class Program
{
static void Main(string[] args)
{
Dictionary<string, int> inventario = new Dictionary<string, int>();
string productos;
int cantidad, opcion = 0;
do
{
Console.WriteLine("Inventario");
Console.WriteLine("(1).Agregar Productos");
Console.WriteLine("(2).Actualizar cantidades");
Console.WriteLine("(3).Buscar Productos");
Console.WriteLine("(4).Listar Productos");
Console.WriteLine("(5).Salir");
opcion = int.Parse(Console.ReadLine());
switch (opcion)
{
case 1:
Console.WriteLine("¿Que producto quieres agregar?");
productos = Console.ReadLine();
cantidad = 0;
if (!inventario.ContainsKey(productos))
{
inventario[productos] = cantidad;
}
else
{
Console.WriteLine("El producto ya esta dado de alta en el inventario");
}
break;
case 2:
Console.WriteLine("¿Que producto quieres actualizar stock?");
productos = Console.ReadLine();
cantidad = 0;
if (!inventario.ContainsKey(productos))
{
Console.WriteLine("El producto no se encuentra en el inventario");
}
else
{
Console.WriteLine("¿Cuanta cantidad quieres sumar?");
cantidad =int.Parse(Console.ReadLine());
inventario[productos] += cantidad;
}
break;
case 3:
Console.WriteLine("¿Que producto quieres buscar?");
productos = Console.ReadLine();
if (inventario.ContainsKey(productos))
{
Console.WriteLine($"De {productos} tenemos en stock {inventario[productos]}");
}
else
{
Console.WriteLine("El producto no se encuentra en el inventario");
}
break;
case 4:
Console.WriteLine("PRODUCTO CANTIDAD");
foreach(var i in inventario)
{
string cadena="";
for (int j=0;j< 28 - i.Key.Length; j++)
{
cadena += " ";
}
Console.WriteLine($"{i.Key}{cadena}{i.Value}");
}
break;
case 5:
Console.WriteLine("Saliendo el inventario");
break;
default:
Console.WriteLine("No existe esa opcion");
break;
}
} while (opcion != 5);
}
}
}