1 Programacion
1 Programacion
using System.Text;
}
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
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;
}
Console.WriteLine("*");
}
for (j = 0; j < tam; j++)
{
Console.Write("*");
}
Console.WriteLine();
}
}
}
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();
}
}
if (numero > 1)
{
Console.Write(" x ");
}
}
factor = factor + 1;
}
}
using System;
using System;
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("*");
}
piramide en el medio
using System;
TrianguloEstrellitas(tam);
}
de cenntigrados a fahrenheit
using System;
using System;
// 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
triangulo incompleto
using System;
TrianguloEstrellitas(tam);
}
// 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(" ");
}
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;
}
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;
}
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(" ");
}
nota final
using System;
class Program
{
static void Main(string[] args)
{
// Llamamos a la función para calcular la nota final
CalculaNotaFinal();
}
return nota;
}
}
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 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 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
}
}
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.
Ejemplo:
csharp
Copiar código
private static int Sumar(int a, int b)
{
return a + b;
}
● 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;
}
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);
}
}
}
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
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.");
}
}
}
●
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;
}
● 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.");
}
}
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
● 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.
● 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
// 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
EscribeRangoDescendente();
int numero;
do
numero = int.Parse(Console.ReadLine());
numeroValido = true;
else
} while (!numeroValido);
return numero;
{
int numero;
do
numero = int.Parse(Console.ReadLine());
if (numero > anterior && numero >= min && numero <= max)
numeroValido = true;
else
} while (!numeroValido);
return numero;
int numero;
do
{
numero = int.Parse(Console.ReadLine());
if (numero > segundo && numero >= min && numero <= max)
numeroValido = true;
else
} while (!numeroValido);
return numero;