Problem solving using computers - Chapter 1

PROBLEM-SOLVING
USING COMPUTERS
- CHAPTER 1
PROBLEM
SOLVING
USING
COMPUTERS
INTRODUCTION
Problem-solving is transforming the description of a
problem into a solution by using our knowledge of the
problem domain and relying on our ability to select and
use appropriate problem-solving strategies, techniques,
and tools.
When we write a program, we are actually writing
instructions for the computer to solve something for us.
A COMPUTER IS A TOOL TO SOLVE A PROBLEM
PROGRAMMING IS A PROBLEM-SOLVING ACTIVITY
PROBLEM DEFINITION (Problem statement)
1
PROBLEM ANALYSIS (Identify Input, Output,
Constraints, Formulas to be used (if any)
2
COMPILATION & EXECUTION
4 CODING
3
DEBUGGING & TESTING
5
DOCUMENTATION
6
STEPS IN PROBLEM-
SOLVING
7
PROBLEM APPROACH (Algorithm, Pseudo
code, Flowchart)
A set of finite rules or
instructions to be followed in
calculations or other problem-
solving operations
ALGORITHM
Write down the steps for making peanut butter and jelly sandwich
TASK
Ingredients - Bread, Peanut butter, Jelly
Step 1: Start preparation
Step 2: Take 2 slices of bread.
Step 3: Apply peanut butter on one side of a slice.
Step 3: Apply jelly on one side of the other slice.
Step 4: Press both slices of bread together.
Step 5: Serve
CONCLUSION: Algorithm is step-wise idea of what is to be done to
get a desired output from the given input
Algorithm to add 3 numbers and print their sum
EXAMPLE
Variables - n1 | n2 | n3 | sum
START
Declare 3 integer variables n1, n2 and n3.
Take the three numbers, to be added, as
inputs in variables n1, n2, and n3 respectively.
Declare an integer variable sum to store the
resultant sum of the 3 numbers.
Add the 3 numbers and store the result in the
variable sum. (n1 + n2 + n3)
Print the value of the variable sum
END
1.
2.
3.
4.
5.
6.
7.
It should terminate after a finite time.
It should produce at least one output.
It should take zero or more input.
It should be deterministic means giving the same
output for the same input case.
Every step in the algorithm must be effective i.e.
every step should do some work.
PROPERTIES OF ALGORITHM
Problem solving using computers - Chapter 1
CHECK FOR LANGUAGE INDEPENDENCY
// C PROGRAM
#include <stdio.h>
int main()
{
int n1, n2, n3;
scanf("%d %d %d",&n1,&n2,&n3);
int sum;
sum = n1+n2+n3;
printf("%d",sum);
return 0;
}
// PYTHON PROGRAM
if __name__ == "__main__":
n1 = n2 = n3 = 0
n1 = int(input())
n2 = int(input())
n3 = int(input())
sum = 0
sum = n1+n2+n3
print(sum)
// PYTHON PROGRAM
if __name__ == "__main__":
n1 = int(input())
n2 = int(input())
n3 = int(input())
sum = n1+n2+n3
print(sum)
FLOWCHART
PSEUDO-CODE
HOW TO EXPRESS AN ALGORITHM?
FLOWCHART
A flowchart is a graphical representation of an
algorithm. Programmers often use it as a program-
planning tool to solve a problem.
It makes use of symbols that are connected among them
to indicate the flow of information and processing.
The process of drawing a flowchart for an algorithm is
known as “flowcharting”.
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Draw a flowchart to add 3 numbers and print their sum
EXAMPLE
Refer the below algorithm
START
Declare 3 integer variables n1, n2 and n3.
Take the three numbers, to be added, as
inputs in variables n1, n2, and n3 respectively.
Declare an integer variable sum to store the
resultant sum of the 3 numbers.
Add the 3 numbers and store the result in the
variable sum. (n1 + n2 + n3)
Print the value of the variable sum
END
1.
2.
3.
4.
5.
6.
7.
Problem solving using computers - Chapter 1
PSEUDO-CODE
The pseudocode is an informal way of writing a
program for better human understanding.
It is written in simple English, making the complex
program easier to understand.
Pseudocode cannot be compiled or interpreted.
It is a methodology that allows the programmer to
represent the implementation of an algorithm.
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Write only one statement per line
Capitalize initial keyword
Indent to show hierarchy
End multiline structures
Keep statements language independent
It gives us the sketch of the program before actual
coding
Use the naming domain of the problem, not that of
the implementation. For instance: “Append the last
name to the first name” instead of “name = first+
last.”
Keep it simple, concise and readable.
RULES OF PSEUDO-CODE
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
Problem solving using computers - Chapter 1
EXAMPLE 2: WRITE THE PSEUDO CODE TO FIND THE GREATEST OF TWO NUMBERS
BEGIN
READ A,B
IF (A>B) THEN
DISPLAY a is greater
ELSE
DISPLAY b is greater
END IF
END
Problem solving using computers - Chapter 1
BRUTE FORCE ALGORITHM
Brute Force Algorithms are exactly what they sound like –
straightforward methods of solving a problem that relies on
sheer computing power and trying every possibility rather
than advanced techniques to improve efficiency.
Brute Force algorithm is a typical problem-solving
technique where the possible solution for a problem is
uncovered by checking each answer one by one, by
determining whether the result satisfies the statement of a
problem or not.
Bubble sort is one of the easiest and brute force sorting
algorithm.
RECURSIVE ALGORITHM
A recursive algorithm calls itself with smaller input values
and returns the result for the current input by carrying out
basic operations on the returned value for the smaller
input.
A recursive algorithm is an algorithm that calls itself with
"smaller (or simpler)" input values, and which obtains the
result for the current input by applying simple operations
to the returned value for the smaller (or simpler) input.
Generation of factorial, Fibonacci number series are
examples of recursive algorithms.
GREEDY ALGORITHM
Greedy is an algorithmic paradigm that builds up a solution
piece by piece, always choosing the next piece that offers
the most obvious and immediate benefit. So the problems
where choosing locally optimal also leads to the global
solution being the best fit for Greedy.
For example)
Fractional Knapsack Problem
DYNAMIC ALGORITHM
Dynamic Programming is a technique in computer
programming that helps to efficiently solve a class of
problems that have overlapping subproblems and optimal
substructure properties.
The main use of dynamic programming is to solve
optimization problems. Here, optimization problems mean
that when we are trying to find out the minimum or the
maximum solution to a problem. Dynamic programming
guarantees finding the optimal solution to a problem if the
solution exists.
A top-down approach is about breaking down a system into the
subsystems that make it up. The process can be repeated to
break down subsystems into low-level elements like classes and
methods. This approach can be applied to all levels from high-
level system architecture to low-level functionality
implementation, just to remember to start from the top. It
doesn’t necessarily always be the absolute top.
Top-Down Model is followed by structural programming
languages like C, Fortran etc.
TOP DOWN APPROACH
Problem solving using computers - Chapter 1
In this design, individual parts of the system are specified in
detail. The parts are linked to form larger components, which
are in turn linked until a complete system is formed.
Object-oriented language such as C++, Python, or Java uses a
bottom-up approach where each object is identified first.
BOTTOM UP APPROACH
Problem solving using computers - Chapter 1
So simple. It's because you first defines a class and it's functions. Then you initialise
an object of that class and calls functions as per the need. Now, though process looks
like to-bottom but the execution takes place in bottom-up approach. While executing,
execution flow find object initialisation first and then it looks up for declared class
and then functions.
WHY DO OOPS FOLLOW THE BOTTOM-UP APPROACH?
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
obj1 = Person("Harry", 36)
obj2 = Person("Styles", 35)
print(obj1.name)
print(obj1.age)
print("------")
print(obj2.name)
print(obj2.age)
IS PYTHON AN OBJECT-ORIENTED PROGRAMMING
LANGUAGE?
Python is both procedural and has object-oriented features, as well as some aspects of
functional programming. That is what is meant when one says that Python is a multi-
paradigm.
Python are multi-paradigm, you can write programs or libraries that are largely
procedural, object-oriented, or functional in all of these languages. It depends on
what you mean by functional. Python does have some features of a functional
language.
OOP's concepts like, Classes,Encapsulation,Polymorphism, Inheritance etc.. in Python
makes it as a object oriented programming language.
IS PYTHON AN OBJECT-ORIENTED PROGRAMMING
LANGUAGE?
TIME COMPLEXITY
SPACE COMPLEXITY
MEASURES FOR THE EFFICIENCY OF AN ALGORITHM
SWAP TWO NUMBERS - METHOD 1
(Using third variable)
x = 10
y = 50
# Swapping of two variables
# Using third variable
temp = x
x = y
y = temp
print("Value of x:", x)
print("Value of y:", y)
x = 10
y = 50
# Swapping of two variables
# without using third variable
x, y = y, x
print("Value of x:", x)
print("Value of y:", y)
SWAP TWO NUMBERS - METHOD 2
(Using comma method)
NOW IT'S TIME TO
PRACTICE
PROBLEM STATEMENT - Airport security officials have
confiscated several item of the passengers at the security check
point. All the items have been dumped into a huge box (array). Each
item possesses a certain amount of risk[0,1,2]. Here, the risk
severity of the items represent an array[] of N number of integer
values. The task here is to sort the items based on their levels of
risk in the array. The risk values range from 0 to 2.
Example :
Input :
7 -> Value of N
[1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each
element is separated by a new line.
Output :
0 0 0 1 1 2 2 -> Element after sorting based on risk severity
Explanation:
In the above example, the input is an array of size N consisting of
only 0’s, 1’s, and 2s. The output is a sorted array from 0 to 2 based
on risk severity.
mins
n = int(input())
arr = []
for i in range(n):
arr.append(int(input()))
arr.sort()
for i in range(n):
print(arr[i], end = " ")
PSEUDOCODE -
BEGIN
READ n
INITIALIZE list arr[]
FOR i <-- 0 to n-1
APPEND elements to the list
SORT the array list arr[]
FOR i <-- 0 to n-1
PRINT elements of the array list
END
Thank you!
1 de 49

Recomendados

Problem solving using computers - Unit 1 - Study material por
Problem solving using computers - Unit 1 - Study materialProblem solving using computers - Unit 1 - Study material
Problem solving using computers - Unit 1 - Study materialTo Sum It Up
11 visualizações12 slides
3 algorithm-and-flowchart por
3 algorithm-and-flowchart3 algorithm-and-flowchart
3 algorithm-and-flowchartRohit Shrivastava
15.1K visualizações37 slides
Algorithms and Flowcharts por
Algorithms and FlowchartsAlgorithms and Flowcharts
Algorithms and FlowchartsDeva Singh
310.1K visualizações31 slides
Daa chapter 1 por
Daa chapter 1Daa chapter 1
Daa chapter 1B.Kirron Reddi
90 visualizações22 slides
UNIT-1-PPTS-DAA.ppt por
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptracha49
384 visualizações87 slides
UNIT-1-PPTS-DAA.ppt por
UNIT-1-PPTS-DAA.pptUNIT-1-PPTS-DAA.ppt
UNIT-1-PPTS-DAA.pptSamridhiGulati4
6 visualizações87 slides

Mais conteúdo relacionado

Similar a Problem solving using computers - Chapter 1

Algorithmsandflowcharts1 por
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1Emmanuel Alimpolos
2.9K visualizações32 slides
DAA-Unit1.pptx por
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptxNishaS88
20 visualizações65 slides
Algorithmsandflowcharts1 por
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1ወዲ ህዝቢ
41 visualizações32 slides
Algorithmsandflowcharts1 por
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1rajnidhiman
2.5K visualizações32 slides
UNIT-2-PPTS-DAA.ppt por
UNIT-2-PPTS-DAA.pptUNIT-2-PPTS-DAA.ppt
UNIT-2-PPTS-DAA.pptGovindUpadhyay25
118 visualizações82 slides
Lecture 01-2.ppt por
Lecture 01-2.pptLecture 01-2.ppt
Lecture 01-2.pptRaoHamza24
4 visualizações24 slides

Similar a Problem solving using computers - Chapter 1 (20)

Algorithmsandflowcharts1 por Emmanuel Alimpolos
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1
Emmanuel Alimpolos2.9K visualizações
DAA-Unit1.pptx por NishaS88
DAA-Unit1.pptxDAA-Unit1.pptx
DAA-Unit1.pptx
NishaS8820 visualizações
Algorithmsandflowcharts1 por ወዲ ህዝቢ
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1
ወዲ ህዝቢ41 visualizações
Algorithmsandflowcharts1 por rajnidhiman
Algorithmsandflowcharts1Algorithmsandflowcharts1
Algorithmsandflowcharts1
rajnidhiman2.5K visualizações
UNIT-2-PPTS-DAA.ppt por GovindUpadhyay25
UNIT-2-PPTS-DAA.pptUNIT-2-PPTS-DAA.ppt
UNIT-2-PPTS-DAA.ppt
GovindUpadhyay25118 visualizações
Lecture 01-2.ppt por RaoHamza24
Lecture 01-2.pptLecture 01-2.ppt
Lecture 01-2.ppt
RaoHamza244 visualizações
As Level Computer Science Book -2 por DIGDARSHAN KUNWAR
As Level Computer Science  Book -2As Level Computer Science  Book -2
As Level Computer Science Book -2
DIGDARSHAN KUNWAR1.3K visualizações
01 Algorithms And Flowcharts.ppt por FerdieBalang
01 Algorithms And Flowcharts.ppt01 Algorithms And Flowcharts.ppt
01 Algorithms And Flowcharts.ppt
FerdieBalang55 visualizações
Create and analyse programs por Dr. C.V. Suresh Babu
Create and analyse programsCreate and analyse programs
Create and analyse programs
Dr. C.V. Suresh Babu440 visualizações
ALGO.ppt por PidoonEsm
ALGO.pptALGO.ppt
ALGO.ppt
PidoonEsm4 visualizações
maXbox Starter 36 Software Testing por Max Kleiner
maXbox Starter 36 Software TestingmaXbox Starter 36 Software Testing
maXbox Starter 36 Software Testing
Max Kleiner695 visualizações
Jeremiah Yancy - Objectives for Software design and testing por Jeremiah Yancy
Jeremiah Yancy - Objectives for Software design and testingJeremiah Yancy - Objectives for Software design and testing
Jeremiah Yancy - Objectives for Software design and testing
Jeremiah Yancy40 visualizações
TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS por Tanya Makkar
TIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMSTIME EXECUTION   OF  DIFFERENT SORTED ALGORITHMS
TIME EXECUTION OF DIFFERENT SORTED ALGORITHMS
Tanya Makkar223 visualizações
Analysis and Design of Algorithms notes por Prof. Dr. K. Adisesha
Analysis and Design of Algorithms  notesAnalysis and Design of Algorithms  notes
Analysis and Design of Algorithms notes
Prof. Dr. K. Adisesha441 visualizações
VCE Unit 01 (2).pptx por skilljiolms
VCE Unit 01 (2).pptxVCE Unit 01 (2).pptx
VCE Unit 01 (2).pptx
skilljiolms383 visualizações
Java conceptual learning material por ArthyR3
Java conceptual learning materialJava conceptual learning material
Java conceptual learning material
ArthyR3288 visualizações
procedures and arrays por DivyaR219113
procedures and arraysprocedures and arrays
procedures and arrays
DivyaR2191138 visualizações
Week1 programming challenges por Dhanu Srikar
Week1 programming challengesWeek1 programming challenges
Week1 programming challenges
Dhanu Srikar237 visualizações

Mais de To Sum It Up

DSA Question Bank por
DSA Question BankDSA Question Bank
DSA Question BankTo Sum It Up
11 visualizações17 slides
Web API - Overview por
Web API - OverviewWeb API - Overview
Web API - OverviewTo Sum It Up
3 visualizações3 slides
CSS Overview por
CSS OverviewCSS Overview
CSS OverviewTo Sum It Up
2 visualizações3 slides
HTML Overview por
HTML OverviewHTML Overview
HTML OverviewTo Sum It Up
2 visualizações4 slides
EM Algorithm por
EM AlgorithmEM Algorithm
EM AlgorithmTo Sum It Up
24 visualizações24 slides
User story mapping por
User story mappingUser story mapping
User story mappingTo Sum It Up
7 visualizações4 slides

Mais de To Sum It Up(16)

DSA Question Bank por To Sum It Up
DSA Question BankDSA Question Bank
DSA Question Bank
To Sum It Up11 visualizações
Web API - Overview por To Sum It Up
Web API - OverviewWeb API - Overview
Web API - Overview
To Sum It Up3 visualizações
CSS Overview por To Sum It Up
CSS OverviewCSS Overview
CSS Overview
To Sum It Up2 visualizações
HTML Overview por To Sum It Up
HTML OverviewHTML Overview
HTML Overview
To Sum It Up2 visualizações
EM Algorithm por To Sum It Up
EM AlgorithmEM Algorithm
EM Algorithm
To Sum It Up24 visualizações
User story mapping por To Sum It Up
User story mappingUser story mapping
User story mapping
To Sum It Up7 visualizações
User stories por To Sum It Up
User storiesUser stories
User stories
To Sum It Up16 visualizações
Quality Circle | Case Study on Self Esteem | Team Opus Geeks.pdf por To Sum It Up
Quality Circle | Case Study on Self Esteem | Team Opus Geeks.pdfQuality Circle | Case Study on Self Esteem | Team Opus Geeks.pdf
Quality Circle | Case Study on Self Esteem | Team Opus Geeks.pdf
To Sum It Up17 visualizações
Multimedia Content and Content Acquisition por To Sum It Up
Multimedia Content and Content AcquisitionMultimedia Content and Content Acquisition
Multimedia Content and Content Acquisition
To Sum It Up20 visualizações
PHP Arrays_Introduction por To Sum It Up
PHP Arrays_IntroductionPHP Arrays_Introduction
PHP Arrays_Introduction
To Sum It Up9 visualizações
System Calls - Introduction por To Sum It Up
System Calls - IntroductionSystem Calls - Introduction
System Calls - Introduction
To Sum It Up26 visualizações
Leadership por To Sum It Up
LeadershipLeadership
Leadership
To Sum It Up16 visualizações
Graphic Designing - Introduction por To Sum It Up
Graphic Designing - IntroductionGraphic Designing - Introduction
Graphic Designing - Introduction
To Sum It Up64 visualizações
Programming The Basic Computer por To Sum It Up
Programming The Basic ComputerProgramming The Basic Computer
Programming The Basic Computer
To Sum It Up10 visualizações
SQL | DML por To Sum It Up
SQL | DMLSQL | DML
SQL | DML
To Sum It Up62 visualizações
Ozone in wastewater treatment por To Sum It Up
Ozone in wastewater treatmentOzone in wastewater treatment
Ozone in wastewater treatment
To Sum It Up48 visualizações

Último

unit 1.pptx por
unit 1.pptxunit 1.pptx
unit 1.pptxrrbornarecm
5 visualizações53 slides
Ansari: Practical experiences with an LLM-based Islamic Assistant por
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic AssistantM Waleed Kadous
11 visualizações29 slides
Global airborne satcom market report por
Global airborne satcom market reportGlobal airborne satcom market report
Global airborne satcom market reportdefencereport78
7 visualizações13 slides
Plant Design Report-Oil Refinery.pdf por
Plant Design Report-Oil Refinery.pdfPlant Design Report-Oil Refinery.pdf
Plant Design Report-Oil Refinery.pdfSafeen Yaseen Ja'far
9 visualizações10 slides
REACTJS.pdf por
REACTJS.pdfREACTJS.pdf
REACTJS.pdfArthyR3
37 visualizações16 slides
Web Dev Session 1.pptx por
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptxVedVekhande
20 visualizações22 slides

Último(20)

unit 1.pptx por rrbornarecm
unit 1.pptxunit 1.pptx
unit 1.pptx
rrbornarecm5 visualizações
Ansari: Practical experiences with an LLM-based Islamic Assistant por M Waleed Kadous
Ansari: Practical experiences with an LLM-based Islamic AssistantAnsari: Practical experiences with an LLM-based Islamic Assistant
Ansari: Practical experiences with an LLM-based Islamic Assistant
M Waleed Kadous11 visualizações
Global airborne satcom market report por defencereport78
Global airborne satcom market reportGlobal airborne satcom market report
Global airborne satcom market report
defencereport787 visualizações
Plant Design Report-Oil Refinery.pdf por Safeen Yaseen Ja'far
Plant Design Report-Oil Refinery.pdfPlant Design Report-Oil Refinery.pdf
Plant Design Report-Oil Refinery.pdf
Safeen Yaseen Ja'far9 visualizações
REACTJS.pdf por ArthyR3
REACTJS.pdfREACTJS.pdf
REACTJS.pdf
ArthyR337 visualizações
Web Dev Session 1.pptx por VedVekhande
Web Dev Session 1.pptxWeb Dev Session 1.pptx
Web Dev Session 1.pptx
VedVekhande20 visualizações
DESIGN OF SPRINGS-UNIT4.pptx por gopinathcreddy
DESIGN OF SPRINGS-UNIT4.pptxDESIGN OF SPRINGS-UNIT4.pptx
DESIGN OF SPRINGS-UNIT4.pptx
gopinathcreddy21 visualizações
GDSC Mikroskil Members Onboarding 2023.pdf por gdscmikroskil
GDSC Mikroskil Members Onboarding 2023.pdfGDSC Mikroskil Members Onboarding 2023.pdf
GDSC Mikroskil Members Onboarding 2023.pdf
gdscmikroskil68 visualizações
CPM Schedule Float.pptx por Mathew Joseph
CPM Schedule Float.pptxCPM Schedule Float.pptx
CPM Schedule Float.pptx
Mathew Joseph6 visualizações
Integrating Sustainable Development Goals (SDGs) in School Education por SheetalTank1
Integrating Sustainable Development Goals (SDGs) in School EducationIntegrating Sustainable Development Goals (SDGs) in School Education
Integrating Sustainable Development Goals (SDGs) in School Education
SheetalTank111 visualizações
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf por AlhamduKure
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdfASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
ASSIGNMENTS ON FUZZY LOGIC IN TRAFFIC FLOW.pdf
AlhamduKure10 visualizações
AWS A5.18 A5.18M-2021.pdf por ThinhNguyen455948
AWS A5.18 A5.18M-2021.pdfAWS A5.18 A5.18M-2021.pdf
AWS A5.18 A5.18M-2021.pdf
ThinhNguyen4559488 visualizações
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth por Innomantra
BCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for GrowthBCIC - Manufacturing Conclave -  Technology-Driven Manufacturing for Growth
BCIC - Manufacturing Conclave - Technology-Driven Manufacturing for Growth
Innomantra 20 visualizações
Unlocking Research Visibility.pdf por KhatirNaima
Unlocking Research Visibility.pdfUnlocking Research Visibility.pdf
Unlocking Research Visibility.pdf
KhatirNaima11 visualizações
dummy.pptx por JamesLamp
dummy.pptxdummy.pptx
dummy.pptx
JamesLamp7 visualizações
Proposal Presentation.pptx por keytonallamon
Proposal Presentation.pptxProposal Presentation.pptx
Proposal Presentation.pptx
keytonallamon76 visualizações
Créativité dans le design mécanique à l’aide de l’optimisation topologique por LIEGE CREATIVE
Créativité dans le design mécanique à l’aide de l’optimisation topologiqueCréativité dans le design mécanique à l’aide de l’optimisation topologique
Créativité dans le design mécanique à l’aide de l’optimisation topologique
LIEGE CREATIVE8 visualizações
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx por lwang78
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
2023Dec ASU Wang NETR Group Research Focus and Facility Overview.pptx
lwang78188 visualizações
Pitchbook Repowerlab.pdf por VictoriaGaleano
Pitchbook Repowerlab.pdfPitchbook Repowerlab.pdf
Pitchbook Repowerlab.pdf
VictoriaGaleano8 visualizações

Problem solving using computers - Chapter 1

  • 1. PROBLEM-SOLVING USING COMPUTERS - CHAPTER 1 PROBLEM SOLVING USING COMPUTERS
  • 2. INTRODUCTION Problem-solving is transforming the description of a problem into a solution by using our knowledge of the problem domain and relying on our ability to select and use appropriate problem-solving strategies, techniques, and tools. When we write a program, we are actually writing instructions for the computer to solve something for us. A COMPUTER IS A TOOL TO SOLVE A PROBLEM PROGRAMMING IS A PROBLEM-SOLVING ACTIVITY
  • 3. PROBLEM DEFINITION (Problem statement) 1 PROBLEM ANALYSIS (Identify Input, Output, Constraints, Formulas to be used (if any) 2 COMPILATION & EXECUTION 4 CODING 3 DEBUGGING & TESTING 5 DOCUMENTATION 6 STEPS IN PROBLEM- SOLVING 7 PROBLEM APPROACH (Algorithm, Pseudo code, Flowchart)
  • 4. A set of finite rules or instructions to be followed in calculations or other problem- solving operations ALGORITHM
  • 5. Write down the steps for making peanut butter and jelly sandwich TASK Ingredients - Bread, Peanut butter, Jelly
  • 6. Step 1: Start preparation Step 2: Take 2 slices of bread. Step 3: Apply peanut butter on one side of a slice. Step 3: Apply jelly on one side of the other slice. Step 4: Press both slices of bread together. Step 5: Serve CONCLUSION: Algorithm is step-wise idea of what is to be done to get a desired output from the given input
  • 7. Algorithm to add 3 numbers and print their sum EXAMPLE Variables - n1 | n2 | n3 | sum
  • 8. START Declare 3 integer variables n1, n2 and n3. Take the three numbers, to be added, as inputs in variables n1, n2, and n3 respectively. Declare an integer variable sum to store the resultant sum of the 3 numbers. Add the 3 numbers and store the result in the variable sum. (n1 + n2 + n3) Print the value of the variable sum END 1. 2. 3. 4. 5. 6. 7.
  • 9. It should terminate after a finite time. It should produce at least one output. It should take zero or more input. It should be deterministic means giving the same output for the same input case. Every step in the algorithm must be effective i.e. every step should do some work. PROPERTIES OF ALGORITHM
  • 11. CHECK FOR LANGUAGE INDEPENDENCY // C PROGRAM #include <stdio.h> int main() { int n1, n2, n3; scanf("%d %d %d",&n1,&n2,&n3); int sum; sum = n1+n2+n3; printf("%d",sum); return 0; } // PYTHON PROGRAM if __name__ == "__main__": n1 = n2 = n3 = 0 n1 = int(input()) n2 = int(input()) n3 = int(input()) sum = 0 sum = n1+n2+n3 print(sum) // PYTHON PROGRAM if __name__ == "__main__": n1 = int(input()) n2 = int(input()) n3 = int(input()) sum = n1+n2+n3 print(sum)
  • 13. FLOWCHART A flowchart is a graphical representation of an algorithm. Programmers often use it as a program- planning tool to solve a problem. It makes use of symbols that are connected among them to indicate the flow of information and processing. The process of drawing a flowchart for an algorithm is known as “flowcharting”.
  • 16. Draw a flowchart to add 3 numbers and print their sum EXAMPLE Refer the below algorithm
  • 17. START Declare 3 integer variables n1, n2 and n3. Take the three numbers, to be added, as inputs in variables n1, n2, and n3 respectively. Declare an integer variable sum to store the resultant sum of the 3 numbers. Add the 3 numbers and store the result in the variable sum. (n1 + n2 + n3) Print the value of the variable sum END 1. 2. 3. 4. 5. 6. 7.
  • 19. PSEUDO-CODE The pseudocode is an informal way of writing a program for better human understanding. It is written in simple English, making the complex program easier to understand. Pseudocode cannot be compiled or interpreted. It is a methodology that allows the programmer to represent the implementation of an algorithm.
  • 22. Write only one statement per line Capitalize initial keyword Indent to show hierarchy End multiline structures Keep statements language independent It gives us the sketch of the program before actual coding Use the naming domain of the problem, not that of the implementation. For instance: “Append the last name to the first name” instead of “name = first+ last.” Keep it simple, concise and readable. RULES OF PSEUDO-CODE
  • 29. EXAMPLE 2: WRITE THE PSEUDO CODE TO FIND THE GREATEST OF TWO NUMBERS BEGIN READ A,B IF (A>B) THEN DISPLAY a is greater ELSE DISPLAY b is greater END IF END
  • 31. BRUTE FORCE ALGORITHM Brute Force Algorithms are exactly what they sound like – straightforward methods of solving a problem that relies on sheer computing power and trying every possibility rather than advanced techniques to improve efficiency. Brute Force algorithm is a typical problem-solving technique where the possible solution for a problem is uncovered by checking each answer one by one, by determining whether the result satisfies the statement of a problem or not. Bubble sort is one of the easiest and brute force sorting algorithm.
  • 32. RECURSIVE ALGORITHM A recursive algorithm calls itself with smaller input values and returns the result for the current input by carrying out basic operations on the returned value for the smaller input. A recursive algorithm is an algorithm that calls itself with "smaller (or simpler)" input values, and which obtains the result for the current input by applying simple operations to the returned value for the smaller (or simpler) input. Generation of factorial, Fibonacci number series are examples of recursive algorithms.
  • 33. GREEDY ALGORITHM Greedy is an algorithmic paradigm that builds up a solution piece by piece, always choosing the next piece that offers the most obvious and immediate benefit. So the problems where choosing locally optimal also leads to the global solution being the best fit for Greedy. For example) Fractional Knapsack Problem
  • 34. DYNAMIC ALGORITHM Dynamic Programming is a technique in computer programming that helps to efficiently solve a class of problems that have overlapping subproblems and optimal substructure properties. The main use of dynamic programming is to solve optimization problems. Here, optimization problems mean that when we are trying to find out the minimum or the maximum solution to a problem. Dynamic programming guarantees finding the optimal solution to a problem if the solution exists.
  • 35. A top-down approach is about breaking down a system into the subsystems that make it up. The process can be repeated to break down subsystems into low-level elements like classes and methods. This approach can be applied to all levels from high- level system architecture to low-level functionality implementation, just to remember to start from the top. It doesn’t necessarily always be the absolute top. Top-Down Model is followed by structural programming languages like C, Fortran etc. TOP DOWN APPROACH
  • 37. In this design, individual parts of the system are specified in detail. The parts are linked to form larger components, which are in turn linked until a complete system is formed. Object-oriented language such as C++, Python, or Java uses a bottom-up approach where each object is identified first. BOTTOM UP APPROACH
  • 39. So simple. It's because you first defines a class and it's functions. Then you initialise an object of that class and calls functions as per the need. Now, though process looks like to-bottom but the execution takes place in bottom-up approach. While executing, execution flow find object initialisation first and then it looks up for declared class and then functions. WHY DO OOPS FOLLOW THE BOTTOM-UP APPROACH?
  • 40. class Person: def __init__(self, name, age): self.name = name self.age = age obj1 = Person("Harry", 36) obj2 = Person("Styles", 35) print(obj1.name) print(obj1.age) print("------") print(obj2.name) print(obj2.age)
  • 41. IS PYTHON AN OBJECT-ORIENTED PROGRAMMING LANGUAGE?
  • 42. Python is both procedural and has object-oriented features, as well as some aspects of functional programming. That is what is meant when one says that Python is a multi- paradigm. Python are multi-paradigm, you can write programs or libraries that are largely procedural, object-oriented, or functional in all of these languages. It depends on what you mean by functional. Python does have some features of a functional language. OOP's concepts like, Classes,Encapsulation,Polymorphism, Inheritance etc.. in Python makes it as a object oriented programming language. IS PYTHON AN OBJECT-ORIENTED PROGRAMMING LANGUAGE?
  • 43. TIME COMPLEXITY SPACE COMPLEXITY MEASURES FOR THE EFFICIENCY OF AN ALGORITHM
  • 44. SWAP TWO NUMBERS - METHOD 1 (Using third variable) x = 10 y = 50 # Swapping of two variables # Using third variable temp = x x = y y = temp print("Value of x:", x) print("Value of y:", y) x = 10 y = 50 # Swapping of two variables # without using third variable x, y = y, x print("Value of x:", x) print("Value of y:", y) SWAP TWO NUMBERS - METHOD 2 (Using comma method)
  • 45. NOW IT'S TIME TO PRACTICE
  • 46. PROBLEM STATEMENT - Airport security officials have confiscated several item of the passengers at the security check point. All the items have been dumped into a huge box (array). Each item possesses a certain amount of risk[0,1,2]. Here, the risk severity of the items represent an array[] of N number of integer values. The task here is to sort the items based on their levels of risk in the array. The risk values range from 0 to 2. Example : Input : 7 -> Value of N [1,0,2,0,1,0,2]-> Element of arr[0] to arr[N-1], while input each element is separated by a new line. Output : 0 0 0 1 1 2 2 -> Element after sorting based on risk severity Explanation: In the above example, the input is an array of size N consisting of only 0’s, 1’s, and 2s. The output is a sorted array from 0 to 2 based on risk severity.
  • 47. mins
  • 48. n = int(input()) arr = [] for i in range(n): arr.append(int(input())) arr.sort() for i in range(n): print(arr[i], end = " ") PSEUDOCODE - BEGIN READ n INITIALIZE list arr[] FOR i <-- 0 to n-1 APPEND elements to the list SORT the array list arr[] FOR i <-- 0 to n-1 PRINT elements of the array list END