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

1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
QucHHunhnh
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
AnaAcapella
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Recently uploaded (20)

Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17  How to Extend Models Using Mixin ClassesMixin Classes in Odoo 17  How to Extend Models Using Mixin Classes
Mixin Classes in Odoo 17 How to Extend Models Using Mixin Classes
 
psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Dyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptxDyslexia AI Workshop for Slideshare.pptx
Dyslexia AI Workshop for Slideshare.pptx
 
Spatium Project Simulation student brief
Spatium Project Simulation student briefSpatium Project Simulation student brief
Spatium Project Simulation student brief
 
Understanding Accommodations and Modifications
Understanding  Accommodations and ModificationsUnderstanding  Accommodations and Modifications
Understanding Accommodations and Modifications
 
1029-Danh muc Sach Giao Khoa khoi 6.pdf
1029-Danh muc Sach Giao Khoa khoi  6.pdf1029-Danh muc Sach Giao Khoa khoi  6.pdf
1029-Danh muc Sach Giao Khoa khoi 6.pdf
 
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
 
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
 
Introduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The BasicsIntroduction to Nonprofit Accounting: The Basics
Introduction to Nonprofit Accounting: The Basics
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Sociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning ExhibitSociology 101 Demonstration of Learning Exhibit
Sociology 101 Demonstration of Learning Exhibit
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 
Asian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptxAsian American Pacific Islander Month DDSD 2024.pptx
Asian American Pacific Islander Month DDSD 2024.pptx
 
Spellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please PractiseSpellings Wk 3 English CAPS CARES Please Practise
Spellings Wk 3 English CAPS CARES Please Practise
 
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
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
How to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POSHow to Manage Global Discount in Odoo 17 POS
How to Manage Global Discount in Odoo 17 POS
 
PROCESS RECORDING FORMAT.docx
PROCESS      RECORDING        FORMAT.docxPROCESS      RECORDING        FORMAT.docx
PROCESS RECORDING FORMAT.docx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 

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