Understanding Flowcharts and Programming Languages

Flowchart

The pictorial or graphical representation of flow of a program is known as flowchart. If the algorithms or programs are displayed in the form of a picture then it will be more noticeable and recognizable. Only thing what we need to know some specific shapes to represent each processes or actions. The fundamental shapes and descriptions using in flowcharts are as follows.

j9uY63M2wBnveRcyLNUIT34Tu4aWeSqdlhox9JkprjEzmiyBmtmP8KZOE9ItyPleqb820RulOWNBK3GMhvqLvE3HpnmwwrHzb7DE88UBI3YtVUPP5F33nd5VQA0aF_e2ICZ6AW7YV-ajFuT7HcyJt-c4Xh9Iektloljd0DiRGjXFpHgP_xKeDfpPLZEH2Q

Rhombus:

For decision making and branching the flow of execution.

Rectangle:

For processing and assigning variables.

Parallelogram:

Accessing inputs and printing outputs.

Rectangle with Curved Edges:

Start/Begin or Stop/End of the program execution.

Circle:

Connectors to continue the flow of execution.

Arrow:

Represents the direction of Flow of execution


Low Level Language

Programs or set of instructions written in the form of binary (1s and 0s) are known as Low Level Language or machine language. This is the only language that can be understood or interpreted by a computer.

High Level Language

Programs or set of instructions that are written in structured languages such as English are known as High Level Languages. High level languages are not directly interpreted or understood by a computer. Examples: C, FORTRAN, COBOL, BASIC etc.

Today’s most popular Linux OS and RDBMS MySQL have been written in C.

C was initially used for system development work, particularly the programs that make-up the operating system. C was adopted as a system development language because it produces code that runs nearly as fast as the code written in assembly language. Some examples

Operating Systems

  • Language Compilers
  • Assemblers

The documentation section consist of a set of comment line giving the name of the program, author, and other details which the programmer would like to use later. The link section provides instructions to the compiler to link functions from the system library. The definition section defines all symbolic constants. There are some variables and are declared in the global declaration section that is outside of all the functions. Every C program has one main( ) function section. This section contains two parts, declaration part and executable part. The declaration part declares all variables used in the executable parts. There is at least one statement in executable part. These two parts must appear between the opening and closing braces. The program execution begins at the opening brace and ends at the closing brace. The closing brace of the main function section is the logical end of the program. All statements in the declaration and executable parts end with semicolon. The subprogram section contains all the user defined functions that are called in the main function. User defined functions are generally placed immediately after the main function. FsX9CBUMrJ1lUjmv0Lgmw2Fe5fPi07v6F_EL5U17VpWVQx9jY3U38gUQBy0ApUHreHsd-MmNGS65DzS7V28pu4Ju2J5D0vUCoCdnPwJ91NENER2MXnxJc2fPV1aq7VLlFLOSlSugWF8kDPiaPZQZu543Aw03I_sos-4n9ihy3qJwQBjW2A-kKKDvHbXvQA

DECISION STATEMENTS

Decision making is used to specify the order in which statements are executed.

Simple if statement

if (testExpression)

{

// statements

}

The if statement evaluates the test expression inside the parenthesis. If the test expression is evaluated to true (nonzero), statements inside the body of if is executed. If the test expression is evaluated to false (0), statements inside the body of if is skipped from execution.


if…else statement

The if…else statement executes some code if the test expression is true (nonzero) and some other code if the test expression is false (0).

Syntax of if…else

if (testExpression) {

// codes inside the body of if

}

else {

// codes inside the body of else

}

If test expression is true, codes inside the body of if statement is executed and, codes inside the body of else statement is skipped. If test expression is false, codes inside the body of else statement is executed and, codes inside the body of if statement is skipped.


Nested if…else statement (if…elseif….else Statement) The if…else statement executes two different codes depending upon whether the test expression is true or false. Sometimes, a choice has to be made from more than 2 possibilities.


switch…case :The if..else..if ladder allows you to execute a block code among many alternatives. If you are checking on the value of a single variable in if…else…if, it is better to use switch statement.

The switch statement is often faster than nested if…else (not always). Also, the syntax of switch statement is cleaner and easy to understand.

CHARACTERISTICS OF A GOOD PROGRAMMING LANGUAGE

There are some popular and powerful high-level programming languages. There are several characteristics believed to be important for making it good.

Naturalness

A good language should be natural for the application area for which it is designed. That is, it should provide appropriate operators, data structures, control structures and a natural syntax to facilitate programmers to code their problems easily and efficiently. FORTRAN and COBOL are good examples of languages possessing high degree of naturalness in scientific and business application areas, respectively.

Abstraction

Abstraction means ability to define and then use complicated structures or operations in ways that allow many of the details to be ignored. The degree of abstraction allowed by a language directly affects its ease of programming.

Efficiency

Programs written in a good language are translated into machine code efficiently, are executed and require relatively less space in memory. That is, a good programming language is supported with a good language translator (a compiler or an interpreter) that gives due consideration to space and time efficiency.

Structured Programming Support

A good language should have necessary features to allow programmers to write their programs based on the concepts of structured programming. This property greatly affects the ease with which a program may be written, tested and maintained. Moreover, it forces a programmer to look at a problem in a logical way so that fewer errors are created while writing a program for the problem.

Compactness

In a good language, programmers should be able to express the intended operations concisely without losing readability. Programmers generally do not like a verbose language because they need to write too much.

Locality

A good language should be such that while writing a program, a programmer need not jump around the visually as the text of a program is prepared. This allows the programmer to concentrate almost solely on the part of the program around the statement currently being worked with. COBOL and to some extent C and Pascal lack locality because data definitions are separated from processing statements, perhaps by many pages of code, or have to appear before any processing statement in the function/procedure.

Extensibility

A good language should also allow extensions through a simply, natural and neat mechanism. Almost all languages provide subprogram definition mechanisms for the purpose, but some languages are weak in this aspect.

Suitability to its Environment

Depending upon the type of application for which a programming language has been designed, the language must also be made suitable to its environment. For Example, a language designed for a real-time applications must be interactive in nature. On the other hand, languages used for data-processing jobs like payroll, stores accounting etc. may be designed to operative in batch mode.


Generally, program development life cycle contains 6 phases,
they are as follows:
 Problem Definition
 Problem Analysis
 Algorithm Development
 Coding & Documentation

Problem Definition in this phase, we define the problem statement and we decide the boundaries of the problem. In this phase we need to understand the problem statement, what is our requirement, what should be the output of the problem solution. These are defined in this first phase of the program development life cycle.
Problem Analysis :In phase 2, we determine the requirements like variables, functions, etc. to solve the problem. That means we gather the required resources to solve the problem defined in the problem definition phase. We also determine the bounds of the solution.


Algorithm Development :During this phase, we develop a step by step procedure to solve the problem using the specification given in the previous phase. This phase is very important for program development. That means we write the solution in step by step statements.

Coding & Documentation :This phase uses a programming language to write or implement actual programming instructions for the steps defined in the previous phase. In this phase, we construct actual program. That means we write the program to solve the given problem using programming languages like C, C++, Java etc.
Testing & Debugging :During this phase, we check whether the code written in previous step is solving the specified problem or not. That means we test the program whether it is solving the problem for various input data values or not. We also test that whether it is providing the desired output or not.

Maintenance :During this phase, the program is actively used by the users. If any enhancements found in this phase, all the phases are to be repeated again to make the enhancements. That means in this phase, the solution (program) is used by the end user. If the user encounters any problem or wants any enhancement, then we need to repeat all the phases from the starting, so that the encountered problem is solved or enhancement is added.