Added Tp05 CodeCheck exercises
This commit is contained in:
parent
1694ced5f3
commit
d4eccb177f
|
@ -0,0 +1,28 @@
|
||||||
|
# Substitua as reticências, descomente e teste.
|
||||||
|
|
||||||
|
# Comboio com carruagens de passageiros:
|
||||||
|
train = [7, 12, 7, 3, 5, 8, 11, 9]
|
||||||
|
|
||||||
|
# Quantos passageiros leva a segunda carruagem?
|
||||||
|
print(train[1])
|
||||||
|
|
||||||
|
# E a penúltima?
|
||||||
|
print(train[-2])
|
||||||
|
|
||||||
|
# Quantas carruagens tem o comboio?
|
||||||
|
print(len(train))
|
||||||
|
|
||||||
|
# Qual o total de passageiros?
|
||||||
|
print(sum(train))
|
||||||
|
|
||||||
|
|
||||||
|
# Os dias da semana:
|
||||||
|
week = ['sab', 'dom', 'seg', 'ter', 'qua', 'qui', 'sex']
|
||||||
|
|
||||||
|
# Use fatiamento para obter apenas os dias úteis.
|
||||||
|
print(week[2:])
|
||||||
|
|
||||||
|
# E para obter os dias úteis de dois em dois ['seg', 'qua', 'sex']?
|
||||||
|
print(week[2::2])
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
|
@ -0,0 +1,23 @@
|
||||||
|
# Substitua as reticências, descomente e teste.
|
||||||
|
|
||||||
|
# Comboio com carruagens de passageiros:
|
||||||
|
train = [7, 12, 7, 3, 5, 8, 11, 9]
|
||||||
|
|
||||||
|
# Acrescente 10 passageiros à quarta carruagem.
|
||||||
|
train[3] += 10
|
||||||
|
print(train)
|
||||||
|
|
||||||
|
# Retire 3 passageiros da última carruagem.
|
||||||
|
train[-1] -= 3
|
||||||
|
print(train)
|
||||||
|
|
||||||
|
# Acrescente uma carruagem com 12 passageiros ao fim do comboio.
|
||||||
|
train.append(12)
|
||||||
|
print(train)
|
||||||
|
|
||||||
|
# Junte as carruagens de train2 ao final de train.
|
||||||
|
train2 = [4, 6, 5]
|
||||||
|
train += train2
|
||||||
|
print(train)
|
||||||
|
|
||||||
|
# JMR@ua.pt
|
|
@ -0,0 +1,32 @@
|
||||||
|
# Substitua as reticências pelo valor adequado para obter as respostas pedidas.
|
||||||
|
|
||||||
|
# Considere que num comboio de passageiros
|
||||||
|
# as primeiras N carruagens têm lugares de primeira classe
|
||||||
|
# enquanto as restantes têm lugares de segunda classe.
|
||||||
|
|
||||||
|
# Complete a definição para que passengers(train, n)
|
||||||
|
# devolva uma lista com dois elementos, [num1, num2], onde:
|
||||||
|
# num1 = número de passageiros em primeira classe (nas n primeiras carruagens)
|
||||||
|
# num2 = número de passageiros em segunda classe.
|
||||||
|
def passengers(train, n):
|
||||||
|
class1 = train[:n]
|
||||||
|
class2 = train[n:]
|
||||||
|
num1 = sum(class1)
|
||||||
|
num2 = sum(class2)
|
||||||
|
return [num1, num2]
|
||||||
|
|
||||||
|
def test():
|
||||||
|
train1 = [12, 32, 10, 21]
|
||||||
|
train2 = [9, 29, 19]
|
||||||
|
train3 = [14, 34, 24]
|
||||||
|
print(train1, train2, train3)
|
||||||
|
|
||||||
|
print('\nTesting passengers')
|
||||||
|
print(passengers(train1, 2))
|
||||||
|
print(passengers(train2, 1))
|
||||||
|
print(passengers(train3, 0))
|
||||||
|
|
||||||
|
# Run tests:
|
||||||
|
test()
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
|
@ -0,0 +1,27 @@
|
||||||
|
# Substitua as reticências pelo valor adequado para obter as respostas pedidas.
|
||||||
|
|
||||||
|
# Complete a definição para que transfer1car(t1, t2)
|
||||||
|
# transfira a última carruagem do comboio t1 para o comboio t2.
|
||||||
|
# t1 e t2 são listas com os números de passageiros em cada carruagem.
|
||||||
|
def transfer1car(t1, t2):
|
||||||
|
t2.append(t1[-1])
|
||||||
|
t1.remove(t1[-1])
|
||||||
|
|
||||||
|
def test():
|
||||||
|
train1 = [12, 32, 10, 21]
|
||||||
|
train2 = [9, 29, 19]
|
||||||
|
train3 = [14, 34, 24]
|
||||||
|
print(train1, train2, train3)
|
||||||
|
|
||||||
|
print("\nTesting transfer1car")
|
||||||
|
transfer1car(train1, train2)
|
||||||
|
print(train1, train2, train3)
|
||||||
|
transfer1car(train3, train2)
|
||||||
|
print(train1, train2, train3)
|
||||||
|
transfer1car(train3, train1)
|
||||||
|
print(train1, train2, train3)
|
||||||
|
|
||||||
|
# Run tests:
|
||||||
|
test()
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Substitua as reticências pelo valor adequado para obter as respostas pedidas.
|
||||||
|
|
||||||
|
# Complete a função match(t1, t2, g1, g2) para
|
||||||
|
# registar o resultado de um jogo entre duas equipas de futebol.
|
||||||
|
# t1 e t2 são listas com [nome, vitórias, empates, derrotas] das duas equipas.
|
||||||
|
# g1 e g2 são os golos marcados por cada uma delas.
|
||||||
|
# A função não precisa de devolver um resultado,
|
||||||
|
# mas tem de alterar os conteúdos de t1 e t2.
|
||||||
|
def match(t1, t2, g1, g2):
|
||||||
|
print(t1[0], g1, ':', g2, t2[0])
|
||||||
|
if g1 > g2:
|
||||||
|
t1[1] += 1
|
||||||
|
t2[3] += 1
|
||||||
|
elif g1 < g2:
|
||||||
|
t1[3] += 1
|
||||||
|
t2[1] += 1
|
||||||
|
else:
|
||||||
|
t1[2] += 1
|
||||||
|
t2[2] += 1
|
||||||
|
|
||||||
|
def test():
|
||||||
|
team1 = ["Ajax", 0, 0, 0]
|
||||||
|
team2 = ["Benfica", 0, 0, 0]
|
||||||
|
team3 = ["Juventus", 0, 0, 0]
|
||||||
|
print(team1, team2, team3)
|
||||||
|
|
||||||
|
match(team1, team2, 2, 1)
|
||||||
|
print(team1, team2, team3)
|
||||||
|
match(team2, team3, 1, 1)
|
||||||
|
print(team1, team2, team3)
|
||||||
|
match(team3, team1, 0, 3)
|
||||||
|
print(team1, team2, team3)
|
||||||
|
|
||||||
|
# Run tests:
|
||||||
|
test()
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
|
@ -0,0 +1,37 @@
|
||||||
|
# Substitua as reticências pelo valor adequado para obter as respostas pedidas.
|
||||||
|
|
||||||
|
# Complete a definição para que inputDate()
|
||||||
|
# peça o ano, mês e dia de uma data (números inteiros)
|
||||||
|
# e os devolva na forma de um tuplo (ano, mês, dia).
|
||||||
|
def inputDate():
|
||||||
|
y = int(input("Ano? "))
|
||||||
|
m = int(input("Mês? "))
|
||||||
|
d = int(input("Dia? "))
|
||||||
|
return (y, m, d)
|
||||||
|
|
||||||
|
# Complete a definição de forma que inputPerson(msg)
|
||||||
|
# peça o nome de uma pessoa e a sua data de nascimento
|
||||||
|
# e devolva esses dados num tuplo com a forma (nome, (ano, mẽs, dia)).
|
||||||
|
def inputPerson(msg):
|
||||||
|
print(msg)
|
||||||
|
name = input("Nome? ")
|
||||||
|
birth = inputDate()
|
||||||
|
return (name, birth)
|
||||||
|
|
||||||
|
def test():
|
||||||
|
print("Natal de 2020")
|
||||||
|
natal = inputDate()
|
||||||
|
print("natal:", natal)
|
||||||
|
|
||||||
|
p1 = inputPerson("Introduza os dados de p1")
|
||||||
|
print("p1:", p1)
|
||||||
|
p2 = inputPerson("Introduza os dados de p2")
|
||||||
|
print("p2:", p2)
|
||||||
|
|
||||||
|
older = p1[1] < p2[1]
|
||||||
|
print("p1 é mais velha que p2:", older)
|
||||||
|
|
||||||
|
# Run tests:
|
||||||
|
test()
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
|
@ -0,0 +1,26 @@
|
||||||
|
# Substitua as reticências pelo valor adequado para obter as respostas pedidas.
|
||||||
|
|
||||||
|
# Este tuplo define os nomes dos meses em Português:
|
||||||
|
MESESPT = ("janeiro", "fevereiro", "março", "abril", "maio", "junho",
|
||||||
|
"julho", "agosto", "setembro", "outubro", "novembro", "dezembro")
|
||||||
|
|
||||||
|
# Complete a função para que, dado um tuplo (ano, mes, dia)
|
||||||
|
# devolva um data por extenso.
|
||||||
|
# Por exemplo, datePT((1938, 1, 22)) deve devolver "22 de janeiro de 1938".
|
||||||
|
def datePT(date):
|
||||||
|
ano, mes, dia = date
|
||||||
|
s = f"{str(dia)} de {MESESPT[mes-1]} de {ano}"
|
||||||
|
return s
|
||||||
|
|
||||||
|
# Complete a definição para converter uma data no formato "DD/MM/AAAA"
|
||||||
|
# num tuplo de inteiros com (ano, mês, dia).
|
||||||
|
# Por exemplo: parseDMY("25/12/2020") deve devolver (2020, 12, 25).
|
||||||
|
def parseDMY(s):
|
||||||
|
# Sugestão: use o método split.
|
||||||
|
parts = s.split('/')
|
||||||
|
return (int(parts[2]), int(parts[1]), int(parts[0]))
|
||||||
|
|
||||||
|
# No CodeCheck estas funções são testadas com argumentos pré-programados.
|
||||||
|
# Se quiser testar offline, tem de acrescentar as suas intruções de chamada.
|
||||||
|
|
||||||
|
# JMR@ua.pt 2021
|
Loading…
Reference in New Issue