Lecture 8: Control Structures I
|
|
- Eleanor Nash
- 5 years ago
- Views:
Transcription
1 Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 8: Control Structures I
2 Intro. to Programming, lecture 8: Control structures I 2
3 The notion of algorithm General definition: An algorithm is the specification of a process to be carried out by a computer Intro. to Programming, lecture 8: Control structures I 3
4 Not quite an algorithm Intro. to Programming, lecture 8: Control structures I 4
5 5 properties of an algorithm Defines data to which process will be applied Every elementary step taken from a set of well-specified actions Describes ordering(s) of execution of these steps 2 and 3 based on precisely defined conventions, suitable for execution by an automatic computer For any data, guaranteed to terminate after finite number of steps Intro. to Programming, lecture 8: Control structures I 5
6 Algorithm vs program Algorithm usually considered a more abstract notion, indepent d of platform, programming language etc. In practice, the distinction ts to fade: Algorithms need a precise notation Programming languages becoming more abstract However: In programs, data (objects) are just as important as algorithms A program typically contains many algorithms and object structures Intro. to Programming, lecture 8: Control structures I 6
7 What makes up an algorithm Basic steps: Feature call x.f (a ) Assignment... Sequencing of these basic steps: CONTROL STRUCTURES Intro. to Programming, lecture 8: Control structures I 7
8 Control structures Definition: program construct that describes the scheduling of basic actions Three fundamental control structures: Sequence Loop Conditional They are the Control structures of Structured Programming Intro. to Programming, lecture 8: Control structures I 8
9 Control structures as problem-solving techniques Sequence: To achieve C from A, first achieve an intermediate goal B from A, then achieve C from B Loop: solve the problem on successive approximations of its input set Conditional: solve the problem separately on two or more subsets of its input set Intro. to Programming, lecture 8: Control structures I 9
10 The sequence (or Compound) instruction 1 instruction 2... instruction n Intro. to Programming, lecture 8: Control structures I 10
11 Semicolon as optional separator instruction 1 ; instruction 2 ;... ; instruction n Intro. to Programming, lecture 8: Control structures I 11
12 Not quite an algorithm Intro. to Programming, lecture 8: Control structures I 12
13 Correctness of a Compound Precondition of instruction 1 must hold initially Postcondition of each instruction i must imply precondition of each instruction i+1 Final effect is postcondition of instruction n Intro. to Programming, lecture 8: Control structures I 13
14 Conditional instruction if Condition then Instructions else Other_instructions -- Boolean_expression -- Compound -- Compound Intro. to Programming, lecture 8: Control structures I 14
15 Computing the greater of two numbers if a > b then max else max := a := b Intro. to Programming, lecture 8: Control structures I 15
16 As a function maximum (a, b : INTEGER): INTEGER do -- The higher of a and b if a > b then Result else := a Result := b Intro. to Programming, lecture 8: Control structures I 16
17 The conditional as problem-solving technique PROBLEM SPACE Region 2 Region 1 Use technique 1 Use technique 2 Intro. to Programming, lecture 8: Control structures I 17
18 Basic form if Condition then Instructions else Other_instructions Intro. to Programming, lecture 8: Control structures I 18
19 A variant of the conditional if Condition then Instructions Intro. to Programming, lecture 8: Control structures I 19
20 A variant of the conditional if Condition then Instructions (Means the same as if Condition then Instructions else with an empty else clause) Intro. to Programming, lecture 8: Control structures I 20
21 Nesting if Condition 1 then Instructions ti 1 else if Condition 2 then Instructions 2 else if Condition 3 then else... Instructions ti 3 Intro. to Programming, lecture 8: Control structures I 21
22 Nested structure Intro. to Programming, lecture 8: Control structures I 22
23 Comb-like structure Intro. to Programming, lecture 8: Control structures I 23
24 Comb-like conditional if Condition 1 then Instructions 1 elseif Condition 2 then Instructions 2 elseif Condition 3 then Instructions 3 elseif... else Instructions 0 Intro. to Programming, lecture 8: Control structures I 24
25 Comb-like structure Intro. to Programming, lecture 8: Control structures I 25
26 On the menu for today Loops and their invariants See what it takes to ensure that a loop terminates Look at the general problem of loop termination Examine lower-level control structures: Goto and flowcharts; see rationale for the control structures of Structured Programming Prove the undecidability of the Halting Problem Intro. to Programming, lecture 8: Control structures I26
27 Loop from Initialization variant Variant_expression invariant Invariant_expression until Exit_condition loop Body -- Compound -- Integer expression -- Condition -- Boolean_expression -- Compound Intro. to Programming, lecture 8: Control structures I 27
28 Loop, full form from Initialization invariant Invariant_expression variant Variant_expression until Exit_condition loop Body -- Compound -- Boolean_expression -- Integer_expression -- Boolean_expression -- Compound Intro. to Programming, lecture 8: Control structures I 28
29 Another loop syntax Intro. to Programming, lecture 8: Control structures I 29
30 Loop, full form from Initialization invariant Invariant_expression variant Variant_expression until Exit_condition loop Body -- Compound -- Boolean_expression -- Integer_expression -- Boolean_expression -- Compound Intro. to Programming, lecture 8: Control structures I 30
31 Looping over stations of a line from fancy.start until fancy.after loop -- Do something with fancy.item fancy.forth Previously and in the textbook: fancy_line Intro. to Programming, lecture 8: Control structures I 31
32 Operations on a list before after item 1 index count startt back forth Commands (The cursor) Queries (boolean) Intro. to Programming, lecture 8: Control structures I 32
33 Operations on a list before after item 1 index count startt forth (The cursor) Intro. to Programming, lecture 8: Control structures I 33
34 Looping over stations of a line from fancy.start until fancy.after loop -- Do something with fancy.item fancy.forth Intro. to Programming, lecture 8: Control structures I 34
35 Displaying station names from until loop fancy.start fancy.after -- Display name of next station: Console.show (fancy.item)( ) fancy.forth Intro. to Programming, lecture 8: Control structures I 35
36 Computing the maximum of station names from fancy.start ; Result := "" until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 36
37 Assignment Result := "XYZ " -- Change the value of Result to "XYZ" Intro. to Programming, lecture 8: Control structures I 37
38 Computing the maximum of station names from fancy.start ; Result := " " until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth The greater of two strings, alphabetically, e.g. greater ("ABC ", "AD ") ="AD" Intro. to Programming, lecture 8: Control structures I 38
39 In a function highest_name: STRING is do from -- Alphabetically greatest station name of line until loop fancy.start ; Result := "" fancy.after Result := greater (Result, fancy.item.name) fancy.forthforth Intro. to Programming, lecture 8: Control structures I 39
40 Postcondition? highest_name: STRING is -- Alphabetically greatest station name of line do from fancy.start ; Result := "" until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth ensure Result /= Void and then not Result.empty Intro. to Programming, lecture 8: Control structures I 40
41 Loop as approximation strategy name 1 name 2 name i name n Result = name 1 Result = Max (name 1, name 2 ) Result =Max(name 1, name 2,..., name i ) Result = Max (name 1, name 2,..., name i,..., name n ) Intro. to Programming, lecture 8: Control structures I 41
42 Computing the maximum of station names from fancy.start ; Result := " until loop fancy.afterafter Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 42
43 The loop invariant from fancy.start t ; Result := "" invariant fancy.index >= 1 fancy.index <= fancy.count Result is the alphabetically highest of the -- names of previous stations until fancy.afterafter loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 43
44 Loop invariant (Do not confuse with class invariant) Property that is: Satisfied after initialization (from clause) Preserved by every loop iteration (loop p clause) when executed with the exit condition (until clause) not satisfied Intro. to Programming, lecture 8: Control structures I 44
45 The loop invariant from fancy.start ; Result := "" invariant fancy.index >= 1 fancy.index <= fancy.count Result is the alphabetically highest of the -- names of previous stations until fancy.afterf loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 45
46 The loop invariant (better) from fancy.start t ; Result := "" invariant index >= 1 index <= count If there are any previous stations, -- Result is the alphabetically highest of their names until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 46
47 Loop as approximation strategy name 1 name 2 name i name n Result = name 1 Result = Max (name 1, name 2 ) Result =Max(name 1, name 2,..., name i ) Result = Max (name 1, name 2,..., name i,..., name n ) Intro. to Programming, lecture 8: Control structures I 47
48 In a function highest_name: STRING is do from until loop -- Alphabetically ll greatest t station ti name of line fancy.start ; Result := "" fancy.after Result := greater (Result, fancy.item.name) ) fancy.forthforth Intro. to Programming, lecture 8: Control structures I 48
49 Postcondition? highest_name: STRING is -- Alphabetically greatest station name of line do from fancy.start ; Result := "" until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth ensure Result /= Void and then not Result.empty Intro. to Programming, lecture 8: Control structures I 49
50 Loop as approximation strategy name 1 name 2 name i name n Result = name 1 Result = Max (name 1, name 2 ) Result =Max(name 1, name 2,..., name i ) Result = Max (name 1, name 2,..., name i,..., name n ) Intro. to Programming, lecture 8: Control structures I 50
51 The loop invariant from fancy.start ; Result := " invariant fancy.index >= 1 fancy.index <= fancy.count Result is the alphabetically highest of the -- names of previous stations until fancy.afterafter loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 51
52 Loop invariant (Do not confuse with class invariant) Property that is: Satisfied after initialization (from clause) Preserved by every loop iteration (loop p clause) when executed with the exit condition (until clause) not satisfied Intro. to Programming, lecture 8: Control structures I 52
53 The loop invariant from fancy.start ; Result := "" invariant fancy.index >= 1 fancy.index <= fancy.count Result is highest of previous station names until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 53
54 The loop invariant (better) from fancy.start ; Result := "" invariant index >= 1 index <= count If there are any previous stations, -- Result is the alphabetically ll highest h of their names until fancy.after loop Result := greater (Result, fancy.item.name) fancy.forth Intro. to Programming, lecture 8: Control structures I 54
55 The effect of the loop from fancy.start ; Result := "" invariant index >= 1 index <= count Result is highest of previous station names until fancy.after Exit condition loop satisfied at Result := greater (Result, fancy.item.name) Invariant satisfied after initialization Invariant satisfied after each iteration fancy.forth At : invariant and exit condition All stations visited (fancy.after ) Result is highest of their names Intro. to Programming, lecture 8: Control structures I 55
56 Quiz: what s the invariant? xxx (a, b: INTEGER): INTEGER is --????????????????????????????????? require a > 0;b b > 0 local m, n : INTEGER do from m := a ; n := b invariant --???????? variant???????? until m = n loop if m > n then m := m n else n := n m Result := m Intro. to Programming, lecture 8: Control structures I 56
57 Quiz: what s the invariant? xxx (a, b: INTEGER): INTEGER is --????????????????????????????????? require a > 0;b b > 0 local m, n : INTEGER do from m := a ; n := b invariant --???????? variant???????? until m = n loop if m > n then m := m n else n := n m Result := m Intro. to Programming, lecture 8: Control structures I 57
58 Quiz: what s the invariant? euclid (a, b: INTEGER): INTEGER is -- Greatest common divisor of a and b require a > 0;b b > 0 local m, n : INTEGER do from m := a ; n := b invariant --???????? variant???????? until m = n loop if m > n then m := m n else n := n m Result := m Intro. to Programming, lecture 8: Control structures I 58
59 What we have seen Intro. to Programming, lecture 8: Control structures I 59
60 What we have seen The notion of algorithm Basic properties Difference with program The notion of control structure Correctness of an instruction Control structure: sequence Control structure: conditional Nesting, and how to avoid it Intro. to Programming, lecture 8: Control structures I 60
61 End of lecture 8 Intro. to Programming, lecture 8: Control structures I 61
Einführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 8: Control Structures I In this (double) lecture The notion of algorithm Basic
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 5 Today Ø Attributes, formal arguments, and local variables Ø Control
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 5 Today Attributes, formal arguments, and local variables Control structures
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 14: Container Data Structures Topics for this lecture Containers and genericity
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 6 Today Conditional Loop Abstractions Exporting s 2 Structured programming
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 4: The Interface of a Class Client, supplier Definitions A client of a software
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 9 Today Ø Feedback on the mock exam Ø Recursion Ø Recursion Recursion
More informationContainers and genericity. A standardized naming scheme. Cursor properties. Lists. Adding a cell. A specific implementation: (singly) linked lists
Topics for this lecture Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Containers and genericity Container operations Prof. Dr. Bertrand Meyer Lists October
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Exercise Session 10 News Mock exam in 2 weeks (December 6 th, 7 th ) You have to be present
More informationLecture 14: More Inheritance & Genericity
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer October 2006 February 2007 MP1 Lecture 14: More Inheritance & Genericity 2 Genericity:
More informationIn Java, data type boolean is used to represent Boolean data. Each boolean constant or variable can contain one of two values: true or false.
CS101, Mock Boolean Conditions, If-Then Boolean Expressions and Conditions The physical order of a program is the order in which the statements are listed. The logical order of a program is the order in
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 3: Dealing with Objects II Programming languages The programming language is
More informationAutomated Fixing of Programs with Contracts
Automated Fixing of Programs with Contracts Yi Wei, Yu Pei, Carlo A. Furia, Lucas S. Silva, Stefan Buchholz, Bertrand Meyer and Andreas Zeller Chair of Software Engineering, ETH Zürich Software Engineering
More informationOutline. Computer Science 331. Three Classical Algorithms. The Sorting Problem. Classical Sorting Algorithms. Mike Jacobson. Description Analysis
Outline Computer Science 331 Classical Sorting Algorithms Mike Jacobson Department of Computer Science University of Calgary Lecture #22 1 Introduction 2 3 4 5 Comparisons Mike Jacobson (University of
More informationFondamenti della Programmazione: Metodi Evoluti. Esercitazione 5
Fondamenti della Programmazione: Metodi Evoluti Prof. Enrico Nardelli Esercitazione 5 versione originale: http://touch.ethz.ch Today Conditional Loop Linked list ESERCITAZIONE-5 Rev. 1.1.5 (2015-16) by
More informationLecture 13: Introduction to inheritance and genericity
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 13: Introduction to inheritance and genericity On the menu for today (& next
More informationAn example (1) - Conditional. An example (2) - Conditional. An example (3) Nested conditional
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Michela Pedroni October 2006 February 2007 Lecture 8: Describing the Syntax Intro. to
More informationAssertions & Verification & Example Loop Invariants Example Exam Questions
2014 November 27 1. Assertions & Verification & Example Loop Invariants Example Exam Questions 2. A B C Give a general template for refining an operation into a sequence and state what questions a designer
More informationEiffel: Analysis, Design and Programming. ETH Zurich, September-December Exception handling
Eiffel: Analysis, Design and Programming ETH Zurich, September-December 2008-6- Exception handling What is an exception? An abnormal event Not a very precise definition Informally: something that you don
More information1. Lexical Analysis Phase
1. Lexical Analysis Phase The purpose of the lexical analyzer is to read the source program, one character at time, and to translate it into a sequence of primitive units called tokens. Keywords, identifiers,
More informationAssertions & Verification Example Exam Questions
2009 November 23 Assertions & Verification Example Exam Questions 1. 2. A B C Give a general template for refining an operation into a sequence and state what questions a designer must answer to verify
More informationReview: Hoare Logic Rules
Review: Hoare Logic Rules wp(x := E, P) = [E/x] P wp(s;t, Q) = wp(s, wp(t, Q)) wp(if B then S else T, Q) = B wp(s,q) && B wp(t,q) Proving loops correct First consider partial correctness The loop may not
More informationa correct statement? You need to know what the statement is supposed to do.
Using assertions for correctness How can we know that software is correct? It is only correct if it does what it is supposed to do. But how do we know what it is supposed to do? We need a specification.
More informationLecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 28, 2014 1 Introduction One of the fundamental and recurring problems in computer science is
More informationOutline. Introduction. 2 Proof of Correctness. 3 Final Notes. Precondition P 1 : Inputs include
Outline Computer Science 331 Correctness of Algorithms Mike Jacobson Department of Computer Science University of Calgary Lectures #2-4 1 What is a? Applications 2 Recursive Algorithms 3 Final Notes Additional
More informationIntroduction to C/C++ Lecture 3 - Program Flow Control
Introduction to C/C++ Lecture 3 - Program Flow Control Rohit Sehgal Nishit Majithia Association of Computing Activities, Indian Institute of Technology,Kanpur rsehgal@cse.iitk.ac.in nishitm@cse.iitk.ac.in
More informationCS 221 Lecture. Tuesday, 11 October 2011
CS 221 Lecture Tuesday, 11 October 2011 "Computers in the future may weigh no more than 1.5 tons." - Popular Mechanics, forecasting the relentless march of science, 1949. Today s Topics 1. Announcements
More informationChapter 3. Describing Syntax and Semantics
Chapter 3 Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings of Programs:
More informationIterative Statements. Iterative Statements: Examples. Counter-Controlled Loops. ICOM 4036 Programming Languages Statement-Level Control Structure
ICOM 4036 Programming Languages Statement-Level Control Structure Selection Statement Iterative Statements Unconditional Branching Guarded Commands This lecture covers review questions 8-16 This lecture
More informationAssertions, pre/postconditions
Programming as a contract Assertions, pre/postconditions Assertions: Section 4.2 in Savitch (p. 239) Specifying what each method does q Specify it in a comment before method's header Precondition q What
More informationChapter 3 (part 3) Describing Syntax and Semantics
Chapter 3 (part 3) Describing Syntax and Semantics Chapter 3 Topics Introduction The General Problem of Describing Syntax Formal Methods of Describing Syntax Attribute Grammars Describing the Meanings
More informationA survey of loop invariants
A survey of loop invariants Carlo A. Furia Bertrand Meyer Sergey Velder January 30, 2013 Abstract At the heart of every loop, and hence of all algorithms, lies a loop invariant: a property ensured by the
More informationObject Oriented Program Correctness with OOSimL
Kennesaw State University DigitalCommons@Kennesaw State University Faculty Publications 12-2009 Object Oriented Program Correctness with OOSimL José M. Garrido Kennesaw State University, jgarrido@kennesaw.edu
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Michela Pedroni Lecture 11: Describing the Syntax Goals of today s lecture Learn about
More informationAn Annotated Language
Hoare Logic An Annotated Language State and Semantics Expressions are interpreted as functions from states to the corresponding domain of interpretation Operators have the obvious interpretation Free of
More informationReasoning about programs
Reasoning about programs Last time Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in
More informationCS 199 Computer Programming. Spring 2018 Lecture 5 Control Statements
CS 199 Computer Programming Spring 2018 Lecture 5 Control Statements Control Structures 3 control structures Sequence structure Programs executed sequentially by default Branch structure Unconditional
More informationLast time. Reasoning about programs. Coming up. Project Final Presentations. This Thursday, Nov 30: 4 th in-class exercise
Last time Reasoning about programs Coming up This Thursday, Nov 30: 4 th in-class exercise sign up for group on moodle bring laptop to class Final projects: final project presentations: Tue Dec 12, in
More informationLecture 5 Tao Wang 1
Lecture 5 Tao Wang 1 Objectives In this chapter, you will learn about: Selection criteria Relational operators Logical operators The if-else statement Nested if statements C++ for Engineers and Scientists,
More informationLecture Notes on Contracts
Lecture Notes on Contracts 15-122: Principles of Imperative Computation Frank Pfenning Lecture 2 August 30, 2012 1 Introduction For an overview the course goals and the mechanics and schedule of the course,
More informationA control expression must evaluate to a value that can be interpreted as true or false.
Control Statements Control Expressions A control expression must evaluate to a value that can be interpreted as true or false. How a control statement behaves depends on the value of its control expression.
More informationSoftwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany
Softwaretechnik Lecture 08: Testing and Debugging Overview Peter Thiemann University of Freiburg, Germany SS 2012 Literature Essential Reading Why Programs Fail: A Guide to Systematic Debugging, A Zeller
More informationSoftwaretechnik. Lecture 08: Testing and Debugging Overview. Peter Thiemann SS University of Freiburg, Germany
Softwaretechnik Lecture 08: Testing and Debugging Overview Peter Thiemann University of Freiburg, Germany SS 2012 Literature Essential Reading Why Programs Fail: A Guide to Systematic Debugging, A Zeller
More informationFlow Control. CSC215 Lecture
Flow Control CSC215 Lecture Outline Blocks and compound statements Conditional statements if - statement if-else - statement switch - statement? : opertator Nested conditional statements Repetitive statements
More informationThe Eiffel language. Slides partly based on :
The Eiffel language Slides partly based on : http://se.inf.ethz.ch/courses/2015b_fall/eprog/english_index.html Eiffel, in brief Procedural, object-oriented programming language created by Bertrand Meyer
More information1 Abstract Data Types (11 Points)
Legi-Nr.:... 1 Abstract Data Types (11 Points) In this task you will write an abstract data type for a simple tree structure that stores integers in its nodes and whose nodes always have either no children
More informationLecture 7 Tao Wang 1
Lecture 7 Tao Wang 1 Objectives In this chapter, you will learn about: Interactive loop break and continue do-while for loop Common programming errors Scientists, Third Edition 2 while Loops while statement
More informationDATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6)
Technology & Information Management Instructor: Michael Kremer, Ph.D. Database Program: Microsoft Access Series DATABASE AUTOMATION USING VBA (ADVANCED MICROSOFT ACCESS, X405.6) AGENDA 3. Executing VBA
More informationC# Types. Industrial Programming. Value Types. Signed and Unsigned. Lecture 3: C# Fundamentals
C# Types Industrial Programming Lecture 3: C# Fundamentals Industrial Programming 1 Industrial Programming 2 Value Types Memory location contains the data. Integers: Signed: sbyte, int, short, long Unsigned:
More informationDiscrete Mathematics Lecture 4. Harper Langston New York University
Discrete Mathematics Lecture 4 Harper Langston New York University Sequences Sequence is a set of (usually infinite number of) ordered elements: a 1, a 2,, a n, Each individual element a k is called a
More informationIndustrial Programming
Industrial Programming Lecture 3: C# Fundamentals Industrial Programming 1 C# Types Industrial Programming 2 Value Types Memory location contains the data. Integers: Signed: sbyte, int, short, long Unsigned:
More informationHoare Logic: Proving Programs Correct
Hoare Logic: Proving Programs Correct 17-654/17-765 Analysis of Software Artifacts Jonathan Aldrich Reading: C.A.R. Hoare, An Axiomatic Basis for Computer Programming Some presentation ideas from a lecture
More informationSECTION 5: STRUCTURED PROGRAMMING IN MATLAB. ENGR 112 Introduction to Engineering Computing
SECTION 5: STRUCTURED PROGRAMMING IN MATLAB ENGR 112 Introduction to Engineering Computing 2 Conditional Statements if statements if else statements Logical and relational operators switch case statements
More informationInformation Science 1
Information Science 1 Fundamental Programming Constructs (1) Week 11 College of Information Science and Engineering Ritsumeikan University Topics covered l Terms and concepts from Week 10 l Flow of control
More information15-122: Principles of Imperative Computation (Section G)
15-122: Principles of Imperative Computation (Section G) Document 2 Solutions 0. Contracts This lecture was mainly about contracts and ensuring correctness of code. Josh Zimmerman There are 4 types of
More informationMath Introduction to Advanced Mathematics
Math 215 - Introduction to Advanced Mathematics Number Theory Fall 2017 The following introductory guide to number theory is borrowed from Drew Shulman and is used in a couple of other Math 215 classes.
More informationCS Lecture 19: Loop invariants
CS 1110 Lecture 19: Loop invariants Announcements Prelim 2 conflicts Today (April 2) is two weeks before the prelim, and the deadline for submitting prelim conflicts. Instructor travel This week and the
More informationLecture Notes: Hoare Logic
Lecture Notes: Hoare Logic 17-654/17-754: Analysis of Software Artifacts Jonathan Aldrich (jonathan.aldrich@cs.cmu.edu) Lecture 3 1 Hoare Logic The goal of Hoare logic is to provide a formal system for
More informationProblem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur
Problem Solving through Programming In C Prof. Anupam Basu Department of Computer Science & Engineering Indian Institute of Technology, Kharagpur Lecture 15 Branching : IF ELSE Statement We are looking
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: while and do while statements in C++ Dr. Deepak B. Phatak & Dr. Supratik Chakraborty,
More informationfor (i=1; i<=100000; i++) { x = sqrt (y); // square root function cout << x+i << endl; }
Ex: The difference between Compiler and Interpreter The interpreter actually carries out the computations specified in the source program. In other words, the output of a compiler is a program, whereas
More informationReadability [Skrien 4.0] Programs must be written for people to read, and only incidentally for machines to execute.
Readability [Skrien 4.0] Programs must be written for people to read, and only incidentally for machines to execute. Abelson & Sussman Use a good set of coding conventions, such as the ones given in the
More informationIteration: Intro. Two types of loops: 1. Pretest Condition precedes body Iterates 0+ times. 2. Posttest Condition follows body Iterates 1+ times
Iteration: Intro Two types of loops: 1. Pretest Condition precedes body Iterates 0+ times 2. Posttest Condition follows body Iterates 1+ times 1 Iteration: While Loops Pretest loop Most general loop construct
More informationSoftware Architecture. Abstract Data Types
Software Architecture Abstract Data Types Mathematical description An ADT is a mathematical specification Describes the properties and the behavior of instances of this type Doesn t describe implementation
More informationMock exam 1. ETH Zurich. Date: 9./10. November 2009
Mock exam 1 ETH Zurich Date: 9./10. November 2009 Name: Group: 1 Terminology (8 points) Put checkmarks in the checkboxes corresponding to the correct answers. Multiple correct answers are possible; there
More informationLecture 4 Searching Arrays
Lecture 4 Searching Arrays 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning One of the fundamental and recurring problems in computer science is to find elements in collections,
More informationFachgebiet Softwaretechnik, Heinz Nixdorf Institut, Universität Paderborn. 4. Testing
4. vs. Model Checking (usually) means checking the correctness of source code Model Checking means verifying the properties of a model given in some formal (not program code) notation Attention: things
More informationIn-Class Exercises. ETH Zurich. ETH students recently designed a special kind of oven for cooking potatoes. Here are some facts about such an oven:
In-Class Exercises ETH Zurich 1 Contracts ETH students recently designed a special kind of oven for cooking potatoes. Here are some facts about such an oven: each oven is equipped with a door which is
More informationOverview of the Course. What is an Algorithm? .. Cal Poly CSC 349: Design and Analyis of Algorithms Alexander Dekhtyar..
.. Cal Poly CSC 349: Design and Analyis of Algorithms Alexander Dekhtyar.. What is an Algorithm? Overview of the Course The textbook defines the notion of an algorithm as follows: An algorithm is any well-defined
More informationSyntax of Eiffel: a Brief Overview
Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG Escape Sequences Escape sequences are special characters to be placed in your program text. In Java, an escape sequence
More informationCommands, and Queries, and Features. Syntax of Eiffel: a Brief Overview. Escape Sequences. Naming Conventions
Commands, and Queries, and Features Syntax of Eiffel: a Brief Overview EECS3311 A: Software Design Fall 2018 CHEN-WEI WANG In a Java class: Attributes: Data Mutators: Methods that change attributes without
More informationCSE 120. Computer Science Principles
Adam Blank Lecture 17 Winter 2017 CSE 120 Computer Science Principles CSE 120: Computer Science Principles Proofs & Computation e w h e q 0 q 1 q 2 q 3 h,e w,e w,h w,h q garbage w,h,e CSE = Abstraction
More informationAlgorithms (7A) Young Won Lim 4/10/17
Algorithms (7A) Copyright (c) 2017 Young W. Lim. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 12: More on references and the dynamic model Purpose of this lecture Few really
More informationLoops. Repeat after me
Loops Repeat after me 1 Loops A loop is a control structure in which a statement or set of statements execute repeatedly How many times the statements repeat is determined by the value of a control variable,
More informationStatement level control structures
1 Statement level control structures CS 315 Programming Languages Pinar Duygulu Bilkent University Control Statements: Evolution 2 FORTRAN I control statements were based directly on IBM 704 hardware Much
More information2.2 Syntax Definition
42 CHAPTER 2. A SIMPLE SYNTAX-DIRECTED TRANSLATOR sequence of "three-address" instructions; a more complete example appears in Fig. 2.2. This form of intermediate code takes its name from instructions
More informationEinführung in die Programmierung Introduction to Programming
Chair of Software Engineering Einführung in die Programmierung Introduction to Programming Prof. Dr. Bertrand Meyer Lecture 18: Undo/Redo Further reference Chapter 21 of Bertrand Meyer, Object-Oriented
More informationSTUDENT LESSON A12 Iterations
STUDENT LESSON A12 Iterations Java Curriculum for AP Computer Science, Student Lesson A12 1 STUDENT LESSON A12 Iterations INTRODUCTION: Solving problems on a computer very often requires a repetition of
More informationLecture Notes on Liveness Analysis
Lecture Notes on Liveness Analysis 15-411: Compiler Design Frank Pfenning André Platzer Lecture 4 1 Introduction We will see different kinds of program analyses in the course, most of them for the purpose
More informationSyntactic Analysis. CS345H: Programming Languages. Lecture 3: Lexical Analysis. Outline. Lexical Analysis. What is a Token? Tokens
Syntactic Analysis CS45H: Programming Languages Lecture : Lexical Analysis Thomas Dillig Main Question: How to give structure to strings Analogy: Understanding an English sentence First, we separate a
More informationCS 512, Spring 2017: Take-Home End-of-Term Examination
CS 512, Spring 2017: Take-Home End-of-Term Examination Out: Tuesday, 9 May 2017, 12:00 noon Due: Wednesday, 10 May 2017, by 11:59 am Turn in your solutions electronically, as a single PDF file, by placing
More informationHandout 9: Imperative Programs and State
06-02552 Princ. of Progr. Languages (and Extended ) The University of Birmingham Spring Semester 2016-17 School of Computer Science c Uday Reddy2016-17 Handout 9: Imperative Programs and State Imperative
More informationInformation Science 1
Topics covered Information Science 1 Fundamental Programming Constructs (1) Week 11 Terms and concepts from Week 10 Flow of control and conditional statements Selection structures if statement switch statement
More informationMITOCW watch?v=kz7jjltq9r4
MITOCW watch?v=kz7jjltq9r4 PROFESSOR: We're going to look at the most fundamental of all mathematical data types, namely sets, and let's begin with the definitions. So informally, a set is a collection
More informationChapter 4: Programming with MATLAB
Chapter 4: Programming with MATLAB Topics Covered: Programming Overview Relational Operators and Logical Variables Logical Operators and Functions Conditional Statements For Loops While Loops Debugging
More informationStatic program checking and verification
Chair of Software Engineering Software Engineering Prof. Dr. Bertrand Meyer March 2007 June 2007 Slides: Based on KSE06 With kind permission of Peter Müller Static program checking and verification Correctness
More informationQuiz Determine the output of the following program:
Quiz Determine the output of the following program: 1 Structured Programming Using C++ Lecture 4 : Loops & Iterations Dr. Amal Khalifa Dr. Amal Khalifa - Spring 2012 1 Lecture Contents: Loops While do-while
More informationLecture 1 Contracts. 1 A Mysterious Program : Principles of Imperative Computation (Spring 2018) Frank Pfenning
Lecture 1 Contracts 15-122: Principles of Imperative Computation (Spring 2018) Frank Pfenning In these notes we review contracts, which we use to collectively denote function contracts, loop invariants,
More informationIn-Class Exercises. ETH Zurich. November
In-Class Exercises ETH Zurich November 28 2012 1 Contracts ETH students recently designed a special kind of oven for cooking potatoes. Here are some facts about such an oven: each oven is equipped with
More informationEXAMINATIONS 2009 END-OF-YEAR. COMP 202 / SWEN 202 Formal Methods of Computer Science / Formal Foundations of Software Engineering
T E W H A R E W Ā N A N G A O T E Ū P O K O O T E I K A A M Ā U I VUW V I C T O R I A UNIVERSITY OF WELLINGTON EXAMINATIONS 2009 END-OF-YEAR COMP 202 / SWEN 202 Formal Methods of Computer Science / Formal
More informationFondamenti della Programmazione: Metodi Evoluti. Lezione 5: Invariants and Logic
Fondamenti della Programmazione: Metodi Evoluti Prof. Enrico Nardelli Lezione 5: Invariants and Logic versione originale: http://touch.ethz.ch Reminder: contracts Associated with an individual feature:
More informationLast Time. University of British Columbia CPSC 111, Intro to Computation Alan J. Hu. Readings
University of British Columbia CPSC 111, Intro to Computation Alan J. Hu Writing a Simple Java Program Intro to Variables Readings Your textbook is Big Java (3rd Ed). This Week s Reading: Ch 2.1-2.5, Ch
More informationMosig M1 - PLSCD Written exam
Mosig M1 - PLSCD 0809 - Written exam 1 Exercise I : Operational semantics - a debugger In this exercise we consider program execution with the help of a debugger. This execution will be defined on an intermediate
More informationLoops! Loops! Loops! Lecture 5 COP 3014 Fall September 25, 2017
Loops! Loops! Loops! Lecture 5 COP 3014 Fall 2017 September 25, 2017 Repetition Statements Repetition statements are called loops, and are used to repeat the same code mulitple times in succession. The
More informationLecture Transcript While and Do While Statements in C++
Lecture Transcript While and Do While Statements in C++ Hello and welcome back. In this lecture we are going to look at the while and do...while iteration statements in C++. Here is a quick recap of some
More informationMotivating Examples (1.1) Selections. Motivating Examples (1.2) Learning Outcomes. EECS1022: Programming for Mobile Computing Winter 2018
Motivating Examples (1.1) Selections EECS1022: Programming for Mobile Computing Winter 2018 CHEN-WEI WANG 1 import java.util.scanner; 2 public class ComputeArea { 3 public static void main(string[] args)
More information1 Elementary number theory
Math 215 - Introduction to Advanced Mathematics Spring 2019 1 Elementary number theory We assume the existence of the natural numbers and the integers N = {1, 2, 3,...} Z = {..., 3, 2, 1, 0, 1, 2, 3,...},
More informationReasoning About Imperative Programs. COS 441 Slides 10
Reasoning About Imperative Programs COS 441 Slides 10 The last few weeks Agenda reasoning about functional programming It s very simple and very uniform: substitution of equal expressions for equal expressions
More informationCSCD43: Database Systems Technology. Lecture 4
CSCD43: Database Systems Technology Lecture 4 Wael Aboulsaadat Acknowledgment: these slides are based on Prof. Garcia-Molina & Prof. Ullman slides accompanying the course s textbook. Steps in Database
More information