Scanner scanner = new Scanner(System.in); System.out.print("Introduce un número entero: "); int a = scanner.nextInt(); System.out.print("Introduce otro número entero: "); int b = scanner.nextInt(); System.out.println("La suma es " + (a + b)); double c = a + 7.5; a += c; System.out.println(a); System.out.print("Introduce un número entero: "); a = scanner.nextInt(); if (a % 2 == 0) { System.out.println("Par"); } else { System.out.println("Impar"); } System.out.print("Introduce un número entero: "); a = scanner.nextInt(); System.out.print("Introduce otro número entero: "); b = scanner.nextInt(); // KISS keep it simple, stupid int suma = 0; while (a <= b) { suma += a; a++; } System.out.println(suma); suma = 0; do { System.out.print("Introduce un número entero (0 para salir): "); a = scanner.nextInt(); suma += a; } while (a != 0); System.out.format("la suma es %d",suma); scanner.close();
Autor: Juan Pablo Fuentes
Formador de programación y bases de datos
Ejercicio: Análisis de números
Un ejemplo de uso de conjuntos
# creo el primer set de datos archivo=open("pais.txt","r",encoding="utf-8"); pais=archivo.read() archivo.close() archivo=open("diario.txt","r",encoding="utf-8"); diario=archivo.read() archivo.close() # en pais tengo el artículo del pais y en diario el del diario print(pais) print(diario) # convierto las cadenas a palabras y creo un conjunto paisSet=set(pais.lower().split()) print(paisSet) diarioSet=set(diario.lower().split()) print(diarioSet) conjunciones={"el","un","tras","según","la","las","este","entre","esos"} # tengo dos conjuntos de palabras únicas. A partir de aquí podemos hacer # algún tipo de análisis. Por ejemplo ¿Qué palabras se repiten en los dos artículos? print((paisSet&diarioSet)-conjunciones)
Operaciones con conjuntos
conj1 = set(range(10)) conj2 = set(range(6, 15)) print(conj1) print(conj2) # Union: los elementos de los dos conjuntos union = conj1.union(conj2) # utilizando la función union print(union) unionOp = conj1 | conj2 # utilizando el operador union (|) print(unionOp) # intersección: Los elementos compartidos por los dos conjuntos interseccion = conj1.intersection(conj2) # utilizando la función print(interseccion) interseccion2 = conj1 & conj2 # utiilizando operador print(interseccion2) frutas = {"naranja", "pera", "manzana", "granada"} colores = {"naranja", "violeta", "rojo"} print(frutas & colores) # diferencia los elementos de un conjunto menos los que están en el otro diferencia=conj1.difference(conj2) # función print(diferencia) diferencia2=conj1-conj2 # operador print(diferencia2) # diferencia simétrica los que no son comunes diff_simetrica=conj1.symmetric_difference(conj2) print(diff_simetrica) diff_simetrica2=conj1^conj2 print(diff_simetrica2)
Ejemplos conjuntos
conjunto = {1, 2, 3, 4} # llaves y después valores for el in conjunto: print(el) # en un conjunto los valores son únicos, no podemos tener valores repetidos conjunto = {1, 2, 1, 2, 1, 2} for el in conjunto: print(el) conjunto = {1, 0, False, True, ""} # a todos los efectos False=0 y True es cualquier número print(conjunto) # {0, 1, ''} if 2 in conjunto: print("Está el 2") else: print("No está el 2") conjunto.add(8) conjunto.add(7) conjunto.add(8) print(conjunto) # {0, 1, '', 7, 8} conjunto.update([1, 2, 3, 4, 5, 6]) # Añado cualquier iterable (tuplas, listas, otros conjuntos,...) print(conjunto) # {0, 1, '', 2, 3, 4, 5, 7, 8, 6} lista = [1, 2, 2, 1, 4, 5, 2, 2, 2, 1, 2, 4] # Saber los elementos diferentes listaNoRepetida = set(lista) # Creando un conjunto a partir de una lista print(listaNoRepetida) listaNo = list(listaNoRepetida) # Convertir entre iterables usando set, list, tuple print(listaNo) alumno2 = {"nombre": "Eva", "nota": 8, "Apellido": "Pi", "email": "eva@eva.com" } alumnoSet = set(alumno2) print(alumnoSet) dicc = dict(a=4, b=5) dicc2 = dict([("q", 1), ("s", 1)]) print(dicc2) conjunto.remove(1) print(conjunto) conjunto.remove(10) # Error porque no existe print(conjunto) conjunto.discard(10) # No da error, no hace nada print(conjunto)
Ejemplos bucle while
public class EjemplosWhile { public static void main(String[] args) { // Sintaxis: while(condicion){...} int cont = 0; // Mientras esa condición sea cierta ejecutamos el código // que tenemos en el bucle while (cont < 10) { cont++; // Importantísimo modificar la condición para evitar bucles infinitos System.out.println(cont); } int a = 1; int b = 1; int fib = a + b; // Mientras el téermino de fibonacci sea menor que 500 while (fib < 500) { System.out.println(fib); a = b; b = fib; fib=a+b; // Modifico la condición del bucle } cont=10; while(cont>0) { System.out.println(cont); cont--; } cont=0; int suma=0; // La suma de los 100 primeros números while(cont<=100) { suma+=cont; cont++; } System.out.println(suma); Scanner scanner = new Scanner(System.in); System.out.print("Introduce un número entero: "); int a = scanner.nextInt(); System.out.print("Introduce otro número entero: "); int b = scanner.nextInt(); if (a>b) { System.out.println("El primero es mayor que el segundo"); }else if (b>a){ System.out.println("El segundo es mayor que el primero"); }else { System.out.println("Son iguales"); } System.out.println("La tabla de multiplicar es:"); int cont=1; while(cont<=10) { System.out.println(a+" x "+cont+" = "+(a*cont)); cont++; } } }
Ejemplo switch
public class EjemplosSwitch { public static void main(String[] args) { int diaSemana = 3; // switch(variable) // case valor1: case valor2: break para parar default: switch (diaSemana) { case 1: System.out.println("Lunes"); break; case 2: System.out.println("Martes"); break; case 3: System.out.println("Miércoles"); break; case 4: System.out.println("Jueves"); break; case 5: System.out.println("Viernes"); break; case 6: System.out.println("Sábado"); break; case 7: System.out.println("Domingo"); break; default: System.out.println("Día de la semana no válido"); } switch (diaSemana) { case 1: case 2: case 3: case 4: case 5: System.out.println("Entre semana buff...."); break; case 6: case 7: System.out.println("Fin de semana ¡Yupi!"); break; default: System.out.println("Día de la semana no válido"); } } }
Ejemplos ifs en Java
int edad = 18; int altura = 180; // La misma sintaxis que en JS // if (condicion){bloque si cierto} else {bloque si falso} if (edad >= 18) { System.out.println("Eres mayor de edad"); } else { System.out.println("Eres menor de edad"); } // Puedo tener if else if if (edad < 18) { System.out.println("Eres menor de edad"); } else if (edad < 65) { System.out.println("Eres mayor de edad"); } else { System.out.println("Estás jubilado"); } if (edad > 100) { System.out.println("Enhorabuena, eres centenario"); } // Puedo tener if anidados, if dentro de ifs if (edad < 18) { if (edad % 2 == 0) { System.out.println("Menor de edad y par"); } } // Condiciones > >= < <= == != // Operadores condicionales: && || ! if (edad >= 18 || altura > 180) { System.out.println("Mayor de edad o entra por altura"); } if (edad == 18 && altura == 180) { System.out.println("Mides lo mismo que tu edad"); } // Para dar el pase VIP tiene que tener más de 20 años y medir más de 180 // o medir más de 200 if (edad >= 20 && altura >= 180 || altura >= 200) { } if ((edad >= 20 && altura >= 180) || altura >= 200) { } // Si yo quiero que la edad sea menor de 18 o mayor de 65 // y mida más de 180 if (edad < 18 || edad > 65 && altura > 180) { // esto está mal } if ((edad < 18 || edad > 65) && altura > 180) { // esto está bien } // Por ejemplo que la edad sea menor de 10 y la altura menor de 140 // O la edad sea mayor de 80 y la altura mayor de 180 if ((edad<10 && altura<140) || (edad>80 && altura>180)) { }
Ejercicio completo
# Obtener las frecuencias de letras en castellano # Saber sacar las frecuencias de una cadena de texto # Coger textos grandes (un fichero) y analizarlo # A partir de ese análisis ordenar las letras por frecuencia # En primer lugar una función frecuenciaLetras(cadena) a la que le pasamos # una cadena y nos devuelve un diccionario con la clave cada una de las letras # y el valor la cantidad d veces que aparece en esa cadena # en python tenemos la función isalpha que nos devuelve true si una cadena # solo tiene las letras de la a a la z (para no contar espacios, signos de puntuación...) def frecuenciaLetras(cadena): frecuencia = {} # Hago lo mismo que en el ejercicio anterior de palabras for letra in cadena.lower(): # TODO: Mirar el tema acentos if letra.isalpha(): if letra in frecuencia: frecuencia[letra] += 1 else: frecuencia[letra] = 1 return frecuencia print(frecuenciaLetras("aaabbbccd")) # {a:3,b:3,c:2,d:1 print(frecuenciaLetras("aaa . bbb c 12cd")) # {a:3,b:3,c:2,d:1 # por otro lado vamos a crear una función frecuenciaFile(archivo) que nos lee un archivo # de texto, pasa el contenido a la función frecuenciaLetras y nos devuelve el resultado def frecuenciaFile(archivo): # Abrir un archivo en modo lectura archivo = open(archivo, "r", encoding="utf-8") # Leer el contenido del archivo contenido = archivo.read() # Cerrar el archivo archivo.close() estadistica = frecuenciaLetras(contenido) return estadistica frecuencias = frecuenciaFile("diccionario.txt") print(frecuencias) # {a:12,b:7,c:5,j:3} # por último vamos a tener una función ordenLetras(diccionario) a la que le pasamos # un diccionario con la frecuencia de las letras y nos devuelve una lista de letras # ordenadas de mayor frecuencia a menor frecuencia def ordenLetras(diccionario): lista = sorted(diccionario, key=diccionario.get, reverse=True) return lista def ordenLetras2(diccionario): lista = sorted(diccionario.values(), reverse=True) letras=[] for frec in lista: posicion=list(diccionario.values()).index(frec) letra=list(diccionario.keys())[posicion] letras.append(letra) return letras print(ordenLetras(frecuencias)) print(ordenLetras2(frecuencias)) print(frecuencias["a"]) print(frecuencias.get("a"))
Más ejemplos diccionarios anidados
# una función a la que le pasamos una cadena y nos devuelve una estadística de cuantas # veces aparece una palabra def estadisticaPalabras(cadena): palabras = cadena.lower().split() estadistica = {} for palabra in palabras: if palabra in estadistica: estadistica[palabra] += 1 else: estadistica[palabra] = 1 return estadistica print(estadisticaPalabras("la vaca en la plaza come la hierba en compañía")) productos = [ {"nombre": "lechuga", "tipo": "Vegetal", "precio": 2}, {"nombre": "zanahorsia", "tipo": "Vegetal", "precio": 3}, {"nombre": "queso", "tipo": "Lácteo", "precio": 5}, {"nombre": "yogur", "tipo": "Lácteo", "precio": 3}, {"nombre": "chorizo", "tipo": "Embutido", "precio": 6}, ] def categorizar(lista): categorias={} for producto in lista: if producto["tipo"] not in categorias: categorias[producto["tipo"]]=[] categorias[producto["tipo"]].append(producto["precio"]) return categorias print(categorizar(productos))