Introduction To Problem Solving Methods and Algorithm Development by Dr. S. Srivastava..
Introduction To Problem Solving Methods and Algorithm Development by Dr. S. Srivastava..
Problem Definition
Problem are obstacles or undesirable situations, that
prevent one from achieving an objective in a give situation,
and therefore, must be solved in order that the objective is
achieved .
A computer is a tool that can be used to
implement a plan for solving a problem.
Computer programs
Sets of instructions for which computer processes data.
Instruction : A command in binary that is recognized and
executed by the computer in order to accomplish the task.
The steps
Develop Evaluation
Criteria
Develop
Alternation
Solution
Implement solution
Problem-Solving Approaches
Top- Down Design Approach Divide and
rule
Bottom-UP Design Approach
Top- Down Design Approach Divide
and rule :The problem is broken down
into smaller fragments and fragments,
further into still smaller fragments till the
fragments are small enough to be solved
easily are separately.
How to
buy tickets
How to Get
the right
platform
How to
Board the
train
How to use
escalator to go
to a platform
How to alight
from the
train
Top-Down Design
Bottom UP Design
The bottom-up approach is opposite to
that of the top-down. Here, the problem
solver has to solve the most basic
(smallest ) units in the hierarchy first
and then use to build more
sophisticated bigger units.
The pure bottom up approach is
generally not recommended because it
is difficult to anticipate which low level
units will be needed for solution of
particular problem.
A General Example
Subdividing the party planning
Problem
Create a list that includes each
persons name, telephone number,
and e-mail address
This list should then be printed in
alphabetical order.
The names to be included in the list are
on scraps of paper and business cards.
Main
Level 0
Level 1
Level
Level 2
Level 2
Level 2
A Computer Example
Algorithm
An algorithm is a plan for solving a
problem. A process or set of rules to
be followed in calculations.
An algorithm is a finite list of welldefined steps for solving a particular
problem. These instructions, when
executed in the specified order , solve
a problem , which the algorithm
intends to solve.
Writing an algorithm(Elements
of Program Style )
An algorithm has three execution
sequences:
Sequence Logic or sequential Logic
Selection or Conditional Logic
Iteration or Repetitive Logic
In Sequence Logic execution the
instructions are executed in obvious Linear
sequence one by one.
The sequence may be presented explicitly
,by means of numbered steps, or implicitly,
by the order in which the instruction are
written.
A
6 means: store 6 in the
variable named A.
A
A+1 means : add 1 to the value
contained in the variable A and store the
result back into it.
Similarly ,A
B*C would mean multiply
values in B and C ,store the result into A.
Note.
Assignment operator
means store the
right hand value into left hand variable.
1.
Example 1
To print all even numbers from 2 to 12 on the screen. Assume
that Print instruction prints the given value on Screen . Use
sequential logic.
START
Begin the
algorithm
execution
2.
PRINT 2
PRINT value 2
3.
PRINT 4
PRINT value 4
4.
PRINT 6
PRINT value 6
5.
PRINT 8
PRINT value 8
6.
PRINT 10
PRINT value 10
7.
PRINT 12
PRINT value 12
STOP
Terminate the
algorithm
Another
4.
A+1
Add 1 to value A
contains and store
the result back into A.
5.
IF (A<=12) THEN
GOTO 3
6.
STOP
Terminate the
algorithm
START
2.
3.
Keep on executing
steps as long as
condition.
(A<=12) is true ,i.e.
as long as value
stored in A is less
than or equal to 12,
otherwise go to step
next to the one
specified in the loop
condition,i.e.No.6.
4.
PRINT A
5.
Add 2 to value A
contains and store the
A+2
Characteristics of Algorithm
Implementation of
Algorithm
Implementation of
AlgorithmAlgorithm
Analysis: To evaluate the designed
Example
Example 2
Software Concepts
Operating System
An operating system is a program that acts as an
interface between the user and the computer
hardware and controls the execution of all kinds of
programs.
OS is the interface between hardware and user
All computers need an OS
OSes are used to run applications and control
hardware.
An operating system is the most essential system
software that manages the operation of a computer.
Without an operating system, it is not possible to use
the computer.
Popular OSes include Windows, Unix , Linux, Mac OSX
DISK
RAM
S.N.
Resources
Examples
Examples S/W
to According
Task.
1.
Memory
Core(Main)
Memory
Management
,paging (divide
(a piece of
software or
data) into
sections,
keeping the
most frequently
accessed in
main memory
and storing the
rest in virtual
memory)
2.
Processor
CPU,I/O
channels
Traffic
controller,
scheduler
3.
Devices
Tapes, drums,
Spooling
What Is UNIX?
UNIX is a computer operating system, a
control program that works with users to
run programs,
manage resources, and
communicate with other computer systems.
CPU
Virtual memory
Kernel interface to the hardware
Shell
Nam
e
Invok
ed
with
Defaul Develo
t
pe r
Promt
Remarks
Korn
shell
ksh
AT & T
Bourn sh
e
shell
AT & T
C
shell
csh
UC
A popular shell in university
Berleley environments with a syntax similar
to the C language.
Bash
shell
bash
Bash $
Free
softwar
dev
de
v
bin
con
sole
csh
sh
lib
usr
tmp
Ra
m
pas
swo
rd
incl
ude
Shy
am
lib
etc
gro
up
unix
Gop
al
Logging on to a UNIX
machine
Because UNIX is a multiuser operating
system, you need to start by finding a
terminal, computer, or other way to access
the system.
Connect your terminal or PC to the UNIX
system until the point where you see a login
prompt (login:) on your screen. Use the
phone and modem to dial up the computer if
you need to.
46
47
48
49
login: your-login-name
50
You are now logged into the computer and will have a prompt that reflects the
computer's name. For example, if you connect to hyperion machine, the
prompt looks like this:
[dag@hyperion dag]$
Once youve successfully entered your account name and password, you are
shown some information about the system, some news for users, and an
indication of whether you have electronic mail. The specifics will vary.
At this point, youre ready to enter your first UNIX commandexitto sign off
from the computer system. entering exit shuts down all my programs
If you have a direct connection to the computer, logging out causes the
system to prompt for another account name, enabling the next person to use
the system.
51
Shell Commands of
UNIX
Unix Commands
/
home/larry#
52
53
54
55
Programming Tools
bash Bourne Again SHell, (mostly) sh-compatible and cshcompatible, standard shell on Linux systems and Mac OS X.
csh C shell. Written by Bill Joy for BSD systems.
ksh Korn shell, standard shell on many proprietary Unix systems,
powerful successor to the Unix Bourne shell (sh), written by David
Korn,
rc originally written for Plan 9.
sh Bourne shell, only shell present on all UNIX and Unix-like
systems, written by Stephen Bourne for Version 7 Unix.
tcsh TENEX C shell, standard shell on BSD systems.
zsh Z shell.
awk Standard Unix pattern scanning and text processing tool.
perl Perl scripting language.
PHP PHP scripting language.
Python Python scripting language.
57
Unix Commands
obtaining
help
The man command displays reference pages
for the command you specify.
The UNIX man pages (man is short for
manual ) cover every command available.
To search for a man page, enter man
followed by the name of the command to
find .
For example:
bagriy@sariyer:~> man ls
58
To exit
Press q
59
cat
cat command is used to concatenate or displays
the contents of a file.
To use it, type cat, and then press enter key:
/home/larry# cat
This produces the correct result and runs the cat program.
Prompt
Command
f you type this row
and then press
enter
62
63
Storing information
Unix provides files and directories.
A directory is like a folder: it contains pieces of
paper, or files.
A large folder can even hold other folders-directories
can be inside directories.
In unix, the collection of directories and files is called
the file system. Initially, the file system consists of
one directory, called the root directory
Inside root directory, there are more directories, and
inside those directories are files and yet more
directories.
64
/home/larry/joe
The initial slash indicates the root
directory. This signifies the directory
called home. It is inside the root directory.
The second slash corresponds to the
directory larry, which is inside home.
Root Directory
Directory
Directory
home
Sub-Directory
Directory
structure
File
larry
File
joe
66
files in the
directory
67
/home/larry# ls F /
bin etc/
install/ mnt/ root/ user/ var/
dev/ home/ lib/
proc/ tmp/ usr/ vmlinux/
The -F is an option. It displays file types.
68
69
70
passwd
With
sariyer:~> passwd
Changing password for dag.
Old password:
New passwd:
Retype new passwd:
sariyer:~>
71
pwd
pwd (present working directory) tells
you your current directory.
Most commands act, by default, on the
current directory. For instance, ls without any
parameters displays the contents of the
current directory.
cd
/usr/local/bin# cd ..
/usr/local#
73
mkdir
mkdir (make directory) is used to create a new
directory,
It can take more than one parameter, interpreting
each parameter as another directory to create.
rmdir
rmdir (remove directory) is used to remove a directory,
rmdir will refuse to remove a non-existant directory,
as well as a directory that has anything in it.
74
Moving Information
The primary commands for manipulating files
under unix are cp, mv, and rm. They stand for
copy, move, and remove, respectively.
cp
cp is used to copy contents of file1 to file2
cp file1 file2 (contents of file1 is copied to file2 in
the same directory)
cp folder1/file1 folder2 (contents of file1 is copied
to file1 in the inside of folder2 directory)
75
rm
rm is used to remove a file.
rm filename ---> removes a file named filename
mv
77
Operating on Files
In addition to the commands like cd, mv, and rm,
you learned in shell section, there are other
commands that just operate on files, but not the
data in them.
These include touch, chmod, du, and df.
All of these files dont care what is in the file.
78
other
s
owne
r
group
touch
touch will update the time stamps of the
files listed on the command line to the
current time.
If a file doesnt exist, touch will create it.
80
chmod
System Statistics
du
du (disk usage) will count the amount of disk space for a given directory,
and all its subdirectories take up on the disk.
df
uptime
who
Displays the current users of the system and when they logged in.
If given the parameters am i (as in: who am i), it displays the current
user.
83
cat
84
more
more is much more useful, and is the command that youll want to use when
browsing ASCII text files
more [-l] [+linenumber}] [file1 file2 ... fileN]
The only interesting option is l, which will tell more that you aren't
interested in treating the character Ctrl-L} as a ``new page'' character. more
will start on a specified linenumber.
head
head will display the first ten lines in the listed files.
head [- lines}] [l file1 file2 ... fileN]
Any numeric option will be taken as the number of
lines to print, so head -15 frog will print the first
fifteen lines of the file frog
85
tail
Like
file
file command attempts to identify what format
a particular file is written in.
file [file1 file2 ... fileN]
Since not all files have extentions or other easy to
identify marks, the file command performs some
rudimentary checks to try and figure out exactly what
it contains.
86
Information Commands
The commands that will alter a file, perform a certain
operation on the file, or display statistics on the file.
grep
grep is the generalized regular expression parser.
This is a fancy name for a utility which can only search a text file.
grep [-nvwx] [-number] { expression} [file1 file2 ... fileN]
87
wc
wc (word count) simply counts the number of
words, lines, and characters in the file(s).
wc [-clw] [file1 file2 ... fileN]
The three parameters, clw, stand for character, line,
and word respectively, and tell wc which of the three
to count.
spell
88
cmp
cmp compares two files.
The first must be listed on command line, while
the second is either listed as the second
parameter or is read in form standard input.
cmp is very simple, and merely tells you where
the two files first differ.
cmp file1 [ file2]
89
diff
One of the most complicated standard unix
commands is called diff.
The GNU version of diff has over twenty
command line options. It is a much more
powerful version of cmp and shows you what
the differences are instead of merely telling
you where the first one is.
diff file1 file2
90
91
tr
The translate characters command operates on
standard input-it doesnt accept a filename as a
parameter.
Instead, its two parameters are arbitrary strings.
It replaces all occurences of string1 in the input string2.
In addition to relatively simple commands such as tr
frog toad, tr can accept more complicated commands.
tr string1 string2
92
Editors
There are a lot of available editors under linux
operating system.
Amongst these vi is the most common one. One can
claim that every unix system has vi.
The other famous editor is emacs which has some
artificial intelligence properties.
The mailing facility pine uses the pico editor.
However, perhaps the simplest one of the editors is
joe.
joe has a lot of flexible features of emacs and pico
beside the user friendliness of the turbo type of
editors.
93