Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
9 views25 pages

C++ Lecture One

The document outlines the fundamentals of programming and problem-solving processes, detailing the phases of analyzing, implementing, and maintaining algorithms. It emphasizes the importance of designing algorithms through flowcharts and pseudo-code, as well as the significance of verifying and debugging code. Additionally, it discusses common types of errors encountered in programming, including syntax, run-time, and logic errors.

Uploaded by

Ahmed Al-nasheri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views25 pages

C++ Lecture One

The document outlines the fundamentals of programming and problem-solving processes, detailing the phases of analyzing, implementing, and maintaining algorithms. It emphasizes the importance of designing algorithms through flowcharts and pseudo-code, as well as the significance of verifying and debugging code. Additionally, it discusses common types of errors encountered in programming, including syntax, run-time, and logic errors.

Uploaded by

Ahmed Al-nasheri
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 25

dfdfdfdfdfdfddfdfdf

Programming
Fundamentals

Problem Solving
Dr. Ahmed Alnasheri 05/28/2025

Programming Fundamentals (Lecture One) 1


Problem Solving

 Programming is a process of problem solv


(Problem Solution by computer)

 Algorithm ?
A.Step-by-step problem-solving process
B.Solution achieved in finite amount of time

Programming Fundamentals (Lecture One) 2


Problem Solving Process
•Phase 1 - Analyze the problem
- Outline the problem and its requirements
- Design (algorithm) to solve the problem ( Flow chart, pseudo
code)

- Algorithm tracing
•Phase 2 - Implement the algorithm
- Implement the algorithm in code (in Programming Language 
Program)

- Verify that the algorithm works


•Phase 3 - Maintenance
- Use and modify the program if the requirements
changes
Programming Fundamentals (Lecture One) 3
Analyze the Problem (1)
Outline the problem and its requirements

• Understand the problem


• Understand problem requirements
 Does program require user interaction?
 Does program manipulate data?
 What is the output?
 are all possible circumstances handled?
• If the problem is complex, divide it into
subproblems
 Analyze each subproblem as above

Programming Fundamentals (Lecture One) 4


Analyze the Problem (1)
Design Algorithm
1. Flowcharts
2. pseudo-code

Programming Fundamentals (Lecture One) 5


Flowchart
• A Flowchart is
 An algorithm graphical representation.
 Written as a combination of the following graphical
notations:

Programming Fundamentals (Lecture One) 6


Pseudo-code
• Pseudo-code:
<Algorithm name>
// input ? The comment lines “//”
// function?
// Output?
Begin
<data definition>
<actions>
End

Programming Fundamentals (Lecture One) 7


Analyze the Problem (1)

Algorithm Tracing
 Draw flowchart
 Find all possible paths
 Check each path with appropriate input data
 Observed Outputs not conform to the expected ones 
error in the algorithm.

Programming Fundamentals (Lecture One) 8


Analyze the Problem (2)
Problem Example.
Convert a student mark from decimal mode to ABC mode.

Understand problem requirements


 Is the problem statement complete and unambiguous?
 Does program require user interaction? Input the mark
 Does program manipulate data?  covert mark Control
Requirements (IF statement)
 What is the output? The mark converted to A or B or C or error
 Is there subproblem? No

Programming Fundamentals (Lecture One) 9


Analyze the Problem (2)
Efficiency:
- an algorithm may work correctly but be inefficient – by taking
more time and using more resources than required to
solve the problem.
- becomes more important for larger programs.

Programming Fundamentals (Lecture One) 10


Analyze the Problem (3)
Design Algorithm  Algorithm Discovery
• To discover an algorithm is to solve the problem!
1. Working backwards (modification of an old solution)
Example: Min of a and b is known. Deduce Max a and b.
2. Look for a related problem that has been solved before (similar
solutions reuse)
The precedent algorithm of mark conversion is for single student. It
may be generalized to many students
3. Stepwise Refinement (new solution)
 Break the problem into several sub-problems
 Solve each subproblem separately
 Produces a modular structure

Programming Fundamentals (Lecture One) 11


Analyze the Problem (3)
•Example. Making tea. Suppose we have a robot
which carries out household tasks. We wish to
program the robot to make a cup of tea. An initial
attempt at an algorithm might be:

1. Put tea leaves in pot


2. Boil water
3. Add water to pot
4. Wait 5 minutes
5. Pour tea into cup

Programming Fundamentals (Lecture One) 12


Design Algorithm  Algorithm Discovery Strategies 
Stepwise Refinement

Programming Fundamentals (Lecture One) 13


Analyze the Problem(3)
•the designer must know when to stop refining.
•In this example the instruction Switch on kettle is
directly executable by the robot, but that Fill kettle
with water is not.
•Experience will tell us when a step is directly
implementable or not.
•The above algorithm consists of a sequence of
steps, executed exactly once and in order

Programming Fundamentals (Lecture One) 14


Analyze the Problem(3)
•Control requirements: while
Another common requirement is the need for
iteration.
— Example. Repeat the mark conversion for a
class room of 30 students. Each student having a
unique student number from 1 to 30.

Programming Fundamentals (Lecture One) 15


Implement the algorithm
(Coding)
•After testing your algorithm, you can code it
in any programming language.

•In our lab, we are going to use C++


language.

Programming Fundamentals (Lecture One) 16


C++ Language Elements
• The general form of a C++ program

// File: filename
// Program description
 Computer Stage:
# include compiler directives
after completing the
void main ( )
program, the computer
{ must do the following:
declarations section - Compilation:
executable statement - Execution:
section
}

Programming Fundamentals (Lecture One) 17


Stages of Compilation
o Performed by a program called the compiler
o Translates the preprocessor-modified source code
into object code (machine code)
o Checks for syntax errors and warnings
o Saves the object code to a disk file
o If any compiler errors are received, no object code file
will be generated.
o An object code file will be generated if only warnings,
not errors, are received.

Programming Fundamentals (Lecture One) 18


Compiler converts
human readable
language to a
language which is
understandable by
the operating
system/hardware

Examples of C/C+
+ compilers of
today:
Visual C++
GCC/G++
DJGPP (open
source for windows
like GCC)
Borland C
Turbo (obsolete
and not
Programming Fundamentals (Lecture One) 19
Execution

• when the program become don’t has errors, the


computer execute it to produce the ……
output.

Programming Fundamentals (Lecture One) 20


Implement the algorithm
Verify that the algorithm works  source of
errors
• Many errors made in:
- analyzing the problem,
- developing an algorithm, and/or
- coding the algorithm

Programming Fundamentals (Lecture One) 21


Implement the algorithm

• Errors are of three types:


. syntax errors
. run-time errors
. logic errors
• Syntax errors: detected by the C++ compiler
. source code does not conform to one or more of C++’s
grammar rules
. examples of syntax errors: undeclared variable, …
• Often one mistake leads to multiple error messages –
can be confusing

Programming Fundamentals (Lecture One) 22


Implement the algorithm
• Run-time errors. detected and displayed by computer during
execution.
- Occur when program directs computer to perform illegal
operation. Example: int x=y/0;
- will stop program execution and display message
• Logic errors.
- caused by faulty algorithm
- sign of error: incorrect program output
- cure: thorough testing and comparison with expected
results
A logic error is referred to as a bug, so finding logic errors is
called debugging.

Programming Fundamentals (Lecture One) 23


Conclusions

Programming Fundamentals (Lecture One) 24


The End

Programming Fundamentals (Lecture One) 25

You might also like