---
# System prepended metadata

title: Problem Solving

---

# Problem Solving

> Steps to start solving problems :question: 

### Step 1: Problem Definition

1. Information that is given
    * What input to take in from the user (Input)
    * What data should be display (Output)

:::info
**Outline:**

Write a program to take in the ... and produce ...
:::

:::info
:bulb: **Example 1:**

Write a program to take in the plaintext/ciphertext of the message and the secret key 
and produce the ciphertext/plaintext based on Caser/shift cipher methodology. 
:::

:::info
:bulb: **Example 2:**

Write a C program to take in the input parameters of the mean and standard 
deviation of a gaussian distributed variable that range from -20 to 20 in the 
increment of 0.5. Print out a table of the probability density function with respect to 
the input.
:::

### Step 2: Problem Analysis

1. Develop the mathematical formulation related to the input and output (Brains of the program)

:::info
:bulb: **Example 1:** Put input into formula and output result 

![](https://i.imgur.com/sH6QZDB.png)
:::


:::info
:bulb: **Example 2:**

![](https://i.imgur.com/cnXrEkb.png)
:::

### Step 3: Algorithm Design



:::info
:bulb: **Example 1: Algorithm**

![](https://i.imgur.com/8hj54KQ.png)
:::


:::info
:bulb: **Example 1: Persoducode**

![](https://i.imgur.com/JAKxSSH.png)
:::


## Persoducode

#### Keywords

BEGIN
END
READ
PRINT
IF
ELSE
ELSEIF
ENDIF
WHILE
DO
ENDWHILE
ENDDO
FUNCTION "function name"()
ENDFUNCTION
FOR K = 0 to n do
ENDFOR

## Format Specifiers

| Syntax      | Description                |
| ----------- | -----------                |
| %d          | Signed integer - 4 bytes   |
| %u          | Unsigned integer - 4 bytes |
| %c          | Character - 1 byte         |
| %f          | Float - 4 bytes            |
| %s          | String                     |
| %lf         | Double - 8 bytes           |
| %Lf         | Long Double - 16 bytes     |
| %p          | Hexadecimal                |

## Variables and Constant

:::info
![](https://i.imgur.com/T49HwjN.png)

* Varibles without values will go to bss segment
* Varibles with values goes to data segment
:::