TYPES OF FUNCTION
Duration: 7 min
This video lesson is available to enrolled students.
Inside: a video lesson and guided study material.
Module outline
- Discrete Mathematics: Permutation, Combination and Probability / क्रमचय, संचय एवं प्रायिकता, Set Theory, Relations, Functions, Propositional and Predicate Logic, Graph Theory, Group Theory
- Digital Logic: Digital Systems & Boolean Basics, Boolean Expression, Boolean Minimization, Logic Gates & Hardware, Combinational Circuit, Sequential Circuits, Number System, Number Representation, Floating Point Rep
- Computer Organization and Architecture: Basics of COA, Programming the Basic Computer, Cache Memory Organization, Input Output Organisation, Instr Formats & Modes, Register Transfer and Microoperations, Control Unit Design, Pipelining, Multiprocessors
- Programming: Language Design, C Fundamentals, Control Flow, Functions, Arrays & Pointers, Storage Classes, Structures & Enums, DMA, Macros, Scoping & File Handling, OOPS with C++
- Data Structures: Introduction to DS, Array, Linked List, Stack, Queue, Tree, Graphs, Hashing
- Algorithms: Algorithm Analysis, Time Complexity Analysis, Sorting Algorithms, Greedy Algorithms, Dynamic Programming, Minimum Spanning Trees, Shortest Path Algos, Advanced Algorithms
- Theory of Computation: Grammar, Regular Language Properties, Moore & Mealy Machines, Turing Machines
- Compiler Design: Intro to Compilers, Lexical Analysis, Grammar & CFG, Syntax Analysis: Top-Down, Syntax Analysis: Bottom-Up, Semantic Analysis & SDT, Intermediate Code Gen, Code Optimization, Run Time Environment, Introduction to TOC, Deterministic FA (DFA), Non-Deterministic FA, Regular Expressions, Pushdown Automata & CFG, Complexity Theory
- Operating Systems: Introduction to OS, Process Management, CPU Scheduling, Process Synchronization, Threads & Process Creation, Deadlock, Memory Management, Virtual Memory, Disc Scheduling, File Management, Unix OS, Linux OS, Security
- Database Management Systems: Basics of DBMS, ER Diagram, Relational Model & Functional Dependencies, Keys & Integrity Constraints, Normalization (1NF - BCNF), Decomposition Properties & 4NF, File Organization & Indexing, Relational Algebra, SQL, Relational Calculus, Transaction Management, Concurrency Control, ORDBMS, NoSQL
- Computer Networks: Introduction to CN, Data Communication, DLL: Access Control, DLL: Flow Control, DLL: Error Control, DLL: Framing, Data Link Layer - Ethernet, Net Layer: IPv4 & Proto, Net Layer: IP Addressing, Net Layer:Routing Protocol, Transport Layer Services, TL: Congestion & UDP, Application Layer, Hardware basics, Network Security
AI summary & chapters
AI Summary
An AI-generated summary of this video lecture.
This lecture provides a foundational overview of functions in C programming. It begins by categorizing functions into library functions, such as printf and scanf, which are pre-written by compiler developers, and user-defined functions, which are created by the programmer. The instructor explains that library functions are stored on disk and available to all compilers. The lesson then transitions to the benefits of using functions, emphasizing code reuse and modularity. It concludes with a detailed explanation of passing values between functions, using code examples to demonstrate argument passing, return values, and the concept of pass-by-value where original variables remain unchanged.
Chapters
0:00 – 2:00 00:00-02:00
The instructor introduces the two basic types of functions: Library functions and User-defined functions. He lists examples for library functions like printf() and scanf(), and for user-defined functions like argentina() and brazil(). He explains that library functions are commonly required functions grouped together and stored in a library on the disk, written by people who write compilers. He notes that almost every compiler comes with a standard library and that the procedure for calling both types of functions is exactly the same. The on-screen text explicitly states, 'As the name suggests, library functions are nothing but commonly required functions grouped together and stored in what is called a Library.' He also mentions that this library is present on the disk and written for us by people who write compilers for us.
2:00 – 5:00 02:00-05:00
The lecture addresses the question of why separate functions are used instead of squeezing all logic into main(). The instructor gives two reasons. First, writing functions avoids rewriting the same code over and over. He uses the example of calculating the area of a triangle; if needed later, you jump to the function section rather than rewriting instructions. Second, using functions makes it easier to write programs and keep track of what they are doing. He explains that if operations are divided into separate activities placed in different functions, each can be written and checked more independently, making the program easier to design and understand. The slide text reads, 'Writing functions avoids rewriting the same code over and over.' He further explains that separating code into modular functions makes the program easier to design and understand.
5:00 – 7:13 05:00-07:13
The topic is passing values between functions. The instructor notes that previous functions weren't flexible and uses a mechanic analogy: telling a mechanic to change the engine oil. He presents a program where main receives values a, b, and c and calls calsum() to calculate the sum. He explains that values must be passed to calsum() and the result returned. He discusses two methods for declaring formal arguments: the K&R method and the ANSI method. He clarifies that passing values creates a 'photocopy,' so even if b is changed in fun(), the value of b in main() remains unchanged. The segment ends with a look at scope rules using a display function. The code snippet sum = calsum(a, b, c) is highlighted as the method of passing values. He also notes that there is no restriction on the number of return statements that may be present in a function.
The video systematically builds an understanding of functions, starting with their classification and availability, moving to their structural benefits for code organization, and finally detailing the technical mechanics of data transfer. It emphasizes that functions are not just about code reuse but also about modularity and control. The distinction between pass-by-value and pass-by-reference is implicitly introduced through the 'photocopy' explanation, ensuring students understand that called functions operate on copies of data, preserving the integrity of the calling program's variables. This progression from theory to practical implementation prepares students for writing modular C programs.

