Чтение онлайн

на главную - закладки

Жанры

Основы программирования с Java
Шрифт:

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

Какая необходима дополнительная информация?

Как уже упоминалось, мы используем различные вес для различных типов оценок, так что этот набор весов должен быть указан.

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

После того как мы получили понимание задачи, мы можем приступить к решению задачи, определив алгоритм.

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

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

Так что примем это в качестве первого шага.

Далее мы должны получить баллы за экзамены, лабораторные и домашние задания – это второй шаг.

После того как мы получили все входные данные, мы можем начать вычисления окончательной оценки – третий шаг.

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

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

После вычисления окончательной оценки, она выводится пользователю для проверки – четвертый шаг.

Пример

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

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

Давайте посмотрим на начальный проект программы, которая уже была написана для вас (CourseGrade,.

Программа начинается, следуя такому же формату, который мы видели в нашей первой программе Java.

В этом случае, название программы (в Java это называется класс) является CourseGrade.

Далее идет выражение, которое определяет главную точку входа для программы.

Это выражение точно такое же, как то, которое мы использовали для HelloWorld.

Это похоже на написание формального письма, которое начинается с фирменного бланка.

Первая часть программы здесь является определением или объявлением переменных.

И я вернусь к этой теме позже.

То, что вы здесь найдете, достаточно хорошо соответствует спецификациям входных и выходных данных и другой информации, которую мы придумали на этапе анализа задачи.

Порядок определения здесь не имеет значения.

Так как мы решили, что веса должны быть предопределены, мы также определяем эти имена в первую очередь.

Имена examScore, labScore и hwScore соответствуют входным данным, в то время как finalgrade представляет желаемый результат.

И обратите внимание, что эта часть программы предусматривает некоторые пояснения, что каждое из этих имен означает.

Я должен отметить, что существует также краткое описание цели программы в самом начале.

Это комментарии, которые следуют определенному формату.

Я вернусь к комментариям программ позже.

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

Вы должны также заметить, что различные участки кода идут с отступом. Это поможет улучшить читаемость программы.

И обратите внимание, что блок операторов в шаге «Ask student to input scores for exam, lab and homework» будет предлагать пользователю ввести оценки экзамена, лабораторной и домашних заданий с помощью объявления IO – IO.output и IO.inputDouble.

И существует еще одно объявление IO.outputln на шаге «Output the final grade».

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

Следующим шагом после реализации решения, это придумать план тестирования для этой реализации.

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

Вопросы

Задача

Как уже говорилось, важно придумать план тестирования, чтобы проверить, работает ли программа как ожидалось. В примере CourseGrade, вы можете протестировать программу на разных входных значениях для examScore, labScore и hwScore.

Учитывая только examScore, попробуйте придумать план тестирования из 5 осмысленно различных тестов, при условии, что диапазон фактических баллов составляет от 0 до 100.

Ответ:

1. Минимальное значение диапазона 0.

2. Максимальное значение диапазона 100.

3. За минимальной границей -1.

4. За максимальной границей 100.

5. В диапазоне 50.

Такой метод тестирования называется тестированием границ.

Идентификаторы

Как вы видели в предыдущих примерах, такие имена, как HelloWorld и CourseGrade были использованы в качестве имен для классов (или программ), а имена examWeight, examScore, labScroe и т.д. были определены в программе CourseGrade.

Эти имена называются идентификаторами.

Поделиться:
Популярные книги

Заход. Солнцев. Книга XII

Скабер Артемий
12. Голос Бога
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Заход. Солнцев. Книга XII

Страж Кодекса. Книга III

Романов Илья Николаевич
3. КО: Страж Кодекса
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Страж Кодекса. Книга III

Неправильный лекарь. Том 1

Измайлов Сергей
1. Неправильный лекарь
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Неправильный лекарь. Том 1

Альбион сгорит!

Зот Бакалавр
10. Герой Империи
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Альбион сгорит!

Наша навсегда

Зайцева Мария
2. Наша
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Наша навсегда

Кодекс Охотника. Книга XIX

Винокуров Юрий
19. Кодекс Охотника
Фантастика:
фэнтези
5.00
рейтинг книги
Кодекс Охотника. Книга XIX

Имя нам Легион. Том 1

Дорничев Дмитрий
1. Меж двух миров
Фантастика:
боевая фантастика
рпг
аниме
5.00
рейтинг книги
Имя нам Легион. Том 1

На границе империй. Том 10. Часть 2

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
5.00
рейтинг книги
На границе империй. Том 10. Часть 2

Кай из рода красных драконов 2

Бэд Кристиан
2. Красная кость
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Кай из рода красных драконов 2

Здравствуй, 1985-й

Иванов Дмитрий
2. Девяностые
Фантастика:
альтернативная история
5.25
рейтинг книги
Здравствуй, 1985-й

Лейтенант космического флота

Борчанинов Геннадий
1. Звезды на погонах
Фантастика:
боевая фантастика
космическая фантастика
космоопера
рпг
фэнтези
фантастика: прочее
5.00
рейтинг книги
Лейтенант космического флота

Патриот. Смута

Колдаев Евгений Андреевич
1. Патриот. Смута
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Патриот. Смута

Последний Паладин. Том 10

Саваровский Роман
10. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Последний Паладин. Том 10

Сильнейший Столп Империи. Книга 2

Ермоленков Алексей
2. Сильнейший Столп Империи
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Сильнейший Столп Империи. Книга 2