Сб, 18.11.2017, 21:21
Форум інформатиків України
Головна Реєстрація Вхід
Вітаю Вас, Гість · RSS
Вітання на форумі
Незнайомець
Вітаємо на форумі,
Незнайомцю!

   
зареєструйтесь
Перед реєстрацією обов’язково прочитайте:
Оновлення Учасники Пошук
Особисті повідомлення
Видавництво ’’Аспект’’ Видавництво

Сторінка 10 з 10«128910
Модератор форуму: Bandalak, Ktara, НІКОЛЯ, volevikt 
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Задачі шкільного рівня. (Методично правильні розв’язки цікавих задач шкільної прогр.)
Задачі шкільного рівня.
Ковальчук_Олександр Дата: Вт, 11.03.2008, 02:09 | Повідомлення № 1
Ветеран спілкування
Повідомлень: 3621
Нагороди: 17
Рейтинг: 192
У гостьовій книзі користувач роман попросив розв’язати кілька простих задач для свого сина.
Я вирішив допомогти йому і заодно створити тему, де хтось буде писати умову цікавої задачі шкільного рівня, а інші будуть пропонувати розв’язки цієї задачі. І ми разом серед кількох варіантів розв’язку вибиратимемо найоптимальніший, методично правильний. Тема досить актуальна і цікава. Сподіваюсь, допоможе вчителям, які з різних причин погано знаються на задачах з програмування навіть шкільного рівня (наприклад вчитель, який інформатику читає не за спеціальністю).

Отож, задачі з гостьової книги:
Задача 1. Дано натуральне число N (1000 < =N<=9999). Визначити, чи є числo поліндромом, тобто таким числом, яке зліва направо і справа наліво читається однаково (всі чотири цифри враховуються; наприклад, 0110).
Задача 2. Василина Премудра грала в шашки зі змієм Гориничем на дуже великій дошці. Спочатку Василина з’їла у Горинича 3 шашки, а Горинич у Василини – 5 шашок, потім Василина у Горинича з’їла 9 шашок, а Горинич у Василини – 10 шашок, на третьому ході Василина проковтнула 15 шашок, а Горинич- 20. Ця серйозна гра тривала ще довго, аж поки Горинич не втомився і після N-го ходу не з’їв саму Василину. Скільки всього шашок проковтнув Змій Горинич? Кількість шашок завжди достатня.
Задача 3 . Знайти всі дільники натурального числа N.

Розв’язки:
Задача 1.
var n,n1,n2,n3,n4,r:integer;
begin
write('Введіть будь-яке чотирьохзначне число: ');
readln(n);
n1:=n div 1000;
n2:=(n div 100) mod 10;
n3:=(n div 10) mod 10;
n4:= n mod 10;
r:=n4*1000+n3*100+n2*10+n1;
if r=n then writeln ('Введене число ',n,' являється поліндромом.')
else writeln ('Введене число ',n,' не є поліндромом.')
end.
Задача 3.
var i,n:integer;
begin
writeln('Введіть натуральне число');
readln(n);
writeln('Дільники числа ',n,': ');
for i:=1 to n do
if n mod i = 0 then
write(i,' ');
end.

Розв’язок задачі 2 напишу незабаром.
А зараз хотілося б почути ваші думки з приводу того, чи оптимально розв’язані задачі 1 та задачі 3.
Звичайно, задача 1 не враховує захист від введення не чотиризначного числа, та це легко можна виправити розгалуженням.


Шановні форумчани!!!!!
Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!

Пилипчук_О_П Дата: Ср, 21.09.2011, 22:21 | Повідомлення № 136
Ветеран спілкування
Повідомлень: 3867
Нагороди: 30
Рейтинг: 346
А розв'язок тестувався?

Quote (alex)
readd(a[i]);


:)

Я колись на одному з вчительських конкурсів задачки з програмування поробив у Блокноті, бо для тестування часу не вистачало. Одну дужку все-таки пропустив ;)
KulAlex Дата: Чт, 22.09.2011, 03:52 | Повідомлення № 137
Знаток програмування
Повідомлень: 326
Нагороди: 6
Рейтинг: 19
Quote (Пилипчук_О_П)
Останнього пасажира двері не придушать, оскільки спрацюють, коли він вже переступить поріг


Можна посперечатися. В момент коли вага буде збільшуватися на ту ногу яка знаходиться у ліфті і сумарна маса досягне гранично допустимого, то друга нога (+ частина тіла) буде за межами ліфта (швидкість закриття ліфта миттєва). Вот цей чоловік і постраждає.


Відредаговано: KulAlex - Чт, 22.09.2011, 03:53
Пилипчук_О_П Дата: Чт, 22.09.2011, 07:57 | Повідомлення № 138
Ветеран спілкування
Повідомлень: 3867
Нагороди: 30
Рейтинг: 346
Можна й посперечатись. Особливо, коли на кону чіткість формулювання задачі. Тим більше, що я теж "прокручував" такі аргументи. В умові написано:
Quote (Ковальчук_Олександр)
коли зайвий за вагою пасажир переступить поріг ліфта

Дієслово "переступить" має доконаний вид, тобто дія вже відбулась. В іншому випадку мало б бути написано "переступатиме".
KulAlex Дата: Чт, 22.09.2011, 08:07 | Повідомлення № 139
Знаток програмування
Повідомлень: 326
Нагороди: 6
Рейтинг: 19
Однією ногою переступив, дія виконана. А краще спитати у філологів про термін "переступив"

Відредаговано: KulAlex - Чт, 22.09.2011, 08:08
alex Дата: Чт, 22.09.2011, 08:13 | Повідомлення № 140
Активний учасник
Повідомлень: 586
Нагороди: 1
Рейтинг: 17
Quote (swetikccc)
Пане alex, чому Ви обмежили кількість пасажирів сотнею, в задачі не сказано про обмеження? ))))

Не вважав за необхідне запропонувати розв'язок з використанням динамічних списків.
А оскільки при навчанні я акцентую увагу , що ми роз'язуємо реальну задачу то виходив з
обмежень, що випливають з мого бачення даної ситуації.
swetikccc Дата: Чт, 22.09.2011, 10:11 | Повідомлення № 141
Ветеран спілкування
Повідомлень: 3954
Нагороди: 28
Рейтинг: 370
Quote (alex)
Не вважав за необхідне запропонувати розв'язок з використанням динамічних списків.
А оскільки при навчанні я акцентую увагу , що ми роз'язуємо реальну задачу то виходив з
обмежень, що випливають з мого бачення даної ситуації.

Я свважаю що постановка деяких задач бажає кращого.
Пилипчук_О_П Дата: Чт, 22.09.2011, 15:16 | Повідомлення № 142
Ветеран спілкування
Повідомлень: 3867
Нагороди: 30
Рейтинг: 346
Quote (alex)
А оскільки при навчанні я акцентую увагу , що ми роз'язуємо реальну задачу

Хибний підхід. Треба розв'язувати поставлену задачу. Якщо обмеження на дані не вказані - треба це максимально враховувати.
alex Дата: Чт, 22.09.2011, 16:28 | Повідомлення № 143
Активний учасник
Повідомлень: 586
Нагороди: 1
Рейтинг: 17
Quote (Пилипчук_О_П)
Хибний підхід. Треба розв'язувати поставлену задачу. Якщо обмеження на дані не вказані - треба це максимально враховувати.

Ну виберіть, що до ліфта стоїть 10000 чоловік, а якщо будете кодувати в Free Paskal і того можна більше.
Ну і що, що не реальна черга людей зате враховано по максимуму.
Коли говорять про етапи роз'язку задач то першим етапом є постановка задачі в реальних об'єктах.
А в реальних об'єктах для випадку відсутності обмежень в умові задачі такими обмеженнями може слугувати здоровий глузд.
Ковальчук_Олександр Дата: Чт, 22.09.2011, 16:46 | Повідомлення № 144
Ветеран спілкування
Повідомлень: 3621
Нагороди: 17
Рейтинг: 192
я повторю, що дана задача йде в розділі "алгоритми з повтореннями", вважається, що тему "масиви" учні ще не знають.
Мені здається підійде варіант введення чисел і зразу ж їх сумування без використання масиву. Тоді обмеження буде лише довжиною типу longint.
Пилипчук_О_П Дата: Чт, 22.09.2011, 17:29 | Повідомлення № 145
Ветеран спілкування
Повідомлень: 3867
Нагороди: 30
Рейтинг: 346
Quote (alex)
А в реальних об'єктах для випадку відсутності обмежень в умові задачі такими обмеженнями може слугувати здоровий глузд.

Мушу ще раз сказати: хибний підхід. Звучить трохи кумедно, але здоровий глузд в подібних задачах тільки шкодить. Керуючись ним, людина, замість пошуку ефективного алгоритму, розв'язує частковий випадок поставленої задачі.

Конкретно по розглянутих вище задачах:

- у повідомленні 122: як в здоровий глузд вкладається хлопчик з багатокілометровою макарониною в роті?
- у повідомленні 129: задача про пасажирів. Хто сказав, що це - люди? А марсіан масою по 0,1 грама кожен у наш земний ліфт поміститься навіть більше, ніж 10000. Прилетять - самі переконаєтесь! ;)
alex Дата: Пт, 23.09.2011, 08:11 | Повідомлення № 146
Активний учасник
Повідомлень: 586
Нагороди: 1
Рейтинг: 17
Quote (Пилипчук_О_П)
Мушу ще раз сказати: хибний підхід.

Дискусія безплідна. Радує тільки те, щи не володієте абсолютною істиною.

Додано (23.09.2011, 08:11)
---------------------------------------------

Quote (Ковальчук_Олександр)
я повторю, що дана задача йде в розділі "алгоритми з повтореннями", вважається, що тему "масиви" учні ще не знають.

Про це ніде не сказано в умові задачі. Сруктуру даних кожен хто розвязує задачі вибирає сам.
А команда повторення використовується як одному так і в іншому випадку.
Пилипчук_О_П Дата: Пт, 23.09.2011, 16:30 | Повідомлення № 147
Ветеран спілкування
Повідомлень: 3867
Нагороди: 30
Рейтинг: 346
Quote (alex)
Радує тільки те, щи не володієте абсолютною істиною.

Як і всі інші :) Хоча, чому радує - не розумію...

А щодо задачі з повідомлення 129 - в ній ніде не сказано про обмеження на кількість пасажирів. Класична задача на обробку числової послідовності, просто недбало сформульована. Причому задача така, що не вимагає зберігати у пам'яті всю послідовність. Очевидно, що масив тут застосовувати недоцільно.
Spilberg Дата: Чт, 14.11.2013, 09:27 | Повідомлення № 148
Новий користувач
Повідомлень: 4
Нагороди: 0
Рейтинг: 0
Задача 1У класі N учнів, з яких М — хлопці. Уякому відсотковому співвідношенні поділяються хлопці та дівчата в цьому класі? Задача 2 Тато у Васісильний у математиці, але по дорозів гараж забув код цифрового замка від гаража. У пам'яті у тата залишилося, що всі цифри коду різні і їх сума рівна 28. Скільки різних кодів треба перебрати татові, щоб напевно відкритигараж, якщо відкриваючий механізмзамка складається з чотирьох дисківз повним набором цифр на кожному? Задача 3. Відомо, що в школі N початкових класів (з 1 по 4 класи) і в кожному класі навчається 10 учнів. Підсумковийрезультат з математики учнів даних класівусієї школи виписаний у виглядітаблиці розміром Nх10, де кожний рядок - це підсумковіоцінки учнів даного класу відповіднодо списку в клеасному журналі. Визначити клас і порядковий номер учнів, які мають максимальну оцінку (оцінка 12) і не атестовані (оцінка 0). (Примітка: таблицюоцінок можна формувати випадковими даними). Задача 4. Деяке містопобудували за строгими геометричним законами, у виглядіквадратної матриці.Через данемісто протікаєрічка, течія  якої напрямлена ізлівого верхнього до правого нижнього кутка. Врезультаті перепису населенняв кожному подвірї проживала одна людина. Визначитисередній вік жителівдано міста. Встановити на якому березірічки проживала найстарша людина. Задача 5. Є монети з різними фіксованими номіналами, вираженими в копійках (наприклад, 3 і 5 копійок) в достатній кількості. Написати програму, яка: визначае, чиможна представити заданусуму S (виражену в копійках), користуючисьмонетами заданих номіналів;якщо це можливо, то представте цю суму за допомогою мінімальноїкількості монет.

Допоможіть розвязати задачі в паскалі
Ковальчук_Олександр Дата: Чт, 14.11.2013, 12:00 | Повідомлення № 149
Ветеран спілкування
Повідомлень: 3621
Нагороди: 17
Рейтинг: 192
Spilberg, ви учень?
Якщо ви учень, то ми не розв’язуємо домашніх завдань.
Неповна форма розгалуження...
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Задачі шкільного рівня. (Методично правильні розв’язки цікавих задач шкільної прогр.)
Сторінка 10 з 10«128910
Пошук:


© Форум інформатиків України, 2007-2017.