Lec 02

Download as pdf or txt
Download as pdf or txt
You are on page 1of 19

Introduction to Programming,

Basic Structure of C Programs

ESC101: Fundamentals of Computing


Nisheeth
1
Announcements
 Please make sure you know your section number for ESC101
 Refer to the student list shared on the course website. Final list will be uploaded by Friday
evening.
 Regularly visit the course website. Slides for each lecture (and other material) will
be posted there. Slides in PPTX (Power-point) and PDF

 Please make sure you can access Piazza (and can get email notifications of the
messages posted on Piazza in real-time or digest mode)

 Prutor availability
 During lab hours (1400-1500, M/Tu/Wed/Thu), only in NCL labs
 Outside lab hours, hostels, CC, NCL etc (NCL open till 2AM)
 Correct Prutor link: https://esc101.cse.iitk.ac.in/ (NOT https://prutor.cse.iitk.ac.in/)
2
Announcements
 When logging in on the lab machines (Linux/Windows), use your CC id
(without @iitk.ac.in) and your CC password

 When logging in on the Prutor website , use your CC id (with @iitk.ac.in)


and your CC password

 Unable to access the course website and Prutor?


 Are you using a data plan on your smart phone?
 Our course website, Prutor are internal, not accessible outside IITK
 Solution 1: use IITK computers (CC, NCL, hostel)
 Solution 2: install a VPN app on your smart phone
https://www.iitk.ac.in/ccnew/index.php/13-network/99-how-to-use-ssl-vpn
 Piazza is accessible from all places
3
Announcements
 Hindi lecture videos of many topics in ESC101 are available online
 https://onlinecourses.iitk.ac.in/esc101_hindi/ (created by Prof. Rajat
Mittal and his team, link also under References on course website)

 We will soon hold some special sessions for students who do not feel very
comfortable with English (will discuss what is being covered in lectures)
 Will circulate a form to ask if you need it

 We will soon hold a special lab session for students who are not familiar
with operating computers
 Will circulate a form to ask if you need it
4
Programming: Some Benefits
 Applications in Engineering (civil, chemical), Sciences, Economics, AI
https://www.youtube.com/watch?v=nKIu9yen5nc

 Even artists, comedians need to code 


https://www.youtube.com/watch?v=EFwa5Owp0-k

 Be prepared for the future – job markets changing rapidly

 People who can code often deal with day-to-day problems more efficiently

5
How to Communicate with Computers?
 We need a language to communicate with the computer hardware

 The language should be one that the computer’s hardware understands

Picture courtesy: www.professionaladviser.com/ 6


How to Communicate with Computers?
 One way is by using the machine language that the hardware understands

 Every type of computer hardware has a specific machine language

 However, using machine language is tedious/unnatural for humans

 Also need to re-write machine code if we want to run the code on another
computer that has a different type of hardware – cumbersome 7
Hello World (in assembly language)

Intel x86, DOS

Intel x86, Linux

8
Computers and Programming
 A better alternative would be to write our programs in a language that is

 Easy for us to write/understand

 Easy to port it to different types of computer hardware without re-writing


the code

 High-level programming languages like C make it possible

 How: Write the code in a high-level language and translate it into machine
language using another software called “compiler”
9
Computers and Programming
 A better alternative would be to write our programs in a language that is

 Easy for us to write/understand

 Easy to port it to different types of computer hardware without re-writing


the code

 High-level programming languages like C make it possible

Program in Compiler Equivalent Machine Language


C language program on target hardware
for C
10
Low-level vs High-level Languages

High-level
(example: C) Low-level
(example: Assembly)
 Low-level: Form is closer to what the machine’s hardware understands
 Examples: Machine Language, Assembly Language

 High-level: Form is closer to what humans understand


 Examples: C, C++, Python, etc
11
Hello World

Compiled languages

C C++

Interpreted languages
python JavaScript

Runtime languages

Java 12
Programming Cycle for Compiled Languages
(The typical cycle)
YES
Write/Edit Compilation
Compile Succeeded ? Run
Code
NO

NO Got
Expected YES
Output? (more inputs?)

YES
Done
Note: Some high-level languages are not compiled but use an “interpreter”
to communicate with the hardware (Example: Python, MATLAB, etc) 13
The C Programming Language
 A high-level programming language

 Originally developed by Dennis Ritchie (1972) to design the UNIX


operating system and applications running on UNIX

 Widely used. Many operating systems, and even parts of many other
programming languages such as Python were developed using C

 You are going to learn C language in this course


 Be patient at the beginning
 Some things may seem unfamiliar, strange for few days
 Will get used to these very quickly
 Best way to learn a new language – speak it and practice! (on Prutor and other places) 14
A Simple C Program

#include<stdio.h>
int main(){
printf(“Welcome to ESC101”);
return 0;
}
The program prints “Welcome to ESC101” (without the quotes)
15
Structure of A Simple C Program
Every C program’s entry point
(program’s execution starts Tells C compiler to include the standard
here) is the main function input/output library stdio.h (collection of
with return type integer functions such as printf, scanf, etc)

#include<stdio.h> main function


must open with
int main(){ left curly brace {
printf function prints a user printf(“Welcome to ESC101”);
specified output
return 0;
main function Every statement in a C program
must close with
} The main function must return must end with semi-colon ;
right curly brace } an integer (return 0 means successful
execution of program)

printf(“Welcome to ESC101”) and return 0 are ‘statements’ in the above


code. Each C statement must end with a semi-colon ; 16
Another Simple C Program
Spaces are okay at some places 1 2
# include <stdio.h> a b
int main () { Each variable’s declaration creates a “box” big
enough to store it at a location in computer’s 3
int a = 1; main memory (RAM)
int b = 2;
c
Assigning a value to the variable
int c; writes that value in the box
= and + are “operators”
c = a + b;
printf(“Result is %d”, c); = is assignment operator

return 0; + is addition operator


} a+b is an “expression”
The program prints the message “Result is 3” 17
Multiple Ways of Writing Code: Same Effect
# include <stdio.h>

int main () {
Explore, practice. It
# include <stdio.h> int main () {
int a; # include <stdio.h>
Declare all then int main () {
int a = 1;
int b = 2;will take only a few int b;
int c; assign values int a = 1;
int c; a = 1; int b = 2; Shortcut
c = a + b;days to internalize.
printf(“Result is %d”, c);
b = 2; int c = a + b;
printf(“Result is %d”, c);
c = a + b;
return 0; return 0;
} return 0; How will I
printf(“Result is %d”, c);
}
}
remember
# include <stdio.h>
all this?
int main () { Shortcut # include <stdio.h>
int a,b,c; int main () { Shortcut
a = 1; int a=1,b=2,c;
b = 2; c = a + b;
c = a + b; printf(“Result is %d”, c);
printf(“Result is %d”, c); return 0;
return 0; }
}

And other possible ways too… 18


The ‘printf ’ Function
 A function used for printing the outputs of the C program

 Prints the outputs in a format specified by us

 We have already seen some simple examples of usage of printf


printf(“Welcome to ESC101”);
%d means that we want to print the value
of an integer variable (named c here)

printf(“Result is %d”, c);


More on printf in the next class…
19

You might also like