تجربة إقامة أولمبياد البرمجة المدرسية بالمدينة

في هذا المقال سوف أخبركم عن تجربة عقد مسابقة برمجة مدارس المدينة.

ظهرت فكرة تنظيم أولمبياد محلي في مرحلة إطلاق مدرسة برمجة للأطفال . على مدار عامين من العمل ، أصبح من الواضح أن الحساب يذهب إلى وحدات من مختلف المسابقات في هذا الاتجاه ، مما يعني أن هناك فرصًا قليلة لاختبار الطلاب ، والمشاركة خارج الفصل الدراسي ، والدافع الإضافي مع النتائج. سأقول هذا أيضًا: في إيركوتسك ، لا توجد أحداث منافسة للطلاب على البرمجة في نقطة الصفر ، وهناك أولمبياد واحد فقط يمكن أن يشارك فيه لاعبو الثعابين - "نلعب دور المبرمجين".

يبدو أن تنظيم الأولمبياد يحتاج إلى الكثير من الموارد: العثور على غرفة كبيرة ، على سبيل المثال ، التفاوض مع مكتبة كبيرة ، وتوفير المعدات ، وإيجاد معلمين متطوعين ، وضمان السلامة والكثير من الأشياء التافهة الأخرى. وكان هذا حجر عثرة لمؤسسة تعليمية خاصة صغيرة من حيث الموارد. جاء القرار بشكل غير متوقع - المسافة الأولمبية! في فبراير 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 .

آمل حقًا أن تكون المقالة مفيدة لقادة دوائر البرمجة والمعلمين. لا تتردد في إقامة دورات أولمبية محلية ، والاطلاع على قرارات طلابك ، واستخلاص النتائج لتحسين برنامجك التعليمي.




All Articles