Parte da aula07 adicionada

This commit is contained in:
tiagorg 2022-11-09 14:52:30 +00:00
parent fb5b3d3e53
commit 9aae8f6c9d
Signed by untrusted user who does not match committer: TiagoRG
GPG Key ID: DFCD48E3F420DB42
10 changed files with 522 additions and 0 deletions

7
1ano/fp/aula07/README.md Normal file
View File

@ -0,0 +1,7 @@
# Fundamentos de Programação
## Aula 07 - [Slides](https://github.com/TiagoRG/uaveiro-leci/blob/master/1ano/fp/slides/tp07-dictionaries.pdf)
### Tópico principal da aula: Dictionaries
#### Exercícios terminados: ex01, ex02, ex03
---
*Pode conter erros, caso encontre algum, crie um* [*ticket*](https://github.com/TiagoRG/uaveiro-leci/issues/new)

BIN
1ano/fp/aula07/aula07.pdf Executable file

Binary file not shown.

79
1ano/fp/aula07/coins.py Executable file
View File

@ -0,0 +1,79 @@
# A set of functions to deal with bags of money.
#
# JMR 2017
# Face values of coins (in cents):
COINS = [200, 100, 50, 20, 10, 5, 2, 1]
def value(bag):
"""Return total amount in a bag."""
...
def transfer1coin(bag1, c, bag2):
"""Try to transfer one coin of value c from bag1 to bag2.
If possible, transfer coin and return True, otherwise return False."""
...
def transfer(bag1, amount, bag2):
"""Try to transfer an amount from bag1 to bag2.
If possible, transfer coins and return True,
otherwise, return False and leave bags with same values."""
if amount == 0:
return True
if value(bag1) < amount:
return False
...
def strbag(bag):
"""Return a string representing the contents of a bag."""
# You may want to change this to produce a more user-friendly
# representation such as "4x200+3x50+1x5+3x1=958".
return str(bag)
...
def main():
# A bag of coins is represented by a dict of {coin: number} items
bag1 = {1: 4, 2: 0, 5:1, 10: 0, 20: 5, 50: 4, 100: 2, 200: 1}
bag2 = {}
# Test the value function.
assert value({}) == 0
assert value({1:7, 5:2, 20:4, 100:1}) == 197
# Test the strbag function.
print( strbag({1:7, 5:2, 20:4, 100:1}) ) # 1x100+4x20+2x5+7x1=197
print( strbag({1:7, 5:2, 10:0, 20:4, 100:1}) ) # 1x100+4x20+2x5+7x1=197
print("bag1:", strbag(bag1)) # bag1: 1x200+2x100+4x50+5x20+1x5+4x1=709
print("bag2:", strbag(bag2)) # bag2: =0
print(transfer1coin(bag1, 10, bag2)) # False!
print("bag1:", strbag(bag1)) # bag1: 1x200+2x100+4x50+5x20+1x5+4x1=709
print("bag2:", strbag(bag2)) # bag2: =0
print(transfer1coin(bag1, 20, bag2)) # True
print("bag1:", strbag(bag1)) # bag1: 1x200+2x100+4x50+4x20+1x5+4x1=689
print("bag2:", strbag(bag2)) # bag2: 1x20=20
print(transfer1coin(bag1, 20, bag2)) # True
print("bag1:", strbag(bag1)) # bag1: 1x200+2x100+4x50+3x20+1x5+4x1=669
print("bag2:", strbag(bag2)) # bag2: 2x20=40
print(transfer(bag1, 157, bag2)) # True (should be easy)
print("bag1:", strbag(bag1)) # bag1: 1x200+1x100+3x50+3x20+2x1=512
print("bag2:", strbag(bag2)) # bag2: 1x100+1x50+2x20+1x5+2x1=197
print(transfer(bag1, 60, bag2)) # not easy, but possible...
print("bag1:", strbag(bag1))
print("bag2:", strbag(bag2))
return
if __name__ == "__main__":
main()

View File

@ -0,0 +1,26 @@
import sys
def main():
# Read the file
f = open(sys.argv[1], 'r')
text = f.read()
f.close()
# Count the letters
letters = {}
for c in text:
if c.isalpha():
c = c.lower()
if c in letters:
letters[c] += 1
else:
letters[c] = 1
# Print the results
for c in sorted(letters.keys()):
print(c, letters[c])
if __name__ == "__main__":
main()

220
1ano/fp/aula07/nasdaq.csv Executable file
View File

@ -0,0 +1,220 @@
CSCO 2020-10-01 39.1 39.31 38.57 38.8 20763541
CSCO 2020-10-02 38.05 38.55 37.97 38.27 24492961
CSCO 2020-10-05 38.48 38.79 38.28 38.57 26929054
CSCO 2020-10-06 38.5 39.35 38.4 38.57 28430813
CSCO 2020-10-07 38.98 39.58 38.78 39.4 20593711
CSCO 2020-10-08 39.8 40.18 39.66 39.79 19031346
CSCO 2020-10-09 40.15 40.23 39.72 39.85 16167474
CSCO 2020-10-12 39.93 40.53 39.63 40.36 22757245
CSCO 2020-10-13 40.54 40.61 39.71 39.81 23438266
CSCO 2020-10-14 39.85 40.42 39.76 39.89 16444686
CSCO 2020-10-15 39.47 40 39.35 39.97 15456971
CSCO 2020-10-16 39.88 40.3 39.55 40.16 21295117
CSCO 2020-10-19 40.15 40.38 39.16 39.3 19600466
CSCO 2020-10-20 39.44 39.51 39.03 39.2 16564890
CSCO 2020-10-21 39.31 39.57 38.98 39.06 17016266
CSCO 2020-10-22 38.85 38.96 38.38 38.82 20399040
CSCO 2020-10-23 38.93 38.97 38.65 38.82 15556084
CSCO 2020-10-26 38.4 38.43 37.15 37.67 29146548
CSCO 2020-10-27 37.38 37.5 36.59 36.87 37911471
CSCO 2020-10-28 36.32 36.51 35.68 35.71 34561490
CSCO 2020-10-29 35.51 36.07 35.28 35.69 35331966
CSCO 2020-10-30 35.6 35.93 35.49 35.9 29159659
NFLX 2020-10-01 506.03 529.55 503.6 527.51 8153710
NFLX 2020-10-02 516.43 526.37 502.7 503.06 6071165
NFLX 2020-10-05 506.8 520.99 501.7 520.65 4088069
NFLX 2020-10-06 518.72 521.82 504.16 505.87 4199034
NFLX 2020-10-07 518 536.49 515.82 534.66 7988683
NFLX 2020-10-08 533.48 535 524.15 531.79 5386488
NFLX 2020-10-09 537.83 544.28 535 539.44 4781259
NFLX 2020-10-12 548.81 551.81 538.24 539.81 5391074
NFLX 2020-10-13 540.56 557.65 537.2 554.09 5602498
NFLX 2020-10-14 562.61 572.49 541 541.45 9510081
NFLX 2020-10-15 545.52 551.22 535.1 541.94 5113126
NFLX 2020-10-16 549.5 554.33 530.03 530.79 6347363
NFLX 2020-10-19 537.07 541.8 525.38 530.72 7567506
NFLX 2020-10-20 528.14 533.78 522.26 525.42 10047175
NFLX 2020-10-21 501.03 506.85 488.25 489.05 17405708
NFLX 2020-10-22 494.69 495.14 482 485.23 6997922
NFLX 2020-10-23 488.11 490.06 481.35 488.28 4927862
NFLX 2020-10-26 487.03 496.82 478.9 488.24 6186087
NFLX 2020-10-27 490.01 490.49 482.93 488.93 3627175
NFLX 2020-10-28 486.36 494 483.28 486.24 5992731
NFLX 2020-10-29 488.5 513.9 479.34 504.21 11120689
NFLX 2020-10-30 502.01 505.88 472.21 475.74 7813897
INTC 2020-10-01 52.4 52.72 51.99 52.24 22127580
INTC 2020-10-02 51.5 51.98 50.99 51.01 25811766
INTC 2020-10-05 51.3 51.81 51.27 51.69 20883245
INTC 2020-10-06 51.71 52.7 51.23 51.37 25642790
INTC 2020-10-07 51.85 52.9 51.79 52.67 21978673
INTC 2020-10-08 52.91 53.58 52.67 53.37 22369537
INTC 2020-10-09 53.55 53.85 52.67 52.82 24343898
INTC 2020-10-12 53.55 54.2 53.21 53.88 27303474
INTC 2020-10-13 54.27 54.29 53.62 53.83 20005769
INTC 2020-10-14 54.01 54.4 53.51 53.55 21885105
INTC 2020-10-15 52.75 53.98 52.62 53.85 18272865
INTC 2020-10-16 53.9 54.7 53.9 54.16 23421388
INTC 2020-10-19 54.47 56.23 53.84 54.58 43537219
INTC 2020-10-20 54.6 54.7 53.27 53.43 27224899
INTC 2020-10-21 53.14 54.07 52.82 53.5 21866025
INTC 2020-10-22 53.12 54.22 53.07 53.9 41522739
INTC 2020-10-23 48.35 48.67 47.66 48.2 97322490
INTC 2020-10-26 47.85 47.86 46.25 46.72 54161291
INTC 2020-10-27 45.98 46.41 45.36 45.64 50130518
INTC 2020-10-28 44.89 45.29 44.2 44.25 45066011
INTC 2020-10-29 44.24 44.47 43.92 44.11 36796801
INTC 2020-10-30 44.1 44.8 43.61 44.28 46794171
QCOM 2020-10-01 119.93 120.21 117.7 119.52 5316766
QCOM 2020-10-02 116.78 118.66 115.43 115.47 5834337
QCOM 2020-10-05 116.9 120.65 116.73 120.52 5835936
QCOM 2020-10-06 120.45 122.52 119.1 119.54 7636963
QCOM 2020-10-07 121.24 123.36 120.65 123.03 7410347
QCOM 2020-10-08 124 124.43 121.84 122.34 4757536
QCOM 2020-10-09 123.93 125.89 122.79 124.87 11073412
QCOM 2020-10-12 127.7 127.7 124.95 126.69 7893835
QCOM 2020-10-13 127.47 128.18 125.4 127.46 7605706
QCOM 2020-10-14 129.08 132.42 128.93 129.88 13183613
QCOM 2020-10-15 127.3 129.14 126.65 128.58 7377948
QCOM 2020-10-16 129.7 130.19 127.74 129.03 6626992
QCOM 2020-10-19 130.13 131.96 127.7 128.42 5765840
QCOM 2020-10-20 129.18 129.33 127.51 128.3 4413343
QCOM 2020-10-21 128.04 130.42 126.37 128.55 4343992
QCOM 2020-10-22 129.51 129.59 126.86 128.38 3897002
QCOM 2020-10-23 128.59 129.1 127.1 128.88 3943056
QCOM 2020-10-26 127.53 128.67 124.4 126.2 6065923
QCOM 2020-10-27 126.51 126.96 125.19 125.91 5825518
QCOM 2020-10-28 123.5 123.82 121.05 121.58 8234821
QCOM 2020-10-29 122.06 127.69 121.89 126.44 7053259
QCOM 2020-10-30 123.68 125.25 121.6 123.36 7814462
EA 2020-10-01 132.07 134.06 131.46 132.78 1868992
EA 2020-10-02 131.37 132.24 127.71 129.07 1751296
EA 2020-10-05 130.09 132.95 129.07 130.72 1270110
EA 2020-10-06 130.36 130.4 124.52 124.84 3753713
EA 2020-10-07 126.41 126.5 123.97 125.01 3257483
EA 2020-10-08 126.1 126.38 124.42 125.99 1959558
EA 2020-10-09 126.86 128.44 125.92 127.45 1991745
EA 2020-10-12 128.98 132.07 127.83 130.88 2106617
EA 2020-10-13 131.87 133.54 130.16 132.94 2117365
EA 2020-10-14 133.79 133.86 131.74 132.75 2520501
EA 2020-10-15 131.07 132.41 129.88 131.34 1903434
EA 2020-10-16 132.5 133.26 131.05 131.92 1925033
EA 2020-10-19 133.14 133.89 129.51 129.87 1454331
EA 2020-10-20 130.42 130.6 127.09 127.36 2249230
EA 2020-10-21 127.98 129.45 127.3 127.65 2200937
EA 2020-10-22 127.78 128.01 125.4 126.92 1792367
EA 2020-10-23 127.24 127.65 125.53 126.77 1215209
EA 2020-10-26 126.41 127.5 125.03 126.68 2166019
EA 2020-10-27 127.36 127.58 126.1 126.62 1452780
EA 2020-10-28 125.62 127.07 124.81 125.6 2079571
EA 2020-10-29 125.79 126.17 122.77 123.9 2633669
EA 2020-10-30 122.99 124.09 118.52 119.83 3313123
PTI 2020-10-01 1.08 1.12 1.08 1.1 205885
PTI 2020-10-02 1.08 1.13 1.05 1.07 291697
PTI 2020-10-05 1.07 1.14 1.07 1.12 516326
PTI 2020-10-06 1.12 1.17 1.09 1.09 377764
PTI 2020-10-07 1.11 1.18 1.1 1.17 410158
PTI 2020-10-08 1.18 1.2 1.15 1.17 211728
PTI 2020-10-09 1.16 1.19 1.15 1.15 105444
PTI 2020-10-12 1.15 1.18 1.12 1.14 209001
PTI 2020-10-13 1.14 1.2 1.14 1.19 208808
PTI 2020-10-14 1.18 1.35 1.15 1.17 2017692
PTI 2020-10-15 1.16 1.23 1.11 1.19 408194
PTI 2020-10-16 1.2 1.25 1.16 1.23 378098
PTI 2020-10-19 1.24 1.25 1.16 1.17 320322
PTI 2020-10-20 1.19 1.19 1.14 1.17 244802
PTI 2020-10-21 1.17 1.17 1.12 1.13 181417
PTI 2020-10-22 1.14 1.15 1.1 1.12 165814
PTI 2020-10-23 1.14 1.14 1.1 1.11 134945
PTI 2020-10-26 1.12 1.14 1.05 1.08 373833
PTI 2020-10-27 1.11 1.11 1.05 1.06 253591
PTI 2020-10-28 1.06 1.06 0.98 1.02 631401
PTI 2020-10-29 1.01 1.05 1 1.01 305993
PTI 2020-10-30 1.01 1.02 0.94 0.98 325320
TSLA 2020-10-01 440.76 448.88 434.42 448.16 50741454
TSLA 2020-10-02 421.39 439.13 415 415.09 71430025
TSLA 2020-10-05 423.35 433.64 419.33 425.68 44722786
TSLA 2020-10-06 423.79 428.78 406.05 413.98 49146259
TSLA 2020-10-07 419.87 429.9 413.85 425.3 43127709
TSLA 2020-10-08 438.44 439 425.3 425.92 40421116
TSLA 2020-10-09 430.13 434.59 426.46 434 28925656
TSLA 2020-10-12 442 448.74 438.58 442.3 38791133
TSLA 2020-10-13 443.35 448.89 436.6 446.65 34463665
TSLA 2020-10-14 449.78 465.9 447.35 461.3 48045394
TSLA 2020-10-15 450.31 456.57 442.5 448.88 35672354
TSLA 2020-10-16 454.44 455.95 438.85 439.67 32775879
TSLA 2020-10-19 446.24 447 428.87 430.83 36287843
TSLA 2020-10-20 431.75 431.75 419.05 421.94 31656289
TSLA 2020-10-21 422.7 432.95 421.25 422.64 32370461
TSLA 2020-10-22 441.92 445.23 424.51 425.79 39993191
TSLA 2020-10-23 421.84 422.89 407.38 420.63 33716980
TSLA 2020-10-26 411.63 425.76 410 420.28 28239161
TSLA 2020-10-27 423.76 430.5 420.1 424.68 22686506
TSLA 2020-10-28 416.48 418.6 406 406.02 25451409
TSLA 2020-10-29 409.96 418.06 406.46 410.83 22655308
TSLA 2020-10-30 406.9 407.59 379.11 388.04 42587639
VOD 2020-10-01 13.27 13.32 13.14 13.25 3591182
VOD 2020-10-02 13.16 13.52 13.15 13.46 2979065
VOD 2020-10-05 14.04 14.2 13.95 14.19 6282375
VOD 2020-10-06 14.49 14.51 14.2 14.23 4309491
VOD 2020-10-07 14.3 14.36 14.12 14.22 2174561
VOD 2020-10-08 14.51 14.63 14.44 14.57 3034816
VOD 2020-10-09 14.6 14.68 14.44 14.63 2258206
VOD 2020-10-12 14.73 14.83 14.66 14.77 2212874
VOD 2020-10-13 14.67 14.69 14.55 14.6 2635563
VOD 2020-10-14 14.43 14.5 14.33 14.37 1908486
VOD 2020-10-15 14.15 14.33 14.12 14.32 3918735
VOD 2020-10-16 14.11 14.34 14.1 14.28 4334682
VOD 2020-10-19 14.35 14.42 14.19 14.21 4436631
VOD 2020-10-20 14.41 14.59 14.39 14.46 3056450
VOD 2020-10-21 14.13 14.42 14.04 14.33 8730294
VOD 2020-10-22 14.25 14.58 14.25 14.55 6935782
VOD 2020-10-23 14.8 14.93 14.72 14.84 6919188
VOD 2020-10-26 14.62 14.62 14.41 14.52 4442371
VOD 2020-10-27 14.2 14.25 13.91 13.98 4558518
VOD 2020-10-28 13.45 13.56 13.28 13.43 6759000
VOD 2020-10-29 13.29 13.64 13.2 13.55 5912464
VOD 2020-10-30 13.49 13.53 13.33 13.51 3372568
ERIC 2020-10-01 10.77 10.8 10.64 10.72 6537212
ERIC 2020-10-02 10.52 10.66 10.5 10.61 5451639
ERIC 2020-10-05 10.76 10.79 10.7 10.77 4362498
ERIC 2020-10-06 10.84 10.86 10.62 10.67 4972198
ERIC 2020-10-07 10.66 10.7 10.61 10.65 5990623
ERIC 2020-10-08 10.8 10.8 10.71 10.79 5180376
ERIC 2020-10-09 10.89 10.93 10.84 10.87 4633664
ERIC 2020-10-12 10.91 10.93 10.82 10.86 7169230
ERIC 2020-10-13 10.85 10.87 10.7 10.73 8288522
ERIC 2020-10-14 10.75 10.84 10.73 10.82 7771599
ERIC 2020-10-15 10.54 10.8 10.53 10.8 13022498
ERIC 2020-10-16 10.74 10.81 10.7 10.7 9317609
ERIC 2020-10-19 11.02 11.13 10.9 10.94 12575083
ERIC 2020-10-20 11.13 11.33 11.1 11.13 15019952
ERIC 2020-10-21 12.07 12.48 12.05 12.44 24980230
ERIC 2020-10-22 12.49 12.52 12.22 12.44 11322692
ERIC 2020-10-23 12.26 12.42 12.24 12.36 7844003
ERIC 2020-10-26 12.33 12.38 11.97 12.08 7164321
ERIC 2020-10-27 11.92 12.04 11.77 11.78 15622624
ERIC 2020-10-28 11.39 11.46 11.32 11.38 7895540
ERIC 2020-10-29 11.35 11.41 11.26 11.33 8549142
ERIC 2020-10-30 11.24 11.3 11.12 11.21 4374440
AMZN 2020-10-01 3208 3224 3172 3221.26 4971922
AMZN 2020-10-02 3153.63 3195.8 3123 3125 5613098
AMZN 2020-10-05 3145.84 3202.53 3140.85 3199.2 3775332
AMZN 2020-10-06 3165 3182 3090 3099.96 5086857
AMZN 2020-10-07 3135 3200 3132.39 3195.69 4309439
AMZN 2020-10-08 3224.99 3233.29 3174.99 3190.55 3174114
AMZN 2020-10-09 3210 3288.99 3197.83 3286.65 4907871
AMZN 2020-10-12 3349.94 3496.24 3339.55 3442.93 8364198
AMZN 2020-10-13 3467.99 3492.38 3424.22 3443.63 5744697
AMZN 2020-10-14 3447 3464.88 3340 3363.71 5828916
AMZN 2020-10-15 3292.01 3355.88 3280 3338.65 5223448
AMZN 2020-10-16 3363.23 3399.66 3160 3272.71 6474353
AMZN 2020-10-19 3299.61 3329 3192.74 3207.21 5223626
AMZN 2020-10-20 3222.28 3266 3192.01 3217.01 4509678
AMZN 2020-10-21 3212.5 3233.88 3160 3184.94 4592736
AMZN 2020-10-22 3189.87 3198.75 3121.94 3176.4 4212005
AMZN 2020-10-23 3191 3205.33 3140 3204.4 3466687
AMZN 2020-10-26 3198.74 3282.98 3153.3 3207.04 5901151
AMZN 2020-10-27 3224.94 3291.66 3211.3 3286.33 4291047
AMZN 2020-10-28 3249.3 3264.02 3162.47 3162.78 5588330
AMZN 2020-10-29 3201.27 3257.25 3164 3211.01 6596529
AMZN 2020-10-30 3157.75 3167 3019 3036.15 8396081
1 CSCO 2020-10-01 39.1 39.31 38.57 38.8 20763541
2 CSCO 2020-10-02 38.05 38.55 37.97 38.27 24492961
3 CSCO 2020-10-05 38.48 38.79 38.28 38.57 26929054
4 CSCO 2020-10-06 38.5 39.35 38.4 38.57 28430813
5 CSCO 2020-10-07 38.98 39.58 38.78 39.4 20593711
6 CSCO 2020-10-08 39.8 40.18 39.66 39.79 19031346
7 CSCO 2020-10-09 40.15 40.23 39.72 39.85 16167474
8 CSCO 2020-10-12 39.93 40.53 39.63 40.36 22757245
9 CSCO 2020-10-13 40.54 40.61 39.71 39.81 23438266
10 CSCO 2020-10-14 39.85 40.42 39.76 39.89 16444686
11 CSCO 2020-10-15 39.47 40 39.35 39.97 15456971
12 CSCO 2020-10-16 39.88 40.3 39.55 40.16 21295117
13 CSCO 2020-10-19 40.15 40.38 39.16 39.3 19600466
14 CSCO 2020-10-20 39.44 39.51 39.03 39.2 16564890
15 CSCO 2020-10-21 39.31 39.57 38.98 39.06 17016266
16 CSCO 2020-10-22 38.85 38.96 38.38 38.82 20399040
17 CSCO 2020-10-23 38.93 38.97 38.65 38.82 15556084
18 CSCO 2020-10-26 38.4 38.43 37.15 37.67 29146548
19 CSCO 2020-10-27 37.38 37.5 36.59 36.87 37911471
20 CSCO 2020-10-28 36.32 36.51 35.68 35.71 34561490
21 CSCO 2020-10-29 35.51 36.07 35.28 35.69 35331966
22 CSCO 2020-10-30 35.6 35.93 35.49 35.9 29159659
23 NFLX 2020-10-01 506.03 529.55 503.6 527.51 8153710
24 NFLX 2020-10-02 516.43 526.37 502.7 503.06 6071165
25 NFLX 2020-10-05 506.8 520.99 501.7 520.65 4088069
26 NFLX 2020-10-06 518.72 521.82 504.16 505.87 4199034
27 NFLX 2020-10-07 518 536.49 515.82 534.66 7988683
28 NFLX 2020-10-08 533.48 535 524.15 531.79 5386488
29 NFLX 2020-10-09 537.83 544.28 535 539.44 4781259
30 NFLX 2020-10-12 548.81 551.81 538.24 539.81 5391074
31 NFLX 2020-10-13 540.56 557.65 537.2 554.09 5602498
32 NFLX 2020-10-14 562.61 572.49 541 541.45 9510081
33 NFLX 2020-10-15 545.52 551.22 535.1 541.94 5113126
34 NFLX 2020-10-16 549.5 554.33 530.03 530.79 6347363
35 NFLX 2020-10-19 537.07 541.8 525.38 530.72 7567506
36 NFLX 2020-10-20 528.14 533.78 522.26 525.42 10047175
37 NFLX 2020-10-21 501.03 506.85 488.25 489.05 17405708
38 NFLX 2020-10-22 494.69 495.14 482 485.23 6997922
39 NFLX 2020-10-23 488.11 490.06 481.35 488.28 4927862
40 NFLX 2020-10-26 487.03 496.82 478.9 488.24 6186087
41 NFLX 2020-10-27 490.01 490.49 482.93 488.93 3627175
42 NFLX 2020-10-28 486.36 494 483.28 486.24 5992731
43 NFLX 2020-10-29 488.5 513.9 479.34 504.21 11120689
44 NFLX 2020-10-30 502.01 505.88 472.21 475.74 7813897
45 INTC 2020-10-01 52.4 52.72 51.99 52.24 22127580
46 INTC 2020-10-02 51.5 51.98 50.99 51.01 25811766
47 INTC 2020-10-05 51.3 51.81 51.27 51.69 20883245
48 INTC 2020-10-06 51.71 52.7 51.23 51.37 25642790
49 INTC 2020-10-07 51.85 52.9 51.79 52.67 21978673
50 INTC 2020-10-08 52.91 53.58 52.67 53.37 22369537
51 INTC 2020-10-09 53.55 53.85 52.67 52.82 24343898
52 INTC 2020-10-12 53.55 54.2 53.21 53.88 27303474
53 INTC 2020-10-13 54.27 54.29 53.62 53.83 20005769
54 INTC 2020-10-14 54.01 54.4 53.51 53.55 21885105
55 INTC 2020-10-15 52.75 53.98 52.62 53.85 18272865
56 INTC 2020-10-16 53.9 54.7 53.9 54.16 23421388
57 INTC 2020-10-19 54.47 56.23 53.84 54.58 43537219
58 INTC 2020-10-20 54.6 54.7 53.27 53.43 27224899
59 INTC 2020-10-21 53.14 54.07 52.82 53.5 21866025
60 INTC 2020-10-22 53.12 54.22 53.07 53.9 41522739
61 INTC 2020-10-23 48.35 48.67 47.66 48.2 97322490
62 INTC 2020-10-26 47.85 47.86 46.25 46.72 54161291
63 INTC 2020-10-27 45.98 46.41 45.36 45.64 50130518
64 INTC 2020-10-28 44.89 45.29 44.2 44.25 45066011
65 INTC 2020-10-29 44.24 44.47 43.92 44.11 36796801
66 INTC 2020-10-30 44.1 44.8 43.61 44.28 46794171
67 QCOM 2020-10-01 119.93 120.21 117.7 119.52 5316766
68 QCOM 2020-10-02 116.78 118.66 115.43 115.47 5834337
69 QCOM 2020-10-05 116.9 120.65 116.73 120.52 5835936
70 QCOM 2020-10-06 120.45 122.52 119.1 119.54 7636963
71 QCOM 2020-10-07 121.24 123.36 120.65 123.03 7410347
72 QCOM 2020-10-08 124 124.43 121.84 122.34 4757536
73 QCOM 2020-10-09 123.93 125.89 122.79 124.87 11073412
74 QCOM 2020-10-12 127.7 127.7 124.95 126.69 7893835
75 QCOM 2020-10-13 127.47 128.18 125.4 127.46 7605706
76 QCOM 2020-10-14 129.08 132.42 128.93 129.88 13183613
77 QCOM 2020-10-15 127.3 129.14 126.65 128.58 7377948
78 QCOM 2020-10-16 129.7 130.19 127.74 129.03 6626992
79 QCOM 2020-10-19 130.13 131.96 127.7 128.42 5765840
80 QCOM 2020-10-20 129.18 129.33 127.51 128.3 4413343
81 QCOM 2020-10-21 128.04 130.42 126.37 128.55 4343992
82 QCOM 2020-10-22 129.51 129.59 126.86 128.38 3897002
83 QCOM 2020-10-23 128.59 129.1 127.1 128.88 3943056
84 QCOM 2020-10-26 127.53 128.67 124.4 126.2 6065923
85 QCOM 2020-10-27 126.51 126.96 125.19 125.91 5825518
86 QCOM 2020-10-28 123.5 123.82 121.05 121.58 8234821
87 QCOM 2020-10-29 122.06 127.69 121.89 126.44 7053259
88 QCOM 2020-10-30 123.68 125.25 121.6 123.36 7814462
89 EA 2020-10-01 132.07 134.06 131.46 132.78 1868992
90 EA 2020-10-02 131.37 132.24 127.71 129.07 1751296
91 EA 2020-10-05 130.09 132.95 129.07 130.72 1270110
92 EA 2020-10-06 130.36 130.4 124.52 124.84 3753713
93 EA 2020-10-07 126.41 126.5 123.97 125.01 3257483
94 EA 2020-10-08 126.1 126.38 124.42 125.99 1959558
95 EA 2020-10-09 126.86 128.44 125.92 127.45 1991745
96 EA 2020-10-12 128.98 132.07 127.83 130.88 2106617
97 EA 2020-10-13 131.87 133.54 130.16 132.94 2117365
98 EA 2020-10-14 133.79 133.86 131.74 132.75 2520501
99 EA 2020-10-15 131.07 132.41 129.88 131.34 1903434
100 EA 2020-10-16 132.5 133.26 131.05 131.92 1925033
101 EA 2020-10-19 133.14 133.89 129.51 129.87 1454331
102 EA 2020-10-20 130.42 130.6 127.09 127.36 2249230
103 EA 2020-10-21 127.98 129.45 127.3 127.65 2200937
104 EA 2020-10-22 127.78 128.01 125.4 126.92 1792367
105 EA 2020-10-23 127.24 127.65 125.53 126.77 1215209
106 EA 2020-10-26 126.41 127.5 125.03 126.68 2166019
107 EA 2020-10-27 127.36 127.58 126.1 126.62 1452780
108 EA 2020-10-28 125.62 127.07 124.81 125.6 2079571
109 EA 2020-10-29 125.79 126.17 122.77 123.9 2633669
110 EA 2020-10-30 122.99 124.09 118.52 119.83 3313123
111 PTI 2020-10-01 1.08 1.12 1.08 1.1 205885
112 PTI 2020-10-02 1.08 1.13 1.05 1.07 291697
113 PTI 2020-10-05 1.07 1.14 1.07 1.12 516326
114 PTI 2020-10-06 1.12 1.17 1.09 1.09 377764
115 PTI 2020-10-07 1.11 1.18 1.1 1.17 410158
116 PTI 2020-10-08 1.18 1.2 1.15 1.17 211728
117 PTI 2020-10-09 1.16 1.19 1.15 1.15 105444
118 PTI 2020-10-12 1.15 1.18 1.12 1.14 209001
119 PTI 2020-10-13 1.14 1.2 1.14 1.19 208808
120 PTI 2020-10-14 1.18 1.35 1.15 1.17 2017692
121 PTI 2020-10-15 1.16 1.23 1.11 1.19 408194
122 PTI 2020-10-16 1.2 1.25 1.16 1.23 378098
123 PTI 2020-10-19 1.24 1.25 1.16 1.17 320322
124 PTI 2020-10-20 1.19 1.19 1.14 1.17 244802
125 PTI 2020-10-21 1.17 1.17 1.12 1.13 181417
126 PTI 2020-10-22 1.14 1.15 1.1 1.12 165814
127 PTI 2020-10-23 1.14 1.14 1.1 1.11 134945
128 PTI 2020-10-26 1.12 1.14 1.05 1.08 373833
129 PTI 2020-10-27 1.11 1.11 1.05 1.06 253591
130 PTI 2020-10-28 1.06 1.06 0.98 1.02 631401
131 PTI 2020-10-29 1.01 1.05 1 1.01 305993
132 PTI 2020-10-30 1.01 1.02 0.94 0.98 325320
133 TSLA 2020-10-01 440.76 448.88 434.42 448.16 50741454
134 TSLA 2020-10-02 421.39 439.13 415 415.09 71430025
135 TSLA 2020-10-05 423.35 433.64 419.33 425.68 44722786
136 TSLA 2020-10-06 423.79 428.78 406.05 413.98 49146259
137 TSLA 2020-10-07 419.87 429.9 413.85 425.3 43127709
138 TSLA 2020-10-08 438.44 439 425.3 425.92 40421116
139 TSLA 2020-10-09 430.13 434.59 426.46 434 28925656
140 TSLA 2020-10-12 442 448.74 438.58 442.3 38791133
141 TSLA 2020-10-13 443.35 448.89 436.6 446.65 34463665
142 TSLA 2020-10-14 449.78 465.9 447.35 461.3 48045394
143 TSLA 2020-10-15 450.31 456.57 442.5 448.88 35672354
144 TSLA 2020-10-16 454.44 455.95 438.85 439.67 32775879
145 TSLA 2020-10-19 446.24 447 428.87 430.83 36287843
146 TSLA 2020-10-20 431.75 431.75 419.05 421.94 31656289
147 TSLA 2020-10-21 422.7 432.95 421.25 422.64 32370461
148 TSLA 2020-10-22 441.92 445.23 424.51 425.79 39993191
149 TSLA 2020-10-23 421.84 422.89 407.38 420.63 33716980
150 TSLA 2020-10-26 411.63 425.76 410 420.28 28239161
151 TSLA 2020-10-27 423.76 430.5 420.1 424.68 22686506
152 TSLA 2020-10-28 416.48 418.6 406 406.02 25451409
153 TSLA 2020-10-29 409.96 418.06 406.46 410.83 22655308
154 TSLA 2020-10-30 406.9 407.59 379.11 388.04 42587639
155 VOD 2020-10-01 13.27 13.32 13.14 13.25 3591182
156 VOD 2020-10-02 13.16 13.52 13.15 13.46 2979065
157 VOD 2020-10-05 14.04 14.2 13.95 14.19 6282375
158 VOD 2020-10-06 14.49 14.51 14.2 14.23 4309491
159 VOD 2020-10-07 14.3 14.36 14.12 14.22 2174561
160 VOD 2020-10-08 14.51 14.63 14.44 14.57 3034816
161 VOD 2020-10-09 14.6 14.68 14.44 14.63 2258206
162 VOD 2020-10-12 14.73 14.83 14.66 14.77 2212874
163 VOD 2020-10-13 14.67 14.69 14.55 14.6 2635563
164 VOD 2020-10-14 14.43 14.5 14.33 14.37 1908486
165 VOD 2020-10-15 14.15 14.33 14.12 14.32 3918735
166 VOD 2020-10-16 14.11 14.34 14.1 14.28 4334682
167 VOD 2020-10-19 14.35 14.42 14.19 14.21 4436631
168 VOD 2020-10-20 14.41 14.59 14.39 14.46 3056450
169 VOD 2020-10-21 14.13 14.42 14.04 14.33 8730294
170 VOD 2020-10-22 14.25 14.58 14.25 14.55 6935782
171 VOD 2020-10-23 14.8 14.93 14.72 14.84 6919188
172 VOD 2020-10-26 14.62 14.62 14.41 14.52 4442371
173 VOD 2020-10-27 14.2 14.25 13.91 13.98 4558518
174 VOD 2020-10-28 13.45 13.56 13.28 13.43 6759000
175 VOD 2020-10-29 13.29 13.64 13.2 13.55 5912464
176 VOD 2020-10-30 13.49 13.53 13.33 13.51 3372568
177 ERIC 2020-10-01 10.77 10.8 10.64 10.72 6537212
178 ERIC 2020-10-02 10.52 10.66 10.5 10.61 5451639
179 ERIC 2020-10-05 10.76 10.79 10.7 10.77 4362498
180 ERIC 2020-10-06 10.84 10.86 10.62 10.67 4972198
181 ERIC 2020-10-07 10.66 10.7 10.61 10.65 5990623
182 ERIC 2020-10-08 10.8 10.8 10.71 10.79 5180376
183 ERIC 2020-10-09 10.89 10.93 10.84 10.87 4633664
184 ERIC 2020-10-12 10.91 10.93 10.82 10.86 7169230
185 ERIC 2020-10-13 10.85 10.87 10.7 10.73 8288522
186 ERIC 2020-10-14 10.75 10.84 10.73 10.82 7771599
187 ERIC 2020-10-15 10.54 10.8 10.53 10.8 13022498
188 ERIC 2020-10-16 10.74 10.81 10.7 10.7 9317609
189 ERIC 2020-10-19 11.02 11.13 10.9 10.94 12575083
190 ERIC 2020-10-20 11.13 11.33 11.1 11.13 15019952
191 ERIC 2020-10-21 12.07 12.48 12.05 12.44 24980230
192 ERIC 2020-10-22 12.49 12.52 12.22 12.44 11322692
193 ERIC 2020-10-23 12.26 12.42 12.24 12.36 7844003
194 ERIC 2020-10-26 12.33 12.38 11.97 12.08 7164321
195 ERIC 2020-10-27 11.92 12.04 11.77 11.78 15622624
196 ERIC 2020-10-28 11.39 11.46 11.32 11.38 7895540
197 ERIC 2020-10-29 11.35 11.41 11.26 11.33 8549142
198 ERIC 2020-10-30 11.24 11.3 11.12 11.21 4374440
199 AMZN 2020-10-01 3208 3224 3172 3221.26 4971922
200 AMZN 2020-10-02 3153.63 3195.8 3123 3125 5613098
201 AMZN 2020-10-05 3145.84 3202.53 3140.85 3199.2 3775332
202 AMZN 2020-10-06 3165 3182 3090 3099.96 5086857
203 AMZN 2020-10-07 3135 3200 3132.39 3195.69 4309439
204 AMZN 2020-10-08 3224.99 3233.29 3174.99 3190.55 3174114
205 AMZN 2020-10-09 3210 3288.99 3197.83 3286.65 4907871
206 AMZN 2020-10-12 3349.94 3496.24 3339.55 3442.93 8364198
207 AMZN 2020-10-13 3467.99 3492.38 3424.22 3443.63 5744697
208 AMZN 2020-10-14 3447 3464.88 3340 3363.71 5828916
209 AMZN 2020-10-15 3292.01 3355.88 3280 3338.65 5223448
210 AMZN 2020-10-16 3363.23 3399.66 3160 3272.71 6474353
211 AMZN 2020-10-19 3299.61 3329 3192.74 3207.21 5223626
212 AMZN 2020-10-20 3222.28 3266 3192.01 3217.01 4509678
213 AMZN 2020-10-21 3212.5 3233.88 3160 3184.94 4592736
214 AMZN 2020-10-22 3189.87 3198.75 3121.94 3176.4 4212005
215 AMZN 2020-10-23 3191 3205.33 3140 3204.4 3466687
216 AMZN 2020-10-26 3198.74 3282.98 3153.3 3207.04 5901151
217 AMZN 2020-10-27 3224.94 3291.66 3211.3 3286.33 4291047
218 AMZN 2020-10-28 3249.3 3264.02 3162.47 3162.78 5588330
219 AMZN 2020-10-29 3201.27 3257.25 3164 3211.01 6596529
220 AMZN 2020-10-30 3157.75 3167 3019 3036.15 8396081

61
1ano/fp/aula07/stocks.py Executable file
View File

@ -0,0 +1,61 @@
# Constantes para indexar os tuplos:
NAME,DATE,OPEN,MAX,MIN,CLOSE,VOLUME = 0,1,2,3,4,5,6
def main():
lst = loadStockFile("nasdaq.csv")
# Show just first and last tuples:
print("first:", lst[1])
print("last:", lst[-1])
print("a) totVol=", totalVolume(lst))
print("b) maxVal=", maxValorization(lst))
stocksDic = stocksByDateByName(lst)
print("c) CSCO@11:", stocksDic['2020-10-12']['CSCO'])
print("c) AMZN@22:", stocksDic['2020-10-22']['AMZN'])
port = {'NFLX': 100, 'CSCO': 80}
print("d) portfolio@01:", portfolioValue(stocksDic, port, "2020-10-01"))
print("d) portfolio@30:", portfolioValue(stocksDic, port, "2020-10-30"))
def loadStockFile(filename):
lst = []
with open(filename) as f:
for line in f:
parts = line.strip().split('\t')
name = parts[NAME]
date = parts[DATE]
tup = (name, date, float(parts[OPEN]), float(parts[MAX]),
float(parts[MIN]), float(parts[CLOSE]), int(parts[VOLUME]))
lst.append(tup)
return lst
def totalVolume(lst):
totVol = {}
# Complete ...
return totVol
def maxValorization(lst):
vMax = {}
# Complete ...
return vMax
def stocksByDateByName(lst):
dic = {}
# Complete ...
return dic
def portfolioValue(stocks, portfolio, date):
assert date in stocks
val = 0.0
# Complete ...
return val
if __name__ == "__main__":
main()

89
1ano/fp/aula07/telefone.py Executable file
View File

@ -0,0 +1,89 @@
# Complete este programa como pedido no guião da aula.
def listContacts(dic):
"""Print the contents of the dictionary as a table, one item per row."""
print("{:>12s} : {:^35s} : {:<12s}".format("Numero", "Nome", "Morada"))
for num in dic:
print("{:>12s} : {:^35s} : {:<12s}".format(num, dic[num][0], dic[num][1]))
def addContact(dic):
name = input("Nome: ")
number = input("Número: ")
address = input("Morada: ")
dic[number] = (name, address)
def removeContact(dic):
number = input("Número: ")
del dic[number]
def searchContact(dic):
number = input("Número: ")
print(f"""Nome: {dic[number][0] if number in dic else number}
Morada: {dic[number][1] if number in dic else '----'}""")
def filterPartName(contacts, partName):
"""Returns a new dict with the contacts whose names contain partName."""
newDict = {}
for num in contacts:
if partName in contacts[num]:
newDict[num] = contacts[num]
return newDict
def menu():
"""Shows the menu and gets user option."""
print()
print("(L)istar contactos")
print("(A)dicionar contacto")
print("(R)emover contacto")
print("Procurar (N)úmero")
print("Procurar (P)arte do nome")
print("(T)erminar")
op = input("opção? ").upper() # converts to uppercase...
return op
def main():
"""This is the main function containing the main loop."""
# The list of contacts (it's actually a dictionary!):
contactos = {"234370200": ("Universidade de Aveiro", "Campus de Santiago"),
"727392822": ("Cristiano Aveiro", "Casa"),
"387719992": ("Maria Matos", "Rua da Matos, 123"),
"887555987": ("Marta Maia", "Rua da Maia, 123"),
"876111333": ("Carlos Martins", "Rua dos Martins, 123"),
"433162999": ("Ana Bacalhau", "Rua do Bacalhau, 123"),
}
op = ""
while op != "T":
op = menu()
if op == "T":
print("Fim")
elif op == "L":
print("Contactos:")
listContacts(contactos)
elif op == "A":
print("Novo contacto:")
addContact(contactos)
elif op == "R":
print("Remover contacto:")
removeContact(contactos)
elif op == "N":
print("Procurar número:")
searchContact(contactos)
elif op == "P":
print("Procurar parte do nome:")
partName = input("Parte do nome: ")
newDict = filterPartName(contactos, partName)
listContacts(newDict)
else:
print("Não implementado!")
# O programa começa aqui
main()

View File

@ -0,0 +1,22 @@
# Ex01
### A próxima linha a ser executada é:
```python
# Primeiras 5 vezes:
value = input("Enter value: ")
# Última vez (quando aparecer 0 em Key:
print(data[3])
```
<div style="text-align: center">
| Key | Value | Size | Output |
|-----|-------|------|--------|
| 3 | A | 1 | |
| 12 | X | 2 | |
| 9 | X | 3 | |
| 3 | Y | 3 | |
| 7 | Q | 4 | |
| 0 | | | Y |
</div>

View File

@ -0,0 +1,18 @@
# The periodic table of elements.
periodicTable = {
"H": "Hydrogen", "C": "Carbon", "O": "Oxygen",
"Fe": "Iron", "Au": "Gold", "Na": "Sodium",
"Ag": "Silver", "Pb": "Lead", "Pu": "Plutonimum"
}
# Use the prompt "Enter symbol (or Q to quit): "
# Print either "Invalid symbol." if an error occurs
# or "element = element name" ("%s = %s")
element = input("Enter symbol (or Q to quit): ")
while element != "Q":
try:
print(element, "=", periodicTable[element])
except KeyError:
print("Invalid symbol.")
element = input("Enter symbol (or Q to quit): ")

Binary file not shown.