Arrays ejemplos

public static void main(String[] args) {
		// Defino una variable como entero
		// almacena 1 valor entero
		int edad = 5;

		// Para almacenar más de un valor del mismo tipo
		// se usan los arrays
		int[] edades = new int[5];
		edades[0] = 20;
		edades[1] = 70;
		edades[2] = 8;
		edades[3] = 90;
		edades[4] = 65;
		for (int i = 0; i < edades.length; i++) {
			System.out.println(edades[i]);
		}
		int[] precios = { 20, 30, 50, 18 };
		System.out.println(precios[2]);
		precios = new int[5];
		int[] fibonacci = new int[10];
		fibonacci[0] = 1;
		fibonacci[1] = 1;
		for (int i = 2; i < fibonacci.length; i++) {
			fibonacci[i] = fibonacci[i - 1] + fibonacci[i - 2];
		}
		System.out.println(Arrays.toString(fibonacci));

		// foreach
		for (int numero : fibonacci) {
			System.out.println(numero);
		}
		System.out.println(fibonacci);
		printArray(fibonacci);
		int[] inverso=reverseArray(fibonacci);
		System.out.println(Arrays.toString(inverso));
		int[] otro=printArrayDuplicado(fibonacci);
		System.out.println(Arrays.toString(fibonacci));

		int a=90;
		int b=a;
		a=25;
		int[] pepe=fibonacci.clone();
		
		int[] nuevo=Arrays.copyOf(fibonacci,fibonacci.length);
		System.out.println(doble(a));
		System.out.println(a);
	}
	public static void printArray(int[] arr) {
	    for (int i = 0; i < arr.length; i++) {
	     
   System.out.print(arr[i] + " ");
	    }
	    System.out.println();
	}
	public static int[] reverseArray(int[] arr) {
	    int[] result = new int[arr.length];
	    for (int i = 0; i < arr.length; i++) {
	        result[i] = arr[arr.length - i - 1];
	    }
	    return result;
	}
	public static int[] printArrayDuplicado(int[] arr) {
		
	    for (int i = 0; i < arr.length; i++) {
	    	arr[i]*=2; // NO HACER NUNCA
	
	    }
	    return arr;
	}
	public static int doble(int numero) {
		numero*=2;
		return numero;
	}

Más ejercicios cadenas resueltos

static int contarLetra(String cadena, char letra) {
		int total = 0;
		for (int i = 0; i < cadena.length(); i++) {
			if (cadena.charAt(i) == letra) {
				total++;
			}
		}
		return total;
	}

	static int contarVocales(String cadena) {
		cadena = quitarAcentos(cadena.toLowerCase());
		String vocales = "aeiou";
		int total = 0;
		for (int i = 0; i < vocales.length(); i++) {
			total += contarLetra(cadena, vocales.charAt(i));
		}
		return total;
	}

	static String sinEspacios(String cadena) {
		cadena = cadena.trim();
		while (cadena.indexOf("  ") != -1) {
			cadena = cadena.replace("  ", " ");
		}
		return cadena;
	}

	static int contarChar(String cadena, char letra) {
		int total = 0;
		for (int i = 0; i < cadena.length(); i++) {
			if (cadena.charAt(i) == letra) {
				total++;
			}
		}
		return total;
	}

	static String eliminar(String cadena, String cadenaEliminar) {
		return cadena.replace(cadenaEliminar, "");
	}

	static String cambiar(String cadena, char antiguo, char nuevo) {
		return cadena.replace(antiguo, nuevo);
	}

Ejercicios cadenas resueltos

public static void main(String[] args) {
		// Escribir una función que invierta el orden de los caracteres 
		// de una cadena dada. invertir("hola")–>"aloh"
		String alreves=invertirCadena("cacahuete");
		System.out.println(alreves);
		if (esPalindromo("Isaac no ronca así")) {
			System.out.println("Es palindromo");
		}
		
		System.out.println(quitarAcentos("áéíóúàèìòùäëïöü"));
		// Saber si una cadena es un palíndromo
		// Se lee lo mismo al derecho que al revés
		// dabalearrozalazorraelabad
		// dabalearrozalazorraelabad
		// Sé dar la vuelta: Lo acabo de hacer
		// Sé quitar espacios: replace(" ", "")
		
		
		// quitar acentos que nos sustituya vocales acentuadas
		// por vocales sin acento
		// puedo reemplazar cada vocal acentuada por la sin acentuar
		
		
		// Tengo un problema: hay que encontrar el algoritmo
		// ¿Cómo lo hago yo?
		// Divide y vencerás: El problema grande se convierte
		// En problemas más pequeños
	}
	
	public static String quitarAcentos(String cadena) {
		String acentos="áéíóúàèìòùäëïöü";
		String sinacentos="aeiou";
		for(int i=0;i<acentos.length();i++) {
			cadena=cadena.replace(acentos.charAt(i),
					sinacentos.charAt(i%5)); // Aritmética modular
		}
		
		return cadena;
	}
	public static boolean esPalindromo(String cadena) {
		cadena=cadena.replace(" ","");
		cadena=quitarAcentos(cadena);
		return cadena.equalsIgnoreCase(invertirCadena(cadena));
	}
	public static String invertirCadena(String cadena) {
		// cacahuete -> eteuhacac
		// empiezo por el final, voy letra a letra y escribo cada letra
		// ¿Se empezar e ir letra a letra? Sí con un for
		// Se añadir esas letras a un resultado: sí, concatenando
		String res="";
		for(int i=cadena.length()-1;i>=0;i--) {
			res+=cadena.charAt(i);
		}
		return res;
	}

Strings en Java

// Definir cadenas
		String nombre="Ana";
		String departamento="marketing";
		System.out.println(nombre+" "+ departamento);
		nombre="Eva";
		System.out.println(nombre+" "+ departamento);
		// Estas tres cadenas valen lo mismo
		String alumno1="Ana";
		String alumno2=alumno1;
		String alumno3="Ana";
		Scanner sc=new Scanner(System.in);
		String alumno4=sc.next();
		if (alumno1==alumno2) {
			System.out.println("Alumno 1 es igual al 2");
		}
		if (alumno1==alumno3) {
			System.out.println("Alumno 1 es igual al 3");
		}
		if (alumno1==alumno4) {
			System.out.println("Alumno 1 es igual al 4");
		}
		// Todo este rollo es para que enendáis que si quiero
		// comprobar que dos cadenas son iguales
		// Tengo que usar equals
		if (alumno1.equals(alumno4)) {
			System.out.println("Alumno 1 es igual al 4");
		}
		
		// en un tipo primitivo el nombre es una caja
		// En la que meto el valor
		int edad=5;
		
		//En los que no son primitivos (casi todos)
		// El nombre es una caja donde está la
		// posición de memoria donde está el valor
		String aula="Mates";

		System.out.println("Dime tu ciudad");
		String ciudad=sc.next();
		// Comprobar si una cadena es igual a otra
		// siempre uso equals
		if (ciudad.equals("barcelona")) {
			System.out.println("Eres de Barcelona");
		}
		// length es una de las muchas funciones
		// de la clase string
		System.out.println(ciudad.length());
		
		// charAt(posicion) el caracter en esa posición
		String referencia="ABCDE";
		System.out.println(referencia.charAt(0)); // La A
		// Esto me recorre todas las letras de la cadena
		for (int i=0;i<referencia.length();i++) {
			System.out.println(referencia.charAt(i));
		}
		
		System.out.println(referencia.charAt(referencia.length()-1));// Último caracter
		
		for (int i=0;i<referencia.length();i++) {
			System.out.println(referencia.charAt(referencia.length()-i-1));
		}
		// Obtener subcadenas de una cadena
		// substring(int beginIndex, int endIndex)
		for (int i=0;i<referencia.length();i++) {
			System.out.println(referencia.substring(i));
		}
		for (int i=0;i<referencia.length();i++) {
			System.out.println(referencia.substring(0,i+1));
		}
		
		// Buscar una cadena dentro de otra
		// Si la encuentra nos devuelve la posición
		// Si no la encuentra nos devuelve -1
		
		String quijote="En un lugar de la mancha de cuyo nombre no quiero acordarme";
		System.out.println(quijote.indexOf(" mancha")); // 18
		System.out.println(quijote.indexOf("messi")); // -1 porque no lo ha encontrado
		System.out.println(quijote.indexOf("de")); // 12
		System.out.println(quijote.indexOf("de",13)); // 25
		int pos1=quijote.indexOf("de"); //12
		int pos2=quijote.indexOf("de", pos1+1); //25
		
		// Me busca todas las apariciones de la cadena buscar
		// Dentro de quijote
		String buscar="de";
		int pos=quijote.indexOf(buscar);
		while(pos!=-1) {
			System.out.println(pos);
			pos=quijote.indexOf(buscar, pos+1);
		}
		
		// Reemplazar una cadena por otra
		// replace(CharSequence target, CharSequence replacement)
		
		String censura=quijote.replace("mancha", "###");
		System.out.println(censura);
		String noespacios=quijote.replace(" ", "");
		System.out.println(noespacios);
		
		// Convertir a mayúsculas y a minúsculas
		// toUpperCase() y toLowerCase()
		
		System.out.println(quijote.toUpperCase());
		System.out.println(quijote.toLowerCase());
		ciudad="  barcelona";
		if (ciudad.trim().toLowerCase().equals("barcelona")) {
			System.out.println("Eres de Barcelona");
		}
		if (ciudad.equalsIgnoreCase("barcelona")) {
			System.out.println("Eres de Barcelona");
		}
		ciudad.endsWith("a"); //Acaba en la letra a
		ciudad.startsWith("a"); // Empieza con a
		ciudad.trim(); // Elimina los espacios del principio y del final
		

Mas diccionarios

[Python]
coche1={“marca”:”Tesla”,”tipo”:”Electrico”,”autonomía”:500,”precio”:40000}
coche2={“marca”:”Citroen”,”tipo”:”Gasolina”,”autonomía”:2500,”precio”:10000}

empleado1={“departamento”:”contabilidad”,”sueldo”:3000,”nombre”:”Ana Pi”}
empleado2={“departamento”:”marketing”,”sueldo”:2000,”nombre”:”Eva Buj”}

# sueldo del emppleado 1
print(empleado1[‘sueldo’])

# aumento el sueldo un 10% al empleado 1:
empleado1[‘sueldo’]*=1.1

print(empleado1[‘sueldo’])

concesionario=[{“marca”:”Tesla”,”tipo”:”Electrico”,”autonomía”:500,”precio”:40000},
{“marca”:”Citroen”,”tipo”:”Gasolina”,”autonomía”:2500,”precio”:10000},
{“marca”: “Ford”, “tipo”: “Gasolina”, “autonomía”: 3500, “precio”: 20000},
{“marca”: “Ferrari”, “tipo”: “Gasolina”, “autonomía”: 5500, “precio”: 120000},
{“marca”: “Seat”, “tipo”: “Electrico”, “autonomía”: 700, “precio”: 10000},
{“marca”: “Skoda”, “tipo”: “Gasolina”, “autonomía”: 3500, “precio”: 7000},
]

for coche in concesionario:
print(coche)

# Cual es el coche más caro
def coche_mas_caro(concesionario):
caro=concesionario[0]
for coche in concesionario:
if coche[‘precio’]>caro[‘precio’]:
caro=coche
return caro

# media de precios
def media_precios_coche(concesionario):
total=0
for coche in concesionario:
total+=coche[‘precio’]
return total/len(concesionario)

def coches_con_autonomia(concesionario, autonomia):
res=[]
for coche in concesionario:
if coche[‘autonomía’]>=autonomia:
res.append(coche[‘marca’]) # res+=[coche]
return res

print(“Mas caro”,coche_mas_caro(concesionario))
print(media_precios_coche(concesionario))
for coche in coches_con_autonomia(concesionario,2000):
print(coche)

empleados=[{“departamento”:”contabilidad”,”sueldo”:3000,”cantidad”:3},
{“departamento”:”marketing”,”sueldo”:2000,”cantidad”:2},
{“departamento”:”ceo”,”sueldo”:12000,”cantidad”:1},
{“departamento”:”administracion”,”sueldo”:1500,”cantidad”:5}]

# ¿Cuanto gasta la empresa en sueldos al mes?

def total_sueldos(empresa):
total=0
# ¿Qué recorro? UNA LISTA
for empleado in empresa:
total+=empleado[‘sueldo’]*empleado[‘cantidad’]
return total

print(total_sueldos(empleados))
[/Python]

Ejemplos diccionarios

[Python]
# Pares clave:valor
# nombre del alumno y la nota
alumnos=[“Ana”,”Pep”,”Eva”]
notas=[6,7,2]

alumno1={“nombre”:”Ana”,”nota”:6,”email”:”ana@ana.com”,”telefono”:”666999666″}
alumno2={“nombre”:”Pep”,”nota”:7}
alumno3={“nombre”:”Eva”,”nota”:2}

clase=({“nombre”:”Ana”,”nota”:6,”email”:”ana@ana.com”,”telefono”:”666999666″},
{“nombre”:”Pep”,”nota”:7},
{“nombre”:”Eva”,”nota”:2})
print(alumno1[‘nombre’])
# recorremos el diccionario, por defecto son las claves (nombre, nota…)
for clave in alumno1:
print(clave, alumno1[clave])
# recorremos solo los valores del diccionario (“Ana”,6,…)
for valor in alumno1.values():
print(valor)
# recorremos las dos cosas, la clave y el valor desempaquetando los items
for clave,valor in alumno1.items():
print(clave,valor)

# bucle anidado para recorrer la lista de alumnos y después sus valores
for alumno in clase: # Primero obtengo el alumno
print(alumno)
for clave, valor in alumno.items(): #para cada alumno recorro sus valores
print(clave, valor)

# Función para calcular la media de notas de una clase
def mediaNotas(clase):
total=0
for alumno in clase: # recorro la lista de alumnos
total+=alumno[‘nota’] # accedo directamente al valor del diccionario que me hace falta
# no hace falta un bucle anidado
return total/len(clase)
print(mediaNotas(clase))
[/Python]

Ejemplos bucles anidados y otros

# bucle anidado: bucle dentro de otro bucle
def palabrascon2A(cadena):
    res=[]
    for palabra in cadena.split():
        cont=0
        for i in palabra:
            if i == "a":
                cont+=1
        if (cont==2):
            res.append(palabra)
    return res

print(palabrascon2A("hola que tal hacia mañana"))

def contarLetra(palabra,letra):
    cont=0
    for l in palabra:
        if l==letra:
            cont+=1
    return cont

def palabrasConLetrasContadas(cadena,letra,cantidad):
    res=[]
    for palabra in cadena.split():
        if contarLetra(palabra,letra)==cantidad:
            res+=[palabra]
    return res

print(palabrasConLetrasContadas("ojo con los monstruos horrososo","o",2))

Ejemplos datos

cadena="holi"
tupla=(1,2,3)
lista=[1,2,3]
diccionario={"a":1,"b":2}
conjunto={1,2,3}

print(tupla[0])

for i in tupla:
    print(i)

a,b,c=tupla # desempaquetado
print(a,b,c)

def extremos(lista):
    menor=lista[0]
    mayor=lista[0]
    for numero in lista:
        if numero<menor:
            menor=numero
        if numero>mayor:
            mayor=numero
    return (menor, mayor)

print(extremos([2,23,4,5,23,5,23,9,67,4]))
menor,mayor=extremos([2,23,4,5,23,5,23,9,67,4])
ana,pepe=extremos([2,23,4,5,23,5,23,9,67,4])
print("menor",menor)
print("mayor",mayor)

Ejemplos for

# for en python es muy sencillo, solo recorre cosas

lista=[1,2,3,4]
for i in lista:
    print(i)
for letra in "hola":
    print(letra)
for numero in range(10):
    print(numero)
for n in range(1,11):
    print(n)
for n in range(10,1000,10):
    print(n)
tupla=(4,8,1)
for t in tupla:
    print(t)
diccionario={"nombre":"Ana","nota":6}
for d in diccionario:
    print(d)
for v in diccionario.values():
    print(v)
for j in diccionario.items():
    print(j)
print(list(range(1,11)))

# recorrer una lista de numeros y sumarla
total=0
for n in lista:
    total+=n
print(total)

# recorrer una lista de numeros y sumarla si son pares
total=0
for n in lista:
    if n%2==0:
        total+=n
print(total)

# recorrer una cadena y contar las 'a'
contador=0
for letra in "hola que tal":
    if letra=='a':
        contador+=1
print(contador)