Инфоурок Информатика Другие методич. материалыЗадачи по программированию на Python (урок 5)

Задачи по программированию на Python (урок 5)

Скачать материал

Условный оператор if: продолжение

Урок 1. Вложенные условия

Задача 1. Координаты

Мы тестируем 2D-игру, где нужно управлять подводной лодкой. У лодки есть координаты в пространстве — X (икс) и Y (игрек). X — это движение вперёд-назад, а Y —  вверх-вниз. Соответственно, во время движения лодки меняются и её координаты. Во время тестирования игры нам необходимо сравнивать эти координаты и выводить на экран нужное сообщение, в том числе если они равны.

Вводятся две координаты — X и Y. С помощью трёх последовательных проверок сравните обе координаты и выведите соответствующее сообщение.

Пример:

Введите икс: 5

Введите игрек: 6

X меньше Y

Пример 2:

Введите икс: 3

Введите игрек: 3

X равен Y

Задача 2. Скидки!

Напишите программу для примера, разобранного в уроке. Пользователь покупает курс стоимостью 75 000 рублей. Если денег на счету достаточно, то нужно:

1.     Списать со счёта деньги.

2.     Проверить баланс счёта. Если там меньше 5000 рублей, то зачислить на счёт 1000 рублей и вывести сообщение: «Сделана скидка».

3.     Вывести сообщение: «Курс успешно приобретён».

А иначе вывести: «Не хватает денег на счету». Также в конце вывести остаток счёта и сообщение: «Хорошего дня!»

Пример:

Сколько денег на счету? 78500

Курс успешно приобретён

Сделана скидка

Остаток на счету: 4500

Хорошего дня!

Задача 3

Мама дала Маше денег и отправила её в магазин за сыром. А ещё сказала: «Если останутся деньги, то можешь купить себе мороженое. Если денег на сыр не хватит, то денег маловато — а значит, и мороженого не будет».

Сделайте программу, которая получает на вход количество денег. Сыр стоит 60 рублей, мороженое — 20 рублей. Если денег на сыр хватает (больше либо равно), то:

1.     Выводите сообщение: «На сыр денег хватило», — и вычитайте стоимость сыра из кошелька.

2.     Если оставшихся денег хватает на мороженое, то выводите: «И на мороженое тоже!». Иначе выводите: «Денег маловато».

Урок 2. Цепочки условий if-elif-else

Задача 1. Координаты

Вернёмся к задаче про подводную лодку и её координаты. Теперь мы знаем, что вместо трёх отдельных проверок можно использовать оператор elif — «»иначе-если». То есть если одна координата больше другой, то будет одно сообщение, иначе если одна меньше другой, то…

Напишите программу, которая сравнивает координаты X (икс) и Y (игрек) и выводит соответствующий результат. Для этого используйте оператор elif.

 Задача 2. Прогрессивный налог

В некоторых странах действует так называемая прогрессивная шкала налогообложения: чем больше ты зарабатываешь, тем больший налог платишь. Нужно написать программу, которая будет рассчитывать сумму налога исходя из прибыли. Если прибыль до 10 000 — ставка налога равна 13%, начиная с 10 000 и до 50 000 — 20%. А начиная с 50 000 — 30%. А также нужно добавить «проверку на дурака»: если ввели число меньше нуля, то вывести сообщение: «Ошибка: доход не может быть отрицательным».

Задача 3. Фальшивомонетчики

Пете дали три монетки и сказали, что если он сможет на весах без гирь определить, какая из них фальшивая (более лёгкая), то сможет забрать их все. А Петя в одной из книжек прочитал, что для этого достаточно одного взвешивания: если две монеты весят одинаково, то фальшивая третья, а иначе фальшивая та, которая легче на весах. Напишите программу, которая принимает на вход вес трёх монет (две одинаковые, третья меньше) и определяет, какая из них легче.

Урок 3. Логические операторы and и or

Задача 1. Покупка велосипеда

Напишите программу, которую мы разбирали в рамках теории. Нашему ребёнку нужен новый хороший велосипед. Правда, никто из нас в них не разбирается, всё что нам нужно — чтобы велосипед не был устаревшим и чтоб скоростей на нём было побольше, а сколько он стоит — пока неважно. Чтобы не искать велосипед на сайте вручную, мы хотим написать программу, которая будет проверять каждый велосипед на нужный нам год выпуска и на количество скоростей.

Используя один из логических операторов (and, or), напишите программу из урока, которая запрашивает год выпуска велосипеда и количество скоростей на нём и выводит на экран сообщение о том, подходит этот велик или нет. Год выпуска — не старше 2018-го, количество скоростей — не менее 24.

Задача 2. Как поступить?

Илья хочет в лучший вуз страны, а для этого нужно не только хорошо сдать экзамены (балл должен быть больше 280), но и иметь золотую медаль.

Напишите программу, которая запрашивает у пользователя два числа: результат экзаменов и наличие золотой медали (0 — нет медали, 1 — медаль есть), а затем проверяет, поступил ли Илья в вуз. Выведите соответствующее сообщение.

Пример:

Сколько баллов набрал? 290

Есть медаль? 1

Поздравляем! Ты поступил!

Пример 2:

Сколько баллов набрал? 269

Есть медаль? 1

К сожалению, ты не прошёл в наш университет.

Задача 3. Бактерии живут комфортно

Биолог Арсений изучает микробы и их поведение при разных температурных нагрузках. Он помещает их в специальную среду, где температура скачет в промежутке от 0 до 100 градусов. Если же температура в среде выходит за рамки промежутка, то выводится предупреждение.

Напишите программу, которая запрашивает у пользователя температуру, и, если она меньше нуля или больше 100, то выводится сообщение об опасности.

Домашняя работа

Задача 1. Калькулятор опыта

Что нужно сделать

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

Напишите программу, которая определяет уровень персонажа в компьютерной игре. Пользователь вводит число «очков опыта», а программа вычисляет уровень. Новый уровень даётся при достижении 1000, 2500 и 5000 «очков опыта». Начальный уровень равен единице.

Пример:

Введите количество опыта: 6000

Ваш уровень: 4

Пример 2:

Введите количество опыта: 2000

Ваш уровень: 2

Советы и рекомендации

По возможности уделите внимание сокращению кода и избегайте проверять условия, которые уже были проверены. Если вы проверили условие condition, то не следует проверять not condition после.

Что оценивается

  • результат вывода корректен, особое внимание уделено границам диапазонов;
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых и при бинарных операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 2. Максимум из трёх чисел 2

Что нужно сделать

У нас уже было задание на нахождение максимума из трёх чисел с помощью дополнительной переменной. Теперь, когда вы знаете намного больше, вы можете оптимизировать программу, не тратя память компьютера на лишние переменные.

Напишите программу, которая находит максимум из трёх чисел, не используя дополнительные переменные.

Советы и рекомендации

По возможности уделите внимание сокращению кода и избегайте проверять условия, которые уже были проверены. Если вы проверили условие condition, то не следует проверять not condition после.

Что оценивается

  • результат вывода корректен;
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых, при бинарных и логических операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 3. Функция

Что нужно сделать

Учитель математики придумывает каждому своему ученику отдельные функции, которые нужно отобразить на графике и посчитать. А ещё этот учитель разбирается в программировании. Поэтому, чтобы не считать вручную все эти функции, он написал программу, которая делает всю работу за него.

Напишите программу, которая получает от пользователя число X и вычисляет значение функции Y по следующей схеме:

y= {x −12, x>0, 5,  x=0 x²,  x<0 

https://go.skillbox.ru/media/files/share/%D0%91%D0%B5%D0%B7_%D0%BD%D0%B0%D0%B7%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F_6MH60bB.png

Напомним, как это работает: 

для X > 0, Y = X − 12

для X = 0,  Y = 5

для X < 0, Y = X²

Пример:

Введите икс: 0

Игрек равен 5

Пример 2:

Введите икс: −6

Игрек равен 36

Советы и рекомендации

По возможности уделите внимание сокращению кода и избегайте проверять условия, которые уже были проверены. Если вы проверили условие condition, то не следует проверять not condition после.

Что оценивается

  • результат вывода корректен;
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых, при бинарных и логических операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 4. Поступление

Что нужно сделать

В университете на факультет кибернетики очень серьёзный конкурс — поступают только сильнейшие, первые десять человек из списка. Потом среди поступивших определяется, кто будет получать стипендию. Для стипендии общий балл при поступлении должен быть не менее 290.

Напишите программу, которая получает на вход место студента в списке и его балл, а затем выводит соответствующие сообщения о поступлении и получении стипендии.

Пример 1:

Введите место в списке поступающих: 3

Введите количество баллов за экзамены: 295

Поздравляем, вы поступили!

Бонусом вам будет начисляться стипендия.

Пример 2:

Введите место в списке поступающих: 3

Введите количество баллов за экзамены: 270

Поздравляем, вы поступили!

Но вам не хватило баллов для стипендии.

Пример 3:

Введите место в списке поступающих: 11

К сожалению, вы не поступили.

Что оценивается

  • результат вывода корректен и соответствует примеру;
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых, при бинарных и логических операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 5. Опять двойка

Что нужно сделать

Папа-программист уже настолько обленился, что вместо того, чтобы самому спросить у сына, какую оценку тот получил в школе, он написал для этого вот такую программу:

rating = int(input('Что получил по математике? '))

if rating == 2:

 print('Плохо. Марш учиться!')

if rating == 3:

 print('Плохо. Марш учиться!')

if rating == 4:

 print('Молодец! Можешь отдохнуть.')

if rating == 5:

 print('Молодец! Можешь отдохнуть.')

Сын после того, как «сообщил» свою оценку, посмотрел на код программы и понял, что её можно улучшить, и даже рассказал папе, как это сделать, за что получил безграничное уважение отца.

Скопируйте программу в редактор и оптимизируйте:

1.     При плохой оценке (2 или 3) выводится сообщение: «Плохо. Марш учиться!»

2.     При хорошей оценке (4 или 5) выводится сообщение: «Молодец! Можешь отдохнуть».

3.     В программе не должно быть повторяющихся строк.

Что оценивается

В программе отсутствуют повторяющиеся строки. 

 

Задача 6. Защита от дурака

Что нужно сделать

Вы участвуете в разработке приложения для математиков, где можно будет делать всё, начиная от простейших вычислений и заканчивая построением сложных графиков. В этом приложении реализована установка диапазона чисел, и вам необходимо написать этакую «защиту от дурака».

Напишите программу, которая получает на вход число и проверяет, двузначное оно или нет. Выведите соответствующее сообщение. Числа −42 и −99 тоже считаются двузначными. Сделайте это, используя не более одного оператора if-elsе. Не используйте elif.

Что оценивается

  • результат вычислений корректен, поддерживаются отрицательные числа;
  • задача решена без использования строк и операций с ними (конечно, это не относится к приведению целых чисел);
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых, при бинарных и логических операциях.
Задача 7. Костя хочет выигрывать

Что нужно сделать

После игры в кубики Костя захотел немного изучить работу игровых автоматов, а заодно математику и теорию вероятностей. Но ему нужно с чего-то начать: написать программу, которая поможет выявить закономерности в комбинациях чисел на автомате.

Даны три целых числа. Определите, сколько среди них совпадающих. Программа должна вывести одно из чисел: 3 (если все совпадают), 2 (если два совпадают) или 0 (если все числа различны).

Советы и рекомендации

По возможности уделите внимание сокращению кода и избегайте проверки условий, которые уже были проверены. Если вы проверили условие condition, то не следует проверять not condition после.

Что оценивается

  • input содержит корректное приглашение для ввода;
  • в выводе может быть указано только число, но хорошим стилем считается описание вывода;
  • правильное употребление пробелов после запятых, при бинарных и логических операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 8. Новоселье

Что нужно сделать

Семья из трёх человек устала тесниться в однушке и наконец решила переехать. При обсуждении, какую купить квартиру исходя из своих предпочтений и семейного бюджета, они остановились на двух вариантах: 

1.     Взять квартиру попросторнее (не менее 100 м2), но стоимостью не более 10 млн. 

2.     Немного расширить круг поиска, то есть взять квартиру поменьше (от 80 м2), но и стоимостью не более 7 млн. 

Напишите программу, которая получает на вход стоимость квартиры и её площадь и выводит сообщение о том, подходит она или нет.

Что оценивается

  • результат вычислений корректен;
  • input содержит корректное приглашение для ввода;
  • в выводе программы указано, подходит ли данный параметр или нет;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых и при бинарных операциях.
Задача 9. Прогрессивный налог 2

Что нужно сделать

Вы уже писали программу, вычисляющую сумму налога по прогрессивной шкале в зависимости от полученного заработка: 13% на доход до 10 000, 20% на доход от 10 000 до 50 000, 30% на доход выше 50 000.

Однако во многих странах, использующих такую шкалу, эта сумма вычисляется более сложным способом: налоговая ставка 30% на доход выше 50 000 означает, что 30% уплачивается не со всей суммы, а лишь с той её части, которая превосходит 50 000. Аналогично ставка 20% на доход от 10 000 до 50 000 обязывает уплатить 20% лишь с той части суммы, которая превосходит 10 000, но не превосходит 50 000.

Так, например, с дохода 100 000 придётся заплатить такой налог:

30% × (100 000 − 50 000) + 20% × (50 000 − 10 000) + 13% × 10 000 = 15 000 + 8 000 + 1 300 = 24 300

А с дохода 30 000 — такой:  20% × (30 000 − 10 000) + 13% × 10 000 = 4 000 + 1 300 = 5 300

Напишите программу, которая спрашивает у пользователя его доход и высчитывает сумму налога для него по вышеописанным правилам.

Что оценивается

  • input содержит корректное приглашение для ввода;
  • результат вычислений корректен;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых и при бинарных операциях;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня.
Задача 10. Почта

Что нужно сделать

Почтовое отделение открывается в 08:00 и закрывается в 22:00. С 14:00 до 15:00 все сотрудники уходят на обед, а в 10:00 и 18:00 приезжают машины с посылками, и тогда все сотрудники на два часа заняты их разгрузкой. Во время обеда, разумеется, посылки никто не выдаёт, как и в моменты, когда разгружаются машины.

Напишите программу, которая получает на вход время в часах — число от 0 до 23 — и пишет, можно ли в этот час получить посылку. Используйте только один условный оператор if-else, без elif и прочего. Решите задание двумя способами: 

1.     При выполнении условия выводится сообщение: «Можно получить посылку».

2.     При выполнении условия выводится сообщение: «Посылку получить нельзя».

Советы и рекомендации

Обратите внимание на количество условий и постарайтесь сократить их. Не используйте перечисление конкретных часов вида a == 1 and a == 2...

Что оценивается

  • результат вычислений корректен;
  • input содержит корректное приглашение для ввода;
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых и при бинарных операциях.
Советы и рекомендации

Обратите внимание:

  • Стиль оформления программ на языке Python PEP8.
    Оригинальный документ 
    PEP8 (на английском).
  • Приоритет арифметических операций PEP8 (вводим and, or).
    Список встроенных функций (официальная документация).
Что оценивается (общее)
  • правильно оформленный input, без пустого приветствия для ввода (видео 2.3);
  • переменные имеют значащие имена, не только a, b, c, d (видео 2.3);
  • правильное употребление пробелов после запятых и при бинарных операциях;
  • отсутствие пробелов после имён функций и перед скобками: “print ()”,“input ()” — неверно, “print()” — верно;
  • правильно оформлены блоки if-elif-else, отступы одинаковы во всех блоках одного уровня;
  • переменные имеют корректные названия и в качестве имён не используются имена встроенных функций (список встроенных функций — официальная документация).

 

Просмотрено: 0%
Просмотрено: 0%
Скачать материал
Скачать материал "Задачи по программированию на Python (урок 5)"

Методические разработки к Вашему уроку:

Получите новую специальность за 2 месяца

Инженер по охране окружающей среды

Получите профессию

Интернет-маркетолог

за 6 месяцев

Пройти курс

Рабочие листы
к вашим урокам

Скачать

Скачать материал

Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

6 655 078 материалов в базе

Материал подходит для УМК

Скачать материал

Другие материалы

Вам будут интересны эти курсы:

Оставьте свой комментарий

Авторизуйтесь, чтобы задавать вопросы.

  • Скачать материал
    • 23.10.2022 5945
    • DOCX 42.7 кбайт
    • 29 скачиваний
    • Рейтинг: 1 из 5
    • Оцените материал:
  • Настоящий материал опубликован пользователем Данилов Максим Леонидович. Инфоурок является информационным посредником и предоставляет пользователям возможность размещать на сайте методические материалы. Всю ответственность за опубликованные материалы, содержащиеся в них сведения, а также за соблюдение авторских прав несут пользователи, загрузившие материал на сайт

    Если Вы считаете, что материал нарушает авторские права либо по каким-то другим причинам должен быть удален с сайта, Вы можете оставить жалобу на материал.

    Удалить материал
  • Автор материала

    Данилов Максим Леонидович
    Данилов Максим Леонидович
    • На сайте: 8 лет и 2 месяца
    • Подписчики: 0
    • Всего просмотров: 161338
    • Всего материалов: 32

Ваша скидка на курсы

40%
Скидка для нового слушателя. Войдите на сайт, чтобы применить скидку к любому курсу
Курсы со скидкой

Курс профессиональной переподготовки

Бухгалтер

Бухгалтер

500/1000 ч.

Подать заявку О курсе
  • Сейчас обучается 20 человек из 14 регионов

Курс профессиональной переподготовки

Разработка и сопровождение требований и технических заданий на разработку и модернизацию систем и подсистем малого и среднего масштаба и сложности

Системный аналитик

600 ч.

9840 руб. 5900 руб.
Подать заявку О курсе
  • Сейчас обучается 64 человека из 34 регионов
  • Этот курс уже прошли 83 человека

Курс повышения квалификации

Особенности подготовки к сдаче ОГЭ по информатике и ИКТ в условиях реализации ФГОС ООО

36 ч. — 180 ч.

от 1700 руб. от 850 руб.
Подать заявку О курсе
  • Сейчас обучается 101 человек из 39 регионов
  • Этот курс уже прошли 803 человека

Курс повышения квалификации

Методика преподавания информатики в начальных классах

72 ч. — 180 ч.

от 2200 руб. от 1100 руб.
Подать заявку О курсе
  • Этот курс уже прошли 67 человек

Мини-курс

Мастерство влияния и успешных переговоров

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 32 человека из 18 регионов

Мини-курс

Социальные и правовые аспекты эпохи Просвещения: влияние на образование сегодня

4 ч.

780 руб. 390 руб.
Подать заявку О курсе

Мини-курс

Эффективная самопрезентация

4 ч.

780 руб. 390 руб.
Подать заявку О курсе
  • Сейчас обучается 52 человека из 31 региона
  • Этот курс уже прошли 32 человека