Presentation is loading. Please wait.

Presentation is loading. Please wait.

COP 3223H: Honors Introduction to Programming with C (Spring 2014) Instructor: Muhammad Faisal Amjad HEC-250 Data Systems Lab,

Similar presentations


Presentation on theme: "COP 3223H: Honors Introduction to Programming with C (Spring 2014) Instructor: Muhammad Faisal Amjad HEC-250 Data Systems Lab,"— Presentation transcript:

1 COP 3223H: Honors Introduction to Programming with C (Spring 2014) Instructor: Muhammad Faisal Amjad HEC-250 Data Systems Lab, faisal@knights.ucf.edufaisal@knights.ucf.edu Course Time:MoWeFr 8:30AM - 9:20AM, BHC 0126. Office Hours:MoWe 11:00 am – 12:30 pm Course Webpage: http://eecs.ucf.edu/~faisal/COP3223H-SP14/cop3223h.htm http://eecs.ucf.edu/~faisal/COP3223H-SP14/cop3223h.htm Prerequisites:None (Knowledge of basic math is assumed).

2 Course Information This is an introductory course in C programming language for students with no prior programming experience. You will learn the syntax of C and its major constructs* such as : – Data types and variables, – conditional statements, – loops, functions, – arrays, – structures, – strings, – pointers, – file input / output. *Not necessarily in this order Just like learning any language, learning to program using the C language requires a lot of practice. Students are encouraged to try writing programs in addition to those discussed in class.

3 CourseworkQuantityWeightage Individual Programming Assignments 1025% Quizzes530% Final Exam130% Midterm Exam115% Grading Following is an approximate breakdown of semester’s workload and weightage: Academic Misconduct Please see http://goldenrule.sdes.ucf.edu/ and the golden rule handbook. http://goldenrule.sdes.ucf.edu/handbook Textbook A wealth of tutorials, examples and programming projects is available online. Everyone should be able to succeed in this course without buying any book. An excellent online source for learning C programming is http://en.wikibooks.org/wiki/C_Programming, but students may choose any other source of their liking. http://en.wikibooks.org/wiki/C_Programming

4 Introduction

5 Computer Basics CPU: Commonly known as the processor, “runs” everything on the computer. Memory: All programs and their data are contained in memory – Main, commonly known as RAM – External, USB, CDs, Hard drives etc. – We will not be dealing with other types of memory e.g. registers, cache, virtual/page etc. OS: Interface between the user and the computer’s resources – Mac, Windows, Unix etc. Compiler: Converts programs written in high level languages into machine instructions / executable programs

6 C Program Development Cycle Edit Program Source Code Compile Object Code Link Object Code Library Files Executable Code

7 DevC++ IDE To accomplish all parts of C program development cycle, we will use the DevC++ IDE (Integrated Development Environment). http://www.bloodshed.net/dev/devcpp.html This is a free software under the GNU General Public License. link to Sourceforge download site. Use default install options. It runs on Windows computers only. A tutorial on DevC++ installation can be found at: http://www.brooklyn.cuny.edu/web/aca_naturalsciences_cis/STARTDev.pdf http://www.brooklyn.cuny.edu/web/aca_naturalsciences_cis/STARTDev.pdf Save programs using the “.c” extension and NOT “.cpp” All submitted programming assignments should run on my installation of Dev C++ which is Dev-C++ 5.0 beta 9.2 (4.9.9.2).

8 A brief history of C Created by Dennis Ritchie at Bell Labs in 1972 Originally created to design and support the Unix operating system. C compilers are available for virtually every platform In 1983 the American National Standards Institute (ANSI) standardized C to be called ANSI Standard C. ANSI C programs that you write should work with any ANSI C compiler.

9 Our First C program /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; }

10 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } This is a comment The compiler ignores everything between /* and */ It helps reader to understand what is written in the “code”. An essential part of programming.

11 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } This is called a pre-processor directive Pre-processor directives start with a ‘#’ sign Tells the compiler to “include” a library file called stdio.h for our HelloWorld.c program After it is included, we can use all the features / functionalities provided by stdio.h in our program Notice that there is no space between # and include

12 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } This is the start of definition of function main, also called the header of function main All C programs MUST have a function named “main” Execution of a program starts from the function main Functions return some value, in our program int is the return type of function main. Write “void” of they don’t return any value. () contains a list of parameters passed to a function separated by commas. Parameter list of our program is empty. We can also write “void” in the parameter list but an empty parameter list is automatically considered void.

13 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } The pair of curly braces identifies the start and the end of function main’s definition Mandatory for any function definition This pair of curly braces is also used for other code blocks that we will study later

14 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } This is a call to function named printf which is defined in stdio.h printf function prints a string enclosed within a pair of double quotes The characters \n are not printed on screen. They are called escape sequences. \n tells the computer go to new line More on escape sequences later

15 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } The function “system” is also defined in stdio.h file Passing the string “pause” causes the computer to pause execution at this line until a key is pressed on the keyboard.

16 Lets dissect HelloWorld.c /* Written by Faisal Amjad for COP 3223H - Spring 2014 Our First C Program, called HelloWorld.c */ #include int main() { printf("Hello World! \nThis is the first program of COP 3223H\n"); system("pause"); return 0; } This statement tells the computer to exit function main and return 0 to the program from where it was called. Returning 0 from main signals successful execution of function main. The returned value of a function must be the same as its return type. If you return a value other than an int in HelloWorld.c, it will cause a compilation error. Finally: Every program specifies instructions for execution in the exact order without ambiguity.

17 Running HelloWorld.c

18 Variables Almost all programs manipulate data To process it, a program needs to store data Different types of variables allow the storing different types of data, hence the name “Data Types” E.g. if you had to store the numbers 10 and 10.0, C provides two different data types.

19 How do Variables work All variables have three components – A name – An address – A value that it can hold When we declare a variable like – int temp; – The compiler gets space for an integer (4 bytes) allocated for this variable – This memory space has an address, which is also accessible to your program When we initialize this variable like – temp = 125; – The compiler stores the integer number 125 in the memory space allocated for the variable temp – Here, “=“ is an assignment operator, which assigns values to variables

20 2000temp Variable nameVariable address 2000 Memory addressMemory contents 2000temp Variable nameVariable address 1252000 Memory addressMemory contents After declaration int temp; After initialization temp = 125;

21 Some Naming Conventions Names with leading and trailing underscores are generally used for system purposes. #define constants should be in all CAPS. Enum constants are Capitalized or in all CAPS Function, typedef, and variable names, as well as struct, union, and enum tag names should be in lower case. Avoid names that differ only in case, like sum and Sum. Avoid names that look like each other. ‘1’ and ‘l’ Avoid names that might conflict with various standard library names. E.g. stdio

22 Variable Names Variable names can contain letters, digits and underscores The first character must be a letter or an underscore – the underscore can be used as first character but avoid this!! Case matters! int temp is not the same as int Temp or int TEmp C keywords cannot be used as variable names. – mycarname, hello, y2k, r2d3,... /* OK */ – _2013_tax_return /* OK but avoid*/ – Hello#Cprogrammer/* illegal */ – double /* will not work */ – 2lazytocode/* illegal */

23 /* Muhammad Faisal Amjad program to try out different types of variable names: see what works and what doesn't COP 3223H - Spring 2014 */ #include int main() { int my_car_model = 2002; int numberofstudents; int _2013_tax = -1500; int 2lazytocode = 1; int double = 35000; int hello#CProgrammer = 0; printf("Success..... Now I know how to name variables\n"); system("pause"); return 0; }

24 Variables – basic data types We will study the C data types in detail later. Lets focus on the basics of variables. There are only a few basic data types in C – char: a single byte, holds one character e.g. the letter ‘a’, although they are stored as integer values standardized as ASCII numbers – int: an integer of fixed length, usually 4 bytes / 32 bits. E.g. the number 10 can be stored in a variable of type int. – float: single-precision floating point. e.g. the number 10.67 – double: same as a float but with double precision

25 Variable declaration Generic Form – typename varname1, varname2,...; Examples: – int count; – float a, b, c; Where declarations appear affects their scope – Declaration outside of any function are for global variables – e.g., just before the main function

26 Variable declaration and Initialization ALWAYS initialize a variable before using it – Failure to do so in C is asking for trouble, unexpected values Examples: – int count; /* This is declaration, sets aside storage space for count */ – count = 100; /* This is initialization, stores 100 in the variable count */ Declaration and initialization can be combined: – int count = 0, distance = 20; “Out of range errors” – Short int value = 32768; //short int has a max value of 32767 – The C compiler does not detect this as an error – What do you suspect will happen if a variable is assigned an out of range value?

27 Practice with variables Write a program to practice declaring variables Write a program to practice initializing variables Write a program to see the contents and addresses of variables with and without initialization Write a program to practice swapping contents of variables

28 Simple output and input with printf and scanf

29 Output with printf() As we have seen earlier, printf() function has the following syntax: – printf(format string, arg1, arg2, …); – E.g. printf("Hello World! \nThis is the first program of COP 3223H\n"); – The text including the pair of double quotes is the format string – We can print the values of variables using conversion specifiers and their corresponding arguments in the arguments’ list The format string contains: – Literal text: is printed as is – Escaped sequences: special characters preceded by \ e.g. \n – Conversion specifiers: % followed by a single character Indicates (usually) that a variable is to be printed at this location in the output stream. The variables to be printed must appear in the parameters to printf following the format string, in the order that they appear in the format string.

30 Common C escape sequences Escape sequenceMeaning \aalarm or a beep \bBackspace \nNew line \tHorizontal tab \\Backslash \'Single quotation mark \"Double quotation mark \0ASCII 0x00 (null terminator)

31 Common C conversion specifiers SpecifierMeaning %cSingle character %dSigned decimal integer %xHexadecimal number %fDecimal floating point number %eFloating point in “scientific notation” %sCharacter string (more on this later) %uUnsigned decimal integer % Just print a % sign %ld, %lldlong, and long long

32 Input with scanf() The scanf() function is the input equivalent of printf defined in the library file Takes a format string and parameters, much like printf The format string specifiers are the same as printf Examples: – printf(“Enter the number of days"); /* prompt user for input */ – scanf(“%d", &days); /* reads a decimal integer */ The ampersand (&) is used to get the “address” of the variable The printf() prints the string “Enter the number of days ” And then scanf() waits for the user to input an integer Stores the input value at the address of the variable days One scanf() function call can read more than one values

33 /* Muhammad Faisal Amjad program to try out printf and scanf functions COP 3223H - Spring 2014 */ #include int main() { int days = 0; float dist_to_work = 0; float weekly_travel = 0; printf("Enter the distance in miles from your home to work place: "); scanf("%f", &dist_to_work); printf("Enter the number of days you go to work: "); scanf("%d", &days); weekly_travel = days * dist_to_work; printf("You travel %.3f miles to and from work in a week\n\n", weekly_travel); system("pause"); return 0; }

34 Practice with variables, printf and scanf Write a program to calculate the amount of interest paid for house mortgage. Ask user to input – Loan amount – Interest rate (assume simple interest) Output: Interest paid, total amount paid to bank.

35 Programming Style and structure A good time to have a look at how your code “looks” Programming style refers to the layout of your code A program will be read by someone It should be easy to read with appropriate white spaces Use indentation Arrange your code in appropriate code blocks contained within a matching pair of curly braces { and } Be careful about variable within code blocks, the scope of variables matters Variable should be given meaningful names – E.g. consider int n; and int num_of_students; Use comments at appropriate places – Beginning of your program called header comment – Beginning of a major code block – Start of a function – Any other place you might consider appropriate

36 #include int main(void) {printf("Hello, World!\n");return 0;} #include int main(void) { printf("Hello, World!\n"); return 0; } #include int main(void) { printf("Hello, World!\n"); return 0; } /* Muhammad Faisal Amjad program to print “Hello World!” on standard output COP 3223H - Spring 2014 */ #include int main(void) { printf("Hello, World!\n"); return 0; }


Download ppt "COP 3223H: Honors Introduction to Programming with C (Spring 2014) Instructor: Muhammad Faisal Amjad HEC-250 Data Systems Lab,"

Similar presentations


Ads by Google