Кафедра ИТКафедра ИТ
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
GitHub
Обучение
  • О кафедре
  • Направления подготовки
  • Друзья и партнеры
  • Структура кафедры
  • Обращение к студентам
  • Официальный сайт «ВШП»
  • Домашнее задание №2 по дисциплине ОП.04 - Основы алгоритмизации и программирования

Примечание

ЭТО АРХИВНАЯ ВЕРСИЯ КУРСА!

Материалы предназначаются для пересдающих дисциплину "ОП.04 - Основы алгоритмизации и программирования" в соответствии с учебными планами СПО годов набора ДО 2023-го.

Материалы были перенесены со старого сайта с минимальной доработкой, поэтому не все возможности курса могут работать как ожидается, где-то может слететь форматирование.

Домашние задания в рамках курса проверяться не будут!

Домашнее задание №2 по дисциплине ОП.04 - Основы алгоритмизации и программирования

Дана структура веб-приложения, состоящего из следующих частей:

  1. index.html — веб-страница
  2. script.js — файл скриптов

Содержимое каждого файла:

index.html

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>ОП.04 - ДЗ №2</title>
</head>
<body>
  <h1>ОП.04 - ДЗ №2</h1>

  <p>
    Это файл домашнего задания №2, которое выполнил студент/студентка <strong id="student">ФИО</strong> в рамках изучения дисциплины ОП.04 - Основы алгоритмизации и программирования.
  </p>

  <script src="script.js"></script>
</body>
</html>

script.js

const student = "Иванов Иван Иванович"; // Очевидно, что здесь ваши личные Фамилия, Имя и Отчество

document.getElementById("student").innerHTML = student;

// Отсюда и ниже идет ваш код решения домашнего задания
// ...

После запуска файла index.html через Live Server в любом браузере (предпочтительно использовать Google Chrome актуальной версии), должна открыться страница на которую автоматически интерполируется значение константы student, содержащей Фамилию, Имя и Отчество студента.

Задание

Задача о накоплении за учебный год

Копилка | block
Копилка | block

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

Реализуйте программу на языке JavaScript, которая поможет Ивану рассчитать за какой промежуток времени он сможет накопить достаточную сумму для покупки приставки.

Стоит учесть что прогуливать занятия он не намерен. В учебном году два семестра продолжительностью 17 недель и 24 недели соответственно (между ними 2 недели каникул), при этом в первом семестре занятия проходят 6 дней в неделю, из которых 2 дня больше трех пар, а во втором семестре занятия проходят 5 дней в неделю, но из них 3 дня проходит больше трех пар. Последняя неделя каждого семестра приходится на сессию, во время которой Иван приезжает только для сдачи экзаменов — в первом семестре два экзамена, а во втором семестре три экзамена, при этом экзамен не может длиться больше двух пар подряд.

Расписание занятий Ивана по дням недели по семестрам:

  • 1 семестр, 17 недель
    Кол-во пар:

    • Обычные дни
      • Пн - 4
      • Вт - 1
      • Ср - 2
      • Чт - 5
      • Пт - 2
      • Сб - 2
      • Вс - 0
    • Сессия
      • Пн - 0
      • Вт - 2
      • Ср - 0
      • Чт - 2
      • Пт - 0
      • Сб - 0
      • Вс - 0
  • Каникулы, 2 недели
    Кол-во пар:

    • занятий нет - 0
  • 2 семестр, 24 недели
    Кол-во пар:

    • Обычные дни
      • Пн - 1
      • Вт - 4
      • Ср - 4
      • Чт - 2
      • Пт - 5
      • Сб - 0
      • Вс - 0
    • Сессия
      • Пн - 2
      • Вт - 0
      • Ср - 2
      • Чт - 0
      • Пт - 2
      • Сб - 0
      • Вс - 0

Данные могут быть введены в программу любым способом на выбор студента, например — содержаться в виде переменных, строк либо массивов в теле программы, или вводиться пользователем любым из доступных способов в том числе с использованием функции prompt или же через текстовое поле в теле страницы.

Вывод данных также возможен любым способом на выбор студента, например — в консоль посредством console.log, в тело страницы или при помощи функции alert.

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

  • Стоимость приставки, например 23 500 руб.
  • Стоимость проезда, например 120 руб.
  • Сумма денег, которую дает мама на проезд, например 150 руб.
  • Сумма денег, которую дает мама на обеды, например 250 руб.

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

  • Если получится, то вывести на экран сообщение на какой день с начала учебного года это произойдет (считая выходные)? При этом, указывать номера семестра и недели не обязательно!
  • Если же не получится, вывести на экран сообщение какую сумму получится таким образом накопить на последний день учебного года.

Данные для тестирования

  • Набор параметров:

    • Стоимость приставки: 23 500 руб.
    • Стоимость проезда: 120 руб.
    • Сумма денег, которую дает мама на проезд: 150 руб.
    • Сумма денег, которую дает мама на обеды: 250 руб.
    • Результат: «На приставку накопить удалось на 176 день. Это 7-ая неделя 2-го семестра»
  • Набор параметров:

    • Стоимость приставки: 50 000 руб.
    • Стоимость проезда: 100 руб.
    • Сумма денег, которую дает мама на проезд: 100 руб.
    • Сумма денег, которую дает мама на обеды: 300 руб.
    • Результат: «На приставку накопить не удалось, но за все время было накоплено 34500 руб.»
  • Набор параметров:

    • Стоимость приставки: 20 000 руб.
    • Стоимость проезда: 50 руб.
    • Сумма денег, которую дает мама на проезд: 100 руб.
    • Сумма денег, которую дает мама на обеды: 350 руб.
    • Результат: «На приставку накопить удалось на 82 день. Это 12-ая неделя 1-го семестра»
  • Набор параметров:

    • Стоимость приставки: 5 000 руб.
    • Стоимость проезда: 100 руб.
    • Сумма денег, которую дает мама на проезд: 200 руб.
    • Сумма денег, которую дает мама на обеды: 500 руб.
    • Результат: «На приставку накопить удалось на 13 день. Это 2-ая неделя 1-го семестра»
  • Набор параметров:

    • Стоимость приставки: 500 руб.
    • Стоимость проезда: 10 руб.
    • Сумма денег, которую дает мама на проезд: 10 руб.
    • Сумма денег, которую дает мама на обеды: 500 руб.
    • Результат: «На приставку накопить удалось на 2 день. Это 1-ая неделя 1-го семестра»
  • Набор параметров:

    • Стоимость приставки: 25 000 руб.
    • Стоимость проезда: 1 руб.
    • Сумма денег, которую дает мама на проезд: 1 руб.
    • Сумма денег, которую дает мама на обеды: 0 руб.
    • Результат: «На приставку накопить не удалось, но за все время было накоплено 0 руб.»
  • Набор параметров:

    • Стоимость приставки: 1500 руб.
    • Стоимость проезда: 100 руб.
    • Сумма денег, которую дает мама на проезд: 50 руб.
    • Сумма денег, которую дает мама на обеды: 150 руб.
    • Результат: «Сумма денег, которую дает мама на проезд не может быть меньше суммы проезда» (либо просто запретить ввод для такой ситуации)

Подсказки

  • В решении поставленной задачи вам пригодятся циклы, при этом возможно потребуется использовать вложенные циклы.
  • Попробуйте представить предложенное расписание занятий на учебный год в виде массивов, которые повторяются какое-то количество раз, и в зависимости от того каково значение в текущем элементе массива, вы можете принять решение совершать или нет какое-то действие (используя условия).
  • Приветствуется использование любых способов персонализации и оформления страницы. Если владеете стилями CSS, HTML-формами или анимацией — используйте в полной мере всё чем владеете, единственное ограничение что любые выразительные средства не должны нарушать логики работы программы!

Требования к оформлению

Задание должно быть выполнено локально на домашнем компьютере с использованием любой доступной среды разработки (предпочтительно использовать Visual Studio Code актуальной версии).

[!TIP]
Обращаю внимание, что для установки Visual Studio Code на компьютер вам может понадобиться инструкция: Инструкция по установке VSCode

Перед отправкой задание должно быть протестировано на работоспособность, после чего необходимо загрузить выполненное задание в публичный репозиторий на Github ↗.

Репозиторий должен называться:

homework_2

Ссылку на репозиторий с выполненным заданием необходимо прислать на электронную почту кафедры:

it@vshp.online

В теме письма ОБЯЗАТЕЛЬНО укажите код дисциплины, порядковый номер домашнего задания и свои имя и фамилию, например: «ОП.04 - ДЗ №2 - Иванов Иван», иначе преподаватель не сможет понять кому засчитать выполнение домашнего задания.

[!DANGER]
Какая-либо оценка за выполнение задания ставиться не будет, но при этом задания, не соответствующие в полной мере всем указанным требованиям приниматься к проверке НЕ БУДУТ!

Рекомендуемые источники для подготовки

  1. Современный учебник JavaScript
    https://learn.javascript.ru/ ↗
  2. W3Schools Online Web Tutorials — JavaScript Tutorial
    https://www.w3schools.com/js/default.asp ↗
  3. Web technology for developers — JavaScript
    https://developer.mozilla.org/en-US/docs/Web/JavaScript ↗

[!WARNING]
Для того чтобы можно было в полной мере использовать возможности JavaScript при запуске браузера на локальном компьютере, необходима программа, выполняющая роль веб-сервера. Для Visual Studio Code с этой задачей может справиться расширение Live Server.
live_server_logo
Live Server
Веб-сервер, запускающийся из локальной папки
https://marketplace.visualstudio.com/items?itemName=ritwickdey.LiveServer ↗

Последнее обновление: 31.10.2025, 16:56
Предыдущая
Домашнее задание №1 по дисциплине ОП.04 - Основы алгоритмизации и программирования
Следующая
Домашнее задание №3 по дисциплине ОП.04 - Основы алгоритмизации и программирования
© Кафедра информационных технологий ЧУВО «ВШП», 2025. Версия: 0.20.1
Материалы доступны в соответствии с лицензией: