# 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

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

:::
### Step 3: Algorithm Design
:::info
:bulb: **Example 1: Algorithm**

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

:::
## 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

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