0% encontró este documento útil (0 votos)
12 vistas32 páginas

1 Programacion

El documento contiene varios programas en C# que implementan diferentes funciones, como calcular el cambio en monedas, descomponer números en factores primos, generar progresiones aritméticas, dibujar figuras con asteriscos, convertir temperaturas entre Celsius y Fahrenheit, y manejar entradas de usuario para validar números. Cada programa está estructurado con métodos específicos y utiliza bucles y condiciones para cumplir con los requisitos establecidos. También se incluyen ejemplos de uso y validaciones para asegurar que las entradas sean correctas.

Cargado por

quinovltur
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
12 vistas32 páginas

1 Programacion

El documento contiene varios programas en C# que implementan diferentes funciones, como calcular el cambio en monedas, descomponer números en factores primos, generar progresiones aritméticas, dibujar figuras con asteriscos, convertir temperaturas entre Celsius y Fahrenheit, y manejar entradas de usuario para validar números. Cada programa está estructurado con métodos específicos y utiliza bucles y condiciones para cumplir con los requisitos establecidos. También se incluyen ejemplos de uso y validaciones para asegurar que las entradas sean correctas.

Cargado por

quinovltur
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 32

calderilla

using System.Text;

internal class Program


{
private static void Calderilla(double dinero)
{
Console.OutputEncoding = Encoding.Default;
double valor = dinero;

while (valor >= 2)


{
Console.WriteLine("moneda de 2€");
valor = valor - 2;

}
while (valor >= 1)
{
Console.WriteLine("moneda de 1€");
valor = valor - 1;

}
while (valor >= 0.50)
{
Console.WriteLine("moneda de 0,50 centimos");
valor = valor - 0.50;

}
while (valor >= 0.20)
{
Console.WriteLine("moneda de 0,20 centimos");
valor = valor - 0.20;

}
while (valor >= 0.10)
{
Console.WriteLine("moneda de 0,10 centimos");
valor = valor - 0.10;

}
while (valor >= 0.05)
{
Console.WriteLine("moneda de 0,05 centimos");
valor = valor - 0.05;

}
while (valor >= 0.02)
{
Console.WriteLine("moneda de 0,02 centimos");
valor = valor - 0.02;

}
while (valor >= 0.01)
{
Console.WriteLine("moneda de 0,01 centimos");
valor = valor - 0.01;

}
private static void Main(string[] args)
{
Calderilla(3.95);
}
}

Factores primos

internal class Program


{
private static void DescomponerFactoresPrimos(int n)
{
int valor = n;
int div = 2;

Console.Write(n + " = ");


while(valor !=1)
{
while (valor % div == 0)
{
Console.WriteLine(div + " x ");
valor = valor / div;
}
div++;
}

Console.WriteLine("1");
}
private static void Main(string[] args)
{
DescomponerFactoresPrimos(100);
}
}
progresion aritmeetica
internal class Program
{
private static void Main(string[] args)
{
ProgresionAritmetica(10, 15);
}
private static void ProgresionAritmetica(int n1, int n2)
{
int i, diff = n2 - n1;
int valor = n1;

for (i = 0; i < 10; i++)


{
Console.Write(valor + " ");
valor = valor + diff;
}
Console.WriteLine();
}
}

cuadrado hueco estrellas

internal class Program


{
private static void Main(string[] args)
{
CuadradoHuecoEstrellitas(5);
}
private static void CuadradoHuecoEstrellitas(int tam)
{
int i, j;
for(j = 0; j < tam; j++)
{
Console.Write("*");
}
Console.WriteLine();
for (i = 1; i < tam-1; i++)
{
Console.Write("*");
for (j = 1; j < tam-1; j++)
{
Console.Write(" ");

}
Console.WriteLine("*");

}
for (j = 0; j < tam; j++)
{
Console.Write("*");

}
Console.WriteLine();
}
}

internal class Program


{
private static void Main(string[] args)
{
CuadradoHuecoEstrellitas(5);
}
private static void CuadradoHuecoEstrellitas(int tam)
{
int i, j;
for(j = 0; j < tam; j++)
{
Console.Write("*");

}
Console.WriteLine();
for (i = 1; i < tam-1; i++)
{
Console.Write("*");
for (j = 1; j < tam-1; j++)
{
Console.Write(" ");

}
Console.WriteLine("*");

}
for (j = 0; j < tam; j++)
{
Console.Write("*");

}
Console.WriteLine();
}
}

private static void CalendarioGrafico(int mes, int anno)


{

int diasemana = DiaSemanaFecha(1, mes, anno);


int diasMes = Diasmes2(mes, anno);
int i;
Console.WriteLine(" L M X J V S D");

for (i = 1; i < diasemana; i++)


{
Console.Write(" ");
}
for (i = 1; i<= diasMes; i++)
{
if (i < 10)
{
Console.Write(" ");
}
Console.Write(" " + i);
diasemana += 1;
if (diasemana == 8)
{
Console.WriteLine();
diasemana = 1;
}
}

private static void DescomponerFactoresPrimos(int numero)


{
int i, factor = 2;
Console.Write(numero + " = ");
while (numero > 1)
{
while (numero % factor == 0)
{
Console.Write(factor);
numero = (numero / factor);

if (numero > 1)
{
Console.Write(" x ");
}
}
factor = factor + 1;
}
}

piramide pegado a la izquierda

using System;

using System;

internal class Program


{
private static void Main(string[] args)
{
// Solicitar el tamaño de la pirámide
Console.Write("Introduce un número entre 3 y 20: ");
int tam = int.Parse(Console.ReadLine());

TrianguloEstrellitas(tam);
}
private static void TrianguloEstrellitas(int tam)
{
// Verificar que el tamaño esté entre 3 y 20
if (tam < 3 || tam > 20)
{
Console.WriteLine("ERROR");
return;
}

// Imprimir la pirámide
for (int i = 1; i <= tam; i++)
{
// Imprimir las estrellas en cada fila
for (int j = 0; j < i; j++)
{
Console.Write("*");
}

// Saltar a la siguiente línea después de cada fila


Console.WriteLine();
}
}
}

piramide en el medio
using System;

internal class Program


{
private static void Main(string[] args)
{
// Solicitar el tamaño de la pirámide
Console.Write("Introduce un número entre 3 y 20: ");
int tam = int.Parse(Console.ReadLine());

TrianguloEstrellitas(tam);
}

private static void TrianguloEstrellitas(int tam)


{
// Verificar que el tamaño esté entre 3 y 20
if (tam < 3 || tam > 20)
{
Console.WriteLine("ERROR");
return;
}
// Imprimir la pirámide
for (int i = 1; i <= tam; i++)
{
// Imprimir los espacios antes de las estrellas en cada fila
for (int j = 0; j < tam - i; j++)
{
Console.Write(" ");
}

// Imprimir las estrellas en cada fila


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

// Saltar a la siguiente línea después de cada fila


Console.WriteLine();
}
}
}

de cenntigrados a fahrenheit
using System;

internal class Program


{
private static void Main(string[] args)
{
// Solicitar la temperatura en grados centígrados
Console.Write("Introduce la temperatura en grados Centígrados: ");
double tempC = double.Parse(Console.ReadLine());

// Llamar a la función y mostrar el resultado


double tempF = CentigradosAFahrenheit(tempC);
Console.WriteLine("La temperatura en Fahrenheit es: " + tempF + "°F");
}

// Función que convierte de Centígrados a Fahrenheit


private static double CentigradosAFahrenheit(double tempC)
{
return 1.8 * tempC + 32;
}
}
de centigrados a farenheit
//using System;

//internal class Program


//{
// private static void Main(string[] args)
// {
// // Solicitar la temperatura en grados centígrados
// Console.Write("Introduce la temperatura en grados Centígrados: ");
// double tempC = double.Parse(Console.ReadLine());

// // Llamar a la función y mostrar el resultado


// double tempF = CentigradosAFahrenheit(tempC);
// Console.WriteLine("La temperatura en Fahrenheit es: " + tempF + "°F");
// }

// // Función que convierte de Centígrados a Fahrenheit


// private static double CentigradosAFahrenheit(double tempC)
// {
// return 1.8 * tempC + 32;
// }
//}
using System;

internal class Program


{
private static void Main(string[] args)
{
// Solicitar la temperatura en grados Fahrenheit
Console.Write("Introduce la temperatura en grados Fahrenheit: ");
double tempF = double.Parse(Console.ReadLine());

// Llamar a la función y mostrar el resultado


double tempC = FahrenheitACentigrados(tempF);
Console.WriteLine("La temperatura en Centígrados es:" + tempC + " ºC" );
}

// Función que convierte de Fahrenheit a Centígrados


private static double FahrenheitACentigrados(double tempF)
{
return (tempF - 32) / 1.8;
}
}
scribe una función EscribeSerieNumeros3 que nos pide tres números. El primero tendrá que
ser un número entre 1 y 100; si el número no es correcto, lo vuelve a pedir. El segundo
tendrá que ser un número entre 1 y 100 pero con la condición de que sea mayor que el
primero; lo volverá a pedir mientras no sea correcto. El tercero tendrá que ser un número
entre 1 y 100 con la condición de que sea mayor que el primero y menor que el segundo;
también lo volverá a pedir hasta que sea correcto. Una vez que tengamos los tres números,
nos escribirá por pantalla los números comprendidos entre el primero y el tercero y en otra
línea los números comprendidos entre el tercero y el segundo. Mejor con un ejemplo: Los
tres números son 5, 12 y 7. Nos tendrá que escribir: 5 6 7 7 8 9 10 11 12

using System;

internal class Program


{
private static void Main(string[] args)
{
// Llamamos a la función EscribeSerieNumeros3
EscribeSerieNumeros3();
}

// Función que pide los tres números y escribe las series


private static void EscribeSerieNumeros3()
{
int num1, num2, num3;

// Pedir el primer número: debe estar entre 1 y 100


do
{
Console.Write("Introduce el primer número (entre 1 y 100): ");
num1 = int.Parse(Console.ReadLine());
} while (num1 < 1 || num1 > 100);

// Pedir el segundo número: debe ser mayor que el primero y entre 1 y 100
do
{
Console.Write("Introduce el segundo número (mayor que el primero y entre 1 y 100):
");
num2 = int.Parse(Console.ReadLine());
} while (num2 <= num1 || num2 < 1 || num2 > 100);

// Pedir el tercer número: debe ser mayor que el primero y menor que el segundo, entre
1 y 100
do
{
Console.Write("Introduce el tercer número (mayor que el primero y menor que el
segundo y entre 1 y 100): ");
num3 = int.Parse(Console.ReadLine());
} while (num3 <= num1 || num3 >= num2 || num3 < 1 || num3 > 100);
// Escribir los números entre el primero y el tercero
for (int i = num1; i <= num3; i++)
{
Console.Write(i + " ");
}
Console.WriteLine(); // Salto de línea

// Escribir los números entre el tercero y el segundo


for (int i = num3; i <= num2; i++)
{
Console.Write(i + " ");
}
Console.WriteLine(); // Salto de línea
}
}

triangulo incompleto
using System;

internal class Program


{
private static void Main(string[] args)
{
// Solicitar el tamaño de la pirámide
Console.Write("Introduce un número entre 3 y 20: ");
int tam = int.Parse(Console.ReadLine());

TrianguloEstrellitas(tam);
}

private static void TrianguloEstrellitas(int tam)


{
// Verificar que el tamaño esté entre 3 y 20
if (tam < 3 || tam > 20)
{
Console.WriteLine("ERROR");
return;
}

// Imprimir la pirámide
for (int i = 0; i < tam; i++)
{
// Imprimir los espacios antes de la estrella
for (int j = 0; j < tam - i - 1; j++)
{
Console.Write(" ");
}

// Imprimir las estrellas


for (int j = 0; j < 2 * i + 1; j++)
{
if (i == 0 || i == tam - 1 || j == 0 || j == 2 * i) // Bordes de la pirámide
Console.Write("*");
else
Console.Write(" ");
}

// Saltar a la siguiente línea


Console.WriteLine();
}
}
}

devuelve maximo, minimo, y medio


internal class Program
{
private static void Main(string[] args)
{
// Ejemplo de uso de las funciones
int a = 8, b = 100, c = -2;

// Llamadas a las funciones


Console.WriteLine($"El máximo de ({a}, {b}, {c}) es: {Maximo(a, b, c)}");
Console.WriteLine($"El mínimo de ({a}, {b}, {c}) es: {Minimo(a, b, c)}");
Console.WriteLine($"El medio de ({a}, {b}, {c}) es: {Medio(a, b, c)}");
}

// Función que devuelve el máximo de tres números


private static int Maximo(int a, int b, int c)
{
int max = a; // Suponemos inicialmente que 'a' es el máximo

if (b > max) // Si 'b' es mayor que el actual 'max', entonces 'b' es el máximo
{
max = b;
}

if (c > max) // Si 'c' es mayor que el actual 'max', entonces 'c' es el máximo
{
max = c;
}

return max; // Devolvemos el máximo


}

// Función que devuelve el mínimo de tres números


private static int Minimo(int a, int b, int c)
{
int min = a; // Suponemos inicialmente que 'a' es el mínimo

if (b < min) // Si 'b' es menor que el actual 'min', entonces 'b' es el mínimo
{
min = b;
}

if (c < min) // Si 'c' es menor que el actual 'min', entonces 'c' es el mínimo
{
min = c;
}

return min; // Devolvemos el mínimo


}

// Función que devuelve el número del medio de los tres


private static int Medio(int a, int b, int c)
{
// Para obtener el número del medio, sumamos los tres y restamos el máximo y el
mínimo
return a + b + c - Maximo(a, b, c) - Minimo(a, b, c);
}
}

romboide
internal class Program
{
private static void Main(string[] args)
{
// Llamamos a la función Romboide con los valores de altura y longitud
Romboide(20, 14); // Ejemplo con altura 5 y longitud 7
Console.WriteLine(); // Dejar una línea en blanco entre ejemplos
Romboide(3, 20); // Ejemplo con altura 3 y longitud 10
}
// Función que pinta un romboide con la altura y longitud proporcionadas
private static void Romboide(int altura, int longitud)
{
// Recorremos las filas (pisos) del romboide
for (int i = 0; i < altura; i++)
{
// Imprimir los espacios en blanco al principio de cada fila
// Los espacios dependen de la fila en la que estamos (i)
for (int j = 0; j < altura - i - 1; j++)
{
Console.Write(" ");
}

// Imprimir los asteriscos


for (int j = 0; j < longitud; j++)
{
Console.Write("*");
}

// Al terminar de imprimir los asteriscos, saltamos a la siguiente línea


Console.WriteLine();
}
}
}

nota final

using System;

class Program
{
static void Main(string[] args)
{
// Llamamos a la función para calcular la nota final
CalculaNotaFinal();
}

// Función que calcula la nota final


private static void CalculaNotaFinal()
{
double nota;
int suspensos = 0;
double sumaNotas = 0;

// Pedir y procesar las 7 notas


for (int i = 1; i <= 7; i++)
{
// Pedir la nota para el examen i
nota = PedirNota(i);

// Sumar la nota a la total


sumaNotas += nota;

// Contar si la nota es menor a 5 (suspenso)


if (nota < 5)
{
suspensos++;
}
}

// Calcular la media de las notas


double media = sumaNotas / 7;

// Mostrar la media antes de ajustar


Console.WriteLine($"Media antes de ajustar: {media:F2}");

// Si hay 2 o más suspensos, la nota final no puede superar 4


if (suspensos >= 2)
{
media = Math.Min(media, 4); // La media no debe superar 4
}

// Mostrar la nota final


Console.WriteLine($"La nota final es: {media:F2}");

// Mantener la consola abierta para ver los resultados


Console.ReadKey();
}

// Función para pedir una nota válida


private static double PedirNota(int examen)
{
double nota = 0; // Inicializamos la variable nota con un valor predeterminado
bool notaValida = false;

// Pedir la nota hasta que sea válida


while (!notaValida)
{
Console.WriteLine($"Introduce la nota del examen {examen} (entre 0 y 10):");
string input = Console.ReadLine();

// Validar que la nota esté entre 0 y 10


if (double.TryParse(input, out nota) && nota >= 0 && nota <= 10)
{
notaValida = true;
}
else
{
Console.WriteLine("Nota no válida. Debe estar entre 0 y 10.");
}
}

return nota;
}
}

lista cuadrado perfecto

class Program
{
static void Main(string[] args)
{
// Llamamos a la función ListaCuadradosPerfectos con un ejemplo
ListaCuadradosPerfectos(0, 20); // Ejemplo con rango de 10 a 20
}

// Función que devuelve true si un número es un cuadrado perfecto


private static bool CuadradoPerfecto(int numero)
{
if (numero < 0)
{
return false; // Los cuadrados perfectos son números no negativos
}

double raiz = Math.Sqrt(numero); // Calculamos la raíz cuadrada del número


int raizEntera = (int)raiz; // Convertimos la raíz a entero truncando el valor decimal

// Verificamos si la raíz elevada al cuadrado es igual al número original


return raizEntera * raizEntera == numero;
}

// Función que escribe todos los cuadrados perfectos entre dos números
private static void ListaCuadradosPerfectos(int min, int max)
{
// Iteramos por todos los números en el rango [min, max]
for (int i = min; i <= max; i++)
{
// Si el número es un cuadrado perfecto, lo imprimimos
if (CuadradoPerfecto(i))
{
Console.WriteLine(i);
}
}
}
}

fecha
using System;

class Program
{
static void Main(string[] args)
{
// Ejemplo de prueba
Console.WriteLine(FechaCorrecta(31, 4, 2020)); // False
Console.WriteLine(FechaCorrecta(29, 2, 2020)); // True (2020 es bisiesto)
Console.WriteLine(FechaCorrecta(31, 12, 2021)); // True
Console.WriteLine(FechaCorrecta(31, 2, 2021)); // False
}

// Función que verifica si la fecha es correcta


private static bool FechaCorrecta(int dia, int mes, int año)
{
// Verificar que el año esté en el rango válido
if (año < 1980 || año > 2100)
{
return false;
}

// Verificar que el mes esté en el rango válido


if (mes < 1 || mes > 12)
{
return false;
}

// Verificar que el día sea válido para el mes y año


int maxDias = DiasMaximosEnMes(mes, año);

if (dia < 1 || dia > maxDias)


{
return false;
}

// Si todas las comprobaciones son correctas, la fecha es válida


return true;
}

// Función que devuelve el número máximo de días para un mes dado un año
private static int DiasMaximosEnMes(int mes, int año)
{
// Definir los días máximos de cada mes
switch (mes)
{
case 1: // Enero
case 3: // Marzo
case 5: // Mayo
case 7: // Julio
case 8: // Agosto
case 10: // Octubre
case 12: // Diciembre
return 31;
case 4: // Abril
case 6: // Junio
case 9: // Septiembre
case 11: // Noviembre
return 30;
case 2: // Febrero
// Verificar si es un año bisiesto
if (EsBisiesto(año))
{
return 29; // Año bisiesto
}
else
{
return 28; // Año no bisiesto
}
default:
return 0; // Este caso no debería ocurrir ya que el mes está validado
previamente
}
}

// Función que determina si un año es bisiesto


private static bool EsBisiesto(int año)
{
// Un año es bisiesto si es divisible por 4, pero no por 100, o si es divisible por
400
if ((año % 4 == 0 && año % 100 != 0) || (año % 400 == 0))
{
return true;
}
return false;
}
}
ayuda gpt

Para estar bien preparado para un examen de funciones en C#, basándome en los
ejemplos de ejercicios que me has enviado, hay varios conceptos clave que necesitas
dominar. Te proporcionaré una lista de los temas y habilidades que debes conocer y
entender profundamente para abordar correctamente este tipo de ejercicios.

1. Definición y Declaración de Funciones

● Sintaxis básica: Saber cómo definir una función en C#, incluyendo:


○ Tipo de retorno (void, int, double, bool, etc.).
○ Nombre de la función.
○ Parámetros de entrada (si los hay).
○ Valor de retorno (si la función no es void).

Ejemplo:
csharp
Copiar código
private static int Sumar(int a, int b)
{
return a + b;
}

2. Parámetros de las Funciones

● Paso de parámetros por valor: La forma más común, donde los valores se
copian a la función.
● Paso de parámetros por referencia (ref y out): Cuando una función necesita
modificar los valores originales de los parámetros pasados.
○ ref: Se usa cuando el parámetro se pasa ya inicializado.
○ out: Se usa cuando la función necesita devolver un valor a través del
parámetro.

Ejemplo:
csharp
Copiar código
private static void Incrementar(ref int a)
{
a++;
}

3. Tipos de Retorno
● Saber qué tipo de datos puede devolver una función: int, double, bool,
string, etc.
● Retorno de valores: Cómo devolver valores desde una función (usando
return).
● Funciones que no devuelven valores: Funciones void, que no necesitan
devolver nada.

Ejemplo:
csharp
Copiar código
private static bool EsPar(int numero)
{
return numero % 2 == 0;
}

4. Estructuras de Control dentro de Funciones

● Condicionales (if, else, switch): Usar correctamente estructuras de control


dentro de las funciones.
● Bucles (for, while, foreach): Iterar dentro de las funciones, por ejemplo,
para recorrer rangos o listas.

Ejemplo:
csharp
Copiar código
private static void ImprimirPares(int max)
{
for (int i = 1; i <= max; i++)
{
if (i % 2 == 0)
{
Console.WriteLine(i);
}
}
}

5. Funciones Matemáticas y Lógicas

● Operaciones matemáticas básicas: Uso de operaciones como suma, resta,


multiplicación, división, módulo.
● Funciones de la clase Math: Métodos como Math.Sqrt(), Math.Pow(),
Math.Min(), Math.Max(), etc.
● Operadores lógicos y de comparación: Uso de operadores como ==, !=, >, <,
&&, ||.

Ejemplo:
csharp
Copiar código
private static bool EsCuadradoPerfecto(int numero)
{
double raiz = Math.Sqrt(numero);
return raiz == Math.Floor(raiz);
}

6. Validación de Datos

● Verificación de entrada de usuario: Saber cómo validar datos de entrada


dentro de las funciones, como asegurarse de que un número esté dentro de un
rango específico.
● Uso de TryParse para convertir entradas de texto a números.

Ejemplo:
csharp
Copiar código
private static double PedirNota()
{
double nota;
while (true)
{
Console.Write("Introduce una nota entre 0 y 10: ");
if (double.TryParse(Console.ReadLine(), out nota) && nota >=
0 && nota <= 10)
{
return nota;
}
else
{
Console.WriteLine("Nota no válida. Inténtalo de
nuevo.");
}
}
}

7. Uso de Arrays y Colecciones (Opcional, dependiendo del examen)

● Trabajar con arrays: Declarar y manipular arrays, por ejemplo, encontrar el


máximo o mínimo de un conjunto de números.

Ejemplo:
csharp
Copiar código
private static int Maximo(int[] numeros)
{
int max = numeros[0];
for (int i = 1; i < numeros.Length; i++)
{
if (numeros[i] > max)
{
max = numeros[i];
}
}
return max;
}

8. Funciones Recursivas (Avanzado, si es necesario)

● Recursión: Saber cuándo y cómo usar funciones recursivas. Esto puede ser
útil para problemas como la secuencia de Fibonacci o la búsqueda de
elementos en estructuras de datos.

Ejemplo:
csharp
Copiar código
private static int Factorial(int n)
{
if (n == 0)
return 1;
return n * Factorial(n - 1);
}

9. Manejo de Excepciones
● Try-Catch: Saber cómo manejar excepciones dentro de las funciones,
especialmente cuando el código puede generar errores de ejecución (por
ejemplo, dividir por cero).

Ejemplo:
csharp
Copiar código
private static void Dividir(int a, int b)
{
try
{
int resultado = a / b;
Console.WriteLine($"Resultado: {resultado}");
}
catch (DivideByZeroException)
{
Console.WriteLine("Error: División por cero.");
}
}

10. Documentación y Buenas Prácticas

● Comentarios en el código: Aunque no es estrictamente necesario para un


examen, comentar correctamente las funciones ayuda a entender lo que está
haciendo el código.
● Nombres descriptivos: Usar nombres significativos para las funciones y los
parámetros para que el código sea más fácil de entender.

11. Ejercicios típicos que podrían aparecer en el examen

● Validación de fechas (como el ejercicio de FechaCorrecta).


● Cálculo de promedios y manejo de condiciones especiales (como los
exámenes de notas).
● Trabajar con funciones matemáticas (por ejemplo, cuadrado perfecto, factorial,
operaciones).
● Creación de funciones que resuelvan problemas lógicos (por ejemplo,
determinar el máximo, mínimo o medio de tres números).
● Uso de bucles para iterar sobre rangos o colecciones (por ejemplo, imprimir
números entre dos valores).
Recomendaciones para prepararte:

1. Practica con ejercicios: Resuelve tantos ejercicios como puedas. Intenta


hacerlos de manera que no solo sigas un paso a paso, sino que entiendas
cómo se construyen las funciones.
2. Lee y comprende los ejemplos: Los ejercicios que me diste son un buen punto
de partida. Trata de entender la lógica detrás de cada uno y cómo se
implementan las funciones.
3. Haz que tu código sea claro y eficiente: Durante el examen, asegúrate de que
tu código esté bien estructurado, que las funciones tengan nombres
significativos y que sea fácil de entender.
4. Practica con validaciones de entrada: Muchos de los ejercicios incluyen
validaciones de entrada, como verificar si una fecha es válida o si un número
está dentro de un rango. Practica esto para estar seguro de que puedes
implementar controles de errores de forma efectiva.

Con estos conocimientos y habilidades, estarás bien preparado para un examen


sobre funciones en C#. ¡Buena suerte!

Si tu maestro te permite llevar ayudas al examen, ¡es una excelente oportunidad para
estar bien preparado! Aquí tienes algunas ideas útiles para lo que puedes llevar:

1. Hoja de Apuntes

Prepara una hoja con lo más esencial, como:

● Sintaxis básica:
○ Estructura de un programa en C#.
○ Ejemplo de declaración de variables (int, string, double, etc.).
○ Uso de operadores aritméticos, lógicos y de comparación.
● Estructuras de control:
○ Ejemplo de if, else if, else.
○ Ejemplo de switch.
○ Bucles: for, while y do while.
● Métodos:
○ Cómo declarar y llamar un método.
○ Ejemplo de paso de parámetros por valor y por referencia (ref, out).
● Manipulación de cadenas (string):
○ Métodos comunes: .Substring(), .Contains(), .IndexOf(),
.Split().
● Arreglos y Listas:
○ Ejemplo de declaración e inicialización de arreglos y listas.
○ Métodos comunes para listas: .Add(), .Remove(), .Count().

2. Código de Ejemplo
● Es útil tener fragmentos de código que puedas adaptar a diferentes problemas:
○ Función para leer datos desde la consola (Console.ReadLine()).
○ Ejemplo de validación de datos (verificar si es un número, por ejemplo).
○ Ejemplo de manejo de excepciones (try-catch).
○ Ejemplo de métodos recursivos.

3. Tabla de Tipos de Datos y Conversión

● Puedes incluir una tabla con los principales tipos de datos (int, double,
float, string, bool).
● Ejemplo de conversión de tipos (int.Parse(), Convert.ToInt32(),
ToString()).

4. Diagrama de Flujo

Si tu examen incluye problemas que requieren lógica de programación, un pequeño


diagrama de flujo puede ayudarte a planificar tu solución antes de escribir el código.

5. Guía de Errores Comunes

● Errores de sintaxis: uso incorrecto de punto y coma, llaves o paréntesis.


● Null Reference Exception: intentar acceder a un objeto nulo.
● Out of Range: acceso a un índice fuera de los límites de un arreglo o lista.

6. Material Digital (Si Permite Computadora)

Si puedes usar tu computadora o tablet:

● Ten abierta la documentación oficial de C# en Microsoft (offline).


● Ten a mano un editor de texto sencillo como Notepad o VS Code para escribir
código rápido y hacer pruebas.

Ejemplo de Hoja de Apuntes Resumida


csharp
Copiar código
// Declaración de variables
int num = 10;
string mensaje = "Hola Mundo";

// Estructura if-else
if (num > 0) {
Console.WriteLine("Número positivo");
} else {
Console.WriteLine("Número negativo");
}
// Bucle for
for (int i = 0; i < 5; i++) {
Console.WriteLine(i);
}

// Método de suma
int Sumar(int a, int b) {
return a + b;
}

// Llamada al método
int resultado = Sumar(3, 4);
Console.WriteLine($"Resultado: {resultado}");

🚀
Con esta hoja de ayuda estarás bien preparado y tendrás a la mano lo que necesitas
para resolver la mayoría de los problemas. ¡Buena suerte en tu examen!
rango descende

class Program

static void Main(string[] args)

// Llamamos a la función para escribir el rango descendente

EscribeRangoDescendente();

// Función que pide los tres números y escribe el rango descendente

private static void EscribeRangoDescendente()

int primero = PedirNumero(1, 100); // Pedir primer número (entre 1 y 100)

int segundo = PedirNumeroMayor(primero, 1, 100); // Pedir segundo número


(mayor que el primero)

int tercero = PedirNumeroMayorQueElSegundo(segundo, 1, 100); // Pedir tercer


número (mayor que el segundo)

// Imprimir los números en orden descendente

for (int i = tercero; i >= segundo; i--)

Console.Write(i + " ");

Console.WriteLine(); // Para mover a la siguiente línea al finalizar


}

private static int PedirNumero(int min, int max)

int numero;

bool numeroValido = false;

do

Console.Write($"Introduce un número entre {min} y {max}: ");

numero = int.Parse(Console.ReadLine());

if (numero >= min && numero <= max)

numeroValido = true;

else

Console.WriteLine($"El número debe estar entre {min} y {max}. Inténtalo de


nuevo.");

} while (!numeroValido);

return numero;

private static int PedirNumeroMayor(int anterior, int min, int max)

{
int numero;

bool numeroValido = false;

do

Console.Write($"Introduce un número mayor que {anterior} y entre {min} y


{max}: ");

numero = int.Parse(Console.ReadLine());

if (numero > anterior && numero >= min && numero <= max)

numeroValido = true;

else

Console.WriteLine($"El número debe ser mayor que {anterior} y estar entre


{min} y {max}. Inténtalo de nuevo.");

} while (!numeroValido);

return numero;

private static int PedirNumeroMayorQueElSegundo(int segundo, int min, int max)

int numero;

bool numeroValido = false;

do
{

Console.Write($"Introduce un número mayor que {segundo} y entre {min} y


{max}: ");

numero = int.Parse(Console.ReadLine());

if (numero > segundo && numero >= min && numero <= max)

numeroValido = true;

else

Console.WriteLine($"El número debe ser mayor que {segundo} y estar entre


{min} y {max}. Inténtalo de nuevo.");

} while (!numeroValido);

return numero;

También podría gustarte