Skip to content

Commit 5398b54

Browse files
authored
Merge pull request mouredev#1015 from Troleomotor10/main
#2 - Rust
2 parents 7b31d5f + 4958ff0 commit 5398b54

File tree

1 file changed

+129
-0
lines changed

1 file changed

+129
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,129 @@
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+
// Main function
25+
fn main(){
26+
hello_world();
27+
28+
let resultado: i32 = suma(10, 5);
29+
println!("{resultado}");
30+
31+
let (string1, string2) = multiple_return();
32+
println!("{} {}", string1, string2);
33+
34+
let names: [&str; 3] = ["Juan", "Manolo", "Luis"];
35+
more_than_1_parameter(&names);
36+
37+
function_out();
38+
39+
builtin_functions();
40+
41+
hello_rust1();
42+
43+
exercice_extra("Zipi", "Zape");
44+
}
45+
46+
/*
47+
FUNCIONES BÁSICAS DEL LENGUAJE
48+
*/
49+
50+
// Function without return and parameters
51+
fn hello_world() {
52+
println!("Hello World!")
53+
}
54+
55+
// Function with parameters and return
56+
fn suma(a: i32, b: i32) -> i32{
57+
a + b
58+
}
59+
60+
// Function with parameters and return of many values
61+
fn multiple_return() -> (&'static str, &'static str){
62+
("Hola", "Troleomotor10")
63+
}
64+
65+
66+
// Function with more than 1 parameter
67+
fn more_than_1_parameter(names: &[&str]) {
68+
for name in names {
69+
println!("{name}");
70+
}
71+
}
72+
73+
/*
74+
FUNCIONES DENTRO DE FUNCIONES
75+
*/
76+
77+
fn function_out() {
78+
fn function_in_function(){
79+
println!("Hello, Rust 2!")
80+
}
81+
function_in_function();
82+
}
83+
84+
/*
85+
FUNCIONES DEL LENGUAJE (built-in)
86+
*/
87+
88+
fn builtin_functions(){
89+
let variable: &str = "github";
90+
println!("{}", variable.len());
91+
92+
}
93+
94+
/*
95+
VARIABLES LOCALES Y GLOBALES
96+
*/
97+
98+
fn hello_rust1() {
99+
let global_var: i32 = 33;
100+
fn hello_rust2(){
101+
let local_var: i32 = 55;
102+
//println!("{}", global_var); -> No va a funcionar
103+
println!("{}", local_var);
104+
}
105+
hello_rust2();
106+
println!("{}", global_var);
107+
//println!("{}", local_var); -> No va a funcionar
108+
}
109+
110+
/*
111+
EJERCICIO EXTRA
112+
*/
113+
114+
fn exercice_extra(text1: &str, text2: &str) {
115+
let mut contador: i32 = 0;
116+
for x in 1..101 {
117+
if x % 3 == 0 && x % 5 == 0{
118+
println!("{} {}", text1, text2);
119+
} else if x % 3 == 0 {
120+
println!("{text1}");
121+
} else if x % 5 == 0 {
122+
println!("{text2}");
123+
} else {
124+
println!("{x}");
125+
contador += 1;
126+
}
127+
}
128+
println!("Los numeros en lugar de los textos han salido: {contador} veces");
129+
}

0 commit comments

Comments
 (0)