Интересные задачки для начинающих программистов

Можно задавать любые вопросы связанные с программированием и мы постараемся на него ответить.

Модератор: Cerberus

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Ср мар 03, 2010 16:23

Чтобы научиться программировать, недостаточно просто прочитать книгу, посвященную языку программирования. Надо писать программы. Писать и еще раз писать! Но где найти задачки для тренировок? В учебниках, как правило, приводятся типовые, стандартные задачи, в основе которых лежит расчет по формулам. Это, несомненно, полезно, но далеко не всегда интересно. А если решаемся задача не нравится, то и программу писать будет сплошным мучением. :hang:
Другое дело, если программка будет решать не какие-то отвлеченные формулы, а вполне конкретные задачи или просто какие-то интересные занимательные вещи. Путь даже совсем небольшие. Такие задачки и лучше воспринимаются и приятнее программируются. :hacker:

В этой теме я предлагаю выкладывать как раз такие задачки. Задачки, которые было бы не так скучно решать тем, кто только недавно вступил или еще только хочет вступить в этот замечательный мир программирования. :crazy:

Задачки предлагаю оформлять примерно следующим образом:

Условие задачки
Необходимые знания чтобы решить эту задачку. (Можно и не указывать. Я бы предложил указывать только для тех задачек, которые направлены на отработку каких-то конкретных конструкций или алгоритмов)

Например:

Задачка: "Счастливые билетики"
Все знают старую традицию, вычислять серийные шестизначные номера трамвайных или автобусных билетиков на признак «счастливости». Билетик счастливый, если сумма первых 3-ёх и последних 3-ёх цифр получается одинаковой. Например 165273
1+6+5 = 12 и 2+7+3 = 12. Ура! Билетик с номером 165273 – счастливый!
Попробуйте и Вы организовать такую программку, в которой пользователь будет вводить число, а программа ему будет выдавать ответ, счастливое оно или нет.

Большая просьба не выкладывать решения. Иначе другим будет неинтересно :pardon:
Изображение________________Изображение

Аватара пользователя
Дыбра
Добрый Админ
Сообщения: 5437
Зарегистрирован: Чт мар 31, 2005 16:54
Пол: мужской
Откуда: Выкса
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Дыбра » Чт мар 04, 2010 22:18

Решал такую задачу, когда мне было интересно, какова вероятность появления "счастливого" билета в рулоне. Решается в общем-то элементарно. :)

Но если подходить пристрастно, то это не программа, а алгоритм :)
Администратор сайта "Виртуальная Выкса"

Dancer
Новоприбывший
Сообщения: 4
Зарегистрирован: Чт янв 14, 2010 14:37
Пол: мужской

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Dancer » Пт мар 05, 2010 11:20

Из серии про "билетики" :)
ЛИК*ЛИК=БУБЛИК

Да и как Дыбра правильно выразился, это всё больше к алгоритмам.

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Вт мар 09, 2010 16:20

"Проверка знаний таблицы умножения"
Написать программу проверки знания таблицы умножения для школьников в начальных классах. Программа должна предлагать по очереди 10 примеров на умножение, на которые школьник-пользователь должен вводить ответ.
После прохождения всех примеров программа должна выставить оценку:
за 10 правильных ответов — "отлично"
за 9 и 8 — "хорошо"
за 7 и 6 — "удовлетворительно"
за 6 и менее — "плохо"
Изображение________________Изображение

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Вт мар 09, 2010 16:25

"Угадай число"
Написать программу "Угадай число". Программа задумывает число от 0 до 1000. Пользователь делает предположение, а программа говорит теплее или холоднее.
При вводе первого предположения программа просто говорит, угадано число или нет.

Например, программа загадала число 345.
Пользователь вводит 50. Программа говорит: Не угадали
Пользователь вводит 45. Программа говорит: Холоднее
Пользователь вводит 330. Программа говорит: Теплее
Пользователь вводит 400. Программа говорит: Холоднее
Пользователь вводит 350. Программа говорит: Теплее
Пользователь вводит 345. Программа говорит: Угадали!
Изображение________________Изображение

Аватара пользователя
Дыбра
Добрый Админ
Сообщения: 5437
Зарегистрирован: Чт мар 31, 2005 16:54
Пол: мужской
Откуда: Выкса
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Дыбра » Ср мар 10, 2010 6:21

Emris писал(а):Например, программа загадала число 345.
Пользователь вводит 50. Программа говорит: Не угадали
Пользователь вводит 45. Программа говорит: Холоднее


А не удобнее было бы сразу говорить вектор с первого ответа?
Администратор сайта "Виртуальная Выкса"

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Ср мар 10, 2010 9:30

Дыбра писал(а):
Emris писал(а):Например, программа загадала число 345.
Пользователь вводит 50. Программа говорит: Не угадали
Пользователь вводит 45. Программа говорит: Холоднее


А не удобнее было бы сразу говорить вектор с первого ответа?


Дело в том, что "Холоднее"/"Теплее" говорит о том, удаляется ли угадывающий от правильного ответа, или приближается. Поэтому по первому числу мы не можем сказать направление движения угадывающего. :pardon:

Поясню:

Пользователь вводит "50".
Программа говорит: "Не угадали"
Программа запоминает: "Угадывающий был в |345-50| = 295 "шагах" от правильного ответа"

Пользователь вводит "45".
Программа смотрит: "Теперь угадывающий в|345-45| = 300 "шагах" от ответа. Это дальше, чем в прошлый раз" поэтому
Программа говорит: "Холоднее"

Пользователь вводит "330". Программа смотрит: "Теперь угадывающий в |345-330| = 15 "шагах" от ответа. Это ближе, чем в прошлый раз" поэтому
Программа говорит: "Теплее"

Пользователь вводит "400". Программа смотрит: "Теперь угадывающий в |345-400| = 55 "шагах" от ответа. Это дальше, чем в прошлый раз"
Программа говорит: "Холоднее"

И так далее :-)
Изображение________________Изображение

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Ср мар 24, 2010 15:56

Напишите программу-телеграф, которая принимает от пользователя сообщение и выводит его на экран в виде последовательности точек и тире.
Азбука Морзе для букв русского алфавита.

В дальнейшем можно доработать программу и сопроводить вывод точек и тире звуковым сигналом соответствующей длительности.
Изображение________________Изображение

Аватара пользователя
Дыбра
Добрый Админ
Сообщения: 5437
Зарегистрирован: Чт мар 31, 2005 16:54
Пол: мужской
Откуда: Выкса
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Дыбра » Пт мар 26, 2010 20:21

Ну это, по-моему, не очень интересная задача. Чистая таблица, без всякой логики.

В отместку могу предложить задачу по переводу чисел из любой в любую систему счисления.
Администратор сайта "Виртуальная Выкса"

Аватара пользователя
Emris
Завсегдатай
Сообщения: 277
Зарегистрирован: Вт окт 04, 2005 22:28
Пол: мужской
Откуда: Из древнего града Мурома
Контактная информация:

Re: Интересные задачки для начинающих программистов

Непрочитанное сообщение Emris » Пн мар 29, 2010 12:46

Дыбра писал(а):Ну это, по-моему, не очень интересная задача. Чистая таблица, без всякой логики.

Согласен. В плане алгоритма здесь ничего особо интересного нет. Больше, так сказать, на "набивание руки" :)
Мне понравилось просто сама идея задачки :)
Изображение________________Изображение

Ответить

Вернуться в «В помощь будущим программистам»