0% found this document useful (0 votes)
35 views19 pages

Introduction To Programming, Basic Structure of C Programs: ESC101: Fundamentals of Computing Nisheeth

This document provides an introduction to programming and the basic structure of C programs. It discusses how computers understand machine language and how high-level languages like C allow programs to be written in a way that is easier for humans. It explains that C programs are compiled from human-readable source code into machine-readable object code. The document then presents a simple "Hello World" example C program and describes its basic structure, including main functions, header files, statements, variables, and operators.

Uploaded by

Shorya Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
35 views19 pages

Introduction To Programming, Basic Structure of C Programs: ESC101: Fundamentals of Computing Nisheeth

This document provides an introduction to programming and the basic structure of C programs. It discusses how computers understand machine language and how high-level languages like C allow programs to be written in a way that is easier for humans. It explains that C programs are compiled from human-readable source code into machine-readable object code. The document then presents a simple "Hello World" example C program and describes its basic structure, including main functions, header files, statements, variables, and operators.

Uploaded by

Shorya Kumar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 19

Introduction to

Programming,
Basic Structure of C
ESC101: Fundamentals of Computing
Programs
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 Compiler Equivalent Machine Language
in for C program on target hardware
C
10
languag
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
Some high-level languages are not compiled but use an “interp
mmunicate 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
specified output
printf(“Welcome to ESC101”);
return 0;
main function
must close with } The main function must return
Every statement in a C program
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 abo


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;
int b = 2;
main memory (RAM)
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 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>

will take only a few Declare all then


int a = 1; int b; int main () {
int b = 2; int c; assign values int a = 1;
int b = 2; Shortcut
days to internalize.
int c; a = 1;
c = a + b; b = 2; int c = a + b;
printf(“Result is %d”, c); c = a + b; printf(“Result is %d”, c);
return 0;
}
return 0;
return 0; How will I
printf(“Result is %d”, c);
}
}
remember
# include <stdio.h>
all this?
int main () { # include <stdio.h>
Shortcut int main () {
int a,b,c; 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