في هذا المقال سوف أخبركم عن تجربة عقد مسابقة برمجة مدارس المدينة.
ظهرت فكرة تنظيم أولمبياد محلي في مرحلة إطلاق مدرسة برمجة للأطفال . على مدار عامين من العمل ، أصبح من الواضح أن الحساب يذهب إلى وحدات من مختلف المسابقات في هذا الاتجاه ، مما يعني أن هناك فرصًا قليلة لاختبار الطلاب ، والمشاركة خارج الفصل الدراسي ، والدافع الإضافي مع النتائج. سأقول هذا أيضًا: في إيركوتسك ، لا توجد أحداث منافسة للطلاب على البرمجة في نقطة الصفر ، وهناك أولمبياد واحد فقط يمكن أن يشارك فيه لاعبو الثعابين - "نلعب دور المبرمجين".
يبدو أن تنظيم الأولمبياد يحتاج إلى الكثير من الموارد: العثور على غرفة كبيرة ، على سبيل المثال ، التفاوض مع مكتبة كبيرة ، وتوفير المعدات ، وإيجاد معلمين متطوعين ، وضمان السلامة والكثير من الأشياء التافهة الأخرى. وكان هذا حجر عثرة لمؤسسة تعليمية خاصة صغيرة من حيث الموارد. جاء القرار بشكل غير متوقع - المسافة الأولمبية! في فبراير 2020 ، كانت هناك شائعات حول تقاعد سريع ، وأن الأحداث الشخصية سيتم حظرها ، وبالنسبة لي ، كل شيء على ما يرام.
الآن عن تنظيم الأولمبياد:
نشرنا المهام على فكونتاكتي في مجموعتنا في 20 مارس 2020. تم إعطاء وقت لحل المشكلات أكثر من أسبوع بقليل - من 20 مارس 2020 إلى 29 مارس 2020. كان من المخطط تقييم العمل قبل 12 أبريل 2020 ، حتى أنهم شككوا ، وأنت لا تعرف أبدًا ، لكنهم تمكنوا من إدارته في 4 أيام فقط. في الوقت نفسه ، كان هناك أكثر من 100 مشارك بقليل ، وكان الفحص يدويًا (ولكن المزيد عن ذلك لاحقًا).
تم تقسيم المشاركين إلى ثلاث فئات:
المرحلة الإعدادية (حتى الصف السابع من المؤسسات التعليمية شاملة ، يتم حل المشكلات في خدش / سريع لغة البرمجة المرئية)
المستوى المتوسط (حتى الصف السابع من المؤسسات التعليمية ، شاملة ، يتم حل المشكلات بأي لغة برمجة تسمح بها الأولمبياد)
المرحلة العليا (الصفوف 8-11 من المؤسسات التعليمية ، يتم حل المشكلات بأي لغة برمجة تسمح بها الأولمبياد).
. , 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 .
آمل حقًا أن تكون المقالة مفيدة لقادة دوائر البرمجة والمعلمين. لا تتردد في إقامة دورات أولمبية محلية ، والاطلاع على قرارات طلابك ، واستخلاص النتائج لتحسين برنامجك التعليمي.