6. Pointers, Structs, and Arrays. 1. Juli 2011
|
|
- Cornelius Wilkins
- 6 years ago
- Views:
Transcription
1 1. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 50
2 Outline Recapitulation Pointers Dynamic Memory Allocation Structs Arrays Bubble Sort Strings Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 2 of 50
3 Recapitulation What is an enum? How is it encoded? What is a for loop? What is a declaration and what is a definition? What is a namespace for? What is a header file and how do we use it? What is an enum? What happens at the end of a scope? What is the difference between call-by-value and call-by-reference? Why is there a range for all primitive variables in C? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 3 of 50
4 6.1. Pointers Memory 21: 22; 20 // int a 23; 24; 25; 26; 27; 28: We have talked a lot about the mapping from variables to addresses. However, we have never analysed the real addresses. The memory is enumerated using an integer. Pointers are variables that hold the memory number (address) instead of a value. / / holds a f l o a t i n g p o i n t / / number double a ; i n t a ; / / holds address of a f l o a t i n g / / p o i n t number i n t b ; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 4 of 50
5 We Have Already Used Pointers Before : C/C++ only supports call-by-value. Call-by-reference is not a language concept. void foo ( i n t & a ) { / / a c t u a l l y, C/C++ does not support t h i s... i n t a = 20; foo ( a ) ; void foo ( i n t a ) { / / address now i s copied ( c a l l by value ) / / work on address of a, not on a d i r e c t l y... i n t a = 20; foo ( / address of a / ) ; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 5 of 50
6 Pointers And Addresses The * operator declares a pointer. i n t a ; i n t p ; The & operator returns the address of a variable (address operator or reference operator). p = &a ; The * operator makes an operation act on the location an pointers points to instead of the pointer itself (dereferencing operator. a += 10; ( p ) += 10; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 6 of 50
7 Pointers and the Memory Memory 21: 22; 20 // int a 23; 24; 22 // pointer p 25; 26; 27; 28: int a; a = 20; int *p; p = &a; a++; p++; (*p)++; *p++; // try this at home Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 7 of 50
8 Exercise void foo ( i n t & a ) { a+=1; i n t main ( ) { i n t a = 20; foo ( a ) ; std : : cout << a ;... Rewrite exactly this code without a return statement and without the reference operator. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 8 of 50
9 Solution void foo ( i n t a ) { ( a )+=1; / / i n d i r e c t memory access i n t main ( ) { i n t a = 20; / / d i r e c t memory access foo (&a ) ; std : : cout << a ;... There s three modifications. Analyse the call-by-value for the pointer. Which solution is the better/nicer solution? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 9 of 50
10 When to Use Pointers void foo ( i n t a ) { ( a )++;... a++; / / That could not have happened with references Pointers are difficult to handle (lots of syntactic overhead). We know how to do it, but do collaborators know? Avoid it whenever possible. Use C++ references instead. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 10 of 50
11 Pointer Syntax The pointer operator binds to the right neighbour. i n t a ; i n t b1 ; i n t b2 ; i n t b3 ; i n t c1, c2 ; i n t c3, c4 ; i n t c5, c6 ; i n t c7, c8 ; i n t c9 ; c7 = c8 ; c7 = c8 ; c7 = c8 ; c7 = c8 ; By the way, often people write int* p=0; to make the pointer point to nothing. However, also int* p = 20; would be fine (and for almost 100 percent is a bug). Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 11 of 50
12 Pointers and Scopes i n t p = &a ; f o r ( i n t i =0; i <2; i ++) { i n t a = 2 i ; p = &a ; std : : cout << a << std : : endl ; std : : cout << p << std : : endl std : : cout << a << std : : endl ; / / does t h i s work? std : : cout << p << std : : endl ; / / does t h i s work? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 12 of 50
13 Pointers and Scopes i n t p = &a ; f o r ( i n t i =0; i <2; i ++) { i n t a = 2 i ; p = &a ; std : : cout << a << std : : endl ; std : : cout << p << std : : endl std : : cout << a << std : : endl ; / / does t h i s work? std : : cout << p << std : : endl ; / / does t h i s work? With pointers, we can violate the end-of-scope rules, i.e. we can access variables that do not exist anymore. This is the principle of all these buffer overrun malware. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 12 of 50
14 6.2. Dynamic Memory Allocation Switching Off the Lifecycle Management double p ; p = new double ; / / now, p p o i n t s to an e x i s t i n g new v a r i a b l e p = 20; delete p ; / / now v a r i a b l e i s freed, but p s t i l l p o i n t s / / to t h i s v a r i a b l e. p = 30; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 13 of 50
15 Two Memory Leaks double p ; f o r ( i n t i =0; i <20; i ++) { p = new double ; delete p ; f o r ( i n t i =0; i <20; i ++) { double p = new double ; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 14 of 50
16 Two Memory Leaks double p ; f o r ( i n t i =0; i <20; i ++) { p = new double ; delete p ; f o r ( i n t i =0; i <20; i ++) { double p = new double ; The upper operation creates 20 doubles on the heap, but it destroys only one double in the end. Consequently, the remaining 19 doubles are lost for the future program execution. Let s sketch the memory layout! The second one destroys the pointer but not the space where the pointer is pointing to. This is why many applications crash after several hours of execution. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 14 of 50
17 6.3. Structs n-tuples / This represents one student i n our o n l i n e system / s t r u c t Student { i n t number ; double averagegrade ; ; Structs allow us to create user-defined data structures (n-tuples). Once declared, we can use them like built-in types. C/C++ takes care of the memory layout. This is particularly important for arrays of structs. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 15 of 50
18 Declaration and Definition / / T e l l s compiler t h a t something / / l i k e a StudentID does e x i s t s t r u c t StudentID ; / This represents one student i n our o n l i n e system / s t r u c t Student { i n t number ; double averagegrade ; StudentID id ; ; For pointers (and references), it is sufficient to tell the compiler that the type does exist (declaration). The declaration is needed for recursive definitions of structs. The declaration is needed for more the composition of structs. We ll first analyse struct composition. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 16 of 50
19 Struct Composition (Attributes) / / T e l l s compiler t h a t something / / l i k e a StudentID does e x i s t s t r u c t StudentID { i n t photonumber ; bool iswinterterm ; ; / This represents one student i n our o n l i n e system / s t r u c t Student { i n t number ; double averagegrade ; StudentID id ; / / i t isn t a pointer anymore ; Take a sheet of paper and sketch the memory layout for an instance of Student if the id is a pointer and if it is not a pointer. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 17 of 50
20 Memory Memory 21: 22; 40 // photono 23; true // winter term 24; 25; 26; 1234 // number 27; 3.4 // average grade 28: 22 // pointer 24; 25; 26; 1234 // number 27; 3.4 // average grade 28; 40 // photono 29; true // winter term 30: 31: Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 18 of 50
21 Structs Referencing Structs s t r u c t I n t e g e r E n t r y { i n t value ; I n t e g e r E n t r y next ; ; Take a sheet of paper and sketch the memory layout for an instance of IntegerEntry referencing another instance of IntegerEntry. What could be the reasoning behind such a data structure? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 19 of 50
22 Memory 21: 22; 40 // value 23; 26 // next 24; 25; 26; 23 // value 27; 0 // next 28: Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 20 of 50
23 Accessing the Elements of a Struct / / T e l l s compiler t h a t something l i k e a StudentID does e x i s t s t r u c t I n t e g e r E n t r y { i n t value ; I n t e g e r E n t r y next ; ;... IntegerEntry myentry ; myentry. value = 20; myentry. next = 0; IntegerEntry pentry = new IntegerEntry ; pentry >value = 20; pentry >next = 0; delete pentry ; The dot gives access to sub-fields. The -> operator gives access to sub-fields of pointers. Structs can be used with new as well. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 21 of 50
24 The Single Linked List / / T e l l s compiler t h a t something l i k e a StudentID does e x i s t s t r u c t I n t e g e r E n t r y { i n t value ; I n t e g e r E n t r y next ; ; void p r i n t L i s t ( I n t e g e r E n t r y f i r s t E n t r y ) { while ( f i r s t E n t r y! = 0 ) { std : : cout << f i r s t E n t r y >value << ; f i r s t E n t r y = f i r s t E n t r y >next ; void append ( I n t e g e r E n t r y f i r s t E n t r y, i n t value ) { while ( f i r s t E n t r y >next! = 0 ) { f i r s t E n t r y = f i r s t E n t r y >next ; IntegerEntry newentry = new IntegerEntry ; f i r s t E n t r y >next = newentry ; newentry >next = 0; newentry >value = value ; Can you rewrite append() recursively? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 22 of 50
25 Remove Element Operation Play around with the list and create a list [2, 4, 6, 8]. Write a remove operation that accepts an integer k and removes the kth entry from the list. Invoke it with remove(2). Print the result to the terminal. It should return [2, 4, 8]. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 23 of 50
26 An Excursus on Lists and Complexity the big-o notation f O(n k ) Doesn t grow faster than n k. Faster or slower refers to the leading term of the runtime polynomial. Constants or polynomials of lower order are not considered. Often, one writes = or says is of instead of is contained in. What does this mean for our list? What is the n there? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 24 of 50
27 An Excursus on Lists and Complexity the big-o notation f O(n k ) Doesn t grow faster than n k. Faster or slower refers to the leading term of the runtime polynomial. Constants or polynomials of lower order are not considered. Often, one writes = or says is of instead of is contained in. What does this mean for our list? What is the n there? Study the list in terms of n list entries. If we remove the first element, this is a fixed number of operations (O(1)). If we append an element, our while loop has to run over all n element before we can append an element (O(n)). If we search for an element, we have to study each element exactly once (O(n)). What could we do to make the append operation run faster? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 24 of 50
28 6.4. Arrays Application example: At the university, we wanna keep track of four grades a student did throughout his Master s studies. double analysis1 ; double analysis2 ; double linearalgebra ; double stochastics ;... / Takes grades, computes the average, and returns t h i s value. / double computeaverage ( const double& g1, const double& g2,... ) { double r e s u l t = g1+g2+g3+g4 ; r e s u l t /= 4. 0 ; r e t u r n r e s u l t ; Is this impractical, if we wanna store more than four values. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 25 of 50
29 Array Declaration Memory 21: 22; // grade[0] 23; // grade[1] 24; // grade[2] 25; // grade[3] 26; 27; 28: 22 // grade (pointer) double grade [ 4 ] ;... Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 26 of 50
30 Array Access Memory double grade [ 4 ] ;... 21: 22; // grade[0] 23; // grade[1] 24; // grade[2] 25; // grade[3] 26; 27; 28: 22 // grade (pointer) grade [ 0 ] = 1. 3 ; grade [ 2 ] = 3. 3 ; grade [ 3 ] = 1. 0 ; grade [ 1 ] = 4. 0 ; Depending on the context, [] either defines the size of an array (definition) or gives access to individual entries of an array (access). Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 27 of 50
31 Arrays & Pointers double grade [ 4 ] ; grade [ 0 ] = 1. 3 ; grade [ 2 ] = 3. 3 ; grade [ 3 ] = 1. 0 ; grade [ 1 ] = 4. 0 ; double p = grade ; i f ( grade [0]== p )... / / always t r u e i f ( grade [1]== ( p +1))... / / always t r u e An array variable is basically a pointer to the first element of the array. An array element access internally implies pointer arithmetics and dereferencing. Again, we thus have to range checks (size of array) at hand at all. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 28 of 50
32 Grades Revisited We need a range variable / Takes grades, computes the average, and returns t h i s value. / double computeaverage ( double grade, i n t numberofgrades ) { double r e s u l t = 0. 0 ; f o r ( i n t i =0; i<numberofgrades ; i ++ ) {... double scale = numberofgrades ; r e s u l t /= scale ; r e t u r n r e s u l t ;... double grade [ 4 ] ; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 29 of 50
33 Array Arguments double computeaverage ( double grade [ ], i n t numberofgrades ) {... double computeaverage ( const double grade [ ], i n t numberofgrades ) {... This time, the user is not allowed to modify any entry of grade. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 30 of 50
34 Pitfalls i n t gradesbsc, gradesmsc [ 5 ] ; gradesmsc [ 5 ] = 2. 3 ; gradesmsc [ 3 ] + + ; i n t p0 = gradesmsc ; i n t p1 = &gradesmsc [ 0 ] ; i n t p2 = &gradesmsc [ 1 ] ; gradesmsc++; / / t h a t does not work p2++; / / a r r r g h Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 31 of 50
35 Dynamic Arrays double grades = new double [ 4 5 ] ; delete [ ] grades ; We can create arrays on the heap. Size might be a variable, too. Corresponding delete has to be a delete[]. delete without brackets just deletes the first value. If we omit delete, we will get a memory leak. If we use the array after delete or before new, it points to garbage (remember: grades is only a pointer). Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 32 of 50
36 Array As Return Functions double createthreerandomgrades ( ) { double r e s u l t [ 3 ] ; r e s u l t [ 0 ] = 1. 3 ; r e s u l t [ 1 ] = 2. 7 ; r e s u l t [ 2 ] = 1. 0 ; r e t u r n r e s u l t ; double createthreerandomgrades ( ) { double r e s u l t = new double [ 3 ] ; r e s u l t [ 0 ] = 1. 3 ; r e s u l t [ 1 ] = 2. 7 ; r e s u l t [ 2 ] = 1. 0 ; r e t u r n r e s u l t ; At the end of the scope, the pointer is destroyed always. Arrays on the heap are not destroyed. This is called a factory mechanism. Someone else invoking the function has to delete the array. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 33 of 50
37 Multidimensional Arrays double matrix [ 4 ] [ 4 ] ; f o r ( i n t i =0; i <4; i ++) { f o r ( i n t j =0; j <4; j ++) { matrix [ i ] [ j ] = i == j? 1.0 : 0. 0 ; matrix [ 2 ] [ 1 ] = 1. 0 ; matrix [ 1 2 ] = 1. 0 ; What is the semantics of the for loop? Multidimensional arrays basically are flat arrays. C/C++ uses row-major format (different to FORTRAN). Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 34 of 50
38 Arrays of Structs s t r u c t Person { i n t age ; double weight ; ; Person couple [ 2 ] ; Person p = couple ; p++; C/C++ takes care of the memory padding. It stores the entries in the memory in the following order: couple[0].age, couple[0].weight, couple[1].age, couple[1].weight. The increment sets the pointer to the subsequent age address. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 35 of 50
39 Outlook C/C++ Arrays vs. FORTRAN FORTRAN is claimed to be the language for linear algebra as it is faster. FORTRAN does not provide pointers and dynamic data structures. Consequently, compiler can keep track of who has access where. Consequently, compiler can optimise aggressively (it tries to keep book of all possible values an array could have side-effect!). So, it is all a matter of exclusivity and the const operator. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 36 of 50
40 6.5. Sorting How can we sort an array with n entries? or: Yes We Can (watch a movie) ntqc8 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 37 of 50
41 Bubble Sort void s o r t ( i n t e n t r i e s [ ], const i n t & numberofentries ) { bool sorted = true ; while ( sorted ) { sorted = f a l s e ; f o r ( i n t i =0; i<numberofentries 1; i ++ ) { i f ( e n t r i e s [ i ]> e n t r i e s [ i + 1 ] ) {... sorted = true ; Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 38 of 50
42 Complexity of Bubble Sort Idea of bubble sort: Run over all elements in the list. Compare two subsequent elements whether they are in the correct order. Swap them if necessary. If a swap still had been necessary, run over list again. How expensive is the sorting? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 39 of 50
43 Complexity of Bubble Sort Idea of bubble sort: Run over all elements in the list. Compare two subsequent elements whether they are in the correct order. Swap them if necessary. If a swap still had been necessary, run over list again. How expensive is the sorting? The number of comparisons is a good metric. So, let n be the number of elements in our list. At most (worst case), we ll need n runs over the list. In the average case, we ll need n/2 runs over the list. In each run, we have to do n 1 comparisons. Overall, the complexity is O(n 2 ). More intelligent (but more complex) sorting algorithms need only O(n log n) comparisons. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 39 of 50
44 6.6. Strings C has no string concept. C++ has a nice string concept. C has chars. And C has arrays. Thus, C has arrays of chars. And C has a mapping of numbers to chars. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 40 of 50
45 Codes The ASCII Code Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 41 of 50
46 Termination Codes for Arrays Memory 21: 22; 24 23; 12 24; 71 25; 71 26; 14 27; 0 28: 29: 30: 22 // s Lets have the following mapping: 0 Reserved (termination) 12 a 14 o 24 H 71 l Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 42 of 50
47 Strings as Arrays char s [ 6 ] ; s [ 0 ] = H ; s [ 1 ] = a ; s [ 2 ] = l ; s [ 3 ] = l ; s [ 4 ] = o ; s [ 5 ] = 0 ; Lets have the following mapping: 0 Reserved (termination) 12 a 14 o 24 H 71 l Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 43 of 50
48 Strings are Arrays char s [ 6 ] ; s [ 0 ] = H ; s [ 1 ] = a ; s [ 2 ] = l ; s [ 3 ] = l ; s [ 4 ] = o ; s [ 5 ] = 0 ; char mystring = Hallo ; We don t want to pass an integer with each string. Thus, C appends a 0 as last character. Thus, the array has one element more than the string has chars. Pascal follows a different variant. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 44 of 50
49 Operations on Strings Memory 21: 22; 24 23; 12 24; 71 25; 71 26; 14 27; 0 28: 29: 30: 22 // s Write a function length that takes a string and counts the number of entries. This number then is returned. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 45 of 50
50 Length Operation i n t length ( const char [ ] s ) { i n t length = 0; while ( s [ length ]==0) { length ++; return length ; char mystring = Hallo ; i n t lengthofmystring = length ( mystring ) ; What is copied here (call-by-value)! What happens, if we write char a n o t h e r S t r i n g = mystring ; can we then call length for both strings? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 46 of 50
51 Copying Strings char mystring = This i s a t e s t ; char mycopy = mystring ; delete [ ] mystring ; length ( mystring ) What happens if we execute this code? Write an operation that copies a string. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 47 of 50
52 6.7. Trees Remember our single linked list (for double values). Imagine we wanna hold this list sorted all the time. What would an insert operation look like? What is the (average) runtime of insert in terms of elements? How could we reduce this runime to O(logn)? Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 48 of 50
53 A list with three entries s t r u c t L i s t E n t r y { double value ; L i s t E n t r y s m a l l e r E n t r y ; L i s t E n t r y biggerentry ; ; Code the data structure from above, and create a list with three values {0.4, 1.2, 22 (in this order) as follows: Create list for 0.4 (with two null pointers). Create a list element for 1.2 and append it to 0.4. The append function checks whether it is bigger or equal to its current value. It is not, so it is appended to smallerentry. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 49 of 50
54 Trees The example we implemented is a binary tree, as each node has up to two children. The average depth of this tree is O(logn). If we search for an element (as we have to do if we insert), the search consequently also is in O(logn). There s hundreds of variants for trees with different properties. Tree algorithms and recursive code go hand in hand. Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 50 of 50
6. Pointers, Structs, and Arrays. March 14 & 15, 2011
March 14 & 15, 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 47 Outline Recapitulation Pointers Dynamic Memory Allocation Structs Arrays Bubble Sort Strings Einführung
More information4. Functions. March 10, 2010
March 10, 2010 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 40 Outline Recapitulation Functions Part 1 What is a Procedure? Call-by-value and Call-by-reference Functions
More information5. Applicative Programming. 1. Juli 2011
1. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 41 Outline Recapitulation Computer architecture extended: Registers and caches Header files Global variables
More information10. Object-oriented Programming. 7. Juli 2011
7. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 47 Outline Object Case Study Brain Teaser Copy Constructor & Operators Object-oriented Programming, i.e.
More informationObject-oriented Programming in C++
Object-oriented Programming in C++ Working with C and C++ Wolfgang Eckhardt, Tobias Neckel March 23, 2015 Working with C and C++, March 23, 2015 1 Challenges of This Course Heterogeneity of the audience
More informationObject-oriented Programming in C++
Object-oriented Programming in C++ Working with C and C++ Wolfgang Eckhardt, Tobias Neckel June 30, 2014 Working with C and C++, June 30, 2014 1 Challenges of This Course Heterogeneity of the audience
More information8. Object-oriented Programming. June 15, 2010
June 15, 2010 Introduction to C/C++, Tobias Weinzierl page 1 of 41 Outline Recapitulation Copy Constructor & Operators Object-oriented Programming Dynamic and Static Polymorphism The Keyword Static The
More informationPointers and Dynamic Memory Allocation
Pointers and Dynamic Memory Allocation ALGORITHMS & DATA STRUCTURES 9 TH SEPTEMBER 2014 Last week Introduction This is not a course about programming: It s is about puzzling. well.. Donald Knuth Science
More informationPIC 10A Pointers, Arrays, and Dynamic Memory Allocation. Ernest Ryu UCLA Mathematics
PIC 10A Pointers, Arrays, and Dynamic Memory Allocation Ernest Ryu UCLA Mathematics Pointers A variable is stored somewhere in memory. The address-of operator & returns the memory address of the variable.
More informationExercise 1.1 Hello world
Exercise 1.1 Hello world The goal of this exercise is to verify that computer and compiler setup are functioning correctly. To verify that your setup runs fine, compile and run the hello world example
More informationObject-Oriented Programming for Scientific Computing
Object-Oriented Programming for Scientific Computing Dynamic Memory Management Ole Klein Interdisciplinary Center for Scientific Computing Heidelberg University ole.klein@iwr.uni-heidelberg.de 2. Mai 2017
More informationCS201 Some Important Definitions
CS201 Some Important Definitions For Viva Preparation 1. What is a program? A program is a precise sequence of steps to solve a particular problem. 2. What is a class? We write a C++ program using data
More informationa data type is Types
Pointers Class 2 a data type is Types Types a data type is a set of values a set of operations defined on those values in C++ (and most languages) there are two flavors of types primitive or fundamental
More informationCOSC 2P95. Procedural Abstraction. Week 3. Brock University. Brock University (Week 3) Procedural Abstraction 1 / 26
COSC 2P95 Procedural Abstraction Week 3 Brock University Brock University (Week 3) Procedural Abstraction 1 / 26 Procedural Abstraction We ve already discussed how to arrange complex sets of actions (e.g.
More information11. Generic Programming and Design Patterns. 8. Juli 2011
8. Juli 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 26 Outline Recapitulation Template Programming An Overview over the STL Design Patterns (skipped) Evaluation/feedback
More informationPrinciples of Programming Pointers, Dynamic Memory Allocation, Character Arrays, and Buffer Overruns
Pointers, Dynamic Memory Allocation, Character Arrays, and Buffer Overruns What is an array? Pointers Memory issues The name of the array is actually a memory address. You can prove this by trying to print
More informationPointers, Dynamic Data, and Reference Types
Pointers, Dynamic Data, and Reference Types Review on Pointers Reference Variables Dynamic Memory Allocation The new operator The delete operator Dynamic Memory Allocation for Arrays 1 C++ Data Types simple
More informationReview of Important Topics in CS1600. Functions Arrays C-strings
Review of Important Topics in CS1600 Functions Arrays C-strings Array Basics Arrays An array is used to process a collection of data of the same type Examples: A list of names A list of temperatures Why
More informationConsider the above code. This code compiles and runs, but has an error. Can you tell what the error is?
Discussion 1H Notes (Week 8, May 20) TA: Brian Choi (schoi@cs.ucla.edu) Section Webpage: http://www.cs.ucla.edu/~schoi/cs31 Dynamic Allocation of Memory Recall that when you create an array, you must know
More informationIntroduction to Computer Science Midterm 3 Fall, Points
Introduction to Computer Science Fall, 2001 100 Points Notes 1. Tear off this sheet and use it to keep your answers covered at all times. 2. Turn the exam over and write your name next to the staple. Do
More informationCS 11 C track: lecture 5
CS 11 C track: lecture 5 Last week: pointers This week: Pointer arithmetic Arrays and pointers Dynamic memory allocation The stack and the heap Pointers (from last week) Address: location where data stored
More informationPointers and Arrays CS 201. This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book.
Pointers and Arrays CS 201 This slide set covers pointers and arrays in C++. You should read Chapter 8 from your Deitel & Deitel book. Pointers Powerful but difficult to master Used to simulate pass-by-reference
More informationCE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings
CE221 Programming in C++ Part 2 References and Pointers, Arrays and Strings 19/10/2017 CE221 Part 2 1 Variables and References 1 In Java a variable of primitive type is associated with a memory location
More informationShort Notes of CS201
#includes: Short Notes of CS201 The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with < and > if the file is a system
More informationBefore we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172. In compensation, no class on Friday, Jan. 31.
Before we start - Announcements: There will be a LAB TONIGHT from 5:30 6:30 in CAMP 172 The lab will be on pointers In compensation, no class on Friday, Jan. 31. 1 Consider the bubble function one more
More informationDiscussion 1E. Jie(Jay) Wang Week 10 Dec.2
Discussion 1E Jie(Jay) Wang Week 10 Dec.2 Outline Dynamic memory allocation Class Final Review Dynamic Allocation of Memory Recall int len = 100; double arr[len]; // error! What if I need to compute the
More informationCSCI-1200 Data Structures Fall 2017 Lecture 5 Pointers, Arrays, & Pointer Arithmetic
CSCI-1200 Data Structures Fall 2017 Lecture 5 Pointers, Arrays, & Pointer Arithmetic Review from Letctures 3 & 4 C++ class syntax, designing classes, classes vs. structs; Passing comparison functions to
More informationEE 355 Lab 4 - Party Like A Char Star
1 Introduction In this lab you will implement a "hangman" game where the user is shown blanks representing letter of a word and then tries to guess and fill in the letters with a limited number of guesses
More informationCS201 - Introduction to Programming Glossary By
CS201 - Introduction to Programming Glossary By #include : The #include directive instructs the preprocessor to read and include a file into a source code file. The file name is typically enclosed with
More informationMemory and C++ Pointers
Memory and C++ Pointers C++ objects and memory C++ primitive types and memory Note: primitive types = int, long, float, double, char, January 2010 Greg Mori 2 // Java code // in function, f int arr[];
More informationAgenda. The main body and cout. Fundamental data types. Declarations and definitions. Control structures
The main body and cout Agenda 1 Fundamental data types Declarations and definitions Control structures References, pass-by-value vs pass-by-references The main body and cout 2 C++ IS AN OO EXTENSION OF
More informationPointers II. Class 31
Pointers II Class 31 Compile Time all of the variables we have seen so far have been declared at compile time they are written into the program code you can see by looking at the program how many variables
More informationMARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012
MARKING KEY The University of British Columbia MARKING KEY Computer Science 260 Midterm #2 Examination 12:30 noon, Thursday, March 15, 2012 Instructor: K. S. Booth Time: 70 minutes (one hour ten minutes)
More informationCS2141 Software Development using C/C++ C++ Basics
CS2141 Software Development using C/C++ C++ Basics Integers Basic Types Can be short, long, or just plain int C++ does not define the size of them other than short
More informationVariables, Memory and Pointers
Variables, Memory and Pointers A variable is a named piece of memory The name stands in for the memory address int num; Variables, Memory and Pointers When a value is assigned to a variable, it is stored
More informationFast Introduction to Object Oriented Programming and C++
Fast Introduction to Object Oriented Programming and C++ Daniel G. Aliaga Note: a compilation of slides from Jacques de Wet, Ohio State University, Chad Willwerth, and Daniel Aliaga. Outline Programming
More informationObject Reference and Memory Allocation. Questions:
Object Reference and Memory Allocation Questions: 1 1. What is the difference between the following declarations? const T* p; T* const p = new T(..constructor args..); 2 2. Is the following C++ syntax
More informationArrays. Comp Sci 1570 Introduction to C++ Array basics. arrays. Arrays as parameters to functions. Sorting arrays. Random stuff
and Arrays Comp Sci 1570 Introduction to C++ Outline and 1 2 Multi-dimensional and 3 4 5 Outline and 1 2 Multi-dimensional and 3 4 5 Array declaration and An array is a series of elements of the same type
More informationl Determine if a number is odd or even l Determine if a number/character is in a range - 1 to 10 (inclusive) - between a and z (inclusive)
Final Exam Exercises Chapters 1-7 + 11 Write C++ code to: l Determine if a number is odd or even CS 2308 Fall 2016 Jill Seaman l Determine if a number/character is in a range - 1 to 10 (inclusive) - between
More informationMemory and Pointers written by Cathy Saxton
Memory and Pointers written by Cathy Saxton Basic Memory Layout When a program is running, there are three main chunks of memory that it is using: A program code area where the program itself is loaded.
More informationCSCI-1200 Data Structures Spring 2014 Lecture 5 Pointers, Arrays, Pointer Arithmetic
CSCI-1200 Data Structures Spring 2014 Lecture 5 Pointers, Arrays, Pointer Arithmetic Announcements: Test 1 Information Test 1 will be held Monday, February 10th, 2014 from 6-7:50pm, Lab sections 1-5 and
More informationC Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:
C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should
More informationArrays array array length fixed array fixed length array fixed size array Array elements and subscripting
Arrays Fortunately, structs are not the only aggregate data type in C++. An array is an aggregate data type that lets us access many variables of the same type through a single identifier. Consider the
More informationIntroduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types. Record Types. Pointer and Reference Types
Chapter 6 Topics WEEK E FOUR Data Types Introduction Primitive Data Types Character String Types User-Defined Ordinal Types Array Types Associative Arrays Record Types Union Types Pointer and Reference
More informationRun Time Environment
CS 403 Compiler Construction Lecture 12 Run Time Environment and Management [Based on Chapter 7 of Aho2] 1 Run Time Environment From Lecture 1 to 11, we have seen many jobs that are done by a compiler.
More information11. Arrays. For example, an array containing 5 integer values of type int called foo could be represented as:
11. Arrays An array is a series of elements of the same type placed in contiguous memory locations that can be individually referenced by adding an index to a unique identifier. That means that, for example,
More informationCA31-1K DIS. Pointers. TA: You Lu
CA31-1K DIS Pointers TA: You Lu Pointers Recall that while we think of variables by their names like: int numbers; Computer likes to think of variables by their memory address: 0012FED4 A pointer is a
More informationCSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion
CSCI-1200 Data Structures Spring 2018 Lecture 7 Order Notation & Basic Recursion Review from Lectures 5 & 6 Arrays and pointers, Pointer arithmetic and dereferencing, Types of memory ( automatic, static,
More informationC++ for Java Programmers
Basics all Finished! Everything we have covered so far: Lecture 5 Operators Variables Arrays Null Terminated Strings Structs Functions 1 2 45 mins of pure fun Introduction Today: Pointers Pointers Even
More informationQuiz 0 Review Session. October 13th, 2014
Quiz 0 Review Session October 13th, 2014 Topics (non-exhaustive) Binary. ASCII. Algorithms. Pseudocode. Source code. Compiler. Object code. Scratch. Statements. Boolean expressions. Conditions. Loops.
More informationCISC220 Lab 2: Due Wed, Sep 26 at Midnight (110 pts)
CISC220 Lab 2: Due Wed, Sep 26 at Midnight (110 pts) For this lab you may work with a partner, or you may choose to work alone. If you choose to work with a partner, you are still responsible for the lab
More informationArrays in C++ Instructor: Andy Abreu
Arrays in C++ Instructor: Andy Abreu Reason behind the idea When we are programming, often we have to process a large amount of information. We can do so by creating a lot of variables to keep track of
More information2. Variables, Identifiers, and Expressions. March 8, 2011
March 8, 2011 Einführung in die Programmierung Introduction to C/C++, Tobias Weinzierl page 1 of 34 Outline A Movie Structure of Simple C Codes Comments & Documentation Variables & Identifiers Built-in
More informationPointers in C/C++ 1 Memory Addresses 2
Pointers in C/C++ Contents 1 Memory Addresses 2 2 Pointers and Indirection 3 2.1 The & and * Operators.............................................. 4 2.2 A Comment on Types - Muy Importante!...................................
More informationLab#5 Due Wednesday, February 25, at the start of class. Purpose: To develop familiarity with C++ pointer variables
Lab#5 Due Wednesday, February 25, at the start of class Purpose: To develop familiarity with C++ pointer variables Introduction: In this lab, you will learn by experimentation the answers to some questions
More informationPointers. Addresses in Memory. Exam 1 on July 18, :00-11:40am
Exam 1 on July 18, 2005 10:00-11:40am Pointers Addresses in Memory When a variable is declared, enough memory to hold a value of that type is allocated for it at an unused memory location. This is the
More informationCS61C Machine Structures. Lecture 4 C Pointers and Arrays. 1/25/2006 John Wawrzynek. www-inst.eecs.berkeley.edu/~cs61c/
CS61C Machine Structures Lecture 4 C Pointers and Arrays 1/25/2006 John Wawrzynek (www.cs.berkeley.edu/~johnw) www-inst.eecs.berkeley.edu/~cs61c/ CS 61C L04 C Pointers (1) Common C Error There is a difference
More information8. The C++ language, 1. Programming and Algorithms II Degree in Bioinformatics Fall 2017
8. The C++ language, 1 Programming and Algorithms II Degree in Bioinformatics Fall 2017 Hello world #include using namespace std; int main() { } cout
More informationCS 231 Data Structures and Algorithms, Fall 2016
CS 231 Data Structures and Algorithms, Fall 2016 Dr. Bruce A. Maxwell Department of Computer Science Colby College Course Description Focuses on the common structures used to store data and the standard
More informationLecture Notes on Memory Layout
Lecture Notes on Memory Layout 15-122: Principles of Imperative Computation Frank Pfenning André Platzer Lecture 11 1 Introduction In order to understand how programs work, we can consider the functions,
More informationCS 103 Unit 11. Linked Lists. Mark Redekopp
1 CS 103 Unit 11 Linked Lists Mark Redekopp 2 NULL Pointer Just like there was a null character in ASCII = '\0' whose ue was 0 There is a NULL pointer whose ue is 0 NULL is "keyword" you can use in C/C++
More informationFor example, let s say we define an array of char of size six:
Arrays in C++ An array is a consecutive group of memory locations that all have the same name and the same type. To refer to a particular location, we specify the name and then the positive index into
More informationCSCI-1200 Data Structures Fall 2012 Lecture 5 Pointers, Arrays, Pointer Arithmetic
CSCI-1200 Data Structures Fall 2012 Lecture 5 Pointers, Arrays, Pointer Arithmetic Announcements: Test 1 Information Test 1 will be held Tuesday, September 18th, 2012 from 2-3:50pm in West Hall Auditorium.
More informationCPSC 3740 Programming Languages University of Lethbridge. Data Types
Data Types A data type defines a collection of data values and a set of predefined operations on those values Some languages allow user to define additional types Useful for error detection through type
More informationObject Oriented Software Design II
Object Oriented Software Design II Introduction to C++ Giuseppe Lipari http://retis.sssup.it/~lipari Scuola Superiore Sant Anna Pisa February 20, 2012 G. Lipari (Scuola Superiore Sant Anna) C++ Intro February
More informationLecture 14. No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions?
Lecture 14 No in-class files today. Homework 7 (due on Wednesday) and Project 3 (due in 10 days) posted. Questions? Friday, February 11 CS 215 Fundamentals of Programming II - Lecture 14 1 Outline Static
More informationUnderstand Execution of a Program
Understand Execution of a Program Prof. Zhang September 17, 2014 1 Program in Memory When you execute a program, the program (i.e., executable code) is loaded into the memory (i.e., main memory, RAM) in
More informationCS558 Programming Languages Winter 2018 Lecture 4a. Andrew Tolmach Portland State University
CS558 Programming Languages Winter 2018 Lecture 4a Andrew Tolmach Portland State University 1994-2018 Pragmatics of Large Values Real machines are very efficient at handling word-size chunks of data (e.g.
More information22c:111 Programming Language Concepts. Fall Types I
22c:111 Programming Language Concepts Fall 2008 Types I Copyright 2007-08, The McGraw-Hill Company and Cesare Tinelli. These notes were originally developed by Allen Tucker, Robert Noonan and modified
More informationVector and Free Store (Vectors and Arrays)
DM560 Introduction to Programming in C++ Vector and Free Store (Vectors and Arrays) Marco Chiarandini Department of Mathematics & Computer Science University of Southern Denmark [Based on slides by Bjarne
More informationCSCI-1200 Data Structures Fall 2018 Lecture 5 Pointers, Arrays, & Pointer Arithmetic
CSCI-1200 Data Structures Fall 2018 Lecture 5 Pointers, Arrays, & Pointer Arithmetic Announcements: Test 1 Information Test 1 will be held Thursday, Sept 20th, 2018 from 6-7:50pm Students will be randomly
More informationpointers + memory double x; string a; int x; main overhead int y; main overhead
pointers + memory computer have memory to store data. every program gets a piece of it to use as we create and use more variables, more space is allocated to a program memory int x; double x; string a;
More informationArrays and functions Multidimensional arrays Sorting and algorithm efficiency
Introduction Fundamentals Declaring arrays Indexing arrays Initializing arrays Arrays and functions Multidimensional arrays Sorting and algorithm efficiency An array is a sequence of values of the same
More informationOutline. Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples.
Outline Introduction. Arrays declarations and initialization. Const variables. Character arrays. Static arrays. Examples. 1 Arrays I Array One type of data structures. Consecutive group of memory locations
More informationQUIZ. What is wrong with this code that uses default arguments?
QUIZ What is wrong with this code that uses default arguments? Solution The value of the default argument should be placed in either declaration or definition, not both! QUIZ What is wrong with this code
More informationProgramming in C/C Lecture 2
Programming in C/C++ 2005-2006 Lecture 2 http://few.vu.nl/~nsilvis/c++/2006 Natalia Silvis-Cividjian e-mail: nsilvis@few.vu.nl vrije Universiteit amsterdam News Check announcements on the C/C++ website
More informationException Namespaces C Interoperability Templates. More C++ David Chisnall. March 17, 2011
More C++ David Chisnall March 17, 2011 Exceptions A more fashionable goto Provides a second way of sending an error condition up the stack until it can be handled Lets intervening stack frames ignore errors
More informationPointers and References
Steven Zeil October 2, 2013 Contents 1 References 2 2 Pointers 8 21 Working with Pointers 8 211 Memory and C++ Programs 11 212 Allocating Data 15 22 Pointers Can Be Dangerous 17 3 The Secret World of Pointers
More informationCSCI-1200 Data Structures Spring 2017 Lecture 5 Pointers, Arrays, Pointer Arithmetic
CSCI-1200 Data Structures Spring 2017 Lecture 5 Pointers, Arrays, Pointer Arithmetic Announcements Submitty iclicker registration is still open. Even if you already registered on the iclicker website,
More informationCS 103 Lab 6 - Party Like A Char Star
1 Introduction In this lab you will implement a "hangman" game where the user is shown blanks representing letter of a word and then tries to guess and fill in the letters with a limited number of guesses.
More information377 Student Guide to C++
377 Student Guide to C++ c Mark Corner January 21, 2004 1 Introduction In this course you will be using the C++ language to complete several programming assignments. Up to this point we have only provided
More information1. Describe History of C++? 2. What is Dev. C++? 3. Why Use Dev. C++ instead of C++ DOS IDE?
1. Describe History of C++? The C++ programming language has a history going back to 1979, when Bjarne Stroustrup was doing work for his Ph.D. thesis. One of the languages Stroustrup had the opportunity
More informationKOM3191 Object Oriented Programming Dr Muharrem Mercimek ARRAYS ~ VECTORS. KOM3191 Object-Oriented Computer Programming
KOM3191 Object Oriented Programming Dr Muharrem Mercimek 1 ARRAYS ~ VECTORS KOM3191 Object-Oriented Computer Programming KOM3191 Object Oriented Programming Dr Muharrem Mercimek 2 What is an array? Arrays
More informationCSE 333 Midterm Exam 7/25/16. Name UW ID#
Name UW ID# There are 7 questions worth a total of 100 points. Please budget your time so you get to all of the questions. Keep your answers brief and to the point. The exam is closed book, closed notes,
More informationCS 103 Unit 11. Linked Lists. Mark Redekopp
1 CS 103 Unit 11 Linked Lists Mark Redekopp 2 NULL Pointer Just like there was a null character in ASCII = '\0' whose ue was 0 There is a NULL pointer whose ue is 0 NULL is "keyword" you can use in C/C++
More informationCSE 413 Languages & Implementation. Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341)
CSE 413 Languages & Implementation Hal Perkins Winter 2019 Structs, Implementing Languages (credits: Dan Grossman, CSE 341) 1 Goals Representing programs as data Racket structs as a better way to represent
More informationCS 251 INTERMEDIATE SOFTWARE DESIGN SPRING C ++ Basics Review part 2 Auto pointer, templates, STL algorithms
CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms AUTO POINTER (AUTO_PTR) //Example showing a bad situation with naked pointers void MyFunction()
More informationFORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each):
FORM 1 (Please put your name and section number (001/10am or 002/2pm) on the scantron!!!!) CS 161 Exam II: True (A)/False(B) (2 pts each): 1. If a function has default arguments, they can be located anywhere
More information1/29/2011 AUTO POINTER (AUTO_PTR) INTERMEDIATE SOFTWARE DESIGN SPRING delete ptr might not happen memory leak!
//Example showing a bad situation with naked pointers CS 251 INTERMEDIATE SOFTWARE DESIGN SPRING 2011 C ++ Basics Review part 2 Auto pointer, templates, STL algorithms void MyFunction() MyClass* ptr( new
More informationChapter 6. Structured Data Types. Topics. Structured Data Types. Vectors and Arrays. Vectors. Vectors: subscripts
Topics Chapter 6 Structured Data Types Vectors Arrays Slices Associative Arrays Records Unions Lists Sets 2 Structured Data Types Virtually all languages have included some mechanisms for creating complex
More informationScientific Computing
Scientific Computing Martin Lotz School of Mathematics The University of Manchester Lecture 1, September 22, 2014 Outline Course Overview Programming Basics The C++ Programming Language Outline Course
More informationPatterns: Working with Arrays
Steven Zeil October 14, 2013 Outline 1 Static & Dynamic Allocation Static Allocation Dynamic Allocation 2 Partially Filled Arrays Adding Elements Searching for Elements Removing Elements 3 Arrays and Templates
More informationLooping and Counting. Lecture 3 Hartmut Kaiser hkaiser/fall_2012/csc1254.html
Looping and Counting Lecture 3 Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2012/csc1254.html Abstract First we ll discuss types and type safety. Then we will modify the program
More informationC++ Lecture 5 Arrays. CSci 588: Data Structures, Algorithms and Software Design.
C++ Lecture 5 Arrays CSci 588: Data Structures, Algorithms and Software Design http://www.cplusplus.com/doc/tutorial/arrays/ All material not from online sources copyright Travis Desell, 2013 Overview
More informationArrays. Returning arrays Pointers Dynamic arrays Smart pointers Vectors
Arrays Returning arrays Pointers Dynamic arrays Smart pointers Vectors To declare an array specify the type, its name, and its size in []s int arr1[10]; //or int arr2[] = {1,2,3,4,5,6,7,8}; arr2 has 8
More informationAgenda. Peer Instruction Question 1. Peer Instruction Answer 1. Peer Instruction Question 2 6/22/2011
CS 61C: Great Ideas in Computer Architecture (Machine Structures) Introduction to C (Part II) Instructors: Randy H. Katz David A. Patterson http://inst.eecs.berkeley.edu/~cs61c/sp11 Spring 2011 -- Lecture
More informationComputer Components. Software{ User Programs. Operating System. Hardware
Computer Components Software{ User Programs Operating System Hardware What are Programs? Programs provide instructions for computers Similar to giving directions to a person who is trying to get from point
More informationLooping and Counting. Lecture 3. Hartmut Kaiser hkaiser/fall_2011/csc1254.html
Hartmut Kaiser hkaiser@cct.lsu.edu http://www.cct.lsu.edu/ hkaiser/fall_2011/csc1254.html 2 Abstract First we ll discuss types and type safety. Then we will modify the program we developed last time (Framing
More informationBEng (Hons) Electronic Engineering. Resit Examinations for / Semester 1
BEng (Hons) Electronic Engineering Cohort: BEE/10B/FT Resit Examinations for 2016-2017 / Semester 1 MODULE: Programming for Engineers MODULE CODE: PROG1114 Duration: 3 Hours Instructions to Candidates:
More informationCSCI 171 Chapter Outlines
Contents CSCI 171 Chapter 1 Overview... 2 CSCI 171 Chapter 2 Programming Components... 3 CSCI 171 Chapter 3 (Sections 1 4) Selection Structures... 5 CSCI 171 Chapter 3 (Sections 5 & 6) Iteration Structures
More information