Сайт підготовки до олімпіади з інформатики

програмування в С++

Школа олімпійського резерву з інформатики
Волинська обласна Інтернет-олімпіада з інформатики 2022 PDF Печать E-mail
Добавил(а) Administrator   
09.11.22 12:25

Волинська учнівська Інтернет-олімпіада

Увага !!!
Розпочато реєстрацію у Волинській учнівськiй Інтернет-олімпіаді з інформатики

http://176.102.48.88/vippoolimp/joomla/index.php/registr

 

 

 

 

 
Матеріали школи 2023 PDF Печать E-mail
Добавил(а) Administrator   
05.11.23 08:16

Папка з матеріалами

Телерам група

https://t.me/+Hq9oWZjlKvlmYzky

 
Формули обчислювальної геометрії PDF Печать E-mail
Добавил(а) Administrator   
07.12.11 12:54
Формули обчислювальної геометрії
Визначення площі довільного многокутника
За заданими координатами вершин многокутника визначити його площу.
Для обчислення площі можна використати формулу:

Перевірка многокутника на опуклість
{ Зчитування координат вершин многокутника}
assign(f,'input.txt');
reset(f);
readln(f,n);
for i:=1 to n do readln(f,x[i],y[i]);
close(f);
{Визначення координат векторів}
x[n+1]:=x[1];
y[n+1]:=y[1];
for i:=1 to n do begin
a[i]:=x[i+1]-x[i];
b[i]:=y[i+1]-y[i];
end;
{Підрахунок кількості додатних добутків}
a[n+1]:=a[1];
b[n+1]:=b[1];
k:=0;
for i:=1 to n do
if a[i]*b[i+1]-a[i+1]*b[i]>=0 then k:=k+1;
{Виведення результату}
assign(f,'output.txt');
rewrite(f);
if (k=n)or(k=0) then writeln(f,'yes') else writeln(f,'no');
close(f);


Належність точки прямій

(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
(x-x1)* (y2-y1) =(y-y1)* (x2-x1)

p:=false;
if (x-x1)* (y2-y1) -(y-y1)* (x2-x1)=0  then p:=true;

Перетин прямих

(x-x1)/(x2-x1)=(y-y1)/(y2-y1)
(x-x1)* (y2-y1) =(y-y1)* (x2-x1)



(x-x3)/(x4-x3)=(y-y3)/(y4-y3)
(x-x3)* (y4-y3) =(y-y3)* (x4-x3)

1)
x=(y-y1)*(x2-x1)/(y2-y1)+x1
(x-x3)* (y4-y3) =(y-y3)* (x4-x3)

((y-y1)*(x2-x1)-(x3-x1)*(y2-y1))*(y4-y3)=(y-y3)*(x4-x3)*(y2-y1)
(y-y1)*(x2-x1)*(y4-y3)-(y-y3)*(x4-x3)*(y2-y1)=(x3-x1)*(y2-y1)*(y4-y3)
y((x2-x1)*(y4-y3)-(x4-x3)*(y2-y1))= (x3-x1)*(y2-y1)*(y4-y3)+y1*(x2-x1)*(y4-y3)-y3*(x4-x3)*(y2-y1)

y=((x3-x1)*(y2-y1)*(y4-y3)+y1*(x2-x1)*(y4-y3)-y3*(x4-x3)*(y2-y1))/ ((x2-x1)*(y4-y3)-(x4-x3)*(y2-y1))

2)
y=(x-x1)*(y2-y1)/(x2-x1)+y1
(y-y3)* (x4-x3) =(x-x3)* (y4-y3)

((x-x1)*(y2-y1)-(y3-y1)*(x2-x1))*(x4-x3)=(x-x3)*(y4-y3)*(x2-x1)
(x-x1)*(y2-y1)*(x4-x3)-(x-x3)*(y4-y3)*(x2-x1)=(y3-y1)*(x2-x1)*(x4-x3)
x((y2-y1)*(x4-x3)-(y4-y3)*(x2-x1))= (y3-y1)*(x2-x1)*(x4-x3)+x1*(y2-y1)*(x4-x3)-x3*(y4-y3)*(x2-x1)

x=((y3-y1)*(x2-x1)*(x4-x3)+x1*(y2-y1)*(x4-x3)-x3*(y4-y3)*(x2-x1))/ ((y2-y1)*(x4-x3)-(y4-y3)*(x2-x1))
Перетин відрізків:
if (x1<=x2)and(x>=x1)and(x<=x2) then p:=true;
if (x2<=x1)and(x>=x2)and(x<=x1) then p:=true;
Перетин відрізків
var x1,y1,x2,y2,x3,y3,x4,y4,x,y:real;
p:boolean;
begin
clrscr;
writeln('x1,y1');
readln(x1,y1);
writeln('x2,y2');
readln(x2,y2);
writeln('x3,y3');
readln(x3,y3);
writeln('x4,y4');
readln(x4,y4);
p:=false;
if (((x2-x1)*(y4-y3)-(x4-x3)*(y2-y1))<>0) and (y2-y1<>0) then
begin
y:=((x3-x1)*(y2-y1)*(y4-y3)+y1*(x2-x1)*(y4-y3)-y3*(x4-x3)*(y2-y1))/((x2-x1)*(y4-y3)-(x4-x3)*(y2-y1));
x:=(y-y1)*(x2-x1)/(y2-y1)+x1;
p:=true;
end;

{if p then writeln(x:2:2,' ',y:2:2);}

p:=false;
if (((y2-y1)*(x4-x3)-(y4-y3)*(x2-x1))<>0)and (x2-x1<>0)then
begin
x:=((y3-y1)*(x2-x1)*(x4-x3)+x1*(y2-y1)*(x4-x3)-x3*(y4-y3)*(x2-x1))/ ((y2-y1)*(x4-x3)-(y4-y3)*(x2-x1));
y:=(x-x1)*(y2-y1)/(x2-x1)+y1;
p:=true;
end;

if p then
begin
p:=false;
if (x1<=x2)and(x>=x1)and(x<=x2) then p:=true;
if (x2<=x1)and(x>=x2)and(x<=x1) then p:=true;
end;



if p then writeln(x:2:2,' ',y:2:2);
end.




Задача 1.  Рух автомобіля
Маршрут руху автомобіля заданий у вигляді координат вершин ламаної. Необхідно визначити кількість лівих поворотів. Автомобіль починає рух першої вершини ламаної.

Задача 2.  Едемський сад
Едемський сад складається з N фруктових дерев, розміщення яких задано координатами (Xi,Yi), а їх врожайності, відповідно, дорівнюють Ui, i=1,2,...,N. Садівник обгородив сад огорожею мінімальної довжини. Розробити програму, яка виводить на екран план Едемського саду, на якому ілюструється взаємне розміщення огорожі і дерев. При цьому:
1. Забезпечити можливість введення початкових даних як з клавіатури, так і з файлу EDEM.GOD, і відображати їх на дисплеї у вигляді плану Едемського саду (врахувати, що перший запис файлу EDEM.GOD вміщує значення N, а в кожному   з  наступних  N  записів  вміщуються  по  три  числа - Xi, Yi і Ui, де  1? i ? N, N ? 20; числа в кожному записі розділені пропусками. (5 балів).
2. Забезпечити можливість діалогу редагування початкових даних з синхронним відображенням результатів редагування на плані Едемського саду. (5 балів).
3. Обчислювати і виводити на дисплей врожайність всього саду. (5 балів).
4. Обчислювати і виводити на дисплей максимальну відстань між деревами саду. (5 балів).
5. Обчислювати і виводити на дисплей мінімальну відстань між сусідніми деревами саду. (5 балів).
6. Визначати кількість рогів в найкоротшій огорожі. (12 балів).
7. Обчислювати і виводити на дисплей периметр огорожі саду. (10 балів).
8. Обчислювати і виводити на дисплей площу обгородженого  саду. (10 балів).
9. Автоматично наносити на план саду найкоротший маршрут, додержуючись якого, можна обійти всі дерева і повернутися до місця старту, обчислювати відстань за цим маршрутом. (12 балів).
10. Динамічно відображати на плані обхід Едемського саду садівником вздовж знайденого найкоротшого маршруту. (10 балів)
 
Олімпіада з програмування для студентів 1-го курсу, випускників шкіл та коледжів PDF Печать E-mail
Добавил(а) Administrator   
21.10.11 11:29

Олімпіада з програмування для студентів 1-го курсу, випускників шкіл та коледжів

 

Олімпіада відбуватиметься в три тури:

Перший тур - заочний, за допомогою системи online-тестування 29 жовтня 2011 року.

Другий тур - очний - грудень 2011 року.

Третій тур - конкурс творчих робіт - березень 2012 року.

 

Перший тур

Для участі в першому турі олімпіади необхідно з 17 по 28 жовтня 2011 р. зареєструватися за адресою olimpiа Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. , вказавши прізвище, ім'я, по-батькові, місто, школу або ВНЗ, клас або групу та e-mail. Після реєстрації на електронну скриньку учасника будуть надіслані логін і пароль.

Мови програмування - Паскаль (компілятор FreePascal) або Сі (компілятор gcc).

Щоб учасники олімпіади опанували систему тестування, з 20 жовтня за адресою http://ejudge.lp.edu.ua/cgi-bin/register  будуть розміщені пробні задачі. Інструкція для користувачів знаходиться за адресою http://iknit.lp.edu.ua/files/ejudge.pdf  . З питаннями щодо роботи системи просимо звертатись за адресою olimpiа Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .

Перший тур олімпіади відбудеться 29 жовтня з 9.00 до 18.00 через систему тестування http://ejudge.lp.edu.ua/cgi-bin/register . Ознайомитись з олімпіадними задачами та розпочати виконання можна у будь-який момент вказаного проміжку. О 18.00 система тестування припинить свою роботу і буде сформовано підсумкову таблицю.

Результати першого туру будуть розміщені з 1 листопада на сайті http://iknit.lp.edu.ua  .

Переможці першого туру допускаються до участі у другому та третьому турах. Запрошення до участі у другому турі будуть розіслані на електронні скриньки до 10 листопада.

 

Переможці другого та третього турів нагороджуються цінними призами.

 

Другий тур

Проводитиметься в очній формі на робочих місцях у Національному університеті «Львівська політехніка» на базі системи online-тестування. Виконання олімпіадних задач має здійснюватися за допомогою мов програмування Паскаль (компілятор FreePascal) або Сі (компілятор gcc).

 

Третій тур

Передбачає виконання творчого завдання на одну із запропонованих тем:

розроблення комп'ютерних ігор,

розроблення сайту олімпіади,

розроблення символіки для задач інформаційних технологій.

 

 

 

Партнери олімпіади - компанії-розробники програмного забезпечення:

SoftServe, Eleks, Stek, Lohika, Epam Systems, Global Logic.

 

Оргкомітет

 

Голова оргкомітету - Медиковський Микола Олександрович, директор Інституту комп'ютерних наук та інформаційних технологій Національного університету «Львівська політехніка».

 

Відповідальний секретар - Цимбал Юрій Вікторович, доцент кафедри автоматизованих систем управління Національного університету «Львівська політехніка», роб. тел. (032) 258-26-47, e-mail: Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра. .

 
Задачі для самостійного опрацювання 2011-2012 н.р (рівень 2) PDF Печать E-mail
Добавил(а) Administrator   
07.12.11 13:01
Задачі для самостійного опрацювання 2011-2012 н.р (рівень 2)
Завдання розв’язати до 23.12.2011 та  надіслати на електронну адресу Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить Javascript для его просмотра.
Задача 1.  (20 балів)
При змаганні по спортивному орієнтуванні учаснику потрібно пройти N (N£10000) контрольних точок. При проходженні кожної наступної точки, пристрій фіксує її положення, як зміну по горизонталі і вертикалі по відношенню до попередньо пройденої точки, ціле число в межах [-10000;10000] .


Знайти відстань, яку пройде учасник з початкової точки в N-ту точку. Кожну відстань учасник проходить по найкоротшій відстані.
Вхідні дані містяться у файлі REFI.DAT. В першому рядку ціле число N – кількість контрольних точок. В наступних N рядках містяться по два цілих числа, розділених пропуском.
Результат вивести у файл REFI.SOL у вигляді рядка, який містить дійсне число з двома знаками після коми.
Приклад.
REFI.DAT
4
3 4
2 0
0 -4
-2 0
REFI.SOL
13.00

Задача 2. (30 балів)
За попередньою умовою знайти відстань, яку пройшов учасник, якщо він повернувся в початкову точку, з якої відбувся старт.
Приклад.
REFI.DAT
4
3 4
2 0
0 -4
-2 0
REFI.SOL
16.00

Задача 3. (50 балів)
Результати учасників змагання з спортивного орієнтування задаються трійкою цілих чисел: його стартовим номером та кількістю хвилин і секунд. Написати програму читання результатів учасників і друкування їх у порядку неспадання часу на кожній контрольній точці. Вхідні дані містяться в файлі START.DAT: 1 рядок: кількість учасників N; 2 рядок: кількість контрольних точок M; N*M рядків: номер, хвилини, секунди. Результат вивести у файл  FINISH.SOL у вигляді послідовності рядків з стартових номерів для кожної контрольної точки.
Наприклад.
START.DAT
3
2
12 10 20
20 5 20
12 8 25
20 14 20
12 1 20
20 0 20
FINISH.SOL

20 12
12 20
20 12

 


Страница 5 из 43

Статистика

Пользователей : 269
Статей : 225
Просмотрено статей : 127705

Вход/Регистрация

Нет