100% encontró este documento útil (1 voto)
173 vistas8 páginas

Pensamiento Computacional: Fecha Límite de Entrega: 02/11/2022

Este documento presenta 4 ejercicios sobre pensamiento computacional. El primero pide resolver un problema de búsqueda de pasajero en un crucero mediante algoritmos. El segundo involucra encontrar un estudiante en una base de datos usando su código de casillero. El tercero guía a practicar descomposición de problemas. El cuarto pide otro ejemplo para ilustrar abstracción.

Cargado por

piero salazar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
173 vistas8 páginas

Pensamiento Computacional: Fecha Límite de Entrega: 02/11/2022

Este documento presenta 4 ejercicios sobre pensamiento computacional. El primero pide resolver un problema de búsqueda de pasajero en un crucero mediante algoritmos. El segundo involucra encontrar un estudiante en una base de datos usando su código de casillero. El tercero guía a practicar descomposición de problemas. El cuarto pide otro ejemplo para ilustrar abstracción.

Cargado por

piero salazar
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Pensamiento Computacional

PEC3 - 2022-1
Fecha límite de entrega: 02/11/2022

Objetivos

Los objetivos de este PEC son los siguientes:

● Empezar a conocer qué es el pensamiento computacional, sus pilares fundamentales y las


estructuras de control algorítmicas existentes.
● Conocer qué es álgebra de Boole y su aplicación en nuestra vida diaria, como por ejemplo
las búsquedas avanzadas de Google

Formato de entrega

Esta PEC se entregará en el REC del aula virtual, en formato pdf, en un único archivo, con la
numeración de cada ejercicio. No es necesario incluir el enunciado de los ejercicios.

Enunciado

Ejercicio 1 - Algorítmica (20%)

Nos encontramos en un crucero de lujo. La pasada noche hubo cena con el capitán, donde
asistieron algunos de los pasajeros del crucero. Al finalizar la noche, cada mesa debía poner en su
recibo en qué número de camarote se encuentra alojado, así como su nombre, para poder cargar el
precio de la cena automáticamente en el camarote. Todo el mundo cumplió, a excepción de una
pasajera, que puso su nombre pero no el número de camarote. Desgraciadamente, a pesar de ser
un crucero de lujo, el programador que hizo el sistema informático interno no permitió realizar una
búsqueda en la base de datos por nombre (no demasiado bien hecho, la verdad), de forma que sin
el número de camarote no se puede cargar la cena a nadie. En total hay 984 camarotes en el
crucero (que van desde el número 0 hasta el número 983), por lo que ir buscando uno a uno a
mano a ver si coincide el nombre sería un trabajo muy pesado. El recepcionista, que está
estudiando programación para intentar darle un giro a su vida, decide crear un pequeño algoritmo
para encontrar en qué camarote está la pasajera que olvidó (a propósito o no) poner su número de
camarote. Disponemos de la siguiente información:

1
Array Camarotes (984 camarotes en total)1

(...)

0 1 2 982 983

Clotilde P. Ramona G. Gertrudis I. Rigoberta J. Luciana L.

El caso es que el recepcionista todavía es estudiante y no sabe muy bien qué algoritmo aplicar, así
que busca en internet y encuentra los siguientes algoritmos posibles en pseudocódigo que quizás
podrían resolver su problema:

Algoritmo 1 Algoritmo 2

Cargar Array Camarotes[ ]; Cargar Array Camarotes[ ];


Cargar n = 0; Cargar n = 0;
Cargar nombre_pasajera; Cargar nombre_pasajera;

Mientras n sea menor a 984 { Mientras n sea menor a 984 {

Si el nombre de la pasajera coincide { Si el nombre de la pasajera coincide {


nombre_pasajera = n; camarote = n;
} Deja de buscar;
}
Suma 1 a n;
} Suma 1 a n;
}
IMPRIMIR camarote;
IMPRIMIR nombre_pasajera; IMPRIMIR camarote;
IMPRIMIR nombre_pasajera;

Algoritmo 3 Algoritmo 4

Cargar Array Camarotes[ ]; Cargar Array Camarotes[ ];


Cargar n = 1; Cargar n = 1;
Cargar nombre_pasajera; Cargar nombre_pasajera;

Mientras n sea menor o igual a 984 { Mientras n sea menor a 984 {

Si el nombre de la pasajera coincide { Si el nombre de la pasajera coincide {


camarote = n; camarote = n;
} }

Suma 1 a n; Si el nombre de la pasajera no coincide {


} Suma 1 a n;
}
IMPRIMIR camarote; }
IMPRIMIR nombre_pasajera;
IMPRIMIR camarote;
IMPRIMIR nombre_pasajera;

1
En informática siempre empezamos a contar desde 0 a ninguna parte de 1, al igual que hacemos con los ascensores, donde el 0 es la planta
baja, de forma que el número final será n-1.
2
Algoritmo 5 Algoritmo 6

Cargar Array Camarotes[ ]; Cargar Array Camarotes[ ];


Cargar n = 0; Cargar n = 0;
Cargar nombre_pasajera; Cargar nombre_pasajera;

Mientras n sea menor a 984 { Mientras n sea menor a 984 {

Si el nombre de la pasajera coincide { Si el nombre de la pasajera coincide {


camarote = n; camarote = n;
} }

Si el nombre de la pasajera no coincide { Suma 1 a n;


Suma 1 a n; }
}
} IMPRIMIR camarote;
IMPRIMIR nombre_pasajera;
IMPRIMIR camarote;
IMPRIMIR nombre_pasajera;

Sólo hay dos algoritmos bajo los cuales, con total seguridad, el algoritmo imprimiría el número de
camarote donde se encuentra la pasajera, así como su nombre de pila… ¿Cuáles son y por qué
crees que son estos dos? Indica, además, cuál de los dos algoritmos es más eficiente y por qué.

La imagen de la pasajera es de https://www.flaticon.com/free-icons/princess, con título princess icons,


created by Eucalyp - Flaticon.

Ejercicio 2 - Reconocimiento de patrones (15%)

Se acercan los exámenes finales de un instituto. Los alumnos van locos intentando sacar buenas
notas, llegando a técnicas como colarse en el aula de profesores para buscar los enunciados. Uno
de ellos casi lo consigue, pero la llegada de un profesor ha hecho que tuviera que huir.

Durante la fuga, por eso, se le ha caído un papelito con un código que parece el de su taquilla (hay
quien todavía no ha aprendido que los códigos no deben llevarse nunca en papel). El código es el
siguiente: 9867. Así que parece que la taquilla del alumno tendrá este código.

En las bases de datos del instituto, por seguridad, tienen los códigos de todas las taquillas y saben
a quién pertenece cada una (supondremos que cada taquilla tiene un código único) y en total hay
688 alumnos:

Array Alumnos (688 alumnos en total)


( ...)

0 1 2 686 687

Cirilio C. Protasio A. Orencio H. Horacio J. Toribio L.

Se utilizará un programa de ordenador para encontrar al alumno en la base de datos. Escoge uno
de los dos algoritmos correctos del ejercicio anterior y reescríbelo para resolver este nuevo
problema.

3
La imagen de los alumnos es de https://www.flaticon.com/free-icons/student título Students icons created by
de Dara - Flaticon.

Ejercicio 3 - Descomposición de problemas y abstracción (20%)

En la siguiente dirección:

https://sites.google.com/uoc.edu/ejercicio3pec3/home

encontrarás un simulador guiado con el cual practicar un ejercicio sobre descomposición de


problemas y abstracción. Pincha el link (para ello tendrás que tener abierta tu cuenta de gmail de la
UOC, de lo contrario no te permitirá acceder) y responde a las preguntas que se te hacen en la
misma dirección web. Las respuestas las entregarás en el mismo pdf en el que entregarás el resto
de ejercicios, como un ejercicio más.

Ejercicio 4 - Abstracción (10%)

Dicen que una imagen vale más que mil palabras. Quizás sea exagerado, ¿verdad que con ésta se
entiende bien para explicar el concepto de abstracción?

Piensa y propón otro ejemplo que pueda ilustrar esta estrategia. Puedes explicarlo visual o
textualmente, como prefieras.

4
Ejercicio 5 - Álgebra de Boole (15%)

A continuación se pide que escribas las siguientes expresiones en forma de álgebra de Boole. Por
ejemplo:

● Quiero buscar en Google información sobre mochilas o fulares de porteo para bebés, que
no sean de poliéster, y que sean de la marca BebePlus.

Solución: BebePlus AND (mochila porteo OR fular porteo) - poliéster

● Quiero introducir en una máquina la siguiente condición: la luz verde se enciende si está
pulsado el pulsador SB1 o el SB2, no está pulsado el pulsador SB3 y el detector SQ7
manda señal :

Solución: SQ7 AND (SB1 OR SB2) -SB3

Ahora te toca a ti:

5.1 Quiero información sobre zapatillas de danza marca Capezzio y que sean de color rojo.

5.2 Quiero programar un algoritmo para un ascensor que incluya la siguiente condición: Primero se
debe introducir una llave o una contraseña, y después la planta a la que se quiere ir.

5.3 Añade al problema anterior que, además, no tenga que estar pulsado el botón de emergencia.

5.4 En una página web para la compra de coches de segunda mano puedes poner las condiciones
que desees para buscar el coche que más te guste. Si quiero que la página me muestre los Opel,
BMW modelo Serie 1 y Volkswagen que tenga… ¿Cuál de las siguientes condiciones debería
escribir?
● Opel ORO (BMW AND Serie 1) ORO Volkswagen
● Opel AND (BMW AND Serie 1) AND Volkswagen

Justifica tu respuesta.

5
Ejercicio 6 - Rec. de patrones y descomposición de problemas (20%)

A continuación verás diez problemas escritos con palabras y posteriormente en algoritmos en


pseudocódigo. Hay 5 parejas de problemas que siguen el mismo patrón. Relaciona cuáles de los
algoritmos siguen el mismo patrón y escríbelo mediante la descomposición de problemas. A
continuación tienes un ejemplo que puedes seguir:

Ejemplo:

Problema Algoritmo

X Saber a qué grupo de var edad = aleatorio (entre 0 y 120);


edad pertenece una si edad >= 0 y edad <= 2 entonces imprimir(“bebé”);
persona si edad > 2 y edad <= 12 entonces imprimir(“niño”);
si edad > 12 y edad <= 20 entonces imprimir(“adolescente”);
si edad > 20 y edad <= 35 entonces imprimir(“joven”);
si edad > 35 y edad <= 60 entonces imprimir(“adulto”);
si edad > 60 y edad <= 75 entonces imprimir(“grande”);
si edad > 75 entonces imprimir(“abuelo”);

Y Saber a qué categoría var caracter = aleatorio(cualquier carácter);


pertenece un carácter si caracter entre AZ entonces imprimir(“mayúscula”);
si caracter entre az entonces imprimir(“minúscula”);
si caracter entre Á-Ú entonces imprimir(“mayúscula acentuada”);
si caracter entre à-ú entonces imprimir(“minúscula acentuada”);
si caracter es símbolo entonces imprimir(“carácter especial”);

El problema X y el problema Y siguen el mismo patrón, puesto que si los descomponemos


obtenemos lo siguiente:

1. Obtenemos una variable aleatoria.


2. Comprobamos, según los rangos establecidos, a qué categoría pertenece.
3. Mostramos el resultado por pantalla.

6
A continuación tienes los algoritmos con los que debes trabajar.

Problema Algoritmo

1 Obtener cuántos var contribuyentes_fraccionado = 0;


contribuyentes han por cada contribuyente {
fraccionado el pago de si han fraccionado pago entonces suma 1 a
hacienda contribuyentes_fraccionado;
}
imprimir(contribuyentes_fraccionado);

2 Calcular el total de una comida var primero = 6;


var segundo = 7;
var postre = 3;
var resultado;
resultado = primero + segundo + postre;
imprimir(resultado);

3 Poner a cero la puntuación de por cada equipo de la liga {


cada equipo de la liga puntuacion = 0;
}

4 Realizar una multiplicación de var x = 9;


dos números var y = 8;
var resultado;
resultado = x * y;
imprimir(resultado);

5 Bajar 20 céntimos el precio por cada carburante {


final de cada carburante precio = precio – 0,20;
}

6 Buscar el paciente más var paciente;


antiguo var antigüedad = 0;
por cada paciente de la lista {
si antigüedad_paciente > antigüedad entonces
antigüedad = antigüedad_paciente;
paciente = nombre_paciente;
}

7 Saber si puedo cruzar la calle var color_semaforo = aleatorio(verde o rojo);


car cruzar;
si color_semafor es rojo entonces cruzar = falso;
si no entonces cruzar = cierto;
imprimir(cruzar);

8 Buscar el producto más barato var producto;


de un supermercado var precio = 10000;
por cada producto del supermercado {
si precio_producto < precio entonces
precio = precio_producto;
producto = nombre_producto;
}

7
9 Conocer cuántos vehículos var vehiculos_ok = 0;
han pasado la ITV por cada vehículo del día actual {
satisfactoriamente en un día si ha pasado la ITV entonces suma 1 a
vehiculos_ok;
}
imprimir(vehiculos_ok);

10 Saber si un número es var numero = aleatorio (entre 1 y 1000);


divisible entre 10 var es_divisble_entre_10;
si el resto de dividir numero entre 10 es 0 entonces
es_divisble_entre_10 = cierto;
si no entonces es_divisble_entre_10 = falso;
imprimir(es_divisble_entre_10);

También podría gustarte