Volver a la portadaInformática · 9.° grado de Secundaria Básica · Cambiar asignatura
Empezar gratis
9° grado · Informática
Sistemas informáticos · Programación textual

Las estructuras de un programa

Te conviene dominar: Algoritmos y pensamiento computacional (7.° grado de Secundaria Básica)
Te conviene dominar: Algoritmos y pensamiento computacional (8.° grado de Secundaria Básica)

Entras a tu correo desde una zona wifi, te equivocas de clave tres veces y la cuenta se bloquea. Detrás hay un programa, y por complejo que sea siempre se arma con las mismas piezas: variables que guardan datos, expresiones que calculan, contadores que llevan la cuenta y un orden de pasos bien definido. Aquí aprendes a leer y escribir algoritmos secuenciales en pseudocódigo y diagramas de flujo. Como ampliación verás las decisiones, las repeticiones y las funciones. Al final volveremos a la cuenta bloqueada.

Variables, constantes y tipos de dato

Código de asignación con la constante TASA, que se fija una vez, y la variable precio, que cambia de valor al sumarle el impuesto. TASA ← 0,10 precio ← 200 precio ← precio + precio · TASA constante variable no cambia cambia

Piensa en un videojuego: la variable puntos empieza en 0 y sube cada vez que pasas de nivel con puntos ← puntos + 100. En cambio, la tasa de impuesto de 10 % de una tienda se guarda en la constante TASA, porque no debe cambiar mientras el programa corre. Así, un celular de $\$200$ queda en $\$220$ con el impuesto: $200 + 200 \cdot 0{,}10 = 220$.

Practica★☆☆Sin empezar
Explica 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é…

Explica 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★☆☆Sin empezar
Explica 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…

Explica 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 del impuesto).

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

Los datos de un programa tienen tipo: entero, decimal, texto o booleano. Indica el tipo más adecuado para cada dato y justifícalo: la edad de una persona, su altura en metros, su nombre y si ha aprobado o no.

Resolver
Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

Resolver

Identificadores

Cada variable y cada constante lleva un nombre: su identificador. En el programa de una tienda, precio y cantidad se entienden; x1 o a no dicen nada.

Practica★☆☆Sin empezar
Explica 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é…

Explica 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

Operadores: aritméticos, relacionales y lógicos

Con las variables se construyen expresiones usando operadores. Hay tres familias:

Familia Operadores Resultado
Aritméticos +, −, ·, /, mod un número
Relacionales <, ≤, >, ≥, =, ≠ verdadero o falso
Lógicos y, o, no verdadero o falso

Su uso más común es la divisibilidad: a es divisible entre b justo cuando a mod b = 0. Así, n mod 2 = 0 indica que n es par, y n mod 2 = 1 que es impar.

Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

Resolver

Contadores y acumuladores

Dos usos muy frecuentes de la asignación son llevar la cuenta y ir sumando.

Practica★☆☆Sin empezar
Explica 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é…

Explica 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

Algoritmos secuenciales: entrada, proceso y salida

Un algoritmo se puede expresar en lenguaje natural, en un diagrama de flujo o en pseudocódigo. Aquí, una compra de arroz a 1,50 dólares la libra:

Diagrama de flujo secuencial: inicio, leer libras, calcular el total, escribir el total y fin. inicio leer libras total ← libras · 1,5 escribir total fin

Los símbolos son: óvalo para inicio y fin, paralelogramo para entrada y salida, y rectángulo para el proceso.

Pseudocódigo Qué hace
inicio comienza el algoritmo
leer libras entrada: pide la cantidad de libras
total ← libras · 1,5 proceso: calcula el importe
escribir total salida: muestra el resultado
fin termina el algoritmo
Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

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

Los datos de un programa tienen tipo: entero, decimal, texto o booleano. Indica el tipo más adecuado para cada dato y justifícalo: la edad de una persona, su altura en metros, su nombre y si ha aprobado o no.

Resolver

Estructuras condicionales (selectivas)

Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

Resolver

Comentarios en el código

Un comentario es texto dentro del código fuente que la computadora ignora. Va dirigido a las personas que leerán el programa después (tu equipo o tú dentro de un mes).

Un buen comentario explica el porqué de una decisión, no lo que ya se ve en la línea.

Comentario Valoración
// suma 1 a n Inútil: repite lo que dice el código
// la tasa es 10 %; algunos productos tienen otra tarifa Útil: explica una decisión
Practica★☆☆Sin empezar
¿Qué es un comentario en el código fuente? Explica 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? Explica 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

Estructuras repetitivas: ciclos y su traza

Diagrama de flujo de un ciclo mientras: se lee n y, mientras n sea mayor que 0, se escribe n y se resta 1; cuando deja de cumplirse, el programa termina. inicio leer n n > 0 ? sí escribir n n ← n − 1 no fin

Por ejemplo, para escribir los números del 1 al 5 no hace falta cinco instrucciones escribir: basta un ciclo con una variable que cuenta.

El ciclo para (con contador)

Cuando sabes de antemano cuántas vueltas dar, el ciclo para es más cómodo: él mismo crea el contador, lo hace avanzar de 1 en 1 y lo comprueba. Se escribe para i desde 1 hasta 5 hacer ... fin para. Equivale a un mientras con i ← 1, la condición i ≤ 5 y la instrucción i ← i + 1 al final del cuerpo, pero no puedes olvidar el incremento.

Los ciclos para se pueden anidar: por cada valor del contador exterior, el interior recorre todos sus valores. Si el interior va desde i hasta N, sus vueltas dependen de i: con N = 3, para i = 1 da 3 vueltas, para i = 2 da 2 y para i = 3 da 1, en total 6.

Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

Resolver

Combinar ciclos y condicionales

Diagrama de flujo de un control de acceso: tras poner intentos a 0, un ciclo comprueba si quedan intentos, lee la clave y, si es incorrecta, suma un intento y vuelve a comprobar; si es correcta permite el acceso, y si no quedan intentos lo bloquea. inicio intentos ← 0 ¿quedan intentos? no Acceso bloqueado sí leer clave ¿clave correcta? sí Acceso permitido no intentos ← intentos + 1
Practica★☆☆Sin empezar
Lee este fragmento y haz la traza: Indica qué valor se muestra en pantalla y explica por qué la segunda instrucción no es una ecuación matemática sino una asignación.

Lee este fragmento y haz la traza:

inicio

    x ← 4

    x ← x + 2

    escribir x

fin

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

Resolver

Funciones: dividir el programa en piezas

La función area_circulo se escribe una vez y se llama dos veces: con radio 1 devuelve un área de 3,14 y con radio 2 devuelve 12,57, el cuádruple. función area_circulo(radio) devolver π·radio² escribir area_circulo(1) radio = 1 ≈ 3,14 escribir area_circulo(2) radio = 2 ≈ 12,57

Dos ventajas de trocear el código en funciones: reutilizas sin copiar y puedes entender y probar cada parte por separado.

Variables locales y globales (ámbito)

El ámbito de una variable es la parte del programa donde existe y puede usarse. Una variable local se crea dentro de una función y desaparece cuando la función termina; solo esa función la ve. Una variable global se declara fuera de todas las funciones y cualquier función puede leerla y modificarla.

Parece cómodo que todas las funciones compartan variables globales, pero tiene costos. Hay acoplamiento: la función depende de variables que están fuera de ella, así que no se puede reutilizar en otro programa sin llevarse esas variables. Es difícil de probar: su resultado depende del estado oculto del programa y no solo de lo que recibe. Y es fácil de romper: cualquier otra función puede cambiar la variable global sin que te des cuenta.

Por eso una buena función recibe sus datos por parámetros, calcula con variables locales y entrega el resultado con devolver. Así, la misma entrada produce siempre la misma salida y cada pieza se entiende por separado.

Diseño Cómo obtiene los datos Consecuencia
Con globales Lee secreto e intentos de fuera Atada a ese programa; difícil de probar
Con parámetros Recibe secreto e intentos al llamarla Reutilizable; se prueba con cualquier valor
Practica★☆☆Sin empezar
Explica 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…

Explica 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 del impuesto).

Resolver

Resumen

¡A practicar! 0 ejercicios de nivel medio en este apartado
¡A practicar! 0 ejercicios de nivel difícil en este apartado
Ver todos los ejercicios de este apartado