Antes en Python :
- Estrutura condicional if..else
- Operadores lóxicos AND e OR
- Operación aritmética módulo
- Variables
1. Ano Bisesto
- É múltiplo de 4
- Non é múltiplo de 100 agás que o sexa de 400
- O algoritmo vai ter un condicional if...else.
- Empregar o módulo para saber se é múltiplo.
Solución proposta (lembra, non é única):
Diagrama de fluxo (Pseint) | Scratch |
Pseudocódigo (Pseint) | Python 3 |
|
Comenta cada unha das liñas do programa indicando que o que fan.
2. Entrar na disco
Fai un programa que che pida a idade e che diga se podes ou non entrar na discoteca (variante: facer o programa para entrar no museo dos xoguetes en Munich ;). Debuxa o diagrama de fluxo.
3. Comprobar un contrasinal
Fai un programa que almacene un contrasinal, logo che pida que introduzas un contrasinal e se coíncide te deixe pasar. Debuxa o diagrama de fluxo.
4. Números pares
Fai un programa que pida un número e che diga se o número é para ou impar (lembra que o resto de dividir un número par entre 2 é 0). Fíxate que poderías empregar o diagrama de fluxo dos anteriores exercicios.
5. Múltiplos de tres
Fai un programa que indique si un número dado é múltiplo de 3 (o resto de dividir entre 3 é 0). Fíxate que poderías empregar o diagrama de fluxo dos anteriores exercicios.
6. Xogar ao dados
Fai un programa que simule tirar un dado e che permita adiviñar que número saíu. (A función para conseguir un número aleatorio está aquí).
Debe comportarse así:
7. Case acertaches
Deseña un programa que mellore o xogo dos dados anterior e se o número se aproxima (un arriba, un abaixo) che indique que quedaches preto. Realiza primeiro o diagrama de fluxo, pois aquí xa vas precisar un elif.
8. Traballando para Lego
Deseña o programa que emprega Lego Shop para cargar os gastos de envío. Pregunta o prezo dun producto e se este é maior ou igual que 50 € aparecerá unha mensaxe de que os gastos son gratis para ti e o prezo final. Se o prezo é menor aparecerá unha mensaxe que avise que os gastos de envío son 5 € e o prezo final do produto.(se vas a páxina de Lego Shop poderás atopar diferencias con estes datos, lembra que esto solo é un problema ;)
9. Traballando para Ikea
Os gastos de envío en Ikea non funcionan como en Lego. Deseña un programa que pregunte o prezo total dos gastos. Se o produto cabe nunha bolsa de IKEA e custa menos de 150 € os gastos serán de 5€, se custa máis de 150 € o prezo será 12 €. Se o produto non cabe nunha bolsa, senón que se precisa carro, se na provincia hai tenda de Ikea custará 49 € se non a hai 69 €. (se vas a páxina de Ikea poderás atopar diferencias con estes datos, lembra que esto solo é un problema ;). Realiza primeiro o diagrama de fluxo, pois aquí xa vas precisar un elif.
10. É correcta a tarxeta de crédito?
No debuxo que tes a continuación aparece o significado dos números de calquera tarxeta de crédito. Se te fixas o último número é de control, serve para indicar se os demais son correctos.
Este díxito de control se controla mediante o algoritmo de Luhn, que fai as seguinte operacións:
- Tomar os díxitos que están en posición impar e multiplicalos por 2. Se o resultado é maior de 9, sumar os díxitos.
- Sumarlle a isto os díxitos que están en posición par.
- Se o resultado é múltiplo de 10 (é decir, igual a 0 en módulo 10) a numeración é correcta.
En resumo:
Operacións a realizar/ Número da tarxeta | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tomar os díxitos que están en posición impar e multiplicalos por 2 | 2 | 6 | 10 | 14 | 18 | 14 | 10 | 6 | |||||||||
Se o resultado é maior de 9 sumar os díxitos. | 2 | 6 | 1 | 5 | 9 | 5 | 1 | 6 | 35 | ||||||||
Díxitos que están en posición par. | 2 | 4 | 6 | 8 | 8 | 6 | 4 | 2 | 40 | ||||||||
Sumamos as dúas últimas filas | 75 | ||||||||||||||||
75%10 | 5 | ||||||||||||||||
Se o resultado é 0 o número de control é correcto | Incorrecto |
Probemos agora cun número correcto:
Operacións a realizar/ Número da tarxeta | 5 | 0 | 2 | 0 | 8 | 0 | 0 | 9 | 9 | 2 | 6 | 2 | 3 | 9 | 3 | 2 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Tomar os díxitos que están en posición impar e multiplicalos por 2 | 10 | 4 | 16 | 0 | 18 | 12 | 6 | 6 | |||||||||
Se o resultado é maior de 9 sumar os díxitos. | 1 | 4 | 7 | 0 | 9 | 3 | 6 | 6 | 36 | ||||||||
Díxitos que están en posición par. | 0 | 0 | 0 | 9 | 2 | 2 | 9 | 2 | 24 | ||||||||
Sumamos as dúas últimas filas | 60 | ||||||||||||||||
60%10 | 0 | ||||||||||||||||
Se o resultado é 0 o número de control é correcto | Correcto |
Se queres inventar un número correcto podes empregar esta aplicación que calcula o número de control
Como aínda non vimos os bucles podes empregar o seguinte inicio para introducir os números da tarxeta.
[Repl.it : Suxerencias para facer o condicional Luhn]
Serías capaz de deseñar o programa que dado un número de tarxeta bancaria te calcule o número de control que levará esa tarxeta?.
11. É correcto o código ISBN ou o código de barras?
O International Standard Book Number (ISBN), que podes atopar en calquera número, emprega tamén un número de control. Antiguamente tiñan soamente 10 díxitos, pero en 2007 pasaron a ter 13 díxitos: 12 + 1 díxito de control. Deste xeito se asemella a calquera código de barras. Para saber se un ISBN é correcto hai que realizar a seguinte operación:
- Suma as cifras de lugares impares
- Suma as cifras de sumares pares
- Multiplica por 3 as suma das cifras pares
- Suma os resultados do apartado 1 e o apartado 3
- Se o ISBN é correcto o resultado anterior será multiplo de 10.
Imos facer un exemplo, empregando o ISBN da primeira edición en galego de Harry Potter e a pedra filosofal, que ten como ISBN 978-84-8288-496-7
Número de orde | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 (díxito de control) |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ISBN | 9 | 7 | 8 | 8 | 4 | 8 | 2 | 8 | 8 | 4 | 9 | 6 | 7 |
1. Suma de cifras impares: 9+8+4+2+8+9+7= 47
2. Suma de cifras pares multiplicado por 3: 3*(7+8+8+8+4+6)=123
3. Sumamos ambos números 47+123= 170
4. Ese número é correcto porque 170 é múltiplo de 10
Fai un programa que che pida un número ISBN, calcule se é correcto e se é incorrecto indique unha mensaxe que avise.
12. Black Jack
O Black Jack é un xogo de cartas tamén chamado as vinteunha. Trátase de xogar a igualar sen sobrepasar ás cartas que lle saen ao ordenador. Imos facer unha variante deste xogo. Para iso deseña un programa que:
Primeira xogada:
- O ordenador simula sacar un número do 2 ao 20 (serían o equivalente a sacar 2 cartas ao chou) e indica cal é.
- Tócalle o turno á persoa xogadora, que empeza a xogar sacando un número do 1 ao 10 (o programa saca unha carta).
- O programa comproba que a persoa non se pasou, de ser así finaliza indicando que perdeu.
- Pregunta se a persoa quere seguir xogando
- Se esta di que non, o programa amosa a diferencia entre o resultado do ordenador e o seu.
Segunda xogada
- Se a persoa xogadora di que si o programa amosa outro número e o suma ao anterior, comproba que non se pasou e pregunta se queres seguir xogando.
Terceira xogada
- Nese caso saca un número do 1 ao 10 e calcula a suma co anterior número.
- Cando plantas o xogo indica como quedaches.
Debería comportarse así:
13. Black Jack con cartas debuxadas
E se cando sacamos unha carta debuxamos unha carta?. Fai un programa que debuxe unha carta empregando as comiñas triples.
Estruturas secuenciais Estruturas condicionais Estruturas iterativas: Bucles