using System; using System.Collections.Generic; namespace Ejercicios { class Program { static void Main(string[] args) { //Ej 1. Func<int, bool> esPrimo = num => { int cont = 0; for (int i = 1; i <= num; i++) { if (num % i == 0) { cont++; } } if (cont == 2) { return true; } return false; }; int n = 1; Console.WriteLine("El numero " + n + " es primo: " + esPrimo(n)); //Ej 2. Func<int, int> factorial = num => { int resultado = 1; for (int i = 1; i <= num; i++) { resultado = resultado * i; } return resultado; }; int n2 = 8; Console.WriteLine("El factorial de " + n2 + " es: " + factorial(n2)); //Ej 3. Func<List<int>, float> promedio = lista => { int sum = 0; foreach (int i in lista) { sum += i; } return (float)sum / (float)lista.Count; }; List<int> l1 = new List<int> { 7,8,9,17 }; Console.WriteLine("El promedio de la lista es: " + promedio(l1)); //Ej 4. Func<List<int>, bool> esta79 = lista => lista.Contains(79); List<int> l2 = new List<int> { 7,8,9,17,79 }; Console.WriteLine("La lista contiene 79: " + esta79(l2)); //Ej 5 Func<int, int, int, bool> tresPrimos = (num1, num2, num3) => { if (esPrimo(num1) && esPrimo(num2) && esPrimo(num3)) { return true; } return false; }; Console.WriteLine("Todos son primos: " + tresPrimos(2, 8, 7)); //Ej 6 Func<string, bool> palindromo = cadena => { char[] arreglo = cadena.ToUpper().ToCharArray(); int reverso = arreglo.Length - 1; for (int i = 0; i < arreglo.Length; i++) { if (arreglo[i] != arreglo[reverso]) { return false; } reverso--; } return true; }; string cad = "Ana"; Console.WriteLine("El string " + cad + " es palindromo " + palindromo(cad)); //Ej 7 Func<List<string>, bool> palindromos = lista => { foreach (string ch in lista) { if (!palindromo(ch)) { return false; } } return true; }; List<string> l3 = new List<string> { "Ana","Ala","Mas" }; Console.WriteLine("Toda la lista es de palindromos: " + palindromos(l3)); char c = '/'; Console.WriteLine("La opercion es "+ c +" y el resultado es: "+ operaciones(c,5,3)); } //Ej 8 public delegate float DelegateOperaciones(int val1, int val2); static float Suma(int num1, int num2) { return (float)(num1 + num2); } static float Resta(int num1, int num2) { return (float)(num1 - num2); } static float Multiplicacion(int num1, int num2) { return (float)(num1 * num2); } static float Division(int num1, int num2) { return (float)((float)num1 / (float)num2); } static Func<char, int, int, float> operaciones = (operador, num1, num2) => { DelegateOperaciones delegado = null; switch (operador) { case '+': delegado = Suma; break; case '-': delegado = Resta; break; case '*': delegado = Multiplicacion; break; case '/': delegado = Division; break; default: Console.WriteLine("Error"); break; } return delegado(num1, num2); }; } }
- Crear una función anónima que nos permita conocer si un número es primo o no,
- Crear una función anónima que calcule el factorial dado un número entero.
- Dado una lista de números enteros, crear una función anónima que nos permita conocer el promedio de dicha lista.
- Dado una lista de números enteros, crear una función anónima que nos permita conocer si el número 79 se encuentra dentro de la lista.
- Crear una función anónima que recibe 3 parámetros de tipo entero. La función debe retornar verdadero si los parámetros son números primos, en caso contrario retorna falso.
- Crear una función anónima que nos permita conocer si un string es palindromo o no.
- Dado una lista de strings, crear una función anónima que nos permita conocer si todos los elementos de la lista son o no palíndromos (para este problema puedes hacer uso de la función del ejercicio anterior).
- Crear una función llamada calculadora, la cual permita, sumar, restar, multiplicar y dividir dos números enteros. La función calculadora debe ser capaz de recibir cualquier tipo de operación (suma, resta, multiplicación y división).
-
check_circle_outlineMódulo 1 | 9 clases
Introducción
expand_more-
done_all
Clase 1
Introducción
-
done_all
Clase 2
Expresiones lambda
-
done_all
Clase 3
Expresiones lambda múltiples parámetros
-
done_all
Clase 4
Expresiones lambda múltiples sentencias
-
done_all
Clase 5
Expresiones lambda Funciones sin retorno
-
done_all
Clase 6
Delegados
-
done_all
Clase 7
Delegados y lambda
-
done_all
Clase 8
Ejercicios Lambda c#
-
done_all
Clase 9
Imperativo y Declarativo
-
-
check_circle_outlineMódulo 2 | 16 clases
Linq
expand_more
2 comentario(s)
using System; using System.Collections.Generic; namespace progfuncional { class Program { static void Main(string[] args) { /* 1 - Crear una función anónima que nos permita conocer si un número es primo o no, 2 - Crear una función anónima que calcule el factorial dado un número entero. 3 - Dado una lista de números enteros, crear una función anónima que nos permita conocer el promedio de dicha lista. 4 - Dado una lista de números enteros, crear una función anónima que nos permita conocer si el número 79 se encuentra dentro de la lista. 5 - Crear una función anónima que recibe 3 parámetros de tipo entero. La función debe retornar verdadero si los parámetros son números primos, en caso contrario retorna falso. 5 - Crear una función anónima que nos permita conocer si un string es palindromo o no. 6 - Dado una lista de strings, crear una función anónima que nos permita conocer si todos los elementos de la lista son o no palíndromos (para este problema puedes hacer uso de la función del ejercicio anterior). 7 - Crear una función llamada calculadora, la cual permita, sumar, restar, multiplicar y dividir dos números enteros. La función calculadora debe ser capaz de recibir cualquier tipo de operación (suma, resta, multiplicación y división). */ //1 - Crear una función anónima que nos permita conocer si un número es primo o no, Func<int,string> respPrimo = num=>{ int count=0; if(num!=1){ for(int i=1;i<=num;i++){ if(num%i==0) count++; if(count>2) return "El numero "+num+" No es Primo"; } return "El numero "+num+" Es Primo"; }else{ return "El numero "+num+" No es Primo"; } }; Console.WriteLine("(Eje 1)" +respPrimo(21)); // 2 - Crear una función anónima que calcule el factorial dado un número entero. Func<int,int> respFactor = num =>{ int respT=1; for(int i=2;i<=num;i++){ respT=respT*i; } return respT; }; Console.WriteLine("(Eje 2) "+respFactor(6)); /*3 - Dado una lista de números enteros, crear una función anónima que nos permita conocer el promedio de dicha lista.*/ var numEnteros= new List<int>{20,12,13,14,18,19,17,8}; Func<List<int>,int> promListNum = arrayList =>{ int acum=0; foreach(var element in numEnteros){ acum=acum+element; } return acum/numEnteros.Count; }; Console.WriteLine("(Eje 3) El promedio es: "+ promListNum(numEnteros)); /*4 - Dado una lista de números enteros, crear una función anónima que nos permita conocer si el número 79 se encuentra dentro de la lista.*/ var numEnt79= new List<int>{20,37,27,91,79,23,110,145}; Func<List<int>,string> buscar79 = arrayList =>{ foreach(var element in arrayList){ if(element==79) return "Si se encontro el 79 en el array"; } return "No se encontro el 79 en el array"; }; Console.WriteLine("(Eje 4) "+ buscar79(numEnt79)); // 5 - Crear una función anónima que nos permita conocer si un string es palindromo o no. Func<string,string> palindromo= texto =>{ string textoCompar=""; int longi = texto.Length-1; for(int i=longi;i>=0;i--){ textoCompar = textoCompar + texto.Substring(i,1); } if(texto==textoCompar)return "Es palindromo"; else return "No es palindromo"; }; Console.WriteLine("(Eje 5) "+palindromo("abcdcba")); /*6 - Dado una lista de strings, crear una función anónima que nos permita conocer si todos los elementos de la lista son o no palíndromos (para este problema puedes hacer uso de la función del ejercicio anterior).*/ var listaPalindromos = new List<string>{"abcdcba","acerca","caminar","humano","ojo","carpeta"}; Action<List<string>> palindromos= arrayList=>{ foreach(var element in arrayList){ Console.WriteLine("(Eje 6) "+ palindromo(element)); } }; palindromos(listaPalindromos); /*7 - Crear una función llamada calculadora, la cual permita, sumar, restar, multiplicar y dividir dos números enteros. La función calculadora debe ser capaz de recibir cualquier tipo de operación (suma, resta, multiplicación y división).*/ Delegatecalcular suma = Sumar; Delegatecalcular resta = Restar; Delegatecalcular multiplicacion = Multiplicar; Delegatecalcular division = Dividir; Action<float> RespEje7 = operacion =>Console.WriteLine("(Eje 7) "+operacion); RespEje7(calculadora(suma,30,25)); RespEje7(calculadora(resta,30,25)); RespEje7(calculadora(multiplicacion,30,25)); RespEje7(calculadora(division,30,25)); } /*7 - Crear una función llamada calculadora, la cual permita, sumar, restar, multiplicar y dividir dos números enteros. La función calculadora debe ser capaz de recibir cualquier tipo de operación (suma, resta, multiplicación y división).*/ public delegate float Delegatecalcular(float valor1, float valor2); public static float Sumar(float num1, float num2){ return num1+num2; } public static float Restar(float num1, float num2){ return num1-num2; } public static float Multiplicar(float num1, float num2){ return num1*num2; } public static float Dividir(float num1, float num2){ return num1/num2; } public static float calculadora(Delegatecalcular calculo,float num1,float num2){ return calculo(num1,num2); } } }