Presentation is loading. Please wait.

Presentation is loading. Please wait.

ECE Application Programming

Similar presentations


Presentation on theme: "ECE Application Programming"— Presentation transcript:

1 16.216 ECE Application Programming
Instructor: Dr. Michael Geiger Spring 2012 Lecture 38: Exam 3 Preview

2 ECE Application Programming: Lecture 38
Lecture outline Announcements/reminders Final exam: Tues., 5/15, 8:00-11:00 AM, Ball 314 Program 9 due today No regrades, late submissions allowed If submitted, will replace your lowest grade Program grading (mostly) up to date All penalty-free regrades due 11:59 PM today unless otherwise noted Course evaluations Excused students Exam 3 Preview General exam info Topics covered One-dimensional arrays Pointer arithmetic Strings Two-dimensional arrays File I/O Structures 11/26/2017 ECE Application Programming: Lecture 38

3 ECE Application Programming: Lecture 38
Excused students The following students are excused from the final exam (after completing a course evaluation) Chheou, Dy Citta, Timothy Dongo, Mario Hajj, Andrew Haoui, Ali Khuu, Jonathan Miskell, Timothy Muse, Bradley Pflanz, Timothy Pham, Philip Taku, Jonathan Tan, Yushi Wall, Bradley 11/26/2017 ECE Application Programming: Lecture 38

4 ECE Application Programming: Lecture 38
Exam 3 notes Q & A session 5/14—what times work best? Allowed one 8.5” x 11” two-sided note sheet No other notes or electronic devices Exam lasts 3 hours (but is written for ~50 min) Covers all lectures after Exam 2 (lec ) Format similar to Exams 1/2 1 multiple choice problem (File I/O & structures) 1 code reading problem 1 code writing problem Practice problems posted; can also look at old exams 11/26/2017 ECE Application Programming: Lecture 38

5 Review: arrays & pointer arithmetic
Arrays: groups of data with same type x[10] has 10 elements, x[0] through x[9] Can also define with initial values e.g. double list[] = {1.2, 0.75, }; Must be sure to access inside bounds Array name is a pointer Arrays are always passed by address to functions Can use pointer to access array Can use arithmetic to move pointer through array p + 1  points to next element (after where p currently points) p++  move pointer and point to next element p--  move pointer and point to previous element 11/26/2017 ECE Application Programming: Lecture 38

6 ECE Application Programming: Lecture 38
Review: strings Represented as character arrays Can be initialized using string constants char hello[] = “Hello”; Can access individual elements hello[3] = ‘l’; Can print directly or with formatting Print directly: printf(hello); Print w/formatting using %s: printf(“%s\n”, hello); Must leave enough room for terminating ‘\0’ 11/26/2017 ECE Application Programming: Lecture 38

7 Review: String functions
In <string.h> library: Copying strings: char *strcpy(char *dest, const char *source); char *strncpy(char *dest, const char *source, size_t num); Return dest Comparing strings: int strcmp(const char *s1, const char *s2); int strncmp(const char *s1, const char *s2, size_t num); Character-by-character comparison of character values Returns 0 if s1 == s2, 1 if s1 > s2, -1 if s1 < s2 11/26/2017 ECE Application Programming: Lecture 38

8 Review: String functions (cont.)
Find # of characters in a string size_t strlen(const char *s1); Returns # characters before ‘\0’ Not necessarily size of array “Add” strings together—string concatenation char *strcat(char *dest, const char *source); char *strncat(char *dest, const char *source, size_t num); Returns dest 11/26/2017 ECE Application Programming: Lecture 38

9 ECE Application Programming: Lecture 38
Review: 2D arrays Declared similarly to 1D arrays Example (see below): int x[3][4]; Index elements similarly to 1-D arrays Initialize: int y[3][4] = { {1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12} }; Typically used with nested for loops Can pass to functions—must specify # columns Col. 0 Col. 1 Col. 2 Col. 3 Row 0 x[0][0] x[0][1] x[0][2] x[0][3] Row 1 x[1][0] x[1][1] x[1][2] x[1][3] Row 2 x[2][0] x[2][1] x[2][2] x[2][3] 11/26/2017 ECE Application Programming: Lecture 38

10 ECE Application Programming: Lecture 38
Review: File I/O Open file: FILE *fopen(filename, file_access) Close file: fclose(file_handle) Formatted I/O: fprintf(file_handle, format_specifier, 0+ variables) fscanf(file_handle, format_specifier, 0+ variables) Unformatted I/O: size_t fwrite(pointer, element size, # elements, file_handle) size_t fread(pointer, element size, # elements, file_handle) Check for EOF using either fscanf() result or feof(FILE *) 11/26/2017 ECE Application Programming: Lecture 38

11 Review: Unformatted I/O (cont.)
Character I/O int fputc(int c, FILE *stream); int putchar(int c); int fgetc(FILE *stream); int getchar(); int ungetc(int c, FILE *stream); Line I/O int fputs(const char *s, FILE *stream); int puts(const char *s); char *fgets(char *s, int n, FILE *stream); char *gets(char *s); 11/26/2017 ECE Application Programming: Lecture 35

12 ECE Application Programming: Lecture 38
Review: Structures User-defined types Example: typedef struct { char first[50]; char middle; char last[50]; unsigned int ID; double GPA; } StudentInfo; Can define variables of that type Scalar: StudentInfo student1; Array: StudentInfo classList[10]; Pointer: StudentInfo *sPtr; Access members using Dot operator: student1.middle = ‘J’; Arrow (if pointers): sPtr->GPA = 3.5; 11/26/2017 ECE Application Programming: Lecture 38

13 ECE Application Programming: Lecture 38
Next time Exam 3: Tues. 5/15, 8:00-11:00 AM 11/26/2017 ECE Application Programming: Lecture 38


Download ppt "ECE Application Programming"

Similar presentations


Ads by Google