- Aprender
- Informática
- Ciencias de la computación
- Introducción a la informática
- Pensamiento computacional
Pensamiento computacional y resolución de problemas
PrincipianteUnidad 1 de 7 del curso Curso de Introducción a la informática
Lo que aprenderás
- Describe qué estudian las ciencias de la computación, en qué se diferencian de la programación por sí sola y cómo el pensamiento computacional transforma un problema en una solución que puede ejecutar una persona o una computadora.
- Describe qué estudian las ciencias de la computaciónExplica las ciencias de la computación como el estudio de la computación y la información, nombra sus áreas principales y describe toda computación como una transformación de entradas en salidas.
- Describe el pensamiento computacional y sus cuatro técnicasDefine el pensamiento computacional, nombra la descomposición, el reconocimiento de patrones, la abstracción y el diseño de algoritmos, y úsalos conjuntamente en un proceso de resolución de problemas.
- Describe qué estudian las ciencias de la computación
- Usa la descomposición, el reconocimiento de patrones y la abstracción para transformar un problema grande y poco claro en partes pequeñas y generales, fáciles de resolver.
- Descompón un problema en partes manejablesDivide un problema en subproblemas, organízalos en una jerarquía y decide cuándo una parte es lo bastante pequeña para resolverla directamente.
- Reconoce patrones y generaliza solucionesEncuentra semejanzas dentro de un problema y entre problemas, reutiliza soluciones para las partes repetidas y generaliza un patrón para que una solución cubra muchos casos.
- Usa la abstracción para centrarte en lo relevanteConserva los detalles necesarios para un propósito, oculta los demás y usa modelos y procedimientos con nombre como abstracciones con entradas y salidas claras.
- Descompón un problema en partes manejables
- Describe qué hace que un algoritmo sea correcto y útil, y escribe algoritmos en pseudocódigo con variables, entradas y salidas, decisiones y bucles.
- Explica qué es un algoritmo y qué características debe tener un buen algoritmoDefine un algoritmo, comprueba que las instrucciones sean precisas y completas, y compara distintos algoritmos para el mismo problema según su corrección y número de pasos.
- Almacena y modifica datos mediante variables, entradas y salidasEscribe pseudocódigo que lea entradas, almacene y actualice valores en variables, calcule con operadores y produzca salidas.
- Toma decisiones mediante la selecciónEscribe condiciones con operadores de comparación y lógicos, y usa IF, ELSE y ELSE IF para que un algoritmo siga el camino correcto con cada entrada.
- Repite pasos mediante buclesUsa bucles controlados por contador y por condición, lleva sumas y recuentos acumulados, y evita los bucles infinitos y los errores de desfase de una unidad.
- Explica qué es un algoritmo y qué características debe tener un buen algoritmo
- Dibuja y lee diagramas de flujo, convierte entre diagramas de flujo y pseudocódigo, y comprueba algoritmos siguiendo su ejecución y probándolos con datos bien elegidos.
- Lee y dibuja diagramas de flujoUsa los símbolos estándar de los diagramas de flujo y las líneas de flujo para mostrar los pasos de un algoritmo y leer el camino que sigue.
- Representa decisiones y bucles en diagramas de flujo y pseudocódigoDibuja la selección y la iteración en diagramas de flujo y convierte un algoritmo entre diagrama de flujo y pseudocódigo en ambos sentidos.
- Sigue, prueba y depura un algoritmoComprueba un algoritmo a mano con una tabla de seguimiento, elige datos de prueba normales, de valores límite y no válidos, y encuentra y corrige los tres tipos de errores.
- Lee y dibuja diagramas de flujo
- Usa un entorno de programación por bloques como Scratch para crear programas con secuencia, bucles, decisiones, variables, eventos y bloques personalizados, y relaciónalos con el pseudocódigo y el código textual.
- Familiarízate con un entorno de programación por bloquesExplica cómo funciona la programación por bloques, nombra las partes de un proyecto de Scratch y usa las formas y categorías de los bloques para construir un programa de bloques.
- Crea programas con bucles, decisiones y variables mediante bloquesUsa bloques repetir, por siempre, si-entonces-si no y repetir hasta que, variables y el bloque preguntar para crear programas interactivos, y léelos como algoritmos.
- Usa eventos y bloques personalizados y da el paso al código textualInicia programas de bloques mediante eventos, coordina objetos con mensajes, define bloques personalizados con entradas y aplica las mismas ideas a los lenguajes textuales.
- Familiarízate con un entorno de programación por bloques
Guía de estudio de Pensamiento computacional
1Qué preguntas plantean las ciencias de la computación y cómo abordar un problema
Las ciencias de la computación comienzan con preguntas sobre la información y los procesos usados para manejarla. Describir una tarea mediante sus entradas y salidas aclara el objetivo antes de escribir código. El pensamiento computacional aporta formas de organizar el trabajo, reconocer estructuras reutilizables, seleccionar los detalles relevantes y construir una solución que pueda comprobarse. Estos métodos son útiles tanto en la planificación cotidiana como en los programas.
1.1 La computación, la información y los problemas que resuelven
Una computadora puede calcular una ruta, reproducir un sonido u organizar una lista de nombres. Las ciencias de la computación estudian los procesos que hay detrás de estas tareas: cómo se representa y maneja la información, qué problemas pueden resolverse y cómo construir sistemas que ejecuten las soluciones.
Describe una computación
Un modelo inicial útil es entrada → proceso → salida. Un planificador de rutas recibe un punto de partida y un destino. Busca información sobre carreteras y después devuelve una ruta, una distancia en kilómetros y un tiempo de viaje. La información sobre carreteras también son datos que necesita el proceso. El resultado visible es solo una parte de la computación.
Enuncia un problema computacional antes de elegir su método. Por ejemplo: «Entrada: una lista de nombres. Salida: los mismos nombres en orden alfabético». Esto especifica cómo debe ser un resultado correcto. Deja margen para distintos métodos de producirlo. Si la salida omite un nombre, no resuelve el problema, aunque los nombres restantes estén ordenados.
Más que escribir código
La programación consiste en escribir instrucciones en un lenguaje que una computadora pueda ejecutar. Es una actividad importante dentro de las ciencias de la computación. La disciplina también se pregunta si existe una solución, cuánto trabajo requiere y cómo pueden usarla las personas de forma segura y sencilla.
| Área | Una pregunta que estudia |
|---|---|
| Algoritmos y teoría | ¿Qué pasos resuelven un problema y qué se puede computar? |
| Lenguajes de programación | ¿Cómo pueden expresarse las instrucciones con claridad? |
| Sistemas informáticos | ¿Cómo sustentan la computación el hardware, los sistemas operativos y las redes? |
| Datos y bases de datos | ¿Cómo puede almacenarse, organizarse y recuperarse la información? |
| Inteligencia artificial y aprendizaje automático | ¿Cómo pueden los sistemas realizar tareas como reconocer patrones? |
| Interacción persona-computadora | ¿Cómo pueden las personas comprender y usar un sistema? |
| Seguridad | ¿Cómo pueden protegerse los datos y los sistemas? |
| Gráficos por computadora | ¿Cómo pueden crearse y mostrarse imágenes? |
| Ingeniería de software | ¿Cómo pueden los equipos construir y mantener programas fiables? |
Los límites se solapan. Diseñar un editor de imágenes puede implicar gráficos, interacción con el usuario e ingeniería de software a la vez. La computación también apoya otras disciplinas: los biólogos comparan secuencias de ADN, los científicos del clima modelan la atmósfera y los artistas usan software para crear imágenes y música.
Disciplinas relacionadas y límites prácticos
La ingeniería de computadores se centra en dispositivos físicos como procesadores y placas de circuitos. Las tecnologías de la información, o TI, se centran en seleccionar, configurar y mantener en funcionamiento los sistemas de una organización. La ciencia de datos combina la estadística y la computación para extraer conclusiones de los datos. Estas disciplinas comparten métodos con las ciencias de la computación, pero ponen el énfasis en trabajos distintos.
Las computadoras ejecutan instrucciones precisas con rapidez, a menudo miles de millones de operaciones sencillas por segundo. La velocidad no arregla una instrucción poco clara. «Añade un poco de sal» deja una cantidad sin especificar; un proceso destinado a ejecutarse automáticamente necesita una acción precisa.
También hay límites más allá de la velocidad. Algunos problemas enunciados con precisión no tienen solución algorítmica. Otros tienen soluciones que requieren demasiados pasos para ser prácticas. Preguntarse qué puede conseguir una computadora forma parte de las propias ciencias de la computación.
Puntos clave
- Las ciencias de la computación estudian la computación, la información y los sistemas que la procesan.
- El enunciado de un problema define las entradas válidas y las salidas requeridas antes de elegir un método.
- La programación expresa instrucciones; las ciencias de la computación también estudian la corrección, la facilidad de uso, la seguridad y los límites computacionales.
- Entrada, proceso y salida describen las funciones de los datos y los pasos en una computación.
1.2 Convierte un problema en un plan que puedas comprobar
El pensamiento computacional aclara un problema lo suficiente para resolverlo paso a paso. Una persona puede ejecutar la solución, una computadora puede ejecutarla o ambas pueden repartirse el trabajo. Ese pensamiento incluye decidir qué significa el problema y cómo debe comprobarse un resultado.
Cuatro técnicas que funcionan juntas
La descomposición divide un problema en partes más pequeñas. El reconocimiento de patrones encuentra semejanzas o trabajo repetido. La abstracción conserva los detalles necesarios para un propósito y omite los demás. El diseño de algoritmos transforma una solución en pasos precisos y ordenados.
Estas técnicas son herramientas a las que puedes volver cuando sea necesario. No son cuatro casillas que deban completarse en un orden fijo. Una prueba fallida puede revelar un subproblema que falta. Un subproblema repetido puede sugerir un procedimiento reutilizable. Un modelo puede necesitar un detalle más antes de que el algoritmo funcione.
Jeannette Wing ayudó a popularizar el término «pensamiento computacional» en un ensayo de 2006. Su mensaje central era que este enfoque es útil para todos, más allá de las personas que trabajan como programadores.
Comprende, planifica, ejecuta y comprueba
El matemático George Pólya describió cuatro etapas de resolución de problemas en 1945. En informática, llevan a acciones concretas:
- Comprende el problema. Identifica entradas, salidas, restricciones y criterios de éxito.
- Elabora un plan. Elige tareas más pequeñas, patrones útiles y un algoritmo.
- Ejecuta el plan. Exprésalo y ejecútalo mediante pseudocódigo, un diagrama de flujo o un programa.
- Revisa. Compara el resultado con los criterios de éxito y modifica la solución donde haga falta.
Una restricción es una regla que la solución debe respetar, como un tiempo máximo disponible. Un criterio de éxito es una forma de juzgar el resultado. «Producir una lista de compras combinada con las cantidades necesarias» se puede comprobar. «Mejorar las compras» deja el resultado poco claro.
Desarrolla un plan de comidas
Supón que necesitas cenas para una semana. Las entradas incluyen las recetas, el número de personas y los alimentos ya disponibles. La salida es un plan y una lista de compras. Las necesidades alimentarias y el tiempo disponible para cocinar son restricciones.
Descompón el trabajo en elegir las comidas, elaborar la lista y cocinar. El reconocimiento de patrones muestra que varias recetas usan arroz y cebolla. La abstracción representa un ingrediente mediante su nombre y su cantidad, como «arroz, 1 kg», sin conservar una marca cuando esta no afecta al plan.
Ahora puede ordenarse el algoritmo de compras: elegir las comidas, enumerar sus ingredientes, combinar los ingredientes repetidos, restar lo que ya hay en la despensa y comprar lo que falta. Combinar las cantidades antes de comprobar la despensa evita restar las mismas existencias por separado para cada receta.
Comprueba el resultado comparándolo con las comidas. Todos los ingredientes necesarios deben estar disponibles en cantidad suficiente. Si falta un ingrediente, sigue cómo se elaboró la lista y modifica el paso correspondiente.
Un fallo habitual es empezar a programar antes de decidir qué resultado se necesita. Un programa rápido puede resolver fielmente el problema equivocado. Las personas siguen eligiendo el modelo, las restricciones y los pasos; la computadora ejecuta las instrucciones que expresan esas decisiones.
Puntos clave
- El pensamiento computacional hace que las soluciones sean lo bastante precisas para que las ejecuten personas o computadoras.
- La descomposición, el reconocimiento de patrones, la abstracción y el diseño de algoritmos pueden usarse en cualquier orden que resulte útil.
- Anota las entradas, las salidas, las restricciones y los criterios de éxito antes de implementar una solución.
- Usa las pruebas para orientar las modificaciones del plan, el modelo o los pasos.
- El enfoque se aplica tanto a la planificación cotidiana como al software.
2Divide los problemas en partes útiles y reutilizables
Una tarea complicada resulta más fácil de resolver cuando se ven sus partes, sus estructuras repetidas y sus detalles esenciales. La descomposición asigna una función a cada parte, el reconocimiento de patrones revela métodos que puedes reutilizar y la abstracción permite trabajar con un modelo más sencillo. Estos ejemplos muestran cómo elegir esos límites y comprobar que el plan simplificado siga conteniendo todo lo necesario para completar la tarea original.
2.1 Divide el trabajo en partes que encajen
Puede ser difícil tener presente un problema grande en su totalidad. La descomposición lo sustituye por subproblemas más pequeños que puedes comprender, resolver y comprobar por separado. Las partes deben seguir combinándose para formar una solución al problema original.
Avanza del conjunto a los detalles
Empieza por la tarea principal. Divídela en unas pocas responsabilidades con sentido y después detalla cada responsabilidad. Esto es la descomposición descendente. Un diagrama de descomposición con forma de árbol sitúa el problema completo arriba y las tareas más pequeñas debajo. Las ramas muestran a qué tarea pertenece cada tarea más pequeña.
Para una aplicación de cuestionarios, las partes principales son almacenar preguntas y respuestas, formular preguntas, comprobar respuestas, y mantener y mostrar la puntuación. La parte «formular una pregunta» puede dividirse en mostrar el texto de la pregunta, mostrar las opciones de respuesta y leer la elección del estudiante.
Un diagrama de estructura textual podría ser así:
Run a quiz
Store questions and answers
Ask a question
Show question text
Show answer options
Read the choice
Check the answer
Keep and show the score
Estas ramas describen responsabilidades. Su posición vertical por sí sola no da el orden completo de ejecución. Por ejemplo, la aplicación repite la formulación y la comprobación mientras queden preguntas. Un algoritmo aparte describe ese flujo.
Decide cuándo dejar de dividir
Una parte es lo bastante pequeña cuando puedes ver cómo resolverla directamente o cuando un método o herramienta existente se encarga de ella. «Leer la elección» puede ser una tarea utilizable una vez que sabes cómo recoge la entrada la interfaz. Dividirla en movimientos individuales de las manos añadiría detalles que no ayudan a diseñar la aplicación.
Haz primero la división principal. Si empiezas describiendo acciones diminutas, es fácil dedicar tiempo a una pantalla y olvidar una responsabilidad completa, como decidir cuándo termina el cuestionario.
Identifica las dependencias
Una dependencia significa que una tarea necesita el resultado de otra. El cuestionario debe obtener una elección antes de comprobarla y comprobarla antes de actualizar la puntuación. Anota qué recibe y qué produce cada parte. Esto aclara cómo se transmite la información entre ellas.
Las partes deben ser lo más independientes posible. Si la visualización cambia de cuatro botones de respuesta a otro método de entrada, el cálculo de la puntuación debería seguir funcionando con el resultado comprobado. Unos límites claros permiten que distintas personas construyan partes separadas al mismo tiempo y facilitan los cambios posteriores.
La independencia no significa que las partes nunca intercambien información. Necesitan entradas y salidas acordadas. Una parte de puntuación que espera VERDADERO o FALSO no puede usar directamente el texto sin procesar de la parte que muestra preguntas sin un paso que compruebe la respuesta.
Busca huecos y solapamientos
Vuelve a leer el problema original y pregúntate si completar todas las partes terminaría el trabajo completo. El primer diagrama no muestra cuándo se detiene el cuestionario. Añade esa responsabilidad al control general del cuestionario. Pregúntate también si dos partes modifican ambas la puntuación, lo que podría contar una respuesta correcta dos veces.
Comprueba cada parte pequeña por separado y después el proceso combinado. Una visualización correcta de preguntas y un comprobador correcto de respuestas pueden fallar al trabajar juntos si uno envía la elección en un formato distinto del que espera el otro.
Puntos clave
- La descomposición separa un problema completo en responsabilidades más pequeñas.
- Detalla las partes principales antes de describir sus acciones más pequeñas.
- Detente cuando una parte pueda resolverse directamente o mediante una solución existente.
- Las dependencias determinan qué resultados deben estar disponibles antes de que empiece otra tarea.
- Comprueba que las partes combinadas no dejen huecos ni realicen ninguna tarea dos veces.
- Unas entradas y salidas claras facilitan la construcción y combinación de partes separadas.
2.2 Encuentra el patrón y hazlo reutilizable
El trabajo repetido suele ocultar un método reutilizable. El reconocimiento de patrones consiste en buscar semejanzas, repeticiones o tendencias dentro de un problema y entre problemas distintos. La pregunta útil es qué permanece igual y qué cambia.
Encuentra repeticiones dentro de una tarea
Para dibujar un cuadrado, un lápiz en movimiento puede avanzar 100 pasos y girar a la derecha 90 grados, cuatro veces. El par de acciones se repite. Un bucle expresa ese par una vez y establece el número de repeticiones:
REPEAT 4 TIMES
Move forward 100 steps
Turn right 90 degrees
Este patrón facilita ver la estructura. También facilita un cambio: modificar la distancia de avance en un solo lugar cambia todos los lados.
Sustituye los detalles que cambian por parámetros
La generalización hace que una solución funcione para una familia de casos. Un parámetro es una entrada con nombre que representa un detalle que puede cambiar. Para los polígonos regulares, el número de lados y la longitud del lado pueden ser parámetros.
Un lápiz que recorre el contorno de un polígono regular gira una vuelta completa. El giro en cada vértice es:
Aquí, es el número de lados. Repite el par de avanzar y girar veces, manteniendo la misma longitud de lado y el mismo giro cada vez.
| Polígono regular | Lados | Giro en cada vértice |
|---|---|---|
| Triángulo | 3 | 120° |
| Cuadrado | 4 | 90° |
| Pentágono | 5 | 72° |
| Hexágono | 6 | 60° |
El giro es el cambio en la dirección del lápiz, no el ángulo interior del polígono. Para un triángulo, usar un giro de 60 grados no produciría el recorrido de tres lados deseado.
Reconoce el mismo método en problemas distintos
Encontrar el vuelo más barato, la ruta más corta y la nota más alta implica recordar el mejor candidato visto hasta el momento. Empieza con un candidato. Examina cada candidato siguiente y sustituye el recordado cuando el nuevo sea mejor. El sentido de la comparación cambia entre el menor y el mayor, pero el patrón general sigue siendo útil.
Los patrones también pueden organizar datos. Agrupar los gastos en alimentación, transporte y vivienda hace visibles las características comunes. Si las ventas de paraguas aumentan repetidamente cuando se pronostica lluvia, una tienda puede usar la tendencia para planificar sus existencias. Una tendencia es un indicio que debe examinarse; la razón por la que se cumple importa al decidir si continuará.
Comprueba el patrón propuesto
Los números 1, 2, 4 no determinan de forma única el siguiente número. Duplicar da 8. Aumentar las diferencias de uno en uno da 7, porque las diferencias hasta ahora son 1 y 2. Se necesitan más casos o una regla que explique la secuencia para decidir qué patrón encaja con el problema.
Busca diferencias relevantes antes de reutilizar una solución. Dividir una cuenta a partes iguales y dividirla según lo que pidió cada persona implican un total compartido. La división a partes iguales resuelve la primera tarea, pero la segunda necesita el pedido de cada persona. Reutiliza la estructura común solo después de identificar el detalle que cambia el resultado requerido.
Puntos clave
- El reconocimiento de patrones encuentra estructuras reutilizables dentro de los problemas y entre ellos.
- La generalización sustituye los detalles que cambian por parámetros con nombre.
- Un polígono regular de n lados usa n avances iguales y giros de 360° / n.
- Comprueba más casos y las diferencias relevantes antes de confiar en un patrón.
2.3 Conserva los detalles necesarios para el propósito
Un modelo puede ser más sencillo que la realidad y seguir siendo útil. La abstracción conserva la información necesaria para un propósito concreto y omite otros detalles. Su calidad depende de si puede responder a las preguntas que plantea la tarea.
Elige un modelo para la tarea
Un mapa del metro conserva las estaciones, su orden en cada línea y los lugares donde conectan las líneas. Esos detalles ayudan a planificar un viaje. Puede distorsionar las distancias y omitir el trazado de las calles porque su propósito principal es mostrar conexiones.
Ese mismo mapa es una mala herramienta para decidir qué distancia hay que caminar entre dos estaciones. El modelo omitió un detalle necesario para el nuevo propósito. Un detalle es relevante por el problema, no porque resulte interesante en general.
Considera dos modelos del mismo automóvil:
| Propósito | Detalles que necesita el modelo |
|---|---|
| Juego de carreras | Velocidad, posición y dirección |
| Sistema de estacionamiento | Matrícula, hora de llegada y plaza |
El juego de carreras necesita actualizar el movimiento. El estacionamiento necesita identificar el automóvil y registrar su estancia. Ninguno de los modelos debe conservar todas las características físicas del automóvil.
Oculta pasos detrás de un nombre claro
La abstracción también permite usar lo que hace un componente sin repasar cómo funciona cada vez. Elegir un programa de la lavadora no requiere controlar directamente su motor.
En un algoritmo, un procedimiento es un grupo de pasos con nombre. Llamarlo por ese nombre ejecuta esos pasos. Un nombre como average(list) comunica una tarea y oculta las operaciones aritméticas repetidas. Un procedimiento que envía un resultado de vuelta a quien lo llama devuelve un valor. Quien lo llama puede guardar ese valor o usarlo en otro cálculo.
Un parámetro da a un procedimiento una entrada que puede cambiar. drawPolygon(sides, length) tiene dos parámetros. La llamada drawPolygon(6, 100) proporciona seis lados y una longitud de 100 pasos. Esto combina la abstracción, que oculta los pasos de dibujo, con la generalización, que admite distintas formas y tamaños.
Los límites de un procedimiento deben estar claros: ¿qué entradas acepta y qué resultado o acción produce? Para una media, una lista vacía necesita un tratamiento especial porque no hay un recuento por el que dividir. Ocultar los pasos no elimina la necesidad de definir entradas utilizables.
Construye capas de comprensión
Una aplicación de chat ofrece una forma de enviar un mensaje. Debajo, el sistema operativo ofrece servicios que la aplicación puede usar. Más abajo, el hardware ejecuta operaciones. Cada capa se apoya en el comportamiento de la siguiente sin exponer todos los detalles internos a su usuario. Un cambio interno puede quedar limitado a una capa si se mantiene el comportamiento prometido.
Las técnicas se apoyan mutuamente. La descomposición identifica partes. El reconocimiento de patrones encuentra partes con una estructura común. La abstracción da a esas partes nombres y límites claros para que puedan combinarse.
Un error habitual de abstracción es eliminar un dato que determina si un resultado funciona. Un planificador de rutas que ignore las calles de sentido único puede proponer un recorrido imposible en vehículo. Para comprobar un modelo, enumera las decisiones que debe permitir tomar y confirma que los datos conservados bastan para cada una.
Puntos clave
- La abstracción conserva la información relevante para un propósito y oculta los detalles innecesarios.
- Un mismo objeto puede necesitar modelos distintos para tareas distintas.
- Un procedimiento da nombre a pasos reutilizables; los parámetros proporcionan entradas y un valor devuelto regresa a quien lo llama.
- Un procedimiento con parámetros puede proporcionar tanto abstracción como generalización.
- Las capas permiten que un componente se apoye en el comportamiento de otro sin exponer todos sus pasos internos.
3Expresa algoritmos con variables, decisiones y bucles
Un algoritmo transforma un plan en instrucciones cuyo comportamiento puede seguirse con exactitud. Las variables guardan el estado cambiante, las condiciones eligen caminos y los bucles repiten el trabajo hasta que un recuento o una condición lo termina. Recorrer estas estructuras línea por línea muestra por qué importa el orden de las instrucciones. También compararás métodos según su corrección y número de pasos, y usarás pseudocódigo para expresar cálculos, decisiones y procesamiento repetido.
3.1 Escribe un método que termine y dé el resultado correcto
Un algoritmo es un conjunto finito y ordenado de instrucciones precisas para resolver un problema o completar una tarea. Para una entrada válida, produce la salida requerida tras un número finito de pasos. Una receta, unas instrucciones de montaje y la división larga usan esta idea.
Comprueba las propiedades del método
Un algoritmo útil tiene entradas y salidas definidas. Cada paso debe ser lo bastante preciso para tener un único significado y lo bastante efectivo para poder ejecutarse. Los pasos deben terminar y su resultado debe ser correcto para toda entrada válida.
«Encuentra el número mayor» nombra un objetivo, pero no especifica un método. «Examina cada número y conserva el mayor visto hasta el momento» proporciona un método que puede desarrollarse en instrucciones. También plantea una pregunta sobre la entrada: ¿qué debería ocurrir si la lista está vacía? Definir la entrada válida evita dejar el método incompleto.
Las instrucciones cotidianas pueden dejar huecos que las personas completan con su experiencia. «Pon la mermelada en el pan» omite abrir el frasco y extender una cantidad sobre una superficie. Al diseñar un método para su ejecución automática, indica las acciones que necesita el sistema ejecutor y colócalas en un orden utilizable.
Separa el método de su expresión
Un algoritmo es el método de solución. Un programa expresa un método en un lenguaje de programación para que una computadora pueda ejecutarlo. El mismo algoritmo puede aparecer en pseudocódigo, en un diagrama de flujo y en programas escritos en distintos lenguajes.
Tres estructuras de control organizan la ejecución:
| Estructura | Qué ocurre |
|---|---|
| Secuencia | Los pasos se ejecutan uno tras otro. |
| Selección | Una condición elige un camino. |
| Iteración | Se repite un bloque de pasos. |
Junto con las variables, estas estructuras bastan para expresar cualquier algoritmo. Esta es la idea de un resultado clásico publicado por Böhm y Jacopini en 1966. Un algoritmo puede combinarlas: recorrer repetidamente una lista, comprobar cada valor y actualizar un resultado almacenado mediante una secuencia.
Compara métodos correctos
Supón que una guía telefónica ordenada alfabéticamente tiene 1000 páginas. Comprobar las páginas de una en una puede requerir 1000 comprobaciones. Pasar dos páginas cada vez y comprobar solo una de cada dos requiere hasta unas 500 comprobaciones, más un paso atrás si se ha pasado el nombre.
Otro método abre la sección restante por la mitad y conserva la mitad que puede contener el nombre. Como máximo, 10 divisiones por la mitad reducen 1000 páginas posibles a una:
1000 → 500 → 250 → 125 → 63 → 32
→ 16 → 8 → 4 → 2 → 1
El orden permite descartar una mitad con seguridad. Sin ese orden, la mitad descartada podría contener el nombre. Este supuesto sobre la entrada forma parte del método.
Para 2000 páginas, comprobar cada página puede requerir el doble de comprobaciones, mientras que dividir por la mitad requiere solo una división más: 11. Comparar cómo aumenta el número de pasos explica más que cronometrar una ejecución en una máquina.
Comprueba la corrección antes de valorar la velocidad. Un método que examina solo el primer y el último número de una lista encuentra por casualidad 12 en [7, 3, 12]. No encuentra 12 en [7, 12, 3]. Un ejemplo exitoso no puede demostrar que el método funciona con todo el rango de entradas.
Puntos clave
- Un algoritmo debe ser preciso, efectivo, finito y correcto, con entradas y salidas definidas.
- Un algoritmo es un método; un programa expresa instrucciones en un lenguaje que puede ejecutarse.
- La secuencia, la selección y la iteración organizan los pasos de un algoritmo.
- Los supuestos de un algoritmo sobre su entrada deben cumplirse para que su razonamiento sea válido.
- Compara métodos correctos según cómo aumenta su trabajo al crecer la entrada.
3.2 Almacena valores y actualízalos en orden
El pseudocódigo describe un algoritmo mediante instrucciones estructuradas y legibles. No está ligado a un lenguaje de programación. Permite trabajar en la lógica antes de ocuparse de la puntuación y otras reglas de escritura de un lenguaje.
Lee la notación
Las palabras clave se escriben en mayúsculas: INPUT, OUTPUT, IF, WHILE y FOR. Cada instrucción tiene su propia línea. La sangría muestra qué instrucciones pertenecen a un bloque. Un comentario empieza por // y explica el código sin añadir una acción.
La flecha ← significa asignación. Otros estilos de pseudocódigo usan = o SET … TO para la asignación. Aquí, = compara valores. Lee count ← 0 como «count recibe cero». Una variable es un espacio con nombre que guarda un valor que puede cambiar. Una constante tiene un nombre, pero conserva el mismo valor, como PASS_MARK ← 50.
Primero se evalúa el lado derecho de una asignación. Su resultado sustituye al valor anterior del lado izquierdo. Si count contiene 4, count ← count + 1 lee el 4 anterior, suma 1 y guarda 5. Es una instrucción para cambiar datos almacenados, no una ecuación que afirma que un número es igual a sí mismo más uno.
Relaciona los datos con las operaciones
| Tipo | Significado y ejemplo |
|---|---|
| Entero | Número entero, como 17 |
| Real o de coma flotante | Número que puede tener una parte fraccionaria, como 21,5 |
| Cadena de caracteres | Texto, como «Lima» |
| Booleano | VERDADERO o FALSO |
| Lista o arreglo | Valores ordenados, como [18, 21, 19, 22, 20] |
Sumar los números 12 y 3 da 15. Unir las cadenas «12» y «3» da «123». Elige nombres descriptivos, como temperature y total, para que la función de un valor siga siendo visible.
Los operadores aritméticos incluyen +, −, * y /. DIV da el cociente entero, mientras que MOD da el resto. Así, 17 DIV 5 es 3 y 17 MOD 5 es 2. La prueba n MOD 2 = 0 identifica un entero par. Las comparaciones como =, ≠, <, >, ≤ y ≥ producen valores booleanos.
Lee, calcula y muestra
INPUT minutes
hours ← minutes DIV 60
rest ← minutes MOD 60
OUTPUT hours, "h", rest, "min"
Para 135 minutos, dos grupos completos de 60 usan 120 minutos y dejan 15. La salida es «2 h 15 min». INPUT recibe datos, las dos asignaciones los procesan y OUTPUT envía el resultado.
Conserva un valor antes de sustituirlo
Supón que a contiene 5 y b contiene 8. Las instrucciones a ← b y después b ← a dejan ambas variables con el valor 8. La primera instrucción sobrescribió la única copia almacenada de 5.
Usa una variable temporal:
temp ← a
a ← b
b ← temp
Después de la primera línea, temp contiene 5. La segunda línea coloca 8 en a. La tercera coloca el 5 guardado en b. La asignación copia un valor actual; no crea un vínculo permanente entre variables.
Da a cada variable un valor inicial antes de leerla. Una suma acumulada necesita total ← 0 antes de su primera suma. Colocar la asignación después de la suma deja el primer paso sin un valor inicial definido.
Puntos clave
- El pseudocódigo usa una notación coherente para expresar la lógica sin elegir un lenguaje de programación.
- La asignación evalúa el lado derecho y sustituye el valor almacenado en el lado izquierdo.
- Los tipos de datos influyen en qué operaciones tienen sentido.
DIVda un cociente entero;MODda un resto.INPUTrecibe datos yOUTPUTenvía un resultado.- Una variable temporal conserva el valor anterior durante un intercambio.
- Inicializa una variable antes de usar su valor.
3.3 Elige el camino correcto mediante condiciones
La selección elige qué instrucciones se ejecutan. Una condición es una expresión con el valor VERDADERO o FALSO. La comparación score ≥ 50 pregunta si la puntuación actual es al menos 50.
Usa IF y ELSE
IF score ≥ 50 THEN
OUTPUT "Pass"
ELSE
OUTPUT "Fail"
END IF
Se ejecuta exactamente una rama. Con 50, la condición es VERDADERA y la salida es «Pass». Con 49, es FALSA y la salida es «Fail». Un IF sin ELSE simplemente omite su bloque cuando su condición es FALSA.
La comparación debe corresponder a la regla. «Al menos 50» incluye 50, por lo que necesita ≥. Usar > rechazaría esa puntuación límite. Probar valores en el umbral es una forma directa de detectar este error.
Ordena varios casos
Una cadena ELSE IF comprueba las condiciones en orden y ejecuta la primera rama que se cumple:
IF temperature ≥ 30 THEN
OUTPUT "Hot"
ELSE IF temperature ≥ 20 THEN
OUTPUT "Warm"
ELSE IF temperature ≥ 10 THEN
OUTPUT "Mild"
ELSE
OUTPUT "Cold"
END IF
Para 24 °C, la primera prueba no se cumple y la segunda sí. La salida es «Warm». Para 10 °C, se ejecuta la tercera rama. Para −3 °C, se ejecuta el ELSE final.
Una temperatura de 35 °C satisface las tres comparaciones escritas, pero solo se ejecuta la primera rama que se cumple. Si temperature ≥ 10 apareciera primero, aceptaría 35 y produciría «Mild». Cuando uses umbrales «al menos» que se solapen, comprueba primero el más alto. Las ramas inferiores se encargan entonces de los valores que no cumplieron los umbrales superiores.
Combina condiciones
| Operador | Cuándo el resultado es VERDADERO |
|---|---|
A AND B | Tanto A como B son VERDADERAS. |
A OR B | Al menos una de A y B es VERDADERA. |
NOT A | A es FALSA. |
Para incluir temperaturas desde 10 °C hasta 20 °C, sin incluir el extremo superior, usa temperature ≥ 10 AND temperature < 20. Deben cumplirse ambos límites. Con 15, ambos son VERDADEROS. Con 20, el segundo es FALSO.
Usar OR para este intervalo da temperature ≥ 10 OR temperature < 20. Eso acepta todos los números: un valor inferior a 10 sigue cumpliendo la segunda parte, mientras que cualquier valor de al menos 10 cumple la primera. OR es útil cuando basta con cualquiera de las dos vías, no cuando deben cumplirse ambos límites.
Coloca una decisión dentro de otra
Un IF anidado coloca una decisión dentro de una rama de otra. Podrías comprobar primero si una contraseña es lo bastante larga y después, dentro de la rama en que se cumple esa condición, comprobar si contiene un dígito. Solo se llega a la decisión interior cuando la condición exterior lo permite.
Aplica sangría al bloque interior para que los caminos sean visibles. Si varias decisiones anidadas dificultan la lectura de una regla sencilla, considera combinar condiciones con AND o usar una cadena ELSE IF. Sigue un valor a través del orden real antes de suponer que se llega a todas las pruebas escritas.
Puntos clave
- Una condición tiene un resultado booleano: VERDADERO o FALSO.
IF … ELSEelige uno de dos caminos; una cadenaELSE IFelige el primer caso que se cumple.- Los umbrales que incluyen o excluyen su valor límite necesitan el operador de comparación correspondiente.
- AND exige ambas condiciones, OR exige al menos una y NOT invierte una condición.
- Ordena los umbrales que se solapan para que una rama anterior no abarque un caso posterior.
- Una decisión interior solo se ejecuta cuando la ejecución llega a la rama que la contiene.
3.4 Repite el trabajo manteniendo el estado correcto
La iteración repite un bloque de instrucciones. Un bucle permite expresar una sola vez el trabajo repetido, pero aún debes decidir cuándo empieza, cuándo termina y qué valores cambian en cada pasada.
Elige cómo controlar la repetición
| Bucle | Cómo se ejecuta |
|---|---|
FOR i ← 1 TO 5 | Se ejecuta cinco veces, de 1 a 5 incluidos. |
FOR EACH item IN list | Se ejecuta una vez por cada elemento de la lista. |
WHILE condition DO | Comprueba antes de cada pasada; repite mientras sea VERDADERA. |
REPEAT … UNTIL condition | Comprueba después de cada pasada; se detiene cuando es VERDADERA. |
Un bucle FOR es adecuado para un número conocido de repeticiones. Un bucle controlado por condición es adecuado para una tarea cuyo punto de parada depende de valores o de nuevas entradas. El cuerpo de un WHILE puede ejecutarse cero veces. El cuerpo de un REPEAT … UNTIL con condición al final se ejecuta al menos una vez.
Sigue una cuenta atrás
n ← 3
WHILE n > 0 DO
OUTPUT n
n ← n − 1
END WHILE
OUTPUT "Go!"
En la primera prueba, n es 3. El bucle muestra 3 y cambia n a 2. Las siguientes pasadas muestran 2 y 1. Después de la actualización de 1 a 0, la prueba es FALSA. La ejecución sale del bucle y muestra «Go!».
Eliminar la actualización deja n en 3, por lo que el bucle nunca alcanza su estado de parada. Un bucle que deba terminar necesita una forma de cambiar la condición: una actualización interna o una nueva entrada pueden proporcionarla.
Acumula un total y cuenta elementos
Un acumulador construye un resultado a lo largo de varias pasadas. Un contador registra cuántas veces ocurre algo. Para encontrar la media de las temperaturas diarias 18, 21, 19, 22 y 20 °C:
total ← 0
count ← 0
FOR EACH t IN temperatures
total ← total + t
count ← count + 1
END FOR
OUTPUT total / count
Los totales sucesivos son 18, 39, 58, 80 y 100. El recuento termina en 5, por lo que la media es 20 °C. Inicializa ambas variables antes del bucle. Reiniciar total dentro borraría las sumas anteriores. Una lista vacía necesita una comprobación aparte antes de dividir, porque su recuento es cero.
Recuerda el mejor valor hasta el momento
Para una lista no vacía, inicializa largest con el primer elemento. Después examina cada valor y sustituye largest siempre que aparezca uno mayor:
largest ← first item of list
FOR EACH value IN list
IF value > largest THEN
largest ← value
END IF
END FOR
OUTPUT largest
Para [7, 3, 12, 5], el mejor valor recordado permanece en 7, pasa a 12 y se mantiene en 12. Empezar en cero falla para una lista como [−4, −9, −2], cuyo valor mayor es −2. Cero nunca fue un candidato.
Comprueba la primera y la última pasada
Un error de desfase de una unidad añade o pierde una repetición. FOR i ← 0 TO 5 se ejecuta seis veces. En la cuenta atrás, n ≥ 0 también mostraría cero. Escribe el primer y el último valor de la variable de control para comprobar el recuento.
Los bucles anidados repiten un bucle dentro de otro. Para 3 filas y 4 columnas, el bloque interior se ejecuta cuatro veces por cada fila, lo que da 12 ejecuciones. El bucle interior vuelve a empezar en cada pasada exterior.
Puntos clave
- Los bucles controlados por contador repiten un número conocido de veces; los controlados por condición dependen de una prueba.
WHILEcomprueba antes del cuerpo, mientras queREPEAT … UNTILen pseudocódigo comprueba después.- Inicializa los acumuladores y contadores antes del bucle y actualízalos dentro.
- Una búsqueda del valor mayor puede empezar por el primer elemento de una lista no vacía.
- Un bucle que termina necesita un camino hasta su estado de parada.
- Comprueba los extremos para detectar errores de desfase de una unidad; un intervalo de 0 a 5, ambos incluidos, tiene seis valores.
- Un bucle interior se ejecuta por completo en cada pasada de su bucle exterior.
4Dibuja los caminos y comprueba los resultados
Un diagrama puede revelar los caminos de un algoritmo, y un seguimiento puede revelar los valores a lo largo de uno de esos caminos. Los diagramas de flujo y el pseudocódigo describen la misma lógica de formas distintas. Pasar de uno a otro ayuda a descubrir pruebas y actualizaciones mal situadas. Después, unos datos de prueba bien elegidos comprueban casos habituales, umbrales y entradas inusuales, mientras que la depuración usa un fallo reproducible para localizar el primer paso que necesita corregirse.
4.1 Lee un diagrama de flujo flecha a flecha
Un diagrama de flujo dibuja un algoritmo como figuras conectadas por flechas. Las figuras identifican tipos de pasos y las flechas muestran qué paso se ejecuta a continuación. Un diagrama corto hace visible un proceso para alguien que quizá no lea código.
Elige una figura para cada función
Los símbolos principales siguen la norma ISO 5807. Tienen funciones distintas:
| Símbolo | Forma | Función |
|---|---|---|
| Inicio o fin | Óvalo o rectángulo redondeado | Marca Inicio o Fin. |
| Proceso | Rectángulo | Realiza una acción o cálculo. |
| Entrada/salida | Paralelogramo | Lee o envía datos. |
| Decisión | Rombo | Comprueba una condición o un valor y elige una salida. |
| Proceso predefinido | Rectángulo con líneas verticales dobles en los lados | Llama a un procedimiento descrito por separado. |
| Conector | Círculo pequeño etiquetado | Une partes separadas del flujo. |
Una línea de flujo tiene una flecha que muestra la dirección. La dirección habitual de lectura es de arriba abajo y de izquierda a derecha, pero la flecha determina el siguiente paso real. Una línea que vuelve a un punto anterior puede mostrar repetición.
Construye una secuencia sencilla
Para calcular el área de una habitación rectangular, usa estos cinco símbolos en orden:
- Inicio o fin: «Inicio».
- Entrada/salida: «Introducir largo, ancho».
- Proceso:
area ← length * width. - Entrada/salida: «Mostrar área».
- Inicio o fin: «Fin».
Conecta cada paso con el siguiente mediante una flecha. Con un largo de 4,5 m y un ancho de 3 m, el cálculo da 13,5 metros cuadrados. Leer la entrada no calcula el área; eso corresponde a su propio rectángulo de proceso. Mostrar el área corresponde al paralelogramo de salida.
Este diagrama no tiene decisiones ni recorridos repetidos. Es una secuencia pura y su forma aclara el orden.
Sigue una decisión usando los valores actuales
Un rombo plantea una pregunta o comprueba un valor. Para una pregunta de sí/no como score ≥ 50?, etiqueta las salidas «Sí» y «No». Evalúa la condición usando la puntuación actual y sigue exactamente una flecha correspondiente.
Una decisión puede tener más de dos salidas posibles cuando comprueba varios valores distintos. Etiqueta cada salida con el valor o caso que representa. El propósito de las etiquetas es que el siguiente paso no sea ambiguo.
Una acción como count ← count + 1 corresponde a un rectángulo de proceso. Una pregunta como count < 5? corresponde a un rombo de decisión. Mezclar estas funciones oculta si un valor se modifica o se comprueba.
Comprueba las conexiones
Un diagrama claro tiene un Inicio y al menos un Fin. Cada símbolo de proceso y de entrada/salida tiene una línea de flujo de salida. Cada decisión de sí/no tiene dos salidas etiquetadas. Sigue cada camino para comprobar que llega al siguiente paso previsto o a Fin.
Evita dejar una rama sin conectar después de su salida. Si ambas ramas deben continuar con el mismo paso, dibújalas uniéndose antes de él. Usa conectores etiquetados cuando las líneas largas o cruzadas dificulten seguir la página. Un símbolo de proceso predefinido permite mantener un procedimiento grande en un diagrama separado mientras el principal conserva su estructura general.
Puntos clave
- Un diagrama de flujo usa figuras para los tipos de pasos y flechas para el orden de ejecución.
- Los rectángulos realizan acciones, los paralelogramos manejan datos y los rombos eligen caminos.
- Etiqueta las salidas de las decisiones y sigue la flecha correspondiente al valor actual.
- Usa símbolos de Inicio y Fin y conecta todos los caminos previstos.
- Un símbolo de proceso predefinido puede ocultar los detalles de un procedimiento separado.
4.2 Dibuja ramas y bucles sin cambiar su lógica
El pseudocódigo y los diagramas de flujo pueden expresar el mismo algoritmo. Convertir entre ellos significa conservar el orden de las acciones, las condiciones y cada recorrido del proceso. Un diagrama ordenado con una prueba en otra posición describe un algoritmo distinto.
Muestra una elección y vuelve a unir los caminos
Para una nota mínima para aprobar de 50, dibuja un rombo etiquetado score ≥ 50?. Su salida Sí lleva a un paralelogramo de salida etiquetado «Aprobado». Su salida No lleva a otro etiquetado «No aprobado». Une los caminos antes de Fin.
En pseudocódigo, estos caminos se convierten en las ramas IF y ELSE. El punto donde se unen corresponde a la primera instrucción después de END IF. El diagrama no debe llevar la salida Aprobado a través de la salida No aprobado; solo una de ellas corresponde a cada ejecución.
Coloca la prueba en el lugar correcto
Un bucle tiene un camino que vuelve a un paso anterior y una decisión que controla si continúa la repetición. Para un bucle WHILE, coloca la decisión antes del cuerpo. La salida FALSO evita el cuerpo, por lo que son posibles cero pasadas.
Para un REPEAT … UNTIL con condición al final, coloca la decisión después del cuerpo. Su salida FALSO vuelve al cuerpo y su salida VERDADERO sale del bucle. El cuerpo se ejecuta al menos una vez porque la ejecución llega a él antes de la primera prueba.
| Bucle | Posición de la decisión | Salida de la repetición |
|---|---|---|
WHILE condition | Antes del cuerpo | La condición es FALSA. |
REPEAT … UNTIL condition | Después del cuerpo | La condición es VERDADERA. |
Recorre un inicio de sesión de tres intentos
attempts ← 0
REPEAT
INPUT password
attempts ← attempts + 1
UNTIL password = storedPassword OR attempts = 3
IF password = storedPassword THEN
OUTPUT "Welcome"
ELSE
OUTPUT "Account locked"
END IF
Empieza el diagrama con Inicio y un rectángulo de proceso para attempts ← 0. Después, dibuja el paralelogramo de entrada de la contraseña y el rectángulo de incremento. El rombo del bucle pregunta «¿Contraseña correcta O intentos = 3?». Su salida No vuelve a la entrada de la contraseña. Su salida Sí abandona el bucle.
La condición de salida da dos posibles razones para detenerse, por lo que no puede elegir por sí sola el mensaje final. Añade un segundo rombo que pregunte si la contraseña es correcta. Sí lleva a «Welcome»; No lleva a «Account locked». Si el tercer intento es correcto, el bucle se detiene y la rama de contraseña correcta sigue dando la bienvenida al usuario.
Convierte siguiendo los caminos
De pseudocódigo a diagrama, convierte cada asignación en un rectángulo y cada entrada o salida en un paralelogramo. Convierte las pruebas de las ramas y los bucles en rombos. Conecta el cuerpo de vuelta a la decisión que lo controla en la posición correcta.
De diagrama a pseudocódigo, examina adónde llevan los caminos de cada rombo. Los caminos que realizan acciones alternativas y vuelven a unirse sugieren selección. Un camino que vuelve a trabajo anterior sugiere iteración. Aplica sangría a cada cuerpo para reflejar sus límites.
Comprueba el destino de cada flecha de retorno. Volver a un punto posterior a la decisión de control omitiría la siguiente prueba. Volver a un punto anterior a una inicialización que debe hacerse una sola vez podría reiniciar un contador en cada pasada e impedir que el bucle termine.
Puntos clave
- La conversión entre representaciones debe conservar las acciones, las condiciones y los caminos de ejecución.
- Las ramas de selección vuelven a unirse después de sus acciones alternativas.
- Los bucles con condición al inicio pueden omitir el cuerpo; los de condición al final lo ejecutan al menos una vez.
- La salida de un bucle puede necesitar una decisión aparte para determinar por qué se detuvo.
- Las flechas de retorno deben pasar por la prueba de control prevista y evitar repetir la preparación que se hace una sola vez.
4.3 Encuentra errores con seguimientos y pruebas bien elegidas
Un algoritmo puede parecer razonable y hacer algo incorrecto. El seguimiento recorre sus instrucciones con exactitud y registra lo que ocurre. Las pruebas lo ejecutan con entradas elegidas y comprueban los resultados. La depuración encuentra y corrige la causa de un fallo.
Haz visible el estado
Una tabla de seguimiento registra variables y salidas durante una prueba de escritorio. Usa los valores actuales, no los valores que creas que pretendía el autor. Por ejemplo:
total ← 0
FOR i ← 1 TO 4
total ← total + i
END FOR
OUTPUT total
| Momento de la ejecución | i | total | Salida |
|---|---|---|---|
| Después de la inicialización | - | 0 | - |
| Después de la primera suma | 1 | 1 | - |
| Después de la segunda suma | 2 | 3 | - |
| Después de la tercera suma | 3 | 6 | - |
| Después de la cuarta suma | 4 | 10 | - |
| En OUTPUT | 4 | 10 | 10 |
Esta tabla compacta muestra el estado después de cada suma. Para un error difícil, añade filas después de instrucciones individuales y una columna para los resultados de las condiciones. Una prueba de bucle FALSA también corresponde a un seguimiento detallado: explica por qué la ejecución sale del bucle.
Elige pruebas a partir de las reglas
Calcula el resultado esperado antes de ejecutar cada prueba. De lo contrario, es fácil aceptar la salida del programa simplemente porque apareció. Algunas pruebas comprueban una propiedad, como mantener la salida ordenada, en lugar de un resultado exacto.
Para puntuaciones válidas de 0 a 100 con una nota mínima para aprobar de 50:
| Tipo | Entrada de ejemplo | Qué comprueba |
|---|---|---|
| Normal | 73 | Una puntuación típica válida que aprueba. |
| Valores límite | 0, 49, 50, 100 | Los extremos y el umbral de decisión. |
| Justo fuera del rango | −1, 101 | El rechazo más allá de los extremos válidos. |
| Tipo no válido | «abc» | El rechazo de texto donde se necesita una puntuación. |
Las categorías de valores límite y no válidos pueden solaparse: −1 está cerca de un límite y también es no válido. La categoría explica por qué es útil la prueba. Una regla que use score > 50 supera las pruebas normales con 73 y 49, pero falla con exactamente 50.
Prueba también estructuras de entrada inusuales. Una lista vacía, un solo elemento, todos los valores iguales y valores negativos revelan supuestos distintos. Un algoritmo de la media debe tratar una lista vacía antes de dividir por su recuento. Un algoritmo del valor mayor inicializado en cero puede fallar con una lista de valores todos negativos.
Identifica el error que corriges
Un error de sintaxis incumple las reglas de escritura de un lenguaje, como un paréntesis de cierre que falta. Un error de ejecución ocurre durante la ejecución, como una división por cero. Un error lógico permite la ejecución, pero da un resultado incorrecto, como excluir con > el valor límite que permite aprobar.
Estas categorías te ayudan a elegir una comprobación. La comprobación de sintaxis detecta formas que incumplen las reglas del lenguaje. Un seguimiento puede revelar el primer estado incorrecto de un error lógico. Los datos de prueba pueden provocar un fallo de ejecución al que nunca llega una entrada típica.
Depura desde la primera discrepancia
Reproduce el fallo con una entrada concreta. Sigue o muestra los valores intermedios y encuentra el primer paso en que el estado real difiere del esperado. Corrige la causa y después vuelve a ejecutar la prueba fallida y las anteriores. Corregir una rama puede estropear otra.
Superar pruebas seleccionadas aporta evidencia sobre esas entradas. La corrección sigue exigiendo que el método funcione con toda entrada válida, así que combina las pruebas con el razonamiento sobre las instrucciones y sus supuestos.
Puntos clave
- Un seguimiento registra lo que hacen realmente las instrucciones usando los valores actuales de las variables.
- Elige los resultados esperados o las propiedades requeridas antes de ejecutar las pruebas.
- Usa entradas normales, de valores límite, no válidas y casos límite de estructura.
- Los errores de sintaxis incumplen las reglas del lenguaje, los de ejecución ocurren durante la ejecución y los lógicos producen un comportamiento incorrecto.
- Localiza el primer estado incorrecto, corrige su causa y vuelve a ejecutar las pruebas anteriores.
- Superar un conjunto de pruebas aporta evidencia sin demostrar la corrección para toda entrada válida.
5Construye y coordina programas en Scratch
Los bloques dan una forma visible a las instrucciones para que puedas construir y ejecutar un programa mientras te concentras en su lógica. Scratch presenta ese modelo mediante objetos, eventos, variables, decisiones y bucles. Los proyectos cortos conectan la entrada con una salida visible, y los bloques personalizados convierten el trabajo repetido en procedimientos con nombre. Coordinar varios programas de bloques también muestra por qué el orden dentro de uno difiere de los tiempos entre varios.
5.1 Construye un programa con bloques de Scratch
En la programación por bloques, los bloques gráficos representan instrucciones y valores. Los arrastras a un espacio de trabajo y los encajas. Las formas eliminan gran parte del esfuerzo de recordar la sintaxis y te permiten concentrarte en la lógica del programa.
Conoce las partes de un proyecto
Scratch se creó en el MIT Media Lab. Otros entornos por bloques incluyen Snap!, desarrollado en la Universidad de California en Berkeley, Microsoft MakeCode y Blockly. Blockly es una biblioteca para construir interfaces de bloques; comenzó en Google y pasó a la Raspberry Pi Foundation en 2025.
En Scratch, el escenario es el área donde el proyecto se ejecuta de forma visible. Los objetos son personajes u objetos que actúan en él. Un objeto puede tener programas de bloques, disfraces y sonidos. Un programa de bloques es una pila de bloques; un disfraz es una imagen que el objeto puede mostrar.
El escenario mide 480 por 360 unidades de Scratch. Su centro es el punto de coordenadas (0, 0). Las coordenadas horizontales x van de −240 a 240 y las verticales y de −180 a 180. Los pasos de movimiento de Scratch son unidades del escenario, no metros.
Deja que te guíe la forma del bloque
| Forma del bloque | Función | Ejemplo |
|---|---|---|
| De inicio | Inicia un programa de bloques en respuesta a un evento. | «al hacer clic en la bandera verde» |
| Apilable | Realiza una orden. | «mover 10 pasos» |
| En C | Contiene bloques en un bucle o una rama. | «repetir 10» |
| Reportero redondeado | Proporciona un valor. | El bloque de valor de una variable |
| Booleano de seis lados | Proporciona VERDADERO o FALSO. | «¿tocando puntero del ratón?» |
| De cierre | Termina un programa de bloques. | «detener todos» |
Un bloque reportero de valor encaja en un espacio de entrada de otro bloque. Una orden encaja en una pila de acciones. Un bloque booleano encaja en un espacio de condición. La forma ayuda a distinguir entre proporcionar un valor y ejecutar una orden.
Encuentra bloques por categoría
Scratch 3 tiene nueve categorías principales identificadas por colores: Movimiento, Apariencia, Sonido, Eventos, Control, Sensores, Operadores, Variables y Mis bloques. Movimiento cambia la posición; Apariencia maneja el aspecto visible y el diálogo; Sensores recibe información; Operadores calcula o compara. La extensión Lápiz se añade por separado cuando un proyecto necesita dibujar líneas mientras se mueve un objeto.
Ejecuta una secuencia corta
Selecciona un objeto y coloca estos bloques bajo un bloque de inicio «al hacer clic en la bandera verde»:
- «ir a x: 0 y: 0»
- «decir ¡Hola! durante 2 segundos»
- «mover 100 pasos»
Haz clic en la bandera verde. El objeto va primero al centro, después muestra «¡Hola!» durante dos segundos y luego se mueve 100 pasos en su dirección actual. El bloque de diálogo temporizado hace visible la pausa. La pila se ejecuta de arriba abajo.
Una pila suelta puede ejecutarse al hacer clic directamente en ella en el espacio de trabajo, pero no se iniciará con la bandera verde a menos que tenga el bloque de inicio del evento correspondiente. Comprueba tanto el orden de la pila como su evento de inicio cuando el proyecto parezca no responder.
Los bloques que encajan correctamente siguen necesitando un plan correcto. Un movimiento puede ocurrir antes de un restablecimiento de posición previsto, o una pregunta puede formularse después de mostrar el resultado. Las formas ayudan a construir de manera válida; el seguimiento revela si esa construcción hace el trabajo previsto.
Puntos clave
- Los bloques expresan instrucciones y valores con formas que guían su colocación.
- El escenario muestra el proyecto; los objetos tienen sus propios programas de bloques, disfraces y sonidos.
- Un programa de bloques se ejecuta desde su evento de inicio recorriendo la pila en orden.
- El centro de Scratch es (0, 0), con un escenario de 480 por 360 unidades.
- Usa las categorías para encontrar bloques y añade extensiones como Lápiz cuando sea necesario.
- Una disposición de bloques que encajan puede seguir conteniendo un error lógico.
5.2 Haz que un programa por bloques responda y repita
Scratch usa las mismas ideas que el pseudocódigo: almacenar un valor, comprobar una condición y repetir pasos. Los bloques hacen visible la estructura, pero su posición sigue determinando cuándo ocurre cada acción.
Elige un bucle adecuado para la tarea
«repetir 10» ejecuta su cuerpo diez veces. «por siempre» sigue ejecutándose hasta que se detiene el programa y es adecuado para un juego que comprueba continuamente la entrada. «repetir hasta que <condición>» comprueba antes de cada pasada y se detiene cuando la condición es verdadera. Por tanto, puede ejecutarse cero veces, a diferencia del pseudocódigo REPEAT … UNTIL con condición al final.
Con la extensión Lápiz y el lápiz bajado, «repetir 4» con «mover 100 pasos» y «girar a la derecha 90 grados» dentro dibuja un cuadrado. Para un hexágono regular, usa seis repeticiones y un giro de 60 grados. Los cambios de dirección suman 360 grados alrededor de la figura.
Almacena un valor y elige una rama
Crea score en Variables. «dar a puntuación el valor 0» asigna su valor inicial. «sumar a puntuación 1» incrementa su valor actual. Coloca el reinicio antes del bucle de puntuación; dentro de él, borraría la puntuación anterior cada vez.
El bloque reportero redondeado score proporciona el valor actual a otros bloques. Marcar su casilla muestra un monitor en el escenario, lo que ayuda durante el seguimiento.
Un bloque «si … entonces … si no» ejecuta uno de sus dos cuerpos. Su espacio de condición de seis lados acepta un bloque booleano como «(puntuación) > (9)» o «¿tocando puntero del ratón?». Los operadores «y», «o» y «no» combinan condiciones con los mismos significados que en pseudocódigo.
Recibe una entrada, construye texto y muéstralo
El bloque «preguntar [¿Cómo te llamas?] y esperar» se detiene para recibir una entrada y la guarda en «respuesta». El bloque «unir [Hola, ] (respuesta)» construye texto. Coloca ese bloque reportero dentro de «decir … durante 2 segundos» para mostrar el saludo. Si la entrada es «Amara», la salida es «Hola, Amara».
Las tres funciones están separadas: preguntar recibe datos, unir procesa texto y decir lo muestra. Un bloque reportero puede calcular un valor útil sin mostrar nada por sí solo.
Construye un juego de adivinar
Usa este orden de bloques, con cada parte con sangría dentro del bloque que la contiene:
"when green flag clicked"
"set secret to (pick random 1 to 10)"
"ask [Guess a number from 1 to 10] and wait"
"repeat until <(answer) = (secret)>"
"if <(answer) > (secret)> then"
"say [Too high] for 2 seconds"
"else"
"say [Too low] for 2 seconds"
"ask [Guess a number from 1 to 10] and wait"
"say [Correct!] for 2 seconds"
Un primer intento correcto omite el bucle. Para el secreto 6 y los intentos 3, 8 y 6, los mensajes son «Too low», «Too high» y después «Correct!». La nueva pregunta dentro del bucle proporciona un valor que puede hacer verdadera su condición.
La duración del mensaje importa. La pregunta de un objeto visible usa su bocadillo de diálogo, por lo que la siguiente pregunta sustituye inmediatamente a un bocadillo de decir sin duración. Un decir de dos segundos permite al estudiante leer primero el mensaje.
Lee el bucle como WHILE answer ≠ secret para comprobarlo en pseudocódigo. Omitir la pregunta repetida bloquea el juego con la antigua respuesta incorrecta; mover el mensaje final de éxito al interior del bucle lo coloca en el camino equivocado.
Puntos clave
- «repetir hasta que» de Scratch comprueba antes de cada pasada y puede omitir su cuerpo.
- Inicializa una puntuación antes de un bucle y actualízala dentro.
- Un bloque reportero booleano proporciona la condición de una decisión.
- Preguntar lee una entrada, unir construye texto y decir muestra texto.
- Un bucle de adivinar necesita nuevos intentos para poder alcanzar su condición de parada.
- Los bloques decir temporizados mantienen visible el mensaje antes de que una nueva pregunta sustituya el bocadillo.
5.3 Coordina programas de bloques y reutiliza un bloque personalizado
Un proyecto de Scratch suele tener varios programas de bloques esperando distintos eventos. La programación dirigida por eventos inicia un programa de bloques cuando ocurre un evento. Un bloque personalizado permite después que un programa de bloques llame a una parte de trabajo reutilizable con nombre.
Inicia el programa de bloques correcto
Los bloques de inicio incluyen «al hacer clic en la bandera verde», «al hacer clic en este objeto», «al presionar tecla espacio» y «al recibir [mensaje]». Cada uno describe qué inicia la pila que tiene conectada.
Varios programas de bloques pueden responder al mismo evento. Dos objetos pueden iniciarse al hacer clic en la bandera verde y después ejecutarse a la vez. La posición de sus pilas en el espacio de trabajo no establece un orden de ejecución entre ellas.
Dentro de un programa de bloques, las acciones mantienen su orden de arriba abajo. Entre programas de bloques, los tiempos pueden importar. Si dos programas de bloques mueven el mismo objeto en direcciones opuestas, su resultado combinado depende de cuándo se ejecutan sus acciones. Asigna responsabilidades claras a los programas de bloques y coordina el trabajo cuando una tarea necesite el resultado de otra.
Envía un mensaje entre programas de bloques
«enviar [fin del juego]» envía un mensaje a todos los objetos y al escenario. Los programas de bloques «al recibir [fin del juego]» correspondientes se inician en respuesta. El nombre del mensaje debe coincidir; identifica el evento que manejan los receptores.
«enviar y esperar» también detiene al emisor hasta que terminan los programas de bloques receptores. Úsalo cuando la siguiente acción dependa de que hayan terminado. Por ejemplo, un controlador puede enviar un mensaje de preparación y esperar mientras los objetos se mueven a sus posiciones iniciales, y después comenzar el juego.
Esperar no ordena a los receptores entre sí. Si dos receptores de preparación sobrescriben el mismo valor, siguen necesitando un plan que evite responsabilidades en conflicto. Un receptor que se ejecuta para siempre también impide que continúe el emisor que espera.
Da un nombre y una entrada al trabajo repetido
En Mis bloques, crea un bloque personalizado con una entrada llamada size. Su definición puede describirse así:
"define square (size)"
"repeat 4"
"move (size) steps"
"turn right 90 degrees"
Con el lápiz bajado, llamar a «cuadrado (100)» dibuja lados de 100 pasos. Llamar a «cuadrado (60)» usa las mismas instrucciones con lados más cortos. El bloque personalizado proporciona abstracción al ocultar los pasos detrás de un nombre y generalización al permitir que quien lo llama proporcione el tamaño.
La llamada ejecuta la definición; no copia en el programa de bloques una segunda versión que deba mantenerse manualmente. Cambiar la definición cambia el trabajo realizado por las llamadas posteriores. Esto facilita mantener un método repetido.
Traslada las ideas al texto
| Idea de Scratch | Idea de pseudocódigo o código textual |
|---|---|
| «repetir 4» | Bucle controlado por contador |
| «si … entonces … si no» | Selección |
| «dar a puntuación el valor 0» | Asignación |
| Bloque personalizado | Procedimiento |
| Bloque de inicio de evento y programa de bloques conectado | Manejador de eventos |
En un lenguaje textual, escribes las instrucciones y respetas sus reglas de puntuación y espaciado. El razonamiento sobre el estado, las condiciones y la repetición sigue siendo válido.
Los bloques eliminan muchos errores de sintaxis, pero una condición incorrecta puede seguir eligiendo el camino equivocado. Los seguimientos y las pruebas siguen siendo útiles. Los proyectos grandes por bloques también pueden resultar difíciles de recorrer y comparar porque sus programas de bloques ocupan mucho espacio en pantalla; el texto es más fácil de buscar y gestionar en proyectos grandes de software.
Puntos clave
- Un evento inicia los programas de bloques cuyos bloques de inicio responden a él.
- Los programas de bloques pueden ejecutarse de forma concurrente, por lo que su posición en el espacio de trabajo no fija su orden.
- Enviar inicia los receptores correspondientes; enviar y esperar también espera a que terminen.
- Los bloques personalizados ocultan pasos reutilizables y pueden recibir parámetros.
- La misma lógica de asignación, selección, iteración y procedimientos se aplica al código textual.
Ejemplos de Pensamiento computacional
1De una tarea a una solución comprobable
10 pasos
- 1IntroducciónEmpieza por el resultado
Un problema claro es más fácil de resolver que una petición vaga. Supón que un grupo de lectura quiere mostrar los nombres de sus miembros en orden alfabético. Antes de elegir software, identifica qué información está disponible y qué debe contener el resultado final.
Seguirás esa petición desde el enunciado del problema hasta un plan, usando entrada, proceso, salida y las cuatro técnicas del pensamiento computacional.
- 2ExplicaciónIdentifica la entrada y la salida
La entrada es la lista de nombres de los miembros. La salida requerida es la misma lista en orden alfabético. El proceso es el método que reorganiza los nombres.
Estas funciones son distintas. Una lista en la que falta un miembro no cumple la tarea, aunque los nombres restantes estén ordenados. Especificar la salida te da una forma de reconocer ese fallo antes de decidir cómo funciona el método.
- 3ConexiónSitúa la tarea dentro de las ciencias de la computación
Las ciencias de la computación estudian la información y los procesos que la manejan. Esta tarea plantea preguntas sobre cómo representar nombres, diseñar un método y comprobar que el resultado sea correcto.
La programación expresaría instrucciones en un lenguaje ejecutable. Las preguntas más generales vienen primero: ¿qué salida se requiere, qué supuestos necesita el método y cuánto trabajo generará una lista más grande?
- 4DesafíoComprueba una salida propuesta
Los nombres de entrada son «Noor», «Ava» y «Luis». Un sistema muestra «Ava», «Noor». ¿Qué requisito ha incumplido, incluso antes de hablar de su velocidad?
---reveal---
No ha conservado todos los nombres de entrada: falta Luis. El orden alfabético por sí solo no es todo el requisito de salida. El resultado debe contener los nombres originales y colocarlos en el orden requerido.
- 5ExplicaciónElige herramientas para pensar
Cuatro técnicas ayudan a transformar la petición en una solución. La descomposición separa recoger los nombres, ordenarlos y mostrar el resultado. El reconocimiento de patrones encuentra trabajo repetido entre los nombres. La abstracción conserva la información que necesita la tarea. El diseño de algoritmos especifica las instrucciones.
Puedes volver a cualquier técnica cuando una comprobación revele un problema. Sus nombres describen tipos de pensamiento, no una secuencia fija de ejecución de cuatro pasos.
- 6EjemploHaz que los requisitos sean utilizables
Anota las entradas, las salidas, las restricciones y los criterios de éxito. Para el grupo de lectura, la entrada es su lista de miembros y la salida es una presentación ordenada. Conservar todos los nombres es un requisito; comprobar el recuento y quién aparece ayuda a juzgar el resultado.
Después elabora un plan, exprésalo y pruébalo. Estas acciones siguen las etapas de Pólya: comprender, planificar, ejecutar y revisar. Una prueba puede revelar algo que el primer plan pasó por alto.
- 7AnalogíaUsa el mismo pensamiento para las comidas
Planificar comidas usa el mismo enfoque. Separa la elección de recetas de la elaboración de la lista de compras. Detecta ingredientes compartidos, conserva las cantidades relevantes y después ordena las acciones: combinar necesidades, comprobar los alimentos disponibles y comprar.
La representación «arroz, 1 kg» conserva una cantidad útil sin mantener una marca irrelevante. El propósito decide qué detalles importan; cocinar para más personas cambia las cantidades que necesita el plan.
- 8DesafíoElige la primera acción útil
Una persona organizadora dice: «Mejora el horario del evento». Un desarrollador empieza a diseñar una presentación colorida. ¿Qué debería aclarar el equipo antes de esa decisión de implementación?
---reveal---
Aclara la información disponible, el resultado requerido y las restricciones. Por ejemplo, pregunta qué significa «mejorar» y cómo se comprobará el éxito. Una presentación cuidada puede ejecutar un plan que nunca abordó el problema del horario.
- 9DesafíoRelaciona el plan con la comprobación
Una herramienta combina listas de ingredientes, pero cuenta las mismas existencias de la despensa una vez por cada receta que las usa. La cantidad final que hay que comprar es demasiado pequeña. ¿Qué parte del método ordenado necesita investigarse y por qué?
---reveal---
Investiga cómo se combinan las necesidades compartidas y se restan las existencias. Lo que hay en la despensa debe descontarse de la necesidad combinada. La salida fallida apunta a los pasos de procesamiento, aunque los datos de los ingredientes se hayan introducido correctamente.
- 10RepasoPasa al siguiente paso con un problema claro
Un planteamiento inicial útil identifica sus entradas, salidas requeridas, restricciones y comprobaciones. Después se puede dividir, simplificar, expresar y revisar la solución.
Para tu próxima tarea, escribe un criterio de éxito concreto antes de elegir un método. Debe permitir que otra persona juzgue el resultado sin necesitar saber qué software o lenguaje lo produjo.
2Construye un modelo pequeño de una tarea más grande
13 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónHaz manejable un cuestionario
- 2ExplicaciónEmpieza por las responsabilidades
- 3EjemploDetalla una rama
- 4ConsejoAnota los intercambios de información
- 5DesafíoEncuentra un hueco en el plan
- 6ExplicaciónBusca el mismo trabajo
- 7EjemploGeneraliza un método de dibujo
- 8DesafíoComprueba si está justificado reutilizar
- 9AnalogíaTen presente el propósito del mapa
- 10EjemploDa nombre a una tarea y oculta sus pasos
- 11DesafíoSelecciona datos para el propósito
- 12DesafíoCombina las tres técnicas
- 13RepasoExamina los límites que elegiste
3Sigue un algoritmo completo desde la entrada hasta la salida
20 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónSigue lo que hacen realmente las instrucciones
- 2ExplicaciónCompleta el método
- 3EjemploCompara el trabajo con páginas ordenadas
- 4DesafíoComprueba el supuesto del método
- 5ExplicaciónLee la asignación como una sustitución
- 6EjemploConserva el valor anterior en un intercambio
- 7DesafíoDivide una duración en grupos y resto
- 8ExplicaciónElige un camino
- 9EjemploExige ambos límites
- 10DesafíoOrdena las pruebas que se solapan
- 11ExplicaciónDecide cuándo comprueba el bucle
- 12EjemploPrepara el cálculo de una media acumulada
- 13EjemploRealiza las dos primeras pasadas
- 14EjemploTermina el cálculo de la media
- 15ConsejoComprueba el avance y los extremos
- 16EjemploInicializa el mejor valor con un candidato
- 17DesafíoSigue la ejecución antes de la siguiente prueba
- 18ConexiónRepite un bucle por cada fila
- 19DesafíoCombina selección y acumulación
- 20RepasoUsa un seguimiento para justificar el resultado
4Sigue un diagrama de flujo y corrige un error de valor límite
15 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónObserva tanto el camino como los valores
- 2ExplicaciónRelaciona figuras con acciones
- 3EjemploDibuja la secuencia del área
- 4DesafíoElige el símbolo que falta
- 5ExplicaciónConvierte una bifurcación en IF
- 6EjemploColoca primero la decisión de WHILE
- 7EjemploColoca una prueba de inicio de sesión después de la entrada
- 8DesafíoSigue un último intento correcto
- 9ExplicaciónRegistra el estado actual
- 10EjemploEscribe los resultados esperados antes de ejecutar
- 11ConsejoElige distintos tipos de entradas de prueba
- 12DesafíoEncuentra la primera actualización incorrecta
- 13ExplicaciónCorrige la causa y vuelve a comprobar
- 14DesafíoUsa conjuntamente un seguimiento y una prueba nueva
- 15RepasoHaz que cada comprobación responda a una pregunta
5Construye un programa interactivo en Scratch
17 pasos
Guarda esta unidad para seguir cada Lección Interactiva paso a paso.
- 1IntroducciónConecta un plan con un comportamiento visible
- 2ExplicaciónElige el objeto y el evento de inicio
- 3EjemploEjecuta una pila corta en orden
- 4DesafíoDistingue un valor de una acción
- 5ExplicaciónInicializa antes del trabajo repetido
- 6EjemploRecibe una entrada y produce una salida
- 7EjemploElige el secreto y pregunta una vez
- 8EjemploDa mensajes que se puedan leer
- 9EjemploSigue tres intentos
- 10DesafíoCompara las dos formas de repetir hasta que
- 11ExplicaciónCoordina un programa de bloques dependiente
- 12DesafíoComprueba qué exige terminar
- 13EjemploCrea un único procedimiento de dibujo
- 14ConexiónTraslada la estructura al texto
- 15ConsejoAsigna un responsable claro al estado compartido
- 16DesafíoCombina preparación, repetición y reutilización
- 17RepasoLee el comportamiento como un algoritmo
Ejercicios de Pensamiento computacional
Set 1: Define un problema y construye un plan10 Preguntas de Práctica
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Pregunta 3 de 10
Mostrar respuestaOcultar respuesta
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Pregunta 10 de 10
¿Qué valores quedan después de este pseudocódigo?
a ← 6
b ← 11
a ← b
b ← a
Mostrar respuestaOcultar respuesta
a, sustituyendo su 6 anterior. La última línea lee ese valor actual de a, por lo que también copia 11 en b. Un intercambio necesitaría guardar el 6 original en una variable temporal antes de sobrescribir a; la asignación no conserva los valores anteriores por sí sola.Set 2: Sigue variables, decisiones y bucles10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
¿Cuántas veces se ejecuta la salida?
FOR i ← 2 TO 6
OUTPUT i
END FOR
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
¿Qué secuencia se muestra?
n ← 5
WHILE n > 0 DO
n ← n − 2
OUTPUT n
END WHILE
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
¿Cuál es la salida?
total ← 0
FOR EACH n IN [2, 5, 6, 9]
IF n MOD 2 = 0 THEN
total ← total + n
END IF
END FOR
OUTPUT total
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
¿Cuál es la salida para load = 82?
IF load ≥ 80 THEN
OUTPUT "High"
ELSE IF load ≥ 50 THEN
OUTPUT "Medium"
ELSE
OUTPUT "Low"
END IF
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
¿Qué muestra este código?
value ← 7
value ← value + 4
OUTPUT value
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
248 DIV 60 y 248 MOD 60, en ese orden?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
largest ← 0 y solo lo sustituye si aparece un elemento mayor. ¿Qué único cambio hace válido su valor inicial para todas esas listas?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 3: Lee diagramas de flujo e investiga fallos10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
distance ← speed * time?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
count = 0?. Para un recuento de 3, ¿adónde debe ir la ejecución a continuación?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
items > 0? antes de un cuerpo repetido. Sí entra en el cuerpo y vuelve a la prueba; No va a Fin. ¿Qué estructura de pseudocódigo le corresponde?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
¿Cuáles son los totales almacenados sucesivos después de cada ejecución del cuerpo?
total ← 1
FOR i ← 1 TO 3
total ← total * 2
END FOR
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
temperature > −8 AND temperature ≤ 12. Las pruebas con −9, 0, 12 y 13 se superan. ¿Qué prueba nueva revela el defecto y cuál debe ser su resultado esperado?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
total ← 0, recibe un valor, lo suma al total y comprueba si se necesita otro valor. Su flecha Sí vuelve a la inicialización. El objetivo es una suma acumulada. ¿Adónde debe volver esa flecha Sí?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
> donde la regla necesita ≥. ¿Qué tipo de error es?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 4: Construye y coordina programas de bloques en Scratch10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
score se establece en 0 antes de «repetir 6». Dentro del cuerpo, «dar a puntuación el valor 0» va seguido de «sumar a puntuación 2». ¿Qué puntuación queda?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
done ya es VERDADERO antes de un bloque «repetir hasta que ». ¿Cuántas veces se ejecuta su cuerpo?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Set 5: Aplica las ideas en situaciones nuevas10 Preguntas de Práctica
Guarda esta unidad para ver todas las respuestas y practicar cada set.
Pregunta 1 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 2 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 3 de 10
(mass ≥ 2 AND mass ≤ 5) OR readable. ¿Qué aceptación errónea puede ocurrir?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 4 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 5 de 10
¿Cuál es la salida?
total ← 0
count ← 0
FOR EACH n IN [−3, 4, 0, 8, −1]
IF n > 0 THEN
total ← total + n
count ← count + 1
END IF
END FOR
OUTPUT total / count
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 6 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 7 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 8 de 10
n ← 0, repite n ← n + 2 hasta que n ≥ 5 y muestra n. Se dibuja un diagrama de flujo con la misma condición antes del cuerpo: Sí va a la salida, No entra en el cuerpo y vuelve. Para esta entrada ambos muestran 6. ¿Qué cambio revela su distinto comportamiento de bucle?Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 9 de 10
¿Qué par se muestra?
a ← 9
b ← 14
temp ← a
a ← b + 1
b ← temp
OUTPUT a, b
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
Pregunta 10 de 10
Mostrar respuestaOcultar respuesta
Guarda esta unidad para ver esta respuesta.
¿Te atascas con una pregunta tuya? Ayuda con Tareas
Términos Clave
A
Abstracción
Acumulador
Algoritmo
Anidamiento
Asignación
count ← count + 1, se lee el valor anterior de count antes de volver a guardar el nuevo valor en count.B
Bloque «por siempre»
Bloque «repetir hasta que»
Bloque «repetir»
Bloque «unir»
Bloque booleano
Bloque de inicio
Bloque personalizado
Bloque reportero
Bloque reportero «respuesta»
Bucle con condición al final
Bucle con condición al inicio
Bucle controlado por condición
Bucle controlado por contador
Bucle infinito
C
Cadena de caracteres
Cadena de condiciones «si no, si»
Capa de abstracción
Ciclo de resolución de problemas
Ciencia de datos
Ciencias de la computación
Computación
Concurrencia
Condición
remaining > 0 decide si el bucle debe procesar otro elemento.Conector
Constante
Contador
Corrección
Criterio de éxito
D
Datos de tipo real
Dependencia
Depuración
Descomposición
Descomposición descendente
Diagrama de descomposición
Diagrama de flujo
DIV
135 DIV 60 identifica dos horas completas antes de tratar los minutos restantes.E
Entrada
Envío de mensaje de difusión
Error de desfase de una unidad
n ≥ 0 muestra cero además de los valores positivos si su cuerpo muestra n.Error de ejecución
Error de sintaxis
Error lógico
Escenario
Estructura de control
Evento
G
Generalización
I
Ingeniería de computadores
Iteración
L
Línea de flujo
Lista
M
Manejador de eventos
MOD
135 MOD 60 da los 15 minutos que quedan después de retirar dos horas completas.Modelo
N
Número entero
O
Objeto
Operador lógico
P
Parámetro
Pensamiento computacional
Procedimiento
Proceso predefinido
Programa
Programa de bloques
Programación
Programación por bloques
Prueba de escritorio
Prueba de valores límite
Pseudocódigo
R
Rama
Reconocimiento de patrones
Restricción
S
Salida
Secuencia
Selección
Símbolo de decisión
score ≥ 50? dirige una puntuación que cumple el requisito por Sí y una inferior por No.Símbolo de entrada/salida
Símbolo de inicio o fin
Símbolo de proceso
area ← length * width calcula un valor después de leer las dos mediciones.Subproblema
T
Tabla de seguimiento
Tecnologías de la información
Tendencia
Tipo de dato
V
Valor booleano
score ≥ 50 proporciona un valor booleano que decide qué rama del algoritmo se ejecuta.Valor de retorno
Variable
Sobre esta unidad
Crea tus propios Materiales de Estudio
Convierte tus notas, diapositivas y documentos en Guías de Estudio, Preguntas de Práctica, Flashcards y 6 herramientas más.