1 / 24

Chapter 7

Chapter 7. Introduction to Programming in C. Program 6 - Solution. int main() { int i, n, d; /* Counter, number of days in month, number in week */ printf("Enter the number of days in the month:"); scanf("%d" , &n);

Audrey
Télécharger la présentation

Chapter 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 7 Introduction to Programming in C

  2. Program 6 - Solution int main() { int i, n, d; /* Counter, number of days in month, number in week */ printf("Enter the number of days in the month:"); scanf("%d" , &n); printf("Enter Starting day of week: (1=Sunday , 7=Sat.):"); scanf("%d" , &d); for (i = 1; i < d; i++) /* Move to the correct position */ printf(" "); for (i = 1; i <= n; i++) { /* Print the rest of the days */ printf("% d " , i); if (((d + i - 1) % 7) = = 0) printf("\n" ); } return 0; }

  3. Integer Types • Four types of integers: • Long or short • Signed or unsigned • To declare: • short int • unsigned short int • int • unsigned int • long int • unsigned long int

  4. Character Types • Characters are represented by 8 bits • ASCII: American Standard Code for Information Interchange Char Octal Dec Hex Description .... A 101 65 41 Uppercase A B 102 66 42 Uppercase B C 103 67 43 Uppercase C D 104 68 44 Uppercase D E 105 69 45 Uppercase E ..... X 130 88 58 Uppercase X Y 131 89 59 Uppercase Y Z 132 90 5a Uppercase Z [ 133 91 5b Opening square bracket \ 134 92 5c Reverse slant (Backslash) ..... ` 140 96 60 Opening single quote a 141 97 61 Lowercase a b 142 98 62 Lowercase b c 143 99 63 Lowercase c

  5. Use of char type variables char ch; ch = ‘a’; ch = ‘0’; ch = ‘>’; ch = ‘A’; /* ch is now ‘A’ */ ch = ch + 1; /* ch is now ‘B’ */ for (ch = ‘A’; ch <= ‘Z’; ch++)…

  6. Use of char type variables What does this do? char ch; if ((‘a’ <= ch) && (ch <= ‘z’)) ch = ch – ‘a’ + ‘A’

  7. Character-handling Functions char ch; … if ((‘a’ <= ch) && (ch <= ‘z’)) ch = ch – ‘a’ + ‘A’ The code below has the same effect: char ch; … toupper(ch); Note – you have to include the file <ctype.h>

  8. Reading and Writing Characters char ch; … /* Now, to scan a character use %c */ scanf(“%c”, &ch); printf(“%c”, ch); What does this do? do { scanf(“%c”, &ch); } while (ch != ‘\n’);

  9. Reading and Writing Characters C provides a way to read and write characters: char ch; … ch = getchar(); /* Reads a single character */ putchar(ch); /* Writes a single character */ We can rewrite this code using putchar() do { scanf(“%c”, &ch); } while (ch != ‘\n’);

  10. Reading and Writing Characters We can rewrite this code using putchar() do { scanf(“%c”, &ch); } while (ch != ‘\n’); do { ch = getchar(); } while (ch != ‘\n’); Or even: while ((ch = getchar()) != ‘\n’) ;

  11. Reading and Writing Characters We can rewrite this: while ((ch = getchar()) != ‘\n’) ; In an even simpler form: while (getchar() != ‘\n’) ; Also, can test for another character. What does this do? while (getchar() != ‘Z’) ;

  12. Reading and Writing Characters /* Determines the length of a message */ #include <stdio.h> main() { char ch; int len = 0; printf("Enter a message: "); ch = getchar(); while (ch != '\n') { len++; ch = getchar(); } printf("Your message was %d character(s) long.\n", len); return 0; }

  13. Reading and Writing Characters /* Determines the length of a message */ #include <stdio.h> main() { int len = 0; printf("Enter a message: "); while (getchar() != '\n') len++; printf("Your message was %d character(s) long.\n", len); return 0; }

  14. Reading and Writing Characters /* Determines the length of a message */ #include <stdio.h> main() { int len = 0; printf("Enter a message: "); while (getchar() != '\n') len++; printf("Your message was %d character(s) long.\n", len); return 0; }

  15. sizeof Operator The sizeof operator allows the program to determine how many bytes of memory are required to store values of a particular data type. Format: sizeof (type) Example: printf("the int is %d\n", sizeof(int)); … sizeof (char) is always 1 sizeof(int) is 4 sizeof(double) is 8

  16. Type Conversions Type conversion: convert a unit of data from one type to another Automatic in some cases: • Add an int to a long int: compiler converts the int to a long int • Add an int to a float: compiler converts the int to a float “Implicit conversions” – compiler handles automatically “Explicit conversions” – use the cast operator

  17. Implicit Conversions • When the operands in an arithmetic or logical expression don’t have the same type • When the type of the expression on the right side of an assignment doesn’t match that on the left side • When the type of an argument in a function call doesn’t match the type of the corresponding parameter • When the type of the expression in the return statement doesn’t match the function’s return type

  18. Examples – Arithmetic Conversions char c; long int l; short int s; unsigned long int ul; int i; float f; unsigned int u; double d; long double ld; i = i + c; /* c is converted to int */ i = i + s; /* s is converted to int */ u = u + i; /* i is converted to unsigned int */ l = l + u; /* u is converted to long int */ i = i + c; /* c is converted to int */ ul = ul + l; /* l is converted to unsigned long int */ f = f + ul; /* ul is converted to float */ d = d + f; /* f is converted to double */ ld = ld + d; /* d is converted to long double */

  19. Examples – Conversions During Assignment char c; int i; float f; double d; i = c; /* c is converted to int */ f = i; /* i is converted to float */ d = f; /* f is converted to double */

  20. Some BAD Ideas – DON’T DO THIS char c; int i; float f; double d; i = 57.33; /* NO! */ i = 1.0e20; /* NO, NO!! */ f = 1.0e100; /* Nope. */ c = 10000; /* Won’t work */

  21. Type Casting C allows us to “cast” an expression. (type) expression; For example – assume you have a float f = 100.00; And you happen to need to use it as an integer for assignment to an integer variable: i = (int) f; /* Converts f to an integer */

  22. Bad News • Test Friday!!!!

  23. Homework: • Page 135, #6, 16, 14, 17

  24. Program 7 • Page 135, #9 • 10 Extra points for writing the program so that the assumption is dropped.

More Related