SlideShare una empresa de Scribd logo
1 de 44
Programming in C
Objectives


                In this session, you will learn to:
                   Implement modular approach in C programs
                   Use library functions for string manipulation
                   Work with data storage types




     Ver. 1.0                                                      Slide 1 of 44
Programming in C
Implementing Modular Approach in C Programs


                •   Functions are the building blocks of C.
                •   Every C program must consist of at least one function,
                    main().
                •   The main() function is the entry point of a C program.




     Ver. 1.0                                                           Slide 2 of 44
Programming in C
Advantages of Functions


                Functions:
                   Allow reusability of code and structuring of programs.
                   Provide programmers a convenient way of designing
                   programs.




     Ver. 1.0                                                               Slide 3 of 44
Programming in C
Parameters of Functions


                A parameter:
                   Is the data that the function must receive when called from
                   another function.
                   May or may not be present in a function.
                   Of a user-defined function is declared outside the {} of that
                   function.




     Ver. 1.0                                                               Slide 4 of 44
Programming in C
Practice: 5.1


                •   From the following program, identify the functions invoked
                    from main(), and state which functions have parameters.
                    Also state the parameters.


                                        Microsoft Office
                                     Word 97 - 2003 Document




     Ver. 1.0                                                           Slide 5 of 44
Programming in C
Practice: 5.1 (Contd.)


                Solution:
                 – The standard functions used in this program within main() are
                   as follows:
                   scanf() – parameters are format of input, and pointers to the
                   variable(s) in which the input must be stored
                   fflush() – parameter is stdin

                   The user-defined functions are:
                   output() – no parameters
                   calc() – one parameter, g, an int type data




     Ver. 1.0                                                           Slide 6 of 44
Programming in C
Invoking Functions


                Functions that have parameters are invoked in one of the
                following ways:
                   Call by value: In call by value, the called function cannot refer
                   to the variables of the caller function directly, but creates its
                   own copy of the values in different variables.
                   Call by reference: In call by reference, the called function
                   should be able to refer to the variables of the caller function
                   directly, and does not create its own copy of the values in
                   different variables. It is possible only if the addresses of the
                   variables are passed as parameters to a function.




     Ver. 1.0                                                                Slide 7 of 44
Programming in C
Passing Arrays to Functions


                Arrays are inherently passed to functions through call by
                reference method.
                An array can be passed to a function in the following way:
                 Function name (array name);




     Ver. 1.0                                                        Slide 8 of 44
Programming in C
Practice: 5.2


                •  If the variable avar is passed to a function by a call by
                   reference, can the value of the variable avar be modified in
                   the called function? Give reasons for your answer.
                • State whether True or False:
                   When an array is passed to a function, the array elements
                   are copied into the parameter of the function.
                3. Consider the program code given in the following file.


                                       Microsoft Office
                                    Word 97 - 2003 Document




     Ver. 1.0                                                           Slide 9 of 44
Programming in C
Practice: 5.2 (Contd.)


                Based on the code, answer the following questions:
                 a. The function (max() / min()) is invoked by a call by value.
                 b. The function (max() / min()) is invoked by a call by reference.
                 c. After the function max() is executed, where does the control go to:
                    i. The min() function.
                    ii. The first line of the main() function.
                    iii. The first line of the main() following the line on which max() was invoked.
                 d. After execution of the function min(), program execution:
                    i. Stops without returning to main().
                    ii. Goes back to the main() function.
                 – If the values of i and j were to be printed after the function max() and
                   again after the function min(), what values would be displayed?




     Ver. 1.0                                                                               Slide 10 of 44
Programming in C
Practice: 5.2 (Contd.)


                •   Write a program that calls a function called power(m,n),
                    which displays the nth power of the integer m (m and n are
                    parameters). The function must be invoked by a call by
                    reference.




     Ver. 1.0                                                           Slide 11 of 44
Programming in C
Practice: 5.2 (Contd.)


                Solution:
                 – Yes, because the addresses of the variables are passed in by
                   using call by reference, the memory locations of the variables
                   are known to the function. Using pointers to the variables, their
                   values can be modified.
                 – False. Values of variables are copied into the parameters only
                   in the case of a call by value.
                 – a. max()
                   b. min()
                   c. iii
                   d. ii
                   e. After max() is executed, the values of i and j printed out
                   would be the same as those entered during execution. After
                   min() is executed, the value of i would still be the same, but
                   j would increase by 5 (since b is a pointer to the variable j).

     Ver. 1.0                                                               Slide 12 of 44
Programming in C
Practice: 5.2 (Contd.)


                1.main() {
                   int x, y;
                   printf(“Enter Number: ”);
                   scanf(“%d”, &x);
                   fflush(stdin);
                   printf(“Enter power raise to : “);
                   scanf(“%d”, &y);
                   fflush(stdin);
                   power(&x, &y); }
                   power(m,n)
                   int *m, *n; /* power is pointed to by n,
                      value is pointed to by m */
                   { int i=1,val=1;
                      while(i++<= *n)
                      val = val ** m;
                      printf(“%d the power of %d is %dn”, *n,*m,
                      val);}

     Ver. 1.0                                             Slide 13 of 44
Programming in C
Returning Values from a Function


                •   A function can return a value to the caller function.
                •   The return statement is used to send back a value to the
                    caller function.
                •   The return statement also transfers control back to calling
                    function.
                •   The default return value is int type.
                •   The return statement can return only one value.
                •   The syntax for the return statement is:
                       return[expression]
                    A function can also return an array. This could be done by:
                       return [array name]




     Ver. 1.0                                                            Slide 14 of 44
Programming in C
Practice: 5.3


                1. Point out the error(s), if any, in the functions given in the
                   following file:

                                        Microsoft Word
                                           Document




                5. The following program should calculate the square of any
                   float value, using a function called square(). The float value
                   is an input to the program. The program is incomplete. Put
                   in the appropriate statements in the program given in the
                   following file:

                                        Microsoft Word
                                           Document




     Ver. 1.0                                                               Slide 15 of 44
Programming in C
Practice: 5.3 (Contd.)


                • The function, makeint(), was coded to convert any
                  number entered into a char array to integer type. The
                  function takes the string as parameter and returns the
                  value, as given in the following file:


                                      Microsoft Word
                                         Document




     Ver. 1.0                                                         Slide 16 of 44
Programming in C
Practice: 5.3 (Contd.)


                Solution:



                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 17 of 44
Programming in C
Command-Line Arguments


                   Command-line arguments:
                   – Are the parameters that the main() function can receive from
                     the command line.
                   – Are passed as information from the OS prompt to a program.
               •   The main() function has 2 arguments, argc and argv.
                   The format of the main() function with parameters is as
                   follows:
                       main(argc, argv)
                       int argc;
                       char *argv[];
                       {
                       :
                       }
                       Here, argc is integer and argv is a character array of
                       unlimited size (hence [ ] in the declaration).

    Ver. 1.0                                                               Slide 18 of 44
Programming in C
Practice: 5.4


                1. Given that a C program called temp is executed by the
                   following command:
                    temp start 6
                   match the following:
                    a.   value of argc 1. points to array "6"
                    b.   argv [0]      2. points to arrm/ "start"
                    c.   argv [1]      3. 3
                    d.   argv[2]       4. points to array "temp"
                2. Modify the program upper so that it first checks the number
                   of arguments entered on the command line. The program
                   should display an error message if no arguments have been
                   entered and also allow conversion of as many strings to
                   upper-case as have been specified as arguments on the
                   command line.

     Ver. 1.0                                                         Slide 19 of 44
Programming in C
Practice: 5.4 (Contd.)


                3. Consider the following program to calculate the sum of 2
                   integers specified on the command line:
                    main (argc, argv)
                    int argc;
                    char *argv [ ];{
                    sum (argv [1], argv [2]);
                    }
                    sum (num1, num2)
                    int numl, num2;{
                    return numl + num2;
                    }
                    The program has some logical errors. Point out the errors and
                    correct the code.



     Ver. 1.0                                                               Slide 20 of 44
Programming in C
Practice: 5.4 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 21 of 44
Programming in C
Using Library Functions for String Manipulation


                Library functions:
                   Are also known as built-in functions.
                   Can be used by including the concerned header files.




     Ver. 1.0                                                             Slide 22 of 44
Programming in C
Standard String-Handling Functions


                Some of the standard string-handling functions are:
                 – strcmp(): Compares 2 strings (its parameters) character by
                   character (ASCII comparison).
                 – strcpy(): Copies the second string to the first string named
                   in the strcpy() parameters.
                 – strcat(): Appends the second string passed at the end of
                   the first string passed to it .
                 – strlen(): Returns the number of characters in the string
                   passed to it.




     Ver. 1.0                                                           Slide 23 of 44
Programming in C
Practice: 5.5


                1. What will the following function call return?
                    x = strcmp(“Cada”, “CADA”);
                    What should the declaration of x be?
                4. Assume that array contains the string 846*.
                    What will array contain when the following statement is executed?
                    strcat(array,”>”);
                7. State whether True or False:
                    The following statement returns a value of 4 to x.
                    x = strlen ("abc");




     Ver. 1.0                                                               Slide 24 of 44
Programming in C
Practice: 5.5 (Contd.)


                Solution:
                 1. Value returned - 32
                    Declaration - int x;
                 3. 846*>
                 4. False




     Ver. 1.0                              Slide 25 of 44
Programming in C
String to Numeric Conversion Functions


                Conversion functions:
                   Are available as a part of the standard library.
                   Are used to convert one data type into another.
                The following functions are used to convert a string to a
                numeric value:
                 – atoi(): Returns the int type value of a string passed to it
                   and the value 0 in the case the string does not begin with a
                   digit.
                 – atof(): Returns the double type value of a string passed to it
                   and the value 0 in the case the string does not begin with a
                   digit or a decimal point.




     Ver. 1.0                                                            Slide 26 of 44
Programming in C
Practice: 5.6


                •   What value will the variable val contain in each of the
                    following situations?
                     a. val = atoi ("A345"); /* val is int type */
                     b. val = atof ("345A"); /* val is double type */




     Ver. 1.0                                                            Slide 27 of 44
Programming in C
Practice: 5.6 (Contd.)


                Solution:
                 1. a. 0
                    b. 345.000000




     Ver. 1.0                       Slide 28 of 44
Programming in C
Functions for Formatting Data in Memory


                The formatting functions are available as a part of the
                standard library.
                The following functions are used to format data in memory:
                   sprintf():
                      Writes to a variable in the memory and stores the data in different
                      variables specified.
                      Are used for transferring data between variables in a specific
                      format.
                      Has the following syntax:
                      sprintf(string, format-specification, data, ….);
                   sscanf():
                       Performs formatted input from a string.
                       Has the following syntax:
                       sscanf(string, format-specification, data, ….);



     Ver. 1.0                                                                   Slide 29 of 44
Programming in C
Practice: 5.7


                1. What data is assigned to the variable string by each of the
                   following?
                    a. sprintf(string,"%04d%3.2f%2s",21,4.576, "Hi“);
                    b. sprintf (string, "%10s", "ABC");
                    c. sscanf ("0987APZ", "%4d%s", &num, string);
                2. What is the error, if any, in the instructions given below
                   against each purpose? Give the correct instruction in case
                   of an error.

                                           Purpose                                 Instruction

                                Accept a name from keyboard                     printf(“%s”, name);

                               Format the contents of variables         printf (string,"%d%f, i_num,f_num)
                            i_num(int) and f_num(float), and store
                           them into a character array called string.




     Ver. 1.0                                                                                         Slide 30 of 44
Programming in C
Practice: 5.7 (Contd.)


                Solution:




                            Microsoft Word
                               Document




     Ver. 1.0                                Slide 31 of 44
Programming in C
Working with Data Storage Types


                C language provides the following data storage types:
                – auto: Variables of this type retain their value only as long as
                  the function is in the stage of execution.
                – static: Variables of this type retain its value even after the
                  function to which it belongs has been executed.
                – extern: Variables of this type are declared at the start of the
                  program and can be accessed from any function.




     Ver. 1.0                                                             Slide 32 of 44
Programming in C
Practice: 5.8


                1. Given the following declarations:
                    float area;
                    static float val;
                    auto char number;
                    State which variable(s) will be:
                    a. Created each tune the function is invoked.
                    b. Created only once.
                2. A numeric array has to store 4 values - 2.5, 6,3, 7.0 and 8.0.
                   This array is to be declared and used in a function called
                   compute(). Which of the following is/are correct
                   declarations of this array?
                    a.   static int values[4] = {2.5,6.3,7.0,8.0};
                    b.   auto float values[4] = {2.5,6.3,7.0,8.0 };
                    c.   float values [4]= {2.5,6.3,7.0,8.0};
                    d.   static float values [4] = {2.5,6.3,7.0,8.0};
     Ver. 1.0                                                            Slide 33 of 44
Programming in C
Practice: 5.8 (Contd.)


                Solution:
                 1. a. area, number
                    b. val
                 3. (a) Is invalid because the array should be float or double type.
                    (b) Is invalid because it is declared as auto type.
                    (c) Is invalid because it is declared as auto type.
                    (d) Is correct.
                 .




     Ver. 1.0                                                               Slide 34 of 44
Programming in C
Practice: 5.9


                •   If the variable val is declared as global in the program B,
                    just illustrated, how would program A be modified? Give the
                    appropriate declarations required in both programs.
                •   Consider the following 2 program files:
                     Program A
                     float x;
                     calc() {
                     int i;
                     : } printout()
                     { static char z;
                     : }
                     Program B
                     char numarray[5];
                     main() {
                     char c ;
                     : }
     Ver. 1.0                                                           Slide 35 of 44
Programming in C
Practice: 5.9 (Contd.)


                Based on this code, answer the following:
                 a. The variable z can be accessed in the function(s)
                    ____________________.
                 b. The variable(s) that can be accessed from functions of both program
                    files is/are    ___________.
                 c. Slate whether True or False:
                    The variable i can be used in the function printout().
                 d. Memory for variable z is reserved each time the function printout()
                    is invoked. State whether true or false.
                 e. If the function printout() has to access the variable x, does x have
                    to be declared within the function printout()?
                    If so, give the declaration.
                 f. The auto variable(s) in these programs is/are _________________.




     Ver. 1.0                                                                  Slide 36 of 44
Programming in C
Practice: 5.9 (Contd.)


                Solution:
                 1. In program B, val would be declared as follows:
                     int val;
                     calc(){
                     :}
                     In program A, the declaration would be as follows:
                     main()
                     { extern int val;
                         :}
                 – a. printout() only (Since it is declared within the function
                      printout() and hence is not global)
                      x and numarray (if proper extern statements are coded).
                   b. False (Since it is declared within the function calc(), and
                      hence it is not global)



     Ver. 1.0                                                             Slide 37 of 44
Programming in C
Practice: 5.9 (Contd.)


                c. False (Since z is a static variable, it is created only
                   once – the function printout() is invoked.)
                d. No (Since x is declared as global in program A, and
                   printout() is defined in the same program file. However,
                   declaring it as extern while within printout() is wrong.)
                e. The variable i defined in calc() and the variable c defined
                   in main().




     Ver. 1.0                                                         Slide 38 of 44
Programming in C
Practice: 5.10


                •   The following file contains a C program called remdigit.c
                    and a list of errors in the program indicated by the compiler.
                    Go through the error list and correct the program. Since the
                    C compiler does not always give very meaningful error
                    messages, go through the program given in the following
                    file carefully.

                                         Microsoft Office
                                      Word 97 - 2003 Document




     Ver. 1.0                                                             Slide 39 of 44
Programming in C
Practice: 5.10 (Contd.)


                •   Write a program to display all the positions at which a
                    character occurs in a string. Both the character to be
                    located and the string to be searched should be passed to a
                    function called nextpos (findchar, searchstr).
                    Each time the function locates the diameter, it should pass
                    back the position.
                    After searching the entire string, the function should return
                    the value -1.




     Ver. 1.0                                                            Slide 40 of 44
Programming in C
Practice: 5.10 (Contd.)


                Solution:
                   Work out your answers. A discussion on these follows in the
                   Classroom.




     Ver. 1.0                                                           Slide 41 of 44
Programming in C
Summary


               In this session, you learned that:
                   Functions provide advantages of reusability and structuring of
                   programs.
                   A parameter of a function is the data that the function must
                   receive when called or invoked from another function.
                   Functions that have parameters are invoked in one of the
                   following two ways:
                    • Call by value
                    • Call by reference
                – Call by value means that the called function creates its own
                  copy of the values in different variables.
                – Call by reference means that the called function should be able
                  to refer to the variables of the caller function directly, and does
                  not create its own copy of the values in different variables.



    Ver. 1.0                                                                Slide 42 of 44
Programming in C
Summary (Contd.)


               – Arrays are passed to functions by the call by reference
                 method.
               – Functions can return values by using the return statement.
               – The main() function can have parameters, argc and argv.
                 argc is integer type while argv is a string.
               – The information that is passed to a program from the OS
                 prompt is known as command-line arguments.
               – Some of the standard string-handling functions are:
                   • strcmp(): Compares two strings.
                   • strcpy(): Copies the second string to the first string.
                   • strcat(): Appends the second string passed at the end of the
                     first string passed as parameters.
                   • strlen(): Returns the number of characters in the string passed
                     as a parameter.




    Ver. 1.0                                                               Slide 43 of 44
Programming in C
Summary (Contd.)


                   • atoi(): Returns the int type value of a string passed to it.
                   • aof(): Returns the double type value of a string passed to it.
               – The following functions are used to format data in memory:
                      sprintf()
                      sscanf()
               – C language provides the following data storage types:
                   • auto: Variables of this type retain their value only as long as the
                     function is in the stage of execution.
                   • static: Variables of this type retain its value even after the
                     function to which it belongs has been executed.
                   • extern: Variables of this type are declared at the start of the
                     program and can be accessed from any function.




    Ver. 1.0                                                                   Slide 44 of 44

Más contenido relacionado

La actualidad más candente

ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009 ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009 William Piers
 
Recursive Function
Recursive FunctionRecursive Function
Recursive FunctionHarsh Pathak
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppteShikshak
 
Chapter 13.1.11
Chapter 13.1.11Chapter 13.1.11
Chapter 13.1.11patcha535
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented TechnologiesEsteban Abait
 
03 iec t1_s1_oo_ps_session_04
03 iec t1_s1_oo_ps_session_0403 iec t1_s1_oo_ps_session_04
03 iec t1_s1_oo_ps_session_04Niit Care
 
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Shinpei Hayashi
 
structured programming
structured programmingstructured programming
structured programmingAhmad54321
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07Niit Care
 
C language (Collected By Dushmanta)
C language  (Collected By Dushmanta)C language  (Collected By Dushmanta)
C language (Collected By Dushmanta)Dushmanta Nath
 
Aae oop xp_07
Aae oop xp_07Aae oop xp_07
Aae oop xp_07Niit Care
 

La actualidad más candente (19)

Function notes
Function notesFunction notes
Function notes
 
ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009 ATL tutorial - EclipseCon 2009
ATL tutorial - EclipseCon 2009
 
Recursive Function
Recursive FunctionRecursive Function
Recursive Function
 
Lecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.pptLecture21 categoriesof userdefinedfunctions.ppt
Lecture21 categoriesof userdefinedfunctions.ppt
 
Subprogramms
SubprogrammsSubprogramms
Subprogramms
 
Chapter 13.1.11
Chapter 13.1.11Chapter 13.1.11
Chapter 13.1.11
 
Aspect-Oriented Technologies
Aspect-Oriented TechnologiesAspect-Oriented Technologies
Aspect-Oriented Technologies
 
03 iec t1_s1_oo_ps_session_04
03 iec t1_s1_oo_ps_session_0403 iec t1_s1_oo_ps_session_04
03 iec t1_s1_oo_ps_session_04
 
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
Recording Finer-Grained Software Evolution with IDE: An Annotation-Based Appr...
 
Plc part 3
Plc  part 3Plc  part 3
Plc part 3
 
structured programming
structured programmingstructured programming
structured programming
 
05 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_0705 iec t1_s1_oo_ps_session_07
05 iec t1_s1_oo_ps_session_07
 
Java Programming Assignment
Java Programming AssignmentJava Programming Assignment
Java Programming Assignment
 
C Programming Unit-1
C Programming Unit-1C Programming Unit-1
C Programming Unit-1
 
C language (Collected By Dushmanta)
C language  (Collected By Dushmanta)C language  (Collected By Dushmanta)
C language (Collected By Dushmanta)
 
Krml203
Krml203Krml203
Krml203
 
Lecture6
Lecture6Lecture6
Lecture6
 
Savitch Ch 04
Savitch Ch 04Savitch Ch 04
Savitch Ch 04
 
Aae oop xp_07
Aae oop xp_07Aae oop xp_07
Aae oop xp_07
 

Similar a C programming session 08

Presentation on Function in C Programming
Presentation on Function in C ProgrammingPresentation on Function in C Programming
Presentation on Function in C ProgrammingShuvongkor Barman
 
Functions part1
Functions part1Functions part1
Functions part1yndaravind
 
Fnctions part2
Fnctions part2Fnctions part2
Fnctions part2yndaravind
 
Programming Fundamentals Functions in C and types
Programming Fundamentals  Functions in C  and typesProgramming Fundamentals  Functions in C  and types
Programming Fundamentals Functions in C and typesimtiazalijoono
 
USER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfUSER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfBoomBoomers
 
Functions in c language1
Functions in c language1Functions in c language1
Functions in c language1sirikeshava
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfTeshaleSiyum
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdfTeshaleSiyum
 
Lecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxLecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxKhurramKhan173
 
c.p function
c.p functionc.p function
c.p functiongiri5624
 
Functions in c
Functions in cFunctions in c
Functions in creshmy12
 
Pointers and call by value, reference, address in C
Pointers and call by value, reference, address in CPointers and call by value, reference, address in C
Pointers and call by value, reference, address in CSyed Mustafa
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxSangeetaBorde3
 

Similar a C programming session 08 (20)

Presentation on Function in C Programming
Presentation on Function in C ProgrammingPresentation on Function in C Programming
Presentation on Function in C Programming
 
Functions part1
Functions part1Functions part1
Functions part1
 
Fnctions part2
Fnctions part2Fnctions part2
Fnctions part2
 
Programming Fundamentals Functions in C and types
Programming Fundamentals  Functions in C  and typesProgramming Fundamentals  Functions in C  and types
Programming Fundamentals Functions in C and types
 
USER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdfUSER DEFINED FUNCTIONS IN C.pdf
USER DEFINED FUNCTIONS IN C.pdf
 
Functionincprogram
FunctionincprogramFunctionincprogram
Functionincprogram
 
User defined functions
User defined functionsUser defined functions
User defined functions
 
Functions in c language1
Functions in c language1Functions in c language1
Functions in c language1
 
Function in c
Function in cFunction in c
Function in c
 
[ITP - Lecture 12] Functions in C/C++
[ITP - Lecture 12] Functions in C/C++[ITP - Lecture 12] Functions in C/C++
[ITP - Lecture 12] Functions in C/C++
 
Chapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdfChapter_1.__Functions_in_C++[1].pdf
Chapter_1.__Functions_in_C++[1].pdf
 
Chapter 1. Functions in C++.pdf
Chapter 1.  Functions in C++.pdfChapter 1.  Functions in C++.pdf
Chapter 1. Functions in C++.pdf
 
Functions
Functions Functions
Functions
 
arrays.ppt
arrays.pptarrays.ppt
arrays.ppt
 
Lecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptxLecture 1_Functions in C.pptx
Lecture 1_Functions in C.pptx
 
Functions
Functions Functions
Functions
 
c.p function
c.p functionc.p function
c.p function
 
Functions in c
Functions in cFunctions in c
Functions in c
 
Pointers and call by value, reference, address in C
Pointers and call by value, reference, address in CPointers and call by value, reference, address in C
Pointers and call by value, reference, address in C
 
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptxCH.4FUNCTIONS IN C_FYBSC(CS).pptx
CH.4FUNCTIONS IN C_FYBSC(CS).pptx
 

Más de AjayBahoriya

C programming session 16
C programming session 16C programming session 16
C programming session 16AjayBahoriya
 
C programming session 14
C programming session 14C programming session 14
C programming session 14AjayBahoriya
 
C programming session 11
C programming session 11C programming session 11
C programming session 11AjayBahoriya
 
C programming session 10
C programming session 10C programming session 10
C programming session 10AjayBahoriya
 
C programming session 07
C programming session 07C programming session 07
C programming session 07AjayBahoriya
 
C programming session 05
C programming session 05C programming session 05
C programming session 05AjayBahoriya
 
C programming session 04
C programming session 04C programming session 04
C programming session 04AjayBahoriya
 
C programming session 01
C programming session 01C programming session 01
C programming session 01AjayBahoriya
 
C programming session 13
C programming session 13C programming session 13
C programming session 13AjayBahoriya
 

Más de AjayBahoriya (9)

C programming session 16
C programming session 16C programming session 16
C programming session 16
 
C programming session 14
C programming session 14C programming session 14
C programming session 14
 
C programming session 11
C programming session 11C programming session 11
C programming session 11
 
C programming session 10
C programming session 10C programming session 10
C programming session 10
 
C programming session 07
C programming session 07C programming session 07
C programming session 07
 
C programming session 05
C programming session 05C programming session 05
C programming session 05
 
C programming session 04
C programming session 04C programming session 04
C programming session 04
 
C programming session 01
C programming session 01C programming session 01
C programming session 01
 
C programming session 13
C programming session 13C programming session 13
C programming session 13
 

Último

Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfMohonDas
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17Celine George
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfTechSoup
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?TechSoup
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfMohonDas
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17Celine George
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxAditiChauhan701637
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxDr. Santhosh Kumar. N
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational PhilosophyShuvankar Madhu
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...raviapr7
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphNetziValdelomar1
 
General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and stepobaje godwin sunday
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17Celine George
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17Celine George
 
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdf
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdfNOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdf
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdfSumit Tiwari
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesMohammad Hassany
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptxraviapr7
 
Prescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxPrescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxraviapr7
 

Último (20)

Diploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdfDiploma in Nursing Admission Test Question Solution 2023.pdf
Diploma in Nursing Admission Test Question Solution 2023.pdf
 
How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17How to Make a Field read-only in Odoo 17
How to Make a Field read-only in Odoo 17
 
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdfMaximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
Maximizing Impact_ Nonprofit Website Planning, Budgeting, and Design.pdf
 
What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?What is the Future of QuickBooks DeskTop?
What is the Future of QuickBooks DeskTop?
 
Finals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quizFinals of Kant get Marx 2.0 : a general politics quiz
Finals of Kant get Marx 2.0 : a general politics quiz
 
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdfPersonal Resilience in Project Management 2 - TV Edit 1a.pdf
Personal Resilience in Project Management 2 - TV Edit 1a.pdf
 
HED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdfHED Office Sohayok Exam Question Solution 2023.pdf
HED Office Sohayok Exam Question Solution 2023.pdf
 
How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17How to Use api.constrains ( ) in Odoo 17
How to Use api.constrains ( ) in Odoo 17
 
In - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptxIn - Vivo and In - Vitro Correlation.pptx
In - Vivo and In - Vitro Correlation.pptx
 
M-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptxM-2- General Reactions of amino acids.pptx
M-2- General Reactions of amino acids.pptx
 
Philosophy of Education and Educational Philosophy
Philosophy of Education  and Educational PhilosophyPhilosophy of Education  and Educational Philosophy
Philosophy of Education and Educational Philosophy
 
Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...Patient Counselling. Definition of patient counseling; steps involved in pati...
Patient Counselling. Definition of patient counseling; steps involved in pati...
 
Presentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a ParagraphPresentation on the Basics of Writing. Writing a Paragraph
Presentation on the Basics of Writing. Writing a Paragraph
 
General views of Histopathology and step
General views of Histopathology and stepGeneral views of Histopathology and step
General views of Histopathology and step
 
How to Solve Singleton Error in the Odoo 17
How to Solve Singleton Error in the  Odoo 17How to Solve Singleton Error in the  Odoo 17
How to Solve Singleton Error in the Odoo 17
 
How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17How to Show Error_Warning Messages in Odoo 17
How to Show Error_Warning Messages in Odoo 17
 
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdf
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdfNOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdf
NOTES OF DRUGS ACTING ON NERVOUS SYSTEM .pdf
 
Human-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming ClassesHuman-AI Co-Creation of Worked Examples for Programming Classes
Human-AI Co-Creation of Worked Examples for Programming Classes
 
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptxClinical Pharmacy  Introduction to Clinical Pharmacy, Concept of clinical pptx
Clinical Pharmacy Introduction to Clinical Pharmacy, Concept of clinical pptx
 
Prescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptxPrescribed medication order and communication skills.pptx
Prescribed medication order and communication skills.pptx
 

C programming session 08

  • 1. Programming in C Objectives In this session, you will learn to: Implement modular approach in C programs Use library functions for string manipulation Work with data storage types Ver. 1.0 Slide 1 of 44
  • 2. Programming in C Implementing Modular Approach in C Programs • Functions are the building blocks of C. • Every C program must consist of at least one function, main(). • The main() function is the entry point of a C program. Ver. 1.0 Slide 2 of 44
  • 3. Programming in C Advantages of Functions Functions: Allow reusability of code and structuring of programs. Provide programmers a convenient way of designing programs. Ver. 1.0 Slide 3 of 44
  • 4. Programming in C Parameters of Functions A parameter: Is the data that the function must receive when called from another function. May or may not be present in a function. Of a user-defined function is declared outside the {} of that function. Ver. 1.0 Slide 4 of 44
  • 5. Programming in C Practice: 5.1 • From the following program, identify the functions invoked from main(), and state which functions have parameters. Also state the parameters. Microsoft Office Word 97 - 2003 Document Ver. 1.0 Slide 5 of 44
  • 6. Programming in C Practice: 5.1 (Contd.) Solution: – The standard functions used in this program within main() are as follows: scanf() – parameters are format of input, and pointers to the variable(s) in which the input must be stored fflush() – parameter is stdin The user-defined functions are: output() – no parameters calc() – one parameter, g, an int type data Ver. 1.0 Slide 6 of 44
  • 7. Programming in C Invoking Functions Functions that have parameters are invoked in one of the following ways: Call by value: In call by value, the called function cannot refer to the variables of the caller function directly, but creates its own copy of the values in different variables. Call by reference: In call by reference, the called function should be able to refer to the variables of the caller function directly, and does not create its own copy of the values in different variables. It is possible only if the addresses of the variables are passed as parameters to a function. Ver. 1.0 Slide 7 of 44
  • 8. Programming in C Passing Arrays to Functions Arrays are inherently passed to functions through call by reference method. An array can be passed to a function in the following way: Function name (array name); Ver. 1.0 Slide 8 of 44
  • 9. Programming in C Practice: 5.2 • If the variable avar is passed to a function by a call by reference, can the value of the variable avar be modified in the called function? Give reasons for your answer. • State whether True or False: When an array is passed to a function, the array elements are copied into the parameter of the function. 3. Consider the program code given in the following file. Microsoft Office Word 97 - 2003 Document Ver. 1.0 Slide 9 of 44
  • 10. Programming in C Practice: 5.2 (Contd.) Based on the code, answer the following questions: a. The function (max() / min()) is invoked by a call by value. b. The function (max() / min()) is invoked by a call by reference. c. After the function max() is executed, where does the control go to: i. The min() function. ii. The first line of the main() function. iii. The first line of the main() following the line on which max() was invoked. d. After execution of the function min(), program execution: i. Stops without returning to main(). ii. Goes back to the main() function. – If the values of i and j were to be printed after the function max() and again after the function min(), what values would be displayed? Ver. 1.0 Slide 10 of 44
  • 11. Programming in C Practice: 5.2 (Contd.) • Write a program that calls a function called power(m,n), which displays the nth power of the integer m (m and n are parameters). The function must be invoked by a call by reference. Ver. 1.0 Slide 11 of 44
  • 12. Programming in C Practice: 5.2 (Contd.) Solution: – Yes, because the addresses of the variables are passed in by using call by reference, the memory locations of the variables are known to the function. Using pointers to the variables, their values can be modified. – False. Values of variables are copied into the parameters only in the case of a call by value. – a. max() b. min() c. iii d. ii e. After max() is executed, the values of i and j printed out would be the same as those entered during execution. After min() is executed, the value of i would still be the same, but j would increase by 5 (since b is a pointer to the variable j). Ver. 1.0 Slide 12 of 44
  • 13. Programming in C Practice: 5.2 (Contd.) 1.main() { int x, y; printf(“Enter Number: ”); scanf(“%d”, &x); fflush(stdin); printf(“Enter power raise to : “); scanf(“%d”, &y); fflush(stdin); power(&x, &y); } power(m,n) int *m, *n; /* power is pointed to by n, value is pointed to by m */ { int i=1,val=1; while(i++<= *n) val = val ** m; printf(“%d the power of %d is %dn”, *n,*m, val);} Ver. 1.0 Slide 13 of 44
  • 14. Programming in C Returning Values from a Function • A function can return a value to the caller function. • The return statement is used to send back a value to the caller function. • The return statement also transfers control back to calling function. • The default return value is int type. • The return statement can return only one value. • The syntax for the return statement is: return[expression] A function can also return an array. This could be done by: return [array name] Ver. 1.0 Slide 14 of 44
  • 15. Programming in C Practice: 5.3 1. Point out the error(s), if any, in the functions given in the following file: Microsoft Word Document 5. The following program should calculate the square of any float value, using a function called square(). The float value is an input to the program. The program is incomplete. Put in the appropriate statements in the program given in the following file: Microsoft Word Document Ver. 1.0 Slide 15 of 44
  • 16. Programming in C Practice: 5.3 (Contd.) • The function, makeint(), was coded to convert any number entered into a char array to integer type. The function takes the string as parameter and returns the value, as given in the following file: Microsoft Word Document Ver. 1.0 Slide 16 of 44
  • 17. Programming in C Practice: 5.3 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 17 of 44
  • 18. Programming in C Command-Line Arguments Command-line arguments: – Are the parameters that the main() function can receive from the command line. – Are passed as information from the OS prompt to a program. • The main() function has 2 arguments, argc and argv. The format of the main() function with parameters is as follows: main(argc, argv) int argc; char *argv[]; { : } Here, argc is integer and argv is a character array of unlimited size (hence [ ] in the declaration). Ver. 1.0 Slide 18 of 44
  • 19. Programming in C Practice: 5.4 1. Given that a C program called temp is executed by the following command: temp start 6 match the following: a. value of argc 1. points to array "6" b. argv [0] 2. points to arrm/ "start" c. argv [1] 3. 3 d. argv[2] 4. points to array "temp" 2. Modify the program upper so that it first checks the number of arguments entered on the command line. The program should display an error message if no arguments have been entered and also allow conversion of as many strings to upper-case as have been specified as arguments on the command line. Ver. 1.0 Slide 19 of 44
  • 20. Programming in C Practice: 5.4 (Contd.) 3. Consider the following program to calculate the sum of 2 integers specified on the command line: main (argc, argv) int argc; char *argv [ ];{ sum (argv [1], argv [2]); } sum (num1, num2) int numl, num2;{ return numl + num2; } The program has some logical errors. Point out the errors and correct the code. Ver. 1.0 Slide 20 of 44
  • 21. Programming in C Practice: 5.4 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 21 of 44
  • 22. Programming in C Using Library Functions for String Manipulation Library functions: Are also known as built-in functions. Can be used by including the concerned header files. Ver. 1.0 Slide 22 of 44
  • 23. Programming in C Standard String-Handling Functions Some of the standard string-handling functions are: – strcmp(): Compares 2 strings (its parameters) character by character (ASCII comparison). – strcpy(): Copies the second string to the first string named in the strcpy() parameters. – strcat(): Appends the second string passed at the end of the first string passed to it . – strlen(): Returns the number of characters in the string passed to it. Ver. 1.0 Slide 23 of 44
  • 24. Programming in C Practice: 5.5 1. What will the following function call return? x = strcmp(“Cada”, “CADA”); What should the declaration of x be? 4. Assume that array contains the string 846*. What will array contain when the following statement is executed? strcat(array,”>”); 7. State whether True or False: The following statement returns a value of 4 to x. x = strlen ("abc"); Ver. 1.0 Slide 24 of 44
  • 25. Programming in C Practice: 5.5 (Contd.) Solution: 1. Value returned - 32 Declaration - int x; 3. 846*> 4. False Ver. 1.0 Slide 25 of 44
  • 26. Programming in C String to Numeric Conversion Functions Conversion functions: Are available as a part of the standard library. Are used to convert one data type into another. The following functions are used to convert a string to a numeric value: – atoi(): Returns the int type value of a string passed to it and the value 0 in the case the string does not begin with a digit. – atof(): Returns the double type value of a string passed to it and the value 0 in the case the string does not begin with a digit or a decimal point. Ver. 1.0 Slide 26 of 44
  • 27. Programming in C Practice: 5.6 • What value will the variable val contain in each of the following situations? a. val = atoi ("A345"); /* val is int type */ b. val = atof ("345A"); /* val is double type */ Ver. 1.0 Slide 27 of 44
  • 28. Programming in C Practice: 5.6 (Contd.) Solution: 1. a. 0 b. 345.000000 Ver. 1.0 Slide 28 of 44
  • 29. Programming in C Functions for Formatting Data in Memory The formatting functions are available as a part of the standard library. The following functions are used to format data in memory: sprintf(): Writes to a variable in the memory and stores the data in different variables specified. Are used for transferring data between variables in a specific format. Has the following syntax: sprintf(string, format-specification, data, ….); sscanf(): Performs formatted input from a string. Has the following syntax: sscanf(string, format-specification, data, ….); Ver. 1.0 Slide 29 of 44
  • 30. Programming in C Practice: 5.7 1. What data is assigned to the variable string by each of the following? a. sprintf(string,"%04d%3.2f%2s",21,4.576, "Hi“); b. sprintf (string, "%10s", "ABC"); c. sscanf ("0987APZ", "%4d%s", &num, string); 2. What is the error, if any, in the instructions given below against each purpose? Give the correct instruction in case of an error. Purpose Instruction Accept a name from keyboard printf(“%s”, name); Format the contents of variables printf (string,"%d%f, i_num,f_num) i_num(int) and f_num(float), and store them into a character array called string. Ver. 1.0 Slide 30 of 44
  • 31. Programming in C Practice: 5.7 (Contd.) Solution: Microsoft Word Document Ver. 1.0 Slide 31 of 44
  • 32. Programming in C Working with Data Storage Types C language provides the following data storage types: – auto: Variables of this type retain their value only as long as the function is in the stage of execution. – static: Variables of this type retain its value even after the function to which it belongs has been executed. – extern: Variables of this type are declared at the start of the program and can be accessed from any function. Ver. 1.0 Slide 32 of 44
  • 33. Programming in C Practice: 5.8 1. Given the following declarations: float area; static float val; auto char number; State which variable(s) will be: a. Created each tune the function is invoked. b. Created only once. 2. A numeric array has to store 4 values - 2.5, 6,3, 7.0 and 8.0. This array is to be declared and used in a function called compute(). Which of the following is/are correct declarations of this array? a. static int values[4] = {2.5,6.3,7.0,8.0}; b. auto float values[4] = {2.5,6.3,7.0,8.0 }; c. float values [4]= {2.5,6.3,7.0,8.0}; d. static float values [4] = {2.5,6.3,7.0,8.0}; Ver. 1.0 Slide 33 of 44
  • 34. Programming in C Practice: 5.8 (Contd.) Solution: 1. a. area, number b. val 3. (a) Is invalid because the array should be float or double type. (b) Is invalid because it is declared as auto type. (c) Is invalid because it is declared as auto type. (d) Is correct. . Ver. 1.0 Slide 34 of 44
  • 35. Programming in C Practice: 5.9 • If the variable val is declared as global in the program B, just illustrated, how would program A be modified? Give the appropriate declarations required in both programs. • Consider the following 2 program files: Program A float x; calc() { int i; : } printout() { static char z; : } Program B char numarray[5]; main() { char c ; : } Ver. 1.0 Slide 35 of 44
  • 36. Programming in C Practice: 5.9 (Contd.) Based on this code, answer the following: a. The variable z can be accessed in the function(s) ____________________. b. The variable(s) that can be accessed from functions of both program files is/are ___________. c. Slate whether True or False: The variable i can be used in the function printout(). d. Memory for variable z is reserved each time the function printout() is invoked. State whether true or false. e. If the function printout() has to access the variable x, does x have to be declared within the function printout()? If so, give the declaration. f. The auto variable(s) in these programs is/are _________________. Ver. 1.0 Slide 36 of 44
  • 37. Programming in C Practice: 5.9 (Contd.) Solution: 1. In program B, val would be declared as follows: int val; calc(){ :} In program A, the declaration would be as follows: main() { extern int val; :} – a. printout() only (Since it is declared within the function printout() and hence is not global) x and numarray (if proper extern statements are coded). b. False (Since it is declared within the function calc(), and hence it is not global) Ver. 1.0 Slide 37 of 44
  • 38. Programming in C Practice: 5.9 (Contd.) c. False (Since z is a static variable, it is created only once – the function printout() is invoked.) d. No (Since x is declared as global in program A, and printout() is defined in the same program file. However, declaring it as extern while within printout() is wrong.) e. The variable i defined in calc() and the variable c defined in main(). Ver. 1.0 Slide 38 of 44
  • 39. Programming in C Practice: 5.10 • The following file contains a C program called remdigit.c and a list of errors in the program indicated by the compiler. Go through the error list and correct the program. Since the C compiler does not always give very meaningful error messages, go through the program given in the following file carefully. Microsoft Office Word 97 - 2003 Document Ver. 1.0 Slide 39 of 44
  • 40. Programming in C Practice: 5.10 (Contd.) • Write a program to display all the positions at which a character occurs in a string. Both the character to be located and the string to be searched should be passed to a function called nextpos (findchar, searchstr). Each time the function locates the diameter, it should pass back the position. After searching the entire string, the function should return the value -1. Ver. 1.0 Slide 40 of 44
  • 41. Programming in C Practice: 5.10 (Contd.) Solution: Work out your answers. A discussion on these follows in the Classroom. Ver. 1.0 Slide 41 of 44
  • 42. Programming in C Summary In this session, you learned that: Functions provide advantages of reusability and structuring of programs. A parameter of a function is the data that the function must receive when called or invoked from another function. Functions that have parameters are invoked in one of the following two ways: • Call by value • Call by reference – Call by value means that the called function creates its own copy of the values in different variables. – Call by reference means that the called function should be able to refer to the variables of the caller function directly, and does not create its own copy of the values in different variables. Ver. 1.0 Slide 42 of 44
  • 43. Programming in C Summary (Contd.) – Arrays are passed to functions by the call by reference method. – Functions can return values by using the return statement. – The main() function can have parameters, argc and argv. argc is integer type while argv is a string. – The information that is passed to a program from the OS prompt is known as command-line arguments. – Some of the standard string-handling functions are: • strcmp(): Compares two strings. • strcpy(): Copies the second string to the first string. • strcat(): Appends the second string passed at the end of the first string passed as parameters. • strlen(): Returns the number of characters in the string passed as a parameter. Ver. 1.0 Slide 43 of 44
  • 44. Programming in C Summary (Contd.) • atoi(): Returns the int type value of a string passed to it. • aof(): Returns the double type value of a string passed to it. – The following functions are used to format data in memory: sprintf() sscanf() – C language provides the following data storage types: • auto: Variables of this type retain their value only as long as the function is in the stage of execution. • static: Variables of this type retain its value even after the function to which it belongs has been executed. • extern: Variables of this type are declared at the start of the program and can be accessed from any function. Ver. 1.0 Slide 44 of 44

Notas del editor

  1. Begin the session by explaining the objectives of the session.
  2. Give an example where you need to use a function for reusability.
  3. Tell the students that a parameter is a means by which functions pass information.
  4. Use this slide to test the student’s understanding on parameters.
  5. Tell the students that calling a function is termed as invoking a function. A function is invoked or called by writing the function name with parameters, if any. Also discuss actual parameters and formal parameters. What is implemented in C is not a true call by reference. A call by reference actually involves providing an alias for the original variable being referenced. There should be no difference in the way the original variable and the referencing variable is used (even in the syntax). What happens in C is that the address of the variable is passed. This address is received into a pointer and the pointer is dereferenced. Here a local variable (the pointer) is created in the called function. In a true call by reference , a variable is not created.
  6. Use this slide to test the student’s understanding on call by value and call by reference.
  7. As parameters are used to pass the required information to the called function, similarly, the return statement is used to pass the result back to the calling function.
  8. Use this slide to test the student’s understanding on returning values from a function.
  9. Explain command-line arguments to the students. Give the example of the copy command in MS DOS. Tell the students that copy is the command and the name of the source and the target file are the arguments to the copy command. The command-line arguments are separated by a space.
  10. Use this slide to test the student’s understanding on command-line arguments.
  11. Tell the students that if they want to ignore case while comparing two strings, they can use the strcmpi() function.
  12. Use this slide to test the student’s understanding on string-handling functions.
  13. Use this slide to test the student’s understanding on string to numeric conversion functions.
  14. Use this slide to test the student’s understanding on sscanf() and sscanf() functions.
  15. Use this slide to test the student’s understanding on data storage types .
  16. Use this slide to test the student’s understanding on data storage types .
  17. Use this and the next 2 slides to summarize the session.