Задачи на конструкции if-else, switch-case в JavaScript | Трепачёв Дмитрий

Задачи с примерами решения и ответами на основы работы с конструкциями if-else, switch-case в JavaScript.

Примеры решения задач

Задача

Задача. Если переменная a равна 10, то выведите ‘Верно’, иначе выведите ‘Неверно’.

Решение:

var num = 10;if (num == 10) { alert(‘Верно’);} else { alert(‘Неверно’);}

Задача

Задача. В переменной min лежит число от 0 до 59. Определите в какую четверть часа попадает это число (в первую, вторую, третью или четвертую).

Решение:

var min = 10;if (min >= 0 && min = 15 && min = 31 && min = 46 && min

Задача

Переменная lang может принимать 2 значения: ‘ru’ ‘en’. Если она имеет значение ‘ru’, то в переменную arr запишем массив дней недели на русском языке, а если имеет значение ‘en’ – то на английском. Решите задачу через 2 if, через switch-case и через многомерный массив без ифов и switch.

Решение:

Решение через 2 if:

var lang = ‘ru’;if (lang == ‘ru’) { var arr = [‘пн’, ‘вт’, ‘ср’, ‘чт’, ‘пт’, ‘сб’, ‘вс’];}if (lang == ‘en’) { arr = [‘mn’, ‘ts’, ‘wd’, ‘th’, ‘fr’, ‘st’, ‘sn’];}alert(arr);

Решение через switch-case:

var lang = ‘ru’;switch (lang) { case ‘ru’: var arr = [‘пн’, ‘вт’, ‘ср’, ‘чт’, ‘пт’, ‘сб’, ‘вс’]; break; case ‘en’: arr = [‘mn’, ‘ts’, ‘wd’, ‘th’, ‘fr’, ‘st’, ‘sn’]; break;}alert(arr);

Решение через многомерный массив:

var lang = ‘ru’;var arr = { ‘ru’:[‘пн’, ‘вт’, ‘ср’,’чт’, ‘пт’, ‘сб’, ‘вс’], ‘en’:[‘mn’, ‘ts’, ‘wd’, ‘th’, ‘fr’, ‘st’, ‘sn’],};alert(arr[lang]);

Условный оператор в Паскале

До рассмотрения данной темы в основном использовались линейные алгоритмы в Паскале, характерные для весьма простых задач, когда действия (операторы) выполняются последовательно, одно за другим. Более сложные алгоритмы предусматривают использование конструкция ветвления.

Блок-схема условного оператора:
условный оператор в паскале блок-схема
Условный оператор в Паскале имеет следующий синтаксис:

Сокращенный вариант:

if условие then оператор;

if условие then оператор;

Полный вариант:

if условие then операторelse оператор;

if условие then операторelse оператор;

Условный оператор в Паскале — if — служит для организации хода задачи таким образом, при котором изменяется последовательность выполнения операторов в зависимости от какого-либо логического условия. Логическое условие может принимать одно из двух значений: либо true (истина), либо false (ложь), соответственно, оно может быть либо истинным, либо ложным.

неполная форма ветвления

Составной оператор

Если при истинном условии необходимо выполнять несколько операторов, то их по правилам языка Pascal необходимо заключать в блок, начинающийся со служебного слова begin и заканчивающегося служебным словом end. Такой блок принято называть операторными скобками, а данную конструкцию — составным оператором:

Операторные скобки и составной оператор в Паскале:

if логическое выражение thenbegin оператор1; оператор2;endelsebegin оператор1; оператор2;end;

if логическое выражение thenbegin оператор1; оператор2;endelsebegin оператор1; оператор2;end;

Перевод с английского оператора условия облегчит понимание его использования:

IF THEN ELSE
ЕСЛИ ТО ИНАЧЕ

Условный оператор в Паскале
В условии (в логическом выражении) используются операторы отношения.
Рассмотрим список операторов отношения Паскаля:

  • больше >
  • меньше
  • больше или равно в Pascal >=
  • меньше либо равно в Pascal
  • сравнение в Pascal =
  • не равно в Pascal

Пример: найти наибольшее из двух чисел

Подробно разобраться в работе условного оператора в Паскале можно, просмотрев видеоурок:

Пример:

вычислить значение переменной

у

по одной из двух ветвей

условный оператор

Показать решение:
1234567891011 var x,y:real;beginwriteln (‘введите х’);read(x);if x>0 then y:=ln(x)else y:=exp(x);writeln (‘y=’, y:6:2) {итоговое число будет занимать 6 позиций, и в нем будет 2 знака после запятой}end.

var x,y:real;beginwriteln (‘введите х’);read(x);if x>0 then y:=ln(x)else y:=exp(x);writeln (‘y=’, y:6:2) {итоговое число будет занимать 6 позиций, и в нем будет 2 знака после запятой}end.

Обратите внимание на то, как в данном примере выводится y. При выводе переменных типа real в pascal, можно использовать так называемый форматированный вывод, или запись с двумя двоеточиями:
y:6:2
– цифра после первого двоеточия (6) указывает на то, сколько знаков будет занимать число при выводе на экран
– цифра после второго двоеточия (2) указывает на то, сколько знаков после запятой вещественного числа будет выводиться

Таким образом, использование такой записи в pascal практически позволяет выполнить округление до сотых, тысячных и т.п.

Задача 0.

Вычислить значение переменной

у

по одной из двух ветвей:

условный оператор в паскале

Задача 1. В компьютер вводятся два числа. Если первое больше второго, то вычислить их сумму, иначе – произведение. После этого компьютер должен напечатать результат и текст ЗАДАЧА РЕШЕНА

Задача 2. Дракон каждый год отращивает по три головы, но после того, как ему исполнится 100 лет – только по две. Сколько голов и глаз у дракона, которому N лет?

Логические операции в Паскале (в логическом выражении)

Когда необходимо использовать двойное условие в Pascal, то понадобятся логические операции.

  • Логическая операция AND (И), поставленная между двумя условиями, говорит о том, что должны выполняться сразу оба эти условия (должны быть истинными). Логический смысл операции – “конъюнкция”.
  • Поставленный между двумя условиями, знак OR (ИЛИ) говорит о том, что достаточно, если будет выполняться хотя бы одно из них (одно из двух условий истинно). Логический смысл операции – “дизъюнкция”.
  • На языке Паскаль XOR – знак логической операции, имеющий смысл “строгая дизъюнкция” и указывающий на то, что необходимо, чтобы одно из двух условий выполнялось (истинно), а другое – не выполнялось (ложно).
  • Логическая операция NOT перед логическим выражением или переменной имеет смысл “отрицание” или “инверсия” и указывает на то, что если данная переменная или выражение истинны, то их отрицание — ложь и наоборот.

Важно: Каждое из простых условий обязательно заключать в скобки.

Пример: Рассмотрим примеры логических операций в логических выражениях в Паскале

12345678 var n:integer;beginn:=6;if (n>5) and (n<10) then writeln(‘истина’);if (n>7) or (n<10) then writeln(‘истина’);if (n>7) xor (n<10) then writeln(‘истина’);if not(n>7) then writeln(‘истина’);end.

var n:integer;beginn:=6;if (n>5) and (n<10) then writeln(‘истина’);if (n>7) or (n<10) then writeln(‘истина’);if (n>7) xor (n<10) then writeln(‘истина’);if not(n>7) then writeln(‘истина’);end.

Пример: Компания набирает сотрудников от 25 до 40 лет включительно. Ввести возраст человека и определить, подходит ли он для данной компании (вывести ответ «подходит» или «не подходит»).
Особенность: надо проверить, выполняются ли два условия одновременно.

Пример: Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».

Открыть решение:
1234567891011 var a,b: integer;begin write(‘Введите A: ‘); read(a); b := a mod 2; if b>0 then writeln(‘true’) else writeln (‘false’)end.

var a,b: integer;begin write(‘Введите A: ‘); read(a); b := a mod 2; if b>0 then writeln(‘true’) else writeln (‘false’)end.

Задача 3. Дано целое число A. Проверить истинность высказывания: «Число A является положительным».

Задача 4. Человек вводит в компьютер число. Если оно находится в интервале от 28 до 30, то нужно напечатать текст ПОПАЛ, если оно больше или равно 30 – то ПЕРЕЛЕТ, если оно находится на отрезке от 0 до 28, то НЕДОЛЕТ, если число меньше нуля — НЕ БЕЙ ПО СВОИМ

Примеры решения задач

Проверить является ли клетка шахматной доски белой

# Два числа выбираются случайным образом (координаты клетки шахматного поля, от 1 до 8)
# Вывести YES, если клетка белая, и NO, если клетка черная
from random import randint
x = randint(1,8)
y = randint(1,8)
print(x, y)
if (x + y) % 2 == 1:
    print(‘YES’)
else:
    print(‘NO’)

Во втором случаем числа вводятся с клавиатуры

x = int(input(‘Введите координату x: ‘))
y = int(input(‘Введите координату y: ‘))
if (x + y) % 2 == 1:
    print(‘YES’)
else:
    print(‘NO’)

Проверить может ли слон ходить с первой шахматной на вторую

# Четыре числа выбираются случайным образом (координаты клетки шахматного поля, от 1 до 8)
# Вывести YES, если ладья может сходить с первой клетки на вторую, и NO, если не может
# Напомню, что ладья ходит так:
# Л ——X
# |
# |
# |
# X
from random import randint
x1 = randint(1, 8)
x2 = randint(1, 8)
y1 = randint(1, 8)
y2 = randint(1, 8)
print(x1, y1)
print(x2, y2)
if x1 == x2 and y1 != y2 or x1 != x2 and y1 == y2:
    print(‘YES’)
else:
    print(‘NO’)

То же самое, но с помощью ввода с клавиатуры

x1 = int(input(‘Введите координату x1: ‘))
x2 = int(input(‘Введите координату y1: ‘))
y1 = int(input(‘Введите координату x2: ‘))
y2 = int(input(‘Введите координату y2: ‘))
if x1 == x2 and y1 != y2 or x1 != x2 and y1 == y2:
    print(‘YES’)
else:
    print(‘NO’)

Задачи для решения

Работа с if-else

Если переменная a равна нулю, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a больше нуля, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a меньше нуля, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a больше или равна нулю, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a меньше или равна нулю, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a не равна нулю, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 1, 0, -3.

Если переменная a равна ‘test’, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном ‘test’, ‘тест’, 3.

Если переменная a равна ‘1’ и по значению и по типу, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном ‘1’, 1, 3.

Работа с логическими переменными

Если переменная test равна true, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при test, равном true, false. Напишите два варианта скрипта – с короткой записью и с длинной.

Если переменная test не равна true, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при test, равном true, false. Напишите два варианта скрипта – с короткой записью и с длинной.

Работа с && (и) и || (или)

Если переменная a больше нуля и меньше 5-ти, то выведите ‘Верно’, иначе выведите ‘Неверно’. Проверьте работу скрипта при a, равном 5, 0, -3, 2.

Если переменная a равна нулю или равна двум, то прибавьте к ней 7, иначе поделите ее на 10. Выведите новое значение переменной на экран. Проверьте работу скрипта при a, равном 5, 0, -3, 2.

Если переменная a равна или меньше 1, а переменная b больше или равна 3, то выведите сумму этих переменных, иначе выведите их разность (результат вычитания). Проверьте работу скрипта при a и b, равном 1 и 3, 0 и 6, 3 и 5.

Если переменная a больше 2-х и меньше 11-ти, или переменная b больше или равна 6-ти и меньше 14-ти, то выведите ‘Верно’, в противном случае выведите ‘Неверно’.

На switch-case

Переменная num может принимать 4 значения: 1, 2, 3 или 4. Если она имеет значение ‘1’, то в переменную result запишем ‘зима’, если имеет значение ‘2’ – ‘весна’ и так далее. Решите задачу через switch-case.

Задачи

В переменной day лежит какое-то число из интервала от 1 до 31. Определите в какую декаду месяца попадает это число (в первую, вторую или третью).

В переменной month лежит какое-то число из интервала от 1 до 12. Определите в какую пору года попадает этот месяц (зима, лето, весна, осень).

Дана строка, состоящая из символов, например, ‘abcde’. Проверьте, что первым символом этой строки является буква ‘a’. Если это так – выведите ‘да’, в противном случае выведите ‘нет’.

Дана строка с цифрами, например, ‘12345’. Проверьте, что первым символом этой строки является цифра 1, 2 или 3. Если это так – выведите ‘да’, в противном случае выведите ‘нет’.

Дана строка из 3-х цифр. Найдите сумму этих цифр. То есть сложите как числа первый символ строки, второй и третий.

Дана строка из 6-ти цифр. Проверьте, что сумма первых трех цифр равняется сумме вторых трех цифр. Если это так – выведите ‘да’, в противном случае выведите ‘нет’.

Построение блок-схем по коду Паскаль

Теперь настало время вспомнить о том, что такое блок-схемы.
Блок схема – ориентированный граф, указывающий на последовательность операций, приводящую к решению поставленной задачи.

Существуют управляющие структуры трех типов:

Две из трех представленных структур блок-схемы мы уже можем перевести в код Pascal.

Пример: Составить блок-схему вычисления значения величины С, определяемое по формулам: С=A+B, если A и C=A-B, если A>B.

Результат:
блок схема ветвление

Задача 5. Составить блок-схему решения задачи 3

Пример: автобусный билет считают счастливым, если сумма трех первых цифр билета равна сумме трех последних цифр. Требуется составить блок-схему алгоритма определения билета, имеющего счастливый номер.

Открыть решение:
блок-схема с ветвлением

Задача 6. По составленной выше блок-схеме решить задачу на Pascal

Задача 7.

Дано двузначное целое число. Вывести сумму и произведение его цифр. Проверьте правильность вашей программы. Для нахождения цифр числа использовать операцию взятия остатка

mod

и операцию целочисленного деления

div

. Модуль числа – функция

abs()

.

Пример результата:

Введите двузначное число: -12Сумма цифр = 3Произведение цифр = 2

Задача 8.

Дано трёхзначное целое число. Вывести все его цифры (порядок не имеет значения). Проверьте правильность вашей программы. Для нахождения цифр числа использовать операцию взятия остатка

mod

и операцию целочисленного деления

div

.

Пример результата:

Введите трёхзначное число: -123Разряд сотен: 1Разряд десяток: 2Разряд единиц: 3

Решение задач

1. Пользователь вводит два целых числа. Выведите меньшее из них.

2. Пользователь вводит свое имя и возраст. Если возраст пользователя больше 18, то вывести строку “Добрый вечер, name! Вы совершеннолетний, поздравляем!”, иначе вывести строку “Привет, name! Приносим извинения, но вы не можете гулять после 22:00”. Пример:

# name = ‘Ivan’
# age = 21
>>> Добрый вечер, Ivan! Вы совершеннолетний, поздравляем!

# name = ‘Max’
# age = 14
>>> Привет, Max! Приносим извинения, но вы не можете гулять после 22:00

3. Пользователь вводит три строки. Одна из них равна строке “Python”, выведите номер этой строки.

4. Пользователь вводит три целых числа. Два из них равны друг другу. Выведите третье число, не равное остальным. Если среди введенных чисел не оказалось двух равных друг другу, выведите строку “Ошибка”.

5. Пользователь вводит целое число. Проверьте является ли это число четырехзначным, если является, то выведите строку “Успешно”, иначе “Неудача”.

6. Пользователь вводит целое число – текущее время в часах. Если количество часов находится между 7 и 10, то программа должна вывести строку “Пора вставать!”, иначе выведется строка “Ты проспал!”. Если введенное число отрицательно или больше 23, то программа должна вывести строку “Ошибка”.

7. Пользователь вводит текущее время в часах. Если количество часов находится в диапазоне от 0 до 7, то программа выводит строку “Ночь”. Если часовая стрелка находится между 7 и 11, то выведется строка “Утро”. От 12 до 17 выведется строка “День”. Если текущее время находится между 17 и 23, то программа должна вывести строку “Вечер”. В случае, когда введенное число отрицательно или превосходит 23, программа должна вывести строку “Ошибка”.

8. Пользователь вводит строку – название времени года. Если введенная строка – это лето, то выведите строку “Тополинный пух, жара, июль”, если зима, то “Снеговик, снежки и горка”, если осень, то “Пора в школу!”, если весна, то “Весенняя капель”. В случае, если введенная строка не равна ни одному из предложенных вариантов, программа должна выводить строку “Ошибка”.

9. Пользователь вводит целое число – номер месяца своего рождения. Выведите строку “Вы родились летом”, если номер месяц совпадает с номером одного из летних месяцев. Если номер месяца совпал с номером одного из зимних месяцев, то нужно вывести “К холодам вам не привыкать”. Для людей, которые празднуют свой день рождения осенью выведите “Я тоже люблю осенний листопад”. Если весна ваше время года выведите строку “Подснежник”. В случае, если введенное число меньше единицы или больше 12, выведите строку “Ошибка”.

10. Пользователь вводит номер года своего рождения. Если этот год является високосным выведите “Вы случайно родились не 29 февраля?”, иначе выведите “Ничего необычного”.
Для справки, в високосном году 366 дней, а в обычном – 365. Номер високосного года, делится на 4, за исключением номеров тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 – являются).

11. Пользователь вводит целое число. Выведите его строку-описание вида “отрицательное четное число”, “нулевое число”, “положительное нечетное число”, например, численным описанием числа 190 является строка “положительное четное число”.

12. Дано целое число, лежащее в диапазоне от 1 до 999. Если число двузначное, выведите строку “Двузначное”, если число содержит одну значащую цифру, то выведите строку “Цифра”, если число является трехзначным выведите “Трехзначное”. В случае, если введенное число меньше 0 или больше 999, выведите строку “Ошибка!”.

13. Шахматный король ходит по горизонтали, вертикали и диагонали, но только на 1 клетку. Даны две различные клетки шахматной доски, определите, может ли король попасть с первой клетки на вторую одним ходом. Программа получает на вход четыре числа от 1 до 8 каждое, задающие номер столбца и номер строки сначала для первой клетки, потом для второй клетки. Программа должна вывести YES, если из первой клетки ходом короля можно попасть во вторую или NO в противном случае. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку “Ошибка!”.

14. Шахматный ферзь ходит по диагонали, горизонтали или вертикали. Даны две различные клетки шахматной доски, определите, может ли ферзь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку “Ошибка!”.

15. Шахматный конь ходит буквой “Г” – на две клетки по вертикали в любом направлении и на одну клетку по горизонтали, или наоборот. Даны две различные клетки шахматной доски, определите, может ли конь попасть с первой клетки на вторую одним ходом. В случае, если хотя бы одно из введенных чисел не лежит в диапазоне от 1 до 8, выведите строку “Ошибка!”.

16. Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей. Дано a, b, c – стороны предполагаемого треугольника. Требуется сравнить длину каждого отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше суммы двух других, то треугольника с такими сторонами не существует.

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...