Call- by- Reference Func0ons Procedural Abstrac0ons Numerical Conversions CS 16: Solving Problems with Computers I Lecture #9
|
|
- Horatio Williamson
- 5 years ago
- Views:
Transcription
1 Call- by- Reference Func0ons Procedural Abstrac0ons Numerical Conversions CS 16: Solving Problems with Computers I Lecture #9 Ziad Matni Dept. of Computer Science, UCSB
2 Announcements Homework #8 due today Lab #5 is due on Friday at Noon Homework Solu>ons are now online at: hap://cs.ucsb.edu/~zmatni/cs16/hwsolu>ons/ Your grades are NOT ON GAUCHOSPACE anymore. Instead go to: hap://cs.ucsb.edu/~zmatni/cs16/cs16grades_fa2016.htm 10/25/16 Matni, CS16, Fa16 2
3 Lecture Outline Call- By- Reference Parameters Using Procedural Abstrac>on Binary Arithme>c 1: Conversions 10/25/16 Matni, CS16, Fa16 3
4 Call- by- Value vs Call- by- Reference When you call a func>on, your arguments are ge]ng passed on as values At least, with what we ve seen so far The call func(a, b) passes on the values of a and b You can also call a func>on with your arguments used as references to the actual variable loca>on in memory Why would we want to do that? 10/25/16 Matni, CS16, Fa16 4
5 Call- by- Reference Parameters Call-by-reference parameters allow us to change the variable used in the function call Arguments for call-by-reference parameters must be variables, not numbers i.e. fn(var), not fn(5) We use the ampersand symbol (&) to distinguish a variable as being called-by-reference, in a function definition 10/25/16 Matni, CS16, Fa16 5
6 Call- by- Reference Parameters Recall that, up until now, we have changed the values of formal parameters in a function body, but we have not changed the arguments found in the function call! Example: when you call func(a, b, c), you might get a returned value for func, but a, b, and c do not change after the call. So if you want to get an input (via cin) using a func>on using call- by- value, it wouldn t work! 10/25/16 Matni, CS16, Fa16 6
7 Call- by- Reference Example void get_input(double& f_variable) { using namespace std; cout << Convert a Fahrenheit temperature << to Celsius.\n << Enter a temperature in Fahrenheit: ; cin >> f_variable; } & symbol (ampersand) identifies f_variable as a call-by-reference parameter Has to be used in both declaration and definition! 10/25/16 Matni, CS16, Fa16 7
8 Call- By- Reference Details Call-by-reference works almost as if the argument variable itself is substituted for the formal parameter, not the argument s value In reality, it s the memory location of the argument variable that is given to the formal parameter Whatever is done to a formal parameter in the function body, is actually done to the value at the memory location of the argument variable 10/25/16 Matni, CS16, Fa16 8
9 Call- by- Reference Behavior Assume variables first and second are assigned memory addresses 1010 and 1012 by the compiler, respec>vely Now a func>on call executes: get_numbers(first, second); The func>on is defined as: void get_numbers(int& first, int& second) { cout << Enter two integers: cin >> first >> second; } The func>on may as well say: void get_numbers(the int variable at memory location 1010, the int variable at memory location 1012) { cout << Enter two integers: cin >> the variable at memory location 1010; >> the variable at memory location 1012; } 10/25/16 Matni, CS16, Fa16 9
10 Call- by- Reference Behavior Ajer the func>on is called, the values of first and second are changed not just in the func>on, but in actual memory The values of first and second are in the calling block 10/25/16 Matni, CS16, Fa16 10
11 Call by- Reference vs by- Value Call-by-reference The function call: f(age); Memory Name Location Contents Call-by-value The function call: f(age); age initial 1002 A hours void f(int& ref_par); void f(int var_par); 10/25/16 Matni, CS16, Fa16 11
12 Example: swap_values void swap(int& variable1, int& variable2) { int temp = variable1; variable1 = variable2; variable2 = temp; } If called with swap(first_num, second_num); first_num is substituted for variable1 in the parameter list second_num is substituted for variable2 in the parameter list temp is assigned the value of variable1 (first_num) since the next line will loose the value in first_num variable1 (first_num) is assigned the value in variable2 (second_num) variable2 (second_num) is assigned the original value of variable1 (first_num) which was stored in temp 10/25/16 Matni, CS16, Fa16 12
13 Mixed Parameter Lists Call-by-value and call-by-reference parameters can be mixed in the same function Example: void good_stuff(int& par1, int par2, double& par3); par1 and par3 are call-by-reference formal parameters Changes in par1 and par3 change the argument variable par2 is a call-by-value formal parameter Changes in par2 do not change the argument variable 10/25/16 Matni, CS16, Fa16 13
14 Choosing Parameter Types How do you decide whether a call-by-reference or call-by-value formal parameter is needed? Does the function need to change the value of the variable used as an argument? Yes? Use a call-by-reference formal parameter No? Use a call-by-value formal parameter 10/25/16 Matni, CS16, Fa16 14
15 Cau>on! Inadvertent Local Variables Forgetting the ampersand (&) creates a call-by-value parameter The value of the variable will not be changed The formal parameter is a local variable that has no effect outside the function Hard error to find it looks right! 10/25/16 Matni, CS16, Fa16 15
16 10/25/16 Matni, CS16, Fa16 16
17 Using Procedural Abstrac>on Functions should be designed so they can be used as black boxes To use a function, the declaration and comment should be sufficient Programmer should not need to know the details of the function to use it 10/25/16 Matni, CS16, Fa16 17
18 Func>ons Calling Func>ons A function body may contain a call to another function The called function declaration must still appear before it is called Functions cannot be defined in the body of another function void order (int&, int&); void swap_values (int&, int&); int main () { order (a, b); return 0; } void order(int& n1, int& n2) { if (n1 > n2) swap_values(n1, n2); } void swap_values(int& n1, int& n2) { int temp = n2; n2 = n1; n1 = temp; } 10/25/16 Matni, CS16, Fa16 18
19 Pre- and Post- Condi>ons Concepts of pre-condition and post-condition Pre-condition States what is assumed to be true when the function is called Function should not be used unless the precondition holds Post-condition Describes the effect of the function call Tells what will be true after the function is executed (when the precondition holds) If the function returns a value, that value is described Changes to call-by-reference parameters are described 10/25/16 Matni, CS16, Fa16 19
20 swap_values revisited Using preconditions and postconditions the declaration of swap_values becomes: void swap_values(int& n1, int& n2); //Precondition: variable1 and variable2 have // been given values // Postcondition: The values of variable1 and // variable2 have been interchanged 10/25/16 Matni, CS16, Fa16 20
21 Func>on Celsius Preconditions and post-conditions make the declaration for celsius(): double celsius(double farenheit); //Precondition: fahrenheit is a temperature // expressed in degrees Fahrenheit //Postcondition: Returns the equivalent temperature // expressed in degrees Celsius 10/25/16 Matni, CS16, Fa16 21
22 Why use Pre- and Post- condi>ons? Pre-conditions and post-conditions should be the first step in designing a function Specify what a function should do: Always specify what a function should do before designing how the function will do it This minimizes design errors and time wasted writing code that doesn t match the task at hand 10/25/16 Matni, CS16, Fa16 22
23 Case Study: Supermarket Pricing Problem definition Determine the retail price of an item, given a suitable input 5% markup if item should sell in a week 10% markup if item expected to take more than a week 5% for up to 7 days, changes to 10% at 8 days Primary analysis Input: The wholesale price and the estimate of days until item sells (turnover) Output: The retail price of the item What subtasks do you think we need here? 10/25/16 Matni, CS16, Fa16 23
24 Supermarket Pricing: Problem Analysis Three main subtasks: Input the data Compute the retail price of the item Output the results Each task can be implemented with a function Note the use of call-by-value and call-by-reference parameters in the following function declarations (next slide) 10/25/16 Matni, CS16, Fa16 24
25 Supermarket Pricing: Func>on get_input void get_input(double& cost, int& turnover); //Precondition: User is ready to enter values correctly. //Postcondition: The value of cost has been set to // the wholesale cost of one item. // // The value of turnover has been // set to the expected number of // days until the item is sold. 10/25/16 Matni, CS16, Fa16 25
26 Supermarket Pricing: Func>on price double price(double cost, int turnover); //Precondition: cost is the wholesale cost of one item // turnover is the expected // number of days until the item is sold. // //Postcondition: returns the retail price of the item 10/25/16 Matni, CS16, Fa16 26
27 Supermarket Pricing: Func>on give_output void give_output(double cost, int turnover, double price); //Precondition: cost is the wholesale cost of one item; // turnover is the expected time until sale // of the item; // price is the retail price of the item. // //Postcondition: The values of cost, turnover, and price // are written to the screen. 10/25/16 Matni, CS16, Fa16 27
28 Supermarket Pricing: main() func>on With the functions declared, we can write the main function: int main() { double wholesale_cost, retail_price; int shelf_time; get_input(wholesale_cost, shelf_time); retail_price = price(wholesale_cost, shelf_time); give_output(wholesale_cost, shelf_time, retail_price); return 0; } 10/25/16 Matni, CS16, Fa16 28
29 Supermarket Pricing: Algorithm Design of price func>on Implementations of get_input and give_output are straightforward, so we ll concentrate on the price function pseudocode for the price function: If turnover <= 7 days then return (cost + 5% of cost); else return (cost + 10% of cost); 10/25/16 Matni, CS16, Fa16 29
30 Supermarket Pricing: Constants for the price func>on The mark-up values and the threshold number won t change, so we can represent them with constants: const double LOW_MARKUP = 0.05; // 5% const double HIGH_MARKUP = 0.10; // 10% const int THRESHOLD = 7; // At 8 days use HIGH_MARKUP 10/25/16 Matni, CS16, Fa16 30
31 Supermarket Pricing: Coding the price func>on The body of the price function { if (turnover <= THRESHOLD) return ( cost + (LOW_MARKUP * cost) ) ; else return ( cost + ( HIGH_MARKUP * cost) ) ; } See the complete program in the textbook, Chapter 5, pages /25/16 Matni, CS16, Fa16 31
32 Supermarket Pricing : Program Tes>ng What are some testing strategies that we can use? TEST COVERAGE: Covering all possible conditions of inputs and checking the outputs against expected results. Use data that tests both the high and low markup cases Test boundary conditions, where the program is expected to change behavior or make a choice In function price, 7 days is a boundary condition Test for exactly 7 days as well as one day more and one day less 10/25/16 Matni, CS16, Fa16 32
33 10/25/16 Matni, CS16, Fa16 33
34 Coun>ng Numbers in Different Bases We normally count in 10s Base 10: decimal numbers Number symbols are 0 thru 9 Computers count in 2s Base 2: binary numbers Number symbols are 0 and 1 Represented with 1 bit (2 1 = 2) Other convenient bases in computer architecture: Base 8: octal numbers Number symbols are 0 thru 7 Represented with 3 bits (2 3 = 8) Base 16: hexadecimal numbers Number symbols are 0 thru F A = 10, B = 11, C = 12, D = 13, E = 14, F = 15 Represented with 4 bits (2 4 = 16) Why are 4 bit representa0ons convenient??? 10/25/16 Matni, CS16, Fa16 34
35 Natural Numbers Coun>ng 642 as is coun>ng in TENS (aka BASE 10) There are 6 HUNDREDS There are 4 TENS There are 2 ONES = nd posi>on 1 st posi>on 0 th posi>on 10/25/16 Matni, CS16, Fa16 35
36 Posi>onal Nota>on in Decimal Continuing with our example 642 in base 10 positional notation is: 6 x x x 10 0 = 6 x 100 = 600 = 4 x 10 = 40 = 2 x 1 = 2 = 642 in base 10 10/25/16 Matni, CS16, Fa16 36
37 Posi>onal Nota>on What if 642 is expressed in the base of 13? 6 x 13 2 = 6 x 169 = x 13 1 = 4 x 13 = x 13º = 2 x 1 = 2 = 1068 in base 10 Anything à DEC So, 642 in base 13 is equivalent to 1068 in base 10 10/25/16 Matni, CS16, Fa16 37
38 10/25/16 Matni, CS16, Fa16 38
39 X 10/25/16 Matni, CS16, Fa16 39
40 2 10/25/16 Matni, CS16, Fa16 40
41 Posi>onal Nota>on in Binary in base 2 positional notation is: 1 x 2 4 = 1 x 16 = x 2 3 = 1 x 8 = x 2 2 = 1 x 4 = x 2 1 = 1 x 2 = x 2 0 = 1 x 1 = 1 So, 1011 in base 2 is = 27 in base 10 10/25/16 Matni, CS16, Fa16 41
42 Conver>ng Binary to Decimal Q: What is the decimal equivalent of the binary number ? A: Look for the posieon of the digits in the number. This one has 7 digits, therefore posieons 0 thru x 2 6 = 1 x 64 = x 2 5 = 1 x 32 = x 2 4 = 0 x 16 = x 2 3 = 1 x 8 = x 2 2 = 1 x 4 = x 2 1 = 1 x 2 = x 2º = 0 x 1 = 0 = 110 in base 10 10/25/16 Matni, CS16, Fa16 42
43 Conver>ng Binary to Octal and Hexadecimal (or any base that s a power of 2) Binary is 1 bit Octal is Hexadecimal is 3 bits 4 bits Use the group the bits technique Always start from the least significant digit Group every 3 bits together for bin à oct Group every 4 bits together for bin à hex 10/25/16 Matni, CS16, Fa16 43
44 Conver>ng Binary to Octal and Hexadecimal Take the example: to octal: in octal to hexadecimal: A6 in hexadecimal 10/25/16 Matni, CS16, Fa16 44
45 Conver>ng Decimal to Other Bases Algorithm for conver>ng number in base 10 to other bases While (the quotient is not zero) 1. Divide the decimal number by the new base 2. Make the remainder the next digit to the left in the answer 3. Replace the original decimal number with the quotient 4. Repeat until your quotient is zero Example: What is 98 (base 10) in base 8? 98 / 8 = 12 R 2 12 / 8 = 1 R 4 1 / 8 = 0 R /25/16 Matni, CS16, Fa16 45
46 Conver>ng Decimal into Binary Convert 54 (base 10) into binary and hex: 54 / 2 = 27 R 0 27 / 2 = 13 R 1 13 / 2 = 6 R 1 6 / 2 = 3 R 0 3 / 2 = 1 R 1 1 / 2 = 0 R 1 54 (decimal) = (binary) = 36 (hex) Sanity check: = = 54 10/25/16 Matni, CS16, Fa16 46
47 TO DOs Homework #9 due Thursday 10/27 Lab #5 Due Friday, 10/28, at noon 10/25/16 Matni, CS16, Fa16 47
48 10/25/16 Matni, CS16, Fa16 48
Chapter void Functions. Overview. Functions for All Subtasks. void-functions. Using a void-function. void-function Definition
Chapter 5 Functions for All Subtasks Overview 5.1 void Functions 5.2 Call-By-Reference Parameters 5.3 Using Procedural Abstraction 5.4 Testing and Debugging 5.5 General Debugging Techniques Copyright 2011
More informationC++ Basics - 3 Rahul
C++ Basics - 3 Rahul Deodhar @rahuldeodhar www.rahuldeodhar.com rahuldeodhar@gmail.com Topics for today Func@ons Classwork Topics for today Homework Program Others Procedural Abstrac@on & Func@ons Top
More informationDesign and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7
Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!
More informationFunc%ons in C++ Part 2 CS 16: Solving Problems with Computers I Lecture #5
Func%ons in C++ Part 2 CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB NO more adds for this class Announcements If you want to switch labs, switch with SOMEONE
More informationNumerical Conversions Intro to Strings in C/C++ CS 16: Solving Problems with Computers I Lecture #8
Numerical Conversions Intro to Strings in C/C++ CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week! Grades
More informationVoid Functions Call-By-Reference Parameters Using Procedural Abstraction Testing and Debugging General Debugging Techniques
Chapter 5 In this chapter, you will learn about: Void Functions Call-By-Reference Parameters Using Procedural Abstraction Testing and Debugging General Debugging Techniques void Functions Recall a Function
More informationProgrammer-Defined Functions
Functions Programmer-Defined Functions Local Variables in Functions Overloading Function Names void Functions, Call-By-Reference Parameters in Functions Programmer-Defined Functions function declaration
More informationCall-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5
Call-by-Type Functions in C++ Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS!
More informationMore on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8
More on Func*ons Command Line Arguments CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #7 due today Lab #4 is due on Monday at 8:00
More informationChapter 5. Functions for All Subtasks. Copyright 2015 Pearson Education, Ltd.. All rights reserved.
Chapter 5 Fuctios for All Subtasks Copyright 2015 Pearso Educatio, Ltd.. All rights reserved. Overview 5.1 void Fuctios 5.2 Call-By-Referece Parameters 5.3 Usig Procedural Abstractio 5.4 Testig ad Debuggig
More informationBinary Arithme-c CS 64: Computer Organiza-on and Design Logic Lecture #2
Binary Arithme-c CS 64: Computer Organiza-on and Design Logic Lecture #2 Ziad Matni Dept. of Computer Science, UCSB Adding this Class The class is s>ll full at 80 people Unless others drops, people on
More informationMore on Arrays CS 16: Solving Problems with Computers I Lecture #13
More on Arrays CS 16: Solving Problems with Computers I Lecture #13 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #12 due today No homework assigned today!! Lab #7 is due on Monday,
More informationArrays 2 CS 16: Solving Problems with Computers I Lecture #12
Arrays 2 CS 16: Solving Problems with Computers I Lecture #12 Ziad Matni Dept. of Computer Science, UCSB Material: Post- Midterm #1 Lecture 7 thru 12 Homework, Labs, Lectures, Textbook Tuesday, 11/14 in
More informationOverloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6
Overloading Functions & Command Line Use in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB A reminder about Labs Announcements Please make sure you READ
More informationCSCI 123 Introduction to Programming Concepts in C++
CSCI 123 Introduction to Programming Concepts in C++ Brad Rippe Function Pass By Reference What s wrong? for(int star = 0; star < 10; star++) { } for(star = 0; star < 10; star++) { } Style Open and End
More informationBinary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Fall 2018
Binary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB Administrative Stuff The class is full I will not be adding more ppl
More informationDesign and Debug: Essen.al Concepts CS 16: Solving Problems with Computers I Lecture #8
Design and Debug: Essen.al Concepts CS 16: Solving Problems with Computers I Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Outline Midterm# 1 Grades Review of key concepts Loop design help Ch.
More informationProgramming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11
Programming with Arrays Intro to Pointers CS 16: Solving Problems with Computers I Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Thursday, 5/17 in this classroom Starts at 2:00 PM **SHARP** Please
More informationVectors and Pointers CS 16: Solving Problems with Computers I Lecture #13
Vectors and Pointers CS 16: Solving Problems with Computers I Lecture #13 Ziad Matni Dept. of Computer Science, UCSB Announcements Midterm grades will be available on Tuesday, 11/21 If you *need* to know
More informationBinary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2
Binary Arithmetic CS 64: Computer Organization and Design Logic Lecture #2 Ziad Matni Dept. of Computer Science, UCSB Adding this Class The class is full I will not be adding more ppl L Even if others
More informationDesigning Loops and General Debug Pre-Defined Functions in C++ CS 16: Solving Problems with Computers I Lecture #6
Designing Loops and General Debug Pre-Defined Functions in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #5 due today Lab #3
More informationLinked Lists CS 16: Solving Problems with Computers I Lecture #16
Linked Lists CS 16: Solving Problems with Computers I Lecture #16 Ziad Matni Dept. of Computer Science, UCSB Material: Everything we ve done Homework, Labs, Lectures, Textbook Tuesday, 12/12 in this classroom
More informationMore Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6
More Examples Using Functions and Command-Line Arguments in C++ CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB
More informationIntroduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p.
Introduction to Computers and C++ Programming p. 1 Computer Systems p. 2 Hardware p. 2 Software p. 7 High-Level Languages p. 8 Compilers p. 9 Self-Test Exercises p. 11 History Note p. 12 Programming and
More information(More) Fun with Pointers and Linked Lists! CS 16: Solving Problems with Computers I Lecture #17
(More) Fun with Pointers and Linked Lists! CS 16: Solving Problems with Computers I Lecture #17 Ziad Matni Dept. of Computer Science, UCSB Administrative Homework situation: Labs: NO MORE HOMEWORK! J Lab10
More informationMore Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4
More Flow Control Functions in C++ CS 16: Solving Problems with Computers I Lecture #4 Ziad Matni Dept. of Computer Science, UCSB Administrative CHANGED T.A. OFFICE/OPEN LAB HOURS! Thursday, 10 AM 12 PM
More informationExercises with Linked Lists CS 16: Solving Problems with Computers I Lecture #15
Exercises with Linked Lists CS 16: Solving Problems with Computers I Lecture #15 Ziad Matni Dept. of Computer Science, UCSB The head of a List The box labeled head, in Display 13.1, is not a node, but
More informationMIPS Instruc,ons CS 64: Computer Organiza,on and Design Logic Lecture #8
MIPS Instruc,ons CS 64: Computer Organiza,on and Design Logic Lecture #8 Ziad Matni Dept. of Computer Science, UCSB Administra:ve Your midterm exam is next week on Thurs. 2/15 2/8/18 Matni, CS64, Wi18
More informationUsing the MIPS Calling Convention. Recursive Functions in Assembly. CS 64: Computer Organization and Design Logic Lecture #10 Fall 2018
Using the MIPS Calling Convention Recursive Functions in Assembly CS 64: Computer Organization and Design Logic Lecture #10 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB Administrative Lab
More informationBinary Arithmetic Intro to Assembly Language CS 64: Computer Organization and Design Logic Lecture #3
Binary Arithmetic Intro to Assembly Language CS 64: Computer Organization and Design Logic Lecture #3 Ziad Matni Dept. of Computer Science, UCSB Adding this Class The class is full I will not be adding
More informationIntroduction to C++ General Rules, Conventions and Styles CS 16: Solving Problems with Computers I Lecture #2
Introduction to C++ General Rules, Conventions and Styles CS 16: Solving Problems with Computers I Lecture #2 Ziad Matni Dept. of Computer Science, UCSB Administrative This class is currently FULL and
More informationFile I/O in Python CS 8: Introduction to Computer Science Lecture #11
File I/O in Python CS 8: Introduction to Computer Science Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Administrative Midterm #2 is next week on Thursday 5/18! Tutoring/Review Session Available!
More informationCharacter Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10
Character Functions & Manipulators Arrays in C++ CS 16: Solving Problems with Computers I Lecture #10 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline Useful character manipulators & functions
More informationComputer Programming
Computer Programming Dr. Deepak B Phatak Dr. Supratik Chakraborty Department of Computer Science and Engineering Session: Parameter Passing in Function Calls Dr. Deepak B. Phatak & Dr. Supratik Chakraborty,
More informationIntroduc)on to Arrays in C++ Review for Midterm #2 CS 16: Solving Problems with Computers I Lecture #12
Introduc)on to Arrays in C++ Review for Midterm #2 CS 16: Solving Problems with Computers I Lecture #12 Ziad Matni Dept. of Computer Science, UCSB Announcements MIDTERM #2 on THURSDAY Homework #11 due
More informationMore on Strings in C++ Arrays CS 16: Solving Problems with Computers I Lecture #11
More on Strings in C++ Arrays CS 16: Solving Problems with Computers I Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Announcements Heads- Up: Midterm #2 is NEXT Tuesday (11/14) Covers everything
More informationMIPS Assembly: More about MIPS Instructions Using Functions in MIPS CS 64: Computer Organization and Design Logic Lecture #8
MIPS Assembly: More about MIPS Instructions Using Functions in MIPS CS 64: Computer Organization and Design Logic Lecture #8 Ziad Matni Dept. of Computer Science, UCSB CS 64, Spring 18, Midterm#1 Exam
More informationWelcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Winter 2018
Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Winter 2018 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS64 FOR
More informationAlgorithms for Arrays Vectors Pointers CS 16: Solving Problems with Computers I Lecture #14
Algorithms for Arrays Vectors Pointers CS 16: Solving Problems with Computers I Lecture #14 Ziad Matni Dept. of Computer Science, UCSB Administra:ve Turn in Homework #12 Homework #13 is due Tuesday Lab
More informationMIPS and Basic Assembly Language CS 64: Computer Organization and Design Logic Lecture #4
MIPS and Basic Assembly Language CS 64: Computer Organization and Design Logic Lecture #4 Ziad Matni Dept. of Computer Science, UCSB This Week on Didja Know Dat?! 4/12/18 Matni, CS64, Sp18 2 Why do CPU
More informationIntroduc)on to C++ CS 16: Solving Problems with Computers I Lecture #2
Introduc)on to C++ CS 16: Solving Problems with Computers I Lecture #2 Ziad Matni Dept. of Computer Science, UCSB A Word About Registra>on for CS16 FOR THOSE OF YOU NOT YET REGISTERED: There s a LONG waitlist
More information} Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = / 2; 3. int x = 5 / ; 4. double x = 5 / 2.
Class #10: Understanding Primitives and Assignments Software Design I (CS 120): M. Allen, 19 Sep. 18 Java Arithmetic } Evaluate the following expressions: 1. int x = 5 / 2 + 2; 2. int x = 2 + 5 / 2; 3.
More informationProblem Solving with C++
GLOBAL EDITION Problem Solving with C++ NINTH EDITION Walter Savitch Kendrick Mock Ninth Edition PROBLEM SOLVING with C++ Problem Solving with C++, Global Edition Cover Title Copyright Contents Chapter
More informationFile Input / Output Streams in C++ CS 16: Solving Problems with Computers I Lecture #9
File Input / Output Streams in C++ CS 16: Solving Problems with Computers I Lecture #9 Ziad Matni Dept. of Computer Science, UCSB Midterm Exam grades out! Announcements If you want to see your exams, visit
More informationSolving Problems Flow Control in C++ CS 16: Solving Problems with Computers I Lecture #3
Solving Problems Flow Control in C++ CS 16: Solving Problems with Computers I Lecture #3 Ziad Matni Dept. of Computer Science, UCSB A Word About Registration for CS16 FOR THOSE OF YOU NOT YET REGISTERED:
More informationFlow Control in C++ Condi&onals & Loops CS 16: Solving Problems with Computers I Lecture #4
Flow Control in C++ Condi&onals & Loops CS 16: Solving Problems with Computers I Lecture #4 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #3 due today Homework #4 is assigned Lab #2
More informationStrings in Python: Cipher Applications CS 8: Introduction to Computer Science Lecture #7
Strings in Python: Cipher Applications CS 8: Introduction to Computer Science Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Administrative Midterm #1 grades will be available soon! Turn in Homework
More informationSlide Set 1. for ENEL 339 Fall 2014 Lecture Section 02. Steve Norman, PhD, PEng
Slide Set 1 for ENEL 339 Fall 2014 Lecture Section 02 Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary Fall Term, 2014 ENEL 353 F14 Section
More informationFunction Calling Conventions 2 CS 64: Computer Organization and Design Logic Lecture #10
Function Calling Conventions 2 CS 64: Computer Organization and Design Logic Lecture #10 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline More on MIPS Calling Convention Functions calling functions
More informationMIPS and Basic Assembly Language CS 64: Computer and Design Logic Lecture #4
MIPS and Basic Assembly Language CS 64: Computer Organiza@on and Design Logic Lecture #4 Ziad Matni Dept. of Computer Science, UCSB This Week on Didja Know Dat?! 1/25/18 Matni, CS64, Wi18 2 Lecture Outline
More informationWelcome to Solving Problems with Computers I
Welcome to Solving Problems with Computers I CS 16: Solving Problems with Computers I Lecture #1 Ziad Matni Dept. of Computer Science, UCSB Image from agorolabs on slideshare.com A Word About Registration
More informationDynamic Arrays Makefiles and Mul3ple File Compiles
Dynamic Arrays Makefiles and Mul3ple File Compiles CS 16: Solving Problems with Computers I Lecture #14 Ziad Matni Dept. of Computer Science, UCSB WHAT THE NEXT 3 WEEKS LOOK LIKE MONDAY TUESDAY WEDNESDAY
More informationChapter 9: Pointers Co C pyr py igh i t gh Pear ea so s n n E ducat ca io i n, n Inc. n c.
Chapter 9: Pointers 9.1 Getting the Address of a Variable C++ Variables [ not in book ] A Variable has all of the following attributes: 1. name 2. type 3. size 4. value 5. storage class static or automatic
More informationPre- Defined Func-ons in C++ Review for Midterm #1
Pre- Defined Func-ons in C++ Review for Midterm #1 CS 16: Solving Problems with Computers I Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #5 due today Homework #6 issued
More informationFunctions and the MIPS Calling Convention 2 CS 64: Computer Organization and Design Logic Lecture #11
Functions and the MIPS Calling Convention 2 CS 64: Computer Organization and Design Logic Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Administrative Lab 5 due end of day tomorrow Midterm: to
More informationGetting started with C++ (Part 2)
Getting started with C++ (Part 2) CS427: Elements of Software Engineering Lecture 2.2 11am, 16 Jan 2012 CS427 Getting started with C++ (Part 2) 1/22 Outline 1 Recall from last week... 2 Recall: Output
More informationFlow Control in C++ 1 CS 16: Solving Problems with Computers I Lecture #4
low Control in C++ 1 CS 16: Solving Problems with Computers I Lecture #4 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #3 due today Please take out any staples or paper clips Lab #2
More informationCompiling C++ Programs Flow Control in C++ CS 16: Solving Problems with Computers I Lecture #3
Compiling C++ Programs Flow Control in C++ CS 16: Solving Problems with Computers I Lecture #3 Ziad Matni Dept. of Computer Science, UCSB Compiling Programs in C++ Input and Output Streams Simple Flow
More informationBasic memory model Using functions Writing functions. Basics Prototypes Parameters Return types Functions and memory Names and namespaces
Basic memory model Using functions Writing functions Basics Prototypes Parameters Return types Functions and memory Names and namespaces When a program runs it requires main memory (RAM) space for Program
More informationCompiling with Multiple Files The Importance of Debugging CS 16: Solving Problems with Computers I Lecture #7
Compiling with Multiple Files The Importance of Debugging CS 16: Solving Problems with Computers I Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Programming in Multiple Files The Magic of Makefiles!
More informationBasic Data Types and Operators CS 8: Introduction to Computer Science, Winter 2019 Lecture #2
Basic Data Types and Operators CS 8: Introduction to Computer Science, Winter 2019 Lecture #2 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB Your Instructor Your instructor: Ziad Matni, Ph.D(zee-ahd
More informationWeek 3. Function Definitions. Example: Function. Function Call, Return Statement. Functions & Arrays. Gaddis: Chapters 6 and 7.
Week 3 Functions & Arrays Gaddis: Chapters 6 and 7 CS 5301 Fall 2015 Jill Seaman 1 Function Definitions! Function definition pattern: datatype identifier (parameter1, parameter2,...) { statements... Where
More informationAdvanced Flow Control CS 16: Solving Problems with Computers I Lecture #5
Advanced Flow Control CS 16: Solving Problems with Computers I Lecture #5 Ziad Matni Dept. of Computer Science, UCSB Announcements Demos done in class can be found at: hcp://www.cs.ucsb.edu/~zmatni/cs16s17/demos
More informationLecture 7. Log into Linux New documents posted to course webpage
Lecture 7 Log into Linux New documents posted to course webpage Coding style guideline; part of project grade is following this Homework 4, due on Monday; this is a written assignment Project 1, due next
More informationCPE 101, reusing/mod slides from a UW course (used by permission) Lecture 5: Input and Output (I/O)
CPE 101, reusing/mod slides from a UW course (used by permission) Lecture 5: Input and Output (I/O) Overview (5) Topics Output: printf Input: scanf Basic format codes More on initializing variables 2000
More informationWelcome to Computer Organization and Design Logic
Welcome to Computer Organization and Design Logic CS 64: Computer Organization and Design Logic Lecture #1 Fall 2018 Ziad Matni, Ph.D. Dept. of Computer Science, UCSB A Word About Registration for CS64
More informationPhysics 2660: Fundamentals of Scientific Computing. Lecture 3 Instructor: Prof. Chris Neu
Physics 2660: Fundamentals of Scientific Computing Lecture 3 Instructor: Prof. Chris Neu (chris.neu@virginia.edu) Announcements Weekly readings will be assigned and available through the class wiki home
More informationStrings in Python: Cipher Applications CS 8: Introduction to Computer Science, Winter 2018 Lecture #9
Strings in Python: Cipher Applications CS 8: Introduction to Computer Science, Winter 2018 Lecture #9 Ziad Matni Dept. of Computer Science, UCSB Administrative Homework #4 is due today Homework #5 is out
More informationNote 12/1/ Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance...
CISC 2000 Computer Science II Fall, 2014 Note 12/1/2014 1 Review of Inheritance Practice: Please write down 10 most important facts you know about inheritance... (a) What s the purpose of inheritance?
More informationBBM 101 Introduc/on to Programming I Fall 2014, Lecture 3. Aykut Erdem, Erkut Erdem, Fuat Akal
BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3 Aykut Erdem, Erkut Erdem, Fuat Akal 1 Today Introduc/on to Programming Basic Concepts Developing Algorithms Crea
More informationC++ Basics 1 CS 16: Solving Problems with Computers I Lecture #3
C++ Basics 1 CS 16: Solving Problems with Computers I Lecture #3 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #2 due today Please take out any staples or paper clips Lab #1 is due
More informationFile Input/Output Streams in C++ CS 16: Solving Problems with Computers I Lecture #10
File Input/Output Streams in C++ CS 16: Solving Problems with Computers I Lecture #10 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #9 due today Homework #10 is out Midterm #2 is on
More informationLecture 23: Pointer Arithmetic
Lecture 23: Pointer Arithmetic Wai L. Khoo Department of Computer Science City College of New York November 29, 2011 Wai L. Khoo (CS@CCNY) Lecture 23 November 29, 2011 1 / 14 Pointer Arithmetic Pointer
More informationComputer Science II Lecture 1 Introduction and Background
Computer Science II Lecture 1 Introduction and Background Discussion of Syllabus Instructor, TAs, office hours Course web site, http://www.cs.rpi.edu/courses/fall04/cs2, will be up soon Course emphasis,
More informationMaciej Sobieraj. Lecture 1
Maciej Sobieraj Lecture 1 Outline 1. Introduction to computer programming 2. Advanced flow control and data aggregates Your first program First we need to define our expectations for the program. They
More informationMIPS Assembly: Practice Questions for Midterm 1 Saving to and Loading from Memory CS 64: Computer Organization and Design Logic Lecture #6
MIPS Assembly: Practice Questions for Midterm 1 Saving to and Loading from Memory CS 64: Computer Organization and Design Logic Lecture #6 Ziad Matni Dept. of Computer Science, UCSB Tuesday, 4/24 in this
More informationCHAPTER 2 (b) : AND CODES
DKT 122 / 3 DIGITAL SYSTEMS 1 CHAPTER 2 (b) : NUMBER SYSTEMS OPERATION AND CODES m.rizal@unimap.edu.my sitizarina@unimap.edu.my DECIMAL VALUE OF SIGNED NUMBERS SIGN-MAGNITUDE: Decimal values of +ve & -ve
More informationFile I/O and String Manipula3ons CS 16: Solving Problems with Computers I Lecture #11
File I/O and String Manipula3ons CS 16: Solving Problems with Computers I Lecture #11 Ziad Matni Dept. of Computer Science, UCSB Announcements Homework #10 due today Homework #11 is out Midterm #2 is on
More informationOctal & Hexadecimal Number Systems. Digital Electronics
Octal & Hexadecimal Number Systems Digital Electronics What, More Number Systems? Why do we need more number systems? Humans understand decimal Check out my ten digits! Digital electronics (computers)
More informationCS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++
CS101: Fundamentals of Computer Programming Dr. Tejada stejada@usc.edu www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++ 10 Stacks of Coins You have 10 stacks with 10 coins each that look and feel
More informationFile I/O CS 16: Solving Problems with Computers I Lecture #9
File I/O CS 16: Solving Problems with Computers I Lecture #9 Ziad Matni Dept. of Computer Science, UCSB I/O Data Streams and File I/O Lecture Outline An introduction to Objects and Member Functions Handling
More informationBinary Arithme-c 2 Intro to Assembly CS 64: Computer Organiza-on and Design Logic Lecture #3
Binary Arithme-c 2 Intro to Assembly CS 64: Computer Organiza-on and Design Logic Lecture #3 Ziad Matni Dept. of Computer Science, UCSB Adding this Class The class has about 3 spots open I will make the
More informationCS 132 Exam #1 - Study Suggestions
CS 132 - Exam #1 Study Suggestions p. 1 * last modified: 2-16-05 CS 132 Exam #1 - Study Suggestions * The test covers through HW #3, the Week 5 Lab Exercise Exercise, and material through the 2-14-05 lecture/2-16-05
More information! A program is a set of instructions that the. ! It must be translated. ! Variable: portion of memory that stores a value. char
Week 1 Operators, Data Types & I/O Gaddis: Chapters 1, 2, 3 CS 5301 Fall 2016 Jill Seaman Programming A program is a set of instructions that the computer follows to perform a task It must be translated
More informationFundamentals of Programming CS-110. Lecture 2
Fundamentals of Programming CS-110 Lecture 2 Last Lab // Example program #include using namespace std; int main() { cout
More informationFunction Calling Conventions 1 CS 64: Computer Organization and Design Logic Lecture #9
Function Calling Conventions 1 CS 64: Computer Organization and Design Logic Lecture #9 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline More on MIPS Calling Convention Functions calling functions
More informationLab # 02. Basic Elements of C++ _ Part1
Lab # 02 Basic Elements of C++ _ Part1 Lab Objectives: After performing this lab, the students should be able to: Become familiar with the basic components of a C++ program, including functions, special
More informationName EGR 2131 Lab #6 Number Representation and Arithmetic Circuits
Name EGR 2131 Lab #6 Number Representation and Arithmetic Circuits Equipment and Components Quartus software and Altera DE2-115 board PART 1: Number Representation in Microsoft Calculator. First, let s
More informationDiscussion 1H Notes (Week 3, April 14) TA: Brian Choi Section Webpage:
Discussion 1H Notes (Week 3, April 14) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs31 More on Arithmetic Expressions The following two are equivalent:! x = x + 5;
More information6.1. Chapter 6: What Is A Function? Why Functions? Introduction to Functions
Chapter 6: 6.1 Functions Introduction to Functions What Is A Function? Why Functions? We ve been using functions ( e.g. main() ). C++ program consists of one or more functions Function: a collection of
More informationLecture 2: Number Representa2on
CSE 30: Computer Organization and Systems Programming Lecture 2: Number Representa2on Diba Mirza University of California, San Diego 1 Levels of Representation High Level Language Program (e.g., C) Compiler
More informationArrays in Functions!
Arrays in Functions! 1E3! Topic 12! 12 Arrays in Functions 1 Objectives! n This topic should allow students to! n Pass array elements to functions! n Pass whole arrays to functions! n Write functions that
More informationReview: Exam 1. Your First C++ Program. Declaration Statements. Tells the compiler. Examples of declaration statements
Review: Exam 1 9/20/06 CS150 Introduction to Computer Science 1 1 Your First C++ Program 1 //*********************************************************** 2 // File name: hello.cpp 3 // Author: Shereen Khoja
More informationFile I/O in Python Formats for Outputs CS 8: Introduction to Computer Science, Winter 2018 Lecture #12
File I/O in Python Formats for Outputs CS 8: Introduction to Computer Science, Winter 2018 Lecture #12 Ziad Matni Dept. of Computer Science, UCSB Administrative Homework #7 is DUE on MONDAY (3/12) Lab
More informationC++ Basics. Lecture 2 COP 3014 Spring January 8, 2018
C++ Basics Lecture 2 COP 3014 Spring 2018 January 8, 2018 Structure of a C++ Program Sequence of statements, typically grouped into functions. function: a subprogram. a section of a program performing
More informationArray Elements as Function Parameters
Arrays Class 26 Array Elements as Function Parameters we have seen that array elements are simple variables they can be used anywhere a normal variable can unsigned values [] {10, 15, 20}; unsigned quotient;
More informationT02 Tutorial Slides for Week 2
T02 Tutorial Slides for Week 2 ENEL 353: Digital Circuits Fall 2017 Term Steve Norman, PhD, PEng Electrical & Computer Engineering Schulich School of Engineering University of Calgary 19 September, 2017
More informationStructures and Classes CS 16: Solving Problems with Computers I Lecture #15
Structures and Classes CS 16: Solving Problems with Computers I Lecture #15 Ziad Matni Dept. of Computer Science, UCSB WHAT THE NEXT 3 WEEKS LOOK LIKE MONDAY TUESDAY WEDNESDAY THURSDAY FRIDAY 20- Nov 21-
More informationMIPS Assembly: More about Memory and Instructions CS 64: Computer Organization and Design Logic Lecture #7
MIPS Assembly: More about Memory and Instructions CS 64: Computer Organization and Design Logic Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Lecture Outline Global variables and memory Arrays
More informationLecture 14. No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions?
Lecture 14 No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions? Friday, February 11 CS 215 Fundamentals of Programming II - Lecture 14 1 Outline Static
More information