Цель работы
Изучить возможности ввода и вывода данных; особенности использования арифметических, логических операторов, операторов сравнения, операторов условного перехода.
Задания
Задание 1
Опробовать работу с модальными окнами alert, prompt, confirm. Разработать свой диалог с использованием этих команд. Пример диалога:
1) вывести приветствие в окне alert “Вас приветствует учебный центр”;
2) затем в окне prompt вывести сообщение «Введите имя», а в окне alert вывести сообщение «Добро пожаловать на наши курсы, имя»;
3) в окне confirm вывести сообщение "Хотите стать Web-дизайнером?" с альтернативными ответами в окнах alert, если true, то "Учите стили CSS и JavaScript!", если false то "Упускаете время!".
Решение
Java Script
alert("Вас приветствует учебный центр")
alert ("Добро пожаловать на наши курсы, " + (prompt ('Введите имя', 'Имя') || 'Имя'))

let answer = confirm("Хотите стать Web-дизайнером?")
if(answer)
    alert("Учите стили CSS и JavaScript!")
else
    alert("Упускаете время!")
Задание 2
Использование оператора + с числовыми и строковыми переменными.
1) Сложить два любых числа (например, 10 и 5). Результат вывести на страницу;
2) Сложить две строки (например, “10” и “5”). Результат вывести на страницу;
3) Сложить число и строку (например, 22 и “5”). Результат вывести на страницу;
4) Сложить строку и число (например, “22” и 5). Результат вывести на страницу;
5) Вывод – "Результатом сложения строки и числа всегда будет … " – вывести в окно.
Решение
Java Script
document.write("1) 10 + 5 = " + (10 + 5))
document.write("2) '10' + '5' = " + ("10" + "5"))
document.write("3) 22 + '5' = " + (22 + "5"))
document.write("4) '22' + 5 = " + ("22" + 5))
document.write("Вывод: результатом сложения строки и числа всегда будет строка.")
Задание 3
Найти значение 2-х любых арифметических выражений, записанных на JS с использованием арифметических операций, например: (35y-25x)/5+232 и (8*y/x+5*x/y – 43)*6
Значения x и y задать произвольно, но подобрать такие, чтоб значение одного выражения было намного больше второго. Найти остаток от деления значения одного выражения на значение другого. Вывести результаты на страницу, а также в отдельное окно.
Решение
Java Script
let x = 1, y = 12

let firstExpr = ((35*y) - (25*x) / (5 + 232))
let secondExpr = ((8*y / x) + (5*x / y) - 43)*6
let result = Math.round(secondExpr) % Math.round(firstExpr)

alert("Результат первого выражения равен " + Math.round(firstExpr))
alert("Результат второго выражения равен " + Math.round(secondExpr))
alert("Остаток от деления второго выражения на первое равен " + result)

document.write("Результат первого выражения " + Math.round(firstExpr))
document.write("Результат второго выражения " + Math.round(secondExpr))
document.write("Остаток от деления второго выражения на первое " + result)
Задание 4
Продемонстрировать использование операторов сравнения (==, !=, >, >=, <, <=) и логических операторов (!, &&, ||). Введите любое число. Если оно меньше 20 или больше 40 и не равно 15 и делится без остатка на 5, то вывести сообщение «Правильное начение», иначе «Не правильное значение».
Придумайте свой пример с логическими операторами.
Решение
Java Script
let x = prompt('Введите число: ', '0')

if(x) {
    if(((x < 20) || (x > 40)) && ((x % 5) == 0) && (x != 15))
        alert("Правильное значение")
    else
        alert("Не правильное значение")
}
else
    alert("В поле необходимо что-то ввести!")
                             
let y = prompt('Введите число, квадрат которого больше 144: ', '0')
                             
if(y) {
    if((y * y) > 144)
        alert("Правильно " + (y * y) + " > 144")
    else
        alert("Не правильно " + (y * y) + " <= 144")
}
else
    alert("В поле необходимо что-то ввести!")
Задание 5
Конструкция if..elseif..else.
Ввести 2 числа с клавиатуры. Сравнить их и вывести сообщение на страницу, например “А больше Б”, используя конструкцию if..elseif..else.
Написать свой пример с использованием альтернативного синтаксиса конструкции if..else -
(условие) ? команды1 : команды2.
Решение
Java Script
let x = prompt('Введите первое число: ', '0')
let y = prompt('Введите второе число: ', '0')
                             
// чтобы все правильно работало
// преобразуем полученные строки в числа
x = Number.parseInt(x)
y = Number.parseInt(y)
                             
if(x > y)
    alert(x + " > " + y)
else if(x < y)
    alert(x + " < " + y)
else
    alert(x + " = " + y)
                             
let mark = prompt('Что вы получили за экзамен по ОИТ?', '0')
mark = Number.parseInt(mark);
                             
(mark < 1 || mark > 10) ? alert("Введите корректную оценку!") : ( (mark > 3) ? alert("Поздравляю, у Вас зачет!") : alert("К сожалению, у Вас незачёт!"))
Задание 6
Определить, какой сегодня день недели (использовать конструкцию switch case).
Решение
Java Script
let answer = +prompt('Какой сегодня день:', '1')

let currentDay = answer % 7

switch(currentDay){
    case 1: alert("Понедельник"); break
    case 2: alert("Вторник"); break
    case 3: alert("Среда"); break
    case 4: alert("Четверг"); break
    case 5: alert("Пятница"); break
    case 6: alert("Суббота"); break
    case 0: alert("Воскресенье"); break
    default: alert("Некорректный день!"); break
}
Задание 7*
Придумать пример, демонстрирующий обработку исключений с использованием конструкции try … catch.
Решение
Java Script
alert("Эта программа покажет работу конструкции try...catch!")

const x = 12
alert("Определим константную переменную 'x' = " + x)
                             
let y = (x*x + 2) / (12 - 1) * 5 * x
alert("Рассчитаем значение данного выражения:"
    + "\n(x^2 + 2) / (12 - 1) * 5 * x = " + Math.round(y))
                                
alert("Попробуем присвоить 'x' другое значение и пересчитать выражение.")
try {
    x = 131 // ошибка
                             
    // последующие строчки в этом блоке не сработают
    // потому что пытаясь переопределить константу
    // мы получим ошибку и программа дальше не будет выполняться 
    alert("x = " + x)
                             
    y = (x*x + 2) / (12 - 1)*5*x
    alert("(x^2 + 2) / (12 - 1)*5*x = " + Math.round(y))
} 
catch (error) {
    alert("Попытались переопределить константу, тем самым вызвав ошибку.\n"
    + "Текст ошибки -> " + error)
}
finally{
    alert("Вывод: каждый раз, когда мы будем переопределять константу, "
    + "программа будет выдавать ошибку и прекращать свое выполнение, будьте осторожнее!")
}