 |
Вітаю Вас, Гість · RSS |
 |
Учительська олімпіада!!!
|
Sasyk |
Дата: Чт, 15.11.2007, 16:22 | Повідомлення № 1 |
знаток тестуючих систем
Повідомлень: 300
| Пропоную скинути по одній цікавій задачі для віртуальної учительської олімпіади!!! Ці задачі скинути до кінця цього місяця... На розвязання задач дається 1 місяць. 1-го січня опублікувати на форумі розвязки задач вчителями: користувач - задача 1, розвязок... задача n, розвязок. і т д. А потім разом визначатимемо переможця... Автор завдання повинен розвязок задачі відправити адміністратору, який в кінці конкурсу всі розвязки опублікує для перевірки... Як вам така ідея???
Чув цікаву задачу Є 9 монет. Одна з них бракована, але вигляд має такий як усі. Відомо, що при її виготовленні в середині утворився повітряний отвір і важить вона менше за всі інші. Написати програму, яка б за 2 зважування визначала дану монету. Розпочав роботу раніше оголошеного терміну дистанційний курс навчання з розв'язування олімпадних задач для вчителів - учасників ( http://www.olymp.vinnica.ua/index_ua.php?lng=ua&cid=815 ) олімпіади. Теми курсу - свого роду "підказки" для розв'язку задач олімпіади з паралельними узагальненнями та доповненнями, що дозволить не лише розібратися з конкретною задачою, а й навчитися вирішувати цілий клас подібних задач. Сподіваюсь, це спровокує більш активну участь учителів в олімпіаді (всього 44 зареєстрованих, і то не всі є учителями :'( ). Для роботи з курсом: 1. Зареєструйтесь на http://disted.edu.vn.ua, зайдіть як зареєстрований учаксник 2. В меню КЛАСИ оберіть розділ ПОЗАКЛАСНА РОБОТА. ДИСТАНЦІЙНІ КУРСИ. Далі - МЕТОДИКА РІШЕННЯ ОЛІМПІАДНИХ ЗАДАЧ З ІНФОРМАТИКИ (курс для учителів). Питання найкраще задавати на форумі олімпіади http://forum.olymp.vinnica.ua. Можливі он-лайн консультації та відеотрансляції лекцій в реальному часі...були б бажаючі. Прошу адміністрацію форума розіслати це повідомлення всім, як приватне. Зареєстровані учасники отримають його поштою. Успіхів у навчанні!
[admin]Шановні форумчани!!!!! Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!
|
|
| | |
ihor_hontar |
Дата: Пн, 28.01.2008, 20:39 | Повідомлення № 16 |
Досвідчений вчитель
Повідомлень: 279
| Троє студентів вирішили купити будильник, щоб не просипати на пари. Склались по 10 грн. (10х3=30) і купили будильник. Із радістю вийшли з магазину. Коли продавець вибив квиток, оказалось, що будильник коштує 25 грн. Просить напарника, щоб наздогнав хлопців і віддав 5 грн. Напарник наздогнав студентів і віддав їм кожному по 1 грн. з їхньої згоди 2 грн. залишив собі, як послугу. Отже студенти скинулись не по 10 грн., а по 9 грн., тобто 9х3=27 плюс 2 грн., що залишилось у другого продавця. Разом 29 грн. Де ділась одна грн.?
|
|
| | |
Newbie |
Дата: Пн, 28.01.2008, 21:25 | Повідомлення № 17 |
Хелпер
Повідомлень: 1414
| http://informatics.at.ua/forum/13-106-1
|
|
| | |
Bandalak |
Дата: Пн, 28.01.2008, 23:44 | Повідомлення № 18 |
Лідер форуму
Повідомлень: 6316
| Quote (dpi) 1) находим четверку с разными Quote (Bandalak) чи легша, чи важча, не відомо За 1 зважування ми четвірку різних монет ніяк не знайдемо!
|
|
| | |
dpi |
Дата: Вт, 29.01.2008, 09:48 | Повідомлення № 19 |
Досвідчений вчитель
Повідомлень: 1438
| Quote (Bandalak) За 1 зважування ми четвірку різних монет ніяк не знайдемо! Согласен. Яимел ввиду не весы а три if () else
|
|
| | |
Стифа |
Дата: Вт, 29.01.2008, 14:25 | Повідомлення № 20 |
Я тут недавно...
Повідомлень: 33
| Quote (ihor_hontar) Троє студентів вирішили купити будильник, щоб не просипати на пари. Склались по 10 грн. (10х3=30) і купили будильник. Із радістю вийшли з магазину. Коли продавець вибив квиток, оказалось, що будильник коштує 25 грн. Просить напарника, щоб наздогнав хлопців і віддав 5 грн. Напарник наздогнав студентів і віддав їм кожному по 1 грн. з їхньої згоди 2 грн. залишив собі, як послугу. Отже студенти скинулись не по 10 грн., а по 9 грн., тобто 9х3=27 плюс 2 грн., що залишилось у другого продавця. Разом 29 грн. Де ділась одна грн.? Гривня ниде не ділась. Студенти заплатили 9х3=27 грн, тобто 25 грн за будильник і + 2 грн за послуги продавцю. Просто треба не додавати 27+2=29, а віднімати 27-2=25. Тоді все і відповіді буде тіп-топ
|
|
| | |
Bandalak |
Дата: Ср, 30.01.2008, 02:19 | Повідомлення № 21 |
Лідер форуму
Повідомлень: 6316
| Ускладнюю задачу з монетами! Є n монет (2<n<32000), серед яких одна фальшива, ваща чи легша - не відомо. Скласти прграму, що обчислить скільки необхідно найменше зважувань, щоб відшукати цю монету. Фактор випадковості не враховувати. Вхідні дані для тесту: Monet.dat 12 Вихідні дані: Monet.sol 3 Бажаю успіху!
|
|
| | |
dpi |
Дата: Чт, 07.02.2008, 08:57 | Повідомлення № 22 |
Досвідчений вчитель
Повідомлень: 1438
| Quote (Bandalak) Є 12 монет, одна з них фальшива, чи легша, чи важча, не відомо. Необхідно за 3 зважування ії відшукати! #include <iostream> #include <fstream> #define n 13 //Не используем нулевой индекс using namespace std; int main () { int p[n],i,j,k; string t; fstream fin; fin.open ("moneta.dat", ios::in); //проверка открытия файла if (!fin) { cout << "No file..."; system ("PAUSE"); exit (-1); } //======================================================= for (i = 1; i < n; i++) fin >> p[i]; //чтение веса fin.close(); //========================= Взвесим по 4 1-й вариант ============ if ((p[1]+p[2]+p[3]+p[4]) == (p[5]+p[6]+p[7]+p[8])) //1 a vzveshifnie { if ((p[9]+p[10]+p[11]) == (p[1]+p[2]+p[3])) //2 a.1(variant) { k = 12; if (p[12]>p[1]) t = "Tiagelei "; //3 a.1 else if (p[12]<p[1]) t = "Legche "; } else if ((p[9]+p[10]+p[11]) > (p[1]+p[2]+p[3])) //2 a.2 { t = "Tiagelei "; if (p[9] > p[10]) k = 9; //3 a.2 else if (p[9] < p[10]) k = 10; else k = 11; } else //2 a.3 { t = "Legche "; if (p[9] < p[10]) k = 9; //3 a.3 else if (p[9] > p[10]) k = 10; else k = 11; } } //========================= Взвесим по 4 2-й вариант ================= else if ((p[1]+p[2]+p[3]+p[4]) > (p[5]+p[6]+p[7]+p[8])) //1 b { if ((p[1]+p[2]+p[9]) == (p[3]+p[4]+p[5])) //2 b.1 { t = "Legche "; if (p[6] < p[7]) k = 6; //3 b.1 else if (p[6] > p[7]) k = 7; else k = 8; } else if ((p[1]+p[2]+p[9]) < (p[3]+p[4]+p[5])) //2 b.2 { if (p[3] == p[4]){k=5;t = "Legche ";} //3 b.2 else if (p[3] > p[4]) {k=3; t = "Tiagelei ";} else {k = 4; t = "Tiagelei ";} } else if ((p[1]+p[2]+p[9]) > (p[3]+p[4]+p[5])) //2 b.3 { if (p[1] == p[2]){k=5;t = "Legche ";} //3 b.3 else if (p[1] > p[2]) {k=1; t = "Tiagelei ";} else {k = 2; t = "Tiagelei ";} } } //========================= Взвесим по 4 3-й вариант ================= else if ((p[1]+p[2]+p[3]+p[4]) < (p[5]+p[6]+p[7]+p[8])) //1 c { if ((p[1]+p[2]+p[9]) == (p[3]+p[4]+p[5])) //2 c.1 { t = "Tiagelei "; if (p[6] < p[7]) k = 7; //3 c.1 else if (p[6] > p[7]) k = 6; else k = 8; } else if ((p[1]+p[2]+p[9]) < (p[3]+p[4]+p[5])) //2 c.2 { if (p[1] == p[2]){k=5;t = "Tiagelei ";} //3 c.2 else if (p[1] > p[2]) {k=2; t = "Legche ";} else {k = 1; t = "Legche ";} } else if ((p[1]+p[2]+p[9]) > (p[3]+p[4]+p[5])) //2 c.3 { if (p[3] == p[4]){k=5;t = "Legche ";} //3 c.3 else if (p[3] > p[4]) {k=4; t = "Legche ";} else {k = 3; t = "Legche ";} } } fstream fout; fout.open ("moneta.sol", ios::out); if (!fin) { cout << "No file..."; system ("PAUSE"); exit (-1); } fout<<t<<k; /*cout<<t<<k<<endl; system ("PAUSE");*/ return 0; } //Протестировано на Dev-C++ и Builder 6.0 (для В_3.1_С++ изменить начало)
|
|
| | |
Varkan |
Дата: Чт, 07.02.2008, 09:49 | Повідомлення № 23 |
Викладач ВУЗу
Повідомлень: 425
| Всі ці задачі (монети) це рівень середньої школи математики. Шановні вчителя є дуже чудові дисципліни такі як ТОП (теоретичні основи програмування) і чисельні методи на яких ми вивчали алгоритми розв’язку дуже багатьох цікавих задач (хід конем, проходження лабіринту...) давайте будемо вирішувати дійсно цікаві задачі. мене наприклад цікавить алгоритм розв’язку такої задачі: дано лабіринт в якому немає проходу. Як знайти стінку розбивши яку ми зможемо пройти даний лабіринт? Чому прошу алгоритм – тому що маючи алгоритм зможемо написати програму на будь-якій мові.
|
|
| | |
Sasyk |
Дата: Чт, 07.02.2008, 10:05 | Повідомлення № 24 |
знаток тестуючих систем
Повідомлень: 300
| Quote (Varkan) Всі ці задачі (монети) це рівень середньої школи математики. Шановні вчителя є дуже чудові дисципліни такі як ТОП (теоретичні основи програмування) і чисельні методи на яких ми вивчали алгоритми розв’язку дуже багатьох цікавих задач (хід конем, проходження лабіринту...) давайте будемо вирішувати дійсно цікаві задачі. мене наприклад цікавить алгоритм розв’язку такої задачі: дано лабіринт в якому немає проходу. Як знайти стінку розбивши яку ми зможемо пройти даний лабіринт? Чому прошу алгоритм – тому що маючи алгоритм зможемо написати програму на будь-якій мові Повністю погоджуюся, давайте розвязувати складніші задачі... А над цим треба подумати...
|
|
| | |
dpi |
Дата: Чт, 07.02.2008, 13:15 | Повідомлення № 25 |
Досвідчений вчитель
Повідомлень: 1438
| Quote (Varkan) дано лабіринт в якому немає проходу. Як знайти стінку розбивши яку ми зможемо пройти даний лабіринт? Как вариант. Лабиринт - таблица n на m заполняется нулями Во вход "засыпаем" единицы, в выход - двойки Если сумма рядом стоящих равна три - долби.
|
|
| | |
Bandalak |
Дата: Чт, 07.02.2008, 17:15 | Повідомлення № 26 |
Лідер форуму
Повідомлень: 6316
| Quote (Bandalak) #include <iostream> #include <fstream> #define n 13 //Не используем нулевой индекс Розв1язки цікаві, а як зробити для n монет?
|
|
| | |
Varkan |
Дата: Пт, 08.02.2008, 08:52 | Повідомлення № 27 |
Викладач ВУЗу
Повідомлень: 425
| Quote (dpi) Как вариант. Лабиринт - таблица n на m заполняется нулями Во вход "засыпаем" единицы, в выход - двойки Если сумма рядом стоящих равна три - долби. в принципі правильно (є деякі нюанси), а тепер ускладнимо точно знаємо шо таких стінок є декілька. потрібно знайти ту, шлях через яку буде найкоротший.
|
|
| | |
dpi |
Дата: Сб, 09.02.2008, 12:19 | Повідомлення № 28 |
Досвідчений вчитель
Повідомлень: 1438
| Quote (Bandalak) Розв1язки цікаві, а як зробити для n монет? Это уже за дополнительную плату... (Будет время подумаю.) _______ dpi
|
|
| | |
Varkan |
Дата: Пн, 11.02.2008, 13:10 | Повідомлення № 29 |
Викладач ВУЗу
Повідомлень: 425
| Quote (Bandalak) Ускладнюю задачу з монетами! Є n монет (2<n<32000), серед яких одна фальшива, ваща чи легша - не відомо. Скласти прграму, що обчислить скільки необхідно найменше зважувань, щоб відшукати цю монету. Фактор випадковості не враховувати. Вхідні дані для тесту: Monet.dat 12 Вихідні дані: Monet.sol 3 Бажаю успіху! тут і думати немає чого. принцип такий - за одне зважування відкинути найбільшу масу монет. це можливо коли ми поділимо всі монети на три кучки і дві з них зважимо (важимо однакові кучки). в залежності від результатів зважування залишаємо одну з трьох (тобто відкидаємо приблизно 1/3 монет) і так ділі... приклад: є 100 монет 100=33+33+34 1 зважування - важимо перших 33 і других 33 після зважування залишаємо або 33 або 34 візьмемо 34=11+11+12 2 зважуваня важимо перших 11 і других 11 після зважування залишаємо або 11 або 12 візьмемо 12=4+4+4 3 зважування - важимо перших 4 і других 4 після зважування залишаємо 4 візьмемо 4=1+1+2 4 зважування - важимо першу 1 і другу 1 після зважування залишаємо або 1 або 2 візьмемо 2=1+1 5 зважування - важимо першу 1 і другу 1 після зважування залишаємо 1 а тепер рахуємо кількість зважувань 1 100:3=34 (заокр до більшого) 2 34:3=12 (заокр до більшого) 3 12:3=4 (заокр до більшого) 4 4:3=2 (заокр до більшого) 5 2:3=1 (заокр до більшого) от вам і кількість зважувань. тепер узагальнюємо для N. N ділимо на 3 (рез заокр до більшого) результат ділимо на 3 і так далі поки не отримаємо 1. кількість ділень і буде кількість зважувань.
|
|
| | |
oleg_teacher |
Дата: Пн, 11.02.2008, 13:59 | Повідомлення № 30 |
Любитель дискутувати
Повідомлень: 177
| Quote (Varkan) 3 12:3=4 (заокр до більшого) Тут ы заокруглювати не тра!!!
|
|
| |
© Форум інформатиків України, 2007-2021.  |