Undertake ONE of the following programming projects. You should keep a track of the changes to your program using RCS. You should submit the RCS ",v" files with submit-work. Project 1) a) Write a program which chooses a random int between 1 and 100 which you have to guess. When you input a guess it prints H if you need to go higher, L is you need to go lower or G if you've got it. b) Write a program which tries to guess an int you are thinging of between 1 and 100. It should prompt you with guesses and you should answer H, L or G as above. c) Using fork(), exec(), pipe() and dup2() join these programs together so they "play" one another. Project 2) a) Write a program which reads in a word, opens /usr/share/dict/words and searches for the word. It should print "OK: word" if it finds the word or "UNKNOWN: word" if id doesn't find it. It should keep reading words untill it runs out of input. b) Modify the above program so that it forks a child to do the open, search and print. The parent should immediately prompt for another word. Try searching for "zebra" and then "apple" by putting the input in a file. c) Use the wait3() system call with the WNOHANG option to reap the zombies in the parent.