mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.6 KiB
1.6 KiB
Scalar
Instructions
Create the following functions, which each accept two parameters:
sum
, which returns the sum between two values from 0 to 255diff
, which returns the difference between two values from -32768 to 32767pro
, which returns the product of the multiplication between two values from -128 to 127quo
, which returns the quotient of the division between two 32bit valuesrem
, which returns the remainder of the division between two 32bit values
You will need to figure out the exact data types for the parameters and the return values. There are some hints in the example.
pub fn sum(a: X, b: X) -> X {
}
pub fn diff(a: X, b: X) -> X {
}
pub fn pro(a: X, b: X) -> X {
}
pub fn quo(a: X, b: X) -> X {
}
pub fn rem(a: X, b: X) -> X {
}
Example
use scalar::*;
fn main() {
// sum
println!("sum : {}", sum(234, 2)); // 'sum : 236'
println!("sum : {}", sum(1, 255)); // 'ERROR: attempt to add with overflow'
// diff
println!("diff : {}", diff(234, 2)); // 'diff : 232'
println!("diff : {}", diff(-32768, 32766)); // 'ERROR: attempt to subtract with overflow'
// product
println!("pro : {}", pro(23, 2)); // 'pro : 46'
println!("pro : {}", pro(-128, 2)); // 'ERROR: attempt to multiply with overflow'
// quotient
println!("quo : {}", quo(22.0, 2.0));// 'quo : 11'
println!("quo : {}", quo(-128.23, 2.0));// 'quo : -64.115'
// remainder
println!("rem : {}", rem(22.0, 2.0));// 'rem : 0'
println!("rem : {}", rem(-128.23, 2.0));// 'rem : -0.22999573'
}