L7: 有歸零按鈕的七段顯示器
3個7Segment的計數器
接線:
1.請使用單一個 7-segment 的接線圖
2.新增兩個 7-segment,把 abcdefg 七條線並聯
3.重點--藍色線: arduino的pin 9,10,11 分別接到三顆七段顯示器的共陽(pin3),pin9接最左邊(最高位數)
工作原理:
一、抓出數字的百位數,十位數,個位數
二、三顆七段顯示器其實是個別顯示的,利用視覺暫留的原理,看起來是同時顯示的。
二、Tinkercad Circuits:LED 模擬走馬燈
本文使用TinkerCad Circuits來示範LED燈的應用:「走馬燈看板」。
參考網站 https://pinglunliao.medium.com/tinkercad-circuits-led-%E6%A8%A1%E6%93%AC%E8%B5%B0%E9%A6%AC%E7%87%88-f2b9123222b2
材料(Materials):
TinkerCAD 01 第一個電路 LED
python list + for 串列與for綜合運用
# 印出1-10, 兩種印法
Python list 串列
list1=range(10)
list2=range(1,10)
list3=range(1,10,2)
list4=range(10,1,-2)
print(list(list1)) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(list2)) # [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(list(list3)) # [1, 3, 5, 7, 9]
print(list(list4)) # [10, 8, 6, 4, 2]
-------------------------------------------
n = int(input("請輸入正整數:"))
for i in range(1, n+1):
print(i,end=" ")
-------------------------------------------
sum = 0
n = int(input("請輸入正整數:"))
for i in range(1, n+1):
sum += i
print("1 到 %d 的整數和為 %d" % (n, sum))
-------------------------------------------
for i in range(1,6): #外部迴圈,共執行5次
print("外部第",i,"次迴圈,內部執行",i,"次迴圈: ",end="")
for j in range(1,i+1): #內部迴圈
print("#", end="")
print() # 換行
------------------------------------------------
for i in range(1,10):
for j in range(1,10):
product = i * j
print("%d*%d=%2d " % (i, j, product), end="")
print()
------------------------------------------
a = int(input("請輸入 a 的值:"))
b = int(input("請輸入 b 的值:"))
maxno=(a+1)*(b+1)
for i in range(1,maxno):
if(i%a==0 and i%b==0):
break
print("%d 和 %d 的最小公倍數=%d" % (a, b, i))
------------------------------------------
total = i = 1
n = int(input("請輸入正整數 n 的值:"))
while(i<=n):
total *= i
i+=1
print("%d!=%d" % (n, total))
020: 身分證檢驗 我國的身分證字號有底下這樣的規則,因此對於任意輸入的身分證字號可以有一些基本的判斷原則,請您來判斷一個身分證字號是否是正常的號碼(不代表確有此號、此人)。
(1) 英文代號以下表轉換成數字
A=10 台北市 J=18 新竹縣 S=26 高雄縣
B=11 台中市 K=19 苗栗縣 T=27 屏東縣
C=12 基隆市 L=20 台中縣 U=28 花蓮縣
D=13 台南市 M=21 南投縣 V=29 台東縣
E=14 高雄市 N=22 彰化縣 W=32 金門縣
F=15 台北縣 O=35 新竹市 X=30 澎湖縣
G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山
H=17 桃園縣 Q=24 嘉義縣 Z=33 連江縣
I=34 嘉義市 R=25 台南縣(2) 英文轉成的數字, 個位數乘9再加上十位數的數字
(3) 各數字從右到左依次乘1、2、3、4....8
(4) 求出(2),(3) 及最後一碼的和
(5) (4)除10 若整除,則為 real,否則為 fake
例: T112663836
2 + 79 + 18 + 17 + 26 + 65 + 64 + 33 + 82 + 3*1 + 6 = 180
除以 10 整除,因此為 real
#--------------程式--------------
#--------------程式--------------
// pin 7 6 5 4 3 2 1 Arduino PORTB dig output
a003: 兩光法師占卜術
兩光法師時常替人占卜,由於他算得又快有便宜,因此生意源源不絕,時常大排長龍,他想算 得更快一點,因此找了你這位電腦高手幫他用電腦來加快算命的速度。
他的占卜規則很簡單,規則是這樣的,輸入一個日期,然後依照下面的公式:
M=月
D=日
S=(M*2+D)%3
得到 S 的值,再依照 S 的值從 0 到 2 分別給與 普通、吉、大吉 等三種不同的運勢
str1 = input()
a = str1.split(" ")
m = int( a[0] )
d = int( a[1] )
fate = (m*2 + d) % 3
if(fate==0): print("普通")
if(fate==1): print("吉")
if(fate==2): print("大吉")a006: 一元二次方程式
求一元二次方程式 ax2+bx+c=0 的根每組輸入共一行,內含三個整數 a, b, c 以空白隔開。Two different roots x1=?? , x2=??
Two same roots x=??
No real root
PS: 答案均為整數,若有兩個根則大者在前
# 求一元二次方程式 ax2+bx+c=0 的根
# 每組輸入共一行,內含三個整數 a, b, c 以空白隔開。
# Output ...
# Two different roots x1=?? , x2=??
# Two same roots x=??
# No real root
# PS: 答案均為整數,若有兩個根則大者在前
import math
str = input().split()
a = int( str[0] )
b = int( str[1] )
c = int( str[2] )
D=b*b-4*a*c
if(D==0):
if( b == 0 ) :
print("Two same roots x=0 ")
else :
print("Two same roots x=%d" % int(-b/a/2))
elif (D>0):
print("Two different roots ",end="")
print("x1=%d" % int( (-b + math.sqrt(D))/(2*a)) , end="" )
print(" , x2=%d" % int((-b - math.sqrt(D))/(2*a)) )
else:
print("No real root")
#print("共軛複數")
#print("x1=",-b/2/a,"+",(math.sqrt(-D)/2/a),"i")
#print("x2=",-b/2/a,"-",(math.sqrt(-D)/2/a),"i")
a002: 簡易加法
請寫一個程式,讀入兩個數字,並求出它們的和。
每組輸入共一行,內含有兩個整數 a, b,以空白隔開,a, b絕對值皆小於
使用到的指令
1. str = input() ---> 輸入字串 "10 20" ,中間空白
2. 串列=字串.split(間隔字元)
3.串列 a : 含有兩個元數 a[0] , a[1]
4. int() 字串轉成整數
str1 = input()
a = str1.split(" ")
inta0 = int( a[0] )
inta1 = int( a[1] )
print( inta0 + inta1 )