=====
CS 111 - Week 15 Lecture 1 - 2024-12-10
=====
=====
TODAY WE WILL:
=====
* announcements
* intro C++'s shorthand operators
* intro C++'s "classic" for loop
* prep for next class
=====
* Should be working on Homework 12!
* at-least-1st-attempts due by 11:59 pm Friday, Dec. 13
=====
* Please take the NSF Student Perceptions survey (link is in
Canvas)
* Please consider completing the CS 111 Course Evalutions
(see link next to Modules in Canvas)
=====
UPCOMING SCHEDULE NOTES
=====
* Thursday, Dec 12: review for Final Exam
* Friday, Dec 13: Week 15 Lab Exercise!
* get at-least-1st attempts at Homework 12 in by 11:59 pm Friday
Dec 13
* Sunday, Dec 15: 11:59 pm - any IMPROVED parts of Homeworks 10-12 are DUE
* Monday, Dec 16: 12:01 am - EXAMPLE SOLUTIONS for Homeworks 10-12
will be available on Canvas
* Tuesday, Dec 17:
******************* 8:00 AM!!!!!!!!! **********************
in GH 218 is the CS 111 Final Exam!
======
C++ shorthand operators
======
* not vital/required --
but they are convenient! (and frequently used!)
* we end up changing local variables based on their
previous value a lot!!
blah = blah desired_op;
...these features are based on: gee, can I avoid
repeating that local variable on BOTH sides
of the assignment statment?
* and another two are just for the common action
of increasing something by 1 (or decreasing it by 1)
int count = 0;
* I can increase this by one using:
count = count + 1;
* ALSO -- C++ has +=
count += 1;
same as: count = count + 1;
int amount = 100;
amount += count;
same as: amount = amount + count;
* also has *=
double total = 100.0;
total *= 0.18;
same as: total = total * 0.18;
* also has -=
amount -= count;
same as: amount = amount - count;
* also has /=
total /= 3.0;
same as: total = total / 3.0;
=====
Increment and Decrement operators
++ and --
=====
* MOST common thing that gets done to numeric variables?
...adding 1 to them;
* ++ is an operator that adds 1 to a thing! (that can be assigned to)
it can be PREFIX or POSTFIX
...you can put it BEFORE the thing or AFTER the thing
int count = 0;
count++; // count is now 1
++count; // count is now 2
and -- is an operator that subtracts 1 from a thing! (that can be
assigned to)
count = 10;
count--; // count is now 9
--count; // count is now 8
* but note: these are also expressions,
they can be used on the RHS of an assignment statement
with OTHER operators,
so: what is the value of these as *expressions*?
name++ - the value of this expression is name BEFORE it is increased
by 1
++name - the value of this expression is name AFTER it is increased by
1
=====
intro to C++ "classic" for loop
=====
* consider this common "pattern" for a while loop
used in a count-controlled style:
int count = 0;
while (count < num_reps)
{
do things;
...
count++;
}
* count-controlled loops are COMMON,
and it is TOOOO easy to forget to update the counter in the loop
or to forget to initialize it before the loop;
...SO: the for statement is a specialized repetition statement
especially useful for count-controlled loops
* OK, it also happens to give the compiler useful additional
info the compiler can use to generate more-effecient code!
syntax:
for (<init-part>; <bool_expr-part>; <update-part>)
statement;
* like while and if statements, only ONE statement can be in
a for loop body -- BUT that single statement can be a block
doing more (but still considered a single statement by the
compiler)
semantics:
when you reach a for loop:
1. the <init-part> part is done
2. then the <bool_expr-part> is checked;
if true, do the for's body,
then do the <update-part> part,
then return to 2.
if false, go to 3.
3. go to next statement after the loop
So....
// this is ALMOST identical to the while earlier
for (int count = 0; count < num_reps; count++)
{
do things;
...
}
* the ONE difference: if you declare a variable in
the <init> part, its scope is JUST the body of the
for loop
* for the for loop above, if you tried to use count
AFTER the for loop body, it would be considered an
undeclared variable!
* if you want/need the value later,
declare your loop counter variable BEFORE the for loop:
int count;
for (count = 0; count < num_reps; ++count)
{
do things;
...
}
// now count is still part of the scope after the
// for loop body, and can be used
* see refactored version of get_smallest now using a
for loop in 111lect15-1.cpp