Программирование: Java и Basic



   Большую коллекцию роликов вы найдете на этом портале | онлайн стрим казино            e-batsa.pro    Grab deluxe business checks coupon on CatalogSpot.com

Программирование мобильных телефонов на Java

Рынок мобильных телефонов - это, пожалуй, самый быстроразвивающийся сегмент рынка. Несколько лет назад мобильный телефон был чем-то дорогим и недосягаемым. Оплата за связь была астрономической. Но времена меняются, связь подешевела, мобильные телефоны продаются на каждом углу и наличие телефона у человека можно уже сравнить с наличием обычных наручных часов.
Обилие разнообразных моделей телефонов создает на этом рынке большую конкуренцию. Множество производителей стараются включить в телефоны как можно больше различных функций. Присутствием в телефоне адресной книги, органайзера, будильника и даже счетчика калорий уже никого не удивишь, и в какой-то момент времени возник вопрос, а чем же еще можно оборудовать телефон? Самым идеальным решением этого вопроса могла стать возможность загрузки в телефон программ сторонних производителей. Не секрет, что основная масса телефонов работает на основе прошивки, поэтому загрузка программ в телефон не возможна. Чтобы такая возможность появилась, производителям надо было бы решить ряд сложных вопросов. Во-первых - это язык программирования, на котором будут писаться программы для телефонов и, соответственно,, поддержка этого языка самим телефоном. Второе - это аппаратная архитектура мобильных телефонов, которая сильно ограничена в своих системных ресурсах, а это процессор, память, графический интерфейс. Улучшение архитектуры неизменно ведет к увеличению стоимости телефона, поэтому идеальной в этом случае стала платформа Java 2 Micro Edition, созданная компанией Sun Microsystems.

Введение
Платформа Java 2 ME состоит из виртуальной Java машины, языка программирования Java и огромного количества библиотек, облегчающих работу программиста. Язык программирования Java работает на основе интерпретации, поэтому для работы программ написанных на этом языке необходима виртуальная Java машина, встроенная в устройство, на котором планируется запускать Java программы. Наличие виртуальной Java машины в мобильном телефоне означает, что производитель поддерживает технологию Java. В данный момент практически все производители имеют поддержку Java технологии, что позволяет писать любые программы на этом языке и загружать их в телефон.

Предисловие
Что вы должны знать
Какое программное обеспечение используется
О чем этот раздел

Устройство мобильных телефонов
Прежде чем приступить к изучению особенностей программирования мобильных телефонов на Java 2 ME, необходимо познакомиться с общей схемой устройства телефона. Сейчас на рынке мобильных телефонов присутствует множество как мелких, так и крупных производителей мобильных телефонов, предлагающих широкий ассортимент продукции. По цене и по своим функциональным признакам имеющиеся устройства , можно условно разделить на три категории.

Стандарт GSM
Архитектура телефонов
Прошивка и операционная система
Инфракрасный порт
Технология Bluetooth
Протокол WAP
Протокол GPRS
Карта SIM

Платформа Java 2 Micro Edition
История языка программирования Java насчитывает более десяти лет. Вначале, при создании Java, планировалось использовать этот язык для программирования микроконтроллеров бытовых устройств. Поэтому язык Java, тогда он, правда, имел другое название, изначально создавался независимым от архитектуры, компактным и безопасным, что в последствии сыграло решающую роль в его широком распространении. Однако, в тот момент язык программирования Java не смог обрести популярности.

Конфигурация CDC
Конфигурация CLDC
Свойства языка Java
Виртуальная машина
Профиль
Профиль MIDP 2.0 и конфигурация CLDC 1.0
Пакет java.lang
Пакет java.util
Пакет java.io
Пакет javax.microedition.io

Средства разработки мобильных приложений
Прежде чем приступить к инсталляции SUN ONE Studio 4 Mobile Edition и J2ME Wireless Toolkit 2.1, необходимо установить набор инструментальных средств Java 2 SDK, SE vl.4.2_03 (Software Development Toolkit Standard Edition). Это последняя на данный момент версия библиотеки, предоставляющая программные средства для создания приложений на Java. В состав этой библиотеки также входит Java 2 Runtime Environment, SE vl.4.2_03, которая необходима для работы приложений написанных на Java.

Установка Java 2 SDK SE
Среда SUN ONE Studio 4 Mobile Edition
Настройка SUN ONE Studio 4 Mobile Edition.
Создание проекта в SUN ONE Studio 4
Создание приложений в SUN ONE Studio 4
Компиляция программ в SUN ONE Studio 4 Mobile
Среда программирования J2ME Wireless Toolkit 2.1
Установка J2ME Wireless Toolkit 2.1
Создание проекта в J2ME Wireless Toolkit 2.1
Компиляция в J2ME Wireless Toolkit 2.1

Телефонные эмуляторы
Интегрированные средства разработки приложений для мобильных телефонов рассмотренные в предыдущей главе имеют в своем составе несколько эмуляторов мобильных устройств несуществующих марок телефонов. Эмулятор телефона -это приложение, программно эмулирующее работу реального телефона, учитывая все технические характеристики этого устройства. Большинство производителей мобильных телефонов имеют в своем арсенале наборы инструментальных средств для программирования телефонов называемых SDK (Software Developer Kit) и множество встраиваемых модулей для эмуляции определенных моделей.

Программное обеспечение телефонов Nokia
Инструментарий Nokia Developer's Suite 2.0
Программа Nokia PC Suite 5.1
Дополнительные пакеты Nokia
Программное обеспечение телефонов Siemens
Пакет Siemens Mobility Toolkit
Программа Siemens Date Suite
Дополнительные пакеты Siemens
Программное обеспечение телефонов Sony
Программное обеспечение телефонов Motorola

Механизм работы приложений Java 2 ME
В предыдущих двух главах вашему вниманию были представлены две среды программирования мобильных приложений и большое количество разнообразных телефонных эмуляторов. Полностью был разобран весь процесс установки этих средств, а так же режимы создания, компиляции кода и просмотр получившегося приложения на эмуляторе. Выберите себе понравившуюся среду разработки или работайте с теми средствами, к которым привыкли. Мы больше не будем отвлекаться на процесс написания кода, компиляции и запуска приложения на эмуляторе. Предшествующие две главы дали исчерпывающую информацию по этому поводу.

Мидлет
Модель работы мидлета
Пользовательский интерфейс
Переход с экрана на экран

Классы пользовательского интерфейса
В Java 2 ME имеется пакет javax.microedition.lcdui, определенный для классов пользовательского интерфейса. Как уже отмечалось в главе 5, классы пользовательского интерфейса разделены на высокоуровневый и низкоуровневый интерфейсы. В этой главе будут последовательно рассмотрены все классы высокоуровневого пользовательского интерфейса. Каждый из разделов содержит информацию об одном конкретном классе, предоставляющем ряд возможностей в оформлении интерфейса пользователя. Используя возможности этих классов, вы сможете создавать в приложении списки, группы элементов, загружать в программу изображения, использовать бегущую строку, назначать шрифт текста и многое другое.

Класс Form
Методы класса Form
Класс Item
Класс ChoiceGroup
Класс DateField
Класс TextField
Класс Stringitem
Класс Spacer
Класс Imageitem
Класс Gauge

Программирование графики
Высокоуровневые классы, изученные в главе 6, дают возможность создавать пользовательский интерфейс приложения. По сути, эти классы выполнены в виде шаблонов, используя которые вы мoжете создавать списки, формы, шрифт, группы элементов, бегущие строки. Но использование таких классов-шаблонов несколько упрощает интерфейс программы, лишая возможности использования графики в программах на Java 2 ME. Иногда в приложении необходимо нарисовать таблицу, линию, квадрат, то есть воспользоваться графикой для создания насыщенной и красочной программы.

Класс Canvas
Методы класса Canvas
Класс Graphics
Методы класса Graphics
Рисование линий
Рисование прямоугольников
Рисование дуг
Вывод текста
Механизм создания игрового цикла
Перемещение квадрата

Техника создания игр
Рынок мобильных телефонов развирается стремительными темпами. Все больше телефонов имеют поддержку технологии Java. Веянье игровой индустрии захватило и мобильные телефоны, поэтому платформа Java 2 ME позиционируется в большей степени как игровая платформа Для мобильных телефонов. При разработке игр под профиль MIDP 1.0 программист сталкивается с массой проблем в виде написания большого количества собственных классов для создания игрового процесса, рисование графики, уровней и так далее.

Класс GameCanvas
Класс Layer
Класс TiledLayer
Класс LayerManager
Класс Sprite
Создание фонового изображения
Обработка событий с клавиш телефона
Анимация в игровом процессе

Мобильная мультимедиа-библиотека
Воспроизведение звуков в играх создает более насыщенную- атмосферу. Хорошая звуковая дорожка к игре - это 30-40% успеха! Но, к сожалению, в мобильных играх, нет возможности воспроизведения мощной полноценной звуковой дорожки, как в компьютерных или приставочных играх, в виду ограничения системных ресурсов телефона. Поэтому, в основном, все звучание в играх сводится к воспроизведению так называемых тональных звуков. Каждый тональный звук соответствует определенной ноте, выстроив необходимую последовательность нот для воспроизведения можно получить определенную звуковую дорожку.

Пакет javax.microedition.media
Интерфейс Control
Интерфейс Controllable
Интерфейс Player
Интерфейс PlayerListener
Класс Manager
Пакет javax.microedition.media.control
Интерфейс ToneControl
Интерфейс VolumeControl
Воспроизведение wav-файлов

Основы языка Java
Это приложение не претендует на роль полного руководства по языку Java (Ява), но данного материала будет достаточно для дальнейшего изучения книги. Предлагаемая к рассмотрению в этом разделе информация содержит основы языка Java и ориентирована на неподготовленного читателя. Также нужно иметь в виду, что обучение языку Java будет происходить в соответствии с контекстом книги, а именно, всей той части языка Java, необходимой для программирования мобильных устройств.

Введение в программирование
Объектно-ориентированное программирование
Классы
Методы
Синтаксис и семантика языка Java 2 ME
Комментарии
Типы данных Java
Операторы
Метод main
Закрытые и открытые члены классов

Справочник по Java 2 Micro Edition
В этом приложении содержится исчерпывающий справочный материал по всем пакетам, интерфейсам, классам, конструкторам классов и константам платформы Java 2 Micro Edition. Справочник рассматривает все пакеты, имеющиеся в составе платформы Java 2 ME. Каждый пакет содержит множество интерфейсов, классов, конструкторов и констант. Для всех имеющихся компонентов каждого пакета дается краткая характеристика, на основании которой вам будет очень легко сориентироваться в создании приложений для платформы Java 2 Micro Edition.

Пакет Java.lang
Пакет Java.util
Пакет java.io
Пакет javax.microedition.io
Пакет javax.microedition.lcdui
Пакет javax.microedition.lcdui.game
Пакет javax.microedition.media
Пакет javax.microedition.media.control
Пакет javax.microedition.midlet
Пакет javax.microedition.pki

Платформа программирования J2ME для портативных устройств

В структуре данной книги отсутствуют специфические подробности по инструментальным средствам разработки на J2ME, предлагаемым другими производителями. В соответствии с подходом данной книги как учебного пособия, я всего лишь знакомлю вас с инструментарием компании «Sun Microsystems» для беспроводной работы J2ME Wireless Toolkit, который является образцовым инструментарием разработки на J2ME. Он предоставляется бесплатно компанией «Sun Microsystems» и доступен на Web-сайте Java Developer Connection. Таким образом, вы можете познакомиться со средой разработки на J2ME и эмулятором и создавать и тестировать практически применимые приложения.

Введение
Производители оборудования часто предоставляют свои собственные инструменты разработки, которые сходны с инструментарием J2ME Wireless Toolkit компании «Sun». Кроме того, другие компании-производители программного обеспечения предлагают инструменты разработки на J2ME. В этой книге не описываются эти инструменты, поскольку они не добавляют ничего нового к теории и практике того, как проектировать и разрабатывать приложения на J2ME.

Определение платформы Java для портативных устройств
Конфигурация J2ME определяет минимальную Java-платформу для семейства устройств. Все члены данного семейства имеют сходные требования к памяти и производительности. Конфигурация является на самом деле спецификацией, которая определяет доступные ресурсы системного уровня, такие, как набор свойств языка Java, характеристики и свойства имеющейся виртуальной машины и минимальные библиотеки Java, которые поддерживаются.

Конфигурации и профили
Конфигурация Connected Device Configuration
Пакеты CDC
Пакеты CDC - 2
Пакеты CDC - 3
Конфигурация Limited Device Configuration
Конфигурация Limited Device Configuration - 2
Конфигурация Limited Device Configuration - 3
Конфигурация Limited Device Configuration - 4
Конфигурация Limited Device Configuration - 5

Проектирование и кодирование
Я сначала создаю директорию под названием HelloWorld, что является названием примера нашего первого приложения, под директорией apps/, предназначенной для установки инструментария для работы с беспроводными устройствами. Эта директория является корневой для вашего нового проекта. Проект - это организованное объединение ресурсов - исходного кода, файлов ресурсов, откомпилированных файлов, - специфических для одного или более связанных приложений.

Компиляция
Предварительная проверка
Предварительная проверка - 2
Предварительная проверка - 3
Упаковка
Создание файла манифеста JAR
Создание файла манифеста JAR - 2
Создание файла JAR для набора МID-летов
Создание файла дecкpиптopa для МID-летов
Обязательные атрибуты файла дескриптора

Жизненный цикл выполнения приложения
Запуск эмулятора. Вы увидите появившееся окно, которое имитирует интерфейс устройства. Если вы используете J2MEWTK версии 1.0.2, вы заметите, что эмулятор просто выполняет приложение HelloWorld, потому что это единственное приложение, присутствующее в наборе. На рисунке 3.1 показано главное окно выполнения этого MID-лета. Однако, если у вас J2MEWTK версии 1.0.3, вы увидите список выбора из всех MID-летов, даже если он у вас один.

Программная cтpyктypa MID-лета
MIDP-версия программы HelloWorld
MIDP-версия программы HelloWorld - 2
MIDP-версия программы HelloWorld - 3
Модель состояний MID-лета
Модель состояний MID-лета - 2
Модель компонентов интерфейса MIDP
Модель компонентов интерфейса MIDP - 2
Модель компонентов интерфейса MIDP - 3
Системные свойства

Oбpaбoткa кoмaнд
Высокоуровневый API MIDP поддерживает обработку событий с помощью использования команд. Команда представляет из себя действие пользователя - например, что-то, что пользователь делает на экране, к примеру, нажимает функциональную клавишу. Событие - это проявление результата действия. События могут представлять собой вызов команды в ответ на действие пользователя.

Типы команд
Сценарий oбработки команд
Сценарий oбработки команд - 2
Сценарий oбработки команд - 3
Сценарий oбработки команд - 4
Экранная навигация
Экранная навигация - 2
Организация команд
Организация команд - 2
Упорядочивание команд

Иерархия Компонентов пользовательского интерфейса MIDP
Вы знаете, что класс Displayable определяет природу основы любого компонента, который может быть отображен, и что класс Screen определяет базовую абстракцию пользовательского интерфейса MIDP - экран. Класс Screen является первым Displayable, который вы видели, a Form был первым конкретным типом используемого экрана.

Экраны и экранные элементы
Исходный код UlComponentDemo
Исходный код UlComponentDemo - 2
Исходный код UlComponentDemo - 3
Уведомления являются
Уведомления являются - 2
Уведомления являются - 3
Блок прослушивания
Блок прослушивания - 2
Типы ограничений - класс TextField

Oбработка команд и событий
В дополнение к обработке высокоуровневых команд, класс Canvas также обрабатывает низкоуровневые команды. Компоненты Canvas сами являются источниками низкоуровневых событий клавиш и указателя, которые генерируются действиями пользователя по вводу с клавиатуры и перемещением указателя на устройстве. Они также являются своими собственными блоками прослушивания низкоуровневых событий.

Методы уведомления о событиях API
Демонстрационной
Чтобы использовать Canvas - подкласс Canvas
Чтобы использовать Canvas - подкласс Canvas - 2
Клавишные события
Константы класса Canvas - клавиши ITU-T
Константы класса
Игровые действия
Графическое рисование
Графическая модель

Поддержка постоянного хранения устройством
Каждое соответствующее требованиям MIDP устройство поддерживает выделенную область памяти для постоянного хранения данных приложения. Данные MID-лета, хранящиеся там, постоянно существуют при множестве инициализаций приложения, которое их использует. Как физическое местоположение, так и размер хранилища данных зависят от устройства.

Модель хранения данных RMS
Записи
Пример приложения
AddressBook - доступ к хранилищу записей
AddressBook - доступ к хранилищу записей - 2
AddressBook - доступ к хранилищу записей - 3
Работа с данными byte [ ]
Cпиcки
Списки дают вам возможность
Списки дают вам возможность - 2

Модель организации сетей в MIDP
В MIDP, как и в J2SE, потоки ввода-вывода являются наиважнейшим механизмом, доступным приложениям, для чтения и записи потоков данных. Как J2SE, так и J2ME имеют пакет java.io, который содержит эти классы потоков. Кроме того, MIDP имеет пакет javax.microedition.io, который поддерживает сетевую работу и коммуникации в приложениях MIDP. Этот пакет отличается от пакета java.net J2SE, который определяет поддержку сетевой работы на данной платформе.

Cтpyктypa общих соединений MIDP
Cтpyктypa общих соединений MIDP - 2
Cтpyктypa общих соединений MIDP - 3
Блоки соединения и соединения
Классы и интерфейсы общих соединений
Методы интерфейса InputConnection
Методы интерфейса OutputConnection
Потоковые соединения
Соединения содержимого соединений
Методы интерфейса ContentConnection

Региональные настройки и локализация
Региональная настройка представляет собой определенный географический, лингвистический и культурный контекст. Она описывает контекст, в котором работают интернационализированные приложения. Термин локализация относится к практике предоставления приложению возможности работать в контексте определенной региональной настройки. Слово локализация иногда сокращается как 11Оn, поскольку 10 букв опускаются между буквами l и n в этом слове. Разработчик локализует приложение для одной или нескольких региональных настроек после его интернационализации.

Символьные кoдиpoвки
Acпекты интернационализации
Acпекты интернационализации - 2
Acпекты интернационализации - 3
Поддержка интернационализации в MIDP
Поддержка интернационализации в MIDP - 2
Cтруктуры интернационализации
Работа с сообщениями
Cтроковая сортировка
Форматирование дат, времени и чисел

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

Процесс инициализации
Регистрация приложений
Регистрация приложений - 2
Поиск приложений
Поиск приложений - 2
Поиск приложений - 3
Поиск приложений - 4
Подтверждение совместимости
Подтверждение пoкyпки и обязательные условия
Аутентификация пользователей

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

Беспроводные приложения
Обмен сообщениями
Приложения личной информационной системы
Персонализация
Службы местоопределения
Службы местоопределения - 2
Apxитeктypa приложения
Apxитeктypa приложения - 2
Структуры архитектуры
Структуры архитектуры - 2

Введение в JavaScript

Гипертекстовая информационная система состоит из множества информационных узлов, множества гипертекстовых связей, определенных на этих узлах и инструментах манипулирования узлами и связями. Технология World Wide Web - это технология ведения гипертекстовых распределенных систем в Internet, и, следовательно, она должна соответствовать общему определению таких систем. Это означает, что все перечисленные выше компоненты гипертекстовой системы должны быть и в Web.
Web, как гипертекстовую систему, можно рассматривать с двух точек зрения. Во-первых, как совокупность отображаемых страниц, связанных гипертекстовыми переходами (ссылками - контейнер ANCHOR). Во-вторых, как множество элементарных информационных объектов, составляющих отображаемые страницы (текст, графика, мобильный код и т.п.). В последнем случае множество гипертекстовых переходов страницы - это такой же информационный фрагмент, как и встроенная в текст картинка.
При втором подходе гипертекстовая сеть определяется на множестве элементарных информационных объектов самими HTML-страницами, которые и играют роль гипертекстовых связей. Этот подход более продуктивен с точки зрения построения отображаемых страниц "на лету" из готовых компонентов.

Понятие объектной модели применительно к JavaScript
JavaScript - это язык управления сценариями просмотра гипертекстовых страниц Web на стороне клиента. Если быть более точным, то JavaScript - это не только язык программирования на стороне клиента. Liveware, прародитель JavaScript, является средством подстановок на стороне сервера Netscape. Однако наибольшую популярность JavaScript обеспечило программирование на стороне клиента.

Понятие объектной модели в JavaScript
Cвойства
Методы
События
Размещение кода на HTML-странице
URL-схема JavaScript
Обработчики событий
Подстановки
Вставка - принудительный вызов интерпретатора
Размещение кода внутри HTML-документа

Поле статуса
Поле статуса — это первое, что начали использовать авторы HTML-страниц из арсенала JavaScript. Калькуляторы, игры, математические вычисления и другие элементы выглядели слишком искусственно. На их фоне бегущая строка в поле статуса была изюминкой, которая могла действительно привлечь внимание пользователей к Web-узлу. Постепенно ее популярность сошла на нет. Бегущие строки стали редкостью, но программирование поля статуса встречается на многих Web-узлах.

Программируем status
Программируем defaultStatus
Поле location
Свойства
Методы
История посещений (History)
Тип браузера (объект Navigator)
Управление окнами
Window.alert()
Window.confirm()

Контейнер FORM
Если рассматривать программирование на JavaScript в исторической перспективе, то первыми объектами, для которых были разработаны методы и свойства, стали поля форм. Обычно контейнер FORM и поля форм именованы

Action
Method
Target
Elements[]
Encoding
Reset()
Submit()
OnReset
OnSubmit
Текст в полях ввода

Объект Image
Наиболее зрелищные эффекты при программировании на JavaScript достигаются при работе с графикой. При этом в арсенале программиста не так уж много инструментов: встроенные в документ картинки, возможность генерации объекта Image, комбинирование картинок с гипертекстовыми ссылками и таблицами. Тем не менее обилие различных эффектов, которые достигаются этими нехитрыми средствами, впечатляет

Src и lowsrc
Изменение картинки
Изменение картинки - 2
Мультипликация
Событие onLoad()
Запуск и остановка мультипликации
Оптимизация отображения
Оптимизация при загрузке
Предварительная загрузка
Нарезка картинок

Объект URL
Свойства объекта URL дают программисту возможность менять только часть URL – объекта (гипертекстовой ссылки, например). Наиболее интересно это выглядит в объекте Location , когда при изменении свойства происходит перезагрузка документа. Однако и при работе с обычными гипертекстовыми ссылками такая технология более предпочтительна, чем изменение всего URL целиком.

Массивы встроенных гипертекстовых ссылок
Замена атрибута HREF
Изменение части URL
Обработка событий Mouseover и Mouseout
Обработка события click
Схема URL- "javascript:..."
Схема URL- "javascript:..." - 2
Пример 17.1
Example1
Объект URL

Типы и структуры данных
Как и любой другой язык программирования, JavaScript поддерживает встроенные типы и структуры данных. Все их многообразие подразделяется на: литералы и переменные; массивы, функции и объекты. При этом все они делятся на встроенные и определяемые программистом. Функции и объекты рассматриваются в разделах "Функции" и "Объекты". Поэтому здесь мы остановимся на литералах, переменных и массивах.

Литералы
Переменные
Массивы
Метод join()
Метод reverse()
Метод sort()
Функции
Функция — тип данных
Функция — объект
Функция — объект - 2

Клиентский JavaScript 1.3 Руководство

JavaScript это разработанный корпорацией Netscape межплатформенный объектно-ориентированный язык скриптинга (сценариев). Ядро JavaScript содержит набор основных объектов, таких как Array, Date и Math, и основной набор элементов языка, таких как операции, управляющие структуры и операторы. Ядро JavaScript может быть расширено путём предоставления дополнительных объектов; например:
* Клиентский JavaScript расширяет ядро языка за счёт объектов, управляющих браузером (Navigator или другой подобный web-браузер) и его Document Object Model (DOM). Например, клиентские расширения позволяют приложению размещать элементы на HTML-форме и отвечать на пользовательские события, такие как щелчок мышью, ввод данных в форму и навигация по страницам.
* Серверный JavaScript расширяет ядро языка за счёт объектов, имеющих отношение к работе JavaScript на сервере. Например, серверные расширения позволяют подключиться к реляционной БД, поддерживать непрерывность информации между вызовами приложения или работать с файлами на сервере.

Введение
JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

Новые возможности этой версии
Что Вы уже должны знать
Версии JavaScript
Версии JavaScript и Navigator'а
Версии JavaScript и Netscape Enterprise Server
Где найти информацию о JavaScript

JavaScript. Обзор
JavaScript даёт Вам возможность создавать приложения, работающие в Internet. Клиентские приложения работают в браузере, таком как Netscape Navigator, а серверные приложения запускаются на сервере, таком как Netscape Enterprise Server. Используя JavaScript, Вы можете создавать динамические HTML-страницы, которые обрабатывают пользовательский ввод и работают с данными через использование специальных объектов, файлов и реляционных баз данных.

Что такое JavaScript?
зык JavaScript
Ядро JavaScript
Клиентский JavaScript
Клиентский JavaScript - 2
Серверный JavaScript
Серверный JavaScript в процессе разработки
Серверный JavaScript на этапе прогона
JavaScript и Java
JavaScript в сравнении с Java

Значения, Переменные и Литералы
Этот сравнительно небольшой набор типов значений, или типов данных, даёт Вашим приложениям возможность выполнять различные функции. Отсутствует явное различие между целыми и реальными числами. Нет также типа данных date. Однако Вы может использовать объект Date и его методы для работы с датами.

Значения
Конвертация типов данных
Переменные
Объявление переменных
Вычисление переменных
Область видимости переменной
Литералы
Литералы массива
Лишние запятые в литералах массива
Булевы литералы

Выражения и Операции
Выражение\expression это правильный набор литералов, переменных, операций и выражений, который вычисляется в единственное значение; значение может быть числом, строкой или логическим значением. Концептуально имеются выражения двух типов: присваивающие значение переменной, и те, которые просто имеют значение. Например, выражение x=7 присваивает переменной x значение 7. Это выражение вычисляется в 7. Такие выражения используют операции присвоения.

Выражения
Операции
Операции присвоения
Операции присвоения
Операции сравнения
Операции сравнения
Арифметические операции
Арифметические операции - 2
Битовые операции
Битовые операции - 2

Регулярные Выражения
Использование функции-конструктора предоставляет компиляцию регулярного выражения на этапе прогона. Это делается, если известно, что патэрн регулярного выражения будет изменяться, или если Вы не знаете патэрн и получаете его из другого источника, такого как пользовательский ввод. После того как регулярное выражение определено, и если оно используется в скрипте и исходное значение изменяется, Вы можете использовать метод compile

Создание регулярного выражения
Написание патэрна регулярного выражения
Использование простых патэрнов
Использование специальных символов
Специальные символы в регулярных выражениях
Использование скобок
Работа в регулярными выражениями
Методы, использующие регулярные выражения
Результаты выполнения регулярного выражения
Использование совпадений подстрок в скобках

Операторы
JavaScript поддерживает компактный набор операторов, который Вы можете использовать для реализации интерактивного поведения Web-страниц. В главе дан обзор этих операторов. В главе имеются следующие разделы, в которых дан краткий обзор каждого оператора: Условные операторы: if...else и switch Операторы циклов: for, while, do while, label, break и continue (label сам по себе не оператор цикла, но часто используется с этими операторами) Операторы манипулирования объектами: for...in и with Комментарии

Условные Операторы
Оператор if...else
Оператор switch
Операторы циклов
Оператор for
Оператор do...while
Оператор while
Пример 1.
Пример 2: Бесконечный цикл.
Оператор label

Функции
Функции это фундаментальные конструкции JavaScript. Функция это процедура JavaScript - набор операторов, выполняющих специфическую задачу. Для использования функции Вы обязаны сначала определить её; затем Ваш скрипт может её вызвать.

Функции
Определение функций
Вызов функций
Использование массива arguments
Предопределённые функции
Функция eval
Функция isFinite
Функция isNaN
Функции parseInt и parseFloat
Функции Number и String

Работа с Объектами
JavaScript разработан на основе простой объектной парадигмы. Объект это конструкция со свойствами, которые являются переменными JavaScript или другими объектами. Объект также может иметь ассоциированные с ним функции, которые известны как methods\методы объекта. Помимо предопределённых серверных и клиентских объектов Navigator'а, можно создавать пользовательские объекты.

Объекты и свойства
Создание новых объектов
Использование инициализаторов объектов
Использование функции-конструктора
Индексирование свойств объекта
Определение свойств для типа объектов
Определение методов
Использование this для ссылок на объект
Удаление объектов
Предопределённые объекты ядра

Объектная Модель. Детали
JavaScript это язык на базе прототипов, а не на базе классов. Из-за этого в JavaScript менее очевидно, как создаётся иерархия объектов и происходит наследование свойств и их значений. В данной главе делается попытка прояснит этот вопрос.

Языки классов и языки прототипов
Определение класса
Подклассы и наследование
Добавление и удаление свойств
Отличия. Резюме.
Сравнение объектных
Пример Employee
Простая иерархия объектов
Создание иерархии
Определения объекта Employee

Внедрение JavaScript в HTML
Вы можете встроить JavaScript в HTML-документ: как операторы и функции в тэге SCRIPT, специфицировав файл в качестве источника кода JavaScript, специфицировав выражения JavaScript как значения HTML-атрибута или как обработчики событий в некоторых HTML-тэгах (во основном - в элементах формы).

Использование тэга SCRIPT
Специфицирование версии JavaScript
Таблица 9.1Версии JavaScript и Navigator'а
Пример 1.
Пример 2.
Пример 3.
Скрытие скриптов в тэгах комментария
Пример: первый скрипт
Простой скрипт
Специфицирование файла с кодом JavaScript

Обработка Событий
Приложения JavaScript в браузере Navigator широко используют механизм обработки событий. Events\События это акции, которые обычно возникают как результат некоторых действий пользователя. Например, щелчок по кнопке является событием, также как и изменение текста или перемещение мыши над гиперссылкой. Чтобы Ваш скрипт реагировал на события, Вы определяете event handlers\обработчики событий, такие как onChange и onClick.

Определение обработчика события
Пример: использование обработчика события
Форма с обработчиком события
Вызов обработчиков событий явным образом
Объект Event
Захват событий
Включение захвата событий
Определение Обработчика События
Регистрация обработчика события
Полный пример

Использование Объектов Navigator'а
В этой главе рассматриваются объекты JavaScript в Navigator'е и объясняется, как их использовать. Объекты клиентского JavaScript иногда называются объектами Navigator'а, чтобы отличить их от серверных или пользовательских объектов.

Иерархия объектов Navigator'а
Иерархия объектов Navigator'а
Свойства документа: пример
Пример значений свойств объектов
Отражение JavaScript и вывод HTML
Ключевые объекты Navigator'а
Объекты window и Frame
Объект document
Объект Form
Объект location

Использование Окон и Фрэймов
JavaScript позволяет создавать окна и фрэймы для представления HTML-содержимого. Объект window является объектом верхнего уровня в иерархии клиентского JavaScript; объект Frame похож на объект window, но соответствует "подокну" и создаётся тэгом FRAME в документе с тэгом FRAMESET.

Открытие и закрытие окон
Открытие окна
Закрытие окна
Использование фрэймов
Создание фрэйма
Пример 1.
Пример иерархии фрэймов
Пример 2.
Ещё один пример иерархии фрэймов
Обновление фрэйма

Дополнительные Статьи
Вам, возможно, уже знакомы стандартные типы URL и так далее. В Navigator'е Вы можете использовать также URL типа javascript: для выполнения операторов JavaScript вместо загрузки документа. Вы просто используете строку, начинающуюся с javascript:, в качестве значения атрибута HREF тэгов anchor. Например, Вы можете определить такую гиперссылку для перезагрузки текущей страницы

Использование JavaScript-URL
Использование клиентских карт изображений
Использование серверных карт изображений
Использование статусной строки
Создание подсказок - onMouseOver и onMouseOut
Использование кук
Ограничения
Использование кук в JavaScript
Использование кук: пример
Определение установленных Plug-in'ов

Безопасность в JavaScript
JavaScript автоматически предотвращает доступ скриптов одного сервера к свойствам документов на других серверах. Это не даёт скриптам возможность получать закрытую информацию, такую как структура директорий или история пользовательских сессий. В данной главе рассматриваются модели безопасности/security models, имеющиеся в разных релизах JavaScript.

Политика Одного Источника
Сравнения источника
Свойства - субъекты проверки источника
Проверка источника document.domain
Проверка источника именованных форм
Проверка источника и тэги SCRIPT
Проверка источника и слои
Проверка источника и Java-аплеты
Использование маркированных скриптов
Маркированные скрипты. Введение.

LiveConnect. Обзор
Служба LiveConnect по умолчанию включена в Navigator'е 1.1 и последующих версиях. Чтобы LiveConnect работала, должны быть включены Java и JavaScript. Для проверки этого выберите Preferences в меню Edit и просмотрите раздел Advanced.

Что такое LiveConnect?
Включение LiveConnect
Консоль Java
Работа с оболочками
Взаимодействие JavaScript с Java
Объекты LiveConnect
Объект Packages
Работа с массивами Java
Ссылки на пакет и класс
Аргументы типа char

Отображение Ошибок с Помощью Консоли JavaScript
Для открытия консоли JavaScript выполните одно из следующих действий. Консоль открывает новое окно. Введите в адресную строку такой URL.javascript: Выберите Open Page из меню File и введите следующий URL:javascript: Вставьте следующий код в HTML Вашей страницы:A HREF="javascript:"Open JavaScript console/A

Открытие консоли JavaScript
Вычисление выражений с помощью консоли
Вывод сообщений об ошибках на консоль
Приложение AПочтовые Фильтры
Создание фильтра и добавление в rules-файл
Создание фильтра и добавление в rules-файл - 2
Фильтры новостей
Обращение к объекту сообщения
Почтовые сообщения
Шапки/Headers сообщений

Словарь
Здесь даны определения некоторых терминов, используемых в JavaScript

ASCII
BLOb
CGI
Client/клиент
Client-side/клиентский JavaScript
Cookie/кука
CORBA
Core/ядро JavaScript
Deprecate/не рекомендуется
ECMA

JavaScript

Существуют броузеры, не поддерживающие некоторых возможностей JavaScript. Поэтому, чтобы не возникало ситуаций, когда броузер пользователя не видит чего-либо в вашем документе, можно использовать свойства объекта Navigator: appName и appVersion, которые определяют имя и версию броузера. В зависимости от версии броузера можно осуществлять вызов того или иного документа.
Например, на платформах с 16-разрядной Windows обращение к функции eval() приводит к краху Netscape Navigator 2.0. Поэтому, если мы посмотрим , где используется эта функция, то в нем как раз анализируется имя и версия броузера.

Изменение фона документа
Первый пример - это часы, отображающие время загрузки страницы (т.е. момент вызова скрипта). Используются методы объекта Date (getHours, getMinutes) и графические файлы, отображающие полученное время (имена этих файлов соответствуют цифрам - 0-9).

Графические часы
Идущие часики
Изменение фона документа.
Дата последнего изменения документа.
Изменение картинки
История посещений.
Информация о документе.
Бегущая строка
Вывод окна сообщений.
Органайзер

Метод getTimezoneOffset
Возвращает смещение временной зоны в минутах относительно гринвичского меридиана.

Метод indexOf
Синтаксис:
Описание:
Функция isNaN
Синтаксис:
Описание:
Метод italics
Синтаксис:
Описание:
Метод lastIndexOf

Объект password
Изменен в Navigator 3.0. Текстовое поле в HTML форме, значение которого на экране отображается звездочками (*). Когда пользователь вводит текст в это поле, звездочки (*) скрывают введенное значение.

Объект password
Синтаксис:
Описание:
Свойства:
Объект radio
Синтаксис:
Описание:
Свойства:
Объект reset
Синтаксис:

Основы программирования на JavaScript

В JavaScript строка является любым фрагментом текста. Как и многие другие объекты в JavaScript, строки можно определять несколькими различными способами:
var myString = 'Hello, World!'; var myString = new String('Hello, World!');
Первый метод используется наиболее часто. Второй метод применяется редко и только для гарантии, что получаемый объект является строкой. Например:
var n = 5; var s = new String(n*20);
В этом примере s будет строкой " 100". Если просто задать s как n*20, то s будет содержать число 100. Однако поскольку JavaScript является слабо типизированным языком, то эти различия не будут существенно влиять на то, что вы делаете.
Строковые объекты (var n = new String('Hello World')) технически являются в Internet Explorer более медленными при некоторых операциях, чем строковые литералы (var n = 'Hello World'). Однако это поведение совершенно противоположно в других браузерах. В любом браузере различие редко бывает настолько заметно, чтобы об этом беспокоиться.

Строки
Тот факт, что функции indexOf и lastIndexOf возвращают -1, если строка не существует, является очень полезным и позволяет использовать эти функции для достаточно распространенной задачи - проверки того, что одна строка существует внутри другой.

Строки
Строки - 2
Строки - 3
Числа
Числа - 2
Массивы
Массивы - 2
Строки
Строки - 2
Числа

Изображение: Блок-схема документа
Изображение может помочь лучше понять отношения предок-потомок в этом коде. Необходимо также отметить атрибуты в некоторых из этих тегов. Например, тег TABLE (table border="0" cellspacing="2" cellpadding="5") имеет 3 заданых атрибута: border, cellspacing и cellpadding. При изменении DOM часто бывает необходимо изменить эти атрибуты. Можно, например, изменить атрибут SRC тега IMG, чтобы изменить выводимое изображение.

Создание эффекта изменения изображения
Добавление и удаление элементов
Добавление и удаление элементов - 2
Добавление и удаление элементов - 3
Элементы потомки
Элементы потомки - 2
Работа с текстом
Работа с текстом - 2
XML
Изображение: Блок-схема документа

Объект Window
Положение окна на экране пользователя редко бывает необходимо, но два других свойства, location и opener, будут очень полезны. Свойство window.location выполняет две функции. Если изменить его с помощью JavaScript, например, window.location='htmlgoodies.com', то браузер будет перенаправлен на эту страницу. Чтение window.location выдает адрес текущего документа. Зачем это нужно знать?

Объект Window
Объект Window - 2
Объект Window - 3
SetTimeout и setInterval
Window.opener
Объект Document (window.document)
Document.body и document.documentElement
Title, referer
Сookie
Сookie - 2

Основы JavaScript
Почти каждый современный язык программирования имеет некоторый метод записи объектно-ориентированного (ОО) кода. Если вы знакомы с такими языками, как C, Java, VB, php или подобными, то должны быть знакомы и со структурой Class этих языков. Классы в этих языках позволяют быстро создавать объекты с одинаковыми свойствами и методами, не требуя при этом заново определять все эти свойства и методы. В терминах структур мы имеем классы, а внутри этих классов - функции и переменные, а внутри каждой из этих функций - дополнительные переменные.

New Object и объектные литералы
New Object и объектные литералы - 2
Прототипирование
Прототипирование - 2
Прототипирование - 3
Переменные Private, Public и Static
Переменные Private, Public и Static - 2
Основы JavaScript
New Object и объектные литералы
New Object и объектные литералы - 2

Наследование
По сути наследование позволяет определить объекты "предки" и "потомки". Потомок наследует все свойства своего предка. Можно было создать, например, функцию "Animal", "Pet" или "Mammal". Обе функции Cat и Dog обладали бы многими свойствами функции предка Animal, и нам пришлось бы писать этот код один раз.

Наследование
Наследование - 2
Замыкание
Замыкание - 2
Замыкание - 3
Наследование
Наследование - 2
Замыкание
Замыкание - 2
Замыкание - 3

Создание объекта XMLHttp
При создании запроса AJAX прежде всего необходимо создать объект XMLHTTP. Netscape/Firefox, Opera и другие браузеры имеют этот объект встроенным. Internet Explorer использует ActiveXObject. Поэтому мы создадим одну функцию для работы со всеми этими браузерами

Создание объекта XMLHttp
Создание объекта XMLHttp - 2
XML, JSON или текст
XML, JSON или текст - 2
XML, JSON или текст - 3
XML, JSON или текст - 4
Пример со списком контактов
Пример со списком контактов - 2
Пример со списком контактов - 3
Создание объекта XMLHttp

Синтаксические ошибки
JavaScript имеет два основных уровня обработки ошибок: синтаксические ошибки и ошибки времени выполнения. Синтаксические ошибки возникают до выполнения кода JavaScript, означая в основном, что код невозможно компилировать.

Синтаксические ошибки
Синтаксические ошибки - 2
Ошибки времени выполнения
Ошибки времени выполнения - 2
Window.onerror
Try/Catch/Finally и Throw
Try/Catch/Finally и Throw - 2
Обработка ошибок в AJAX
Обработка ошибок в AJAX - 2
Синтаксические ошибки

Стек
При вызове функции копия множества переменных, которые нужны ей для работы, сохраняется в памяти. Если функция вызывается рекурсивно, то другая копия всех этих переменных сохраняется в памяти, затем еще одна и т.д. Эти копии переменных сохраняются в так называемом стеке. Первая копия находится внизу, следующая поверх нее, и т.д. К сожалению, существует ограничение на размер стека. В большинстве браузеров этот предел определен где-то в районе 1000. Это означает, что для функции заливки сетка могла бы содержать до 1000 квадратов.

Стек
Создание собственного стека
Применение рекурсии
Стек
Создание собственного стека
Применение рекурсии

AJAX = Асинхронный JavaScript и XML
AJAX является сокращением от "Asynchronous JavaScript And XML" (Асинхронный JavaScript и XML). AJAX является не новым языком программирования, а просто новым способом создания Web-приложений, которые будут лучше, быстрее, и более интерактивными. AJAX использует JavaScript для отправки и получения данных при взаимодействии Web-браузера и Web-сервера.

AJAX является технологией браузера
AJAX основан на открытых стандартах
Технология AJAX улучшает приложения Интернет
AJAX можно использовать прямо сейчас
AJAX использует XML и запросы HTTP
Пример использования AJAX
Пример AJAX
Описание примера
Форма HTML
Функция showHint()

Введение в XHTML
XHTML является сокращением от английского EXtensible HyperText Markup Language, что означает "Расширяемый язык разметки гипертекста". XHTML предназначен для замены HTML. XHTML почти совпадает с HTML 4.01. XHTML является более строгой и четкой версией языка HTML.

XHTML рекомендован консорциумом W3C
Все новые браузеры поддерживают XHTML
Преобразование Web-сайта на XHTML
Что содержится в данном руководстве
Зачем нужен XHTML?
Зачем нужен XHTML?
Различия между XHTML и HTML
Как переходить к использованию XHTML
Наиболее важные различия
Элементы XHTML - вложение

Сценарии JavaScript в активных страницах Web

Многие современные серверы Web являются активными или содержат активные страницы, которые взаимодействуют с пользователем. Описанные в только что упомянутом 29 томе программы CGI и приложения ISAPI позволяют создавать активные серверы Web, способные получать данные от удаленного пользователя, обрабатывать их и посылать результат обработки обратно в виде документа HTML. В качестве примера активных приложений, работающих на сервере Web, можно назвать чрезвычайно популярные счетчики посещений, гостевые книги, базы данных, доступные через Internet и так далее.
Что же касается активных страниц Web, то с их помощью также можно создавать диалоговые приложения, однако обработка введенных данных выполняется не на сервере, а на рабочей станции пользователя, то есть локально. Активными мы будем называть документы HTML, которые содержат в себе аплеты Java, а также программы, составленные на таких языках, как JavaScript и VBScript.

Семь вариаций на тему “Hello, world!”
Что касается аплетов и полноценных приложений Java, то им посвящены тома 30 и 32 “Библиотеки системного программиста”, которые называются “Создание приложений Java. Часть 1” и “Создание приложений Java. Часть 2”, соответственно. Размещая на страницах сервера Web аплеты Java, вы можете выполнять на рабочей станции достаточно сложную локальную обработку данных. Реализация такой обработки с помощью программ CGI или приложений ISAPI была бы затруднительной или вовсе невозможной.

Вариация 1: самый простая
Вариация 1: самый простая - 2
Вариация 2: с секретным исходным текстом
Вариация 2: с секретным исходным текстом - 2
Вариация 3: с переменной и функциями
Вариация 3: с переменной и функциями - 2
Вариация 4: создание страницы “на лету”
Вариация 5: с диалоговой панелью
Вариация 6: обработка события
Вариация 7: с определением типа браузера

Переключатель radio
Назначение параметров NAME, VALUE и CHECKED переключателя radio такое же как и назначение аналогичных параметров переключателя checkbox. Отличие заключается в том, что все переключатели radio, принадлежащие к одной группе, должны иметь одинаковые имена, определенные параметром NAME. Что же касается переключателей checkbox, то если их несколько, то все они должны называться по-разному

Свойства объекта radio
Методы объекта radio
Пример формы с переключателями
Пример формы с переключателями - 2
Пример формы с переключателями - 3
Пример формы с переключателями - 4
Пример формы с переключателями - 5
Пример формы с переключателями - 6
Список select
Свойства объекта select

Справочник по Javascript

Синтаксис и команды JavaScript можно разделить на несколько категорий в зависимости от их назначения и использования. Объекты представляют собой блоки, из которых строится JavaScript. Они применяются для возвращения значений и изменения состояния форм, страниц, броузера и определенных программистом переменных. Объекты можно сопоставить с существительными. Кошка, автомобиль, дом, компьютер, форма - все это существительные, они могут быть представлены как объекты (см. раздел «Объекты»). Мы используем свойства для того, чтобы различать объекты одного класса - например, всех объектов типа кошка. Свойства сравнимы с прилагательными и ссылаются на уникальные для каждого экземпляра объекта особенности.

Abs
В случае кошки это может быть вес, цвет, местоположение, текущее занятие, количество блох и т. п. (см. раздел «Свойства»). Методы служат для передачи сообщений объекту и иногда для изменения состояния его свойств. Например, один метод может быть использован для изменения текущего занятия кошки от еды ко сну, а другой - для уменьшения количества блох

Acos
Action
Alert
AlinkColor
Anchors array
Anchor
Anchors
AppCodeName
AppName
AppVersion

UserAgent
Синтаксис возвращаемого значения такой же, как у свойства appVersion, дополненный кодовым именем приложения броузера. codename/releaseNumber(platform; country)

UTC
Value
VlinkColor
Window
Window - 2
Window
Write
Writeln

Ядро JavaScript 1.5. Руководство по использованию

Выражение это правильный набор литералов, переменных, операторов и выражений, который вычисляется в одно значение; это значение может быть числом, строкой или логическим значением.
Концептуально есть выражения двух видов: присваивающие значение переменной и просто имеющие значение. Например, выражение x = 7 это выражение, в котором x получает значение 7. Это выражение вычисляется в 7. Такие выражения используют операции присвоения. С другой стороны, выражение 3 + 4 просто вычисляется в 7; оно не выполняет присвоения значения. Операции, используемые в таких выражениях, называются просто операциями.

Выражения и Операции
В этом разделе рассмотрены операции и содержится информация о приоритете выполнения операций. В JavaScript имеются следующие типы операций: В JavaScript имеются бинарные и унарные операции. Для выполнения бинарной операции необходимы два операнда: один до знака операции и один - после

Операции Присвоения
Операции Сравнения
Арифметические Операции
Побитовые Операции
Побитовые Логические Операции
Побитовые Операции Сдвига
Логические Операции
Логические Операции - 2
Сокращённое Вычисление
Строковые Операции

Операторы
Блок операторов используется для группирования операторов. Блок ограничен фигурными скобками: {statement1 statement2 . . .statementn}

Блок Операторов
Условные Операторы
Оператор if...else
Оператор switch
Операторы Циклов
Оператор for
Оператор do...while
Оператор while
Оператор label
Оператор break

Самоучитель по JavaScript

Самоучитель состоит из 25 уроков, в каждом из которых по следующей схеме объясняется новое понятие: сначала небольшое вступление и сам скрипт, затем эффект, который он производит, после этого подробный разбор скрипта вплоть до каждой запятой и задание для самостоятельной работы. В конце каждого урока ссылка на страницу с ответом.
Имейте в виду, что в дальнейшем слово «я» будет относиться к американскому автору Джо Бернсу, за исключением слов, выделенных красным цветом.

Сообщения об ошибках
Сообщение об ошибке
Исправление ошибок
Исправление ошибок - 2
Ваше задание
Дата и время
Скрипт
Эффект
Разбор скрипта
Разбор скрипта - 2

Basic вводный курс

Представляемая книга содержит опыт, накопленный автором за время работы преподавателем информатики в школе. Десять лет назад мы учили школьников работать на программируемых калькуляторах, сегодня — на самой современной вычислительной технике. Но, в любом случае, убеждение, что преподавание основ программирования в школе необходимо, осталось до сих пор, хотя и претерпело какие-то изменения.
Алгоритмизация мышления позволяет человеку выживать в бушующем море информации, формирует системный подход к любым жизненным ситуациям.
Кроме того, за этот десятилетний период работы в школе автору очень редко приходилось встречать хорошие задачники по программированию, которые были бы насыщены разнообразными примерами. А еще, полагая, что Бейсик сейчас преподается в большинстве своем школьникам и, по опыту зная, насколько им интереснее "живые", не сухие задания, автор попытался вести разговор с читателем на понятном им языке, включая иногда и какие-то сленговые компьютерные словечки.

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

Немного истории
О языках: интерпретаторы и компиляторы
Дружественный интерфейс
Этапы решения алгоритмических задач

Язык Бейсик
Прежде чем непосредственно приступить к программированию, надо научиться пользоваться средой предлагаемого к изучению языка. А поскольку она на русском языке, то это не составит большого труда. Итак, нам предстоит узнать: где взять русский Бейсик; как его запустить и начать работу; как вводить текст программы в окне редактора; как запускать программы на выполнение; как сохранить программу на диске в виде файла и открыть уже существующую для просмотра и редактирования

Оператор присваивания
Предупреждение 1
Предупреждение 2
Синтаксис оператора присваивания
Пример использования оператора присваивания
Выводим результаты
Предупреждение 1
Стандартные функции Бейсика
Стандартные алгебраические функции
Предупреждение 1

Алгоритмы, графика, символы и строки
Все, что бы мы ни делали, будь то на компьютере, или в жизни, чаще всего преследует какую-либо цель. И не всегда эта цель достигается. Но если мы как следует сформулируем для себя же лаемый результат, потом продумаем четкий план его достижения, то, по крайней мере, на компьютере цель будет достигнута (в жизни, к сожалению, не все так однозначно). Так вот, четкая, ясная и однозначная последовательность действий, приводящая к достижению результата, называется алгоритмом. Примеры алгоритмов из жизни — это и правила перехода улицы, рецепт пирога, инструкция по изготовлению ядерной бомбы в домашних условиях и т. д.

Безусловный переход
Условный переход
Движение точки по экрану под углом 45°
Движение точки по экрану с препятствием
Муха в графине
Греческий орнамент
Буратино
Оператор цикла WHILE... WEND
Случайные числа
Моделирование бросания монеты

Массивы, подпрограммы
Мы подобрались к одной из самых сложных, на мой взгляд, тем в программировании для начинающих. Именно из-за массивов я остался на второй год в институте (потому что тогда в школах еще этим не занимались). Теперь, когда я объясняю эту тему своим ученикам, то стараюсь сделать это как можно более доходчиво, пусть не совсем научными терминами, но понятно, поскольку без представления, что такое массив, дорога в программирование будет закрыта.

Операции над файлами
Предупреждение 1
Открытие файла
Запись в файл
Предупреждение 1
Предупреждение 2
Чтение из файла
Изменения данных в файле
Добавление данных в файл
Исходные данные задачи

Задания повышенной трудности
Если вы добрались до сих слов, дорогой читатель, то дальше, полагаю, вы сможете идти один, гордо неся знамя российского программирования над миром (ведь только в США 80% разработчиков программного обеспечения и математиков — наши соотечественники).

Угадайка (математика и программирование)
Задача пользователя — за минимальное
Анаграммы (русский язык и программирование)
Стрельба из пушки (физика, математика)
Стрельба из пушки: вариант 1
Царь-пушка (математика, физика, экономика)
Исходные данные для задания "Царь-пушка"
Кинотеатр "Кристалл-Палас" (экономика)
Рассадка зала
Цены билетов в кинотеатре "Кристалл-Палас"

Решения

Дополнительные возможности
Здесь хотелось бы рассказать о возможностях Бейсика, позволяющих писать более красивые программы, работать с которыми пользователю было бы приятно, и в душе он поминал бы вас хорошими словами

Экранные режимы: оператор SCREEN
Характеристики видеосистем
Экранные режимы для адаптеров VGA и SVGA
Цвет символов и цвет фона: оператор COLOR
Возможные цвета
Движущиеся изображения: операторы GET и PUT
ание блохи DRAW "C2
ок занимает примерно 55
Цвет точки экрана: функция POINT
Одиночный звуковой сигнал: оператор ВЕЕР

Приложение
Здесь мне хочется коротко представить наиболее часто используемые операторы Бейсика, снабдив их краткими комментариями (табл. П1—П10). Полная справка по языку имеется в его оболочке, где вы легко можете найти полные сведения о том или ином операторе с наглядными примерами.

Язык Qbasic. Краткий справочник
Числовые функции
Функции графики и экрана
Операторы выбора и перехода
Операторы и функции для работы с файлами
Переменные
Массивы
Циклы
Подпрограммы и функции
Звуки и музыка

Де Бомон Мадам Лепренс - Красавица И Чудовище
Три статьи по работе с MySQL
Руководство по реляционной СУБД DB2
Разработка приложений баз данных для СУБД Sybase SQL Anywhere
Сравнение подходов к крупномасштабному анализу данных
Серверы корпоративных баз данных
Основы проектирования приложений баз данных
Научись снимать цифровым фотоаппаратом
Шифрование и секретность в Linux
Основы цвета
Джебран Халиль Джебран - Философия Логики Или Познание Самого Себя
OpenGL в Delphi
Советы по Delphi от Валентина Озерова
Безопасность в Дельфи
Современное делопроизводство
Основы языка Delphi
Delphi 6 программирование
Статьи Королевства Дельфи
Справочник параметров командной строки
Delphi 5.Учебник