50 задач по началам программирования - Вячеслав Пупышев
- Дата:07.09.2024
- Категория: Компьютеры и Интернет / Программирование
- Название: 50 задач по началам программирования
- Автор: Вячеслав Пупышев
- Просмотров:0
- Комментариев:0
Возрастные ограничения: (18+) Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних просмотр данного контента СТРОГО ЗАПРЕЩЕН! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту для удаления материала.
Шрифт:
Интервал:
Закладка:
Пупышев В.В
50 задач по началам программирования
http://ulm.uni.udm.ru/~pvv/packst/
Введение
Эта книжка – очень сжатый вариант задачника для желающих научиться программировать. Конечно, она не самоучитель, скорее нужна для закрепления, углубления и контроля знаний и умений, полученных от учителя, из учебников или еще каким-нибудь путем.
Задачи не требуют знания какого-то конкретного языка программирования. Их можно решать на том языке, который Вы решили изучить. Задачи также требуют только общих знаний, может, чуть более глубоких по математике.
Задачи, для большей пользы, надо решать подряд. Пропускать можно только задачи повышенной трудности (помеченные звездочкой) лишь в том случае, если решить их Вы не можете.
В каждой задаче приведен пример. Входные и выходные данные примера всегда правильные. Если формулировка задания не ясна до конца. Проанализируйте пример. Во всех примерах показаны входные и выходные данные, но это не значит, что нужно вводить и выводить именно так, как показано. Если способ ввода и вывода не указан, то выбирайте его сами.
Поясним некоторые обозначения. В задачнике встречаются названия задач, начинающиеся латинскими заглавными буквами и цифрами. Эти условные обозначения показывают, когда и на каком соревновании по программированию давалась данная задача. Число после букв указывает год, а буквы обозначают само соревнование. DOI –районные олимпиады школьников Удмуртии. MFOI – олимпиада про программированию Удмуртского государственного университета для поступающих на математический факультет. MARK – студенческая олимпиада, спонсируемая ассоциацией предприятий МАРК. Некоторые части примеров записаны разными шрифтами. Если текст написан таким шрифтом, то этот текст выводится на экран, если таким шрифтом, тот этот текст надо набирать с клавиатуры.
Проверка правильности решенияПосле того, как для решения задачи придуман алгоритм и готова программа, надо проверить, правильно ли она работает. Для этого очень часто применяется метод тестов. Этот метод используется следующим образом: придумывают входные данные и вычисляют, какие должны быть выходные значения.
Входные данные, правильный ответ и время, через которое программа должна дать ответ, называют тестом. Потом входные данные задаются программе и проверяют, совпадают ли вычисленные ранее выходные значения и результат работы программы. Если программа выдала ответ, такой как было вычислено ранее, не позже заданного времени, то тест считается пройденным. Для большей уверенности нужно придумать несколько тестов и выполнить для них программу. Придумывать тесты для программы надо так, как будто Вы желаете, чтобы программа не смогла их пойти.
Этот способ не даёт полной гарантии того, что программа работает правильно. Не существует способа проверить любую программу лучше, чем хорошо подобранным набором тестов.
В этом задачнике для каждой задачи уже есть набор тестов. Но не спешите проверять программу сразу, как только её написали, на этих тестах.
Проверять решение нужно так:
0. Придумайте несколько (не меньше трёх) тестов для Вашей программы.
1. В каждой задаче есть пример. Проверьте, правильно ли работает Ваша программа на этом примере. Если пример не пройден то, нужно исправить ошибки в программе или алгоритме[1]. И вернуться к пункту 1. Только после того, как программа пройдет пример, можно идти дальше.
2. Проверьте программу на тестах из пункта 0. Если программа прошла не все тесты, исправьте программу или алгоритм и вернитесь к пункту 1. Если удалось пройти все тесты, то переходите к пункту 3.
3. Теперь нужно открыть тесты в конце книги. Проверять программу тестами нужно обязательно подряд, начиная с первого. Проверять нужно до тех пор, пока программа проходит тесты. Но как только программа тест не прошла, необходимо вернуться к пункту 1. Если программа прошла все тесты, то эту задачу Вы сделали полностью и можно переходить к следующей.
Задачи
5.Вежливое приветствие с восклицательным знакомВ предыдущей задаче (N4) необходимо, чтобы в конце приветствия программа ставила восклицательный знак. Написать программу.
ПРИМЕР 1.
Имя: Слава
Здравствуй, Слава!
6.СуммаНаписать программу, которая запрашивает два целых числа и печатает их сумму.
ПРИМЕР 2.
Первое число: 15
Второе число: 12
Ответ: 27
7. Сумма чиселНаписать программу, которая запрашивает два целых числа и печатает их сумму. Ответ должен быть развёрнутым.
ПРИМЕР 3.
Первое число: 15
Второе число: 12
15+12=27
8. Длина строкиНаписать программу, подсчитывающую количество символов в заданной строке. Ответ должен быть развернутым.
ПРИМЕР 4.
Строка: Мама мыла раму
В строке: Мама мыла раму символов: 14
9.ИнициалыНаписать программу, которая запрашивает фамилию, имя и отчество, а выводит фамилию и инициалы.
ПРИМЕР 5.
Фамилия: Пупышев
Имя: Вячеслав
Отчество: Викторович
Пупышев В.В.
10.Максимум из двухНаписать программу, которая запрашивает два числа и сообщает, которое из них не больше другого. Эта задача должна быть решена без использования ветвления.
ПРИМЕР 6.
Первое число:15
Второе число:6
Число 6 не больше числа 15.
ДЛЯ РЕШЕНИЯ СЛЕДУЮЩИХ ЗАДАЧ НЕОБХОДИМО ЗНАТЬ, КАК ПРОГРАММИРОВАТЬ ВЕТВЛЕНИЯ АЛГОРИТМА.
11. ЧастноеНаписать программу, которая запрашивает два целых числа и выводит их частное.
ПРИМЕР 7.
Первое число: 6
Второе число: 2
6 : 2 = 3
12. Частное любых чиселИзвестно, что на 0 делить нельзя. В задаче N11 при вводе 2 и 0 возникает аварийная ситуация. Избавьтесь от нее.
ПРИМЕР 8.
Первое число: 2
Второе число: 0
На ноль делить НЕЛЬЗЯ !!!
13. ФамильярностьНаписать программу, которая читает строку и, если это Ваше имя, пишет: "Привет ", а если нет, пишет: "Здравствуйте! ".
Заметим, у каждого автора программы своё имя.
ПРИМЕР 9 (для автора):
Имя: Слава
Привет!
14. Чётность числаНаписать программу, которая определяет, чётное[2] ли число.
ПРИМЕР 10.
Число: 10
Чётное
15. ФИОНаписать программу, которая читает строку и определяет, что это, Ваше имя, фамилия или отчество. Если ни то, ни другое и не третье, то пишет: "НЕ ЗНАЮ". Заметим, у каждого автора программы свои имя, фамилия и отчество.
ПРИМЕР 11 (для автора задачника):
Строка: Викторович
Викторович - Ваше отчество.
16. Название оценкиСделать программу, которая читает число от 1 до 5 и печатает название оценки.
ПРИМЕР 12.
Оценка: 1
Очень плохо.
17. Оценка ли?Решить предыдущую задачу (N16), но можно вводить любое целое число. Если число не является оценкой, печатать: Не оценка.
ПРИМЕР 13:
Оценка: -3
Не оценка.
18. Счастливое четырёхзначноеЧетырёхзначное число называется счастливым, если сумма первых двух его цифр равна сумме двух последних. Ваша программа должна читать число четырёхзначное и определять счастливое ли оно.
ПРИМЕР 14:
Число: 9889
Счастливое.
19. Сортировка четырёхНаписать программу, которая запрашивает четыре числа и выводит их в порядке возрастания.
ПРИМЕР :
Введите четыре числа:
3 8 19 11
3 8 11 19
ДЛЯ СЛЕДУЮЩИХ ЗАДАЧ ПОНАДОБИТСЯ ЗНАТЬ , КАК ЗАПИСЫВАТЬ АЛГОРИТМЫ С ПОВТОРЕНИЯМИ.20. Числа от 10 до 100Написать программу, печатающую все целые числа от 10 до 100 включительно.
21. Чётные от 2 до 100Написать программу, печатающую все целые числа от 2 до 100 включительно.
22. От N до 0, кратные 3Написать программу, печатающую все целые числа, большие N и меньшие 0. Эти числа должны делиться на 3.Число N запрашивает программа.
ПРИМЕР.
N= -9
-6 -3
23. 10 целых ARНаписать программу, которая печатает 10 разных целых чисел, не меньших А и делящихся на R нацело. Целые A и R запрашивает программа.
ПРИМЕР :
- ЯЗЫК ПРОГРАММИРОВАНИЯ С# 2005 И ПЛАТФОРМА .NET 2.0. 3-е издание - Эндрю Троелсен - Программирование
- Язык программирования Euphoria. Справочное руководство - W Cat - Программирование
- Выразительный JavaScript - Марейн Хавербеке - Программирование
- Программирование игр и головоломок - Жак Арсак - Программирование
- C++. Сборник рецептов - Д. Стефенс - Программирование
- Программирование в Delphi. Трюки и эффекты - Александр Чиртик - Программирование
- 19 смертных грехов, угрожающих безопасности программ - Дэвид Лебланк - Программирование
- Создание игр для мобильных телефонов - Майкл Моррисон - Программирование
- Технология XSLT - Алексей Валиков - Программирование
- Питон - модули, пакеты, классы, экземпляры. - Олег Бройтман - Программирование