Exercicios con condicionais

Antes en Python :

  • Estrutura condicional if..else
  • Operadores lóxicos AND e OR
  • Operación aritmética módulo
  • Variables

 

1. Ano Bisesto

Problema
Dado calquera ano saber se é bisesto.

resultado bisesto

Análise
Un ano bisesto cumple as seguintes condicións:
  • É múltiplo de 4
  • Non é múltiplo de 100 agás que o sexa de 400
Algoritmo
  • 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

diagrama

Pseudocódigo (Pseint) Python 3
ano bisesto en python

 

​ ​

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:

  1. 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.
  2. Sumarlle a  isto  os díxitos que están en posición par.
  3. 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:

  1. Suma as cifras de lugares impares
  2. Suma as cifras de sumares pares
  3. Multiplica por 3 as suma das cifras pares
  4. Suma os resultados do apartado 1 e o apartado 3
  5. 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= 47código de barras do libro Harry Potter

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