From c9037457739e20f1a1a98920c1a104710314bf5b Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Tue, 13 Jul 2021 13:34:44 -0400 Subject: [PATCH 01/26] typo cope-> scope --- lectures/1/note.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lectures/1/note.rst b/lectures/1/note.rst index 9c8085e..87b2267 100644 --- a/lectures/1/note.rst +++ b/lectures/1/note.rst @@ -19,7 +19,7 @@ Unlike `Python`_ (or any other dynamic languages), all `C++`_ variables must be initialized with their types explicitly given. And the variable names cannot be -reused within the same :ref:`cope`. Consider the following +reused within the same :ref:`scope`. Consider the following `Python`_ code .. _lec1_dy_eg: From aaec4d8540a45ad9e6b71e0c8b16fe0fecd31d38 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 23 Aug 2021 12:38:57 -0400 Subject: [PATCH 02/26] comment test --- lectures/1/note.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lectures/1/note.rst b/lectures/1/note.rst index 87b2267..4433fc3 100644 --- a/lectures/1/note.rst +++ b/lectures/1/note.rst @@ -10,6 +10,8 @@ .. _lec1_types: +.. I want to write a comment here hopefully this doesn't show up + `C++`_ is all about TYPES! ========================== From f5ee4e82cb8550a6dfb25276549bc349ecfdb26f Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 23 Aug 2021 12:39:35 -0400 Subject: [PATCH 03/26] typo --- intro/simple_cpp.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intro/simple_cpp.rst b/intro/simple_cpp.rst index 1856e5e..651ef09 100644 --- a/intro/simple_cpp.rst +++ b/intro/simple_cpp.rst @@ -108,7 +108,7 @@ the standard input and output library, i.e. ``iostream``. Once we include the IO library (line 1), we can use the standard output -streamer, i.e. ``std::out``, to write out messages (line 4). +streamer, i.e. ``std::cout``, to write out messages (line 4). Now, copy the program into ``hello_world.cpp``, and compile and run it. From 3bdbd7e993b3924769ad017d6a36229a8bfc72a7 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 23 Aug 2021 12:39:57 -0400 Subject: [PATCH 04/26] mem_content --- lectures/1/images/MemoryAddressContent.png | Bin 0 -> 35845 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 lectures/1/images/MemoryAddressContent.png diff --git a/lectures/1/images/MemoryAddressContent.png b/lectures/1/images/MemoryAddressContent.png new file mode 100644 index 0000000000000000000000000000000000000000..bf2d0fab9c3800a66e4ec96b0683f013fb7e7c0a GIT binary patch literal 35845 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%0A(o;1)NxSnfi{@3Z=Y$5xE>H-n*hG= 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 Z#GW^bKg%%@a}t67Ze3Hknx$YA@PD7kmjnO+ literal 0 HcmV?d00001 From 4e61bfff24bbd078ee2e13a6ac5f2e534ea22936 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 23 Aug 2021 12:40:12 -0400 Subject: [PATCH 05/26] add to git ignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 547746f..e77f2b6 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ build .pylintrc .ipynb_checkpoints a.out +ams562_desktop.py From 9f74d95a48c5d496418d7b7cf726dd5bdfba6d8e Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 23 Aug 2021 12:40:26 -0400 Subject: [PATCH 06/26] We are using Github now --- software/req.rst | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/software/req.rst b/software/req.rst index 9ce102a..2fe50f1 100644 --- a/software/req.rst +++ b/software/req.rst @@ -133,13 +133,13 @@ and helpful, please take a look at it. You may also find using `Git`_ in `Visual Studio Code`_ is handy, see :ref:`here `. -Set up your private repository on `Bitbucket`_ +Set up your private repository on `Github`_ ---------------------------------------------- -We will use one of the popular online git network, `Bitbucket`_, to collect +We will use one of the popular online git network, `Github`_, to collect your homework assignments. Register an account with your **SBU** email address, then create a **private** repository following this -`description `_. +`description `_. Name your repository with ``ams562_``. And initialize your repository with a ``README.md`` that at least includes your SBU ID and name, @@ -159,8 +159,8 @@ Set up an SSH Key (optional) Using `Secure Shell `_ is the preferred way (but not required for this class) for using `Git`_. Follow -`this description `_ -to setup an SSH key for your `Bitbucket`_ account. +`this description `_ +to setup an SSH key for your `Github`_ account. .. note:: Keep your private key and **passphrase** secure! From 0d49d584e43eff7283aebbf468b14c3f86f75d0d Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Tue, 24 Aug 2021 11:25:58 -0400 Subject: [PATCH 07/26] Some edits --- intro/lec0.rst | 4 +++- lectures/4/note.rst | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/intro/lec0.rst b/intro/lec0.rst index 43d06fb..6090ddb 100644 --- a/intro/lec0.rst +++ b/intro/lec0.rst @@ -71,7 +71,7 @@ do not make your academic litter brothers/sisters hate you. "I'm so glad that I commented!" +++++++++++++++++++++++++++++++ -Actually, you are the one who benefit the most from making comments. While +You are the one who benefits the most from making comments. While doing research, an important thing that everybody needs to keep in mind is to make the work reproducible. One needs to make sure that his/her results can be reproduced in the future. Therefore, make comments for yourselves in the @@ -81,6 +81,8 @@ Of course, there are better tools, e.g. `Git`_ see :ref:`here `, to help you manage your work. But making comments are the most fundamental requirement that. +Good versus Bad Comments ++++++++++++++++++++++++++++++++ Let's take a look at the following examples: .. code-block:: cpp diff --git a/lectures/4/note.rst b/lectures/4/note.rst index 68c5e80..a62ad3e 100644 --- a/lectures/4/note.rst +++ b/lectures/4/note.rst @@ -10,7 +10,7 @@ .. _lec4_func_basis: -The Basis +The Basics ========= .. contents:: From 13a6a917c332388b9d7b625c4c17e4cb2f480e73 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Sat, 28 Aug 2021 18:59:41 -0400 Subject: [PATCH 08/26] typo --- lectures/4/note.rst | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lectures/4/note.rst b/lectures/4/note.rst index a62ad3e..cbba465 100644 --- a/lectures/4/note.rst +++ b/lectures/4/note.rst @@ -263,7 +263,7 @@ Let's first look at the following function that returns a pointer: } On return, ``getPointer`` will return a **copy** of ``ptr`` and this behavior -is will defined. Now, let's look at the the *function body* (content inside +is well defined. Now, let's look at the the *function body* (content inside the function scope). A **local** integer ``a`` is created as well as a pointer ``ptr`` that points to it. The memory address of ``a`` is copied whiling returning ``ptr``, but ``a`` is popped out from the stack right after the @@ -607,11 +607,16 @@ following syntax: :code:`return_type(type1, type2, ...)`, for example, the .. note:: Function declaration (prototyping) is actually like any other declarations - thus having type and variable name. The different is that the variable name - is in the middle of the type, i.e. :code:`void Empty()`. In this case, it + thus having type and variable name. The difference is that the variable name + is in the middle of the type, i.e. :code:`void Empty()`. In this case, it is very similar to defining arrays, i.e. :code:`int array2[2]`, where ``array2`` is the variable that has type of :code:`int[2]`. +.. code-block:: cpp + void Empty();// type then name + int array2[2];// type name + + With a type precisely defined, we expect, of course, its pointer and reference defined as well. The syntax is as following: From 6b650ce4933824252165469347a7534e6eb3ec87 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Sat, 28 Aug 2021 19:00:08 -0400 Subject: [PATCH 09/26] restructurt simple cpp lecture --- intro/simple_cpp.rst | 87 ++++++++++++++++++++++++++++++++++---------- 1 file changed, 68 insertions(+), 19 deletions(-) diff --git a/intro/simple_cpp.rst b/intro/simple_cpp.rst index 651ef09..1053b5b 100644 --- a/intro/simple_cpp.rst +++ b/intro/simple_cpp.rst @@ -4,7 +4,13 @@ .. _intro_simple_cpp: Simple `C++`_ -============= +======================= + +Here, we will present the most basic C++ program that does something. +The purpose of this section is to + +* Give you a chance to use the programming environment +* Give a first feel of how you control the computer using C++. .. contents:: Table of Contents :local: @@ -12,25 +18,43 @@ Simple `C++`_ .. _intro_simple_cpp_main: -The ``main`` functions ----------------------- +The simplest `C++`_ program +------------------------------- -Each `C++`_ program is written in a ``main`` function in `C++`_, where a -``main`` function must return an integer to indicate your system the exit -status of the program. +Here is the simplest `C++`_ program you can write. -.. note:: 0 is used for indicating exiting successfully. +.. code-block:: cpp + + int main() {return 0;} + +Every `C++`_ program must have a function ``main``. +A function is a named sequence of instructions that the computer executes. +Each function has four parts: -Here is the simplest `C++`_ program, :code:`int main() { return 0; }`, -which does nothing but just returns ``EXIT_SUCCESS`` to your system. +1. A *return* type `int`, specificies the kind of result +2. A *name*, ``main`` +3. A *parameter list* ``()`` +4. A *function body* enclosed in the set of curly braces ``{}``, lists the sequence of statements + +The ``main`` function must return an integer to indicate your system the exit +status of the program. + + + + +.. note:: 0 is used for indicating exiting successfully. .. _intro_simple_cpp_compile: -Compile the one-line program ----------------------------- +Compile and link the one-line program +--------------------------------------------- Unlike `Python`_ and `MATLAB`_, where you can directly invoke the scripts, all `C++`_ programs must be first **compiled** into executable binaries. +By compiling a program, we mean translating the human-readable text instructions +into something that the computer can execute. +In this class, we use the g++ compiler to +translate our source code into executable file. .. note:: @@ -71,7 +95,7 @@ You should see ``0`` on the screen. "Hello World!" -------------- - +Here we will introduce the classic "Hello World!" program written in C++. Unfortunately, you cannot write one line code for "Hello World!" in `C++`_. In `Python`_, you can write a ``hello_world.py`` script with: @@ -96,23 +120,48 @@ You should see "Hello World!" on your screen. Or even something like: However, there is no built-in ``print`` method in `C++`_, we have to include the standard input and output library, i.e. ``iostream``. +Here is the classic "Hello World!" program. + .. code-block:: cpp :linenos: - #include + // This program outpouts the message "Hello, World!" to the monitor + #include // #include directive - int main() { - std::cout << "Hello World!" << std::endl; + int main() {// C++ programs start by executing the main function + std::cout << "Hello World!\n";// output "Hello, World!" return 0; + // notice that semicolons terminate statements. } + // quotes delimit a string literal + // \n is notation for new line + +Let's parse some of this program + +* ``#include `` The include directive. This is where we included the definition of ``std::cout`` +* ``std::cout`` character output stream +* ``"Hello World!\n`` String literal that is displayed on screen +* ``// This is a comment`` + -Once we include the IO library (line 1), we can use the standard output -streamer, i.e. ``std::cout``, to write out messages (line 4). Now, copy the program into ``hello_world.cpp``, and compile and run it. .. note:: - This section is basically to demonstrate some simple codes. There will be - a specific section talking about IO. + It's important you mind the details when writing programs in CPP. + Try making a mistake and see how the compliler responds + + * Forget the header + * Forget to terminate the string + * Misspell returned + * Forget a semicolon + * Forget a { + +The hello world program is crucial because it represents the most basic program that you can write. +Its purpose is to get you familiar with writing programs in C++. +The rest of your programs should include the same basic structure. +In future lectures we will go over more information about I/O in C++ + + From ba36a00ffb45c4fd0cecd8c5d2b5adfca04a8340 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Sat, 28 Aug 2021 19:00:34 -0400 Subject: [PATCH 10/26] added a pdf of lecture 0 --- ...AMS 562 Jupyter_Desktop, Terminal , Git.pdf | Bin 0 -> 251519 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 pdf_lectures/Lecture0 _ AMS 562 Jupyter_Desktop, Terminal , Git.pdf diff --git a/pdf_lectures/Lecture0 _ AMS 562 Jupyter_Desktop, Terminal , Git.pdf b/pdf_lectures/Lecture0 _ AMS 562 Jupyter_Desktop, Terminal , Git.pdf new file mode 100644 index 0000000000000000000000000000000000000000..5ce671b05043f75da2824eff6d7921ac0c7517e8 GIT binary patch literal 251519 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%0ARdqGDA-&{vDB0rB&xc0cF%g7`{9R5 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�n8uv#WIUtN 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 Lp%oTZ(^dZ;{niFO literal 0 HcmV?d00001 From 0c86d26ec48281e7d15a634783c843e92ef119a1 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Sun, 29 Aug 2021 16:48:42 -0400 Subject: [PATCH 11/26] remove .ccls-cache --- .gitignore | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.gitignore b/.gitignore index e77f2b6..40a63fc 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,6 @@ build .ipynb_checkpoints a.out ams562_desktop.py + +lecture_code/*/.ccls-cache/* +lecture_code/lecture0/.ccls-cache/@@home@agh@projects@ams562-work@ams562-notes@lecture_code@lecture0/@home@agh@software@clang+llvm-10.0.0@lib@clang@10.0.0@include@__stddef_max_align_t.h From 8552fe3dde320077a2c3f21b972bd6ee38e6760e Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Sun, 29 Aug 2021 16:49:16 -0400 Subject: [PATCH 12/26] more changes to lecture0 --- intro/simple_cpp.rst | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/intro/simple_cpp.rst b/intro/simple_cpp.rst index 1053b5b..25e7983 100644 --- a/intro/simple_cpp.rst +++ b/intro/simple_cpp.rst @@ -138,14 +138,13 @@ Here is the classic "Hello World!" program. Let's parse some of this program -* ``#include `` The include directive. This is where we included the definition of ``std::cout`` +* ``#include `` is an ``#include`` directive. This is where we included the definition of ``std::cout`` * ``std::cout`` character output stream +* ``<<`` is the output operator * ``"Hello World!\n`` String literal that is displayed on screen * ``// This is a comment`` - - Now, copy the program into ``hello_world.cpp``, and compile and run it. .. note:: From 94c8c8512c63a6996d502e6a87208fa32e526fb8 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 30 Aug 2021 09:45:53 -0400 Subject: [PATCH 13/26] add hello_world example --- lecture_code/lecture0/hello_world.cpp | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 lecture_code/lecture0/hello_world.cpp diff --git a/lecture_code/lecture0/hello_world.cpp b/lecture_code/lecture0/hello_world.cpp new file mode 100644 index 0000000..9228f00 --- /dev/null +++ b/lecture_code/lecture0/hello_world.cpp @@ -0,0 +1,14 @@ +// This is the famous hello world program +#include + +int main() { + // we print hello world using the + // cout (character output stream) + // defined in iostream + // note "Hello World!\n" is a string literal + // \n is a newline character + // \ is used to specify special characters + std::cout << "Hello World!\n"; + // what happens when we forget to return 0? + return 0; +} From 1758d6d969dba8d94d85a4c5a84dbaff7cb9466b Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Mon, 30 Aug 2021 12:24:05 -0400 Subject: [PATCH 14/26] gitignore .ccls-cache --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 40a63fc..3cfa25a 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ ams562_desktop.py lecture_code/*/.ccls-cache/* lecture_code/lecture0/.ccls-cache/@@home@agh@projects@ams562-work@ams562-notes@lecture_code@lecture0/@home@agh@software@clang+llvm-10.0.0@lib@clang@10.0.0@include@__stddef_max_align_t.h +.ccls-cache/* From 2ef740d0f79ae872b49b36cb98fddb737ca8f165 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Wed, 1 Sep 2021 09:10:21 -0400 Subject: [PATCH 15/26] lecture 1 examples --- lecture_code/lecture0/ex1.cpp | 3 ++ lecture_code/lecture1/literal.cpp | 51 +++++++++++++++++++++++++++++++ lecture_code/lecture1/string.cpp | 43 ++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 lecture_code/lecture0/ex1.cpp create mode 100644 lecture_code/lecture1/literal.cpp create mode 100644 lecture_code/lecture1/string.cpp diff --git a/lecture_code/lecture0/ex1.cpp b/lecture_code/lecture0/ex1.cpp new file mode 100644 index 0000000..5e3a27f --- /dev/null +++ b/lecture_code/lecture0/ex1.cpp @@ -0,0 +1,3 @@ + + +int main() { return 0; } diff --git a/lecture_code/lecture1/literal.cpp b/lecture_code/lecture1/literal.cpp new file mode 100644 index 0000000..b98a136 --- /dev/null +++ b/lecture_code/lecture1/literal.cpp @@ -0,0 +1,51 @@ +#include +#include + +void print_message(int a) { + std::cout << "int" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(long int a) { + std::cout << "long int" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(unsigned long int a) { + std::cout << "unsigned long int" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(unsigned int a) { + std::cout << "unsigned int" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(float a) { + std::cout << "float" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(double a) { + std::cout << "double" << ::std::endl; + std::cout << a << ::std::endl; +} +void print_message(std::string a) { + std::cout << "string " << ::std::endl; + std::cout << a << ::std::endl; +} + +int main() { + + print_message(-32); + print_message(-32u); + print_message(32ul); + print_message(32l); + print_message(32u); + + print_message(1.0f); + print_message(-2.0); + print_message(-5.21); + + print_message("\"A\""); + print_message("\'"); + // literals + // 32, 1, -2, -100, 30001,... + // 32l // long literal + return 0; +} diff --git a/lecture_code/lecture1/string.cpp b/lecture_code/lecture1/string.cpp new file mode 100644 index 0000000..95616f0 --- /dev/null +++ b/lecture_code/lecture1/string.cpp @@ -0,0 +1,43 @@ +#include +#include + +char *add_char_array(char *first, char *last) { + // copy pointer to first character of first word + char *together = first; + // read up until NULL character + while (*first != '\0') { + first++; + } + // add a space + *first = ' '; + first++; + + // read and append character from last into first + while (*last != '\0') { + *first = *last; + last++; + first++; + } + + // append a NULL termination character + *first = 0; + + std::cout << std::endl; + return together; +} +int main() { + + char fname[128]; // C-style character array + char lname[128]; + // std::string fname; + // std::string lname; + + std::cout << "Give me your name" << std::endl; + std::cin >> fname; + std::cin >> lname; + + char *full = add_char_array(fname, lname); + std::cout << "Your name is " << full << std::endl; + + return 0; +} From 5fbd5dffc482c12fd66c1921fc539ef987a4ae6a Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Wed, 1 Sep 2021 11:24:42 -0400 Subject: [PATCH 16/26] updated typo --- ...MS 562 Jupyter_Desktop, Terminal , Git.pdf | Bin 251519 -> 251529 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/pdf_lectures/Lecture0 _ AMS 562 Jupyter_Desktop, Terminal , Git.pdf b/pdf_lectures/Lecture0 _ AMS 562 Jupyter_Desktop, Terminal , Git.pdf index 5ce671b05043f75da2824eff6d7921ac0c7517e8..17830ce073c4e37f362b01c26f0f0605dd0c5e21 100644 GIT binary patch delta 9905 zcma)i1yodDyS{)T-Q7q@Gt@A2NeLo|ghRKagftvLLQ-;u?v!o>2UNOb=n_z*TNpq< z;Ew*j`@i4kUF)v@tUYtiexEm_pLA*jjTx%aaW=)9bUI^BuQHl3!Qzz_e6{pSJf})`a8Xn%__3i5;_> z?`z99TPMI~`r!-NzSWo%*_yn{I;!Bt$>bQ^-;#bk;V%omjjd$x+VQof`5t8h@1-NQ0 z_@<*YToYSd@%a0lq3||UL$x9#c8`4Mbvkp&qZAUl?R}{qKwSBftbXsWLMlOGxKyeX zI5w#D)U(*GTqJb-iQda%U7nMA3($i;!y?-|GeQn3E2X?*mFtr`Kh#}{PT}p;_hs0> zja*zzmK5cdh;6ZSKA*$n&L(PVO~hgv zs#~N|#-!NgK5RlaLs>4cMjPhN;=&=mQM0=W7a>Qy{icz)u5d}Qa3ENEJ@ zKc81XC354TI4SA;vhk?DJZU6(;_vgbZnGj{#>Q#WPbQ99uJac)abZ#SQS{Bag(sHH z=0M=4dR59~MAoDee^WkZefNP&Q2q&r8+p6JjBYWch@ZI)LfxS)`NX_3%6n&6rZ?m8 zFkCuu6$q?j@Q*^Zi}U-ye7xJ+sosgy+qOBvmC3j&KNuz_$Lwtl4tBJ&mF~bo!s7~- z(`nQ$peku@Cpx|K%^xu8)az4i`4Z>*PZ{8CbAxk-jEzaPpNNw3z+qFM+Ss6EUWiv4 zJ$v_~zRz0JJwyL6D!I$}j(lB3X5HrnEn4pi z&49NNNZ@Jm=7F^Jugs%dvsWat#>HR)!qh12d(1Hj`HWfJn~U0loj3A~>NRqtzK)gC zAlmlO<8k7PO!UPmFW9STbtHA+F~NL&#TNJGTbu5dk5ec0?*2^m)g!saowQBw?a@}# zrS_l$V#d*{r7s5vJH{jEPTK(qX1u`}JrDUeL zWBEma0YHf~H*PIt^`qTUn@>afnyh_o0`0wqwn8FEhz#t*rt6IARMr6xczyi2QL7?p zm}#L-w8yUonTLW0ywgaeu|N=Psqx)XlZDQFl0Y?oO2qkOZ(FyLR)>E&^)W~2Tfp^p z?0jaH=VO7Ops0`PXKP1nCKr8AFU(c-72r|I`*zO>p28<|9j${7q{_GVtoUYTd;6D& z3$RyJ1bU16Vv__nHwEe~_;jQ_UfrhU1sTVb(H7|lN+6@mRbGOM%1wg!v=)JYk6io1 z_i$+9siSS_u4;RltQGDL@K~lH||s9Ekt&v~5#QGYp$)T_-Cn@#=1h zlmdsOAhGrp2~Q!@+l0Eo&?g+rBPx@(H;=yK&#HDZ$En3U@W>>T@0x@aU^u=(PTDP( zJ}iqxy6M3-EtEFDMwx&&Yu5|Ii6&C%}>FYE5VPL(Lvo_TX`xe^+e{P`c-4s$X zE4ouG0A-Z7vM+3}_8P$kMm!MJLoF_rU)2#)&6(7xi}?}aDS5UGF2DPnSG|()v*N7$ zayNTRt8b8v(7OeAUDsR}N>{>^p={|yAch)SNre4aNgRItLrv1wc!J2Td ziV>WuHs7o`49}VJduhl=gBqe z366Q={b~de{f|0A2GYv--RmamMTv(cT-o%_n>11EXDbYSd?R0K#y>c?2=(F|}z&+%VBJLRt?_*$wpw(R;dGzMJ#%4l&}E&Y^ap ze#!Cvd&7lAz3o%IRcgRlWt=H1@rtpYBqH~j2`{R#B5w?SM_jcDg_hy{ZZn z7vkw%lQQBbu=!_IIaP-7?lr_PYq@h4P zpj?J8-So-mlXK6AohJQISOM`bub+`4SWK#?7Em3f3BL}qm$YRW#xDnomHgx&E2ylI z;6@fJPQ)lOX9=*IEICWYhx+A$F7{?nvW4Za(5=8;YwX+OC9!vcj0Cp=RkZxfSdy2R zXOotgH=2`I60*Uh#q62WKleY4()!K;z75suW zDap>eFkz_cS{Mf+H{i?oWvqG|4OH1so6l+i7g5tz1e_&nv!^!}ozWhnlAcXm#%7>o zmBbOFvpGw4lSOBDgtx9D=1|x2aMZOA(@2fMD=*1~S5#H}szWnG1#dKU^1$Utre$85+-PxJDI)ye|?l}zXpJm#u`@keThO1nd zr+2UIIjpNxU0FJ1+6ki$S((++h#`s&jO;|}KlAC;rimFN93703FGnz8s~u@D_5B#! zj8(K-ceCMn_A^>51-|UFq%`4yz*9!QL_uI6@JD?b>>q`IN%pfl^k~U$;ulwghwf&s zs!zss$2M)R>~rRIMXmNo=P!4q{30}PWz>qJI>guFP0Q&N51wijv;a2)SF5Rf7tC}m zoql@aWLIvS^LN7qBJ!^#$gcvb)GtBY$mAm{;k@Ct=BUt|O}NjieK!}jdH@Q9j>_<5 zT)p#4f5dfrsna5Jxn)@+Y;A5n&F|N(QJPUm19KJm_=;=pyCRyWxb`EbUuC5Xm|u)OOnqg zBK91l-m%6CE*nNAdrobF0Pt`H*SX>Nl_SU!^4^j+(!g`=@VoEVL*1dlZ^aPXs7H=1 z-wx;HtgD`o^}9Z`?SJ*Oxj*dzK7AzhOIo5DhX>8o*tPCHVzAUMxc|msm@`9;5SgYZ zLk=>o3*P2|4#<%6*w5kH;qBryeIjkc_#Ss3#fNN{N;L#-#ABEgPyq7203DU03Y}WE z=+weSr&bp_wPMhzC4x?^Ep%#Sqf@IFom%#--b6K2hv*m@7)095wh-ye+_gie5?B|x z*VjX*3s~0%n!~y53!kH!xUL4SXGFO}QC$tpP@>T^cb{_^iTB1;3>}LEx7|{3^xUW8 zik?8DfK@&JSE62?^yk%scYW&yNoi3j67J4ZgzoNB7Iu3DYahQooRg5wgrNh4{wvTl z`e;kNDTEHXDutRH{5CgaX$lD_A1CViHm6$NgCA*UrjKpLBm7erj4eo#kqCQ@4c<|i znA9)8b#z5e+jWld>M3r@@Tj920B#SI+7yvrwF9Zl6?1Uso7JiVX&G6g;A3tVM_PIF^2~#ITRGF_P~T<=Csal94atHd40sUfS7$9GHpS%QE1U zKubZHt+r0u#v%@6GnlmFQnleIB2QMt@wvKR6CDcznKLk`(iQSPjtFxEOXn6VgCf?7 zL>N8=`Q$BY&rN)_9V9Pu!2$z+i*dR>!St;g8zRq zEv6*yHu6W#UVTRxh}wxT8ka(bqvAKle));nmo~`QkIlO`2JEq1^i$mNOU5HaJPOC( zhcpETRbD*nji^stvcOnY_IsD2?l(70utj++Qe-eZS^3b;$qX(~;;JTS1w#opCz_rL zKJ@D$C;St4r7r^2JU7?tGw;fQ*mGb-T&)k3*+wP%0}6{D##MMjM&g!k9b_(Ihf1ts zDZBTR-se(d=-)yTCd}q{z0l(4-EyX?O)v%VEBW=@{>P=|bOcJ+R$b6aYRhK1F3RzT zaPpt|i+PjL{nDkvM{}66)7}gVF{fE9rCZ1fcLkV7oPQuVPNZGO5*fbx2Rrx!|HiEU zV4n$&qy7y>o5~9P!2q;j2<3!jGBF#D$Xjq=$SdrlP5kUh-#JM~{u}gbFKG>ZjVxD$YHgYj0*;H)bGtVY^Hs|e0kV+<*ph0e; zwaOID8nGr%Fr+~+B!>gy(;&dI#%OV}&n@1dJ*|8Eb1?_^sXGm;QdGmu_Z)Abifatv za!T8;7L?%vdQ3)0=)#5A0#y&y_G~;w2J?E>izhbySR`fY)dHn8xR z)blbm*4BC1(mt~>Ospv|Mgi=RXfhlaqtg-ynm^-LS!C)pTxg+5c44>DJmc>zf_|n+ z4UDoVze~M+HyU_agw2#3`T5?c+Q>m#Es)PTyE4(uXq+NIx)NIJJBE6 z%K5M*dDK~zt0vM&YeTV!O#Bd7M7uDm_?rs+`cpAtfe$m{&`HnB^ zW)_G=lM-O&?8?yiwZjviQS^ig(nw_wcS%$-lmss8yotL#hm`gydwd^$!&v)#SzPFv zoqO>vFeXMP{FfI!-u`s)cInU?L38>5L7LI~M8ldqL>=_ybgTBPH2a&lX@CUExAjv3 zp~P?ktIsrrcxxUH2a{)H$JG=)l@k3|i!h`&BA!&i8xob>L>Lp|tu*zSemz1ei}{v7TcopPtHUd7;OAxrp{9K8+N0>Z0g8I0jUL z7LPmI#5NPgIN>^odaMYjsLviVvj(?(ddd%9Q=l;_Jev=_+}8(E$>7cP zQ!UOu4cfbm<&#YZ@7L1(Qgt*|jRQMZQaE$#JfzsXWFPlYBZ;u|qui@|g^hh0!^O>& zg(T;`PDfLXyPE~F8M`X=c@8l&o_Ym(FruPOzOKLU^}6x0YGLXJw!9?UAdA)gLF+zU zF7Wp|X+8$@!g{JLGx>fzN2ksk-x$Q_-3WwUpc*7Tn4?&0dAX$)WA1413Iq<6SH+(` zN@iNbT)2x73@1MjLXda`ZF}oJkn@e#BYI{_)OEjm=c*}7tL~ABtC39K^w-xBS5(J{HA&l(ZBT{5 zP;+l0D08Z!uhLY;`ed86!r+Y&!modON=d(lslo5%=zpJ`q)k;sR+=t0_?@KuIs2`S zc0l}(x)oZz-tVo!@bc6XeOJRFAZdzsCTGfO*!F~Gp}{Y9zS8vFX(f}Dzy2GYK|<%VNV4y#jl}%< z134oszH5X)|5c<+eb;5FFgQaqA3mG@hwn+kRE3RHWNaNEgQj+jI1yTgzIl%DQ`>o} zwll?1WpLJL+VrPC^*z8eJ@Gj&SoSq;;K-$}xB#ZG{0Porr=Fh>dB6coLBX;i?u`A`3Sm={(wAw%0(XSIQ$>&aCwy%yjg(my$ zIj95MVmQP0DLB}7U%q-CuOEv0W+}Kzsq-UmMA!%a2=|bnoDhz z`rbAlr%>{bxrlh_*ON|J9~cj(p}a@sd*H2QIT02WYncLWJutNMVsNZmhD98G=wYS3 z^ipk&1dW(p*1cj6R~Pv;YnWom#?FMKpm+Vz0He4&7Pe0ER#R;uTbE6f>7vgz-)bcV zP}YbG<47>lNUkh*dXmxT;=o$0e(R|jcM}sQvci&*FHc4WS@-I8t{q^l7HA>NoP)>!E7Phlz*v^VSk;WdE!UZe3ucjP8bz zQ)vUw%JgFQP8JwT-KuHUWcJ!3aUoWLb+#8c_t*tge2*{VU$*sOf0&<6jE({oV87y58g9L~k3|GE*Lkg_>l+J8v$T@-EzcY=ewWxR+@$qc8cWD8dBqx9xWFy; z45lEv>#4D<7tgI#0Ot5CfR7ck$ysa?$*si?-Y~#V2(ex=qgVgvK6m>n6-K38a<81& zxvHihDkgR^W*L<8jumZC%`^(&4Wl=ZBY%AM6&r$00fCry*oE z8LP{Ug0D~YQ8y+ANo6F#qE)~kT%7FzUj%aYyln24UnrUH)^s)^ehr7?wEL6{_O z?k)2!u1W)?nQmE+Bm6r|N_~W4VlJIiG_VW8uU#(Pe)=w5tfcC0JGlb;DBZ19^uiXi z`OR5m6T!K^^e=tl(I%0_UuOrB4@Tq-EVL!y{2P8JUe8T{iJZ*Q-8b6M>Yq_ev$gg6 zD>wC20Rx|lGEE(GXVdlCPus+MLA}pz#F_wU(!3UJj+j1{!aG-cA%msG95RJGQpQlr00GQGI#~kZU~lTpLT{ zYTqpWrC}{IGt-xS;g&(KCdeOc@cMEnmP0${-O$iNdUE;Rg5(B~;2X+JSqNVgv9s}K zy@2=RcOK2`Xahl4T_@=;kCvssZQL(ZhCr(*l>*3+aAyL1~<0o4c6ow>#<1F3W8LIivG#;iL-hvmLI z72R!pAxVZmHa~%-uT{(#&DbAVl_+r-@V??`wEi9xmM`eO+s2OmN){&Y5hSIXPZJctqZ6-BO@T^Px z?lxnCM*#iD|b{Y_SEuT-DD{PuumZeL{?4mrz zNw*`m2F5hfdKnNQxZ0aw%{U_5j}+Sp?3&G?!xqoH?C+MiMpAW&oqQ?vZzuff=_*qF zvaN;oo8%(ztoY&rf&XF;Yua27>uhsOq3>v0OyT+5@1MfOCEl{Rr3InIp0NNZSHLAD z@aSj!LMi`#&!T#c4lKtZHEaMgZ zlMYR$)M=h`tOCiEw>b-+3YStFUAj-^d|%(~xGtAa_rUWL_WyNQl515qNmH~gqewD{ zUnkl7i_C0vl#T+IIhmJM*0DAu_owYA4gkZ*XhC=BE&M_Y`#!^`71y7=w*%f_3{KZ( zb<(hy5r35{l03T}nN&$UwOO0;9ETMvo^_mjCkSW`4iLFrq0vq{RDPA2f2!?buV~1| zGfT8~aYl+dEagQ!%@X|XiEysGV7m92D^fA86Yvt6oJfH+E)EPtzRyx6r<;i!jRkPT zu_i?#?or4jPFV*$`qW{*`s_3?aP#b={o0p_S}_ypr#sDp95;9yM31Xxn3~5OM-D7_ zJ9nLCd1mRF@fyRcLNjWcB-5RYA6Za3LG$^_aG`fZEGo>Qvpk!0&EociP_77z9c7SH z_=f7Nqu7(da9T;MtVGp|gXt&5B0Im*MsDw&C^W3wSmPGn9jb!a9y! zPLq;I4hP2ndr!&30prT>q$w64biscXc_-ira(k6;#|*{eL*6KU3^lk97BP9H|FJo* zDgBzR5zqEBBgt^}W2zhB4I)u(V|33Rn)l_451|qLwBq!2dt~Jmo{~PoH$thQn^r<$ zk;L*j8!H)oU`U#?7hPyOD5#HH8ky;*s9js$5XTM}qn$W+OJh8;GF~s#LlQ;~_jN>Xx zwiLkf-k0OOFY9|7uJ>#5K0_ggFt%^}cRxXi!de(`T_Ge(?kw-u)cyeBhcI-@{@nl= z);E6Df3$F1A!L8F(B_GUzX9HF{5LFNEw_Ij-KzEu%#hj}SPz3tVCnQWMSth*%9xFC z@2gCx{^{pE(iC>IOI-=Ayl#_ganZ30-;H){_ZlZT)~;>{aIcwQI3m8ETWX!YWc$YR zhO^v)c^}K*RD?0Q45)!Rq=C9pY3JVw7s7b`0axSnx@=w%hj+qOFkX>n4;vLi1FHTP zYa#r`zIpftIiuRul~cD2B2G1h!E{7fuAU^btgkVBR!Qg%M_7%`OY*S4)+(8Oco}IL zLP?Bo*m_h83+J6sYjd;d-Hqn#J*Cu&ou||?Z7%N)N4u{9>@6oN?JfJO?T=O-dp#g8 z^m>qN&I#VNlcgB3SsxgyMfo<$Ro&%(*^J}-Y$3k6#za{#{gXVPTbI9F?(1*a}J-l!Spf!No3|R(8@Wd(#~?Y+RoC+Y_z+> zYOdZV-C}4Zjvi_|S#R?Z8+t0EG#{6@(L1Jc0qogpJmaBTtYjW}0*$tB=*rG8l8&EuZ4&#-b|n9ZpS_A3YgyThd0EzZ9%SHl!s!ZjRU z%<7)i1FfQP*h&2r*rl5}N&d;Tg@-4R@?=e{;cW|4mo1X3+GbQt(3_)41~a$r;t)KB z0SNeG<-$ya5oLnVfGzHyf|KBz>`E5j8{3N4>!HO~HJ!e+nLDaK87WV>q4&(j(sbXP z_}@z{lJe2hc<-|nc;mVzH)>h(Rl_gLeP;QdJ>H%?A-QO{A&~+(v)*$q8X6G=awUIc zcNt;EYTiR~(Sf>n=s!J86LL}XQ_x*4cinY5(QvPVUNTWaC)^C|w%c0A=d_~F#YjXI z{5dO_3GW`sN#a;wzQ)9iW);Pej(EYUj3Fj3B!ar5FpA_2Q$_Fa>m1?fr}lndmGE@@-|kXZKwi^$VZ`C4qLiSGC+io;{R(~ zrytrc%J(%>v4q9W&Az|8*;bJgBu6eBm7b9hRVQOjHUVZOxAF=NspGe{ys2kR_9?(k zUsYS;w`B*q|dSi2NBGi>)&!dTP0@ahtV;Y7f%LZ!+Lj zzk89ID}|iaWKLn4D|2jr!WFd?az8J(_iP9f)pq92s5`~kL+|{^C>4h>6^$#K0h#Wq zHF|{kXKy*j7CLVdxMP*bWY3;k`QHzIBpI8Gx%UloIVJX{o`1f>%O-X%ysKpW`#DXs z+t65;Yx@j)yoq?9%d7qd|BB5n6L+5^~-st?+DItUWy4ZCbRZFjanGh`>|Eu(&9NAuK|_KP)aRc)yRrB47y# zIC2b2iV_U^3lb9&0>fFxv9vKn;V;Iqq%c76%5f}9Opp+qWCF_yLjvwOftHHFYkwbv z;ky%9TxcQ1B$gB)_Lnn|gqS!4{GS2PGKhrmf6CBrGl7NwwuOL%gvI_-4+H@TgZ>%| zS|%nW`bQ7=p8=v@kAnQAh<<4bEGqGz4uwG=VKI^aB@+SvFM=RZ@xRERZN)@{{@oTp z&n#L9{yVU+FhorJ-xbk%!Xm;#e+L#8fr$MzTf)MkqTs*vM8w5}{+cae5pl4n_1~;T wz+#}kS&K*r3I9z-6atd?o3toI^gl<3CM^mP7lR8;W2xeRKzJM+542VO3s&a@asU7T delta 9887 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 Date: Wed, 1 Sep 2021 12:11:07 -0400 Subject: [PATCH 17/26] .ccls file --- .ccls | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 .ccls diff --git a/.ccls b/.ccls new file mode 100644 index 0000000..bff1d50 --- /dev/null +++ b/.ccls @@ -0,0 +1,7 @@ +clang +%c -std=c17 +%cpp -std=c++2a +%h %hpp --include=Global.h +-Iinc +-DMACRO + From 724f15a890395626bc637d64227721ad346e8e62 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Wed, 1 Sep 2021 12:11:21 -0400 Subject: [PATCH 18/26] add more to gitignore --- .gitignore | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitignore b/.gitignore index 3cfa25a..87a02f0 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,10 @@ build a.out ams562_desktop.py +*.out lecture_code/*/.ccls-cache/* +lecture_code/*/*/.ccls-cache/* lecture_code/lecture0/.ccls-cache/@@home@agh@projects@ams562-work@ams562-notes@lecture_code@lecture0/@home@agh@software@clang+llvm-10.0.0@lib@clang@10.0.0@include@__stddef_max_align_t.h .ccls-cache/* + +*/.ccls-cache/* From 6e50af4c5b16b8dfd52e5d3aff4b3b5526ea2011 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Wed, 1 Sep 2021 12:39:52 -0400 Subject: [PATCH 19/26] user_defined_types --- .../tour/ch2_user_defined_types/classes.cpp | 44 +++++++++++ .../tour/ch2_user_defined_types/enum.cpp | 66 ++++++++++++++++ .../tour/ch2_user_defined_types/structs.cpp | 70 +++++++++++++++++ .../tour/ch2_user_defined_types/unions.cpp | 51 +++++++++++++ .../tour/ch2_user_defined_types/unions1.cpp | 67 ++++++++++++++++ .../tour/ch2_user_defined_types/unions2.cpp | 76 +++++++++++++++++++ .../tour/ch2_user_defined_types/variant.cpp | 47 ++++++++++++ 7 files changed, 421 insertions(+) create mode 100644 lecture_code/tour/ch2_user_defined_types/classes.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/enum.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/structs.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/unions.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/unions1.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/unions2.cpp create mode 100644 lecture_code/tour/ch2_user_defined_types/variant.cpp diff --git a/lecture_code/tour/ch2_user_defined_types/classes.cpp b/lecture_code/tour/ch2_user_defined_types/classes.cpp new file mode 100644 index 0000000..0865299 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/classes.cpp @@ -0,0 +1,44 @@ +#include + +// Vector object is a "handle" containing pointer to elements +// and number of elements +// The number of elements can vary from Vector object to Vector object +// However, a single vector object always has the same size. +class Vector { +public: + Vector(int s) : elem{new double[s]}, sz{s} {} // construct a Vector + double &operator[](int i) { return elem[i]; } + int size() { return sz; } + +private: + double *elem; // pointer to elements + int sz; // the nubmer of elements +}; +// the members elem and sz are only accessible through +// the interface provided +// Vector(), operator[](), and size() + +double read_and_sum(int s) +// read s integers from cin and return their sum; +// s is assumed to be positive +{ + Vector v(s); // Vector with s elements + for (int i = 0; i != v.size(); ++i) { + std::cin >> v[i]; // write to v[i] through [] operator which returns + // reference to elem[i] + } + double sum = 0; + for (int i = 0; i != v.size(); ++i) { + sum += v[i]; // sum read through [] operator + } + return sum; +} + +int main() { + // + // + int s = 3; + read_and_sum(s); + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/enum.cpp b/lecture_code/tour/ch2_user_defined_types/enum.cpp new file mode 100644 index 0000000..25ccc03 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/enum.cpp @@ -0,0 +1,66 @@ +#include +#include +#include + +enum class Color { red, blue, green }; +enum class Traffic_light { green, yellow, red }; + +Traffic_light &operator++(Traffic_light &t) { + switch (t) { + case Traffic_light::green: + return t = Traffic_light::yellow; + case Traffic_light::yellow: + return t = Traffic_light::red; + case Traffic_light::red: + return t = Traffic_light::green; + } + return t; +} + +void printLight(const Traffic_light &t) { + if (t == Traffic_light::green) { + std::cout << "Green" << std::endl; + } else if (t == Traffic_light::yellow) { + std::cout << "Yellow" << std::endl; + } else if (t == Traffic_light::red) { + std::cout << "Red" << std::endl; + } else { + std::cout << "Flash Who knows" << std::endl; + } +} + +int main() { + Color col = Color::red; + Traffic_light light = Traffic_light::red; + printLight(light); + ++light; + printLight(light); + ++light; + printLight(light); + + // enumerators are in the scope of their enum class + // The can be used repeatedly in different enum classes + // without confusion + // + // Enumerations are used to represent a small set of integer + // values. They are used to make code more readable + // and less error-prone + // + // The class after enum specifies that an enumeration + // is strongly typed and that its enumerations are scoped + // + // Being seperate types, enum classes help prevent accidental + // misuses of constants...we can't mix Traffic_light and + // Color values: + // + // + // Color x = red; eror which red? + // Color y = Traffic_light::red; red is not a Color + Color z = Color::red; // allowed in c++ 17 + Color x = Color{5}; // allowed in c++ 17 + Color y{0}; + std::cout << (int)x << std::endl; + std::cout << (int)z << std::endl; + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/structs.cpp b/lecture_code/tour/ch2_user_defined_types/structs.cpp new file mode 100644 index 0000000..84eba94 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/structs.cpp @@ -0,0 +1,70 @@ +#include + +struct Vector { + int sz; // number of elements + double *elem; // pointer to elements +}; + +// we pass v by non const reference +void vector_init(Vector &v, int s) { + v.elem = new double[s]; // allocate an array of s doubles + v.sz = s; +} +// new operator allocates memory from area called the +// free store +// dynamic memory +// heap +// Objects that live in the free store +// are independent of the scope in which +// they are created. +// The "live" until they are destroyed using the delete +// operator +// +double read_and_sum(int s) +// read s integers from cin and return their sum; +// s is assumed to be positive +{ + Vector v; + vector_init(v, s); + + for (int i = 0; i != s; ++i) { + std::cin >> v.elem[i]; + } + double sum = 0; + for (int i = 0; i != s; ++i) { + sum += v.elem[i]; + } + return sum; +} + +// we asume that v is valid (aka) initialized with a value for members +void f(Vector v, Vector &rv, Vector *pv) { + int i1 = v.sz; // access through name + int i2 = rv.sz; // access through reference + int i3 = pv->sz; // access through pointer + std::cout << "Here are the sizes " << i1 << " " << i2 << " " << i3 + << std::endl; +} +// We use .(dot) to access struct members through name (and through reference) +// -> to access struct members through a pointer. + +int main() { + // + if (true) { + + int sz = 5; + Vector v; + vector_init(v, sz); + + Vector *pv = &v; + Vector &rv = v; + f(v, rv, pv); + } else { + + double s = read_and_sum(3); + + std::cout << "sum of 3 numbers " << std::endl; + } + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/unions.cpp b/lecture_code/tour/ch2_user_defined_types/unions.cpp new file mode 100644 index 0000000..597bbe6 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/unions.cpp @@ -0,0 +1,51 @@ +#include +#include + +// Union is a struct in which all members at the same address +// so taht the union occupies only as much space as its largest +// member. A union can only hold a value for only one member +// at a time. Example, consider a symbol table entry that +// holds a name and a value. The value can either +// be a Node* or an int: +// +enum Type { ptr, num }; // a Type can hold values ptr and num + +struct Entry { + std::string name; // strin is a standsard library type + Type t; + int *p; // use p if t==ptr + int i; + ; // use i if t=num +}; + +// we only use either p or i +void f(Entry *pe) { + if (pe->t == num) + std::cout << pe->i; + else { + std::cout << *pe->p; + } +} + +int main() { + // + Entry ei; + ei.t = num; // set the Type to num + ei.i = 40; + + Entry ep; + ep.t = ptr; // set Type + ep.p = new int; + *ep.p = 20; + // + Entry *p_ei = &ei; + Entry *p_ep = &ep; + + std::cout << "Ei = "; + f(p_ei); + std::cout << std::endl; + std::cout << "Ep = "; + f(p_ep); + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/unions1.cpp b/lecture_code/tour/ch2_user_defined_types/unions1.cpp new file mode 100644 index 0000000..c66e29f --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/unions1.cpp @@ -0,0 +1,67 @@ +#include +#include + +// Union is a struct in which all members at the same address +// so taht the union occupies only as much space as its largest +// member. A union can only hold a value for only one member +// at a time. Example, consider a symbol table entry that +// holds a name and a value. The value can either +// be a Node* or an int: +// +enum Type { ptr, num }; // a Type can hold values ptr and num + +// Since p and i are never used at the same time space is wasted +// You can recover the space by specifyying that both should +// be members of a union like this +union Value { + int *p; + int i; +}; + +struct Entry { + std::string name; // strin is a standsard library type + Type t; + Value v; + ; // use i if t=num +}; + +// we only use either p or i +void f(Entry *pe) { + if (pe->t == num) + std::cout << pe->v.i; + else { + std::cout << *pe->v.p; + } +} + +// maintaining the correspondence between a type field (here t) +// and the type held in a union is error prone. +// To avoid erros we can enfornce that correspondence by encapsulating +// the union and the type field in a class and offer access only +// through member functions that use the union correctly. +// +// At the application level, abstractions relying on such tagged unions +// are common and useful. The use of "naked" unions is best minimized + +int main() { + // + Entry ei; + ei.t = num; // set the Type to num + ei.v.i = 40; + + Entry ep; + ep.t = ptr; // set Type + ep.v.p = new int; + *ep.v.p = 20; + // + Entry *p_ei = &ei; + Entry *p_ep = &ep; + + std::cout << "Ei = "; + f(p_ei); + std::cout << std::endl; + std::cout << "Ep = "; + f(p_ep); + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/unions2.cpp b/lecture_code/tour/ch2_user_defined_types/unions2.cpp new file mode 100644 index 0000000..6813236 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/unions2.cpp @@ -0,0 +1,76 @@ +#include +#include + +// Union is a struct in which all members at the same address +// so taht the union occupies only as much space as its largest +// member. A union can only hold a value for only one member +// at a time. Example, consider a symbol table entry that +// holds a name and a value. The value can either +// be a Node* or an int: +// +enum Type { ptr, num }; // a Type can hold values ptr and num + +// Since p and i are never used at the same time space is wasted +// You can recover the space by specifyying that both should +// be members of a union like this +union Value { + int *p; + int i; +}; + +class ValueUnion { +private: + Value v; + Type t; + +public: + ValueUnion(Type ti, Value vi) : v{vi}, t{ti} {} +}; + +struct Entry { + std::string name; // strin is a standsard library type + Type t; + Value v; + ; // use i if t=num +}; + +// we only use either p or i +void f(Entry *pe) { + if (pe->t == num) + std::cout << pe->v.i; + else { + std::cout << *pe->v.p; + } +} + +// maintaining the correspondence between a type field (here t) +// and the type held in a union is error prone. +// To avoid erros we can enfornce that correspondence by encapsulating +// the union and the type field in a class and offer access only +// through member functions that use the union correctly. +// +// At the application level, abstractions relying on such tagged unions +// are common and useful. The use of "naked" unions is best minimized + +int main() { + // + Entry ei; + ei.t = num; // set the Type to num + ei.v.i = 40; + + Entry ep; + ep.t = ptr; // set Type + ep.v.p = new int; + *ep.v.p = 20; + // + Entry *p_ei = &ei; + Entry *p_ep = &ep; + + std::cout << "Ei = "; + f(p_ei); + std::cout << std::endl; + std::cout << "Ep = "; + f(p_ep); + + return 0; +} diff --git a/lecture_code/tour/ch2_user_defined_types/variant.cpp b/lecture_code/tour/ch2_user_defined_types/variant.cpp new file mode 100644 index 0000000..593fed3 --- /dev/null +++ b/lecture_code/tour/ch2_user_defined_types/variant.cpp @@ -0,0 +1,47 @@ +#include +#include +#include + +struct Entry { + std::string name; // strin is a standsard library type + std::variant v; +}; + +// we only use either p or i +void f(Entry *pe) { + if (std::holds_alternative(pe->v)) { + std::cout << std::get(pe->v); + } else { + std::cout << *std::get(pe->v); + } +} + +// maintaining the correspondence between a type field (here t) +// and the type held in a union is error prone. +// To avoid erros we can enfornce that correspondence by encapsulating +// the union and the type field in a class and offer access only +// through member functions that use the union correctly. +// +// At the application level, abstractions relying on such tagged unions +// are common and useful. The use of "naked" unions is best minimized + +int main() { + // + Entry ei; + ei.v = 40; + + Entry ep; + ep.v = new int; + ep.v = 20; + // + Entry *p_ei = &ei; + Entry *p_ep = &ep; + + std::cout << "Ei = "; + f(p_ei); + std::cout << std::endl; + std::cout << "Ep = "; + f(p_ep); + + return 0; +} From 707874ed90aa5c2d0f267a1030268a0d062bb87d Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Thu, 2 Sep 2021 19:16:54 -0400 Subject: [PATCH 20/26] lecuture1 code --- lecture_code/lecture0/ex1.cpp | 2 +- lecture_code/tour/ch1_Basics/hello_world.cpp | 8 ++++++++ lecture_code/tour/ch1_Basics/printmul2.cpp | 13 +++++++++++++ lecture_code/tour/ch1_Basics/simple.cpp | 1 + 4 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 lecture_code/tour/ch1_Basics/hello_world.cpp create mode 100644 lecture_code/tour/ch1_Basics/printmul2.cpp create mode 100644 lecture_code/tour/ch1_Basics/simple.cpp diff --git a/lecture_code/lecture0/ex1.cpp b/lecture_code/lecture0/ex1.cpp index 5e3a27f..6cc2ca1 100644 --- a/lecture_code/lecture0/ex1.cpp +++ b/lecture_code/lecture0/ex1.cpp @@ -1,3 +1,3 @@ -int main() { return 0; } +int main() { return 0; } // minimal C++ program diff --git a/lecture_code/tour/ch1_Basics/hello_world.cpp b/lecture_code/tour/ch1_Basics/hello_world.cpp new file mode 100644 index 0000000..dba1f9a --- /dev/null +++ b/lecture_code/tour/ch1_Basics/hello_world.cpp @@ -0,0 +1,8 @@ +#include + +int main() { + + std::cout << "Hello AMS 562\n"; + + return 0; +} diff --git a/lecture_code/tour/ch1_Basics/printmul2.cpp b/lecture_code/tour/ch1_Basics/printmul2.cpp new file mode 100644 index 0000000..a51abdc --- /dev/null +++ b/lecture_code/tour/ch1_Basics/printmul2.cpp @@ -0,0 +1,13 @@ +#include + +double mul2(double x) { return x * 2; } +void printxmul2(double x) { + std::cout << "2 * " << x << " is " << mul2(x) << "\n"; +} + +int main() { + + printxmul2(2.234); + + return 0; +} diff --git a/lecture_code/tour/ch1_Basics/simple.cpp b/lecture_code/tour/ch1_Basics/simple.cpp new file mode 100644 index 0000000..76e8197 --- /dev/null +++ b/lecture_code/tour/ch1_Basics/simple.cpp @@ -0,0 +1 @@ +int main() { return 0; } From a2e59be27234bcc6fadabb6bdc6e86b7d094b882 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Thu, 2 Sep 2021 20:42:56 -0400 Subject: [PATCH 21/26] more lecture 1 --- lecture_code/tour/ch1_Basics/declare_test.cpp | 9 ++++++++ .../tour/ch1_Basics/fundamental_types.cpp | 20 +++++++++++++++++ lecture_code/tour/ch1_Basics/printmul2.cpp | 1 - lecture_code/tour/ch1_Basics/swap_int.cpp | 22 +++++++++++++++++++ 4 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 lecture_code/tour/ch1_Basics/declare_test.cpp create mode 100644 lecture_code/tour/ch1_Basics/fundamental_types.cpp create mode 100644 lecture_code/tour/ch1_Basics/swap_int.cpp diff --git a/lecture_code/tour/ch1_Basics/declare_test.cpp b/lecture_code/tour/ch1_Basics/declare_test.cpp new file mode 100644 index 0000000..ca11f0a --- /dev/null +++ b/lecture_code/tour/ch1_Basics/declare_test.cpp @@ -0,0 +1,9 @@ + +#include + +int main(void) { + int temp; + std::cout << temp << std::endl; // undefined behaviour + temp = 5; + std::cout << temp << std::endl; +} diff --git a/lecture_code/tour/ch1_Basics/fundamental_types.cpp b/lecture_code/tour/ch1_Basics/fundamental_types.cpp new file mode 100644 index 0000000..8775250 --- /dev/null +++ b/lecture_code/tour/ch1_Basics/fundamental_types.cpp @@ -0,0 +1,20 @@ + +#include + +int main(void) { + bool b; // Boolean, true/false + char c; // character 'a','z','9' + int i; // integer, -265, 32, 29 + double d; // double-precision floating point number + long l; // double-precision floating point number + double *ptr; // pointer to double (address to variable) + unsigned ui; // non-negative integer, for example 0,1,999 + + std::cout << "size of bool = " << sizeof(b) << " byte" << std::endl; + std::cout << "size of char = " << sizeof(c) << " byte" << std::endl; + std::cout << "size of double = " << sizeof(d) << " byte" << std::endl; + std::cout << "size of int = " << sizeof(i) << " byte" << std::endl; + std::cout << "size of long = " << sizeof(l) << " byte" << std::endl; + std::cout << "size of pointer = " << sizeof(ptr) << " byte" << std::endl; + std::cout << "size of ui = " << sizeof(ui) << " byte" << std::endl; +} diff --git a/lecture_code/tour/ch1_Basics/printmul2.cpp b/lecture_code/tour/ch1_Basics/printmul2.cpp index a51abdc..e30a3af 100644 --- a/lecture_code/tour/ch1_Basics/printmul2.cpp +++ b/lecture_code/tour/ch1_Basics/printmul2.cpp @@ -6,7 +6,6 @@ void printxmul2(double x) { } int main() { - printxmul2(2.234); return 0; diff --git a/lecture_code/tour/ch1_Basics/swap_int.cpp b/lecture_code/tour/ch1_Basics/swap_int.cpp new file mode 100644 index 0000000..4f82e7c --- /dev/null +++ b/lecture_code/tour/ch1_Basics/swap_int.cpp @@ -0,0 +1,22 @@ + +#include + +void swap(int &, int &); + +int main(void) { + int a = 2; + int b = 4; + int temp; + std::cout << temp; + std::cout << "a = " << a << " b = " << b << std::endl; + + swap(a, b); + + std::cout << "a = " << a << " b = " << b << std::endl; +} + +void swap(int &a, int &b) { + int temp = b; + b = a; + a = temp; +} From 7daf18995e745c8e7581e2e793e95f261328a21c Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Thu, 2 Sep 2021 21:22:08 -0400 Subject: [PATCH 22/26] move files around to lecture1 --- .../ch1_Basics => lecture1}/declare_test.cpp | 0 .../ch1_Basics => lecture1}/hello_world.cpp | 0 lecture_code/lecture1/literal.cpp | 30 +++++-------------- .../ch1_Basics => lecture1}/printmul2.cpp | 0 .../{tour/ch1_Basics => lecture1}/simple.cpp | 0 .../ch1_Basics => lecture1}/swap_int.cpp | 0 .../tour/ch1_Basics/fundamental_types.cpp | 6 ++++ 7 files changed, 13 insertions(+), 23 deletions(-) rename lecture_code/{tour/ch1_Basics => lecture1}/declare_test.cpp (100%) rename lecture_code/{tour/ch1_Basics => lecture1}/hello_world.cpp (100%) rename lecture_code/{tour/ch1_Basics => lecture1}/printmul2.cpp (100%) rename lecture_code/{tour/ch1_Basics => lecture1}/simple.cpp (100%) rename lecture_code/{tour/ch1_Basics => lecture1}/swap_int.cpp (100%) diff --git a/lecture_code/tour/ch1_Basics/declare_test.cpp b/lecture_code/lecture1/declare_test.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/declare_test.cpp rename to lecture_code/lecture1/declare_test.cpp diff --git a/lecture_code/tour/ch1_Basics/hello_world.cpp b/lecture_code/lecture1/hello_world.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/hello_world.cpp rename to lecture_code/lecture1/hello_world.cpp diff --git a/lecture_code/lecture1/literal.cpp b/lecture_code/lecture1/literal.cpp index b98a136..f22a81c 100644 --- a/lecture_code/lecture1/literal.cpp +++ b/lecture_code/lecture1/literal.cpp @@ -1,37 +1,21 @@ #include #include -void print_message(int a) { - std::cout << "int" << ::std::endl; - std::cout << a << ::std::endl; -} -void print_message(long int a) { - std::cout << "long int" << ::std::endl; - std::cout << a << ::std::endl; -} +void print_message(int a) { std::cout << "int " << a << ::std::endl; } +void print_message(long int a) { std::cout << "long int " << a << ::std::endl; } void print_message(unsigned long int a) { - std::cout << "unsigned long int" << ::std::endl; - std::cout << a << ::std::endl; + std::cout << "unsigned long int " << a << ::std::endl; } void print_message(unsigned int a) { - std::cout << "unsigned int" << ::std::endl; - std::cout << a << ::std::endl; -} -void print_message(float a) { - std::cout << "float" << ::std::endl; - std::cout << a << ::std::endl; -} -void print_message(double a) { - std::cout << "double" << ::std::endl; - std::cout << a << ::std::endl; + std::cout << "unsigned int " << a << ::std::endl; } +void print_message(float a) { std::cout << "float " << a << ::std::endl; } +void print_message(double a) { std::cout << "double " << a << ::std::endl; } void print_message(std::string a) { - std::cout << "string " << ::std::endl; - std::cout << a << ::std::endl; + std::cout << "string " << a << ::std::endl; } int main() { - print_message(-32); print_message(-32u); print_message(32ul); diff --git a/lecture_code/tour/ch1_Basics/printmul2.cpp b/lecture_code/lecture1/printmul2.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/printmul2.cpp rename to lecture_code/lecture1/printmul2.cpp diff --git a/lecture_code/tour/ch1_Basics/simple.cpp b/lecture_code/lecture1/simple.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/simple.cpp rename to lecture_code/lecture1/simple.cpp diff --git a/lecture_code/tour/ch1_Basics/swap_int.cpp b/lecture_code/lecture1/swap_int.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/swap_int.cpp rename to lecture_code/lecture1/swap_int.cpp diff --git a/lecture_code/tour/ch1_Basics/fundamental_types.cpp b/lecture_code/tour/ch1_Basics/fundamental_types.cpp index 8775250..dbc08c5 100644 --- a/lecture_code/tour/ch1_Basics/fundamental_types.cpp +++ b/lecture_code/tour/ch1_Basics/fundamental_types.cpp @@ -10,6 +10,9 @@ int main(void) { double *ptr; // pointer to double (address to variable) unsigned ui; // non-negative integer, for example 0,1,999 + unsigned short fu = 0b1111111111111111; + short fi = 0b0111111111111111; + std::cout << "size of bool = " << sizeof(b) << " byte" << std::endl; std::cout << "size of char = " << sizeof(c) << " byte" << std::endl; std::cout << "size of double = " << sizeof(d) << " byte" << std::endl; @@ -17,4 +20,7 @@ int main(void) { std::cout << "size of long = " << sizeof(l) << " byte" << std::endl; std::cout << "size of pointer = " << sizeof(ptr) << " byte" << std::endl; std::cout << "size of ui = " << sizeof(ui) << " byte" << std::endl; + + std::cout << "max int = " << fi << std::endl; + std::cout << "max unsigned = " << fu << std::endl; } From 5f36eb8d8ec9c5d6864dada1bd30936df1d93b65 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Thu, 2 Sep 2021 21:33:33 -0400 Subject: [PATCH 23/26] Add precision.cpp --- lecture_code/lecture1/precision.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 lecture_code/lecture1/precision.cpp diff --git a/lecture_code/lecture1/precision.cpp b/lecture_code/lecture1/precision.cpp new file mode 100644 index 0000000..0ee7bb2 --- /dev/null +++ b/lecture_code/lecture1/precision.cpp @@ -0,0 +1,12 @@ +#include + +int main() { + float single_lhs = 1.1; + float single_rhs = 1.10000004; + std::cout << (single_lhs == single_rhs) << std::endl; + // try the same with double + double double_lhs = 1.1; + double double_rhs = 1.10000004; + std::cout << (double_lhs == double_rhs) << std::endl; + return 0; +} From 909836ed16399a89dfd7a413a8e8f336e2a1c8c7 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Thu, 2 Sep 2021 21:49:25 -0400 Subject: [PATCH 24/26] simple string example --- lecture_code/lecture1/simple_string.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 lecture_code/lecture1/simple_string.cpp diff --git a/lecture_code/lecture1/simple_string.cpp b/lecture_code/lecture1/simple_string.cpp new file mode 100644 index 0000000..15221a6 --- /dev/null +++ b/lecture_code/lecture1/simple_string.cpp @@ -0,0 +1,16 @@ +#include +#include + +int main() { + char fname[128] = {"ADRIAN"}; // C-style character array + char lname[128] = { + "HURTADO"}; // automatically appends null termination character \0 + std::string dfname = "Stella"; + std::string dlname = "Luna"; + + std::cout << "My name is " << fname << " " << lname + << std::endl; // reads to null termination charcter + std::cout << "My dog's name " << dfname << " " << dlname << std::endl; + + return 0; +} From a5f888896b73bebb56994bbe25c8b86da88f7ee5 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Fri, 3 Sep 2021 12:26:58 -0400 Subject: [PATCH 25/26] lecture 1 --- lecture_code/lecture0/hello_world.cpp | 2 +- lecture_code/lecture1/cin_demo.cpp | 12 ++++ .../fundamental_types.cpp | 0 lecture_code/lecture1/hello_world.cpp | 1 - lecture_code/lecture1/initialize.cpp | 54 +++++++++++++++++ lecture_code/lecture1/iostreams.cpp | 11 ++++ lecture_code/lecture1/literal.cpp | 59 ++++++++++++------- lecture_code/lecture1/precision.cpp | 7 ++- lecture_code/lecture1/read_line.cpp | 15 +++++ lecture_code/lecture1/scope_lifetime.cpp | 29 +++++++++ 10 files changed, 166 insertions(+), 24 deletions(-) create mode 100644 lecture_code/lecture1/cin_demo.cpp rename lecture_code/{tour/ch1_Basics => lecture1}/fundamental_types.cpp (100%) create mode 100644 lecture_code/lecture1/initialize.cpp create mode 100644 lecture_code/lecture1/iostreams.cpp create mode 100644 lecture_code/lecture1/read_line.cpp create mode 100644 lecture_code/lecture1/scope_lifetime.cpp diff --git a/lecture_code/lecture0/hello_world.cpp b/lecture_code/lecture0/hello_world.cpp index 9228f00..9d6ae73 100644 --- a/lecture_code/lecture0/hello_world.cpp +++ b/lecture_code/lecture0/hello_world.cpp @@ -1,5 +1,5 @@ // This is the famous hello world program -#include +//#include int main() { // we print hello world using the diff --git a/lecture_code/lecture1/cin_demo.cpp b/lecture_code/lecture1/cin_demo.cpp new file mode 100644 index 0000000..6d9f0f2 --- /dev/null +++ b/lecture_code/lecture1/cin_demo.cpp @@ -0,0 +1,12 @@ +// This is the famous hello world program +#include + +int main() { + // best practice, always indicate the user what to enter + std::cout << "Please enter your first and last names: "; + std::string fname, lname; + // the program will hang here until receives the user input + std::cin >> fname >> lname; + std::cout << "Hello! " << fname << ' ' << lname << std::endl; + return 0; +} diff --git a/lecture_code/tour/ch1_Basics/fundamental_types.cpp b/lecture_code/lecture1/fundamental_types.cpp similarity index 100% rename from lecture_code/tour/ch1_Basics/fundamental_types.cpp rename to lecture_code/lecture1/fundamental_types.cpp diff --git a/lecture_code/lecture1/hello_world.cpp b/lecture_code/lecture1/hello_world.cpp index dba1f9a..a26a11b 100644 --- a/lecture_code/lecture1/hello_world.cpp +++ b/lecture_code/lecture1/hello_world.cpp @@ -1,7 +1,6 @@ #include int main() { - std::cout << "Hello AMS 562\n"; return 0; diff --git a/lecture_code/lecture1/initialize.cpp b/lecture_code/lecture1/initialize.cpp new file mode 100644 index 0000000..c893ee8 --- /dev/null +++ b/lecture_code/lecture1/initialize.cpp @@ -0,0 +1,54 @@ +#include +#include +#include +#include + +void print_var(int a) { std::cout << "int " << a << ::std::endl; } +void print_var(long int a) { std::cout << "long int " << a << ::std::endl; } +void print_var(unsigned long int a) { + std::cout << "unsigned long int " << a << ::std::endl; +} +void print_var(unsigned int a) { + std::cout << "unsigned int " << a << ::std::endl; +} +void print_var(float a) { std::cout << "float " << a << ::std::endl; } +void print_var(double a) { std::cout << "double " << a << ::std::endl; } +void print_var(std::string a) { std::cout << "string " << a << ::std::endl; } +void print_var(char a) { std::cout << "char " << a << std::endl; } +void print_var(bool a) { std::cout << "bool " << a << std::endl; } +void print_var(std::complex a) { + std::cout << "complex " << a.real() << " " << a.imag() << std::endl; +} + +int main() { + double d1 = 2.3; // initialize d1 to 2.3 + double d2{2.3}; // initialize d2 to 2.3 + double d3 = {2.3}; // is optional with {} + + std::complex z = 1; // a complex number with double-precision + std::complex z2{d1, d2}; + std::complex z3 = {d1, d2}; + print_var(z); + print_var(z2); + print_var(z3); + + std::vector v{1, 2, 3, 4, 5, 6}; // vector of ints + + int i1 = 7.8; // i1 becomes 7 + // int i2{7.8}; // error: narrowing conversion of double to int + // = allows narrowing conversion + // {} does not + unsigned int wha = -1; // What is the value? + int whaaaa{wha}; + print_var(wha); + print_var(whaaaa); + + auto b = true; // a bool + auto ch = 'x'; // a char + auto i = 124; // a int + auto d = 1.2; // a double + auto z = sqrt(y); // the type retured + auto bb{true}; // a bool + + return 0; +} diff --git a/lecture_code/lecture1/iostreams.cpp b/lecture_code/lecture1/iostreams.cpp new file mode 100644 index 0000000..853646d --- /dev/null +++ b/lecture_code/lecture1/iostreams.cpp @@ -0,0 +1,11 @@ +// This is the famous hello world program +#include + +int main() { + std::cout << "Hello World!\n"; + std::cout << "Hello World!" << std::endl; + std::cout << "1 +1 =" << (1 + 1) << std::end; + std::cout << "Size of double is: " << sizeof(double) << std::endl; + + return 0; +} diff --git a/lecture_code/lecture1/literal.cpp b/lecture_code/lecture1/literal.cpp index f22a81c..e897922 100644 --- a/lecture_code/lecture1/literal.cpp +++ b/lecture_code/lecture1/literal.cpp @@ -1,33 +1,50 @@ #include #include +// This code depends on function overloading +// Function overloading is defining multiple functions with the same name +// Each function has the same name but differ in their input parameters +// You -void print_message(int a) { std::cout << "int " << a << ::std::endl; } -void print_message(long int a) { std::cout << "long int " << a << ::std::endl; } -void print_message(unsigned long int a) { +void print_var(int a) { std::cout << "int " << a << ::std::endl; } +void print_var(long int a) { std::cout << "long int " << a << ::std::endl; } +void print_var(unsigned long int a) { std::cout << "unsigned long int " << a << ::std::endl; } -void print_message(unsigned int a) { +void print_var(unsigned int a) { std::cout << "unsigned int " << a << ::std::endl; } -void print_message(float a) { std::cout << "float " << a << ::std::endl; } -void print_message(double a) { std::cout << "double " << a << ::std::endl; } -void print_message(std::string a) { - std::cout << "string " << a << ::std::endl; -} +void print_var(float a) { std::cout << "float " << a << ::std::endl; } +void print_var(double a) { std::cout << "double " << a << ::std::endl; } +void print_var(std::string a) { std::cout << "string " << a << ::std::endl; } +void print_var(char a) { std::cout << "char " << a << ::std::endl; } int main() { - print_message(-32); - print_message(-32u); - print_message(32ul); - print_message(32l); - print_message(32u); - - print_message(1.0f); - print_message(-2.0); - print_message(-5.21); - - print_message("\"A\""); - print_message("\'"); + // integer literals + print_var(0b00001); // binary integer literal + print_var(0b01011); + print_var(0xFFFFFu); + print_var(0xFFFF); + print_var(0b00001); // binary + print_var(0x0BF0); // hexadecimal + print_var(-32); + print_var(-32u); + print_var(32ul); + print_var(32l); + print_var(32u); + // floating point literals + print_var(1.0f); + print_var(3.2e-1f); + // doubles + print_var(3.2e2); + print_var(-2.0); + print_var(-5.21); + // String Literlas + print_var("\"A\""); + print_var("\'"); + print_var("\tHello World!\n"); + print_var("\Hello\v World!\n"); + // Char literals + print_var('a'); // literals // 32, 1, -2, -100, 30001,... // 32l // long literal diff --git a/lecture_code/lecture1/precision.cpp b/lecture_code/lecture1/precision.cpp index 0ee7bb2..49a0e91 100644 --- a/lecture_code/lecture1/precision.cpp +++ b/lecture_code/lecture1/precision.cpp @@ -1,8 +1,13 @@ #include +// floats have 7 digits of precision +// doubles have 15 + +// Question is 1.1 = 1.10000004 int main() { float single_lhs = 1.1; - float single_rhs = 1.10000004; + float single_rhs = 1.10000004; // 10 sig + // == operator tests equality std::cout << (single_lhs == single_rhs) << std::endl; // try the same with double double double_lhs = 1.1; diff --git a/lecture_code/lecture1/read_line.cpp b/lecture_code/lecture1/read_line.cpp new file mode 100644 index 0000000..5e2e473 --- /dev/null +++ b/lecture_code/lecture1/read_line.cpp @@ -0,0 +1,15 @@ +// This is the famous hello world program +#include + +int main() { + std::string word, sent; + std::cout << "Enter a word:"; + std::cin >> word; // read in a word from cin + std::cout << "The word you just entered is:" << word << std::endl; + std::cin.ignore(); // ignore '\n' + std::cout << "Enter a sentence:\n"; + std::getline(std::cin, sent); + std::cout << "The sentence you entered is:\n" << sent << std::endl; + + return 0; +} diff --git a/lecture_code/lecture1/scope_lifetime.cpp b/lecture_code/lecture1/scope_lifetime.cpp new file mode 100644 index 0000000..6a861f8 --- /dev/null +++ b/lecture_code/lecture1/scope_lifetime.cpp @@ -0,0 +1,29 @@ +#include +#include +#include +#include + +// scope and life time +int hello = 2; // global namespace + +double square(double a) { + std::cout << "global hello in square function " << hello << std::endl; + return a * a; +} + +int main() { + double local_main = 32; + + { + std::cout << local_main << std::endl; + double local_scope_d = 23; + std::cout << local_scope_d << std::endl; + } // local _scope_d gets destroyed here + // std::cout << local_scope_d << std::endl; + + std::cout << "global hello in main function" << hello + << std::endl; // print global scope hello + double s3 = square(3); + + return 0; +} From d5789b97c5065030a20cc9deed2e9fcc0e660cd7 Mon Sep 17 00:00:00 2001 From: Adrian Hurtado Date: Fri, 3 Sep 2021 12:27:21 -0400 Subject: [PATCH 26/26] lecture1 --- lecture_code/lecture1/scope_lifetime.cpp | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/lecture_code/lecture1/scope_lifetime.cpp b/lecture_code/lecture1/scope_lifetime.cpp index 6a861f8..612d1a8 100644 --- a/lecture_code/lecture1/scope_lifetime.cpp +++ b/lecture_code/lecture1/scope_lifetime.cpp @@ -5,25 +5,16 @@ // scope and life time int hello = 2; // global namespace - double square(double a) { std::cout << "global hello in square function " << hello << std::endl; return a * a; } - int main() { double local_main = 32; - - { - std::cout << local_main << std::endl; - double local_scope_d = 23; - std::cout << local_scope_d << std::endl; - } // local _scope_d gets destroyed here + { double local_scope_d = 23; } // local _scope_d gets destroyed here // std::cout << local_scope_d << std::endl; - std::cout << "global hello in main function" << hello << std::endl; // print global scope hello double s3 = square(3); - return 0; }