Приклади розв'язання задач
Завдання 1. Створіть змінну str і надайте їй значення 'abcde'. Звертаючись до окремих символів цього рядка виведіть на екран символ 'a', символ 'b', символ 'e'.
Рішення: будемо звертатися до окремих символів цього рядка, наприклад, буква 'a' має номер 0 і її можна вивести так - str [0], буква 'b' має номер 1 і так далі:
var str = 'abcde';
alert (str [0]); // виведемо букву 'a'
alert (str [1]); // виведемо букву 'b'
alert (str [4]); // виведемо букву 'e'
Завдання 2. Напишіть скрипт, який рахує кількість секунд в годині.
Рішення: оскільки в хвилині 60 секунд, а в годині - 60 хвилин, то помноживши 60 на 60 ми отримаємо кількість секунд в годині:
alert (60 * 60);
Якщо нам потрібно отримати кількість секунд в добі, то помножимо ще й на 24 (так як в добі 24 години):
alert (60 * 60 * 24);
Завдання 3. Переробіть наведений код так, щоб в ньому використовувалися операції + =, - =, * =, / =, ++, -. Кількість рядків коду при цьому не повинно змінитися. Код для переробки:
var num = 1;
num = num + 12;
num = num - 14;
num = num * 5;
num = num / 7;
num = num + 1;
num = num - 1;
alert (num);
Рішення: замінимо всі відповідні місця на скорочену форму запису. Наприклад, замість num = num + 12 можна написати num + = 12, а замість num = num + 1 буде num ++. Результат переробки буде виглядати так:
var num = 1;
num += 12;
num -= 14;
num *= 5;
num /= 7;
num++;
num--;
alert(num);
Масиви
Завдання 1. Дан масив з елементами 'Привіт,', 'світ' і '!'. Необхідно вивести на екран фразу 'Привіт, світ!'.
Рішення:
// Виведемо фразу 'Привіт, світ!':
var arr = [ 'Привіт,', 'світ', '!'];
alert (arr [0] + arr [1] + arr [2]);
Розберемо це рішення: слово 'Привіт,' зберігається під номером 0, це означає, що для доступу до нього ми повинні написати arr [0].
Для доступу до слова 'світ' ми повинні написати arr [1], а arr [2] містить в собі '!'.
Далі за допомогою оператора '+' ми складемо три наші рядки ( 'Привіт,', 'світ' і '!') В один рядок таким чином arr [0] + arr [1] + arr [2], і виведемо на екран за допомогою alert.
Завдання 2.
Вирішимо трохи інше завдання: дано масив з елементами 'Привіт,', 'світ' і '!'. Необхідно записати в змінну text фразу 'Привіт, світ!', А потім вивести на екран вміст цієї змінної.
Рішення:
// Виведемо фразу 'Привіт, світ!':
var arr = [ 'Привіт,', 'світ', '!'];
var str = arr [0] + arr [1] + arr [2]; // в змінної text тепер лежить рядок 'Привіт, світ!'
alert (str);
Завдання 3. Дан масив [ 'Привіт,', 'світ', '!']. Необхідно записати в нульовий елемент цього масиву слово 'Поки,' (тобто замість слова "Привіт, 'буде' Поки, ').
Рішення:
var arr = [ 'Привіт,', 'світ', '!'];
arr [0] = 'Поки,'; // повторно нульовий елемент масиву
alert (arr); // подивимося на масив і переконаємося в тому, що він змінився
Об'єкти (асоціативні масиви)
Завдання 4 .
Створіть асоціативний масив (об'єкт) заробітних плат obj. Виведіть на екран зарплату Петі і Колі.
// Дано об'єкт :
var obj = { 'Коля': '1000', 'Вася': '500', 'Петя': '200'};
Рішення: Щоб вивести зарплату Колі слід вивести значення елемента об'єкта з ключем 'Коля'. Зробимо це:
var obj = { 'Коля': '1000', 'Вася': '500', 'Петя': '200'};
alert (obj [ 'Коля']); // виведе 1000
Задачі на конструкції if-else, switch-case
Приклади розв'язання задач
Завдання 1. Якщо змінна a дорівнює 10, то виведіть 'Вірно', інакше виведіть 'Невірно'.
Рішення:
var num = 10;
if (num == 10) {
alert ( 'Вірно');
} Else {
alert ( 'Невірно');
}
Завдання 2. В змінної min лежить число від 0 до 59. Визначте в яку чверть години потрапляє це число (в першу, другу, третю або четверту).
Рішення:
var min = 10;
if (min> = 0 && min <= 14) {
alert ( 'В першу чверть.');
}
if (min> = 15 && min <= 30) {
alert ( 'У другу чверть.');
}
if (min> = 31 && min <= 45) {
alert ( 'В третю чверть.');
}
if (min> = 46 && min <= 59) {
alert ( 'В четверту чверть.');
}
Завдання 3.
Мінлива lang може приймати 2 значення: 'uk' 'en'. Якщо вона має значення 'uk', то в змінну arr запишемо масив днів тижня українською мовою, а якщо має значення 'en' - то англійською. Вирішіть задачу через 2 if, через switch-case і через багатовимірний масив без if і switch.
Рішення:
Рішення через 2 if:
var lang = 'uk';
if (lang == 'uk') {
var arr = [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'];
}
if (lang == 'en') {
arr = [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'];
}
alert (arr);
Рішення через switch-case:
var lang = 'uk';
switch (lang) {
case 'uk':
var arr = [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'];
break;
case 'en':
arr = [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'];
break;
}
alert (arr);
Рішення через багатовимірний масив:
var lang = 'uk';
var arr = { 'Uk': [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'],
'En': [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'],
};
alert (arr [lang]);
Задачі на цикли while, for
Завдання 1. Виведіть стовпець чисел від 1 до 50.
Рішення: скористаємося циклом while (відділимо числа тегом br один від одного, щоб отримати стовпець, а не рядок): var i = 1;
while (i <= 50) {
document.write (i + '
');
i ++;
}
Можна також скористатися і циклом for:
for (var i = 1; i <= 50; i ++) {
document.write (i + '
');
}
Завдання 2. Дан масив з елементами [1, 2, 3, 4, 5]. За допомогою циклу for виведіть всі ці елементи на екран.
Рішення: будемо повторювати цикл for від 0 до номера останнього елемента масиву. Цей номер на одиницю менше кількості елементів в масиві, яке можна знайти за допомогою властивості length таким чином: arr.length.
Щоб цикл прокрутився на одиницю менше довжини масиву, в умова закінчення ми поставимо <, а не <=.
До елементів масиву будемо звертатися так: arr [i]. При цьому змінна i - це лічильник циклу, який буде змінюватися від нуля до arr.length (НЕ включно). Таким чином ми послідовно виведемо всі елементи масиву на екран (відокремивши їх тегом br один від одного):
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i
document.write (arr [i] + '
');
}
Завдання 3. Дано масив з елементами [2, 3, 4, 5]. За допомогою циклу for знайдіть добуток елементів цього масиву.
Рішення: для таких завдань існує стандартне рішення, яке полягає в тому, що циклом for перебираються елементи масиву і їх твір послідовно записується в змінну result (в ній поступово накопичується шукане твір):
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i
result = result * arr [i];
}
alert (result);
Як це працює: спочатку змінна result має значення 1, потім при першому проході циклу в неї записується її поточний зміст (це 1), помножене на перший елемент масиву (це 2). Вийде, що в result запишеться 1 * 2 і тепер там буде лежати число 2.
При наступному проході циклу в result запишеться поточне значення result, помножене на другий елемент масиву (тобто 2 * 3 = 6). І так далі поки масив не закінчиться.
Можна переписати рядок result = result * arr [i] через * = для стислості:
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i
result * = arr [i];
}
alert (result);
Цикл for-in
Завдання 1. Дан об'єкт obj з ключами 'Мінськ', 'Москва', 'Київ' з елементами 'Білорусь', 'Росія', 'Україна'. За допомогою циклу for-in виведіть на екран рядки такого формату: 'Мінськ - це Білорусь.'.
Рішення: завдання не представляє складності якщо вміти працювати з циклом for-in. Давайте вирішувати завдання поетапно. Для початку виведемо на екран всі ключі об'єкта (це назви міст):
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (key);
}
А тепер виведемо всі значення об'єкта (це країни):
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (obj [key]);
}
Ну, а тепер сформуємо рядки потрібного нам формату:
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (key + '- це' + obj [key] + '.');
}
Завдання 1. Створіть змінну str і надайте їй значення 'abcde'. Звертаючись до окремих символів цього рядка виведіть на екран символ 'a', символ 'b', символ 'e'.
Рішення: будемо звертатися до окремих символів цього рядка, наприклад, буква 'a' має номер 0 і її можна вивести так - str [0], буква 'b' має номер 1 і так далі:
var str = 'abcde';
alert (str [0]); // виведемо букву 'a'
alert (str [1]); // виведемо букву 'b'
alert (str [4]); // виведемо букву 'e'
Завдання 2. Напишіть скрипт, який рахує кількість секунд в годині.
Рішення: оскільки в хвилині 60 секунд, а в годині - 60 хвилин, то помноживши 60 на 60 ми отримаємо кількість секунд в годині:
alert (60 * 60);
Якщо нам потрібно отримати кількість секунд в добі, то помножимо ще й на 24 (так як в добі 24 години):
alert (60 * 60 * 24);
Завдання 3. Переробіть наведений код так, щоб в ньому використовувалися операції + =, - =, * =, / =, ++, -. Кількість рядків коду при цьому не повинно змінитися. Код для переробки:
var num = 1;
num = num + 12;
num = num - 14;
num = num * 5;
num = num / 7;
num = num + 1;
num = num - 1;
alert (num);
Рішення: замінимо всі відповідні місця на скорочену форму запису. Наприклад, замість num = num + 12 можна написати num + = 12, а замість num = num + 1 буде num ++. Результат переробки буде виглядати так:
var num = 1;
num += 12;
num -= 14;
num *= 5;
num /= 7;
num++;
num--;
alert(num);
Масиви
Завдання 1. Дан масив з елементами 'Привіт,', 'світ' і '!'. Необхідно вивести на екран фразу 'Привіт, світ!'.
Рішення:
// Виведемо фразу 'Привіт, світ!':
var arr = [ 'Привіт,', 'світ', '!'];
alert (arr [0] + arr [1] + arr [2]);
Розберемо це рішення: слово 'Привіт,' зберігається під номером 0, це означає, що для доступу до нього ми повинні написати arr [0].
Для доступу до слова 'світ' ми повинні написати arr [1], а arr [2] містить в собі '!'.
Далі за допомогою оператора '+' ми складемо три наші рядки ( 'Привіт,', 'світ' і '!') В один рядок таким чином arr [0] + arr [1] + arr [2], і виведемо на екран за допомогою alert.
Завдання 2.
Вирішимо трохи інше завдання: дано масив з елементами 'Привіт,', 'світ' і '!'. Необхідно записати в змінну text фразу 'Привіт, світ!', А потім вивести на екран вміст цієї змінної.
Рішення:
// Виведемо фразу 'Привіт, світ!':
var arr = [ 'Привіт,', 'світ', '!'];
var str = arr [0] + arr [1] + arr [2]; // в змінної text тепер лежить рядок 'Привіт, світ!'
alert (str);
Завдання 3. Дан масив [ 'Привіт,', 'світ', '!']. Необхідно записати в нульовий елемент цього масиву слово 'Поки,' (тобто замість слова "Привіт, 'буде' Поки, ').
Рішення:
var arr = [ 'Привіт,', 'світ', '!'];
arr [0] = 'Поки,'; // повторно нульовий елемент масиву
alert (arr); // подивимося на масив і переконаємося в тому, що він змінився
Об'єкти (асоціативні масиви)
Завдання 4 .
Створіть асоціативний масив (об'єкт) заробітних плат obj. Виведіть на екран зарплату Петі і Колі.
// Дано об'єкт :
var obj = { 'Коля': '1000', 'Вася': '500', 'Петя': '200'};
Рішення: Щоб вивести зарплату Колі слід вивести значення елемента об'єкта з ключем 'Коля'. Зробимо це:
var obj = { 'Коля': '1000', 'Вася': '500', 'Петя': '200'};
alert (obj [ 'Коля']); // виведе 1000
Задачі на конструкції if-else, switch-case
Приклади розв'язання задач
Завдання 1. Якщо змінна a дорівнює 10, то виведіть 'Вірно', інакше виведіть 'Невірно'.
Рішення:
var num = 10;
if (num == 10) {
alert ( 'Вірно');
} Else {
alert ( 'Невірно');
}
Завдання 2. В змінної min лежить число від 0 до 59. Визначте в яку чверть години потрапляє це число (в першу, другу, третю або четверту).
Рішення:
var min = 10;
if (min> = 0 && min <= 14) {
alert ( 'В першу чверть.');
}
if (min> = 15 && min <= 30) {
alert ( 'У другу чверть.');
}
if (min> = 31 && min <= 45) {
alert ( 'В третю чверть.');
}
if (min> = 46 && min <= 59) {
alert ( 'В четверту чверть.');
}
Завдання 3.
Мінлива lang може приймати 2 значення: 'uk' 'en'. Якщо вона має значення 'uk', то в змінну arr запишемо масив днів тижня українською мовою, а якщо має значення 'en' - то англійською. Вирішіть задачу через 2 if, через switch-case і через багатовимірний масив без if і switch.
Рішення:
Рішення через 2 if:
var lang = 'uk';
if (lang == 'uk') {
var arr = [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'];
}
if (lang == 'en') {
arr = [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'];
}
alert (arr);
Рішення через switch-case:
var lang = 'uk';
switch (lang) {
case 'uk':
var arr = [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'];
break;
case 'en':
arr = [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'];
break;
}
alert (arr);
Рішення через багатовимірний масив:
var lang = 'uk';
var arr = { 'Uk': [ 'пн', 'вт', 'ср', 'чт', 'пт', 'сб', 'не'],
'En': [ 'mn', 'ts', 'wd', 'th', 'fr', 'st', 'sn'],
};
alert (arr [lang]);
Задачі на цикли while, for
Завдання 1. Виведіть стовпець чисел від 1 до 50.
Рішення: скористаємося циклом while (відділимо числа тегом br один від одного, щоб отримати стовпець, а не рядок): var i = 1;
while (i <= 50) {
document.write (i + '
');
i ++;
}
Можна також скористатися і циклом for:
for (var i = 1; i <= 50; i ++) {
document.write (i + '
');
}
Завдання 2. Дан масив з елементами [1, 2, 3, 4, 5]. За допомогою циклу for виведіть всі ці елементи на екран.
Рішення: будемо повторювати цикл for від 0 до номера останнього елемента масиву. Цей номер на одиницю менше кількості елементів в масиві, яке можна знайти за допомогою властивості length таким чином: arr.length.
Щоб цикл прокрутився на одиницю менше довжини масиву, в умова закінчення ми поставимо <, а не <=.
До елементів масиву будемо звертатися так: arr [i]. При цьому змінна i - це лічильник циклу, який буде змінюватися від нуля до arr.length (НЕ включно). Таким чином ми послідовно виведемо всі елементи масиву на екран (відокремивши їх тегом br один від одного):
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i
');
}
Завдання 3. Дано масив з елементами [2, 3, 4, 5]. За допомогою циклу for знайдіть добуток елементів цього масиву.
Рішення: для таких завдань існує стандартне рішення, яке полягає в тому, що циклом for перебираються елементи масиву і їх твір послідовно записується в змінну result (в ній поступово накопичується шукане твір):
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i
}
alert (result);
Як це працює: спочатку змінна result має значення 1, потім при першому проході циклу в неї записується її поточний зміст (це 1), помножене на перший елемент масиву (це 2). Вийде, що в result запишеться 1 * 2 і тепер там буде лежати число 2.
При наступному проході циклу в result запишеться поточне значення result, помножене на другий елемент масиву (тобто 2 * 3 = 6). І так далі поки масив не закінчиться.
Можна переписати рядок result = result * arr [i] через * = для стислості:
var result = 1;
var arr = [2, 3, 4, 5];
for (var i = 0; i
}
alert (result);
Цикл for-in
Завдання 1. Дан об'єкт obj з ключами 'Мінськ', 'Москва', 'Київ' з елементами 'Білорусь', 'Росія', 'Україна'. За допомогою циклу for-in виведіть на екран рядки такого формату: 'Мінськ - це Білорусь.'.
Рішення: завдання не представляє складності якщо вміти працювати з циклом for-in. Давайте вирішувати завдання поетапно. Для початку виведемо на екран всі ключі об'єкта (це назви міст):
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (key);
}
А тепер виведемо всі значення об'єкта (це країни):
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (obj [key]);
}
Ну, а тепер сформуємо рядки потрібного нам формату:
var obj = {
'Мінськ, Білорусь',
'Москва, Росія',
'Київ, Україна'
};
for (var key in obj) {
alert (key + '- це' + obj [key] + '.');
}
привіт, я щойно встала на шлях Javascript, і в мене є питання на цей рахунок. чи можна їх задати, та як з вами зв'язатись?
ОтветитьУдалитьno
ОтветитьУдалить