Universidad Madero, Puebla
Aplicaciones de informĂĄtica para la ingenierĂa Gustavo Carrillo Talavera
Índice
1- Edad con If anidado 2- Dos números enteros – Mayor y Menor 3- Dos números enteros – Positivo y Negativo 4- Área cuadrado, rectángulo y triángulo con if anidado 5- Longitud con If anidado 6- Compra de medicamentos, comestible y otro con if anidado 7- La hora de México, Alemania, India y Australia 8- Longitud con switch 9- Área cuadrado, rectángulo y triángulo con switch 10-Frutas 11- Longitud con Do-while 12-Caseta de peaje
1
Edad con If anidado Hacer un algoritmo que solicite la edad de una persona y en base a esta muestre si la persona es mayor de edad, menor de edad o es un error. Un menor tiene el rango de 0a 17, un mayor de 18 a 120 y el error es todo lo demรกs. New Sw imlane
usuario
New Sw imlane2
sistema
"int edad"
"edad"
"declaracion de variables"
"ingresa una edad"
"edad>=0 y edad<=17"
v "es menor"
f
f "edad>=18 y edad<=120"
"error"
v "es mayor"
Prueba de escritorio Entrada: edad= 5, 17, 18,-5 Salida: menor, menor, mayor, error
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { //declaracion de variables int edad; string leer; Console.WriteLine("ingrese edad"); leer = Console.ReadLine(); edad = Convert.ToInt16(leer); if(edad >= 0 & edad <= 17) Console.WriteLine("la persona es menor de edad"); else if (edad >= 18 & edad <=120) Console.WriteLine("la persona es mayor de edad"); else Console.WriteLine("ingreso una edad erronea"); Console.ReadKey();
}
//main } }
2
Dos nĂşmeros enteros â&#x20AC;&#x201C; Mayor y Menor Hacer un algoritmo que solicite 2 nĂşmeros entero y muestre que numero es mayor y en caso de ser igual colocar un cartel
New Sw imlane
New Sw imlane2
usuario
sistema
"introducir primer numero"
"introducir no1, introducir no2"
"ingresar primer numero" "no. 1"
"no. 2"
"ingresar segundo numero"
"no1 > no2"
f
v
"no2 > no1"
f "no1 = no2"
v
"el num1 es mayor"
"los num son iguales"
Prueba de escritorio: Entrada: Primer Numero= 1, 4, 5 Segundo Numero= 3, 2, 5 Salida: menor, mayor, iguales
using System;
"error"
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication13 { class Program { static void Main(string[] args) { //Declaracion de variable int primerNum, segundoNum; string leer; Console.WriteLine("Dame el 1° num"); leer = Console.ReadLine(); primerNum = Convert.ToInt16(leer);
Console.WriteLine("Dame el 2° num"); leer = Console.ReadLine(); segundoNum = Convert.ToInt16(leer); if (primerNum>segundoNum) Console.WriteLine ("El numero mayor es: {0}", primerNum); else if (segundoNum>primerNum) Console.WriteLine ("El numero mayor es: {0}", segundoNum); else if (primerNum==segundoNum) Console.WriteLine ("Son iguales"); Console.ReadKey(); } // main } }
3 Dos números enteros – Positivo y Negativo
Hacer un algoritmo que solicite el área y perímetro de: “1.- Cuadrado 2.Rectángulo 3.-Triangulo”. MENU en caso de no ingresar 1,2 o 3 mostrara error y terminara el algoritmo usuario
sistema
"int num1 entero"
"num 1"
"declaracion de variables"
"ingresa un num"
"num 1 > 0"
V
"positivo"
F V "num<0"
"negativo"
F "dato no valido"
Prueba de escritorio: Entrada: num1= 1, -2, uno Salida: positivo, negativo, dato no valido
using System; using System.Collections.Generic; using System.Linq; using System.Text;
using System.Threading.Tasks; namespace ConsoleApplication32 { class Program { static void Main(string[] args) {
//declaracion de variables int valor; string leer; Console.WriteLine("ingresa valor"); leer = Console.ReadLine(); valor = Convert.ToInt16(leer); if (valor > 0) Console.WriteLine("El numero es positivo"); else if (valor < 0) Console.WriteLine("El numero es negativo"); else Console.WriteLine("Dato erroneo"); Console.ReadKey(); //main } } }
4 ร rea cuadrado, rectรกngulo y triรกngulo con if anidado
Hacer un algoritmo que solicite el área y perímetro de: “1.- Cuadrado 2.- Rectángulo 3.-Triangulo”. MENU en caso de no ingresar 1,2 o 3 mostrara error y terminara el algoritmo usuario
sisterma
"int. edad"
"edad".
"ingresa edad"
"edad"
edad = 0 and edad = <17
"menor"
edad=>=18-120
"mayor"
Prueba de escritorio:
Entrada: 3, ancho: 15, altura: 5 Salida: Triangulo Área: 37 Perímetro: 25 using System; using System.Collections.Generic; using System.Linq; using System.Text;
"error"
using System.Threading.Tasks; namespace ConsoleApplication17 { class Program { static void Main(string[] args) { //Declaraciónm de variable int opc, lado, vase, altura; string leer; Console.WriteLine("Ingresa una opción"); leer = Console.ReadLine(); opc = Convert.ToInt16(leer); if (opc == 1) { Console.WriteLine("Dame el lado"); leer = Console.ReadLine(); lado = Convert.ToInt16(leer); Console.WriteLine("El área del cuadrado es: {0}", lado * lado); Console.WriteLine("El perímetro es: {0}", lado * 4); } else if (opc == 2) { Console.WriteLine("Dame la base"); leer = Console.ReadLine(); vase = Convert.ToInt16(leer); Console.WriteLine("Dame la altura"); leer = Console.ReadLine(); altura = Convert.ToInt16(leer); Console.WriteLine("El área del rectangulo es: {0}", vase * altura); Console.WriteLine("El perímetro del rectangulo es {0}", vase * 2 + altura * 2); } else if (opc == 3) { Console.WriteLine("Dame la base"); leer = Console.ReadLine(); vase = Convert.ToInt16(leer); Console.WriteLine("Dame la altura"); leer = Console.ReadLine(); altura = Convert.ToInt16(leer); Console.WriteLine("El área del triámgulo es: {0}", (vase * altura) / 2); Console.WriteLine("El perímetro del triángulo es {0}", altura * 2 + vase); Console.ReadKey(); }//main 5
Longitud con If anidado
Hacer un algoritmo que solicite una longitud. Dicha longitud corresponda a metros. Posteriormente mostrara el menĂş para que el usuario escoja la opciĂłn que desea convertir. El menĂş es: 1.-Convertir a yardas, 2.- Convertir a pulgadas 3.- Convertir a pies. usuario
sistema
"int, opc, lado, base, altura" " opciones 1 cuadrado 2 rectangulo 3 triangulo"
"opc" F "opcion = 1"
F "opc=2"
"opc=3"
V
"lado"
"Dame el lado" V "el area del cuadrado es lado x lado"
V
"el perimetro del cuadrado es lado x 4" "dame la base" "base"
"dame la altura"
"altura"
"dame la altura".
"el area del rectangulo es base x altura" "el perimetro del rectangulo es base x2 + altura x2"
"base". "altura". "el area del del triangulo es base x altura / 2"
Prueba de escritorio: Entrada:
"dame la base".
"el perimetyro del triangulo es altura + 2+ base"
F
"error"
metros= 1, 2, 3 opc= 1, 2, 3 Salida: La longitud en yardas es= 1.0936 La longitud en pulgadas es=78.74 La longitud en pies es= 9.87252
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication33 { class Program { static void Main(string[] args) { //declaracion de variables int opcion, lado, vase, altura; string leer; Console.WriteLine("Menu: 1=cuadrado, 2=rectanculo, 3=triangulo"); Console.WriteLine("Dame la opcion"); leer = Console.WriteLine(); opcion = Convert.ToInt16(leer); if (opcion==1) { Console.WriteLine("dame el lado"); leer = Console.ReadLine(); lado = Convert.ToInt16(leer; Console.WriteLine ("El area es: {0}",lado*lado); Console.WriteLine ("El perimetro es: {0}",lado*4); } else if (opcion==2) { Console.WriteLine("dame vase"); } } }
6
Compra de medicamentos, comestible y otro con if anidado
Hacer un algoritmo que solicite el precio sin IVA de un producto. Mostrar el menú de los tipos de productos. Mostraran según el tipo de productos elegido, el precio a pagar según corresponda.
usuario
sisterma
int, opc, precio
1.- medicamentos 2.comestibles 3.- otros
opc
"ingrtesa una opción" "ingresa un precio"
precio opc==1
opc==2
opc==3
"el precio es a", precio + precio*5
"el precio es igual a", a.
"el precio es igual a" precio+a
Prueba de escritorio: Entrada: precio= $150 tipo= 1 Salida: El precio con IVA es $157.5
using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication20 { class Program { static void Main(string[] args) { //declaracion de variables int precio=0, tipo; string leer; Console.WriteLine("Ingresa el precio sin iva"); leer = Console.ReadLine(); precio = Convert.ToInt16(leer); Console.WriteLine("Elige un tipo de producto: 1. Medicamento, 2. Comestible, 3. Otros"); leer = Console.ReadLine(); tipo = Convert.ToInt16(leer); if (tipo == 1) Console.WriteLine("El precio con iva es: ${0}", (precio * .05) + precio); else if (tipo == 2) Console.WriteLine("El precio es: ${0}", precio); else Console.WriteLine("El precio con iva es: ${0}", (precio * .16) + precio); Console.ReadKey(); } //main } }
7
La hora de MĂŠxico, Alemania, India y Australia
Hacer un algoritmo que solicite la hora de la Cd. de MĂŠxico. El algoritmo calculara la hora de: Alemania+8, India+13, Australia+23. MostrarĂĄ la hora correspondiente a los 3 paĂses anteriores.
New Sw imlane
NewSw imlane2
Int, metros, yardas.pulgadas,pies
1.- Metros a Yardas 2.- Metros a Pulgadas 3.- Metros a Pies
opc
"ingresa una opcion"
Opc
opc==1
opc==2
opc==3
"dame metros" metros
Error
"la conversion a metros es:" met *1.09361
Metros
dame metros La conversion a met es:" met*9.3901
"metros"
Dame metros
"la conversion a metros es:" met*3.28084
Prueba de Escritorio:
Default
Entrada: 1:22 México Salida: 6 horas
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication20 { class Program { static void Main(string[] args) { //declaracion de variables int hora,min,pais; string leer; Console.WriteLine("Ingresa la hora de México"); leer = Console.ReadLine(); hora = Convert.ToInt16(leer); Console.WriteLine("Ingresa los minutos"); leer = Console.ReadLine(); min = Convert.ToInt16(leer); Console.WriteLine("Elige un país: 1. Alemania, 2.India, 3.Australia"); leer = Console.ReadLine(); pais = Convert.ToInt16(leer); if (pais == 1) Console.WriteLine("La hora en alemania es: {0}", (hora+8)-24, min); else if (pais == 2) Console.WriteLine("La hora en India es: {0}", (hora+13)-24, min); else Console.WriteLine("La hora en Australia: {0}", (hora+23)-24, min); Console.ReadKey();
} //main } }
8 Longitud con switch
Hacer un algoritmo que solicite una longitud. Dicha longitud corresponda a metros. Posteriormente mostrara el menĂş para que el usuario escoja la opciĂłn que desea convertir. El menĂş es: 1.-Convertir a yardas, 2.- Convertir a pulgadas, 3.- Convertir a pies. usuario
sistema
"int. metros apc" "metros"
"ingresa una longitud en metros" "opciones: 1 convertir a yrds 2 convertir a pulgadas 3 convertir a pies"
"opcion"
"ingresar una opcion"
"opc==1"
"opc==2"
"la long. en mts es: metros x 1.09361"
"la long. en pulgadas es: mts x 3903701"
Prueba de escritorio: Entrada: metros=1, 2, 3 opc= 1, 2, 3 Salida: La longitud en yardas es= 1.0936 La longitud en pulgadas es=78.74 La longitud en pies es= 9.87252
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
"opc==3"
"la longitud en pies es: mts x 3.28034"
"error"
namespace ConsoleApplication49 { class Program { static void Main(string[] args) { //Declaracion de variables int opc, metros; string leer; { Console.WriteLine("Ingresa una longitud en metros:"); leer = Console.ReadLine(); metros = Convert.ToInt16(leer); Console.WriteLine("Opciones: 1.- Convertir a Yardas, 2.- Convetir a Pulgadas, 3.- Convertir a Pies"); do { Console.WriteLine("Ingresa una Opciรณn"); leer = Console.ReadLine(); opc = Convert.ToInt16(leer); switch (opc) { case 1: { Console.WriteLine("La longitud en yardas es: {0}", metros * 1.09361); break; } case 2: { Console.WriteLine("La longitud en pulgadas es: {0}", metros * 39.3701); break; } case 3: { Console.WriteLine("La longiud en pies es: {0}", metros * 3.28084); break; } default: { Console.WriteLine("Error"); break; } } // del switch }while (opc!=1 & opc!=2 & opc!=3); Console.ReadKey(); }//main } } }
9 ร rea cuadrado, rectรกngulo y triรกngulo con switch
Hacer un algoritmo que solicite el área y perímetro de: “1.- Cuadrado 2.- Rectángulo 3.-Triangulo”. MENU en caso de no ingresar 1,2 o 3 mostrara error y terminara el algoritmo
usuario
sistema
int, opc, lado ,base, altura "opciones: 1.-cuadrado 2.-rectangulo 3.- triangulo "ingresa una opcion"
opc
opc==1
lado
F
opc==2
F
opc==3
V "dame lado"
"el area del cuadrado es:" lado*lado
V
"El perimetro del cuadrado es:" lado x4
base
"dame la base" V "dame la altura
altura "el area del rectangulo es:" base x altura
"el perimetro del rectangulo es:" base x 2 + altura x 2
"Dame la base" Base
Altura
"Dame la altura" "el area del triangulo es:" base x altura / 2 "el perimetro del triangulo es:" altura + 2 + base
F
"Error"
Prueba de escritorio: Entrada: opc= 1, 2, 3, 4 lado=2 base=3, 5 altura=4, 4 Salida: Cuadrado Área: 4 Perímetro: 4 Rectángulo: Área: 12 Perímetro: 14 Triangulo Área: 10 Perímetro: 13 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication29 { class Program { static void Main(string[] args) { //declaración de variables int opcion, lado, vase, altura; String leer; Console.WriteLine("Opciones: 1.Cuadrado 2.Rectángulo 3. Triángulo"); leer = Console.ReadLine(); opcion = Convert.ToInt16(leer); switch (opcion) { case 1: { Console.WriteLine("Dame lado"); leer = Console.ReadLine(); lado = Convert.ToInt16(leer); Console.WriteLine("La area es:{0}", lado*lado); Console.WriteLine("La perimetro es:{0}", lado*4); break; } case 2: { Console.WriteLine("Dame base"); leer = Console.ReadLine(); vase = Convert.ToInt16(leer); Console.WriteLine("Dame altura"); leer = Console.ReadLine();
altura = Convert.ToInt16(leer); Console.WriteLine("El area es:{0}", vase*altura); Console.WriteLine("El perimetro es:{0}", 2*altura+2*vase); break; } case 3: { Console.WriteLine("Dame base"); leer = Console.ReadLine(); vase = Convert.ToInt16(leer); Console.WriteLine("Dame altura"); leer = Console.ReadLine(); altura = Convert.ToInt16(leer); Console.WriteLine("El area es:{0}", vase*altura/2); Console.WriteLine("El perimetro es:{0}",vase*3 ); break; } } // switch Console.ReadKey(); }//main } }
10
Frutas
Hacer un algoritmo Para una tienda que vende cocteles de fruta: 1 kg de jícama (8 vasos c/u $10), 1kg de sandía (14 vasos c/u $8.5), 1kg de piña (5.5 vasos c/u $9), 1kg de mango (6 vasos c/u $12). Solicitar el núm. De kg comprados de cada fruta. Calcular: a) Por tipo de fruta el núm. de vasos que se podrá vender y el total de dinero. B) Totales generales de la pregunta anterior.
usuario
sistema
"int opc lado base altura" opc: 1 cuadrado 2 rectangulo 3 triangulo" "opc".
"ingresa una opcion"
"opc"
opc==1
opc==2
opc==3 default
"lado"
"dame el lado" "dame la base" "el area es: lado x lado" "el perimetro es: lado x 4"
"base".
"altura" "el area es: base x altura" "el perimetro es: base x2 + altura x 2"
"base" "altura". "el area del triangulo es: base x altura /2" "el perimetro del triangulo es: altura+2+base"
Prueba de escritorio: Entrada: opc= 1, 2, 3, 4
"dame la altura"
"dame la base". "dame la altura".
kg= 1, 1, 1, 1 Salida: Vaso vendidos por kg= 8 Precio por vasos vendidos=80 Vasos vendidos por kg=14 Precio por vasos vendidos=119 Vasos vendidos por kg= 5.5 Precio por vasos vendidos=49.5 Vasos vendidos por kg= 6 Precio por vasos vendidos=72
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication5 { class Program { static void Main(string[] args) { //DeclaraciĂłnm de variable double kgj, kgs, kgp, kgm, vasos=0; string leer; Console.WriteLine("Cantidad de Kg de Jicama"); leer = Console.ReadLine(); kgj = Convert.ToInt16(leer); if (kgj <= 0) Console.WriteLine("Error"); else Console.WriteLine("Cantidad de Kg de Sandia"); leer = Console.ReadLine(); kgs = Convert.ToInt16(leer); if (kgs <= 0) Console.WriteLine("Error"); else Console.WriteLine("Cantidad de Kg de PiĂąa"); leer = Console.ReadLine(); kgp = Convert.ToInt16(leer); if (kgp <= 0) Console.WriteLine("Error"); else Console.WriteLine("Cantidad de Kg de Mango"); leer = Console.ReadLine(); kgm = Convert.ToInt16(leer); if (kgm <= 0) Console.WriteLine("Error");
else Console.WriteLine("Cantidad de Vasos de Jicama:{0}", vasos= kgs * 8); Console.WriteLine("Ganancia:${0}", vasos * 10); Console.WriteLine("Cantidad de Vasos de Sandia: {0}", vasos = kgs * 14); Console.WriteLine("Ganancia:${0}", vasos * 8.50); Console.WriteLine("Cantidad de Vasos de PiĂąa:{0}", vasos = kgs * 5.5); Console.WriteLine("Ganancia:${0}", vasos * 9); Console.WriteLine("Cantidad de Vasos de Mango:{0}", vasos = kgs * 6); Console.WriteLine("Ganancia:${0}", vasos * 12); Console.ReadKey(); }//main } }
11
Longitud con do-while Hacer un algoritmo que solicite una longitud. Dicha longitud corresponda a metros. Posteriormente mostrara el menú para que el usuario escoja la opción que desea convertir. El menú es: 1 convertir a yardas
2 convertir a pulgadas
3 convertir a pies
usuario
sistema
jicama precio J sandia precio S pinña precio P mango precio M
jicama
solicitud jicama
sandia
solicitud sandia
piña
solicitud piña
mango
solicitud mango
jicama * 8 sandia * 19 piña * 5.5 mangoi * 6
precio =$ vasos = #
Prueba de escritorio: Entrada: metros= 1, 2, 3. Opc= 1, 2, 3. Salida: la longitud en yardas es= 1.0936 La longitud en pulgadas es: 78.74 La longitud en pies es= 9.87252
using System; using System.Collections.Generic;
<0
<0
<0 <0
vasos 1 2 3 4
precio total (precios) vasos total (frutas)
error
"error" "Error" "ERROR"
precio jicama x 10.10 precio sandia 8.50 precio piña 9.00 precio mango 12.0
precio 1 2 3 4
using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication49 { class Program { static void Main(string[] args) { //Declaracion de variables int opc, metros; string leer; { Console.WriteLine("Ingresa una longitud en metros:"); leer = Console.ReadLine(); metros = Convert.ToInt16(leer); Console.WriteLine("Opciones: 1.- Convertir a Yardas, 2.- Convetir a Pulgadas, 3.- Convertir a Pies"); do { Console.WriteLine("Ingresa una Opciรณn"); leer = Console.ReadLine(); opc = Convert.ToInt16(leer); switch (opc) { case 1: { Console.WriteLine("La longitud en yardas es: {0}", metros * 1.09361); break; } case 2: { Console.WriteLine("La longitud en pulgadas es: {0}", metros * 39.3701); break; } case 3: { Console.WriteLine("La longiud en pies es: {0}", metros * 3.28084); break; } default: { Console.WriteLine("Error"); break; } } // del switch }while (opc!=1 & opc!=2 & opc!=3); Console.ReadKey(); }//main } }
12
Caseta de peaje con while Hacer un algoritmo sobre una caseta de peaje. El algoritmo preguntara que tipo de transporte paso: 1.-Auto $100 s/IVA, 2.- Camiรณn $250 s/IVA, 3.- Trรกiler $325 s/IVA. Si introduce algo distinto al 1, 2,3, marcar error y lo solicitara nuevamente. Calcular: a) Total por tipo de transporte que pasaron. b) Total general por tipo de transporte que pasaron. c) Total cobrado por tipo de transporte que pasaron. d) Total general por todos los transportes.
Usuario
Sistema
Declaracion de variables
Int. tipo, auto=0, camion=0, trailer=0
"Tipo de transporte: 1.Auto 2.-Camion 3.-Trailer
resp
"Paso un transporte 1.-Si 2.- No
No
resp==1
"El total por auto es:",auto "El total de cobro por autoes:",(auto*100)*1.16
Si
tipo
"El total cobrado es:", (auto*100)+(trailer*325)+(camion*250)*1.16 "El total por camion es:",camion "El total de cobro por camion es:", (camion*250)*1.16
"El total de transporte es:", (auto+camion+trailer)
"El total por trailer es:", trailer "El total de cobro por trailer es:",(tariler*325)*1.16
"Que tipo"
tipรณ
tipo==1 auto=auto+1
resp.
Prueba de escritorio:
tipo==2 camion=camion+1
"Paso otro transporte"
tipo==3 trailer=trailer+1
Entrada: resp= 1, 1, 1, 1 tipo=1, 2, 3, 2 auto=0, 1 camiรณn=0, 1, 2 Trรกiler= 0, 1 Salida: auto= 1 Total=116 Camiรณn=2 Total=580 Trรกiler=1 Total=377 Total transporte=4 Total de cobro=1073
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication50 { class Program { static void Main(string[] args) { //declaracion de variables int precio = 0, tipo; string leer; do { Console.WriteLine("Ingresa el precio sin iva"); leer = Console.ReadLine(); precio = Convert.ToInt16(leer); } while (precio <= 0); do { Console.WriteLine("Elige un tipo de producto: 1. Medicamento, 2. Comestible, 3. Otros"); leer = Console.ReadLine(); tipo = Convert.ToInt16(leer); } while (tipo != 1 & tipo != 2 & tipo != 3); if (tipo == 1) Console.WriteLine("El precio con iva es: ${0}", (precio * .05) + precio); else
if (tipo == 2) Console.WriteLine("El precio es: ${0}", precio); else Console.WriteLine("El precio es con iva es: ${0}", (precio * .16) + precio); Console.ReadKey(); } } }
Índice Excel
- Fórmulas fecha - Fórmulas texto - Fórmulas lógicas - Tablas de verdad que son 3 archivos: Ejercicios fórmulas 1-3 Ejercicios fórmulas 1-6 Ejercicios fórmulas lógicas tutorial - Tablas dinámicas 3. Programación: Importancia de la programación para Ing. Mecatrónica Lenguajes de Prog. Clase 2. Variables y Contantes
Formula de texto
Formulas lรณgicas
Fรณrmulas de fechas