Mattingly "AI and Prompt Design: LLMs with Text Classification and Open Source"
Problem Solving Techniques - R.D.Sivakumar
1. Mr. R.D.SIVAKUMAR, M.Sc.,M.Phil.,M.Tech.,
Assistant Professor of Computer Science &
Assistant Professor and Head, Department of M.Com.(CA),
Ayya Nadar Janaki Ammal College,
Sivakasi – 626 124.
Mobile: 099440-42243
e-mail : sivamsccsit@gmail.com
website: www.rdsivakumar.blogspot.in
PROBLEM SOLVING TECHNIQUES
2. PROBLEM SOLVING TECHNIQUES
In the computer languages every statement must be written precisely, including commas
and semicolons. One has to be very careful while writing these lines.
In the natural languages the sentences may be long. Sometimes they may be vague. So, to
understand things clearly without any ambiguity, we write it in an intermediary language.
This will be easy to write and understand, and also without any ambiguity. These
intermediate languages are in between the natural languages and the computer languages.
We shall study two such intermediate languages, namely, the flow chart and the pseudo
code
3. PROBLEM SOLVING TECHNIQUES
First let us consider the flow chart. Since the flows of computational paths are
depicted as a picture, it is called a flow chart.
Let us start with an example. Suppose we have to find the sum and also the
maximum of two numbers. To achieve this, first the two numbers have to be received
and kept in two places, under two names. Then the sum of them is to be found and
printed. Then depending on which one is bigger, a number is to be printed.
The flow chart for this is given in flow chart 4.1.
4. PROBLEM SOLVING TECHNIQUES
In the flow chart, each shape has a particular meaning.
They are given in flow chart 4.2.
In the flow chart mentioned above, there is a special meaning in writing C = A + B.
Though we use the familiar equal to sign, it is not used in the sense as in an equation.
This statement means — Add the current values available for the names A and B, which
are on the RHS, and put the sum as the new value of the name C, which is in the LHS.
For example, under this explanation, A = A + 1 is a valid statement. The value of A is
taken, incremented by one and the new value is stored as A. That is, the value of A gets
incremented by 1. Note that we can write A = A + B, but not A + B = A. On the LHS
there must be only a name of a place for storing.
5. PROBLEM SOLVING TECHNIQUES
For big problems, the flow chart will also be big. But our paper sizes are limited.
We may need many pages for one flow chart. But how to go from one page to
another?
This is solved by using small circles, called connectors. In this circle, we put some
symbol. All connectors having the same symbol represent the same point, wherever
they are, whether they are in the same page or on different pages. Flow chart 4.3
gives an example.
The advantages of the flow charts are:
• They are precise. They represent our thoughts exactly.
• It is easy to understand small flow charts.
The disadvantage is that real life flow charts can occupy many pages, and hence very difficult
to understand. So no one uses flow charts in such situations.
6. PROBLEM SOLVING TECHNIQUES
Consider the small flow charts given for the following problems. See whether they will
solve the problems. Do not memorize them. Try to understand them. Note how much we
have to think before writing a program.
Flow chart 4.4 estimates the volume of a box using its length, breadth and height.
12. PROBLEM SOLVING TECHNIQUES
Flow chart finds the smallest integer n such that, 1+ 2+ 3+...+n is equal to or
just greater than 1000.
13. FUNDAMENTAL CONDITION AND CONTROL
STRUCTURES
In a computer pseudo code, we have to instruct the computer regarding each and
every step. Only if we can decide all these things by ourselves, we can write a
computer pseudo code. The computer will simply do what we say. And exactly as we
say. It won’t do anything on its own. We can even say that the computer is the fifth
disciple of Paramaartha guru. Do you wonder why?
We shall see one episode in a sequence of such episodes. Paramaartha guru’s
disciples are named (in Tamil) as Matti, Madayan, Moodan and Muttaal, all different
forms of the word ‘fool’. They buy an old horse for their guru. The guru sits on the
horse and the disciples come by walking. The guru’s turban hits a branch of a tree
and falls down. After some time the guru asks for the turban. The disciples say that it
fallen down. When he asks why they had not brought it, they say that he had not told
them so. The guru says that they should take and bring anything that falls down.
One disciple goes back and brings the turban. The guru is annoyed to see the horse
dung in his turban. When the guru asks why he had put the dung in the turban, the
disciple answers “You only asked us to bring whatever has fallen down. How do we
know which one to take and which one to leave? Better give us a list of things to take,
so that there won’t be any confusion.” The guru dictates a long list and then they
proceed.
14. FUNDAMENTAL CONDITION AND CONTROL
STRUCTURES
After some time, the old horse trips and falls down. Then one disciple starts reading
from the list. Things like turban, dhoti, towel etc. are taken one by one. The guru lies
there only with the loincloth. He asks them to take him and put on the horse. For this
comes the prompt reply “ You are not in the list, guru.” When his pleadings fall on
deaf ears, the guru asks tem to revise the list, and include his name in the list. Then
he asks them to check the list again. Now he was helped to get up.
A computer pseudo code is like that list. The computer is like one of these disciples.
It is not much different. It is our responsibility to instruct the computer properly and
elaborately. We should get trained in thinking in such elaborate manner.
In all these, they are only three techniques, which occur again and again. All the
computing is done using only these techniques. Understanding them is just as
necessary as the fisherman learning to swim.
Sequencing
Usually the calculations are done one after another, in a sequence. This is one of the
fundamental control structures
15. BRANCHING
Two-way branching
Ask a question. Get the answer as ‘Yes’ or ‘No’. Depending on the answer,
branch to one of the two available paths. This is depicted by a diagonal shaped
box. You can see this box in many flow charts. Also many times in the same flow
chart. Branching is also a fundamental control structure.
For example, if A > B, then print A, otherwise print B.
This is called the “If ...Then ...Else” structure. If no action is to be taken in one
path, then we can use the “If...Then” structure. In this, if the
answer is ‘No’, then it means that the execution goes to the next
statement without doing anything.
For example, If you find anyone there then say hello
16. BRANCHING
Multi-way branching
For some questions there may not be just a Yes or No answer.
For example -” What is the age of this boy?” the answer can be one of many
integers. Depending on the answer, we may have to make different set of
computations, by going through different paths. This is called multi-way
branching. This can be depicted as in the flow chart
For example, if n is 0 then print ‘zero’
1 then print ‘one’
2 then print ‘two’
3 then print ‘three’
17. ITERATION
The third fundamental technique is iteration. That is, repeating a set of actions again
and again. Of course, we do not repeat the same actions for the same data, as this will be
just a waste of time. The action will be the same, but the data will change every time.
For example, reading 100 numbers, or, finding the interest payable for 1000
customers. In both these examples, we know how many times we are going to repeat the
same action. Hence the name definite iteration. In this method we have to keep track of
the count of the number of times the actions are performed. For this we use a variable
called the index variable or control variable.
There are 4 basic steps involved in using an index variable.
• The index variable should be given an integer as the initial value to start with.
• The current value in the index variable v should be compared with the final value to
decide whether more iteration is required.
• If the answer is Yes, then
Do the required actions once.
Then increment the index v by 1.
Go to step 2 and do the checking again.
• If the answer is No, then
The iterations are over.
Go to the next action in the sequence.
18. ITERATION
The flow chart explains about definite iteration. In this case, the iteration is shown
by the presence of a loop formed by the directed lines.
In some situations, we may not know exactly how many times the iteration is to be
performed, as a number, in the beginning. For example, suppose we have to find the smallest
number n such that 1 + 2 + 3 + ... + n gives at least 100. Suppose we add numbers one by one
and test whether 100 has been reached. We will stop when 100 has been reached.
Here we do not know when we are going to stop as a number. A count is not going to work
here. Only a condition is to be checked for this. Such iteration is called an indefinite
iteration. Using sequencing, branching and iteration, all the computation can be carried out.
Definite Iteration
19. PSEUDO CODE
Instead of using flow chart, pseudo code can be used to represent a procedure for
doing something. Pseudo code is in-between English and the high-level computer
languages. In English the sentences may be long and may not be precise. In the
computer languages the syntax has to be followed meticulously. If these two irritants are
removed then we have the pseudo code.
There are only a few basic sentence types in this. They are also small in their size. But
they have the power to specify any procedure. We have one more felicity. We can use the
usual brackets in the usual sense of combining many things together. By indentation also
we can club statements together. It is easy to understand things written in pseudo code.
The flow chart fundamental control structures for branching and iteration correspond
to the following pseudo code.
• If .... then .... else ....
• If .... then ....
• For ..... to .... do ......
• While .... do .....
20. PSEUDO CODE
A few examples for these are as follows.
• If a > b then print a else print b
• If a < 10 then b = c + d
• For i = 1 to 20 do
n = n + i
• While sum < 100 do
sum = sum + i
i = i + 1
Note that in the while .. do example, the two lines with indentation are to be clubbed
together and treated as one unit for execution. The corresponding flow charts for the
above examples are given below:
21. PSEUDO CODE
Note that all these control structures have only one entry point and only one exit
point. That is after executing the things mentioned in these statements, the control is
transferred to the next statement. That is, after this statement computer takes up the
next statement for execution. This is one of the strong points of these control
structures.
This makes the understanding and debugging (finding and removing errors) easier.
22. PSEUDO CODE
The pseudo codes corresponding to the problem we have worked out in an
earlier section are given below. Compare the flow charts and the pseudo codes,
and ascertain their equivalence
• Finding the volume.
start
read length, breadth and height.
volume = length x breadth x height
print volume
End
Only sequence is used in the above example.
• Write in words.
start
read n
if n is
0 then write ‘zero’
1 then write ‘one’
2 then write ‘two’
3 then write ‘three’
End
24. PSEUDO CODE
There are a few points to be noted.
• Within one ‘if then else’ statement, there is another ‘if then else’ statement. To show this
clearly indentation is used.
• Only the inner statement is written with extra indentation. All the statements in a
sequence have the same indentation.
• Just as we use brackets in Mathematics, here also we use brackets for bunching.
• Since the procedures written in the pseudo code look similar to a program, it is very
easy to convert it into a high-level language computer program
25. WALKTHROUGH
As a first step in writing a program, a flow chart or pseudo code is created, to
represent the solution method. This comes under the designing a solution for the
problem. From this, the program is written with the specific syntax rules of a
particular language. Before writing the program, one must be sure of the correctness
of the method used.
Hence it is necessary to check the correctness of the flow charts and pseudo codes.
First we shall see what an algorithm (solution method) is. Then we shall see a
method, called walkthrough, of checking the pseudo code or flow chart.
An algorithm is a procedure with the following properties.
• There should be a finite number of steps.
• Each step is executable without any ambiguity.
• Each step is executable within a finite amount of time, using a finite amount of
memory space.
• The entire program should be executed within a finite amount of time.
26. CREATING A PROGRAM
Writing a small program is easy. A flow chart or pseudo code can be drawn for
this first. Then from this the program can be written easily. But this method does
not work in the case of real life programs, which are big. A systematic approach
is very much essential in this case.
To create a program, the problem should be divided into many smaller
problems. We should know the method of putting together the results of these
sub problems to get the result for the bigger problem. This is one step in creating
a program. This step is repeatedly used, until the problem becomes small enough
to write a flow chart or pseudo code.
This method of approach is called the ‘Top Down Approach’. In each step we
concentrate on a single thing, find how to get the solution by combining the
results of smaller problems. In the case of computer programs, when this method
was used first, more importance was given to the procedures, that is, the method
of executing things, and not for the data. It is called ‘Structured Programming’.
When dividing a problem into smaller parts, if both the procedure and the data
are taken into account, then we have what is called the ‘Object Oriented
Approach’.