lecture_materials:week_00
                Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| lecture_materials:week_00 [2025-08-18 21:10] – Jeffrey Bergamini | lecture_materials:week_00 [2025-08-22 12:59] (current) – Jeffrey Bergamini | ||
|---|---|---|---|
| Line 5: | Line 5: | ||
| </ | </ | ||
| - | <WRAP round tip> | + | ===== Monday  | 
| - | ===== Slides  | + | |
| + | {{ : | ||
| - | </ | + | {{ : | 
| - | ===== Monday  | + | ===== Tuesday  | 
| - | Forthcoming | + | ==== Scope and Lifetime ==== | 
| - | ===== Tuesday ===== | + | {{ : | 
| - | ==== scopes.cpp (illustrating locally and globally scoped variables)  | + | === scopes.cpp (illustrating locally and globally scoped variables) === | 
| <file cpp scopes.cpp [enable_line_numbers=true]> | <file cpp scopes.cpp [enable_line_numbers=true]> | ||
| Line 61: | Line 61: | ||
| <WRAP round info> | <WRAP round info> | ||
| - | === Notes === | + | == Notes == | 
| - | Your job: Be the compiler and the OS and determine the output without using any tools but your mind! | + | Your job: Be the compiler and the shell and determine the output  | 
| Then compile and run this code to see if you were right. | Then compile and run this code to see if you were right. | ||
| </ | </ | ||
| - | ==== scopes_annotated.cpp (illustrating locally and globally scoped variables)  | + | === scopes_annotated.cpp (illustrating locally and globally scoped variables) === | 
| <file cpp scopes_annotated.cpp [enable_line_numbers=true]> | <file cpp scopes_annotated.cpp [enable_line_numbers=true]> | ||
| Line 112: | Line 112: | ||
| <WRAP round info> | <WRAP round info> | ||
| - | === Notes === | + | == Notes == | 
| This is the same program, but prints the **memory address** of each variable in question. Note which '' | This is the same program, but prints the **memory address** of each variable in question. Note which '' | ||
| </ | </ | ||
| - | ==== raii.cpp (illustrating the concept of RAII) ==== | + | === raii.cpp (illustrating the concept of RAII) === | 
| - | <file cpp scopes_annotated.cpp [enable_line_numbers=true]> | + | <file cpp raii.cpp [enable_line_numbers=true]> | 
| /** | /** | ||
| * @file raii.cpp | * @file raii.cpp | ||
| Line 163: | Line 163: | ||
|   std:: |   std:: | ||
|   std::cout << " |   std::cout << " | ||
| - | // std::cout is just a plain input stream: | + | // std::cin is just a plain input stream: | 
|   std::cout << " |   std::cout << " | ||
| // Lifetimes of `hamlet` and `othello` end here. | // Lifetimes of `hamlet` and `othello` end here. | ||
| Line 171: | Line 171: | ||
| <WRAP round info> | <WRAP round info> | ||
| - | === Notes === | + | == Notes == | 
| [[https:// | [[https:// | ||
| </ | </ | ||
| - | ==== scope_lifetime_practice.cpp (an opportunity to think and practice)  | + | === scope_lifetime_practice.cpp (an opportunity to think and practice) === | 
| <file cpp scope_lifetime_practice.cpp [enable_line_numbers=true]> | <file cpp scope_lifetime_practice.cpp [enable_line_numbers=true]> | ||
| Line 186: | Line 186: | ||
| */ | */ | ||
| - | #include < | + | #include < | 
| - | #include < | + | #include < | 
| - | #include < | + | #include < | 
| + | /** | ||
| + | * `main()` can have parameters to access *command-line arguments* and *environment variables*. | ||
| + | * | ||
| + | * @param argc argument count: the number of command-line arguments (including the executable name) | ||
| + | * @param argv argument values: an array of C strings containing the command-line arguments | ||
| + | */ | ||
| int main(int argc, char **argv) { | int main(int argc, char **argv) { | ||
| + |   // Exit with an error message if command-line arguments weren' | ||
| + | if (argc < 3) { | ||
| + |     std::cerr << " | ||
| + | return 1; // nonzero exit status reports unsuccessful termination to the shell | ||
| + | } | ||
| + | // Attempt to open the two files specified as command-line arguments: | ||
|   std:: |   std:: | ||
|   std:: |   std:: | ||
| - |   // TODO: Find all the printable characters  | + |    | 
| - | // Print each unique character and its ASCII number, one character per line, in ascending order. | + |     std::cerr << " | 
| + | return 2; | ||
| + | } | ||
| + |    | ||
| + | // Print each unique character and its ASCII encoding, one character per line, in ascending order. | ||
| } | } | ||
| </ | </ | ||
| <WRAP round info> | <WRAP round info> | ||
| - | === Notes === | + | == Notes == | 
| Having some data to test with is useful. I have many textual datasets available. If you have your program in a form that is executable in a terminal, the following commands should work for testing: | Having some data to test with is useful. I have many textual datasets available. If you have your program in a form that is executable in a terminal, the following commands should work for testing: | ||
| + | |||
| + | Command: | ||
| + | <code bash> | ||
| + | ./a.out <(echo suitably) <(echo implausible) | ||
| + | </ | ||
| + | |||
| + | Expected Output: | ||
| + | < | ||
| + | e 101 | ||
| + | m 109 | ||
| + | p 112 | ||
| + | t 116 | ||
| + | y 121 | ||
| + | </ | ||
| Command: | Command: | ||
| Line 258: | Line 288: | ||
| ===== Wednesday ===== | ===== Wednesday ===== | ||
| - | TBD | + | {{ : | 
| ===== Thursday ===== | ===== Thursday ===== | ||
| - | TBD | + | {{ : | 
| + | & Programming Languages Guide}} | ||
| ===== Friday ===== | ===== Friday ===== | ||
| - | TBD | + | {{ : | 
lecture_materials/week_00.1755576658.txt.gz · Last modified:  by Jeffrey Bergamini
                
                