quiz Programación · 20 preguntas

Fundamentos de algoritmos y programación

help_outline 20 preguntas
timer ~10 min
auto_awesome Generado por IA
0 / 20
Puntuación : 0%
1

¿Cuál es la diferencia esencial entre la estructura repetitiva WHILE y REPEAT en cuanto al momento de evaluación de la condición?

2

En el algoritmo para cambiar un foco fundido, ¿qué capacidad elemental del robot permite que el paso 'Obtener foco de repuesto' sea ejecutado sin buscar manualmente la caja de repuestos?

3

¿Cuál de las siguientes afirmaciones describe correctamente la relación entre los tipos de datos STRING y CHAR en Pascal/Lazarus?

4

Si una variable STRING está declarada como `var mensaje: string[10];` y se le asigna el valor `'esto es un ejemplo'`, ¿qué ocurrirá?

5

En la sentencia CASE del ejemplo de medallas, ¿qué ocurre si la variable `puesto` tiene el valor 7?

6

¿Cuál es la característica principal que diferencia a un programa bien escrito según el texto?

7

En el proceso de programación, ¿qué fase sigue inmediatamente después de la codificación del programa?

8

Si en un algoritmo se necesita repetir una acción exactamente 10 veces, ¿qué estructura de control es la más adecuada según el texto?

9

¿Cuál de los siguientes operadores en Lazarus devuelve el resto de la división entera de 7 entre 4?

10

En la definición de una variable STRING, ¿qué ocurre si se declara `var mensaje: string;` sin especificar un tamaño?

11

¿Qué paso del algoritmo de cambiar un foco fundido garantiza que el robot suba hasta alcanzar el foco antes de intentar girarlo?

12

En la sentencia IF del ejemplo de maratón, ¿qué ocurre si la variable `numero` tiene el valor 4?

13

¿Cuál es la función de la sentencia `INSERT` en la manipulación de cadenas en Lazarus?

14

En el proceso de análisis del problema, ¿qué paso se describe como la fase donde se define la información que debe obtenerse como salida?

15

¿Qué característica de un programa asegura que pueda ejecutarse en otro entorno sin modificaciones importantes?

16

Si se desea que un bucle se ejecute al menos una vez, pero sin límite fijo de iteraciones, ¿qué estructura de control es la más apropiada según el texto?

17

En la sentencia `DELETE(cad1, 3, 2)`, ¿qué efecto tiene sobre la cadena `cad1`?

18

¿Cuál es el propósito principal de la sentencia `SHOWMESSAGE` en Lazarus?

19

En el contexto de la programación estructurada, ¿qué se entiende por 'estructura de control'?

20

¿Cuál es la razón principal para usar la sentencia `CASE` en lugar de múltiples sentencias `IF` según el texto?

menu_book

Fundamentos de algoritmos y programación

Repasa los conceptos clave antes del quiz

Introducción a los fundamentos de algoritmos y programación

Los algoritmos son secuencias lógicas de pasos que resuelven un problema o realizan una tarea concreta. La programación es la traducción de esos algoritmos a un lenguaje que la computadora pueda ejecutar. En este curso revisaremos los conceptos clave que aparecen en el cuestionario: estructuras repetitivas, tipos de datos en Pascal/Lazarus, sentencias CASE, buenas prácticas de codificación y las fases del ciclo de vida del software.

Estructuras repetitivas: WHILE vs REPEAT

Momento de evaluación de la condición

En la mayoría de los lenguajes estructurados, los bucles WHILE y REPEAT (o DO...WHILE en algunos dialectos) difieren esencialmente en cuándo se evalúa la condición que controla la iteración.

  • WHILE: la condición se evalúa antes de entrar al cuerpo del bucle. Si la expresión es falsa en la primera verificación, el cuerpo nunca se ejecuta.
  • REPEAT (o DO...WHILE): el cuerpo del bucle se ejecuta al menos una vez y la condición se verifica después de la primera iteración. Solo si la condición sigue siendo verdadera se repite el ciclo.

Esta diferencia es crucial cuando el algoritmo necesita garantizar que una acción se realice al menos una vez, como solicitar datos al usuario o intentar una conexión de red antes de validar su éxito.

Capacidades elementales de los robots en algoritmos

Obtener foco de repuesto sin búsqueda manual

En el ejemplo del algoritmo para cambiar un foco fundido, el robot ejecuta el paso "Obtener foco de repuesto" sin necesidad de buscar la caja de repuestos. Esto se debe a que el robot posee una capacidad elemental de localización: conoce de antemano la posición exacta de la caja y tiene acceso directo a ella mediante su brazo manipulador.

En términos de modelado de algoritmos, esta capacidad se representa como una operación atómica que no requiere pasos intermedios de búsqueda o verificación. El robot simplemente ejecuta la instrucción "tomar foco" y el entorno le entrega el objeto deseado.

Tipos de datos en Pascal/Lazarus: STRING y CHAR

Compatibilidad y asignaciones

En Pascal, CHAR representa un carácter individual (un byte que almacena un símbolo), mientras que STRING es una cadena de caracteres de longitud variable o fija, según la declaración.

  • Una variable CHAR puede asignarse a una variable STRING porque la cadena puede contener un único carácter.
  • La inversión no es directa: una STRING que contiene más de un carácter no puede asignarse a un CHAR sin perder información.

Por lo tanto, la afirmación correcta es que una variable CHAR puede asignarse a una variable STRING, pero no al revés.

Strings de longitud fija y truncamiento

Cuando se declara una cadena con una longitud máxima, por ejemplo var mensaje: string[10];, el compilador reserva espacio para 10 caracteres. Si se intenta asignar un texto más largo, como 'esto es un ejemplo' (18 caracteres), el compilador no genera un error; en tiempo de ejecución la cadena se trunca automáticamente a los primeros 10 caracteres.

El resultado almacenado será 'esto es u', y los caracteres restantes se descartan silenciosamente. Esta característica es importante para evitar desbordamientos de buffer y para garantizar la consistencia de los datos en sistemas con recursos limitados.

Sentencia CASE y manejo de valores fuera de rango

La sentencia CASE permite seleccionar entre varias alternativas según el valor de una expresión. En el ejemplo de medallas, los casos cubren los puestos 1 a 6. Cuando la variable puesto toma el valor 7, el CASE recurre a la rama ELSE (o OTRO CASO), que muestra el mensaje "Medalla de FINISHER". No se produce error de rango porque la estructura está diseñada para manejar valores no contemplados mediante la sección ELSE.

Características de un programa bien escrito

Según el texto de referencia, la operatividad es la característica principal que diferencia a un programa bien escrito. Un programa operativo produce los resultados esperados independientemente de otras cualidades como legibilidad, modularidad o transportabilidad. Sin operatividad, incluso el código más elegante no cumple su objetivo fundamental.

Fases del proceso de desarrollo de software

Después de la codificación: implantación

Una vez que el programa ha sido escrito y probado en el entorno de desarrollo, la fase que sigue inmediatamente es la implantación (o despliegue). En esta etapa el software se instala en el entorno de producción, se configuran los recursos necesarios y se pone a disposición de los usuarios finales. La implantación difiere de la fase de mantenimiento, que ocurre posteriormente para corregir errores o agregar mejoras.

Estructuras de control para repeticiones exactas

Cuando se necesita ejecutar una acción un número determinado de veces, la estructura más adecuada es el bucle FOR. En Pascal, la sintaxis FOR i := 1 TO 10 DO ... garantiza que el cuerpo del bucle se repita exactamente 10 iteraciones, sin necesidad de gestionar manualmente contadores o condiciones de salida.

Las alternativas WHILE, REPEAT o CASE no son idóneas para este caso porque requieren una condición adicional o una enumeración exhaustiva de casos, lo que aumenta la complejidad y el riesgo de errores.

Conclusión

Dominar los conceptos revisados en este curso es esencial para cualquier estudiante o profesional que aspire a escribir código claro, eficiente y operativo. Desde la correcta elección de la estructura de bucle (WHILE, REPEAT o FOR) hasta la comprensión de los tipos de datos (STRING vs CHAR) y el manejo de sentencias CASE, cada elemento contribuye a la calidad final del software.

Recuerda que la operatividad es la meta principal: un programa debe cumplir su función antes de preocuparse por la legibilidad o la modularidad. Sin embargo, aplicar buenas prácticas de codificación y seguir el ciclo de vida del desarrollo (definición, codificación, implantación y mantenimiento) garantiza que el software sea sostenible y adaptable a futuros requerimientos.

Deja de subrayar.
Empieza a aprender.

Únete a los estudiantes que ya han generado más de 50.000 quizzes en Quizly. Es gratis para empezar.