-
Постов
2 -
Зарегистрирован
-
Посещение
Никогда -
Победитель дней
2
Тип контента
Форумы
Блоги
Статьи
Правила и Условия
Новости сайта
Вакансии \ Резюме
Раздел Продаж
Загрузки
Галерея
Магазин
Отзывы профиля
Сообщения, опубликованные nulled
-
-
Автор: И.В. Симдянов
Издательство: БХВ-Петербург
Серия: Самоучитель
Жанр: Компьютерная литература
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Черно-белые
ОПИСАНИЕ:
Язык Ruby излагается последовательно от простого к сложному. Описываются интерпретатор Ruby, утилиты, детально рассматривается современная Ruby-экосистема, работа со стандартной и сторонними библиотеками. Дан разбор синтаксических конструкций: операторов, переменных, констант, конструкций ветвления и циклов, блоков и итераторов. Подробно описаны объектно-ориентированные возможности Ruby: классы, модули, объекты и методы. Показано практическое применение языка Ruby в веб-программировании и автоматическом тестировании. Для закрепления материала в конце глав приводятся задания. С помощью книги можно не только освоить язык Ruby, но и подготовиться к работе с профессиональными фреймворками: Ruby on Rails, Sinatra, RSpec, MiniTest и Cucumber. Опытных разработчиков может заинтересовать подробное описание нововведений версий от 2.0 до 2.6. Электронный архив с исходными кодами доступен на сайте издательства и GitHubОГЛАВЛЕНИЕ:
СпойлерОглавление Предисловие ................................................................................................................... 13 Цель книги ...................................................................................................................................... 13 Как создавалась книга... ................................................................................................................ 13 Терминология ................................................................................................................................ 14 Исходные коды .............................................................................................................................. 14 Задания ........................................................................................................................................... 15 Типографские соглашения ............................................................................................................ 15 Благодарности ................................................................................................................................ 16 Глава 1. Введение в язык Ruby .................................................................................. 19 1.1. Философия Ruby ..................................................................................................................... 19 1.2. Реализации Ruby ..................................................................................................................... 21 1.3. Версии...................................................................................................................................... 23 1.4. Установка Ruby ....................................................................................................................... 24 1.4.1. Установка Ruby в Windows ......................................................................................... 24 1.4.2. Установка Ruby в Linux (Ubuntu) ................................................................................ 26 1.4.2.1. Менеджер версий RVM .................................................................................. 26 1.4.2.2. Менеджер версий rbenv .................................................................................. 28 1.4.3. Установка Ruby в macOS ............................................................................................. 29 1.5. Запуск программы на выполнение ........................................................................................ 30 Задания ........................................................................................................................................... 31 Глава 2. Быстрый старт ............................................................................................... 33 2.1. Соглашения Ruby .................................................................................................................... 33 2.2. Комментарии ........................................................................................................................... 34 2.3. Элементы языка ...................................................................................................................... 35 2.3.1. Ключевые слова ........................................................................................................... 36 2.3.2. Переменные .................................................................................................................. 37 2.3.3. Константы ..................................................................................................................... 37 2.3.4. Объекты ........................................................................................................................ 38 2.3.5. Классы и модули .......................................................................................................... 39 2.3.6. Методы .......................................................................................................................... 40 2.3.7. Операторы..................................................................................................................... 40 4 Оглавление 2.4. Вывод в стандартный поток .................................................................................................. 41 2.4.1. Вывод при помощи методов puts и p .......................................................................... 41 2.4.2. Экранирование ............................................................................................................. 42 2.5. Как пользоваться документацией? ........................................................................................ 43 2.5.1. Справочные методы объектов ..................................................................................... 44 2.5.2. Консольная справка ..................................................................................................... 45 2.5.3. Online-документация .................................................................................................... 46 Задания ........................................................................................................................................... 46 Глава 3. Утилиты и гемы ............................................................................................ 47 3.1. Утилиты ................................................................................................................................... 47 3.2. Интерактивный Ruby .............................................................................................................. 48 3.3. Шаблонизатор erb ................................................................................................................... 50 3.4. Утилита rake ............................................................................................................................ 50 3.5. Утилита rdoc ........................................................................................................................... 53 3.6. Гемы ......................................................................................................................................... 54 3.6.1. Отладка программ при помощи гема pry ................................................................... 56 3.6.2. Контроль стиля кода при помощи гема rubocop ....................................................... 57 3.6.3. Управление гемами при помощи bundler ................................................................... 58 Задания ........................................................................................................................................... 63 Глава 4. Предопределенные классы .......................................................................... 65 4.1. Синтаксические конструкторы .............................................................................................. 65 4.2. Строки. Класс String ............................................................................................................... 67 4.2.1. Синтаксические конструкторы %q и %Q ................................................................... 67 4.2.2. Heredoc-оператор ......................................................................................................... 68 4.2.3. Выполнение команд операционной системы............................................................. 69 4.2.4. Устройство строки ....................................................................................................... 70 4.2.5. Обработка подстрок ..................................................................................................... 71 4.3. Символы. Класс Symbol .......................................................................................................... 73 4.4. Целые числа. Класс Integer .................................................................................................... 74 4.5. Вещественные числа. Класс Float ......................................................................................... 76 4.6. Диапазоны. Класс Range ........................................................................................................ 79 4.7. Массивы. Класс Array ............................................................................................................ 81 4.7.1. Создание массива ......................................................................................................... 81 4.7.2. Операции с массивами ................................................................................................. 81 4.7.3. Синтаксические конструкторы %w и %i .................................................................... 82 4.8. Хэши. Класс Hash ................................................................................................................... 83 4.9. Логические объекты true и false ............................................................................................ 84 4.10. Объект nil .............................................................................................................................. 85 Задания ........................................................................................................................................... 85 Глава 5. Переменные .................................................................................................... 87 5.1. Типы переменных ................................................................................................................... 87 5.1.1. Локальные переменные ............................................................................................... 87 5.1.2. Глобальные переменные .............................................................................................. 89 5.1.2.1. Предопределенная переменная $LOAD_PATH ............................................ 91 5.1.2.2. Предопределенная переменная $stdout ......................................................... 91 5.1.2.3. Предопределенная переменная $PROGRAM_NAME ................................... 92 Оглавление 5 5.1.3. Инстанс-переменные.................................................................................................... 93 5.1.4. Переменные класса ...................................................................................................... 96 5.2. Присваивание .......................................................................................................................... 97 5.3. Клонирование .......................................................................................................................... 99 Задания ......................................................................................................................................... 101 Глава 6. Константы ..................................................................................................... 103 6.1. Создание и определение констант ....................................................................................... 103 6.2. Предопределенные константы ............................................................................................. 104 6.3. Ключевые слова __LINE__ и __FILE__ .............................................................................. 107 6.4. Метод require ........................................................................................................................ 107 6.5. Метод require_relative .......................................................................................................... 109 6.6. Подключение стандартных классов .................................................................................... 110 6.7. Подключение гемов .............................................................................................................. 111 Задания ......................................................................................................................................... 113 Глава 7. Операторы .................................................................................................... 115 7.1. Операторы — это методы .................................................................................................... 115 7.2. Арифметические операторы ................................................................................................ 116 7.3. Присваивание ........................................................................................................................ 117 7.3.1. Сокращенная форма арифметических операторов ................................................. 117 7.3.2. Параллельное присваивание ..................................................................................... 118 7.3.3. Круглые скобки в параллельном присваивании ...................................................... 119 7.3.4. Оператор * .................................................................................................................. 120 7.4. Операторы строк ................................................................................................................... 122 7.4.1. Умножение строки на число ..................................................................................... 122 7.4.2. Сложение строк .......................................................................................................... 123 7.4.3. Форматирование строк .............................................................................................. 124 7.5. Операторы сравнения ........................................................................................................... 128 7.5.1. Особенности сравнения объектов ............................................................................. 129 7.5.2. Сравнение с нулем ..................................................................................................... 131 7.5.3. Особенности сравнения вещественных чисел ......................................................... 132 7.5.4. Особенности сравнения строк ................................................................................... 132 7.6. Поразрядные операторы ...................................................................................................... 134 7.7. Оператор безопасного вызова ............................................................................................. 138 7.8. Ключевое слово defined? ...................................................................................................... 139 7.9. Приоритет операторов ......................................................................................................... 140 Задания ......................................................................................................................................... 141 Глава 8. Ветвление ...................................................................................................... 143 8.1. Ключевое слово if ................................................................................................................. 143 8.1.1. Ключевые слова else и elsif ........................................................................................ 145 8.1.2. Ключевое слово then .................................................................................................. 146 8.1.3. if-модификатор ........................................................................................................... 147 8.1.4. Присваивание if-результата переменной .................................................................. 148 8.1.5. Присваивание в условии if-оператора ...................................................................... 149 8.2. Логические операторы ......................................................................................................... 150 8.2.1. Логическое И. Оператор && ..................................................................................... 151 8.2.2. Логическое ИЛИ. Оператор || ................................................................................... 151 8.2.3. Логическое отрицание ............................................................................................... 154 6 Оглавление 8.3. Ключевое слово unless.......................................................................................................... 155 8.4. Условный оператор .............................................................................................................. 156 8.5. Ключевое слово case ............................................................................................................ 156 8.6. Советы ................................................................................................................................... 159 Задания ......................................................................................................................................... 161 Глава 9. Глобальные методы .................................................................................... 163 9.1. Создание метода ................................................................................................................... 163 9.2. Параметры и аргументы ....................................................................................................... 164 9.2.1. Значения по умолчанию ............................................................................................ 165 9.2.2. Неограниченное количество параметров ................................................................. 165 9.2.3. Позиционные параметры ........................................................................................... 167 9.2.4. Хэши в качестве параметров ..................................................................................... 167 9.3. Возвращаемое значение ....................................................................................................... 168 9.4. Получатель метода ............................................................................................................... 170 9.5. Псевдонимы методов ........................................................................................................... 172 9.6. Удаление метода ................................................................................................................... 172 9.7. Рекурсивные методы ............................................................................................................ 172 9.8. Предопределенные методы .................................................................................................. 175 9.8.1. Чтение входного потока ............................................................................................ 175 9.8.2. Остановка программы ............................................................................................... 177 9.8.3. Методы-конструкторы ............................................................................................... 179 9.9. Логические методы ............................................................................................................... 180 9.10. bang-методы ........................................................................................................................ 181 Задания ......................................................................................................................................... 182 Глава 10. Циклы .......................................................................................................... 183 10.1. Цикл while............................................................................................................................ 183 10.2. Вложенные циклы .............................................................................................................. 188 10.3. Досрочное прекращение циклов ....................................................................................... 189 10.4. Цикл until ............................................................................................................................. 191 10.5. Цикл for ............................................................................................................................... 192 Задания ......................................................................................................................................... 193 Глава 11. Итераторы................................................................................................... 195 11.1. Итераторы и блоки ............................................................................................................. 195 11.2. Обход итераторами массивов и хэшей ............................................................................. 196 11.3. Итератор times ..................................................................................................................... 197 11.4. Итераторы upto и downto.................................................................................................... 198 11.5. Итераторы коллекций ......................................................................................................... 198 11.5.1. Итератор each ......................................................................................................... 199 11.5.2. Итератор each_with_index ...................................................................................... 200 11.5.3. Итератор map .......................................................................................................... 200 11.5.4. Итераторы select и reject ........................................................................................ 201 11.5.5. Итератор reduce ...................................................................................................... 203 11.5.6. Итератор each_with_object ..................................................................................... 204 11.6. Итератор tap ........................................................................................................................ 205 11.7. Сокращенная форма итераторов ....................................................................................... 207 Оглавление 7 11.8. Досрочное прекращение итерации .................................................................................... 207 11.9. Класс Enumerator ................................................................................................................ 209 Задания ......................................................................................................................................... 210 Глава 12. Блоки ........................................................................................................... 211 12.1. Блоки в собственных методах ........................................................................................... 211 12.2. Передача значений в блок .................................................................................................. 213 12.3. Метод block_given? ............................................................................................................. 215 12.4. Возврат значений из блока ................................................................................................. 215 12.5. Итератор yield_self .............................................................................................................. 216 12.6. Передача блока через параметр ......................................................................................... 217 12.7. Различие { ... } и do ... end .................................................................................................. 219 12.8. Блоки в рекурсивных методах ........................................................................................... 221 12.9. Класс Proc ........................................................................................................................... 225 12.10. Методы proc и lambda ...................................................................................................... 226 12.11. Различия proc и lambda .................................................................................................... 227 Задания ......................................................................................................................................... 230 Глава 13. Классы ......................................................................................................... 231 13.1. Создание класса .................................................................................................................. 231 13.2. Класс — это объект ............................................................................................................ 232 13.3. Как проектировать классы? ............................................................................................... 234 13.4. Переопределение методов ................................................................................................. 234 13.5. Открытие класса ................................................................................................................. 235 13.6. Тело класса и его свойства................................................................................................. 237 13.7. Вложенные классы ............................................................................................................. 238 13.8. Константы ........................................................................................................................... 240 13.9. Переменные класса ............................................................................................................. 241 Задания ......................................................................................................................................... 243 Глава 14. Методы в классах ...................................................................................... 245 14.1. Сохранение состояния в объекте ....................................................................................... 245 14.2. Установка начального состояния объекта ........................................................................ 246 14.2.1. Метод initialize ........................................................................................................ 247 14.2.2. Параметры метода new........................................................................................... 250 14.2.3. Блоки в методе new ................................................................................................ 254 14.2.4. Метод initialize и переменные класса ................................................................... 255 14.2.5. Как устроен метод new? ......................................................................................... 255 14.3. Специальные методы присваивания ................................................................................. 256 14.3.1. Методы со знаком равенства (=) в конце имени ................................................. 257 14.3.2. Аксессоры ............................................................................................................... 259 14.4. Синглетон-методы .............................................................................................................. 261 14.5. Методы класса .................................................................................................................... 264 14.6. Обработка несуществующих методов .............................................................................. 266 14.6.1. Создание метода define_method ............................................................................. 267 14.6.2. Перехват вызовов несуществующих методов ...................................................... 268 14.7. Метод send ........................................................................................................................... 270 Задания ......................................................................................................................................... 275 8 Оглавление Глава 15. Преобразование объектов ........................................................................ 277 15.1. Сложение строк и чисел ..................................................................................................... 277 15.2. Методы преобразования объектов .................................................................................... 278 15.3. Сложение объектов ............................................................................................................. 282 15.4. Сложение объекта и числа ................................................................................................. 283 15.5. Сложение объекта и строки ............................................................................................... 286 15.6. Сложение объекта и массива ............................................................................................. 289 15.7. Перегрузка [] и []= ............................................................................................................ 291 15.8. Перегрузка унарных операторов +, – и ! .......................................................................... 294 15.9. Какие операторы можно перегружать? ............................................................................ 295 15.10. DuckType-типизация ......................................................................................................... 297 Задания ......................................................................................................................................... 300 Глава 16. Ключевое слово self ................................................................................... 301 16.1. Ссылки на текущий объект ................................................................................................ 301 16.2. Значения self в разных контекстах .................................................................................... 304 16.3. Приемы использования self ................................................................................................ 305 16.3.1. Методы класса ........................................................................................................ 305 16.3.2. Цепочка обязанностей ............................................................................................ 308 16.3.3. Перегрузка операторов .......................................................................................... 309 16.3.4. Инициализация объекта блоком ............................................................................ 310 16.3.5. Открытие класса ..................................................................................................... 310 Задания ......................................................................................................................................... 311 Глава 17. Наследование ............................................................................................. 313 17.1. Наследование ...................................................................................................................... 313 17.2. Логические операторы ....................................................................................................... 316 17.3. Динамический базовый класс ............................................................................................ 317 17.4. Наследование констант ...................................................................................................... 318 17.5. Иерархия стандартных классов ......................................................................................... 319 17.6. Переопределение методов ................................................................................................. 320 17.7. Удаление методов ............................................................................................................... 322 17.8. Поиск метода....................................................................................................................... 326 Задания ......................................................................................................................................... 328 Глава 18. Области видимости ................................................................................... 331 18.1. Концепция видимости ........................................................................................................ 331 18.2. Открытые методы ............................................................................................................... 332 18.3. Закрытые методы ................................................................................................................ 333 18.4. Защищенные методы .......................................................................................................... 335 18.5. Закрытый конструктор ....................................................................................................... 337 18.6. Паттерн «Одиночка» (Singleton) ........................................................................................ 338 18.7. Вызов закрытых методов ................................................................................................... 341 18.8. Информационные методы .................................................................................................. 342 18.9. Области видимости при наследовании ............................................................................. 345 18.10. Области видимости методов класса ................................................................................ 346 Задания ......................................................................................................................................... 348 Оглавление 9 Глава 19. Модули......................................................................................................... 349 19.1. Создание модуля ................................................................................................................. 349 19.2. Оператор разрешения области видимости ....................................................................... 350 19.3. Пространство имен ............................................................................................................. 351 19.4. Вложенные классы и модули ............................................................................................. 352 19.5. Доступ к глобальным классам и модулям ........................................................................ 357 Задания ......................................................................................................................................... 361 Глава 20. Подмешивание модулей ........................................................................... 363 20.1. Класс Module ....................................................................................................................... 363 20.2. Подмешивание модулей в класс ........................................................................................ 365 20.3. Подмешивание модулей в объект...................................................................................... 369 20.4. Синглетон-методы модуля ................................................................................................. 373 20.5. Области видимости ............................................................................................................. 376 20.6. Стандартный модуль Kernel .............................................................................................. 379 20.7. Поиск методов в модулях .................................................................................................. 382 20.8. Метод prepend ..................................................................................................................... 386 20.9. Методы обратного вызова ................................................................................................. 387 20.10. Уточнения.......................................................................................................................... 393 20.11. Псевдонимы методов ....................................................................................................... 395 Задания ......................................................................................................................................... 397 Глава 21. Стандартные модули ................................................................................ 399 21.1. Модуль Math ....................................................................................................................... 399 21.2. Модуль Singleton ................................................................................................................. 402 21.3. Модуль Comparable ............................................................................................................ 404 21.4. Модуль Enumerable ............................................................................................................ 406 21.5. Модуль Forwardable ........................................................................................................... 408 21.6. Маршаллизация .................................................................................................................. 413 21.7. JSON-формат ....................................................................................................................... 416 21.8. YAML-формат .................................................................................................................... 418 Задания ......................................................................................................................................... 421 Глава 22. Свойства объектов .................................................................................... 423 22.1. Общие методы .................................................................................................................... 423 22.2. Неизменяемые объекты ...................................................................................................... 424 22.3. Заморозка объектов ............................................................................................................ 425 22.4. Небезопасные объекты ....................................................................................................... 426 Задания ......................................................................................................................................... 428 Глава 23. Массивы ...................................................................................................... 429 23.1. Модуль Enumerable ............................................................................................................ 429 23.2. Заполнение массива ............................................................................................................ 430 23.3. Извлечение элементов ........................................................................................................ 434 23.4. Поиск индексов элементов ................................................................................................ 439 23.5. Случайный элемент массива .............................................................................................. 439 23.6. Удаление элементов ........................................................................................................... 440 23.7. Замена элементов ................................................................................................................ 443 23.8. Информация о массиве ....................................................................................................... 445 23.9. Преобразование массива .................................................................................................... 446 10 Оглавление 23.10. Арифметические операции с массивами ........................................................................ 447 23.11. Логические методы ........................................................................................................... 448 23.12. Вложенные массивы ......................................................................................................... 451 23.13. Итераторы ......................................................................................................................... 453 23.14. Сортировка массивов ....................................................................................................... 455 Задания ......................................................................................................................................... 456 Глава 24. Хэши ............................................................................................................. 457 24.1. Создание хэша..................................................................................................................... 457 24.2. Заполнение хэша ................................................................................................................. 458 24.3. Извлечение элементов ........................................................................................................ 459 24.4. Поиск ключа ........................................................................................................................ 461 24.5. Обращение к несуществующему ключу ........................................................................... 461 24.6. Удаление элементов хэша .................................................................................................. 463 24.7. Информация о хэшах .......................................................................................................... 465 24.8. Хэши как аргументы методов ............................................................................................ 467 24.9. Объединение хэшей ............................................................................................................ 468 24.10. Преобразование хэшей ..................................................................................................... 468 24.11. Сравнение ключей ............................................................................................................ 471 24.12. Преобразование ключей хэша ......................................................................................... 474 Задания ......................................................................................................................................... 477 Глава 25. Классы коллекций .................................................................................... 479 25.1. Множество Set ..................................................................................................................... 479 25.2. Класс Struct .......................................................................................................................... 485 25.3. Класс OpenStruct ................................................................................................................. 489 Задания ......................................................................................................................................... 490 Глава 26. Исключения ................................................................................................ 493 26.1. Генерация и перехват исключений.................................................................................... 493 26.2. Исключения — это объекты .............................................................................................. 496 26.3. Стандартные ошибки .......................................................................................................... 497 26.4. Создание собственных исключений .................................................................................. 498 26.5. Перехват исключений......................................................................................................... 500 26.6. Многократная попытка выполнить код ............................................................................ 501 26.7. Перехват исключений: почти всегда плохо ...................................................................... 502 26.8. Блок ensure .......................................................................................................................... 502 26.9. Блок else ............................................................................................................................... 503 26.10. Перехват исключений в блоке ......................................................................................... 504 Задания ......................................................................................................................................... 504 Глава 27. Файлы .......................................................................................................... 505 27.1. Класс IO ............................................................................................................................... 505 27.2. Создание файла ................................................................................................................... 506 27.3. Режимы открытия файла .................................................................................................... 508 27.4. Закрытие файла ................................................................................................................... 510 27.5. Чтение содержимого файла ............................................................................................... 512 27.6. Построчное чтение файла .................................................................................................. 512 27.7. Запись в файл ...................................................................................................................... 515 Оглавление 11 27.8. Произвольный доступ к файлу .......................................................................................... 517 27.9. Пути к файлам ..................................................................................................................... 520 27.10. Манипуляция файлами ..................................................................................................... 522 Задания ......................................................................................................................................... 523 Глава 28. Права доступа и атрибуты файлов ........................................................ 525 28.1. Типы файлов ....................................................................................................................... 525 28.2. Определение типа файла .................................................................................................... 529 28.3. Время последнего доступа к файлу ................................................................................... 529 28.4. Права доступа в UNIX-подобной системе ........................................................................ 531 Задания ......................................................................................................................................... 534 Глава 29. Каталоги ...................................................................................................... 535 29.1. Текущий каталог ................................................................................................................. 535 29.2. Создание каталога............................................................................................................... 536 29.3. Чтение каталога .................................................................................................................. 537 29.4. Фильтрация содержимого каталога .................................................................................. 538 29.5. Рекурсивный обход каталога ............................................................................................. 539 29.6. Удаление каталога .............................................................................................................. 542 Задания ......................................................................................................................................... 542 Глава 30. Регулярные выражения ........................................................................... 543 30.1. Как изучать регулярные выражения? ................................................................................ 543 30.2. Синтаксический конструктор ............................................................................................ 544 30.3. Оператор =~ ........................................................................................................................ 545 30.4. Методы поиска .................................................................................................................... 546 30.4.1. Метод match ............................................................................................................ 546 30.4.2. Метод match? .......................................................................................................... 547 30.4.3. Метод scan .............................................................................................................. 548 30.5. Синтаксис регулярных выражений ................................................................................... 548 30.5.1. Метасимволы .......................................................................................................... 548 30.5.2. Экранирование ........................................................................................................ 553 30.5.3. Квантификаторы ..................................................................................................... 554 30.5.4. Опережающие и ретроспективные проверки ....................................................... 556 30.6. Модификаторы .................................................................................................................... 557 30.7. Где использовать регулярные выражения? ...................................................................... 560 30.8. Примеры .............................................................................................................................. 562 Задания ......................................................................................................................................... 565 Глава 31. Веб-программирование ............................................................................ 567 31.1. Протокол HTTP .................................................................................................................. 567 31.1.1. HTTP-заголовки ...................................................................................................... 570 31.1.2. HTTP-коды ответа .................................................................................................. 570 31.2. Веб-серверы ........................................................................................................................ 571 31.3. Гем Rack .............................................................................................................................. 572 31.3.1. Установка гема Rack .............................................................................................. 574 31.3.2. Простейшее Rack-приложение .............................................................................. 574 31.3.3. Управление утилитой rackup ................................................................................. 578 31.3.4. Обработка несуществующих страниц ................................................................... 579 12 Оглавление 31.3.5. Размер HTTP-содержимого ................................................................................... 580 31.3.6. Proc-объект в качестве Rack-приложения ............................................................ 582 31.3.7. Промежуточные слои (middleware) ....................................................................... 582 31.3.8. Роутинг .................................................................................................................... 583 31.3.9. Обработка статических файлов ............................................................................. 584 31.4. Ruby on Rails ....................................................................................................................... 587 31.4.1. Введение в Ruby on Rails ....................................................................................... 587 31.4.2. Установка Ruby on Rails......................................................................................... 588 31.4.3. Паттерн MVC .......................................................................................................... 591 31.4.4. Структура приложения Ruby on Rails ................................................................... 594 31.4.4.1. Каталог app ............................................................................................... 595 31.4.4.2. Окружения ................................................................................................ 595 31.4.4.3. Каталог config .......................................................................................... 596 31.4.4.4. Каталог db ................................................................................................ 596 31.4.4.5. Каталог lib ................................................................................................ 596 31.4.4.6. Каталог public .......................................................................................... 597 31.4.4.7. Каталог test ............................................................................................... 597 31.4.5. Rake-задачи ............................................................................................................. 597 31.4.6. Генераторы .............................................................................................................. 599 31.4.7. Стартовая страница ................................................................................................ 601 31.4.8. Представления ........................................................................................................ 604 Задания ......................................................................................................................................... 606 Глава 32. Автоматическое тестирование ............................................................... 607 32.1. Типы тестирования ............................................................................................................. 607 32.2. Преимущества и недостатки тестирования ...................................................................... 608 32.3. Фреймворки для тестирования .......................................................................................... 609 32.3.1. Фреймворк MiniTest ............................................................................................... 609 32.3.2. Фреймворк RSpec ................................................................................................... 613 32.3.3. Фреймворк Cucumber ............................................................................................. 620 Задания ......................................................................................................................................... 624 Заключение ................................................................................................................... 625 Приложение 1. Справочные таблицы ..................................................................... 627 П1.1. Ключевые слова ................................................................................................................. 627 П1.2. Синтаксические конструкторы ......................................................................................... 628 П1.3. Экранирование ................................................................................................................... 629 П1.4. Переменные и константы .................................................................................................. 629 П1.5. Операторы .......................................................................................................................... 632 П1.6. Конструкции ветвления и циклы ...................................................................................... 635 П1.7. Итераторы ........................................................................................................................... 635 Приложение 2. Содержимое электронного архива ............................................... 637 Предметный указатель .............................................................................................. 639
Torrent file:
magnet:?xt=urn:btih:CADB6B856AF4485178393C43DA1D63DB65F0D3B7
Cамоучитель "Уроки по С++" + Бонус (2022) [PDF]
в Книги
Опубликовано
Автор: Ravesli
Издательство: Самиздат
Жанр: Программирование
Формат: PDF
Качество: Изначально электронное (ebook)
Иллюстрации: Цветные и черно-белые
Страниц: 1655+115
ОПИСАНИЕ:
C++ широко используется для разработки программного обеспечения, являясь одним из самых популярных языков программирования. С его помощью создают операционные системы, разнообразные прикладные программы, драйверы устройств, игры и пр. "Самоучитель по С++" включает в себя "Уроки по С++". "Бонус" включает в себя "Пошаговое создание игры на С++/MFC" и "Практические задания по С++"
СОДЕРЖАНИЕ:
ПРЕДИСЛОВИЕ ................................................................................................................... 15 Глава №0. Введение. Начало работы Урок №1. Введение в программирование .................................................................... 18 Урок №2. Введение в языки программирования C и С++ ........................................... 22 Урок №3. Введение в разработку программных продуктов ...................................... 24 Урок №4. Установка IDE (Интегрированной Среды Разработки) ................................ 30 Урок №5. Компиляция вашей первой программы ...................................................... 34 Урок №6. Режимы конфигурации «Debug» и «Release» ............................................. 44 Урок №7. Конфигурация компилятора: Расширения компилятора .......................... 46 Урок №8. Конфигурация компилятора: Уровни предупреждений и ошибки ......... 50 Урок №9. Конфигурация компилятора: Выбор стандарта языка С++ ........................ 58 Урок №10. Решения самых распространенных проблем ............................................ 64 Глава №1. Основы C++ Урок №11. Структура программ ...................................................................................... 70 Урок №12. Комментарии ................................................................................................. 75 Урок №13. Переменные, Инициализация и Присваивание ........................................ 81 Урок №14. cout, cin и endl ................................................................................................ 86 Урок №15. Функции и оператор возврата return .......................................................... 89 Урок №16. Параметры и аргументы функций .............................................................. 99 Урок №17. Почему функции – полезны, и как их эффективно использовать? ..... 105 Урок №18. Локальная область видимости .................................................................. 107 Урок №19. Ключевые слова и идентификаторы ........................................................ 110 Урок №20. Операторы .................................................................................................... 115 Урок №21. Базовое форматирование кода ................................................................. 117 Урок №22. Прототип функции и Предварительное объявление ............................. 121 Урок №23. Многофайловые программы ..................................................................... 127 ravesli.com math.cpp@yandex.com 3 Самоучитель «Уроки по С++» Урок №24. Заголовочные файлы .................................................................................. 136 Урок №25. Директивы препроцессора ........................................................................ 142 Урок №26. Header guards и #pragma once .................................................................... 147 Урок №27. Конфликт имен и std namespace ............................................................... 152 Урок №28. Разработка ваших первых программ ....................................................... 155 Урок №29. Отладка программ: степпинг и точки останова....................................... 164 Урок №30. Отладка программ: стек вызовов и отслеживание переменных ......... 178 Глава №1. Итоговый тест ................................................................................................ 189 Глава №2. Переменные и основные типы данных в C++ Урок №31. Инициализация, присваивание и объявление переменных ................. 190 Урок №32. Тип данных void ........................................................................................... 197 Урок №33. Размер типов данных .................................................................................. 198 Урок №34. Целочисленные типы данных: short, int и long ....................................... 203 Урок №35. Фиксированный размер целочисленных типов данных ....................... 212 Урок №36. Типы данных с плавающей точкой: float, double и long double ............ 216 Урок №37. Логический тип данных bool ...................................................................... 225 Урок №38. Символьный тип данных char .................................................................... 231 Урок №39. Литералы и магические числа ................................................................... 241 Урок №40. const, constexpr и символьные константы ............................................... 247 Глава №2. Итоговый тест ................................................................................................ 253 Глава №3. Операторы в C++ Урок №41. Приоритет операций и правила ассоциативности .................................. 256 Урок №42. Арифметические операторы ...................................................................... 264 Урок №43. Инкремент, декремент и побочные эффекты ......................................... 270 Урок №44. Условный тернарный оператор, оператор sizeof и Запятая .................. 274 Урок №45. Операторы сравнения ................................................................................. 279 Урок №46. Логические операторы: И, ИЛИ, НЕ ........................................................... 285 Урок №47. Конвертация чисел из двоичной системы в десятичную и наоборот .. 293 ravesli.com math.cpp@yandex.com 4 Самоучитель «Уроки по С++» Урок №48. Побитовые операторы ................................................................................ 303 Урок №49. Битовые флаги и битовые маски ............................................................... 310 Глава №3. Итоговый тест ................................................................................................ 320 Глава №4. Область видимости и другие типы переменных в C++ Урок №50. Блоки стейтментов (составные операторы) ............................................. 322 Урок №51. Локальные переменные, область видимости и продолжительность жизни ................................................................................................................................ 325 Урок №52. Глобальные переменные ........................................................................... 332 Урок №53. Почему глобальные переменные – зло? ................................................. 340 Урок №54. Статические переменные ........................................................................... 346 Урок №55. Связи, область видимости и продолжительность жизни ...................... 349 Урок №56. Пространства имен ...................................................................................... 353 Урок №57. using-стейтменты ......................................................................................... 359 Урок №58. Неявное преобразование типов данных .................................................. 363 Урок №59. Явное преобразование типов данных ...................................................... 370 Урок №60. Введение в std::string .................................................................................. 374 Урок №61. Перечисления ............................................................................................... 380 Урок №62. Классы enum ................................................................................................. 388 Урок №63. Псевдонимы типов: typedef и type alias ................................................... 392 Урок №64. Структуры ...................................................................................................... 396 Урок №65. Вывод типов: ключевое слово auto .......................................................... 406 Глава №4. Итоговый тест ................................................................................................ 410 Глава №5. Порядок выполнения кода в программе. Циклы, ветвления в C++ Урок №66. Операторы управления потоком выполнения программ ..................... 412 Урок №67. Операторы условного ветвления if/else ................................................... 416 Урок №68. Оператор switch ........................................................................................... 424 Урок №69. Оператор goto .............................................................................................. 432 Урок №70. Цикл while ..................................................................................................... 434 ravesli.com math.cpp@yandex.com 5 Самоучитель «Уроки по С++» Урок №71. Цикл do while................................................................................................ 441 Урок №72. Цикл for ......................................................................................................... 443 Урок №73. Операторы break и continue ....................................................................... 451 Урок №74. Генерация случайных чисел ....................................................................... 457 Урок №75. Обработка некорректного пользовательского ввода ............................ 467 Урок №76. Введение в тестирование кода .................................................................. 478 Глава №5. Итоговый тест ................................................................................................ 488 Глава №6. Массивы, Строки, Указатели и Ссылки в C++ Урок №77. Массивы ........................................................................................................ 492 Урок №78. Фиксированные массивы ........................................................................... 497 Урок №79. Массивы и циклы ........................................................................................ 505 Урок №80. Сортировка массивов методом выбора ................................................... 510 Урок №81. Многомерные массивы .............................................................................. 517 Урок №82. Строки C-style ............................................................................................... 521 Урок №83. Введение в класс std::string_view .............................................................. 527 Урок №84. Указатели ...................................................................................................... 537 Урок №85. Нулевые указатели ...................................................................................... 546 Урок №86. Указатели и массивы ................................................................................... 549 Урок №87. Адресная арифметика и индексация массивов ...................................... 555 Урок №88. Символьные константы строк C-style ........................................................ 560 Урок №89. Динамическое выделение памяти ........................................................... 563 Урок №90. Динамические массивы ............................................................................. 572 Урок №91. Указатели и const ......................................................................................... 576 Урок №92. Ссылки ........................................................................................................... 580 Урок №93. Ссылки и const .............................................................................................. 586 Урок №94. Оператор доступа к членам через указатель .......................................... 589 Урок №95. Цикл foreach ................................................................................................. 591 Урок №96. Указатели типа void ..................................................................................... 596 Урок №97. Указатели на указатели............................................................................... 599 ravesli.com math.cpp@yandex.com 6 Самоучитель «Уроки по С++» Урок №98. Введение в std::array ................................................................................... 603 Урок №99. Введение в std::vector ................................................................................. 607 Урок №100. Введение в итераторы .............................................................................. 611 Урок №101. Алгоритмы в Стандартной библиотеке С++ ........................................... 618 Глава №6. Итоговый тест ................................................................................................ 626 Глава №7. Функции в C++ Урок №102. Параметры и аргументы функций .......................................................... 635 Урок №103. Передача по значению ............................................................................. 638 Урок №104. Передача по ссылке .................................................................................. 641 Урок №105. Передача по адресу ................................................................................... 647 Урок №106. Возврат значений по ссылке, по адресу и по значению ...................... 654 Урок №107. Встроенные функции ................................................................................ 661 Урок №108. Перегрузка функций ................................................................................. 664 Урок №109. Параметры по умолчанию ....................................................................... 670 Урок №110. Указатели на функции .............................................................................. 674 Урок №111. Стек и Куча .................................................................................................. 686 Урок №112. Ёмкость вектора ......................................................................................... 693 Урок №113. Рекурсия и Числа Фибоначчи ................................................................... 699 Урок №114. Обработка ошибок, cerr и exit() ............................................................... 707 Урок №115. assert и static_assert ................................................................................... 714 Урок №116. Аргументы командной строки ................................................................. 717 Урок №117. Эллипсис ..................................................................................................... 725 Урок №118. Лямбда-выражения .................................................................................. 733 Урок №119. Лямбда-захваты ......................................................................................... 747 Глава №7. Итоговый тест ................................................................................................ 764 Глава №8. Основы ООП в C++ Урок №120. Введение в ООП ......................................................................................... 770 Урок №121. Классы, Объекты и Методы ..................................................................... 772 ravesli.com math.cpp@yandex.com 7 Самоучитель «Уроки по С++» Урок №122. Спецификаторы доступа public и private ................................................ 780 Урок №123. Инкапсуляция, Геттеры и Сеттеры .......................................................... 787 Урок №124. Конструкторы ............................................................................................. 794 Урок №125. Список инициализации членов класса ................................................... 803 Урок №126. Инициализация нестатических членов класса ...................................... 812 Урок №127. Делегирующие конструкторы ................................................................. 816 Урок №128. Деструкторы ............................................................................................... 821 Урок №129. Скрытый указатель *this ........................................................................... 826 Урок №130. Классы и заголовочные файлы ................................................................ 832 Урок №131. Классы и const ............................................................................................ 838 Урок №132. Статические переменные-члены класса ................................................ 844 Урок №133. Статические методы класса ..................................................................... 850 Урок №134. Дружественные функции и классы ......................................................... 855 Урок №135. Анонимные объекты ................................................................................. 865 Урок №136. Вложенные типы данных в классах ........................................................ 871 Урок №137. Измерение времени выполнения (тайминг) кода ............................... 874 Глава №8. Итоговый тест ................................................................................................ 880 Глава №9. Перегрузка операторов в C++ Урок №138. Введение в перегрузку операторов ........................................................ 893 Урок №139. Перегрузка операторов через дружественные функции .................... 897 Урок №140. Перегрузка операторов через обычные функции ................................ 907 Урок №141. Перегрузка операторов ввода и вывода ................................................ 910 Урок №142. Перегрузка операторов через методы класса ....................................... 917 Урок №143. Перегрузка унарных операторов +, - и логического НЕ ........................ 922 Урок №144. Перегрузка операторов сравнения ......................................................... 925 Урок №145. Перегрузка операторов инкремента и декремента ............................. 929 Урок №146. Перегрузка оператора индексации [] ..................................................... 934 Урок №147. Перегрузка оператора () ........................................................................... 943 Урок №148. Перегрузка операций преобразования типов данных ......................... 949 ravesli.com math.cpp@yandex.com 8 Самоучитель «Уроки по С++» Урок №149. Конструктор копирования ........................................................................ 953 Урок №150. Копирующая инициализация .................................................................. 960 Урок №151. Конструкторы преобразования, ключевые слова explicit и delete ..... 964 Урок №152. Перегрузка оператора присваивания ..................................................... 970 Урок №153. Поверхностное и глубокое копирование ............................................... 976 Глава №9. Итоговый тест ................................................................................................ 983 Глава №10. Введение в связи между объектами в C++ Урок №154. Типы связей между объектами ............................................................... 990 Урок №155. Композиция объектов ............................................................................... 992 Урок №156. Агрегация .................................................................................................. 1000 Урок №157. Ассоциация ............................................................................................... 1006 Урок №158. Зависимость ............................................................................................. 1013 Урок №159. Контейнерные классы ............................................................................. 1015 Урок №160. Список инициализации std::initializer_list ............................................ 1026 Глава №10. Итоговый тест ............................................................................................ 1033 Глава №11. Наследование в C++ Урок №161. Введение в Наследование ...................................................................... 1036 Урок №162. Базовое наследование ............................................................................ 1039 Урок №163. Порядок построения дочерних классов ............................................... 1048 Урок №164. Конструкторы и инициализация дочерних классов ........................... 1054 Урок №165. Наследование и спецификатор доступа protected ............................. 1065 Урок №166. Добавление нового функционала в дочерний класс ......................... 1074 Урок №167. Переопределение методов родительского класса ............................ 1077 Урок №168. Сокрытие методов родительского класса ........................................... 1082 Урок №169. Множественное наследование ............................................................. 1085 Глава №11. Итоговый тест ............................................................................................ 1090 ravesli.com math.cpp@yandex.com 9 Самоучитель «Уроки по С++» Глава №12. Виртуальные функции в C++ Урок №170. Указатели/Ссылки и Наследование ...................................................... 1102 Урок №171. Виртуальные функции и Полиморфизм .............................................. 1108 Урок №172. Модификаторы override и final ............................................................. 1120 Урок №173. Виртуальные деструкторы и Виртуальное присваивание ................. 1125 Урок №174. Раннее и Позднее Связывания .............................................................. 1128 Урок №175. Виртуальные таблицы ............................................................................ 1132 Урок №176. Чистые виртуальные функции, Интерфейсы и Абстрактные классы ............................................................................................................................. 1137 Урок №177. Виртуальный базовый класс .................................................................. 1145 Урок №178. Обрезка объектов .................................................................................... 1150 Урок №179. Динамическое приведение типов. Оператор dynamic_cast .............. 1156 Урок №180. Вывод объектов классов через оператор вывода .............................. 1163 Глава №12. Итоговый тест ............................................................................................ 1168 Глава №13. Шаблоны в C++ Урок №181. Шаблоны функций .................................................................................. 1176 Урок №182. Экземпляры шаблонов функций ........................................................... 1181 Урок №183. Шаблоны классов .................................................................................... 1191 Урок №184. Параметр non-type в шаблоне ............................................................... 1200 Урок №185. Явная специализация шаблона функции ............................................. 1202 Урок №186. Явная специализация шаблона класса ................................................. 1206 Урок №187. Частичная специализация шаблона ...................................................... 1211 Урок №188. Частичная специализация шаблонов и Указатели .............................. 1221 Глава №13. Итоговый тест ............................................................................................ 1227 Глава №14. Исключения в C++ Урок №189. Исключения. Зачем они нужны? ........................................................... 1230 Урок №190. Обработка исключений. Операторы throw, try и catch ...................... 1233 Урок №191. Исключения, Функции и Раскручивание стека .................................... 1240 ravesli.com math.cpp@yandex.com 10 Самоучитель «Уроки по С++» Урок №192. Непойманные исключения и обработчики catch-all........................... 1246 Урок №193. Классы-Исключения и Наследование ................................................... 1250 Урок №194. Повторная генерация исключений ....................................................... 1260 Урок №195. Функциональный try-блок ..................................................................... 1266 Урок №196. Недостатки и опасности использования исключений ........................ 1270 Глава №14. Итоговый тест ............................................................................................ 1275 Глава №15. Умные указатели и Семантика перемещения в C++ Урок №197. Умные указатели и Семантика перемещения..................................... 1277 Урок №198. Ссылки r-value .......................................................................................... 1288 Урок №199. Конструктор перемещения и Оператор присваивания перемещением .............................................................................................................. 1295 Урок №200. Функция std::move() ................................................................................ 1310 Урок №201. Умный указатель std::unique_ptr .......................................................... 1315 Урок №202. Умный указатель std::shared_ptr ........................................................... 1326 Урок №203. Умный указатель std::weak_ptr ............................................................. 1332 Глава №15. Итоговый тест ............................................................................................ 1339 Глава №16. Стандартная библиотека шаблонов (STL) в C++ Урок №204. Стандартная библиотека шаблонов (STL) ............................................. 1342 Урок №205. Контейнеры STL ........................................................................................ 1343 Урок №206. Итераторы STL .......................................................................................... 1347 Урок №207. Алгоритмы STL ......................................................................................... 1352 Глава №17. std::string в C++ Урок №208. Строковые классы std::string и std::wstring .......................................... 1355 Урок №209. Создание, уничтожение и конвертация std::string ............................. 1360 Урок №210. Длина и ёмкость std::string..................................................................... 1366 Урок №211. Доступ к символам std::string. Конвертация std::string в строки C- style.................................................................................................................................. 1372 ravesli.com math.cpp@yandex.com 11 Самоучитель «Уроки по С++» Урок №212. Присваивание и перестановка значений с std::string ......................... 1376 Урок №213. Добавление к std::string .......................................................................... 1380 Урок №214. Вставка символов и строк в std::string .................................................. 1384 Глава №18. Ввод/Вывод в C++ Урок №215. Потоки ввода и вывода .......................................................................... 1388 Урок №216. Функционал класса istream .................................................................... 1392 Урок №217. Функционал классов ostream и ios. Форматирование вывода ......... 1397 Урок №218. Потоковые классы и Строки ................................................................... 1408 Урок №219. Состояния потока и валидация пользовательского ввода ................ 1412 Урок №220. Базовый файловый ввод и вывод ......................................................... 1420 Урок №221. Рандомный файловый ввод и вывод ................................................... 1427 Дополнительные уроки Статические и динамические библиотеки ................................................................. 1433 Подключение и использование библиотек в Visual Studio ..................................... 1437 C++11. Нововведения .................................................................................................... 1445 C++14. Нововведения .................................................................................................... 1447 C++17. Нововведения .................................................................................................... 1448 C++20. Нововведения .................................................................................................... 1449 Спецификации исключений и спецификатор noexcept ........................................... 1453 Функция std::move_if_noexcept() ................................................................................ 1459 Финал Конец. Что дальше? ...................................................................................................... 1465 Ответы на Тесты Ответы: Урок №11 ......................................................................................................... 1470 Ответы: Урок №13 ......................................................................................................... 1471 Ответы: Урок №15 ......................................................................................................... 1472 ravesli.com math.cpp@yandex.com 12 Самоучитель «Уроки по С++» Ответы: Урок №16 ......................................................................................................... 1473 Ответы: Урок №18 ......................................................................................................... 1475 Ответы: Урок №19 ......................................................................................................... 1476 Ответы: Урок №22 ......................................................................................................... 1477 Ответы: Урок №23 ......................................................................................................... 1478 Ответы: Урок №26 ......................................................................................................... 1479 Ответы: Глава №1. Итоговый тест ............................................................................... 1480 Ответы: Урок №36 ......................................................................................................... 1482 Ответы: Урок №37 ......................................................................................................... 1483 Ответы: Глава №2. Итоговый тест ............................................................................... 1484 Ответы: Урок №41 ......................................................................................................... 1487 Ответы: Урок №42 ......................................................................................................... 1488 Ответы: Урок №46 ......................................................................................................... 1490 Ответы: Урок №47 ......................................................................................................... 1491 Ответы: Урок №48 ......................................................................................................... 1494 Ответы: Урок №49 ......................................................................................................... 1495 Ответы: Глава №3. Итоговый тест ............................................................................... 1496 Ответы: Урок №51 ......................................................................................................... 1498 Ответы: Урок №52 ......................................................................................................... 1499 Ответы: Урок №54 ......................................................................................................... 1500 Ответы: Урок №58 ......................................................................................................... 1501 Ответы: Урок №60 ......................................................................................................... 1502 Ответы: Урок №61 ......................................................................................................... 1503 Ответы: Урок №63 ......................................................................................................... 1504 Ответы: Урок №64 ......................................................................................................... 1505 Ответы: Глава №4. Итоговый тест ............................................................................... 1507 Ответы: Урок №68 ......................................................................................................... 1509 Ответы: Урок №70 ......................................................................................................... 1511 Ответы: Урок №72 ......................................................................................................... 1513 Ответы: Урок №76 ......................................................................................................... 1514 ravesli.com math.cpp@yandex.com 13 Самоучитель «Уроки по С++» Ответы: Глава №5. Итоговый тест ............................................................................... 1515 Ответы: Урок №78 ......................................................................................................... 1518 Ответы: Урок №79 ......................................................................................................... 1519 Ответы: Урок №80 ......................................................................................................... 1521 Ответы: Урок №84 ......................................................................................................... 1524 Ответы: Урок №90 ......................................................................................................... 1526 Ответы: Урок №95 ......................................................................................................... 1528 Ответы: Урок №96 ......................................................................................................... 1529 Ответы: Глава №6. Итоговый тест ............................................................................... 1530 Ответы: Урок №106 ....................................................................................................... 1541 Ответы: Урок №110 ....................................................................................................... 1542 Ответы: Урок №113 ....................................................................................................... 1547 Ответы: Урок №118 ....................................................................................................... 1549 Ответы: Урок №119 ....................................................................................................... 1551 Ответы: Глава №7. Итоговый тест ............................................................................... 1555 Ответы: Урок №121 ....................................................................................................... 1558 Ответы: Урок №122 ....................................................................................................... 1559 Ответы: Урок №124 ....................................................................................................... 1563 Ответы: Урок №125 ....................................................................................................... 1566 Ответы: Урок №126 ....................................................................................................... 1567 Ответы: Урок №134 ....................................................................................................... 1569 Ответы: Глава №8. Итоговый тест ............................................................................... 1574 Ответы: Урок №139 ....................................................................................................... 1595 Ответы: Урок №141 ....................................................................................................... 1599 Ответы: Урок №143 ....................................................................................................... 1601 Ответы: Урок №144 ....................................................................................................... 1602 Ответы: Урок №146 ....................................................................................................... 1605 Ответы: Урок №147 ....................................................................................................... 1608 Ответы: Глава №9. Итоговый тест ............................................................................... 1609 Ответы: Урок №156 ....................................................................................................... 1618 ravesli.com math.cpp@yandex.com 14 Самоучитель «Уроки по С++» Ответы: Урок №160 ....................................................................................................... 1620 Ответы: Глава №10. Итоговый тест ............................................................................. 1622 Ответы: Урок №164 ....................................................................................................... 1623 Ответы: Глава №11. Итоговый тест ............................................................................. 1625 Ответы: Урок №170 ....................................................................................................... 1638 Ответы: Урок №171 ....................................................................................................... 1640 Ответы: Урок №176 ....................................................................................................... 1642 Ответы: Глава №12. Итоговый тест ............................................................................. 1643 Ответы: Глава №13. Итоговый тест ............................................................................. 1648 Ответы: Глава №14. Итоговый тест ............................................................................. 1650 Ответы: Урок №198 ....................................................................................................... 1651 Ответы: Урок №201 ....................................................................................................... 1652 Ответы: Урок №203 ....................................................................................................... 1653 Ответы: Глава №15. Итоговый тест ............................................................................. 1654
Torrent link:
magnet:?xt=urn:btih:9965641198F99554A3E5CE0711A0ACA0F309FE8F