In diesem Artikel erzĂ€hle ich Ihnen von den Erfahrungen mit der DurchfĂŒhrung eines Programmierwettbewerbs fĂŒr Stadtschulen.
Die Idee, eine lokale Olympiade zu organisieren, entstand bereits beim Start einer Kinderprogrammierschule . WĂ€hrend der zweijĂ€hrigen Arbeit wurde noch deutlicher, dass der Bericht an Einheiten verschiedener Wettbewerbe in dieser Richtung geht, was bedeutet, dass es nur wenige Möglichkeiten gibt, SchĂŒler zu testen, sich auĂerhalb des Klassenzimmers zu engagieren und zusĂ€tzliche Motivation mit Ergebnissen zu erzielen. Ich werde sogar folgendes sagen: In Irkutsk gibt es keine Wettbewerbsveranstaltungen fĂŒr Studenten zum Thema Programmieren und nur eine Olympiade, an der Pythonisten teilnehmen können - âWir spielen Programmiererâ.
Es schien, dass die Organisation der Olympiade viele Ressourcen erforderte: einen groĂen Raum zu finden, zum Beispiel mit einer groĂen Bibliothek zu verhandeln, AusrĂŒstung bereitzustellen, freiwillige Lehrer zu finden, Sicherheit zu gewĂ€hrleisten und viele andere Kleinigkeiten. Und dies war ein Stolperstein fĂŒr eine kleine private Bildungseinrichtung in Bezug auf Ressourcen. Die Entscheidung kam unerwartet - die Distanzolympiade! Im Februar 2020 gab es GerĂŒchte ĂŒber einen schnellen Ruhestand, dass persönliche Veranstaltungen verboten wĂŒrden und fĂŒr mich alles zusammenpasste.
Nun zur Organisation der Olympiade:
Wir haben die Aufgaben am 20. MĂ€rz 2020 in unserer Gruppe auf VKontakte veröffentlicht. Die Zeit fĂŒr die Lösung von Problemen wurde etwas mehr als eine Woche eingerĂ€umt - vom 20. MĂ€rz 2020 bis zum 29. MĂ€rz 2020. Es war geplant, die Arbeit vor dem 12. April 2020 zu evaluieren, sie zweifelten sogar, man weiĂ es nie, aber sie schafften es in nur 4 Tagen. Zur gleichen Zeit gab es etwas mehr als 100 Teilnehmer, die PrĂŒfung war manuell (aber dazu spĂ€ter mehr).
Die Teilnehmer wurden in drei Kategorien eingeteilt:
Junior Stage (bis Klasse 7 der Bildungseinrichtungen einschlieĂlich, Probleme werden in der visuellen Programmiersprache Scratch / Snap gelöst)
mittleres Niveau (bis einschlieĂlich Klasse 7 der Bildungseinrichtungen, Probleme werden in jeder von der Olympiade zugelassenen Programmiersprache gelöst)
Senior Stage (Klasse 8-11 der Bildungseinrichtungen, Probleme werden in jeder von der Olympiade zugelassenen Programmiersprache gelöst).
. , 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 .
Ich hoffe wirklich, dass der Artikel den Leitern von Programmierkreisen und Lehrern nĂŒtzlich sein wird. FĂŒhlen Sie sich frei, lokale Olympiaden abzuhalten, die Entscheidungen Ihrer SchĂŒler zu sehen und Schlussfolgerungen zu ziehen, um Ihr Bildungsprogramm zu verbessern.