![Recitation Review Logo](https://hackmd.io/_uploads/S1hwoZ9i6.png) Pseudocode Standard <small>(<i>Revised: </i> FMarch 28, 2024)</small> === Pseudocode serves as a bridge between the initial problem analysis phase and the structured code of a programming language. This pseudocode convention establishes a clear and consistent framework for outlining algorithms and program logic in a human-readable format. Adherence to these guidelines promotes code that is well-organized, understandable, and easier to translate into specific programming languages. The conventions provided here cover essential elements like data types, control structures, file operations, functions, and common data structures, empowering precise and effective algorithm design. **Purpose:** To provide a structured, human-readable way to outline algorithms and program logic, independent of specific programming language syntax. --- **Table of Contents** [TOC] --- General Guidelines -- * **Focus on Readability:** Pseudocode should be easy to understand, even for someone unfamiliar with the exact programming language you'll use later. * **Utilize Plain Language:** Use common English-like phrases and descriptive variable names. Avoid programming-language-specific keywords when possible. * **Indentation:** Indent nested code blocks to signify relationships and control structures. Specific Conventions -- * **Capitalization:** Capitalize initial words of major statements (e.g., `START`, `IF`, `WHILE`, `READ`, `DISPLAY`). * **Variable Naming:** Use meaningful variable names (e.g., `studentName` instead of `x`). * **Line Separation:** Write one distinct statement per line. * **Input/Output:** Use standard terms like: * `READ`, `INPUT`, or `GET` for input * `DISPLAY`, `OUTPUT`, or `PRINT` for output * **Conditional Statements:** * `IF ... THEN ... ELSE ... END IF` * **Loops:** * `WHILE ... END WHILE` * `DO ... WHILE(condition)` * `FOR ... END FOR` * **Assignment:** Use standard terms like: * `SET` or `ASSIGN` * Use `=` or an arrow `<-` (e.g., `SET total = total + price`). * **Data Types:** Include data types immediately after "Declare" * `DECLARE string firstName` * `DECLARE integer age` * `DECLARE float prices array` * **Files** * **Opening:** `OPEN file "data.txt" for reading` * **Reading:** `READ nextLine from file` * **Writing:** `WRITE message to file` * **Closing:** `CLOSE file` * **Functions** * **Definition:** ```plaintext FUNCTION calculateArea WITH PARAMETERS length: float, width: float RETURNS float SET area = length * width RETURN area END FUNCTION FUNCTION printGreeting DISPLAY "Welcome to shape calculator!" END FUNCTION ``` * **Calling:** ```plaintext CALL printGreeting() SET totalArea = calculateArea(10, 5) ``` * **Arrays** * **Declaration:** `Declare integer numbers array of size 10` * **Accessing Elements:** `numbers[3] = 25` * **Iterating:** * ```plaintext FOR index = 0 TO size of numbers - 1 DISPLAY numbers[index] END FOR ``` * **Switches** ```plaintext SWITCH (color) CASE "red": DISPLAY "Stop" BREAK CASE "yellow": DISPLAY "Caution" CASE "green": DISPLAY "Go" BREAK DEFAULT: DISPLAY "Invalid color" END SWITCH ``` * **Comments:** * Use comments freely to explain non-obvious sections of your pseudocode. * Comment markers may vary (e.g., `//` for single-line, or block comments). Example: File Processing with Functions -- ```plaintext= FUNCTION readFileAndCalculateAverage WITH PARAMETERS filename: string RETURNS float DECLARE float numbers array DECLARE integer count OPEN file filename for reading WHILE not end of file READ nextNumber from file SET numbers[count] = nextNumber SET count = count + 1 END WHILE CLOSE file RETURN calculateAverage(numbers) END FUNCTION FUNCTION calculateAverage WITH PARAMETERS data array: float RETURNS float DECLARE float sum DECLARE float avg FOR index = 0 RO size of data - 1 SET sum = sum + data[index] END FOR SET avg = sum / size of data RETURN avg END FUNCTION START DECLARE string filename DECLARE float average DISPLAY "Enter filename: " READ filename SET average = readFileAndCalculateAverage(filename) DISPLAY "Average: ", average END ``` Example: Display Greeting with Name -- ```plaintext= FUNCTION displayGreeting WITH PARAMETERS name: string DISPLAY "Hello, ", name, "!" END FUNCTION START // Calling the function DISPLAY "Enter your name: " READ inputName CALL displayGreeting(inputName) END ``` <br/> --- <center><small style="font-size:8pt"><i>Created with Google Gemini</i><br/>&copy;2024 Vanessa Coote - All rights reseerved.</small></center>