Современные компьютеры выполняют миллиарды операций в секунду. Однако к счастью, программистам не приходится писать программы из миллиардов строк кода. Чтобы с помощью короткой программы указать на необходимость выполнения большого количества операций используется оператор цикла, суть которого в многократном повторении одного и того же набора инструкций. На рис.
1 работа циклов показана с помощью блок-схем. В варианте (а) если «условие» истинно выполняются «операторы». После этого снова проверяется «условие» и, если оно по прежнему истинно, то снова выполняются операторы и так далее, пока условие не станет ложным.
Вариант (б) подобен варианту (а), отличие только в том, что сначала выполняются «операторы», а только затем делается проверка условия, на основе которой мы решаем, нужно ли повторять их выполнение. Рис. 1. Блок-схемы циклов. В языке Паскаль существует несколько вариантов организации циклов. Рассмотрим один из них – так называемый цикл с параметром или цикл for. Чтобы записать его нам потребуется переменная целого типа, например:
BA Принцип работы программы на примере настройки под FF и Chrome
var i: integer;
Схема его записи выглядит следующим образом:
for i := to do begin end;
Здесь i – так называемая переменная-счетчик (разумеется, ее не обязательно называть именно i, это может быть любая переменная целого типа). Начальное и конечное значение это любые выражения, имеющее значение целого типа.
Когда оператор цикла начинает работу переменная счетчик принимает начальное значение, затем выполняются , после этого счетчик увеличивается на единицу, и снова выполняются операторы. Процесс повторяется, пока счетчик не окажется больше конечного значения. Например, если начальное значение 2, а конечное 3, то будут выполнены 2 раза.
Область между словами begin и end, где располагаются повторяющие в цикле операторы, называется телом цикла. На рис. 2 показана блок-схема работы этого цикла. Рис. 2. Схема работы цикла с параметром (for).
Пример 1: Напечатать слово Hello на экране 100 раз. Один раз слово Hello можно напечатать с помощью процедуры
writeln(‘Hello’);
Чтобы напечатать его 100 раз, надо эту инструкцию поместить внутрь оператора цикла, который выполнится нужное количество раз. А именно:
for n := 1 to 100 do begin writeln(‘Hello’); end;
Переменной счетчику n будет присвоено начальное значение 1. Затем Hello будет напечатано 1-й раз. Счетчик увеличится на 1 и Hello напечатается 2-й раз и т.д. Перечислим в одном месте все правила, касающиеся работы цикла с параметром: 1) Переменная-счетчик должна быть обязательно целого типа (например, integer). 2) Начальное и конечное значения задаются выражениями, значение которых также имеет целый тип. Нельзя, например, записать цикл
for x := 0 to 2*Pi do …
Но можно, например:
for k := 2*round(n*1000) to trunc(2*pi)+1 do …
3) Если конечное значение меньше начального цикл не выполнится ни разу. 4) После окончания работы переменная-счетчик «портится».
Глядя на блок-схему можно предположить, что после окончания работы цикла она на единицу больше конечного значения. На практике это не так и она может иметь любое значение. Отсюда правило: если переменная используется, как счетчик шагов в цикле не следует обращаться к ней после того, как цикл завершил свою работу. 5) Если в теле цикла содержится всего один оператор, то слова begin и end, ограничивающие тело цикла можно опустить. Такая ситуация у нас была в примере 1. Там можно было написать:
Блок схема. Программа примера
for n := 1 to 100 do writeln(‘Hello’);
6) Важное стилистическое правило: хотя это и не запрещено, не следует в теле цикла использовать какие-либо операторы, меняющие значения переменной-счетчика. В частности нельзя ей ничего присваивать. Нарушение этого правила ведет к увеличению вероятности сделать трудно обнаруживаемую ошибку. Соблюдение – никак не ограничивает ваши возможности.
7) Тело цикла может содержать любые операторы. Следовательно, туда можно поместить другой оператор цикла. Переменные-счетчики в этом случае у циклов должны быть разные. Если их сделать одинаковыми это нарушит предыдущее правило – внутренний цикл изменит значение переменной-счетчика внешнего. 8) Еще одно стилистическое правило: все операторы тела цикла должны быть дополнительно сдвинуты на 2-3 пробела вправо (см. запись программы в примере 1 и последующих примеров ниже по тексту).
Итак, одни и те же действия мы можем выполнять сколько угодно раз, но что полезного это дает? Печатать 100 раз Hello не очень важное приложение. Чтобы сделать что-то полезное, надо чтобы действия на каждом шаге цикла чем-то различались. Первый способ добиться этого состоит в использовании переменной счетчика, которая на каждом шаге принимает различные значения. Пример 2: Напечатать все целые числа в диапазоне от 5 до 25.
for i := 5 to 25 do writeln(i);
Как видно, в данном примере на каждом шаге печатаются разные числа.
Используем эту возможность для чего-то более полезного. Пример 3: Табуляция функций. Под табуляцией функций подразумевается составление таблицы значений функции для некоторого диапазона значений аргумента. Пусть требуется N значений функции f(x) в диапазоне от Xmin до Xmax.
Рассматривая переменную-счетчик как номер аргумента функции, составим выражение, позволяющее по номеру получить значение аргумента: x := Xmin + (Xmax — Xmin)*(i-1)/(N-1). Убедитесь, что действительно первое значение аргумента (при i = 1) составляет x = Xmin, а N-е (i = N) – x = Xmax. Вычисляя на каждом шаге значение аргумента, можем тут же вычислить функцию и составить требуемую таблицу.
for i := 1 to N do begin x := Xmin+(Xmax-Xmin)*(i-1)/(N-1); y := f(x); writeln(x, ‘ ‘, y); end;
Вместо f(x) в приведенной программе следует подставить любое выражение, составленное по правилам языка Паскаль. Следующий раздел:
Источник: www.tvd-home.ru
Схемы программ
В MS Word имеется ряд инструментов, предназначенных для создания блок-схем. Они расположены на панели Рисование. Вызвать эту панель можно одним из нескольких способов:
- нажмите кнопку «Рисование»
на основной панели инструментов;
- выбрать меню Вид → Панели инструментов → Рисование
В нижней части окна появится панель Рисование. Общая методика создания рисунка заключается в подготовке отдельных элементов рисунка и в их последующей сборке. Рисование элементов лучше выполнять на свободном участке страницы, причем мелкие элементы — в увеличенном масштабе. По мере создания, детали рисунка необходимо группировать в блоки (кнопка Действия), а перед сборкой регулировать размеры блоков протяжкой за маркеры области рисунка. Любые операции по изменению имеющихся объектов (размеров, заливки и т.д.) выполняются с предварительным выделением объекта. Если редактируемый элемент сгруппирован с другими элементами рисунка, то этот блок следует разгруппировать. Выделение нескольких несгруппированных деталей выполняется щелчками мыши при нажатой клавише Shift или протяжкой мыши с помощью инструмента «Выбор объекта». Добавление фигур в схему
- Нажмите кнопку Автофигуры на панели инструментов Рисование, выберите команду Блок-схема, а затем щелкните нужную фигуру.
- Щелкните в том месте, где требуется нарисовать фигуру блок-схемы.
- Если требуется добавить фигуры в блок-схему, повторите шаги 1 и 2, а затем расположите фигуры нужным образом.
Если требуется удалить фигуру, выделите ее и нажмите клавишу DEL. Добавление соединительных линий между фигурами
- Нажмите кнопку Автофигуры на панели инструментов Рисование, выберите команду Соединительные линии, а затем щелкните нужную соединительную линию.
- Наведите указатель мыши на место закрепления соединительной линии.
При перемещении указателя мыши по фигуре места соединения отображаются в виде синих кружков.
- Щелкните первое нужное место соединения, наведите указатель мыши на другую фигуру, а затем щелкните второе место соединения.
Заблокированные соединительные линии будут соединять фигуры даже при перемещении фигур. Спрямление соединительных линий между фигурами
- Выделите одну из соединенных фигур.
- На панели инструментов Рисование нажмите кнопку Действия, а затем выберите команду Спрямить соединения.
Если к объекту прикреплено несколько соединительных линий, а спрямить требуется только некоторые из них, выделите нужные соединительные линии, а затем выберите команду Спрямить соединения. Перемещение соединительных линий Выполните одно или оба следующих действия.
- Чтобы переместить соединительную линию, перетащите один из ее концов к другому месту соединения или фигуре.
Чтобы отменить автоматическую блокировку конца соединительной линии, удерживайте нажатой клавишу ALT при его перетаскивании. При этом конец соединительной линии можно поместить в любое место, но он не будет присоединен.
- Чтобы отсоединить всю линию, перетащите ее середину.
Если соединительная линия имеет желтый маркер изменения формы, при перетаскивании этого маркера изменяется форма соединительной линии, но линия не отсоединяется. Перемещение фигуры Выделите фигуру и, когда указатель мыши примет вид крестообразной стрелки, перетащите ее на новое место. Заблокированные на фигуре соединительные линии перемещаются вместе с фигурой. Чтобы открепить соединительную линию, выделите ее и точку соединения, а затем перетащите их от фигуры. Добавление текста в фигуры Щелкните нужную фигуру правой кнопкой мыши, выберите команду Добавить текст и введите текст. Добавление текста к линиям Добавление текста к линиям или соединительным линиям невозможно; для размещения текста рядом с этими объектами используйте надписи. Для этого:
- Нажмите кнопку Надпись
на панели инструментов Рисование.
- Щелкните в том месте, где требуется добавить надпись. В появившееся окно ввода введите текст.
Изменение типа линии, добавление цвета соединительных линий
- Выделите линию или соединительную линию, которую требуется изменить.
- Выполните одно из следующих действий.
- Измените цвет линии или соединительной линии:
- На панели инструментов Рисование щелкните стрелку рядом с кнопкой Цвет линии
.
- Выполните одно из следующих действий:
- чтобы изменить цвет линии на используемый по умолчанию, нажмите кнопку Авто;
- чтобы задать другой цвет, щелкните один из цветов под кнопкой Авто.
- Измените тип линии или соединительной линии
- На панели инструментов Рисование нажмите кнопку Тип линии
.
- Выберите нужный тип либо нажмите кнопку Другие линии, а затем выберите тип.
Добавление в фигуры цвета или заливки
- Выделите фигуру, которую требуется изменить.
- На панели инструментов Рисование щелкните стрелку рядом с кнопкой Цвет заливки
.
- Выполните одно из следующих действий:
- если требуется изменить цвета, выберите один из цветов под кнопкой Авто;
- если требуется добавить градиентную, узорную, текстурную заливку или рисунок, нажмите кнопку Способы заливки, а затем откройте нужную вкладку и выберите параметры.
Контрольные задания В данной работе предлагается решить предложенную задачу с использованием средств офисных технологий. Для чего необходимо:
- изучить экономическую сущность задачи;
- решить задачу с использованием офисных средств автоматизации, таких как электронная таблица, текстовый и графический процессоры;
- разработать меню, схему работы системы, схему данных, схему взаимодействия программ для своей задачи средствами графического процессора;
- разработать краткий отчет о проделанной работе в текстовом процессоре, включив в отчет таблицы, графики, схемы.
Отчет должен состоять из следующих разделов:
- Раздел «Введение». В этом разделе указываются цели работы и используемые ИТ.
- Раздел «Постановка задачи». Формулируется постановка задачи своего варианта задания, а также дается описание состава исходной и результирующей (выходной) информации. При этом излагается, что необходимо сделать и какие действия при этом совершить, каков вид входного и выходного документов, каковы формулы для расчета показателей выходного документа и т.п.
- Раздел «Решение задачи». Приводятся: меню, схема данных, схема работы системы, схема взаимодействия программ, результаты вычислений. Графический материал при этом оформляется в соответствии с ГОСТом.
- Раздел «Список рекомендуемой литературы». В данном разделе приводится Список рекомендуемой литературы, используемой для выполнения и оформления своего варианта задания. Список рекомендуемой литературы оформляется в соответствии с ГОСТом.
- Раздел «Приложения». Для того чтобы отчет по выполнению варианта задания не был перегружен большим количеством иллюстративного материала, часть этого материала может быть вынесена за рамки основного текста отчета и размещена в виде приложения. При этом, если приложение в отчете одно единственное, то оно не нумеруется. В противном случае, нумерация приложении выполняется в порядке ссылок на них, например, «Схема данных представлена в Приложении 1».
Решите задачу (согласно варианту) и подготовьте отчет. Вариант 1 Спроектируйте систему ведения архива договоров. Предполагается выполнение следующих процессов:
- регистрация заключенных договоров;
- создание и ведение справочника заказчиков (подрядчиков);
- учет выполнения договоров.
Отчеты, запросы, которые необходимо реализовать:
- сведения о договорах, заключенных в период с ___ по___;
- сведения о заказчиках, заключивших договоры на сумму, больше указанной, указать номера договоров;
- сведения о договорах, срок действия которых закончится к определенной дате;
- графики.
Вариант 2 Спроектируйте систему учета материалов на складе. Предполагается выполнение следующих процессов:
- учет поступивших материалов за период с___ по___;
- учет материалов на ответственном хранении указанного материально-ответственного лица;
- учет выбывших материалов.
Перечень отчетов:
- отчет о материалах, находящихся на ответственном хранении указанного материально — ответственного лица;
- отчет о поступивших материальных ценностях в период с ___ по ____ с указанием ФИО материально — ответственного лица;
- отчет о выбывших материальных ценностях указанного номенклатурного номера;
- графики.
Вариант 3 Спроектируйте систему учета в библиотеке. Предполагается учет следующей информации:
- учет имеющегося книжного фонда;
- ведение каталога читателей;
- учет выданных и возвращенных книг.
Перечень отчетов:
- список книг указанного автора, имеющихся в библиотеке на указанную дату;
- список книг, выданных указанному читателю;
- поиск книги по фрагменту названия;
- графики.
Вариант 4 Спроектируйте систему учета комплектации персональных компьютеров. Предполагается выполнение следующих процессов:
- учет комплектов ПК;
- учет поставок комплектов и комплектующих;
- ведение справочника поставщиков и комплектующих.
Перечень отчетов:
- сведения об указанном комплекте (состав комплекта, количество комплектов);
- сведения о наличии указанного комплектующего изделия;
- сведения об имеющихся изделиях указанного поставщика;
- графики.
Вариант 5 Спроектируйте систему учета кадров предприятия. Предполагается выполнение следующих процессов:
- ведение справочника сотрудников;
- учет вакантных мест;
- учет движения кадров.
Перечень отчетов:
- сведения об указанной группе сотрудников (сотрудники одного отдела, сотрудники с высшим образованием и т.д.);
- сведения об имеющихся вакансиях;
- сведения об уволенных сотрудниках;
- графики.
Вариант 6 Спроектируйте систему учета заявок на выполнение работ (услуг) рекламного агентства. Выполняемые процедуры:
- ведение каталога услуг (прайс — листы);
- учет поступивших заявок;
- учет выполнения заявок ( по срокам, объемам, исполнителям).
Перечень отчетов:
- отчет об услугах, выполненных в период с___ по____;
- отчет об объеме (стоимости) работ, выполненных указанным исполнителем;
- отчет о невыполненных работах, услугах;
- графики.
Вариант 7 Спроектируйте систему формирования ремонтных ведомостей. Выполняемые процедуры:
- ведение справочника «Расценки на ремонтные работы»;
- составление ремонтных ведомостей;
- составление калькуляций на выполнение ремонта.
Перечень отчетов:
- перечень принятых заявок на ремонт в период с___ по___;
- ремонтная ведомость по указанному номеру заявки;
- расчетная калькуляция по указанному ремонту;
- графики.
Вариант 8 Спроектируйте систему учета участников выставки. Выполняемые процедуры:
- ведение каталога участников выставки;
- учет выставленных экспонатов.
Перечень отчетов:
- список участников выставки, зарегистрированных на определенную дату;
- сведения об указанном экспонате с указанием участника;
- отчет по группам экспонатов (количество, представившие участников);
- графики.
Вариант 9 Спроектируйте систему «Научная конференция». Выполняемые процедуры:
- учет состава участников конференции;
- учет мероприятий конференции (расписание мероприятий);
- учет докладов, сообщений участников.
Перечень отчетов:
- сведения о мероприятиях, проводимых в указанное время, указанную дату;
- сведения об участниках, представивших доклад на заданную тему (контекстный поиск);
- сведения о докладах, сообщениях, сделанных указанным участником;
- графики.
Вариант 10 Спроектируйте систему «Расписание движения поездов». Выполняемые процедуры:
- ведение расписания поездов;
- получение информации о составе поездов и количестве мест.
Перечень отчетов:
- расписание поездов указанного направления;
- сведения о количестве мест в вагонах указанного типа (П, К, СВ, ОБЩ), указанного поезда;
- графики;
- сведения о составе указанного поезда.
Вариант 11 Спроектируйте систему учета заявок на установку программного обеспечения на ПК организации. Выполняемые процедуры:
- создание и ведение справочника заказчиков;
- ведение книги регистрации заявок;
- учет выполнения заявок.
Перечень отчетов:
- список пользователей, подавших заявки на определенную дату;
- сведения о программном обеспечении, установленном на конкретном ПК;
- отчеты по заявкам;
- графики.
Вариант 12 Спроектируйте систему анализа стоимостных показателей выпуска продукции. Выполняемые процедуры:
- информация о выпуске товарной и реализованной продукции за базисный период;
- учет выпуска товарной и реализованной продукции за период с___ по___;
- учет динамики выпуска товарной и реализованной продукции за период с___ по___.
Перечень отчетов:
- отчет о выпуске товарной и реализованной продукции за период с___ по___;
- отчет о товарах с положительной и отрицательной динамикой выпуска;
- графики.
Контрольные вопросы:
- Укажите виды графических схем для представления технологического процесса обработки данных.
- Каково назначение меню, схемы работы системы, схемы данных, схемы взаимодействия программ?
- Представьте графически технологический процесс решения информационно-экономической задачи по подготовке конкретного вида документа на основе следующих схем: данных, работы системы, меню действий, взаимодействия программ.
Приложение 1Меню Подменю А содержит названия разнотипных документов (не путать со списком полей в документе). Аналогично составляются подменю В и С. Подменю А1, В1 и D1 содержат список действий с файлами соответствующих документов. По принципу умолчания над документами, перечисленными в меню А и В, выполняются действия «Создание» (ввод и запись в базу) и «Просмотр». Если действие «Корректировка» не требуется, то по умолчанию подменю А1 и В1 можно опустить. Если в задаче отсутствуют справочники, то можно опустить пункт меню В. Подменю для пункта меню D1 тоже можно опустить, т.к. действия, перечисленные в нем, предполагаются по умолчанию. Меню С содержит список всех действий, которые выполняются над входными данными с целью получения выходных ведомостей. Рис. 1. Пример меню программного комплекса Схемаработысистемы Пример фрагмента схемы работы системы для обработки трех документов в соответствии с меню, представленным на рис. 1., приведен на рис. 2. На рис. 2 ветки В, С и D изображаются аналогично ветке А, а ветки В1, В2 и ВЗ — аналогично ветке А1. Ветка АВ11 для создания базы на входе будет содержать Док1, на выходе — файл Ф1. Для ветки АВ12 на входе соответственно будут файл Ф1 и корректура Коррдок1, на выходе — файл Ф1. Для ветки АВ13 на входе будет файл Ф1, на выходе — экранная форма файла Ф1 для просмотра. Предполагается, что справочники созданы ранее, для ввода и корректировки используются разные программы. Просмотр файлов Ф2, ФЗ, Спр1, Спр2, СпрЗ, Ф11, Ф21, Ф31 изображается аналогично ветке АВ13. Печать Вед2 и ВедЗ изображается на схеме аналогично ветке D11. На выходе будут указанные ведомости. Программы печати — разные.
Рис. 2. Пример фрагмента схемы работы системы
Рис. 2. Продолжение
Рис. 2. Продолжение
Рис. 2. Продолжение Схемаданных Пример схемы данных для обработки трех документов приведен на рис. 3.
Рис. 3. Пример схемы данных Схемавзаимодействияпрограмм Пример схемы приведен на рис. 4.
Рис. 3. Пример схемы взаимодействия программ
Источник: studfile.net
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Cancel Create
java / COND.md
- Go to file T
- Go to line L
- Copy path
- Copy permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Cannot retrieve contributors at this time
172 lines (136 sloc) 15 KB
- Open with Desktop
- View raw
- Copy raw contents Copy raw contents Copy raw contents
Copy raw contents
Условные операторы и циклы
Памятка к домашнему заданию
Перед тем, как отправить своё решение на проверку преподавателю, сверьтесь с чеклистом
Что делать, если возникли сложности?
И это здорово! Если их преодолевать правильно, то можно получить большую образовательную пользу для себя. Периодическое возникновение вопросов, недопонимание пройденного материала — нормальная и неотъемлемая часть обучения. А мы здесь, чтобы помочь вам пройти этот путь.
Что делать, если непонятна теория?
- Если подобный вопрос разбирался на лекции, посмотрите еще раз раздел с этой темой в видеозаписи.
- Если вопрос не решился, попробуйте поискать ответ самостоятельно в интернете, этот навык пригодится вам в работе.
- Если самостоятельно разобраться не удалось, задайте вопрос в общем чате, мы обязательно поможем.
Что делать, если непонятно условие задания?
- Прежде чем задать вопрос по условию задачи, перечитайте его ещё раз и убедитесь, что в тексте условия нет прямого ответа на этот вопрос. Умение работать с текстом — важный навык работы с информацией.
- Если ответа на свой вопрос в тексте условия не увидели, задайте его в общем чате, мы раскроем детали условия подробнее. Не забудьте при этом скинуть и ссылку на условие задания, про которую у вас вопрос.
Что делать,если не получается задача?
Если ваша проблема это ошибка компиляции (подчёркивает красным, не даёт запустить программу), сборки проекта, CI и прочие подобные ошибки, то:
- Найдите и прочитайте текст ошибки, который вам подсвечивает реплит, идея (или логи); «подчёркивает красным» — это не описание ошибки.
- Попробуйте понять текст ошибки, при необходимости воспользуйтесь переводчиком. Нестрашно, если вы переведёте неточно, тут главное сам процесс: со временем и с нашей помощью вы будете это делать лучше и лучше, но, пропуская этот этап, вы не сможете научиться это делать.
- Если не получилось понять ошибку по её тексту, попробуйте её загуглить и изучить подобную ошибку у других людей. Попробуйте примерить решения их проблем на свой код. Соотнесите найденные описания ошибки с пройденной теорией.
- Если все равно вашу трудности не разрешились, напишите в общий чат, обязательно указав:
- Название задачи и ссылку на условие
- Ссылку на вашу работу
- Текст и скриншот (не фотография) ошибки.
- Ваши размышления и описание шагов, которые вы совершили для решения.
Если ваша проблема это ошибка исполнения (программа умирает уже после запуска) или она отрабатывает неправильно, то:
- Воспользуйтесь отладчиком для пошагового анализа работы вашей программы. Так вы либо убедитесь в неправильности придуманного вами алгоритма или найдёте конкретное место, где ожидаемое поведение программы разошлось с фактическим.
- Если проблему найти не получилось, напишите в общий чат, обязательно указав:
- Название задачи и ссылку на условие
- Ссылку на вашу работу
- Конкретное и подробное описание проблемы или затруднения при решении задачи («Помогите что не так» — это не описание)
- Подробное описание вашего анализа программы с помощью отладчика вместе со скринами
- Ваши размышления и описание шагов, которые вы совершили для решения.
Убедитесь, что все требования задания выполнены. Для этого перед отправкой внимательно прочтите весь текст условия задания и соотнесите сказанное в нём с вашим решением. Навык самопроверки работы перед ревью пригодится вам как при обучении, так и на работе.
Задание сдаём в реплите
Это задание сдаётся через реплит. Если вы ещё не зарегистрированы на этом сайте — зарегистрируйтесь. После чего создайте новый проект, выполните в нём задание и отправьте ссылку на редактируемый вами реплит на проверку. Каждую задачу следует делать в своём реплите если об этом не оговорено в условии самой задачи.
Задача 1 (обязательная)
Нужно написать программу, которая будет рассчитывать количество дней в году. Зачем это бывает нужно? Варианты бывают разные: например, для расчета продолжительности долгосрочных проектов в днях или чтобы узнать, сколько дней потребуется для космической экспедиции на Марс. Для расчета количества дней в году требуется знать несколько правил:
- В високосном году 366 дней, в обычном 365.
- Високосный год — это год, номер которого делится без остатка на 400 (например 2000 или 2400), либо делится на 4 но не делится на 100 (например 2008, 2096, но не 2100).
Схема работы программы
- Вывод сообщения в консоли Введите год в формате «yyyy» .
- Ввод года в формате yyyy (например 2004).
- Чтение значения из консоли и расчет количества дней.
- Результат работы программы: напечатать в консоли количество дней в году Количество дней 365 или Количество дней 366 .
Введите год в формате yyyy 2000 Количество дней 366
Введите год в формате yyyy 2018 Количество дней 365
Чтобы читать сообщения из консоли воспользуемся специальным объектом Scanner (на следующих лекциях мы подробнее познакомимся с термином объект), описание Scanner (как ниже) делается только один раз на всю программу.
Scanner scanner = new Scanner(System.in);
Для того чтобы была возможность в коде использовать класс Scanner , нужно обязательно добавить import этого класса в самое начало файла Main.java :
import java.util.Scanner; class Main < public static void main(String[] args) < //Код сюда > >
Чтобы прочитать введенное целое число из консоли, нужно использовать scanner.nextInt() . А чтобы прочитать и сохранить введенное значение в программе для дальнейшего использования, нужно написать:
int year = scanner.nextInt();
Как проверить, високосный ли год? Для этого сначала надо проверить делимость на 400, используя year % 400 == 0 . Специальный оператор % — возвращает остаток от деления. Результат вычисления будет равен 0, только если число делится нацело, иначе вернется остаток от деления. Если год делится на 400 без остатка, значит в нем точно 366 дней.
Если нет, то — аналогично проверить делимость на 100: если год делится на 100, то в нем точно 365 дней. И наконец, если год не делится ни на 400, ни на 100, то проверяем делимость на 4: если делится, — то — 366 дней, иначе — 365.
Чтобы последовательно проверить делимость введенного числа, нужно воспользоваться оператором сравнения if else .
if (year % 400 == 0) < System.out.println(«Результат вычисления . «); > else if ( еще одна проверка year % ) < //Вывести результат в консоль с помощью System.out.println > else < //Вывести результат в консоль System.out.println >
Задача 2 (необязательная)
⚠️ ВНИМАНИЕ эта задача делается на основе предыдущей и в том же реплите, т.е. в итоге вы присылаете только одну ссылку на две задачи. Зачёт по этой будет означать автоматический зачёт по предыдущей.
Нужно написать программу, которая будет играть с пользователем в следующую игру. Каждый ход программа спрашивает у него два числа: год и число дней в этом году. Вы проверяете, правильно ли пользователь указал количество дней в этом году и, если правильно, повторяете ход. В противном случае игра завершается. По окончании игры напишите пользователю сколько раз он угадал, это и будет количество набранных очков в игре.
Схема работы программы
- Вывод сообщения в консоли Введите год и количество дней в формате yyyy число .
- Ввод года в формате yyyy (например, 2004) и количества дней (например, 365).
- Проверка соответствия количества дней году
- Повтор до тех пор пока пользователь не ошибётся; если пользователь ошибся, надо вывести правильный ответ
- Вывод количества правильных вводов
Введите год: 2000 Введите количество дней: 366 Введите год: 2018 Введите количество дней: 365 Введите год: 2019 Введите количество дней: 300 Неправильно! В этом году 365 дней! Набрано очков: 2
- Создадим цикл while (true) <> , итерацией которого будет один ход игры.
- В начале хода просим пользователя ввести и считываем год и количество дней в этом году по мнению пользователя.
- Считаем правильное количество дней для введённого года, использую логику из предыдущей задачи про високосный год. Будет здорово, если вы вынесете логику определения количества дней в году в отдельный метод, который по году считает количество в нём дней.
- Условным оператором проверяем, совпадает ли введённое пользователем число дней в этом году с правильным числом дней в году. Если совпадает, увеличиваем счётчик успешных попыток и переходим к следующей итерации. Если не совпадает, то завершаем игру ( break ) и выводим количество правильных вводов (это хранится в счётчике).
Источник: github.com