Skip to content

Commit

Permalink
"#2 - Rust"
Browse files Browse the repository at this point in the history
  • Loading branch information
Coshiloco committed Jan 22, 2024
1 parent 09501ec commit 79ede6c
Showing 1 changed file with 119 additions and 0 deletions.
119 changes: 119 additions & 0 deletions Roadmap/02 - FUNCIONES Y ALCANCE/rust/Coshiloco.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
/*
* 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.
*/

use std::cmp;


fn saludar() {
println!("Hola, Rust!");
}


fn sumar(a: i32, b: i32) {
let suma = a + b;
println!("Suma: {}", suma);
}


fn multiplicar(a: i32, b: i32) -> i32 {
a * b
}


fn externa() {
fn interna() {
println!("Estoy dentro de una función externa");
}
interna();
}


fn demo_max() {
let maximo = cmp::max(3, 5);
println!("El máximo entre 3 y 5 es: {}", maximo);
}


static GLOBAL: i32 = 10;

fn usar_variable_global() {
println!("Variable global: {}", GLOBAL);
}

fn usar_variable_local() {
let local = 5;
println!("Variable local: {}", local);
}

//EJERCICIO EXTRA
/*
* 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.
*/

fn ejercicio_extra(cadena_uno: String, cadena_dos: String) -> i32 {
let mut contador = 0;
for i in 1..100 {
if i % 3 == 0 {
println!("{}", cadena_uno);
}
if i % 5 == 0 {
println!("{}", cadena_dos);
}
if i % 3 == 0 && i % 5 == 0 {
println!("{}{}", cadena_uno, cadena_dos);
}
contador += 1;
}
println!("El contador vale: {}", contador);
return contador;
}




fn main() {
saludar();
sumar(3, 7);
println!("Multiplicación: {}", multiplicar(4, 5));
externa();
demo_max();
usar_variable_global();
usar_variable_local();
ejercicio_extra("Hola".to_string(), "Mundo".to_string());
}







0 comments on commit 79ede6c

Please sign in to comment.