Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лр JS без опечаток.doc
Скачиваний:
82
Добавлен:
07.08.2019
Размер:
1.36 Mб
Скачать

Вопросы и задания

1. В соответствии с текстом лабораторной работы измените текст программы time так, чтобы выдавалось сообщение, аналогичное показанному на рис. 10.

2. Это сообщение, разумеется, смотрится очень не плохо, но было бы еще лучше, если бы оно выглядело вот так (см. рис. 12).

Рис. 12. Сообщение о дне недели, дате и времени

3. Если вы внимательно присмотритесь к рис. 12, то заметите, что время у нас выдается не очень красиво. Подумайте, каким образом можно выдавать его в стандартном виде: “00:07”, и доработайте программу time. Для этого вам скорее всего потребуются дополнительные переменные. JavaScript не требует объявлять тип переменных, и можно просто написать:

h=d.geyHours();

Лабораторная работа №10 «Время до конца урока»

Появление на страничке календарной строки очень сильно ее украсило, но вот о полезности такой информации можно спорить. Вот если бы в заголовке появлялось рассчитанное время до конца урока! Ну, хотя бы так, как это изображено на рис. 13:

Рис. 13. Рассчитанное время до конца текущего урока

Естественно, для выдачи такого сообщения требуется, во-первых, добавить объект HTML, в который будет вы водиться сообщение, а во-вторых, доработать функцию time. И если с первой частью задания особых проблем не возникает, достаточно хотя бы написать нечто подобное (новые строчки, как обычно, выделены жирным):

<center> Лабораторная работа №10. <br>

Добро пожаловать!<br>

<font color=”red” id=”vrema”> </font>

<br>

<font color=”blue” id=”vrema2”> </font>

<br>

</center>

— то с доработкой функции дело обстоит отнюдь не так просто.

Понятно, что каким-то образом мы должны задать расписание звонков. Желательно, чтобы оно могло быть использовано в виде числовых интервалов, поскольку в дальнейшем мы планируем проверять, в который из них попадает текущее время (тоже, по возможности, заданное в виде одного числа).

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

mes=new Array(”января”,”февраля”,”марта”, “апреля”, “мая”, “июня”, “июля”, “августа”, “сентября”, “октября”, “ноября”, “декабря”);

var nur=new Array(8*60+30, 9*60+15, 10*60+10, 11*60+5);

var kur=new Array(9*60+10, 9*60+55, 10*60+50, 11*60+45);

d=new Date();

Так, в массиве nur задано время начала уроков. Соответственно, 8:30, 9:15, 10:10 и 11:05.

В массиве kur задано время окончания уроков: 9:10, 9:55, 10:50, 11:45.

Естественно, что и текущее время, которое мы получим, тоже необходимо преобразовать в “минутный” формат:

d=new Date();

tv=d.getHours()*60+d.getMinutes();

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

Делать от i=0 до 3

{Если ( nur[i]<tv<kur[i]) то (Сообщить, что до конца (i+1)-го урока осталось kur[i]-tv минут)

}

Поскольку мы впервые столкнулись с циклом в языке JavaScript приведем вышеописанную конструкцию полностью:

for (i=0; i<4; i++)

{

if (tv>nur[i] && tv<kur[i])

{os=kur[i]-tv;

vrema2.innerText=”До конца ”+(i+1)+”-го урока осталось ”+os+” минут”;

}

}

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

i=0 — начальное значение переменной цикла;

i<4 — условие окончания цикла;

i++ — приращение переменной. В нашем случае это аналогично записи i=i+1. Впрочем, те, кто изучал какой-нибудь язык, из С, прекрасно поняли, о чем речь.