|
| 1 | +<?php |
| 2 | + |
| 3 | +# Operadores |
| 4 | + |
| 5 | +$a = 4; |
| 6 | +$b = 15; |
| 7 | + |
| 8 | +// Operadores aritmeticos |
| 9 | +print "suma: 10 + 15 = " . 10 + 15; |
| 10 | +print "resta: 10 - 15 = " . 10 - 15; |
| 11 | +print "multiplicacion: 10 x 10 = " . 10 * 10; |
| 12 | +print "division: 20 / 10 = " . 20 / 10; |
| 13 | +print "modulo: 20 % 2 = " . 20 % 2; |
| 14 | +print "exponente: 10 ** 2 = " . 10 ** 2; |
| 15 | + |
| 16 | +// Operadores de comparacion |
| 17 | +print "igualdad: 10 == 5 es " . (10 == 5 ? 'true' : 'false'); |
| 18 | +echo "desigualdad: 10 != 4 es " . (10 != 4 ? 'true' : 'false'); |
| 19 | +print "mayor que: 10 > 2 es " . (10 > 2 ? 'true' : 'false'); |
| 20 | +echo "menor que: 3 < 1 es " . (3 < 1 ? 'true' : 'false'); |
| 21 | +print "mayor o igual que: 8 >= 7 es " . (8 >= 7 ? 'true' : 'false'); |
| 22 | +print "menor o igual que: 2 <= 2 es " . (2 <= 2 ? 'true' : 'false'); |
| 23 | + |
| 24 | +// Operadores lógicos |
| 25 | + |
| 26 | +# AND && : sirve para que dos condiciones se cumplan. |
| 27 | +# OR || : Sirve para que al menos una de las condiciones se cumpla |
| 28 | +# NOT ! : Sirve para revertir un valor booleano true a false y visebersa. |
| 29 | + |
| 30 | +print "&& AND: 20 + 5 == 25 && 8 - 7 == 1 es " . (20 + 5 == 25 && 8 - 7 == 1 ? 'true' : 'false'); |
| 31 | +print "|| OR: 10 - 2 == 8 || 5 - 2 == 4 es " . (10 - 2 == 8 || 5 - 2 == 4 ? 'true' : 'false'); |
| 32 | + |
| 33 | + |
| 34 | +// Operador de asignacion |
| 35 | + |
| 36 | +$variable_int = 22; #asignacion |
| 37 | +$variable_int += 8; # suma y asignacion |
| 38 | +$variable_int -= 2; # resta y asignacion |
| 39 | +$variable_int *= 2; # multiplicación y asignacion |
| 40 | +$variable_int /= 4; # division y asignacion |
| 41 | +$variable_int %= 4; # módulo y asignación |
| 42 | +$variable_int **= 2; # exponente y asignacion |
| 43 | +$variable_str = 'carlos '; |
| 44 | +$variable_str .= 'samuel'; #concatenacion y asignacion. |
| 45 | +print $variable_str; |
| 46 | +print $variable_int; |
| 47 | + |
| 48 | +/* |
| 49 | +Operadores de indentidad: |
| 50 | +Nos sirve para comparar el valor de la posicion en memoria. |
| 51 | +*/ |
| 52 | +$n1 = 10; |
| 53 | +$n2 = 10; |
| 54 | +print "10 === 10 es " . ($n1 === $n2 ? 'true' : 'false'); # es identico |
| 55 | +print "10 !== 10 es " . ($n1 !== $n2 ? 'true' : 'false'); # es distinto |
| 56 | + |
| 57 | +// Operadores bit a bit |
| 58 | +# Los operadores bit a bit nos permiten realizar operaciones a nivel de bit sobre numeros enteros. Lo que hace es transforma el int a bit y realiza una operacion que al final nos da el resultado de lo que nos dio en bit, convertido en integer. |
| 59 | + |
| 60 | +# AND -> solo si los dos valores son 1, entonces será 1. |
| 61 | +# OR -> si almenos un valor es 1, entonces será 1. |
| 62 | +# XOR -> compara bit a bit, si son diferentes entonces será 1, sino 0. |
| 63 | +# ~ NOT -> revierte cada bit a bit que encuentra. si esta activo, lo desactiva. |
| 64 | + |
| 65 | + |
| 66 | +$a = 10; #1010 |
| 67 | +$b = 3; #0011 |
| 68 | + |
| 69 | +print "& AND: 10 & 3 = " . ($a & $b); #0010 |
| 70 | +print "| OR: 10 | 3 = " . ($a | $b); #1011 |
| 71 | +print "^ XOR: 10 ^ 3 = " . ($a ^ $b); #1001 |
| 72 | +print "~ NOT: ~ 10 = " . (~$a); |
| 73 | + |
| 74 | + |
| 75 | +// ESTRUCTURAS DE CONTROL |
| 76 | + |
| 77 | +$a = 3; |
| 78 | +$b = 1; |
| 79 | + |
| 80 | +# if |
| 81 | +if ($a > $b) { |
| 82 | + echo "a es mayor que b"; |
| 83 | +} |
| 84 | + |
| 85 | +$nombre = 'juan'; |
| 86 | +if ($nombre == 'juan') { |
| 87 | + echo "los nombres coinciden"; |
| 88 | +} |
| 89 | + |
| 90 | +$nombre = 'juan'; |
| 91 | +if ($nombre != 'pablo') { |
| 92 | + echo "los nombres son distintos"; |
| 93 | +} |
| 94 | + |
| 95 | +# if else |
| 96 | +$usuario = 'usuario'; |
| 97 | +$password = '123456'; |
| 98 | +if ( |
| 99 | + $usuario == 'usuario' && $password == '12345' |
| 100 | +) { |
| 101 | + echo "Bienvenido"; |
| 102 | +} else { |
| 103 | + echo "Error al ingresar credenciales"; |
| 104 | +} |
| 105 | + |
| 106 | +#if elseif else |
| 107 | +$nombre = 'juan'; |
| 108 | +if ($nombre == 'juan') { |
| 109 | + echo "escribiste tu primer nombre"; |
| 110 | +} elseif ($nombre == 'pablo') { |
| 111 | + echo "escribiste tu segundo nombre"; |
| 112 | +} else { |
| 113 | + echo "No ingresaste un nombre"; |
| 114 | +} |
| 115 | + |
| 116 | +# switch |
| 117 | +$opcion = '3'; |
| 118 | +switch ($opcion) { |
| 119 | + case '1': |
| 120 | + print "opcion 1"; |
| 121 | + break; |
| 122 | + |
| 123 | + case '2': |
| 124 | + print "opcion 2"; |
| 125 | + break; |
| 126 | + |
| 127 | + case '3': |
| 128 | + print "opcion 3"; |
| 129 | + break; |
| 130 | + |
| 131 | + default: |
| 132 | + print "ingresa una opcion válida"; |
| 133 | + break; |
| 134 | +} |
| 135 | + |
| 136 | +#ternario |
| 137 | +$edad = 14; |
| 138 | +print $edad >= 18 ? 'Es mayor de edad' : 'Eres menor'; |
| 139 | + |
| 140 | + |
| 141 | +// ESTRUCTURAS DE CONTROL ITERATIVAS |
| 142 | + |
| 143 | +#FOR |
| 144 | + |
| 145 | +#imprimir numeros del 1 - 10 |
| 146 | +for ($i = 1; $i <= 10; $i++) { |
| 147 | + print $i . "\n"; |
| 148 | +} |
| 149 | + |
| 150 | +#tabla de multiplicar hasta 10 |
| 151 | +$n_tabla = 2; |
| 152 | +for ($i = 1; $i <= 10; $i++) { |
| 153 | + print $n_tabla . " x " . $i . " = " . ($n_tabla * $i) . "\n"; |
| 154 | +} |
| 155 | + |
| 156 | +#suma de los primero 100 numeros |
| 157 | +$suma = 0; |
| 158 | +for ($i = 1; $i <= 100; $i++) { |
| 159 | + $suma += $i; |
| 160 | +} |
| 161 | +echo "la suma de los primeros 100 numeros es : $suma"; |
| 162 | + |
| 163 | +// WHILE |
| 164 | + |
| 165 | +#sumar numeros del 1 al 5 |
| 166 | +$n = 1; |
| 167 | + |
| 168 | +while ($n <= 5) { |
| 169 | + print $n++; |
| 170 | +} |
| 171 | + |
| 172 | +#mostrar los numeros pares del 1 al 20 |
| 173 | +$n = 2; |
| 174 | +$pares = ""; |
| 175 | + |
| 176 | +while ($n <= 20) { |
| 177 | + if ($n % 2 == 0) { |
| 178 | + $pares .= $n . "\n"; |
| 179 | + } |
| 180 | + $n++; |
| 181 | +} |
| 182 | +print $pares; |
| 183 | + |
| 184 | +#factorial de un numero |
| 185 | +$factorial = 6; |
| 186 | +$resul = 1; |
| 187 | + |
| 188 | +while ($factorial >= 1) { |
| 189 | + $resul *= $factorial; |
| 190 | + $factorial--; |
| 191 | +} |
| 192 | +echo "el resultado es: $resul"; |
| 193 | + |
| 194 | +#Serie fibonacci de los primero 100 numeros. |
| 195 | +$n_factorial = 10; |
| 196 | +$a = 0; |
| 197 | +$b = 1; |
| 198 | +$result = 0; |
| 199 | +$contador = 2; |
| 200 | +$total_fibonacci = "$a, $b, "; |
| 201 | + |
| 202 | +while ($contador <= $n_factorial) { |
| 203 | + $result = $a + $b; |
| 204 | + $a = $b; |
| 205 | + $b = $result; |
| 206 | + $total_fibonacci .= "$result, "; |
| 207 | + $contador++; |
| 208 | +} |
| 209 | +print $total_fibonacci; |
| 210 | + |
| 211 | +# Numero primo |
| 212 | +$n_primo = 100; |
| 213 | +$resul = "es primo"; |
| 214 | + |
| 215 | +for ($i = 2; $i <= sqrt($n_primo); $i++) { |
| 216 | + if ($n_primo % $i == 0) { |
| 217 | + $resul = "no es primo"; |
| 218 | + break; |
| 219 | + } |
| 220 | +} |
| 221 | +echo $resul; |
| 222 | + |
| 223 | +# foreach |
| 224 | +$array = array(1, 2, 3, 4); |
| 225 | + |
| 226 | +foreach ($array as $valor) { |
| 227 | + $valor = $valor * 2; |
| 228 | + echo $valor; |
| 229 | +} |
| 230 | + |
| 231 | +// Menejo de excepciones - try catch |
| 232 | + |
| 233 | +function dividir($numero) |
| 234 | +{ |
| 235 | + if (!$numero) { |
| 236 | + throw new Exception("Error division por 0 \n"); |
| 237 | + } |
| 238 | + return 1 / $numero; |
| 239 | +} |
| 240 | + |
| 241 | +try { |
| 242 | + echo dividir(12) . "\n"; |
| 243 | +} catch (Exception $e) { |
| 244 | + echo "Excepción capturada: " . $e->getMessage(); |
| 245 | +} finally { |
| 246 | + echo "finalizó el manejo de excepciones \n"; |
| 247 | +} |
| 248 | +print "sigue funcionando"; |
| 249 | + |
| 250 | +# Ejercicio con Try catch |
| 251 | + |
| 252 | +/* |
| 253 | +Crea una función que reciba dos números y un operador (+, -, *, /) como parámetros. La función debe realizar la operación correspondiente, pero debe lanzar una excepción si: |
| 254 | +
|
| 255 | +El operador no es válido. |
| 256 | +Se intenta dividir por cero. |
| 257 | +*/ |
| 258 | + |
| 259 | +function calculadora($n1, $n2, $operador) |
| 260 | +{ |
| 261 | + |
| 262 | + #validacion |
| 263 | + if ($n1 == 0 || $n2 == 0) { |
| 264 | + throw new Exception("Ingresa un numero mayor a 0"); |
| 265 | + return; |
| 266 | + } |
| 267 | + |
| 268 | + switch ($operador) { |
| 269 | + case "+": |
| 270 | + return $n1 + $n2; |
| 271 | + break; |
| 272 | + case "-": |
| 273 | + return $n1 - $n2; |
| 274 | + break; |
| 275 | + case "*": |
| 276 | + return $n1 * $n2; |
| 277 | + break; |
| 278 | + case "/": |
| 279 | + return $n1 / $n2; |
| 280 | + break; |
| 281 | + default: |
| 282 | + throw new Exception("El operador no es válido"); |
| 283 | + break; |
| 284 | + } |
| 285 | +} |
| 286 | + |
| 287 | +try { |
| 288 | + echo calculadora(5, 4, "%"); |
| 289 | +} catch (Throwable $t) { |
| 290 | + print "Error: " . $t->getMessage(); |
| 291 | +} |
| 292 | + |
| 293 | + |
| 294 | + |
| 295 | + |
| 296 | +/* DIFICULTAD EXTRA (opcional): |
| 297 | +Crea un programa que imprima por consola todos los números comprendidos |
| 298 | +entre 10 y 55 (incluidos), pares, y que no son ni el 16 ni múltiplos de 3. |
| 299 | +*/ |
| 300 | + |
| 301 | +for ($i = 10; $i < 56; $i++) { |
| 302 | + if ($i % 2 == 0 && $i % 3 !== 0 && $i != 16) { |
| 303 | + print "$i \n"; |
| 304 | + } |
| 305 | +} |
| 306 | + |
| 307 | +/* EJERCICIO EXTRA: |
| 308 | +Imprime todos los números entre 1 y 50 que sean múltiplos de 5. |
| 309 | +*/ |
| 310 | + |
| 311 | +for ($i = 1; $i < 51; $i++) { |
| 312 | + if ($i % 5 == 0) { |
| 313 | + echo "$i \n"; |
| 314 | + } |
| 315 | +} |
| 316 | + |
| 317 | +/* |
| 318 | +Ejercicio extra: Suma de múltiplos de 7 |
| 319 | +Calcula la suma de todos los múltiplos de 7 entre 1 y 100. |
| 320 | +*/ |
| 321 | +$suma = 0; |
| 322 | +for ($i = 1; $i <= 100; $i++) { |
| 323 | + if ($i % 7 == 0) { |
| 324 | + $suma += $i; |
| 325 | + } |
| 326 | +} |
| 327 | +echo "la sumatoria de los multiplos de 7 es: $suma"; |
| 328 | + |
| 329 | + |
| 330 | +/* |
| 331 | +Ejercicio extra: Múltiplos de 8 hasta un número dado |
| 332 | +Pide al usuario un número máximo y, a partir de 1, imprime todos los múltiplos de 8 que sean menores o iguales a ese número. |
| 333 | +*/ |
| 334 | + |
| 335 | +function multiplos_ocho($limite) |
| 336 | +{ |
| 337 | + for ($i = 1; $i <= $limite; $i++) { |
| 338 | + if ($i % 8 == 0) { |
| 339 | + echo "$i \n"; |
| 340 | + } |
| 341 | + } |
| 342 | +} |
| 343 | + |
| 344 | +multiplos_ocho(40); |
0 commit comments