«Единственный способ творить великие дела – это любить то, что ты делаешь»
JavaScript

Игра на «Морской Бой» на JavaScript: Простая Игра и Игра для Двоих


Далее на странице

Самостоятельно выполните практическую задачу по теме: «Методы объекта Window в Javascript: alert, prompt и confirm».

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

Также нужно знать тему условий и циклов.



Задание №1

Написать код, который спрашивает у пользователя, сколько ему лет. Необходимо проанализировать полученный ответ: если человеку больше 20 лет, то нужно вывести на экран фразу "Вы уже взрослый человек", а если меньше 20 или равно 20, то вывести "Вы еще молоды".

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

Что касается составления различных проверок введенной информации, то это уже тема объекта String.

Фрагмент кода

<script type="text/javascript">

var age = prompt("Сколько Вам лет?"); /* Занесение информации, возвращаемой методом prompt в переменную age */

// Далее составляется условие

if (age > 20)
{
document.write("Вы уже взрослый человек")
}
else
{
document.write("Вы еще молоды")
}

</script>

Результат

Задание №2

Сначала задается вопрос, сколько человеку лет, затем - какой сейчас год.

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

Например, человек ввел, что ему 30 лет, и сейчас 2010 год. Значит нужно вывести на экран: «В 2009 году вам было 29 лет, в 2008 году вам было 28 лет и так далее».

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

Для удобства во всех решениях указан один и тот же возраст 10 лет. И один и тот же год рождения 2010.

1-ый вариант решения - Цикл for

Фрагмент кода

<script type="text/javascript">

var age = prompt("Сколько Вам лет?");

var year = prompt("Какой сейчас год?"); /* Метод prompt позволяет создать два модальных окна с полем для ввода информации. Значения, возвращаемые методом prompt, передаются соответственно в переменные age и year */

for (age; age > 0; age--,year--) /* Создается цикл */
{
document.write("В " + year + " году Вы прожили - " + age + "-ый год жизни <br/>")
}

</script>

Результат

Практическая задача №2 - 1-ый вариант решения

В 2010 году Вы прожили - 10-ый год жизни
В 2009 году Вы прожили - 9-ый год жизни
В 2008 году Вы прожили - 8-ый год жизни
В 2007 году Вы прожили - 7-ый год жизни
В 2006 году Вы прожили - 6-ый год жизни
В 2005 году Вы прожили - 5-ый год жизни
В 2004 году Вы прожили - 4-ый год жизни
В 2003 году Вы прожили - 3-ый год жизни
В 2002 году Вы прожили - 2-ый год жизни
В 2001 году Вы прожили - 1-ый год жизни

В этом решении сначала были созданы переменные age и year, а затем открыт цикл for, в котором в качестве счетчика указана переменная age.

Оптимизация кода 1-го варианта решения

Код в примере выше можно оптимизировать, создав переменные age и year внутри цикла for.

Фрагмент кода

<script type="text/javascript">

for (var age = prompt("Сколько Вам лет?"), year = prompt("Какой сейчас год?"); age > 0; age--,year--)
{
document.write("В " + year + " году Вы прожили - " + age + "-ый год жизни <br/>")
}

</script>

Результат

Практическая задача №2 - Оптимизация кода 1-го варианта решения

В 2010 году Вы прожили - 10-ый год жизни
В 2009 году Вы прожили - 9-ый год жизни
В 2008 году Вы прожили - 8-ый год жизни
В 2007 году Вы прожили - 7-ый год жизни
В 2006 году Вы прожили - 6-ый год жизни
В 2005 году Вы прожили - 5-ый год жизни
В 2004 году Вы прожили - 4-ый год жизни
В 2003 году Вы прожили - 3-ый год жизни
В 2002 году Вы прожили - 2-ый год жизни
В 2001 году Вы прожили - 1-ый год жизни

2-ой вариант решения - Цикл while - Вывод года рождения

Второй вариант решения задачи будет реализован при помощи цикла while. Кроме этого будет фигурировать сообщение о годе рождения.

В предыдущих решениях, когда переменная age становилась равной 0, цикл останавливался, так как по условию age > 0. Да и не имело смысла писать о нулевом годе жизни.

Вместо этого в решении лучше вывести фразу о годе рождения. Для этого нужно изменить условие для цикла while age >= 0 и составить необходимое условие if-else.

Фрагмент кода

<script type="text/javascript">

var age = prompt("Сколько Вам лет?");  /* Переменная age будет счетчиком цикла */
var year = prompt("Какой сейчас год?");

while (age >= 0) /* При значение age == 0 будет выводиться год рождения */
{

if (age == 0)
{
document.write("<strong> В " + year + " году Вы родились... </strong>")
}
else /* Иначе... */
{
document.write("В " + year + " году Вы прожили - " + age + "-ый год жизни <br/>")
}

age--;
year--;
}

</script>

Результат

Практическая задача №2 - Цикл while - Вывод года рождения

В 2010 году Вы прожили - 10-ый год жизни
В 2009 году Вы прожили - 9-ый год жизни
В 2008 году Вы прожили - 8-ый год жизни
В 2007 году Вы прожили - 7-ый год жизни
В 2006 году Вы прожили - 6-ый год жизни
В 2005 году Вы прожили - 5-ый год жизни
В 2004 году Вы прожили - 4-ый год жизни
В 2003 году Вы прожили - 3-ый год жизни
В 2002 году Вы прожили - 2-ый год жизни
В 2001 году Вы прожили - 1-ый год жизни
В 2000 году Вы родились.

Окончательная корректировка javascript-кода

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

Чтобы исправить этот момент и вывести сообщение о текущем годе жизни, в программный код JavaScript вносятся некоторые поправки. Пример ниже это демонстрирует.

Фрагмент кода

<script type="text/javascript">

var age = prompt("Сколько Вам лет?");
var year = prompt("Какой сейчас год?");

document.write("<strong> Сейчас " + year + " год и в этом году Вы проживаете " + age + " год жизни. </strong> <br/>"); /* Вывод сообщения о текущем годе жизни */

/* Далее меняется условие цикла while и условие if. И вычитается единица из переменных year и age */
while (age > 0)
{

if (age == 1)
{
document.write("<strong> В " + (year - 1) + " году Вы родились... </strong>")
}
else /* Иначе... */
{
document.write("В " + (year - 1) + " году Вы прожили - " + (age - 1) + "-ый год жизни <br/>")
}

age--;
year--;
}

</script>

Результат

Практическая задача №2 - Вывод сообщения о текущем годе жизни

Сейчас 2010 год и в этом году Вы проживаете 10 год жизни.
В 2009 году Вы прожили - 9-ый год жизни
В 2008 году Вы прожили - 8-ый год жизни
В 2007 году Вы прожили - 7-ый год жизни
В 2006 году Вы прожили - 6-ый год жизни
В 2005 году Вы прожили - 5-ый год жизни
В 2004 году Вы прожили - 4-ый год жизни
В 2003 году Вы прожили - 3-ый год жизни
В 2002 году Вы прожили - 2-ый год жизни
В 2001 году Вы прожили - 1-ый год жизни
В 2000 году Вы родились...

Отзывы и комментарии:

Комментариев нет...

Оставить отзыв:

Ваше Имя:

Текст комментария:

Ответьте на вопрос:

Сколько дней в Високосном году?


Объект Window
Последние заметки
Популярные заметки