⯈Algorithm and its Characteristics

⯈Elementary Problems

- Addition of two numbers
- Calculate area and circumference of circle
- Calculate area of triangle
- Calculate simple interest
- Calculate slope and distance between two points
- Convert length in feet to inches
- Weighted score in exam
- Convert temperature in degree Celsius to Fahrenheit
- Swap two numbers
- Swap two numbers without using extra variable

- Overview of C Programming Language
- Getting started with C Programming Language
- Keywords
- Identifiers
- Constants
- Operators
- Expression Evaluation
- Mathematical expression to C equivalent expressions
- Datatypes
- Variables
- Integer representation in C
- Character representation in C
- Type conversion in C
- sizeof operator
- Comments
- Mathematical Functions
- input output statements
- width specifiers in C
- structure of a C program
- header files
- Compilation process of a C program
- Types of initializations.

⯈Basic C Programs

- C program to add two numbers
- C program to find area and circumference of circle
- C program to swap two numbers
- C program to swap two numbers without using extra variable
- C program to swap two numbers using bitwise XOR
- C program to convert temperature in Celsius to Fahrenheit
- C program to calculate gross salary of an employee
- C program to count number of digits in a positive integer
- C program to count number of digits in binary representation
- C program to count number of digits in base ‘K’
- C program to convert kilometer to meter, feet, inches and centimeters
- C program to find first and last digit of a number
- C program to find minimum number of currency denominations
- C program to convert cartesian coordinates to polar coordinates
- C program to find distance between two places on earth in nautical miles
- C program to find slope and distance between two points
- C program to add 1 to the number using ‘+’ operator
- C program to find maximum of two numbers using ternary operator
- C program to find maximum of three numbers using ternary operator
- C program to find kth bit of a number
- C program to find last four bits of a byte
- C Program to reset right most set bit of a number

## Introduction to problem solving

Problem solving is one of the most important areas of the computer science. We write computer programs or develop software to solve real world problems. There are various steps that we take care when we solve the problem. Problem solving includes:

- Analysis of problem.
- Developing an efficient algorithm.
- Implementing the algorithm (writing program).
- Testing the program against all possible valid inputs.

**1. Analysis of problem:**

The analysis of the problem includes knowing what inputs the program takes and what output the program gives. Inputs are also known as the **“knowns”** of the problem and output are **“unknowns”.**

**2. Developing an efficient algorithm:**

Before we write the program, we write solve the problem in step-by-step manner in natural language. There may be more than one solution for a given problem which we analyze and select the best solution. Here we may also write the flowchart which says the flow of control of the program in diagrammatic form.

How do we write an algorithm in step-by-step manner we will discuss in the next section.

**3. Implementing the algorithm:**

In this step we write the program for the algorithm which we have selected. Algorithm is in natural language steps, and a computer can only understand the binary language. Here we convert the natural language into a coding language, usually a high-level language like C, C++, Python, Java, etc.,

We will discuss in detail about the C Programming language in this tutorial.

**4. Testing the program:**

After we write the program, we need to check whether the program is giving answer as desired for all possible inputs. If yes, then the program which we have written is correct else we need to change the logic and rewrite the algorithm and program.

To test the program, we can do dry run of the program, executing it manually step by step to check for the output.

The steps of the problem-solving forms a cycle. If the test results are not correct or we need to improve the algorithm on its efficiency, then we redo all the steps starting from the analysis.

The following diagram describes the problem-solving cycle.