Skip to content

Instantly share code, notes, and snippets.

@bran921007
Last active June 5, 2023 22:06
Show Gist options
  • Select an option

  • Save bran921007/5b8c464836dc90fb25228e79c134313c to your computer and use it in GitHub Desktop.

Select an option

Save bran921007/5b8c464836dc90fb25228e79c134313c to your computer and use it in GitHub Desktop.
Examen de PHP - Entrevista de trabajo

Pregunta 1 Escribir un programa en PHP que imprima una X construida a base de la letra X y utilizar el carácter de subrayado como espacio. El tamaño de la x se basa en una variable n que indicará el tamaño de la letra para imprimir (en una matriz de n x n). Por ejemplo, para n = 5 se obtiene:

X___X X_X X X_X X___X

y para n=6 se obtiene:

X____X X__X XX XX X__X X____X

Si n es igual a cero imprimir "ERROR"

El código para el tamaño de n ya está ahí, puede editarlo para probar con otros valores y puede hacer clic en el botón de actualización junto a él para volver al valor original que se utiliza para validar su código durante la prueba. Tenga en cuenta que el código debe imprimir los resultados exactamente como se muestra con el fin de que la pregunta sea considerada valida durante la prueba (El caracter "X" en mayúscula y el guion bajo "_" para los espacios)

<?php
//No validado para el caso $n = 6
$n = 5;
if($n == 0){
echo "ERROR";
}
for($row = 1;$row <=$n; $row++ )
{
for($column = 1; $column <= $n; $column++)
{
if((($column == $n or $column == 1) and ($row == 1 or $row==5)) or (($column == 2 or $column == 4 ) and ($row == 2 or $row == 4)) or ($column == 3 and $row == 3) )
{
echo "X";
}
else{
echo "_";
}
}
echo "<br>";
}

Pregunta 2 Tienes un arreglo (llamado myArray) con 10 elementos (enteros en el rango de 1 a 9). Escribe un programa en PHP que imprima el numero que tiene mas ocurrencias consecutivas en el arreglo y también imprimir la cantidad de veces que aparece en la secuencia.

El código que llena el arreglo ya esta escrito, pero puedes editarlo para probar con otros valores. Con el botón de refrescar puedes recuperar el valor original que sera utilizado para evaluar la pregunta como correcta o incorrecta durante la ejecución.

Su programa debe analizar el arreglo de izquierda a derecha para que en caso de que dos números cumplan la condición, el que aparece por primera vez de izquierda a derecha será el que se imprimirá. La salida de los datos para el arreglo en el ejemplo (1,2,2,5,4,6,7,8,8,8) sería la siguiente: Longest: 3 Number: 8

En el ejemplo, la secuencia mas larga la tiene el numero 8 con una secuencia de tres ochos seguidos. Tenga en cuenta que el código que escriba debe imprimir los resultados exactamente como se muestra con el fin de que la pregunta sea considerada válida.

El código para declarar y poblar myArray ya está ahí, puede editarlo para probar con otros valores y puede hacer clic en el botón de actualizar junto a él para volver al valor original que se utilizará para validar su código durante la prueba.

<?php
$myArray = array(1,2,2,4,5,6,7,8,8,8);
$arr = array_count_values($myArray);
arsort($arr); //sort descending maintain keys
$occurences = reset($arr); //get the first value )
$mostFrequentNumber = key($arr); //get the key, as we are rewound it's the first key
echo "Longest: ".$ocurrences;
echo "Number: ". $mostFrequentNumber;

Pregunta 3 Se tiene una matriz de 3 x 3 que contiene números del 1 al 9 simulado con una matriz unidimensional. Así, por ejemplo, esta matriz:

1 2 9 2 5 3 5 1 5

Se representaría como (1,2,9,2,5,3,5,1,5). El objetivo es identificar el camino que de la menor suma al recorrer el arreglo bi-dimencional de izquierda a derecha. Se empieza en la columna izquierda y se mueve siempre una columna a la derecha de la misma fila o a una fila hacia arriba o hacia abajo. En el ejemplo, si parte de 1, puede pasar al 2 o al 5. De ahí, si pasó al 5 puede pasar al 9 al 3 o al 5. Por otro lado , si pasa del 1 al 2, desde el 2 de la columna del medio no podría pasar al 5 de la ultima fila en la columna derecha.

Es necesario encontrar el camino que produce el número más bajo al suma los valores de cada número que visita. Así que para el ejemplo, la ruta con la menor suma sería 1,2,3

El código para declarar y poblar myArray ya está ahí, puede editarlo para probar con otros valores y puede hacer clic en el botón de actualizar junto a él para volver al valor original que se utilizará para validar su código durante la prueba.

El resultado de su programa debe ser los 3 números por los que paso para obtener la menor suma separados por un espacio. Para el ejemplo, la salida sería exactamente así: 1 2 3

<?php
//incomplete
$myArray = array(
array(1,2,9),
array(2,5,3),
array(5,1,5)
);
$res;
for ($i = 0; $i < count($myArray); $i++) {
for($n = 0; $n<count($myArray[0]); $n++){
$res = $myArray[$i][$n] + $myArray[$i][$n];
if($res<=6){
echo $myArray[$i][$n];
}
echo '/n';
}
}
?>

Escriba una sentencia en SQL

select APPX_employee.lastname, APPX_educationlevel.description from APPX_employee LEFT JOIN APPX_educationlevel ON APPX_employee.id=APPX_educationlevel.id LEFT JOIN APPX_department ON APPX_employee.department_id=APPX_department.id ORDER BY APPX_employee.lastname where SUM(APPX_employee.salary) > 250000 ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment