Volver a la portadaCiencias Computacionales y Tecnologías Digitales · 1° Bachillerato · Cambiar asignatura
Empezar gratis
Apuntes

Ejercicios: Las estructuras de un programa

Practica★☆☆
Explicá qué es una variable en un programa y poné un ejemplo: qué nombre y qué contenido tendría una variable en un videojuego que guarda los puntos del jugador. ¿Qué…

Explicá qué es una variable en un programa y poné un ejemplo: qué nombre y qué contenido tendría una variable en un videojuego que guarda los puntos del jugador. ¿Qué operación cambiaría su valor al superar un nivel?

Resolver
Practica★☆☆
Explicá qué es una estructura condicional (si... entonces... si no...) y escribí dos ejemplos de decisiones cotidianas expresadas con esa estructura, indicando la…

Explicá qué es una estructura condicional (si... entonces... si no...) y escribí dos ejemplos de decisiones cotidianas expresadas con esa estructura, indicando la condición y las dos acciones posibles.

Resolver
Practica★☆☆
Explicá qué es un bucle y qué problema resuelve frente a repetir las mismas instrucciones muchas veces. Escribí en pseudocódigo un bucle que escriba los números del 1 al…

Explicá qué es un bucle y qué problema resuelve frente a repetir las mismas instrucciones muchas veces. Escribí en pseudocódigo un bucle que escriba los números del 1 al 5.

Resolver
Practica★☆☆
Explicá la diferencia entre una variable y una constante en un programa, con un ejemplo de cada una en un programa de facturación (el precio del producto frente al…

Explicá la diferencia entre una variable y una constante en un programa, con un ejemplo de cada una en un programa de facturación (el precio del producto frente al porcentaje de IVA).

Resolver
Practica★☆☆
Los datos de un programa tienen tipo: entero, decimal, texto o booleano. Indicá el tipo más adecuado para cada dato y justificalo: la edad de una persona, su altura en…

Los datos de un programa tienen tipo: entero, decimal, texto o booleano. Indicá el tipo más adecuado para cada dato y justificalo: la edad de una persona, su altura en metros, su nombre y si salvó o no.

Resolver
Practica★☆☆
Explicá qué es una función en un programa y dos ventajas de dividir el código en funciones con nombre (reutilizar sin copiar, entender y probar cada parte por separado).

Explicá qué es una función en un programa y dos ventajas de dividir el código en funciones con nombre (reutilizar sin copiar, entender y probar cada parte por separado).

Resolver
Practica★☆☆
¿Qué es un comentario en el código fuente? Explicá a quién van dirigidos los comentarios (no a la computadora, sino a quien leerá el código después) y qué debe explicar…

¿Qué es un comentario en el código fuente? Explicá a quién van dirigidos los comentarios (no a la computadora, sino a quien leerá el código después) y qué debe explicar un buen comentario (el porqué de las decisiones, no lo que ya se ve).

Resolver
Practica★☆☆
Leé este fragmento y hacé la traza: Indicá qué valor se muestra por pantalla y explicá por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Leé este fragmento y hacé la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

Indicá qué valor se muestra por pantalla y explicá por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Resolver
Practica★★☆
Leé este programa en pseudocódigo: Hacé la traza paso a paso (valor de suma y de n al final de cada vuelta) e indicá cuántas veces se repite el bucle y qué valor se…

Leé este programa en pseudocódigo:

inicio

    suma ← 0

    n ← 1

    mientras n ≤ 5 hacer

        suma ← suma + n

        n ← n + 1

    fin mientras

    escribir suma

fin

Hacé la traza paso a paso (valor de suma y de n al final de cada vuelta) e indicá cuántas veces se repite el bucle y qué valor se escribe al final.

Resolver
Practica★★☆
Escribí en pseudocódigo un programa que lea la nota de un escrito (un número de 0 a 10) y escriba «aprobado» si la nota es 5 o mayor, y «perdido» en caso contrario. Usá…

Escribí en pseudocódigo un programa que lea la nota de un escrito (un número de 0 a 10) y escriba «aprobado» si la nota es 5 o mayor, y «perdido» en caso contrario. Usá una variable, una lectura de dato y una estructura condicional.

Resolver
Practica★★☆
El diagrama de flujo de la figura representa un programa con un bucle: lee un número n y, mientras n sea mayor que 0, escribe su valor y le resta 1, como se muestra en…

El diagrama de flujo de la figura representa un programa con un bucle: lee un número n y, mientras n sea mayor que 0, escribe su valor y le resta 1, como se muestra en la figura.

inicio leer n n > 0 ? sí escribir n n ← n − 1 no fin

Si el usuario ingresa n = 3: (a) hacé la traza indicando qué valores toma n y qué se escribe en cada vuelta; (b) indicá cuántas veces se ejecuta el cuerpo del bucle; (c) explicá qué ocurriría si el usuario ingresara n = 0.

Resolver
Practica★★☆
Este programa clasifica a una persona según su edad: Hacé la traza para una entrada de 17 y para una de 21, indicando en cada caso qué condición se evalúa y qué se…

Este programa clasifica a una persona según su edad:

inicio

    leer edad

    si edad ≥ 18 entonces

        escribir "mayor de edad"

    si no

        escribir "menor de edad"

    fin si

fin

Hacé la traza para una entrada de 17 y para una de 21, indicando en cada caso qué condición se evalúa y qué se escribe por pantalla.

Resolver
Practica★★☆
Escribí en pseudocódigo un programa que escriba la cuenta atrás del 10 al 1 y, al terminar el bucle, escriba «¡despegue!». Usá una variable y un bucle mientras.

Escribí en pseudocódigo un programa que escriba la cuenta atrás del 10 al 1 y, al terminar el bucle, escriba «¡despegue!». Usá una variable y un bucle mientras.

Resolver
Practica★★☆
Este programa suma los números que ingresa el usuario hasta que escribe un cero: Hacé la traza para la secuencia de entradas 4, 3, 0: indicá el valor de n y de suma tras…

Este programa suma los números que ingresa el usuario hasta que escribe un cero:

inicio

    suma ← 0

    leer n

    mientras n ≠ 0 hacer

        suma ← suma + n

        leer n

    fin mientras

    escribir suma

fin

Hacé la traza para la secuencia de entradas 4, 3, 0: indicá el valor de n y de suma tras cada lectura y qué se escribe al final. Explicá además por qué el primer leer n está fuera del bucle.

Resolver
Practica★★☆
El diagrama de flujo de la figura representa el control de acceso de un dispositivo: hay un máximo de tres intentos para introducir la clave correcta, como se muestra en…

El diagrama de flujo de la figura representa el control de acceso de un dispositivo: hay un máximo de tres intentos para introducir la clave correcta, como se muestra en la figura.

inicio intentos ← 0 ¿quedan intentos? no Acceso bloqueado sí leer clave ¿clave correcta? sí Acceso permitido no intentos ← intentos + 1

(a) Explicá el recorrido completo del programa cuando el usuario falla la clave dos veces y acierta a la tercera. (b) Indicá el número máximo de veces que el programa pide la clave. (c) Razoná por qué la variable intentos se incrementa solo en una de las ramas del segundo rombo.

Resolver
Practica★★☆
Este programa debería escribir los números del 1 al 5, pero tiene un fallo: a) Identificá el error: ¿qué le falta al cuerpo del bucle? b) Explicá qué ocurre al ejecutar…

Este programa debería escribir los números del 1 al 5, pero tiene un fallo:

inicio

    n ← 1

    mientras n ≤ 5 hacer

        escribir n

    fin mientras

fin
  1. a) Identificá el error: ¿qué le falta al cuerpo del bucle?
  1. b) Explicá qué ocurre al ejecutar el programa tal como está escrito.
  1. c) Escribí el pseudocódigo corregido.
Resolver
Practica★★★
Diseñá en pseudocódigo el algoritmo de control para un semáforo de cruce peatonal regulado por pulsador que gestione de forma segura el tráfico de una avenida con los…

Diseñá en pseudocódigo el algoritmo de control para un semáforo de cruce peatonal regulado por pulsador que gestione de forma segura el tráfico de una avenida con los siguientes requisitos:

  1. En reposo, el semáforo vehicular permanece en verde.

  2. Para evitar retenciones provocadas por llamadas continuas, debe garantizarse un tiempo mínimo de verde vehicular de $30$ segundos entre dos fases peatonales consecutivas.

  3. Una vez transcurrido dicho tiempo mínimo y detectada la pulsación de un peatón, la secuencia obligatoria es: ámbar vehicular durante $3$ segundos, rojo vehicular y verde peatonal durante $15$ segundos, y finalmente verde peatonal parpadeante durante $4$ segundos antes de restablecer el verde vehicular.

(a) Escribí el pseudocódigo del sistema estructurado dentro de un bucle continuo de supervisión.

(b) Analizá qué fallo de bloqueo sufriría el cruce si el sensor se averiara en estado activo continuo (pulsador atascado) y justificá cómo tu diseño previene que la avenida quede colapsada indefinidamente.

(c) Justificá técnicamente por qué en sistemas de control concurrentes en tiempo real es preferible consultar una marca temporal de reloj (tiempo_actual()) en lugar de suspender la CPU mediante esperas bloqueantes pasivas (esperar()).

Resolver
Practica★★★
Un analista de ciberseguridad revisa el siguiente pseudocódigo diseñado para controlar el acceso con tarjeta y PIN en un terminal bancario: (a) Identificá y justificá un…

Un analista de ciberseguridad revisa el siguiente pseudocódigo diseñado para controlar el acceso con tarjeta y PIN en un terminal bancario:

inicio

    pin_secreto ← 3852

    intentos ← 0

    bloqueada ← falso

    mientras intentos < 3 y no bloqueada hacer

        leer pin_ingresado

        si pin_ingresado = pin_secreto entonces

            escribir "Bienvenido al sistema"

        si no

            intentos ← intentos + 1

            escribir "PIN incorrecto"

        fin si

    fin mientras

    si intentos = 3 entonces

        bloqueada ← verdadero

        escribir "Tarjeta bloqueada por seguridad"

    fin si

fin

(a) Identificá y justificá un fallo grave de control de flujo que ocurre cuando el usuario ingresa el PIN correcto en el primer intento.

(b) Predecí el comportamiento del programa y el valor final de las variables intentos y bloqueada si el usuario ingresa la secuencia de entradas: 1111, 3852, 9999.

(c) Reescribí el algoritmo en pseudocódigo corrigiendo el flujo de ejecución para garantizar una salida limpia inmediata tras el acierto y el bloqueo estricto tras tres fallos consecutivos, asegurando que bajo ninguna circunstancia se muestre el mensaje de bienvenida si la tarjeta queda bloqueada.

Resolver
Practica★★★
La comisión de garantía de calidad de un liceo evalúa el siguiente algoritmo, destinado a determinar la calificación final de un módulo técnico a partir de tres notas…

La comisión de garantía de calidad de un liceo evalúa el siguiente algoritmo, destinado a determinar la calificación final de un módulo técnico a partir de tres notas parciales ($N_1, N_2, N_3 \in [0{,}0; 10{,}0]$). La normativa oficial establece: «El alumno resulta 'Apto' si la media ponderada ($30\,\%$ para $N_1$, $30\,\%$ para $N_2$ y $40\,\%$ para $N_3$) es igual o superior a $5{,}0$, siempre y cuando ninguna de las notas individuales sea inferior a $4{,}0$; en caso contrario, resultará 'No apto'».

inicio

    leer N1, N2, N3

    media ← N1 · 0,3 + N2 · 0,3 + N3 · 0,4

    si media ≥ 5,0 o (N1 ≥ 4,0 y N2 ≥ 4,0 y N3 ≥ 4,0) entonces

        escribir "Apto"

    si no

        escribir "No apto"

    fin si

fin

(a) Explicá detalladamente por qué el programa no genera ningún error de sintaxis y se ejecuta con normalidad a pesar de contener un error lógico crítico en la estructura condicional.

(b) Diseñá dos ternas de notas de prueba $(N_1, N_2, N_3)$ que pongan en evidencia el fallo del algoritmo: una que cause un falso positivo (el programa declare 'Apto' debiendo ser 'No apto') y otra que cause un falso negativo (o justificá si este último es posible con la expresión actual).

(c) Reescribí el algoritmo en pseudocódigo corrigiendo la condición lógica y añadiendo una comprobación previa que verifique que las tres notas introducidas se encuentren dentro del rango válido $[0{,}0; 10{,}0]$.

Resolver