Tema 8: Funciones



1. Crea un programa con las siguientes opciones:
Opción A) Calcula n!, ingresando el número n en main y creando una función para calcular el factorial, que tome n como argumento y devuelva el resultado.
Opción B) Calcula el coeficiente binomial, ingresando los números n y k, comprobando las condiciones para n y k (negrita) y si están bien y, calculando el coeficiente binomial según la fórmula de la imagen.
Opción C) Suma de números, ingresando dos enteros y creando una función para sumar los dos números. Si la suma es mayor a 50, devuelve 1 y, si no, devuelve 0. La suma en sí debe devolverse mediante referencia.
Opción D) Cambiar números, introduciendo dos enteros en la función principal, creando una función para cambiar los valores de estas dos variables y después, de regresar de la función, imprimir los valores de las variables (en la función principal).
Opción E) Crear un programa para introducir y mostrar los elementos de una matriz de números enteros (máximo 100) con las siguientes funciones:
  E.1) Introducción de un elemento en la matriz para que la función tome como argumentos la dirección de la matriz y la cantidad de elementos ya introducidos en la matriz. Si no se alcanza la cantidad máxima de elementos, se le pide al usuario que introduzca un nuevo elemento. Si se alcanza la cantidad máxima, se muestra un mensaje adecuado.
  E.2) Muestra de todos los elementos introducidos en la matriz, donde la función toma como argumentos la dirección de la matriz y la cantidad de elementos introducidos en la matriz:




                        #include < stdio.h>
                        #include < string.h>
                        #define _CRT_SECURE_NO_WARNINGS

                        //To define ctes....
                        #define FIFTY 50
                        #define MAX_ELEMENTS 101

                        //Headers of the Functions and Procedures...
                        int factorial();
                        int addingNumbers();
                        void switchNumbers();
                        void enteringValues();
                        void displayValues();

                        //The main program...
                        void main()
                        {
                            //To declare arrays...
                            int vector_num[MAX_ELEMENTS];

                            //To declare variables...
                            int option, num, n_fact, n, k, nk, result_n, result_k, result_nk, result_bc, x, y, result_add, i, j, counter = 0, op;

                            //Start the Program....
                            printf("\n");
                            do
                            {
                                printf("\n");
                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                printf("$$$$$$$$$ MULTI-OPERATION PROGRAM 2022 $$$$$$$$$\n");
                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                printf("$             MENU OF THE PROGRAM:             $\n");
                                printf("$                                              $\n");
                                printf("$ 1. Factorial of a number.                    $\n");
                                printf("$ 2. Binomial Coefficient.                     $\n");
                                printf("$ 3. Adding numbers.                           $\n");
                                printf("$ 4. Switch numbers.                           $\n");
                                printf("$ 5. Playing with arrays.                      $\n");
                                printf("$ 0. EXIT.                                     $\n");
                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                printf("Which option do you want to choose? : ");
                                scanf("%d", &option);
                                printf("\n");
                                if(option<0 || option>5)
                                {
                                    printf("\nPlease, introduce a correct option!\n\n");
                                }
                                else
                                {
                                    switch(option)
                                    {
                                        case 1:
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$ Factorial of a number $$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("Please, introduce your factorial number: ");
                                            scanf("%d", &num);
                                            n_fact = factorial(num);
                                            printf("\n%d! = %d\n\n", num, n_fact);
                                            break;
                                        case 2:
                                            do
                                            {
                                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                                printf("$$$$$$$$$$$ Binomial Coefficient $$$$$$$$$$$\n");
                                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                                printf("Please, introduce a number: ");
                                                scanf("%d", &n);
                                                printf("Please, introduce a smaller number than %d: ", n);
                                                scanf("%d", &k);
                                                if(n < k || k < 0)
                                                {
                                                    printf("\nIncorrect introduced numbers! Please, introduce them again!\n\n");
                                                }
                                                else
                                                {
                                                result_n = factorial(n);
                                                result_k = factorial(k);
                                                nk = n - k;
                                                result_nk = factorial(nk);
                                                result_bc = result_n / (result_k * result_nk);
                                                printf("\nThe Binomial Coefficient of n = %d and k = %d is: %d.\n\n", n, k, result_bc);
                                                }
                                            }while(n < k || k < 0);
                                            break;
                                        case 3:
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$ Adding numbers $$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("Please, introduce the first number: ");
                                            scanf("%d", &x);
                                            printf("Please, introduce the second number: ");
                                            scanf("%d", &y);
                                            result_add = addingNumbers(x,y);
                                            if(result_add == 1)
                                            {
                                                printf("\n%d means that the add is greater than 50.\n\n", result_add);
                                            }
                                            else
                                            {
                                                printf("\n%d means that the add is lower or equal than 50.\n\n", result_add);
                                            }
                                            break;
                                        case 4:
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$ Switch numbers $$$$$$$$$$$\n");
                                            printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                            printf("Please, introduce the first number: i = ");
                                            scanf("%d", &i);
                                            printf("Please, introduce the second number: j = ");
                                            scanf("%d", &j);
                                            switchNumbers(&i,&j);
                                            printf("\nNow, i = %d y j = %d.\n\n", i, j);
                                            break;
                                        case 5:
                                            do
                                            {
                                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                                printf("$$$$$$$$$$$ Playing with arrays $$$$$$$$$$\n");
                                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                                printf("$          MENU OF THE PROGRAM:          $\n");
                                                printf("$                                        $\n");
                                                printf("$ 1. Entering a number to the array.     $\n");
                                                printf("$ 2. Display the array.                  $\n");
                                                printf("$ 0. EXIT.                               $\n");
                                                printf("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$\n");
                                                printf("Please, choose an option: ");
                                                scanf("%d", &op);
                                                if(op<0 || op>2)
                                                {
                                                    printf("\nPlease, introduce a correct option!\n\n");
                                                }
                                                else
                                                {
                                                    switch(op)
                                                    {
                                                        case 1:
                                                            enteringValues(vector_num, &counter, &op);
                                                            if(op == 2)
                                                            {
                                                                displayValues(&vector_num, &counter);
                                                                printf("\n");
                                                            }
                                                            break;
                                                        case 2:
                                                            displayValues(vector_num, &counter);
                                                            break;
                                                        default:
                                                            printf("\nEND OF PLAYING WITH ARRAYS!!!\n\n");
                                                    }
                                                }
                                            }while(op != 0);
                                            break;
                                        default:
                                            printf("GOOD BYE!!!\n\n");
                                    }
                                }

                            }while(option != 0);
                        }

                        //Functions and Procedures...
                        int factorial(int a)
                        {
                            //To declare variables of the function only.
                            int i, store = 1;

                            //Main part of the function.
                            if(a >= 0)
                            {
                                for(i=1; i<=a; i++)
                                {
                                    store *= i;
                                }
                                return store;
                            }
                            else
                            {
                                for(i=1; i<=-a; i++)
                                {
                                    store *= i;
                                }
                                return -store;
                            }
                        }

                        int addingNumbers(int a, int b)
                        {
                            //Main part of the function.
                            if(a + b > FIFTY)
                            {
                                return 1;
                            }
                            else
                            {
                                return 0;
                            }
                        }

                        void switchNumbers(int *a, int *b)
                        {
                            //To declare variables of the function only.
                            int aux;

                            //Main part of the function and doing the Bubble Method.
                            aux = *a;
                            *a = *b;
                            *b = aux;
                        }

                        void enteringValues(int array[], int *c, int *option)
                        {
                            //Main part of the function...
                            if(*c < MAX_ELEMENTS-1)
                            {
                                //To store the number in one element....
                                printf("\nPlease, introduce an integer number in the position %d: ", *c);
                                scanf("%d", &array[*c]);
                                *c += 1;
                            }
                            else
                            {
                                printf("\n\nOUT OF RANGE!!!! Your array only have %d elements or positions.\n\n", *c);
                                *option = 2;
                            }
                        }

                        void displayValues(int array[], int *c)
                        {
                            //To declare variables of the function only.
                            int i;

                            //Main part of the function and print the whole array....
                            printf("\n\n[");
                            for(i=0; i<*c; i++)
                            {
                                if(i == *c-1)
                                {
                                    printf("%d", array[i]);
                                }
                                else
                                {
                                    printf("%d,", array[i]);
                                }
                            }
                            printf("]\n\n");
                        }
                    


Ubicación: Universidad de Novi Sad - Dr Zorana Đinđića 1, Novi Sad 21000, Vojvodina, Serbia

Teléfono: +381 21 485 2056

Correo electrónico: iro.ftn@uns.ac.rs



Copyright © 2023-2030 My Professional WEB - Todos los derechos reservados


Original text
Rate this translation
Your feedback will be used to help improve Google Translate