- •Лекция № 2
- •Введение
- •1. Основные синтаксические и семантические правила
- •1.1. Общая структура программы и данных
- •1.2. Типы данных, их организация в памяти и литералы
- •1.3. Ввод и вывод значений
- •1.4. Литералы значений
- •Литералы целых чисел
- •Литералы вещественных чисел
- •Перевод чисел в системы с другим основанием
- •Строковые литералы
- •Литералы массивов
- •Литералы объектов
- •1.5. Операции и выражения
- •Арифметические операции
- •Строковые операции
- •Операции сравнения
- •Компонентные операции
- •Операции присваивания
- •Другие операции
- •Синтаксис и семантика выражений
- •1.6. Дополнительные понятия и правила синтаксиса Ограничения на идентификаторы
- •Комментарии
- •Лексемы, пробельные символы и комментарии
- •2. Регулярные структуры данных
- •2.1. Многомерные массивы
- •2.2. Рекурсивные структуры объектов
- •Деревья
Литералы вещественных чисел
Вещественные числа (чисел с плавающей точкой) в языке JavaScriptзаписываются только в десятичной системе и состоят из следующих друг за другом частей (без каких бы то ни было разрывов и пробелов):
целая часть
. дробная часть
латинская буква e или E («экспонента» – признак порядка)
возможный знак порядка (+ или –)
порядок
Здесь целая часть,дробная частьипорядок– произвольные непустые последовательности десятичных цифр (0 – 9). Всё изображённое литералом число – это число, изображённое перед порядком, умноженное на 10n, гдеn– это порядок со своим знаком.
Во всей этой записи вещественного числа обязательно должны присутствовать только целая или дробная часть (с точкой), а также точка или e вместе с порядком. Так, литералами вещественного числа 0 являются0., .0, 0е1. В них уже нельзя удалить ни одного символа.
Например, число 3.14 можно записать в виде литералов
3.14, 0.314e1, .314e+1, 314E-2, 314.0e-2, 314.e-2
Формальный синтаксис:
Вещественное→ Десятичное.Десятичное Е Знак Десятичное │ .Десятичное Е Знак Десятичное │ Десятичное Е Знак Десятичное
Е→ e │ E
Знак → + │ -
Буквы eиE– латинские.
Перевод чисел в системы с другим основанием
Любой числовой литерал, встреченный интерпретатором в программе, сразу переводится во внутреннюю числовую систему, а функция alertпереводит из внутренней системы в десятичную. Например, операторalert(010)выдаст на экран число 8, аalert(0х10)выдаст на экран 16.JavaScriptс помощью специальных функций (методов) позволяет вводить и выводить числа в системах счисления с любым основанием от 2 до 36.
Позиционная система счисления с основанием p>1, илиp-ичная (p‑ричная) числовая система – это система сpцифрами, соответствующими числам 0, 1, …,p–1. Записьan…a2a1a0.a-1a-2a-3…a-m, гдеai– цифры,m, n > 0, обозначает в этой системе число, полученное по формуле.
Пример. 11.00100011112= 21+ 20+ 2-3+ 2-7+ 2-8+ 2-9+ 2-10= 3 + (27+ 23+ 22+ 21+ 20) / 210= 3 + 143 / 1024 = 3.139648437510≈ π.
В JavaScriptдля цифр во всех 35 числовых системах (с основанием от 2 до 36) предлагает использовать цифры из таблицы 2.1 (здесь регистр не играет роли).
Таблица 2.1.
Цифры в языке JavaScript
Цифра |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
A a |
B b |
C c |
D d |
E e |
F f |
G g |
H h |
Число10 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
Цифра |
I i |
J j |
K k |
L l |
M m |
N n |
O o |
P p |
Q q |
R r |
S s |
T t |
U u |
V v |
W w |
X x |
Y y |
Z z |
Число10 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
Чтобы с помощью alertвывести на экран какое-нибудь число не в десятичной системе, нужно воспользоваться встроенным7методомtoString, который значение любого типа преобразует в строку. В случае применения метода к числу его синтаксис имеет вид
числовое_выражение.toString(основание)
Здесь числовое_выражение– любое выражение, выдающее число, которое надо преобразовать в числовую систему с основанием, которое определяется выражениемоснование. Метод работает и для целых, и для вещественных чисел.
Примеры. 1) Операторalert((3.14).toString(2))выдаст на экран двоичное число 11.0010001111…, которое приближённо равно 3.1410.
2) Оператор alert((0х10+0хА0).toString(Х))выдаст при Х=16 шестнадцатеричное числоb0, при Х=10 – десятичное число 176, при Х=2 – двоичное число 10110000, при Х=32 – 32-ричное число 5g.
Если нужно целое р-ичное число выдать на экран в 10-й системе, можно ввести его с клавиатуры с помощью функцииprompt, преобразовать его во внутреннюю числовую систему с помощью встроенной функцииparseInt(«распознать целое»)8и выдать на экран функциейalert.
Для ввода целого или вещественного числа с клавиатуры с помощью функции promptнужно воспользоваться функциейparseIntилиparseFloat(строка), соответственно.
Вызов функции parseInt имеет синтаксис
parseInt(числовая_строка[,основание])
Здесь числовая_строка– выражение, выдающее строку, в которой нужно распознать запись числа в системе с основанием, заданным выражениемоснование. Если второй аргумент функции отсутствует, основание считается равным 10.
Пример. Оператор
alert(parseInt(prompt("36-ричное число",""),36))
запрашивает 36-ричное число и после ввода числа zyxвыдаёт на экран 46617. Проверяем: 100036= 363= 46656,zyx36= 100036– 1336= 46656 – 39 = 46617.