Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 Module 2: Fundamental Concepts Problems Programs –Programming languages.

Similar presentations


Presentation on theme: "1 Module 2: Fundamental Concepts Problems Programs –Programming languages."— Presentation transcript:

1 1 Module 2: Fundamental Concepts Problems Programs –Programming languages

2 2 Problems We view solving problems as the main application for computer programs

3 3 Inputs Outputs (4,2,3,1) (3,1,2,4) (7,5,1) (1,2,3) (1,2,3,4) (1,5,7) (1,2,3) Definition A problem is a mapping or function between a set of inputs and a set of outputs Example Problem: Sorting

4 4 How to specify a problem Input –Describe what an input instance looks like Output –Describe what task should be performed on the input –In particular, describe what output should be produced

5 5 Example Problem Specifications* –Sorting problem Input –Integers n 1, n 2,..., n k Output –n 1, n 2,..., n k in nondecreasing order –Find element problem Input –Integers n 1, n 2, …, n k –Search key S Output –yes if S is in n 1, n 2, …, n k, no otherwise

6 6 Programs Programs solve problems

7 7 Purpose Why do we write programs? One answer –To solve problems –What does it mean to solve a problem? Informal answer: For every legal input, a correct output is produced. Formal answer: To be given later

8 8 Programming Language Definition –A programming language defines what constitutes a legal program –Example: a pseudocode program may not be a legal C++ program which may not be a legal C program –A programming language is typically referred to as a “computational model” in a course like this.

9 9 C++ Our programming language will be C++ with minor modifications –Main procedure will use input parameters in a fashion similar to other procedures no argc/argv –Output will be returned type specified by main function type

10 10 Maximum Element Problem Input –integer n >= 1 –List of n integers Output –The largest of the n integers

11 11 C++ Program which solves the Maximum Element Problem* int main(int A[], int n) { int i, max; if (n < 1) return (“Illegal Input”); max = A[0]; for (i = 1; i < n; i++) if (A[i] > max) max = A[i]; return (max); }

12 12 Fundamental Theme Exploring capabilities and limitations of C++ programs

13 13 Restating the Fundamental Theme * We will study the capabilities and limits of C++ programs Specifically, we will try and identify –What problems can be solved by C++ programs –What problems cannot be solved by C++ programs

14 14 Question Is C++ general enough? Or is it possible that there exists some problem  such that –  can be solved by some program P in some other reasonable programming language –but  cannot be solved by any C++ program?

15 15 Church’s Thesis (modified) We have no proof of an answer, but it is commonly accepted that the answer is no. Church’s Thesis (three identical statements) –C++ is a general model of computation –Any algorithm can be expressed as a C++ program –If some algorithm cannot be expressed by a C++ program, it cannot be expressed in any reasonable programming language

16 16 Summary * Problems –When we talk about what programs can or cannot “DO”, we mean what PROBLEMS can or cannot be solved


Download ppt "1 Module 2: Fundamental Concepts Problems Programs –Programming languages."

Similar presentations


Ads by Google