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

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

Сторінка 8 з 10«12678910»
Модератор форуму: Bandalak, Ktara, НІКОЛЯ, volevikt 
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Задачі шкільного рівня. (Методично правильні розв’язки цікавих задач шкільної прогр.)
Задачі шкільного рівня.
Ковальчук_Олександр Дата: Вт, 11.03.2008, 03: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 не враховує захист від введення не чотиризначного числа, та це легко можна виправити розгалуженням.


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

zivert Дата: Сб, 29.11.2008, 12:08 | Повідомлення № 106
Тут живе...
Повідомлень: 158
Нагороди: 2
Рейтинг: 34
А як цю програму реалізувати на Паскалі ?
filnick Дата: Сб, 29.11.2008, 14:52 | Повідомлення № 107
Мудрий вчитель
Повідомлень: 2238
Нагороди: 7
Рейтинг: 124
Quote (zivert)
А як цю програму реалізувати на Паскалі ?

Якщо у загальному виді, то треба дві процедури:
1) Визначення кількості варіантів розміщення смужок
2) Розрахунку числа комбінацій даних лінійок для кожної смужки.
vitert Дата: Нд, 30.11.2008, 03:10 | Повідомлення № 108
Тут живе...
Повідомлень: 174
Нагороди: 1
Рейтинг: 22
Quote (filnick)
Існує 9 варіантів співрозміщень прямокутних смужок на сторонах, щоб утворити прямокутник за даними розмірами:
1) 6 - 4 - 8 - 4
2) 6 - 4 - 7 - 5
3) 6 - 5 - 6 - 5
4) 6 - 5 - 7 - 4
5) 7 - 3 - 8 - 4
6) 7 - 3 - 7 - 5
7) 7 - 4 - 7 - 4
8) 8 - 3 - 7 - 4
9) 8 - 3 - 8 - 3

Я б сказав існує 16 варіантів співрозміщень прямокутних смужок, виходячи з того, що сказано в задачі.
Дві протилежні сторони однозначно задають співрозміщення всіх смужок. Для більшої сторони в даному випадку можливі такі варіанти: 6,7,8 - як ви і розглядаєте. Але 6 і 8 розміщуються однозначно а от для 7 два варіанта, вона може починатися як зліва так і справа (нехай це горизонтальна смужка) питання в тому чи є це розміщення різним?
Тоді для однієї сторони буде 4 варіанта:6,8,7л,7п і аналогічно для протилежної тобто всього 16.
Тобто ваш варіант 7-3-8-4 у моєму випадку матиме 2: 7л-4-8-3 та 7п-3-8-4.
Виправте мене якщо я помиляюсь, не хочу даремно перераховувати.

Quote (filnick)
Якщо у загальному виді, то треба дві процедури:
1) Визначення кількості варіантів розміщення смужок
2) Розрахунку числа комбінацій даних лінійок для кожної смужки.

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

Відредаговано: vitert - Нд, 30.11.2008, 03:30
filnick Дата: Нд, 30.11.2008, 14:37 | Повідомлення № 109
Мудрий вчитель
Повідомлень: 2238
Нагороди: 7
Рейтинг: 124
Quote (vitert)
Я б сказав існує 16 варіантів співрозміщень прямокутних смужок, виходячи з того, що сказано в задачі. Дві протилежні сторони однозначно задають співрозміщення всіх смужок. Для більшої сторони в даному випадку можливі такі варіанти: 6,7,8 - як ви і розглядаєте. Але 6 і 8 розміщуються однозначно а от для 7 два варіанта, вона може починатися як зліва так і справа (нехай це горизонтальна смужка) питання в тому чи є це розміщення різним? Тоді для однієї сторони буде 4 варіанта:6,8,7л,7п і аналогічно для протилежної тобто всього 16. Тобто ваш варіант 7-3-8-4 у моєму випадку матиме 2: 7л-4-8-3 та 7п-3-8-4.

Дійсно, всіх варіантів буде 16, але 7 з них повторюють вже розглянуті випадки (якщо читати пари чисел, починаючи з другої). Наприклад, 7-4-8-3 те ж саме, що й 8-3-7-4 (якщо повернути прямокутник на 180 градусів). Тому я й рахував їх як один варіант.
Quote (vitert)
дано 3 числа, скількома способами одне зних можна виразити через два інших та їх суму, використовуючи кожне з них скільки завгодно разів, враховуючи послідовність входження в суму доданків. Не така і проста задача.

Задача дійсно не проста, але має розв'язок. Для ПК можливо й методом перебору варіантів. Спробуємо знайти алгоритм.
dpi Дата: Нд, 30.11.2008, 17:44 | Повідомлення № 110
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Нужны комбинаторные формулы и тогда не будет полемики.
filnick Дата: Нд, 30.11.2008, 19:03 | Повідомлення № 111
Мудрий вчитель
Повідомлень: 2238
Нагороди: 7
Рейтинг: 124
Quote (dpi)
Нужны комбинаторные формулы и тогда не будет полемики.

Чиста комбінаторика не дасть остаточної відповіді. Потрібен аналіз. Хоча формули комбінаторики дійсно можуть допомогти.
dpi Дата: Чт, 04.12.2008, 16:05 | Повідомлення № 112
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Quote (filnick)
Всього: 276 способів.

Вы точно знаете ответ или это может быть другой. Что бы можно было анализировать не сомневаясь?
filnick Дата: Чт, 04.12.2008, 18:18 | Повідомлення № 113
Мудрий вчитель
Повідомлень: 2238
Нагороди: 7
Рейтинг: 124
Quote (dpi)
Вы точно знаете ответ или это может быть другой. Что бы можно было анализировать не сомневаясь?

Для конкретних даних відповідь остаточна. А аналіз потрібен для розв'язання задачі у загальному випадку (при будь-яких площах та довжинах лінійок)
dpi Дата: Чт, 04.12.2008, 20:11 | Повідомлення № 114
Досвідчений вчитель
Повідомлень: 1438
Нагороди: 1
Рейтинг: 39
Спасибо. Будем думать.
Mohammed Дата: Вт, 15.09.2009, 21:44 | Повідомлення № 115
Новий користувач
Повідомлень: 1
Нагороди: 0
Рейтинг: 0
Дано додатнє число N. Перевірити, чи всі його цифри різні; якщо ні, тоді скільки однакових?
pasichov Дата: Вт, 15.09.2009, 22:52 | Повідомлення № 116
Наполегливий учасник
Повідомлень: 946
Нагороди: 3
Рейтинг: 70
Quote (Mohammed)
Дано додатнє число N. Перевірити, чи всі його цифри різні; якщо ні, тоді скільки однакових?

Не зовсім зрозуміло. що означачає "скільки однакових"... умова неоднозначна... знайдемо скільки 0,1,2....9 в даному числі. А вже тоді інтерпретуйте "однаковість"

алг Цифри_в_числі (ціл Число)
арг Число

поч
ціл.таб А[0:9] A:=0
Поки Число<>0
пц
К:=Число mod 10
A[k]:=A[k]+1;
Число:=Число div 10
кц
для i від 0 до 9
пц
Друк ("цифра ",і," зустрічається ", А[i]," разів");
кц [/b)
[b]кін


Відредаговано: pasichov - Ср, 16.09.2009, 09:42
mouse Дата: Чт, 01.10.2009, 19:57 | Повідомлення № 117
Ветеран спілкування
Повідомлень: 2025
Нагороди: 4
Рейтинг: 62
Просто, локанічно, логічно, нічого зайвого.
Програмування - це мистецтво! Можна відчути граціонзність, величність і незбагненну глибину...
gabylena Дата: Пн, 12.04.2010, 17:52 | Повідомлення № 118
Новий користувач
Повідомлень: 1
Нагороди: 0
Рейтинг: 0
Quote (Varkan)
2 задача.
без врахування шашок які зїла Василина:
k:=5;
m:=2;
for i:=2 to n do
begin
k:=k+5*m
m:=m+2;
end;
з врахуванням шашок які зїла Василина:
k1:=3
k2:=5;
m1:=3
m2:=2;
for i:=2 to n do
begin
k1:=k1+3*m1
m1:=m1+2;
k2:=k2+5*m2
m2:=m2+2;
end;
k:=k1+k2;

А можна повну відповідь......з var і так далі.....
alfaven Дата: Вт, 28.09.2010, 21:44 | Повідомлення № 119
Новий користувач
Повідомлень: 1
Нагороди: 0
Рейтинг: 0
портабулювати функцію y=lnx+cosx, інтервал a=1,б=1,5
alex Дата: Вт, 28.09.2010, 22:39 | Повідомлення № 120
Активний учасник
Повідомлень: 586
Нагороди: 1
Рейтинг: 17
Quote (alfaven)
портабулювати функцію y=lnx+cosx, інтервал a=1,б=1,5

Наскільки я памятаю, то у нас на форумі притримуються правила, що учням (студентам) примітивні
задачі не розвязувати. ;)
Форум інформатиків » РОЗДІЛ VIІІ: ОБМІН ДОСВІДОМ (УРОКИ, ФАКУЛЬТАТИВИ, ПОЗАКЛАСНА РОБОТА) » 8.6 Факультатив з програмування » Задачі шкільного рівня. (Методично правильні розв’язки цікавих задач шкільної прогр.)
Сторінка 8 з 10«12678910»
Пошук:


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