mirror of
https://codeberg.org/andyscott/ziglings.git
synced 2024-12-22 14:03:10 -05:00
Added first quiz
This commit is contained in:
parent
30ef32e238
commit
b9b89737fc
4 changed files with 50 additions and 13 deletions
|
@ -24,7 +24,7 @@ pub fn main() void {
|
||||||
// Perhaps you noticed before that the print function takes two
|
// Perhaps you noticed before that the print function takes two
|
||||||
// parameters. Now it will make more sense: the first parameter
|
// parameters. Now it will make more sense: the first parameter
|
||||||
// is a string. The string may contain placeholders '{}', and the
|
// is a string. The string may contain placeholders '{}', and the
|
||||||
// second parameter is an anonymous struct (data structure)
|
// second parameter is an "anonymous list literal" (don't worry
|
||||||
// with values to be printed in place of the placeholders.
|
// about this for now!) with the values to be printed.
|
||||||
std.debug.print("{} {} {}\n", .{n, pi, negative_eleven});
|
std.debug.print("{} {} {}\n", .{n, pi, negative_eleven});
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,26 +1,28 @@
|
||||||
//
|
//
|
||||||
// Let's learn some array basics. Arrays literals are declared with:
|
// Let's learn some array basics. Arrays are declared with:
|
||||||
//
|
//
|
||||||
// [size]<type>{ values };
|
// const foo [size]<type> = [size]<type>{ values };
|
||||||
//
|
//
|
||||||
// When Zig can infer the size of the array, you can use '_' for the
|
// When Zig can infer the size of the array, you can use '_' for the
|
||||||
// size like so:
|
// size. You can also let Zig infer the type of the value so the
|
||||||
|
// declaration is much less verbose.
|
||||||
//
|
//
|
||||||
// [_]<type>{ values };
|
// const foo = [_]<type>{ values };
|
||||||
//
|
//
|
||||||
const std = @import("std");
|
const std = @import("std");
|
||||||
|
|
||||||
pub fn main() void {
|
pub fn main() void {
|
||||||
const some_primes = [_]u8{ 2, 3, 5, 7, 11, 13, 17, 19 };
|
|
||||||
|
|
||||||
// Array values are accessed using square bracket '[]' notation.
|
const some_primes = [_]u8{ 1, 3, 5, 7, 11, 13, 17, 19 };
|
||||||
//
|
|
||||||
// (Note that when Zig can infer the type (u8 in this case) of a
|
// Individual values can be set with '[]' notation. Let's fix
|
||||||
// value, we don't have to manually specify it.)
|
// the first prime (it should be 2!):
|
||||||
//
|
some_primes[0] = 2;
|
||||||
|
|
||||||
|
// Individual values can also be accessed with '[]' notation.
|
||||||
const first = some_primes[0];
|
const first = some_primes[0];
|
||||||
|
|
||||||
// Looks like we need to complete this expression:
|
// Looks like we need to complete this expression (like 'first'):
|
||||||
const fourth = ???;
|
const fourth = ???;
|
||||||
|
|
||||||
// Use '.len' to get the length of the array:
|
// Use '.len' to get the length of the array:
|
||||||
|
|
34
08_quiz.zig
Normal file
34
08_quiz.zig
Normal file
|
@ -0,0 +1,34 @@
|
||||||
|
//
|
||||||
|
// Quiz time! Let's see if you can fix this whole program.
|
||||||
|
//
|
||||||
|
// This is meant to be challenging.
|
||||||
|
//
|
||||||
|
// Let the compiler tell you what's wrong.
|
||||||
|
//
|
||||||
|
// Start at the top.
|
||||||
|
//
|
||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
pub fn main() void {
|
||||||
|
// What is this nonsense? :-)
|
||||||
|
const letters = "YZhifg";
|
||||||
|
|
||||||
|
const x: u8 = 1;
|
||||||
|
|
||||||
|
// This is something you haven't seen before: declaring an array
|
||||||
|
// without putting anything in it. There is no error here:
|
||||||
|
var lang: [3]u8 = undefined;
|
||||||
|
|
||||||
|
// The following lines attempt to put 'Z', 'i', and 'g' into the
|
||||||
|
// 'lang' array we just created.
|
||||||
|
lang[0] = letters[x];
|
||||||
|
|
||||||
|
x = 3;
|
||||||
|
lang[???] = letters[x];
|
||||||
|
|
||||||
|
x = ???;
|
||||||
|
lang[2] = letters[???];
|
||||||
|
|
||||||
|
// We want to "Program in Zig!" of course:
|
||||||
|
std.debug.print("Program in {}!\n", .{lang});
|
||||||
|
}
|
1
ziglings
1
ziglings
|
@ -72,6 +72,7 @@ check_it 04_arrays.zig "Fourth: 7, Length: 8" "There are two things to complete
|
||||||
check_it 05_arrays2.zig "LEET: 1337, Bits: 100110011001" "Fill in the two arrays."
|
check_it 05_arrays2.zig "LEET: 1337, Bits: 100110011001" "Fill in the two arrays."
|
||||||
check_it 06_strings.zig "d=d ha ha ha Major Tom" "Each '???' needs something filled in."
|
check_it 06_strings.zig "d=d ha ha ha Major Tom" "Each '???' needs something filled in."
|
||||||
check_it 07_strings2.zig "Ziggy" "Please fix the lyrics!"
|
check_it 07_strings2.zig "Ziggy" "Please fix the lyrics!"
|
||||||
|
check_it 08_quiz.zig "Program in Zig" "See if you can fix the program!"
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo " __ __ _ "
|
echo " __ __ _ "
|
||||||
|
|
Loading…
Reference in a new issue