SlideServe
Menu
Préférences
© SlideServe · v2026

Introduction to Computers and Programming - Class 5

louishjohnson avatar
21 diapositives · 265 Views · Jan 04, 2020

Explore the concepts of type casting, field width, ASCII values, rounding numbers, precision, logic, and if structures in C programming. Learn how to handle floating values, data truncation, and promotion rules. Practice with examples and understand how to work with equality and relational operators. 8 Relevant

Introduction to Computers and Programming - Class 5 - slide 1
01 / 21Introduction to Computers and Programming - Class 5
1 / 17

Télécharger la présentation

Introduction to Computers and Programming - Class 5
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation

Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement. Téléchargez la présentation en cliquant sur ce lien. Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.

F I N

Plus de contenu associé

Transcription de la présentation
  1. Introduction to Computers and Programming Class 5 Introduction to C Professor Avi Rosenfeld Introduction to Computers and Programming - Class 5

  2. Float Example (Program 2.2) %f: indicates floating values %.2f displays a floating point value with 2 decimal points. Output: Sum: 276.50 /* Float Example Program */ #include <stdio.h> main () { float var1, var2, var3, sum; var1 = 87.25; var2 = 92.50; var3 = 96.75; sum = var1 + var2 + var3; printf ("Sum: %.2f", sum); }

  3. Finding an Average • Problem #2: • 90, 92, 95, 100 and 4 are all integers. Hence, this is integer division. • Integer division can result in data truncation (or loss of data) • Hence, avg is set to: 94, but the students real average is 94.25 • There are actually three ways to solve this problem.

  4. Rules of Promotion • Promotion: when mixing ints and floats, everything is promoted to floats. • In our average example, there are three ways to force promotion, and get the right answer of 94.25: 1. change num to a float: float num = 4.0; float avg = (90 + 92 + 95 + 100) / num;

  5. Casting • Forces one type into another • For example, fYourFloat = (float) iMyInteger ; • Will force the integer myInteger into a float, yourFloat • iMyInteger = (int) fYourFloat ; • Will work too, but you’ll lose the decimal portion • i.e. 1.9 forced into an integer will result in 1 Introduction to Computers and Programming - Class 5

  6. Rules of Promotion (cont’d) 2. Use a Cast Operator int num = 4; float avg = ( 90 + 92 + 95 + 100 ) / (float) num; In this case, num is explicitly cast to a float. And, because we have one float, everything else is promoted. 3. Divide by 4.0 float avg = (90 + 92 + 95 + 100) / 4.0;

  7. printf conversion specifications • The format control string (the first argument to printf) contains: • conversion specifiers (%d, %i, %f) • field widths • precisions • other info we will not look at

  8. Averaging Program /* Implicit Type Casting Example*/ #include <stdio.h> int main () { int var1= 87, var2= 92, var3= 96; double ave; ave = (var1 + var2 + var3)/3.0; printf ("The average of %d, %d and %d is: %.2f\n", var1, var2, var3, ave); // could also have said float(var1+var2+var3)/3; // could also have said (var1+var2+var3)/3.0; return 0; } Introduction to Computers and Programming - Class 5

  9. Using Type Casting • Rounding Numbers • Finding out ASCII values Introduction to Computers and Programming - Class 5

  10. Field width • The exact size of the field in which data is to be printed is specified by a field width. • If the field width is larger than the data being printed, the data will normally be right- justified within that field. • Use a “-” sign before the number in field width to left-justify • If the field width is smaller than the data being printed, the field width is increased to print the data.

  11. ASCII Values #include <stdio.h> int main () { char x = 'A'; printf("The ASCII value of %c is %d\n", x, x); return 0; } Introduction to Computers and Programming - Class 5

  12. Rounding Numbers #include <stdio.h> int main () { float num; int round; printf("Please type a value to round\n"); scanf("%f", &num); round = int (num + 0.5); printf("%f rounded is %d\n", num, round ); return 0; } Introduction to Computers and Programming - Class 5

  13. Field width • An integer representing the field width is inserted between the percent sign (%) and the conversion specifier • For example, %4d int iYourAnswer = 1 ; printf( “The answer %4d is correct!\n”, iYourAnswer ); Will print the following The answer 1 is correct! Introduction to Computers and Programming - Class 5

  14. Precision • You can also specify the precision with which data is to be printed. • Precision has different meaning -- for different types. • integer: minimum number of digits to be printed • float: number of digits to appear after the decimal point

  15. Logic • Is an expression that evaluates to true or false (Boolean Logic) • We’ll discuss it first in the if structure Introduction to Computers and Programming - Class 5

  16. If Structure • A control structure using equality and relational operators to test conditions • Looks something like this: if (something is true) do this Introduction to Computers and Programming - Class 5

  17. Equality and Relational Operators • Equality Operators == x == y x is equal to y != x != y x is not equal to y • Relational Operators > x > y x is greater than y < x < y x is less than y >= x >= y x is greater than or equal to y <= x <= y x is less than or equal to y Introduction to Computers and Programming - Class 5

  18. Example Using If #include <stdio.h> void main() { int num1,num2; printf("Please enter 2 numbers\n"); scanf("%d%d", &num1, &num2); if(num1 == num2) /* what would if (num1 = num2 do? */ { printf("You typed %d and %d\n", num1, num2); printf("and yes, they are equal\n"); } } Introduction to Computers and Programming - Class 5

  19. VERY COMMON ERROR! • Confusing the equality operator == with the assignment operator = • In our example this error would actually assign the value of y to x if ( x = y ) printf( “ x is equal to y!\n” ); • The condition would always be true!!! Introduction to Computers and Programming - Class 5

  20. Equality v. Assignment • Given: if (grade = 100) printf (“Perfect Score!”); • This statement does the following: • Grade is assigned the value 100. • Because 100 is true (i.e. non-zero!), the condition is always true. • No matter what the student grade, it always says “Perfect Score!” Introduction to Computers and Programming - Class 5

  21. Also note the ;’s! • Placing a semicolon ; immediately to the right of a condition in an if structure. • The if test would never be used – the printf would always print if ( x == y ) ;  printf( “ x is equal to y!\n” ); • Again not what we want to do Introduction to Computers and Programming - Class 5