Skip to content

Commit 36c210c

Browse files
authored
Merge branch 'mouredev:main' into main
2 parents 614b6de + 12c79ff commit 36c210c

File tree

19 files changed

+2945
-624
lines changed

19 files changed

+2945
-624
lines changed
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
//! Comentario Doc de nivel superior: comienzan con dos barras y un signo de exclamación
2+
//! Documenta el módulo actual
3+
//! Es un error de compilación si no se coloca un comentario doc de nivel superior al principio,
4+
//! antes de cualquier expresión.
5+
6+
// Los comentarios en Zig inician con // y va hasta el final de la línea
7+
// No existen comentarios de varias líneas
8+
9+
/// Comentarios Doc: comienzan con tres barras ///
10+
11+
// Sitio oficial: https://ziglang.org/
12+
// En este archivo se uso Zig 0.13.0
13+
// Documentación Oficial: https://ziglang.org/documentation/0.13.0/
14+
15+
const std = @import("std");
16+
const print = std.debug.print;
17+
18+
pub fn main() void {
19+
// Para declarar una variable es preferible utilizar la palabra const en lugar de var
20+
// Usar la palabra clave const para asignar un valor a un identificador
21+
// El valor no se puede modificar
22+
// Si se desea modificar el valor usar la palabra clave var
23+
24+
// Valores enteros
25+
const entero: i32 = 1 + 1;
26+
print("1 + 1 = {}\n", .{entero});
27+
// entero = 2; // Esta línea sin comentar genera un error debido a que no se puede asignar un nuevo valor a const
28+
29+
var entero2: i32 = 1;
30+
entero2 = 2;
31+
32+
// Valores flotantes
33+
const flotante: f32 = 7.0 / 3.0;
34+
print("7.0 / 3.0 = {}\n", .{flotante});
35+
36+
// Valores Booleanos
37+
print("true and false = {}\ntrue or false = {}\n!true = {}\n", .{ true and false, true or false, !true });
38+
39+
// Valores caracter o Unicode
40+
const letra = 'A';
41+
const rayo = '⚡';
42+
print("{u} - {u}\n", .{ letra, rayo });
43+
44+
// Cadenas literales de varias líneas se usan dos barras invertidas \\ por cada línea
45+
const plantilla_html =
46+
\\ <html>
47+
\\ <head></head>
48+
\\ <body></body>
49+
\\ </html>
50+
;
51+
print("{s}\n", .{plantilla_html});
52+
53+
// Cadenas literales
54+
const lenguaje = "Zig";
55+
print("¡Hola, {s}!\n", .{lenguaje});
56+
}
Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
"""
2+
operadores
3+
"""
4+
5+
# operadores aritméticos
6+
7+
print ("aqui operadors")
8+
9+
print(f"Suma 10 + 3 = {10 + 3}")
10+
print(f"resta 8 - 4 = {8 - 4}")
11+
print(f"multiplicar 2 * 10 = {2 * 10}")
12+
print(f"división de 14 / 5 = {14 / 5}")
13+
print(f"módulo de 14 / 5 = {14 % 5}")
14+
print(f"exponente de 2 ** 5 = {2 ** 5}")
15+
print(f"division entera 14 // 5 = {14 // 5}")
16+
17+
# operadores de comparación
18+
19+
print(f"igualdad 8 == 4 es {8 == 4}")
20+
print(f"es diferente 14 != 5 = {14 != 5}")
21+
print(f"es 14 > 5 {14 > 5}")
22+
print(f"es 14 < 5 {14 < 5}")
23+
print(f"es 14 >= 5 {14 >= 5}")
24+
print(f"es 14 <= 5 {14 <= 5}")
25+
26+
27+
# operadores logicos
28+
29+
print(f"AND es 7 + 5 = 12 and 9 - 6 == 3 {7 + 5 == 12 and 9 - 6 == 3}")
30+
print(f"OR es 7 + 5 = 12 OR 9 - 6 == 4 {7 + 5 == 12 or 9 - 6 == 4}")
31+
print(f"NOT 7 + 5 = 12 or 9 - 6 == 3 {not (9 + 6 == 3 or 7 + 5 == 12)}")
32+
33+
# operadores de asignación
34+
print ("aqui asignacion")
35+
my_variable = 33 # asignación de valor a variable
36+
print(my_variable)
37+
my_variable+=3
38+
print(my_variable)
39+
my_variable-=8
40+
print(my_variable)
41+
my_variable*=3
42+
print(my_variable)
43+
my_variable/=2
44+
print(my_variable)
45+
my_variable%=2
46+
print(my_variable)
47+
my_variable//=1
48+
print(my_variable)
49+
50+
my_variable=0b01000
51+
my_variable&=0b10101 # and
52+
print(bin(my_variable))
53+
my_variable|=0b01100 #or
54+
print(bin(my_variable))
55+
my_variable|=0b0101
56+
print(bin(my_variable))
57+
58+
# operadores de bit
59+
60+
var_a = 12 # 1100
61+
var_b = 4 # 0100
62+
print(f"AND: 12 & 4 = {12 & 4}")
63+
print(f"OR: 12 & 4 = {12 | 4}")
64+
print(f"XOR: 12 ^ 4 = {12 ^ 4}")
65+
print(f"NOT: 12 = {~ 12}")
66+
print(f"Deslazamiento a la derecha 12 >> 4 = {12 >> 4}")
67+
print(f"Deslazamiento a la izquierda 12 << 4 = {12 << 4}")
68+
69+
# operadores de identidad
70+
71+
my_variable = 25
72+
73+
my_new_variable = my_variable
74+
print(f"my_variable is my_new_variable es {my_variable is my_new_variable}")
75+
print(f"my_variable is not my_new_variable es {my_variable is not my_new_variable}")
76+
77+
# operadores de pertenencia
78+
pedro = 'pedro'
79+
print(f"'p' en pedro = {'p' in pedro}")
80+
print(f"'p' no en pedro = {'p' not in pedro}")
81+
82+
# estructuras de control
83+
84+
mi_cadena = "patata"
85+
if mi_cadena == "sunjamer":
86+
print("mi_cadena és 'sunjamer'")
87+
elif mi_cadena == 'pedro':
88+
print("my cadena no es 'sunjamer' pero si es 'pedro'")
89+
else:
90+
print("mi cadena no es pedro ni sunjamer")
91+
92+
93+
94+
95+
# estructuras de control
96+
97+
# while
98+
99+
index = 0
100+
while index <= 10:
101+
if index == 5 or index == 7:
102+
index+=1
103+
continue
104+
print (index)
105+
index+=1
106+
107+
# for
108+
109+
my_numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
110+
for number in my_numbers:
111+
print (number)
112+
113+
print ("salimos del for")
114+
115+
lenguaje = "Python"
116+
for letra in lenguaje:
117+
print (letra)
118+
print ("salimos del segundo for")
119+
120+
121+
for index in range(15):
122+
print (index)
123+
print ("salimos del tercer for")
124+
125+
#manejo de excepciones
126+
127+
try:
128+
print (34 / 4)
129+
except:
130+
print ("hay un error")
131+
finally:
132+
print ("acaba el manejo de excepciones")
133+
134+
135+
# extra
136+
137+
for index in range (10,56):
138+
if index % 2 == 0 and index != 16 and index % 3 != 0:
139+
print (index)
140+
print ("fin del extra")
141+
142+
143+
144+
145+
146+
147+
148+
149+
150+
151+
# ejercicios
152+
"""
153+
my_age = 46
154+
my_weight = 70.3
155+
my_complex_variable = 5j+1
156+
157+
print("Entra la base del triangulo")
158+
base = int(input ())
159+
print("Entra la altura del triangulo")
160+
height = int(input())
161+
area = 0.5*base*height
162+
print(f"El area del triangulo es {area}")
163+
164+
"""
165+
166+
167+
Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
const std = @import("std");
2+
const print = std.debug.print;
3+
4+
pub fn main() void {
5+
// Sentencia if
6+
var x: i32 = 0;
7+
if (true) { // La condición debe ser una expresión que se evalue como true o false si no genera un error en compilación
8+
x = 1;
9+
} else {
10+
x = 2;
11+
}
12+
print("{}\n", .{x});
13+
14+
// Sentencia if como expresión
15+
const a = true;
16+
x = 0;
17+
x += if (a) 1 else 2;
18+
print("{}\n", .{x});
19+
20+
// Bucle while: una condición, un bloque y una expresión de continuación
21+
// Sin una expresión de continuación
22+
var i: u8 = 2;
23+
while (i < 100) { // La condición se debe evaluar como true o false
24+
i *= 2;
25+
}
26+
print("{}\n", .{i}); // Se espera 128
27+
// Con una expresión continua
28+
var sum: u8 = 0;
29+
i = 1;
30+
while (i <= 10) : (i += 1) {
31+
sum += i;
32+
}
33+
print("{}\n", .{sum}); // Se espera 55
34+
// while con continue
35+
sum = 0;
36+
i = 0;
37+
while (i <= 3) : (i += 1) {
38+
if (i == 2) continue;
39+
sum += i;
40+
}
41+
print("{}\n", .{sum}); // Se espera 4
42+
// while con break
43+
sum = 0;
44+
i = 0;
45+
while (i <= 3) : (i += 1) {
46+
if (i == 2) break;
47+
sum += i;
48+
}
49+
print("{}\n", .{sum}); // Se espera 1
50+
51+
// Bucle for
52+
// Para iterar matrices y otros tipos
53+
// Se puede usar continue y break como en while
54+
// Los literales caracter son equivalentes a literales enteros
55+
const string = [_]u8{ 'a', 'b', 'c' };
56+
57+
for (string, 0..) |character, index| {
58+
//_ = character; // Como Zig no deja tener valores sin utilizar se usa el _
59+
//_ = index; // Como Zig no deja tener valores sin utilizar se usa el _
60+
61+
print("Índice: {} - Caracter: {c}\n", .{ index, character });
62+
}
63+
64+
// RETO EXTRA
65+
print("\n\n***RETO EXTRA***\n\n", .{});
66+
i = 10;
67+
while (i <= 55) : (i += 1) {
68+
if (i % 2 == 0 and i != 16 and i % 3 != 0) {
69+
print("{}\n", .{i});
70+
}
71+
}
72+
}
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
/**
2+
* EJERCICIO:
3+
* - Crea ejemplos de funciones básicas que representen las diferentes
4+
* posibilidades del lenguaje:
5+
* Sin parámetros ni retorno, con uno o varios parámetros, con retorno...
6+
* - Comprueba si puedes crear funciones dentro de funciones.
7+
* - Utiliza algún ejemplo de funciones ya creadas en el lenguaje.
8+
* - Pon a prueba el concepto de variable LOCAL y GLOBAL.
9+
* - Debes hacer print por consola del resultado de todos los ejemplos.
10+
* (y tener en cuenta que cada lenguaje puede poseer más o menos posibilidades)
11+
*
12+
* DIFICULTAD EXTRA (opcional):
13+
* Crea una función que reciba dos parámetros de tipo cadena de texto y retorne un número.
14+
* - La función imprime todos los números del 1 al 100. Teniendo en cuenta que:
15+
* - Si el número es múltiplo de 3, muestra la cadena de texto del primer parámetro.
16+
* - Si el número es múltiplo de 5, muestra la cadena de texto del segundo parámetro.
17+
* - Si el número es múltiplo de 3 y de 5, muestra las dos cadenas de texto concatenadas.
18+
* - La función retorna el número de veces que se ha impreso el número en lugar de los textos.
19+
*
20+
* Presta especial atención a la sintaxis que debes utilizar en cada uno de los casos.
21+
* Cada lenguaje sigue una convenciones que debes de respetar para que el código se entienda.
22+
*/
23+
24+
// ✳️ Funcion si parametros y sin retorno
25+
function greetins() {
26+
console.log('Bienvenidos a JavaScript')
27+
}
28+
29+
greetins()
30+
31+
// ✳️ Funcion con parametro y sin retorno
32+
function paramFunction(lang, lang1) {
33+
console.log('Este lenguaje se lo hemos pasado por parametro:', lang, '\ny lo mostramos en la practica de', lang1)
34+
}
35+
36+
var lang = 'python'
37+
var lang1 = 'javascript'
38+
paramFunction(lang, lang1)
39+
40+
// ✳️ Funcion con parametros y con retorno, en esta funcion tambien cramos una nueva funcion
41+
function paramYReturn(a, b) {
42+
console.log('En esta funcion vamos a cambiar la variable \na= '+a+'\nb= '+b+'\ny vamos a retornar el valor de la suma de los dos parametros que le hemos pasado')
43+
function sum (a, b){
44+
return a+b
45+
}
46+
47+
return sum(a, b)
48+
}
49+
50+
console.log(paramYReturn(4, 3), 'esta es el valor que retorno')
51+
52+
// ✳️ Funciones propias del lenguaje
53+
54+
console.log('esta es una funcion propia del lenguaje')
55+
var cadena = 'las hemos pasado a mayusculas con otra funcion propia del lenguaje JS llamada touppercase()'
56+
console.log(cadena.toUpperCase())
57+
58+
// ✳️ Local y Gobal
59+
const constante = 'esta es una constante que no podemos modificar.'
60+
var esGlobal = 'local'
61+
function mostrar(){
62+
console.log(constante)
63+
let esDeBloque = 'solo de bloque'
64+
console.log(esGlobal)
65+
esGlobal = 'modificado dentro de la funcion'
66+
console.log(esDeBloque)
67+
}
68+
69+
mostrar()
70+
console.log(esGlobal)
71+
72+
// ✳️✳️ DIFICULTAD EXTRA
73+
74+
function printNumbers(cad1, cad2) {
75+
var n = 1
76+
var cont = 0
77+
while (n <= 100){
78+
if(n % 3 === 0 && n % 5 === 0){
79+
console.log('es',cad1,'y',cad2)
80+
}else if(n % 5 === 0){
81+
console.log('es',cad2)
82+
}else if(n % 3 === 0 ){
83+
console.log('es',cad1)
84+
} else {
85+
console.log(n)
86+
cont++
87+
}
88+
n++
89+
}
90+
return cont
91+
}
92+
93+
console.log('Se han impreso: ',printNumbers('multiplo de 3','multiplo de 5'), 'numeros')

0 commit comments

Comments
 (0)