SlideShare uma empresa Scribd logo
1 de 18
© 2000 Prentice Hall, Inc. All rights reserved.
Introduction to C Programming
Outline
2.1 Introduction
2.2 A Simple C Program: Printing a Line of Text
2.3 Another Simple C Program: Adding Two Integers
2.4 Memory Concepts
2.5 Arithmetic in C
2.6 Decision Making: Equality and Relational Operators
© 2000 Prentice Hall, Inc. All rights reserved.
2.1 Introduction
• C programming language
– Structured and disciplined approach to program design
• Structured programming
– Introduced in chapters 3 and 4
– Used throughout the remainder of the book
© 2000 Prentice Hall, Inc. All rights reserved.
2.2 A Simple C Program: Printing a Line of
Text
• Comments
– Text surrounded by /* and */ is ignored by computer
– Used to describe program
• #include <stdio.h>
– Preprocessor directive - tells computer to load contents of a certain file
– <stdio.h> allows standard input/output operations
1 /* Fig. 2.1: fig02_01.c
2 A first program in C */
3 #include <stdio.h>
4
5 int main()
6 {
7 printf( "Welcome to C!n" );
8
9 return 0;
10 }
Welcome to C!
© 2000 Prentice Hall, Inc. All rights reserved.
2.2 A Simple C Program: Printing a Line of
Text (II)
• int main()
– C++ programs contain one or more functions, exactly one of
which must be main
– Parenthesis used to indicate a function
– int means that main "returns" an integer value
– Braces indicate a block
• The bodies of all functions must be contained in braces
© 2000 Prentice Hall, Inc. All rights reserved.
2.2 A Simple C Program: Printing a Line of
Text (III)
• printf( "Welcome to C!n" );
– Instructs computer to perform an action
• Specifically, prints string of characters within quotes
– Entire line called a statement
• All statements must end with a semicolon
–  - escape character
• Indicates that printf should do something out of the
ordinary
• n is the newline character
© 2000 Prentice Hall, Inc. All rights reserved.
2.2 A Simple C Program: Printing a Line of
Text (IV)
• return 0;
– A way to exit a function
– return 0, in this case, means that the program terminated
normally
• Right brace }
– Indicates end of main has been reached
• Linker
– When a function is called, linker locates it in the library
– Inserts it into object program
– If function name misspelled, linker will spot error because it
cannot find function in library
© 2000 Prentice Hall, Inc. All rights reserved.
Outline
1. Initialize variables
2. Input
2.1 Sum
3. Print
Program Output
1 /* Fig. 2.5: fig02_05.c
2 Addition program */
3 #include <stdio.h>
4
5 int main()
6 {
7 int integer1, integer2, sum; /* declaration */
8
9 printf( "Enter first integern" ); /* prompt */
10 scanf( "%d", &integer1 ); /* read an integer */
11 printf( "Enter second integern" ); /* prompt */
12 scanf( "%d", &integer2 ); /* read an integer */
13 sum = integer1 + integer2; /* assignment of sum */
14 printf( "Sum is %dn", sum ); /* print sum */
15
16 return 0; /* indicate that program ended successfully */
17 }
Enter first integer
45
Enter second integer
72
Sum is 117
© 2000 Prentice Hall, Inc. All rights reserved.
2.3 Another Simple C Program: Adding
Two Integers
• As before
– Comments, #include <stdio.h> and main
• int integer1, integer2, sum;
– Declaration of variables
• Variables: locations in memory where a value can be stored
– int means the variables can hold integers (-1, 3, 0, 47)
– integer1, integer2, sum - variable names (identifiers)
• Identifiers: consist of letters, digits (cannot begin with a digit),
and underscores, case sensitive
– Declarations appear before executable statements
• If not, syntax (compile) error
© 2000 Prentice Hall, Inc. All rights reserved.
2.3 Another Simple C Program: Adding
Two Integers (II)
• scanf( "%d", &integer1 );
– Obtains value from user
• scanf uses standard input (usually keyboard)
– This scanf has two arguments
• %d - indicates data should be a decimal integer
• &integer1 - location in memory to store variable
• & is confusing in beginning - just remember to include it with
the variable name in scanf statements
– It will be discussed later
– User responds to scanf by typing in number, then pressing
the enter (return) key
© 2000 Prentice Hall, Inc. All rights reserved.
2.3 Another Simple C Program: Adding
Two Integers (III)
• = (assignment operator )
– Assigns value to a variable
– Binary operator (has two operands)
sum = variable1 + variable2;
sum gets variable1 + variable2;
– Variable receiving value on left
• printf( "Sum is %dn", sum );
– Similar to scanf - %d means decimal integer will be printed
• sum specifies what integer will be printed
– Calculations can be performed inside printf statements
printf( "Sum is %dn", integer1 + integer2 );
© 2000 Prentice Hall, Inc. All rights reserved.
2.4 Memory Concepts
• Variables
– Variable names correspond to locations in the computer's memory.
– Every variable has a name, a type, a size and a value.
– Whenever a new value is placed into a variable (through scanf,
for example), it replaces (and destroys) previous value
– Reading variables from memory does not change them
• A visual representation
integer1 45
© 2000 Prentice Hall, Inc. All rights reserved.
2.5 Arithmetic
• Arithmetic calculations are used in most programs
– Use * for multiplication and / for division
– Integer division truncates remainder
7 / 5 evaluates to 1
– Modulus operator returns the remainder
7 % 5 evaluates to 2
• Operator precedence
– Some arithmetic operators act before others (i.e., multiplication
before addition)
• Use parenthesis when needed
– Example: Find the average of three variables a, b and c
• Do not use: a + b + c / 3
• Use: (a + b + c ) / 3
© 2000 Prentice Hall, Inc. All rights reserved.
2.5 Arithmetic (II)
• Arithmetic operators:
• Rules of operator precedence:
C operation Arithmetic
operator
Algebraic
expression
C expression
Addition + f + 7 f + 7
Subtraction - p – c p - c
Multiplication * bm b * m
Division / x / y x / y
Modulus % r mod s r % s
Operator(s) Operation(s) Order of evaluation (precedence)
() Parentheses Evaluated first. If the parentheses are nested, the
expression in the innermost pair is evaluated first. If
there are several pairs of parentheses “on the same level”
(i.e., not nested), they are evaluated left to right.
*, /, or % Multiplication Division
Modulus
Evaluated second. If there are several, they re
evaluated left to right.
+ or - Addition
Subtraction
Evaluated last. If there are several, they are
evaluated left to right.
© 2000 Prentice Hall, Inc. All rights reserved.
2.6 Decision Making: Equality and
Relational Operators
• Executable statements
– Perform actions (calculations, input/output of data)
– Perform decisions
• May want to print "pass" or "fail" given the value of a test grade
• if control structure
– Simple version in this section, more detail later
– If a condition is true, then the body of the if statement executed
• 0 is false, non-zero is true
– Control always resumes after the if structure
• Keywords
– Special words reserved for C
– Cannot be used as identifiers or variable names
© 2000 Prentice Hall, Inc. All rights reserved.
2.6 Decision Making: Equality and
Relational Operators (II)
Standard algebraic equality
operator or
relational operator
C++ equality
or relational
operator
Example
of C++
condition
Meaning of
C++ condition
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
Equality operators
= == x == y x is equal to y
!= x != y x is not equal to y
<_
>_
=
© 2000 Prentice Hall, Inc. All rights reserved.
2.6 Decision Making: Equality and
Relational Operators (III)
Keywords
auto double int struct
break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while
© 2000 Prentice Hall, Inc. All rights reserved.
Outline
1. Declare variables
2. Input
2.1 if statements
3. Print
1 /* Fig. 2.13: fig02_13.c
2 Using if statements, relational
3 operators, and equality operators */
4 #include <stdio.h>
5
6 int main()
7 {
8 int num1, num2;
9
10 printf( "Enter two integers, and I will tell youn" );
11 printf( "the relationships they satisfy: " );
12 scanf( "%d%d", &num1, &num2 ); /* read two integers */
13
14 if ( num1 == num2 )
15 printf( "%d is equal to %dn", num1, num2 );
16
17 if ( num1 != num2 )
18 printf( "%d is not equal to %dn", num1, num2 );
19
20 if ( num1 < num2 )
21 printf( "%d is less than %dn", num1, num2 );
22
23 if ( num1 > num2 )
24 printf( "%d is greater than %dn", num1, num2 );
25
26 if ( num1 <= num2 )
27 printf( "%d is less than or equal to %dn",
28 num1, num2 );
© 2000 Prentice Hall, Inc. All rights reserved.
Outline
3.1 Exit main
Program Output
29
30 if ( num1 >= num2 )
31 printf( "%d is greater than or equal to %dn",
32 num1, num2 );
33
34 return 0; /* indicate program ended successfully */
35 }
Enter two integers, and I will tell you
the relationships they satisfy: 3 7
3 is not equal to 7
3 is less than 7
3 is less than or equal to 7
Enter two integers, and I will tell you
the relationships they satisfy: 22 12
22 is not equal to 12
22 is greater than 12
22 is greater than or equal to 12

Mais conteúdo relacionado

Mais procurados

Chap 2 structure of c programming dti2143
Chap 2  structure of c programming dti2143Chap 2  structure of c programming dti2143
Chap 2 structure of c programming dti2143
alish sha
 
Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14
IIUM
 
Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14
IIUM
 
Pseudocode-Flowchart
Pseudocode-FlowchartPseudocode-Flowchart
Pseudocode-Flowchart
lotlot
 
15 functions
15 functions15 functions
15 functions
fyjordan9
 

Mais procurados (20)

Chap 2 structure of c programming dti2143
Chap 2  structure of c programming dti2143Chap 2  structure of c programming dti2143
Chap 2 structure of c programming dti2143
 
Chapter 7: Arithmetic and Relational Operators
Chapter 7:  Arithmetic and Relational Operators Chapter 7:  Arithmetic and Relational Operators
Chapter 7: Arithmetic and Relational Operators
 
CONTROL STRUCTURE
CONTROL STRUCTURECONTROL STRUCTURE
CONTROL STRUCTURE
 
Cp module 2
Cp module 2Cp module 2
Cp module 2
 
PROGRAM LOGIC AND FORMULATION
PROGRAM LOGIC AND FORMULATIONPROGRAM LOGIC AND FORMULATION
PROGRAM LOGIC AND FORMULATION
 
Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14
 
Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14Csc1100 lecture03 ch03-pt2-s14
Csc1100 lecture03 ch03-pt2-s14
 
Programming flowcharts for C Language
Programming flowcharts for C LanguageProgramming flowcharts for C Language
Programming flowcharts for C Language
 
C programming
C programmingC programming
C programming
 
Functions
FunctionsFunctions
Functions
 
Functions
FunctionsFunctions
Functions
 
Subprogramms
SubprogrammsSubprogramms
Subprogramms
 
Ch5 Selection Statements
Ch5 Selection StatementsCh5 Selection Statements
Ch5 Selection Statements
 
Unit 3
Unit 3Unit 3
Unit 3
 
Python Programming | JNTUK | UNIT 1 | Lecture 5
Python Programming | JNTUK | UNIT 1 | Lecture 5Python Programming | JNTUK | UNIT 1 | Lecture 5
Python Programming | JNTUK | UNIT 1 | Lecture 5
 
Flow charts
Flow chartsFlow charts
Flow charts
 
Pseudocode-Flowchart
Pseudocode-FlowchartPseudocode-Flowchart
Pseudocode-Flowchart
 
Casa lab manual
Casa lab manualCasa lab manual
Casa lab manual
 
2 1 expressions
2 1  expressions2 1  expressions
2 1 expressions
 
15 functions
15 functions15 functions
15 functions
 

Semelhante a intro to c

Lecture 2 variables
Lecture 2 variablesLecture 2 variables
Lecture 2 variables
Tony Apreku
 

Semelhante a intro to c (20)

C Intro.ppt
C Intro.pptC Intro.ppt
C Intro.ppt
 
Lec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdfLec1_EENG112-Introduction.pdf
Lec1_EENG112-Introduction.pdf
 
Complete C++ programming Language Course
Complete C++ programming Language CourseComplete C++ programming Language Course
Complete C++ programming Language Course
 
Cinfo
CinfoCinfo
Cinfo
 
C chap02
C chap02C chap02
C chap02
 
C chap02
C chap02C chap02
C chap02
 
c-programming
c-programmingc-programming
c-programming
 
Introduction to c programming
Introduction to c programmingIntroduction to c programming
Introduction to c programming
 
Hello world! Intro to C++
Hello world! Intro to C++Hello world! Intro to C++
Hello world! Intro to C++
 
CP c++ programing project Unit 1 intro.pdf
CP c++ programing project  Unit 1 intro.pdfCP c++ programing project  Unit 1 intro.pdf
CP c++ programing project Unit 1 intro.pdf
 
Prog1-L2.pptx
Prog1-L2.pptxProg1-L2.pptx
Prog1-L2.pptx
 
2 EPT 162 Lecture 2
2 EPT 162 Lecture 22 EPT 162 Lecture 2
2 EPT 162 Lecture 2
 
C++
C++C++
C++
 
Chapter2
Chapter2Chapter2
Chapter2
 
Programming in C
Programming in CProgramming in C
Programming in C
 
Lesson 4.1 completing the problem solving process
Lesson 4.1 completing the problem solving processLesson 4.1 completing the problem solving process
Lesson 4.1 completing the problem solving process
 
Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++Basic Programming concepts - Programming with C++
Basic Programming concepts - Programming with C++
 
Function
FunctionFunction
Function
 
The smartpath information systems c pro
The smartpath information systems c proThe smartpath information systems c pro
The smartpath information systems c pro
 
Lecture 2 variables
Lecture 2 variablesLecture 2 variables
Lecture 2 variables
 

Mais de teach4uin (20)

Controls
ControlsControls
Controls
 
validation
validationvalidation
validation
 
validation
validationvalidation
validation
 
Master pages
Master pagesMaster pages
Master pages
 
.Net framework
.Net framework.Net framework
.Net framework
 
Scripting languages
Scripting languagesScripting languages
Scripting languages
 
Css1
Css1Css1
Css1
 
Code model
Code modelCode model
Code model
 
Asp db
Asp dbAsp db
Asp db
 
State management
State managementState management
State management
 
security configuration
security configurationsecurity configuration
security configuration
 
static dynamic html tags
 static dynamic html tags static dynamic html tags
static dynamic html tags
 
static dynamic html tags
static dynamic html tagsstatic dynamic html tags
static dynamic html tags
 
New microsoft office power point presentation
New microsoft office power point presentationNew microsoft office power point presentation
New microsoft office power point presentation
 
.Net overview
.Net overview.Net overview
.Net overview
 
Stdlib functions lesson
Stdlib functions lessonStdlib functions lesson
Stdlib functions lesson
 
enums
enumsenums
enums
 
memory
memorymemory
memory
 
array
arrayarray
array
 
storage clas
storage classtorage clas
storage clas
 

Último

Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Safe Software
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​Elevate Developer Efficiency & build GenAI Application with Amazon Q​
Elevate Developer Efficiency & build GenAI Application with Amazon Q​
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers:  A Deep Dive into Serverless Spatial Data and FMECloud Frontiers:  A Deep Dive into Serverless Spatial Data and FME
Cloud Frontiers: A Deep Dive into Serverless Spatial Data and FME
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
CNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In PakistanCNIC Information System with Pakdata Cf In Pakistan
CNIC Information System with Pakdata Cf In Pakistan
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Six Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal OntologySix Myths about Ontologies: The Basics of Formal Ontology
Six Myths about Ontologies: The Basics of Formal Ontology
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf[BuildWithAI] Introduction to Gemini.pdf
[BuildWithAI] Introduction to Gemini.pdf
 
Platformless Horizons for Digital Adaptability
Platformless Horizons for Digital AdaptabilityPlatformless Horizons for Digital Adaptability
Platformless Horizons for Digital Adaptability
 

intro to c

  • 1. © 2000 Prentice Hall, Inc. All rights reserved. Introduction to C Programming Outline 2.1 Introduction 2.2 A Simple C Program: Printing a Line of Text 2.3 Another Simple C Program: Adding Two Integers 2.4 Memory Concepts 2.5 Arithmetic in C 2.6 Decision Making: Equality and Relational Operators
  • 2. © 2000 Prentice Hall, Inc. All rights reserved. 2.1 Introduction • C programming language – Structured and disciplined approach to program design • Structured programming – Introduced in chapters 3 and 4 – Used throughout the remainder of the book
  • 3. © 2000 Prentice Hall, Inc. All rights reserved. 2.2 A Simple C Program: Printing a Line of Text • Comments – Text surrounded by /* and */ is ignored by computer – Used to describe program • #include <stdio.h> – Preprocessor directive - tells computer to load contents of a certain file – <stdio.h> allows standard input/output operations 1 /* Fig. 2.1: fig02_01.c 2 A first program in C */ 3 #include <stdio.h> 4 5 int main() 6 { 7 printf( "Welcome to C!n" ); 8 9 return 0; 10 } Welcome to C!
  • 4. © 2000 Prentice Hall, Inc. All rights reserved. 2.2 A Simple C Program: Printing a Line of Text (II) • int main() – C++ programs contain one or more functions, exactly one of which must be main – Parenthesis used to indicate a function – int means that main "returns" an integer value – Braces indicate a block • The bodies of all functions must be contained in braces
  • 5. © 2000 Prentice Hall, Inc. All rights reserved. 2.2 A Simple C Program: Printing a Line of Text (III) • printf( "Welcome to C!n" ); – Instructs computer to perform an action • Specifically, prints string of characters within quotes – Entire line called a statement • All statements must end with a semicolon – - escape character • Indicates that printf should do something out of the ordinary • n is the newline character
  • 6. © 2000 Prentice Hall, Inc. All rights reserved. 2.2 A Simple C Program: Printing a Line of Text (IV) • return 0; – A way to exit a function – return 0, in this case, means that the program terminated normally • Right brace } – Indicates end of main has been reached • Linker – When a function is called, linker locates it in the library – Inserts it into object program – If function name misspelled, linker will spot error because it cannot find function in library
  • 7. © 2000 Prentice Hall, Inc. All rights reserved. Outline 1. Initialize variables 2. Input 2.1 Sum 3. Print Program Output 1 /* Fig. 2.5: fig02_05.c 2 Addition program */ 3 #include <stdio.h> 4 5 int main() 6 { 7 int integer1, integer2, sum; /* declaration */ 8 9 printf( "Enter first integern" ); /* prompt */ 10 scanf( "%d", &integer1 ); /* read an integer */ 11 printf( "Enter second integern" ); /* prompt */ 12 scanf( "%d", &integer2 ); /* read an integer */ 13 sum = integer1 + integer2; /* assignment of sum */ 14 printf( "Sum is %dn", sum ); /* print sum */ 15 16 return 0; /* indicate that program ended successfully */ 17 } Enter first integer 45 Enter second integer 72 Sum is 117
  • 8. © 2000 Prentice Hall, Inc. All rights reserved. 2.3 Another Simple C Program: Adding Two Integers • As before – Comments, #include <stdio.h> and main • int integer1, integer2, sum; – Declaration of variables • Variables: locations in memory where a value can be stored – int means the variables can hold integers (-1, 3, 0, 47) – integer1, integer2, sum - variable names (identifiers) • Identifiers: consist of letters, digits (cannot begin with a digit), and underscores, case sensitive – Declarations appear before executable statements • If not, syntax (compile) error
  • 9. © 2000 Prentice Hall, Inc. All rights reserved. 2.3 Another Simple C Program: Adding Two Integers (II) • scanf( "%d", &integer1 ); – Obtains value from user • scanf uses standard input (usually keyboard) – This scanf has two arguments • %d - indicates data should be a decimal integer • &integer1 - location in memory to store variable • & is confusing in beginning - just remember to include it with the variable name in scanf statements – It will be discussed later – User responds to scanf by typing in number, then pressing the enter (return) key
  • 10. © 2000 Prentice Hall, Inc. All rights reserved. 2.3 Another Simple C Program: Adding Two Integers (III) • = (assignment operator ) – Assigns value to a variable – Binary operator (has two operands) sum = variable1 + variable2; sum gets variable1 + variable2; – Variable receiving value on left • printf( "Sum is %dn", sum ); – Similar to scanf - %d means decimal integer will be printed • sum specifies what integer will be printed – Calculations can be performed inside printf statements printf( "Sum is %dn", integer1 + integer2 );
  • 11. © 2000 Prentice Hall, Inc. All rights reserved. 2.4 Memory Concepts • Variables – Variable names correspond to locations in the computer's memory. – Every variable has a name, a type, a size and a value. – Whenever a new value is placed into a variable (through scanf, for example), it replaces (and destroys) previous value – Reading variables from memory does not change them • A visual representation integer1 45
  • 12. © 2000 Prentice Hall, Inc. All rights reserved. 2.5 Arithmetic • Arithmetic calculations are used in most programs – Use * for multiplication and / for division – Integer division truncates remainder 7 / 5 evaluates to 1 – Modulus operator returns the remainder 7 % 5 evaluates to 2 • Operator precedence – Some arithmetic operators act before others (i.e., multiplication before addition) • Use parenthesis when needed – Example: Find the average of three variables a, b and c • Do not use: a + b + c / 3 • Use: (a + b + c ) / 3
  • 13. © 2000 Prentice Hall, Inc. All rights reserved. 2.5 Arithmetic (II) • Arithmetic operators: • Rules of operator precedence: C operation Arithmetic operator Algebraic expression C expression Addition + f + 7 f + 7 Subtraction - p – c p - c Multiplication * bm b * m Division / x / y x / y Modulus % r mod s r % s Operator(s) Operation(s) Order of evaluation (precedence) () Parentheses Evaluated first. If the parentheses are nested, the expression in the innermost pair is evaluated first. If there are several pairs of parentheses “on the same level” (i.e., not nested), they are evaluated left to right. *, /, or % Multiplication Division Modulus Evaluated second. If there are several, they re evaluated left to right. + or - Addition Subtraction Evaluated last. If there are several, they are evaluated left to right.
  • 14. © 2000 Prentice Hall, Inc. All rights reserved. 2.6 Decision Making: Equality and Relational Operators • Executable statements – Perform actions (calculations, input/output of data) – Perform decisions • May want to print "pass" or "fail" given the value of a test grade • if control structure – Simple version in this section, more detail later – If a condition is true, then the body of the if statement executed • 0 is false, non-zero is true – Control always resumes after the if structure • Keywords – Special words reserved for C – Cannot be used as identifiers or variable names
  • 15. © 2000 Prentice Hall, Inc. All rights reserved. 2.6 Decision Making: Equality and Relational Operators (II) Standard algebraic equality operator or relational operator C++ equality or relational operator Example of C++ condition Meaning of C++ condition 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 Equality operators = == x == y x is equal to y != x != y x is not equal to y <_ >_ =
  • 16. © 2000 Prentice Hall, Inc. All rights reserved. 2.6 Decision Making: Equality and Relational Operators (III) Keywords auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while
  • 17. © 2000 Prentice Hall, Inc. All rights reserved. Outline 1. Declare variables 2. Input 2.1 if statements 3. Print 1 /* Fig. 2.13: fig02_13.c 2 Using if statements, relational 3 operators, and equality operators */ 4 #include <stdio.h> 5 6 int main() 7 { 8 int num1, num2; 9 10 printf( "Enter two integers, and I will tell youn" ); 11 printf( "the relationships they satisfy: " ); 12 scanf( "%d%d", &num1, &num2 ); /* read two integers */ 13 14 if ( num1 == num2 ) 15 printf( "%d is equal to %dn", num1, num2 ); 16 17 if ( num1 != num2 ) 18 printf( "%d is not equal to %dn", num1, num2 ); 19 20 if ( num1 < num2 ) 21 printf( "%d is less than %dn", num1, num2 ); 22 23 if ( num1 > num2 ) 24 printf( "%d is greater than %dn", num1, num2 ); 25 26 if ( num1 <= num2 ) 27 printf( "%d is less than or equal to %dn", 28 num1, num2 );
  • 18. © 2000 Prentice Hall, Inc. All rights reserved. Outline 3.1 Exit main Program Output 29 30 if ( num1 >= num2 ) 31 printf( "%d is greater than or equal to %dn", 32 num1, num2 ); 33 34 return 0; /* indicate program ended successfully */ 35 } Enter two integers, and I will tell you the relationships they satisfy: 3 7 3 is not equal to 7 3 is less than 7 3 is less than or equal to 7 Enter two integers, and I will tell you the relationships they satisfy: 22 12 22 is not equal to 12 22 is greater than 12 22 is greater than or equal to 12