From 78c4cd65286518f406a7c4a97c61a9b0885345c7 Mon Sep 17 00:00:00 2001 From: Mariano Riefolo Date: Fri, 6 Sep 2024 09:54:25 +0200 Subject: [PATCH] Wrote program for Day 43 --- README.md | 2 +- .../day43/Cargo.toml | 6 ++++ .../day43/src/lib.rs | 3 ++ .../day43/src/main.rs | 28 +++++++++++++++ .../day43/tests/examples.rs | 34 +++++++++++++++++++ 5 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 Week-07/Day-43_Area-Of-A-Triangle/day43/Cargo.toml create mode 100644 Week-07/Day-43_Area-Of-A-Triangle/day43/src/lib.rs create mode 100644 Week-07/Day-43_Area-Of-A-Triangle/day43/src/main.rs create mode 100644 Week-07/Day-43_Area-Of-A-Triangle/day43/tests/examples.rs diff --git a/README.md b/README.md index c3d8f1a..417a7a2 100644 --- a/README.md +++ b/README.md @@ -89,7 +89,7 @@ We encourage you to share your progress and ask questions in the Discussions sec | Day #40 | [Larrys Array](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-06/Day-40_Larrys-Array) | :white_check_mark: | | Day #41 | [Sales By Match](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-06/Day-41_Sales-By-Match) | :white_check_mark: | | Day #42 | [Drawing Book](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-06/Day-42_Drawing-Book) | :white_check_mark: | -| Day #43 | [Area Of A Triangle](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-07/Day-43_Area-Of-A-Triangle) | :white_large_square: | +| Day #43 | [Area Of A Triangle](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-07/Day-43_Area-Of-A-Triangle) | :white_check_mark: | | Day #44 | [Maximum Edge Of A Triangle](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-07/Day-44_Maximum-Edge-Of-A-Triangle) | :white_large_square: | | Day #45 | [Subtract The Swapped Bits...](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-07/Day-45_Subtract-The-Swapped-Bits-Without-Temp-Storage) | :white_large_square: | | Day #46 | [Hot Pics Of Danny Devito](https://github.com/LiveGray/100-Days-Of-Rust/tree/main/Week-07/Day-46_Hot-Pics-Of-Danny-Devito) | :white_large_square: | diff --git a/Week-07/Day-43_Area-Of-A-Triangle/day43/Cargo.toml b/Week-07/Day-43_Area-Of-A-Triangle/day43/Cargo.toml new file mode 100644 index 0000000..85083cd --- /dev/null +++ b/Week-07/Day-43_Area-Of-A-Triangle/day43/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "day43" +version = "0.1.0" +edition = "2021" + +[dependencies] diff --git a/Week-07/Day-43_Area-Of-A-Triangle/day43/src/lib.rs b/Week-07/Day-43_Area-Of-A-Triangle/day43/src/lib.rs new file mode 100644 index 0000000..1234c75 --- /dev/null +++ b/Week-07/Day-43_Area-Of-A-Triangle/day43/src/lib.rs @@ -0,0 +1,3 @@ +pub fn tri_area(base: f64, height: f64) -> f64 { + base * height / 2f64 +} diff --git a/Week-07/Day-43_Area-Of-A-Triangle/day43/src/main.rs b/Week-07/Day-43_Area-Of-A-Triangle/day43/src/main.rs new file mode 100644 index 0000000..f702d5d --- /dev/null +++ b/Week-07/Day-43_Area-Of-A-Triangle/day43/src/main.rs @@ -0,0 +1,28 @@ +use std::{ + io::{self, Write}, + num::ParseFloatError, +}; + +use day43::tri_area; + +fn read_f64(request: &str) -> Result { + let mut input = String::new(); + print!("{}", request); + io::stdout().flush().expect("Failed to flush stdout"); + std::io::stdin() + .read_line(&mut input) + .expect("Failed to read input"); + input.trim().parse() +} + +fn main() { + let base = read_f64("Enter the base of the triangle: "); + let height = read_f64("Enter the height of the triangle: "); + match base { + Ok(base) => match height { + Ok(height) => println!("The area of the triangle is: {}", tri_area(base, height)), + Err(e) => println!("Error: {}", e), + }, + Err(e) => println!("Error: {}", e), + } +} diff --git a/Week-07/Day-43_Area-Of-A-Triangle/day43/tests/examples.rs b/Week-07/Day-43_Area-Of-A-Triangle/day43/tests/examples.rs new file mode 100644 index 0000000..9c8b280 --- /dev/null +++ b/Week-07/Day-43_Area-Of-A-Triangle/day43/tests/examples.rs @@ -0,0 +1,34 @@ +#[cfg(test)] +mod examples { + use day43::tri_area; + + #[test] + fn example1() { + assert_eq!(tri_area(3f64, 2f64), 3f64); + } + + #[test] + fn example2() { + assert_eq!(tri_area(5f64, 4f64), 10f64); + } + + #[test] + fn example3() { + assert_eq!(tri_area(7f64, 4f64), 14f64); + } + + #[test] + fn example4() { + assert_eq!(tri_area(10f64, 10f64), 50f64); + } + + #[test] + fn example5() { + assert_eq!(tri_area(12f64, 11f64), 66f64); + } + + #[test] + fn example6() { + assert_eq!(tri_area(0f64, 60f64), 0f64); + } +}