lunes, 24 de abril de 2023

memory cards gridlock

 Privacy Policy for Memory Cards Gridlock


Last Updated: April 23, 2023


This Privacy Policy describes the data practices of Jose Jordan ("we," "us," or "our") in relation to our mobile application Memory Cards Gridlock ("App") available on the Google Play Store.


By downloading, installing, or using the App, you agree to the terms of this Privacy Policy. If you do not agree with this Privacy Policy, please do not download, install, or use the App.


No Data Collection

We designed the App with your privacy in mind. The App does not collect, store, or share any personal information, device information, usage data, or location information.


No Third-Party Services or Links

Our App does not contain any links to third-party websites or services. We are committed to ensuring that your privacy is protected while using our App.


Appropriate for All Ages

Our App is designed to be suitable for users of all ages, including children. However, we do not knowingly collect personal information from children.


Changes to This Privacy Policy

We may update this Privacy Policy from time to time. If we make any material changes, we will notify you by posting the updated Privacy Policy within the App or by sending you an email. Your continued use of the App after any changes to this Privacy Policy indicates your acceptance of those changes.


Contact Us

If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at:


Jose Jordan

josejordan@outlook.com


By using the App, you acknowledge and agree that the App does not collect any data, and you consent to the terms of this Privacy Policy.

minesweeper privacy policy

 Privacy Policy for Minesweeper: Swipe & Play.


Last Updated: April 23, 2023


This Privacy Policy describes the data practices of Jose Jordan ("we," "us," or "our") in relation to our mobile application Minesweeper: Swipe & Play ("App") available on the Google Play Store.


By downloading, installing, or using the App, you agree to the terms of this Privacy Policy. If you do not agree with this Privacy Policy, please do not download, install, or use the App.


No Data Collection

We designed the App with your privacy in mind. The App does not collect, store, or share any personal information, device information, usage data, or location information.


No Third-Party Services or Links

Our App does not contain any links to third-party websites or services. We are committed to ensuring that your privacy is protected while using our App.


Appropriate for All Ages

Our App is designed to be suitable for users of all ages, including children. However, we do not knowingly collect personal information from children.


Changes to This Privacy Policy

We may update this Privacy Policy from time to time. If we make any material changes, we will notify you by posting the updated Privacy Policy within the App or by sending you an email. Your continued use of the App after any changes to this Privacy Policy indicates your acceptance of those changes.


Contact Us

If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at:


Jose Jordan

josejordan@outlook.com


By using the App, you acknowledge and agree that the App does not collect any data, and you consent to the terms of this Privacy Policy.

sábado, 22 de abril de 2023

Privacy Policy

Privacy Policy for Bolas.


Last Updated: April 22, 2023


This Privacy Policy describes the data practices of Jose Jordan ("we," "us," or "our") in relation to our mobile application Bolas ("App") available on the Google Play Store.


By downloading, installing, or using the App, you agree to the terms of this Privacy Policy. If you do not agree with this Privacy Policy, please do not download, install, or use the App.


No Data Collection

We designed the App with your privacy in mind. The App does not collect, store, or share any personal information, device information, usage data, or location information.


No Third-Party Services or Links

Our App does not contain any links to third-party websites or services. We are committed to ensuring that your privacy is protected while using our App.


Appropriate for All Ages

Our App is designed to be suitable for users of all ages, including children. However, we do not knowingly collect personal information from children.


Changes to This Privacy Policy

We may update this Privacy Policy from time to time. If we make any material changes, we will notify you by posting the updated Privacy Policy within the App or by sending you an email. Your continued use of the App after any changes to this Privacy Policy indicates your acceptance of those changes.


Contact Us

If you have any questions or concerns about this Privacy Policy or our data practices, please contact us at:


Jose Jordan

josejordan@outlook.com


By using the App, you acknowledge and agree that the App does not collect any data, and you consent to the terms of this Privacy Policy.

lunes, 18 de enero de 2021

En programación hay cosas que no cambian nunca




Además de un toque de humor os dejo por aqui algunas cosa sobre expresiones regulares:

Un sitio online donde comprobar las expresiones regulares: https://www.regexpal.com/

Ahi he visto algunas expresiones interesantes :

Valida una URL : https://www.regexpal.com/93652

Valida el formato de fecha (yyyy-mm-dd) : https://www.regexpal.com/96683

Valida una IP : https://www.regexpal.com/22

Para terminar os dejo por aqui una chuletilla para las expresiones regulares

 

domingo, 17 de enero de 2021

Métodos length,charAt y getChars de String en Java

 Los métodos length, charAt y getChars de String determinan la longitud de una cadena, obtienen el carácter que se encuentra en una ubicación específica de una cadena y recuperan el conjunto completo de caracteres en una cadena, respectivamente.

Utilizamos el método length de la clase String para determinar el número de caracteres en la cadena s1.  

Después se imprimen los caracteres de la cadena s1 en orden inverso (y separados por espacios).

El método charAt de String devuelve el carácter ubicado en una posición específica en la cadena. Recibe un argumento entero que se utiliza como el índice, y devuelve el carácter en esa posición.  

En la línea 24 se utiliza el método getChars para copiar los caracteres de una cadena en un arreglo de caracteres. El primer argumento es el índice inicial en la cadena, a partir del cual se van a copiar los caracteres. El segundo argumento es el índice que está una posición más adelante del último carácter que se va a copiar de la cadena. El tercer argumento es el arreglo de caracteres en el que se van a copiar los caracteres. El último argumento es el índice inicial en donde se van a colocar los caracteres copiados en el arreglo de caracteres de destino.

 A continuación, en la línea se imprime el contenido del arreglo char, un carácter a la vez.


Ejercicio SQL Consultas SELECT

 


1. Obtener los datos completos de los empleados: 

SELECT * FROM empleado;

2. Obtener los datos completos de los departamentos:

 SELECT * FROM departamento;

3. Obtener los datos de los empleados con cargo 'Secretaria': 

SELECT * FROM empleado WHERE cargoE='Secretaria';

4. Obtener el nombre y salario de los empleados:

SELECT NOMEMP, SALEMP FROM EMPLEADO;

5. Obtener los datos de los empleados vendedores, ordenado por nombre:

SELECT * FROM empleado
WHERE cargoE='Vendedor'
ORDER BY nomEmp ASC;

6. Listar el nombre de los departamentos: 

SELECT DISTINCT nombreDpto FROM departamento;

7. Obtener el nombre y cargo de todos los empleados, ordenado por salario:

SELECT nomEmp, cargoE, salEmp
FROM empleado
ORDER BY salEmp;
 

8. Listar los salarios y comisiones de los empleados del departamento 2000, ordenado por comisión.

SELECT salEmp, comisionE
FROM empleado
WHERE codDepto='2000';

 9. Listar todas las comisiones.

SELECT DISTINCT comisionE FROM empleado;

10. Obtener el valor total a pagar que resulta de sumar a los empleados del departamento 3000 una bonificación de 500.000, en orden alfabético del empleado.

SELECT nomEmp, salEmp,(salEmp+500000)
AS 'Salario + Bonificacion'
FROM empleado
WHERE codDepto='3000'
ORDER BY nomEmp ;

11. Obtener la lista de los empleados que ganan una comisión superior a su sueldo.

SELECT nomEmp,comisionE,salEmp FROM empleado
WHERE comisionE > salEmp;

12. Listar los empleados cuya comisión es menor o igual que el 30 % de su sueldo.

SELECT nomEmp, salEmp, comisionE FROM empleado
WHERE comisionE <= (salEmp*0.30);

13. Elabore un listado donde para cada fila, figure 'Nombre' y 'Cargo' antes del valor respectivo para cada empleado. 

SELECT nomEmp
AS 'Nombre', cargoE AS 'Cargo'
FROM empleado; 

14. Hallar el salario y la comisión de aquellos empleados cuyo número de documento de identidad es superior al '19.709.802'.

SELECT salEmp,comisionE,nDIEmp
FROM empleado
WHERE nDIEmp > '19.709.802';

15. Muestra los empleados cuyo nombre empiece entre las letras J y Z (rango). Liste estos empleados y su cargo por orden alfabético.

SELECT nomEmp, cargoE FROM empleado
WHERE nomEmp BETWEEN 'J%' AND 'Z%'
ORDER BY nomEmp;

Otra forma seria :

SELECT nomEmp, cargoE FROM empleado
WHERE nomEmp > 'J' AND nomEmp < 'Z'
ORDER BY nomEmp;

16. Listar el salario, la comisión, el salario total (salario + comisión), documento de identidad del empleado y nombre, de aquellos empleados que tienen comisión superior a 1.000.000, ordenar el informe por el número del documento de identidad

SELECT salEmp, comisionE, nDIEmp, nomEmp,
(salEmp+comisionE) AS 'Salario Total'
FROM empleado WHERE comisionE > 1000000
ORDER BY nDIEmp;

17. Obtener un listado similar al anterior, pero de aquellos empleados que no tienen comisión

SELECT salEmp, comisionE, nDIEmp, nomEmp,
(salEmp+comisionE) AS 'Salario Total'
FROM empleado WHERE comisionE <= 0
ORDER BY nDIEmp;

18. Hallar los empleados cuyo nombre no contiene la cadena 'MA'.

SELECT nomEmp FROM empleado
WHERE nomEmp NOT LIKE '%MA%';

19. Obtener los nombres de los departamentos que no sean 'Ventas' ni 'Investigación' ni 'MANTENIMIENTO'.  

SELECT * FROM departamento
WHERE nombreDpto NOT IN
('Ventas','Investigación','MANTENIMIENTO');

20. Obtener el nombre y el departamento de los empleados con cargo 'Secretaria' o 'Vendedor', que no trabajan en el departamento de "PRODUCCION", cuyo salario es superior a $1.000.000, ordenados por fecha de incorporación

SELECT e.nomEmp, d.nombreDpto, e.cargoE, e.salEmp, e.fecIncorporacion
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
AND e.salEmp > 1000000
AND (e.cargoE)='Vendedor'
OR (e.cargoE)='Secretaria'
AND (d.nombreDpto) <> 'PRODUCCIÓN'
ORDER BY e.fecIncorporacion

21. Obtener información de los empleados cuyo nombre tiene exactamente 11 caracteres:

SELECT * FROM empleado
WHERE char_length(nomEmp) = 11;

22. Obtener información de los empleados cuyo nombre tiene al menos 11 caracteres

SELECT * FROM empleado
WHERE char_length(nomEmp) < 11;

 23. Listar los datos de los empleados cuyo nombre inicia por la letra 'M', su salario es mayor a $800.000 o reciben comisión y trabajan para el departamento de 'VENTAS'

SELECT e.nomEmp, d.nombreDpto, e.comisionE, e.salEmp
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
AND e.nomEmp LIKE 'M%'
AND (d.nombreDpto) = 'VENTAS'
AND (e.salEmp > 800000 OR e.comisionE > 0)
;

 24. Obtener los nombres, salarios y comisiones de los empleados que reciben un salario situado entre la mitad de la comisión la propia comisión.

SELECT nomEmp, salEmp, comisionE
FROM empleado
WHERE salEmp BETWEEN(comisionE/2)
AND comisionE;

25. Mostrar el salario más alto de la empresa.

SELECT nomEmp, salEmp,
MAX(salEmp) AS 'Salario mas Alto'
FROM empleado;

26. Mostrar cada una de las comisiones y el número de empleados que las reciben. Solo si tiene comision.

SELECT comisionE,
COUNT(*)
AS 'Numero Empleados'
FROM empleado
GROUP BY comisionE
HAVING comisionE > 0;

27. Mostrar el nombre del último empleado de la lista por orden alfabético.

SELECT nomEmp FROM empleado
ORDER BY nomEmp DESC
LIMIT 1;

Otra forma:

SELECT MAX(nomEmp) AS 'Ultimo Empleado'
FROM empleado;

28. Hallar el salario más alto, el más bajo y la diferencia entre ellos.

SELECT MAX(salEmp) AS 'Salario más Alto'
, MIN(salEmp) AS 'Salario más Bajo'
, MAX(salEmp)- MIN(salEmp) AS 'Diferencia'
FROM empleado;

29. Mostrar el número de empleados de sexo femenino y de sexo masculino, por departamento. 

SELECT codDepto, sexEmp, COUNT(*)
FROM empleado
GROUP BY codDepto, sexEmp;

30. Hallar el salario promedio por departamento.

SELECT codDepto, AVG(salEmp) AS 'Salario Promedio'
FROM empleado
GROUP BY codDepto;

31. Mostrar la lista de los empleados cuyo salario es mayor o igual que el promedio de la empresa. Ordenarlo por departamento.

SELECT nomEmp, salEmp, codDepto FROM empleado
WHERE salEmp >= (
  SELECT AVG(salEmp) FROM empleado)
  ORDER BY codDepto ;

32. Hallar los departamentos que tienen más de 3 empleados así como su nº de empleados.

SELECT d.codDepto, d.nombreDpto
FROM empleado e, departamento d
WHERE e.codDepto = d.codDepto
GROUP BY d.codDepto
HAVING count(*) >= 3;

33. Mostrar el código y nombre de cada jefe, junto al número de empleados que dirige. Solo los que tengan más de dos empleados (2 incluido).

select j.nDIEmp, j.nomEmp, count(*)
as 'Num Empleados'
from empleado e, empleado j
where e.jefeID = j.nDIEmp
group by j.nomEmp
having count(*)>= 2
order by count(*) desc;

34. Hallar los departamentos que no tienen empleados*

select d.codDepto, d.nombreDpto
from departamento d, empleado e
where d.codDepto = e.codDepto
group by d.codDepto
having count(*) = 0;

*No hay ninguno con cero empleados. Si probamos con 1 si hay 3.

35. Mostrar el nombre del departamento cuya suma de salarios sea la más alta, indicando el valor de la suma:

select d.nombreDpto, SUM(e.salEmp)
from departamento d, empleado e
where d.codDepto = e.codDepto
group by d.nombreDpto
order by SUM(e.salEmp) desc
limit 1; 
 

memory cards gridlock

 Privacy Policy for Memory Cards Gridlock Last Updated: April 23, 2023 This Privacy Policy describes the data practices of Jose Jordan (&quo...