Datos, expresiones, contadores y acumuladores
En la bodega del barrio, Daniela anota cada venta del día. Al cerrar quiere saber dos cosas: cuántas ventas hizo y cuánto dinero entró. Una computadora puede responder las dos, pero necesita saber qué guardar, de qué tipo es cada dato y cómo ir actualizando dos valores a medida que avanza. Al final de la página verás cómo se hace.
Los tipos de dato
Un dato es un valor que el programa guarda y procesa. Según lo que representa, la computadora lo trata de una forma u otra. Estos son los cuatro tipos que usamos:
| Tipo | Qué guarda | Ejemplos |
|---|---|---|
| Numérico entero | Números sin parte decimal | $25$, $-3$, $0$ |
| Numérico real | Números con parte decimal | $3{,}5$, $-0{,}25$ |
| Texto (cadena de caracteres) | Letras, cifras y símbolos entre comillas | «Camila», «La Habana», «100» |
| Lógico | Solo dos valores | verdadero, falso |
Una variable es un espacio con nombre donde se guarda un dato. Se le da valor con la asignación: edad <- 15 se lee «edad recibe 15».
Clasifica cada dato como numérico entero, numérico real, texto (cadena) o lógico: $25$ «Camila» $3{,}5$ verdadero «100» Justifica el caso de «100».
Clasifica cada dato como numérico entero, numérico real, texto (cadena) o lógico:
-
$25$
-
«Camila»
-
$3{,}5$
-
verdadero
-
«100»
Justifica el caso de «100».
Expresiones aritméticas
Una expresión combina datos, variables y operadores, y al evaluarla da un valor. Las aritméticas dan un número. Además de $+$, $-$, $\cdot$ y $/$, hay dos operadores para enteros:
-
div: cociente de la división entera. -
mod: resto de la división entera.
Como $17 = 5 \cdot 3 + 2$, tenemos $17 \text{ div } 5 = 3$ y $17 \text{ mod } 5 = 2$.
Prioridad de las operaciones: primero los paréntesis, luego div, mod y $\cdot$ (de izquierda a derecha), y al final $+$ y $-$. Es la misma jerarquía de la Matemática, para que el resultado no dependa de quién lea la expresión.
Evalúa las expresiones siguientes, respetando la prioridad de las operaciones. Recuerda que mod da el resto de la división entera y div da el cociente entero.…
Evalúa las expresiones siguientes, respetando la prioridad de las operaciones. Recuerda que mod da el resto de la división entera y div da el cociente entero.
-
$7 + 3 \cdot 2$
-
$17 \text{ mod } 5$
-
$17 \text{ div } 5$
-
$(8 - 2) \cdot 4$
Expresiones relacionales y lógicas
Una expresión relacional compara dos valores con $>$, $<$, $=$, $\neq$, $\leq$, $\geq$. En una expresión, = significa «es igual a» (pregunta), mientras que <- es la asignación (orden). El resultado siempre es un dato lógico: verdadero o falso.
Con $x = 8$: $x > 5$ es verdadero, $x = 10$ es falso, $x \neq 8$ es falso y $x \leq 8$ es verdadero.
Las expresiones lógicas combinan resultados lógicos con y, o y no:
| Operador | Resultado |
|---|---|
A y B |
verdadero solo si ambas son verdaderas |
A o B |
verdadero si al menos una es verdadera |
no A |
invierte el valor: verdadero ↔ falso |
Sea $x = 8$. Indica si cada expresión relacional da verdadero o falso: $x > 5$ $x = 10$ $x \neq 8$ $x \leq 8$ Explica qué tipo de dato resulta de evaluar una expresión…
Sea $x = 8$. Indica si cada expresión relacional da verdadero o falso:
-
$x > 5$
-
$x = 10$
-
$x \neq 8$
-
$x \leq 8$
Explica qué tipo de dato resulta de evaluar una expresión relacional.
Sean $x = 12$ e $y = 7$. Evalúa estas expresiones lógicas y escribe el valor de cada una: $(x > 10) \text{ y } (y > 10)$ $(x > 10) \text{ o } (y > 10)$…
Sean $x = 12$ e $y = 7$. Evalúa estas expresiones lógicas y escribe el valor de cada una:
-
$(x > 10) \text{ y } (y > 10)$
-
$(x > 10) \text{ o } (y > 10)$
-
$\text{no}\,(x = y)$
-
$(x \text{ mod } 2 = 0) \text{ y } (y < 9)$
Explica en qué se diferencian los operadores «y» y «o» en el resultado.
Sean $a = 22$, $b = 4$ y $c = 5$. Evalúa paso a paso, indicando el orden de las operaciones y el resultado de cada subexpresión: $$((a \text{ mod } 4) + b \cdot 2 \geq…
Sean $a = 22$, $b = 4$ y $c = 5$. Evalúa paso a paso, indicando el orden de las operaciones y el resultado de cada subexpresión:
$$((a \text{ mod } 4) + b \cdot 2 \geq 10) \text{ o } \text{no}\,(c < 3)$$Después modifica el valor de $c$ para que el segundo operando sea falso. Indica si cambia el resultado total y por qué.
Contadores
Un contador es una variable que aumenta (o disminuye) siempre en una cantidad fija, normalmente 1, cada vez que ocurre algo. Sirve para responder «¿cuántos?».
Tiene dos partes:
-
Inicialización antes del ciclo:
cont <- 0. -
Actualización dentro del ciclo, a veces bajo una condición:
cont <- cont + 1.
Se lee: «toma el valor actual de cont, súmale 1 y guarda el resultado en cont».
Un programa cuenta cuántos educandos aprueban un examen. Usa una variable cont que empieza en 0 y aumenta en 1 cuando la nota es de 60 o más. Las notas leídas, en orden,…
Un programa cuenta cuántos educandos aprueban un examen. Usa una variable cont que empieza en 0 y aumenta en 1 cuando la nota es de 60 o más. Las notas leídas, en orden, son: 70, 55, 90, 60, 45.
Construye una tabla que muestre, nota por nota, si se cumple la condición y el valor de cont. Indica el valor final y explica por qué cont es un contador.
Acumuladores
Un acumulador es una variable donde se van sumando valores que cambian en cada paso. Sirve para responder «¿cuánto en total?». Se inicia en 0 y se actualiza así: suma <- suma + x.
| Contador | Acumulador | |
|---|---|---|
| Pregunta | ¿Cuántos? | ¿Cuánto en total? |
| Se le suma | Una cantidad fija (casi siempre 1) | Un valor que cambia |
| Ejemplo | cont <- cont + 1 |
total <- total + precio |
Una traza es una tabla que anota el valor de las variables después de cada paso. Es la mejor forma de comprobar un programa a mano.
| Paso | precio | total |
|---|---|---|
| inicio | — | 0 |
| 1 | 4 | 4 |
| 2 | 3 | 7 |
| 3 | 5 | 12 |
Si además se divide el acumulador entre el contador, sale el promedio. Con 6 edades y suma 97, el promedio es $97 / 6 \approx 16{,}17$.
En una mipyme se compran cuatro pomos de aceite que cuestan, en dólares, 4, 3, 4 y 3. Un programa usa una variable total que empieza en 0 y en cada paso ejecuta total =…
En una mipyme se compran cuatro pomos de aceite que cuestan, en dólares, 4, 3, 4 y 3. Un programa usa una variable total que empieza en 0 y en cada paso ejecuta total = total + precio.
Haz la traza del programa y da el valor final de total. Explica en qué se diferencia un acumulador de un contador.
Un programa recibe las edades de seis estudiantes de un grupo: 15, 16, 17, 15, 18, 16. Debe contar cuántos tienen más de 16 años y acumular la suma de todas las edades…
Un programa recibe las edades de seis estudiantes de un grupo: 15, 16, 17, 15, 18, 16. Debe contar cuántos tienen más de 16 años y acumular la suma de todas las edades para calcular después la edad promedio.
Yoel inicializó el contador en 1 y el acumulador en 10.
-
Haz la traza correcta, con ambas variables iniciadas en 0, y da los valores finales.
-
Calcula los valores finales con las inicializaciones de Yoel.
-
Argumenta por qué esas inicializaciones producen resultados erróneos.
Vuelve al principio: Daniela usa un contador para el número de ventas (ventas <- ventas + 1) y un acumulador para el dinero (dinero <- dinero + importe), los dos iniciados en 0.
Resumen
-
Los datos son de cuatro tipos: entero, real, texto (cadena) y lógico; lo que está entre comillas es texto.
-
En las expresiones aritméticas mandan los paréntesis, luego
div,mody $\cdot$, y al final $+$ y $-$. -
Las expresiones relacionales comparan y dan un valor lógico; con
y,o,nose combinan. -
Un contador suma una cantidad fija (
cont <- cont + 1) y responde «¿cuántos?». -
Un acumulador suma valores variables (
suma <- suma + x) y responde «¿cuánto en total?». -
Ambos se inicializan en 0 antes del ciclo, y la traza permite comprobarlos paso a paso.