Programming Principles
Programming Principles
Algorithm
Structured English
1. Start
2. Take any two numbers
3. Add both the numbers together
4. Output the sum of numbers
5. End
Pseudocode
1. INPUT x, y
2. Z ¬ x + y
3. OUTPUT z
Flowchart
Start
Input x, y
z←x+y
Output z
Stop
Structure Diagram
Addition
Components
Variables
Constants
Operator
Expression
Incrementing
Totalling
Selection (Condition)
Formatting / Presentation
Sub Programs
Array
Variable
A ¬ 10 A
A ¬ 20 30
A ¬ 30
PRINT A
x ¬ -10.25 (Numeric variable)
z ¬ “24-C”
y ¬ “123”+1(1231) x ← 123+1
y←““
A ¬ 65
B ¬ 72
C ¬ 45
D¬C
Saad ¬ 65
Rohan ¬ 72
Sana ¬ 45
A←“ “
y ¬ 10
y¬y+1
x¬x+3
Marks ¬ 25.5
a ¬ 100
Name ¬ “Huzayn”
CONST a ¬ 100
Or
CONSTANT a ¬ 100
a ¬ 200
a ¬ 200
CONST Pi ¬ 3.14
Lahore-19
cOVID_19
4_WestStreet
Input5
Ahmed Mubeen
A+b
Operators
1. Assignment (¬)
2. Arithmetic (+, -, *, /, ^)
3. Comparison (=, >, <, >=, <=, <>, !=)
4. Logical (AND, OR, NOT)
Num1 ¬ 200
Num1 ¬ Num2
10^3
Num1 ¬ Num1 + 1
Expression
Count ¬ 10
Incrementing
Count ¬ 10
Totalling
Sum ← 0
Marks ¬ 78
INPUT Marks
A ¬ 58
OUTPUT “The Sum of Num1 and Num2 is”, Total (Alert Message)
OUTPUT Total
PRINT Total
IF <Condition/s> THEN
<Statement/s>
ELSE
<Statement/s>
END IF
Example
(False) OR (False)
OUTPUT Num1
ELSE
OUTPUT Num2
END IF
Nested IF
Discount = 50/100
ELSE
Discount = 50/100
ELSE
Discount = 25/100
END IF
END IF
END IF
Multiple IF
--------
ELSE
-----
END IF
----
ELSE
-----
END IF
Grades
INPUT Percent
OUTPUT “A*”
OUTPUT “A”
OUTPUT “B”
….
….
OUTPUT “U”
END IF
Case Of Statement
INPUT Percent
CASE OF Percent
OTHERWISE
OUTPUT “U”
ENDCASE
Remainder ¬ MOD(Slabs,20)
ELSE
CASE OF Slabs
ENDCASE
ELSE
[Calculation]
END IF
ELSE
END IF
FOR Students ¬ 1 TO 5
INPUT Num
IF …… THEN
OUTPUT ….
END IF
END FOR
OUTPUT Total
2. Meaningful identifiers
3. Letter Case
4. Remarks
// and …
For Counter ¬ 1 to 5
1. Unconditional Loop
INPUT Marks
END FOR
Avg ¬ Total/20
OUTPUT Avg
1 Count
2 Count
3 Count
Sum ¬ 0
FOR Count ¬ 1 TO 15
INPUT Marks
ENDFOR
Avg ¬ Sum / 15
OUTPUT Avg
Sum
70
130
Conditional Loop
1. Pre-condition
2. Post-condition
1. Pre-condition
Output
2. Post-condition
Num ¬ 0
REPEAT
Num ¬ Num + 1
PRINT Num
Example
// marks
Sum ¬ 0
Highest ¬0
Lowest ¬ 999999
Above_80 ¬ 0
Avg ¬ 0
Highest_Name ¬ “ “
Lowest_Name ¬ “ “
FOR Students ¬ 1 TO 23
INPUT Marks
OR
INPUT “Enter Marks:”, Marks
Highest ¬ Marks
Highest_Name ¬ St_Name
END IF
Lowest ¬ Marks
Lowest_Name ¬ St_Name
END IF
Above_80 ¬ Above_80 + 1
END IF
ENDFOR
Avg ¬ Sum/23
Q. Input Students’ marks (that must be from 0 to 100), calculate average marks
obtained by 10 students.
FOR Students ¬ 1 TO 10
REPEAT
INPUT Marks
END IF
END FOR
AVG ¬ Sum / 10
OUTPUT Avg
Presence Check
REPEAT
Marks[1]
Marks[2]
Marks[3]
Marks[4]
Marks[5]
..
..
Marks[25]
INPUT Marks[Counter]
NEXT
OUTPUT Total
65, 55
Temp = 65
Marks[Count]= 55
Marks[Count+1] = 65
FOR Count ¬ 1 TO 15
Temp ¬ Marks[Count]
Marks[Count] ¬ Marks[Count+1]
Marks[Count+1] ¬ Temp
NEXT
2-Dimension Array
Total ¬ 0
Avg ¬ 0
Grand_Total ¬ 0
Agg_Avg ¬ 0
FOR Students ¬ 1 TO 5
Total ¬ 0
FOR Subjects ¬ 1 TO 3
NEXT Subjects
Avg ¬ Total /3
OUTPUT Avg
NEXT Students
Marks[1,2]
Marks[1,3]
Marks[2,1]
Stepwise refinement
Sub-Programs
1. Procedure
2. Function
Scope of Variable
1. Local
2. Global
Num1 ¬ 100
Procedure Abc
Num ¬ Num + 1
OUTPUT Num
End Procedure
Function Xyz
Num ¬ Num + 2
OUTPUT Num
End Function
PROCEDURE Addition(Num1: Real, Num2: Integer)
OUTPUT New
END PROCEDURE
New ¬ 100
Sq ¬ Num * Num
RETURN Sq
OUTPUT New
END FUNCTION
Main Program
INPUT X, Y
CALL Addition(X, Y)
OUTPUT Sq_Value
OUTPUT New
Data Types and structure
Record Data Type
TYPE BooksType
END TYPE
BookArray[2].BookPrice ¬ 1450000
Text File
Write / Append
Text File
Program Code
Read
CLOSEFILE “Project.txt”
Appending data to a Text File
CLOSEFILE “Project.txt”
CLOSEFILE “Project.txt”
TYPE UserRecord
END TYPE
(ii)
Length(“Jamal”,3) = Jam
Right(“Jamal”, 3) = mal
Mid(“Jamal”, 2, 4) = amal
UCASE(“Abdullah”) = ABDULLAH
LCASE(“Javed”) = javed
CInt(“23”) = 23
CInt(23.6) = 24
END PROCEDURE
INPUT A, B
CALL Square(A, B)
By Reference
PROCEDURE Square(By Reference Num1: Integer, By Reference Num2: Integer)
END PROCEDURE
INPUT A, B
CALL Square(A, B)
Q2.
INPUT UserID
ELSE
END IF
ELSE
END IF
Q1.
FOR Ounces ¬ 1 TO 30
END FOR
Q2.
IF LENGTH(UserID) = 7 THEN
IF UPPER(LEFT(UserID, 3)) > “A” AND UPPER(LEFT(UserID, 3)) < “Z” THEN
ELSE
END IF
ELSE
END IF
ELSE
END IF
Q3.
PROCEDURE OutputTimesTable(n : Integer)
FOR Count ¬ 1 TO 10
ENDFOR
END PROCEDURE
CALL OutputTimesTable(Num)
Q4.
IF x MOD y = 0 THEN
Result ¬ True
ELSE
Result ¬ False
END IF
RETURN Result
END FUNCTION
Main Program
INPUT a, b
OUTPUT Answer
Q6.
Valid ¬ False
IF LENGTH(RegNo) = 7 THEN
IF UPPER(LEFT(RegNo, 3)) > “A” AND UPPER(LEFT(RegNo, 3)) < “Z” THEN
Valid ¬ True
RETURN Valid
ELSE
RETURN Valid
END IF
END IF
END IF
END IF
END IF
END IF
END IF
(Software Development)
1. Problem identification/definition
2. Analysis
3. Design
4. Development
5. Testing
6. Implementation
7. Maintenance
Data Testing
1. Alpha Testing
2. Beta Testing
1. Alpha Testing
a. White-box testing (With source code) Dry running, Stub testing
b. Black-box testing (Without source code)
i. Normal testing 10, 50
ii. Abnormal testing (Erroneous testing) -234, 7654345, abc
iii. Extreme (border/margin testing) 0, -1, 100
Types of errors
1. Corrective
2. Perfective
3. Adaptive
Structure Charts
Start
ON OFF Press up
Press down
INPUT Index
Search number: 40
1. 6
2. 9
3. 12
4. 34
5. 39
6. 65
7. 97
8. 120
9. 233
INPUT Search_Number
First ¬ 1
Last ¬ Max
Found ¬ False
EndList ¬ False
Mid ¬ (First+Last)/2
Found ¬ True
ELSE
ELSE
First ¬ Mid + 1
ELSE
Last ¬ Mid – 1
END IF
END IF
END IF
END WHILE
ELSE
END IF
Object Oriented Programming (OOP) (Using Abstraction)
Adv. Of using Classes
1. Encapsulation
2. Reusability
3. Data Security
Parts of a Class
1. Attributes (Properties)
2. Methods (Procedures / Functions)
Defining a class
Class Product
Price ¬ Unit_Price
END PROCEDURE
End Class
Object of a Class
CALL Obj_Product.Update_Price(100)
Features of a class
1. Inheritance
2. Polymorphism
Class Human
IQ: Real
Age: Integer
Eye_Colour: String
………
END PROCEDURE
End Class
Sub Class
Class Employee
Inherits Human
EmpID: Integer
………
END PROCEDURE
End Class
Pseudocode Java Visual Basic
DECLARE Num: Integer Int Num; DIM Num AS Integer
DECLARE Name: String String Name; DIM Name AS String
Count ¬ Count + 1 Count = Count + 1; Count = Count + 1
Count ++;
Total ¬ Total + Num Total = Total + Num; Total = Total + Num
OUTPUT Sum System.out.print(Sum); Console.writeline(Sum)
IF A > B THEN If (A > B); IF A > B THEN
OUTPUT “A is Bigger” { Console.Writeline(“A is
END IF system.out.println(“A is Bigger”
Bigger”); END IF
}
IF A > B THEN If (A > B); IF A > B THEN
OUTPUT “A is Bigger” { Console.Writeline(“A is
ELSE system.out.println(“A is Bigger”
OUTPUT “A is Bigger”; ELSE
smaller” } Console.writeline(“A is
END IF Else; smaller”
{ END IF
system.out.println(“A is
Smaller”;
}