Write a C program that recursively determines if a path exists in a maze. You must also write a function that accepts an 8 by 8 array of characters that represents a maze.
At the conclusion of this programming assignment, participants should be able to:
Analyze a basic set of requirements for a problem
Compose C language programs
Compile a program using Microsoft Visual Studio 2015
Execute a program
Create basic test cases for a program
Apply arrays, strings, and pointers
Summarize differences between array notation and pointer notation
Apply pointer arithmetic
Apply basic string handling library functions
Before starting this programming assignment, participants should be able to:
Access Microsoft Visual Studio 2015 Integrated Development Environment (IDE)
Design and develop a small or medium sized program in any language
Apply sequential, conditional, and iterative constructs
Design and implement user-defined functions
III. Overview & Requirements:
For each of the following problems create a separate Microsoft VS 2015 project, but within the same solution! Within each project you must have at least one header file (.h) and two source files (.c). However, I highly encourage you to separate your test driver code from your application/library code, which would require at least two more files (one .h and one .c). Before you turn in this assignment, be sure to place each project folder into a single <your last name>_pa1 folder.
1. Write a C program that sorts strings into descending or ascending order (determined by the user of the program). For this program you must declare an array of pointers to the strings, and perform the sorting without using strcpy ( ). Hence, you must manipulate the pointers to the strings only! Below is a pseudocode algorithm for bubble sort:
1. get values for n and the n list items (n represents the number of records in the file, list is an array of records)
2. set the marker U for the unsorted section at the end of the list (U is an integer index value)
3. while the unsorted section has more than one element do steps 4 through 8
4. set the current element marker C at the second element of the list (C is an integer index value)
5. while C has not passed U do steps 6 and 7
6. if the item at position C is less than the item to its left then exchange these two items
7. move C to the right one position
8. move U left one position
You must develop your own program driver to illustrate that your sorting algorithm works!
2. Write a C program that recursively determines if a path exists in a maze. You must also write a function that accepts an 8 by 8 array of characters that represents a maze. Each position can contain either an X or a blank. Starting at position (0, 1), list any path through the maze to get to location (7, 7). Only horizontal and vertical moves are allowed. If no path exists, write a message indicating there is no path. Moves can be made only to locations that contain a blank. If an X is encountered, that path is blocked and another must be chosen. –-Source Hanly & Koffman, Problem Solving and Program Design in C.
3. Write a C program that encrypts and decrypts strings using the Caesar Shift Cipher. The shift value must be an integer, but may be positive or negative. If the shift value is 4, then an ‘A’ becomes ‘E’. If the shift value is -4, then ‘A’ becomes ‘W’. Note, the plaintext messages are encrypted using alphabetic characters only. Also, all characters in the messages must first be converted to uppercase before encrypting or decrypting them. Develop your own program driver to illustrate that your program works. You may use any library functions you wish.