Está en la página 1de 5

1.

Desarrolle un algoritmo que genere la figura de un árbol navideño a base de


asteriscos. El tamaño lo decide el usuario y lo ingresa por teclado.
using System;

class Program
{
static void Main()
{
Console.WriteLine("Ingrese el tamaño del árbol de Navidad:");
int tamanoArbol = int.Parse(Console.ReadLine());

GenerarArbolNavideno(tamanoArbol);

Console.ReadLine(); // Para evitar que la consola se cierre inmediatamente


}

static void GenerarArbolNavideno(int tamano)


{
for (int i = 1; i <= tamano; i++)
{
// Espacios en blanco antes de los asteriscos
for (int j = 0; j < tamano - i; j++)
{
Console.Write(" ");
}

// Asteriscos que forman la parte triangular del árbol


for (int k = 0; k < 2 * i - 1; k++)
{
Console.Write("*");
}

Console.WriteLine(); // Nueva línea después de cada fila


}

// Tronco del árbol


for (int i = 0; i < tamano / 3; i++)
{
// Espacios en blanco antes del tronco
for (int j = 0; j < tamano - 1; j++)
{
Console.Write(" ");
}

Console.WriteLine("*");
}
}
}
2. Desarrolle un algoritmo que lea dos arrays x[ ] e y[ ], calcule su recta de regresión y =
ax+b y determine cuál será el valor de y para un valor de x conocido.
using System;

class Program
{
static void Main()
{
// Ejemplo de datos (puedes reemplazar esto con tus propios datos)
double[] x = { 1, 2, 3, 4, 5 };
double[] y = { 2, 4, 5, 4, 5 };

// Calcular la recta de regresión


double a, b;
CalcularRectaRegresion(x, y, out a, out b);

Console.WriteLine($"La ecuación de la recta de regresión es: y = {a}x + {b}");

// Valor de x conocido para predecir y


double valorXConocido = 6;

// Predecir el valor de y para el valor de x conocido


double valorYPredicho = PredecirValorY(a, b, valorXConocido);

Console.WriteLine($"Para x = {valorXConocido}, el valor predicho de y es: {valorYPredicho}");

Console.ReadLine(); // Para evitar que la consola se cierre inmediatamente


}

static void CalcularRectaRegresion(double[] x, double[] y, out double a, out double b)


{
// Calcular la media de x y y
double mediaX = CalcularMedia(x);
double mediaY = CalcularMedia(y);

// Calcular los coeficientes a y b de la recta de regresión


double numeradorA = 0, denominadorA = 0;

for (int i = 0; i < x.Length; i++)


{
numeradorA += (x[i] - mediaX) * (y[i] - mediaY);
denominadorA += Math.Pow(x[i] - mediaX, 2);
}

a = numeradorA / denominadorA;
b = mediaY - a * mediaX;
}

static double CalcularMedia(double[] valores)


{
double suma = 0;
foreach (double valor in valores)
{
suma += valor;
}

return suma / valores.Length;


}

static double PredecirValorY(double a, double b, double x)


{
return a * x + b;
}
}
3. Desarrolle un algoritmo que permita leer el nombre completo de una persona,
nombres y apellidos, y lo imprima en pantalla como apellidos y nombres. Considere
que el primer carácter de cada cadena debe ser mayúscula y lo demás minúscula.
Por ejemplo, ingrese: William Valdivia Díaz y muestre: Valdivia Díaz, William.

using System;
using System.Text;

class Program {

static string FormatearPalabra(string palabra) {


if(string.IsNullOrEmpty(palabra))
return "";

StringBuilder sb = new StringBuilder();

sb.Append(char.ToUpper(palabra[0]));
sb.Append(palabra.Substring(1).ToLower());

return sb.ToString();
}

static void Main(string[] args) {

Console.Write("Ingrese nombres y apellidos: ");


string nombreCompleto = Console.ReadLine();

string[] palabras = nombreCompleto.Split(' ');

string apellidos = $"{FormatearPalabra(palabras[1])}, {FormatearPalabra(palabras[2])}";


string nombres = FormatearPalabra(palabras[0]);

Console.WriteLine(apellidos + ", " + nombres);

}
4. Desarrolle un algoritmo que lea las notas de cada estudiante y muestre el promedio
ponderado. Las notas se generan de manera aleatoria entre 0 y 20, y el número de
estudiantes es ingresado por teclado. En pantalla debe mostrarse así:
T1(10% EP(30%) T2(10%) T3(10%) EF(40%) Promedio
Estudiante 1 Nota(0,0) Nota(0,1) Nota(0,2) Nota(0,3) Nota (0,4) Promedio(0,5)

Estudiante 2 Nota(1,0) Nota(1,1) Nota(1,2) Nota(1,3) Nota(1,4) Promedio(1,5)

Estudiante 3 Nota(2,0) Nota(2,1) Nota(2,2) Nota(2,3) Nota(2,4) Promedio(2,5)

… … … … … … …

Estudiante n-1 Nota(n-1,0) Nota(n-1,1) Nota(n-1,2) Nota(n-1,3) Nota(n-1,4) Promedio(n-1,5)


Estudiante n Nota(n,0) Nota(n,1) Nota(n,2) Nota(n,3) Nota(n,4) Promedio(n,5)

using System;

class Program {
static void Main(string[] args) {

Random random = new Random();


Console.Write("Ingresa número de estudiantes: ");
int numEstudiantes = int.Parse(Console.ReadLine());

double[,] notas = new double[numEstudiantes, 5];

// Generar notas aleatorias


for(int i=0; i < numEstudiantes; i++){
notas[i,0] = Math.Round(random.NextDouble() * 20, 2); // T1 10%
notas[i,1] = Math.Round(random.NextDouble() * 20, 2); // EP 30%
notas[i,2] = Math.Round(random.NextDouble() * 20, 2); // T2 10%
notas[i,3] = Math.Round(random.NextDouble() * 20, 2); // T3 10%
notas[i,4] = Math.Round(random.NextDouble() * 20, 2); // EF 40%
}

// Encabezados
Console.WriteLine("{0,10}{1,13}{2,12}{3,12}{4,15}{5,10}",
"T1(10%)", "EP(30%)", "T2(10%)", "T3(10%)", "EF(40%)", "Promedio");

// Mostrar notas y promedios


for(int i=0; i < numEstudiantes; i++){
double prom = notas[i,0]*0.1 + notas[i,1]*0.3 +
notas[i,2]*0.1 + notas[i,3]*0.1 +
notas[i,4]*0.4;

Console.WriteLine("Estudiante {0} {1,10:0.00}{2,13:0.00}{3,12:0.00}{4,12:0.00}{5,15:0.00}{6,15:0.00}",


i+1, notas[i,0], notas[i,1], notas[i,2], notas[i,3], notas[i,4], prom);

}
}
}

También podría gustarte