APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.
-
Upload
hugo-bryant -
Category
Documents
-
view
218 -
download
0
Transcript of APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.
![Page 1: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/1.jpg)
1
APS105
Introduction
![Page 2: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/2.jpg)
2
Welcome
• To University and UofToronto
• To Engineering
• To APS105
![Page 3: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/3.jpg)
3
About your Prof
• Prof. Greg Steffan– PhD Computer Science, Carnegie Mellon, 2003– BASc/MASc, ECE, UofToronto, 1995/1997
• Research– Making multicores and FPGAs easier to program
• Contact:– [email protected]– Office: EA321– Office hours: wed 12-1pm
![Page 4: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/4.jpg)
4
Why Learn About Programming and C?
![Page 5: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/5.jpg)
5
Why Learn Programming?
• Computers: our most powerful technology– Learn to command them to do your bidding!
• For love of design– Programming is pure design with few limitations– “only slightly removed from pure thought-stuff”
• Entrepreneurial opportunities– Start a company in your bedroom with no $$$
• Many engineering jobs involve programming– Simulations, databases, websites– Whether civil, electrical, mechanical…
![Page 6: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/6.jpg)
6
Why Learn C?
• Lots of other newer, sexier languages– Java, Python, Ruby, javascript
• Benefits of C:– “Compiled language”, not “interpreted”
• Close to the hardware with no layers between• Easier to understand what is happening• Important building-block for later computing courses
– C/C++ still very common• In high-performance applications• In low-level code like operating systems, databases,…
– C-like-syntax found in many of above languages
![Page 7: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/7.jpg)
7
Why Attend Lectures?
• To see someone else think through problems– Different than simply seeing the solution
• Learn “why”, not just “how”– how course material fits in with “big picture”
• Will provide proper emphasis– Highlight key material– Overview-only sundry material
• Will teach material in order of importance– Eg., order that you need it for labs
• Ideally more entertaining than reading manual– Else Prof-fail.
![Page 8: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/8.jpg)
8
Administration
![Page 9: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/9.jpg)
9
Course Website
• Portal.utoronto.ca– APS105FALL 2011
• Any Handouts– Lab Assignments– Past Exams– Form for missed labs/quizzes– Form for misgraded midterm
• Discussion Board
![Page 10: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/10.jpg)
10
Course Meetings• Lecture Periods:
– three one-hour lectures per week– Start at 10mins after the hour
• Optional Lecture:– review of regular lecture material– attendance recommended for non-experts– tuesdays 3-4pm MC102 (entire course invited)
• Tutorial Periods:– One per week, run by TAs– Quizes in about half of the tutorials– Attendance optional, unless there is a quiz
• Lab Periods:– Two hours per week– TAs available to answer questions– Attendance "mandatory"
![Page 11: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/11.jpg)
11
Evaluation
• Quizzes: 8%– 4 total– Given in tutorials– Based on lecture material since last quiz
• Labs: 17%– 8 total
• Midterm: 25%• Final Exam: 50%
– Emphasis on 2nd half of course
![Page 12: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/12.jpg)
12
Lecture Slides and Note-Taking
• Electronic slides with fill-in-the-blanks– A hybrid between powerpoint and chalkboard
• Pptx/pdf available on www prior to lecture– Please print and bring to class
• The filled-in “blanks” are only during class– Filled-in slides will not be published
• The symbol that indicates a blank to fill
![Page 13: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/13.jpg)
13
Course Textbook
• “An Introduction to Computer Science Using C”, 2nd Edition– by John Carter– Published by McGraw Hill-Ryerson
• How to get a copy:– UofT bookstore– basement of Sandford Fleming Building– Amazon etc.
![Page 14: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/14.jpg)
14
Labs (programming assignments)
• There are 8 of them in total– You will always be working on one
• Must run properly on ECF systems– Even if it runs fine elsewhere
• Marks for functionality and style– Proper style will be defined throughout term
![Page 15: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/15.jpg)
15
Cheating/Copying
• Easy to do, equally easy to catch!– “cheater-beater” software
• Automatically compares all submissions
– we do actually do this, and do follow through!• the interview and punishment process is painful for all!
• You only cheat yourself– Labs worth 1.6% each– The practice you get by doing them is invaluable– The consequences for being caught are harsh
• See Engineering Calendar for details
![Page 16: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/16.jpg)
16
Getting Help
• See course info handout• Meet some friends: “study groups”
– Collaborating vs cheating
• Ask questions in class– Point out confusing things and mistakes!
• Get help quickly if you get into trouble– First-year office (1st floor Galbraith Building)– www.calss.utoronto.ca
• Help with academics, personal
![Page 17: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/17.jpg)
17
In-Class Etiquette
• Be on time– Class starts at 10mins after the hour
• Quiet please!– Silence yourself and all electronic devices!
• Pay attention– Eg., watching youtube on laptop distracts others
• Ask questions and point out errors!– Raise your hand– Say “question!” if I don’t notice
![Page 18: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/18.jpg)
18
How to Succeed at APS105
• Attend lectures– take notes, ask questions
• Do labs yourself, on-time– Practice/experience is invaluable
• Review lecture material regularly– Be better prepared for quizes/midterm/final– Avoid last-minute cramming
• Prepare for midterm/final– Practice by trying past midterms/finals– Practice by filling lecture slides on your own
• Both available on www
![Page 19: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/19.jpg)
19
How to Succeed at Skule (computing)
• Learn to keyboard properly!• Learn unix/linux basics
– see the unix handout• has details on how to log in from home
• Learn some javascript– For programming www page features
• Write a simple app for your own use– Eg., for your laptop or iphone
![Page 20: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/20.jpg)
20
Computer Systems Basics
![Page 21: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/21.jpg)
21
Computer Systems Stack
ApplicationsJava (and others)Java interpreter (JVM, and others)C (and others) APS105
C CompilerProcessorsLogic gatesTransistorsElectrons and materials
![Page 22: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/22.jpg)
22
How We Tell a Processor What to Do
Programmer Machine Instructions
Add r3,r3,r1Cmp r3,r1Bge 0x3340aMulu r3,r5,r2Sub r1,r3,r4…
intFoo (int x){ return x + 5;}…
Compiler
Processors execute machine instructions encoded in binary
Processor
0100101
![Page 23: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/23.jpg)
23
A TYPICAL PC
Motherboard (CPU, MEMORY)Hard drive
CD/DVD R/W
USB Connectors
Graphics card
Monitor
Keyboard
Mouse
Power Supply
![Page 24: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/24.jpg)
24
Simple View of a Motherboard
Memory (RAM)
CPU
• Memory: – holds bits– can be read from or written to
• CPU: – datapath: arithmetic/logic units (add, sub), etc.– control circuitry
![Page 25: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/25.jpg)
25
C
![Page 26: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/26.jpg)
26
About C
• Invented in Bell Labs (in 1970s)– by Dennis Ritchie– Inherits from earlier language
• called “B”
• C++ – an extension of C– Supports “object oriented programming”
Dennis Ritchie
![Page 27: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/27.jpg)
27
Hello World
.
![Page 28: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/28.jpg)
28
Alternative Hello World
.
![Page 29: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/29.jpg)
29
GCC• gcc
– Means “GNU C compiler”– A program that converts C to 0’s & 1’s
• Stored in a file called an “executable”
• Type this command to compile hello.c
• Generates the executable file
• Insteady you could type:
• Generates the executable file
![Page 30: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/30.jpg)
30
Value Representation
![Page 31: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/31.jpg)
31
Bits and Bytes
• “bit” is short for “binary digit”– A bit can be 0 or 1
• Why do computers use bits?
• A byte is a group of 8 bits– 1 byte can be written as 1B
![Page 32: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/32.jpg)
32
RECALL: BASE 10 (decimal)
• 956
• NOTE: not all languages/cultures use base10– Ndom, Frederik Hendrik Island: base6– nimbia: base12– Huli, Papua New Guinea: base15– Tzotzil, Mexico: base20– Computers use base2 (binary)
![Page 33: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/33.jpg)
33
USING BINARY (BASE 2)
• denoted by ‘0b’ (in this course, in C-code)• Converting from binary to decimal:
• 0b1011
![Page 34: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/34.jpg)
34
Questions
• How many decimal numbers can you represent with N bits?
• NOTE: – computers can only represent finite numbers!
![Page 35: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/35.jpg)
35
Byte Size
• 1byte = 1B = 8bits
![Page 36: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/36.jpg)
36
What is this?
10010010
![Page 37: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/37.jpg)
37
Types
![Page 38: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/38.jpg)
38
Types
• Data Type: – tells computer how to interpret a group of bits– Without a type they are just bits!
• C has types:– Basic data types: built-in, already defined for
you– User-defined types: name your own! (later)
• Basic data types:– A single value of a certain size (bytes)– Example: a number or a character
![Page 39: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/39.jpg)
39
Integer Types
• int: 32bits, values: -231 .. 231-1– We will almost always use int in this class
• Other integer types:– unsigned int: 32bits, values 0.. 232-1– short: at least 16bits– long: at least 32bits– long long: at least 64bits– what does "at least" mean?
• the actual size can depend on the system!!!!!
![Page 40: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/40.jpg)
40
Floating Point Types
• How to use binary to represent real numbers?– Eg., 1.3333333333333….– Can’t: approximate, with limited accuracy
• Floating-point: a common approximation– A value (mantissa) and an exponent– Flexible: can represent very big or very small
• Eg., 2.1313*1020 or 2.1313*10-20
– We don’t need to know the details for this class
![Page 41: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/41.jpg)
41
Floating Point Types in C
• double: at least 64 bits• We will almost always use double in this class
• float: at least 32 bits
![Page 42: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/42.jpg)
42
Character Type
• representing keyboard characters: – Eg: a,b,c,d…A,B,C,D, !@#$%– Standard encoding called ASCII:
• eg., ‘A’ = 65 = 0100 0001 (binary)
• char: 8 bits, typically ASCII-encoded• Note1: char holds only a single character
– How can we represent a “string” of characters?
• Note2: recall “escapes”– Eg., ‘\n’ represents the return character
• Encoded as a single ASCII value
![Page 43: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/43.jpg)
43
Boolean Type
• Often you want to represent true/false– The old way: use int values 0 and 1– The new way: use the bool type
• bool type– Has values ‘true’ and ‘false’– Note: you have to include the bool library
• in program (at top): #include <stdbool.h>
![Page 44: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/44.jpg)
44
Identifiers and Variables
![Page 45: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/45.jpg)
45
Identifiers
• Identifiers give names to things– Choosing good names is a key skill!
• Rules: identifiers can be– any length (any number of characters)– upper & lower case letters, digits, ‘_’– First character cannot be a digit– Cannot match a C “reserved” word (like “int”)
![Page 46: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/46.jpg)
46
Choosing Identifiers: Good Style
• Use upper-case to separate words:
• Or use underscores to separate words:
• Avoid easily-confused characters:
• Choosing good identifiers is an art:
![Page 47: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/47.jpg)
47
Declaring Variables
• Variable: storage of a value of a certain type• Variable declaration:
– specifies that you plan to use a variable– and you would like it to be a certain type– Note: the C-compiler creates storage for it
• General form:
<type> <identifier list>;
![Page 48: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/48.jpg)
48
Declaring Variables: Examples
• Example declarations:
![Page 49: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/49.jpg)
49
Assigning Values
• Can assign a value at declaration, or later• Example assignment at declaration:
• Example assignment at a later point:
• Accuracy:
![Page 50: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/50.jpg)
50
Output
![Page 51: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/51.jpg)
51
Printing to the Screen on PC
Motherboard (CPU, MEMORY)Hard drive
CD/DVD R/W
USB Connectors
Graphics card
Monitor
Keyboard
Mouse Power Supply
.
![Page 52: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/52.jpg)
52
Printing Values
• the printf function prints to the screenprintf(“hi mom\n”);
• printf can also print variable valuesint age = 39;printf(“I am %d years old\n”,age);.
![Page 53: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/53.jpg)
53
Printing Integers
• decimal (base10)– %d: print the decimal using space as necessary– %4d: print the decimal using at least 4 spaces
• Example:.
![Page 54: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/54.jpg)
54
Printing chars
• char– %c: print a single character
• Example:.
![Page 55: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/55.jpg)
55
Printing doubles
• %lf– means “long float” (d is already used!)– by default prints 6 digits right of the decimal– cheat: can use %f instead, does the same thing
• %.2lf– print 2 digits right of the decimal
• %6.2lf– minimum of 6 digits, 2 right of decimal
• %e– use exponent form: ±x.xxxxxxe±nn
![Page 56: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/56.jpg)
56
Printing doubles: Examples
• Examples:.
![Page 57: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/57.jpg)
57
Printing bool
• No conversion specification for bool– Just use %d (decimal)– Prints 0 for false and 1 for true
• Example:.
![Page 58: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/58.jpg)
58
Special Cases
• How do you print ‘%’?– The ‘%’ is the ‘escape’ for conversion specs!– Answer: use ‘%%’
• Example:.
• How do you print ‘\’?– The ‘\’ is also an ‘escape’ character– Answer: use ‘\\’
![Page 59: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/59.jpg)
59
Input
![Page 60: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/60.jpg)
60
Input from the Keyboard
Motherboard (CPU, MEMORY)Hard drive
CD/DVD R/W
USB Connectors
Graphics card
Monitor
Keyboard
Mouse Power Supply
.
![Page 61: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/61.jpg)
61
Input from the Keyboard: scanf
• the scanf function inputs from the keyboard
![Page 62: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/62.jpg)
62
Inputting Multiple Values
• scanf automatically skips whitespace– eg., spaces, tabs, newlines
• .
![Page 63: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/63.jpg)
63
Consuming Whitespace
• If input string is:– “ 22 33 44”
• And I execute:– scanf(“%d%d”,&x,&y);
• The next scanf call would start at this point:– “ 22 33 44”
![Page 64: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/64.jpg)
64
Skipping Characters
• Can manually skip specific characters– eg., non-whitespace– include them in the control string
• Example:.
![Page 65: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/65.jpg)
65
Inputting Chars
• Example:int year;char term;scanf(“%d%c”,&year,&term);
• Note: %c does not skip whitespace!• .
![Page 66: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/66.jpg)
66
Constants
![Page 67: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/67.jpg)
67
Constants
• A constant is a value that does not change– possibly used in multiple places in your program
• Literal constant: – the value is written directly in your code– example: int age = 2;
• named constant:– assign a constant value an identifier– then use the identifier in your code– Named constants make for easier-to-read code!
![Page 68: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/68.jpg)
68
Named Constants Example
• With literal constant:.
• With named constant:.
![Page 69: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/69.jpg)
69
Two Methods for Named Constants
• Using the const attribute– General form:
const <type> <identifier> = <value>;
const double PI = 3.14159;– const attribute promises value will not change
• Using the #define compiler directive#define PI 3.14159– note1: directives go at top of file– note2: directives have no ‘=‘, no ‘;’– compiler does a search-and-replace of PI
• with the value 3.14159 everywhere PI appears
![Page 70: APS105 Introduction 1. Welcome To University and UofToronto To Engineering To APS105 2.](https://reader035.fdocuments.in/reader035/viewer/2022062321/56649e035503460f94aef25f/html5/thumbnails/70.jpg)
70
Named Constants for Good Style
• avoid magic numbers in your code– numbers which have no meaning to others– use of magic numbers will cost you points in labs!
• avoid multiple copies of the same value– if you must update the value, only have to do it in
one place in the code
• Convention/Good-Style:– use capital letters for named constant identifiers– eg., PI and MAX_ATTEMPTS