57. Условный оператор if. Оператор выбора case. Массивы.
Иногда, в зависимости от условия, нужно выполнить различные действия. Для этого используется оператор if.
Например:
var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');
if (year != 2011) alert( 'А вот и неправильно!' );
Оператор if
Оператор if («если») получает условие, в примере выше это year != 2011. Он вычисляет его, и если результат — true, то выполняет команду.
Если нужно выполнить более одной команды — они оформляются блоком кода в фигурных скобках:
if (year != 2011) {
alert( 'А вот..' );
alert( '..и неправильно!' );
}
Рекомендуется использовать фигурные скобки всегда, даже когда команда одна.
Это улучшает читаемость кода.
Преобразование к логическому типу
Оператор if (...) вычисляет и преобразует выражение в скобках к логическому типу.
В логическом контексте:
Число 0, пустая строка "", null и undefined, а также NaN являются false,
Остальные значения — true.
Например, такое условие никогда не выполнится:
if (0) { // 0 преобразуется к false
...
}
…А такое — выполнится всегда:
if (1) { // 1 преобразуется к true
...
}
Можно и просто передать уже готовое логическое значение, к примеру, заранее вычисленное в переменной:
var cond = (year != 2011); // true/false
if (cond) {
...
}
Неверное условие, else
Необязательный блок else («иначе») выполняется, если условие неверно:
var year = prompt('Введите год появления стандарта ECMA-262 5.1', '');
if (year == 2011) {
alert( 'Да вы знаток!' );
} else {
alert( 'А вот и неправильно!' ); // любое значение, кроме 2011
}
Несколько условий, else if
Бывает нужно проверить несколько вариантов условия. Для этого используется блок else if .... Например:
var year = prompt('В каком году появилась спецификация ECMA-262 5.1?', '');
if (year < 2011) {
alert( 'Это слишком рано..' );
} else if (year > 2011) {
alert( 'Это поздновато..' );
} else {
alert( 'Да, точно в этом году!' );
}
В примере выше JavaScript сначала проверит первое условие, если оно ложно — перейдет ко второму — и так далее, до последнего else.
Оператор вопросительный знак '?'
Иногда нужно в зависимости от условия присвоить переменную. Например:
var access;
var age = prompt('Сколько вам лет?', '');
if (age > 14) {
access = true;
} else {
access = false;
}
alert(access);
Оператор вопросительный знак '?' позволяет делать это короче и проще.
Он состоит из трех частей:
условие ? значение1 : значение2
Проверяется условие, затем если оно верно — возвращается значение1, если неверно — значение2, например:
access = (age > 14) ? true : false;
Оператор '?' выполняется позже большинства других, в частности — позже сравнений, поэтому скобки можно не ставить:
access = age > 14 ? true : false;
…Но когда скобки есть — код лучше читается. Так что рекомендуется их писать.
Оператор выбора CASE
Ранее Вы познакомились с условным оператором If, который позволяет программе выполнять переходы на ту или иную ветвь по значению булева условия. Используя несколько операторов If, можно производить ветвление по последовательности условий. В приведенном фрагменте показано, как при помощи ряда операторов If можно преобразовать целое число (в диапазоне 0-9) к его словесному представлению:
if Ziphra = 0
then
write ('Нуль');
if Ziphra = 1
then
write ('Единица');
if Ziphra = 2
then
write ('Два');
и т.д.
Вы уже, наверное, представили, насколько этот подход однообразный и утомительный. Язык Паскаль предоставляет для этих целей другую управляющую структуру (оператор выбора case), которая позволяет построить ветвление по ряду условий в форме, более удобной для чтения программ.
Оператор выбора позволяет выбрать одно из нескольких возможных продолжений программы. Параметром, по которому осуществляется выбор, служит так называемый ключ выбора (или селектор) - выражение любого типа (кроме типов REAL и STRING).
Общая форма записи следующая:
case Выражение of
значение1 : оператор (группа операторов);
значение2 : оператор (группа операторов);
. . . . . . . . . . . . . . . . . . . . . .
значениеN : оператор (группа операторов)
else оператор (группа операторов);
end;
Оператор выбора работает следующим образом. Сначала вычисляется значение выражения, стоящего после зарезервированного слова case, а затем выполняется оператор (или составной оператор), соответствующий результату вычисления выражения.
Может случиться, что в списке выбора не окажется константы, равной вычисленному значению ключа. В этом случае управление передается оператору, стоящему за словом ELSE.
Например,
case NUMBER mod 2 of
0 : writeln (NUMBER, '- число четное')
else writeln (NUMBER, '- число нечетное');
end;
Если один оператор выполняется при нескольких значениях, то их можно перечислить через запятую.
case MONTH of
1, 2, 3 : writeln ('Первый квартал');
4, 5, 6 : writeln ('Второй квартал');
7, 8, 9 : writeln ('Третий квартал');
10, 11, 12 : writeln ('Четвёртый квартал');
end;
Оператором может являться не только простой оператор, но также составной и пустой операторы.
case CODE of
1 : for i := 1 to 5 do
writeln ('*******');
2 : begin {составной оператор}
x:=sqr(y-1);
writeln (x);
end;
3 : {пустой оператор}
end;
Любому заданному значению селектора соответствует лишь один вход в списке операторов. Константы должны принадлежать тому же типу, что и селектор. Если селектор принимает значение, которому не соответствует ни один вход, то будет выполняться оператор, следующий за словом else. Если же этого оператора нет, то никакие альтернативы не будут выполняться.
Если оператор должен выполняться при нескольких последовательных значениях селектора, образующих некоторый промежуток, можно использовать следующую форму записи:
case Chislo of
0..9 : write ('Это число является цифрой');
Посмотрите, как применен оператор выбора при решении следующей задачи:
Задача. Написать программу преобразования цифр в слова.
Program Number1;
Var
a : integer;
Begin
writeln('Введите цифру ');
readln(a);
if (a<0) or (a>9)
then
writeln ('Это число не является цифрой')
else
case a of
0 : writeln ('ноль');
1 : writeln ('один');
2 : writeln ('два');
3 : writeln ('три');
4 : writeln ('четыре');
5 : writeln ('пять');
6 : writeln ('шесть');
7 : writeln ('семь');
8 : writeln ('восемь');
9 : writeln ('девять');
end;
readln;
End.
Program Number2;
Var
a : integer;
Begin
writeln('Введите цифру ');
readln(a);
case a of
0 : writeln ('ноль');
1 : writeln ('один');
2 : writeln ('два');
3 : writeln ('три');
4 : writeln ('четыре');
5 : writeln ('пять');
6 : writeln ('шесть');
7 : writeln ('семь');
8 : writeln ('восемь');
9 : writeln ('девять')
else writeln ('Это число не является цифрой');
end;
readln;
End.
Массив (в некоторых языках программирования также таблица, ряд, матрица) — набор компонентов (элементов), расположенных в памяти непосредственно друг за другом, доступ к которым осуществляется по индексу (индексам). В отличие от списка, массив является структурой с произвольным доступом[1].
Размерность массива — количество индексов, необходимое для однозначного доступа к элементу массива[2][3].
Форма или структура массива — количество размерностей и размер (протяжённость) массива для каждой размерности[4], может быть представлен одномерным массивом[5].
В языке программирования APL массив является основным типом данных (при этом нуль-мерный массив называется скаляром, одномерный — вектором, двумерный — матрицей)[5].
- 1. Информатика. Предмет информатики. Основные задачи информатики.
- 2. Понятие сообщения, данных, сигнала.
- 3. Атрибутивные свойства информации.
- 4. Показатели качества информации, формы и способы представления информации.
- 5. Системы передачи информации.
- 6. Кодирование информации (текст, числа, цвет, графика, звук).
- 7. Позиционные системы счисления. Двоичное кодирование.
- 8. Меры и единицы количества и объема информации. Энтропия.
- 9. Логические основы эвм.
- 10. Логические операции: дизъюнкция, конъюнкция, отрицание, импликация, эквивалентность.
- 11. Предикаты. Операнды. Законы логического вывода.
- 12. История развития эвм. Поколения вычислительных средств.
- 13. Понятие и основные виды архитектуры эвм.
- 14. Архитектура эвм по Фон Нейману.
- 15. Состав и назначение основных элементов персонального компьютера, их характеристики.
- 16. Центральный процессор, системная шина.
- 17. Хранение информации: запоминающие устройства.
- 18. Озу, пзу, винчестер, накопители на гибких и компакт-дисках, стример, флэш.
- 19. Устройства ввода/вывода данных, их разновидности и основные характеристики.
- 20. Координатные устройства ввода. Видео- и звуковые адаптеры. Мониторы.
- 21. Сканеры. Принтеры. Плоттеры.
- 22. Программы и их типы. Понятие программного обеспечения.
- 23. Понятие системного программного обеспечения: назначение, возможности, структура.
- 24. Операционная система. Назначение, типы, особенности.
- 25. Утилиты (драйверы).
- 26. Файловая структура операционных систем. Операции с файлами.
- 27. Понятие служебного программного обеспечения.
- 28. Архиваторы, диспетчеры файлов, средства диагностики компьютера.
- 29. Прикладные программы их разновидности.
- 30. Технологии обработки текстовой информации.
- 31. Основы машинной графики: растровая, векторная, трехмерная.
- 32. Электронные таблицы.
- 33. Электронные презентации.
- 34. Основы баз данных и знаний.
- 35. Автоматизированный банк данных. Его функции и составляющие.
- 36. Системы управления базами данных. Модели данных.
- 37. Моделирование как метод познания. Понятие модели. Типы моделирования.
- 38. Классификация и формы представления моделей. Формализация.
- 39. Информационная модель объекта. Типы информационных моделей.
- 40. Методы и технологии моделирования. Требования к моделированию.
- 41. Компьютерное моделирование.
- 42. Алгоритмизация. Понятие алгоритма, его свойства.
- 43. Формы представления алгоритмов. Блок-схема алгоритма.
- 44. Основные алгоритмические конструкции. Базовые алгоритмы.
- 45. Программы линейной структуры.
- 46. Операторы ветвления.
- 47. Циклы. Виды и блок-схемы.
- 48. Интегрированные среды программирования.
- 49. Языки программирования высокого уровня.
- 50. Основные элементы языков программирования.
- 51. Эволюция и классификация языков программирования: неструктурные, структурные, логические, функциональные, объектно-ориентированные, языки программирования для баз данных и Интернета.
- 52. Структуры и типы данных языка программирования.
- 53. Тестирование программного обеспечения.
- 54. Этапы разработки программного обеспечения.
- 55. Структурное программирование на языке Паскаль. Типы данных.Константы. Переменные.
- 56. Операторы ввода, вывода в Паскале. Операторы циклов while, for, repeat.
- 57. Условный оператор if. Оператор выбора case. Массивы.
- 58. История создания компьютерных сетей.
- 59. Сетевые технологии обработки данных.
- 60. Основы компьютерной коммуникации.
- 61. Классификации вычислительных сетей.
- 62. Коммуникационное оборудование. Технология клиент-сервер.
- 63. Принципы построения вычислительных сетей. Основные топологии компьютерных сетей.
- 64. Интернет. Сетевой сервис и сетевые стандарты. Протокол tcp/ip.
- 65. Принцип работы в сети Интернет. Адресация в Интернете. Система доменных имен dns.
- 66. Программы для работы в Интернете. Сервис World Wide Web.
- 67. Язык разметки гипертекста (html).
- 68. Информационно-поисковые системы и каталоги. Поиск информации.
- 69. Электронная почта.
- 70. Защита информации в локальных и глобальных компьютерных сетях.
- 71. Шифрование данных. Электронная подпись.