Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
<?php


/*
* EJERCICIO:
* - Crea ejemplos utilizando todos los tipos de operadores de tu lenguaje:
* Aritméticos, lógicos, de comparación, asignación, identidad, pertenencia, bits...
* (Ten en cuenta que cada lenguaje puede poseer unos diferentes)
* - Utilizando las operaciones con operadores que tú quieras, crea ejemplos
* que representen todos los tipos de estructuras de control que existan
* en tu lenguaje:
* Condicionales, iterativas, excepciones...
* - Debes hacer print por consola del resultado de todos los ejemplos.
*
* DIFICULTAD EXTRA (opcional):
* Crea un programa que imprima por consola todos los números comprendidos
* entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3.
*
* Seguro que al revisar detenidamente las posibilidades has descubierto algo nuevo.
*/


//Operadores aritméticos

print ("Suma: 5 + 2 = " . (5 + 2));
print ("Resta: 5 - 2 = " . (5 - 2));
print ("Multiplicación: 5 * 2 = " . (5 * 2));
print ("División: 5 / 2 = " . (5 / 2));
print ("Módulo: 5 % 2 = " . (5 % 2));
print ("Exponenciación: 5 ** 2 = " . (5 ** 2));
print ("División entera: 5 // 2 = " . (ROUND(5 / 2)));

//Operadores de comparación

print("Igualdad: 5 == 2 = " . (5 == 2));
print("Desigualdad: 5 != 2 = " . (5 != 2));
print("Mayor que: 5 > 2 = " . (5 > 2));
print("Menor que: 5 < 2 = " . (5 < 2));
print("Mayor o igual que: 5 >= 2 = " . (5 >= 2));
print ("Menor o igual que: 5 <= 2 = " . (5 <= 2));

//Operadores lógicos

print("AND: 5 == 5 && 2 == 2 = " . (5 == 5 && 2 == 2));
print("OR: 5 == 5 || 2 == 3 = " . (5 == 5 || 2 == 3));
print("NOT: !(5 == 5) = " . !(5 == 5));

//Operadores de asignación

$variable = 5;
print("Asignación: variable = 5 = " . $variable);
$variable += 2;
print("Suma: variable += 2 = " . $variable);
$variable -= 2;
print("Resta: variable -= 2 = " . $variable);
$variable *= 2;
print("Multiplicación: variable *= 2 = " . $variable);
$variable /= 2;
print("División: variable /= 2 = " . $variable);
$variable %= 2;
print("Módulo: variable %= 2 = " . $variable);
$variable **= 2;
print("Exponenciación: variable **= 2 = " . $variable);

//Operadores de identidad
$number = 5;
print ($number is $my_number);


//Operadores de pertenencia
$numbers = array(1, 2, 3, 4, 5);
print (3 in $numbers);

//Operadores de bits
print("AND: 5 & 2 = " . (5 & 2));
print("OR: 5 | 2 = " . (5 | 2));
print("XOR: 5 ^ 2 = " . (5 ^ 2));
print("Desplazamiento a la izquierda: 5 << 2 = " . (5 << 2));
print("Desplazamiento a la derecha: 5 >> 2 = " . (5 >> 2));
print("Negación: ~5 = " . (~5));


//Estructura de control

//condicional
$number = 5;
if($number == 5){
print("El número es 5");
} else {
print("El número no es 5");
}

$string = "Hola";

switch($string){
case "Hola":
print("Hola");
break;
case "Adiós":
print("Adiós");
break;
default:
print("No es ni Hola ni Adiós");
}

//iterativa
for($i = 10; $i <= 55; $i++){
if($i % 2 == 0 && $i != 16 && $i % 3 != 0){
print($i);
}
}

//Manejador de excepciones
try {
if (0 == 0) {
throw new Exception("División por cero");
}
print (10 / 0);
} catch (Exception $e) {
print($e->getMessage());
}


181 changes: 181 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/php/CeciliaPorras01.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,181 @@

<?php

/*
* EJERCICIO:
* - Crea ejemplos de funciones básicas que representen las diferentes
* posibilidades del lenguaje:
* Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
* - Comprueba si puedes crear funciones dentro de funciones.
* - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
* - Pon a prueba el concepto de variable LOCAL y GLOBAL.
* - Debes hacer print por consola del resultado de todos los ejemplos.
* (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
*
* DIFICULTAD EXTRA (opcional):
* Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
*
* Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
* Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
*/



//Funciones definidas por el usuario
//Simple

function greet(){
print("Hola mundo");
}

greet();


//Con retorno
function ret_greet(){
return "Hola mundo";
}

print(ret_greet());


//Con argumento

function print_greet($nombre){
print("Hola $nombre");
}

print_greet("Cecilia");


//Con argumentos
function arg_greet($nombre, $apellido){
print("Hola, $nombre $apellido");
}

arg_greet("Cecilia", "Porras");
arg_greet($nombre = "Ceciliaa", $apellido = "Porras");


//Con argumento predeterminado
function def_arg_greet($nombre ="Martha"){
print("Hola, $nombre");
}

def_arg_greet();


//Con argumentos y return
function ret_arg_greet($nombre, $apellido){
return $nombre . ' ' . $apellido;
}

print(ret_arg_greet("Cecilia" ,"Porras"));


//Con retorno de varios valores
function ret_var_greet() {
return ["Cecilia", "Porras"];
}

list($name, $lastname) = ret_var_greet();
print($name);
print($lastname);


//Con un numero variable de argumentos
function var_arg_greet(...$nombres){
foreach($nombres as $nombre){
print("Hola, $nombre \n");
}
}

var_arg_greet("Cecilia", "Martha", "Luisa", "Sofia");


//Con un numero variable de argumentos con palabras clave
function key_arg_greet($args) {
foreach($args as $clave => $valor) {
print($clave ." = ". $valor . "\n");
}
}

key_arg_greet([
"nombre " => "Cecilia",
"apellido" => "Porras",
"edad" => 23
]);



//Función interna
function external(){
function internal(){
print("Función interna");
}
internal();
}

external();


//Función de lenguaje
print(strtoupper("hola mundo"));
print(gettype("hola mundo"));
print(strlen("hola mundo"));
print (strrev("hola mundo"));
print (str_repeat("hola mundo", 3));
print (str_replace("mundo", "Cecilia", "hola mundo"));


//Variable global y local

$global_variable = "Variable global";
print ($global_variable);

function hello_world(){
global $global_variable;
$local_variable = "Variable local";
print("Hola". $global_variable);
print("Hola". $local_variable);
}

hello_world();

/**
* EJERCICIO EXTRA
*
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
*
*/


function print_numbers($text_1, $text_2) {
$count = 0;
for ($i = 1; $i <= 100; $i++) {
if ($i % 3 == 0 && $i % 5 == 0) {
print($text_1 . $text_2 . "\n");
} elseif ($i % 3 == 0) {
print($text_1 . "\n");
} elseif ($i % 5 == 0) {
print($text_2 . "\n");
} else {
print($i . "\n");
$count += 1;
}
}
return $count;
}

// Llamada a la función
$vecesImpresoNumero = print_numbers("Fizz", "Buzz");
print("Número de veces que se ha impreso un número: " . $vecesImpresoNumero . "\n");
Loading