Початок роботи на e-olimp




 Всім моїм учням хочу побажати міцного здоров'я. Сама перемагаю хворобу і дякую за прекрасні побажання одужання, що дають мені сили.

Оскільки в цьому році змінилися форма та стиль навчання, учні 7-9 класів мали можливість через Google classroom долучитися до вивчення основ алгоритмізації засобами мови програмування Python. Разом з тим, не можна забувати надбання минулих років, коли ми знайомились з візуальним об'єктно-орієнтованим середовищем Lazarus. 

Всі ці думки, а також успіхи учнів у засвоєнні матеріалу змусили мене саму працювати, мабуть тепер наступним кроком мотивації та розвитку є розв'язування задач на сайті e-olimp

Спершу рекомендації: починати із сторінки, де задачі систематизовані за складністю та типом алгоритму. Наважуся навести приклади моїх розв'язків, не сумніваюся, що ваші будуть не гіршими. Роблю це для того, щоб запросити усіх охочих перебороти свої страхи та невпевненість, подивіться, як це легко. 

Курс олімпійця для початківців

Розв'язки задач

1) Проста задача

 Pascal:

var a:integer; begin read(a); writeln(a div 10:1, a mod 10:2); end.

Python:

a=int(input("")) print(a//10,a%10)

2) Добуток цифр

Python

a=int(input()) a1=a%10 a=a//10 a2=a%10 a3=a//10 print(a1*a2*a3)

3) Кільце

Python

import math S,R1=input().split() S=float(S) R1=float(R1) Pi=math.pi R2=((Pi*R1**2-S)/Pi)**0.5 R2=format(R2,'.2f') print(R2)

4) Друзі Степана

Python

n=int(input()) print(n-1)

Не можу не поділитися задачею, яка забрала досить часу минулого року під час підготовки
до олімпіади, вимагає глибокого розуміння представлення інформації в пам'яті
комп'ютера.
Дуже сподіваюсь, що мої уроки інформатики у 8 класі цього року пройшли недаремно,
маю на увазі системи числення та розрядну сітку, одиниці вимірювання довжини коду.

5) Висока точність

Pascal

var j, t, m, n, k:longint; a:array[0..1001] of integer; begin readln (m, n, k); a[0]:=m div n; m:=(m mod n)*10; for t:=1 to k do begin a[t]:=m div n; m:=(m mod n)*10; end; if k=0 then begin writeln (a[0]); halt; end; write (a[0], '.'); for j:=1 to k do write (a[j]); end.

6) Який трикутник

Python

a, b, c = map(int, input().split()) if ((a+b>c)and(a+c>b)and(b+c>a)): if (a==b==c): print('1') else: if((a==b)or(a==c)or(b==c)): print('2') else: print('3')

Пропонує вашій увазі розв'язок Сватенка Степана з 8 класу

(на жаль 90% тестів), але красиво

Python

d = [str(input()) + " ",1] def kot(): if d[0][1] != " ": v = str(d[0][0] + d[0][1]) else: v = d[0][0] return v v = kot() def tin(): if d[0][1] == " " and d[0][4] == " ": g = str(d[0][2] + d[0][3]) elif d[0][1] == " " and d[0][3] == " ": g = d[0][2] elif d[0][2] == " " and d[0][5] == " ": g = str(d[0][3] + d [0][4]) elif d[0][2] == " " and d[0][4] == " ": g = d[0][3] return g g = tin() def tot(): if d[0][3] == " " and d[0][5]== " ": h = d[0][4] elif d[0][3] == " " and d[0][6]== " ": h = str(d[0][4] + d[0][5]) elif d[0][5] == " " and d[0][7]== " ": h = d[0][6] elif d[0][5] == " " and d[0][8]== " ": h = str(d[0][6] + d[0][7]) elif d[0][4] == " " and d[0][6]== " ": h = d[0][5] elif d[0][4] == " " and d[0][7]== " ": h = str(d[0][5] + d[0][6]) return h h = tot() def tik(): if v == g == h: print("1") elif v == g or g == h or h == v: print("2") elif v != g and g != h and h!= v: print("3") if (int(v) + int(g)) > int(h) and int(v) < (int(g) + int(h)) and (int(h) + int(v)) > int(g): tik()

7) Середнє з чисел (задача № 108)

Python

a,b,c=map(int,input().split()) if ((a<b)and(b<c)): print(b) else: if((a<c)and(c<b)): print(c) else: if((b<a)and(a<c)): print(a) else: if((b<c)and(c<a)): print(c) else: if((c<b)and(b<a)): print(b) else: if((c<a)and(a<b)): print(a)

8) Квадратне рівняння (911)

Python

a,b,c=map(int,input().split()) d=b**2-4*a*c if (d<0): print("No roots") else: if(d==0): print("One root:", int(-b/(2*a))) else: x1=int((-b-d**0.5)/(2*a)) x2=int((-b+d**0.5)/(2*a)) if(x1>x2): print("Two roots:",x2,x1) else: print("Two roots:",x1,x2)

9) Цифри (2)

Pascal

var a,k:longint; begin read(a); k:=0; while (a<>0) do begin a:=a div 10; k:=k+1; end; if k=0 then writeln(k+1) else writeln(k); end.

10) Яка чверть (918)

Python

x,y=map(float,input().split()) if((x==0)or(y==0)): print("0") else: if((x>0)and(y>0)): print("1") else: if((x<0)and(y>0)): print("2") else: if((x<0)and(y<0)): print("3") else: print("4")

11) Перша чи остання (903)

Python

a=int(input()) od=a%10 sot=a//100 if(od>sot): print(od) else: if(od<sot): print(sot) else: print("=")

12) Пора року (923)

Python

a=int(input()) if((a==12)or(a==1)or(a==2)): print("Winter") else: if((a>2)and(a<6)): print("Spring") else: if((a>5)and(a<9)): print("Summer") else: print("Autumn")

13) Прямокутний чи ні? (915)

Python

a,b,c=map(int,input().split()) if((a**2+b**2==c**2)or(b**2+c**2==a**2)or(a**2+c**2==b**2)): print("YES") else: print("NO")

14) Одиниці (622)

Python

a=int(input()) n=0 while a>0: if(a%2==1): n+=1 a=a//2 print(n)

15) Трикутник (418)


Python

s1, s2, s3 = map(float,input().split()) s = s1+s2+s3+2*(pow(s1*s3,0.5)+pow(s2*s3,0.5)+pow(s1*s2,0.5)) s=format(s,'.8f') print(s)

Ті, що діляться на 6 (908)

Python

n=int(input()) s=0 i=0 numbers = list(map(int,input().split())) for k in range(n): if ((numbers[k]%6) == 0)and(numbers[k]>0): s+=numbers[k] i+=1 print(i,s)


Коментарі

Популярні дописи з цього блогу

Майстер-клас у Скретч

Чудові списки