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 Language
mspline
 
Dynamic memory allocation in c++
Dynamic memory allocation in c++Dynamic memory allocation in c++
Dynamic memory allocation in c++
Tech_MX
 

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 ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtasham Ulhaque

presentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.pptpresentation_functions_1443207686_140676.ppt
presentation_functions_1443207686_140676.ppt
SandipPradhan23
 

Similar to ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtasham Ulhaque (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

The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
heathfieldcps1
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
ZurliaSoop
 

Recently uploaded (20)

How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17How to Add New Custom Addons Path in Odoo 17
How to Add New Custom Addons Path in Odoo 17
 
REMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptxREMIFENTANIL: An Ultra short acting opioid.pptx
REMIFENTANIL: An Ultra short acting opioid.pptx
 
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
TỔNG ÔN TẬP THI VÀO LỚP 10 MÔN TIẾNG ANH NĂM HỌC 2023 - 2024 CÓ ĐÁP ÁN (NGỮ Â...
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
The basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptxThe basics of sentences session 3pptx.pptx
The basics of sentences session 3pptx.pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptxCOMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
COMMUNICATING NEGATIVE NEWS - APPROACHES .pptx
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
On National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan FellowsOn National Teacher Day, meet the 2024-25 Kenan Fellows
On National Teacher Day, meet the 2024-25 Kenan Fellows
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptxOn_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
On_Translating_a_Tamil_Poem_by_A_K_Ramanujan.pptx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17How to Create and Manage Wizard in Odoo 17
How to Create and Manage Wizard in Odoo 17
 
Micro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdfMicro-Scholarship, What it is, How can it help me.pdf
Micro-Scholarship, What it is, How can it help me.pdf
 
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
Jual Obat Aborsi Hongkong ( Asli No.1 ) 085657271886 Obat Penggugur Kandungan...
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Fostering Friendships - Enhancing Social Bonds in the Classroom
Fostering Friendships - Enhancing Social Bonds  in the ClassroomFostering Friendships - Enhancing Social Bonds  in the Classroom
Fostering Friendships - Enhancing Social Bonds in the Classroom
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 

ECSE 221 - Introduction to Computer Engineering - Tutorial 1 - Muhammad Ehtasham Ulhaque

  • 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