Pada artikel kali ini saya akan bercerita tentang pengalaman mengadakan kompetisi pemrograman sekolah kota.
Ide untuk menyelenggarakan olimpiade lokal muncul pada tahap peluncuran sekolah pemrograman anak-anak . Selama dua tahun bekerja, semakin jelas bahwa akun ditujukan ke unit berbagai kompetisi ke arah ini, yang berarti ada sedikit peluang untuk menguji siswa, keterlibatan di luar kelas, motivasi tambahan dengan hasil. Saya bahkan akan mengatakan ini: di Irkutsk tidak ada acara kompetisi untuk siswa tentang pemrograman secara langsung, dan hanya satu Olimpiade di mana pythonist dapat berpartisipasi - "Kami bermain programmer".
Tampaknya penyelenggaraan olimpiade membutuhkan banyak sumber daya: mencari ruangan yang besar, misalnya, bernegosiasi dengan perpustakaan besar, menyediakan peralatan, mencari guru sukarelawan, memastikan keamanan dan banyak hal sepele lainnya. Dan ini adalah batu sandungan bagi lembaga pendidikan swasta kecil dalam hal sumber daya. Keputusan datang secara tak terduga - Olimpiade jarak! Pada Februari 2020, ada rumor tentang ambulans, bahwa acara tatap muka akan dilarang dan bagi saya semuanya berjalan lancar.
Sekarang tentang organisasi Olimpiade:
Kami memposting tugas di VKontakte di grup kami pada tanggal 20 Maret 2020. Waktu untuk menyelesaikan masalah diberikan lebih dari seminggu - dari 20 Maret 2020 hingga 29 Maret 2020. Direncanakan untuk mengevaluasi pekerjaan sebelum 12 April 2020, mereka bahkan ragu, Anda tidak pernah tahu, tetapi mereka berhasil hanya dalam 4 hari. Pada saat yang sama, ada lebih dari 100 peserta, pemeriksaannya manual (tetapi lebih dari itu nanti).
Para peserta dibagi menjadi tiga kategori:
tingkat junior (hingga kelas 7 lembaga pendidikan inklusif, masalah diselesaikan dalam bahasa pemrograman visual scratch / snap)
tingkat menengah (hingga kelas 7 lembaga pendidikan, inklusif, masalah diselesaikan dalam bahasa pemrograman apa pun yang diizinkan oleh Olimpiade)
tingkat senior (kelas 8-11 lembaga pendidikan, masalah diselesaikan dalam bahasa pemrograman apa pun yang diizinkan oleh Olimpiade).
. , 15 β β :
C++ | Code: Blocks, VisualStudio | VisualStudio 2019 |
C# | Code: VisualStudio | VisualStudio 2019 |
Pascal | FreePascal 2.6.2 | FreePascal 2.6.2 |
Basic | FreeBasic 0.90.1 | FreeBasic 0.90.1 |
Java | NetBeans, Eclipse | JDK 1.7.0 |
Python | IDLE | Python 3.6 |
. . . - , - . : : 5 β , 2 β β . , β . . , , - .
5 , 2 . . 5 , . . , , . - . , - .
, .
, python
1
. . , . . (scratch/snap) β (, /). (python) β .
:
: | : |
5 1 2 3 4 5 | 3 |
1
a = int(input(" :"))
y = 0
for i in range(a):
x = float(input(":"))
y += x
y = y / a
print(" : " + str(y))2
, ( ). , - , - , - .
, , . . (scratch/snap) β ( /)) . (python) β .
:
| 10 30 20 | 20 10 30 |
|
2
s = []
for i in range(3):
griby = int(input())
s.append(griby)
if s[0]>s[1] and s[0]>s[2]:
print("")
elif s[1]>s[2]:
print("")
else:
print("")3
, . . , .
. . (scratch/snap) β ( ) ( /) . (python) β . ? .
:
: | : |
5 10 20 30 40 50 | 9 18 27 36 45 |
3
girls = int(input())
apple = []
for numgirl in range(1, girls + 1):
a = int(input())
a = a - numgirl
apple.append(a)
for numgirl in range(girls):
print(apple[numgirl])4
1 7. , (scratch/snap) β (, /). (python) β .
:
| 1 | 3 |
|
|
4
days = ['','','','','','','']
day = int(input())
print(days[day - 1])5
. . , , 5 2 ( ), 2 5 ( ). . . (scratch/snap) β (, /). (python) β .
:
: | : |
6 10 2 6 20 4 5 | 4 5 15 8 10 2 |
5
nums = int(input())
listnums = []
for i in range(nums):
listnums.append(int(input()))
for i in range(nums):
if listnums[i] % 5 == 0:
listnums[i] = listnums[i] // 5 * 2
elif listnums[i] % 2 == 0:
listnums[i] = listnums[i] // 2 * 5
print(listnums[i])6
: , , . , «» β , , . 1 8 , , . (scratch/snap) β (, /) , . (python) β , .
:
: | : |
1 5 | 4 |
8 1 | 2 |
6
vozmojnost = 0
stolb = int(input())
stroka = int(input())
#
if stolb + 2 < 9:
if stroka + 1 < 9: #
vozmojnost += 1
if stroka - 1 > 0: #
vozmojnost += 1
#
if stolb - 2 > 0:
if stroka + 1 < 9: #
vozmojnost += 1
if stroka - 1 > 0: #
vozmojnost += 1
#
if stroka + 2 < 9:
if stolb + 1 < 9: #
vozmojnost += 1
if stolb - 1 > 0:#
vozmojnost += 1
#
if stroka - 2 > 0:
if stolb + 1 < 9:#
vozmojnost += 1
if stolb - 1 > 0:#
vozmojnost += 1
print(vozmojnost)7
. , YES, β NO. 1 8 , , . (scratch/snap) β (, /) YES NO. (python) β YES NO .
:
: | : |
1 1 2 6 | YES |
7
summ = 0
for i in range(4):
summ += int(input())
if summ % 2 ==0:
print('YES')
else:
print('NO')8
. . , . . () , , . . ( ).
(scratch/snap) β , , β . (python) β .
:
: | : |
9 | 4 2 1 7 5 3 9 8 6 |
8
vvod = int(input())
num = vvod ** 0.5
if int(num) != num:
num = int(num) + 1
else:
num = int(num)
table = [[0] * num for i in range(num)]
numb = 0
ivert = num
for i in range(num):
if ivert > 0:
igoriz = 0
for i in range(num - ivert + 1):
if igoriz <= num - ivert:
numb += 1
if numb <= vvod:
table[igoriz][ivert + igoriz - 1] = numb
else:
table[igoriz][ivert + igoriz - 1] = 0
igoriz += 1
ivert -= 1
ivert = 1
for i in range(num - 1):
if ivert < num:
igoriz = 0
for i in range(num - ivert):
if igoriz < num - ivert:
numb += 1
if numb <= vvod:
table[ivert + igoriz][igoriz] = numb
else:
table[ivert + igoriz][igoriz] = 0
igoriz += 1
ivert += 1
for row in table:
for elem in row:
print(elem, end=' ')
print()9
- . 3 , 4 , 5 .. , ( ) . , , - , , , Β«Penguin EmperorΒ». . input.txt . scratch/snap . (scratch/snap) β (, /) . (python) β .
:
: | : |
Penguin Emperor Shark zebra Turtle Caiman Shark white | Shark 2 |
9
file = open("input.txt")
animal=[]
kolvo=[]
for stroka in file:
data = stroka.split()
animal.append(data[0])
for i in animal:
kolvo.append(animal.count(i))
maxi = 0
pos = 0
for i in range(len(kolvo)):
if kolvo[i] > maxi:
maxi = kolvo[i]
pos = i
print(animal[i], maxi, end=" ")10
, - brawl stars. . . w1, β¦, wn. , , . w1, β¦, wn (1 β€ wi β€ 100) . input.txt . scratch/snap
, β . .
(scratch/snap) β . (python) β .
:
: |
|
4 Shelly 7 Bull 10 Bo 12 8-bit 15 ElPrimo 20 Tick | Tick Bo Shelly 0 ElPrimo 8-bit Bull |
10
file = open("input.txt")
pers_dict = []
for pers in file:
data = pers.split()
pers_dict.append((data[1], int(data[0])))
pers_dict.sort(key = lambda elem: elem[1], reverse = True)
command1 = []
command2 = []
summa1=0
summa2=0
for elem in pers_dict:
if summa1 <= summa2:
command1.append(elem)
summa1 += elem[1]
else:
command2.append(elem)
summa2 += elem[1]
for key in command1:
print(key[0])
if summa1> summa2:
print(summa1-summa2)
else:
print(summa2-summa1)
for key in command2:
print(key[0]):
, , , , .
- , , scratch - , - "" .
, . .
? . , .
, . . 8-10 , 6 , 4 .
Saya sangat berharap artikel ini bermanfaat bagi para pemimpin lingkungan pemrograman dan para guru. Jangan ragu untuk mengadakan Olimpiade lokal, lihat keputusan siswa Anda, buat kesimpulan untuk meningkatkan program pendidikan Anda.