AKTU 1er año Sem 1 Documento resuelto 2017-18 | COMP. SISTEMA Y PROGRAMACION C | Sec B

Enlace de descarga de papel : Papel | Sem 1 | 2017-18

Tecnología B.
(SEM-I) EXAMEN TEÓRICO 2017-18
SISTEMA INFORMÁTICO Y PROGRAMACIÓN EN C

Tiempo: 3 horas
Marcas totales : 100

Nota :-

  • Hay tres secciones. La Sección A lleva 20 puntos, la Sección B lleva 30 puntos y la Sección C lleva 50 puntos.
  • Intenta todas las preguntas. Las marcas se indica frente a cada pregunta.
  • Asumir datos adecuados siempre que sea necesario.

Sección B

2. Intente cualquiera de los tres de los siguientes: (3*10 = 30)

  1. ¿Qué es la computadora digital? Dibuje el diagrama de bloques de la computadora digital y explique cada uno de sus componentes.
    Computadora digital: una computadora digital se puede definir como una máquina programable que lee los datos binarios pasados ​​como instrucciones, procesa estos datos binarios y muestra una salida digital calculada. Por lo tanto, las computadoras digitales son aquellas que trabajan sobre los datos digitales.

    Detalles de los componentes funcionales de una computadora digital

    • Unidad de entrada: La unidad de entrada consta de dispositivos de entrada que están conectados a la computadora. Estos dispositivos toman la entrada y la convierten en un lenguaje binario que la computadora entiende. Algunos de los dispositivos de entrada comunes son teclado, mouse, joystick, escáner, etc.
    • Unidad central de procesamiento (CPU0): una vez que el dispositivo de entrada ingresa la información en la computadora, el procesador la procesa. La CPU se llama el cerebro de la computadora porque es el centro de control de la computadora. Primero obtiene instrucciones de la memoria y luego los interpreta para saber qué se debe hacer. Si es necesario, los datos se obtienen de la memoria o del dispositivo de entrada. Luego, la CPU ejecuta o realiza el cálculo requerido y luego almacena la salida o la muestra en el dispositivo de salida. La CPU tiene tres componentes principales que son responsables de diferentes funciones: unidad aritmética lógica (ALU), unidad de control (CU) y registros de memoria
    • Unidad Aritmética y Lógica (ALU): La ALU, como su nombre indica realiza cálculos matemáticos y toma decisiones lógicas. Los cálculos aritméticos incluyen suma, resta, multiplicación y división. Las decisiones lógicas implican la comparación de dos elementos de datos para ver cuál es mayor, menor o igual.
    • Unidad de control: La unidad de control coordina y controla el flujo de datos dentro y fuera de la CPU y también controla todas las operaciones de ALU, registros de memoria y también unidades de entrada/salida. También es responsable de llevar a cabo todas las instrucciones almacenadas en el programa. Decodifica la instrucción obtenida, la interpreta y envía señales de control a los dispositivos de entrada/salida hasta que la ALU y la memoria realizan correctamente la operación requerida.
    • Registros de memoria: un registro es una unidad temporal de memoria en la CPU. Estos se utilizan para almacenar los datos que utiliza directamente el procesador. Los registros pueden ser de diferentes tamaños (16 bits, 32 bits, 64 bits, etc.) y cada registro dentro de la CPU tiene una función específica como almacenar datos, almacenar una instrucción, almacenar la dirección de una ubicación en la memoria, etc. Los registros de usuario pueden ser utilizado por un programador de lenguaje ensamblador para almacenar operandos, resultados intermedios, etc. El acumulador (ACC) es el registro principal en la ALU y contiene uno de los operandos de una operación que se realizará en la ALU.
    • Memoria : La memoria adjunta a la CPU se utiliza para el almacenamiento de datos e instrucciones y se denomina memoria interna. La memoria interna se divide en muchas ubicaciones de almacenamiento, cada una de las cuales puede almacenar datos o instrucciones. Cada ubicación de memoria es del mismo tamaño y tiene una dirección. Con la ayuda de la dirección, la computadora puede leer fácilmente cualquier ubicación de la memoria sin tener que buscar en toda la memoria. cuando se ejecuta un programa, sus datos se copian en la memoria interna y se almacenan en la memoria hasta el final de la ejecución. La memoria interna también se denomina memoria primaria o memoria principal. Esta memoria también se denomina RAM, es decir, memoria de acceso aleatorio. El tiempo de acceso de los datos es independiente de su ubicación en la memoria, por lo que esta memoria también se denomina memoria de acceso aleatorio (RAM). Lea esto paradiferentes tipos de ram
    • Unidad de salida: La unidad de salida consta de dispositivos de salida que se conectan con la computadora. Convierte los datos binarios provenientes de la CPU a una forma comprensible para el ser humano. Los dispositivos de salida comunes son monitor, impresora, trazador, etc.
  2. Escribe un programa para comprobar si el número es palíndromo o no. El programa debería aceptar cualquier número arbitrario escrito por el usuario.
    Programa para comprobar si el número es Palindrome o no:

    // C program to check whether a number
    // is Palindrome or not.
      
    #include <stdio.h>
      
    /* Iterative function to reverse digits of num*/
    int reverseDigits(int num)
    {
        int rev_num = 0;
        while (num > 0) {
            rev_num = rev_num * 10 + num % 10;
            num = num / 10;
        }
        return rev_num;
    }
      
    /* Function to check if n is Palindrome*/
    int isPalindrome(int n)
    {
      
        // get the reverse of n
        int rev_n = reverseDigits(n);
      
        // Check if rev_n and n are same or not.
        if (rev_n == n)
            return 1;
        else
            return 0;
    }
      
    /*Driver program to test reversDigits*/
    int main()
    {
        int n;
      
        // Read n from user
        printf("Enter the number to checked: ");
        scanf("%d", &n);
      
        // Find if n is Palindrome and print
        printf("Is %d a Palindrome number? -> %s\n", n,
               isPalindrome(n) == 1 ? "true" : "false");
      
        // Read n from user
        printf("\nEnter the number to checked: ");
        scanf("%d", &n);
      
        // Find if n is Palindrome and print
        printf("Is %d a Palindrome number? -> %s\n", n,
               isPalindrome(n) == 1 ? "true" : "false");
        return 0;
    }
    Producción:

    Enter the number to checked: 4562
    Is 4562 a Palindrome number? -> false
    
    Enter the number to checked: 2002
    Is 2002 a Palindrome number? -> true
    
  3. ¿Qué es el sistema operativo? Explicar varios tipos de funciones realizadas por un sistema operativo.

    El objetivo fundamental de un Sistema Informático es ejecutar programas de usuario y facilitar las tareas. Se utilizan varios programas de aplicación junto con el sistema de hardware para realizar este trabajo. El sistema operativo es un software que administra y controla el conjunto completo de recursos y utiliza de manera efectiva cada parte de una computadora.

    La figura muestra cómo el sistema operativo actúa como un medio entre la unidad de hardware y los programas de aplicación.

    Funciones de un sistema operativo

    Un sistema operativo tiene una variedad de funciones para realizar. Algunas de las funciones destacadas de un sistema operativo pueden describirse en términos generales como:

    • Gestión del procesador : se ocupa de la gestión de la Unidad central de procesamiento (CPU). El sistema operativo se encarga de la asignación de tiempo de CPU a diferentes procesos. Cuando un proceso finaliza su procesamiento de CPU después de ejecutarse durante el período de tiempo asignado, esto se denomina programación. Existen varios tipos de técnicas de programación que utilizan los sistemas operativos:
      1. El trabajo más corto primero (SJF ) : los procesos que necesitan el tiempo de CPU más corto se programan primero.
      2. Programación Round Robin : A cada proceso se le asigna un tiempo fijo de ejecución de la CPU de forma cíclica.
      3. Programación basada en prioridades (no preventiva) : en esta programación, los procesos se programan de acuerdo con sus prioridades, es decir, el proceso de mayor prioridad se programa primero. Si las prioridades de dos procesos coinciden, programe de acuerdo con la hora de llegada
    • Gestión de dispositivos:
      el sistema operativo se comunica con el hardware y los dispositivos conectados y mantiene un equilibrio entre ellos y la CPU. Esto es aún más importante porque la velocidad de procesamiento de la CPU es mucho mayor que la
      de los dispositivos de E/S. Para optimizar el tiempo de la CPU, el sistema operativo emplea dos técnicas: almacenamiento en búfer y cola de impresión.
    • Almacenamiento en búfer :
      en esta técnica, los datos de entrada y salida se almacenan temporalmente en el búfer de entrada y el búfer de salida. Una vez que la señal de entrada o salida se envía hacia o desde la CPU respectivamente, el sistema operativo a través del controlador de dispositivo mueve los datos del dispositivo de entrada al búfer de entrada y del dispositivo de salida al búfer de salida. En caso de entrada, si el búfer está lleno, el sistema operativo envía una señal al programa que procesa los datos almacenados en el búfer. Cuando el búfer se vacía, el programa informa al sistema operativo que vuelve a cargar el búfer y la operación de entrada continúa.
    • Spooling (Operación Simultánea de Periféricos en Línea) :
      Esta es una técnica de administración de dispositivos utilizada para el procesamiento de diferentes tareas en el mismo dispositivo de entrada/salida. Cuando hay varios usuarios en una red que comparten el mismo recurso, puede existir la posibilidad de que más de un usuario le dé un comando en el mismo momento. Entonces, el sistema operativo almacena temporalmente los datos de cada usuario en el disco duro de la computadora a la que está conectado el recurso. El usuario individual no necesita esperar a que se complete el proceso de ejecución. En cambio, el sistema operativo envía los datos del disco duro al recurso uno por uno.
      Ejemplo: impresora
    • Gestión de la memoria :
      en una computadora, tanto la CPU como los dispositivos de E/S interactúan con la memoria. Cuando se necesita ejecutar un programa, se carga en la memoria principal hasta que se completa la ejecución. A partir de entonces, ese espacio de memoria se libera y está disponible para otros programas. Las técnicas comunes de administración de memoria utilizadas por el sistema operativo son el particionamiento y la memoria virtual.
    • Particionamiento:
      La memoria total se divide en varias particiones del mismo tamaño o de diferentes tamaños. Esto ayuda a acomodar el número de programas en la memoria. La partición puede ser fija, es decir, permanece igual para todos los programas en la memoria o variable, es decir, la memoria se asigna cuando se carga un programa en la memoria. El último enfoque provoca menos pérdida de memoria pero, con el tiempo, puede fragmentarse.
    • Memoria virtual :
      esta es una técnica utilizada por los sistemas operativos que permite que el usuario pueda cargar los programas que son más grandes que la memoria principal de la computadora. En esta técnica, el programa se ejecuta incluso si el programa completo no se puede cargar dentro de la memoria principal, lo que conduce a una utilización eficiente de la memoria.
    • Administración de archivos:
      el sistema operativo administra los archivos, carpetas y sistemas de directorios en una computadora. Cualquier dato en una computadora se almacena en forma de archivos y el sistema operativo mantiene información sobre todos ellos utilizando la Tabla de asignación de archivos (FAT). La FAT almacena información general sobre archivos como nombre de archivo, tipo (texto o binario), tamaño, dirección de inicio y modo de acceso (secuencial/secuencial indexado/directo/relativo). El administrador de archivos del sistema operativo ayuda a crear, editar, copiar, asignar memoria a los archivos y también actualiza la FAT. El sistema operativo también se ocupa de que los archivos se abran con los derechos de acceso adecuados para leerlos o editarlos.
  4. ¿Qué es el enfoque de programación estructurada ? Resalte las ventajas y desventajas de la programación estructurada.

    El enfoque de programación estructurada , como sugiere la palabra, se puede definir como un enfoque de programación en el que el programa se crea como una estructura única. Significa que el código ejecutará instrucción por instrucción una tras otra. No admite la posibilidad de saltar de una instrucción a otra con la ayuda de una declaración como GOTO, etc. Por lo tanto, las instrucciones en este enfoque se ejecutarán de manera estructurada y en serie. Los lenguajes que admiten el enfoque de programación estructurada son:

    • C
    • C++
    • Java
    • C#
    • ..etc

    Por el contrario, en los lenguajes ensambladores como el Microprocesador 8085, etc., las sentencias no se ejecutan de forma estructurada. Permite sentencias de salto como GOTO. Entonces, el flujo del programa puede ser aleatorio.

    El programa estructurado consta principalmente de tres tipos de elementos:

    • Declaraciones de selección
    • Declaraciones de secuencia
    • Declaraciones de iteración

    El programa estructurado consta de módulos bien estructurados y separados. Pero la entrada y salida en un programa Estructurado es un evento único. Significa que el programa utiliza elementos de entrada única y salida única. Por lo tanto, un programa estructurado es un programa bien mantenido, ordenado y limpio. Esta es la razón por la que el enfoque de programación estructurada es bien aceptado en el mundo de la programación.

    Ventajas del enfoque de programación estructurada:

    1. Más fácil de leer y entender.
    2. Usuario amistoso
    3. Más fácil de mantener
    4. Principalmente basado en problemas en lugar de estar basado en máquinas
    5. El desarrollo es más fácil ya que requiere menos esfuerzo y tiempo.
    6. Más fácil de depurar
    7. Independiente de la máquina, en su mayoría.

    Desventajas del enfoque de programación estructurada:

    1. Dado que es independiente de la máquina, lleva tiempo convertirlo en código de máquina.
    2. El código de máquina convertido no es el mismo que para el lenguaje ensamblador.
    3. El programa depende de factores modificables como los tipos de datos. Por lo tanto, debe actualizarse con la necesidad sobre la marcha.
    4. Por lo general, el desarrollo de este enfoque lleva más tiempo, ya que depende del idioma. Mientras que en el caso del lenguaje ensamblador, el desarrollo lleva menos tiempo ya que está fijado para la máquina.
  5. ¿A qué te refieres con ordenar? Escriba un programa en C para ordenar los elementos de una array dada de N enteros positivos. También proporcione el diagrama de flujo para el mismo.

    Se utiliza un algoritmo de clasificación para reorganizar una array dada o enumerar elementos de acuerdo con un operador de comparación en los elementos. El operador de comparación se utiliza para decidir el nuevo orden de los elementos en la estructura de datos respectiva.

    Por ejemplo : La siguiente lista de caracteres está ordenada en orden creciente de sus valores ASCII. Es decir, el carácter con menor valor ASCII se colocará primero que el carácter con mayor valor ASCII.

    algoritmos de clasificación

    Diagrama de flujo de la clasificación de selección:

    Programa en C para ordenar los elementos de un arreglo dado de N enteros positivos:

    // C program to sort the elements
    // of a given array of N positive integers
      
    #include <stdio.h>
      
    void swap(int* xp, int* yp)
    {
        int temp = *xp;
        *xp = *yp;
        *yp = temp;
    }
      
    void selectionSort(int arr[], int n)
    {
        int i, j, min_idx;
      
        // One by one move boundary of unsorted subarray
        for (i = 0; i < n - 1; i++) {
            // Find the minimum element in unsorted array
            min_idx = i;
            for (j = i + 1; j < n; j++)
                if (arr[j] < arr[min_idx])
                    min_idx = j;
      
            // Swap the found minimum element with the first element
            swap(&arr[min_idx], &arr[i]);
        }
    }
      
    /* Function to print an array */
    void printArray(int arr[], int size)
    {
        int i;
        for (i = 0; i < size; i++)
            printf("%d ", arr[i]);
        printf("\n");
    }
      
    // Driver program to test above functions
    int main()
    {
        int arr[] = { 64, 25, 12, 22, 11 };
        int n = sizeof(arr) / sizeof(arr[0]);
        selectionSort(arr, n);
        printf("Sorted array: \n");
        printArray(arr, n);
        return 0;
    }

Publicación traducida automáticamente

Artículo escrito por RishabhPrabhu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *