Resolución de preguntas

Aqui encontraras la respuesta a las preguntas realizadas en el custionario de prueba tecnica.
A. ¿Qué es una variable?
Una variable es lo que normalmente llamamos almacenar un valor que puede ser una constante o puede cambiar dependiendo de como se interactue o implemente, de acuerdo a ello, una variable es poder almacenar un valor dentro de nuestro programa para poder usarlo mas adelante o ser llamado por el mismo programa.
$variable = "Hola Mundo";
//Esta variable lo que hace es almacenar en la memoria de nuestro programa el valor "Hola Mundo" para poder ser llamado mas adelante.
B. ¿Qué es un ciclo?, ¿mencione dos tipos de ciclos que conozca?
Un ciclo es iterar algo hasta llegar a un punto final es decir supongamos que mi programa debe realizar una cierta acción como imprimir en pantalla los numeros del 1 al 10 de acuerdo a ello mi programa necesita iterar y contar cada impresión hasta llegar al 10, Asi funcionan los ciclos otro ejemplo seria recorrer una tabla de una base de datos en este caso el ciclo se encargaria de recorrer cada fila de la tabla hasta llegar al final de la misma. Estos ciclos en la programación son muy usados y existen varios tipos de ciclos, que pueden variar dependiendo del lenguaje de programación, pero los mas comunes son:
- Ciclo For: Este ciclo se usa cuando sabemos de antemano cuantas veces se debe iterar, por ejemplo recorrer un array o una lista.
- Ciclo While: Este ciclo se usa cuando no sabemos de antemano cuantas veces se debe iterar, este ciclo se ejecuta mientras una condición sea verdadera.
//Ejemplo de ciclo For
for ($i = 1; $i <= 10; $i++) {
echo $i;
}
//Ejemplo de ciclo While
$i = 1;
while ($i <= 10) {
echo $i;
$i++;
}
C. ¿Qué es un condicional?
Una condicional es lo que normalmente llamamos depender de algo para poder ejecutar otra cosa o acción es decir, si lo ponemos en un ejemplo de la vida real, para yo poder hacer cafe necesito comprar cafe para poder hacerlo si no tengo cafe no podre hacerlo, de acuerdo a ello en la programación las condicionales son usadas para evaluar si una condición es verdadera o falsa y dependiendo de ello ejecutar una acción u otra. Al igual que con los ciclos la escritura de las condicionales puede variar dependiendo del lenguaje de programación, pero los mas comunes son:
- If: Esta condicional se usa para evaluar si una condición es verdadera o falsa, si es verdadera se ejecuta una acción, si es falsa se puede ejecutar otra acción o no hacer nada.
- Switch: Esta condicional se usa para evaluar una variable y dependiendo de su valor ejecutar una acción u otra.
//Ejemplo de condicional If
$edad = 18;
if ($edad >= 18) {
echo "Eres mayor de edad";
} else {
echo "Eres menor de edad";
}
//Ejemplo de condicional Switch
$dia = "Lunes";
switch ($dia) {
case "Lunes":
echo "Hoy es Lunes";
break;
case "Martes":
echo "Hoy es Martes";
break;
default:
echo "No es Lunes ni Martes";
break;
}
D. En el caso de un estudiante, cuando mencionamos su nombre, edad, sexo, dirección y teléfono, estamos mencionando:
a. Los atributos de una clase
b. Las operaciones de una clase
c. Los objetos de una clase
d. Ninguna de las anteriores
La respuesta serian los atributos de acuerdo a que hacen parte de una funcion o objeto del estudiante, por ello lo que contiene este según el caso mencionado son sus datos personales.
class Estudiante {
//Atributos
public $nombre;
public $edad;
public $sexo;
public $direccion;
public $telefono;
//Operaciones
public function estudiar() {
echo "El estudiante esta estudiando";
}
public function descansar() {
echo "El estudiante esta descansando";
}
}
E. ¿Qué es la programación Orientada a Objetos (POO)?
La programación orientada a objetos (PDO) es el uso de encapsular datos y funciones en una sola entidad llamada objeto, de acuerdo a ello la POO se basa en poder contener un objeto o varios objetos que contienen datos y funciones que pueden ser usadas para interactuar con dichos datos.
La POO se basa en varios conceptos como:
- Clases: Son plantillas o moldes que definen las propiedades y comportamientos de un objeto.
- Objetos: Son instancias de una clase, es decir, son la representación concreta de una clase.
- Atributos: Son las propiedades o características de un objeto.
- Métodos: Son las funciones o acciones que un objeto puede realizar.
- Herencia: Es la capacidad de una clase de heredar las propiedades y métodos de otra clase.
- Polimorfismo: Es la capacidad de un objeto de tomar diferentes formas o comportamientos dependiendo del contexto en el que se use.
- Encapsulamiento: Es la capacidad de ocultar los detalles internos de un objeto y exponer solo lo necesario para interactuar con él.
class Persona {
//Atributos
public $nombre;
public $edad;
//Métodos
public function saludar() {
echo "Hola, mi nombre es " . $this->nombre;
}
}
class Estudiante extends Persona {
//Atributos
public $curso;
//Métodos
public function estudiar() {
echo "Estoy estudiando " . $this->curso;
}
}
$estudiante = new Estudiante();
$estudiante->nombre = "Alejandro";
$estudiante->edad = 23;
$estudiante->curso = "Ciencia";
$estudiante->saludar(); // Hola, mi nombre es Alejandro
$estudiante->estudiar(); // Estoy estudiando Ciencias
F. ¿Que son patrones de diseño y para que se pueden utilizar?
Los patrones de diseño son guias a nivel mundial que logran dar un indice de como se debe comportar un codigo, algoritmo o programa, su estructuración, codificación o escritura, esto para definir reglas en lo que se desarrola, para el facil entendimiento de otros desarrolladores, de acuerdo a ello los patrones de diseño son usados para resolver problemas comunes en el desarrollo de software, estos patrones pueden ser clasificados en tres categorias:
- Patrones Creacionales: Estos patrones se encargan de la creación de objetos, estos patrones son usados para abstraer el proceso de creación de objetos y hacer que el sistema sea independiente de la forma en que los objetos son creados, compuestos y representados. Ejemplos: Singleton, Factory Method, Abstract Factory.
- Patrones Estructurales: Estos patrones se encargan de la composición de clases y objetos, estos patrones son usados para facilitar la estructura y organización del código, haciendo que sea más fácil de entender y mantener. Ejemplos: Adapter, Composite, Decorator.
- Patrones de Comportamiento: Estos patrones se encargan de la interacción entre objetos, estos patrones son usados para definir cómo los objetos interactúan entre sí y cómo se comunican. Ejemplos: Observer, Strategy, Command.
//Ejemplo de patrón Singleton
class Singleton {
private static $instance;
private function __construct() {
// Constructor privado para evitar la creación de instancias desde fuera de la clase
}
public static function getInstance() {
if (self::$instance === null) {
self::$instance = new Singleton();
}
return self::$instance;
}
}
$singleton1 = Singleton::getInstance();
$singleton2 = Singleton::getInstance();
// Ambos objetos son la misma instancia
var_dump($singleton1 === $singleton2); // true
//En este ejemplo basicamente tenemos un patrón de diseño donde podemos ver que la clase Singleton tiene un constructor privado para evitar que se creen instancias desde fuera de la clase, y un método estático getInstance() que se encarga de crear una única instancia de la clase y devolverla cada vez que se llama a este método.
G. ¿Cuál operador condicional de PHP evalúa que los valores son iguales y del mismo tipo de datos? (5%)
o ==
o ||
o ===
o ==?
El operador que valida la igualidad completa de una condicional en este caso para PHP es ===
$a = 5; // entero
$b = '5'; // cadena
var_dump($a == $b); // true, porque solo compara el valor
var_dump($a === $b); // false, porque compara el valor y el tipo de dato
H. Desde un punto de vista Booleano, cada valor de cero o string vacío en PHP se considera: (5%)
o True
o False
o Error
o Null
La respuesta correcta es False, ya que en PHP, los valores de cero (0) y las cadenas vacías ("") se consideran como valores falsos (False) en un contexto booleano.
$valor1 = 0; // entero cero
$valor2 = ""; // cadena vacía
if (!$valor1) {
echo "El valor1 es considerado False cuando se habla de booleano.\n";
}
if (!$valor2) {
echo "El valor2 es considerado False cuando se habla de booleano.\n"; // Esto se imprimirá
}
I. De la siguiente estructura escriba el resultado final de la variable $c:
$a = 1;
$b = 9;
for ( $i = $a; $i <= $b; $i = $i+1){
$c = $a + $i;
}
echo $c;
El resultado final de la variable $c es 10, ya que el ciclo for itera desde el valor de $a (1) hasta el valor de $b (9), incrementando $i en 1 en cada iteración. En cada iteración, la variable $c se actualiza con la suma de $a y el valor actual de $i. Por lo tanto, en la última iteración cuando $i es igual a 9, $c se calcula como 1 + 9, lo que da como resultado 10.
J. De la siguiente estructura escriba el resultado final de la variable $c:
$b = 1;
$c = 0;
while $b < 11 {
$c = $c + 1;
$b=$b + 1;
}
echo $c;
El resultado final de la variable $c es 10, ya que el ciclo while itera mientras la variable $b sea menor que 11. En cada iteración, la variable $c se incrementa en 1 y la variable $b también se incrementa en 1. El ciclo comienza con $b igual a 1 y termina cuando $b alcanza el valor de 11. Por lo tanto, el ciclo se ejecuta 10 veces, lo que hace que $c sea igual a 10 al final del ciclo.
K. De la siguiente estructura escriba el resultado final de la variable $print:
$a=5;
$b=6;
$x=8;
$c=20;
$print=””;
if ($a <= $b and $b >= $c){
if ($x <= $c and $c >= 10){
$print=”Feliz Navidad”;
}
}else{
if ($c > $x or $x <= $b){
$print=”Feliz Año”;
}
}
echo $print;
El resultado es "Feliz Año" de acuerdo a que la primera condicional no se cumple y dentro del else la condicional si cumple para $c > $x.