B3-T2 Lenguajes de Programación
34 Questions
3 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de los siguientes operadores se utiliza para realizar la operación de módulo?

  • +
  • *
  • /
  • % (correct)
  • Si se evalúa la expresión ((5 > 3) ? 10 : 20), ¿cuál será el resultado?

  • Ninguno de los anteriores
  • 5
  • 10 (correct)
  • 20
  • ¿Qué operador se utiliza para comprobar si dos valores no son iguales?

  • >=
  • != (correct)
  • ==
  • <
  • Cuál es la salida del siguiente código: int x = 5; x--; ?

    <p>4</p> Signup and view all the answers

    ¿Qué problemas puede causar el uso ineficiente de la concatenación de strings?

    <p>Fugas de memoria</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre los lenguajes de alto nivel es correcta?

    <p>Facilitan la programación debido a su cercanía con el lenguaje humano.</p> Signup and view all the answers

    ¿Cuál de los siguientes lenguajes es un ejemplo de lenguaje intermedio?

    <p>C++</p> Signup and view all the answers

    En el paradigma declarativo, ¿cuál de las siguientes características es cierta?

    <p>Se centra en describir qué se quiere lograr.</p> Signup and view all the answers

    ¿Qué característica se asocia con los lenguajes de propósito específico?

    <p>Están diseñados para resolver problemas en áreas especializadas.</p> Signup and view all the answers

    ¿Cuál de las siguientes opciones describe correctamente el tipado estático?

    <p>Las variables deben ser declaradas explícitamente y revisadas en tiempo de compilación.</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones se refiere a los lenguajes compilados?

    <p>Son transformados completamente a código máquina antes de su ejecución.</p> Signup and view all the answers

    ¿Qué característica define el paradigma reactivo en la programación?

    <p>Propagación automática de cambios en respuesta a eventos.</p> Signup and view all the answers

    ¿Cuál de los siguientes lenguajes se considera un ejemplo de programación lógica?

    <p>Prolog</p> Signup and view all the answers

    ¿Cuál es la declaración correcta para definir una variable de tipo booleano en C#?

    <p>bool esActivo = true;</p> Signup and view all the answers

    ¿Qué tipo de variable se utiliza para almacenar una lista de enteros en Python?

    <p>list</p> Signup and view all the answers

    En Java, ¿cuál es la forma correcta de declarar una variable de tipo String?

    <p>String nombre = &quot;Juan&quot;;</p> Signup and view all the answers

    ¿Cuál de las siguientes opciones es una declaración válida para un array en C++?

    <p>int edades[] = {25, 30, 35};</p> Signup and view all the answers

    ¿Cuál de las siguientes es una forma incorrecta de declarar una variable de tipo char en Python?

    <p>char letra = 'A';</p> Signup and view all the answers

    ¿Cuál de los siguientes lenguajes de programación se clasifica como de tipado fuerte?

    <p>Haskell</p> Signup and view all the answers

    ¿Qué tipo de dato en Java tiene un rango que varía de -128 a 127?

    <p>byte</p> Signup and view all the answers

    ¿Cuál es el valor por defecto de un tipo de dato boolean en Java?

    <p>False</p> Signup and view all the answers

    ¿Qué característica principal distingue a los lenguajes de 4ª generación (4GL)?

    <p>Especifican qué hay que hacer, no cómo</p> Signup and view all the answers

    ¿Cuál de los siguientes lenguajes pertenece a la 5ª generación (5GL)?

    <p>Prolog</p> Signup and view all the answers

    ¿Entre qué valores puede variar un tipo de dato long en Java?

    <p>-2^63 a 2^63 - 1</p> Signup and view all the answers

    ¿Cuál de los siguientes es un ejemplo de lenguajes de tipado dinámico?

    <p>Ruby</p> Signup and view all the answers

    ¿Qué tipo de dato en Java permite almacenar un carácter Unicode de 16 bits?

    <p>char</p> Signup and view all the answers

    ¿Qué caracteriza a un array en comparación con un vector?

    <p>Su tamaño se define en el momento de su creación.</p> Signup and view all the answers

    ¿Cuál es una de las principales diferencias en el rendimiento entre arrays y vectores?

    <p>Los arrays son generalmente más rápidos sin necesidad de sincronización.</p> Signup and view all the answers

    ¿Qué sucede cuando se pasa una variable por valor a un método?

    <p>Se pasa una copia del valor de la variable.</p> Signup and view all the answers

    En un vector de Java, ¿qué característica es correcta?

    <p>Pueden crecer y disminuir automáticamente.</p> Signup and view all the answers

    ¿Cómo se accede a los elementos de un array en memoria?

    <p>Utilizando índices que comienzan desde 0.</p> Signup and view all the answers

    ¿Cuál es una ventaja clave de los vectores sobre los arrays?

    <p>Permiten redimensionarse dinámicamente.</p> Signup and view all the answers

    Al pasar un objeto por referencia a un método, ¿qué consecuencia tiene?

    <p>Cualquier modificación afectará al objeto original.</p> Signup and view all the answers

    En cuanto al uso de arrays y vectores, ¿cuál es la mejor práctica?

    <p>Usar arrays para colecciones de tamaño fijo.</p> Signup and view all the answers

    Study Notes

    Clasificación de los lenguajes de programación

    • Según el nivel de abstracción:
      • Lenguajes de bajo nivel: cercanos al hardware.
        • Ejemplos: Lenguaje máquina, ensamblador.
      • Lenguajes de alto nivel: más cercanos al lenguaje humano, fáciles de leer, escribir y mantener.
        • Ejemplos: Python, Java, C++, JavaScript, Ruby.
      • Lenguajes de nivel intermedio: entre los lenguajes de bajo nivel y alto nivel, ofrecen control sobre el hardware y son fáciles de leer y escribir.
        • Ejemplos: C, C++, Rust.

    Clasificación según el paradigma de programación

    • Paradigma imperativo: secuencias de instrucciones que modifican el estado del programa. Se enfoca en cómo se debe realizar una tarea.
      • Ejemplos:
        • Programación estructurada: C, Pascal.
        • Programación orientada a objetos (POO): Java.
        • Programación funcional: basada en la evaluación de funciones matemáticas. Evita el uso de estados mutables y variables globales.
          • Ejemplos: Haskell, Lisp, Scala, Erlang.
      • Paradigma declarativo: describe qué se quiere lograr sin especificar los pasos exactos.
        • Ejemplos:
          • Programación lógica: basada en el uso de reglas lógicas para deducir resultados a partir de hechos conocidos.
            • Ejemplo: Prolog.
          • Paradigma reactivo: se centra en la propagación de cambios. Los datos o eventos reaccionan de manera automática a las modificaciones en el sistema.
            • Ejemplos: RxJS (JavaScript), React (biblioteca de JavaScript).
          • Paradigma orientado a eventos: el flujo del programa está determinado por eventos como entradas del usuario, mensajes de otros programas o sensores.
            • Ejemplos: JavaScript (para aplicaciones web), Visual Basic.

    Clasificación según el propósito

    • Lenguajes de propósito general: no limitados a un tipo particular de problema.
      • Ejemplos: Python, Java, C, C++.
    • Lenguajes de propósito específico: para resolver problemas específicos en áreas especializadas.
      • Ejemplos: HTML, MATLAB.

    Clasificación según la forma de ejecución

    • Lenguajes compilados: se traducen a código máquina antes de ejecutarse.
    • Lenguajes interpretados: se ejecutan línea por línea sin traducción previa a código máquina.
    • Lenguajes híbridos: combinan características de lenguajes compilados e interpretados.

    Clasificación según la tipificación de datos

    • Tipado estático: las variables se deben declarar explícitamente y se verifican en tiempo de compilación.
      • Ejemplos: C, C++, Java, Rust.
    • Tipado dinámico: las variables se determinan en tiempo de ejecución, da mayor flexibilidad pero puede llevar a errores difíciles de detectar.
      • Ejemplos: Python, JavaScript, Ruby.
    • Tipado fuerte: no permite operaciones entre diferentes tipos de datos sin una conversión explícita.
      • Ejemplos: Haskell, Python, Java.
    • Tipado débil: las conversiones entre tipos pueden ocurrir implícitamente.
      • Ejemplos: JavaScript, PHP.

    Clasificación según la generación

    • 1ª generación (1GL): Lenguaje máquina.
    • 2ª generación (2GL): Lenguajes simbólicos.
    • 3ª generación (3GL): Lenguajes de medio y alto nivel.
      • Ejemplos: C, Java, Python, FORTRAN, COBOL, C++.
    • 4ª generación (4GL): lenguajes utilizados para propósitos específicos (Orientado a Problemas). La característica principal es especificar qué hay que hacer y no cómo se hace.
      • Ejemplos: SQL, MATLAB, ABAP, SAS, Oracle Forms.
    • 5ª generación (5GL): lenguajes de inteligencia artificial.
      • Ejemplos: Prolog, LISP, Mercury.

    Representación de tipos de datos

    • Tipos de datos: clasificación que especifica el tipo de valor que una variable puede almacenar y las operaciones que se pueden realizar sobre ese valor.

    • Java:

      • Tipos de datos primitivos: tipos básicos de datos que no son objetos y se almacenan directamente en la memoria.
      Tipo Descripción Valor por defecto
      byte Entero de 8 bits con signo. Rango: -128 a 127. 0
      short Entero de 16 bits con signo. Rango: -32,768 a 32,767. 0
      int Entero de 32 bits con signo. Rango: -2^31 a 2^31 - 1. 0
      long Entero de 64 bits con signo. Rango: -2^63 a 2^63 - 1. 0
      float Número en coma flotante de 32 bits. Precisión simple. Rango: 1.4E-45 a 3.4E+38. 0.0f
      double Número en coma flotante de 64 bits. Precisión doble. Rango: 4.9E-324 a 1.7E+308. 0.0d
      char Carácter Unicode de 16 bits. Representa un único carácter. Rango: '\u0000' (0) a '\uffff' (65,535) '\u0000'
      boolean Valor lógico que solo puede ser true o false. FALSE

    Operadores

    • Aritméticos:

      Operador Significado Ejemplo
      + Suma 5+3=8
      - Resta 5-3=2
      * Multiplicación 5 * 3 = 15
      / División 6/3=2
      % Módulo (residuo de la división) 5%2=1
      ++ Incremento int x = 5; x++; // x = 6
      -- Decremento int x = 5; x--; // x = 4
    • Relacionales:

      Operador Significado Ejemplo
      == Igual a 5 == 3 // false
      != No igual a 5 != 3 // true
      > Mayor que 5 > 3 // true
      < Menor que 5 < 3 // false
      >= Mayor o igual que 5 >= 3 // true
      <= Menor o igual que 5 <= 3 // false
      && AND lógico (5 > 3) && (15 <= 20) // true
      ! Negación lógica !(5 > 3) // false
    • Ternarios:

      Operador Significado Ejemplo
      Condicion?Instruccion1:Instruccion2 Si la condición se evalúa como verdadera se ejecuta la instrucción después del ?, en caso contrario, la instrucción después del : int resultado = (5 > 3) ? 10 : 5; // resultado = 10

    Cómo pasar una variable

    • Valor: Se pasa una copia del valor de la variable al método llamado. Los cambios realizados en el valor dentro del método no afectan la variable original.
    • Referencia: Se pasa una referencia al objeto, no una copia del valor. Esto significa que cualquier modificación en el objeto dentro del método afectará el objeto original.

    Vectores y Registros

    • Arrays (Arreglos): estructura de datos que permite almacenar un conjunto de elementos del mismo tipo.

      • El tamaño se define al momento de su creación y no puede cambiar.
      • Los elementos se almacenan de forma consecutiva en memoria y se accede a ellos utilizando índices (empezando desde 0).
    • Vectores: estructura de datos similar a un array, pero puede redimensionarse dinámicamente.

      • Los elementos se almacenan de forma consecutiva en memoria.
      • En Java: Pertenecen al paquete java.util.Vector.
      Característica Array Vector
      Tamaño Fijo (definido al crearlo) Dinámico (crece y disminuye automáticamente)
      Performance Más rápido, simple y sin sincronización Ligeramente más lento debido a la sincronización para ser seguro en múltiples hilos
      Acceso a elementos Se accede por índices, rápido y eficiente Se accede por índices, pero es menos eficiente que el array
      Modificación de tamaño No se puede modificar Se puede redimensionar automáticamente
      Uso en Java Utilizado cuando se sabe el tamaño fijo de antemano Utilizado cuando el tamaño puede variar durante la ejecución

    Tipos de variables

    Lenguaje Tipo de Variable Ejemplo
    Java int int edad = 25;
    Java char char letra = 'A';
    Java double double salario = 3000.50;
    Java String String nombre = "Juan";
    Java boolean boolean esActivo = true;
    Java int[] int[] edades = {25, 30, 35};
    Python int edad = 25
    Python float salario = 3000.50
    Python str nombre = "Juan"
    Python bool esActivo = True
    Python list edades = [25, 30, 35]
    C++ int int edad = 25;
    C++ char char letra = 'A';
    C++ double double salario = 3000.50;
    C++ std::string std::string nombre = "Juan";
    C++ bool bool esActivo = true
    C++ int[] int edades[] = {25, 30, 35};
    C# int int edad = 25;
    C# char char letra = 'A';
    C# double double salario = 3000.50;
    C# string string nombre = "Juan";
    C# bool bool esActivo = true;
    C# int[] int[] edades = {25, 30, 35};

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Este cuestionario explora la clasificación de los lenguajes de programación según el nivel de abstracción y el paradigma de programación. Aprende sobre lenguajes de bajo, alto e intermedio, así como sobre paradigmas como el imperativo y la programación orientada a objetos. ¡Pon a prueba tus conocimientos en este tema esencial de la informática!

    More Like This

    High-Level Programming Languages
    12 questions
    PHP OOP: Class Abstraction
    14 questions

    PHP OOP: Class Abstraction

    HeroicRisingAction avatar
    HeroicRisingAction
    Use Quizgecko on...
    Browser
    Browser