SlideShare a Scribd company logo
1 of 18
Download to read offline
Introduction to
Computer Engineering
ECSE 221




                                                       Ulhaque
                                  ECSE 221 - Muhammad Ehtasham
Muhammad Ehtasham Ulhaque
muhammad.ulhaque@mail.mcgill.ca
Tutorial 1 Winter 2011
Why use C?
• Imperative programming language
• Provides language constructs that map efficiently to machine
  instructions
• Require minimal run-time support
• Provides low-level access to memory
Difference between C & Java
 type of language                                      function oriented          object oriented
 basic programming unit                                function                   class = ADT
 portability of source code                            possible with discipline   yes
                                                       no, recompile for each     yes, bytecode is "write once,
 portability of compiled code
                                                       architecture               run anywhere"
                                                                                  public class HelloWorld {
                                                       #include<stdio.h>
                                                                                    public static void
                                                       int main(void) {
                                                                                  main(String[] args) {
                                                         printf("Hellon");
 hello, world                                                                         System.out.println("Hello")
                                                         return 0;
                                                                                  ;
                                                       }
                                                                                    }
                                                                                  }



   More to come as we go along




Source: http://www.cs.princeton.edu/introcs/faq/c2java.html
Pelles C –C Compiler
•   WebCT
•   Download and Install Pellas C
•   Set up environment
•   Build a simple program – Hello World!
C – General Structure
•   Libraries
•   Declarations
•   Method Definition
•   Main Method
Data Types
•   Int: Integer
•   Char: One byte character
•   Float: Single-precision floating point
•   Double: Double-precision floating point

Array Declaration:
• Array: int array[number][number]
Example 1
//libraries
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

//declaration
#define PI 3.14

float getRadius(){
        float radius;
        printf(“Please enter the radius of the circle:n”);
        scanf(“%f”,&radius);
        return(radius);
}
Example 2 (contd.)
float getArea(float radius){
        float area;
        area = PI*radius*radius;
        return area;
}

void main()
{
      float circleradius= getRadius();
      float localarea= getArea(circleradius);
      printf("the area of a circle of radius %f is:
               %f",circleradius,localarea);
}
Basic I/O commands
• scanf: reads till a whitespace character (blank space,EOL,etc)
• Printf: outputs a line of text which can include variables
• Float and decimal types are items in a memory location thus
       Scanf(“%f”,&numberlocation)
       The & specifies to store the content at memory location
       ‘numberlocation’
Characters
•   n :new line character
•   <,>,==,!= : conditional operators
•   +,-,/,* : arithmetic operators
•   foo++ : use foo then increment
•   ++foo: increment foo then use it
•   +=,*=,/=,-=, syntax shortcut
If statements
If(<condition 1>)
        <statement block 1>
else if(<condition 2>)
        <statement block 2>
else
        <statement block 3>

EXAMPLE:
If( x==‘+’)
         printf(“the sum is %d”,a+b);
else if( x==‘/’)
         printf(“the quotient is %d”,a/b);
While loop
While (<condition [booleanexpression]>)
       <statement>
EXAMPLE
Int n=3;
Int number=5;
Int sum=0;
While (n>0){
       sum = sum + number;
       n--;
}
return sum;
For loop
For(<statement 1>;<condition> [booleanexpression];<statement
2>)
{
       <statement block 3>
}

EXAMPLE
sum = 0;
number = 5;
for(int n=3; n>0;n--){
        sum += number;
}
return sum;
Boolean operators
• &&: (AND)
        a && b : a and b must both be equal to 1 -> ‘true’
• ||: (OR)
        a || b : a and/or b must both be equal to 1
• ! : (NOT)
        !a return the complement of a
Bitwise operators *
•   & bitwise AND
•   | bitwise OR
•   ^ bitwise XOR
•   << left shift
•   >> right shift
•   A & 0x0001 -> this return the last bit
Pointers
• Data type which points to another location in memory
• int *a, b;
• a is a pointer to an integer
• b = 4;
          Location 1000 Address in byte Location 1004                 If we had
                                              4                       a 32 bit
                a                                                     machine
                                               b

            Location 1000                      Location 1004
a = &b;         1004                                 4
                  a                                    b
 *a        is the content of the location ‘a’ (content at 1004) = 4
Pointers (contd.)
• a is the address which the pointer contains: 0x0002
• *a is the content of the location ‘a’ (content at location
  0x0002) : 4
• &a is the address of the pointer a: 0x0001
• b is the content at pointer b: 4
• &b is the address of pointer b: 0x0002
• *b illegal operation
Command line arguments
•   void main(int argc, char *argv[])
•   argc
•   –Integers which is equal to the number of terms in the call
•   argv
•   –Array of pointers

More Related Content

What's hot

C++11: Feel the New Language
C++11: Feel the New LanguageC++11: Feel the New Language
C++11: Feel the New Languagemspline
 
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov
 
Dynamic Objects,Pointer to function,Array & Pointer,Character String Processing
Dynamic Objects,Pointer to function,Array & Pointer,Character String ProcessingDynamic Objects,Pointer to function,Array & Pointer,Character String Processing
Dynamic Objects,Pointer to function,Array & Pointer,Character String ProcessingMeghaj Mallick
 
Gentle introduction to modern C++
Gentle introduction to modern C++Gentle introduction to modern C++
Gentle introduction to modern C++Mihai Todor
 
Golang iran - tutorial go programming language - Preliminary
Golang iran - tutorial  go programming language - PreliminaryGolang iran - tutorial  go programming language - Preliminary
Golang iran - tutorial go programming language - Preliminarygo-lang
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewMarkus Schneider
 
Console Io Operations
Console Io OperationsConsole Io Operations
Console Io Operationsarchikabhatia
 
C++ 11 Features
C++ 11 FeaturesC++ 11 Features
C++ 11 FeaturesJan Rüegg
 
Dynamic memory allocation in c++
Dynamic memory allocation in c++Dynamic memory allocation in c++
Dynamic memory allocation in c++Tech_MX
 
STL ALGORITHMS
STL ALGORITHMSSTL ALGORITHMS
STL ALGORITHMSfawzmasood
 

What's hot (20)

C++ Chapter I
C++ Chapter IC++ Chapter I
C++ Chapter I
 
C++ Presentation
C++ PresentationC++ Presentation
C++ Presentation
 
C++11: Feel the New Language
C++11: Feel the New LanguageC++11: Feel the New Language
C++11: Feel the New Language
 
Modern C++
Modern C++Modern C++
Modern C++
 
Fp201 unit5 1
Fp201 unit5 1Fp201 unit5 1
Fp201 unit5 1
 
C++11 & C++14
C++11 & C++14C++11 & C++14
C++11 & C++14
 
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizationsEgor Bogatov - .NET Core intrinsics and other micro-optimizations
Egor Bogatov - .NET Core intrinsics and other micro-optimizations
 
C++ Chapter IV
C++ Chapter IVC++ Chapter IV
C++ Chapter IV
 
C++11
C++11C++11
C++11
 
Dynamic Objects,Pointer to function,Array & Pointer,Character String Processing
Dynamic Objects,Pointer to function,Array & Pointer,Character String ProcessingDynamic Objects,Pointer to function,Array & Pointer,Character String Processing
Dynamic Objects,Pointer to function,Array & Pointer,Character String Processing
 
Computer Programming- Lecture 6
Computer Programming- Lecture 6Computer Programming- Lecture 6
Computer Programming- Lecture 6
 
Gentle introduction to modern C++
Gentle introduction to modern C++Gentle introduction to modern C++
Gentle introduction to modern C++
 
Golang iran - tutorial go programming language - Preliminary
Golang iran - tutorial  go programming language - PreliminaryGolang iran - tutorial  go programming language - Preliminary
Golang iran - tutorial go programming language - Preliminary
 
Golang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / OverviewGolang and Eco-System Introduction / Overview
Golang and Eco-System Introduction / Overview
 
Console Io Operations
Console Io OperationsConsole Io Operations
Console Io Operations
 
C++ Chapter III
C++ Chapter IIIC++ Chapter III
C++ Chapter III
 
Lecture 12: Classes and Files
Lecture 12: Classes and FilesLecture 12: Classes and Files
Lecture 12: Classes and Files
 
C++ 11 Features
C++ 11 FeaturesC++ 11 Features
C++ 11 Features
 
Dynamic memory allocation in c++
Dynamic memory allocation in c++Dynamic memory allocation in c++
Dynamic memory allocation in c++
 
STL ALGORITHMS
STL ALGORITHMSSTL ALGORITHMS
STL ALGORITHMS
 

Similar to Introduction to Computer Engineering (ECSE 221

C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8Christian Nagel
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptSandipPradhan23
 
CBSE Question Paper Computer Science with C++ 2011
CBSE Question Paper Computer Science with C++ 2011CBSE Question Paper Computer Science with C++ 2011
CBSE Question Paper Computer Science with C++ 2011Deepak Singh
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++Jay Patel
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1AmIt Prasad
 
KotlinForJavaDevelopers-UJUG.pptx
KotlinForJavaDevelopers-UJUG.pptxKotlinForJavaDevelopers-UJUG.pptx
KotlinForJavaDevelopers-UJUG.pptxIan Robertson
 
programming language in c&c++
programming language in c&c++programming language in c&c++
programming language in c&c++Haripritha
 
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...Charles Nutter
 
devLink - What's New in C# 4?
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?Kevin Pilch
 
C Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer CentreC Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer Centrejatin batra
 
Programming using c++ tool
Programming using c++ toolProgramming using c++ tool
Programming using c++ toolAbdullah Jan
 
2 BytesC++ course_2014_c3_ function basics&parameters and overloading
2 BytesC++ course_2014_c3_ function basics&parameters and overloading2 BytesC++ course_2014_c3_ function basics&parameters and overloading
2 BytesC++ course_2014_c3_ function basics&parameters and overloadingkinan keshkeh
 

Similar to Introduction to Computer Engineering (ECSE 221 (20)

C# - What's next
C# - What's nextC# - What's next
C# - What's next
 
C
CC
C
 
C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8C# 7.x What's new and what's coming with C# 8
C# 7.x What's new and what's coming with C# 8
 
presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.ppt
 
CBSE Question Paper Computer Science with C++ 2011
CBSE Question Paper Computer Science with C++ 2011CBSE Question Paper Computer Science with C++ 2011
CBSE Question Paper Computer Science with C++ 2011
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++
 
46630497 fun-pointer-1
46630497 fun-pointer-146630497 fun-pointer-1
46630497 fun-pointer-1
 
C# for Java Developers
C# for Java DevelopersC# for Java Developers
C# for Java Developers
 
Managing console
Managing consoleManaging console
Managing console
 
KotlinForJavaDevelopers-UJUG.pptx
KotlinForJavaDevelopers-UJUG.pptxKotlinForJavaDevelopers-UJUG.pptx
KotlinForJavaDevelopers-UJUG.pptx
 
Python_Functions_Unit1.pptx
Python_Functions_Unit1.pptxPython_Functions_Unit1.pptx
Python_Functions_Unit1.pptx
 
programming language in c&c++
programming language in c&c++programming language in c&c++
programming language in c&c++
 
Apache Thrift
Apache ThriftApache Thrift
Apache Thrift
 
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...
Øredev 2011 - JVM JIT for Dummies (What the JVM Does With Your Bytecode When ...
 
devLink - What's New in C# 4?
devLink - What's New in C# 4?devLink - What's New in C# 4?
devLink - What's New in C# 4?
 
C Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer CentreC Programming Training in Ambala ! Batra Computer Centre
C Programming Training in Ambala ! Batra Computer Centre
 
TechTalk - Dotnet
TechTalk - DotnetTechTalk - Dotnet
TechTalk - Dotnet
 
Programming using c++ tool
Programming using c++ toolProgramming using c++ tool
Programming using c++ tool
 
C# - What's Next?
C# - What's Next?C# - What's Next?
C# - What's Next?
 
2 BytesC++ course_2014_c3_ function basics&parameters and overloading
2 BytesC++ course_2014_c3_ function basics&parameters and overloading2 BytesC++ course_2014_c3_ function basics&parameters and overloading
2 BytesC++ course_2014_c3_ function basics&parameters and overloading
 

Recently uploaded

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon AUnboundStockton
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppCeline George
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxRoyAbrique
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptxVS Mahajan Coaching Centre
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfsanyamsingh5019
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTiammrhaywood
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesFatimaKhan178732
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...EduSkills OECD
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Sapana Sha
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxheathfieldcps1
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...Marc Dusseiller Dusjagr
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfakmcokerachita
 

Recently uploaded (20)

Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
Crayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon ACrayon Activity Handout For the Crayon A
Crayon Activity Handout For the Crayon A
 
URLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website AppURLs and Routing in the Odoo 17 Website App
URLs and Routing in the Odoo 17 Website App
 
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptxContemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
Contemporary philippine arts from the regions_PPT_Module_12 [Autosaved] (1).pptx
 
Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions  for the students and aspirants of Chemistry12th.pptxOrganic Name Reactions  for the students and aspirants of Chemistry12th.pptx
Organic Name Reactions for the students and aspirants of Chemistry12th.pptx
 
Sanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdfSanyam Choudhary Chemistry practical.pdf
Sanyam Choudhary Chemistry practical.pdf
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPTECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
ECONOMIC CONTEXT - LONG FORM TV DRAMA - PPT
 
Separation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and ActinidesSeparation of Lanthanides/ Lanthanides and Actinides
Separation of Lanthanides/ Lanthanides and Actinides
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111Call Girls in Dwarka Mor Delhi Contact Us 9654467111
Call Girls in Dwarka Mor Delhi Contact Us 9654467111
 
The basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptxThe basics of sentences session 2pptx copy.pptx
The basics of sentences session 2pptx copy.pptx
 
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
“Oh GOSH! Reflecting on Hackteria's Collaborative Practices in a Global Do-It...
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Class 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdfClass 11 Legal Studies Ch-1 Concept of State .pdf
Class 11 Legal Studies Ch-1 Concept of State .pdf
 

Introduction to Computer Engineering (ECSE 221

  • 1. Introduction to Computer Engineering ECSE 221 Ulhaque ECSE 221 - Muhammad Ehtasham Muhammad Ehtasham Ulhaque muhammad.ulhaque@mail.mcgill.ca Tutorial 1 Winter 2011
  • 2. Why use C? • Imperative programming language • Provides language constructs that map efficiently to machine instructions • Require minimal run-time support • Provides low-level access to memory
  • 3. Difference between C & Java type of language function oriented object oriented basic programming unit function class = ADT portability of source code possible with discipline yes no, recompile for each yes, bytecode is "write once, portability of compiled code architecture run anywhere" public class HelloWorld { #include<stdio.h> public static void int main(void) { main(String[] args) { printf("Hellon"); hello, world System.out.println("Hello") return 0; ; } } } More to come as we go along Source: http://www.cs.princeton.edu/introcs/faq/c2java.html
  • 4. Pelles C –C Compiler • WebCT • Download and Install Pellas C • Set up environment • Build a simple program – Hello World!
  • 5. C – General Structure • Libraries • Declarations • Method Definition • Main Method
  • 6. Data Types • Int: Integer • Char: One byte character • Float: Single-precision floating point • Double: Double-precision floating point Array Declaration: • Array: int array[number][number]
  • 7. Example 1 //libraries #include <stdio.h> #include <stdlib.h> #include <string.h> //declaration #define PI 3.14 float getRadius(){ float radius; printf(“Please enter the radius of the circle:n”); scanf(“%f”,&radius); return(radius); }
  • 8. Example 2 (contd.) float getArea(float radius){ float area; area = PI*radius*radius; return area; } void main() { float circleradius= getRadius(); float localarea= getArea(circleradius); printf("the area of a circle of radius %f is: %f",circleradius,localarea); }
  • 9. Basic I/O commands • scanf: reads till a whitespace character (blank space,EOL,etc) • Printf: outputs a line of text which can include variables • Float and decimal types are items in a memory location thus Scanf(“%f”,&numberlocation) The & specifies to store the content at memory location ‘numberlocation’
  • 10. Characters • n :new line character • <,>,==,!= : conditional operators • +,-,/,* : arithmetic operators • foo++ : use foo then increment • ++foo: increment foo then use it • +=,*=,/=,-=, syntax shortcut
  • 11. If statements If(<condition 1>) <statement block 1> else if(<condition 2>) <statement block 2> else <statement block 3> EXAMPLE: If( x==‘+’) printf(“the sum is %d”,a+b); else if( x==‘/’) printf(“the quotient is %d”,a/b);
  • 12. While loop While (<condition [booleanexpression]>) <statement> EXAMPLE Int n=3; Int number=5; Int sum=0; While (n>0){ sum = sum + number; n--; } return sum;
  • 13. For loop For(<statement 1>;<condition> [booleanexpression];<statement 2>) { <statement block 3> } EXAMPLE sum = 0; number = 5; for(int n=3; n>0;n--){ sum += number; } return sum;
  • 14. Boolean operators • &&: (AND) a && b : a and b must both be equal to 1 -> ‘true’ • ||: (OR) a || b : a and/or b must both be equal to 1 • ! : (NOT) !a return the complement of a
  • 15. Bitwise operators * • & bitwise AND • | bitwise OR • ^ bitwise XOR • << left shift • >> right shift • A & 0x0001 -> this return the last bit
  • 16. Pointers • Data type which points to another location in memory • int *a, b; • a is a pointer to an integer • b = 4; Location 1000 Address in byte Location 1004 If we had 4 a 32 bit a machine b Location 1000 Location 1004 a = &b; 1004 4 a b *a is the content of the location ‘a’ (content at 1004) = 4
  • 17. Pointers (contd.) • a is the address which the pointer contains: 0x0002 • *a is the content of the location ‘a’ (content at location 0x0002) : 4 • &a is the address of the pointer a: 0x0001 • b is the content at pointer b: 4 • &b is the address of pointer b: 0x0002 • *b illegal operation
  • 18. Command line arguments • void main(int argc, char *argv[]) • argc • –Integers which is equal to the number of terms in the call • argv • –Array of pointers