 |
Вітаю Вас, Гість · RSS |
 |
Задача на мові Паскаль
| |
nataliakonanec16021987 |
Дата: Нд, 02.11.2014, 11:48 | Повідомлення № 1 |
Новий користувач
Повідомлень: 1
| Добрий день! Шановні колеги, допоможіть розв'язати задачу даного типу: Кондитерська фірма, яка любить експериментувати, вирішила встановити пільгові карточки для своїх працівників з щасливими номерами. Допоможіть підрахувати, скільки людей може попасти до пільгової категорії, якщо щасливою буде карточка, утворена чотиризначним числом, цифри якої в сумі дають 7.
[admin]Шановні форумчани!!!!! Повідомлення, які не відповідають темі або несуть некорисний зміст будуть видалятись без попередження!!!
|
|
| |
Bandalak |
Дата: Нд, 02.11.2014, 15:06 | Повідомлення № 2 |
Лідер форуму
Повідомлень: 6403
| Це з районної олімпіади по Інформатиці? Ніхто з дітей не розв'язав, взялися вчителі це робити? Яка це область?
Щоб прочитати текст програми, потрібно мати не менше 20 повідомлень на форумі!
|
|
| |
nolk-v |
Дата: Нд, 02.11.2014, 17:35 | Повідомлення № 3 |
Прописаний назавжди
Повідомлень: 312
| Цитата Bandalak (  ) Це з районної олімпіади по Інформатиці?Ніхто з дітей не розв'язав, взялися вчителі це робити? Яка це область? А чому такий розв'язок? Дані карточки містять чотирицифрові числа. Я розв'язував так (для перевірки організував виведення чисел): Доступно тільки для користувачів
Відредаговано: nolk-v - Нд, 02.11.2014, 17:39 |
|
| |
Bandalak |
Дата: Нд, 02.11.2014, 18:17 | Повідомлення № 4 |
Лідер форуму
Повідомлень: 6403
| Звичайно Ваш розв'язок працюватиме набагато швидше, але для цієї тривіальної задачі це не настільки важливо.
Я старався записати найпростіший для розуміння варіант.
|
|
| |
swetikccc |
Дата: Нд, 02.11.2014, 18:18 | Повідомлення № 5 |
Ветеран спілкування
Повідомлень: 4208
| Спjчатку в лоб вирішив, як nolk-v, але потім побачив ваше рішення пане Bandalak і трішки його оптимізував циклів зменшилося на порядок всього 330.
Доступно тільки для користувачів
|
|
| |
volevikt |
Дата: Вт, 04.11.2014, 13:45 | Повідомлення № 6 |
Перспективна вчителька
Повідомлень: 1912
| Пропоную не закривати тему. Іноді вчителю-початківцю немає до кого звернутися за допомогою, особливо, коли це сільська віддалена школа. Розумію, що розв'язувати за когось задачі - це не вихід, але ж наштовхнути на розв'язок чи допомогти знайти помилку у самому розв'язку, ми можемо? Окрім того, це гарне тренування для інших вчителів. Сподіваюся, шановні колеги, що Ви мене підтримаєте.
|
|
| |
nolk-v |
Дата: Вт, 04.11.2014, 16:01 | Повідомлення № 7 |
Прописаний назавжди
Повідомлень: 312
| Цитата nataliakonanec16021987 (  ) утворена чотиризначним числом, цифри якої в сумі дають 7. Шановні колеги, можливо я чогось не зрозумів, але: ваші розв'язки дають кількість чисел 120, мій 84.,бо ваша програма перебирає числа від 0 до 7777 (розв'язок Bandalak). Як я розумію з умови на картці чотирицифрове число, а чисел типу 0007 немає - ваша програма їх враховує. В принципі, якщо у вашій програмі початкове значення змінній h надати 1 а не 0, розв'язків буде 84.
Відредаговано: nolk-v - Вт, 04.11.2014, 16:30 |
|
| |
swetikccc |
Дата: Вт, 04.11.2014, 16:34 | Повідомлення № 8 |
Ветеран спілкування
Повідомлень: 4208
| Цитата nolk-v (  ) Шановні колеги, можливо я чогось не зрозумів, але: ваші розв'язки дають кількість чисел 120, мій 84.,бо ваша програма перебирає числа від 0 до 7777 (розв'язок Bandalak). Як я розумію з умови на картці чотирицифрове число, а чисел типу 0007 немає - ваша програма їх враховує. Ну якщо число, то замініть нолик в першому циклі на 1. Але ж тоді карточки під номером 7 не існує
|
|
| |
nolk-v |
Дата: Вт, 04.11.2014, 16:41 | Повідомлення № 9 |
Прописаний назавжди
Повідомлень: 312
| У правці я вже це написав. Начебто проста задача, а які цікаві ідеї. Дякую за дискусію...
|
|
| |
Bandalak |
Дата: Вт, 04.11.2014, 18:44 | Повідомлення № 10 |
Лідер форуму
Повідомлень: 6403
| Карточки можуть номерувати з 0000, тому розв'язків має бути все ж таки 120.
|
|
| |
nolk-v |
Дата: Ср, 05.11.2014, 08:28 | Повідомлення № 11 |
Прописаний назавжди
Повідомлень: 312
| Цитата Bandalak (  ) Карточки можуть номерувати з 0000, тому розв'язків має бути все ж таки 120. Можливо ви й праві, але я думаю, що чотиризначне число - це таке число, яке не починається з 0. Відповідно умову задачи необхідно уточнювати, щоб було чітко зрозуміло, що мається на увазі - чотиризначне число в звичайному розумінні чи набір чотирьох цифр, які приймають значення від 0 до 7.
|
|
| |
Пилипчук_О_П |
Дата: Ср, 05.11.2014, 10:04 | Повідомлення № 12 |
Ветеран спілкування
Повідомлень: 4332
| Цитата nolk-v (  ) умову задачи необхідно уточнювати, щоб було чітко зрозуміло, що мається на увазі Саме так і мають формулюватися умови олімпіадних задач.
Зараз у Хмельницькій області триває заочна олімпіада. Я автор декількох задач. Ось приклад, як виглядають умови і консультації журі щодо умов (третій тур; мої задачі - D i E):
http://zoi2014.at.ua/index/umovi/0-20 http://zoi2014.at.ua/forum/7-5-1
Як бачимо, навіть коли, готуючи порівняно просту задачу, намагаєшся все врахувати, завжди знаходяться неоднозначності.
|
|
| |
nolk-v |
Дата: Вт, 11.11.2014, 22:45 | Повідомлення № 13 |
Прописаний назавжди
Повідомлень: 312
| Цитата Bandalak (  ) Це з районної олімпіади по Інформатиці? Знайшов схожу задачу на дистанційному курсі з програмування: Паша очень любит кататься на общественном транспорте, а получая билет, сразу проверяет, счастливый ли ему попался. Билет считается счастливым, если сумма первых трех цифр совпадает с суммой последних трех цифр номера билета.
Однако Паша очень плохо считает в уме, поэтому попросил вас написать программу, которая проверит равенство сумм и выведет "Счастливый", если суммы совпадают, и "Обычный", если суммы различны.
На вход программе подаётся строка из шести цифр. Выводить нужно только слово "Счастливый" или "Обычный", с большой буквы. Sample Input: 090234
Sample Output: Счастливый
Memory Limit: 256 MB Time Limit: 5 seconds Але тут постановка чітка - номер білету не число, а набір цифр від 0 до 9.
|
|
| |
skif |
Дата: Нд, 16.11.2014, 17:41 | Повідомлення № 14 |
Прописаний назавжди
Повідомлень: 449
| А такий варіант: var n,x,i,s:integer; begin readln(n); s:=0; while n>=0 do begin x:=n mod 10; s:=s+x; n:=n div 10; end; if s=7 then write('Schasluvuj') else ('Ne schasluvuj'); end.
|
|
| |
© Форум інформатиків України, 2007-2023.  |