diff options
author | Dave Gauer <dave@ratfactor.com> | 2021-01-22 17:42:03 -0500 |
---|---|---|
committer | Dave Gauer <dave@ratfactor.com> | 2021-01-22 17:42:03 -0500 |
commit | 08ec029f20381580ebe76ad8bd3feca2e5cd262a (patch) | |
tree | 818a56fd583bab292fc61c5203762ec56a31f208 /20_quiz3.zig | |
parent | a361b90a7562bcc5a62f863b42ae6a33aaa4b812 (diff) | |
download | ziglings-08ec029f20381580ebe76ad8bd3feca2e5cd262a.tar.gz ziglings-08ec029f20381580ebe76ad8bd3feca2e5cd262a.tar.bz2 ziglings-08ec029f20381580ebe76ad8bd3feca2e5cd262a.tar.xz ziglings-08ec029f20381580ebe76ad8bd3feca2e5cd262a.zip |
Added ex 19,20 functions and pop quiz
Diffstat (limited to '20_quiz3.zig')
-rw-r--r-- | 20_quiz3.zig | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/20_quiz3.zig b/20_quiz3.zig new file mode 100644 index 0000000..e18ef37 --- /dev/null +++ b/20_quiz3.zig @@ -0,0 +1,45 @@ +// +// Let's see if we can make use of some of things we've learned so far. +// We'll create two functions: one that contains a "for" loop and one +// that contains a "while" loop. +// +// Both of these are simply labeled "loop" below. +// +const std = @import( "std" ); + +pub fn main() void { + const my_numbers = [4]u16{ 5,6,7,8 }; + + printPowersOfTwo(my_numbers); + std.debug.print("\n", .{}); +} + +// +// You won't see this every day: a function that takes an array with +// exactly four u16 numbers. This is not how you would normally pass +// an array to a function. We'll learn about slices and pointers in +// a little while. For now, we're using what we know. +// +// This function prints, but does not return anything. +// +fn printPowersOfTwo(numbers: [4]u16) ??? { + loop (numbers) |n| { + std.debug.print("{} ", .{twoToThe(n)}); + } +} + +// +// This function bears a striking resemblance to twoToThe() in the last +// exercise. But don't be fooled! This one does the math without the aid +// of the standard library! +// +fn twoToThe(number: u16) ??? { + var n: u16 = 0; + var total: u16 = 1; + + loop (n < number) : (n += 1) { + total *= 2; + } + + return ???; +} |