extracted_text:
Н. Д, Угринович

БИНОМ

Н, Д,
Угринович
ИНФОРМАТИКА

Учебник для
10 класса
3-е издание,
исправленное
Допущено
Министерством образования и науки
Российской Федерации к использованию в образовательном процессе в
образовательных учреждениях, реализующих образовательные программы общего
образования
Москва
БИНОМ.
Лаборатория знаний
2008
удк 004.9 ББК 32.97
У27
Угринович Н. Д.
У27 Информатика и ИКТ. Профильный
уровень : учебник для 10 класса / Н. Д. Угринович. 3-е изд., испр. — М. :
БИНОМ. Лаборатория знаний, 2008. 387 с. : ил.
ISBN 978,5-94774-828-4
Учебник по курсу «Информатика и ИКТ»
ориентирован на информационно-технологический и физико-математический профили
обучения в общеобразовательных учреждениях. Учебник полностью соответствует
новому образовательному стандарту и примерной программе профильного обучения,
утвержденным Министерством образования и науки РФ. Содержание учебника
соответствует программе вступительных экзаменов по информатике в вузы, и он
может быть использован для подготовки к экзаменам.
Рассматриваются архитектура компьютера и методы защиты
информации, понятие «информация» и системы счисления, основы логики и
логические основы компьютера, а также объектно-ориентированное программирование
нв- четырех КЗЫКАУ-•. Vtsuat Bastc, Deiphi, Visuai С# и Visual Ј#. Все
необходимое для преподавания курса программное обеспечение содержится на
СЕ)-дисках, которые входят в состав методического пособия для учителя.
удк 004.9
ББК 32.97
По вопросам
приобретения обращаться:
«БИНОМ.
Лаборатория знаний»
(499)
157-52-72, e-mail: Lbz@aha.ru http:[[www.Lbz.ru
С Угринович
Н. Д., 2008
ISBN 978-5-94774-828-4                            БИНОМ.
Лаборатория знаний, 2008
Оглавление

Рекомендации по использованию учебника .
Глава 1. Архитектура компьютера и
защита информации .
1.1. Магистрально-модульный принцип
построения компьютера. 10
1.2. Процессор и оперативная память.
16
1.2.1. Процессор. 16
1.2.2. Оперативная память. .. 23
1.3. Внешняя (долговременная) память . . . . . . . . .29
1.3.1. Магнитная память . . .. 29
1.3.2. Оптическая память. 31
        1.3.3.
Флэш-память .              . .34
1.4. Файл и файловые системы ..
37
1.4.1. Логическая структура носителя информации. 37
1.4.2. Файл .. 44
1.4. З. Иерархическая файловая система .. 49
1.5. Операционная система. 54
1.5.1. Назначение и состав операционной системы .54
1.52. Загрузка операционной системы .. 59
1.6. Защита информации от вредоносных программ .. 61
1.6.1. Вредоносные программы и антивирусные программы. 61 1.6.2. Компьютерные вирусы и
защита от них . .. 64
1.6.3. Сетевые черви и защита от них. 71
6.4. Троянские программы и защита от них .. 75
1.6.5. Рекламные и шпионские программы и защита от них. 79 1.6.6. Спам и защита от него .. 84
1.6.7. Хакерские утилиты и защита от них
.. 88 Глава. 2. Информация. Системы
счисления . . . . . . . .. 94
2.1. Понятие «информация» в науках о
неживой и живой природе, обществе и технике . . . . . . . .. 94 2.1.1. Информация в физике . . .
. . .. 94
2.1.2. Информация в биологии .. 99
2.1.3. Информация в общественных науках. .. 101
2.1.4. Информация в кибернетике . .103

Оглавлекке

2.2. Количество информации как мера
уменьшения неопределенности знания .105
2.3. Алфавитный подход к определению
количества информации. 110
2.4. Формула Шеннона .111
2.5. Кодирование текстовой, графической и звуковой
информации .115 2.6. Хранение информации .. 119 2.7. Кодирование числовой
информации.
Системы счисления . .. 121
2.7.1. Непозиционные системы счисления. . . . . .121
2.7.2. Позиционные системы счисления .. 125
2.8. Перевод чисел из одной системы счисления в другую
. . . 129
2.8.1. Перевод целых чисел из десятичной системы в
двоичную, восьмеричную и шестнадцатеричную . . . 129 2.8.2. Перевод дробей из
десятичной системы в двоичную, восьмеричную и шестнадцатеричную  . 133 2.8.3. Перевод чисел из
двоичной системы в восьмеричную и шестнадцатеричную и обратно . . . 136

2.9. Арифметические операции в позиционных

         системах счисления

     . 140

2.10. Представление чисел в компьютере. .
2.10.1. Представление чисел в формате

     . 143

с фиксированной запятой .      2.10.2. Представление чисел в
  формате

    .
  143

                    с
  плавающей запятой
Глава. З. Основы логики и
  логические основы

     . 148

                  компьютера

   . 151

3.1. Формы мышления. . .

     . 151

3.2. Алгебра логики . . . . . .

     . 156

3.2.1. Логическое умножение, сложение и отрицание. . .
. . 156
З. 2.2. Логические выражения .  . 164
З. 2.3. Логические функции .  . 169
З. 2.4. Логические законы и правила преобразования
логических выражений . . . . .  . 174 З. 2.5. Решение логических задач . .  . 177
3.3. Логические основы устройства компьютера  . 180
3.3.1. Базовые логические элементы .  . 180
3.3.2. Сумматор двоичных чисел . . . . .  . 183
3.3.3. Триггер  . 188
Оглавление                                                                                5

Алгоритмизация и основы
объектно-ориентированного

программирования .
4.1. Алгоритм и кодирование основных алгоритмических

. 190

          структур .

.
  190

         4.1.1. Алгоритм и его свойства. . . . . . .
  . .
4.1.2. Алгоритмические структуры

. 190

                     «ветвление» и «выбор»

. 192

         4.1.3. Алгоритмическая структура «цикл»

. 195

4.2.
  История развития языков программирования
4.3. Введение в объектно-ориентированное визуальное

.
  197

         программирование

.
  201

        4.3.1. Объекты: свойства и методы

. 201

          4.3.2. События . . . . .

. 203

         4.3.3. Проекты и приложения .

. 205

4.4. Система объектно-ориентированного
программирования
Microsoft Visual Studio .NET  . 208
4.4.1. Платформа .NET Framework  . 208
4.4.2. Интегрированная среда разработки языков
Visual Basic .NET, Visual С# и Visual Ј#  . 212
4.5. Система объектно-ориентированного
программирования

         Turbo Delphi .

. 216

4.6. Переменные .

.
  221

4.7. Графический интерфейс .

. 226

4.8. Пространство имен .NET .

. 237

4.9. Процедуры и функции

. 243

         4.9.1. Процедуры. . .

. 243

         4.9.2. Функции .

. 248

4.10. Итерация и рекурсия .

. 252

4.11. Делегаты. . . . . . .
  .

. 257

4.12. Алгоритмы перевода чисел и их кодирование на языках
  объектно- ориентированного

         программирования .

. 262

         4.12.1. Алгоритм перевода целых чисел. . .
  . . . . . . . .

. 262

        4.12.2. Алгоритм перевода дробных чисел . .
  . . . . . . .
4.13. Графика в объектно-ориентированных языках

. 272

         программирования .
4.13.1. Графика в языках программирования

.
  281

                     Visual Basic .NET, Visual С# и
  Visual Ј#
4.13.2. Графика в языке программирования

. 281

                      Turbo Delphi

.
  зоо

Оглавление

4.13.3. Компьютерная и математическая
системы координат .  . 311
4.13.4. Анимация. .  . 316
4.14. Модульный принцип построения
решений (групп) и проектов. .  . 320
4.15. Чтение и запись данных в файлы .  . 329
4.16. Массивы .  . 332
4.16.1. Заполнение массивов .  . 332
4.16.2. Поиск элемента в массивах .  . 341
4.16.3. Сортировка числовых массивов .  . з 44
4.16.4. Сортировка строковых массивовЗ 54

Глава. 5. Практические задания для
тематического и итогового контроля .  . . . . . . . . . 359
Тема «Архитектура компьютера и защита информации» .
359
Тема «Информация. Системы счисления»  . 367 Тема «Логика и логические
основы компьютера»  . 368
Тема «Алгоритмизация и основы
объектноориентированного программирования» .  . 369
Ответы и решения . . . . . . . . 375
Плакаты . . . .  . . . . . . . . 377

Таблица 1. Процессоры
Таблица 2. Элементы управления для ввода и вывода

.
  377

                      данных . .
Таблица З. Элементы управления для
  организации

.
  379

                     интерактивного диалога . .
Таблица 4. Элементы управления, не отображаемые

.
  380

                      на форме в процессе выполнения
  проекта. .

.
  381

Таблица 5. Типы переменных .

.
  382

Таблица 6. Встроенные функции (методы) . .
Таблица 7. Кодирование
  алгоритмических структур

.
  383

«ветвление» и «выбор» . .         Таблица 8. Кодирование
  алгоритмической

. 384

                      структуры «цикл» .

.
  385

Словарь компьютерных
  терминов

. 386

Рекомендации по использованию учебника
1.  Учебник
«Информатика и ИКТ-10. Профильный уровень» обеспечивает изучение профильного
курса «Информатика и ИКТ» в 10 классе на профильном уровне в соответствии с образовательным
стандартом. Учебник входит в состав учебно-программного комплекса, включающего:
•
учебники для
основной школы: «Информатика и ИКТ-8» и «Информатика и ИКТ-9»;
•   учебники
по профильному курсу для старшей школы на базовом уровне: «Информатика и
ИКТ-10. Базовый уровень» и «Информатика и ИКТ-11. Базовый уровень»;
•   учебники
по профильному курсу для старшей школы на профильном уровне: «Информатика и
ИКТ-10. Профильный уровень» и «Информатика и ИКТ-11. Профильный уровень» ;
•
учебное пособие и CD-ROM по элективному курсу для старшей школы
«Исследование информационных моделей»;
•   методическое
пособие для учителей «Преподавание курса «Информатика и ИКТ» в основной и
старшей школе»; • Windows-CD, содержащий программную поддержку курса, готовые
компьютерные прбекты, рассмотренные в учебниках, тесты и методические материалы
для учителей;
•   Visual
Studio-CD (выпускается по лицензии корпорации Microsoft), содержащий
дистрибутивы систем объектно-ориентированного программирования языков Visual
Basic .NET, Visua1 и Visua1
•   Linux-DVD
(выпускается по лицензии компании AltLinux), содержащий операционную систему
Linux и программную поддержку курса;
•   TurboDelphi-CD
(выпускается по лицензии компании Borland), содержащий систему
объектно-ориентированного программирования TurboDelphi.
2.  В
практических работах указано необходимое для их выполнения программное
обеспечение, которое обозначается значком приложения.
З. В учебнике используются ссылки на
внешние источники информации (учебники, СГ)-циски и Интернет), а также на
параграфы и пункты самого учебника.
4.
В тексте пособия
приняты следующие выделения:
•   Шрифтом
Arial выделены имена программ, файлов и Интернет-адреса.
Рекомендации
по использованию учебника

•   Шрифтом
Courier New выделены программы на языках программирования.
•   Курсивом
выделены названия диалоговых окон, пунктов меню и элементов управления
(текстовых полей, кнопок и т. д.) графического интерфейса операционных систем и
приложений.
•   Полужирным
шрифтом выделены важные термины и понятия.
•   Подчеркиванием
выделены термины, краткое объяснение которых содержится в Словаре компьютерных
терминов.
5.   Важная
информация выделена в текстејвосклицательным знаком, а формулы цифровым
обозначением.
6.   Абзацы,
содержащие дополнительную интересную информацию, выделены значком
7.   Проекты создаются
в системах объектно-ориентированного программирования Visual Basic .Net, Visual
С#, Visual Ј# и Turbo Delphi и хранятся на СЕ)-дисках Windows-CD и
TurboDelphi-CD.
8, Дополнительные материалы и
интерактивные тесты для проверки усвоения материала находятся в Интернете по
адресу: http://iit.metodist.ru
Глава 1

Архитектура компьютера и защита информации

Windows-CD
В процессе изучения данной темы рекомендуется установить
программное обеспечение в операционной системе Windows:
     программы
тестирования компьютера SiSoft Sandra, CPU-Z, EasyTune, SlV;
     файловый
менеджер Total Commander;
     архиватор
7-Zip;
     программу
записи СГ)- и DeepBurner;

браузеры
lnternet Explorer и SeaMonkey;
     антивирусные
программы: avast! и
Antivir Personal Edition;
е программу
удаления рекламных и шпионских программ: Ad-Aware; о программу восстановления
системы: CCleaner;
     межсетевой
экран: 0utpost Firewall.

1.1. Магистрально-модульный принцип
построения компьютера
В основу архитектуры современных персональных компьютеров
положен магистрально-модульный принцип. Этот принцип предусматривает построение
компьютера из функциональных блоков, взаимодействующих посредством общего
канала (каналов) — щины. В сочетании с открытой (общеизвестной) архитектурой
это позволяет потребителю собирать машину нужной конфигурации.
Магистраль включает в себя три многоразрядные шины: шину
данных, шину адреса и шину управления, которые представляют собой
многопроводные линии (рис. 1.1). К магистрали подключаются процессор и
оперативная память, а также периферийные устройства ввода, вывода и хранения
информации, которые обмениваются информацией в форме последовательностей нулей
и единиц, реализованных в виде электрических импульсов.

Шина данных. По этой шине
данные передаются между различными устройствами. Например, считанные из
оперативной памяти данные могут быть переданы процессору для обработки, а затем
полученные данные могут быть отправлены обратно в оперативную память для
хранения. Таким образом, данные по шине данных могут передаваться устройства к
устройству через области оперативной памяти.
Разрядность шины данных определяется разрядностью
процессора, т. е. количеством двоичных разрядов, которые процессор обрабатывает
за один такт. Разрядность процессоров постоянно увеличивалась по мере развития
компьютерной техники и в настоящее время составляет 64 бита.

Шина данных (8, 16, 32, 64 бита)

Шина адреса (16, 20, 24,
32, 36, 64 бита)                   Магистраль

Шина управления

Устройства ввода

долговременная память

Устройства вывода

Сетевые устройства

Рис. 1.1.
Магистрально-модульное устройство компьютера
Шина адреса. Выбор устройства или ячейки памяти, куда
пересылаются или откуда считываются данные по шине данных, производит
процессор. Каждое устройство или ячейка оперативной памяти имеет свой адрес.
Адрес передается по адресной шине, причем сигналы по ней передаются в одном
направлении от процессора к оперативной памяти и устройствам (однонаправленная
шина).
Разрядность шины адреса определяет объем адресуемой памяти,
т. е. количество ячеек оперативной памяти, которые могут иметь уникальные
адреса. Количество адресуемых ячеек памяти можно рассчитать по формуле:
                 лт = 2 1 , где I        разрядность
шины адреса.
Разрядность шины адреса постоянно увеличивалась и в
процессорах Pentium Extreme Edition составляет 64 бита. Таким образом,
количество адресуемых ячеек памяти в таких процессорах равно:
лт =
2 64 ячеек.

Шина управления. По шине
управления передаются сигналы, определяющие характер обмена информацией по
магистрали. Сигналы управления определяют, какую операцию считывание или запись информации из
памяти нужно производить, синхронизируют обмен информацией между устройствами
Системная плата. Важнейшим аппаратным компонентом компьютера
является системная плата (рис. 1.2, 1.3). На системной плате реализована
магистраль обмена информацией, имеются разъемы для установки процессора, слоты
для уста-
Разъем для
процессораСеверный мост
Разъемы (слоты) для модулей памяти
Разъемы шин
РАТА
Слот шины AGP
Слоты шины
Южный мост Микросхема цифрового звука
Рис. 1.2.
Системная плата

Рис. 1.3.
Логическая схема системной платы
новки оперативной памяти, а также
контроллеров внешних устройств.
Пропускная способность. Быстродействие устройства зависит от
тактовой частоты тактового генератора (обычно измеряется в мегагерцах — МГц) и
разрядности, т. е. количества битов данных, которые устройство может
обрабатывать или передавать одновременно (измеряется в битах). Дополнительно в
устройствах используется внутреннее умножение частоты с разными коэффициентами.

Соответственно, скорость
передачи данных (пропускная способность) соединяющих эти устройства шин также
Должна различаться. Пропускная способность шины данных (измеряется в бит/с)
равна произведению разрядности шины (измеряется в битах) и частоты шины
(измеряется в Гц = 1/с): Пропускная способность шины
Разрядность шины х Частота шины.
Северный и южный мосты. Для согласования тактовой частоты и
разрядности устройств на системной плате устанавливаются специальные микросхемы
(их набор называется чипсетом), включающие в себя контроллер оперативной памяти
и видеопамяти (так называемый северный мост) и контроллер периферийных
устройств (южный мост).
Частота процессора. Северный мост обеспечивает обмен данными
с процессором, оперативной памятью и видеопамятью. Частота процессора в
несколько раз больше, чем базовая частота магистрали (иногда ее называют шиной
FSB от англ. FrontSide Bus). Например, в наиболее быстрых компьютерах (2006
год) частота шины FSB составляет 266 МГц, коэффициент умножения частоты 14,
следовательно, частота процессора 266 мгц х 14 3,7 ГГц.
Системная шина. Между северным мостом и процессором данные
передаются по системной шине с частотой, которая в четыре раза больше частоты
шины FSB. Таким образом, процессор может получать и передавать данные с
частотой 266 МГц х 4 = 1064 МГц. Так как разрядность системной шины равна
разрядности процессора и составляет 64 бита, то пропускная способность
системной шины равна:
64 бит х 1064 МГц = 68 096
Мбит/с 66 Гбит/с 8 Гбайт/с.

Шина памяти. Обмен данными между процессором и оперативной памятью производится
по шине памяти, частота которой может быть меньше, чем частота шины процессора.
Например, частота шины памяти может составлять 533 МГц, т. е. оперативная
память получает данные в два раза реже, чем процессор. Так как разрядность шины
памяти равна разрядности процессора и составляет 64 бита, то пропускная
способность шины памяти равна:
64 бит х 533 МГц = 34 112
Мбит/с 33 Гбит/с 4 Гбайт/с.
Шины AGP и PCI Express. По мере усложнения графики
приложений требования к быстродействию шины, связывающей видеопамять с
процессором и оперативной памятью, возрастают. Для подключения видеоплаты к
северному мосту может использоваться 32-битовая шина AGP (Accelerated Graphic
Port — ускоренный графический порт). Эта шина первоначально передавала данные с
частотой 66 МГц, в настоящее время возможно использование шины AGPx8, частота
которой 66 МГц х 8 528 МГц. В этом случае пропускная способность шины
видеоданных составляет:
32 бит х 528 МГц = 16 896 Мбит/с
16,5
Гбит/с 2 Гбайт/с.
В настоящее время для подключения видеоплаты к
северному мосту все большее распространение получает шина PCI Express
(Peripherial Component Interconnect bus Express — ускоренная шина
взаимодействия периферийных устройств). Пропускная способность этой шины
значительно выше пропускной способности PCI и AGP.
К видеоплате с помощью аналогового разъема VGA (Video
Graphics Array — графический видеоадаптер) или цифрового разъема DVI (Digital
Visual Interface — цифровой видеоинтерфейс) подключается электронно-лучевой или
жидко- кристаллический монитор или проектор.
Шина PCI. К северному мосту подключается по специальной шине
южный мост, к которому, в свою очередь, подключаются периферийные устройства.
Шина РС1 (Peripherial Component Interconnect bus — шина взаимодействия
периферийных устройств) обеспечивает обмен информацией с контроллерами
периферийных устройств, которые устанавливаются в слоты расширения системной
платы.

Наиболее часто эта шина используется для установки устройств доступа к
локальной сети (сетевая карта), глобальной сети Интернет (встроенный модем) и
беспроводной сети (сетевой адаптер Wi-Fi, произносится «вай-фай», сокр. от
Wireless Fidelity — протокол и стандарт на оборудование для широкополосной
радиосвязи).
Разрядность шины PCI может составлять 32 бита или 64 бита, а
частота — 33 МГц или 66 МГц. Таким образом, максимальная пропускная способность
шины РСК составляет:
              64 бит х 66 МГц = 4224 Мбит/с         528 Мбайт/с.
Шина IEEE 1394 (другие названия FireWire, i-Link).
Последовательная  шина, предназначенная для обмена цифровой
информацией между компьютером и цифровыми устройствами (цифровыми
видеокамерами, ТЛ)-плеерами и др.) без потери качества изображения и звука.
(Эту функцию может выполнять также контроллер ШЕЕ 1394, который подключается к
шине PCI.) Скорость г\ередачи данных по этой шине может достигать 200 Мбайт/с и
более.
Шина А ТА. Устройства внешней памяти (жесткие диски, CD- и  подключаются
к южному мосту по шине АТА (англ. Advanced Technology Attachment — шина
подключения накопителей). Ранее использовалась параллельная шина РАТА (англ.
Parallel АТА), скорость передачи данных по которой может достигать 133 Мбайт/с.
В настоящее время широкое распространение получила последовательная шина SATA
(англ. Serial АТА), скорость передачи данных по которой может достигать ЗОО
Мбайт/с.
Шина USB. Для подключения принтеров, сканеров, цифровых
камер и других периферийных устройств обычно используется шина USB (Universal
Serial Bus — универсальная последовательная ШИНа). Эта шина обладает пропускной
способностью до 60 Мбайт/с и обеспечивает подключение к компьютеру одновременно
нескольких периферийных устройств (принтер, сканер, цифровая камера,
УУеЬ-камера, модем и др.).
Клавиатура и мышь. Клавиатура и мышь подключаются с помощью
порта PS/2 или шины USB (в том числе с помощью беспроводного адаптера).
Звук. К южному мосту может подключаться интегрированная в
системную плату микросхема, которая обеспечивает обработку цифрового звука (эту
функцию может выполнять также звуковая плата, которая подключается к шине PCI).
С помощью аудиоразъемов к системной плате могут подключаться микрофон, КОЛОНКИ
или наушники.

Практическое задание «Тестирование системной платы». С помощью программы
тестирования EasyTune определить у вашего компьютера частоту шины FSB,
коэффициент умножения частоты процессора, частоту процессора, частоту шины
памяти, частоту шин AGP и PCI Express и частоту шины PCI. Вычислить пропускную
способность шины памяти.
Тестирование системной платы
ОбАВУТЕ
1.  Запустить
программу тестирования EasyTune5 и выбрать вкладку Advanced Mode.
На панели отобразятся параметры
компьютера, в данном случае (рис. 1.4):

частота шины FSB     133
МГц;
    коэффициент
умножения частоты процессора
         , частота
процессора          2680 МГц;
    частота
шины памяти — 266 МГц;

частота шин AGP и
PCI Express — 66 МГц;
    частота
шины PCI    33 МГц.
2.  Пропускная
способность шины памяти 64 бита х х 266 МГц = 17024 Мбит/с = 2128 Мбайт/с 2
Гбайт/с.

Рис. 1.4.
Тестирование системной платы
Контрольные вопросы
1.  Что определяют разрядности тины данных
и шины адреса?
2.  Почему различаются скорости передачи
данных по шине FSB, системной шине, ШИНе памяти, шинам AGP и PCI Express и шине
PCI?
Компьютерный практикум

Windows-CD

1.1. С помощью программы тестирования
компьютера EasyTune выполнить практическое задание «Тестирование системной
платы».          ОПАВУТЕ
1.2. Процессор и оперативная память
1.2.1. Процессор
Логическая схема процессора (рис. 1.5). Процессор является
центральным устройством компьютера и выполняет команды программы, которая
хранится в оперативной памяти. Команда программы поступает в процессор по шине
данных и декодируется, т. е. определяется, какие действия необходимо выполнить
и какие данные для этого требуются.
Данные запрашиваются из оперативной памяти, для этого по
шине адреса передаются их адреса, а по шине управления — сигнал на считывание.
Считанные данные передаются в процессор по шине данных.
Декодированная команда и данные передаются в АЛУ
(арифметико-логическое устройство), где отдельно обрабатыВаЮТСЯ целочисленные
данные, и отдельно — данные в форме чисел с плавающей запятой.
2.10. Представление чисел в компьютере
Результаты обработки передаются по шине данных в оперативную
память, одновременно по шине адреса передаются адреса ячеек памяти, куда данные
необходимо записать, а по шине управления передается сигнал на запись.
Быстродействие процессора существенно больше быстродействия
оперативной памяти, поэтому процессор часть времени простаивает в ожидании
данных. Чтобы этого не происходило, в современные процессоры встроена более
быстрая, чем оперативная, кэш-память.

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

Рис. 1.5. Упрощенная логическая схема одноядерного
процессора
Практическое задание «Определение объемов кэш-памяти
процессора». С помощью программы тестирования CPU-Z определить объемы
кэш-памяти 1-го и 2-го уровней вашего процессора.
Определение объемов кэш-памяти процессора
1. Запустить программу тестирования
CPU-Z и выбрать вкладку Cache (рис. 1.6).
На панели отобразятся параметры
кэш-памяти, в данном случае:
•   кэш-память данных 1-го уровня — 8
Кбайт;
•
кэш-память команд
1-го уровня — 12 Кбайт;
•

кэш-память 2-го уровня — 128 Кбайт.

ФИ. •                                         .SPD

Рис. 1.6.
Определение объемов кэш-памяти процессора
Технология. Процессор является большой (в смысле количества
размещенных на ней элементов) полупроводниковой микросхемой, Процессоры
создаются на основе кремниевых подложек, которые вырезаются из слитка чистого
кремния. Кремний является полупроводником, который в разных условиях может
вести себя и как проводник электрического тока, и как изолятор.
Физика-11
Сначала на кремниевой подложке под воздействием
высокой температуры и кислорода формируется слой диоксида кремния. Этот процесс
очень похож на возникновение ржавчины на железе, погруженном в воду. Разница
заключается в том, что слой диоксида кремния формируется на подложке гораздо
быстрее и не виден невооруженным глазом (из-за того, что очень тонок).
Химия-9
Затем кремниевая подложка покрывается фотослоем. В процессе
фотолитографии ультрафиолетовое излучение, проходя сквозь маску (которая
выполняет функцию шаблона), формирует на подложке рисунок электрической схемы.
Засвеченные участки фотослоя и диоксида кремния полностью удаляются с помощью
растворителя. С помощью процесса ионной имплантации области кремниевой
подложки, обработанные ультрафиолетом, бомбардируются ионами различных
примесей. Ионы проникают в подложку, обеспечивая необходимую электрическую
проводимость этих областей. В результате на кремниевой подложке создается
электрическая схема.

После этого наносится слой поликристаллического кремния и еще один фотослой.
Наложение новых слоев с последующим вытравливанием схемы осуществляется
несколько раз, при этом для межслойных соединений в слоях оставляются «окна».
Эти «окна» заполняются атомами металла (алюминия или меди). Так устанавливаются
связи между несколькими десятками слоев, формирующими сложную трехмерную
электрическую схему.
На конечном этапе процессор встраивается в защитный корпус
(для электрического соединения кремниевой микросхемы с корпусом используется
золото), который обеспечиваег электрическое соединение процессора с системной
платой.
В первом процессоре 4004 (1971 год) размеры каждого элемента
составляли 10 мк = 10 -5 м (были сравнимы с толщиной человеческого волоса), а
их количество было равно 2300. В современных процессорах (2006 год) размеры
каждого элемента составляют всего 65 нм (нанометров) 0,065 мк
6,5 • 10 -8 м (сравнимы с размерами
нескольких десятков атомов), а их количество равно 376 ООО ООО.
Плакаты.
Таблица 1 «Процессоры»
Производительность. Производительность процессора является
его интегральной характеристикой и характеризует скорость выполнения
приложений. Производительность процессора прямо пропорциональна разрядности
процессора, его частоте, а также количеству команд, выполняемых за один такт:
Производительность Разрядность х
Частота х х Кол-во команд за такт.
Разрядность процессора определяется количеством двоичных
разрядов, которые процессор обрабатывает за один такт. С момента появления
первого процессора 4004 (за 35 лет) разрядность процессоров увеличилась в 16
раз (с 4 битов до 64 битов).
Однако в настоящее время увеличение разрядности процессоров
(а следовательно, производительности) практически нецелесообразно, так как
только сейчас происходит переход от 32-битовых операционных систем и приложений
к 64-битовым.
Частота соответствует количеству тактов обработки
данных, которые процессор производит за 1 секунду. С момента появления первого
процессора частота процессоров увеличилась в 37 ООО раз (с 0,1 МГц до 3700
МГц).
Однако увеличение производительности процессоров за счет
увеличения частоты имеет свой предел из-за тепловыделения. Выделение
процессором теплоты Q пропорционально потребляемой мощности Р, которая, в свою
очередь, пропорциональна квадрату частоты v2 .

Уже в настоящее время (2006 год) для отвода тепла от процессора
используются массивные воздушные системы охлаждения (их называют кулерами)
(рис. 1.7), состоящие из вентилятора и металлических теплоотводящих ребер.
Разрабатываются и применяются также водяные систе- Кулер Рис. 1.7.
мы охлаждения
процессоров.                               для процессора
Практическое задание «Определение температуры процессора». С
помощью программы тестирования SlV определить температуру процессора и скорость
вращения кулера процессора.
Определение температуры процессора
1. Запустить программу тестирования
SlV и выбрать вкладку Hardware Monitor (рис. 1.8).
На панели отобразится температура
процессора и количество оборотов в минуту кулера процессора, в данном случае:

Рис. 1.8.
Определение температуры процессора
•
температура
процессора       40 градусов по Цельсию;
•
количество
оборотов в минуту кулера процессора 5 113 об/мин.
В настоящее время производительность процессоров
увеличивается путем совершенствования архитектуры процессора. Во-первых, в
структуру процессора вводится кэш-память 1-го и 2-го уровней, которая позволяет
ускорить выборку команд и данных и тем самым уменьшить время выполнения одной
команды. Во-вторых, вместо одного ядра процессора (АЛУ и др.) используется два
ядра, что позволяет повысить производительность процессора примерно на 80 0/0
.
Производительность процессора нельзя вычислить, она
определяется в процессе тестирования, по скорости выполнения процессором
определенных операций в какой-либо программной среде.
Практическое задание «Производительность процессора». С
помощью программы тестирования SiS0ft Sandra определить производительность
вашего процессора и сравнить ее с производительностью:
•   аналогичного
процессора;  высокопроизводительного двухъядерного
процессора фирмы Intel;  высокопроизводительного двухъядерного
процессора фирмы AMD;  процессора Pentium начального уровня.
тм
Производительность процессора
1.  Запустить
программу тестирования SiS0ft Sandra и выбрать тестирующий модуль
Арифметический тест процессора.
2.  Из
списка Эталонный процессор 1 выбрать аналогичный процессор.
З. Из списка Эталонный процессор 2
выбрать высокопроизводительный двухъядерный процессор фирмы intel.
4.   Из списка
Эталонный процессор З выбрать высокопроизводительный двухъядерный процессор
фирмы AMD.
5.   Из списка
Эталонный процессор 4 выбрать процессор Репtium начального уровня.
6.   Щелкнуть по
кнопке Обновить, и через несколько секунд появится информация о
производительности вашего процессора.
7.

Для каждого процессора будут графически и численно выведены производительности
(рис. 1.9):
•  количество
целочисленных операций, выраженных в MIPS (Million Instructions Per Second —
миллионах операций в секунду);
•  количество
операций с плавающей точкой, выраженных в MFLOPS (Million FLoat 0perations Per
Second — миллионах операций с плавающей точкой в секунду).

Рис. 1.9.
Производительность процессора
Контрольные вопросы
1.
Чем будет
отличаться упрощенная логическая схема двухъядерного процессора от упрощенной
логической схемы одноядерного процессора?
2.
Опишите технологию
производства процессоров.
З. Какие факторы влияют на
производительность процессоров и как можно ее увеличить?
КомпьютеЊый
јрактикум

Windows-CD
1.2. Ознакомиться с историей развития
процес- http:hwww.intel.ru соров, используя материалы виртуального музея фирмы
Intel.

1.3. С помощью программы
тестирования компьютера CPU-Z выполнить практическое задание «Определение
объемов кэш-памяти процессора» .
1.4. С помощью программы тестирования
компьютера SlV выполнить практическое задание «Определение температуры
процессора» .
1.5. С помощью программы тестирования
компьютера SiSoft Sandra выполнить практическое задание «Производительность
процессора» .
1.2.2. Оперативная память
Логическая структура оперативной памяти. Оперативная память
представляет собой множество ячеек, причем каждая ячейка имеет свой уникальный
адрес (нумерация ячеек начинается с нуля).
Каждая ячейка памяти имеет объем 1 байт, следовательно, максимальный
объем адресуемой памяти равен произведению количества ячеек N на 1 байт. Для
процессоров Pentium 4, у которых разрядность шины адреса составляет 36 битов,
максимальный объем адресуемой памяти равен (см. табл. 1.1):
N х 1 байт =
21 х 1 байт = 2 36 х 1 байт
68 719 476 736 байт =
67 108 864 Кбайт 65 536 Мбайт = 64 Гбайт.

Таблица 1. 1. Оперативная память

Объем памяти

Ячейки

десятичный адрес ячейки

Шестнадцатеричный адрес ячейки

64 Гбайт

10101010

68 719 476 735

FFFFFFFFF

4 Гбайт

10101010

4 294 967 295

FFFFFFFF

10101010

Модули оперативной памяти. Оперативная память
предназначена для хранения информации. Изготавливается в виде модулей памяти.
Модули памяти представляют

собой пластины с рядами
  контак-

Рис. 1.10. Модули памяти

тов, на которых размещаются
  мик-

DDR и DDR2

росхемы памяти. Модули памяти (DDR,
DDR2 и др., рис. 1.10) устанавливаются в специальные разъемы на
системной плате и могут различаться между собой по количеству контактов, по
быстродействию, по информационной емкости и т. д.
В персональных компьютерах величина адресного пространства
процессора (объем адресуемой памяти) и величина фактически установленной
оперативной памяти (модулей оперативной памяти) практически всегда различаются.
Хотя объем адресуемой памяти у большинства современных процессоров равен 64
Гбайт, величина фактически установленной оперативной памяти может быть
значительно меньше, например, может быть установлено 4 модуля памяти по 1 Гбайт
(«всего» 4 Гбайт).
Пропускная способность. Важнейшей характеристикой модулей
оперативной памяти является пропускная способность, которая равна произведению
разрядности шины данных и частоты операций записи или считывания информации из
ячеек памяти:
Пропускная способность
Разрядность шины Данных х Частота.
Разрядность шины данных составляет 64 бита, а максимально
возможная в настоящее время (2006 год) частота шины данных совпадает с частотой
системной шины и равна 1064 МГц. Тогда пропускная способность модулей памяти,
подключенных к этой шине, равна:
Пропускная способность = 64 бита х 1064 МГц
68 096 Мбит/с = 8512 Мбайт/с 8 Гбайт/с.
Модули памяти маркируются своей пропускной
способностью, выраженной в Мбайт/с: РСЗ2ОО, РС42ОО, РС85ОО и др.
Физическая и виртуальная память. Объем используемой
программами памяти можно увеличить путем добавления к физической памяти
(модулям оперативной памяти) виртуальной памяти. Виртуальная память выделяется
в форме области жесткого диска. В ОС Windows это файл подкачки. По своей
логической организации виртуальная память является частью оперативной памяти.
Размер файла подкачки и его размещение в иерархической
файловой системе можно изменять. Однако необходимо учитывать, что
быстродействие жесткого диска и, соответственно, виртуальной памяти существенно
меньше быстродействия модулей оперативной памяти.
Замедление быстродействия виртуальной памяти может
происходить в результате фрагментации данных в файле. Для того чтобы этого не
происходило, рекомендуется произвести дефрагментацию диска и установить для
файла подкачки постоянный размер.
Практическое задание «Виртуальная память», В операционной
системе Windows и с использованием программы тестирования компьютера:
     установить
объем виртуальной памяти и местоположение файла подкачки;  определить
объем виртуальной памяти и местоположение файла подкачки;
     определить
загруженность процессора и объем используемой виртуальной памяти.
Виртуальная память
1.  Щелкнуть
правой кнопкой мыши по значку Мой компьютер и в контекстном меню активизировать
пункт Свойства.
2.  В
диалоговом окне Свойства системы выбрать вкладку Дополнительно и в разделе
БыстроДействие щелкнуть по кнопке Параметры.
З. В появившемся диалоговом окне
Параметры быстроДействия выбрать вкладку Дополнительно. В разделе Виртуальная
память щелкнуть по кнопке Изменить.
26

4.   В появившемся
диалоговом окне Виртуальная память (рис. 1.11) выбрать место размещения файла
подкачки.

Рис. 1.11. Установка размера и местоположения
виртуальной памяти
5.   Для
предотвращения фрагментации файла подкачки установить одинаковые значения для
его исходного и максимального размеров.
Важное значение для производительности компьютера имеет
объем оперативной памяти, причем не только объем установленных модулей
оперативной памяти, но и общий объем системной оперативной памяти с учетом
объема файла подкачки C:\pagefi|e.sys.
тм
Виртуальная память
6.   Запустить
программу тестирования SiSoft Sandra и выбрать информационный модуль Информация
о памяти Windows.
В окне появится информация об
объемах памяти тестируемого компьютера, например (рис. 1.12): всего физической
памяти 1,5 Гбайт; файл подкачки — 2046 2046.

e

2046 2046

2.]

Рис. 1.12.
Определение размера и местоположения виртуальной памяти
Производительность компьютера зависит не только от частоты
процессора и объема системной оперативной памяти, но и от загрузки процессора и
процента использования виртуальной памяти. Производительность компьютера
уменьшается, если загрузка процессора достигает 100 0/0 , а также
начинает использоваться более медленная, чем физическая, виртуальная память на
жестком диске. Загрузку процессора и использование виртуальной памяти в
операционной системе Windows 9х/Ме можно наблюдать с помощью служебной
программы Системный монитор, а в операционной системе Windows NT/2000/XP для
этого используется Диспетчер задач Windows.
Виртуальная память
7. Для вызова диспетчера задач
одновременно нажать три клавиши {Ctrl}+{Alt}+{Del}.
На диалоговой панели Диспетчер задач
Windows (рис. 1.13) выбрать вкладку Быстродействие и наблюдать с помощью
гистограмм и графиков изменение во времени загрузки процессора и использования
виртуальной памяти.
28

Рис. 1.13.
Определение загруженности процессора и использования виртуальной памяти
Контрольные вопросы
1. В чем состоит различие между
максимальным объемом адресуемой оперативной памяти и физически установленной
оперативной памятью?
2. В чем состоит различие между физически
установленной оперативной памятью и виртуальной памятью?
З. От каких факторов зависит
пропускная способность модулей оперативной памяти?

З ада
Еи я
1.1. Вычислить частоту шины памяти, к
которой подключены модули оперативной памяти РСЗ2ОО.

1.6. В операционной системе Windows
выполнить первую часть практического задания «Виртуальная память» установить объем виртуальной памяти и
местоположение файла подкачки.
1.7. С помощью программы тестирования
компьютера SiSoft Sandra выполнить вторую часть практического задания
«Виртуальная память» определить объем виртуальной памяти и местоположение файла
подкачки.
1.8. В операционной системе Windows
выполнить третью часть практического задания «Виртуальная память» определить загруженность процессора и
объем используемой виртуальной памяти.
1.3. Внешняя
(долговременная) память
1.3.1. Магнитная память
Основной функцией внешней памяти компьютера является
долговременное хранение большого объема информации (программы, документы,
аудио- и видеоклипы и т. д.). Устройство, которое обеспечивает
запись/считывание инфорМаЦИИ, называется накопителем или дисководом, а хранится
информация на носителях (например, дисках).
Магнитный принцип записи и считывания информации. В
накопителях на гибких магнитных дисках (НГМД) и накопителях на жестких
магнитных дисках (НЖМД), или «винчестерах», в основу записи информации положено
намагничивание ферромагнетиков в магнитном поле, хранение информации
основывается на сохранении намагниченности, а считывание информации базируется
на явлении электромагнитной индукции.

Физика-10 (ГГ
В процессе записи информации на гибкие и жесткие магнитные
диски головка дисковода с сердечником из магнитомягкого материала (малая
остаточная намагниченность) перемещается вдоль магнитного слоя магнитожесткого
носителя (большая остаточная намагниченность). магнитную головку поступают
последовательности электрических импу-
зо

льсов (последовательности логических
единиц и нулей), которые создают в головке магнитное поле. В результате
последовательно намагничиваются (логическая единица) или не намагничиваются
(логический нуль) элементы поверхности носителя.
При считывании информации при движении магнитной головки над
поверхностью носителя намагниченные участки носителя вызывают в ней импульсы
тока (явление электромагнитной индукции). Последовательности таких импульсов
передаются по магистрали в оперативную память компьютера.
В отсутствие сильных магнитных полей и высоких температур
элементы носителя могут сохранять свою намагниченность в течение долгого
времени (лет и десятилетий).
Гибкие магнитные диски. Гибкие магнитные диски помещаются в
пластмассовый корпус. Такой носитель информации называется дискетой. В центре
дискеты имеется приспособление для захвата и обеспечения вращения диска внутри
пластмассового корпуса. Дискета вставляется в дисковод, который вращает диск с
постоянной угловой скоростью.
При этом магнитная головка дисковода устанавливается на
определенную концентрическую дорожку диска, на которую и производится запись
или с которой производится считывание информации. Информационная емкость
современной дискеты невелика и составляет всего 1,44 Мбайт. Скорость записи и считывания
информации также мала (составляет всего около 50 Кбайт/с) из-за медленного
вращения диска (360 об/мин).
В целях сохранения информации гибкие магнитные диски
необходимо предохранять от воздействия сильных магнитных полей и нагревания,
так как такие физические воздеЙСТвия могут привести к размагничиванию носителя
и потере

информации.
Жесткие магнитные диски. Жесткие магнитные диски (рис. 1.14)
представляют собой несколько дисковых магнитных пластин, • размещенных на одной
оси, заключенных в металлический корпус и вращающихся с большой угловой
скоростью. Обе стороны каждой пластины покрыты тонким слоем намагничиваемого
материала.

Рис. 1.14. Жесткий диск
У каждой магнитной стороны каждой пластины есть своя
магнитная головка чтения [записи, головки также соединены вместе и движутся
радиально по отношению к магнитным пластинам, обеспечивая, таким образом,
доступ к любой дорожке любой пластины. Встроенная электроника предназначена для
управления движением магнитных головок чтения/записи.
За счет использования нескольких дисковых магнитных пластин
и гораздо большего количества дорожек на каждой стороне магнитных пластин
информационная емкость жестких дисков может в сотни тысяч раз превышать
информационную емкость дискет и достигать 500 Гбайт. Скорость записи и
считывания информации на жестких дисках может достигать ЗОО Мбайт/с (по шине
SATA) за счет быстрого позиционирования магнитной головки и высокой скорости вращения
дисков (до 7200 об/мин).

В жестких дисках используются достаточно хрупкие и миниатюрные элементы
(магнитные пластины носителей, магнитные головки и т. д.), поэтому в целях
сохранения информации и работоспособности жесткие диски необходимо оберегать от
ударов и резких изменений пространственной ориентации в процессе работы.
Контрольные вопросы
1.
Почему сердечник
магнитной головки изготавливается из магнитомягкого материала, а магнитный слой
носителя — из магнитожесткого материала?
2.
Как можно увеличить
информационную емкость жестких дисков?
1 .3.2. Оптическая память
Оптический принцип записи и считывания информации. В
лазерных CD- и ТЛ)-дисководах используется оптический принцип записи и
считывания информации.
Физика-11
В процессе записи информации на оптические диски для
создания участков поверхности с различными коэффициентами отражения применяются
различные технологии: от простой штамповки до изменения отражающей способности
участков поверхности диска с помощью мощного лазера.

Информация на лазерном диске записывается
на одну спиралевидную дорожку, начинающуюся от центра диска и содерэкащую
чередующиеся участки с различной отражающей способностью.
В процессе считывания информации с оптических дисков луч
лазера, установленного в дисководе, падает на поверхность вращающегося диска и
отражается. Так как поверхность оптического диска имеет участки с различными
коэффициентами отражения, то отраженный луч также меняет свою интенсивность
(логический О или 1). Затем отраженные световые импульсы преобразуются с
помощью фотоэлементов в электрические импульсы и по магистрали передаются в
оперативную память.
При соблюдении правил хранения (хранения в футлярах в
вертикальном положении) и эксплуатации (без нанесения царапин и загрязнений)
оптические носители могут сохранять информацию в течение десятков лет.
Оптические диски (рис. 1.15). Оптические С1)-диски
рассчитаны на использование инфракрасного лазера с длиной волны 780 нм и имеют
информационную емкость 700 Мбайт.

Оптические  рассчитаны на использование красного
лазера с длиной волны 650 нм. Они имеют большую информационную емкость по
сравнению с (Л-дисками (4,7 Гбайт) за счет меньшей ширины и более плотного
размещения оптических дорожек. ТГГ)-диски могут быть двухслойными (емкость 8,5
Гбайт), при этом оба слоя имеют отражающую поверхность, несущую информацию.

Рис. 1.15.
СО- и О\Ю-диски
В настоящее время (2006 год) на РЫНОК поступили оптические
диски (HD DVD и Blu-Ray), информационная емкость которых в 3—5
раз превосходит информационную емкость ТЛ)-дисков за счет использования синего
лазера с длиной волны 405 нанометров.
На дисках CD-ROM и DVD-ROM хранится информация, которая была
записана на них в процессе изготовления. Запись на них новой информации
невозможна, что отражено во второй части их названий: ROM (Read 0nly Memory —
память тоЛЬКО для чтения). Производятся такие диски путем штамповКИ на дорожке
микроскопических физических углублений (участков с плохой отражающей
способностью).
На дисках CD-R и DVD±R (R — recordable, записываемый)
информация может быть записана, но только один раз. Данные записываются на диск
лучом лазера повышенной мощности, который разрушает органический краситель
записывающего слоя и меняет его отражательные свойства. Управляя мощностью
лазера, на записывающем слое получают чередование темных и светлых пятен,
которые при чтении интерпретируются как логические О и 1.

На дисках CD-RW и DVD±RW (RW — ReWritable, перезаписываемый) информация может
быть записана и стерта многократно. Записывающий слой изготавливается из
специального сплава, который можно нагреванием приводить в два различных
устойчивых агрегатных состояния аморфное и кристаллическое. При записи (или
стирании) луч лазера нагревает участок дорожки и переводит его в одно из устойчивых
агрегатных состояний, которые характеризуются различной степенью прозрачности.
При чтении луч лазера имеет меньшую мощность и не изменяет состояние
записывающего слоя, а чередующиеся участки с различной прозрачностью
интерпретируются как логические О и 1.
Оптические дисководы. Оптические CD- и ТЛ)-дисководы
используют лазер для чтения или записи информации. Скорость чтения [записи
информации в оптических дисководах зависит от скорости вращения диска.
Первые  были односкоростными и обеспечивали скорость
считывания информации 150 Кбайт/с. В настоящее время широкое распространение
получили С1)-дисководы, которые обеспечивают в 52 раза большую скорость чтения
и записи дисков CD-R (до 7,8 Мбайт/с). Запись CD-RW дисков производится на
меньшей скорости (например, 32-кратной), поэтому С№дисководы маркируются тремя
числами «скорость чтения х скорость записи CD-R х скорость записи CD-RW»
(например, «52х52х32»).
Первое поколение  обеспечивало скорость считывания
информации примерно 1,3 Мбайт/с. В настоящее время широкое распространение
получили Е)-дис-
2 Информатика
и ИКТ. 1 Окл
ководы, которые обеспечивают в 16 раз
большую скорость чтения (примерно 21 Мбайт/с), в 8 раз большую скорость записи
DVD±R дисков и в 6 раз большую скорость записи DVD±RW дисков.  маркируются
тремя числами (например, «16х8х6»).
Контрольные вопросы
1.  Почему в  используется инфракрасный лазер, в — красный лазер, а в HD DVD- и
Blu-Ray-№ack0водах — синий лазер?
2.  В чем состоит различие между дисками
CD-ROM, CD-R и CD-RW?
З. Что означают числа маркировки
1 .3.3. Флэш-память
Флэш-память    особый вид полупроводниковой
энергонезависимой перезаписываемой памяти:

 полупроводниковая
(твердотельная) не содержащая механически движущихся частей (как обычные
жесткие диски или CD), построенная на основе полупроводниковых микросхем; е
энергонезависимая не требующая дополнительной энергии для хранения данных
(энергия требуется только для записи);  перезаписываемая допускающая изменение
(перезапись) хранимых в ней данных.
Название флэш-памяти было дано во время
разработки первых микросхем (в начале 1980-х годов) как характеристика скорости
стирания флэш-памяти (от англ. «in а flash» в мгновение ока).
Принцип записи и считывания информации на картах
флэш-памяти. Во флэш-памяти для записи и считывания информации используются
электрические сигналы.
Физика-11
В простейшем случае каждая ячейка флэш-памяти хранит один
бит информации и состоит из одного полевого транзистора со специальной
электрически изолированной областью («плавающим» затвором) (рис. 1.16).

Рис. 1.16.
Ячейка флэш-памяти на полевом транзисторе
При отсутствии сигнала на линии управления (на управляющем
затворе) ячейка памяти хранит один бит информации (О или 1) на стоке полевого
транзистора. Между стоком и истоком ток не идет.
При записи данных на линию управления подается положительное
напряжение и электроны в результате эффекта туннелирования попадают на
плавающий затвор. Между стоком и истоком возникает электрический ток и в
результате на стоке полевого транзистора записывается один бит данных.
Эффект туннелирования один из
квантомеханических эффектов, использующих волновые свойства электрона. В
полевом транзисторе этот эффект заключается в «перескакивании» электрона через
слой диэлектрика между стоком и «плавающим» затвором под действием
электрического поля.
Карты флэш-памяти (рис. 1.17). Флэш-память представляет
собой микросхему, помещенную в миниатюрный плоский корпус. Микросхемы
флэш-памяти могут содержать миллиарды ячеек, каждая из которых хранит 1 бит
информации. Информационная емкость карт флэш-памяти может достигать 4 Гбайт
(2006 год).
Информация, записанная на флэш-память, может храниться очень
длительное время (от 20 до 100 лет) и способна выдерживать значительные
механические нагрузки (в 5—10 раз превышающие предельно допустимые для жестких
дисков). Флэш-память компактнее и потребляет значительно меньше энергии
(примерно в 10—20 раз), чем магнитные и оптические дисководы.

Рис. 1.17.
Карты флэш-памяти и картридер
Благодаря низкому энергопотреблению, компактности,
долговечности и относительно высокому быстродействию, флэш-память идеально
подходит для использования в качестве носителя информации в портативных
устройствах: цифровых фото- и видеокамерах, сотовых телефонах, портативных
компьютерах, МРЗ-плеерах и цифровых диктофонах.
К недостаткам флэш-памяти следует отнести то, что не
существует единого стандарта и различные производители изготавливают
несовместимые друг с другом по размерам и электрическим параметрам карты памяти
(Memory Stick, MultiMedia Card, Secure Digital, xD-Picture и др.). Для
считывания или записи информации карта памяти вставляется в специальные
накопители (картридеры), встроенные в мобильные устройства или подключаемые к
компьютеру через USB-rropT.
USB флэш-диски (рис. 1.18). Накопители на флэш- памяти
представляет собой микросхему флэш-памяти, дополненную контроллером USB, и
подключаются к последовательно-

Рис. 1.18.
USB Флэш-диск
му порту USB. USB флэш-диски могут
использоваться в качестве внешнего сменного носителя информации.
USB флэш-диски могут содержать переключатель защиты от
записи, поддерживать парольную защиту, а также могут быть загрузочными.
Некоторые USB флэш-дижи имеют кроме индикатора работы жидкокристаллический
экранчик, на котором отображается, сколько свободного места осталось на диске.
вопросы
1.
В чем состоит
отличие микросхем флэш-памяти от микросхем оперативной памяти?
2.
В чем состоит
преимущество флэш-памяти перед магнитной и оптической долговременной памятью?
1.4. Файл и файловые
системы

1.4.1, Логическая структура
носителя информации

                        2.32.
Файловая система         Информатика-8

Логическая структура носителя информации в распространенной
файловой системе FAT имеет следующие разделы: • загрузочный кластер;  таблицу
размещения файлов, которая содержит в своих ячейках цепочку номеров кластеров
для каждого файла;  корневой каталог;  файлы.
В файловой системе FAT используется следующая организация
хранения.
Минимальным адресуемым элементом носителя информации
является кластер, который может включать в себя несколысо секторов
(объем сектора составляет 512 байтов). Размер кластера (от 512 байтов до 64
Кбайт) зависит от типа используемой файловой системы. Кластеры нумеруются в
линейной последовательности (на магнитных дисках от первого кластера нулевой
дорожки до последнего кластера последней дорожки).
Файловая система организует кластеры в файлы и каталоги
(реально являющиеся файлами, содержащими список файлов в этом каталоге).
Файловая система отслеживает, какие из кластеров в настоящее время
используются, какие свободны, какие помечены как неисправные.
При записи файлов будет занято всегда целое количество
кластеров, соответственно минимальный размер файла равен размеру одного
кластера, а максимальный соответствует общему количеству кластеров на диске.
Файл записывается в произвольные свободные кластеры.
Например, Файл_1 может занимать кластеры 34, 35 и 47, 48, а Файл 2 кластеры 36
и 49 (табл. 1.2).
Таблица 1.2. Логическая структура носителя информации

№ кластера

19

20

21

22

23

24

25

26

27

28

29

зо

31

32

33

34

35

Таблица размещения файлов. Полная информация о кластерах, которые занимают
файлы, содержится в таблице размещения файлов FAT. В целях более надежного
сохранения информации о размещении файлов таблица FAT хранится на носителе
информации в двух идентичных копиях. Количество ячеек FAT соответствует
количеству кластеров на диске, а значениями ячеек являются цепочки размещения
файлов, т. е. последовательности адресов кластеров, в которых хранятся файлы.
Например, для двух рассмотренных выше файлов таблица FAT с 1-й
по 54-ю ячейку принимает следующий вид (табл. 1.3).
Таблица 1.3. Фрагмент FAT

35

47

Цепочка размещения для файла Файл_1 выглядит следующим
образом: в начальной 34-й ячейке РАТ хранится адрес следующего кластера (35),
соответственно, в следующей 35-й ячейке хранится 47, в 47-й — 48, в 48-й — знак
конца файла (К).
FAT12. Файловая система для операционной системы Windows.
Выделяет 12 битов для хранения адреса кластера,

соответственно, она может адресовать 2 12
— 4096 кластеров. Объем кластера по умолчанию равен размеру одного
сектора (512 байтов), и поэтому FAT12 не может использоваться для носителей
информации объемом более:
512 байт х 4096 — 2 097 152 байт
—
2048 Кбайт — 2 Мбайт.
Такой объем имеют дискеты, поэтому FAT12 используется именно
для дискет.
FAT16. Файловая система для операционной системы Windows.
Выделяет 16 битов для хранения адреса кластера, соответственно, она может
адресовать 2 16 = 65 536 кластеров. Объем кластера не может быть
более 128 секторов (64 Кбайт), и поэтому FAT16 не может использоваться для
носителей информации объемом более:
64 Кбайт х 65 536 = 4 194 304
Кбайт — 4096 Мбайт   4 Гбайт.
В настоящее время такой объем имеет флэш-память, поэтому
FAT16 используется именно для флэш-памяти.

FAT32. Файловая система для операционной системы Windows. Выделяет 32 бита для
хранения адреса кластера, соответственно, она может адресовать 2 32 =
4 294 967 296 кластеров. Объем кластера по умолчанию составляет 8 секторов (4
Кбайт), и поэтому FAT32 может использоваться для носителей информации объемом:
        4
Кбайт х 4 294 967 296           17 179 869 184 Кбайт
16 777 216 Мбайт 16
384 Гбайт 16 Тбайт. Таким образом, FAT32 может использоваться для жестких
дисков самого большого объема.
NTFS. Файловая система для операционной системы
Windows. Позволяет устанавливать различный объем кластера (от 512 байтов до 64
Кбайт, по умолчанию 4 Кбайт). NTFS по сравнению с FAT32 увеличивает надежность
и эффективность использования дискового пространства.
NTFS использует систему журналирования для повышения
надежности файловой системы. Журналируемая файловая система сохраняет список
изменений, которые она будет проводить с файловой системой, перед фактической
записью изменений. Эти записи хранятся в отдельной части файловой системы, называемой
«журналом» или «логом». Как только изменения файловой системы будут внесены в
журнал, журНалируемая файловая система применит эти изменения к файлам.
ext3 и ReiserFS. Журналируемые файловые
системы для операционных систем Unix. ReiserFS высоконадежная файловая система,
хорошо приспособленная для хранения 60льшого количества маленьких файлов. Блок
(кластер) ext3 может иметь размер от 1 до 8 Кбайт, а в ReiserFS в одном блоке
могут быть размещены данные нескольких файлов. С файлами большого размера файловая
система ReiserFS также справляется весьма уверенно, максимальный размер
файловой системы составляет 16 Тбайт.
HFS. Иерархическая журналируемая файловая система,
разработанная Apple Computer для использования на компьютерах, работающих под
управлением операционной системы Мас OS.
CDFS. Файловая система для работы с оптическими CD- и  базирующаяся
на стандарте ISO 9660, согласно которому имя файла не может превышать 32
символа и глубина вложения папок — не более 8 уровней.

UDF. Мультисистемная файловая система для работы с файлами на оптических
дисках позволяет на перезаписываемых CD-RW и DVD±RW дисках удалять, копировать
и сохранять отдельные файлы.
Практическое задание «Объем файла в различных файловых
системах». В операционной системе Windows создать текстовый файл и
последовательно сохранить его на гибком диске, на флэш-диске и на жестком
диске. Ознакомиться с объемом текстового файла и занимаемым им объемом на
дисках с различными файловыми системами.
Объем файла в различных файловых
системах
1.  Запустить
Блокнот командой [Программы-СтанДартные-Блокнот]. Ввести текст в файл, например
«информатика» .
2.  Сохранить
файл на гибком диске, на флэш-диске и на жестком диске.
На каждом диске определить объем, занимаемый файлом.
З. Последовательно в контекстном меню
дисков активизировать пункт Свойства.
В появившихся диалоговых окнах ознакомиться
с объемом текстового файла и занимаемым им объемом на дисках (рис. 1.19).

Информационный объем текста равен: 1 байт
х 11 11 байт.
На гибком диске используется файловая
система FAT12, и этот файл будет занимать один сектор, т. е. 512 байтов.
На флэш-диске используется файловая система
FAT16, и этот файл будет занимать один кластер, объем которого равен 32 Кбайт.
На жестком диске используется файловая
система FAT32 или NTFS, и этот файл будет занимать один кластер, объем которого
равен 4 Кбайт.
Рамещение:•
Размер; 11 бат (11 байт) дкке: 512 бй (512 байт) разжциие:
Р&эмер:              !
1 байт (11 б“т)
Рвмер:         11            батј•;:
Надиёке\•.                КБ
          байту
Рис. 1.19. Объем файла на дисках с различными
файловыми системами

Форматирование носителей информации. Для того чтобы на
носителе можно было хранить информацию, он должен быть отформатирован, т. е.
создана логическая структура в соответствии с определенной файловой системой.
Жесткие диски должны быть предварительно
физически отформатированы (это делается на заводе-изготовителе). Формирование
физической структуры диска состоит в создании на диске концентрических дорожек,
которые, в свою очередь, делятся на секторы (в определенных местах диска
расставляются метки дорожек и секторов).
Большие по объему жесткие диски рекомендуется разбивать на
разделы, т. е. независимые области на диске. Разделы могут быть отформатированы
в различных файловых системах, и, таким образом, созданы логические диски.
Логическим дискам ставятся в соответствие заглавные буквы латинского алфавита
(С: , О: и т. д.).
На один физический диск в разные разделы могут быть
установлены различные операционные системы.
Интерфейс командной строки. Давным-давно (в 80-е годы ХХ
века), когда еще не был разработан графический интерфейс операционных систем,
форматирование дисков и другие операции с файлами проводились с использованием
командной строки операционной системы MS-DOS. В операционной
42

системе Windows предусмотрен режим работы с
интерфейсом командной строки.
В ответ на приглашение системы можно вводить команды с
клавиатуры, в том числе:
 команды работы с дисками (format, defrag
и др.);  команды работы с файлами (сору, del,
rename и др.);  команды работы с каталогами (cd, dir и
др.),
Каждая команда имеет свой формат, параметры которого
запомнить достаточно трудно. Для того чтобы получить справочную информацию о
команде, необходимо после имени команды ввести ключ /
Практическое задание «Форматирование из командной строки». В
операционной системе Windows в командной строке с помощью команды format
отформатировать дискету с нестандартным размером кластера (например, 1024
байта). Предварительно получить справку о формате команды format.
Форматирование из командной строки
1.   Ввести
команду [Программы-СтанДартные-КоманДная строка]. Появится окно командной
строки.
2.   В
ответ на приглашение системы перейти в каталог C:\Windows с помощью команды СО:
C:\Documents and  C:\Windows
З. Получить справку о формате команды
format (рис. 1.20): C:\Windows>format 1?

Рис. 1.20.
Получение справки по формату команды
4. Отформатировать дискету с
нестандартным размером кластера 1024 байта:
C:\Windows>format А] А: 1024
После окончания форматирования можно
узнать количество кластеров, количество байтов в кластере, разрядность ячейки
РАТ и другие параметры форматирования дискеты (рис. 1.21).

Рис. 1.21.
Форматирование дискеты в командной строке
Контрольные вопросы
1.
Какую последовательность
кластеров занимает файл Файл 2 из приведенного примера на носителе информации?
2.
Чем различаются
таблицы размещения файлов FAT12, FAT16 и РАТЗ2?
З. Почему журналируемые файловые
системы обеспечивают большую надежность хранения файлов?

КомпьютеЙый
Практикум

Windows-CD
1.9. С помощью средств операционной
системы Windows определить для диска С: тип файловой системы, размер кластера и
количество кластеров.
1.10. В операционной системе Windows
выполнить практическое задание «Объем файла в различных файловых системах» .
1.11. В операционной системе Windows
выполнить практическое задание «Форматирование из командной СТРОки».

1
.4.2. Файл
Все программы и данные хранятся в
долговременной памяти компьютера в виде файлов.

                                                               2.3.1.
Файл           Информатика-8

Файл обязательно имеет имя, формат которого определяется
используемой файловой системой. Имя файла состоит из двух частей, разделенных
точкой: собственно имени файла и расширения, определяющего тип файла (табл.
1.4). Расширение файла обычно дописывается к имени приложением, в котором этот
файл создается. Приложение, с которым связан файл, можно изменить (например,
файлы архивов с расширением zip можно связать с различными архиваторами).

Таблица 1.4. Некоторые типы
файлов и расширений

Тип файла

Расширения

Исполнимые файлы

Текстовые файлы

txt, doc

№Ь-страницы

htm, html

Графические файлы

bmp, gif, png, jpg

Звуковые файлы

wav, mid

Видеофайлы

avi, wmf

Архивы

Файл в каталоге описывается записью, в которой указывается
его имя, размер, дата и время создания, а также набор атрибутов:
е «только для чтения» (от англ. «read
only») — файл с таким атрибутом доступен операционной системе и приложениям
только для чтения, т. е. в нем нельзя сохранить какие-либо исправления;
 «скрытый» (от англ. «hidden») — файл с
данным атрибутом не выводится при показе содержимого папок;  «системный»
(от англ. «system») — файлы с таким атрибутом относятся к системным файлам
операционной системы, которые нельзя удалять или изменять;  «архивный»
(от англ. «archive») — этот атрибут указывает программам архивации файлы,
предназначенные для резервного копирования.

Практическое задание «Расширение и атрибуты файла». В
операционной системе Windows файлы архивов с расширением zip связать с файловым
менеджером Total Commander, а затем с помощью этого файлового менеджера
изменить атрибуты и дату / время создания файла архива.
Расширение и атрибуты файла
1.  Щелкнуть
правой кнопкой мыши по имени файла и в контекстном меню активизировать пункт
Открыть с помощью.
2.  Если
в появившемся меню нужное приложение отсутствует, выбрать пункт Выбрать
программу...
3.  В
появившемся диалоговом окне Выбор программы (рис. 1.22) выбрать программу из
списка.

Рис. 1.22.
Выбор приложения для открытия файла
4.  В
случае отсутствия нужного приложения в списке щелкнуть по кнопке Обзор и
выбрать приложение в иерархической файловой системе.
5.  Установить
флажок Использовать ее для всех файлов такого типа.
Расширение и атрибуты файла
1.   Запустить
файловый менеджер Total Commander.
2.   На
панели выбрать файл, например архив.ар.
З. В меню ввести команду [Файл- Изменить атрибуты...].
4.

В появившемся диалоговом окне Изменение атрибутов (рис. 1.23) установить флажок
Скрытый. Файл перестанет отображаться на панели.

Рис. 1.23.
Изменение атрибутов и даты/времени создания файла
5.   Установить
текущие дату и время создания файла, для этого щелкнуть по кнопке Текущие.
Архивация файлов. Для уменьшения места, занимаемого файлами,
с целью долговременного хранения или передачи по компьютерным сетям файлы
архивируются (сжимаются) с помощью файловых менеджеров или специализированных
приложений архиваторов .
Существуют различные алгоритмы архивации данных без потери
информации, при которых при разархивации данные будут восстановлены в исходном
виде. Самый простой алгоритм сжатия данных основан на замене повторяющихся
битов (в тексте может иметься последовательность одинаковых символов, в
графическом файле — закрашенная одним цветом область и т. д.) более короткой
последовательностью битов. Например, в тексте подряд идут 10 пробелов, которые
кодируются 10 байтами. При архивации они заменяются З байтами (первый байт
кодирует заменяемый символ; второй байт это специальный байт «флажка»
архивации, который указывает на необходимость развернуть первый байт в
последовательность байтов; третий байт указывает количество повторяющихся
байтов).
Алгоритм кодирования одинаковых последовательностей символов
ищет в текстовых файлах одинаковые подстроки, а в графических — близкие по
цвету последовательности пикселей. Каждый такой фрагмент файла представляется
более коротким кодом (последовательностью битов) и в процессе архивации при
повторных появлениях заменяется ссылкой на первичный код.
Лучше всего сжимаются текстовые и графические файлы,
практически не сжимаются файлы архивов и исполнимые файлы.
Существуют различные архиваторы файлов (ZlP, 7-Zip, RAR и
др.), которые используют вышеописанные и другие алгоритмы архивации. Архиваторы
различаются степенью сжатия файлов, скоростью выполнения и другими параметрами.
При создании нового архива нужно задать параметры архивации:
•

задать имя архивного файла и место его сохранения на диске;
•
выбрать формат архивации ZlP, 77., RAR или др.;
•
выбрать степень сжатия файлов (от Без сжатия — файлы не
сжимаются, до Максимальный для получения наилучшего сжатия);
•
выбрать размер словаря и слова (чем больше их размер, тем больше,
но медленнее сжатие);  можно создать многотомный архив, т. е.
архив, состоящий из нескольких частей, которые используются для сохранения
большого архива на нескольких дискетах или других сменных носителях;
•
можно создать непрерывный (от англ. solid) архив (в архиваторе
RAR), что позволяет добиться максимальной степени сжатия нескольких файлов;  можно
создать самораспаковывающийся архив SFX, который является исполнимым
файлом и имеет расширение ехе. Для разархивации такого архива не нужен
архиватор, достаточно запустить файл архива на выполнение.
Для разархивации файлов необходимо открыть файл архива в
архиваторе и ввести соответствующую команду.
Практическое задание «Архивация файлов», С помощью
архиватора 7-Zip осуществить архивацию файлов.
мам
. Архивация файлов
1.   Запустить
архиватор 7-Zip.
Выделить файлы и в контекстном меню
ввести команду [7-Тр-Добавить в архив...].
2.   В
окне Добавить к архиву (рис. 1.24) задать параметры архивации:
       имя
архивного файла;  место хранения архива на диске;
       формат
архива;
, метод сжатия;
       размер
словаря и слова;
       размер
тома для многотомного архива;  метод обновления архива;

непрерывность архива.

З. Для извлечения файлов из
архива необходимо выбрать файл архива и в контекстном меню ввести команду
[7-Тр-Распаковать].
Контрольные вопросы
1.
Как связаны между
собой расширение файла и приложение, в котором этот файл был создан?
2.
Какие параметры
архивации влияют на степень сжатия файлов?

Компьюте*ный *рактикум

Windows-CD
1.12. В операционной системе Windows с
помощью файлового менеджера Total Commander выполнить практическое задание
«Расширение и атрибуты файла» .
1.13. С помощью архиватора 7-Zip
выполнить практическое задание «Архивация файлов».

1.4.3. Иерархическая файловая
система
На каждом носителе информации (магнитном или оптическом
диске, карте флэш-памяти) может храниться большое количество файлов. Для того
чтобы можно было найти файл по его имени, на диске создают разделы (тома), а в
каждом томе каталоги.
Информатика-11
Каталог. Каждый том носителя информации содержит корневой
каталог (базовый, основной), в котором перечислены хранящиеся на носителе файлы
и папки. В простейшем случае, когда файлов мало, каталог представляет собой
линейную последовательность записей о файлах.
В разных файловых системах файлы описываются по-разному.
Далее рассмотрим файловую систему FAT.
Запись о файле в каталоге содержит (табл. 1.5) имя файла,
адрес первого кластера, с которого начинается файл, размер файла, дату и время
его создания, а также атрибуты файла (а — архивный, :с — только для чтения, h —
скрытый, s — системный).
Таблица 1.5. Структура записей в каталоге

Имя файла

Адрес первого кластера

Объем файла
(Кбайт)

Дата создания

Время создания

Файл 1

34

2

14.01.2006

14.29

ar

Файл 2

36

1

20.03.2006

hs

Если на диске хранятся сотни и тысячи файлов, то для
удобства поиска файлы хранятся в многоуровневой иерархической файловой системе,
которая имеет древовидную структуру (рис. 1.25).
Корневая папка
содержит вло- №Ь-страницы женные папки 1-го уровня (напри- index. htm мер,
папки Архив и Документы), в свою очередь, каждая из них video.wmv может
содержать вложенные пап- video-avi ки 2-го уровня (например, папка
Документы      содержит        папки                            audio
.wav

№Ь-страницы, Видео, Звук и                                      audio.mid
Изображения) и т. д. Необходимо
отметить, что в папках всех уров- Изображения ней могут храниться файлы.
imagapng image.ipg
Путь к файлу. Для того чтобы image gif найти файл в
иерархии каталогов, image bmp необходимо указать путь к файлу. Путь к файлу
начинается с логи- программа.ехе

ческого имени диска, затем запи-

сывается последовательность имен

Рис. 1.25. Пример иерархической

вложенных друг в друга
  папок, в

файловой
  системы

последней из которых содержится нужный
файл. Имена диска и папок записываются через разделитель «Х». Например, путь к
файлу image.bmp можно записать следующим образом:

Восстановление файлов и файловой системы. В процессе
работы компьютера случаются сбои («зависание» программ, внезапное отключение
питания и др.), в результате происходит неправильное завершение работы
приложений и операционной системы, что может приводить к повреждению отдельных
кластеров и файлов. Могут появиться сбойные (нечитаемые) кластеры, в каталогах
могут быть изменены имена файлов, а в FAT могут появиться нарушения в цепочках
размещения файлов (некоторые цепочки могут быть оборваны, один и тот же кластер
может принадлежать различным файлам и др.).
Для восстановления файловой системы используются специальные
программы. В операционной системе Windows такой программой является служебная
программа Проверка диска, которая автоматически запускается при загрузке
Windows после неправильного завершения работы или может быть при необходимости
запущена пользователем в произвольный момент.
Практическое задание «Проверка файловой системы диска». В
операционной системе Windows осуществить проверку файловой системы диска.
Проверка файловой системы диска
1.  В
контекстном меню проверяемого диска (например, С:) выбрать пункт Свойства.

В появившемся диалоговом окне Свойства выбрать вкладку Сервис (рис. 1.26) и
щелкнуть по кнопке Выполнить проверку...

Рис. 1.26.
Вкладка Сервис
2.  В
появившемся диалоговом окне Проверка Диска (рис. 1.27) с помощью флажков
установить требуемые параметры и щелкнуть по кнопке Запуск.

З. Проверка диска будет выполнена в три
этапа. После окончания проверки и восстановления сбойных кластеров и файлов
появится окно с информацией о состоянии диска после проверки.

Дефрагментация дисков. Замедление скорости обмена данными с носителем информации
может происходить в результате фрагментации файлов. Если запись производится на
незаполненный диск, то кластеры, принадлежащие одному файлу, записываются
подряд. Если диск переполнен, на нем может не быть непрерывной области,
достаточной для размещения файла, и файл запишется в виде нескольких
фрагментов. Фрагментация файлов (фрагменты файлов хранятся в различных,
удаленных друг от друга кластерах) возрастает с течением времени, в процессе
удаления одних файлов и записи других.
Так как на диске могут храниться сотни и тысячи файлов в
сотнях тысяч кластеров, то фрагментированность файлов будет существенно
замедлять доступ к ним (магнитным головкам придется постоянно перемещаться с
дорожки на дорожку) и в конечном итоге приводить к преждевременному износу жесткого
диска. Рекомендуется периодически проводить дефрагментацию диска, в процессе
которой файлы записываются в кластеры, последовательно идущие друг за другом.
Практическое задание «Дефрагментация диска». В
операционной системе Windows осуществить дефрагментацию диска.
Дефрагментация диска
1.  Для
запуска программы Дефрагментация диска необходимо ввести команду
[СтанДартные-Служебные- Дефрагментация Диска].
2.  Диалоговое
окно Дефрагментация Диска (рис. 1.28) позволяет выбрать диск, нуждающийся в
процедуре де- фрагментации .
После нажатия кнопки Дефрагментация
начнется проЦеСС дефрагментации, который можно визуально наблюдать.
Вертикальные полосы красного цвета отображают
фрагментированные файлы, синего цвета нефрагментированные файлы, зеленого цвета
— неперемещаемые файлы и, наконец, белого цвета свободные кластеры.

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

1.2. Записать пути к файлам
иерархической файловой системы, изображенной на рис. 1.25.
Компьюте ый рактикум
1.14. В операционной системе Windows
выполнить практическое задание «Проверка файловой системы диска».
1.15. В операционной системе Windows
выполнить практическое задание «Дефрагментация диска».
1.5. Операционная
система
1.5.1.
Назначение и состав операционной системы
Операционная система является базовой и необходимой
составляющей программного обеспечения компьютера.
Операционная система обеспечивает
совместное функционирование всех устройств компьютера и предоставляет
пользователю доступ к его ресурсам.
Современные операционные системы имеют сложную
структуру, каждый элемент которой выполняет определенные функции по управлению
компьютером.
Управление файловой системой. В операционной системе
имеются программные модули, управляющие файловой системой.
В процессе работы на компьютере наиболее часто над
файлами производятся следующие операции:
• копирование (копия файла
помещается в другую папку);  перемещение (сам файл перемещается в
другую папку);  удаление (запись о файле удаляется из
папки);  переименование (изменяется имя файла).
Командный процессор. В состав операционной системы входит
специальная программа командный процессор, которая запрашивает у пользователя
команды и выполняет их.
Пользователь может дать команду запуска программы,
выполнения какой-либо операции нац файлами (копирование, удаление,
переименование), вывода документа на печать и т. д. Операционная система должна
эту команду выполнить.
Практическое задание «Копирование файлов». В операционной
системе Windows осуществить копирование файлов с использованием графического
интерфейса и с помощью командной строки.
Копирование файлов
1.  Скопировать
файл с использованием графического интерфейса (копированием из папки в папку
или с помощью Проводника).
2.  Ввести
команду [Программы-СтанДартные-КоманДная строка]. Появится окно командной
строки.
З. В ответ на приглашение системы перейти в
каталог
C:\Windows с помощью команды СО:
C:\Documents and
C:\Windows
4.

Получить справку о формате команды сору:

5.
Ввести команду
(рис. 1.29): Рис. 1.29. Копирование А:\проба.(Јос О: файла в командной
строке
Драйверы устройств. К магистрали компьютера подключаются
различные устройства (дисководы, монитор, клавиатура, мышь, принтер и др.).
Каждое устройство выполняет определенную функцию (ввод информации, хранение
инфорМации, вывод информации), при этом техническая реализация устройств
существенно различается.
Драйверы устройств — специальные программы, которые
обеспечивают управление работой устройств и согласование информационного обмена
с другими устройствами, а также позволяют производить настройку некоторых их
параметров. Каждому типу устройств соответствует свой драйвер.
В процессе установки операционная система определяет тип и
конкретную модель установленного устройства и подКлючает необходимые для их
функционирования драйверы. При включении компьютера производится загрузка
драйвеРов в оперативную память. Пользователь имеет возможность В Ручную
установить или переустановить драйверы.
Графический интерфейс. Для
упрощения работы пользователя в состав современных операционных систем входят
программные модули, создающие графический пользовательСКИЙ интерфейс. В
операционных системах с графическим интерфейсом пользователь может вводить
команды с помощью диалоговых окон, тогда как в режиме командной строки
необходимо вводить команды с помощью клавиатуры.
Диалоговые окна могут включать в себя разнообразные элементы
управления:

 вкладки,
которые позволяют использовать «страницы» внутри диалогового окна;  кнопки,
которые обеспечивают выполнение тех или иных действий;  текстовые поля,
которые позволяют ввести информацию;  списки, которые представляют собой наборы
предлагаемых на выбор значений;  переключатели, которые служат для выбора
одного из взаимоисключающих вариантов;  флажки, которые обеспечивают присваивание
какимлибо параметрам определенных значений;  счетчики, которые
представляют собой пару стрелок и позволяют увеличивать или уменьшать значение
в связанном с ними поле;  ползунки, которые позволяют плавно
изменять значения каких-либо параметров;  контекстные меню,
которые позволяют ознакомиться со свойствами объектов, а также выполнить над
ними разрешенные операции.
Такие же элементы управления используются в системах
объектно-ориентированного программирования, что позволяет создавать в них
приложения с использованием графического интерфейса операционной системы.
Глава 4. Алгоритмизация и
объектно-ориентированное программирование

Сервисные программы. В состав операционной системы входят
также сервисные программы, или утилиты. Такие программы позволяют обслуживать
диски (проверять, сжимать, дефрагментировать и т. д.), выполнять операции с
файлами (архивировать и т. д.), работать в компьютерных сетях Системный реестр
Windows. Системный реестр операционной системы Windows является иерархической
базой данных, в которой хранится информация о конфигурации Windows. В реестре
содержатся сведения об оборудовании системы, установленных программах и
параметрах настройки, к которым операционная система постоянно обращается во
время работы. В операционную систему Windows входит редактор реестра программа
regedit.exe.
Практическое задание «Ознакомление с системным реестром
Windows». Ознакомиться с реестром на примере установки в редакторе реестра
цвета надписей на кнопках графического интерфейса.
Ознакомление с системным реестром Windows
1.   Ввести
команду [Выполнить].

В появившемся диалоговом окне Запуск программы (рис. 1.30) ввести в список имя
программы — редактора реестра и щелкнуть по кнопке ОК.

Рис. 1.30.
Запуск редактора реестра
2.   В
появившемся диалоговом окне Редактор реестра
(рис. 1.31) в иерархическом дереве реестра открыть пункт

2ButtrHihght         REG_SZ 255 255
  255
REG SZ
  212 208 200
REG_SZ 128
  128 128
REG SZ 000
REG_SZ 166 202 240
  •SQa3*ltJnxtweTltb REG SZ 192 192 192
SGrayTaxt                        REG_SZ
  128 128 128
REG SZ 10
  36 106
REG_SZ 25.5 255 255

PNB№atrs

Рис. 1.31.
Редактор реестра

HKEY_CURRENT USER, а затем открыть
вложенный пункт Control Panel и в нем активизировать пункт Colors. В правой
части окна редактора реестра в списке параметров выделить параметр ButtonText.
З. В диалоговом окне Изменение
строкового параметра (рис. 1.32) ввести новое значение параметра ButtonText
(например, 255 0 0 — красный цвет надписей на кнопках).

Рис. 1.32.
Изменение значения параметра

4. Для того чтобы изменение вступило в силу, выйти из редактора реестра
командой [Файл-ВыхоД] и перезагрузить компьютер.
Категорически не рекомендуется изменять параметры реестра
без четкого понимания производимых действий, так как ошибка при изменении
реестра может серьезно повредить систему.
Если повреждена информация об устройствах, то
соответствующий раздел реестра можно исправить мл» восстановить в том виде,
который он имел в момент последнего удачного запуска компьютера. Для этого
необходимо перезагрузить компьютер, в процессе загрузки нажать клавишу {F8} и
выбрать вариант загрузки Загрузка последней уДачной конфигурации. Современные
версии операционной системы Windows содержат средство восстановления системы,
которое может восстановить системный реестр, существовавший на определенную
дату, если ранее была сохранена резервная копия этих данных.
Справочная система. Для удобства пользователя в состав
операционной системы обычно входит также справочная система. Справочная система
позволяет оперативно получить необходимую информацию как о функционировании
операционной системы в целом, так и о работе ее отдельных модулей.
Контрольные вопросы
1. Каковы основные компоненты
операционной системы и каково их назначение?
Компьюте ый рактикум
Windows-CD
1.16. В операционной системе Windows
выполнить практическое задание «Копирование файлов».
1.17. В операционной системе Windows
выполнить практическое задание «Ознакомление с системным реестром Windows».
1.5.2. Загрузка операционной системы

Самотестирование компьютера. После включения компьютера или перезагрузки
операционной системы процессор начинает считывать и выполнять микропрограммы
тестирования компьютера и первого этапа загрузки операционной системы, которые
хранятся в микросхеме BIOS.
Включение компьютера осуществляется
включением питания (кнопка Power на системном блоке). Перезагрузка операционной
системы производится нажатием кнопки Reset на системном блоке компьютера или
одновременным нажатием комбинации клавиш {Ctrl}+ +{Alt}+{Del} на клавиатуре.
Прежде всего начинает выполняться программа тестирования POST,
которая проверяет работоспособность основных Устройств компьютера: процессора,
видеоадаптера, оперативной памяти, дисководов, контроллеров жестких дисков и
клаВиатуры. В случае обнаружения неисправностей выдаются диагностические
сообщения в виде различных последовательНостей коротких и длинных звуковых
сигналов (например, в AWARD BIOS: 1 длинный и З коротких сигнала — не подКлючен
монитор, 5 коротких — ошибка процессора и т. д.) или в виде текстовых
сообщений. После успешной инициализ ации видеоплаты краткие
диагностические сообщения выводятся на экран монитора.
BIOS Setup. Пользователь может установить новые параметры
конфигурации компьютера и запомнить их в специальной микросхеме памяти, которая
при выключенном компьютере питается от батарейки, установленной на системной
плате. Для этого в процессе выполнения самотестирования обычно необходимо
нажать клавишу {Det}. Загрузится системная утилита BlOS Setup, имеющая
интерфейс в виде системы иерархических меню. В случае выхода из строя батарейки
конфигурационные параметры теряются, и компьютер перестает нормально
загружаться.
Загрузка операционной системы (рис. 1.33). Файлы
операционной системы хранятся во внешней, долговременной памяти (на магнитных,
оптических или флэш-дисках). Однако программы могут выполняться, только если
они находятся в оперативной памяти, поэтому файлы операционной системы
необходимо загрузить в оперативную память. Разрешение этого противоречия
состоит в последовательной, поэтапной загрузке операционной системы.

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

Системный диск

Файлы операционной системы

Загрузчик операционной
СИ СТе М Ы

Рис. 1.33.
Процесс загрузки операционной системы
Если системные диски в компьютере отсутствуют, на экране
монитора появляется сообщение «Non system disk», и компьютер «зависает», т. е.
загрузка операционной системы прекращается и компьютер остается
неработоспособным.
В процессе загрузки можно выбрать в том числе вариант
загрузки без графического интерфейса (для вывода меню вариантов загрузки нужно
нажать клавишу {F8}). В случае использования интерфейса командной строки на
экране появляется приглашение системы к вводу команд. Приглашение представляет
собой последовательность символов, сообщающую о текущем диске и папке.
Например, если загрузка операционной системы была произведена с диска С:, а
операционная система была установлена в папку C:\WlNDOWS, то появится
приглашение:

R случае загрузки графического интерфейса операционной
системы команды могут вводиться с использованием элементов управления.

Контрольные вопросы
1. Каковы основные этапы загрузки операционной системы?
1.6. Защита информации
от вредоносных программ
1.6.1.
Вредоносные программы и антивирусные программы
Типы вредоносных программ. Вредоносными программами являются
программы, наносящие вред данным и программам, хранящимся на компьютере.
Основными типами вредоносных программ являются: е компьютерные вирусы;  сетевые
черви;  троянские программы;
•   программы
показа рекламы (от англ. adware) и программы-шпионы, занимающиеся сбором
персональной информации о компьютере и пользователе (от англ. spyware);
•   хакерские
утилиты.
Прообразом вредоносных программ была
компьютерная игра «Дарвин», созданная в 1961 году в научно-исследовательских
целях. Несколько компьютерных программ, названных «организмами», загружались в
память ЭВМ, причем организмы, созданные одним игроком (т. е. принадлежащие к
одному виду), должны были уничтожать представителей другого вида и захватывать
оперативную память.
За создание, использование и распространение вредоносных
программ в России и большинстве стран предусмотрена уголовная ответственность.
Антивирусные программы. Принцип работы антивирусных программ
основан на проверке файлов, загрузочных секторов дисков и оперативной памяти и
поиске в них известных и новых вирусов.

Для поиска известных вирусов используются сигнатуры, т. е. некоторые постоянные
последовательности двоичного кода, специфичные для этого конкретного вируса.
Если антивирусная программа обнаружит такую последовательность в каком-либо
файле, то файл считается зараженным вирусом и подлежит лечению.
Для поиска новых вирусов используются алгоритмы
эвристического сканирования, т. е. анализ последовательности команд в
проверяемом объекте. Если «подозрительная» последовательность команд
обнаруживается, то антивирусная программа выдает сообщение о возможном
заражении объекта.
Большинство антивирусных программ сочетает в себе функции
постоянной защиты (антивирусный монитор) и функции защиты по требованию
пользователя (антивирусный сканер).
Антивирусный монитор запускается автоматически при старте
операционной системы и работает в качестве фонового системного процесса,
проверяя на вредоносность совершаемые другими программами действия. Основная
задача антивирусного монитора состоит в обеспечении максимальной защиты от
вредоносных программ при минимальном замедлении работы компьютера.
Антивирусный сканер запускается по заранее выбранному
расписанию или в произвольный момент пользователем. Антивирусный сканер
производит поиск вредоносных программ в оперативной памяти, а также на жестких
и сетевых дисках компьютера.
К недостаткам антивирусных программ можно отнести большие
размеры используемых ими антивирусных баз данных, которые должны содержать
информацию о максимально возможном количестве вирусов (в настоящее время
десятках тысяч), что, в свою очередь, приводит к относительно небольшой
скорости поиска вирусов.
Признаки заражения компьютера. Есть ряд признаков,
свидетельствующих о проникновении на компьютер вредоносных программ:
     вывод
на экран непредусмотренных сообщений или изображений;  подача
непредусмотренных звуковых сигналов;  неожиданное открытие и закрытие лотка
CD/DVD дисковода;  произвольный запуск на компьютере
каких-либо программ;  частые «зависания» и сбои в работе
компьютера;  медленная работа компьютера при запуске
программ;  исчезновение или изменение файлов и
папок;  частое обращение к жесткому диску (часто
мигает лампочка на системном блоке);

«зависание» или неожиданное поведение браузера (например, окно программы
невозможно закрыть).
Кроме того, есть некоторые характерные признаки поражения
сетевым вирусом через электронную почту:
     друзья
или знакомые говорят о полученных от вас сообщениях, которые вы не отправляли;  в
вашем почтовом ящике находится большое количество сообщений без обратного
адреса и заголовка.
Действия при наличии признаков заражения компьютеРа. Прежде
чем предпринимать какие-либо действия, необходимо сохранить результаты работы
на внешнем носителе (дискете, CD- или 1)У Г)-диске, флэш-карте и пр.). Далее
необходимо:
     отключить
компьютер от локальной сети и Интернета, если он к ним был подключен;  если
симптом заражения состоит в том, что невозможно загрузиться с жесткого диска
компьютера (компьютер выдает ошибку, когда вы его включаете), попробовать
загрузиться в режиме защиты от сбоев или с диска аварийной загрузки Windows;
     запустить
антивирусную программу.
Контрольные вопросы
1. К каким последствиям может привести
заражение компьютерными вирусами?
2. Какие существуют признаки заражения
компьютера вирусом?
З. Что необходимо сделать в первую
очередь в случае заражения компьютера вирусом?
1.62. Компьютерные вирусы и защита от них
Обязательным свойством компьютерного вируса является
способность к размножению (самокопированию). Вирусы могут также незаметно для
пользователя внедряться в исполнияемые файлы, загрузочные секторы дисков и
документы. Название «вирус» по отношению к компьютерным программам пришло из
биологии именно по признаку способности к саморазмножению.

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

Компьютерные вирусы являются
вредоносными программами, которые могут «размножаться» и скрытно внедрять свои
копии в исполнимые файлы, загрузочные секторы дисков и документы. Активизация
компьютерного вируса может вызывать уничтожение программ и данных.

Разнообразны последствия действия вирусов. По величине
вредных воздействий вирусы можно разделить на:
•
неопасные, влияние которых ограничивается уменьшением свободной
памяти на диске, графическими, звуковыми и другими внешними эффектами;
•
опасные, которые могут привести к сбоям и «зависаниям» при работе
компьютера;
•
очень опасные, активизация которых может привести к потере
программ и данных (изменению или удалению файлов и каталогов), форматированию
винчестера и т. д. В настоящее время известно несколько десятков тысяч вирусов,
заражающих компьютеры различных операционных

систем. По способу сохранения и исполнения
своего кода вирусы можно разделить на загрузочные, файловые, макро-вирусы и
скрипт-вирусы.
Загрузочные вирусы. Загрузочные вирусы заражают загрузочный
сектор гибкого или жесткого диска. Принцип действия загрузочных вирусов основан
на алгоритмах запуска операционной системы при включении или перезагрузке
компьютера. После необходимых тестов установленного оборудования программа
системной загрузки считывает первый физический сектор загрузочного диска
(гибкого, жесткого, оптического или флэш-диска в зависимости от параметров,
установленных в BIOS Setup) и передает на него управление.
При заражении дисков загрузочные вирусы «подставляют» свой
код вместо программы, получающей управление при загрузке системы, и отдают
управление не оригинальному коду загрузчика, а коду вируса. При инфицировании
диска вируђ в большинстве случаев переносит оригинальный загрузочный сектор в
какой-либо другой сектор диска (например, в первый свободный).

Первая эпидемия загрузочного компьютерного вируса произошла в 1986 году, когда
вирус «Brain» «заражал» загрузочный сектор дискет для персональных компьютеров.
Вирус «Brain» являлся также и первым вирусом-невидимкой, так как при попытке
обнаружения зараженного загрузочного сектора вирус незаметно «подставлял» его
незараженный оригинал.
Профилактическая защита от таких вирусов состоит в отказе от
загрузки операционной системы с гибких дисков и установке в BIOS вашего
компьютера защиты загрузочного сектора от изменений. С помощью программы BlOS
Setup можно провести настройку BIOS таким образом, что будет заПрещена
(заблокирована) любая запись в загрузочный сектор диска и компьютер будет
защищен от заражения загрузочными вирусами.
Файловые
вирусы. Файловые вирусы различными способами внедряются в исполнимые файлы
(командные файлы *.bat, Программы *.ехе, системные файлы *.сот и *.sys,
программные б иблиотеки *.dtl и др.) и обычно активизируются при их
запуск е. После запуска зараженного файла вирус находится в операт
ивной памяти компьютера и является активным (т. е. может З аражать
другие файлы) вплоть до момента выключения К омпьютера или
перезагрузки операционной системы.
По способу заражения файловые вирусы разделяют на:
е перезаписывающие вирусы, которые
записывают свой код вместо кода программы, не изменяя названия исполнимого
файла. При запуске программы выполняется код вируса, а не сама программа;
•
вирусы-компаньоны, которые, как и перезаписывающие вирусы,
создают свою копию на месте заражаемой программы, но в отличие от
перезаписываемых не уничтожают оригинальный файл, а переименовывают или
перемещают его. При запуске программы вначале выполняется код вируса, а затем
управление передается оригинальной программе;
•
паразитические вирусы — это файловые вирусы, изменяющие
содержимое файла, добавляя в него свой код. Код может внедряться в начало,
середину или конец программы и выполняется перед, вместе или после программы.
При этом зараженная программа сохраняет полную или частичную работоспособность.

В 1999 году произошла эпидемия
очень опасного файлового вируса Win95.CIH, названного «Чернобыль» из-за даты
активации 26 апреля. Вирус уничтожал данные на жестком диске, а на системных
платах стирал содержимое BIOS, что приводило к необходимости их замены.
Практически все загрузочные и файловые вирусы резидентны, т.
е. они находятся в оперативной памяти компьютера, и в процессе работы
пользователя могут осуществлять опасные действия (стирать данные на дисках,
изменять назрания и другие атрибуты файлов и т. д.). Лечение от резидентных
вирусов затруднено, так как даже после удаления зараженных файлов с дисков
вирус остается в оперативной памяти и возможно повторное заражение файлов.
Профилактическая защита от файловых вирусов состоит в том,
что не рекомендуется запускать на исполнение файлы, полученные из сомнительного
источника и предварительно не проверенные антивирусными программами.
Макро-вирусы. Наибольшее распространение получили
макро-вирусы для интегрированного офисного приложения Microsoft 0ffce (Word,
Ехсе|, PowerPoint и Access). Макро-вирусы фактически являются макрокомандами
(макросами) на встроенном языке программирования Visual Basic for Applications
(VBA), которые помещаются в документ.
При работе с документом пользователь выполняет различные
действия: открывает документ, сохраняет, печатает, закрывает и т. д. При этом
приложение ищет и выполняет соответствующие стандартные макросы. Макро-вирусы
содержат стандартные макросы, вызываются вместо них и заражают каждЫЙ
открываемый или сохраняемый документ. Вредные деЙСТВИЯ макро-вирусов
реализуются с помощью встроенных макросов (вставки текстов, запрета выполнения
команд меню приложения и т. д.).
Макро-вирусы являются ограниченно резидентными, т. е. они
находятся в оперативной памяти и заражают документы, пока открыто приложение.
Кроме того, макро-вирусы заражают шаблоны документов и поэтому активизируются
уже при запуске зараженного приложения.
В августе 1995 года началась эпидемия
первого макровируса «Concept» для текстового процессора Microsoft Word.
Макро-вирус «Concept» до сих пор имеет широкое распространение, и на
сегодняшний момент извест но около 100 его модификаций.

Профилактическая защита от макро-вирусов состоит в предотвращении запуска
вируса. При открытии документа в приложениях Microsoft 0ffice сообщается о
присутствии в них макросов (потенциальных вирусов) и предлагается запретить их
загрузку. Выбор запрета на загрузку макросов надежно защитит ваш компьютер от
заражения макро-вирусами, однако отключит и полезные макросы, содержащиеся в
документе.
Скрипт-вирусы. Особой разновидностью вирусов являются
активные элементы (программы) на языках JavaScript или VBScript, которые могут
содержаться в файлах Web- страниц. Заражение локального компьютера происходит
при их передаче по Всемирной паутине с серверов Интернета в браузер локального
компьютера.
О В ноябре 1998 года появился первый
скрипт-вирус VBScript.Rabbit, заражающий скрипты УфеЬ-страниц, а через полтора
года, в мае 2000 года грянула глобальная эпидемия скрипт-вируса «LoveLetter».
Сейчас этот тип вирусов прочно удерживает первое место в списке наиболее
распространенных и опасных вирусов.
Профилактическая защита от скрипт-вирусов состоит в том,
что в браузере можно запретить получение активных элементов на локальный
компьютер.
Практическое задание «Защита от компьютерных вирусо в». С
помощью антивирусной программы (например, AntiVir P
ersonal Edition) проверить компьютер на наличие вирусов
и П РИ их обнаружении вылечить или удалить зараженные файлы.
Защита от компьютерных вирусов
Прежде всего, необходимо через Интернет обновить саму
антивирусную программу и вирусную базу данных.
1.   Соединиться
с Интернетом.
На панели задач в контекстном меню значка
антивирусной программы AntiVir Personal Edition выбрать пункт Start Update.

В появившемся диалоговом окне (рис. 1.34) будет отображаться процесс обновления
антивирусной программы и вирусной базы данных.

Рис. 1.34.
Обновление антивирусной программы
Настроим параметры антивирусного монитора (Guard) и сканера
(Scanner).
2.   В
контекстном меню значка антивирусной программы выбрать пункт Configure AntiVir.
В появившемся диалоговом окне (рис. 1.35)
выбрать экспертный режим, установив флажок Expert mode. В левой части окна в
иерархическом меню выбрать пункт Guard, а в правой установить необходимые
параметры антивирусного монитора.
Для выбора типов проверяемых файлов
щелкнуть по кнопке Fite extensions и в появившемся раскрывающемся списке
добавить или удалить типы файлов.

Рис. 1.35. Настройка параметров антивирусного монитора
(Guard)
З. В иерархическом меню выбрать пункт
Scan (рис. 1.36), а в правой части окна установить необходимые параметры ан-

Рис. 1.36. Настройка параметров антивирусного сканера
(Scanner)
Проведем проверку на вирусы выбранных
дисков.
4.   В контекстном
меню значка антивирусной программы выбрать пункт Start AntiVir.
В появившемся диалоговом окне (рис. 1.37)
выбрать вкладку Scanner.
В иерархической файловой системе отметить
флажком диски, выбранные для проверки.

Щелкнуть по кнопке Start scan.

Рис. 1.37.
Проверка на вирусы выбранных дисков
5.   Появится
диалоговое окно, в котором будет отображаться процесс антивирусной проверки
файлов на выбранном диске.
Для получения результатов проверки
щелкнуть по кнопке Report.
Контрольные вопросы
1.  Какие типы компьютерных вирусов
существуют, чем они отличаются друг от друга и какова должна быть профилактика
заражения?
2.  Почему даже чистая отформатированная
дискета может стать источником заражения вирусом?

1.18.
С помощью
антивирусной программы (например, AntiVir Personal Edition) выполнить
практическое задание «Защита от компьютерных вирусов» .
1.19.  С использованием Вирусной энциклопедии
ознакомиться с классификацией вирусов и методами антивирусной защиты.
http://www.viruslist.com
1 .6.3. Сетевые черви и защита от них
К сетевым червям (от англ. worm)
относятся вредоносные программы, распространяющие свои копии по локальным и/или
глобальным сетям. Для своего распространения сетевые черви используют
разнообразные сервисы глобальных и локальных компьютерных сетей: Всемирную
паутину, электронную почту, интерактивное общение, файлообменные сети и т. д.
Основным признаком, по которому типы червей различаются
между собой, является способ распространения червя — каким способом он передает
свою копию на удаленные компьютеры. Однако многие сетевые черви используют
более одного способа распространения своих копий по компьютерам локальных и
глобальных сетей.

Сетевые черви являются вредоносными
программами, которые проникают на компьютер, используя сервИСЫ компьютерных
сетей. Активизация сетевого червя может вызывать уничтожение программ и данных,
а также похищение персональных данных пользователя.

Почтовые черви. Почтовые черви для своего распространения
используют электронную почту. Червь отсылает либо свою копию в виде вложения в
электронное письмо, либо Ссылку на свой файл, расположенный на каком-либо
сетевом Ресурсе. В первом случае код червя активизируется при открытии
(запуске) зараженного вложения, во втором при открытии ссылки на зараженный
файл. В обоих случаях эффект одинаков активизируется код червя.
Лавинообразная цепная реакция распространения
почтового червя базируется на том, что червь после заражения компьютера
начинает рассылать себя по всем адресам электронной почты, которые имеются в
адресной книге пользователя.
Профилактическая защита от почтовых червей состоит в том,
что не рекомендуется открывать вложенные в почтовые сообщения файлы, полученные
из сомнительных источников.
Черви, использующие «уязвимости» программного обеспечения.
Червь ищет в сети компьютеры, на которых используются операционная система и
приложения, содержащие критические уязвимости. Для заражения уязвимых
компьютеров червь посылает специально оформленный сетевой пакет или запрос, в
результате чего код (или часть кода) червя проникает на компьютер-жертву. Если
сетевой пакет содержит только часть кода червя, он затем скачивает основной
файл и запускает его на исполнение на зараженном компьютере.
Профилактическая защита от таких червей состоит в том, что
рекомендуется своевременно скачивать из Интернета и устанавливать обновления
системы безопасности операционной системы и приложений.

Черви, использующие файлообменные сети. Механизм работы подобных червей
достаточно прост — для внедрения в файлообменную сеть червю достаточно
скопировать себя в папку обмена файлами на одном из компьютеров. Всю остальную
работу по распространению червя файлообменная сеть берет на себя — при поиске
файлов в сети она сообщит удаленным пользователям о данном файле-черве и
предоставит его для скачивания.
В сентябре 2001 года началась стремительное
«расползание» сетевого червя «Nimda», который мог атаковать компьютеры сразу
несколькими способами: через сообщения электронной почты, через открытые
ресурсы локальных сетей, а также используя уязвимости в системе безопасности
операционной системы серверов Интернета.
Сетевые черви кроме вредоносных действий, которыми обладают
и классические компьютерные вирусы, могут выполнять шпионскую функцию троянских
программ.
1.6.4.
Троянские программы и
защита от них
Практическое задание «Защита от сетевых червей». С помощью
антивирусной программы (например, avast!) проверить компьютер на заражение
сетевыми червями и при их обнаружении вылечить или удалить зараженные файлы.
Защита от сетевых червей
Прежде всего необходимо через Интернет обновить саму
антивирусную программу и вирусную базу данных.
1.
Соединиться с
Интернетом.
На панели задач в контекстном меню
значка антивирусной программы avast! выбрать сначала пункт
[ОбновлениеОбновление программы], а затем пункт [ОбновлениеОбновление базы
Данных iAVS].
В появляющихся диалоговых окнах будет
отображаться процесс обновления антивирусной программы и вирусной базы данных.
Настроим параметры резидентного антивирусного монитора
(авторы программы называют его сканером доступа). Можно отдельно настроить
параметры сканера доступа на наличие сетевых червей в электронной почте, ИТеЬ-страницах,
мгновенных сообщениях интерактивного общения, локальных и файлообменных сетях
(авторы программы называют эти сервисы компьютерных сетей провайдерами).
2.   В
контекстном меню значка антивирусной программы выбрать пункт Настройка сканера
Доступа.

В левой части появившегося диалогового окна (рис. 1.38) выбрать провайдера,
например Электронная почта.

Рис. 1.38.
Настройка параметров антивирусного монитора
(сканера
доступа)
В правой части окна установить необходимые
параметры проверки входящей почты.
Проверим входящую почту на наличие
почтовых червей.
З. Запустить почтовую программу и
начать получение входящих сообщений.

В случае обнаружения в сообщении почтового червя раздастся голосовое
предупреждение и будет выведено диалоговое окно Обнаружен вирус! (рис. 1.39).

Обнаружен вирус!
Нет ежа— :ричп-ы ват.юеться ауа;е
  остерювил mdware репе. он в комгътев действие гтаза•ю емже.
Имя фала:       Втдя.цм мча 'O*ery
  fahd' От: 'The Post 0fce"
Имя ы.руса:          WmQiMydoom•L
  Wrml
Т т:
  трусе:       Вирус/Черь
Верст                          0629-2. 21.07.ав

Рис. 1.39.
Обнаружение почтового червя
В окне будет указано, какое сообщение
инфици- ровано, имя вируса (например, Win32.Mydoom-L) и тип вируса (например,
Вирусу Червь).
Пользователь может выбрать одно из
следующих действий щелчком по соответствующей кнопке: Переименовать, УДалить, В
хранилище, Ничего не Делать.
Проведем проверку на вирусы выбранных
дисков.
4.   В контекстном
меню значка антивирусной программы выбрать пункт Запустить антивирус avast!.
В появившемся диалоговом окне с помощью
кнопок справа выбрать диски для сканирования. Щелкнуть по кнопке Запустить.
В диалоговом окне будет отображаться
процесс антивирусной проверки файлов на выбранном диске (рис. 1.40).

Рис. 1.40.
Проверка на вирусы выбранных дисков
5.   Для
ознакомления с результатами в контекстном меню значка антивирусной программы
выбрать пункт Просмотр журнала avast!.

Контрольные вопросы
1.
Какие типы
сетевых червей существуют, чем они отличаются друг от друга и какова должна
быть профилактика заражения? рактикум
Windows-CD
1.20. С помощью антивирусной программы
(например, avast!) выполнить практическое задание «Защита от сетевых червей».
1 .6.4. Троянские программы и защита от них
Троянские программы осуществляют не санкционированные
пользователем действия по сбору и передаче информации ЗЛоумышленнику, а также
ее разрушение или злонамеренную Модификацию. Кроме того, троянские программы
могут вызывать нарушение работоспособности компьютера или незаметно для
пользователя использовать ресурсы компьютера в целях злоумышленника.
Троянские программы обычно проникают на компьютер как
сетевые черви, а различаются между собой по тем действиям, которые они
производят на зараженном компьютере.

ТроЙнская программа, тройнец (от
англ. trojan) вредоносная программа, которая выполняет несанкционированную
пользователем передачу управления компьютером удаленному пользователю, а также
действия по удалению, модификации, сбору и пересылке информации третьим лицам.

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

При запуске троянец устанавливает себя в системе и затем следит за ней, при
этом пользователю не выдается никаких сообщений о действиях троянской программы
в системе. В результате «пользователь» этой троянской программы может и не
знать о ее присутствии в системе, в то время как его компьютер открыт для
удаленного управления.
Троянские программы данного типа являются одним из самых
опасных видов вредоносного программного обеспечения, поскольку в них заложена
возможность самых разнообразных злоумышленных действий, в том числе они могут
быть использованы для обнаружения и передачи конфиденциальной информации.
В 2003 году широкое распространение
получила троянская программа Backdoor.Win32.BO, которая осуществляет следующие
действия:
 высылает имена компьютера, пользователя и
информацию о системе: тип процессора, размер памяти, версию системы, информацию
об установленных устройствах;  посылает/принимает, уничтожает, копирует,
переименовывает, исполняет любой файл;  отключает пользователя от сети;  «завешивает»
компьютер;  читает или модифицирует системный реестр.
Троянские программы, ворующие информацию. Такие троянские
программы воруют различную информацию с зараженного компьютера. При запуске они
ищут файлы, хранящие конфиденциальную информацию о пользователе (банковские
реквизиты, пароли доступа к Интернету и др.) и отсылают ее по указанному в коде
троянца электронному адресу или адресам.
Троянцы данного типа также сообщают информацию о зараженном
компьютере (размер памяти и дискового пространства, версию операционной
системы, 1Р-адрес и т. п.). Некоторые троянцы воруют регистрационную информацию
к программному обеспечению.
Троянские программы — инсталляторы вредоносных
программ. Троянские программы этого класса скрытно инсталлирукот другие
вредоносные программ и используются для «подсовывания» на компьютер-жертву
вирусов или других троянских программ. Загруженные без ведома пользователя из
Интернета программы затем либо запускаются на выполнение, либо включаются
троянцем в автозагрузку операционной системы.

Троянские программы — шпионы, Данные троянцы осуЩеСТВЛЯЮТ электронный шпионаж
за пользователем зараженного компьютера: вводимая с клавиатуры информация,
снимки экрана, список активных приложений и действия пользователя с ними сохраняются
в каком-либо файле на диске и периодически отправляются злоумышленнику.
Троянские программы этого типа часто используются для кражи
информации пользователей различных систем онлайновых платежей и банковских
систем.
Троянские программы часто изменяют записи системного реестра
операционной системы, поэтому для их удаления необходимо в том числе
восстановление системного реестра.
Практическое задание «Защита от троянских программ». С
помощью программы восстановления системы (например, CCleaner) исправить ошибки
системного реестра.
Защита от троянских программ
Исправим записи системного реестра, в которые троянские
программы могли внести изменения.
1. Запустить программу восстановления
системы CCleaner. В левой части окна приложения (рис. 1.41) щелкнуть по кнопке
НеполаДки.

Рис. 1.41.
Исправление записей системного реестра
В списке Настройка поиска неполаДок
отметить флажками нужные пункты.
Щелкнуть по кнопке Поиск проблем, в
правой части окна будут показаны проблемы реестра и соответствующие записи
реестра.
Отметить флажками нужные записи и
щелкнуть по кнопке Исправить отмеченные...
Произойдет исправление выбранных записей
системного реестра.

Контрольные вопросы
1. Какие типы троянских программ
существуют и каковы их вредоносные действия?
Компьюте ый рактикум
Windows-CD
1.21. С помощью программы
восстановления системы (например, CCleaner) выполнить практическое задание
«Защита от троянских программ» .
1.6.5.
Рекламные и шпионские программы и защита от них
Рекламные программы. Рекламные программы (от англ. Adware:
Advertisement — реклама и Software — программное обеспечение) встраивают
рекламу в основную полезную программу. Часто рекламные программы входят в
состав официаЛЬНО поставляемых условно бесплатных версий программного
обеспечения.
Реклама демонстрируется пользователю в процессе работы
основной программы в виде графических баннеров или бегущей строки. Обычно после
покупки и/или регистрации основной программы рекламная вставка удаляется и
показ рекламы прекращается.
Шпионские программы. Шпионские программы (от англ. Spyware:
Spy — шпион и Software — программное обеспечение) скрытно собирают различную
информацию о пользователе компьютера и затем отправляют ее злоумышленнику.

Эти программы иногда проникают на компьютер под видом рекламных программ и не
имеют возможности деинсталляции пользователем без нарушения функционирования
использующей их программы. Иногда шпионские программы обнаруживаются в
распространенных программных продуктах известных на рынке производителей.
В марте 2005 года под видом поисковой
панели для браузера lnternet Exptorer начала распространяться
рекламно-шпионская программа «mwsbar». Программа регистрирует себя в системном
реестре и добавляет в автозагрузку, что приводит к изменению настроек браузера
и перенаправлению результатов поиска в Интернете на сайт злоумышленника.
Практическое задание «Защита от рекламных и шпионских
программ». С помощью программы удаления рекламных и шпионских программ
(например, Ad-Adware) очистить компьютер от adware и spyware программ.
Защита от рекламных и шпионских программ
1.  Запустить
программу Ad-Adware, которая удаляет рекламные и шпионские программы.
В окне приложения (рис. 1.42) щелкнуть по
кнопке Start.

TJia8a

Ad-Aware SE Status

Reedy

                                                                                Ad-Awere
  st Persona.          1.05

Puc. 1.42.
OKHO nporpaMMbl Ad-Adware
2.
B
110flBHBU1eMCfl Aha.}101'OBOM OKHe (pnc. 1.43) Bb16PaTb THII CR8H1ap0BaHua
(HanpMMep, Perform smart system scan cpcaHupoeaHue).
1.11eJIKHYTb no RH0111•ce Next.

Puc. 1.43.
Bb'60p Tuna CKaHMPOBaHE,sq
3.
B
TeqeHžre HeK0Toporo BpeMeHH 6YÄeT nponcx0AHTb cKaHMpoBaHHe, rrpouecc
ROTop0TO 6yaeT orroõpa'±ca'l'bca B AHEIOTOBOM
OKE•ze.

4.  С
результатами сканирования можно ознакомиться в следующем диалоговом окне с
использованием вкладок.
Активизировать вкладку Critical 0bjects
(рис. 1.44) и в контекстном меню выбрать пункт Select all objects — ВыДелить
все объекты.
В данном случае будут выделены файлы cookies (см. ниже).

Рис. 1.44.
Список найденных критических объектов
5.  Активизировать
вкладку Negligtble 0bjects (рис. 1.45) и в контекстном меню выбрать пункт
Select all objects — ВыДелить все объекты.

Рис. 1.45.
Список найденных подозрительных объектов
82

В данном случае будут выделены файлы с
подозрением на adware и spyware.
Щелкнуть по кнопке Next.
6.  В
появившемся диалоговом окне можно подтвердить удаление найденных критических и
подозрительных объектов (adware, spyware и cookies).
Куки, Куки (от англ. cookies — домашнее печенье) — небольшой
текстовый файл, помещаемый М7 еЬ-сервером на локальный компьютер
пользователя. Файлы cookies могут храниться в оперативной памяти (сеансовые
файлы cookies) или записываться на жесткий диск (постоянные файлы cookies).
Файлы cookies не могут быть использованы для запуска программного кода (запуска
программ) или для заражения компьютера вирусами.
Cookies применяются для сохранения данных, специфичных для
данного пользователя. При вводе регистрационных данных файлы cookies помогают
серверу упростить процесс сохранения персональных данных, связанных с текущим
пользователем. Если пользователь Интернет-магазина ранее указывал адрес для
доставки счетов или товара, вместо повторного ввода этих данных можно указать
пароль, позволяющий автоматически заполнить соответствующие поля в форме заказа.
Браузеры позволяют включать и отключать использование файлов
cookies, а также выполнять прием файлов cookies только после подтверждения со
стороны пользователя.
Практическое задание «Упорядочение использования файлов
cookies». В браузере установить уровень защиты локального компьютера от файлов
cookies.
Упорядочение
использования файлов cookies
1.  Запустить
браузер lnternet Explorer и ввести команду [Сервис-Свойства обозревателя...].
В появившемся диалоговом окне Свойства
обозревателя выбрать вкладку КонфиДенциальность (рис. 1.46).
С помощью вертикального ползунка
установить уровень конфиденциальности от значения Принимать все cookies до
уровня Блокировать все cookies.
2.  Запустить
браузер SeaMonkey и ввести команду [Инструменты-МенеДжер Cookies ...1.
С помощью пунктов меню установить уровень
защиты от cookies.

Рис. 1.46.
Защита от cookies в браузере tnternet Explorer
Контрольные вопросы
1.
Каковы
вредоносные действия рекламных и шпионских программ?
2.
Что такое куки
(cookies)? В чем состоит их польза и вред?
Компьюте ый рактикум
Windows-CD
1.22. С помощью программы удаления
рекламных и шпионских программ (например, Ad-Adware) выполнить практическое
задание «Защита от рекламных и шпионских программ» .
1.23. В браузерах выполнить
практическое задание «Упорядочение использования файлов cookies».

1 .6.6. Спам и защита от него
Спам (от англ. spam) — это массовая автоматическая рассылка
рекламных электронных сообщений, со скрытым или фальсифицированным обратным
адресом. Спам распространяется по компьютерным сетям с использованием
электронной почты и систем интерактивного общения (типа ICQ), а также по
мобильным сетям с использованием службы SMS-c006uxeHE,Iii.

Спам — массово рассылаемая
корреспонденция рекламного или иного характера, отправляемая людям, не
выразившим желание ее получать. В первую очередь термин «спам» относится к
рекламным электронным письмам.

Спам приходит потому, что электронный адрес получателя стал
известен спамерам (рассыльщикам спама). Чаще всего владелец почтового ящика сам
указывает электронный почтовый адрес при регистрации на каком-либо сайте и его
обнаруживает специальный робот, «бродящий» по сайтам наподобие индексирующего
робота поисковых систем.
Спамеры стремятся получить подтверждение, что почтовый адрес
действительно используется (в этом случае поток спама может увеличиться
многократно). Чтобы убедиться, что спамовое сообщение получено и прочитано,
спамеры применяют различные уловки:
 требуется подтверждение о получении
сообщения; о предлагается активизировать ссылку на ИГеЬ-страницу, на которой
предлагается получить дополнительную информацию;  предлагается отменить
подписку на эту рассылку, послав письмо по указанному адресу.
Рекламный спам. Некоторые компании, занимающиеся легальным
бизнесом, рекламируют свои товары или услуги с помощью спама. Они могут
осуществлять его рассылку самостоятельно, но чаще заказывают ее тем компаниям
(или лицам), которые на этом специализируются. Привлекательность такой рекламы
заключается в ее сравнительно низкой стоимости и большом охвате потенциальных
клиентов.
С помощью спама часто рекламируют продукцию, о которой
нельзя сообщить другими способами, например оружие, порнографию, лекарственные
средства с ограничениями по обороту, ворованную информацию (базы данных),
контрафактное программное обеспечение и т. п.

«Нигерийские письма». Иногда спам используется для того,
чтобы выманить деньги у получателя письма. Наиболее распространенный способ
получил название «нигерийские письма», потому что большое количество таких
писем приходило из Нигерии. Такое письмо содержит сообщение о том, что
получатель письма может получить большую сумму денег, а отправитель может ему в
этом помочь. Затем отправитель письма просит перевести ему немного денег под
предлогом, например, оформления документов или открытия счета. Выманивание этой
суммы и является целью мошенников.
Фишинг. Фишинг (от англ. fishing рыбалка) — еще один способ
мошенничества путем обмана пользователей. Он представляет собой попытку
выманить у получателя письма данные, которые можно использовать для получения
выгоды: номера его кредитных карточек или пароли доступа к системам онлайновых
платежей. Такое письмо обычно маскируется под официальное сообщение от
администрации банка. В нем говорится, что получатель должен подтвердить
сведения о себе, иначе его счет будет заблокирован, и приводится адрес сайта
(принадлежащего спамерам) с формой, которую надо заполнить. Среди данных,
которые требуется сообщить, присутствуют и те, которые нужны мошенникам. Для
того чтобы жертва не догадалась об обмане, оформление этого сайта имитирует
оформление официального сайта банка.
Защита от спама. В силу массового характера спамовые
почтовые рассылки затрудняют работу информационных систем и ресурсов, создавая
для них бесполезную нагрузку. ПоЛьзователи сети вынуждены ежедневно тратить
время на обРаботку бесполезных рекламных сообщений, а провайдерам спам приносит
неудобства вследствие повышения нагрузки на почтовые серверы и каналы связи.
Для борьбы со спамом используются антиспамовые фильТРЫ,
которые могут быть установлены как на локальных компьютерах пользователей, так
и на почтовых серверах проВайдеров. Антиспамовые фильтры анализируют содержание
Письма или пытаются опознать спамера по электронному адресу. Если письмо
классифицировано как спам, оно может быть помечено, перемещено в другую папку
или даже удалено.
Для затруднения автоматической фильтрации спамовые
СО0бщения часто искажаются, вместо букв
используются поХОЖИе по начертанию цифры, русские буквы заменяются на Л атинские,
а в случайных местах добавляются пробелы.

Практическое задание «Защита от спама». В почтовых
программах (например, 0utlook Express и SeaMonkey) создать антиспамовый фильтр
(правила для работы с почтой), Который будет защищать от получения рекламных
сообщений:  от конкретных отправителей;  при наличии
определенных слов в сообщении.
7
Защита от спама
Создадим антиспамовый фильтр в почтовой программе 0utlook
Express.
1.  Запустить
почтовую программу 0ut100k Express. Ввести команду [Сервис-Правила для
сообщений-Почта...].
2.  В
появившемся диалоговом окне Правила для сообщений выбрать вкладку Правила для
почты и щелкнуть по кнопке СозДать.
З. Появившееся диалоговое окно СозДать
правило для почты (рис. 1.47) содержит три списка и текстовое поле.

В первом списке необходимо выбрать условия применения правила, в данном случае
Искать сообщения, содержащие адресатов в поле «От» и Искать сообщения,
соДержащие заданные слова.

Рис. 1.47.
Создание антиспамового фильтра в почтовой программе 0utlook Express
4.   Во втором
списке необходимо выбрать действие над сообщениями для данного правила, в
данном случае УДалить с сервера.
5.   В третьем
списке необходимо уточнить порядок действия данного правила.
Щелчком по ссылке содержащие адресатов
вызвать диалоговое окно Выбор получателей и ввести почтовые адреса спамеров, от
которых почтовые сообщения не будут получаться.
Щелчком по ссылке соДержащие заданные слова
вызвать диалоговое окно Ввод ключевых слов и ввести ключевые слова, при наличии
которых в почтовых сообщениях эти сообщения будут получаться.
6.   Текстовое поле
содержит название и номер созданного правила. После щелчка по кнопке ОК правило
вступает в действие.
Создать антиспамовый фильтр в почтовой
программе SeaMonkey.
1.  Запустить
почтовую программу SeaMonkey. Ввести команду [Инструменты-фильтры
сообщений...].
2.

В появившемся диалоговом окне Правила фильтрации (рис. 1.48) в текстовое поле
ввести имя фильтра (например, Антиспамовый фильтр).

Уделать с сервера РОР

Рис. 1.48.
Создание антиспамового фильтра в почтовой программе SeaMonkey
З. Во втором поле добавить условия
применения фильтра щелчком по кнопке +.
В первом условии ввести почтовые адреса
спамеров, от которых почтовые сообщения не будут получаться. Во втором условии
ввести ключевые слова, при наличии которых в почтовых сообщениях эти сообщения
не будут получаться.
4. В третьем поле необходимо выбрать действие
над сообщениями для данного фильтра, в данном случае УДалить с сервера РОР.
Контрольные вопросы
1. Каковы вредные последствия спама?
2. Какие существуют основные типы
спамовых сообщений?
Компьюте ый рактикум

1.24. В почтовых
программах (например, 0utlook Express и SeaMonkey) выполнить практическое
задание «Защита от спама» .
1 .6.7. Хакерские утилиты и защита от них
В тех случаях, когда затруднения в работе или утере данных
возникает в результате направленных действий, говорят о сетевых атаках.
Сетевые атаки. Сетевые атаки на удаленные серверы
реализуются с помощью специальных программ, которые посылают на них
специфические запросы. Это приводит к отказу в обслуживании («зависанию»
сервера), если ресурсы атакуемого сервера недостаточны для обработки всех
поступающих запросов.
ТБ-программы (от англ. Denial of Service — отказ в
обслуживании) реализуют атаку с одного компьютера с ведома пользователя.  обычно
наносят ущерб удаленным компьютерам и сетям, не нарушая работоспособность
зараженного компьютера.
(от англ. Distributed DoS распределенный
DoS) реализуют распределенные атаки с разных компьютеров, причем без ведома
пользователей зараженных компьютеров. Для этого  засылается на
компьютеры «жертв-посредников» и после запуска в зависимости от текущей даты
или по команде от хакера начинает сетевую атаку на указанный сервер в
сети.
Некоторые сетевые черви содержат в себе
Г)В-процедуры, атакующие сайты, которые по каким-либо причинам «невзлюбил»
автор червя. Так, червь «Codered» 20 августа 2001 года организовал успешную
атаку на официальный сайт президента США, а червь «Mydoom» 1 февраля 2004 года
«выключил» сайт компании — производителя дистрибутивов UNIX.
Некоторые хакерские утилиты реализуют фатальные сетевые
атаки. Такие утилиты используют уязвимости в операционных системах и
приложениях и отправляют специально оформленные запросы на атакуемые компьютеры
в сети. В результате сетевой запрос специального вида вызывает критическую
ошибку в атакуемом приложении, и система прекращает работу.

Утилиты «взлома» удаленных компьютеров. Утилиты «взлома» удаленных компьютеров
предназначены для проникновения в удаленные компьютеры с целью дальнейшего
управления ими (используя методы троянских программ типа утилит удаленного
администрирования) или для внедрения во «взломанную» систему других вредоносных
программ.
Утилиты «взлома» удаленных компьютеров обычно используют
уязвимости в операционных системах или приложениях, установленных на атакуемом
компьютере. Профилактическая защита от таких хакерских утилит состоит в
своевременной загрузке из Интернета обновлений системы безопасности операционной
системы и приложений.
Руткиты. Руткит (от англ. root kit —
«набор для получения прав root») — программа или набор программ для скрытного
взятия под контроль «взломанной» системы.
Термин «rootkit» исторически пришел из мира операционной
системы UNIX, и под этим термином понимается набор Утилит, которые хакер
устанавливает на «взломанном» им Компьютере после получения первоначального
доступа.
В операционной системе Windows под rootkit принято
поДразумевать программу, которая внедряется в систему и переХватывает системные
функции. Перехват и модификация НИЗкоуровневых функций, в первую очередь,
позволяет такой Программе достаточно качественно маскировать свое присутСтвие в
системе. Кроме того, как правило, rootkit может масКировать присутствие в
системе любых описанных в его кон-
фигурации процессов, каталогов и файлов на диске,
ключей в реестре. Многие rootkit устанавливают в систему свои драйверы и службы
(они, естественно, также являются «невидимыми»).
Защита от хакерских атак и сетевых червей. Защита компьютерных
сетей или отдельных компьютеров от несанкционированного доступа может
осуществляться с помощью межсетевого экрана, или брандмауэра (от англ.
firewall). Межсетевой экран может быть реализован как аппаратно, так и
программно.
Межсетевой экран позволяет:
е блокировать хакерские Г)сБ-атаки, не пропуская на
защищаемый компьютер сетевые пакеты с определенных серверов (определенных
1Р-адресов или доменных имен);  не допускать проникновение на защищаемый компьютер сетевых червей
(почтовых, Web и др.);  препятствовать троянским программам отправлять конфиденциальную
информацию о пользователе и компьютере.
Практическое задание «Настройка межсетевого экрана».
Установить и настроить межсетевой экран (например, Agnitum 0utpost).

Настройка межсетевого экрана
Установим политику защиты сетевого экрана, которая
определяет, какие сетевые соединения разрешены или запрещены:
•
Блокировать все —
запрет любых сетевых взаимодейстВИЙ;
•
Режим блокировки — запрет всех сетевых взаимодействий, кроме явно
разрешенных;
•
Режим обучения — пользователь может принять решение о возможности
или запрете выхода в сеть для приложения. Межсетевой экран выдает диалоговое
окно предупреждения о первом сетевом взаимодействии для данного приложения,
котором можно настроить правила доступа данного приложения в сеть (эта политика
задается по умолчанию);
•
Режим бездействия разрешение любых сетевых взаимодействий; о
Режим разрешения — разрешение всех сетевых взаимодействий, кроме явно
запрещенных.
1.  Запустить
межсетевой экран Agnitum 0utpost. Ввести команду [Параметры-Политики...].
2.  В
появившемся диалоговом окне Параметры активизировать вкладку Политики (рис.
1.49) и выбрать политику
защиты сетевого экрана.
Щелкнуть по кнопке ОК.

Парететры

Рис. 1.49. Установка политики
межсетевого экрана
При установленной политике Режим обучения каждое приложение
будет запрашивать установление индивидуальной политики доступа к Интернету.
3 ' При попытке получения
электронной почты появится диалоговое окно, запрашивающее разрешение данному
прилоэкению на доступ к Интернету (рис. 1.50),

Рис. 1,50.
Запрос на разрешение доступа к Интернету
Можно получить информацию о разрешенных и заблокированыых
приложениях.
4, Открыть окно межсетевого экрана
(рис. 1.51) и в левой его части в иерархическом меню выбрать интересующий тип
приложений. В правой части окна межсетевого экрана будет выведен список приложений
с дополнительной информацией о типе соединения.

Рис. 1.51.
Разрешенные приложения

С помощью межсетевого экрана можно установить уровень тревоги и заблокировать
хакерские Г)оьуатаки.
5. Ввести команду
[Параметры-ПоДключаемые моДули...]. В появившемся диалоговом окне выбрать
подключаемый модуль Детектор атак и щелкнуть по кнопке Параметры...
В появившемся диалоговом окне Параметры (рис. 1.52) с

рис. 1.52.
Установка параметров защиты от ОсБ-атак

помощью вертикального ползунка выбрать уровень
тревоги. Установить флажки в разделе Блокировка атак и с помощью счетчиков
установить время блокировки.
б. Открыть окно межсетевого экрана и в
левой его части в иерархическом меню выбрать пункт Детектор атак (рис 1.53).

Рис. 1.53.
Детектор Оо$-атак
В правой части окна межсетевого экрана
будет выведен список атак с дополнительной информацией о каждой атаке.
Контрольные вопросы
1.
Каковы основные
хакерские утилиты и их злонамеренное использование?
2.
В каких целях
используются межсетевые экраны?
Компьюте ый рактикум
Windows-CD
1.25. С помощью межсетевого экрана
(например, Agnitum 0utpost) выполнить практическое задание «Настройка
межсетевого экрана» .
Глава 2

Информация.
Системы счисления

В процессе изучения данной темы рекомендуется установить
программное обеспечение в операционной системе Windows:
е компьютерные калькуляторы Wise
Calculator и NumLock Calculator;
е программа перевода
единиц измерения различных величин, в том числе информации.
2.1. Понятие
<<информация» в науках о неживой
и живой природе,
обществе и технике
Слово «информация» происходит от латинского слова
«informatio», что в переводе означает сведение, разъяснение, ознакомление.
Понятие «информация» является базовым в курсе информатики, невозможно дать его
определение через другие, более «простые» понятия. В геометрии, например,
невозможно выразить содержание базовых понятий «точка», «луч», «плоскость»
через более простые понятия. Содержание основных, базовых понятий в любой науке
должно быть пояснено на примерах или выявлено путем их сопоставления с содержанием
других понятий.
В случае с понятием «информация» проблема его определения
еще более сложная, так как оно является общенаучным понятием. Понятие
«информация» используется в различных науках (информатике, кибернетике,
биологии, физике и др.), при этом в каждой науке понятие «информация» связано с
различными системами понятий.
2.1.1. Информация в физике
В физике информация рассматривается как антиэнтропия, или
энтропия с обратным знаком. Энтропия системы яв-

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

увеличение энтропии

уменьшение информации вероятность
состояния
Рис. 2.1.
Энтропия и информация в замкнутой системе
Из вышесказанного следует, что замкнутые системы,
СТРемящиеся к состоянию теплового равновесия, не могут хранить информацию.
Рассмотрим в качестве примера данн ый учебник. На первый взгляд,
учебник находится в тепловом равновесии — ведь мы даже можем измерить его
темпераТУРУ. Однако полного теплового равновесия учебник достигнет л
ишь после того, как типографская краска продиффундирует и Расплывется
по каждой странице. Однако когда текст исчезнет, исчезнет и информация.

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

Однако современная наука установила, что некоторые законы классической физики,
справедливые для макротел, нельзя применять для микро- и мегамира. Согласно
современным научным представлениям, наша Вселенная является динамически
развивающейся системой, в которой постоянно происходят процессы усложнения
структуры.
Астрономия-11
Согласно теории Большого взрыва, Вселенная образовалась
около 15 миллиардов лет назад в результате взрыва «первоматерии» (рис. 2.2). В
первые мгновения материя существовала фактически в форме энергии, а затем на
протяжении долей секунды начало образовываться вещество в форме элементарных
частиц (электронов, протонов, нейтронов и др.).
В следующий миллион лет основные события развивались в
микромире. Из разлетающихся во все стороны элементарных частиц образовывались
атомы, то есть из хаоса возникали системы с более сложной структурой. Сначала
образовывались атомы самых легких химических элементов (водорода и гелия), а
затем и более тяжелых элементов (рис. 2.3).
В мегамире в течение последующих миллиардов лет под
действием сил гравитационного притяжения из хаоса гигантск•их облаков пыли и
газа формировались сложные структу-

увеличение

                                       хаос                                              порядок
Рис. 2.3.
Переход от хаоса к порядку в микромире

У В ели ч е н и е

                                        хаос                                            порядок
Рис. 2.4.
Переход от хаоса к порядку в макромире
Наша солнечная система, в которую входит планета Земля,
образовалась около 5 миллиардов лет назад и вместе с сотнями миллионов других
звезд образует нашу галактику Млечный Путь.
На поверхности планет стали происходить химические реакции,
в результате которых из атомов образовывались 60лее сложные системы — молекулы
веществ. В том числе молекула воды, которая состоит из двух атомов водорода и
одного атома кислорода.
Химия 9
Таким образом, с одной стороны, в неживой природе в
замкнутых системах идут процессы в направлении от порядка к хаосу (в них
информация уменьшается). С другой стороны, в открытых системах может
происходить усложнение структуры и, следовательно, информация, являющаяся мерой
упорядоченности элементов системы, возрастает.

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

венные (здания, средства транс-

порта, станки и механизмы,

Рис. 2.5. Макромир.

компьютеры и т. д.).

Гулливер в стране

Макрообъекты состоят из моле-

лилипутов

кул и атомов, которые, в свою очередь,
состоят из элементарных частиц, размеры которых чрезвычайно малы. Этот мир
называется микромиром (рис. 2.6).
                                                   О
Рис. 2.6.
Микромир. Атом водорода и молекула воды

Мы живем на планете Земля, которая входит в солнечную
систему, Солнце вместе с сотнями миллионов других звезд образ\/ет нашу
галактику Млечный П ху ть, а миллиарды галактик образуют Вселеннхтю.
Все эти объекты имеют громадные размеры и образуют мегамир (рис. 2.7),

Рис. 2.7.
Мегамир. Солнечная система
Контрольные
вопросы
1.
Приведите примеры
перехода от хаоса к порядку (увеличения информации) в окружающем мире.
2.
Приведите примеры
перехода от порядка к хаосу (уменьшения информации) в окружающем мире.
2.1.2. Информация в биологии
Процесс увеличения информации характерен для открыт ых,
обменивающихся веществом и энергией с окружающей средой, саморазвивающихся
систем живой природы (белковых молекул, организмов, популяций животных и т.
д.). В Процессе эволюции живой природы идет саморазвитие, т. е. ПОвьпиение
сложности и разнообразия живых организмов, а следовательно, увеличение
информации, понимаемой как м еоа упорядоченности элементов системы.
Информационные сигналы. В биологии, которая изучает живую
природу, понятие «информация» связывается с целесообразным поведением живых
организмов. Такое поведение строится на основе получения и использования
организмом информации об окружающей среде в форме информационных сигналов.
Информационные сигналы могут иметь различную физическую или химическую природу:
звук, свет, запах и другие.
Простейшие (например, амеба) могут получать информацию
лишь о химическом составе и температуре окружающей среды. Причем информация
может быть получена только о ближайших областях окружающей среды путем
непосредственного контакта простейшего со средой.
Человек воспринимает информацию об окружающем мире с помощью
органов чувств (зрения, слуха, обоняния, осязания и вкуса), причем может это
делать на большом расстоянии. Чувствительные нервные окончания органов чувств
(рецепторы) воспринимают воздействие (например, на глазном дне колбочки и
палочки реагируют на воздействие световых лучей) и передают его нейронам
(нервным клеткам), цепи которых составляют нервную систему.

Нейрон может находиться в двух состояниях: невозбужденном или возбужденном.
Возбужденный нейрон генерирует электрический импульс, который передается по
нервной системе. В нервной системе происходит кодирование и передача информации
с помощью двух состояний нейрона: нет импульса, есть импульс.
В этом случае сами состояния нейрона можно рассматривать как
знаки некоторого алфавита нервной системы, с помощью которого происходит
передача информации.
Генетическая информация. Понятие «информация» в биологии
используется также в связи с исследованиями механизмов наследственности.
Генетическая информация передается по наследству и хранится во всех клетках
живых организмов. Гены представляют собой сложные молекулярные структуры,
содержащие информацию о строении живых организмов. Последнее обстоятельство позволило
проводить научные эксперименты по клонированию, т. е. созданию точных копий
организмов из одной клетки.
Общая
биология 10—11
Генетическая информация определяет строение и развитие
живых организмов и передается по наследству.
Хранится генетическая информация в клетках организмов в
структуре молекул ДНК (дезоксирибонуклеиновой кисЛОТЫ). Молекула ДНК (рис. 2.8)
состоит из двух скрученных друг с другом в спираль цепей, построенных из
четырех нуклеоТИДОВ: А, G, Т и С, которые образуют генетический код.

Рис. 2.8.
Молекула ДНК

Молекула ДНК человека включает
в себя около З миллиардов пар нуклеотидов. В ней закодирована вся информация об
организме человека: его внешность, предрасположенность к болезням, способности
и т. д.

В живых организмах информация передается и хранится с
помощью объектов различной физической природы (состояние нейрона, нуклеотиды в
молекуле ДНК), которые могут рассматриваться как знаки биологических алфавитов.

Контрольные вопросы
1. Какова физическая природа знака при
представлении информации в нервной системе? В генетическом коде?
2.1.3. Информация в общественных науках
Социально-значимые свойства информации. Человек
существо социальное, для общения с другими людьми он должен обмениваться с ними
информацией, причем обмен информацией всегда производится на определенном
языке: русском, английском и т. д. Участники дискуссии должны владеть тем
языком, на котором ведется общение, тогда информация будет понятной всем
участникам обмена информацией.
Информация должна быть полезной, тогда дискуссия приобретает
практическую ценность. Бесполезная информация создает информационный шум,
который затрудняет восприятие полезной информации. Примерами передачи и
получения бесполезной информации могут служить некоторые конференции и чаты в
Интернете.
Широко известен термин «средства массовой информации»
(газеты, радио, телевидение), которые доводят информацик) до каждого члена
общества. Такая информация должна быть достоверной и актуальной. Недостоверная
информация вводит членов общества в заблуждение и может быть причиной
возникновения социальных потрясений. Неактуальная информация бесполезна и
поэтому никто, кроме историков, не читает прошлогодних газет.
Для того чтобы человек мог правильно ориентироваться в
окружающем мире, информация должна быть полной и точной. Задача получения
полной и точной информации стоит перед наукой. Овладение научными знаниями в
процессе обучения позволяет человеку получать полную и точную информацию о
природе, обществе и технике.

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

процесс
познания
Рис. 2.9.
Знание и незнание
он ощущает недостаток знаний, и тем больше
граница нашего незнания, мерой которого в этой модели является длина
окружности.
Так, объем знаний выпускника школы гораздо больше, чем объем
знаний первоклассника, однако и граница его незнания существенно больше.
Действительно, первоклассник ничего не знает о законах физики и его это не
очень волнует, тогда как выпускник школы при подготовке к экзаменам по физике
может обнаружить, что существуют физические законы, которые он не знает или не
понимает.
Информацию, которую получает человек, можно считать мерой
уменьшения неопределенности знания. Если некоторое сообщение приводит к уменьшению
неопределенности нашего знания, то можно говорить, что такое сообщение содержит
информацию.

Например, после сдачи экзамена по информатике вы мучаетесь неопределенностью,
вы не знаете, какую оценку получили. Наконец, экзаменационная комиссия
объявляет результаты экзамена и вы получаете сообщение, которое приносит полную
определенность, теперь вы знаете свою оценку. Происходит переход от незнания к
полному знанию, значит сообщение экзаменационной комиссии содержит информацию.
Контрольные
вопросы
1.
Какие социально-значимые
свойства информации можно выделить?
2.
Как можно
представить процесс познания?
2.1.4. Информация в кибернетике
В кибернетике (науке об управлении) понятие «информация»
используется для описания процессов управления в сложных системах (живых организмах
или технических УСТР0йствах). Жизнедеятельность любого организма или нормальное
функционирование технического устройства связано с процессами управления,
благодаря которым поддерживаются в необходимых пределах значения его
параметров. Так для поддержания своей жизнедеятельности любой живой организм
постоянно получает информацию из внешнего мира с помощью органов чувств,
обрабатывает ее и управляет своим Поведением (например, перемещаясь в
пространстве, избегает опасности).

В процессе управления полетом самолета в режиме автопилота
бортовой компьютер получает информацию от датчиков (скорости, высоты и т. д.),
обрабатывает ее и передает команды на исполнительные механизмы, изменяющие
режим полета (закрылки, клапаны, регулирующие работу двигателей, и т. д.).
В любом процессе управления всегда происходит взаимодействие
двух объектов — управляющего и управляемого, которые соединены каналами прямой
и обратной связи. По каналу прямой связи передаются управляющие сигналы, а по
каналу обратной связи информация о состоянии управляемого объекта.
Разомкнутые системы управления. Если в процессе управления
не учитывается состояние управляемого объекта и обеспечивается управление
только по прямому каналу (от управляющего объекта к управляемому), то такие
системы управления называются разомкнутыми. Информационную модель разомкнутой
системы управления можно наглядно представить с помощью следующей схемы (рис.
2.10).

Управляемый

Управляющий объект

канал
управления
Рис. 2.10.
Разомкнутая система управления
В качестве примера разомкнутой системы управления рассмотрим
процесс записи информации на гибкий диск, в котором управляющий объект
Контроллер дисковоДа изменяет состояние управляемого объекта Магнитной головки.
Для того чтобы информация могла быть записана,
необходимо установить магнитную головку дисковода над определенной
концентрической дорожкой диска. При записи информации на гибкие диски не
требуется особой точности установки (имеется всего 80 дорожек) и можно не
учитывать возможные (например, от нагревания) механические деформации носителя,
поэтому управляющий объект (Контроллер ДисковоДа) просто перемещает управляемый
объект (Магнитную головку) на определенное расстояние вдоль радиуса дискеты.
Замкнутые системы управления. В замкнутых системах
управления управляющий объект по прямому каналу управлгНИЯ производит
необходимые действия над объектом управления, а по каналу обратной связи
получает информацию о его реальных параметрах (рис. 2.11). Это позволяет осуществлять
управление с гораздо большей точностью.

Управляющий объект

канал управления канал обратной связи

Управляемый
Обье КТ

Рис. 2.11.
Замкнутая система управления
Информационную модель замкнутой системы управления можно
наглядно представить с помощью следующей схемы:

Примером использования замкнутой системы управления являются жесткие диски. При
записи информации на жесткие диски требуется особая точность установки
магнитных головок, так как на рабочей поверхности носителя имеются десятки
тысяч дорожек и необходимо учитывать механические деформации магнитного
носителя (например, в результате изменения температуры). Управляющий объект
(Контроллер жесткого Диска) постоянно получает информацию о реальном положении
управляемого объекта (Магнитных головок) по каналу обратной связи, а по прямому
каналу выставляет головки над поверхностью носителя с большой точностью.
Контрольные
вопросы
1. В чем состоит различие между разомкнутыми
и замкнутыми системами управления? Приведите примеры.
2.2. Количество информации как мера
уменьшения неопределенности знания

1.3.1. Количество информации как мера
уменьшения Информатика-8 неопределенности знания

Уменьшение неопределенности знания. Получение инФормации
можно связать с уменьшением неопределенности знания. Это позволяет
количественно измерять информацию, что чрезвычайно важно для информатики.
Рассмотрим вопрос об определении количества информации более подробно на
конкретных примерах.
Пусть у нас имеется монета, которую мы бросаем на ровную
поверхность. С равной вероятностью произойдет одно из двух возможных событий —
монета окажется в одном из двух положений: «орел» или «решка».
Можно говорить, что события
равновероятны, если при возрастающем числе опытов количества выпадений «орла» и
«решки» постепенно сближаются. Например, если мы бросим монету 10 раз, то
«орел» может выпасть 7 раз, а решка З раза, если бросим монету 100 раз, то
«орел» может выпасть 60 раз, а «решка» 40 раз, если бросим
монету 1000 раз, то «орел» выпадет 520 раз, а «решка» 480 и т. д. В итоге при
очень большой серии опытов количества выпадений «орла» и «решки» практически
сравняются.

Перед броском существует
неопределенность нашего знания (возможны два события), и как упадет монета,
предсказать невозможно. После броска наступает полная определенность, так как
мы видим (получаем зрительное сообщение), что монета в данный момент находится
в определенном положении (например, «орел»). Это сообщение приводит к
уменьшению неопределенности нашего знания в два раза, так как из двух возможных
равновероятных событий реализовалось одно (рис. 2.12).

Возможные события

Произошедшее событие

Рис. 2.12.
Возможные и произошедшее события
В окружающей действительности достаточно часто
встречаются ситуации, когда может произойти некоторое количество равновероятных
событий. Так, при бросании равносторонней четырехгранной пирамиды существуют 4
равновероятных события, а при бросании шестигранного игрального кубика — 6
равновероятных событий.
Чем больше количество возможных событий, тем больше
начальная неопределенность нашего знания и соответственно тем большее
количество информации будет содержать сообщение о результатах опыта,
Единицы измерения количества информации. Для количественного
выражения любой величины необходимо определить единицу измерения. Так, для
измерения длины в качестве единицы выбран метр, для измерения массы — килограмм
и т. д. Аналогично, для определения количества информации необходимо ввести
единицу измерения.

1.3.2. Определение количества        Информатика и
ИКТ-8 информации

За единицу количества
информации принимается такое количество информации, которое содержит сообщение,
уменьшающее неопределенность знания в два раза. Такая единица названа бит.

Если вернуться к опыту с бросанием монеты, то здесь
неопределенность как раз уменьшается в два раза (из двух возможных событий
реализуется одно) и, следовательно, количество полученной информации равно 1
биту.
Минимальной единицей измерения количества информации
является бит, а следующей по величине единицей байт, причем
                              1 байт — 2 3 битов       8
битов.
В информатике система образования кратных единиц
измерения количества информации несколько отличается от принятых в большинстве
наук. Традиционные метрические системы единиц, например Международная система
единиц СИ, в качестве множителей кратных единиц использует коэффициент 10п
где п = З, 6, 9 и т. д., что соответствует десятичным приставкам «кило»
(10 3 ), «мега» (106 ), «гига» (10 9 ) и т. д.
Компьютер оперирует числами не в десятичной, а в двоИчной
системе счисления, поэтому в кратных единицах измеРения количества информации
используется коэффициент 2 п Так, кратные байту
единицы измерения количества информации вводятся следующим образом: 1 Кбайт = 2
10 байт    1024 байт; 1 Мбайт = 2 10 Кбайт 1024 Кбайт; 1
Гбайт = 2 10 Мбайт          1024 Мбайт.
Практическое задание «Перевод единиц измерения количества
информации». Произвести перевод количества информации с помощью
специализированной программы перевода единиц измерения (например, VersaVerter).
Перевод единиц измерения количества информации
1.
Запустить
программу VersaVerter (Перевод единиц измерения).
2.  В
открывшемся диалоговом окне программы выбрать вкладку Data.
З. В левом окне диалогового окна
выбрать исходную единицу измерения (например, gigabyte) и в текстовом поле
ввести числовое значение (например, 1).

После выбора в правом окне конечной единицы измерения (например, byte) в
тестовом поле появится числовое значение (в данном случае, 1 073 741 824) (рис.
2.13).

Рис. 2.13.
Перевод единиц измерения количества информации
Количество возможных событий и количество информации.
Существует формула, которая связывает между собой количество возможных событий
ЛУ и количество информации I:
 = 2 1
По этой формуле можно легко определить количество возможных
событий, если известно количество информации. Например, если мы получили 4 бита
информации, то количество возможных событий составляло
2 4 = 16
Наоборот, для определения количества информации, если
известно количество событий, необходимо решить показательное уравнение
относительно I.
Задание «Определение количества информации». Определить
количество информации, полученной вторым игроком после первого хода первого
игрока, в игре «крестики—нолики» на поле размером 8х8 клеток.
Перед первым ходом существует 64 возможных события (64
различных вариантов расположения «крестика»), тогда уравнение (2.1) принимает
вид:
64
Так как 64

Таким образом, I = 6 битов, т. е. количество информации, полученной вторым
игроком после первого хода первого игрока, составляет 6 битов.
Контрольные вопросы
1.  Приведите примеры уменьшения
неопределенности знания после получения информации о произошедшем событии.
2.  Как зависит количество информации от
количества возможных событий?
З я
2,1. В рулетке общее количество лунок
равно 128. Какое количество информации мы получаем в зрительном сообщения об
остановке шарика в одной из лунок?
Компьюте ый рактикум
Windows-CD
2.1. С помощью программы перевода
единиц измерения выполнить практическое задание «Перевод единиц измерения
количества информации» .
2.2. Заполнить пропуски числами и
проверить правильность вычислений с помощью программы перевода единиц
измерения:
         а) 5 Кбайт            байт            бит;
          б) _ Кбайт               байт
- 12 288 бит;
          в) _ Кбайт              байт
= 2 13 бит;
           г) Гбайт = 1536
Мбайт              Кбайт;
д) 512 Кбайт - 2 байт - 2 бит.
2.3.
Алфавитный подход к определению
количества информации
Определение количества информации на основе уменьшения
неопределенности нашего знания рассматривает информацию с точки зрения
содержания, ее понятности и новизны для человека. С этой точки зрения в опыте
по бросанию МОНо ты одинаковое количество информации содержится и в зрительном
образе упавшей монеты, и в коротком сообщении «Орел», и в длинной фразе «Монета
упала на поверхность земли той стороной вверх, на которой изображен орел».

Однако при хранении и передаче информации с помощью технических устройств
целесообразно отвлечься от содержания информации и рассматривать ее как
последовательность символов — знаков (букв, цифр, кодов цветов точек
изображения и т. д.).
Набор символов знаковой системы (алфавит) можно
рассматривать как различные возможные состояния .-4 (события).
Тогда, если считать, что появление символов в сообщении
равновероятно, по формуле (2.1) можно рассчитать, какое количество информации
несет каждый символ. Информационная емкость знаков зависит от их количества в
алфавите (мощности алфавита): чем больше их количество, тем большее количество
информации несет один знак.
Так, информационная емкость буквы в русском алфавите, если
не использовать букву «ё», составляет:
32  5 битов.
На основании алфавитного подхода можно подсчитать количество
информации в сообщении 1с, для этого необходимо умножить количество информации,
которое несет один символ 1, на количество символов К в сообщении:
                                           с                                            (2.2)
Задание «Определение количества информации в тексте».
Система оптического распознавания символов позволяет преобразовывать
отсканированные изображения страниц документа в текстовый формат со скоростью 4
страницы в минуту и использует алфавит мощностью 65 536 символов. Какое
количество информации будет нести текстовый документ, каждая страница которого
содержит 40 строк по 50 символов, после 10 минут работы приложения?
По формуле (2.1) определим информационную емкость символа
алфавита:
                  65 536 — 2 I          2 16 =                —
16 битов.
По формуле (2.2) определим количество информации на
странице:
16 битов х 40 х 50 32 ООО битов = 4000
байтов. Определим количество информации, которое будет нести текстовый
документ:

         4000 байтов х 4 х 10160 ООО байтов         156 Кбайт.

2.2. Пользователь компьютера может
вводить в минуту 200 знаков. Мощность используемого алфавита равна 256. Какое
количество информации может ввести пользователь в компьютер за 5 минут?
2.4. Формула Шеннона
Существует множество ситуаций, когда возможные события имеют
различные вероятности реализации. Например, если монета несимметрична (одна
сторона тяжелее другой), то при ее бросании вероятности выпадения «орла» и
«решки» будут различаться.
Формулу для вычисления количества информации для событий с
различными вероятностями предложил К. Шеннон в 1948 году. В этом случае
количество информации определя-

ется по формуле:
                                    I = —EPi log2 Р о                                      (2.3)
где I         количество
информации,
N  количество возможных событий, вероятности
отдельных событий.
                                              Логарифмы                   Алгебра-11
Для частного, но широко распространенного и рассмотренного
выше случая, когда события равновероятны (А = 1/N), величину количества
информации I можно рассчитать по формуле:
                                            1
                               I = —E—log2                             (2.4)
i=1
Задание «Бросание пирамидки». Определить количество
информации, которую мы получаем в результате бросания несимметричной и
симметричной пирамидок.
При бросании несимметричной четырехгранной пирамидки
вероятности отдельных событий равны:
1/2, Р2  1/8.
Количество информации, которую мы получим после бросания
несимметричной пирамидки, можно рассчитать по формуле (2.3):
I — — (1/2•log21/2 + 1/4•log21/4 +
1/8•log21/8 + 1/84051/8) битов = = (1/2•logP + 1/4•log24 + 1/8•log28 +
1/8•log28) битов

(1/2 + 2/4 + 3/8 + 3/8) битов = 14/8
битов = 1,75 бита.
При бросании симметричной четырехгранной пирамидки
вероятности отдельных событий равны между собой:

Количество информации, которую мы получим после бросания
симметричной пирамидки, можно рассчитать по формуле (2.4):
2 бита.
Таким образом, при бросании симметричной пирамидки, когда
события равновероятны, мы получим большее количество информации (2 бита), чем
при бросании несимметричной пирамидки, когда события неравновероятны (1,75
бита).

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

В теории информации доказано, что
максимальное количество информации несет сообщение, в котором вероятности
появления всех знаков одинаковы.
Количество информации, которое несет
знак, зависит от вероятности его получения. Если получатель заранее точно
знает, какой знак придет, то полученное количество информации будет равно О.
Наоборот, чем менее вероятно получение знака, тем больше его информационная
емкость.
В русской письменной речи частота
использования букв в тексте различна, так в среднем на 1000 знаков осмысленного
текста приходится 200 букв «а» и в сто раз меньшее количество буквы «ф» (всего
2). Таким образом, с точки зрения теории информации, информационная емкость
знаков русского алфавита различна (у буквы «а» она наименьшая, а у буквы «ф» —
наибольшая).

Выбор правильной стратегии в игре «Угадай число». На получении максимального
количества информации строится выбор правильной стратегии в игре «Угадай
число», в которой первый участник загадывает целое число (например, 3) из
заданного интервала (например, от 1 до 16), а второй должен «угадать»
задуманное число. Если рассмотреть эту игру с информационной точки зрения, то
начальная неопределенность знания для второго участника составляет 16 возможных
событий (вариантов загаданных чисел).
При правильной стратегии интервал чисел всегда должен
делиться пополам, тогда количество возможных событий (чисел) в каждом из
полученных интервалов будет одинаково и их отгадывание равновероятно. В этом
случае на каждом шаге ответ первого игрока («Да» или «Нет») будет нести
максимальное количество информации (1 бит).
Как видно из табл. 2.1, угадывание числа З произошло за
четыре шага, на каждом из которых неопределенность знания второго участника
уменьшалась в два раза за счет получения сообщения от первого участника,
содержащего 1 бит информации. Таким образом, количество информации, необходимой
для отгадывания одного из 16 чисел, составило 4 бита.
Таблица 2. 1. Информационная модель игры «Угадай число»

Вопрос второго участника

Ответ первого участника

Неопределенность знания
  (количество возможных событий )

Полученное количество информации

16

Число больше 8?

Нет

8

Число больше 4?

4

Число больше 2?

да

2

Это число З?

да

1

Практическое задание «Определение количества информации». В
непрозрачном мешочке хранятся 10 белых, 20 красных, 30 синих и 40 зеленых
шариков. Какое количество информации будет содержать зрительное сообщение о
цвете вынутого шарика?
Так как количество шариков различных цветов неодинаково, то
вероятности зрительных сообщений о цвете вынутого из мешочка шарика также
различаются и равны количеству шариков данного цвета, деленному на общее
количество шариков:

                                                                                з                         с
События неравновероятны, поэтому для определения количества
информации, содержащейся в сообщении о цвете шарика, воспользуемся формулой
(2.3):

Для вычисления этого выражения, содержащего логарифмы,
воспользуемся компьютерным калькулятором.

Определение количества информации
1.   Запустить
компьютерный калькулятор Wise Calculator.
2.   Ввести
выражение и получить результат (рис. 2.14). Таким образом, I 1,85 бита.

Рис. 2.14.
Вычисление количества информации
вопросы
1. В каком случае количество
информации, полученной о событии, достигает максимального значения?
З
2.3. Какое количество вопросов
достаточно задать вашему собеседнику, чтобы наверняка определить:
•
день недели, в
котором он родился;
•
месяц, в котором
он родился;
•
число, в которое
он родился?
Компьюте ый рактикум
2.3. Выполнить
практическое задание «Определение количества информации» для следующих данных:
а) 25 белых, 25 красных, 25 синих и 25 зеленых
шариков;
б) 30 белых, 30 красных, 30 синих и 10 зеленых
шариков.
2.5. Кодирование текстовой, графической и звуковой информации
Двоичное кодирование текстовой
информации в компьютере

Для представления текстовой информации (прописные и строчные буквы русского и
латинского алфавитов, цифры, знаки и математические символы) достаточно 256
различных знаков. По формуле (2.1) можно вычислить, какое количество информации
необходимо, чтобы закодировать каждый знак:
             ЛТ = 2/            256  2 1 I = 8
битов.
Для обработки текстовой информации на компьютере
необходимо представить ее в двоичной знаковой системе. Каждому знаку необходимо
поставить в соответствие уникальный 8-битовый двоичный код, значения которого
находятся в интервале от

Присвоение знаку конкретного двоичного кода — это вопрос
соглашения, которое фиксируется в кодовой таблице. К сожалению, в настоящее
время существуют пять различных кодовых таблиц для русских букв (Windows,
MS-DOS, КОИ-8, Мас, ISO), поэтому тексты, созданные в одной кодировке, не будут
правильно отображаться в другой.
В последние годы широкое распространение получил новый
международный стандарт кодирования текстовых символов Unicode, который отводит
на каждый символ 2 байта (16 битов). По формуле (2.1) можно определить
количество символов, которые можно закодировать:
                                   ЛТ = 2 1 — 216      65
536.
Такого количества символов оказалось достаточно, чтобы
закодировать не только русский и латинский алфавиты, цифры, знаки и
математические символы, но и греческий, арабский, иврит и другие алфавиты.
Двоичное кодирование графической информации в
компьютере
Графические изображения из аналоговой (непрерывной) формы в
цифровую (дискретную) преобразуются путем пространственной дискретизации.
Изображение разбивается на отдельные маленькие фрагменты (точки, или пиксели),
причем каждый элемент может иметь свой цвет (красный, зеленый, синий и т. д.).

Пиксель — минимальный участок изображения, которому
независимым образом можно задать цвет.

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

Разрешающая способность растрового
изображения определяется количеством точек по горизонтали и вертикали на
единицу длины изображения.

При одних и тех же размерах экрана чем меньше размер точки,
тем больше разрешающая способность (больше количество строк растра и точек в
строке), и, соответственно, выше качество изображения. Величина разрешающей
способности обычно выражается в dpi (dot per inch — точек на дюйм), т. е. в
количестве точек в полоске изображения длиной один дюйм (1 дюйм = 2,54 см).
В процессе дискретизации могут использоваться различные
палитры цветов, т. е. наборы цветов, которые могут принимать точки изображения.
Каждый цвет можно рассматривать как возможное состояние точки. Количество
цветов N в палитре и количество информации 1, необходимое для кодирования цвета
каждой точки, связаны между собой и могут быть вычислены по формуле (2.1).

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

Наиболее распространенными значениями глубины цвета при
кодировании цветных изображений являются 4, 8, 16 или 24 бита на точку. Можно
определить количество цветов в 24-битовой палитре:
                               лк = 2 1           224
_ 16 777 216.
Двоичное кодирование звуковой
информации в компьютере
Звук представляет собой распространяющуюся в воздухе, воде
или другой среде волну с непрерывно меняющейся интенсивностью и частотой.
Человек воспринимает звуковые волны (колебания воздуха) с
помощью слуха в форме звуков различной громкости и тона, чем больше
интенсивность звуковой волны, тем громче звук, чем больше частота волны, тем
выше тон звука.
Для того чтобы компьютер мог обрабатывать реальный
(записанный) звук, непрерывный звуковой сигнал должен быть преобразован в
цифровую дискретную форму с помощью временнбй дискретизации. Непрерывная
звуковая волна разбивается на отдельные маленькие временн%е участки, причем для
каждого такого участка устанавливается определенная величина интенсивности
звука.
Для записи аналогового звука и его преобразования в
цифровую форму используется микрофон, подключенный к звуковой плате. Качество
полученного цифрового звука зависит от количества измерений уровня громкости
звука в единицу времени, т. е. частоты дискретизации. Чем большее количество
измерений производится за 1 секунду (чем больше частота дискретизации), тем
точнее «лесенка» цифрового звукового сигнала повторяет кривую аналогового
сигнала.

Частота дискретизации звука — это количество измерений
громкости звука за одну секунду.

Частота дискретизации звука может лежать в диапазоне
от 8000 до 48 ООО измерений громкости звука за одну секунду.
Каждому уровню дискретизации присваивается определенное
значение уровня громкости звука. Уровни громкости звука можно рассматривать как
набор возможных состояний N, для кодирования которых необходимо определенное
количество информации I, которое называется глубиной кодирования звука.

Глубина кодирования звука — это
количество информадии, которое необходимо для кодирования дискретных уровней
громкости цифрового звука.

Если известна глубина кодирования, то количество уровней
громкости цифрового звука можно рассчитать по формуле (2.1). Пусть глубина
кодирования звука составляет 16 битов, тогда количество уровней громкости звука
равно лт - 2 1 = 2 16 - 65 536.

Чем больше частота дискретизации и глубина кодирования звука, тем более
качественным будет звучание оцифрованного звука. Самое низкое качество
оцифрованного звука, соответствующее качеству телефонной связи, будет при
частоте дискретизации 8000 раз в секунду, глубине кодирования 8 битов и записи
одной звуковой дорожки (режим моно). Высокое качество оцифрованного звука,
соответствующее качеству аудио-С]), обеспечивается при частоте дискретизации 48
ООО раз в секунду, глубине кодирования 16 битов и записи двух звуковых дорожек
(режим стерео).
Контрольные вопросы
1.  Чем различаются между собой кодировки
русского алфавита?
2.  Объясните, как разрешение и глубина
цвета влияют на качество изображения .
З. Объясните, как частота
дискретизации и глубина кодирования влияют на качество цифрового звука.
з я
2.4. Представьте в форме десятичного
кода слово «бит» в кодировках Windows, MS-DOS, КОИ-8, Мас, ISO. Воспользуйтесь
Windows-CD для получения кодировочных таблиц.
2.5. Сканируется цветное изображение
стандартного размера А4 (21х29,7 см). Разрешающая способность сканера 1200 dpi,
глубина цвета 24 бита. Какой информационный объем будет иметь полученный
графический файл?
2.6. Определить длительность звукового
файла, который уместится на гибкой дискете 3,5” (для хранения данных на дискете
выделяется 2847 секторов объемом 512 байтов каждый):
•  при низком качестве звука: моно, 8
битов, 8 кГц;
•  при высоком качестве звука: стерео,
16 битов, 48 кГц.
2.6. Хранение информации
Информация, закодированная с помощью естественных и
формальных языков, а также информация в форме зрительных и звуковых образов
хранится в памяти человека. Однако для долговременного хранения информации, ее
накопления и передачи из поколения в поколение используются носители
информации.
Материальная природа носителей информации может быть
различной: молекулы ДНК, которые хранят генетическую информацию; бумага, на
которой хранятся тексты и изображения; магнитная лента, на которой хранится
звуковая информация; фото- и кинопленки, на которых хранится графическая
информация; микросхемы памяти, магнитные и оптические диски, на которых
хранятся программы и данные в компьютере, и т. д.

По оценкам специалистов, объем информации, фиксируемой на различных носителях,
превышает один эксабайт в год (10 18 байт/год). Примерно 8094 всей
этой информации хранится в цифровой форме на магнитных и оптических носителях и
только 2094 — на аналоговых носителях (бумага, магнитные ленты, фото- и
кинопленки). Если всю записанную в 2005 году информацию распределить на всех
жителей планеты, то на каждого человека придется по ЗОО Мбайт.
Информационная емкость носителей информации. Носители
информации характеризуются информационной емкостью, т. е. количеством
информации, которое они могут хранить. Наиболее информационно емкими являются
молекулы ДНК, которые имеют очень малый размер и плотно упакованы. Это
позволяет хранить огромное количество информации (до 10 21 бит в 1
см 3 ), что дает возможность организму развиваться из
одной-единственной клетки, содержащей всю необходимую генетическую информацию.
Современные микросхемы памяти позволяют хранить в 1 см з
до 10 10 битов информации, однако это в 100 миллиардов раз
меньше, чем в ДНК. Можно сказать, что современные технологии пока существенно
проигрывают биологической эволюции.
Однако если сравнивать информационную емкость традиционных
носителей информации (книг) и современных компьютерных носителей, то прогресс
очевиден. На каждом гибком магнитном диске может храниться книга объемом около
600 страниц, а на жестком магнитном диске или DVD — целая библиотека,
включающая десятки тысяч книг.
Надежность и долговременность хранения информации. Большое
значение имеет надежность и долговременность хранения информации. Большую
устойчивость к возможным повреждениям имеют молекулы ДНК, так как существует
механизм обнаружения повреждений ее структуры (мутаций) и самовосстановления.
Надежность (устойчивость к повреждениям) достаточно
высока у аналоговых носителей, повреждение котоРЫХ приводит к потери информации
только на поврежденном участке. Поврежденная часть фотографии не лишает
возможности видеть оставшуюся часть, повреждение участка магнитной ленты
приводит лишь к временному пропаданию звука и т. д.

Цифровые носители гораздо более чувствительны к повреждениям, даже утеря одного
бита данных на магнитном или оптическом дисках может привести к невозможности
считать файл, т. е. к потере большого объема данных. Именно поэтому необходимо
соблюдать правила эксплуатации и хранения цифровых носителей информации.
Наиболее долговременным носителем информации является
молекула ДНК, которая в течение десятков тысяч лет (человек) и миллионов лет
(некоторые живые организмы) сохраняет генетическую информацию данного вида.
Аналоговые носители способны сохранять информацию в течение
тысяч лет (египетские папирусы и шумерские глиняные таблички), сотен лет
(бумага) и десятков лет (магнитная лента, фото- и кинопленка).
Цифровые носители появились сравнительно недавно, й поэтому
об их долговременности можно судить только по оценкам специалистов. По
экспертным оценкам, при правильном хранении оптические носители способны
хранить информацию сотни лет, а магнитные десятки лет.
Контрольные вопросы
1. Какие достоинства и недостатки
имеют аналоговые и цифровые носители информации?
2.7.
Кодирование числовой информации.
Системы счисления
«Всё есть число», — говорили древнегреческие философы,
ученики Пифагора, подчеркивая необычайно важную роль чисел в практической
деятельности. Известно множество способов представления чисел. Числа
записываются с использованием особых знаковых систем, которые называются
системами счисления. Алфавит систем счисления состоит из символов, которые
называются цифрами.
Система счисления — это знаковая
система, в которой числа записываются по определенным правилам с помощью
символов некоторого алфавита, называемых цифрами.

Все системы счисления делятся на две большие группы:
непозиционные и позиционные.

2.7.1. Непозиционные системы счисления
В непозиционных системах счисления количественный эквивалент
каждой цифры не зависит от ее положения (места, позиции) в записи числа.
Единичная система счисления. Как только люди начали считать,
у них появилась потребность в записи чисел. Находки археологов на стоянках
первобытных людей свидетельствуют о том, что первоначально количество предметов
отображали равным количеством каких-либо значков (бирок): зарубок, черточек,
точек.
Позже, для облегчения счета, эти значки стали группировать
по три или по пять. Такая система записи чисел называется единичной (унарной),
так как любое число в ней образуется путем повторения одного знака,
символизирующего единицу. Отголоски единичной системы счисления встречаются и
сегодня. Так, чтобы узнать, на каком курсе учится курсант военного училища,
нужно сосчитать, какое количество полосок нашито на его рукаве.
Древнеегипетская непозиционная система счисления. Примерно
в третьем тысячелетии до нашей эры древние египтяне придумали свою числовую
систему, в которой для обозначения ключевых чисел 1, 10, 100единицы и т. д.
использовались специальные знач-десятки ки — иероглифы (рис. 2.15).сотни
Все остальные числа составлялись изтысячи

этих ключевых при помощи операции

сложения. Система счисления Древнего

Рис. 2.15. Алфавит

Египта является десятичной,
  но непозиЦИОННОЙ.
Например, чтобы изобразить число

древнеегипетской системы счисления

3252, рисовали три цветка лотоса (три
тысячи), два свернутых пальмовых листа (две сотни), пять дуг (пять десятков) и
два шеста (две единицы). Величина числа не зависела от того, в каком порядке
располагались составляющие его знаки: их можно было записывать сверху вниз,
справа налево или в произвольном порядке.
Римская система счисления. Примером
непозиционной системы, которая сохранилась до наших дней, может служить система
счисления, которая применялась более двух с половиной тысяч лет назад в Древнем
Риме. В основе римской системы счисления лежали знаки (один палец) для числа 1,
V (раскрытая ладонь) для числа 5, Х (две сложенные ладони) для 10, а для
обозначения чисел 100, 500 и 1000 стали применять первые буквы соответствующих
латинских слов (Сепtum — сто, Demimille — половина тысячи, Mille — тысяча).

Чтобы записать число, римляне разлагали его на сумму тысяч, полутысяч, сотен,
полусотен, десятков, пятков, единиц. Например, десятичное число 28
представляется следующим образом:
                  xxvIII     10
+ 10 + 5 + 1           1
(два десятка, пяток, три единицы).
Для записи чисел римляне использовали не только сложение, но
и вычитание. При этом применялось следующее правило: каждый меньший знак,
поставленный справа от больШеГО, прибавляется к его значению, а каждый меньший
знак, поставленный слева от большего, вычитается из него.
           Например, IX —
обозначает 9, XI            обозначает 11.
Десятичное число 99 имеет следующее представление:
XCIX = -10 + 100
Практическое задание «Римская система счисления». Перевести
числа из римской системы счисления в десятичную и из десятичной в римскую с
использованием компьютерного калькулятора NumLock Catcutator.
Римская система счисления
1.
Запустить
компьютерный калькулятор NumLock Calculator.
2.  Установить
минималистский вид калькулятора командой [Вид калькулятора-Универсальный].
З. Установить формат исходных данных
командой [Формат чисел в выражении-Римский] и формат результата командой
[Формат результата-Десятичный].
4.   В окне ввода
данных ввести римское число, например XXVIII, и нажать клавишу со знаком «=» .
Появится результат, число 28, записанное в десятичной системе счисления (рис.
2.16).

Рис. 2.16.
Перевод из римской в десятичную систему счисления
5.

Установить формат исходных данных командой [Формат чисел в
выражении-Десятичный] и формат результата командой [Формат результата-Римский].
6.   В окне ввода
данных ввести десятичное число, например 99, и нажать клавишу со знаком «=» .
Появится результат, число XCIX, записанное в римской системе счисления (рис.
2.17).

Рис. 2.17.
Перевод из десятичной в римскую систему счисления
Римскими цифрами пользовались очень долго. Еще 200 лет назад
в деловых бумагах числа должны были обозначаться римскими цифрами (считалось,
что обычные арабские цифры легко подделать). Римская система счисления сегодня
используется в основном для наименования знаменательных дат, томов, разделов и
глав в книгах.
Алфавитные системы счисления. Более совершенными
непозиционными системами счисления были алфавитные системы. К числу таких
систем счисления относились греческая, славянская, финикийская и другие. В них
числа от 1 до 9, десятки (от 10 до 90) и сотни (от 100 до 900) обозначались
буквами алфавита.
В алфавитной системе счисления Древней Греции числа 9
обозначались первыми девятью буквами греческого алфавита, например ос = 1, р =
2, у = З и т. д. Для обозначения чисел 10, 20, 90 применялись следующие 9 букв
(t 10, 30, = 4 и т. д.), а для обозначения чисел
100, 200, . , 900 последние 9 букв (р - 100, 200, зоо и т. д.). Например, число
141 обозначалось рва.

У славянских народов числовые значения букв установились в порядке славянского
алфавита, который использовал сначала глаголицу, а затем кириллицу (рис. 2.18).

Буквы кириллицы

Цифровое значение кириллицы

Буквы глаголицы

Цифровое
значение глаголицы

Кириллическое название

ж
н

2
4
5
6
7
8

З
т

2 з 4
5
6
7
8
9
10
20

Аэъ
Буки
Гаагоаь добро
Есть
Живђте
Мио
Земия
Иже

Рис. 2.18.
Древнерусская алфавитная система счисления
В России славянская нумерация сохранилась до конца XVII
века. При Петре I возобладала так называемая арабская нумерация, которой мы
пользуемся и сейчас. Славянская нумерация сохранилась только в богослужебных
книгах.
Непозиционные системы счисления имеют ряд СУЩеСТвенных
недостатков:
1.
Существует постоянная потребность введения новых знаков для
записи больших чисел.
2.
Невозможно представлять дробные и отрицательные числа.
3.
Сложно выполнять арифметические операции, так как не существует
алгоритмов их выполнения.
Контрольные вопросы
1. Существуют ли алгоритмы проведения
арифметических действий в непозиционных системах счисления?

З аЛ'а.з Е,й я

2.7. Некоторые римские цифры легко
изобразить, используя палочки или спички. Ниже написано несколько неверных
равенств. Как можно получить из них верные равенства, если разрешается
переложить с одного места на другое только одну спичку (палочку)?
VII - V = Хл

VI - IX = III
Компьюте ый рактикум
Windows-CD
2.4. С помощью компьютерного
калькулятора (например, NumLock Calculator) выполнить практическое задание
«Римская система счисления» .
2.7.2. Позиционные системы счисления
В позиционных системах счисления количественный эквивалент
(значение) цифры зависит от ее места (позиции) в записи числа. Позиция цифры в
числе называется разрядом. Разряд числа возрастает справа налево, от младших
разрядов к старшим.
Основанием позиционной системы счисления называется целое
число, которое равно количеству цифр, используемых для изображения чисел в
данной системе счисления. Основание показывает, во сколько раз изменяется
количественное значение цифры при перемещении ее в младший или старШий разряд.
Позиционные системы с произвольным основанием. Возможно
использование множества позиционных систем счисления, основание которых равно
или больше 2. В системах счисления с основанием q ф-ичная система счисления)
числа в развернутой форме записываются в виде суммы ряда степеней основания q с
коэффициентами, в качестве которых выступают цифры О, 1, q—1. Для записи дробей
используются разряды с отрицательными значениями степеней основания.
В развернутой форме число в системе счисления с основанием q
ф-ичная система счисления) записывается следующим образом:
А = ап_1 •qn— l +
ап_2 •qn —2+...+ ao•qO+  + ...+ (2.5) или
(7
Здесь: А число в фичной системе
счисления, основание системы счисления,

а. —цифры, принадлежащие алфавиту данной системы счисления, п число целых
разрядов числа, число дробных разрядов числа.
Коэффициенты а. в этой записи являются цифрами числа,
записанного в фичной системе счисления. Свернутой формой записи числа
называется запись в виде:
01000-1...а
Свернутой формой записи чисел мы и пользуемся в повседневной
жизни, ее называют естественной или цифровой.
Десятичная система счисления
Основание: q - 10.
Алфавит: О, 1, 2, З, 4, 5, 6, 7, 8, 9.
Число в десятичной системе счисления записывается в виде
суммы числового ряда степеней основания (в данном случае 10), в качестве
коэффициентов которых выступают цифры данного числа. В развернутой форме запись
числа „410 , которое содержит п целых разрядов числа и т дробных разрядов
числа, производится следующим образом:
 ап 1 • 1 О п — 1 + ап 2' 1 О п — 2
+ + ао•1О [1] +
Коэффициенты at в этой записи являются цифрами десятичного
числа, которое в свернутой форме записывается следующим образом:
А 10 ...аро,а-1...а
Например, десятичное число 555,5510 в развернутой форме
будет записываться следующим образом:
555,5510 _
5-102 + 5-101 + 5-100 + 5-10-1 + 5-10-2
Умножение или деление десятичного числа на 10 (величину
основания) приводит к перемещению запятой, отделяющей целую часть от дробной на
один разряд вправо или влево. Например:
                                  555,5510       10
= 5555,510,
                                  555,5510      10       55,55510.
Двоичная система счисления
Основание: q
Алфавит: О, 1.

Число в двоичной системе счисления записывается в виде суммы числового ряда
степеней основания (в данном случае 2), в качестве коэффициентов которых
выступают цифры данного числа. В развернутой форме запись числа „42 , которое
содержит п целых разрядов числа и т дробных разрядов числа, производится
следующим образом:
              142 = ап 1
•2п-1 + а п—2.2п-2 +        + а 0.20 +                   (2.10)

Коэффициенты at в этой записи являются цифрами двоичного
числа (О или 1), которое в свернутой форме записывается следующим образом:
                                                    (2.11)
Умножение или деление двоичного числа на 2 (величину
основания) приводит к перемещению запятой, отделяющей целую часть от дробной на
один разряд вправо или влево. Например:
101,012 1010,12;
101,012 . 10,1012.
Восьмеричная система счисления
Основание: q
Алфавит: О, 1, 2, З, 4, 5, 6, 7.
Число в восьмеричной системе счисления записывается в виде
суммы числового ряда степеней основания (в данном случае 8), в качестве
коэффициентов которых выступают цифры данного числа. В развернутой форме запись
числа 148 , которое содержит п целых разрядов числа и т дробных разрядов числа,
производится следующим образом:
                 = а .8n—l +                                            +                 (2.12)
0-1
Коэффициенты ai в этой записи являются цифрами восьмеричного
числа, которое в свернутой форме записывается следующим образом:
                  „48 =
ап_1а    чаод-1...а                        (2.13)
Умножение или деление восьмеричного числа на 8 (величину
основания) приводит к перемещению запятой, отделяющей целую часть от дробной на
один разряд вправо или влево.
Например:
567,128 • 8 = 5671,28;
                                    567,128               56,714.
Шестнадцатеричная система счисления
Основание: q 16.

Алфавит: О, 1, 2, З, 4, 5, 6, 7, 8, 9, А, В, С, D, Е, Е.
Здесь только десять цифр из шестнадцати имеют общепринятое
обозначение О, 1, . 9. Для записи остальных цифр (10, 11, 12, 13, 14 и 15)
обычно используются первые шесть букв латинского алфавита.
Число в шестнадцатеричной системе счисления записывается в.
виде суммы числового ряда степеней основания (в данном случае 16), в качестве
коэффициентов которых выступают цифры данного числа. В развернутой форме запись
числа „416 , которое содержит п целых разрядов числа и т дробных разрядов
числа, производится следующим образом:
                 ап 1.16п-1 + ап 2.16п-2 + + аО .160
+                     (2.14)
-1
Коэффициенты ај в этой записи являются цифрами восьмеричного
числа, которое в свернутой форме записывается следующим образом:
                 А 16 а п- 10    ч а т а -1
а                             (2.15)
Умножение или деление шестнадцатеричного числа на 16
(величину основания) приводит к перемещению запятой, отделяющей целую часть от
дробной на один разряд вправо или влево. Например:
ABC,DE16 16 - ABCD,E16, АВС,РЕ16 : 16
- AB,CDE16
Контрольные вопросы
1. Чем отличаются позиционные системы
счисления от непозицион2. Какое количество цифр используется в вчной системе
счисления?

2.8. Во сколько раз увеличатся числа
10,1, о, 10,12 , 64,58 , 39,F16 при переносе запятой на один знак вправо?

2.9. При переносе запятой на два
знака вправо число 11,11 увеличилось в 4 раза. Чему равен х?
2.8. Перевод чисел из одной системы счисления в другую
2.8.1.
Перевод целых чисел из десятичной системы
в двоичную, восьмеричную и шестнадцатеричную
Перевод чисел из десятичной системы в двоичную,
восьмеричную и шестнадцатеричную может осуществляться различными способами.
Рассмотрим один из алгоритмов перевода на примере перевода чисел из десятичной
системы в двоичную, при этом необходимо учитывать, что алгоритмы перевода целых
чисел и правильных дробей будут различаться.
Вывод алгоритма перевода целых
десятичных чисел в двоичную систему счисления
Пусть А — целое десятичное число, разложим его в ряд по
основанию 2. Получим запись в развернутой форме двоичного целого числа, так как
в этой записи будут отсутствовать отрицательные степени основания, т. е. числа
2:

На первом шаге разделим число А на основание двоичной
системы, т. е. на 2. Частное от деления будет равно:
а •2n-2 +
а остаток равен ао.
На втором шаге целое частное опять разделим на 2, остаток от
деления будет теперь равен ая.
Если продолжать этот процесс деления, то после п-го шага
получим последовательность остатков:
ао,
ар . . . , а

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

Аналогичные рассуждения могут быть проведены и для перевода целых десятичных
чисел в восьмеричную и шестнадцатеричную системы счисления.
Алгоритм перевода целых десятичных чисел в двоичную,
восьмеричную и шестнадцатеричную системы счисления. Алгоритм перевода целого
десятичного числа в целое двоичное, восьмеричное или шестнадцатеричное число
будет следующим:
1.    Последовательно
выполнять деление исходного целого десятичного числа и получаемых целых частных
на основание системы (на 2, 8 или 16) до тех пор, пока не получим частное,
равное нулю.
2.
Получить искомое двоичное, восьмеричное или шестнадцатеричное
число, для чего записать полученные остатки в обратной последовательности.
Практическое задание «Перевод целого десятичного числа в
целое двоичное, восьмеричное и шестнадцатеричное числа». Осуществить перевод
десятичного числа (например, числа 1910) в двоичную, восьмеричную и
шестнадцатеричную системы счисления с помощью алгоритма перевода и с помощью
компьютерного калькулятора NumLock Calculator.
Перевод целого десятичного числа в
целые двоичное, восьмеричное и шестнадцатеричное числа
Применить алгоритм перевода целого десятичного числа в целое
двоичное и записать результаты в таблицу.

Десятичное число/целое частное

делитель
(основание системы)

Остаток

Цифры двоичного числа

19

2

1

9

2

1

а

4

2

2

2

аз

1

2

а
4

В результате получаем двоичное число:
                                 А2 = а 4аза,њао     100112.

Применить алгоритм перевода целого десятичного числа в целое восьмеричное и
записать результаты в таблицу.

Десятичное число[целое частное

Делитель (основание системы)

Остаток

Цифры восьмеричного числа

19

8

З

2

8

2

а

В результате получаем восьмеричное число:
                                           „48 = а 1ао      238.
Применить алгоритм перевода целого десятичного числа в
целое шестнадцатеричное и записать результаты в таблицу.

десятичное число/целое частное

Делитель (основание системы)

Остаток

Цифры шестнадцатеричного числа

19

16

з

1

16

1

а

В результате получаем шестнадцатеричное
число:
А 161316
Перевод целого десятичного числа  в
целые двоичное, восьмеричное и шестнадцатеричное числа
1.
Запустить
компьютерный калькулятор NumLock Calculator.
2.  Установить
минималистский вид калькулятора командой [Вид калькулятора-Универсальный1.
З. Установить формат исходных данных
командой [Формат чисел в выражении-Десятичный] и формат результата командой [Формат
результата-Двоичный].
4.
В окне ввода
данных ввести десятичное число, например 19, и нажать клавишу со знаком «=» .
Появится результат двоичное число 10011 (рис. 2.19).

Рис. 2.19. Перевод из
десятичной системы счисления в двоичную
5.   Установить
формат исходных данных командой [Формат чисел в выражении-Десятичный] и формат
результата командой [Формат результата-Восьмеричный].
6.
В окне ввода
данных ввести десятичное число, например 19, и нажать клавишу со знаком «=» .
Появится результат — восьмеричное число 23 (рис. 2.20).

Рис. 2.20. Перевод из десятичной системы счисления в
восьмеричную
7.   Установить
формат исходных данных командой [Формат чисел в выражении-Десятичный] и формат
результата командой [Формат результата-ШестнаДцатеричный].
8.
В окне ввода
данных ввести десятичное число, например 19, и нажать клавишу со знаком
Появится результат — шестнадцатеричное число 13 (рис. 2.21).

Системы_счисления

Рис. 2.21.
Перевод из десятичной системы счисления в шестнадцатеричную
Контрольные вопросы
1. Сформулируйте алгоритм перевода
целых десятичных чисел в двоичную, восьмеричную и шестнадцатеричную системы
счисления.

2.10. Заполните таблицу, в каждой
строке которой одно и то же целое число должно быть записано в различных
системах счисления:

Двоичная

Восьмеричная

Десятичная

Шестнадцатеричная

101010

127

269

эв

Компьюте ый рактикум
Windows-CD
2.5. Выполнить практическое задание
«Перевод целого десятичного числа в целые двоичное, восьмеричное и
шестнадцатеричное числа» (для нескольких чисел).
2.8.2.
Перевод дробей из десятичной системы в двоичную, восьмеричную и
шестнадцатеричную
Вывод алгоритма перевода
десятичных дробей в двоичную систему счисления
Пусть Адл десятичная дробь, разложим ее в ряд по основанию
2. Получим запись в развернутой форме двоичной

дроби, так как в этой записи будут
отсутствовать положительные степени основания, т. е. числа 2:
                                -1                -2
На первом шаге умножим число А на основание двоичной
системы, т. е. на 2. Произведение будет равно:
                                          -1        0-2
Целая часть равна именно это число и является значением
первого дробного разряда двоичного числа.
На втором шаге оставшуюся дробную часть опять умножим на 2,
получим целую часть, равную а _2, именно это число и является значением второго
дробного разряда двоичного числа.
Описанный процесс необходимо продолжать до тех пор, пока в
результате умножения мы не получим нулевую дробную часть или не будет
достигнута требуемая точность вычислений.
Легко заметить, что последовательность полученных чисел
совпадает с последовательностью цифр дробного двоичного числа, записанного в
свернутой форме:

дд
Аналогичные рассуждения могут быть проведены и для перевода
дробных десятичных чисел в восьмеричную и шестнадцатеричную системы счисления.
Алгоритм перевода дробных десятичных чисел в двоичную,
восьмеричную и шестнадцатеричную системы счисления. Алгоритм перевода
десятичной дроби в двоичную, восьмеричную или шестнадцатеричную дробь будет
следующим:
1.
Последовательно выполнять умножение исходной десятичной дроби и
получаемых дробей на основание системы счисления (на 2, 8 или 16) до тех пор,
пока не получим нулевую дробную часть или не будет достигнута требуемая
точность вычислений.
2.
Получить искомую двоичную, восьмеричную или ШеС'ГНЦцатеричную дробь,
записав полученные целые части произведения в прямой последовательности.
Задание «Перевод десятичной дроби в
двоичную, восьмеричную и шестнадцатеричную дроби». Осуществить перевод
десятичной дроби (например, числа 0,6562510) в двоичную, восьмеричную и шестнадцатеричную
системы счисления с помощью алгоритма перевода,

Перевод десятичной дроби в двоичную,
восьмеричную и шестнадцатеричную дроби
Применить алгоритм перевода дробного десятичного числа
в дробное двоичное и записать результаты в таблицу.

Десятичная дробь/
  дробная часть произведения

Множитель
(основание системы)

Целая часть произведения

Цифры двоичной дроби

0,65625

2

1

а

0,3125

2

а
-2

0,625

2

1

а
-3

0,25

2

а

2

1

В результате получаем двоичную дробь:
                        „42 =            _2а за 4а -5     0,101012.
Применить алгоритм перевода дробного десятичного числа
в дробное восьмеричное и записать результаты в таблицу.

Десятичная дробь/
  дробная часть произведения

Множитель
(основание системы)

Целая часть произведения

Цифры
восьмеричной дроби

0,65625

8

5

а

0,25

8

2

В результате получаем
восьмеричную дробь:  - 0,528.
Применить алгоритм перевода дробного десятичного числа в
дробное шестнадцатеричное и записать результаты в таблицу.

Десятичная дробь/
  дробная часть произведения

Множитель
(основание системы)

Целая часть произведения

Цифры шест-
надцатеричной дроби

0,65625

16

0,5

16

В результате получаем шестнадцатеричную
дробь:
                                   16          а 1 0 -2      о,
„4816.
Перевод чисел, содержащих и целую, и дробную части,
производится в два этапа. Отдельно переводится по соответствующему алгоритму
целая часть и отдельно — дробная. В итоговой записи полученного числа целая
часть от дробной отделяется запятой.
Контрольные вопросы
1. Сформулируйте алгоритм перевода
целых десятичных чисел в двоичную, восьмеричную и шестнадцатеричную системы
счисления.

2.11. Выполнить задание «Перевод
десятичной дроби в двоичную, восьмеричную и шестнадцатеричную дроби» (для
нескольких дробей).
2.12. Заполнить таблицу, в каждой
строке которой одно и то же дробное число должно быть записано в различных
системах счисления:

Двоичная

Восьмеричная

Десятичная

Шестнадцатеричная

0,4

2.8.3.
Перевод чисел из двоичной системы в восьмеричную и шестнадцатеричную и обратно
Перевод чисел между системами счисления, основания которых
являются степенями числа 2 (q = 2 11 ), может производиться по более
простым алгоритмам. Такие алгоритмы могут применяться для перевода чисел между
двоичной (q = 2 1 ), восьмеричной (q = 2 3 ) и
шестнадцатеричной (q — 2 4 ) системами счисления.
Перевод чисел из двоичной системы
счисления в восьмеричную
Для записи двоичных чисел используются две цифры, т. е. в
каждом разряде числа возможны два варианта записи.

Для определения количества информации, которое
содержит один двоичный разряд, воспользуемся формулой (2.2). Решаем
показательное уравнение:
                     2         2 I , так как 2  1 бит.
Каждый разряд двоичного числа содержит 1
бит.
Для записи восьмеричных чисел используются восемь цифр, т.
е. в каждом разряде числа возможны восемь вариантов записи. Решаем
показательное уравнение:
                    8        2 1 , так как 8  З бита.
Каждый разряд восьмеричного числа содержит З бита. Таким
образом, для перевода двоичного числа в восьмеричное двоичное число нужно
разбить на группы по три цифры. Для упрощения перевода можно заранее
подготовить таблицу преобразования двоичных триад (групп по З цифры) в
восьмеричные цифры (табл. 2.1).
Таблица 2.2. Двоичные триады

Двоичные триады

000

001

101

Шестнадцатеричные цифры

о

1

2

З

4

5

6

7

Перевод целых чисел. Для перевода целого двоичного числа в
восьмеричное двоичное число нужно разбить на группы по три цифры, справа
налево; если в последней левой группе окажется меньше чем три разряда, то
необходимо ее дополнить слева нулями. Затем надо преобразовать каждую группу в
восьмеричную цифру.
Переведем таким способом двоичное число 1010012 в
восьмеричное число. Получаем:
                                           101
0012       518.
Перевод дробей. Для перевода дробного двоичного числа в
восьмеричное необходимо разбить двоичное число на триады слева направо; если в
последней правой группе окажется меньше разрядов, надо дополнить ее справа
нулями. Далее следует триады заменить на восьмеричные числа.
Например,        преобразуем дробное двоичное число -
0,1101012в восьмеричную систему счисления. Получаем: 0,1101012       0,358.
Например,        преобразуем дробное двоичное число „42 -
0,1101012в восьмеричную систему счисления. Получаем: 0,1101012      0,358.

Перевод чисел из двоичной системы
счисления в шестнадцатеричную
Для записи шестнадцатеричных чисел используются шестнадцать
цифр, т. е. в каждом разряде числа возможны шестнадцать вариантов записи.
Решаем показательное уравнение:
16 — 2 1 , так как 16 = 2 4 , то I = 4
бита.
Каждый разряд шестнадцатеричного числа содержит 4 бита.
Таким образом, для перевода двоичного числа в шестнадцатеричное двоичное число
нужно разбить на группы по четыре цифры. Для упрощения перевода можно заранее
подготовить таблицу преобразования двоичных тетрад (групп по 4 цифры) в
шестнадцатеричные цифры (табл. 2.3).
Таблица 2.3. Двоичные тетрады

Двоичные тетрадь:

0000

0001

0010

01 10

0100

0101

01 10

0111

Шестнадцатеричные цифры

о

1

2

з

4

5

6

7

Двоичные тетрады

1000

1001

1010

1011

Шестнадцатеричные цифры

8

9

в

с

D

Е

Перевод целых чисел. Для перевода целого двоичного числа в
шестнадцатеричное его нужно разбить на группы по четыре цифры (тетрады),
начиная справа; если в последней левой группе окажется меньше разрядов, надо
дополнить ее слева нулями.
Переведем целое двоичное число „42 = 1010012 в шестнадцатеричное:
                                         0010
10012       2916
Перевод дробей. Для перевода дробного двоичного числа в
шестнадцатеричное необходимо разбить его на тетрады слева направо; если в
последней правой группе окажется меньше чем четыре разряда, необходимо ее
дополнить справа нулями. Переведем дробное двоичное число „42 = 0,1101012 в
шестнадцатеричную систему счисления:
                                     0,1101
01002       0,D416
Для того чтобы преобразовать любое двоичное число в
восьмеричную или шестнадцатеричную системы счисления, не-

обходимо произвести преобразования по
рассмотренным выше алгоритмам отдельно для его целой и дробной частей.
Перевод чисел из восьмеричной и
шестнадцатеричной систем счисления в двоичную
Для перевода чисел из восьмеричной и шестнадцатеричной
систем счисления в двоичную необходимо цифры числа преобразовать в группы
двоичных чисел. Для перевода из восьмеричной системы в двоичную каждую цифру
числа надо преобразовать в группу из трех двоичных разрядов (триаду), а при
преобразовании шестнадцатеричного числа в группу из четырех разрядов (тетраду).
Например, преобразуем дробное восьмеричное число „48 = 0,478
в двоичную систему счисления: 0,478 - 0,1001112.
Переведем целое шестнадцатеричное число „416 двоичную
систему счисления:
101010112.
Контрольные вопросы
1.
Сформулируйте
алгоритм перевода целых двоичных чисел в восьмеричную и шестнадцатеричную
системы счисления.
2.
Сформулируйте
алгоритм перевода дробных двоичных чисел в восьмеричную и шестнадцатеричную
системы счисления.

З
ад ага и я

2.13. Заполнить таблицу, в каждой
строке которой одно и то же произвольное число (число может содержать как
целую, так и дробную часть) должно быть записано в различных системах
счисления:

Двоичная

Восьмеричная

Шестнадцатеричная

233,5

59,8

14О

2.9. Арифметические операции в позиционных системах счисления
Арифметические операции во всех позиционных системах
счисления выполняются по одним и тем же хорошо ИЗВеСТным правилам.
Сложение. Рассмотрим сложение чисел в двоичной системе
счисления. В его основе лежит таблица сложения одноразрядных двоичных чисел:

                               0 + 1   1
1
- 10
Важно обратить внимание на то, что при сложении двух единиц
происходит переполнение разряда и производится перенос в старший разряд.
Переполнение разряда наступает тогда, когда величина числа в нем становится
равной или большей основания системы счисления. Для двоичной системы счисления
эта величина равна двум.
Сложение многоразрядных двоичных чисел происходит в
соответствии с вышеприведенной таблицей сложения с учетом возможных переносов
из младших разрядов в старшие. В качестве примера сложим в столбик двоичные
числа 1102 и 112.
1102
112

10012
Проверим правильность вычислений сложением в десятичной
системе счисления. Переведем двоичные числа в десятичную систему счисления и
затем их сложим.
                            1102
— 1•2 2 + 1 0 2 1 +          = б10
112
610 +
Теперь переведем результат двоичного сложения в десятичное
число.
                     10012        1•2
3 +             + 0•2 1 + 1•2 0 = 910 •
Сравним результаты, сложение выполнено правильно.
Вычитание. Рассмотрим вычитание двоичных чисел. В его основе
лежит таблица вычитания одноразрядных двоичных чисел. При вычитании из меньшего
числа (О) большего (1) производится заем из старшего разряда. В таблице заем
обозначен 1 с чертой.

0 - 1 - 11
1 - 0 = 1
                                       1    1
Вычитание многоразрядных двоичных чисел происходит в
соответствии с вышеприведенной таблицей вычитания с учетом возможных заемов в
старших разрядах. В качестве примера произведем вычитание двоичных чисел 1102 и
112
1102
112

112
Умножение. В основе умножения лежит таблица умножения
одноразрядных двоичных чисел:

1 • 1 - 1
Умножение многоразрядных двоичных чисел происходит в
соответствии с вышеприведенной таблицей умножения по обычной схеме, применяемой
в десятичной системе счисления, с последовательным умножением множимого на
очередную цифру множителя. В качестве примера произведем умножение двоичных
чисел 1102 и 112 1102
х
112
110
110
100102
Деление. Операция деления выполняется по алгоритму,
подобному алгоритму выполнения операции деления в десятичной системе счисления.
В качестве примера произведем деление двоичного числа 1102 на 112
                                                1102        112
                                                11           102
Арифметические операции в восьмеричной и шестнадцатеричной
системах счисления. Аналогично можно выполнять арифметические действия в
восьмеричной и шестнадцатерич-

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

258

7816

64 8

2416

Для проведения арифметических операций над числами,
выраженными в различных системах счисления, необходимо предварительно перевести
их в одну и ту же систему.
Практическое задание «Арифметические операции в позиционных
системах счисления». Выполнить сложение, вычитание, умножение и деление чисел,
выраженных в различных системах счисления (например, 128 и 6416), с помощью
компьютерного калькулятора Wise Calculator.
Арифметические операции в позиционных системах
счисления
1.
Запустить Wise
Calculator и ввести команду [Tools-MultiBase Calculator ]
В режиме Multi-Base Calculator появляется многооконная
панель, позволяющая ввести число в любой системе счисления и автоматически
получить значения этого числа в других системах счисления. В режиме Multi-Base
Calculator возможно проведение арифметических операций (сложение, вычитание,
умножение и деление) в различных системах счисления. Для этого в окна операндов
А и В необходимо ввести числа (можно в различных системах счисления) и выбрать
в группе переключателей 0peration арифметическую операцию.
2.
На появившейся
многооконной панели Multi-Base Calculator (рис. 2.22) ввести пару чисел в окна
операндов А и В. Например, шестнадцатеричное число 6416 в окно НЕХ (операнд А)
и восьмеричное число 128 в окно ОСТ (операнд В).
З. Выбрать в группе переключателей
0peration, например операцию умножения А*В.
4.
В окнах Result
появится результат выполнения арифметической операции одновременно в четырех
системах счис-

НЕХ (ЗЕ81б).

Рис. 2.22.
Умножение чисел в различных системах счисления
5.   Последовательно
выбрать в группе переключателей Орешtion операции сложения А+В, вычитания А—В и
деления А div В.
Компьюте ый рактикум
Windows-CD
2.6. Выполнить с использованием
компьютерного калькулятора Wise Calculator практическое задание «Арифметические
операции в позиционных системах счисления».
2.10. Представление
чисел в компьютере
2.10.1.
Представление чисел в формате с фиксированной запятой
Целые числа в компьютере хранятся в памяти в формате с
фиксированной запятой. В этом случае каждому разряду ячейки памяти
соответствует всегда один и тот же разряд числа, а запятая находится справа
после младшего разряда, т. е. вне разрядной сетки.
Достоинствами представления чисел в формате с фиксированной
запятой являются простота и наглядность представления чисел, а также простота
алгоритмов реализации арифметических операций (вычитание благодаря
использованию дополнительного кода (см. ниже) для представления отрицательных
чисел сводится к сложению).
Недостатком представления чисел в формате с фиксированной
запятой является конечный диапазон представления

величин, недостаточный для решения
математических, физических, экономических и других задач, в которых
используются как очень малые, так и очень большие числа.
Целые неотрицательные числа. Для хранения целых
Неотрицательных чисел отводится одна ячейка памяти (8 битов). Например, число А
2 = 101010102 будет храниться в ячейке памяти следующим образом:

Минимальное число соответствует восьми нулям, хранящимся в
восьми ячейках памяти, и равно нулю.
Максимальное значение целого неотрицательного числа
достигается в случае, когда во всех ячейках хранятся единицы. Для п-разрядного
представления оно будет равно
1.
Задание «Диапазон хранения целых неотрицательных
чисел». Определить диапазон чисел, которые могут храниться в оперативной памяти
в формате целого неотрицательного числа.
Минимальное число равно О.
Максимальное число соответствует восьми единицам, хранящимся
в ячейках памяти, и равно:
А = 1,2 7 +126
+125 + 124 + 123 + 122 +           +
120 = 128 - 1 = 25510
Диапазон изменения целых неотрицательных чисел — от О до
255.
Целые числа со знаком. Для хранения целых чисел со
знаком отводится две ячейки памяти (16 битов), а для хранения 60льших целых
чисел со знаком отводится четыре ячейки памяти (32 бита). Старший (левый)
разряд отводится под знак числа (если число положительное, то в знаковый разряд
записывается О, если число отрицательное — записывается 1).
Представление в компьютере положительных чисел с
использованием формата «знак—величина» называется прямым кодом числа. Например,
число 200210 представлено в 16-разрядном представлении
следующим образом:

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

Минимальное отрицательное число равно

Задание «Диапазон хранения целых чисел со знаком и больших
целых чисел со знаком». Определить диапазон чисел, которые могут храниться в
оперативной памяти в формате:  целых чисел со знаком; е больших целых
чисел со знаком.
а) Максимальное положительное целое
число в формате целых чисел со знаком равно:
                                      215       1       32 76710
Минимальное
отрицательное целое число равно  = —215 _ -3276810.
б) Максимальное положительное целое
число в формате больших целых чисел со знаком равно
                           = 231      1       2 147 483 64710.
Минимальное отрицательное целое
число равно  —231 -2 147 483 64810
Дополнительный код. Для представления отрицательных чисел
используется дополнительный код. Дополнительный код позволяет заменить
арифметическую операцию вычитания операцией сложения, что существенно упрощает
работу процессора и увеличивает его быстродействие.

Дополнительный код представляет собой дополнение модуля
отрицательного числа А до О, поэтому в п-разрядной компьютерной арифметике:

Это равенство тождественно справедливо, так как в
компьютерной п-разрядной арифметике 2 п — О. Действительно, двоичная
запись такого числа состоит из одной единицы и п нулей, а в п-разрядную ячейку
может уместиться только п младших разрядов, т. е. п нулей.
Задание «Дополнительный код числа». Записать дополнительный
код отрицательного числа —2002 для 16-разрядного компьютерного представления.

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

216

100000000000000002

6553610

2002
10

200210

216_ ' 2002101

63534
10

Проведем проверку с использованием десятичной системы
счисления. Дополнительный код 63 53410 в сумме с модулем отрицательного числа
200210 равен 65 53610 , т. е. дополнительный код дополняет модуль
отрицательного числа до 2 16 (до нуля 16-разрядной компьютерной
арифметики).
Алгоритм получения дополнительного кода. Для получения
дополнительного кода отрицательного числа можно использовать довольно простой
алгоритм:
1.
Модуль числа записать прямым кодом в п двоичных разрядах.
2.
Получить обратный код числа, для этого значения всех битов
инвертировать (все единицы заменить на нули и все нули заменить на единицы).
З. К полученному обратному коду прибавить единицу.
Задание «Вычисление дополнительного кода числа с
использованием обратного кода». Вычислить дополнительный код отрицательного
числа —2002 для 16-разрядного компьютерного представления с использованием
алгоритма.

Прямой код

1 -2002101

Обратный код

Инвертирование

Прибавление единицы

00000000000000012

Дополнительный код

Задание «Арифметическое действие». Выполнить
арифметическое действие 300010 — 500010 в 16-разрядном компьютер-
ном представлении.
Представим положительное число в прямом, а
отрицательное число в дополнительном коде:

Десятичное число

Прямой код

Обратный код

Дополнительный код

3000

0000101 1 101 1 1000

-5000

0001001 1 10001000

1 1 101 10001 1 101 1 1

1 1 101 10001 1 101 1 1
0000000000000001

Сложим прямой код положительного числа с дополнительным
кодом отрицательного числа. Получим результат в дополнительном коде:

3000-5000

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

2) Прибавим к полученному коду 1 и
получим модуль отрицательного числа:

+ 0000000000000001

З) Переведем в десятичное число и
припишем знак отрицательного числа: —2000.
Контрольные вопросы
1. Чем различаются обратный и
дополнительный коды числа в компьютерном представлении отрицательных чисел?

2.14. Заполнить таблицу, записав
отрицательные десятичные числа в прямом, обратном и дополнительном кодах в
16-разрядном представлении:

Десятичные числа

Обратный код

дополнительный код

-10

-100

-1000

-10000

2.15. Выполнить арифметическое
действие 2010 — 6010 в 16-разрядном компьютерном представлении.
2.10.2. Представление чисел в формате с плавающей запятой
Вещественные числа (конечные и бесконечные десятичные дроби)
хранятся и обрабатываются в компьютере в формате с плавающей запятой. В этом
случае положение запятой в записи числа может изменяться.
Формат чисел с плавающей запятой базируется на экспоненциальной
форме записи, в которой может быть представлено любой число. Так число А может
быть представлено в виде:
п       (2.16) где т мантисса числа, основание
системы счисления, п      порядок числа.
Для однозначности представления чисел с плавающей запятой
используется нормализованная форма, при которой мантисса отвечает условию:

Это означает, что мантисса должна быть правильной дробью и
иметь после запятой цифру, отличную от нуля.
Задание «Приведение числа с плавающей запятой к
нормализованной форме». Преобразовать десятичное число 888,888, записанное в
естественной форме, в экспоненциальную форму с нормализованной мантиссой.
                                888,888       0,888888 х 10 3
Нормализованная мантисса т = 0,888888,
порядок п = З.
Число в форме с плавающей запятой занимает в памяти
компьютера четыре байта (число обычной точности) или восемь байтов (число
Двойной точности). При записи числа с плавающей запятой выделяются разряды для
хранения знака мантиссы, знака порядка, порядка и мантиссы.
Диапазон изменения чисел определяется количеством разрядов,
отведенных для хранения порядка числа, а точность (количество значащих цифр)
определяется количеством разрядов, отведенных для хранения мантиссы.
Задание «Определение максимального числа и его точноОпределить
максимальное число и его точность для формата чисел обычной точности, если для
хранения порядка и

его знака отводится 8 разрядов, а для
хранения мантиссы и ее знака 24 разряда.

знак и порядок

знак и мантисса

Максимальное значение
порядка числа составит 12710, следовательно, максимальное число:
1,7014118346046923173168730371588 х 10 38
Точность вычислений определяется количеством разрядов,
отведенных для хранения мантиссы чисел. Максимальное значение положительной
мантиссы равно:
                  223 _ 1         223        200х2,3)          10002,3
_
Таким образом, максимальное значение чисел обычной точности
с учетом возможной точности вычислений составит 1, 701411 х 10 38 (количество
значащих цифр десятичного числа в данном случае ограничено 7 разрядами).
Сложение и вычитание чисел в формате с плавающей запятой.
При сложении и вычитании чисел в формате с плавающей запятой сначала
производится подготовительная операция выравнивания порядков. Меньший по модулю
порядок числа увеличивается до величины большего по модулю порядка числа. Для
того чтобы величина числа не изменилась, мантисса уменьшается в такое же
количество раз (сдвигается в ячейке памяти вправо на количество разрядов,
равное разности порядков чисел).
После выполнения операции выравнивания одинаковые
разряды чисел оказываются расположенными в одних и тех же разрядах ячеек
памяти. Теперь операции сложения и вычитания чисел сводятся к сложению или
вычитанию мантисс.
При умножении чисел в формате с плавающей запятой порядки
складываются, а мантиссы перемножаются. При делении из порядка делимого
вычитается порядок делителя, а мантисса делимого делится на мантиссу делителя.
После выполнения арифметической операции для приведения
полученного числа к стандартному формату с плавающей запятой производится
нормализация, т. е. мантисса сдвигается влево или вправо так, чтобы ее первая
значащая цифра попала в первый разряд после запятой.
Задание «Арифметические операции с числами в формате с
плавающей запятой». Произвести с числами 0,1 х 2 5 и 0,1 х 2 3 в
формате с плавающей запятой:

е сложение и вычитание;  умножение и
деление.
а) Произведем выравнивание порядков,
сложение или вычитание мантисс, а также нормализацию (если это необходимо):

Сложение

Вычитание

0,100 х 2 5

0,100 х 2 5

+ 0,001 х 2 5

0,001 х 2 5
0,010 х 2 5

б) Произведем умножение или деление
мантисс, сложение или вычитание порядков, а также нормализацию (если это
необходимо):
          Умножение                                 Деление

Контрольные вопросы
1. От чего зависит максимальное
значение порядка числа и его точность в формате с плавающей запятой?

З а д а„.нуи
я

2.16. Определить максимальное число и
его точность для формата чисел двойной точности, если для хранения порядка и
его знака отводится 11 разрядов, а для хранения мантиссы и ее знака — 53
разряда.
2.17. Произвести сложение, вычитание,
умножение и деление чисел 0,1 х 22 и 0,1 х 2 -2 в формате с
плавающей запятой.

Глава З

основы логики и логические основы
компьютера

Windows-CD
В процессе изучения данной темы рекомендуется использовать
программное обеспечение для операционной системы Windows:

компьютерный
калькулятор NumLock Calculator;
     электронные
таблицы 0penOffice.org Сак;
     редактор
электрических и логических схем sPlan;
     конструктор
электрических схем Начала электронжи;
Дистрибутив
Microsott 0ffice

•bi:.l

     электронные
таблицы Microsoft Ехсе|.
3.1. Формы мышления
Первые учения о формах и способах рассуждений возникли в
странах Древнего Востока (Китай, Индия), но в основе современной логики лежат
учения, созданные древнегреческими мыслителями. Основы формальной логики
заложил Аристотель, который впервые отделил логические формы мышления (речи) от
его содержания.

            Логика           это наука о
формах и способах мышле           ния.

Законы логики отражают в сознании человека свойства, связи и
отношения объектов окружающего мира. Логика позволяет строить формальные модели
окружающего мира, отвлекаясь от содержательной стороны.
Мышление всегда осуществляется в каких-то формах. Основными
формами мышления являются понятие, высказывание (суждение) и умозаключение.
Понятие. Понятие это форма мышления, отражающая наиболее
существенные признаки предмета, отличающие его от других предметов. В структуре
каждого понятия нужно различать две стороны: содержание и объем. Содержание
понятия составляет совокупность существенных признаков предмета. Чтобы раскрыть
содержание понятия, следует выделить признаки, необходимые и достаточные для
выделения данного объекта по отношению к другим объектам.
Например, понятие «компьютер» объединяет множество
электронных устройств, которые предназначены для обработки информации и
обладают монитором и клавиатурой. Даже по этому короткому описанию компьютер
трудно спутать с другими объектами, например с механизмами, служащими для
перемещения по дорогам и хранящимися в гаражах, которые объединяются понятием
«автомобиль».
Объем понятия определяется совокупностью предметов, на
которую понятие распространяется. Объем понятия «компьютер» выражает всю
совокупность существовавших, существующих и могущих существовать в будущем
компьютеров.
Объем и содержание понятия связаны между собой, и эта связь
выражается следующим законом: чем больше объем понятия, тем меньше его
содержание, и наоборот, чем больше содержание понятия, тем меньше его объем.
Иначе говоря, чем меньшее количество вещей мыслится в данном понятии, тем
больше оно сообщает об этих вещах. Например, понятие «карманный компьютер»
охватывает меньший объем, чем понятие «компьютер», но обладает большим
содержанием.
Понятие — это форма мышления, фиксирующая
основные, существенные признаки объекта.
Алгебра множеств, одна из основополагающих
современных математических теорий, позволяет исследовать отношения между
множествами и, соответственно, объемами понятий.

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

ство целых положительных
  чисел А, а

объем понятия «четные числа» включает

Представление

в себя множество отрицательных и поло-

объемов понятий

жительных четных чисел В.
  Эти множе-

с
  использованием

ства пересекаются, так как оба включа-

диаграммы

ют
  в себя множество положительных четных чисел С (рис. 3.1).

Эйлера—Венна

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

вания, соединив их знаками равенства или
неравенства. Например, высказывание на естественном языке имеет вид «Два
умножить на два равно четырем», а на формальном, математическом языке оно
записывается в виде «2 х 2 4».
Высказывание — это форма мышления, в которой что-либо
утверждается или отрицается о реальных предметах, их свойствах и отношениях
между ними. Высказывание может быть либо истинно, либо ложно.

Высказывание называется простым, если никакая его часть сама
не является высказыванием. Высказывание, состоящее из простых высказываний,
называются составным (сложным). Высказывание состоит из понятий, и его можно
сравнить с арифметическим выражением, в котором все числа заданы. В
математической логике рассматриваются предикаты, т. е. функциональные
зависимости от неопределенных понятий (терминов), которые можно сравнить с
переменными в уравнении.
В предикатах первого порядка один из терминов является
неопределенным понятием (например, «х человек»).
В предикатах второго порядка два термина не определены
(например, «х любит у»).
В предикатах третьего порядка неопределенны три термина
(например, «z сын х и у»).
Преобразуем рассмотренные выше предикаты в высказывания
путем подстановки вместо переменных соответствующих понятий: х «Сократ», у =
«Ксантиппа», z « Софрониск». Получим высказывания:
        «Сократ      человек
» ;
«Ксантиппа любит Сократа»;
       «
Софрониск        сын Сократа и Ксантиппы».
Умозаключение. Умозаключение это форма мышления, посредством
которой из одного или нескольких высказываний, называемых посылками, по
определенным правилам логического вывода получается новое знание о предметах
реальносо мира (вывод).
Умозаключения бывают дедуктивные, индуктивные и по аналогии.
В дедуктивных умозаключениях рассуждения ведутся от общего к частному.
Например, из двух суждений: «Все металлы электропроводны» и «Ртуть является
металлом» путем умозаключения можно сделать вывод: «Ртуть электропроводна » .

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

умозаключение — это форма мышления, с
помощью которой из одного или нескольких высказываний (посылок) может быть
получено новое высказывание (вывод).
Доказательство. Доказательство есть мыслительный процесс,
направленный на подтверждение или опровержение какого-либо положения
посредством других несомненных, ранее обоснованных доводов. Доказательство по
своей логической форме не отличается от умозаключения. Однако, если в
умозаключении заранее исходят из истинности посылок и следят только за
правильностью логического вывода, в доказательстве подвергается логической
проверке истинность самих посылок.
Примером умозаключений могут быть геометрические
доказательства. Например, если мы имеем суждение «Все углы треугольника равны»,
то мы можем путем умозаключения доказать, что в этом случае справедливо
суждение «Этот треугольник равносторонний» .
Контрольные вопросы
1.
В чем состоит
разница между содержанием и объемом понятия? Связаны ли между собой содержание
и объем понятия? Приведите примеры.
2.
Как определяется
истинность или ложность простого высказыва-

З ад а
ни я
3.1. Привести примеры понятий,
высказываний, умозаключений и доказательств из различных наук: математики;
информатики; физики и химии.
3.2. Представить с использованием
диаграммы Эйлера—Венна соотношение между объемами понятий «четные числа» и
«нечетные числа».
3.3. Построить высказывания на основе
предиката второго порядка «х состоит из у».
3.2.
Алгебра логики
3.2.1.
Логическое умножение, сложение и отрицание
Алгебра в широком смысле этого слова — наука об общих
операциях, аналогичных сложению и умножению, которые могут выполняться над
различными математическими объектами (алгебра переменных и функций, алгебра
векторов, алгебра множеств и т. д.). Объектами алгебры логики являются
высказывания.
Алгебра логики отвлекается от смысловой содержательности
высказываний. Ее интересует только один факт истинно или ложно данное
высказывание, что дает возможность определять истинность или ложность составных
высказываний алгебраическими методами.
Логические переменные. Простые высказывания в алгебре логики
обозначаются прописными латинскими буквами. Высказывания, как уже говорилось
ранее, могут быть истинными или ложными. Истинному высказыванию соответствует
значение логической переменной 1, а ложному — значение О.
В алгебре логики высказывания
обозначаются именами логических переменных, которые могут принимать лишь два
значения: «истина» (1) и «ложь» (О).
Рассмотрим два простых высказывания:
А — «Два умножить на два равно четырем».
В — «Два умножить на два равно пяти».
Первое высказывание истинно (А = 1), а второе ложно

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

Составное высказывание, образованное
в результате операции логического умножения (конъюнкции), истинно тогда и
только тогда, когда истинны все входяЩИе в него простые высказывания.

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

Перейдем теперь от записи высказываний на естественном языке
к их записи на формальном языке алгебры логики. Операцию логического умножения
(конъюнкцию) принято обозначать значком «&» (амперсенд). Операция
логического умножения, аргументами которой являются логические переменные А и
В, записывается следующей формулой:

Значение логической операции логического умножения задается
с помощью таблицы истинности. Таблица истинности показывает, какие значения
дает логическая операция при всех возможных наборах ее аргументов (табл. 3.1).
Результатом операции логического умножения является «истина» (1) тогда и только
тогда, когда оба аргумента принимают значения «истина» (1).
Таблица З. 1. Таблица истинности конъюнкции
(логического умножения)

1

1

1

1

1

По таблице истинности легко определить истинность составного
высказывания, образованного с помощью операции логического умножения.
Рассмотрим, например, составное высказывание «2 х 2 = 4 и З х З = 10». Первое
простое высказывание истинно (А = 1), а второе высказывание ложно (В = О), с
использованием таблицы истинности логического умножения определяем, что данное
составное высказывание ложно.
Логическое сложение (дизъюнкция). Объединение двух (или
нескольких) высказываний с помощью союза «или» называется операцией логического
сложения или дизъюнкцией.
Составное высказывание, образованное в результате
логического сложения (дизъюнкции), истинно тогда и только тогда, когда истинно
хотя бы одно из входящих в него простых высказываний.

Так, из приведенных ниже четырех составных высказываний,
образованных с помощью операции логического сложения, ложно только первое, так
как в последних трех составных высказываниях хотя бы одно из простых
высказываний истинно:
5 или З х З
5 или З х З
4 или З х З
4 или З х З
Запишем теперь операцию логического сложения на
формальном языке алгебры логики. Операцию логического сложения (дизъюнкцию)
принято обозначать значком «v» . Операция логического сложения, аргументами
которой являются логические переменные А и В, записывается следующей формулой:
                                              А м В.                                                 (3.2)
Значение логической операции логического сложения
задается с помощью таблицы истинности (табл. 3.2). Результатом операции
логического сложения является «ложь» (О) тогда и только тогда, когда оба
аргумента принимают значения «ложь» (О).
Таблица 3.2. Таблица истинности дизъюнкции
(логического сложения)

в

1

1

1

1

1

1

1

По таблице истинности легко определить истинность составного
высказывания, образованного с помощью операции логического сложения.
Рассмотрим, например, составное высказывание «2 х 2 = 4 или З х З = 10». Первое
простое высказывание истинно (А = 1), а второе высказывание ложно (В — О), с
помощью таблицы истинности логического сложения определяем, что данное
составное высказывание истинно.
Логическое отрицание (инверсия). Присоединение частицы «не»
к высказыванию называется операцией логического отрицания или инверсией.
Логическое отрицание (инверсия) получает из истинного
высказывания ложное и, наоборот, из ложного — истинное.
Высказывание «Два умножить на два равно четырем» истинно, а
высказывание, образованное с помощью операции логического отрицания, «Два умножить
на два не равно четырем» ложно.
Запишем теперь операцию логического отрицания на формальном
языке алгебры логики. Операцию логического отрицания (инверсию) над логическим
высказыванием А принято обозначать А. Операция логического отрицания, аргументом
которой является логическая переменная А, записывается следующей формулой:
(3.3)
Значение логической операции отрицания задается с помощью
таблицы истинности (табл. 3.3). Результатом операции логического отрицания
является «истина» (1), когда аргумент принимает значение «ложь» (О), и значение
«ложь» (О), когда аргумент принимает значение «истина» (1).
Таблица 3.3. Таблица истинности инверсии
(логического отрицания)

1

1

Истинность высказывания, образованного с помощью операции
логического отрицания, можно легко определить с помощью таблицы истинности.
Например, высказывание «Два

умножить на два не равно четырем» ложно (А =
О), а полученное из него в результате логического отрицания высказывание «Два
умножить на два равно четырем» истинно (1).
Практическое задание «Таблицы истинности». Получить таблицы
истинности операций логического умножения, логического сложения и логического
отрицания с использованием электронных таблиц.
Получение таблиц истинности операций логического умножения,
логического сложения и логического отрицания с использованием электронных
таблиц
1. На листе Лист1 создать заготовку
таблиц истинности базовых логических операций. Создать заголовки и ввести в
столбцы А и В, Е и F, I значения логических аргументов, а в столбцы С, G, еЈ
соответствующие логические операции.
Электронные таблицы обладают встроенными логическими
функциями. Функция логического умножения И(логическое значение1;логическое
значение2;...) дает значение TRUE (1) тогда и только тогда, когда все
логические аргументы имеют значение TRUE (1).
Функция логического сложения ИЛИ(логическое значение1;логическое
значение2;...) дает значение TRUE (1) тогда и только тогда, когда хотя бы один
логический аргумент имеет значение TRUE (1).
Функция логического отрицания НЧ логическое значение) дает
значение TRUE (1), когда логический аргумент имеет значение FALSE (О) и,
наоборот, значение FALSE (О), когда логический аргумент имеет значение TRUE
(1).
Ввод логических функций с использованием
электронных таблиц Microsoft Excel
2. Для ввода логических функций
воспользоваться командой [Вставка- Функция... 1.
В появившемся диалоговом окне Мастер
функций (рис. 3.2) в раскрывающемся списке Кате- гории выбрать Логические, а в
окне Выберите функцию: — функцию. Щелкнуть по кнопке Далее.
З. В диалоговом окне Аргументы функции
(рис. 3.3) в текстовых полях Логическое значение 1 и Логическое значение 2
выбрать имена ячеек, в которых хранятся аргументы логической функции. Щелкнуть
по кнопке ОК.

Рис. 3.2.
Выбор логической функции

Рис. 3.3. Ввод
аргументов логической функции
В электронных таблицах 0penOffce.org Calc функция
логического умножения обозначается AND(), функция логического сложения 0R() и
функция логического отрицания NOT().
Ввод логических функций с использованием электронных
таблиц 0penOffice.org Calc
2. Для ввода логических функций
воспользоваться командой [Вставить-функция...].
В появившемся диалоговом окне
Мастер:Функции в раскрывающемся списке Категория выбрать Логические, а в окне
Функция нужную функцию (рис. 3.4). Щелкнуть по кнопке Далее.

Рис. 3.4.
Выбор логической функции
З. В диалоговом окне Мастер:Фџнњции в
текстовых полях Логическое значение 1 и Логическое значение 2 выбрать имена
ячеек, в которых хранятся аргументы логической функции (рис. 3.5). Щелкнуть по
кнопке ОК.

Рис. 3.5.
Ввод аргументов логической функции

Сохранение файла электронных таблиц
4.    После
ввода аргументов функций и их формул на листе появятся таблицы истинности трех
базовых логических функций (рис. 3.6).

Рис. 3.6. Таблицы истинности базовых
логических функций в электронных таблицах
5.    Переименовать
лист Лист1 в Логические операции.
Сохранить в электронных таблицах
Microsoft Excel или 0penOffice.org Calc файл log.xls в универсальном формате.
Сохранить в электронных таблицах 0penOfice.org Calc файл bg.ods в собственном
формате.
Контрольчые вопросы
1. Перечислите связки в составных
высказываниях, знаки логических операций и функции в электронных таблицах,
реализующие логические операции умножения, сложения и отрицания.
 я
3.4. Определить, при каких значениях
числа х предикат первого порядка не ((х > 8) или (х —3)) примет значение:
а) ложь;
б) истина.

3.5. Изобразить в декартовой
прямоугольной системе координат область, в которой и только в которой истинен
предикат второго порядка (lxl 1) и 1).
Компьюте ый рактикум

Windows-CD СЗ-'
3.1. В электронных таблицах выполнить
практическое задание «Таблицы истинности».

3.2.2. Логические выражения
Логические выражения. Каждое составное высказывание можно
выразить в виде формулы (логического выражения), в которую войдут логические
переменные, обозначающие высказывания, и знаки логических операций.
Для
записи составных высказываний в виде логических выражений на формальном языке
(языке алгебры логики) в составном высказывании нужно выделить простые
высказывания и логические связи между ними.
Запишем в форме логического выражения составное высказывание
«(2 х 2 5 или 2 х 2 4) и (2 х 2 5 или 2 х 2 * 4)». Проанализируем составное
высказывание. Оно содержит два простых высказывания:
                                                     5}         ложно
(О);
                                                     4}       истинно
(1).
Теперь необходимо записать высказывание в форме логического
выражения с учетом последовательности выполнения логических операций.
При выполнении логических операций
определен следующий порядок их выполнения: инверсия, конъюнкция, дизъюнкция.
Для изменения указанного порядка могут использоваться
скобки:

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

Практическое задание «Определение истинности логического
выражения». Определить истинность логического выражения (А В) 8' (А v В) с
использованием таблиц истинности базовых логических операций и с использованием
программного калькулятора.
Подставим в логическое выражение значения логических
переменных и, используя таблицы истинности базовых логических операций, получим
значение логического выражения: 1.
Определение истинности логического
выражения с использованием компьютерного калькулятора
1.  Запустить
компьютерный калькулятор NumLock Calculator.
2.  Установить
удобный вид калькулятора командой [Вид калькулятора-Программистский].
З. Ввести логическое выражение,
подставив в него значения логических переменных.
4. Нажать на клавиатуре клавишу {Enter},
получим значение логического выражения (рис. 3.7), которое совпадает со
значением, вычисленным с использованием таблиц истинНОСТИ.

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

Во-первых, необходимо определить количество строк в таблице
истинности, которое равно количеству возможных комбинаций значений логических
переменных, входящих в логическое выражение. Если количество логических
переменных п, то:
Количество
строк = 2 п .
В нашем случае логическое выражение (А В) & (А В) имеет
две переменные и, следовательно, количество строк в таблице истинности должно
быть равно:
                           Количество строк = 2 п        22 =
4.
Во-вторых, необходимо определить количество столбцов в
таблице истинности, которое равно количеству логических переменных плюс
количество логических операций (при желании можно сократить количество
столбцов, объединив несколько логических операций в одном столбце). В нашем
случае количество переменных равно двум, а количество логических операций равно
пяти, т. е. количество столбцов таблицы истинности равно:
Количество
столбцов  7.
В-третьих, необходимо построить таблицу истинности с
указанным количеством строк и столбцов, обозначить столбцы и внести все
возможные наборы значений логических переменных. Наборы входных переменных, во
избежание ошибок, рекомендуют вводить следующим образом:
1)  разделить столбец
значений первой переменной пополам и заполнить верхнюю часть колонки нулями, а
нижнюю единицами;
2)  разделить столбец
значений второй переменной на четыре части и заполнить четверти чередующимися
группами нулей и единиц, начиная с группы нулей;
З) продолжать деление слолбцов значений
последующих переменных на 8, 16 и т. д. частей и заполнение их группами нулей
или единиц до тех пор, пока группа нулей (единиц) не будет состоять из одного
символа.
В-четвертых, необходимо заполнить таблицу истинности по
столбцам, выполняя базовые логические операции в необходимой последовательности
и в соответствии с их таблицами истинности. Теперь мы можем определить значение
логической функции для любого набора значений логических переменных.
Построим таблицу истинности для рассмотренного лорического
выражения (табл. 3.4).

Таблица 3.4. Таблица истинности логического выражения

Задание «Таблица истинности логического выражения». Для
логического выражения А 8' (В v В & С) построить таблицу истинности.
Количество логических переменных равно трем, следовательно,
количество строк в таблице истинности должно быть:
Количество строк = 2 п =
Количество логических операций равно пяти, следовательно, количество
столбцов в таблице истинности должно быть:
Количество столбцов
Построим таблицу истинности (табл. 3.5).
Таблица 3.5. Таблица истинности логического выражения

Равносильные логические выражения. Логические выражения, у
которых таблицы истинности совпадают, называются равносильными. Для обозначения
равносильных логических выражений используется знак «=» .
Задание «Равносильность логических выражений».
Доказать, что логические выражения А&В и AvB равносильны.
Построим сначала таблицу истинности для логического
выражения А&В (табл. 3.6).

Таблица 3.6. Таблица истинности логического выражения
А & В

А

в

1

1

1

1

1

1

1

1

1

Построим теперь таблицу истинности для логического вы-

ражения АМВ (табл. 3.7).
Таблица З. 7. Таблица истинности логического выражения
Амв

в

КВ

1

1

1

1

1

1

1

1

Таблицы истинности совпадают, следовательно, логические
выражения равносильны:
= ТВ.
Контрольные вопросы
1.  Что содержат таблицы истинности и
каков порядок их построения?
2.  Какие логические выражения называются
равносильными?

3.6.
Записать составное
высказывание «(2 х 2 = 4 и З х З = 9) или (2 х 2 4 и З х З * 9)» в форме
логического выражения. Определить его истинность.
3.7.
Доказать, используя
таблицы истинности, что логические выражения А В и А&В равносильны.

Компьютерный фрактикум

3.2. С использованием программного
калькулятора определить истинность составного высказывания (см. задание 3.6).
3.3. В
электронных таблицах построить таблицу истинности логических выражений
3.4. В электронных таблицах доказать с
использованием таблиц истинности равносильность выражений (А v Bv С) 8!
(А В хи С) и (В &А& С).
3.2.3.
Логические функции
Любое логическое выражение можно рассматривать как
логическую функцию Щ Х 1 , Х2, ... хп), аргументами которой являются логические
переменные Х 1 , Х2 , ... Х . Сама функция и аргументы могут принимать только
два различных значения: «истина» (1) и «ложь» (О).
Каждая
логическая функция двух аргументов имеет четыре возможных значения. Каждое
значение функции несет 1 бит информации, так как может быть либо О, либо 1.
Следовательно, каждая функция несет 4 бита информации и по формуле (2.1) можно
определить, какое количество различных логических функций двух аргументов может
существовать:  24        16.
Таким образом, существует 16 различных логических функций
двух аргументов, каждая из которых задается СОбСТвенной таблицей истинности
(табл. 3.8).
Таблица 3.8. Таблицы истинности логических функций двух
аргументов

Аргументы

Логические функции

Легко заметить, что логическая функция F2 является функцией
логического умножения, Р8 функцией логического сложения, — функцией логического
отрицания для аргумента А и — функцией логического отрицания для аргумента В.
В обыденной и научной речи кроме базовых логических связок
«и», «или», «не» используются и некоторые другие: «если... то ...», «тогда... и
только тогда, когда . . . » и др. Некоторые из них имеют свое название и свой
символ, и им соответствуют определенные логические функции.
Логическое следование (импликация). Логическое следование
(импликация) образуется соединением двух высказываний в одно с помощью оборота
речи «если . , то
Логическая операция импликации «если А, то В» обозначается А
—» В и выражается с помощью логической функции F14, которая задается
соответствующей таблицей истинности (табл. 3.9).
Таблица 3.9. Таблица истинности логической функции
«импликация»

в

1

1

1

1

1

1

1

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

Например, высказывание «Если число делится на 10, то оно
делится на 5» истинно, так как истинны и первое высказывание (посылка), и
второе высказывание (вывод).
Высказывание «Если число делится на 10, то оно делится на З»
ложно, так как из истинной посылки делается ложный вывод.
Однако операция логического следования несколько отличается
от обычного понимания слова «следует». Если первое высказывание (посылка)
ложно, то вне зависимости от истинности или ложности второго высказывания
(вывода) состав-

ное высказывание истинно. Это можно понимать
таким образом, что из неверной посылки может следовать что угодно.
В алгебре логики все логические функции могут быть выражены
путем логических преобразований через три базовые: логическое умножение,
логическое сложение и логическое отрицание.
Практическое задание «Функция импликации». Выразить функцию
импликации через базовые логические функции. Доказать методом сравнения таблиц
истинности, что функция импликации равносильна логическому выражению А v В.
Построить таблицу истинности функции импликации в электронных таблицах.
Построим таблицу истинности логического выражения А м В
(табл. 3.10).
Таблица З. 10, Таблица истинности логического
выражения А В

1

1

0

1

1

1

1

1

1

1

Таблицы истинности функции импликации (см. табл. 3.9) и
логического выражения А v В (см. табл. 3.10) совпадают, что и требовалось
доказать.
Получение таблицы истинности функции
] импликации
1.  В
электронных таблицах создать заготовку таблицы истинности функции импликации:
создать заголовки и ввести в столбцы А и В значения логических аргументов.
2.  В
столбце выразить логическую функцию = А v В через логические функции
электронных таблиц Microsoft Excel (в OpenOffce.org Сак
Логическое равенство (эквивалентность). Логическое равенство
(эквивалентность) образуется соединением двух высказываний в одно с помощью
оборота речи «... тогда и только тогда, когда
Логическая операция эквивалентности «А эквивалентно В»
обозначается и выражается с помощью логической функции Щ о, которая задается
соответствующей таблицей истинности (табл. 3.11).

Таблица З. 1 1. Таблица истинности логической функции
эквивалентности

в

F10 =

1

1

1

1

1

1

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

Рассмотрим, например, два высказывания: А = «Компьютер может
производить вычисления» и В = «Компьютер включен». Составное высказывание,
полученное с помощью операции эквивалентности, истинно, когда оба высказывания
либо истинны, либо ложны:
«Компьютер может производить вычисления тогда и только
тогда, когда компьютер включен».
«Компьютер не может производить вычисления тогда и только
тогда, когда компьютер не включен» .
Составное высказывание, полученное с помощью операции
эквивалентности, ложно, когда одно высказывание истинно, а другое ложно:
«Компьютер может производить вычисления тогда и толысо
тогда, когда компьютер не включен».
«Компьютер не может производить вычисления тогда и только
тогда, когда компьютер включен».
Практическое задание «Функция эквивалентности». Выразить
функцию эквивалентности через базовые логические функции. Доказать методом
сравнения таблиц истинности, что функция эквивалентности равносильна
логическому выражению (А В) ч../ (А 8' В). Построить таблицу истинности функция
эквивалентности в электронных таблицах.
Построим таблицу истинности логического выражения (А &
В) (А В) (табл. 3.12).
Таблица З. 12. Таблица истинности логического
выражения

о

1

1

1

1

1

о

о

1

1

1

О

О

1

1

Таблицы истинности функции эквивалентности
(см. табл. 3.11) и логического выражения
(А & В) ж./ (А & В) (см. табл. 3.12) совпадают, что и требовалось
доказать.
Получение таблицы истинности функции эквивалентности
1.   В
электронных таблицах создать заготовку таблиц истинности функции
эквивалентности: создать заголовки и ввести в столбцы А и В значения логических
аргументов.
2.   В
столбце выразить логическую функцию
 = (А &
В) v (А & В) через логические функции электронных таблиц Microsoft Excel
(в OpenOfce.org Calc
Контрольные вопросы
1.
Какое количество
логических функций двух аргументов существует и почему?
2.
Какие названия
логических функций двух аргументов вы знаете?
З. Какое существует количество логических функций трех
аргументов?

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

3.5. В электронных таблицах построить
таблицы истинности всех логических функций двух переменных.

                                                                                м                        о                 р
                                                                                Г-З                                                                                7-8                                              [-10                                                                        F13
С 0 ЛО»Ъ ЛСЯЪ ЛОЖЬ ГОЖ» ' ЛОЖЬ ГОЖЬ ГСЖЬ ЛЭП ИСТИНА
  ИСТИНА                                                                                ИСТИНА

0
  лояЉ лень ЛОЖЬ
  ЛОЊ ИСТИНА                                       ИСТИНА ИСТИЦА ложь ЛОЖЬ                  ЛОЖЬ
  ИСТИФ
1
  З ГСЊ ЛС»Ъ
  ИСТИНА ИС“ИАА ЛОЖЬ ЛОЖЬ исти-Ч.А истиеи ЛОЖЬ ло»-Ъ ИС                      ГОЖЬ

' 1 лОжь ИСТИНА ЛОЖЬ ИСТИНА“ ЛОЖЬ истири ЛОЊ ИСТЕ.А
  лоиЪ ИСТИНА ЛОЖ»                                                                                ложь

х ТИНА ИСТУЮ VCWHA ееТИНА ИСТИНА рожь истика

Рис. 3.8.
Таблицы истинности логических функций
3.2.4.
Логические законы и правила преобразования логических выражений
Законы логики отражают наиболее важные закономерности
логического мышления. В алгебре логики законы логики записываются в виде
формул, которые позволяют проводить равносильные преобразования логических
выражений.
Закон непротиворечия. Высказывание не может быть
одновременно истинным и ложным. Если высказывание А истинно, то его отрицание
не А должно быть ложным. Следовательно, логическое произведение высказывания и
его отрицания должно быть ложно:

Закон исключенного третьего. Высказывание может быть либо
истинным, либо ложным, третьего не дано. Это означает, что результат
логического сложения высказывания и его отрицания всегда принимает значение
истина:

Закон двойного отрицания. Если дважды отрицать некоторое
высказывание, то в результате мы получим исходное высказывание:

Законы де Моргана (законы общей инверсии для логического
сложения и для логического умножения). Общая инверсия двух логических слагаемых
равносильна логическому умножению инвертированных переменных:

Общая инверсия двух логических сомножителей равносильна
логическому сложению инвертированных переменных:

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

Логическое умножение

Логическое сложение

Правило ассоциативности. Если в логическом выражении
используется только операция логического умножения или только операция
логического сложения, то можно пренебрегать скобками или произвольно их
расставлять:

Логическое умножение

Логическое сложение

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

Дистрибутивность
  умножения относительно сложения

Дистрибутивность сложения относительно умножения

ab + ас = a(b+c) — в алгебре

Правила равносильности. Это правила отсутствия показателей
степени у результатов логического сложения и умножения переменных.
Для логического сложения:

Для логического умножения:

Правила исключения констант Для
логического сложения:

Для логического умножения:

Рассмотрим примеры применения законов логики и правил
алгебры логики для преобразования логических выражений.
Задание «Преобразование логического выражения». Упростить
логическое выражение (А & В) х./ (А В).
Воспользуемся правилом дистрибутивности и вынесем за скобки
А:

По правилу исключения констант:

Задание «Решение логического уравнения». Найти значение логической
переменной Х из логического уравнения xvB v Х м А - В,
В соответствии с приоритетами выполнения логических операций
расставим скобки в левой части логического уравнения:

Для преобразования левой части уравнения воспользуемся для
первых и вторых скобок законом де Моргана для логического сложения и для вторых
скобок законом двойного отрицания:

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

уравнение примет вид:

Согласно правилу исключения констант, Х & 1 уравнение
примет вид:

Инвертируем левую и правую части уравнения и получим решение
уравнения:

Контрольные вопросы
1. Какие правила преобразования
логических выражений справедливы и при преобразовании алгебраических выражений?

3.9. Доказать справедливость
первого А v В = А & В и второго А 8! В = А В законов де Моргана, используя
таблицы истинности.
3.10. Упростить логическое выражение: (А v В) & (А
•v В).

3.11. Решить логическое уравнение: Х & В &
Х&В = А.
3.2.5. Решение логических задач
Логические задачи обычно формулируются на естественном
языке. В первую очередь их необходимо формализовать, т. е. записать на языке
алгебры логики. Полученные логические выражения необходимо упростить и
проанализировать. Для этого иногда бывает необходимо построить таблицу
истинности полученного логического выражения.
Задание «Логическая задача». В школе в каждой из двух
аудиторий может находиться либо кабинет информатики, либо кабинет физики. На
аудиториях повесили шутливые таблички, про которые известно, что они либо обе
истинны, либо обе ложны. На первой аудитории повесили табличку «По крайней
мере, в одной из этих аудиторий размещается кабинет информатики», а на второй
аудитории — табличку с

надписью «Кабинет физики находится в
другой аудитории» . Определите, какой кабинет размещается в каждой из
аудиторий.
Переведем условие задачи на язык алгебры логики. Так как в
каждой из аудиторий может находиться кабинет информатики, то пусть:
А — «В первой аудитории находится кабинет
информатики».
В — «Во второй аудитории находится кабинет
информатики».
Поскольку в каждой аудитории обязательно размещается
какой-либо из этих двух кабинетов, отрицания этих высказываний будут
соответствовать:
А — «В первой аудитории находится кабинет
физики».
В — «Во второй аудитории находится кабинет
физики».
Высказывание, содержащееся на табличке первой аудитории,
соответствует логическому выражению:

Высказывание, содержащееся на табличке второй аудитории,
соответствует логическому выражению:

Содержащееся в условии задачи утверждение о том, что надписи
на табличках либо одновременно истинные, либо одновременно ложные,
соответствует истинности функции эквивалентности:

Выразим функцию эквивалентности через базовые логические
функции и получим:

Подставим вместо Х и У соответствующие логические
выражения:

Упростим сначала первое слагаемое. В соответствии с правилом
дистрибутивности умножения относительно сложения:

В соответствии с законом непротиворечия:

В соответствии с правилом исключения
констант:

Упростим теперь второе слагаемое. В соответствии с первым
законом де Моргана и законом двойного отрицания:

В соответствии с законом непротиворечия:

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

Полученное логическое выражение оказалось простым, и поэтому
его можно проанализировать без построения таблицы истинности. Для того чтобы
выполнялось равенство, обе логические переменные должны быть равны 1, а
соответствующие им высказывания истинны:
В — «Во второй аудитории находится кабинет
информатики» .
А — «В первой аудитории находится кабинет
физики».
Таким образом, логическая задача решена: в первой аудитории
находится кабинет физики, а во второй кабинет информатики.
Компьюте ый рактикум
Windows-CD
3.6. Решить приведенную в параграфе
логическую задачу методом построения в электронных таблицах таблицы истинности
логического уравнеНИЯ.

E
С

Гот*

3.3. Логические основы
устройства компьютера
3.3.1. Базовые логические элементы
Дискретный преобразователь, который после обработки входных
двоичных сигналов выдает на выходе сигнал, являющийся значением одной из
логических операций, называется логическим элементом. Базовые логические
элементы реалиЗуют три базовые логические операции:
о логический элемент «И» (конъюнктор)
логическое умножение;  логический элемент «ИЛИ» (дизъюнктор)
логическое сложение;  логический элемент «НЕ» (инвертор)
инверсию.
Любая логическая операция может быть представлена в виде
комбинации трех базовых, поэтому любые устройства компьютера, производящие
обработку или хранение информации (сумматоры в процессоре, ячейки памяти в
оперативной памяти и др.), могут быть собраны из базовых логических элементов,
как из кирпичиков.
Логические элементы компьютера оперируют с сигналами,
представляющими собой электрические импульсы. Есть импульс — логическое
значение сигнала 1, нет импульса — значение О. На вход логического элемента
поступают сигналы-аргументы, на выходе появляется сигнал-функция.
Преобразование сигнала логическим элементом задается
таблицей состояния, которая фактически является таблицей истинности,
соответствующей логической функции.
Логический элемент «И». На входы А и В логического элемента
последовательно подаются четыре пары сигналов, а на выходе получается
последовательность из четырех сигналов, значения которых определяются в
соответствии с таблицей истинности операции логического умножения. На рис. 3.8
изображена логическая схема элемента «И».
Простейшей моделью логического элемента «И» может быть
электрическая схема, состоящая из источника тока, лампочки и двух выключателей.
Данную схему можно со-

и

Рис. 3.8.
Логический элемент «И»

брать из реальных электрических элементов
или с использованием компьютерного конструктора «Начала электроники» (рис.
3.9).

Рис. 3.9. Электрическая схема модели логического
элемента «И» и ее реализация в компьютерном конструкторе «Начала электроники»
Из схемы видно, что если оба выключателя замкнуты (на
обоих входах 1), по цепи идет ток и лампочка горит (на выходе 1). Если хотя бы
один выключатель разомкнут (на одном из входов О), то тока нет и лампочка не
горит (на выходе О).
Логический элемент «ИЛИ» (рис. 3.10). На входы А и В
логического элемента последовательно подаются четыре пары сигналов, а на выходе
получается последовательность из четырех сигналов, значения которых
определяются в соответствии с таблицей истинности операции логического
сложения.

или

Рис. 3.10.
Логический элемент «ИЛИ»
Простейшей моделью логического элемента «ИЛИ» может быть электрическая
схема, которую можно собрать из реальных электрических элементов или с
использованием компьютерного конструктора «Начала электроники» (рис. 3.11).

Рис. 3.11.
Электрическая схема модели логического элемента «ИЛИ» и ее реализация в
компьютерном конструкторе «Начала электроники»

Из схемы видно, что, если хотя бы один выключатель замкнут
(на входе 1), по цепи идет ток и лампочка горит (на выходе 1).
Логический элемент «НЕ» (рис. 3.12). На вход А логического
элемента последовательно подаются два сигнала, на выходе получается
последовательность из двух сигналов, значения которых определяются в
соответствии с таблицей истинности логической инверсии.

Рис. 3.12.
Логический элемент «НЕ»
Простейшей моделью логического элемента «НЕ» может быть
электрическая схема инвертор, которую можно собрать из реальных электрических
элементов или с использованием компьютерного конструктора «Начала электроники»
(рис. 3.13).

Рис. 3.13. Электрическая схема модели логического
элемента «НЕ» и ее реализация в компьютерном конструкторе «Начала электроники»
В схеме инвертора один вход и один выход. Когда
переключатель не замкнут (на входе О), лампочка горит (на выходе 1). Наоборот, когда
кнопку переключателя замыкают (на входе 1), лампочка гаснет (на выходе О).
Контрольные вопросы
1. Объясните действие электрических
схем, реализующих модели логических элементов, с точки зрения законов
постоянного тока.

КомпьютеВный
Ьрактикум
3.7. В редакторе схем нарисовать
логические и электрические схемы логических элементов «И», «ИЛИ» и «НЕ» .
3.8. В компьютерном конструкторе
«Начала электроники» создать модели электрических схем логических элементов
«И», «ИЛИ» и «НЕ».
3.9. В редакторе схем нарисовать
логические схемы логических функций (см. табл. 3.8, задание 3.7).

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

процессора является сумматор, который как
раз и обеспечивает такое сложение.
Полусумматор. Вспомним, что при сложении двоичных чисел
образуется сумма в данном разряде, при этом возможен перенос в старший разряд.
Обозначим слагаемые А и В, перенос Р и сумму S. Таблица сложения одноразрядных
двоичных чисел с учетом переноса в старший разряд выглядит следующим образом
(табл. 3.13).
Таблица З. 13. Таблица сложения одноразрядных двоичных
чисел

Слагаемые

Перенос

Сумма

р

О

о

1

1

1

1

1

1

1

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

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

Построим таблицу истинности для данного логического
выражения (табл. 3.14) и убедимся в правильности нашего предположения.
Таблица З. 74. Таблица истинности логической
функции

о

О

1

О

1

1

1

1

1

О

1

1

1

1

1

1

1

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

Рис. 3.14.
Полусумматор двоичных чисел
Данная схема называется полусумматором, так как реализует
суммирование одноразрядных двоичных чисел без учета переноса из младшего
разряда.
Полный одноразрядный сумматор. Рассмотрим схему сложения
двух п-разрядных двоичных чисел ап ...а.ај 1 ...ао и

                                         а           а.
а ...ао

При сложении цифр Ј-го разряда складываются а. и Ы, а также
рј_1 перенос из Ј—1-го разряда. Результатом будет Si —сумма И pt перенос в
старший разряд. Одноразрядный двоичный сумматор — это устройство с тремя
входами и двумя выходами.

Таким образом, полный одноразрядный сумматор должен иметь
три входа: А, В — слагаемые и Ро — перенос из младшего разряда и два выхода:
сумму S и перенос Р. Таблица сложения в этом случае будет иметь следующий вид
(табл. 3.15).
Таблица З. 75. Таблица сложения
одноразрядных двоичных чисел с учетом переноса из младшего разряда

Слагаемые

Перенос из младшего разряда

Перенос

Сумма

в

О

о

о

1

1

1

1

1

1

1

О

О

1

1

1

1

1

1

1

1

1

1

1

1

1

Идея построения полного сумматора точно такая же, как и
полусумматора. Из таблицы сложения видно, что перенос (логическая переменная Р)
принимает значение 1 тогда, когда хотя бы две входные логические переменные
одновременно принимают значение 1. Таким образом, перенос реализуется путем
логического сложения результатов попарного логического умножения входных
переменных А, В, Ро. Формула переноса получает следующий вид:

Для получения значения суммы (логическая переменная S)
необходимо результат логического сложения входных переменных А, В, Ро умножить
на инвертированный перенос Р:

Данное логическое выражение дает правильные значения суммы
во всех случаях, кроме одного, когда все входные логические переменные
принимают значение 1. Действительно:
1,
о.
Для получения правильного значения суммы (для данного случая
переменная S должна принимать значение 1) необ-

ходимо сложить полученное выше выражение
для суммы с результатом логического умножения входных переменных А, В, Р о. В
результате логическое выражение для вычисления суммы в полном сумматоре
принимает следующий вид:
                               S
= (A v B Ро) Ром (А                     Ро).
Теперь можно построить логическую схему полного
одноразрядного сумматора (рис. 3.15).

Рис. 3.15.
Сумматор двоичных чисел
Многоразрядный сумматор процессора состоит из полных
одноразрядных сумматоров. На каждый разряд ставится одноразрядный сумматор,
причем выход (перенос) сумматора младшего разряда подключен ко входу сумматора
старшего разряда.
Контрольные вопросы
1. Какие значения будут иметь перенос
и сумма при суммировании одноразрядных двоичных чисел и переноса из младшего
разряда, равных 1? Проследите по логической схеме сумматора.
Компьюте ый рактикум
Windows-CD
3.10. В редакторе схем нарисовать логические схемы полусумматора и
сумматора одноразрядных двоичных чисел.

З.З.З. Триггер
Важнейшей структурной единицей оперативной памяти
компьютера, а также внутренних регистров процессора является триггер. Триггер
может находиться в одном из двух устойчивых состояний, что позволяет
запоминать, хранить и считывать 1 бит информации.
Триггер можно построить из двух логических элементов
«ИЛИ» и двух элементов «НЕ». При этом выход первого элемента «НЕ» соединен со
входом второго элемента «ИЛИ», а выход второго элемента «НЕ» соединен со входом
первого элемента «ИЛИ». Триггер имеет установочный вход S (от англ. set —
установка) и вход сброса R (от англ. reset сброс), а также выход Q (рис. 3.16).

Для записи 1 бита на вход S (установочный) подается сигнал
1. Последовательно рассмотрев по логической схеме прохождение сигнала, видим,
что на выходе триггера Q устанавливается 1. Триггер переходит в это состояние и
будет находиться в нем и после того, как сигнал на входе S исчезнет. Таким
образом, триггер будет устойчиво хранить 1 бит.
Для того чтобы сбросить бит данных и подготовиться к
приему нового бита, подается сигнал 1 на вход R (сброс), после чего триггер
возвратится к исходному «нулевому» состоянию.
Подача на оба входа S и R логической единицы может привести
к неоднозначному результату, поэтому такая комбинация входных сигналов
запрещена (табл. З. 16).
Таблица З. 16. Таблица состояний входов и выходов
триггера

Входы

Выход Q

1

1

1

Контрольные вопросы
1. Проследите по логической схеме
триггера, что происходит после поступления сигнала 1 на вход R (сброс).

Компьюте$ный Крактикум

3.11. В редакторе схем нарисовать
логическую схему триггера.

Глава 4

Алгоритмизация и основы
объектно-ориентированного программирования

VisualStudio-CD
В процессе изучения данной темы рекомендуется использовать программное
обеспечение для операционной системы Windows:
     систему
объектно-ориентированного программирования Visual Basic 2005;
     систему
объектно-ориентированного программирования Visual С#;
е систему объектно-ориентированного
программирования Visual Ј#.
TurboDelphi-CD
 систему
объектно-ориентированного программирования Тифо Delphi.
4.1. Алгоритм
и кодирование основных алгоритмических структур
4.1.1.
Алгоритм и его свойства
Алгоритмы могут описывать процессы преобразования самых
разных объектов. Широкое распространение получили вычислительные алгоритмы,
которые описывают преобразование числовых данных. Само слово «алгоритм»
происходит от «algorithmi» — латинской формы написания имени выдаюЩеГОСЯ математика
IX века аль-Хорезми, который сформулировал правила выполнения арифметических
операций.
Результативность и дискретность. Алгоритм должен
обеспечивать преобразование объекта из начального состояния в конечное
состояние за определенное число дискретных шагов.

Массовость. Один и тот же алгоритм может применяться к
большому количеству однотипных объектов.
Детерминированность. Исполнитель должен выполнять команды
алгоритма в строго определенной последовательности.
Выполнимость и понятность команд. Алгоритм должен содержать
команды, входящие в систему команд исполнителя и записанные на понятном для
исполнителя языке.

Алгоритм — это строго
детерминированная последовательность действий, описывающая процесс преобразования
объекта из начального состояния в конечное, записанная с помощью понятных
исполнителю команд.

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

Элемент блок-схемы

Назначение элемента блок-схемы

Прямоугольник с закругленными
  углами, применяется для обозначения начала или конца алгоритма

Параллелограмм, предназначен для
  описания ввода или вывода данных, имеет один вход вверху и один выход внизу

ПослеДовапельность
    команд

Прямоугольник, применяется для
  описания линейной последовательности команд, имеет один вход вверху и один
  выход внизу

Элемент блок-схемы

Назначение элемента блок-схемы

Нет

Ромб, служит для
  обозначения условий в алгоритмических структурах «ветвление» и «выбор», имеет
  один вход верху и два выхода (налево, если условие истинно, и направо, если
  условие ложно)

Подпрограмма

Прямоугольник в
  прямоугольнике, применяется для вызова отдельно описанного алгоритма
  (подпрограммы)

Объявление переменных

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

Контрольные вопросы
1. Какие из нижеперечисленных правил
являются алгоритмами? Ответ обоснуйте:
•
орфографические
правила;
•
правила
выполнения арифметических операций;
•
правила техники
безопасности;
•
правила перевода
чисел из одной системы счисления в другую.
4.1.2. Алгоритмические структуры «ветвление» и «выбор»
Алгоритмическая структура «ветвление». В отличие от линейных
алгоритмов, в которых команды выполняются последовательно одна за другой, в
алгоритмическую структуру «ветвление» входит условие, в случае истинности
условия реализуется последовательность команд Серия 1, в случае ложности
последовательность команд Серия 2.
В алгоритмической структуре «ветвление» одна или
другая серия команд выполняется в зависимости от истинности условия.
Алгоритмическая структура «ветвление» может быть
зафиксирована графически, с помощью блок-схемы (рис. 4.1).
На языках объектно-ориентированного
программирования алгоритмическая структура «ветвление» кодируется с
использованием оператора if. После первого ключевого слова .if должно быть
размещено условие. После ключевого слова Then (в языках Visual

С# и Visual Ј# оно
  отсутствует)

идет
  последовательность команд (Серия 1), которая должна выполняться, если условие
  прини-

Рис. 4.1. Алгоритмическая структура «ветвление»

мает значение «истина». После ключевого
слова Else размещается последовательность команд (Серия 2), которая должна
выполняться, если условие принимает значение «ложь».
В сокращенной форме оператора ключевое слово Else
отсутствует. (Необязательные части оператора записываются в квадратных
скобках.) Тогда, если условие ложно, выполнение оператора условного перехода
заканчивается и выполняется следующая строка программы.

Плакаты. Таблица 7 «Кодирование
алгоритмических структур «ветвление» и «выбор»

Алгоритмическая структура «выбор». Алгоритмическая структура
«выбор» применяется для реализации ветвления со многими вариантами серий
команд. В структуру выбора входят несколько условий, проверка которых
осуществляется в последовательности их записи в структуре выбора. При
истинности одного из условий (Условие 1 или Условие 2 и т. д.) выполняется
соответствующая последовательность команд (Серия 1 или Серия 2 и т. д.). Если
ни одно из условий не будет истинно, то будет выполнена последовательность
команд Серия.

В алгоритмической структуре «выбор»
выполняется одна из нескольких последовательностей команд при  истинности соответствующего условия.

Алгоритмическая структура «выбор» может быть зафикСирована
графически, с помощью блок-схемы (рис. 4.2).
На языках объектно-ориентированного программирования
алгоритмическая структура «выбор» кодируется с использо-

Рис. 4.2.
Алгоритмическая структура «выбор»
ванием оператора выбора. На языке программирования
Visual Basic .NET оператор выбора начинается с ключевых слов Se1ect Case, на
языках Visual С# и Visual Ј# — с ключевого слова switch, а на языке Turbo
Delphi с ключевого слова Case.
После ключевого слова записывается выражение (переменная или
арифметическое выражение). Заданное выражение сравнивается с определенными
значениями (или условиями). При истинности одного из условий начинает
выполняться соответствующая серия команд. Если ни одно из условий не истинно,
то будет выполнена серия команд после ключевого слова E1se (в языках Visual
Basic .NET и Turbo Delphi) или ключевого слова defau1t (в языках Visual С# и
Visual Ј#).
В сокращенной форме оператора ключевое слово E1se

(default) отсутствует. (Необязательные части оператора заПИСЫВаНУГСя в
квадратных скобках.) Тогда, если все условия ложны, выполнение оператора выбора
заканчивается и выполняется следующая строка программы.

Плакаты. Таблица 7 «Кодирование
алгоритмических структур «ветвление» и «выбор»

З ада ния
4.1. Составить и зафиксировать в форме
блок-схемы алгоритм тестирования.
Практическая работа 4.2. Проект «Тест»
4.2. Составить и зафиксировать в форме
блок-схемы алгоритм выставления отметки в зависимости от количества ошибок.
4.7. Графический интерфейс. Проект «Отметка»
4.1 .З. Алгоритмическая структура «цикл»
В алгоритмическую структуру «цикл» входит серия команд,
выполняемая многократно. Такая последовательность команд называется телом
цикла.
В алгоритмической структуре «ЦИКЛ» серия команд (тело
цикла) выполняется многократно.
Циклические алгоритмические структуры бывают двух типов:
 циклы со счетчиком, в которых тело цикла
выполняется определенное количество раз; о циклы по условию, в которых тело
цикла выполняется, пока истинно условие.
Цикл со счетчиком. Цикл со счетчиком используется, когда
заранее известно, какое число повторений тела цикла необходимо выполнить.
Количество повторений задается с использованием счетчика.

Когда заранее известно, какое число повторений тела цикла необходимо выполнить,
можно воспользоваться оператором цикла со счетчиком E'or. В заголовке цикла
устанавливается начальное значение переменной Счетчик, определяется величина ее
конечного значения и величина изменения значения за один шаг. Затем
располагаются многократно выПОЛНЯЮЩИеСЯ операторы, являющиеся телом цикла.
плакаты. Таблица 8 «Кодирование
алгоритмической структуры «ЦИКЛ»

Цикл с условием. Цикл с условием используется, когда заранее
неизвестно, какое количество раз должно повториться тело цикла. В таких случаях
количество повторений зависит от некоторого условия. Цикл называется циклом с
предусловием, если условие выхода из цикла стоит в начале, перед телом цикла.
Цикл с предусловием не выполняется даже один раз в случае ложности условия.
Цикл с предусловием реализуется с помощью инструкций While
(в языке Visual Basic .NET Do Whi1e). Проверка условия выхода из цикла
проводится до начала цикла с помоЩью ключевого слова Whi1e. Ключевое слово
Whi1e обеспечивает выполнение цикла, пока истинно условие. Как тольКо условие
примет значение «ложь», выполнение цикла заКОНЧИТСЯ.
В языке Visual Basic .NET используется также ключевое слово
Until. Ключевое слово Until обеспечивает выполнение цикла до тех пор, пока
условие не станет истинным, т. е. пока условие имеет значение «ложь». Как
только условие примет значение «истина», выполнение цикла закончится.
Цикл называется циклом с постусловием, если условие выхода
из цикла стоит в конце, после тела цикла. Цикл с постусловием выполняется
обязательно, как минимум, один раз, независимо от того, истинно условие или
нет.
Цикл с постусловием реализуется с помощью инструкций Do (в
языке Turbo Delphi Repeat). Проверка условия выхода из цикла проводится после
цикла с помощью ключевого слова While (в языке Turbo Delphi Unti1). Как только
условие примет значение «ложь», выполнение цикла закончится. В языке Visual
Basic .NET используется также ключевое слово Unti1.
Плакаты. Таблица 8 «Кодирование
алгоритмической структуры «цикл»

Алгоритмическая структура «цикл» может быть зафиксирована графически, с помощью
блок-схемы.

цикл со счетчиком

цикл с предусловием

цикл с постусловием

Рис. 4.3.
Алгоритмическая структура «цикл»
Вспомогательные алгоритмы. При разработке сложного алгоритма
целесообразно стараться выделить в нем последовательности действий, которые
выполняют решение какихлибо подзадач и могут многократно вызываться из
основного алгоритма. Такие алгоритмы называются вспомогательными и в
алгоритмических языках программирования реализуются в форме подпрограмм,
процедур или функций, которые вызываЮТСЯ из основной программы.

З а д а
ни я
4.3. Составить и зафиксировать в
форме блок-схемы алгоритм вычисления факториала числа.
4.10. Итерация и рекурсия. Проект «Факториал»
4.4. Составить и зафиксировать в форме
блок-схемы алгоритм определения максимального элемента в массиве.

4.16.2. Поиск элемента в массивах.
Проект «Поиск максимального элемента»
4.2. История развития
языков программирования

Выполнение алгоритма может быть автоматически реализовано техническими
устройствами, среди которых особое место занимает компьютер. При этом говорят,
что компьютер исполняет программу (последовательность команд), реализующую
алгоритм.
Алгоритм, записанный на «понятном» компьютеру языке
программирования, называется программой.
Машинный язык. На заре компьютерной эры, в 40—50-е годы ХХ
века, программы писались на машинном языке (computer language) и представляли
собой очень длинные последовательности нулей и единиц. Составление и отладка
таких программ были чрезвычайно трудоемким делом. Программы на машинных языках
были машинно зависимыми, т. е. для каждой ЭВМ необходимо было создавать свою
собственную программу, так как в ней в явной форме учитывались аппаратные
ресурсы ЭВМ.
Ассемблер. В начале 50-х годов ХХ века были созданы языки
программирования ассемблеры (assembly language). Вместо одних только нулей и
единиц программисты теперь могли пользоваться операторами (МОУ, ADD, SUB и т.
д.), которые были похожи на слова английского языка. Для преобразования текста
программы на ассемблере в понятный компьютеру машинный код использовался
компилятор, который
загружался в оперативную память ЭВМ. Программы на
ассемблере были также машинно зависимыми, т. е. ассемблеры для различных процессоров
существенно различались между собой.
Первые языки программирования высокого уровня. С середины
50-х годов ХХ века начали создаваться первые языки программирования высокого
уровня (high-level languages). Эти языки были машинно независимыми языками программирования,
так как использовали универсальную компьютерную логику и не были привязаны к
типу ЭВМ. Однако для каждого языка и каждого типа ЭВМ должны были быть
разработаны собственные компиляторы, которые загружались в оперативную память.
Языки программирования высокого уровня создавались и
использовались для решения разных задач:

язык FORTRAN (расшифровывается FORmula TRANslator транслятор формул) был
предназначен для научных и технических расчетов;  язык COBOL (Соттоп
Business-Oriented Language стандартный язык для делового применения)
в основном предназначался для коммерческих приложений, обрабатывавших большие
объемы нечисловых данных; о язык BASIC (Beginner's All-Purpose Symbolic
Instructiоп Code универсальный язык символьных инструкций для начинающих)
отличается простотой изучения и был ориентирован на начинающих программистов.
Алгоритмические языки программирования. С начала 80-х годов
ХХ века начали создаваться алгоритмические языки программирования, которые
позволили программистам перейти к структурному программированию. Отличительной
чертой этих языков было использование операторов ветвления, выбора и цикла и
отказ от хаотического использования оператора goto. Наибольшее влияние на
переход к структурному алгоритмическому программированию оказали:  язык Pascal
(назван его создателем Никлаусом Виртом в честь великого физика Блеза Паскаля)
— алгоритмический язык, который позволяет легко кодировать основные
алгоритмические структуры;  язык С («Си»), позволяющий создавать
быстро и эффективно выполняющийся программный код.
Языки объектно-ориентированного программирования. С 90-х
годов ХХ века начали создаваться объектно-ориентированные языки
программирования. В основу этих языков были положены программные объекты,
которые объединяли данные и методы их обработки. Необходимо подчеркнуть, что в
языках объектно-ориентированного программирования сохранялся алгоритмический
стиль программирования. С течением времени для этих языков были разработаны
интегрированные среды разработки, позволяющие визуально конструировать
графический интерфейс приложений:  язык С++ является прямым потомком
алгоритмического языка С;  язык 0bject Pascal был разработан
компанией Borland на основе алгоритмического языка Pascal. После создания
интегрированной среды разработки система программирования получила название
Delphi, а свободно распространяемая версия — Turbo Delphi;  язык Visual
Basic был создан корпорацией Microsoft на основе языка QBasic для разработки
приложений с графическим интерфейсом в среде операционной системы Windows.

Языки программирования для компьютерных сетей. В 90-е годы ХХ века в связи с
бурным развитием Интернета были созданы языки, обеспечивающие межплатформенную
совместимость. На подключенных к Интернету компьютерах с различными
операционными системами (Windows, Linux, Мас 0S и др.) могли выполняться одни и
те же программы. Исходная программа на таких языках компилируется в
промежуточный код, который исполняется на компьютере встроенной в браузер
виртуальной машиной:
     язык
Java, полноценный объектно-ориентированный язык, был разработан фирмой Sun
Microsystems для создания сетевого программного обеспечения;
     язык
JavaScript, язык сценариев М7еЬ-страниц, разработан компанией Netscape.
Языки программирования на платформе .NET. В настоящее время
многие программисты выбирают интегрированную систему программирования Visual
Studio .NET на платформе .NET Framework, разработанной корпорацией Microsoft.
Эта ПЛатформа предоставляет возможность создавать приложения в различных
системах объектно-ориентированного програмМирования, в которых для создания
программного кода испоЛЬЗУЮТСЯ объектно-ориентированные языки программирования,
в том числе:
     на
языке Visual Basic .NET, созданном на основе языка Visual Basic и сохраняющем
простоту своих предшественников;  на языке Visual С# (читается С-шарп),
созданном на основе языков С++ и Java;  на языке Visual Ј# (читается Ј-шарп),
созданном на основе языков Java и JavaScript.
История
развития языков программирования

0bject
  Pascal, 1989

Delphi, 1995

Тифо Delphi,
  2006

Pascal, 1970
BASC, 1964 —»

СОВОЕ, 1959

FORTRAN, 1954

Ассемблер, 1951

Машинный язык, 1945

1945              1955             1965          1975            1985           1995            2005
Рис. 4.4.
История развития языков программирования
Контрольные вопросы
1.  В чем состоит преимущество языков
высокого уровня перед машинным языком и ассемблером?
2.  Каковы характерные особенности
алгоритмических языков программирования? Объектно-ориентированных языков
программирования?
З. Какими причинами было обусловлено
появление языков Java и JavaScript?
4. На основе каких языков возникли
языки программирования на платформе .NET?
4.3. Введение в
объектно-ориентированное визуальное программирование
4.3.1. Объекты: свойства и методы
Объекты (0bjects). Основной единицей в
объектно-ориентированном программировании является программный объект, который
объединяет в себе как описывающие его свойства, так и действия объекта
(процедуры) методы. Если говорить образно, то объекты это существительные,
свойства объекта это прилагательные, а методы объекта — это глаголы.

Программные объекты обладают свойствами, имеют методы,
для них можно описать реакцию на события.

Классы объектов являются «шаблонами», определяющими наборы свойств, методов и
событий, по которым создаются объекты. Основными классами объектов являются
объекты, реализующие графический интерфейс проектов.
Объект, созданный по «шаблону» класса объектов, является
экземпляром класса и наследует весь набор свойств, методов и событий данного
класса. Каждый экземпляр класса имеет уникальное для данного класса имя.
Различные экземпляры класса обладают одинаковым набором свойств, однако
значения свойств у них могут отличаться.
Свойства объектов (Properties). Каждый объект обладает
определенным набором свойств. Существует несколько основных ситуаций, в которых
можно менять свойства объектов. Во время разработки проекта [design] можно
установить первоначальные значения свойств объекта.
В режиме выполнения проекта run„: можно установить значения
свойств объекта с использованием программного кода. Для присваивания свойству
объекта нового значения в левой части строки программного кода необходимо
указать имя объекта и затем название свойства. В правой части строки необходимо
записать конкретное значение свойства. Например, программный код вывода на
надпись текста в различных языках программирования будет выглядеть следующим
образом.

язык Visual Basic .NET:

язык Тифо Delphi:
Labe11 .Captio,-. : —
В программном коде для доступа к свойствам
и методам используется точечная нотация  при которой имена
объектов, свойств и методов отделяются друг от друга знаком точка «.» .
Методы объектов (Methods). Для того чтобы объект выполнил
какую-либо операцию, необходимо применить метод, которым он обладает. Многие
методы имеют аргументы, которые позволяют задать параметры выполняемых
действий. Обратиться к методу объекта можно также с использованием точечной
нотации, причем аргументы метода заключаются в скобки. Например, для добавления
элемента в список в языках объектно-ориентированного программирования
используется метод Add ( ) .

язык Visual Basic .ГЧЕТ.•
ListBox1 . !t-oms . Acici Эпомсн гг списка
”)
Язык Visuat C#•.
listBox1 . - -oms .Aad Эломонс
Язык Visual Ј#:
2.istBoxi .get -er:s ( ) .Add Элемент
Язык Turbo Delphi:

Контрольные вопросы
1.
Чем различаются
понятия «класс объектов» и «экземпляр класса»?
2.
В экземпляре
класса можно изменить можно набор свойств? Набор методов? Значения свойств?
4.32. События
События (Events). Событие представляет собой изменение
некоторого состояния, распознаваемое объектом. Для реакции на это изменение
могут быть описаны некоторые методы обработчики, обрабатывающие события в
программном коде. Событие может создаваться пользователем (например, щелчок
мышью или нажатие клавиши) или быть результатом воздействия других программных
объектов. Каждый элемент управления может реагировать на различные события,
однако есть события (например, C:.ick — щелчок), на которые реагирует
большинство типов элементов управления.
Обработчик события. Для каждого события можно
запрограммировать обработчик события (событийную процедуру). Если пользователь
производит какое-либо воздействие на элемент графического интерфейса (например,
щелчок), в качестве обработчика выполняется некоторая последовательность
действий в форме процедуры.
Каждый обработчик события представляет собой процедуру,
которая реализует определенный алгоритм. Создание программного кода обработчика
события производится с использованием алгоритмических структур различных типов
(линейная, ветвление, выбор или цикл).

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

Имя обработчика события (событийной процедуры) включает в
себя имя объекта и имя события. После имени событийной процедуры в скобках указываются
параметры, которые позволяют правильно обработать событие. В событийной
процедуре на языках .NET существует два параметра, а в языке Turbo Delphi один
параметр.
Ниже на четырех языках программирования
показан пустой обработчик события с о к элемента управления

Язык Visual Basic .NET:
Private Sub Butto.“.1 С 11 с К (ByVa1
sender As System .Object, ByVal е As Systo.T.. EventArgs)
Hand1es Вис соп л- .Click
End Sub
Язык Visua| private void button1 о-1  с К (object sender, System.EventArgs
е)

Язык VisuaI private
void bu:-t-on'-(0bj ect sender, System.EventArgs е)
Язык Тифо Delphi:
procedure TForm.i .Button1C1ick
(Sender: 'P Ob •:ect) ; begin end ;

Первый параметр, sender, предоставляет ссылку на объект,
КОТОРЫЙ вызывает событие. Например, при щелчке мышью по кнопке наступает
событие C1ick данной кнопки и ее адрес передается обработчику события и
сохраняется в аргументе sender.

SEutton
Clicks
Delta
Empty
• GetType

В языках программирования на платформе .NET
используется и второй параметр е, который передает данные, характерные для
обрабатываемого события. Этот параметр обычно имеет тип System. EventAras,
однако существуют события, которые требуют особый тип данных.
Например, если обрабатываются

события мыши, то
  используется пара-

Рис. 4.5. Возможные свойства
  аргумента е

метр MouseEven tArgs. С помощью этого
параметра можно получить сведения о координатах мыши, какая была нажата кнопка
и сколько было сделано щелчков. Для вывода всех свойств аргумента е (рис. 4.5)
достаточно ввести в процедуре обработчика события:

Контрольные вопросы
1. В чем состоит различие между
обработчиками событий в языках программирования на платформе .NET и событийными
процедурами в языке Turbo Delphi?
4.3.3. Проекты и приложения
Проект (Project). С одной стороны, система
объектноориентированного визуального программирования является системой
программирования, так как позволяет кодировать алгоритмы на данном языке. С
другой стороны, система объектно-ориентированного визуального программирования
является средой проектирования, так как позволяет осуществлять визуальное
конструирование графического интерфейса.
Результатом процессов программирования и проектирования
является проект, который объединяет в себе программный код и графический
интерфейс.
В объектно-ориентированном программировании проект может
включать несколько форм, причем каждой форме, с помощью которой реализуется
графический интерфейс проекта, соответствует свой программный модуль формы.
Кроме того, в состав проекта могут входить отдельные самостоятельные
программные модули.

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

Решения (S01ution). В системах объектно-ориентированного
программирования Visual Basic .NET, Visual С# и Visual Ј# проекты объединяются
в решения, а в системе Turbo Delphi в группы. Решение (группа) включает
один или несколько проектов, которые в упорядоченном виде в системах Visual
Basic .NET, Visual С# и Visual Ј# отображаются в Обозревателе решений (рис.
4.8), а системе Turbo Delphi в окне
Project Manager (рис. 4.11). Решение
(группа) создается автомагически при создании нового проекта и при
необходимости к решению можно добавлять новые проекты. Решения (группы)
позволяют работать с несколькими проектами в пределах одного экземпляра системы
объектно-ориентированного программирования.
Интерпретаторы и компиляторы. Для того чтобы проЦеССОР мог
выполнить программу, эта программа и данные, с которыми она работает, должны
быть загружены в оперативную память.
Итак, мы создали программу на языке программирования
(некоторый текст) и загрузили ее в оперативную память. Теперь мы хотим, чтобы
процессор ее выполнил, однако процессор «понимает» команды на машинном языке, а
наша программа написана на языке программирования. Как быть?

Необходимо, чтобы в оперативной памяти находилась программа-переводчик
(транслятор), автоматически переводящая с языка программирования на машинный
язык. Компьютер может выполнять программы, написанные только на том языке
программирования, транслятор которого размещен в оперативной памяти компьютера.
Трансляторы языков программирования бывают двух типов:
интерпретаторы и компиляторы. Интерпретатор это программа,
которая обеспечивает последовательный «перевод» инструкций программы на
машинный язык с одновременным их выполнением. Поэтому при каждом запуске
программы на выполнение эта процедура повторяется. Достоинством интерпретаторов
является удобство отладки программы (поиска в ней ошибок), так как возможно
«пошаговое» ее исполнение, а недостатком сравнительно малая скорость
выполнения.
Компилятор действует иначе, он переводит весь текст
программы на машинный язык и сохраняет его в исполнимом файле (обычно с
расширением ехе). Затем этот уже готовый к исполнению файл, записанный на
машинном языке, можно запускать на исполнение многократно. Достоинством
компиляторов является большая скорость выполнения программы, а недостатком
трудоемкость отладки, так как невозможно пошаговое выполнение программы.
Системы объектно-ориентированного программирования позволяют
программисту контролировать в интегрированной среде выполнение программ с
помощью отладчика. Это дает возможность отлаживать программу пошагово.

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

Этапы разработки проектов. Создание проектов и приложениЙ в
системах объектно-ориентированного программирования можно условно разделить на
несколько этапов:
1.
Создание графического интерфейса проекта. На форму помещаются
элементы управления, которые должны обеспечить взаимодействие проекта с
пользователем.
2.
Установка значений свойств объектов графичес кого интерфейса. В
режиме конструирования задаются значения свойств формы и элементов управления,
помещенных ранее на форму.
З. Создание и редактирование
программного кода. Создаются заготовки обработчиков событий (двойной ЩЕПчок
мышью по элементу управления вызывает заготовку обработчика того события,
которое является для данного элемента управления наиболее часто используемым).
Затем в редакторе программного кода производится ввод и редактирование
программного кода обработчиков событий.
4.    Сохранение
проекта. Так как проекты включают в себя несколько файлов, рекомендуется для
каждого проекта создать отдельную папку на диске. Сохранение проекта
производится с помощью пунктов меню Файл.
5.    Компиляция
проекта в приложение. Сохраненный проект может выполняться только в самой
системе программирования. Для того чтобы преобразовать проект в приложение,
которое может выполняться непосредственно в среде операционной системы,
необходимо выполнить компиляцию проекта, в процессе которой приложение
сохраняется в исполнимом файле (с расширением ехе).
Контрольные вопросы
1.  В чем состоит различие между
интерпретаторами и компиляторами?
2.  В чем состоит различие между проектом
и приложением?
4.4. Система
объектно-ориентированного программирования
Microsoft Visual
Studio .NET
4.4.1. Платформа .NET Framework
Платформа .NET Framework является основой системы
программирования Microsoft Visual Studio .NET. Она позволяет программировать на
различных языках (Visual Basic .NET, Visual С#, Visual Ј# и др.) и достаточно
легко переносить приложения с одного языка программирования на другой.
Платформа .NET Framework существует в
двух версиях:  .NET Framework 1.1 входит в состав
Visual Studio .NET 2003; о .NET Framework 2.0 входит в состав Visual Studio
2005 Express Edition.

Общеязыковая среда выполнения программ. Основным компонентом .NET Framework
является общеязыковая среда выполнения программ (CLR — Соттоп Language
Runtime), которая обеспечивает компиляцию программ в два этапа. Сначала
программа, написанная на объектно-ориентированном языке, компилируется в
промежуточный код на общем промежуточном языке (СП, — Соттоп Intermediate
Language), а затем он компилируется в машинный код.
Язык CIL по своему назначению и набору
команд похож на язык ассемблер, однако он ориентирован не на систему команд
конкретного кремниевого процессора, а на систему команд общеязыковой среды
выполнения программ CLR.
Проект «Консольное приложение». На платформе .NET Framework
с использованием языков программирования Visual Basic .NET, Visual С# и Visual
Ј# создать консольное приложение (т. е. приложение, не имеющее графического
интерфейса), которое выводит название языка программирования.
Проект «Консольное приложение» на языке
программирования Visual Basic .NET
1.
В простом
текстовом редакторе, например в Блокноте, введем программный код консольного
приложения. Imports System
Class He110VB
Shared Sub Main ( )
Cons01e. Write (”Язьж программирования Visua1 Basic”)
Епа Sub
End Class
2.  Сохранить
программный код консольного приложения в файле HelloVB.vb на жестком диске,
например в папке

Для компиляции программного кода необходимо использовать
компилятор командной строки языка программирования Visual Basic .NET vbc.exe,
который входит в состав платформы .NET Framework. Компилятор находится в папке

З. Скопировать компилятор командной строки мЬс.ехе в пап-

Создадим исполнимый файл консольного приложения
HeIloVB.exe.
4.   Запустить окно
командной строки командой
[Пуск-Программы-СтанДартныеКоманДная
строка].
5.   В окне
командной строки перейти на диск D:, а затем с использованием команды СО
(change directory) перейти в папку  где хранятся файл с программным кодом
консольного приложения и компилятор программной строки.
6.   В окне
командной строки ввести команду: HelloVB.vb
Теперь можно запустить полученный исполнимый файл
консольного приложения HelloVB.exe.
7.   Ввести команду:

8.   В окне
командной строки будет напечатано (рис. 4.6): Язык программирования Visual
Basic

Рис. 4.6.
Создание и запуск консольного приложения
Проект «Консольное приложение» на языке
программирования С#
1. В текстовом редакторе Блокнот
ввести программный код консольного приложения: us i na Sys ;
class Не -1=
--оС
stazic void „Ма 2 г, ( s
”
       Conso].e
.         се (”язык г.оограммирования ц„к
2. Сохранить программный код
консольного приложения в файле HelloC.cs на жестком диске, например в папке

Для компиляции программного кода необходимо использовать
компилятор командной строки языка программирования С# csc.exe, который входит в
состав платформы .NET Framework. Компилятор находится в папке C:\WlNDOWS\
Microsoft.NET\Framework\v1.1.4322.
Создадим исполнимый файл консольного приложения Непос.ехе.
З. Запустить окно командной строки командой
[Пуск-Программы-СтанДартные-КоманДная строка].
4.   В окне командной
строки перейти на диск D:, а затем с использованием команды СЕ) (change
directory) перейти в папку  где хранится файл с программным кодом
консольного приложения.
5.   Ввести команду
компиляции:

csc.exe HelbC.cs
Теперь можно запустить полученный исполнимый файл
консольного приложения Не|ЬС.ехе.
6.   В окне
командной строки ввести команду:

7.   В окне
командной строки будет напечатано: Язык программирования C#
Проект «Консольное приложение» на языке
программирования Ј#
1.

В текстовом редакторе Блокнот ввести программный код консольного приложения:
import System;
Cons01e . (Nrite (”Язык программирования
Ј#”) ;
2.  Сохранить
программный код консольного приложения в файле HelbJ.jsl на жестком диске,
например в папке

З. Запустить окно командной строки командой
[Пуск-Программы-СтанДартные-КоманДная
строка].
4.    В окне
командной строки перейти на диск D:, а затем с использованием команды СО
(change directory) перейти в папку D:\HelbJ\, где хранится файл с программным
кодом консольного приложения.
5.    Ввести
команду компиляции:

jsc.exe HelloJ.jsl
6.    В окне
командной строки ввести команду:
D:\HelbJ>HelbJ.exe
7.    В окне
командной строки будет напечатано: Язык поотраммиоования.

4.1. Создать в текстовом редакторе
проект «Консольное приложение».
4.42.
Интегрированная среда разработки языков Visual Basic .NET, Visual СА и Visual
Ј#
Состав Visual Studio ЛЕТ. Microsoft Visual Studio .NET — это
инструмент разработки программ, позволяющий писать программы на нескольких
языках программирования .NET. В состав Visual Studio .NET входят следующие
языки программирования (рис. 4.7):
, Visual Basic .NET;
• Visual С# (произносится Си-шарп); • Visual Ј# (произносится
Джей-шарп); о Visual С++ (произносится С плюс плюс); , ASP.NET (Web
Developer)•,

4.7. Выбор
языка программирования в Visual Studio.NET при создании нового проекта

         Русскоязычная
справка по             http://msdn.microsoft.
             Visual
Studto ЛЕТ                                       com/library/rus/

Система объектно-ориентированного
программирования Visual Studio .NET существует в двух версиях:  Visual
Studio .NET 2003 полностью локализованная русскоязычная версия; о Visual Studio
2005 Express Edition англоязычная свободно распространяемая версия для
начинающих программистов.
Интегрированная среда разработки. Visual Studio .NET
является системой визуального объектно-ориентированного программирования на
платформе .NET Framework. Система программирования Visual Studio .NET
предоставляет пользователю для работы со всеми языками .NET удобный, причем
одинаковый, графический интерфейс IDE (Integrated Development Environment —
Интегрированная среда разработки) (рис. 4.8).

Визуальное конструирование графического интерфейса проекта выполняется в
Конструкторе форм (Windows

WtndowsApplicatiot11
  - Microsoft Visual BasIc ЛЕТ ddsl п
ДНЕ Г освт
  СТС 20-ю
Ропп1.Ф [Dzlml*l
Сча
Р. Form 1

WMowsANkat'cm1
* Указатегь                                                                                и
  ССЬЛ<И
Assembiylnfo-vo
А f-irkl.&t б

ТехВох                                                                                -3
Р о—вох
6 Aadtcan:n                                                                                Fxm1
  System Wipd)ws For ms е:
Sz*Je
R0tT0l_eft
vo:rn1
•
  Syst.em.          Forms.
2.5
Е) (0at.3B•r-drosJ
•
  Спт5оВои  t-tsWiew           Тех*
 TreeV&'     Тест , содржддпђся е Буфф                 —Е]               ;
  эл=чте угрв•н-4.в.

44

Рис. 4.8.
Интегрированная среда разработки Visual Studio .NET
(на примере
Visual Basic .NET 2003)
Forms Designer), который по умолчанию
размещается на вкладке Form1.vb[Design]. Конструктор форм располагается в
центре окна интегрированной среды разработки и содержит форму (по умолчанию
Form1), являющуюся основой графического интерфейса проекта. На форму можно
поместить различные элементы управления: кнопки (Button), текстовые поля
(QextBox), надписи (Label) и т. д.
Пиктограммы элементов управления располагаются на панели
Область элементов (ToolBox), которая размещается в левой части окна
интегрированной среды разработки.
С формой связан программный код проекта, для ввода и
редактирования которого служит РеДактор программного кода (по умолчанию
размещается на вкладке Form1.vb). Редактор программного кода поддерживает язык
проекта, т. е. предлагает подсказки при вводе программы, выделяет
синтаксические ошибки, структурирует программный код отступами и т. д.

Для перехода в окно программного кода можно просто щелкнуть по ярлыку вкладки
Form1 .vb или ввести команду [Ви.Д-КоД] ([View-Code]). Для обратного перехода в
Конструктор форм можно щелкнуть по ярлыку вкладки Form1 .vb [Design] или ввести
команду [ВиД-Конструктор] ([View-Designer]).
Первые части названий окна конструктора форм и окна
редактора программного кода совпадают не случайно, так как в них создается и
редактируется один и тот же файл Form1 .vb. Этот файл и другие файлы проекта
можно увидеть в окне Обозреватель решений (Solution Explorer), который
размещается в правом верхнем углу интегрированной среды разработки.
Справа располагается окно Свойства (Properties). Окно
содержит список свойств, относящихся к выбранному объекту (форме или элементу
управления на форме). В левом столбце находятся названия свойств, а в правом —
их значения. Установленные по умолчанию значения могут быть изменены.
Настройка интегрированной среды разработки. Рекомендуется
провести настройку интегрированной среды разработки. Для этого необходимо
ввести команду [СервисПараметры... ] ([Tools-Options...]) и в появившемся
диалоговом окне Параметры установить нужные параметры Конструктора форм,
Редактора программного кода и др.
В процессе создания графического интерфейса проекта важно
упорядоченно разместить на форме элементы управления. Для этого необходимо в
левой части диалогового окна Параметры выбрать пункт Конструктор Windows Form,
а в правой части установить шаг сетки на форме и ее видимость (рис. 4.9).

Рис. 4.9.
Установка параметров Конструктора форм

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

Рис. 4.10.
Установка параметров Редактора программного кода

О Преобразование проектов из формата
Visual Basic или 6.0 в формат Visual Basic .NET 2003. Для преобразования
проектов более ранних версий языка (VB 5.0 ССЕ, Visual Basic 6,0) в проекты на
Visual Basic .NET используется Мастер обновлений. Для преобразования проекта
необходимо ввести команду [Файл-ОткрытьПроект...], найти в папке проекта на
языке Visual Basic 5.0 или 6.0 файл с расширением vbp и следовать указаниям
пяти диалоговых окон Мастера Visual Basic.
Преобразование проектов из формата Visual
Basic .NET 2003 в формат Visual Basic 2005 Express Edition. Для преобразования
проекта необходимо ввести команду [File-Open-Project...], найти в папке проекта
на языке Visual Basic .NET 2003 файл с расширением vbproj и следовать указаниям
пяти диалоговых окон Vjsual Ваsic Upgrade Wizard.
Компьюте ый рактикум
4.2. Создать в системе
программирования Visual Studio проект «Консольное приложение» .
4.5. Система
объектно-ориентированного программирования Turbo Delphi
Система объектно-ориентированного программирования Turbo
Delphi позволяет визуально создавать графический интерфейс к проектам на языке
программирования 0bject Pascal.
Окно системы программирования Turbo Delphi. Система
программирования Turbo Delphi предоставляет пользователю удобный графический
интерфейс в процессе разработки проекта. После запуска Turbo Delphi появится
окно системы программирования Turbo Delphi, которое включает в себя (рис.
4.11):
 Строку заголовка
1'urbo Delphi;  строку Главного меню под строкой
заголовка;

Рис. 4.11.
Система программирования Turbo Deiphi
Окно Конструктор форм. В центре
располагается окно Конструктор форм. Для создания нового проекта необходимо
ввести команду [File-New-VCL Form Aplication]. Окно представляет собой форму (в
данном случае Form1), на которой происходит визуальное конструирование
графического интерфейса разрабатываемого проекта. Размеры формы можно менять,
перетаскивая мышью правую или нижнюю границу формы.
Окно Конструктор форм вызывается командой [ViewToggle
Form/Unit].
Первоначально форма пуста, в дальнейшем, в процессе создания
графического интерфейса проекта, на ней размеЩаютсЯ элементы управления.
Окно Программный код. С формой связан программный модуль,
содержащий программные коды процедур. Для ввода и редактирования текста
программы служит окно ПроГРаммный код (в данном случае Unit1 .pas), которое
вызывается командой [View-Toggle Form/Unit].
Окно элементов управления. Справа внизу располагается ОКНО
элементов управления (Tool Palette), содержа[Цее пиктограммы элементов
управления. Стандартный набор элементов управления размещается на вкладке
Standard и включает в себя 16 классов объектов это командная кнопка TButton,
текстовое поле ГЕД надпись TLabel и т. д.
На вкладках Add.ihjonol, Win32 и других располагаются
дополнительные элементы управления: графическое поле TImage, список изображений
TImaqeList и др.
Выбрав щелчком мыши в окне элементов управления Tool Palette
нужный элемент, мы можем поместить его на форму проектируемого приложения.
Процесс размещения на форме элементов управления аналогичен рисованию
графических примитивов с использованием графического редактора.
Фактически мы размещаем на форме экземпляры определенных
классов объектов. Например, выбрав класс объектов TButton, мы можем разместить
на форме неограниченное количество экземпляров этого класса, т. е. командных
кнопок Button1, Button2, Button3 и т. д.

Окно Инспектор объектов. Слева внизу располагается окно Инспектор объектов
(0bject Inspector). В верхней части окна размещается раскрывающийся список
объектов, на вкладке Свойства (Properties) содержится список свойств, а на
вкладке События (Eoents) перечень событий, относящихся к выбранному объекту
(форме или элементу управления на форме). На рисунке выбран объект Button1 из
класса TButton.
Вкладка Свойства (Properties) разделена на две колонки. В
левой колонке находятся имена свойств, а в правой их значения. Установленные по
умолчанию значения могут быть изменены. Свойством объекта является
количественная или качественная характеристика этого объекта (размеры, цвет,
шрифт и др.). Для некоторых свойств предусмотрена возможность выбора из
раскрывающегося списка значений, например, из списка можно выбрать значение
цвета фона элемента управления (свойство со] or).
Вкладка События (Events) также разделена на две колонки. В
левой колонке находятся имена событий, а в правой можно ввести их значения.
Окно 0bject Inspector вызывается командой [View-Object
Inspector].
Окно Менеджер проектов. Окно Менеджер проектов (Project
Manager) располагается в верхнем правом углу. Оно отображает в виде
иерархического каталога все составные части текущего проекта (в данном случае
Project1 .ехе) и позволяет переключаться между ними.

АлгоритмизаЦИЯ

Окно Менеджер проектов вызывается командой [View• Project
Manager].
Окно Дерево объектов. В верхнем левом углу располагается
окно Дерево объектов (Structure), отображающее перечень объектов графического
интерфейса проекта (форму и размещенные на форме элементы управления).
Окно Дерево об-ьектов (Structure) вызывается командой
[View-Structure].
Консольное приложение. В системе объектно-ориентированного
программирования Turbo Delphi создадим консольное приложение, т. е. приложение,
не имеющее графического интерфейса. Приложение должно выводить название языка
программирования в окне командной строки и с помощью диалогового окна.
Проект «Консольное приложение» на языке
программирования Turbo Delphi
1.  Запустить
систему программирования командой [ПускПрограммы-ВоНатЈ De.veloper Studio
2006-Turbo Delphi].
2.  Создать
новый проект командой [File-Other...l. В появившемся диалоговом окне New Items
выбрать тип приложения Console Application.

В окне Программный код появится заготовка программы. Ввести
программный код пользователя между служебными словами beqin и end.
Для вывода текста в окно программной строки использовать
оператор write1n ( ) .

Для вывода диалогового окна с текстом использовать функцию
MessageDlg ( ) , для использования которой необходимо подключить модуль
диалогов с использованием инструкции uses Dialogs.
З. program Project1 ; USeS
D.ia10gs;
{$АРРТУРЕ O
ONSOLE) begin write1n ('Program 1anguage De1phi') ,
MessageDlg (' Язык программирования
Turbo De1phi' MtInformation, [mbOk', , 0) ; end .
4.   Сохранить
программный код консольного приложения на жестком диске в папке  командой
[FileSave
Теперь можно запустить консольное
приложение.
5.   Ввести команду
[Run-Run].
6.   В окне
командной строки будет выведено (рис. 4.12):
Program 1anguage 2urbo De1phi
В диалоговом окне будет выведено (см. рис.
4.12): язык программирования Turbo De1phi

Рис. 4.12.
Создание и запуск консольного приложения

Компьютерйфрактикум

4.3. Создать в системе
программирования Turbo Delphi проект «Консольное приложение» .

Тип переменной. Тип переменной определяется типом данных,
которые могут быть значениями переменной. В объектно-ориентированных языках
программирования переменные могут быть различных типов:
о в типах Byte, Short (Sma111nt в Turbo Delphi), Integer
(Int в Visual С# и Visual Ј#) и Long
(Int64 в Turbo Delphi) значениями являются целые числа;  в типах Single
(float в Visual С# и Visual Ј#), Double и Decimal (в Visual Basic .NET и Visual
С#), значениями являются числа с плавающей запятой;  в типах Char и
String значениями являются символы и последовательности символов; о в типе
Воо1еап (Ьоо1 в Visual С#) логическими значениями являются истина True или ложь
Ealse.
Различные типы переменных требуют для своего хранения в
оперативной памяти компьютера различное количество ячеек (байтов) и могут
принимать различные диапазоны значений.
Плакаты.
Таблица 5 «Типы переменных»
Имя переменной. Имя каждой переменной (идентификатор)
уникально и не может меняться в процессе выполнения программы. Имя переменной:
•     должно
начинаться с буквенного символа или с подчеркивания «  может
содержать только буквенные символы, десятичные цифры и подчеркивания;  должно
содержать, по крайней мере, один буквенный или цифровой символ, если оно
начинается с подчеркивания;
•     не
должно составлять более чем 1023 знака.
Рекомендуется для большей понятности
текстов программ для программиста в имена переменных включать приставку,
которая обозначает тип переменной. Тогда имена целочисленных переменных будут
начинаться с приставок byt, int и lng, содержащих числа с плавающей запятой sng
и dbl, строковых chr и str, и логических
Объявление переменной. Важно, чтобы исполнитель программы
(компьютер) «понимал», переменные какого типа

используются в программе. При объявлении
переменной используется ключевое слово и указывается ее тип.
Область действия переменной. Область действия переменной, т.
е. область, в которой она доступна для использования, может быть локальной или
глобальной. Локальная переменная доступна только внутри процедуры или
программного модуля, и к ней невозможно обращение из другой процедуры или
модуля. Если переменная определена внутри процедуры, то она может быть вызвана
только в этой процедуре, если она определена внутри программного модуля, то она
может быть вызвана только в этом модуле.
К глобальным переменным может быть произведено обращение из
всех программных модулей проекта.
Присваивание переменным значений. Переменная может получить
или изменить значение с помощью оператора присваивания. В языках
объектно-ориентированного программирования Visual Basic .NET, Visual С# и
Visual Ј# в качестве оператора присваивания используется знак «равно» «=» , а языке
Turbo Delphi знаки «двоеточие» и «равно» с.— При выполнении
оператора присваивания переменная, имя которой указано слева от знака
равенства, получает значение, равное значению правой части. Это может быть, как
в алгоритмических языках, выражение (арифметическое, строковое или логическое),
а также значение свойства объекта или результат выполнения метода.
Проект «Переменные». Создать проект, который позволит
продемонстрировать использование различных типов переменных, арифметических,
строковых и логических выражениЙ и операции присваивания. Каждый тип переменных
разместить на отдельной вкладке.
В окне Конструктор форм с использованием панели Область
элементов на форму поместим элементы управления, которые должны обеспечить
взаимодействие проекта с пользователем.
Создание
графического интерфейса проекта на языках VisuaI Basic .NET, VisuaI Visual
и Тимо Delphi
1.  Для
создания вкладок на форме элемент управления ТаЬСоп €. ro 2. (РазгСоп+ т о21
в Turbo Delphi).
Создание вкладок на языках
VisuaI Basic
.NET, Visual С# и Visual Ј#
2.  Выделить
элемент управления PageContr011 и в окне Свойства у свойства TabPages
активизировать значение (Коллекция).
З. В появившемся окне РеДактор
коллекции TabPages (рис. 4.13) создать три вкладки на панели инструментов,
нажав три раза кнопку Добавить.
В списке Свойства 1'a6Pages1: в свойстве
Text ввести названия вкладок: Числовые, Строковые, Логические.

Редактор КОЯЈН<ЦЛД TaPage
ЧЕ.«Ы:

Рис. 4.13.
Редактор коллекции вкладок
Создание
вкладок на языке Turbo Delphi
2. Выделить элемент управления
PageContr011, щелкнуть правой кнопкой мыши и в контекстном меню выбрать пункт
New Page. Проделать эти действия три раза.
З. В окне 0bject Inspector в свойстве
Caption ввести названия вкладок: Числовые, Строковые, Логические.

4.   На вкладке
TabPages1 (TabSheets1 в Turbo Delphi) разместить:
•  для
ввода чисел два текстовых поля ТехсВох1 (Edit1 в
Turbo Delphi) и ТехЁВох2 (Edit2 в Turbo
Delphi);
•  для
вывода чисел надписи Labe1„,
•  для
создания обработчика события кнопку Button1;
•  для
вывода поясняющих текстов пять надписей.
5.   На вкладке
TabPages2 (Ta6Sheets2 в Turbo DeIphi) разместить:
•  для
ввода символа и строки два текстовых поля Тех Евох3 (Edit3 в Turbo Delphi) и
ТехЕВох4 (Edit4 в Turbo Delphi);
•  для
вывода строки надпись Labe110;
•  для
создания обработчика события кнопку Button2;
•  для
вывода поясняющих текстов три надписи.
6.   На вкладке
TabPages3 (TabSheets3 в Turbo Delphi) разместить:
•  для
вывода логического значения надпись Labe120;
•  для
создания обработчика события кнопку Button3;
•  для
вывода поясняющих текстов пять надписей.
На языке программирования Visual Basic .NET создадим
обработчик события, реализующий вывод значений числовых переменных.
Создание
программного кода на языке программирования Visual Basic .NET
7.
Dim bytA, bytB As
Вуее, intC As Integer, sngD As Single, dblE As Doub1e
Private Sub Button1 C1ick (ByVa1
sender As System. 0bject, ByVal е As System. EventArgs) Hand1es Button1 . C1ick

bytA

Va1 (ТехЁВох1 . Text)

bytB

CByte (TextBox2 . Тех Ё )

intC

bytA / bytB

sngD

bytA / bytB

dblE

bytA / bytB

Labe11 . Тех Е
Labe12 . Тех ЁsngD
     Labe13. Text       dblE
End Sub
На языке программирования Visual С# создадим обработчик
события, реализующий вывод значений строкового выражения.

Создание программного кода на языке программирования
Visual С#
7. char chrS;
String strS; private void button2 С 1 ick (object sender, System.EventAras е)
Convert . ToChar (-extBox3 . Тех Е) ; strS        •-exzBox4 . Text; abe110 .Text        strS,•
На языке программирования Turbo Delphi создадим обработчик
события, реализующий вывод значений логического выражения.
Создание программного кода на языке
программирования Turbo Delphi
7.

var b1nL1 : Ьоо1еап; b1nL2 :
Ьоо1еап; b1nL3: Ьоо1еап; procedure TForm1 .Button3C1ick (Sender: TObject) ;
begin b1nL1 b1nL2         5; b1nL3 'D2nL1 and bl.nL2 ;
              Labe120
. Caption             B001ToStr (b1nL3, True) ;
      Запуск проекта на языках Visual Basic
          .NET, Visual С#, Visual Ј# и Turbo Delphi
8.   Ввести команду
[ОтлаДка-Начать] (на языке Turbo Delphi [Run-Runl) или щелкнуть по кнопке на
панели инструментов окна интегрированной среды разработки.
9.   На вкладке
Числовые в текстовые поля ввести числа и щелкнуть по кнопке Вычислить
bytA/bytB. На надписи будут выведены значения числовых переменных различных
типов (рис. 4.14).
На вкладке Строковые в текстовые поля
ввести символ и строку и щелкнуть по кнопке Вывести chrS+strS. На надпись будет
выведена строка (см. рис. 4.14).
На вкладке Логические щелкнуть по кнопке
ОпреДелить lblL1 +lblL2. На надпись будет выведено“ значение логического
выражения (см. рис. 4.14).

Контрольные вопросы
1.  В чем состоит разница между типом,
именем и значением переменной?
2.

Что происходит в процессе
объявления переменной в оперативной памяти компьютера?
Компьюте ый рактикум
4.4. Создать проект
«Переменные» .
...\informatika10\...\Variables\
TurboOelphi-CD

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

Элементы управления. Визуальное конструирование графического
интерфейса проекта состоит в том, что на форму с помощью мыши помещаются и
«рисуются» те или иные элементы управления.
Перечислим классы элементов управления, они имеют различное
назначение в графическом интерфейсе проекта:

 текстовые
поля TextBox (Edit в языке Turbo Delphi), надписи Label и списки ListBox и
СотЬоВох для ввода и вывода данных;  графические поля PictureBox (image в
языке Turbo Delphi) для вывода графики,  командные кнопки
Button, переключатели RadioButton и флажки CheckBox для организации
интерактивного диалога пользователя с проектом;  главное меню ма
inMenu для создания меню формы;  панель инструментов T001Bar для создания
панели инструментов формы;  коллекция изображений ImaqeLzst для
хранения изображений;  диалоги C010rDia10g и FontDia10g для
выбора цвета и шрифта;  диалоги 0penFileDialoa и SaveFi2e2)ia1aa
для выбора файла при открытии и сохранении.
Плакаты. Таблицы 2—4 «Элементы
управления: свойства, методы и события»

На форму может быть помещено несколько экземпляров одного
класса элементов управления. Например, несколько кнопок, каждая из которых
обладает индивидуальными значениями свойств (надпись, размеры и др.).

Элементы управления — это объекты,
являющиеся элементами графического интерфейса проекта и реагирующие на события,
производимые пользователем или другими программными объектами.

Форма и каждый класс элементов управления обладают
определенным набором свойств, методов и событий. Однако есть свойства, методы и
события, которыми обладают формы и большинство элементов управления. С помощью
свойств Width и Height устанавливается размер формы или элемента управления, с
помощью метода Show ( ) можно показать форму или элемент управления, на событие
Ciick они реагируют.

Системы объектно-ориентированного программирования Visual Basic .NET, Visual С#
и Visual Ј# имеют одинаковый набор элементов управления, который практически
совпадает с набором элементов управления языка Turbo Delphi. Это позволяет
конструировать практически одинаковые графические интерфейсы проектов во всех
вышеперечисленных системах объектно-ориентированного программирования.
Автоматическая генерация кода элементов графического
интерфейса. При размещении на форме элементов управления в системах
объектно-ориентированного программирования производится автоматическая
генерация программного кода. Устанавливаются значения свойств формы и элементов
управления, которые определяют местоположение элемента графического интерфейса,
его размеры, цвет, параметры шрифта и др.
В языках программирования Visual Basic .NET, Visual С# и
Visual Ј# этот программный код сохраняется в файле программного кода формы в
разделе Код, автоматически созДанный конструктором форм Windows. В языке Turbo
Delphi этот программный код сохраняется в отдельном файле Unit1 .dfm, связанном
с формой.
В качестве примера приведем автоматическую генерацик)
программного кода, возникающего при размещении на форме кнопки.

AJITOPHTMH3aUHfl H OCHOBb1 06%eKTHo-opMeHTHp0BaHH01'0
nporpaMMwp0BaH1•1q
Visual
Basic .NET:
                                                                          ("Microsoft
Sans Serif'  12 . n
Me. Button 1 . Location =
New System. Drawing . Point (104, 64)

Me. Button 1 . Name
Me. Button 1 . Size

"Button 1 "
New
  System. Drawing . Size

32) Me.
Button 1 . Text
93blK Visual C#:
this .
button 1 . BackColor System. Drawing. SystemColors . Control; this . button 1 .
Location new System. Drawing. Point (88, 72) ;

this . button 1 . Name

"button 1'

this . button 1 . Size Size
  (192, 40) ; this . button 1 . Text

new System. Drawing.

93blK Visual this .
button 1 . set BackColor (System. Drawing. SystemC010rs . get _ Control ( ) ) ;
this . button 1 . set Font (new System. Drawing. Font ("Microsoft Sans
Serif", this. button 1 . set Location (new System.
Drawing.
Point (104,
this. button 1 . set Name ("button
1") ; this . button 1 . set _ Size (new System. Drawing. Size (132, 32) )
; this . button 1 . set Text  ;
93blK Turbo Delphi: object Button 1 : T Button
Left
                                                                           Top   59
Width   156
Height  30
Font . Color — clWindowText
                                                                        Font .
Height  -16
                                                                          Font. Name 'MS
Sans Serif'

HHTep(þeñc lipoeKTOB Ha fl3b1Rax nporpaMMnpoVisual
Basic .NET, Visual Visual Turbo Delphi
rrpaxrrnqecKH OÄHHaROBb1M, Tax
1-cax B 3THx H3b1Kax HC110J1b3Yerrca OAHHaXOBb1ii Ha60p
3.nerweHTOB yrrpaB.neHHfl (Ta6J1. 4.2).
Таблица 4.2. Некоторые элементы управления в языках
Visual Basic
.NET, Visual С#, Visual Ј# и Turbo Delphi

Элемент управления

Visual Basic .NET

Visual С#

Visual Ј#

Turbo Delphi

Текстовое поле

Тех: вох1

t-oxtBox1

tcxLBoxl

Надпись

2-aboi )

Список

I.i .sLBoxl

1 i st.Box .

Поле со списком

Cornbo Вох -1.

сотЬовох1

cor•.lboi30x

Счетчик

Numeric0p'Dow.“l

nurner i

Ор, l)owp. ]

Ползунок

Т r:ac.kEBar1

i-rackBar l

Переключатель

Rad i 0Butt.

raci.ioBLit

. оп .

Алгоритмизация

Проект «Отметка». Создать проект, который в зависимости от
количества ошибок, введенных с использованием разЛИЧНЫХ элементов управления
(списка, поля со списком, текстовогО поля, счетчика, ползунка и
переключателей), выводит на надпись отметкхт.
В окне Конструктор форм с использованием панели Область
элементов на форму поместим элементы управления, которые должны обеспечить
взаимодействие проекта с пользователем.
Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#, Visual Ј# и Turbo Delphi
1.   Разместить
на форме (рис. 4.15):
   для ввода
количества ошибок список L.istBox.1, поле со списком  текстовое поле
Text-Box1, счетчик NumericUpDown1, ползунок TrackBar1 и переключатели Radj
oButton1, RadioButton2, RadioButton3, RadioButton4, RadioButton5;
   для вывода
отметки надпись Labe 1-1;  для вывода поясняющих текстов надписи
1,abe12 и

Сделаем графический интерфейс более привлекательным.
Установка значений свойств объектов графического
интерфейса на языках Visual Basic .NET, Visual С        Visual # и Turbo Delphi
2.   Присвоить
форме и элементам управления новые значения свойств с помощью диалогового окна
Свойства (0bject Inspector в Turbo Delphi).
Для каждого элемента управления существует одно событие
(событие по умолчанию), чаще всего возникающее для данного элемента управления
(табл. 4.3). После двойного щелчка по элементу управления в редакторе
программного кода открывается заготовка процедуры обработки такого события.
Ta6nnua 4.3. C06blTb•1B no YMonyaH"10 HeKOTOPblX 3neMeHTOB
ynpaBneHv•19 B 93blKaX Visual Basic .NET, Visual C#, Visual J# h Turbo Delphi

3neMeHT ynpaBneHb•1R

Visual Basic .NET

Visual C#

Visual

Turbo Delphi

TeKCTOBoe none

Text Changed

Text Changed

TextChanged

Change

Haanncb

Cl ick

Click

Cnuc0K

SelecLedIndexChanged

SelectedIndQ.xChanqed

Se lectedIndexChar.ged

none co cnncK0M

Se lect,edIndexChanged

Selected IndexChanged

Se lectedi ndexChanged

Change

CqeT'-u,1K

Va I ueChanged

V a] ueChanged

Va l. ueChanged

non3YH0K

Scrol 1.

scroll

Scroll

Char.ge

nepeKmoqaTeJ1b

CheckQdChar.ged

CheckedChanged

CheckedChar.aed

Алгоритмизация

На языке программирования Visual Basic .NET объявим
переменную и создадим обработчик события, реализующий вывод отметки на надпись
в зависимости от количества ошибок, выбранных в списке. Создадим заготовку
обработчика события щелчком по списку и введем программный код. Для
преобразования количества ошибок, выбранного как элемент списка строкового
типа, в целое число используем функцию CByte ( ) . Для реализации выбора
отметки используем оператор Select Сазе.
е ув Создание программного кода на
языке программирования Visual Basic ЛЕТ
З. Dim N Аз Byte
Private Sub ListBox1 Se1ectedIndexChanged (ByVal sender
Аз System . 0bj ect, ByVal е As System .
EventArgs) Handles ListBox1 .Se1ectedIndexChanged
CByte (ListBox1 . тех Е)
Select
Сазе N

Case 0

      Labe11 . Тех Ё
Case 1

Отлично

    Text Сазе 2

”Хорошо”

Labe11 .Тех 1: Case З

” Удовлетворительно'

Labe11 .
  Text Case E1se

” Плохо'

Labe11 .Text

”Очень плохо'

End
Select
End Sub
На языке программирования Turbo Delphi объявим переменную и
создадим обработчик события, реализующий вывод отметки на надпись в зависимости
от количества ошибок, введенных в текстовое поле. Для преобразования введенного
в текстовое поле количества ошибок строкового типа в целое число используем
функцию StrToInc ( ) . Для реализации выбора отметки используем оператор Case.
Создание программного кода на языке
программирования Turbo Delphi З. var Х: byte; procedure TForrnl . Edi t1Chanqe
( Sender : TObject) ;

begin
StrToInt
(Edi b . Техђ) ;
      Case       Of

0
  : Labe11
  .Caption
1
  : Labe11 .
  Caotion  2 : Labe11 . Caotion
З : Labe11
  .Caption
E1se Labe11 . Caption

' Отлично •
' ХОРОШО ' ,
' Удовлетворительно ,
' ПЛОХО ' ,
 ' Очень                ;

 плохо end ; end ;
На языке программирования Visual С# объявим переменную и
создадим обработчик события, реализующий вывод отметки на надпись в зависимости
от количества ошибок, введенных с помощью ползунка. Так как свойство ползунка
Va1ue имеет тип int, объявим переменную такого же типа. Для реализации выбора
отметки используем оператор switch.
Создание программного кода на языке программирования
Visual С#

1аЬе11 .Тех Е       break ; case :

”Отлично

   Тех Е break ;

” Хорошо'

case 2 :

'

                   Техс break ; case З:

' Удовлетворительно

iabe11 .Тек break ; default:

' Плохо

1abe'-1 .Text break ;

”Очень

плохо

private void trackBar1 Scr011 (object
sonder, System.EventArgs е) trackBar1. .Va1ue; switch (п)
На языке программирования Visual Ј# создадим
обработчики событий, реализующие вывод отметки на надпись в за-
АлгоритмизаЦИЯ

висимости от количества ошибок, введенных с помощью
переключателей. Для каждого переключателя создадим обработчик событиЙ, выполняющийся
при выборе этого переключателя.
Создание программного кода на языке
программирования Visual Ј#
З. private
void radioButton1 CheckedChanged (0bj ect sender, System.EventArgs е)
1abe11 . set Тех Е (”Отлично”) ,
private void
radioButton2 CheckedChanged (0bject sender, System. EventArgs е)
1abe11 . set Тех Е (” Хорошо”) ;
private void
radioButton3 CheckedChanged (0bject sender, System. EventArgs е)
1abe] 1 . set Тех 1: (” Удовлетворительно”)
;
private void
radioButton4 CheckedChanqed (0bject sender, System. Even tArgs е)
1abe11 . set Тех Ё Плохо”) ;
private void
radioButton5 CheckedChanged (0bj ect sender, System. EventArgs е)
1abe11 . set Тех Ё (”Очень плохо") ;
Выполнение проекта. Загрузка проекта в систему объектно-ориентированного
программирования производится путем активизации в папке проекта основного файла
проекта:  язык Visual Basic .NET — файл с
расширением vbproj;  язык Visual С# — файл с расширением
csproj;  язык Visual Ј# — файл с расширением
vjsproj; • язык Turbo Delphi — файл с расширением dpr.
Запустим проект, после этого система программирования
переходит в режим выполнения проекта [run], в котором редактирование
графического интерфейса или программного кода невозможно.

Запуск проекта на языках Visual Basic
.NET, Visual
С#, Visual Ј# и Turbo Delphi
4.   Ввести команду
[ОтлаДка-Начать] ([Run-Run] на языке Turbo Delphi) или щелкнуть по кнопке на
панели инструментов окна интегрированной среды разработки.
5.   Ввести
количество ошибок (например, 2) с использованием элементов управления:

С ПИСК а;
    поля
со списком;
    текстового
поля;
    счетчика;
    ползунка;
    одного
из переключателей.
На надпись будет выведена отметка (в данном случае
«Удовлетворительно») (см. рис. 4.15).

Рис. 4.15.
Проект «Отметка»
Контрольные вопросы
1.
Какие элементы
управления целесообразно использовать при конструировании графического
интерфейса проекта, если необходимо: вводить и выводить данные? Организовать
диалог с пользователем?

2.
Что происходит в
системе программирования после помещения на форму элемента управления?

Компьютерный практикум

4.5. Создать проект «Отметка».
4.8. Пространство имен
.NET
Важный компонент платформы .NET — общая для всех языков
программирования библиотека классов. Ее наличие позволяет разработчикам
использовать единую систему программных объектов для языков программирования
платформы .NET. Пространство имен .NET включает более 7000 имен и поэтому
организовано в иерархическую систему имен (табл. 4.4).
Таблица 4.4. Некоторые наиболее значимые ветви
пространства

Ветвь пространства имен

Содержание

System. Cor.soxe

Методы и функции работы с консольным окном

Математические методы и функции

Графические методы и функции

Методы и функции работы с файлами

“dc—s . For.T.s

Элементы графического интерфейса

Методы и функции языка Visual Basic

Для использования в программном коде имени программного
объекта необходимо указывать полный путь к нему в пространстве имен с
использованием точечной нотации. Например, чтобы вывести в консольном окне
текст, необходимо записать полный путь к функции Erite ( ) в пространстве имен
.NET:
System. Cons01e . fNrite (”
Текст”)
Однако удобнее указать один раз в начале программного кода
вызов ветви пространства имен System.
На языке программирования Visual Basic
.NET:
Imports Sys
сет
На языке программирования С#: using
Systera;
На языке программирования Ј#:
import System .
4.4.1.
Платформа .NET Framework

Не все ветви пространства имен системой программирования загружаются по
умолчанию. Например, для использования методов и функций языка Visual Basic в
языках Visual С# и Visual С# необходимо подключить пространство имен Microsoft
.Visua1Basic. Для этого в проекте надо добавить ссылку на библиотеку Microsoft
. VisualBasic . (111.
Одной из наиболее часто встречающихся операцией в
программировании является преобразование типов данных.
Проект «Функции преобразования типов». Создать проект,
в котором число, вводимое в текстовое поле, преобразуется из строкового типа в
числовой тип, а затем при выводе на надписи оно же преобразуется из числового
типа в строковый.
 Создание графического интерфейса проекта
на языках Visual Basic .NET, Visual С#,  Visual Ј# и Turbo
Delphi
1. Разместить на форме (рис. 4.18):
•   текстовое
поле TextBox1 (Edit1 в Turbo Delphi) для ввода числа;  три надписи Labe---
Labe12 и --,abe L3 (две надписи в Visual С# и одну надпись в Visual Ј# и Turbo
Delphi) для вывода числа;
•   кнопку
            ton1 для создания процедуры-обработчика события.
Преобразование типов данных на языке Visual Basic .NET
возможно с помощью функций трех различных типов:
, во-первых, это функции уа 1 ( ) , Str
( ) и др., которые использовались и в предыдущих версиях языка программирования
Basic;  во-вторых, это функции CDb1 ( ) , CStr (
) и др., которые используются в последних версиях языка программирования Visual
Basic;  в-третьих, это функции ToDoub1e ( ) ,
ToStrina ( ) и др., которые используются на платформе .NET и принадлежат ветви
системы имен Systera. Convert.
В программном коде используем функции преобразования типов
данных всех трех типов.
e_.VB Создание программного кода на языке
программирования Visual Basic .NET
2. Dim А, В, С As Double

Private Sub Button1 Click
(ByVa1 sender As
System. 0bject, ByVa1 е АБ Systera. EventArgs)
Hand1es Button1 . C1ick '
Преобразование из строкового типа в числовой
Va1 (TextBox1 .Qext) в System. Convert
. ToDoub1e (TextBoxl . Тех Ё) С CDb1 (ТехЕВох1 . техђ)
' Преобразование из числового типа в
строковый
Str (А)

Labe12 . Text

System. Convert . ToString (В)

Labe13 .Text End Sub

CStr (С)

Преобразование типов данных на языке Visual СА возможно с
помощью функций двух различных типов:
•
во-первых, это функции Val ( ) , Str ( ) и др., которые
используются в языке Visual Basic и принадлежат ветви системы имен M±crosoft
.YisualBasic . vonversion;
•
во-вторых, это функции ToDoub1e ( ) , -oStrir.g ( ) и др.,
которые используются на платформе .NET и принадлежат ветви системы имен Syszem
. Convert.
В программном коде используем функции преобразования
типов данных двух типов.

Создание программного кода на языке программирования
Visual С#
На языке Visual С# для преобразования типов данных с
использованием функций Val ( ) , Str ( ) необходимо подключить и использовать
пространство имен Microsoft . Visua1Basic.
2.1.    Ввести
команду [Проект-Добавить ссылку...].
В появившемся диалоговом окне Add
Reference (рис. 4.16) на вкладке .NET из списка выбрать имя компонента
Microsoft.VisualBasic.NET Runtime и щелкнуть по кнопке Выбрать.
Выбранный компонент добавится в поле
Выбранные компоненты:

Рис. 4.16.
Диалоговое окно выбора ветвей пространства имен
2.2.    В
Обозревателе решений в проекте convert в разделе ссылок References добавится
ссылка Microsoft.VisualBasic на соответствующее пространство имен (рис. 4.17).

Рис. 4.17.
Ссылки на пространства имен
Теперь можно добавить ссылку на пространство имен в
обработчик событий.
2.3.
double А, В;
private void button1 C1ick (object sender, System. EventArgs е)
{ / /Преобразование из строкового типа в
числовой
А Microsoft .Visua1Basic . Conversion
. Уа 1 (textBox1 .Text) ; в System. Convert . ToDoub1e (textBox1 . Text) ;
/ / Преобразование из числового типа в
строковый
Microsoft . VisualBasic . Conversion . Str (А) ;
System.Convert . ToString (В) ;
Преобразование типов данных на языке Visual Ј# возможно с
помощью функций ToDoub1e ( ) , ToString ( ) и др., Которые используются на
платформе .NET и принадлежат ветви системы имен System . Convert.
Создание программного кода на языке
программирования Visual Ј#
2. double А; private void button1 C1ick (0bject sender,
System. EventArgs е)
{ / /Преобразование из строкового типа в
числовой
А =
System.Convert .ToDoub1e (textBox1 .get Text ( ) ) ;
242
Преобразование из числового типа в
строковый
2aoe11 . set —- ext (Syste.ra.Conver“ T oS:ring
(А) ) ;
Преобразование типов данных на языке Turbo Delphi возможно с
помощью функций StrToF10at ( ) , - 10atToStr ( ) и др.
Создание программного кода на языке
программирования Turbo Delphi
2. var А: doub1e; procedure TForm1 .
Button1C1ick (Sender: TObject) ; begin
/ / Преобразование из СтООкОВОГО типа в числовой
StrQoF10a: (Edit1 . Text) ;
/ / Преобразование из числового типа в
строковый Labe11 . Caption FloatToStr (А) ;
Запуск проекта на языках Visual Basic
                      .NET,
Visual        Visual         и Тимо Delphi
З. Запустить проект на выполнение и
ввести в текстовое поле число (например, 3,14).
На надписи будет выведено это же число,
подвергнутое двойному преобразованию с использованием функций трех типов (см.
рис. 4.18).

Рис. 4.18. Проект «Функции
преобразования типов» на языке Visuat Basic .NET

Компьютерный практикум
4.6. Создать проект «Ф\7нкции
преобразования типов» .
Контрольные вопросы
1. Почему в проекте «Функции
преобразования типов» на первую надпись выводится целое число, а не число с
дробной частью?
4.9. Процедуры и функции
4.9.1. Процедуры
При разработке сложного алгоритма целесообразно выделить в
нем последовательности действий, которые могут многократно вызываться из
основного алгоритма. Такие алГОРИт.мы называются вспомогательными и в
алгоритмических языках программирования реализуются в форме подПРограмм,
которые вызываются из основной программы.
В объектно-ориентированных языках программирования Visual
Basic .NET и Turbo Delphi вспомогательные алгоритмы Ре аЛИ3уются с
помощью процедур, а в языках Visual С# и Visual Ј# — с помощью методов.
Каждой подпрограмме дается уникальное название имя
процедуры или метода и устанавливается список параметров. Параметры разделяются
между собой запятой и содержат определение типов.
Любой параметр может использоваться как входной паРа-четр,
т. е. после вызова процедуры (метода) он получает Зн ачение из
вызывающей процедуры. Процедуры не возвраЩают значений (в методах об этом
свидетельствует ключевое слово void).

Запуск процедур (методов) не связывается
с какими-либо событиями, а реализуется путем вызова по имени из других
процедур.
Процедура представляет собой подпрограмму, которая не
возвращает значения и начинает выполняться после ее вызова из другой процедуры.
Процедура Main(). В языке Visual Basic .NET процедура Ма 1 п
( ) (метод Ма 1 п в языках Visual С# и Visual Ј#) является «стартовой точкой»
проекта, т. е. первой процедурой, к которой осуществляется доступ при запуске
проекта. В этой процедуре можно объявить глобальные переменные проекта, а также
определить, какая форма загружается первой при запуске проекта.

4.14. Модульный принцип построения
решений (групп) и проектов

Передача параметров по значению и по ссылке. В процедурах в языках
программирования Visual Basic .NET и Turbo Delphi, а также в методах на языках
Visual С# и Visual Ј# после имени в скобках указывается список типов и имен
параметров, т. е. переменных. При вызове процедуры ее параметрам должны быть
переданы значения.
Каждая переменная имеет значение и уникальный адрес,
соответствующий положению переменной в оперативной памяти компьютера.
Объектно-ориентированные языки программирования позволяют передавать в процедуру
как значение переменной (передача по значению), так и ее адрес в оперативной
памяти (передача по ссылке).
При передаче по значению в процедуру передается только копия
переменной, т. е. процедура не получает доступ к переменной в памяти и не может
изменять ее значение. В языках объектно-ориентированного программирования
передача по значению осуществляется по умолчанию. Тем не менее в языке Visual
Basic .NET для передачи по значению необходимо перед параметром добавить
ключевое слово ByVal (от англ. by value по значению).
При передаче параметров по значению
вызываемая процедура не может изменить значение переменной в вызывающей
процедуре.
При передаче переменной по ссылке процедуре передается ссылка на ее адрес
в оперативной памяти, таким образом, процедура получает доступ к переменной в
памяти и может ее изменить. Чтобы передать переменную по ссылке, необходимо
перед соответствующим параметром в списке параметров добавить ключевое слово. В
языке Visual Basic .NET это клюцевое слово ByRef (от англ. by reference — по
ссылке), в языке Visual С# — ключевое слово ref, в языке Turbo Delphi —
ключевое слово var.
При передаче параметров по ссылке вызываемая процедура
может изменить значение переменной в вызывающей процедуре.
При вызове процедур ключевые слова,
определяющие способ передачи параметров, не указываются.
Проект «Передача по ссылке и по значению». Создать проект, в
котором:

 в
вызываемой процедуре один параметр передается по ссылке, а другой по значению и
значения переменных внутри процедуры изменяются;  в вызывающей
процедуре-обработчике события переменным присваиваются начальные значения,
вызывается процедура, а затем значения переменных выводятся на надписи.
Создание
графического интерфейса проекта на языках Visual Basic .NET, Visual и Тимо Delphi
1.   Разместить
на форме (рис. 4.19):
•   текстовые
поля Тех ЕВох1 и TextBox2 для ввода начального значения переменных;
•   надписи
Labe11 и Labe12 для вывода конечного значения переменных;
•   кнопку
Button1 для создания процедуры-обработчика события;
•
четыре надписи для вывода поясняющих текстов.
В программных кодах процедур на языках Visual Basic .NET и
Turbo Delphi, а также программных кодах метода на языке Visual С# первый
параметр х передается по ссылке, а второй параметр У передается по значению.
Создадим программный код проекта, в
котором:  объявим две переменные;  создадим
процедуру, умножающую значения переменных, передаваемых по ссылке и по
значению, на коэффициент 5;  создадим обработчик события, реализующий
присваивание переменным начальных значений, вызов первой процедуры и
осуществляющий вывод конечных значений переменных ка надписи.
ув Создание программного кода на языке
программирования Visual Basic .NET
2.
Объявить
переменные и создать код вызываемой процедуры: Dim RefA, Уа 1 В Аз Byte
Sub RefVa1 (ByRef RefA, ByVa1 Уа 1 В)
      RefA                          5
      Va1B           Va1B *
5
End Sub

З. Создать код вызывающей
процедуры-обработчика события: Private Sub Button1 C1ick (ByVal sender As
System. 0bject, ByVal е As System. EventArgs) Handles Button1 . C1ick
      RefA         Va1
(TextBox1 .Toxt)
     Va1B        Va1
(TextBox2.. Text)
RefVa1 (RefA, Va1B)
      Labe11
. Text         Str (RefA)
      Labe12
. Text         Str ( va1B)
End Sub
Создание программного кода на языке программирования
Visual С#
2. Объявить переменные и создать код вызываемой
процедуры:
.int RefA; int Va1B; void RefVa1 (ref int RefA, int ValB)
{RefA RefA*5;
         Va1B         Va1B*5;
З. Создать код вызывающей процедуры-обработчика
события:
private void
button1 C1ick (object sender, System. EventArgs е)
     : RefA     Convert
.ToInt32 (textBox1 . Тех 2) ;
Convert .T02nt32 (:extBox2 . Тех с) ;
RefVa1 (ref RefA, Va1B) ;
1abe21 . Тех
ЕConvert.ToString (RefA) • 2abe12 . Тех ЕConvert. ToString (Va1B) ,
Создание программного кода на языке
программирования Turbo Delphi
2. Объявить переменные и создать код
вызываемой процедуры: var
ReEA, Уа 1 В: byte; procedure Ве fVa1
(var RefA : byte; va1B: 'oyte) ; begin
ValB       Va1B * 5; end ;

З. Создать код вызывающей процедуры-обработчика события:
procedure
TForm1 . Button1C1ick (Sender: ТОЬј ect) ; begin
RefA      StrToInt
(Edit1 . техђ) ; StrToInt (Edit2 . Тех Ё) ;
RefVa1 (RefA, Va1B) ;
Labe11 .
CaptionIntToStr (RefA) ; Labe12 . CaptionIntToStr      ;
end ;
Запуск проекта на языках Visual Basic
                            .NET, Visual            и Тимо
Delphi
4. Запустить проект на выполнение и
ввести в текстовые поля начальные значения переменных (например, З). На надписи
будут выведены конечные значения переменной, передаваемой по ссылке (в данном
случае, 15), и переменной, передаваемой по значению (в данном случае З) (см.
рис. 4.19). Что и требовалось показать!

Рис. 4.19.
Проект «Передача по ссылке и по значению»
Контрольные вопросы
1. В чем состоит разница при передаче
значений по значению и по ссылке?
Компьюте ый рактикум
Windows-CD
4.7. Создать проект «Передача по
ссылке и по значеник».
4.9.2.
Функции
Функции являются подпрограммами, которые возвращают значения
и поэтому могут использоваться в выражениях. Наиболее широко используются
встроенные функции: математические, преобразования типов данных, обработки
строк, даты и времени и др.
Плакаты.
Таблица 6 «Встроенные функции (методы)»
Программист может создать свои функции. В языках Visual
Basic .NET и Turbo Delphi функция начинается с ключевого слова function, затем
следует имя функции и в скобках список ее параметров (аргументов). Тип
возвращаемого функцией значения указывается после списка параметров.
В языках Visual С# и Visual Ј# функции реализуются с помощью
методов и начинаются с ключевого слова, определяющегО тип возвращаемого методом
значения (int, doub1e и т. д.). Затем следует имя метода и в скобках список его
параметров (аргументов).
Для определения возвращаемого функцией (методом) значения
может использоваться как имя функции, так и переменная resu1t, которой в
программном коде присваивается значение функции. Для возврата значения функции
с помощью переменной resu2 используется ключевое слово return.

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

Проект «Функция». Создать проект, в котором определяется функция (например,
умножения двух чисел 1' = х * у), выводится на надпись значение
выражения, в которое входит функция (например, + Е).
 Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#,  Visual Ј# и Turbo Delphi
1.   Разместить
на форме (рис. 4.20):
•   для
ввода значений аргументов функции два текстовых поля техсвох1 и ТехЁВох2 (Edit1
и Edit2 в Turbo Delphi);
•   для
вывода значения функции надпись Labe11;
•
для создания обработчика события кнопку Button1.
Создание программного кода на языке программирования
Visual Basic ЛЕТ
2.   Создать
код вызываемой функции:
Function (ByVa1 Х, ByVa1 У) Аз Integer
End Eunction
З. Импортировать ветвь пространства
имен Sys tem . Math, которая необходима для использования математических
функций, объявить переменные и создать код вызывающей процедуры-обработчика
события: Imports System . Math
Dim Х, У Аз Integer
Private Sub Button1 Click (ByVa1 sender As System.
0bj ect, ByVal
е Аз System . EventArgs) Handles Button1 .C1ick х       Уа 1 (ТехЕВох1 .Text)
Уа 1 (TextBox2 . Cext)
Labe11 . Тех Ё Str(Sqrt У)
, 2) + End Sub
Создание программного кода на языке программирования
Visual СА
2. Создать код вызываемой
функции: pub1ic int (int Х, int У)
{int result; result return result;

З. Объявить переменные и создать код вызывающей процедуры-обработчика события:
int Х, У; private void button1 C1ick (object sender, System. EventArgs е)
Convert. ToInt32 (textBox1 . Text) ;
       У     Convert .
ToInt32 (textBox2 . Тех Е) ;
      1abe11
. Text   Convert . ToString (Math . Sqrt (Math .
Создание программного кода на языке
программирования Visual Ј#
2. Создать код вызываемой
функции: pub1ic int ЕЗ (int Х, int У)
{int
resu1t; result return result;
З. Объявить переменные и создать код
вызывающей процедуры-обработчика события: int х, У; private void button1 Click
(0bject sender, System. EventArgs е)
(Х =
System.Convert.ToInt32 (textBox1 .get Тех Е ( ) ) ; У System.Convert. ToInt32
(textBox2 . get Тех Ё ( ) ) ;
1abe11.set
Тех Ё (System.Convert . ToString (System.
Math.Sqrt  У) , 2) + Е (Х, У) ) ) ) ;
Создание программного кода на языке
программирования Turbo Delphi
2. Создать код вызываемой
процедуры: function (Х, У : integer) . int64; begin
end;
З. Импортировать модуль Math, который
необходим для использования математических функций, объявить переменные и
создать код вызывающей процедуры-обработчика события: uses Math;

var
Х, У :
integer; procedure TForm1 . Button1C1ick (Sender: begin х      StrToInt (Edit1 . Тех Е)
;
StrToInt (Edit2 . Тех Е) ;
     Labe11 . Caption      F10atToStr
(Sqrt (Power (Е (Х, У) ,
end ;
       Запуск проекта на языках Visual Basic
         .NET, Visual                    Visual
и тимо Delphi
4. Запустить проект
на выполнение и ввести в текстовые поля значения переменных (например, 2 и З).
На надписи будет выведено вычисленное
значение выражения (см. рис. 4.20).

Контрольные вопросы
1. В чем состоит различие между
процедурами и функциями?
2. Может ли входить в состав выражения
процедура? Функция?
Компьюте ый рактикум

Windows-CD (Х
4.8. Создать проект
«Функция».

...iinformatikam...№unctioni

4.10. Итерация и рекурсия
Функция (метод в языках программирования Visual С# и Visual
Ј#), которая обращается сама к себе, называется рекурсивной функцией. Одну и ту
же задачу можно часто решить двумя способами: с помощью рекурсии (с
использованием рекурсивной функции) и с помощью итерации (с использованием
цикла). Однако использование рекурсии позволяет экономить оперативную память
компьютера.
Вычисление факториала числа — это классический пример, на
котором можно показать использование итерации и рекурсии. Факториал целого
положительного числа N — это произведение целых чисел от 1 до N, обозначается
как N!:

Проект «Факториал (итерация)». Создать проект, в котором
факториал числа вычисляется с использованием цикла.
Будем вводить число в текстовое поле и выводить шаги
вычисления факториала этого числа в список.

_

е МВ Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#,  Visual Ј# и Turbo Delphi
1.   Разместить
на форме (рис. 4.21):

текстовое поле
ТехЕВох1 для ввода числа;
, список ListBox1 для вывода шагов
вычисления факториала в качестве элементов списка;
    надписи
для вывода поясняющих текстов.
Для вычисления факториала числа (переменная N) воспользуемся
циклом со счетчиком, в котором счетчик цикла (переменная 1) будет принимать
значения от минимального (1) до максимального (значение переменной N). В теле
цикла будем последовательно в каждом шаге цикла умножать факториал (переменная
Е) на значение счетчика (переменная 1) и выводить их значения в список.
Создание программного кода на языке программирования
Visual Basic .NET
2.

Объявить переменные, щелчком по текстовому полю создать заготовку
процедуры-обработчика события и ввести программный код:
     Dim Ы,      As Byte,
       As Long
Private Sub TextBox1 TextChanged (ByVa1
sender As
System. 0bject, ByVal е As System. EventArgs)
Handles TextBox1 . TextChanged
L±stBox1 . Items .C1ear ( )
Va1 (TextBox1 . Тех Ё)
1
For
 Lj stBox1 . Items .Add
(Str (1)                  Str (F) )
Next 1
Епа Sub
Запуск проекта на языках Visual Basic
.NET, Visual
С#, Visual Ј# и Turbo Delphi
З . Запустить проект на выполнение и
ввести в текстовое поле число (например, 20).
В списке будут выведены шаги вычисления
факториала введенного числа (см. рис. 4.21).

Рис. 4.21.
Проект «Факториал (итерация)»

Проект «Факториал (рекурсия)». Создать проект, в котором факториал числа
вычисляется с использованием рекурсивной функции.
Будем вводить число в текстовое поле и выводить шаги
вычисления факториала этого числа в список.
Создание
графического интерфейса проекта на языках Visual Basic ЛЕТ, Visual С#, Visual
Ј# и Turbo Delphi
1. Разместить на форме (рис. 4.22):
•
текстовое поле
Edit1 для ввода числа;
•   список
ListBox1 для вывода шагов вычисления факториала в качестве элементов списка;
•   надписи
для вывода поясняющих текстов.
Формулу для вычисления факториала можно записать следующим
образом:

Следовательно, факториал числа N! равен произведению числа N
на факториал числа (N—1)!. В свою очередь, факториал числа (N—1)! — это
произведение числа N—1 на факториал числа (У—2)! и т. д.

Таким образом, если вычисление факториала числа N!
реалиЗОВаТЬ как функцию, то в теле этой функции должен быть вызов функции
вычисления факториала числа (N—1)!, т. е. получим рекурсивную функцию, так как
она вызывает сама себя.
Создание программного кода на языке
программирования Turbo Delphi
Для вычисления факториала числа создадим рекурсивную функцию
Factoria1 (N: byte) , аргументом которой является число N. В зависимости от
значения числа Гм с использованием оператора ветвления if...then...else будем
вычислять значение функции. Если функция вызывается с аргументом, равным 1, то
она возвращает значение 1, в противном случае она обращается к самой себе и
возвращает произведение N*Factorial (N-1) .
2.  Создать рекурсивную
функцию, реализующую вычисление факториала:

function Factoria1 (N:byte) :
int64; begin if      1 then Factorial1 e1se Factoria1N*Factoria1 (N-1) ; end ;
Для вывода шагов вычисления факториала воспользуемся циклом
со счетчиком, в котором счетчик цикла (переменная 1) будет принимать значения
от минимального (1) до максимального (значение переменной N). В теле цикла
будем вызывать рекурсивную функцию, вычисляющую факториал, и выводить значения
счетчика цикла и функции в список.
3.  Объявить переменные,
щелчком по текстовому полю создать заготовку процедуры-обработчика события и
ввести программный код: var 1 : byte;
Ы : byte;
Procedure TForm1 . Edit1Change ( Sender : TObject) ;
begin
StrToInt (Edit1 . Text) ;
ListBox1 . Items .C1ear;
Eor
begin
ListBox1 .
Ite.vps .Add (IntToStr (1)
IntToStr end ; end ;
Запуск проекта на языках Visual Basic
                            .NET, Visual            VisuaI             и
Turbo Delphi
4. Запустить проект на выполнение и
ввести в текстовое поле число (например, 20).

В списке будут выведены шаги вычисления факториала введенного числа (см. рис.
4.22).

Рис. 4.22.
Проект «Факториал (рекурсия)»
Контрольные
вопросы
1. Почему не удается в
вышерассмотренных проектах на языках объектно-ориентированного программирования
вычислить факториал числа, большего 20?

4.1 1 . Делегаты
Делегаты. Делегаты используются в среде .NET Framework для
построения механизмов обработки событий. Когда возникает событие, делегат
вызывает соответствующий обработчик события.
Делегат по умолчанию автоматически связывается с одним
обработчиком события. В программном коде языков .NET это реализуется
по-разному. В языке Visual Basic .NET непосредственно в заготовке обработчика
события делегат указывается после служебного слова Handles, например обработчик
события Button1 C1ick вызывается делегатом Button1 .C1ick.
Делегат события может вызывать несколько различных
обработчиков событий. Групповой делегат обеспечивает уведомление «один делегат
ко многим обработчикам событий», т. е. последовательно вызывает несколько
обработчиков событий из списка вызова.
Обработчик событий может вызываться делегатами различных
событий, т. е. обеспечивается уведомление «многие делегаты к одному обработчику
события». В этом случае связь между делегатами и обработчиками событий
устанавливается программистом вручную. Например, событие, возникающее при
нажатии кнопки, и событие, возникающее при щелчке по команде меню, могут
использовать делегаты, которые затем вызовут один и тот же обработчик событий
для одинаковой обработки этих разных событий.
Делегаты используются в среде .NET Framework для вызова
процедур-обработчиков событий. Механизм действия делегатов следующий: событие —
создание делегата события — вызов процедур-обработчиков событий.
По умолчанию событие создает «свой» делегат, который
автоматически вызывает «свой» обработчик события. Например, щелчок по кнопке
But ton1 соответствует событию C1ick, которое создает делегат Button1 . C1ick,
вызывающий процедуру-обработчик событий Button1 Click.
При создании процедуры-обработчика события (метода) делегат
автоматически записывается:

е на языке Visual Basic .NET в строке имени процедуры после ключевого слова
Handles (англ. «управляемый»); е на языках Visual С# и Visual Ј# в разделе
программного кода Windows Form Designer generated code, после ключевого слова
this (англ. «этот»).

язык Visual Basic .ГЧЕТ:
Private Sub Button1 C1ick (ByVal sender As
System. 0bject,
ByVal е As System. EventArgs) Handles Button1 .C1ick
Язык Visual this.button1 .Click += пен System.
EventHandler
(this.button1 C1ick) ;
Язык VisuaI Ј#:
this.button1
.add С Кс К (new System.
EventHandier (this.button“- C '-ick) ) ;

Проект «Делегаты». Создать проект, в котором один делегат
вызывает два обработчика событий, а обработчик события вызывается тремя разными
делегатами. Делегаты событий «щелчок по кнопке», «щелчок по пункту меню» и
«щелчок

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

. Ј

 Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С# и Visual Ј#
1. Разместить на форме (рис. 4.23):
 список ListBox1 и поле со списком
СотЬоВох1 для вывода текста «Событие произошло» в качестве элементов списка;  кнопку
Button1, меню MenuItem1 и панель инструментов T001Bar1 для создания делегатов
событий.
Щелчком по списку создать заготовку по умолчанию обработчика
события ListBox1 Se1ectedIndexChanged.
Щелчком по текстовому полю со списком создать заГО'ГOВку по
умолчанию обработчика события СотЬоВох1_ Se1ectedIndexChanged.
Введем код обработчиков событий, который выводит текст
«Событие произошло» в качестве элемента списка в поле списка и в текстовое поле
со списком.
В языке Visual Basic .NET делегаты вводятся непосредственно
в заготовки обработчиков событий. Для этого после ключевого слова Handles
необходимо ввести делегаты событий «щелчок по кнопке» Button1 . C1ick, «щелчок
по пункту меню» MenuItem1 . Click и «щелчок по кнопке на панели инструментов»
T001Bar1 .C1ick.
Создание программного кода процедур-обработчиков событий и
делегатов на языке программирования Visual Basic ЛЕТ
2. Private Sub ListBox1 Se1ectedIndexChanged (ByVal
Sender As System. 0bject, ByVal е Аз System. EventArgs) Handles Button1 .
Click, Menu1tem1 . C1ick, T002Bar1 .C1ick
=stBox1 . Items . Add (”Событие произошло”)
End Sub
I'J18Ba

Private Sub ComboBox1
Selected IndexChanged (ByVaI sender As System. Object, ByVa1 e As System.
EventÄrgs) Handles Button 1 . Click, Menu Iteml . Click, Tool Barl . Click
ComboBox1 .
Items . Add ("C06b1T¼e np0¼30fflJ10") End Sub
B H3b1Kax Visual C# Visual J#
ae.yreraTb1 BBC)AflTCSï B paatue.ne nporpaMMH0T0 R0Aa Windows Form
Designer generated B 06J1aCTH 011HcaHHfl COOTBeTCTBY101.qe1'0 3J1er.aewra
ynpaB.neHHfl. CoaaaHwe aeneraTOB Ha ae3b11-ce nporpaMMHp0BaHHfl Visual C#
2. BBecTH
rue.neraTb1 C06b1THH  no KH011Re» button 1 . Click AJ1fl 06pa60Tt11•1KOB
c06b1T1,1iû listBox1 Selected IndexChanged H comboBox1 Selected
IndexChanged:
this .
button 1 . Click += new System. Event Handler (this. listBox1 Selected
IndexChanged) ; this . button 1 . Click += new System. Event Handler (this.
comboBox1 Selected IndexChanged) ;
3. BBeCTn
Ae.neraTb1    C06b1T1-1fl  no rlYHKTY menultemll
. Click    oÕpa60TT-1¼ROB c06b1THii listbox 1
SelectedIndexChanged    comboBox1 Selected— IndexChanged:
this . menu Item 1 . Click
+= new System. Event Handler (this . list Boxl Selected IndexChanged) ; this .
menuTtem1 . Click += new
System . Event Handler (this
. comboBox1
Selected IndexChanged) ;
C03ÃaHHe AeJ1eraTOB Ha fl3b1Re
nporpaMMHpoBaHHH Visual J#
2. B pa3ae.ne rrporpaMMHoro
K0Aa Windows Form Designer generated code BBeCTH Äe.neraTb1
COÕb1THfl  no KH0111-ce» button 1 . Click 06Pa60THHKOB
c06b1THii listBoxl Selected IndexChanged H comboBox1 SelectedlndexChanged:
this .
button 1 . add Click (new System. Event Handler (this. list Boxl Selected
IndexChanged) ) ; this . button 1 . add Click (new System. Event Handler (this
. comboBox1 Selected IndexChanged) ) ;
3. BBecTH Åe.neraTb1
C06b1THfl menu Item
11 . add Click:

this .menuItem1 .add C1ick (new System.EventHandler
(this . 1istBox1_Se1ectedIndexChanged) ) ; this.menuItem1 .add C1ick (new
System. EventHandler (this . сотЬоВох1 Se1ectedIndexChanged) ) ;
     Запуск проекта на языках Visual
Basic ЛЕТ, Visual С# и Visual Ј#

.еддк

. Кк«хе

произошло произошло

Событие произошло Событие произошло
Событк п оизошло

произошло

В*оп1

4.
Запустить проект на выполнение и щелкнуть по кнопке, пункту меню
и кнопке панели инструментов.
В списке и поле со списком будут
выведены тексты «Событие произошло» (см. рис. 4.23).
Рис. 4.23.
Проект
«Делегаты»
Контрольные вопросы
1. Может ли один и тот же делегат
вызывать различные обработчики событий? Может ли один и тот же обработчик
события вызываться различными делегатами?
Компьютфый рактикум
4.11. Создать проект
«Делегаты».

4.12. Алгоритмы перевода чисел и их кодирование на языках
объектноориентированного программирования
4.12.1. Алгоритм перевода целых чисел
2.8.1. Перевод целых чисел из
десятичной системы в двоичную, восьмеричную и шестнадцатеричную

Алгоритм позволяет формализовать решение задачи. Запись
алгоритма должна производиться на языке, понятном исполнителю. Если
исполнителем алгоритма является человек, то алгоритм может быть записан на
естественном языке (русском, английском, китайском и др.).
Для того чтобы сделать алгоритм более наглядным, часто
используют блок-схемы. На блок-схеме хорошо видна структура алгоритма, по
которой исполнителю (человеку) удобно отслеживать процесс его выполнения.
Для того чтобы этот алгоритм мог автоматически выполнить
исполнитель компьютер, он должен быть записан на понятном для этого исполнителя
языке, т. е. на языке программирования.
Реализуем алгоритмы перевода чисел из десятичной в двоичную,
восьмеричную и шестнадцатеричную системы счисления в форме проекта на языках
объектно-ориентированного программирования. Последовательно запишем эти
алгоритмы на естественном языке, в форме блок-схемы и на языках
программирования.
Проект «Перевод целых чисел». Создать проект, реализующий
перевод целых десятичных чисел в двоичную, восьмеричную и шестнадцатеричную
системы счисления.
Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
1.   Разместить
на форме (рис. 4.27):
       текстовое
поле TextBox1 для ввода целого числа в десятичной системе счисления;  надпись
Labe11 для вывода целого двоичного числа;
АлгоритМизаЦИЯ
       надпись
Labe12 для вывода целого восьмеричного числа;  надпись Labe23 для
вывода целого шестнадцатеричного числа;  кнопку Button1 для
создания обработчика события, реализующего перевод целых чисел в двоичную
систему счисления;  кнопку Button2 для создания обработчика
события, реализующего перевод целых чисел в восьмеричную систему счисления; о
кнопку Button3 для создания обработчика события, реализующего перевод целых
чисел в шестнадцатеричную систему счисления.
2.   Сделать
графический интерфейс более привлекательным. Присвоить элементам управления
новые значения свойств с помощью диалогового окна Свойства.
Алгоритм перевода целых десятичных чисел в двоичную систему
счисления на естественном языке:
1)  Ввести десятичное
целое число.
2)  В цикле с предусловием, пока исходное
целое десятичное число или целое частное больше О, выполнить вычисления:
2.1)
Вычислить остаток
от деления исходного целого десятичного числа или целого частного на основание
новой системы (на 2).
2.2)
Выполнить целочисленное деление целого десятичного числа или
целого частного на основание новой системы (на 2).
2.3)
Записать полученный остаток от деления слева от двоичного числа
(остатки, записанные в обратном порядке, образуют двоичное число). З) Вывести
двоичное целое число.
Алгоритм перевода целых десятичных чисел в двоичную
Систему счисления в форме блок-схемы (с использованием языка Visual
Basic .NET). Программный код удобнее записывать на том языке
программирования, на котором будет кодиров аться алгоритм для его
выполнения на компьютере (рис. 4.24).
Кодирование алгоритма на языке программирования Visual
Basic ЛЕТ. Алгоритм, записанный на естественном Я зыке и
изображенный в виде блок-схемы, рассчитан на исП Олнителя человека.
Для того чтобы алгоритм исполнил К ОМПьютер, он должен быть
закодирован на языке программирования.

Dim N, R Аз Intege

Рис. 4.24. Блок-схема алгоритма
перевода целых десятичных чисел в двоичную систему счисления
Кодирование алгоритма существенно
упростится, если использовать записанный на естественном языке алгоритм в
качестве комментариев в программе. Комментарии не испольЗУЮТСЯ компьютером, так
как не компилируются вместе с программой и не выполняются. Однако комментарии
существенно облегчают понимание хода выполнения программы человеком.
Алгоритм на естественном языке можно скопировать и вставить
в программу, поместив соответствующий символ в начале каждой строки алгоритма,
чтобы превратить ее в комментарий. Затем программный код на языке
программирования из блок-схемы можно разместить под каждой строкой комментария,
и получится программа, которая уже документирована.
В языке программирования Visual Basic .NET
комментарий в строке начинается с символа апостроф «'». В языках
программирования Turbo Delphi, Visual С# и Visual Ј# строки комментария
начинаются с двух символов косой черты «//».

Создание обработчика события,
реализующего е .VB перевод целых десятичных чисел в двоичную систему счисления,
на языке программирования Visual Basic .NET
З. Объявить переменные:
Dim N As Integer ' десятичное число
Dim R As rnteger ' остаток от деления исходного '
целого десятичного числа или целого частного на основание новой СИСТеПЉ1
Dim Bin As String ' двоичное число в
строковой ' ф орме
4. Создать обработчик события:
Private Sub Button1 C1ick (ByVal sender As System.
0bj ect, ByVal е As System . EventArgs) Handles
Button1 .Click
' 1 . Ввести десятичное целое
число и другие на чальные зна чения
Va1 (TextBox1 . Тех Ё)
Labe11 . Text
Bin

' 2 . В цикле с предусловием, пока
исходное целое ' десятичное число или целое частное больше 0, выполнить
вычисления . Do whi1e > О
' 2 . 1 . Вычислить остаток от деления исходного целого
десятичного числа или целого частного на основание новой системы (на 2) .
Моа 2
' 2 . 2 .
Выполнить целочисленное деление целого десятичного числа или целого частного на
основание новой СИСтемы (на 2) .
' 2 . З. Записать полученный остаток от деления слева
от двоичного числа (оста тки, записанные в ' обра гном порядке, образуют двоичное
число) .
      'Bin       CStr
       + Bin
Воор
' З . Вывести двоичное целое число
Labe11 . Text
End sub
Создание обработчика события, реализующего перевод целых
десятичных чисел в двоичную систему счисления, на языке программирования Turbo
Delphi
З. Объявить переменные:
var
Ы, R : integer;
Bin: string;
4. Создать обработчик события:
procedure
TForm1 . Button1C1ick (Sender: 20bject) ; begin
StrToInt (Edit1 .Text) ;
Labe11 . Caption Bin while N > 0 Do begin R N mod 2;

Bin F10atToStr ( R ) + end ; Labe11 . Caption Bin; end ;
Алгоритм перевода целых десятичных чисел в восьмеричную
систему счисления на естественном языке:
1) Ввести
десятичное целое число.
2) В
цикле с предусловием, пока исходное целое десятичное число или целое частное
больше О, выполнить вычисления:
2.1)
Вычислить остаток
от деления исходного целого десятичного числа или целого частного на основание
новой системы (на 8).
2.2)   Выполнить
целочисленное деление целого десятичного числа или целого частного на основание
новой системы (на 8).
2.3)   Записать
полученный остаток от деления слева от восьмеричного числа (остатки, записанные
в обратном порядке, образуют восьмеричное число). З) Вывести восьмеричное целое
число.
Алгоритм перевода целых десятичных чисел в восьмеричную
систему счисления в форме блок-схемы (с использованием языка Visual С#) (рис.
4.25):

int N, R ;

Рис. 4.25. Блок-схема алгоритма
перевода целых десятичных чисел в восьмеричную систему счисления
Создание обработчика события, реализующего перевод
целых десятичных чисел в восьмеричную систему счисления, на языке
программирования Visual С# З. Объявить переменные: int ГЫ; / /десятичное число
int R ; / / остаток от деления исходного целого / /десятичного числа или целого
частного / /на основание новой системы string 0ct ; / / восьмеричное число в
строковой / / форме
4. Создать обработчик события:
private void button2 C1ick (object sender, System.
EventAras е)
{ / / 1 . Ввести десятичное целое
число и другие / / на чальные данные .
Convert .ToInt32 (textBox1 . Тех Ё) ;
1abe12 . 2ext
0ct
7/2. В цикле с предусловием, пока исходное целое /
/десятичное число или целое частное больше 0, / /выполнить вычисления : while
(Ы > 0)
{ ,//2 . 1 . Вычислить остаток от деления исходного /
/целого десятичного числа или целого частного / /на основание новой систед,ь
(на 8) .
8;
/ /2 . 2 . Выполнить целочисленное деление целого /
/десятичного числа или целого частного на / / основание новой системы (на 8) .
Convert . ToInt32 (N/8) ;
/ /2 . З . Записать полученный остаток от деления
/ / слева от двоичного числа (остатки, записанные / /в
обратном порядке, образуют восьмеричное / / число) .
     0ct      Convert.
ToString (R) + 0ct ;

/ / З . Вывести восьмеричное
целое число .
    1abe12 .
Тех Ё   Ос 1: ;
Алгоритм перевода целых десятичных чисел в шестнадцатеричную
систему счисления на естественном языке:
1) Ввести
десятичное целое число.
2) В
цикле с предусловием, пока исходное целое десятичное число или целое частное
больше О, выполнить вычисления:
2.1)   Вычислить
остаток от деления исходного целого десятичного числа или целого частного на
основание новой системы (на 16).
2.2)   Выполнить
целочисленное деление целого десятичного числа или целого частного на основание
новой системы (на 16).
2.3)   Выразить
остатки от деления цифрами новой системы счисления.
2.4)   Записать
полученный остаток от деления слева от шестнадцатеричного числа (остатки,
записанные в обратном порядке, образуют шестнадцатеричное число).
З) Вывести шестнадцатеричное целое число,

Алгоритм перевода целых десятичных чисел в шестнадцатеричную систему счисления
в форме блок-схемы (с использованием языка Visual Ј#) (рис. 4.26).

Рис. 4.26.
Блок-схема алгоритма перевода целых десятичных чисел в шестнадцатеричную
систему счисления
Создание
обработчика события, реализующего перевод целых десятичных чисел в
шестнадцатеричную систему счисления, на языке программирования Visual Ј# З.
Объявить переменные: int N; / /десятичное число
.int R ; / / остаток от деления исходного целого
/ /десятичного числа или целого частного
/ / на основание новой систед,љј
String Нех; / /шестнадца теричное число
/ /в строковой форме
String Н; / /разряд шестнадца
теричного числа / /в строковой форме
4. Создать обработчик события:
private void button1 C1ick (0bj ect sender, System.
EventArgs е)
{ / / 1 . Ввести десятичное целое
число и другие / /на чальные данные .
 = System.Convert.ToInt32 (textBox1 . get Text ( ) ) ;
1abe13 . set Text (””)
Нех
7/2. В цикле с
предусловием, пока исходное целое //десятичное число или целое частное больше
0, //выполнить вычисления : while (N > 0)
{ //2 . 1 . Вычислить остаток от деления исходного /
/целого десятичного числа или целого частного / /на основание новой системы (на
16) .

/ /2 . 2 . Выполнить
целочисленное деление целого / /десятичного числа или целого частного / /на
основание новой СИСТеЛ,Ь (на 1 6) .
System.Convert .ToInt32 (N / 16) ;
,//2 . З. Выразить остатки от деления
цифрами //новой системы счисления .
н System.Convert. ToString ( R ) ;
switch ( R ) {case 10 : н break; case 11 : н break; case 12 : н break; сазе 13: н break ; сазе 14 : н break ; сазе 15 : н break;
//2 . 4 . Записать полученный остаток от деления
/ / слева от шестнадцатеричного числа
(остатки, / /записанные в обра гном порядке, образуют / /шестнадца теричное
число) .
Нех
/ / З . Вывести шестнадцатеричное целое число .
1abe13 . set
Text (Нех) ;
Запуск проекта на языках Visual Basic
ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
5. Запустить проект на выполнение и
ввести в текстовое поле десятичное число (например, 255).

Щелкнуть по кнопкам, на надписи будут выведены результаты перевода, т. е.
двоичное, восьмеричное и шестнадцатеричное числа (см. рис. 4.27).

Рис. 4.27.
Проект «Перевод целых чисел»

Windows-CD СГ
4.12. Создать проект «Перевод целых чисел»
4.12.2. Алгоритм перевода дробных чисел
2.82. Перевод дробей из десятичной
системы в двоичную, восьмеричную и шестнадцатеричную

Проект «Перевод дробных чисел». Создать проект, реализующий
перевод дробных десятичных чисел в двоичную, восьмеричную и шестнадцатеричную
системы счисления.
Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#, Visual и Тимо Delphi
1.   Разместить
на форме (рис. 4.31):
•  текстовое поле
TextBox1 для ввода дробного числа в десятичной системе счисления;
•  надпись Labe11 для
вывода дробного двоичного числа;
•  надпись Labe12 для
вывода дробного восьмеричного числа;
•  надпись Labe13 для
вывода дробного шестнадцатеричного числа;
•

кнопку Button1 для создания обработчика события, реализующего перевод дробных
чисел в двоичную систему счисления;
•  кнопку Button2 для
создания обработчика события, реализующего перевод дробных чисел в восьмеричную
систему счисления;
•  кнопку Button3 для
создания обработчика события, реализующего перевод дробных чисел в
шестнадцатеричную систему счисления.
2.   Сделать
графический интерфейс более привлекательным. Присвоить элементам управления
новые значения свойств с помощью диалогового окна Свойства.
Алгоритм перевода дробного десятичного числа в двоичную
систему счисления на естественном языке:
1) Ввести
десятичное дробное число.
2) В
цикле с предусловием, пока исходная дробь или дробная часть произведения не
станет равной нулю или не будет достигнута требуемая точность представления
числа, выполнить вычисления:
2.1)   Выполнить
умножение десятичной дроби или полученной дробной части на основание новой
системы счисления (на 2).
2.2)   Вычислить
дробную часть произведения.
2.3)
Записать
полученную целую часть произведения справа от двоичного числа (целые части
произведения, записанные в прямом порядке, образуют двоичное число). З) Вывести
двоичное дробное число.
Алгоритм перевода дробного десятичного числа в двоичную
систему счисления в форме блок-схемы (с использованием языка Visual Basic
.NET). Программный код удобнее записывать на том языке программирования, на
котором будет кодироваться алгоритм для его выполнения на компьютере (рис.
4.28):

Dim ы, М As Single

Рис. 4.28.
Блок-схема алгоритма перевода дробных десятичных чисел в двоичную систему
счисления
Кодирование алгоритма на языке программирования Visual Basic
ЛЕТ. При реализации второго шага алгоритма Цикл с предусловием может иметь
бесконечное число шагов, в Результате получается бесконечная периодическая
дробь. Однако при реализации алгоритма на компьютере количество Шагов
ограничивается типом переменной, в которой хранится ДР0бная часть произведения
и которая входит в предусловие. Если дробная часть произведения хранится в
переменной ы, КОТ0рая имеет тип Sinqle, то ее значение может хранить  значащих
цифр в десятичной системе счисления, что соОТВетствует 23—25
значащим цифрам в двоичной системе счисления.
Создание обработчика события,
реализующего перевод дробных десятичных чисел в двоичную систему счисления, на
языке программирования Visual Basic ОТЧЕТ
З. Объявить переменные:
    Dim        Аз Single
' десятичная дробь
Dim М As Single ' произведение десятичной дроби ' или
полученной дробной части на основание новой системы счисления
Dim Bin Аз String 'двоичная дробь в строковой ' форме
4. Создать обработчик события:
Private Sub Button1 Click (ByVal sender Аз System.
0bj ect, ByVal е Аз System .
EventArgs) Handles
Button1
.C1ick
' 1 . Ввести десятичное дробное
число и другие на чальные данные .
Va1 (TextBox1 . Тех Ё)
Labe11 . Тех Ё

Bin
' 2 . В цикле с предусловием, пока
исходная дробь
' или дробная часть произведения не станет равной '
нулю или не будет достигнута требуемая точность ' представления числа ,
выполнить вычисления :
      Do
Whi1e         > О
' 2 . 1 . Выполнить умножение десятичной дроби или
' полученной дробной части на
основание новой счисления (на 2) .
м
' 2 . 2 . Вычислить дробную часть
произведения . м Int (М)
' 2 . З . записать полученную целую часть произведения
справа от двоичного числа (целые ча сти
' произведения, записанные в прямом порядке ,
' образуют двоичное число) .
        Bin + cser ( Int     )
Loop

' . Вывести двоичное дробное число
. Labe11 . Тех 1: + В 1 п End Sub
Создание обработчика события,
реализующего перевод дробных десятичных чисел в двоичную систему счисления, на
языке программирования Turbo Delphi
З. Объявить переменные: var
ГА, М: single;
Bin : string;
4. Создать обработчик события:
procedure
TForm1 . Button1Click (Sender: TObject) ; begin
StrTQF10at (Edit1 . Text) ;
Labe11 .
Caption Bin whi1e  > 0 Do begin м
            Frac        ;
ВЈп        +
F10atToStr (Int (М) ) ; end ; Labe11 . Caption       LabeL1 .Caption + Bin; end
;
Алгоритм перевода дробного десятичного числа в восьмеричную
систему счисления на естественном языке:
1)    Ввести
десятичное дробное число.
2)    В цикле с
предусловием, пока не будет достигнуто определенное количество знаков
восьмеричного дробного числа, выполнить вычисления:
2.1)   Выполнить
умножение десятичной дроби или полученной дробной части на основание новой
системы счисления (на 8).
2.2)   Вычислить
дробную часть произведения.
2.3)   Записать
полученную целую часть произведения справа от восьмеричного числа (целые части
произведения, записанные в прямом порядке, образуют восьмеричное число).
3)
Вывести
восьмеричное дробное число.

Алгоритм перевода дробного десятичного числа в восьмеричную
систему счисления в форме блок-схемы (с использованием языка Visual С#) (рис.
4.29):

float
N, М;

Рис. 4.29.
Блок-схема алгоритма перевода дробных десятичных чисел в восьмеричную систему
счисления
Кодирование алгоритма на языке программирования Visual С#.
При реализации второго шага алгоритма в цикле с предусловием в качестве условия
используем сравнение длины восьмеричной дроби с заданным числом. Цикл будет
выполняться до тех пор, пока количество знаков в восьмеричной дроби не
достигнет заданного количества.
Создание обработчика события,
реализующего перевод дробных десятичных чисел в восьмеричную систему счисления,
на языке программирования Visual С#
З. Объявить переменные:
float Ы; / /десятичная дробь float М; / /произведение
десятичной дроби или / /полученной дробной части на основание новой / / системы
счисления string 0ct ; / /восьмеричная дробь в строковой / / ф орме
4. Создать обработчик события:
private void button2 C1ick (object sender, System.
EventArgs е)
Алг0РИТМИЗаЦИЯ

/ / 1 . Ввести десятичное дробное число
и другие / /на чальные данные .
Convert . ToSing1e (textBox1 . Тех Ё)
; labe12 . Text
0ct
/ / 2. В цикле с предусловием, пока не получим / /
восьмеричную дробь заданной длины, произвести
/ /вычисления :
whi1e (0ct . Lenqth < 9)
{ / / 2 . 1 . Выполнить умножение
исходной десятичной / /дроби или полученной дроби на основание новой
/ / системы (на 8) .
м
/ / 2 . 2 . Вычислить дробную часть
произведения .
     м     ( int) М;
/ /2 . З . Записать полученную целую часть
/ / произведения справа от восьмеричного числа / /
(целые части произведения, записанные в прямом / /порядке, образуют
восьмеричное число) .
     0ct       0ct +
Convert . ToString ( (int)M) ;
/ / З . Вывести восьмеричное дробное число
.
     1abe12 .
Text      1abe12 . Тех Ё + 0ct ; }
Алгоритм перевода дробного десятичного числа в
шестнадцатеричную систему счисления на естественном языке:
1)  Ввести десятичное
дробное число.
2)  В цикле со счетчиком
определенное количество раз выполнить вычисления:
2.1)    Выполнить
умножение десятичной дроби или полученной дробной части на основание новой
системы счисления (на 16).
2.2)    Вычислить
дробную часть произведения.
2.3)    Записать
полученную целую часть произведения справа от шестнадцатеричного числа (целые
части произведения, записанные в прямом порядке, образуют шестнадцатеричное
число).
З) Вывести шестнадцатеричное дробное число.

Алгоритм перевода дробного десятичного числа в
шестнадцатеричную систему счисления в форме блок-схемы (с использованием языка
Visual Ј#) (рис. 4.30):

Рис. 4.30.
Блок-схема алгоритма перевода дробных десятичных чисел в шестнадцатеричную
систему счисления
Кодирование алгоритма на языке программирования Visual Ј#.
Реализуем второй шаг алгоритма в форме цикла со счетчиком, т. е. вычисление
шестнадцатеричной дроби произведем определенное количество раз.

Создание обработчика события,
реализующего перевод дробных десятичных чисел в шестнадцатеричную систему
счисления, на языке программирования Visual Ј# З. Объявить переменные:
float М; / /десятичная дробь float М; / /произведение
десятичной дроби или
/полученной дробной части на основание
новой
/ систеп..ш счисления
String Нех; / /шестнадца теричная дробь
/ /в строковой форме
String Н; //разряд шестнадцатеричной дроби
в
/ [строковой форме byte 1; / / счетчик
цикла
4. Создать обработчик события:
private void
button3 C1ick (0bject sender, System. EventArgs е)
{ / / 1 . Ввести десятичное дробное
число и другие / [ на чальные данные .
 = System.Convert.ToSingle (textBox1 .get Тех Ё ( ) ) ;

  1abe13 . set Тех 1:   . ;
Нех
//2. В цикле со
счетчиком определенное / количество раз произвести ВЫЧИСЛеНИЯ : for (1       1
;
 / / 2 . 1 .
Выполнить умножение десятичной дроби или / / полученной дробной части на
основание новой / системы счисления (на 1 6) .
/ / 2 . 2 . Вычислить дробную часть
произведения . м (int) М;
/ / 2 . З . Выразить целые части
произведений цифрами /новой системы счисления .
Н   System.
Convert . ToString ( (int) М) ; switch ( (int) М) {case 10 :
break; case 1
х Н break ; case 12 :
Н break; case 13:
Н break; case 14 : н break ; case 15: н break ;
/ /2 . 4 . Записать полученную целую часть
/ /произведения справа от шестнадцатеричного
/ / числа (целые части произведения, записанные в
//прямом порядке, обра зуют шестнадцатеричное число) .

Нех
/ / З . Вывести шестнадца теричное дробное
число .
1abe13 . set
Тех Ё (1abe13.get Text () + Нех) ;
 Запуск проекта на языках Visual
Basic
      .NET, Visual        Visual         и Тимо Delphi
5. Запустить проект на выполнение и
ввести в текстовое поле десятичную дробь (например, О, 7).
Щелкнуть по кнопкам, на надписи будет
выведен результат перевода, т. е. двоичная, восьмеричная и шестнадцатеричная
дроби (см. рис. 4.31).

7,• Перевод
  дробных «лжел

двоима ие-т-таа

                                                                       о
  101 1001 1001 1 001 1 001        1

сьсмм.а

 о 54631 4630 о вззззз

Рис. 4.31.
Проект «Перевод дробных чисел»

4,13. Графика в
объектно-ориентированных языках программирования
4.13.1.
Графика в языках программирования Visual Basic .NET, Visual С# и Visual Ј#
Интегрированная система программирования Visual Studio для
создания рисунков, рисования текста и отображения графических изображений на
формах и элементах управления использует GDI (Graphics Device Interface —
графический интерфейс устройств).
Объект Graphics (Область рисования). Для использования GDI
сначала необходимо создать область рисования, т. е. объект Graphics. Объект
Graphics можно создать тремя различными способами.
Первый способ состоит в использовании метода CreateGraphics
( ) формы или элемента управления, на котором надо отобразить графику.
Например, создадим объект Graph1 типа Graphics для графического поля
PictureBox1.

язык Visual Basic .NET:
 Dim Gr.aph1 As •Graph“-cs rea:eGraohics ( )
Языки VisuaJ С# и Visual Ј#:
                    Graphj.cs
Grao.A.1      Dic и reBox
Второй способ используется для создания растрового
изображения, которое можно сохранить как графический файл. Сначала необходимо
объявить создание растрового изображения Image1 определенного размера, затем
объявить создание объекта Graph1 типа Graphics из растрового изображения Image1
и, наконец, присвоить свойству Image формы или элемента управления (например,
PictureBox1 . Image) значение Image1.

язык Visual Basic .ГЧЕТ:
Dim Image1 As New Bitmap (200, 200)
                     Dim
Graph1 As Graphics      Graphics .
FromImage ( Imagel ) PictureBox1 .
Image Image'-
Язык Visual С#:
Bitmap image1 = пен Bitmap (200, 200)
; Graphics Graph1 Graphics . FromImage (image1) ; pictureBox1 . Image image1;
Язык Visual

Bitmap image1 = пен Bitmap
(200, 200) ; Graphics Graph1 Graphics . Fromlmage (image1) , pictureBox1 . set_Image (image1) ;

Третий способ использует событие Paint формы или элемента
управления, которое происходит при их создании или обновлении. В обработчике
этого события одним из аргументов является. е типа System. Windows . Forms .
PaintEventArgs. В программном коде обработчика события можно объявить создание
объекта Graph1 типа Graphics как свойства аргумента е.

язык Visual Basic .NET:
Private Sub PictureBox1 Paint (ByVal
sender Аз 0bject, ByVal е Аз System.Windows . Forms .
PaintEventArgs) Handles PictureBox1 . Paint
                    Dim
Graph1 As Graphics     е . Graphics
Епа Sub
Язык Visual С#:
privaee void pictureBox1 Paint (object sender, System.
Windows . Forrns . PaintEve.“.tArgs е)
                      Graphics
Graph1        е . Graphics;

private void pictureBox1 Paint (0bject sender, System.Rindows .Forms . PaintEventArgs
е)
Перо. Объект Реп (Перо) определяет цвет и ширину линии
рисования. В разделе объявления переменных необходимо определить имя объекта
(например, Реп 1), установить цвет (например, красный C010r . Red) и ширину
линии в пикселях (например, З).

язык Visual Basic .ГЧЕТ:
Dim Реп 1 As New Реп (Color.Red, З)
Язык Visual
Реп Реп 1 = new Реп (C010r.Red, З) ;
Язык Visual Ј#:
Реп Реп 1 печ Реп (CoIor .get Red() , З) ;

Кисть. Объект Brush (кисть) определяет цвет и стиль
закрашивания прямоугольников, окружностей и других замкнутых фигур. В разделе
объявления переменных необходимо определить имя объекта (например, Brush1) и
установить тип закраски и цвет (например, сплошная закраска синего цвета
SolidBrush (C010r .В1ие) ).

язык Visual Basic .NET:
Dim Brush1 Аз New S01idBrush (C010r.B1ue)
Язык Visual С#:
S01idBrush Brush1 = new S01idBrush (C010r .Blue) ;
Язык Visual Ј#:
SolidBrush Brush1 = пен S01idBrusb,
(CoLor. get В1ие () ) ;

Цвет. Цвет устанавливается как значение свойства Color.
Можно установить цвет с использованием нескольких десятко в цветовых констант.
Ниже приведены примеры установки

зеленого цвета для объекта Реп 1 (перо) и
желтого цвета для объекта Brush1 (кисть).

языки Visual Basic .ГЧЕТ и язык Visual
Реп 1 .Color Color .Green
Brush1 .C010r =
Color.Yellow
Язык Visual Ј#:
Реп! . set Co'-or (C010r.get Green ( ) ) ;
Brush1 .set C010r (C010r.get Ye110w() ) ;

Для установки цвета в 24-битовой палитре цветов RGB
используется метод C010r . FromArgb (Red, Green, В1ие) , аргументами которого
являются три числа в диапазонах О до 255 (интенсивности красного, зеленого и
синего цветов). Например, так можно установить пурпурный цвет для кисти Brush1,

языки Visual Basic .NET и язык
Visual Brush1 . Color C010r . FromArgb (255, О, 255)
Язык Visual
Brush1 . set C010r (Color.FromArgb (255, 0,255) ) ;

Цвет пера или кисти можно также установить с использованием
элемента управления ColorDia10g. Для этого данный элемент управления необходимо
поместить на форму и ввести в программный код следующие строки:

Языки Visual Basic .NET и Язык Visual С#:
Сол orDialog]. . ShowDia10g ( )
Реп 1 . Co-jor =
ColorDiaiog2 .C010r
Язык Visual c010rDialoq1
Реп 1 . set C010r (c010rD±a10g1 . aet Color () ) ;

После выполнения первой строки программного кода появится
диалоговое окно Цвет (рис. 4.32). Вторая строка программного кода присваивает
перу цвет, который можно выбрать в диалоговом окне Цвет с помощью мыши из
палитры 48 основных цветов. После щелчка по кнопке ОпреДелить цвет в
раскрывшемся диалоговом окне цвет можно выбрать из полной палитры 16 777 216
цветов, а также установить путем ввода в текстовые поля интенсивностей базовых
цветов в системе цветопередачи RGB или оттенка, контрастности и яркости в
системе цветопередачи HSB.

1.1 .З. Палитры цветов в системах
                                            RGB,
СМУК и HSB                  Информатика-9
цветопередачи

Рис. 4.32. Диалоговое окно Цвет
Графические методы. Графические фигуры рисуются с
использованием графических методов. Замкнутые фигуры, такие как прямоугольники
или эллипсы, состоят из двух частей — контура и внутренней области. Контур
рисуется с использованием заданного пера, а внутренняя область закрашивается с
использованием заданной кисти.
В языках Visual С# и Visual е.Ј# строки
программного кода заканчиваются знаком точка с запятой «;» .
DrawLine ( ) — метод рисования линии, аргументами коТОрого
являются перо определенного цвета и толщины (например, Реп!), а также
координаты концов линии Х 1, У! и

DrawRectana2e ( ) метод рисования прямоугольника,
аргументами которого являются lIepo определенного цвета и толщины (например,
Реп 1), а также координаты левого верхнего угла Х 1, У 1, ширина Eidth и высота
Height.
Языки Visual Basic .NET, Visual С# и Visual Ј#:
Graph1 .DrawRectang1e (Реп 1, Х 1, У 1, Wid-F.,
Heiaht)
Fi11Rectang1e ( ) метод закраски прямоугольника с
использованием кисти определенного цвета.
языки Visual Basic .NET, Visual С# и Visual Ј#:
Graph1 .Fi11Rectanq1e (Brush1, Х 1, У 1, Width, Height)
DrawE11ipse ( ) — метод рисования окружности или эллипса,
аргументами которого являются перо определенного цвета и толщины (например, Реп
1), а также координаты левого верхнего угла описанного прямоугольника Х 1, У 1,
ширина Width и высота Height.
Языки Visual Basic .NET, Visual С# и Visual Ј#:

Graph1 .DrawE11ipse (Реп 1 , Х
1, У 1, Width, Height)
Fi12E11ipse ( ) метод закраски окружности или эллипса с
использованием кисти определенного цвета.
                                языки
VisuaI Basic .NET, Visua'                и Visua'
Grapb.1 .Fi11E11ipse (Brush1, Х 1, У 1, Eidt-b„ Height)
Для рисования точки с заданными
координатами Х 1 и У 1 можно использовать методы DrawRectangle (Реп 1 ,
У 1, 1, 1) или
DrawE11ipse (Реп1,    У 1, 1, 1) , в которых аргументы Ridth и Height равны 1.
Graph1 . Clear ( ) — метод, заданным цветом (например,
белым) стирающий изображения в области рисования.

языки Visual Basic .NET и Visual се.
Graph1 .C1ear (Со о: . Rhite)
Язык Visual Ј#:
Graph1 .C!ear (Coior.ge: Rhite ( ) ) ;

АлгориТМИЗаЦИЯ

Рисование текста. Метод DrawString ( ) позволяет выводить
текст в область рисования. Аргументами метода является строка текста, шрифт,
кисть и координаты начала строки. Объекты шрифт (например, drawFont) и кисть
(например, drawBrush) необходимо объявить.

Язык Visual Basic .ГЧЕТ:
Dim drawFont Аз New Font (”Arial”, 12)
Dim drawBrush Аз New S01idBrush (C010r .В2асК)
Язык Visual С#:
Font drawFont = new Font (”Aria1”,
Brush drawBrush = new S01idBrush (C010r.B1ack) ;
Язык Visual Ј#:
Font drawFont = new Font (”Aria1” 12) ;
Brush drawBrush = new S01idBrush
(C010r.get В1асК() ) ;

Рисование текста в левом верхнем углу области рисования
можно осуществить так:

Языки Visual Basic .NET, Visuat С#
и Visuai Ј#: Graph1 . DrawString (” Текст”, drawFont, drawBrush, 0, 0)

Проект «Графический редактор». Создать проект, который
позволит рисовать линии, прямоугольники, закрашенные прямоугольники, окружности
и закрашенные окружности. Ввод координат осуществлять щелчками по графическому
полю. Для рисования фигур использовать меню и панель инструментов. Обеспечить
возможность установки для пера и кисти любого цвета из полной палитры цветов.
Обеспечить возможность Открытия и сохранения графических файлов.
 Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С# и Visual Ј#
1.   Поместить
на форму (рис. 4.36):
•
графическое поле
PictureBox1, которое будет использоваться в качестве области рисования;

•   четыре
надписи Labe11, Labe12, Labe13 и Labe14 для вывода координат;
•   четыре
надписи для вывода имен координат;
•
меню MainMenu1
для создания меню проекта;
•   панель
инструментов ToolBar1 для создания шести кнопок, обеспечивающих рисование
графических примитивов и очистку поля рисования;
•   коллекцию
изображений ImageList1 для хранения изображений, которые будут помещены на
кнопки панели инструментов;
•   диалог
C010rDia10g1, который позволяет выбрать цвет с использованием диалогового окна
Цвет;  диалог 0penFileDia10g1, который
позволяет выбрать файл для открытия с использованием диалогового окна Открыть;
•   диалог
SaveFiLeDia10g1, который позволяет выбрать имя файла при его сохранении с
использованием диалогового окна Сохранить.
Элементы управления Ма±пМепи1,
ImageList1, ColorDia10g1, 0penFi1eDia10g1 и SaveFileDialog1 будут видны только
в процессе создания проекта (рис. 4.33).
            МаћМэпи1
SImageList1 SColorDialog1             0penFileDialog1       SaveFileDial0Q1
Рис. 4.33. Элементы управления,
которые не видны в процессе выполнения проекта
Объявление переменных и объектов и создание
обработчика событий на языке Visual Basic ЛЕТ
2.   Объявить
переменные, которые будут содержать координаты двух точек, а также перо и
кисть, которые будут использоваться для рисования графических примитивов.
Dim Х 1, У 1, Х 2, У 2 As Integer
Dim Реп 1 As
New Реп (Color.B1ack, 5)
Dim Brush1 Аз New S01idBrush (Color.
Red)
З. Создать программный код обработчика
события, который обеспечивает запоминание и вывод на надписи координат щелчков
левой и правой кнопками мыши по графическому полю. Использовать оператор
выбора, который в зависимости от условия (значения аргумента обработчика со-

бытия е . Button) запоминает и выводит
ту или иную пару координат.
Private Sub PictureBox1 Clic.k (ByVa1 sender Аз
0bject, ВуУа1 е As System. Windows . Forms .
MouseEventArgs) Handles PictureBox1 .
MouseDown
Select Case е .Button
Case MouseButtons . Left
Labe11 . Тех Е
Labe12 . Тех Е
Case MouseButtons . Right
Labe13 . Тех Е
Labe14 . Тех е
End Select
End Sub
Создадим меню графического редактора, для чего используем
элемент управления mainMenu1:

файл

Графические примитивы

Цвет

Открыть

Линия

Перо

Сохранить

Прямоугольник

Кисть

Закрашенный прямоугольник

Окружность

Закрашенная окружность

Очистить

Создание меню и обработчиков событий
рисования графических примитивов на языке Visual С#
4.    Разместить
на форме элемент управления mainMenu1.
5.    В
появившемся в левом верхнем углу формы в редакторе меню создать заголовок
первого уровня. В поле Прототип для текста внести пункт меню Графические
примитивы.
б. Для создания пункта меню перейти на
следующую строку в редакторе меню. Ввести пункты меню Линия, Прямоугольник,
Закрашенный прямоугольник, Окружность, Закрашенная окружность и Очистить.

7.
Аналогично создать пункты меню верхнего уровня Файл и Цвет и их
подпункты.
8.
Использовать второй способ для создания области рисования с
использованием растрового изображения imaqe1, которое можно сохранить как
графический файл. Объявить image1 как растровое изображение.
      Bitmap image1     new
Bitmap (300, 300) ;
9.
Двойным щелчком по пунктам меню последовательно создать заготовки
обработчиков событий. Ввести программный код обработчика события рисования
линии. private void menuItem2 C1ick (object sender, System. EventArgs е)
{Graphics
Graph1 Graphics . FromI.mage (image1) ; pictureBox1 . Image image1;
Graph1 . DrawLine (Реп 1, Х 1, У 1, Х 2, У
2) ;
10.   Создать
программный код обработчика события рисования прямоугольника. Для вычисления
ширины и высоты прямоугольника использовать абсолютное значение разности
соответствующих координат.
private void menuItem2 C1iQk (object sender, System.
EventArgs е)
{Graphics
Graph1 Graphics . From.T.mage (image1) ; pictureBox1 . Image image1;
Graph1 . DrawRectang1e (Реп 1, Х 1, У 1, Math .Abs (          ,
Math .Abs (У 2-м 1) )
11.   Создать
программный код обработчика события рисования закрашенного прямоугольника.
private void menuItem2 Click (object sender, System.
EventArgs е)
{Graphics
Graph1 Graphics . FromImage (image1) ; pictureBox1 . Image image1;
Graph1 . DrawRectang1e (Реп 1, Х 1, У 1, Math .Abs (Х
2-х 1) , Math .Abs (Y2-Y1 >
Graph1. Fi11Rectang1e (Brush1, Х 1, У 1,
Math .Abs (Х2-Х1) , Math.Abs (У2-У1) ) ,•
12.   Создать
программный код обработчика события рисования окружности.
private void menuItem2 C1ick (object sender, System.
EventArqs е)
          {Graphics
Graph1               Grapnics . FromImage (image1) ;

      DiczureBox1 . Image      image1;
Graph1 . DrawE11ipse (Реп 1, Х 1,
Math . Abs (У 2

Math .Abs (Х 2

13.   Создать
программный код обработчика события рисования закрашенной окружности.
private void menuItem2 C1ick (object sender, System.
EventArgs е)
{ Graphics Graph1 Graphics . FromImage (image1) ; pictureBox1
. Image image1;
Graph1 .DrawE11ipse (Реп 1, Х 1, У 1,
Math.Abs (Х2
Math .Abs (У 2
Graph1 .Fi11E11ipse (Brush1, Х 1, У 1,
Math.Abs (Х 2—х 1) , Math . Abs (У 2
14.   Создать
программный код обработчика события очистки области рисования.
private void menuItem2 Click (object sender, System.
EventArgs е)
{Graphics Graph1 Graphics .
FromImage (image1) ; pictureBox1 . Image image1; Graph1 . C1ear (C010r . White)
;
Создадим панель инструментов графического редактора. В
панель инструментов должны входить кнопки Линия, Прямоугольник, Закрашенный
прямоугольник, Окружность, Закрашенная окружность и Очистить.
Для создания панели инструментов используем элемент
управления t001Bar1.
Создание панели
инструментов и обработчиков событий рисования графических примитивов на языке
Visual Ј#
15.   Разместить
на форме элемент управления t001Bar1.
16.   Выделить
элемент управления toolBar1 и в окне Свойства у свойства Buttons активизировать
значение (Коллекция).
17.   В
появившемся окне Редактор коллекции ToolBarButton (рис. 4.34) создать шесть
кнопок на панели инструментов, нажав шесть раз кнопку Добавить.
Рис. 4.34.
Редактор коллекции кнопок на панели инструментов
На каждой кнопке панели инструментов разместим
соответствующее изображение, которое хранится в коллекции изображений в
элементе управления imageList1.
18.   Разместить
на форме элемент управления imageList1.
19.

Выделить элемент управления imageList1 и в окне Свойства у свойства Images
активизировать значение (Коллекция).
20.   В
появившемся окне РеДактор коллекции Image (рис. 4.35) добавить шесть
изображений для размещения
на кнопках панели инструментов, нажав
шесть раз кнопку Добавить.
Установим соответствие между коллекцией кнопок на панели
инструментов toolBar1 и коллекцией изображений -imageList1.
21.   Выделить
элемент управления t001Bar1 и в окне Свойства у свойства ImageList установить
значение imageList1.

Рис. 4.35.
Редактор коллекции изображений для кнопок панели инструментов
22.   Использовать
для создания области рисования первый способ, т. е. применить метод
CreateGraphics ( ) к графическому полю. Создать программный код обработчика
события щелчка по кнопке панели инструментов. С помощью оператора выбора в
зависимости от выбранной кнопки осуществить рисование графических примитивов
или очистку графического поля.
private void toolBar1 ButtonC1ick (0bject sender,
System. Windows . Forms . T001BarButtonC1ickEventArgs е) {Graphics Graph2 =
pictureBox1 .CreateGraphics ( ) ; switch (t001Bar1 . get Buttons ( ) . IndexOf
(e .get Button ( ) ) ) { case 0 :
Graph2 . DrawLine (Реп 1, Х 1, break ; case 1 :
Graph2 .
DrawRectangle (Реп 1 , Х 1 , У 1 , System. Math .
Abs  System.Math .Abs (У2-У1 ) ) ; break ;
case 2 :
Graph 2 .
DrawRectangIe (Pen 1, X 1, Y 1,   System . Math . Abs (X 2 -X 1) ,  System .
Math . Abs (Y2
Graoh2 . Fill Rectangle (Brushl , X 1,System. Math. Abs (X 2 -X
1) ,  System.Math. Abs (Y2-Y1) ) ; break; case 3 :

Graph 2 . DrawEllipse (Pen 1,
Abs (X2-X1)   Sys tem . Math .Abs (Y2 break;
  case 4 :
Graph 2 . DrawEllípse (Pen 1,
Abs (X2-Y1 )    System. Math . Abs (Y2 Graph 2 .
  Fill Ellipse (Brush 1,
Abs (X 2 -X 1) , System . Math . Abs (Y2 break ;

System . Math .

System . Math .

System . Math .

case 5 :
Graph 2 .
Clear (Color. get White ( ) ) ; break;

ABOÜHb1M
1.ueJIHKOM no rlYHKTaM MeHK) 14eem noc.neA0BaTeJ1bHO C03Ãa11HM
gal'OTOBK¼ 06pa60rrqMK0B C06b1TMfi BBeaeM uX
rrporpaMMHb1ü KOA. BblÕopa 1.1Be rra
HC.110J1b3yeM Z!na.nor Color Dialog 1 , a Ãua510POBOpo
0KHa 1-(6em — ShowDialog ( ) .
C03naHne
oÕpa60T11HROB coõb1THìi YCTaHOBR11 14Bera nepa
H I-CHCTM Ha 513b1Re Visual Basic .NET
23.
C03uaTb
oõpa60rpr-1HK COÕb1THfl yc rraHOBKH
11Be rra nepa.
Private Sub Menu Item 9
Click (ByVa1 sender As
       Sys   .
Object, ByVa1 e As System . EventArqs)
Handles MenuItem9 . Click
Color Dialog 1 . ShowDialog
( )
Penl .
Color Color Dialog 1 . Color End Sub
24.
C03aaTb
06paõ0THHK C06b1THfl yc rraHOBKH 1...1Be rra
1-•cncTH.
Private Sub Menu Item 10
Click (ByVaI sender As
System. Object, ByVa1 e As
System. Event Args)
Handles Menu Item 10 . Click
Color Dialog 1 . ShowDia10a
( )
     Brushl .
Color Color Dialog 1 . Color
End Sub
Двойным щелчком по пунктам меню Файл последовательно
создадим заготовки обработчиков событий и введем их программный код. Для вывода
диалоговых окон используем диалоги openFiieDia10g1 и saveFi1eDia10g“, и метод
ShowDiaiog ( ) .
Создание
обработчиков событий открытия и сохранения графических файлов на языке Visual
С#
25.
Создать
обработчик события открытия растрового графического файла.
private void menuItera12 Click (object sender, System.
EventArqs е)
{ openFileDialog1 .ShowDialog ( ) ;
pictureBox1 . Image 1mage . FromFi1e (openFi1eDia10g1 .

26.
Создать обработчик события сохранения растрового графического
файла.

private void menuItem13 C1ick
(object sender, System. EventArqs е)
{ saveFi1eDia10g1 . Filter ”ВМР ( * . brap) * .
bmp" ; saveFi1eDia10g1 .ShowDia10q ( ) ; image1 . Save (saveFi1eDialog1 .
FileName, System.
Drawing . rrnaging . 1mageFormat . Втр) ,

Запуск проекта на языках Visual Basic .NET, Visual и
Visual
27.
Запустить проект.
Осуществить щелчки левой и правой кнопками
мыши по графическому полю. На надписи будут выведены координаты двух точек (см.
рис. 4.36).
С использованием меню Цвет установить
цвета пера и кисти.
С использованием меню Графические
примитивы нарисовать графические фигуры.
С использованием меню Файл сохранить
рисунок как растровый графический файл.

Рис. 4.36.
Проект «Графический редактор»
Проект «Треугольник». Создать проект, который позволяет
нарисовать по заданным трем точкам треугольник, вычислить его периметр и
площадь. Ввод координат вершин треугольника осуществлять щелчками по
графическому полю. Вывод координат вершин треугольника осуществлять методом
рисования текста в графическом поле.
 Создание
графического интерфейса проекта на языках Visual Basic .NET, Visual С# и VisuaI
Ј#
1.

Поместить на форму (рис. 4.37):
•   графическое
поле PictureBox1, которое будет использоваться в качестве области рисования;
•   две
надписи Labe1"- и Labe12 для вывода периметра и площади треугольника;
•   две
надписи для вывода поясняющих текстов; « меню Ма 2 пМепи1 для создания меню
проекта.
Объявление переменных и объектов и создание обработчика
событий запоминания координат на языке Visual С#
2.
Объявить
переменные, которые будут содержать координаты вершин треугольника, длины его
сторон, а также периметр и площадь. Кроме того, объявить область рисования,
перо, которым будут рисоваться стороны треугольника,
а также шрифт и кисть, которые будут
использоваться для рисования значений координат в графическом поле.
int double L1, L2, orapnics urapb,1 •
     Реп Реп 1      new
Реп (C010r.B1ack, 2) •
E'ont drawFontnew Font (”Aria1'
Brush drawBrushпен S01±dBrush (C010r.B1ue) ;
3. Создать программный код
обработчика события, который обеспечивает запоминание координат щелчков левой,
правой и средней кнопками мыши по графическому полю. Использовать оператор
выбора, который в зависимости от условия (значения аргумента обработчика события
е . Button) запоминает ту или иную пару координат.
private void pictureBox1_Click (object sender, System.
 . Forms .MouseEventArgs е)
{ switch (е .
Button)
{case MouseButtons . Left :

break ; case MouseButtons .  :
Х2
break ; case MouseButtons .Midd1e:
УЗ break;
ув Создание обработчиков событий
рисования треугольника на языке Visual Basic .NET
4. Использовать третий способ для
создания области рисования. В программном коде обработчика события Paint
графического поля объявим создание объекта GrapF,-- типа Graphics как свойства
аргумента е. Для вызова события Paint обновить графическое поле в обработчике
события щелчка по форме.
В обработчике события Paint
графического поля вывести значения координат вершин треугольника и нарисовать
стороны треугольника, соединив координаты вершин прямыми линиями.
Private Sub
Form1 Click (ByVal sender As 0bject,
ByVal е As System. EventArgs) Handles MyBase. C1ick
PictureBox1 .
Refresh ( )
End Sub
Private Sub
PictureBox1 Paint (ByVa1 sender As
0bject, ByVa1 е As System . Windows . Forms .
PaintEventArgs) Hand1es Pictu.reBox1 . Paint Dim Graph1 As Graphics e . Graphics
Graph1 . DrawLine (Реп 1, Х 1,
Graph1 . DrawLine (Реп 1 , Х 1, У 1 , Х З,
УЗ)
Graph1 .DrawLine (Реп 1, Х 2, У 2, Х З, УЗ)
Graph1 . DrawStrina (Convert . ToStrina (Х 1) +
Convert . ToString (У 1) , drawFont, drawBrush,
Graph1 .
DrawString (Convert . ToString (Х 2) +” Convert . ToString (У 2) , drawE'ont,
drawBrush, Graph1 . DrawString (Convert . ToString (Х З) + Convert . ToString (УЗ) , drawFont,
drawBrush,
End Sub

Создадим меню графического редактора, для чего используем элемент управления
mainMenu1:

Треугольник

Периметр

Площадь

Очистить

Создание меню и
обработчиков событий вычисления периметра и площади треугольника, а также
очистки графического поля на языке Visual Ј#
5.       Разместить
на форме элемент управления mainMenu1.
6.       В
появившемся в левом верхнем углу формы в редакторе меню создать заголовок
первого уровня. В поле Прототип для текста внести пункт меню Треугольник.
7.       Для
создания пункта меню перейти на следующую строку в редакторе меню. Ввести
пункты меню Периметр, ПлощаДь и Очистить.
8.       Создать
обработчик события, реализующий вычисление периметра треугольника.
private void rnenuItern2 Click (0bject
Event-Aras е)
      -1 Syster.. Ма 1: Ь.. Sqrt (Sys
tem.Math . Pow ( (Х 2
 System.Yath. Pow ( (У 2
Syste.T! .Math. Sqrt (System.Math .
Pow ( Svstem.Math. Pow ( (УЗ
   Syszem .Math . Sqrt (System.Math .
Pow ( (Х 2    х3) ,
2) + System.Mat.h. Pow ( (У 2 Р
-abe11 . set
Тех Ё (System.Convert . ToString (Р) ) ;
9.       Создать
обработчик события, реализующий вычисление площади треугольника.
private void r.enuItera3 CLick (0bject sender, Sys:em.
EventArgs е)
System.Math . Sqrt (Р / 2 * (Р / 2
1abe.1 2 . seL_Text (System. Convert . ToString ( S )
) ,
10.

Создать обработчик события, реализующий очистку графического поля.
private void menuItem4 C1ick (0bject sender, System.
EventArgs е)
{Graph1 this
.pictureBox1 .CreateGraphics ( ) ; Graph1 .C1ear (Color.get White ( ) ) ;
Запуск проекта на языках Visual Basic
                     .NET,
VisuaI        и Visual

11.   Запустить
проект.
Осуществить щелчки левой, правой и
средней кнопками мыши по графическому полю.
Щелкнуть по форме, в графическом поле
будет нарисован треугольник и выведены координаты его вершин (см. рис. 4.37).
С использованием меню Треугольник вычислить
значения периметра и площади треугольника. Рис. 4.37. Проект
«Треугольник»

4.13.2. Графика в языке программирования Turbo Delphi
Холст. Язык программирования Turbo Delphi для создания
рисунков, рисования текста и отображения графических изображений на формах и
элементах управления использует в качестве области рисования объект Canvas
(Холст). Объект Canvas можно создать для формы или элемента управления (чаще
всего объект Canvas создается для графического поля Image).

4.                  Image1
.Canvas;

Перо. Объект Реп (Перо) определяет цвет (например, красный
c1Red) и ширину линии в пикселях (например' З) рисования контуров графических
объектов.

                     Image1
.Canvas . Реп . C010r       c1Red;
                                Image1
.Canvas . Реп .Wid.Zh               з;
Кисть. Объект Brush (Кисть) определяет цвет (например,
закраска синего цвета с1В1ие) и стиль закрашивания прямоугольников, окружностей
и других замкнутых фигур (например, сплошная закраска bsS01id).

                       Imaqe1
.Canvas .Brush.Color         с1В1ие;
                    1mage1 .Canvas . Brush. Sty1e     bsS01id;
Цвет. Цвет устанавливается как значение свойства C010r,
которое можно задать различными способами:
     с
помощью одной из нескольких десятков констант, определяющих цвет (с1В1асК —
черный, clBlue — синий, — зеленый, clRed — красный, c1Ye110w —
желтый, c1 fNhite белый и т. д.); е с помощью функции StringToColor
( ) , реализующей цветовую модель RGB (красный, зеленый, синий). Аргументом
этой функции является шестнадцатеричное представление интенсивностей базовых
цветов, в котором на каждый цвет отводится два шестнадцатеричных разряда
(например, $OOFFOOOO — синий, $OOOOFFOO зеленый, $OOOOOOFF —
красный; $ОООООООО — черный и $OOFFFFFF — белый);

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

Графические методы. Графические фигуры рисуются с
использованием графических методов.
Мох.теТо (Х 1 , У 1) — метод осуществляет переход (без
рисования линии) в точку с требуемыми текущими координатами (например, в точку
с координатами Х 1, У 1).

LineTo (Х 2, У 2) — метод рисует прямую линию от точки с
текущими координатами до точки с заданными координатами (например, в точку с
координатами Х 2, У 2). Цвет и толщина линии определяются свойствами объекта
Реп.

Rectangle (Х 1 , У 1 , Х 2, У 2) — метод рисует
прямоугольнйк с координатами левого верхнего и правого нижнего углов. Цвет и
толщина линии контура определяются свойствами объекта Реп, а цвет и стиль
закраски свойствами объекта Brush.

E11ipse (Х 1 , У 1 , Х 2 , У 2) метод рисует окружность,
вписанную в прямоугольник с заданными координатами левого верхнего и правого
нижнего углов. Цвет и толщина линии контура определяются свойствами объекта
Реп, а цвет и стиль закраски свойствами объекта Brush.

Pixe1s [Х, У ] свойство, которое закрашивает точку холста с заданными
координатами определенным цветом.

Рисование текста. Метод TextOut ( ) позволяет выводить текст
в область рисования. Аргументами метода являются координаты начала строки и
строка текста. Название шрифта, его размер в пунктах, начертание (полужирное,
курсив или подчеркивание) и цвет текста определяются свойствами объекта Font.
Рисование текста в левом верхнем углу области рисования шрифтом Aria1 размером
12 пунктов можно осуЩеСТВИТЬ так.

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

АлгориТМИ.'ИЦИЯ                                                                    зоз

Создание проекта «Графический
редактор» на языке Turbo Delphi
1.   Поместить на
форму (рис. 4.38): , графическое поле 1mage1, которое будет использоваться в
качестве области рисования;
•  четыре
надписи Labe11, Labe12, Labe13 и Labe14 для вывода координат;  четыре
надписи для вывода имен координат;  меню MainMonu1 для создания пунктов меню
Файл и Графические примитивы;
•  панель
инструментов T001Bar1 для создания четырех кнопок, обеспечивающих рисование
графических примитивов и очистку поля рисования;
•  коллекцию
изображений ImageList1 для хранения изображений, которые будут помещены на
кнопки панели инструментов;
•  диалог
C010rDialoq1, который позволяет выбрать цвет с использованием диалогового окна
Цвет;
•  диалог
0penDia10g1, который позволяет выбрать файл для открытия с использованием
диалогового окна Открыть;
•  диалог
SaveDia10g1, который позволяет выбрать имя файла при его сохранении с
использование диалогового окна Сохранить.

Рис. 4.38.
Графический интерфейс проекта
«Графический
редактор»

Элементы управления MainMenu1, ImageList1,
ОрепDialog1, SaveDia10q1 и C010rDia10g1 будут видны только в процессе создания
проекта.
2.   Объявить
переменные, которые будут содержать координаты двух точек на холсте.
var
Х 1 : integer; integer; Х 2 : integer;
У 2 : integer;
З. Создать программные коды обработчиков событий, которые
обеспечивают запоминание и вывод на надписи координат после нажатия (событие
ImageMouseDown) и ОТПУСкания (событие ImageMouseUp) кнопки мыши на графическом
поле.
procedure
TForm1 . ImageMouseDown (Sender: TObject; Button: 1'MouseButton; Shift :
TShiftState; Х, У:
Integer) ; begin

Labe11 . CaptionIntToStr (Х 1) ; Labe12 . CaptionIntToStr (У 1) ; end ;
procedure
TForm1 . 1mageMouseUp (Sender: TObject; Button: TMouseButton; Shift : TShiftState;
Х, У:
Integer) ; begin

Labe13 .
Caption1ntToStr       ; Labe14 . CaptionIntToStr (У 2) ; end ;
Создадим меню графического редактора, для чего
используем эЛемент управления MainMenu1:

Файл

Графические примитивы

Открыть

Линия

Сохранить

Закрашенный прямоугольник

Закрашенная окружность

Очистить

4.   Разместить
на форме элемент управления MainMenu1.

создать меню проекта (рис.
  4.39).

Рис. 4.39. Редактор меню

5.
Осуществить
двойной щелчок по элементу управления MainMenu1. В появившемся диалоговом окне
Form1.MainMenu1 редактора меню б. Двойным щелчком по пунктам

меню последовательно создать заготовки
обработчиков событий рисования графических примитивов. Ввести программный код
обработчика события рисования линии. procedure TForm1 .N2C1ick ( Sender :
TObject) ; begin
Trnage.1
.Canvas . Pen.Nidthз ;
C010rDia10q1 . Execute;
:mage1 . Canvas . Реп . C010rC.010rDia10q1
. C010r ; imaqe1 . Canvas .MoveTo (Х 1, У 1) ; Imaqe1 .Canvas . LineTo (Х 2, У
2) ; end ;
7.       Создать
программные коды обработчиков событий рисования закрашенного прямоугольника,
закрашенной окружности и очистки области рисования.
Для установки цвета контура графической
фигуры (цвета пера) и цвета ее заливки (цвета кисти) использовать диалоговое
окно Цвет, которое вызывается с помощью элемента управления C010rDia10g1.
Создадим панель инструментов графического редактора. В
панель инструментов должны входить кнопки Линия,
Закрашенный прямоугольник, Закрашенная
окружность и Очистить. Для создания панели инструментов используем элемент
управления •1001Bar1.
8.
Разместить на форме элемент управления T001Bar1. Создадим четыре
КНОПКИ на панели инструментов.
9.       Выделить
элемент управления T001Bar1, щелкнуть правой кнопкой мыши и в контекстном меню
выбрать пункт New Button. Проделать эти деЙСТВИЯ четыре раза.
На каждой кнопке панели инструментов разместим
соответствующее изображение, которое хранится в элементе управления ImaqeZist1.
10.   Разместить на
форме элемент управления ImageList1.
11.   Выделить
элемент управления ImageList1, щелкнуть правой кнопкой мыши и в контекстном
меню выбрать пункт ImageList Editor...
12.   В появившемся
окне Form1.ImageList1 ImageList (рис. 4.40) добавить четыре изображения для
размещения на кнопках панели инструментов, нажав четыре раза кнопку АИ...

Form 1 .ImageList 1- Im&geList

сзы

Рис. 4.40. Редактор коллекции
изображений для кнопок панели инструментов
Установим соответствие между коллекцией кнопок на панели
инструментов ToolBar1 и коллекцией изображений ImageList1.
13.   Выделить
элемент управления T001Bar1 и в окне 0bject Inspector для свойства Image
установить значение ImageList1.
14.   Последовательно
выделить кнопки T001Button1, Тоо1Button2, T001Button3 и T001Button4 на панели
инструментов и в окне 0bject Inspector для свойства ImageIndex установить
соответствующие порядковые номера изображения в коллекции изображений
ImageList1.
Создадим программный код обработчиков событий щелчка по
кнопке панели инструментов.
15.   Ввести
программный код обработчика события рисования закрашенного прямоугольника.
procedure TForm1 . T001Button2C1ick
(Sender: TObject) ; begin
C010rDia10g1 . Execute;
-mage1 . Canvas . Реп . C010r C010rDia10a1 . C010r; 010rDia10q1 . Execute;
         I.T.age1 . Canvas C010r            C010rDialog1 . Color;
Ir,age1 .Canvas .Rectangle (Х 1, У 1,
Х 2, У 2 ) ; end ;
16.   Создать
программные коды обработчиков событий рисования линии, закрашенной окружности и
очистки области рисования.
Двойным щелчком по пунктам меню Файл последовательно
создадим заготовки обработчиков событий и введем их программный код. Для вывода
диалоговых окон используем диалоги 0penDia10g1 и SaveDia10g1 и метод ShowDialog
( ) .
17.
Создать
обработчик события открытия растрового графического файла.
procedure
TForm1 .N7Ciick (Sender : TObject) ; begin
0penDia10gl . Execute;
Imaqel . Picture . LoadFromFi1e (0penD.ialog1
. FiieName) ; end ;
18.

Создать обработчик события сохранения растрового графического файла.
procedure
TForm1 .N8Click (Sender: TObject) • begin
SaveDia10g1 . Execute;
Image1 . Picture . SaveToFiie (SaveDi
a10g2 . E'i1eName) ; end ;
19.   Запустить проект.
Осуществить нажатие и отпускание кнопки
мыши на графическом поле. На надписи будут выведены координаты двух точек.
С использованием меню Графические примитивы
нарисовать графические фигуры.
С использованием меню Файл сохранить
рисунок как растровый графический файл.
Проект «Треугольник». Создать проект, который позволяет
нарисовать по заданным трем точкам треугольник, вычислить его периметр и
площадь. Ввод координат вершин треуГольника осуществлять щелчками по
графическому полю. Вывод координат вершин треугольника осуществлять методом
рисования текста в графическом поле.
Создание графического интерфейса
проекта на языке Turbo Delphi
1.   Поместить
на форму (рис. 4.41):
•   графическое
поле Image1, которое будет использоваться в качестве области рисования;
•   две
надписи Labe11 и Labe12 для вывода периметра и площади треугольника;
•   две
надписи для вывода поясняющих текстов;
•   меню
MainMenu1 для создания меню проекта.
2.   Объявить
переменные, которые будут содержать координаты вершин треугольника, длины его
сторон, а также периметр и площадь.
var
integer,• single;

З. Создать программный код обработчика события, который обеспечивает
запоминание координат щелчков левой, правой и средней кнопками мыши по
графическому полю. Использовать три оператора ветвления, которые в зависимости
от условия (значения аргумента обработчика события Button) запоминают ту или
иную пару координат. procedure TForm1 . ImageMouseDown (Sender: тоьј ect;
Button: TMouseButton; Shift : TShiftState; Х, У:

Integer)
; begin

if Button   Then begin

mbLeft

end ;

if Button Then begin

mbRi gh 1:

end ;

if Button

mbMiddle

Then begin

end; end ;
Создадим меню графического редактора, для чего
используем элемент управления MainMenu1:

Треугольник

Нарисовать

Периметр

Площадь

Очистить

4.    Разместить
на форме элемент управления MainMenu1.
5.    В
появившемся в левом верхнем углу формы в редакторе меню создать заголовок
первого уровня. В поле Прототип для текста внести пункт меню Треугольник.
б. Для создания пункта меню перейти на
следующую строку в редакторе меню. Ввести пункты меню Нарисовать, Периметр,
Площадь и Очистить.

7. В обработчике события пункта
меню Нарисовать вывести значения координат его вершин и нарисовать стороны
треугольника, соединив координаты вершин прямыми линиями. procedure TForm1
.N2C1ick (Sender: TObject) ; begin With Imaqe1 . Canvas Do begin Pen.Width     З;
      MoveTo        У 1 )
;
      LineTo
       У 2 ) ;
LineTo (Х З, УЗ) ;
LineTo (Х 1, У 1 ) ;
Image1 . Canvas .
Font . Нате
Image1 . Canvas . Font . Size
Image1 . Canvas . TextOut (Х 1 ,
IntToStr ( у
Inage1 .
Canvas . TextOut (Х 2, У 2, 1ntToStr (X2) + I IntToStr (У
Image1 .Canvas . TextOut (Х З, УЗ,
IntToStr (Х З) + ' IntToStr (УЗ) ) ; end ; end;
8. Создать обработчик события,
реализующий вычисление периметра треугольника.
procedure
TForm1 .N3C1ick (Sender: TObject) ; begin
                            Sqrt (Sqr (Х 2                    Х 1) + sqr (У 2
Sqrt (Sqr (Х З  х 1) + Sqr (Y3
           Sqrt (Sqr (Х 2              +
sqr (У 2
Labe11 .
Caption FloatToStr (Р) ; end ;
9. Создать обработчик события,
реализующий вычисление площади треугольника.
procedure
TForm1 .N4C1ick (Sender: ТОЬј ect) ; begin
Sqrt (P / 2 * (Р / 2
Labe12 .
Caption F10atToStr (S) ; end ;
10.   Создать
обработчик события, реализующий очистку графического поля.
procedure
TForm1 .N7C1ick (Sender: ТОЬј ect) ;

begin With Image1 . Canvas Do begin

Brush . C010r c1Whi Ее ;
Fi11Rect (Rect (0, О, 200, 200) ) ; end ; end ;
11.   Запустить
проект.
Осуществить щелчки левой, правой и
средней кнопками мыши по графическому полю.
С использованием меню Треугольник
нарисовать треугольник с координатами вершин, вычислить

значения периметра и площади

Рис. 4.43. Проект

треугольника (рис. 4.41).

«Треугольник»

...ProIectstrrianglei
4.13.3.
Компьютерная и математическая
системы координат

Компьютерная система координат. Рисование линий, прямоугольников и других фигур
производится в компьютерной системе координат, начало которой расположено в
верхнем левом углу области рисования. Ось Х направлена вправо, а ось У
направлена вниз. Единицей измерения по умолчанию является точка (пиксель).
Компьютерная система координат графического поля шириной ЗОО точек и высотой
200 точек приведена на рис. 4.42.

Рис. 4.42.
Компьютерная система координат области рисования
Математическая система координат. При геометрических
построениях и построении графиков функций удобнее использовать математическую
систему координат, начало которой обычно находится в центре области рисования.
Ось Х направлена вправо, а ось У направлена вверх. Математическая система
координат области рисования шириной ЗОО точек и высотой 200 точек приведена на
рис. 4.43.
                                                 координат                                                   х

*система

-150

-100

-50

100

50

100

50

Рис. 4.43. Математическая система координат области рисования
Преобразование компьютерной системы координат в
математическую. На языках Visual Basic .NET, Visual С# и Visual Ј# для
преобразования компьютерной системы координат области рисования в
математическую систему координат используется метод масштабирования и поворота
осей Sca1eTransform ( ) и метод сдвига начала координат Trans— 1ateTransform (
) . Поворот оси У:

Graph1 . Sca1eTransform (1, -1)

Сдвиг по оси Х на 150 точек вправо и сдвиг по оси У на 100
точек вниз:

В языке Turbo Delphi компьютерная система координат холста остается неизменной,
но можно рисовать графики в математической системе координат путем
масштабирования и поворота осей, а также сдвига начала координат путем
математических преобразований самих координат.
Проект «Система координат». Проект должен обеспечить
рисование осей и вывод шкал в компьютерной системе координат (см. рис. 4.42) и
математической системе координат (см. рис. 4.43).
2.7.1 проект «Система координат»
Информатика-9 на языке Visual Basic
.NET
Создание графического интерфейса проекта на языках
Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
1.   Поместить
на форму:
•   графическое
поле PictureBox1 (в Turbo Delphi Image1), которое будет использоваться в
качестве области рисования (холста);
•   кнопки
Button1 и Button2 для создания обработчиков событий рисования осей и вывода
шкал в компьютерной и математической системах координат.
2.   Установить
размеры графического поля PictureBox1 ( Image1) : присвоить свойству Width
значение 300, а свойству Height значение 200.

AJLTOPHTMH3a1.4Hfl M OCHOBb1
06beKTHO-OPHeHTHPOBaHH01'O nporpaMMMp0BaHHH

OÕ'bflBJ1eHHe nepeMeHHb1x H C03Z1aHHe
06paõo rrqHRa
C06b1THÜ
PHCOBaHHS1 ocell K0M11bWTepH0ü CHCTeMb1 ROOPAHHaT Ha S13b1Re Visual C#
3.
/
/ OõBÃBJ1eHÞfe
Graphics Graph 1;
       Pen Penl  new
Pen (Color . Red, 3) ;
       Font
drawFont    new Font ("Arial" ,
       Brush
drawBrush  new SolidBrush (Color. Black) ;
4.
C03aaTb
06pa60THHK COÕb1THfl PHCOBaHHfl oceü      BblBOaa
1.11KaJ1 B
KOM11bK)TePHOü cnc rrerwe KOOPAHHarr.
private void button 1 Click
(object sender, System. Event Args e)
    { Graph 1 this
. pictureBox1 . CreateGraphics ( ) ;
Graph 1 . Clear (Color .
White) ;
//OCB X
Graph 1 . DrawLine (Pen 1, 0, 0, 300,
/ / Ocb Y
Graph 1 .
DrawLine (Pen 1, 0 , 0, 0, 200 ) ; for (int X
      {  Ha      X
Graph 1 . DrawLine (Pen 1,x, 10) ;
       ///BBIBOZ 1üRaJIB1       X

Graph
  I . DrawString (Convert .ToString (X) , drawBrush, X, 10) ;
for (int
  Y O; Y < 200; Y+=50) { //3ac.e tÆKÞf Ha OCu Y
Graph I . DrawLine (Pen 1,
/              1.11KaJTb1           Y

drawFont,

Graph 1 .
  DrawString (Convert . ToString (Y) , drawBrush, 10, Y) ;

drawFont,

C0311aHHe 06pa60 rrqmca
COÕb1THÜ pMCOBaHHH oceü Marrerwa•rwqecrcoü
cuereMb1 KOOPAHHaT Ha fl3b11-ce Visual J#
5. private
void but con 2 Click (Object sender, System. Event Args e)
     { Graph 1 this
. pictureBox1 . CreateGraphics ( ) ;
Graph 1 . Clear (Color. get
White ( ) ) ;
//BBIBozt
11.1KaJ1 Ma Tenaa TM tqecK0ñ CMCTeMB1 KOOPZMHaT B
/ /K0M11bn rrepHoÞ1
C¼CTeMe
TJ1aBa

       for (int X      -150;
x < 150;
{Graphl . DrawString
(System. Convert . ToString (X) , drawFont, drawBrush, X + 150,
for (int Y
{ Graphl . DrawString
(System. Convert . ToString (Y drawFont,
drawBrush, 150, 200   Y) ;
//17peoõpa30BaHMe
K0M17B10TepH0ž CJ4CTeMb1 K00PZV•fHa rr
//B Ma Tenaa
TW-yeCR'Yžo cuc'l'enay KOOPZ¼Ha rT
Graphl . Sca1eTransform (1,
-1) ; //IIOBOPOT OCu Y
Graphl . TranslateTransform
(150, -100) ; // CZBMT' 170
//OCAM X Y oceñ
B Ma Tenaa  CJ,fCTerue
/ /KOOPZJ4HaT
Graphl .
DrawLine (Penl, -150, o, 150, 0) X
Graphl . DrawLine (Penl, 0 ,
-100 , O, 100) Y
  //3ace t-ÆKJ4 Ha     X

for (int X    -150; x

 150;

{Graphl . DrawLine (Penl,
//3acetÆRM Ha OCu Y

x,

for (int Y   -100 ; Y
{Graphl . DrawLine (Penl,

 100;

C03AaHHe
C06b1THiHOü npouezwpbl PHCOBaHHS1 oceü Marrer«aTHMecK0ü
CRCTeMb1 ROOPAHHaT Ha fl3b11-ce Turbo Delphi
5.
procedure T Forml . Button2Click (Sender: TObj ect) ; begin
 Imagel .
Canvas . Pen . Color cl White;
 Imagel .
Canvas . Brush. Color  cl White;
Imagel . Canvas . Rectangle
(0, 0, 300 , 2 00 ) ;
Imagel . Canvas . Pen .
Colorcl Red;
Imagel . Can vas . Pen .
Width3 ;
/ / OcB x
Imagel . Canvas .MoveTo (0,
100) ;
Imagel . Canvas .LineTo
(300, 100) ;
// OCE
Imagel . Canvas . MoveTo
(150, 0) ;
AuropHTMH3aı.4HH H OCHOBb1
OfieKTHO-OPHeHTMPOBaHHOTO nporpaMMyıp0BaHMH

Image 1 .
Canvas . LineTo (150, 200) ; ///'LLlKarıa ocvı X while X K- 300 Do
begin
Image 1 . Canvas .MoveTo (X,
95) ;
Image 1 . Canvas . LineTo
(X, 105) ;
Image 1 .
Canvas . TextOut (X, 105, IntToStr (X— 150) ) ; x end ;
//LIIKa.na
ocu Y while Y 200 Do begin
Image 1 . Canvas .MoveTo
(145, Y) ;
Image 1 . Canvas . LineTo
(155, Y) ;
Image 1 . Canvas . TextOut
(155, Y- 15, IntToStr (100- Y) ) ; end ; end ;
 3anycrc ııpoewra Ha H3b1KaX Visual
Basic
 .NET,
Visual  Visual  H Turbo Deıphi
6. 3a11YCTHTb
ııpoeKT.
OCyıqeCTBHTb
ı.qeJIHOK no rıepB0ü KH011Ke, IIOHBHTCH OCH CO 11.1KaıaMH
K0M11brorepH0ü CVICTeMb1 KOOPAHHaT (CM. pvıc. 4.42). OCyueCTBHTb
ı.qe.rıqorç no BTOPOÜ KH011Ke, rıOflBflTCH ocvı
CO ıt«arrepaarrw-çecK0ü
(CM. pwc. 4.43).

Windows-CD
ÜŞ
4.18. C03uaTb rıpoewr «Cwc rrepaa
KOOPAHHaT».
...linformatika10i..ACoordinatesX

TurboDeıphi-CD Üş
. . . ProjectsiCoordinatesi

4.13.4. Анимация
Для создания анимации (иллюзии движения на экране
какого-либо объекта) применяется принцип смены кадров (изображений), как это
делается в мультипликации. Программа, имитирующая движение, должна
реализовывать следующие этапы:
• создание изображения в области рисования;  реализация
временнбй паузы для того, чтобы глаз зафиксировал изображение;  проведение
коррекции изображения.
Анимация часто используется для изображения движения
объектов. Для регулирования скорости движения объекта используют пустой цикл,
чем большее количество раз он будет выполняться, тем медленнее будет двигаться
объект.
Проект «Часы». Создать проект, реализующий работу стрелочных
и электронных часов. Стрелки (часовая, минутная и секундная) должны вращаться с
использованием эффекта анимации синхронно с системным временем компьютера.

Создание графического
интерфейса проекта на языках Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo
Delphi
1.  Поместить
на форму (рис. 4.44):
•  графическое
поле PictureBox1 (в Turbo Delphi Image1), которое будет использоваться в
качестве области рисования (холста) для рисования стрелочных часов;
•
надпись Labe11 для вывода времени цифровых часов;
•  таймер
Timer1 для создания обработчика события рисования вывода стрелочных и
электронных часов.
2.  Установить
размеры графического поля PictureBox1 (Image1) : присвоить свойствам Width и
Height значение 250.
Для периодического
обновления значения времени используем объект Timer1. Объект Tir,er1 не
отображается на форме в процессе выполнения программы и выполняет всего одну
функцию проверяет показания системных часов по событию 1'ick.
Периодичность события Tick может быть задана в свойстве
Interva1, измеряемом в миллисекундах (может изменяться от О до 65 535). Для
того чтобы событие Tick происходило каждую секунду, необходимо свойству
Interva1 присвоить значение 1000.
З. Выделить объект Timer и присвоить
свойству Interva1 значение 1000.
Объявление переменных и создание обработчика события вывода
показаний цифровых и стрелочных часов на языке Visual Basic ЛЕТ
4. Dim Х Т, УТ As Integer ' Координаты цифр
' на стрелочных часах
Dim Х 1, У 1 As Integer ' Координаты секундной ' стрелки Dim
Х 2, У 2 Аз Integer ' Координаты минутной ' стрелки
Dim Х З, УЗ As Integer ' Координаты часовой стрелки
Dim  As Double
Dim Т As Double, 1 As Byte ' счетчики циклов
Dim Graph1 As
Graphics
Dim Реп 1 As New Реп (C010r .Red, 1) '
Перо, рис ующе е секундную стрелку
Dim Реп2 As New Реп (C010r .Green, 2) ' Перо, рисующее
минутную стрелку

Dim Реп З As New Реп
(C010r.B1ue, З) ' Перо, рисующее часовую стрелку
      Dim drawFont As New
Font (”Aria1'      16)
Dim drawBrush
As New SolidBrush (C010r . В 1 ас К)
5. В обработчике события Timer1 Tick
каждую секунду:  выводить значение текущей даты и времени
на надпись с использованием объекта DateTime и его свойства Now; о рисовать
циферблат стрелочных часов с использованием цикла со счетчиком 1;
•   рисовать
в часовой системе координат секундную, минутную и часовую стрелки, угол
поворота которых увеличивается с каждым «тиком» (значение переменной N делится
соответственно на 60, 3600 и 21 600);
•   делать
паузу с использованием цикла со счетчиком Т (пауза должна быть достаточной,
чтобы глаз зафиксировал положение стрелок, но не должна превышать времени
одного «тика», т. е. 1 секунды);  осуществлять стирание рисунка стрелочных
часов, чтобы подготовиться к рисованию их положения в следующем «тике» (в
следующую секунду).
Private Sub Timer1 Tick (ByVal sender Аз System. 0bj
ect, ByVa1 е As System . EventArgs) Hand1es
Limer1 .Tick
' Цифровые ча сы
        Labe11
. Text        DateTime . Now
' Циферблат стрелочных часов
     Graph1   Ме.
PictureBox1 . CreateGraphics ( )
For
ХТ
= 115 + Round(100 * Sin ( 6 . 2 8 * ЗО * 1 / 360) ) УТ = 115 - Round(100 * cos
( 6 . 28 * ЗО * 1 / 360) )
Graph1 .DrawString (1, drawFont, drawBrush, Х Т, У Т)
Next
' Преобразование компьютерной СИСТеП.Љ[
координат в ча совую” систему координа т
Graph1 . Sca1eTransform (1, -1)
Graph1 .
Trans1ateTransform (125 ,

' Рисование стрелок

' Секундная стрелка

        Round (90 * Sin (6 . 28 *

60) )

                 Round(90
  * Cos (6 . 28 *
Graph1 . DrawLine (Реп 1 , О, о,
' Минутная стрелка

60) )

Х2       Round (60 * Sin (6 . 28 *

3600) )

    Round(60 * cos ( 6 . 2 8 *

3600) )

Graph1 . DrawLine (Реп 2, о, о, '
  Часовая стрелка

х2,

хз      Round(40 * Sin ( 6 . 28 *

216000) )

УЗ         Round(40 * cos (6 .28 *
Graph1 . DrawLine (Реп З,
  о,
' Пауза
For т              1 то
  20000000

216000) )

Next Т
' Стирание циферблата и стрелок
Graph1 . C1ear (C010r . White)
End Sub
   Дополнение графического интерфейса проекта на языках Visual Basic ЛЕТ,     Visual С#, Visual Ј# и Turbo
Delphi
6.   Поместить
на форму (см. рис 4.44):
•   элемент
управления MonthCalendar1, который будет выводить календарь с выделенной
текущей датой;
•   элемент
управления DateTimePicker1, который будет выводить дату, день недели и время
запуска проекта.
Запуск проекта на языках Visual Basic
                     .NET, Visual          Visual
и Тимо Delphi
7.   Запустить
проект (см. рис. 4.44).
Цифровые часы будут показывать текущие
дату и время. Стрелочные часы будут показывать время, прошедшее с момента
запуска проекта.
Календарь будет показывать текущую дату.

Поле вывода даты и времени будет показывать дату и время запуска проекта.

Компьютфный
Йрактикум

4.19. Создать проект
«Часы».

4.14.
Модульный принцип построения решений (групп) и проектов
В системах объектно-ориентированного программирования
проекты включают в себя программные модули (программные модули форм и
самостоятельные программные модули) и другие файлы. В системе объектно-ориентированного
программирования Visual Studio проекты, в свою очередь, входят в состав
решений, а в системе Turbo Delphi — в состав групп.
4.3.3. Проекты и приложения
Решения (группы) и проекты. В системе VisuaI Studio состав
решения содержится в файле с расширением s 1 п (по умолчанию в файле
WindowsApplication1 . sln).
Состав проекта содержится:
•

в системе программирования Visual Basic .NET в файле с расширением vbproj (по
умолчанию в файле WindowsApplication 1 .vbproj);  в системе
программирования Visual С# в файле с расширением csproj (по умолчанию в файле
WindowsApplication1 .csproj);
•
в системе программирования Visual Ј# в файле с расширением
vjsproj (по умолчанию в файле WindowsApplication1 .vjsproj);
В системе Turbo Delphi состав группы содержится в файле с
расширением bdsgroup (по умолчанию в файле ProjectGroup1 .bdsgroup).
Состав проекта содержится:
•
в системе программирования Turbo Delphi в файле с расширением dpr
(по умолчанию в файле Project1 .dpr).
Программные модули форм. В системе Visual Studio программный
модуль формы содержит в одном файле и описание графического интерфейса
(свойства формы и элементов управления), и программный код (обработчики
событий, процедуры и функции). Программные модули форм хранятся:
•
в системе программирования Visual Basic .NET в файлах с
расширением vb (Form1 .vb, Form2.vb и т. д.);  в системе
программирования Visual С# в файлах с расширением cs (Form1 .cs, Form2.cs и т.
д.);
•
в системе программирования Visual Ј# в файлах с расширением jsl
(Form1 .jsl, Form2.jsl и т. д.);
В системе Turbo Delphi описание графического интерфейса
(свойства формы и элементов управления) и программный код (обработчики событий,
процедуры и функции) хранятся в двух разных файлах. Описание графического
интерфейса хранится в файле с расширением dfm (Unit1 .dfm, UniQ.dfm и т. д.), а
программный код хранится в файлах с расширением pas (Unit1.pas, Unit2.pas и т.
д.).
Программные модули. Самостоятельные программные модули
обычно содержат глобальные процедуры и функции, которые многократно вызываются
из других модулей проекта. Программные модули хранятся:
•
в системе программирования Visual Basic .NET в файлах Module1
.vb, Modu|e2.vb и т. д.; о в системе программирования Visual С# в файлах
Component1 .cs, ComponenQ.cs и т. д.;  в системе программирования Visual Ј# в
файлах Component1 .jsl, ComponenQ.jsl и т. д.); е в системе программирования
Turbo Delphi в файлах Unit3.pas, Unit4.pas и т. д.).

Область видимости процедур. Проект может содержать несколько форм и,
соответственно, несколько программных модулей форм, а также самостоятельные
программные модули. Программный модуль формы, в свою очередь, может состоять из
процедур нескольких типов:
•
процедур-обработчиков событий, которые выполняются в ответ на событие,
вызванное действием пользователя или определенными условиями в программе;  процедур,
которые представляют собой подпрограммы, не возвращающие значение и начинающие
выполняться после их вызова из других процедур;
•
функций, которые представляют собой подпрограммы, возвращающие
значение и входящие в состав выражений.
Процедуры могут быть локальными и глобальными. Локальная
процедура доступна только внутри данного программного модуля и не может быть
вызвана из другого модуля. Например, локальная процедура, размещенная в
программном модуле одной формы, не может быть вызвана из программного модуля
другой формы.
Локальная процедура задается с помощью спецификатора доступа
Private, который записывается перед именем процедуры-обработчика события,
процедуры или функции (в языке Turbo Delphi спецификатор доступа к процедуре
указывается в разделе type программного модуля). По умолчанию, если
спецификатор доступа отсутствует, процедура является локальной.
Глобальные процедуры доступны, т. е. могут быть вызваны, из всех
программных модулей проекта. Глобальная процедура задается с помощью
спецификатора доступа Pub1ic, который записывается перед именем
процедуры-обработчика события, процедуры или функции.
Файлы ресурсов. Файл ресурсов проекта (в Visual Studio по
умолчанию файл Form1 .resx, в Turbo Delphi файл Project1 .res) содержит
информацию об использовании внешних ресурсов (например, изображений на форме).
Файл ресурсов состоит из записей в формате расширенного языка разметки XML
(eXtensible Markup Language), и поэтому его можно открыть в обычном текстовом
редакторе. При просмотре файла ресурсов внедренный объект (например, рисунок)
отображается в двоичном виде.

Файлы, входящие в решения (группы) и проекты, являются текстовыми файлами,
поэтому их просмотр и редактирование можно выполнять в текстовом редакторе
(например, в Блокноте).
Компиляция проекта в приложение (рис. 4.45). Решение
(группа) или проект, состоящие из текстовых файлов, могут выполняться с
использованием интерпретатора системы программирования. В процессе выполнения
проекта производится его отладка, информация о которой записывается в базу
данных программы (в Visual Studio по умолчанию файл WindowsApplication1 .pdb).
Для выполнения непосредственно в операционной системе
решение или проект должны быть преобразованы путем компиляции в приложение, т.
е. в исполнимый двоичный файл. Компиляция решения или проекта выполняется
системой программирования автоматически после их запуска на выполнение. В
процессе компиляции производится сборка проекта, информация о которой
содержится в файле (в Visual Studio по умолчанию файл AssemblyInfo.*).
Результатом компиляции по умолчанию является файл
приложения:
е в системе Visual Studio в папке проекта
WindowsApplication 1 1 .ехе;
• в системе Turbo Delphi в папке
проекта Project1\ Project1 .ехе.

Рис. 4.45.
Компиляция решения в приложение
Проект «Домики». Создать проект, состоящий из двух форм и
двух программных модулей. На каждую из двух форм должны выводиться рисунки трех
домиков путем вызова процедур рисования домиков. Первая процедура рисования
домика должна находиться в программном коде первой формы, а вторая процедура —
в самостоятельном втором программном модуле. Открытие форм обеспечить из
первого самостоятельного программного модуля.
Добавление в проект второй формы и двух программных модулей на
языке Visual Basic ЛЕТ
1.
Ввести команду
[Проект-Добавить форму Windows...l. В ПОЯвившемся диалоговом окне (рис. 4.46)
выбрать шаб-

Рис. 4.46.
Добавление элемента в проект
лон Форма Windows Form и щелкнуть по
кнопке Открыть.
2.  Дважды
ввести команду [Проект-Добавить моДуль...]. В появившемся диалоговом окне
выбрать шаблон МоДуль и щелкнуть по кнопке Открыть.
З. В окне Обозреватель решений (рис.
4.47) ознакомиться с файлами и ссылками, которые входят в состав решения и
проекта Domiki:
•  программные модули форм Form1 .vb и
Form2.vb;
•  самостоятельные
программные модули Module1 .vb и Module2.vb;
•  приложение Domiki.exe;
•  база данных
отладочной информации Domiki.pdb;
•  ресурсы форм Form1 .resx и
Form2.resx;  сборка Assemblylnfo.vb;
•

ссылки на пространства имен, используемые в проекте.

По умолчанию выполнение проекта начинается с загрузки первой
формы, но можно начать выполнение проекта с любой формы. В Visual Studio можно
начать выполнение проекта и с самостоятельного программного модуля, если в него
поместить процедуру (метод) Main ( ) .
В проект входят четыре программных модуля (два программных
модуля форм и два самостоятельных программных модуля), поэтому необходимо
выбрать модуль, с которого начинается выполнение проекта.
4.    В окне
Обозреватель решений выделить имя проекта Domiki и в контекстном меню выбрать
пункт Свойства.

В появившемся диалоговом окне (рис. 4.48) из раскрывающегося списка Начальный
объект: выбрать Sub МаЈп и щелкнуть по кнопке ОК.

Рис. 4.48.
Выбор начального модуля выполнения проекта
 Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#,  Visual Ј# и Turbo Delphi
5.    Поместить
на первую форму (рис. 4.49):
•   графическое
поле PictureBox1 (Image1 в Turbo Delphi), которое будет использоваться в
качестве области рисования (холста) для рисования домиков;
•   кнопки
Button1 и Button2 для создания обработчиков событий.
6.    Поместить
на вторую форму (см. рис 4.49):
•   графическое
поле PictureBox2 (Image2 в Turbo Delphi), которое будет использоваться в
качестве области рисования (холста) для рисования домиков;
•   кнопки
Button1 и Button2 для создания обработчиков
паб т тми х т
*
7.    Установить
размеры графических полей PictureBox1 (Image1) и Pict-ureBox2 (Imag02):
присвоить свойствам Width и Height значение 200.
В первом программном модуле объявим глобальные переменные, в
которых будут храниться координаты, ширина и высота, а также две области
рисования и два пера для рисования домиков на первой и второй формах.
Создадим процедуру Main ( ) , в которой объявим две
переменные для идентификации форм, а затем обеспечим их вызов с использованием
метода ShowDia10g ( ) .
мв Создание программного кода проекта на
языке
Visual Basic .NET

8. Modu1e Моаи 1 е 1
Pub1ic Х, У, Л, Н As Sing1e
Pub1ic Graph1, Graph2 As Graphics

Pub1ic Реп 1 As New Реп (C010r . Red,

1)

Pub1ic Реп 2 As New Реп (C010r.B1ue,

1)

Sub Main ( )
Dim Р 1 As New Forra1

Dim F2 As New Form2
F1 . ShowDialog ( )
Е 2 .ShowDia10g ( )
End Sub
End Modu1e
Создадим программный модуль первой формы. В процедуре
описывается рисование домика из прямоугольника (стена) и двух линий (крыша), а
в обработчике события она вызывается три раза с разными наборами параметров.
Для перехода на вторую форму закроем первую форму.
Осуществится переход на первый самостоятельный программный модуль, в котором
будет выполнена строка программного кода, открывающая вторую форму.
9. ' Первая процедура рисования
домика sub Domik1 (ByVa1 Х, ByVa1 У, ByVal я, ByVal Н) Graph1 . DrawRectang1e
(Реп 1 , Х, У, Т,
Graph1 .DrawLine (Реп 1, Х, У + Н, х + Я
Graph1 . )rawLine (Реп 1 , Х + \ 2, У +
Епа Sub
' Обработчик события, в котором рисуются
три домика Private Sub Button1 C1ick (ByVal sender As System.
0bj ect, ByVa1 е As System . Even tArgs) Hand1es
Button1
.C.lick
     Graph1     Ме.  . CreateGraohics ( )
Graph 1x
.ScaleTransform (1
Graph1 .Trans1ateTransform (0, -200)
Call Domik1 (10, 20, 60, 50) сап Domik1 (120, 20, 50, 70) сап Domik1 (30, 110,
90, 50) End Sub
'0бработчик события, в котором закрывается первая форма
Private Sub Button2 Click (ByVal sender As System.
0bj ect, ByVa1 е As System . EventArgs) Hand1es
Button2 .C1ick
Me. C10se ()
End Sub

Во втором самостоятельном программном модуле создадим вторую процедуру
рисования домика из прямоугольника (стена) и двух линий (крыша).
10.  '
Вторая процедура рисования домика Module Module2
Sub Domik2 (ByVa1 Х, ByVa1 У, ByVal гл, ByVal Н)
Graph2 .DrawRectangle (Реп 2, Х, У, Л, Н)
     Graph2 .
DrawLine (Реп2, Х, У + Н,             \ 2, У + Н +
     Graph2 .
DrawLine (Pen2,                  \ 2, У + Н + Н 2, Х
End Sub
End Modu1e
Создадим программный модуль второй формы. В обработчике
события вторая процедура рисования домика, которая находится во втором
самостоятельном программном модуле, вызывается три раза с разными наборами
параметров.
11.  '
Обработчик события, в котором рисуются три домика Private Sub Button1 C1ick
(ByVal sender As System. 0bj ect, ByVal е As Sys tem . EventArqs ) Handles
Button1
.C1ick
      Graph2    Ме.
PictureBox.2 .CreateGraphics ( )
Graph2 .
Sca1eTransforr, (1 , -1)
Graph2 . TranslateTransform (0, -200)
са11  (10, 20, 100, 80) Call Module2. Domik2 (120, 20, 50, 50) сад  (80, 130, 80, 40) End Sub
'Обработчик события, в котором
осуществляется ' выход из проекта
Private Sub Button2 Click (ByVal sender As System. 0bj
ect, ByVal е As System . EventArgs) Hand1es
Button2 .C1ick
Епа
End Sub
Запуск проекта на языках Visual Basic
                     .NET,
Visual        Visual     и Turbo Delphi
12. Запустить проект (см. рис. 4.49).

На появившейся первой форме щелкнуть по кнопке Нарисовать домики, в области
рисования будут нарисованы три разных домика.
Щелкнуть по кнопке Закрыть форму, на
появившейся второй форме щелкнуть по кнопке Нарисовать домики, в области
рисования будут нарисованы три других разных домика.
Щелкнуть по кнопке Закрыть проект.

Домики (

Нарисовать домики

Закрыть

Рис. 4.49.
Проект «Домики»

Контрольные вопросы
1. В чем состоит различие между
локальными и глобальными процедурами?
КомпьютефыЙ рактикум

4.20. Создать проект «Домики» .
4.15. Чтение и запись
данных в файлы
По способу доступа к данным различаются
файлы последовательного доступа и произвольного доступа. В файлах
последовательного доступа запись или чтение данных осуществляется
последовательно от начала до конца файла, а в файлах произвольного доступа в
произвольном порядке. Файлы последовательного доступа состоят из
последовательности символов (букв, цифр или других знаков) и часто называются
текстовыми файлами.
Языки программирования Visual Basic .NET, Visual С# и Visua1
Ј#. В языках программирования Visual Basic .NET, Visual С# и Visual Ј# для
записи последовательности символов (ее часто называют потоком символов или
просто потоком) в файл последовательного доступа предназначен класс объектов
StreamWr ter. Для чтения последовательности символов из файла последовательного
доступа предназначен класс объектов StreamReader.
Прежде чем создать объект доступа к данным, необходимо
объявить переменную, хранящую в памяти его адрес. Обь-
13 Информатика
и ИКТ. 1 0k-•l
екты StreamWriter и StreamReader входят в
пространство имен System . 10, поэтому необходимо это указать при использовании
данных объектов. Это можно сделать непосредственно в строке программного кода
System . 10 . StreamWriter или в начале программного модуля с использованием
директив rmports System . 10 в языке Visual Basic .NET, using System. 10 в
языке Visual С# и import System. 10 . * в языке
Visua1

язык Visual Basic .NET:
Dim sw Аз System. 10.StreamWriter
Dim sr Аз System. 10.StreamReader
Язык Visuat С#: using System. 10;
StreamWriter sw; StreamReader sr;
Язык Visual Ј#: import System. 10.

StreamWriter sw; StreamReader sr;

Для создания объектов StreamWriter и StreamReader достаточно
в обработчике события присвоить значение соответствующей переменной. Для
создания файла используется метод CreateText ( ) , а для открытия файла — метод
ОрепТех Ё ( ) , аргументом которых является имя создаваемого или открываемого
файла. Если файл не хранится в папке проекта, необходимо указать к нему полный
путь.

Языки Visual Basic .NET:
sw = System. IO.Fi1e.CreateText
(”fi1e пате”) sr System. 10 . Fi1e .0penrext (”fi1e_name”)
Язык Visual С# и Visual sw = File.CreateText (”fi1e пате”) ;
sr = Fi1e.OpenText (”file пате") ;

Для записи данных в файл используются методы Write ( ) и
WriteLine ( ) . При использовании метода Write ( ) файл запи-
сывается целиком, а при использовании метода teLi построчно (например, из переменной
Line).
Для чтения данных из файла используются
методы Read () и ReadLine ( ) . При использовании метода Read ( ) файл
считывается целиком, а при использовании метода ReadLine ( ) — построчно
(например, в переменную Line).

После записи или чтения данных из файла необходимо эти файлы
закрыть.

Язык программирования Turbo Delphi. Файл для записи или чтения должен быть
объявлен в разделе описания переменных. Необходимо объявить файловую
переменную, хранящуко в памяти адрес текстового файла.

Объявление файловой переменной задает только тип файла. Для
того чтобы можно было выводить данные в файл или считывать данные из файла,
необходимо связать имя файловой переменной с именем файла. Если файл не
хранится в папке проекта, необходимо указать к нему полный путь, включая имя
диска и папок.
Для создания файла используется метод Rewrite ( ) , а для
открытия файла метод Reset ( ) , аргументом которых является имя файловой
переменной, связанной с создаваемым или открываемым файлом.
Rewrite
Reset (f) ;
Для записи данных в файл используются методы Write ( ) и
Write1n ( ) . При использовании метода write ( ) файл записывается целиком, а
при использовании метода Write1n ( ) построчно (например, из переменной Lime).
Для чтения данных из файла используются
методы Read ( ) и Read1n ( ) . При использовании метода Read ( ) файл
считывается целиком, а при использовании метода Readln ( ) построчно
(например, в переменную Line).

После записи или чтения данных из файла необходимо эти файлы
закрыть.

4.16.4. Сортировка строковых массивов
Контрольные вопросы
1.  Какими способами в языках
программирования .NET можно задать пространство имен System . ГО?
2.  В чем состоит различие в
использовании методов записи данных в файлы Write ( ) и WriteLine ( ) , а также
методов чтения данных из файлов Read ( ) и ReadLine ( ) ?
4.16. Массивы
4.16.1. Заполнение массивов
Типы массивов и объявление массива. Массив является набором
переменных одного типа, объединенных одним именем. Массивы, как и переменные,
могут быть различных типов: числовые, строковые и т. д.
Массив состоит из пронумерованной последовательности
элементов. Номера в этой последовательности называются индексом; индекс может
принимать целочисленные значения.
Каждый из этих элементов является
переменной, т. е. обладает именем и значением, и поэтому массив можно назвать
переменной с индексом.
Массив может быть одномерным или многомерным. Размерность
массива соответствует числу индексов, необходимых для идентификации отдельного
элемента. Можно задать до 32 индексов, хотя случаи использования более трех
индексов очень редки.
Например, одномерный строковый массив, содержащий 33 буквы
русского алфавита, можно представить себе в виде табл. 4.5.
Таблица 4.5. Одномерный строковый массив

—ввваввввввввввввмассива

Индекс

17

18

19

20

21

22

23

24

25

26

27

28

29

зо

31

32

массива

Индекс может принимать целочисленные значения от минимального до максимального
индекса (в данном массиве от О до 32). Каждый элемент массива обладает
собственным значением (в данном массиве значением элемента с индексом 4
является строка «д»). Размер массива определяется количеством элементов в
массиве (в данном массиве 33 элемента).
Объявление массива производится аналогично объявлению переменных,
необходимо только дополнительно указать максимальный индекс или диапазон
изменения индекса. Объявим одномерный целочисленный массив, содержащий 10
элементов, и одномерный строковый массив, содержащий 33 элемента.

язык Visual Basic .NET
Dim N (9) As Byte, В (32) As String
Языки Visual С# и Visual Ј# intt ,' =
пен intt10) ; String ! ] В = пен String [ 331 •
язык Тифо Delphi
Ы: array (0 .
. 93 of integer;
В: array [ O . . 32) of string;
Обращение к элементу массива производится по его имени,
состоящему из имени массива и значения индекса, например N(5) .
Заполнение массива. Для начала работы с массивом необходимо
его предварительно заполнить, т. е. присвоить элементам массива определенные
значения. Это можно сделать различными способами:
 заполнить массив случайными числами;  заполнить
массив символами с клавиатуры;  заполнить массив из файла.
Проект «Заполнение массива». Заполнить числовой массив
десятью случайными числами, строковый массив пятью символами, введенными с
клавиатуры, и строковый массив буквами русского алфавита из текстового файла.
Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
1. Поместить на форму (рис. 4.51):
•

список ListBox1, который будет использоваться для вывода целочисленного
массива, заполненного случайными числами;
•   список
ListBox2, который будет использоваться для вывода строкового массива,
заполненного символами с клавиатуры;
•   список
ListBox3, который будет использоваться для вывода строкового массива,
заполненного символами алфавита из файла;
•   кнопки
Button1, Button2 и Button3 для создания обработчиков событий.
Заполним числовой массив (1) целыми случайными числами в
интервале от 1 до 100.
На языке Visual Basic .NET для генерации последовательности
случайных чисел используем функцию Rnd ( ) . При запуске программы функция Rnd
( ) дает псевдослучайную (т. е. каждый раз повторяющуюся) последовательность
чисел в интервале 0 Х < 1.
Для получения последовательности случайных чисел в заданном
интервале А Х В необходимо использовать следуюЩУЮ формулу:
(В

Тогда получение целочисленной последовательности случайных
чисел на интервале О Х < 100 достигается использованием функции выделения
целой части числа:
(Rnd()
Для генерации различающихся между собой последовательностей
случайных чисел рекомендуется использовать оператор Randomize ( ) . Оператор
Randomize ( ) использует аргумент для инициализации генератора случайных чисел
функции Rnd ( ) , задавая его новое начальное значение. Если аргумент опущен,
то в качестве нового значения используется значение, возвращаемое системным
таймером.
Создание обработчика события
заполнения массива случайными числами на языке Visual Basic .NET
2. Dim 1, N(9) As Byte
Private Sub
Button1 С] ick (ByVa1 sender As System.
0bj ect, ByVa1 е As System. EventArgs) Hand1es
Button1
.C1ick
Randomize ( )

ListBox1 . Items . Clear ( )
For
Int (Rnd ( )
ListBox1
. Items .Add (Str (Н (1) ) )
Next 1
End Sub
На языках Visual С# и Visual Ј# для генерации
псевдослучайных последовательностей используется экземпляр класса Random
(например, rnd). Для генерации случайного числа можно использовать метод rnd.
Next (100) , который генерирует случайные числа, большие или равные нулю, но
меньшие или равные значению аргумента (в данном случае 100). Общий размер
массива можно получить с помощью свойства Length, которое возвращает количество
элементов в массиве.
Создание обработчика события
заполнения массива случайными числами на языках Visual С# и Visual Ј#
2. Random rnd new Randorn ( ) ; int [
) new int [10 1 • int 1 ;
private void button1 Click (object sender, System.
EventArgs е)
{ 1istBox1 .
Items .C1ear () ; for (1   0;      < N.Length,• 1++) rnd.Next (100) ;
1istBox1 . Items .Add (Convert. ToString (N [I) ) )
;
На языке Turbo Delphi для генерации псевдослучайных
последовательностей используется функция Random ( ) . Эта функция генерирует
случайные числа, большие или равные нулю, но меньшие или равные значению
аргумента. Для генерации различающихся между собой последовательностей
случайных чисел можно использовать оператор Randomize.
Создание обработчика события
заполнения массива случайными числами на языке Turbo DeIphi

2. var н: array [0 . • 9] of
integer; integer;
procedure TForm1 . Button1C1ick (Sender : TObject) ;
begin
ListBox1 .
Items .C1ear ( ) ;
Randomi ze ; For begin
Random (100) ; ListBox1 . Items .Add
(IntToStr (N end ; end ;
Для ввода элементов массива с клавиатуры можно использовать
функцию InputBox ( ) . Аргументами этой функции являются две строки, которые
отображаются в диалоговом окне ввода, а значением функции — символ, введенный
пользователем.

1.5.4. и 2.54. Функции ввода
информационныхИсследование и вывода данных моделей

Создание обработчика события заполнения массива с
клавиатуры на языке Visual Basic .NET
3. Dim А (4) As String
Private Sub Button2 Click (ByVal sender Аз System.
0bj ect, ByVal е As System . EventArgs) Handles
Button2 . Click
For 1
InputBox (”Введите элемент массива“ ,
”Ввод элементов массива с клавиатуры“ ) ListBox2 . Items . АДД (А (1) )
Next
End Sub
Создание обработчика события заполнения массива с
клавиатуры на языке Turbo Delphi
З. var
А: array [0 . . 4) of string;
procedure TForm1 . Button2C1ick (Sender : TObject) ;
begin

ListBox2 . Items . Clear ( ) ;
For begin
InputBox ('Ввод элементов массива с
клави— атуры' , ' Введите элемент массива ' , ListBox2 . 1tems .Add (А [1] ) , end ; end ;
На языках Visual С# и Visual Ј# для ввода элементов массива
с клавиатуры с использованием функции InputBox ( ) необходимо подключить и
использовать пространство имен Microsoft . Visua1Basic.
Создание обработчика события
заполнения массива с клавиатуры на языках Visual С# и Visual Ј#
3.1. Ввести команду [Проект-Добавить
ссылку...].
В появившемся диалоговом окне Add
Reference на вкладке .NET из списка выбрать имя компонента Microsoft. Visual
Basic.NET Runtime и щелкнуть по кнопке Выбрать. Выбранный компонент добавится в
поле Выбранные компоненты:
Щелкнуть по кнопке ОК.
3.2. В Обозревателе решений в проекте
arrag1 в разделе ссылок References добавится ссылка Microsoft.VisualBasic на
соответствующее пространство имен.
Теперь можно добавить ссылку на пространство имен и
обработчик события в программный код. Необходимо учесть, что параметрами
функции InputBox ( ) также являются значение функции по умолчанию и координаты
верхнего левого угла диалогового окна функции.
3.3. using Microsoft. VisualBasic;
     String [) А    пен String [5] ;
private void button2 C1ick (object sender, System.
EventArgs е)
0;
Interaction . InputBox (”введите
элемент массива ' ' Ввод элементов массива с клавиатуры ,
 500, 500) ;

1istBox2 . Items .Add (А [1] )
;
Заполним строковый массив буквами русского алфавита из
текстового файла. Создадим текстовый файл, содержащий буквы русского алфавита.
Такие текстовые файлы должны содержать только коды самих символов (не должны
содержать управляющие коды форматирования текста, тэги языка HTML и т. д.) и,
следовательно, должны создаваться в проСТеЙШИХ текстовых редакторах типа
Блокнот (рис. 4.50).
4.15. Чтение и запись данных в файлы
Рис. 4.50.
Текстовый файл, содержащий русский алфавит
4.   Создать в
текстовом редакторе файл и ввести буквы русского алфавита по одной букве в
строке (рис. 4.50). Сохранить файл alphabet.txt в кодировке Unicode.
На языках Visual Basic .NET, Visual С# и Visual Ј# объявим
массив и переменную, хранящую в памяти адрес объекта StreamReader.
В обработчике события присвоим переменной значение с
использованием метода открытия файла 0penText ( ) , аргументом которого является
имя открываемого файла alphabet.txt. В цикле со счетчиком произведем чтение
букв алфавита из файла с использованием метода ReadLine ( ) и выведем буквы в
список.
е Мв Создание обработчика события
заполнения массива из файла на языке Visual Basic ЛЕТ
5.   Dim          As
Byte, В (32) Аз String
Dim sr Аз System. 10. StreamReader
Private Sub Button3 C1ick (ByVal sender As System.

0bject, ByVal е As System.
EventArgs) Hand1es Button3 . C1ick sr      System. 10 . Fi1e .0penText
(”alphabet . txt ')
Eor sr .ReadLine ( )
ListBox3 .
1tems .Add (В (1) )
Next
End Sub
Создание обработчика события
заполнения массива из файла на языках Visual С# и Visual
5. String [ j
В new String [33] ; StreamReader sr;
private void button2 C1ick (object sender, System.
EventArqs е)
{sr Fi1e .00enText (”alphabet . txt”)
; for (1      о;      < 33;
S Е .ReadLine () ;
-,istBox3 . Iterns .Add (В [1,1 ) ;
На языке Turbo Delphi объявим массив и файловую переменную.
В событийной процедуре с помощью метода AssignFi1e ( )
свяжем имя файловой переменной с именем файла. Для открытия файла используем
метод Reset ( ) , аргументом которого является имя файловой переменной. В цикле
со счетчиком произведем чтение букв алфавита из файла с использованием метода
Readln ( ) и выведем буквы в список.
Создание событийной процедуры заполнения
массива из файла на языке Turbo Delphi
5. var
В: array [ 0 . . 32] of string; f : TextFile;
procedure TForm1 . Button3C1ick (Senaer : TObject) ;
begin
ListBox3
. Items . C1ear ( ) ,
AssignFile
(f, 'a1phabet . txt') ;

Reset (f) ; Eor 1 begin
Readln (f, в [1) ) , ListBox3 . Items
.Add (В [И ) ; end ; end ;
Запуск проекта на языках VisuaI Basic
.NET, Visual С#, Visual Ј# и Turbo Delphi
6. Запустить проект (см. рис. 4.51).
Щелкнуть по кнопке Заполнение массива
случайными числами, в первый список будут выведены элементы массива,
заполненного случайными числами.
Щелкнуть по кнопке Заполнение массива с
клавиатуры, во второй список будут выведены элементы массива, заполненного
символами, введенными с клавиатуры.
Щелкнуть по кнопке Заполнение массива из
файла, в третий список будут выведены элементы массива, заполненного буквами
русского алфавита из файла. Так как не все элементы массива помещаются в
список, появляется вертикальная полоса прокрутки.

Рис. 4.51.
Проект «Заполнение массива»
Компьюте ый рактикум
4.21. Создать проект
«Заполнение массива» .

TurboDelphi-CD Ш—

4.16.2. Поиск
элемента в массивах
Поиск в строковых массивах обычно реализуется в форме поиска
индекса элемента массива, для которого значение элемента совпадает с заданным.
В числовых массивах обычно производится поиск минимального или максимального
элемента.
Проект «Поиск в массиве». Разработать проект, в котором
числовой массив, содержащий 10 элементов, заполняется случайными числами в
диапазоне от О до 100. Осуществить в этом числовом массиве поиск максимального
элемента и его индекса.
Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
1. Поместить на форму (рис. 4.52):
•  список
ListBox1 для вывода значений индекса элементов массива;
•  список
ListBox2 для вывода значений элементов массива;
•  надпись
Labe11 для вывода индекса максимального элемента;
•  надпись
Labe12 для вывода значения максимального элемента;
•  кнопку
Button1 для создания обработчика события;
•  две
надписи для вывода поясняющих текстов.
Создадим обработчик события для заполнения целочисленного
массива случайными числами и поиска максимального элемента и его индекса:

1) Объявим целочисленные переменные 1 и Мах, а также целочисленный массив А (
9) , содержащий десять элементов. 2) Заполним массив целыми случайными числами
от О до 100.
З) Будем считать, что сначала
максимальный элемент равен первому элементу массива, т. е. мах
4)  Затем в цикле со
счетчиком 1 с использованием оператора ветвления последовательно сравним
максимальный элемент массива (элемент массива с индексом О) со всеми остальными
элементами. Если какой-либо элемент окажется больше, присвоим переменной мах
индекс этого элемента.
5)  Результат поиска, т.
е. индекс максимального элемента и сам максимальный элемент, выведем на
надписи.
Мв Создание обработчика события на языке
Visual Basic .NET
2. Dim А (9) , 1, Мах Аз вуее
Private Sub
Button1 C1ick (ByVal sender Аз Syster,.
0bi ect, ByVal е Аз System . EventArgs) Handles
Button"- .         1.
ick istBox1 . Items . Clear () ±stBox2. Items .C1ear ( )
' Заполнение ма ссива
Randomize ( )
Int (Rnd ( )
ListBox1 .
-tems .Add (1) ListBox2 . ! '-ems .Add (A (I) )
Next
' Поиск максимального элемента
      Мах         0
А (Мах)
For
If А (1) > А (Мах) Then А (Мах)Мах
Next

Labe11 . 2ext

Мах

Labe12 . Qext
End Sub

А (Мах)

 Запуск проекта на языках Visual Basic

    Полк в массива е                .е.ДА1

       .NET, Visual               Visual
и Тимо Delphi
З. Запустить проект (см. рис.
4.52). Щелкнуть по кнопке Заполнить и найти несколько раз. На надписи будут
выводиться результаты поиска индекса максимального элемента и сам максимальный
элемент для различных вариантов заполнения массива. Рис. 4.52. Проект
«Поиск в
массиве» Компьютфый рактикум
4.22. Создать проект «Поиск в массиве».

4.16.3. Сортировка числовых массивов
Под сортировкой числового массива понимается процесс
перестановки числовых значений элементов массива, целью которого является
размещение элементов массива по возрастанию (или по убыванию)
Пусть у нас имеется целочисленный массив, состоящий из
десяти элементов и заполненный случайными числами от О до 100. Представим
массив и процесс его сортировки в виде таблицы (табл. 4.6). Индексы элементов
массива разместим в первом вертикальном столбце таблицы, а сами элементы — втором
вертикальном столбце.
Алгоритм сортировки массива по убыванию состоит в следующем:
1)

На первом шаге сортировки провести поиск максимального элемента в массиве с О
по 9 элемент. Поменять местами найденный максимальный элемент с элементом,
имеющим индекс, равный нулю. Если максимальный элемент имеет индекс О, то
оставить его на месте.
2)   На
втором шаге сортировки провести поиск максимального элемента с 1 по 9 элемент.
Поменять местами найденный максимальный элемент с элементом, имеющим индекс,
равный единице.
З) Повторить шаги сортировки еще семь
раз. На каждом шаге осуществить поиск максимального элемента среди оставшихся
неупорядоченных элементов и сделать перестановку элементов.
Таблица 4.6. Алгоритм сортировки массива по убыванию

декс

Массив

Шаг сортировки

39

А 69

69

У 39

, 46

А 46

46

v 39

39

А 41

В таблице каждый шаг сортировки массива разместим в
вертикальном столбце, отображающем порядок элементов массива. Перестановку
элементов массива отобразим стрелками.
Проект «Сортировка числового массива». Заполнить числовой
массив, содержащий 10 элементов, случайными числами в диапазоне от О до 100.
Осуществить сортировку числового массива по убыванию. Поиск максимального
элемента осуществить различными способами: с помощью процедуры; с помощью
функции; о во вложенном цикле. е_Ув
Создание графического интерфейса проекта на языках
Visual Basic .NET, Visual и Visual Ј#
1, Поместить на форму (рис. 4.53):
•   список
ListBox1, который будет использоваться для вывода значений индекса
целочисленного массива;
•

список ListBox2, который будет использоваться для вывода числового массива,
заполненного случайными числами;
•   списки
ListBox3 — ListBox11, которые будут использоваться для вывода шагов сортировки
массива;
•   кнопки
Button1 и Button2 для создания обработчиков событий заполнения массива и сортировки;
•
надпись Label 1
для вывода нумерации шагов сортировки.
На языке Visual Basic .NET будем искать максимальный элемент
с использованием процедуры. Программный модуль проекта будет содержать:
•   обработчик
события заполнения массива случайными числами;  обработчик события
сортировки массива; о процедуру поиска максимального элемента.
е мв Создание программного кода проекта на
языке
Visual Basic .NET
Объявим переменные для использования в программном модуле и
создадим обработчик события заполнения ЦеЛОЧИСленного массива случайными
числами.
2. Dim А (9) , 1 , 5, К, R , Мах Аз вуее
Private Sub
Button1 Click (ByVa1 sender Аз System.
0bj ect, ByVal е Аз System. EventArgs) Handles
Button1
.C1ick
' Очистка полей списков индексов
элементов и зна чений элементов массива
ListBox1 . Items .C1ear ( )
ListBox2 . Items . Ciear ( )
' Заполнение массива случайными числами
Randomize ( )
For К
Int (Rnd ( )
ListBox1 . Items .Add (К)
ListBox2 . Items .Add ( str (А (К) ) )
Next К
End Sub
Процедура поиска максимального элемента Максэлемент (ByVal 1
, ByRef Мах) будет многократно вызываться из обработчика события сортировки и
будет содержать входной и выходной параметры:

-1 входной параметр (индекс максимального элемента массива после предыдущего
шага);
Мах выходной параметр (индекс максимального элемента массива
после данного шага).
З. ' Процедура поиска индекса
максимального элемента ' массива
Sub МаксЭлемент (ByVa1 1 , ByRef Мах)
Мах
Eor
If А (Ј) > А (Мах) Then Мах
Next
End Sub
Создадим обработчик события сортировки массива, который
будет включать:
 очистку полей списков шагов сортировки;
е цикл со счетчиком 1, в котором осуществляется пошаговая сортировка массива по
убыванию и который, в свою очередь, будет включать:
 вызов процедуры
поиска индекса максимального элемента;  перестановку
элементов массива;
вывод массива для каждого шага сортировки в
списки с использованием цикла со счетчиком и оператора выбора.
4. Private Sub Button2
C1ick_1 (ByVal sender As System.
()b+ ect, ByVa1 е Аз System . EventArgs) Handles
Button2 . C ”-ick
' Очистка полей списков шагов сортировки
ListBox3 .
1tems . Clear ( )
ListBox11 .
Items .C1ear ( )
Labe11 . Тех
' Сортиров ка

' Вызов процедуры поиска индекса
максимального
' элемента МаксЭлемент ( 1, Мах)
' Перестановка элементов массива
А (Мах)
А (Мах) ' Вывод ма ссива для каждого шага
сортировки
For К
Select Case 1
Case 0
ListBox3 .
Items .Add (Str (А (К) ) )
Case 8
ListBox11 . Items .Add (Str (А (К) ) )
End Select
Next К
Next 1
End Sub
На языке Visual Ј# максимальный элемент будем искать с
использованием функции. Программный модуль проекта будет содержать: е
обработчик события заполнения массива случайными числами;  обработчик
события соРтировки массива;
• функцию поиска максимального элемента.
Создание программного кода проекта на языке Visual Ј#
Объявим переменные для использования в программном модуле и
создадим обработчик события заполнения Це.ЛОЧИСленного массива случайными
числами.

I'naBa

2. Random rnd  new Random ( ) , int [ ] A new
int [10] ; int 1, J, Max, K, R;
private void button 1 Click
(Object sender, System .
EventArgs e)
{list Boxl . get Items ( ) . Clear ( ) ; list Box 2 . get Items
( ) . Clear ( ) ; // 3a170J7HeH¼e Ma c CMBa for (K
( 1 0 0 ) ;
list Boxl . get Items ( ) . Add (System. Convert .
ToString
(K) ) ; list Box 2 . get Items ( ) . Add (System. Convert .
ToString (A
(ÞYHKIIHH 110HcRa
MaKCHMaJ1bH01'0 3.neMeHTa MaxEl (int l)
6YAeT MH01'0KpaTH0
Bb13b1BaTbCfl 06pa60Tt-11,fFva C06b1TMS1 COPTMPOBKH.  coÄep'KHT
BXOZIHOÜ napaMerrp I (HHaeRc Mar-WHMa.ñbHOPO 3J1eMeHTa
MaccMBa 1ïOCJie npeÄb1ÄYIÄÄero mara). B03Bpa-
1.qaeMoe  3HaqeHHe —
result (HHaercc MaRCHMaJ1bHOTO
3.neMeHTa MaccHBa nocJ1e
AaHHOTO mara).
3.    //IIOMCR
MaKC½MaJIBHOFO 9-netv1eHTa int MaxEl (int I) { int result; result for (J
{if (A [J] > A [result] )
{ result
return result;
C03AaAHM 06paÕOTt1HK
C06b1THfl COPTHPOBKH MaccHBa.
4.    private
void button 2 Click (Object sender, System. Event Args e)
{ // /  noneñl
CII¼CKOB Ilia 1-1 0B list Box 3 . get Items ( ) . Clear () ;
list Box 11
. get Items ( ) . Clear ( ) ; label 1 . set Text ( '
/ / CopT¼poBRa

        О :     stBox3
.get 1tems ( ) .Add (Syszem.Convert.
20String
(А[К) ) ) ; break ;
case 8 : 1istBox11 .get 1ter.s ( ) .Add (Syst-em.Convert.
ToString (А [
к ) ) ) ; break ;

На языке Visual С# максимальный элемент будем искать с
использованием вложенного цикла. Программный модуль проекта будет содержать:
 обработчик события заполнения массива
случайными числами; о обработчик события сортировки массива, в котором поиск
максимального элемента осуществляется во вложенном цикле.
Создание программного кода проекта
на языке Visual С#
Объявим переменные для использования в программном модуле и
создадим обработчик события заполнения целочисленного массива случайными
числами.
2. Randorn rnd new Random() ; int [ А
new int [10 .int мах, К, R;
private void bL)tton1 C1ick (object sender, System.
EventArgs е)
rJiaBa

{ labell . Text list Boxl .
Items . Clear ( ) ; list Box 2 . Items . Clear ( ) ; / //3a170JIHeH¼e Ma
CC¼Ba for (K     0 ; K < A. Length; K++)
{A [K]
=rnd.Next (100) ; list Boxl . Items . Add (Convert . ToString (K) ) ; list Box
2 . Items . Add (Convert . ToString (A [K] ) ) ;
Coaaaanrvl 06pa60TH1•1R
C06b1THfl COPTHPOBKH MaccHBa.
4. private
void button2_C1ick (object sender, System. Event Args e)
{ /// O r-žnc
tTKa nonež C17VICKOB 11.zaT'OB cop rnnpoBR¼
list Box 3 . Items . Clear ( ) ;
list Box 11 . Items . Clear ( ) ; // CopTnpoBKa for (I   o; I
< A. Length-I;
   { labell .
Text  labell . Text +        Convert .
ToString (1+1) +
//Iloncl< MaKcmaaJ7bH0T0 9J1enaeHTa
Max 1; for (J  1+1; J < A. Length; J++) {if (A [J] > A
[Max] )
{ Max
//17epecrpaF-10BKa 9J1eMeHTOB Ma
A [Max] ;
A (Max]R;

/ /BBIB Oz for (K { switch { case
0: break;
case 8: break;
Ma
CC¼Ba       KaXÄOFO lira ra COPTMPOBKM
0; K <
A. Length; K++)

listBox3. Items . Add
(Convert . ToString (A [K] ) ) ;
listBox11 . Items . Add
(Convert . ToString (A [K] ) ) ;

5.
Запустить проект (см. рис. 4.53).
Щелкнуть по кнопке Заполнить массив. В
первый список будут выведены значения индекса массива, а во второй список —
значения элементов массива — случайные числа. Щелкнуть по кнопке Сортировать. В
списках с третьего по одиннадцатый будет реализована пошаговая визуализация
процесса сортировки числового массива. На надпись будут выведены номера шагов
сортировки.

Рис. 4.53.
Проект «Сортировка числового массива»
Создание графического интерфейса
проекта на языке Turbo Delphi
1.   Поместить
на форму (рис. 4.54):
     таблицу
StringGrid1, которая будет использоваться для вывода значений индекса
целочисленного массива, номеров шагов сортировки, числового массива,
заполненного случайными числами, а также состояния массива после каждого шага
сортировки;
     кнопки
Button1 и Button2 для создания обработчиков событий заполнения массива и
сортировки.
Программный модуль проекта будет
содержать:  обработчик события заполнения массива
случайными числами;

     обработчик
события сортировки массива, в котором поиск максимального элемента
осуществляется во вложенном цикле.
Объявим переменные для использования в программном модуле и
создадим обработчик события заполнения целочисленного массива случайными
числами.
2.   var
А: array [1 . . 10] of integer; integer; З: integer; К: integer; R :
integer; Мах: integer;
procedure TForm1 . Button1C1ick (Sender : TObject) ;
begin
/ /Заполнение ма с сива
Randomi ze ; for .i begin

begin
StringGrid1
.Ce11s 6+2, 0) : IntToStr (i+1) ;
StringGrid1 .Ce11s [0, ј+1] :
Random (100) ;
StringGrid1 .Ce11s [1, ј+1] : IntToStr
(А[ј ] ) ; end ; end ; end ;
Создадим обработчик события сортировки
массива.
4. procedure
TForm1 . Button2C1ick (Sender: ТОЬј ect) ; begin / / Сортировка For -1 begin
/ /Поиск индекса максимального элемента
Мах For begin
If А [З] > А
[Мах) Then Мах end ;
/ /Перестановка
А [Мах
А [Мах]
/ / Вывод массива в таблиЛУ' для каждого
шага
/ / сортиров ки
For К
    StrinqGrid1 .Ce11s
[.i+2, е 1] :   IntToStr (А[К] ) ;
end ; end ;
5. Запустить проект (см. рис. 4.54).
Щелкнуть по кнопке Заполнить массив. В
нулевой столбец таблицы будут выведены значения индекса массива, в нулевую
строку — нумерация шагов сортировки, а в первый столбец — значения элементов
массива (случайные числа). Щелкнуть по кнопке Сортировать массив. В столбцах
таблицы будет реализована пошаговая визуализация процесса сортировки числового
массива.
                                                                                94
94             94 94 94            04

                                                                53                ез
63 63 63
ао 60 60 60 60
.
                                                                                59                  59
59
24 24 ,
                                                                      зв
38      38
55 55 24 24 5
20 20 20 20 20
94 60 50
Рис. 4.54.
Проект «Сортировка числового массива» на языке Turbo Delphi

Компьюте$ный Ьрактикум

4.23. Создать проект «Сортировка
числового массива».
...\informatika10\...\arrayByteSort*\

4.16.4.
Сортировка строковых массивов
Под сортировкой строкового массива понимается процесс
перестановки значений элементов массива, целью которого является размещение
строковых значений элементов массива по возрастанию (или по убыванию) (сначала
по первым символам, затем по вторым и т. д.).
При сортировке строкового массива по возрастанию его
элементы располагаются в прямом порядке (числа, латинский алфавит от А до Z,
русский алфавит от А до Я), а при сортировке по убыванию в обратном порядке
(русский алфавит от Я до А, латинский алфавит от Z до А, числа).
Проект «Сортировка строкового массива». Заполнить строковые
массивы буквами русского алфавита и компьютерными терминами из текстовых
файлов. Отсортировать массив, содержащий компьютерные термины, по возрастанию и
сохранить его в текстовом файле.
Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С#, Visual Ј# и Turbo Delphi
1.   Поместить
на форму (рис. 4.55):
•   надпись
Labe11, которая будет использоваться для вывода элементов строкового массива,
заполненного из текстового файла буквами русского алфавита;
•   список
ListBox1, который будет использоваться для вывода строкового массива,
заполненного из текстового файла компьютерными терминами;
•   список
ListBox2, который будет использоваться для вывода отсортированного строкового
массива, содержащего компьютерные термины;
•   кнопки
Button1 — Button5 для создания обработчиков событий заполнения строковых
массивов, сортировки, вывода и сохранения отсортированного массива компьютерных
терминов.
Создадим текстовые файлы, содержащие буквы русского алфавита
и компьютерные термины.
2.   Создать
в текстовом редакторе файл и ввести буквы русского алфавита по одной букве в
строке. Сохранить файл alphabet.txt в кодировке Unicode.
З. Создать в текстовом редакторе файл и
ввести компьютерные термины по одному в строке. Сохранить файл term.txt в
кодировке Unicode.
е_ув на
Создание языке программного Visual Basic .NETкода проекта
Объявим переменные для использования в программном модуле:

 счетчики
циклов;  строковый массив, состоящий из 33
элементов, значениями которых будут буквы русского алфавита;  строковый
массив, состоящий из 10 элементов, значениями которых будут компьютерные
термины до сортировки;  строковый массив, состоящий из 10
элементов, значениями которых будут компьютерные термины после сортировки.
4.
Dim 1, К, З      Вуее,
А ( 32) , В   С (9)  Sering
Объявим переменную, хранящую в памяти адрес объекта
StreamReader. Создадим обработчик события заполнения строкового массива из
текстового файла, содержащего буквы русского алфавита.
5.
Dim sra As
StreamReader
Private Sub Button1 C1ick (ByVa1 sender Аз System.
0bj ect, ByVa1 е As System. EventArgs) Hand1es
Button1 .C1ick Тех1:Вох1 . Text sra File .0penText (”a1phabet . txt”)
E'or sra .ReadLine ( )
TextBox1 . Тех Ё TextBox1 .Text + А
(1) Next sra.CIose ( )
End Sub
Объявим переменную, хранящую в памяти адрес объекта
StreamReader. Создадим обработчик события заполнения строкового массива из
текстового файла, содержащего компьютерные термины.
6. Dim srt As StreamReader
Private Sub Button2 Click (ByVa1 sender As System.
0bj ect, ByVal
е As System . EventArgs) Handles Button2 .C1ick srt     Fi1e .0penText (”term.
txt”)
Eor К srt .
ReadL±ne ( )
ListBox1 . Items .Add (В (К) )
Next К srt.C10se () End Sub

Создадим обработчик события сортировки массива. В исходном строковом массиве В
( ) компьютерные термины хранятся в неупорядоченном виде. Сравним
последовательно во внутреннем цикле со счетчиком К букву «а» алфавита с первыми
символами терминов, в случае их совпадения присвоим первому элементу
результирующего строкового массива С [ ) значение, равное этому термину.
Повторим эту процедуру последовательно для всех букв алфавита с записью в
очередной элемент массива С [ ј . Получим упорядоченный строковый массив С [ ]
•
Создание обработчика
события сортировки строкового массива на языках Visual С# и Visual Ј#
7. private
void button3 C1ick (object sender, System. EventArgs е) О ; for (1 о; for (К
.
Substring (0,
Создадим обработчик события вывода отсортированного строкового
массива, содержащего компьютерные термины, в список.
8. private void button4 C1ick (object
sender, Systera. EventArgs е)
{ for (К
1istBox2 .
1tems .Add (С [К) ) ;
Создадим обработчик события сохранения отсортированного
строкового массива, содержащего компьютерные термины, в текстовом файле.
Создание обработчика события
сохранения отсортированного строкового массива на языке Turbo Delphi
9, var f3 :
TextFi1e;
procedure
TForm1 . Button5C1ick (Sender: TOb k ect) ; begin
AssignFi1e
(f3, 'term1 . txt') •

Rewrite (f3) , Eor beqin write1n (f3, C [ I ) ) ; епа ;
C10seFi1e (f3) ; end ;
Запуск проекта на языках Visual Basic
                     .NET, Visual          Visual
и Тимо Delphi
10. Запустить проект (см. рис. 4.55).
Щелкнуть по кнопке Считать алфавит. На
надпись будут выведены буквы русского алфавита.
Щелкнуть по кнопке Считать термины. В
первый список будут выведены неотсортированные компьютерные термины.
Щелкнуть по кнопке Сортировать.
Компьютерные термины будут отсортированы.
Щелкнуть по кнопке Показать термины. Во
второй список будут выведены отсортированные компьютерные термины.
Щелкнуть по кнопке Записать в файл. В
текстовом файле будут сохранены отсортированные компьютерные термины.

Рис. 4.55. Проект «Сортировка строкового массива»
Компьют*ый
рактикум
4.24. Создать проект «Сортировка
строкового массива» .

•rurboOelphi-CD ГА“)

Глава 5

Практические задания для тематического
и итогового контроля

Тема
«Архитектура компьютера и защита информации»
Практическая
работа 1.1 Создание логического диска и его форматирование
Задание. В операционной системе Windows произвести создание
логического диска и его форматирование в определенной файловой системе.
Варианты выполнения работы:
 создание логического
диска с использованием различных файловых систем (FAT32 или NTFS) и различных
размеров кластера.
Создание логического диска и его
форматирование
1.  Ввести
команду [Программы-АДминистрированиеУправление компьютером]. В появившемся
диалоговом окне Управление компьютером в меню консоли выбрать пункт Управление
Дисками.

В окне отобразятся жесткие диски и
оптические дисководы и существующие на них логические диски.
Выберем свободный раздел диска (отмечен зеленым ЦВетом) и
создадим на нем логический диск.
2.  В
контекстном меню свободного раздела диска выбрать пункт СозДать логический
диск... Будет вызван Мастер создания разделов.
В третьем диалоговом окне указать размер
раздела. Щелкнуть по кнопке Далее.

З. В четвертом диалоговом окне указать
букву для обозначения логического диска.
4.   В пятом
диалоговом окне указать тип файловой системы, размер кластера и метку тома.

5.   В шестом
диалоговом окне проверить правильность введенных параметров и щелкнуть по
кнопке Готово. В окне Управление компьютером отобразится процесс форматирования
раздела.
Для получения информации о дисках и логических разделах
дисков можно воспользоваться программой тестирования компьютера SiSoft Sandra.
Получение информации о дисках
6.
Запустить
информационный модуль Информация о Дисках.
В списке Накопитель выбрать созданный
логический диск. В окне появится информация об объеме кластера, количестве
кластеров на логическом диске и др.
SiS6ftW

ЭЛВ№нт
№гическай
    диск
Сектоэов
    на Класт*
            Байтов
    не Сек тор                  512 byte(s)
Размер к
    пас тера
             Всего
    кластеров                    1518134
СВО6ОДћЬ'Х
    кластеров
Оизиквский диск
Цияиндры      2491 головки   255 Секторов на дорожку              63
             Байтов нв Сек•ор                   512 byte(s)                                                    2.1

Практическая работа 1.2
Запись СО-
или О\Ю-диска
Задание. Произвести запись CD- или  (например, с помощью
приложения DeepBurner). При необходимости произвести предварительное стирание
CD-RW или DVD±RW диска.
Варианты выполнения работы:
, запись CD-R или CD-RW или DVD±R или
DVD±RW диска;  создание мультисессионного или односессионного диска;  запись на диск различных наборов
файлов.
14 Информатика
и ИКТ. Шкл

Запись CD- или
1.  Вставить
в оптический дисковод перезаписываемый диск. Ввести команду [Запись-СтеретЫ. В
появившемся диалоговом окне Стирание Диска щелкнуть по кнопке Быстрое и
наблюдать прогресс стирания.

2.  Для
записи оптического диска выбрать ввести команду [Файл-Новый], в появившемся
диалоговом окне выбрать тип проекта и щелкнуть по кнопке Далее>.

З. В появившемся диалоговом окне Новый
проект выбрать тип мультисессии.

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

.=ДдЈ
                                        Эа•жь
  ЬКтруњнты                  Стракэ

е содержим двтоэапуа
  печать эп
Загись дл
21

1 Рогед.

Рэбомђ стоп

* teuchus
41
25512
159
27
153

э: С.) Мои
Сетевое Ффужвнав

№gactturn
.)RECYCLER
= soR
„—-•Systm volume

ЭАий:пл. nf conent. htm r&x.htrn
ESTARTER.EXE 3S&rEr.

јФйЬ

5.
Для начала записи ввести команду [ВиД-Запись Диска]. В
появившемся диалоговом окне будут отображены:  время этапов
создания диска;
•
прогресс записи;
•
процент выполнения;
•
оставшееся время записи;  прошедшее время с начала записи.

ПИШУЩИЙ приви
Поиск закончен
Подготовке к записи
Т ип носителя в приваде: CD.RW
Добавление закончено
  Сессии не импортируются
Со:дание обрезе СГ)
Процесс записи начет на скорости

Практическая работа 1.3
Установка
параметров BlOS
Задание. Включить компьютер. С помощью программы BlOS Setup
произвести установку новых параметров конфигу-
рации компьютера.
Варианты выполнения работы:  различные версии
BIOS; е различные значения конфигурационных параметров.
BIOS и загрузка операционной системы
1.  Включить
компьютер. Наблюдать процесс тестирования компьютера. В случае возникновения
звуковых сигналов или сообщений об ошибке устранить неисправность.

В некоторых случаях появление сообщения об ошибке связано с
забывчивостью пользователя. Например, в случае появления сообщения «Invalid
Boot Diskette» (пер. с англ. «Несистемная дискета») для продолжения загрузки
необходимо просто извлечь несистемную дискету из дисковода.
В процессе тестирования BIOS сравнивает получаемые данные о
конфигурации компьютера с информацией, хранящейся в CMOS — специальной
микросхеме памяти, расположенной на системной плате. Если данные не совпадают,
то появляется сообщение: «System 0ption Not Set» (пер. англ. «Системные
параметры не установлены»). В этом случае необходимо с помощью утилиты BlOS
Setup установить новые конфигурационные параметры.
2.  Для
входа в BlOS Setup нажать клавишу, указанную на экране загрузки (чапде всего
{Del}), в процессе тестирования. Утилита имеет интерфейс в виде системы
иерархического меню, перемещение по которому производится с помощью клавиш
управления курсором.

Для правильной установки даты, времени и параметров жестких
и гибких дисков необходимо использовать панель STANDARD CMOS SETUP (Стандартная
установка).
З. Установить курсор на пункт меню
STANDARD CMOS SETUP и нажать клавишу {Enter}.
В появившемся окне установить курсор на
элемент конфигурационных данных (выделяется цветом) и с помощью клавиш {PageUp}
и {PageDown} установить требуемое значение параметра.

С помощью панели BIOS FEATURES SETUP (Возможности BIOS)
можно установить защиту от заражения вирусом загрузочного сектора системного
диска. В этом случае будет заблокировано любое изменение загрузочного сектора,
и поэтому при переустановке или установке операционной системы защиту
необходимо снять.
4.    Установить
курсор на пункт меню BIOS FEATURES SETUP и нажать клавишу {Enter}.
На появившейся панели установить курсор
на элемент конфигурационных данных Anti-Virus Protection и установить значение
Enable.

Для предохранения данных от несанкционированного доступа
можно с помощью BlOS Setup установить пароль для входа в систему или в
установку конфигурационных параметров. Обязательно хорошо запомните или
запишите пароль, так как в случае его утери вход в систему становится
невозможным (сброс пароля возможен только аппаратно, путем отключения
микросхемы BIOS от источника питания — батарейки).
5.    На панели
mos FEATURES SETUP выбрать пункт Security 0ption и установить значение System
или Setup.
6.    Открыть
панель SUPERVISOR PASSWORD.
На появившейся панели Enter Password
ввести пароль и нажать клавишу {Enter},
Повторно ввести пароль для подтверждения его правиль-
НОСТИ.

Защита информации
Задание. Произвести комплексную защиту компьютера от
вредоносных программ. Установить и настроить следующие программы защиты
информации:
 антивирусные
программы: avast! или Antivir Persona| Edition;
о программу удаления рекламных и шпионских
программ: Ad-Aware;  программу восстановления системы:
CCleaner;  межсетевой экран: 0utpost Firewati.
Тема «Информация. Системы счисления»
Практическая работа 2.1
Кодирование
текстовой, графической и звуковой информации
Задание. Определить, сколько поместится на гибком диске,
флэш-диске, жестком диске,  и 1) ХЛ)-диске страниц, каждая из
которых содержит:

40 строк текста по 50 символов в строке в кодировке Unicode;  изображение
200 на 100 точек с палитрой 16 777 216
цветов;  звукозапись среднего качества с частотой
дискретизации 24 ООО Гц и глубиной кодирования 16 битов.

Варианты выполнения работы:
      различная
емкость гибкого диска, флэш-диска, жесткого диска, СГ)-диска и Г)У Г)-диска;  различное
количество строк и символов в строке и кодировка текста;  различный размер и
палитра цветов изображения;  различная частота дискретизации и
глубина кодирования звукозаписи.
Практическая работа 2.2 Системы
счисления
Задание. Перевести число, содержащее целую и дробную части,
из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную
системы. Варианты выполнения работы:
      различные
десятичные числа.
Тема «Логика и логические основы компьютера»
Практическая работа 3.1
Равносильность
логических выражений
Задание. Докажите, что логические выражения равносильны. Для
доказательства постройте таблицы истинности логических выражений в электронных
таблицах. Варианты логических выражений:

Е.          Таблицы истинности
логических выражений в электронных таблицах
] Microsoft Excel и 0penOffice.org Calc

\informatika10\logic\log.*

Тема
«Алгоритмизация и основы объектно-
ориентированного
программирования»
Практическая работа 4.1
Проект
«Визуализация сортировки числового массива»
Задание. Заполнить числовой массив, содержащий 10 элементов,
числами в диапазоне от О до 100. Произвести сортировку массива с отображением
шагов сортировки: в списки вывести значения элементов, а в графические поля —
линии, пропорциональные значениям элементов. Перед выводом каждого шага
сортировки сделать паузу.
 Создание графического интерфейса
проекта на языках Visual Basic ЛЕТ, Visual С#,  Visual Ј# и Turbo Delphi
Варианты элементов управления для создания и запуска
обработчиков событий (событийных процедур):  кнопки;  пункты
меню;  кнопки на панели инструментов.

          Создание программного кода
проекта на языках Visual Basic .NET, Visual С#,           Visual Ј# и
Turbo Delphi
Варианты заполнения числового массива:
 случайными
числами; о с клавиатуры; о из файла.
Варианты сортировки:
 по возрастанию с поиском максимального
(минимального) элемента;  по убыванию с поиском максимального
(минимального) элемента.
Варианты поиска максимального (минимального) элемента:
е с помощью процедуры;  с помощью функции;  во вложенном цикле.
Варианты создания области рисования:
 метод
CreateGraphics ( ) ;  создание растрового изображения Image1;  событие
Paint.
Запуск проекта на языках Visual Basic
                            .NET,
Visual              Visual и ТигЬо Delphi
Windows-CD
Вариант проекта:  кнопки;  случайными числами;
•
по убыванию с
поиском максимального элемента;  во вложенном цикле;  метод CreateGraphics ( ) .

Практическая работа 4.2
Проект «Тест»
Задание. Считать из текстовых файлов вопросы и правильные
ответы в строковые массивы. В цикле: о задать вопросы; о получить и запомнить
ответ в строковом массиве;
•   проверить
правильность введенного ответа (сравнить введенный ответ с правильным), если
ответ правильный, вывести сообщение «Правильно» на надпись, иначе вывести
сообщение «Неправильно» на надпись и прибавить 1 к счетчику ошибок.
В зависимости от количества сделанных ошибок вывести на
надпись отметку.
Сохранить введенные ответы в текстовом
файле.
 Создание
графического интерфейса проекта на языках Visual Basic ЛЕТ, Visual С#,  Visual
Ј# и Turbo Delphi
Варианты элементов управления для создания и запуска
обработчиков событий (событийных процедур):  кнопки;  пункты
меню;  кнопки на панели инструментов.

 Создание
программного кода проекта на языках Visual Basic .NET, Visual С#,  Visual
Ј# и Turbo Delphi
Количество вопросов и соответствующих правильных
ответов может изменяться в широких пределах.
Содержание вопросов и соответствующих правильных ответов
может быть из различных предметов (информатики, физики, математики, химии,
истории, географии и других предметов).
Запуск проекта на языках Visual Basic
                      .NET,
Visual        Visual         и Тимо Delphi

Windows-CD (ГГ
Вариант проекта:  пункты
меню;
• количество вопросов  предмет
— информатика.

=ддЈ
Игросы и ответы Тестроеа-ие

С какого
  тэга начинается Wet)страница?

Правигьно|

Хосошо

373

Практическая работа 4.3
Проект
«Шифровка и дешифровка»
Задание. Проект должен шифровать и дешифровать текстовые
сообщения. Используем алгоритм шифрования, который базируется на использовании
ключевой фразы (ключа шифрования). В процессе шифровки секретного текста
необходимо заменить каждый символ секретного текста на порядковый номер этого
символа в ключевой фразе. В процессе дешифровки последовательность чисел должна
преобразовываться обратно в секретный текст с помощью той же ключевой фразы.
Ключевая фраза должна содержать все символы, которые будут использоваться в
сообщениях, и должна быть известна только шифровальщику и получателю сообщений.
 Создание графического интерфейса
проекта на языках Visual Basic .NET, Visual С#,  Visual Ј# и Turbo Delphi
Варианты состава проекта:
•
одна форма, на которой происходит шифровка и дешифровка;
•
две формы, на первой форме происходит шифровка, а на второй
дешифровка;  две формы и независимый программный
модуль, на первой форме происходит шифровка, на второй — дешифровка, а в
программном модуле содержится программный код поочередного открытия форм.
Варианты для создания и запуска обработчиков событий
(событийных процедур):  кнопки;  пункты меню;  кнопки
на панели инструментов.
 Создание
программного кода проекта на языках Visual Basic .NET, Visual С#,  Visua1
Ј# и Turbo Delphi
Указания по шифровке. Будем последовательно вырезать в цикле
символы из секретного текста, а затем во вложенном цикле будем искать такой же
символ в ключевой фразе и запоминать его порядковый номер в целочисленном
массиве.

Таким образом, секретный текст будет
зашифрован последовательностью чисел, хранящейся в целочисленном массиве.
Секретный текст вводится с использованием текстового поля, а шифровка выводится
с использованием надписи. Образец ключевой фразы:
«электронно-вычислительные машины,
компьютеры (железо) позволяют находить значения функций, а ещё свойства готовых
объектов».
Указания по дешифровке. Шифровка в форме целочисленного
массива выводится на надпись. С помощью ключевой фразы необходимо превратить
эту числовую последовательность в секретный текст. Считывая по очереди числа
шифровки (элементы целочисленного массива), необходимо вырезать из ключевой
фразы символ, номер которого по порядку равен значению числа шифровки.
Полученные символы последовательно выводятся на надпись, на которой в
результате отображается исходный секретный текст.
 Запуск проекта на языках Visual Basic
.NET,  Visual С#, Visual Ј# и Turbo Delphi

7', Шифровка

Вариант проекта:
•
все варианты
состава проекта на различных языках программирования;
•
КНОПКИ.

Ответы и решения

Глава 1. Архитектура компьютера и
защита информации
Windows-CD

Глава 2. Информация. Системы счисления

Windows-CD СГ

Глава З. Основы логики и логические
основы компьютера
3.4. а) х < —3 или х > 8.

3.5.

3.7. Таблица истинности логического
выражения А х../ В совпадает с таблицей истинности логического выражения
Ответы и решения

3.9. Первый закон де Моргана:

Второй закон де Моргана:

3.10. (А В) В) = А (В & В) А М О

Плакаты

Таблица 1. Процессоры

Тип

Внешний вид

Технология

Кол-во элементов

Год выпуска

Частота

Шина данных

Шина адреса

Адресуемая память

4004

2300

4

12

4 Кб

Тип

Внешний вид

Технология

Кол-во элементов

Год выпуска

Частота

Шина данных

Шина адреса

Адресуемая память

80486

1 мк

1 180000

1989

25-133

32

32

4 Гб

Pentium

3100000

1993

60-266

64

32

4 Гб

Pentium 1 1 1

24000000

1999

400—1000

64

36

64 Гб

Pentium 4

0,13 мк

42000000

2000

1000-3200

64

36

64 Гб

Pentium Extreme
Edition

0,065 мк 65 нм

376000000

2006

3300- 3700

64

64

2 Тб

для ввода и
вывода данных

Элемент управления

Внешний вид

Назначение

Свойства

Методы

Событие по умолчанию

Надпись
(Label)

Отображает данные,
  которые нельзя изменить в процессе выполнения проекта

Name — имя
Text — надпись Location              У)
  координаты верхнего левого угла элемента управления на форме
Size (Width; Height) размер (ширина;
  высота) BackCoLor — цвет фона
ForeCol or — цвет текста
E'ont (Name; Size; Bold
  и др.)  шрифт (название шрифта, размер и начертание)

Show - показывает элемент
  управления Hide скрывает элемент управления Focus делает активным выбранный
  элемент управления Sca1e масштабирует форму или злемент управления
Refresh перерисовывает
  форму или элемент управления

Labe11 Click происходит
  при щелчке по надписи

Текстовое поле (TextBox)

Используется для ввода
  или отображения данных

ТехЕВох1 TextChanqed —
  происходит при изменении текста в текстовом поле

Улучшенное текстовое поле (RichTextBox)

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

Ri.chTextBox1
  TextChanged происходит при изменении текста в текстовом поле

Графическое
  поле
(PictureBox)

Предназначен для
  отображения графических объектов

1mage путь к
  графическому файлу, который отображается в графическом поле

Draw — рисует
  графические примитивы

PictureBox1 Click
  происходит при щелчке в графическом поле

Список
(LisLBox)

Отображает список, в котором можно
  выбрать один или несколько элементов

Items — позволяет задать или
  получить значения элементов списка
Sorted позволяет сортировать
  элементы списка

Add       добавляет
  элемент в список
Remove              удаляет элемент из списка

ListBox1
Se1ectedIndex Chanqed —
  происходит при вь1бсу ре элемента списка

          З.                                         для
организации интерактивного диалога

Элемент управления

Внешний вид

Назначение

Свойства

Событие по умолчанию

Кнопка
(Button)

[Целчок по кнопке вызывает
  событийную процедуру

Смотри в таблице 2 свойства надписи

Button1 Click
  происходит при щелчке по кнопке

Переключатель (RadioBut Еоп)

С RadioButton1

Представляет собой
  набор из двух или более взаимоисключающих вариантов

Che с ked — указывает, выбран или
  нет данный переключатель или флажок
Аи toCheck — вызывает
  автоматическое изменение состояпия переключателя или флажка при его выборе

RadioButton1 CheckedChanged происходит при выборе переключателя

Флажок
(CheckBox)

Используется для
  представления выбора «Дали» или «Истина]Ложь»

CheckBox1 CheckedChanged происходит при выборе флажка

Панель инструментов (T001Bar)

Используется для создания панели
  инструментов проекта

Buttons— набор кнопок

T001Bar1
ButtonClick — щелчок по
  кнопке на панели инструментов

Ползунок
(TrackBar)

Используется для
  визуальной настройки числовых параметров

содержит число, соответствующее
  положению ползунка, счетчика или движка полосы прокрутки
Mi nimum — минимальное значение ползунка или счетчика
Мах imum — максимальное значение ползунка или счетчика

TrackBar1 Scroll
  происходит при установке ползунка

Счетчик
(NumericUp
Down)

Выводит и задает числовое значение
  в списке

Numeri cUpDown1 ValueChanged происходит при установке значения счетчика

не
отображаемые на форме в процессе выполнения проекта

Элемент управления

Внешний вид

Назначение

Свойства

Методы

Шрифт
(FontDia10g)

б FontDialog1

Позволяет задать параметры шрифта

— параметры шрифта, установленные по
  умолча-
НИК)

Sb.owDia10q
  выводит диалоговое окно И1рифт

Цвет
(C010rDial oq)

ColorOialog1

Позволяет задать цвет

C010r — цвет, установленный по
  умолчанию

ShowDia10q выводит диалоговое окно
  Цвет

Открытие           файла (0penFileDialog)

0penF lleDiatog1

Позволяет в иерархической файловой
  системе выбрать файл

Initia1Directory
папка, открывающаяся в диалоговом
  окне

ShowDialog ВЫВОДИТ диалоговое окно
  Открыть

Сохранение файла

SaveFileDialog1

Позволяет в
  иерархической файловой системе сохранить файл

;nitia1Directory
папка, открывающаяся в диалоговом
  окне

ShowDia10g        выводит диалоговое окно Сохранить как

Меню (Ма inMenu)

МаћМепи1

Позволяет создать иерархическое
  меню проекта

'I'ext — позволяет вводить названия
  пунктов иерархичсского меню

Список рисунков (ImageList)

Используется для
  хранения рисунков. которые могут отображаться дру[ИМИ элементами управления

rnages позволяет создать коллекцию
  рисунков

Таймер (Timer)

Timer1

Вызывает событие через
  определенные интервалы времени

Inter.val - - интервал
  времени между событиями в миллисекундах

Start— запускает таймер

Таблица 5.
Типы переменных

Visua'
Basic .NET

Visual

Visual Ј#

Тифо
Delphi

Занимаемая память

Диапазон значений

Целочисленные типы

byte

ubyte

Byte

1 байт

от о до 255

Short

short

short

Sma11int

2 байта

от -32 768 до 32 767

Integer

.int

int

rnteger

4 байта

от -2 147 483 648 до 2 147 483 647

bong

10ng

long

Int64

8 байтов

от -9 223 372 036 854
  775 808 до 9 223 372 036 854 775 807

Типы с плавающей запятой

Single

float

float

Sing1e

4 байта

от -1.5 • 10 -45 до 3.4. 1038 7-8
  значащих цифр

Doub1e

double

doub1e

Doub1e

8 байтов

от -5,0. 10 -324 до 1.7 • 10308
  15-16 значащих цифр

Decimal

decima1

Нет

16 байтов

от ±1.o х 10 -28 до 1028 28-29
  значащих цифр

Строковые типы

Char

char

char

Char

2 байта

знак Unicode

String

String

2 байта х количество символов

от О до приблизительно
2 миллиардов знаков Unicode

Логический тип

Воо1еал

bool

boolean

Воо1еап

2 байта

Трие или Ealse

Ta6nnua BCTPOeHHble  (MeTOAbl)

OYHK1.4h9 (MeTOA)

Visual Basic .NET

Visual

Visual J#

Turbo Delphi

Maret.aarnqecKne  (MeTOAbl
  )

KBaapaTHblV1 KOPeHb

Mat-h . Sqrt ()

Sqrt ( )

System. Math . Sqrt ( )

CreneHb

Math . Pow ( )

Math . Pew ( )

Mat_h . -D ow ( )

Uenaq saCTb sncna
OKpyrneHL•1e
AO uenoro

Math . Int ( )
Math . Round ( )

,Math . Round ( )

System. Math . I nt ( )
System . Ma eh . Round ( )

Round ( )

C"Hyc

Ma t. h . Sin ( )

Math . Sin ( )

System. Math . Si n ( )

KochHyc

Math . Cos ( )

Math . Cos ()

System . Math . Cos ( )

CnyqaVIHoe qncno

Microsoft . Visual Bas i c .

Mi crosoft
  .Visual Bas i c . Rnd ( )

Random ( )

 (MeTOAbl) npe06pa30BaH'•19
  Th"10B AaHHblX

B
  qncno c nnaBaK)u-teh

ToDoub1e ( )
System. Convert .
ToSinq1e ( )

System.
  Convert . 'l'oDouble ( )
System. Convert .
ToSinq1e ()

Sys tem . Convert. .
  'I'öDouble ( )
System. Convert .
T (D .S ingle ( )

St r To f•' l oat ( )

B UenOe sncno

System. Convert .
T013yte ( )
System. Convert .
To I r. t 32 ( )

System. Convert . '11 0Byte ( )
Sys tern . Convert. .
To Int 32 ( )

System. Convert .

Sys cem . Convert. .
TòInt32 ( )

SC rTQ1nt ( )
Slr To I n t. 64 ( )

B CTPOKY

Sys L cm.
  Convert- . 'l'oStr i ng ( )

System. Convert .
ToString ( )

Sys t. em. Convert- .
ToString ( )

IntTQSt r ()
F I oat ToSt. r ( )

 (MeTOAbl) BBOAa BblBOAa

Input Box. ( )

Mic rosoft .Vi sua1Basic.
Input Box ( )

Mi crosoft
  . Visua1 Basic . Input-Box ( )

I nput Box ( )

BblBOA

MsgBox ( )

Microsoft.
  . Visual Basic . MsgBox ( )

Microsoít .VicualBasic.
MsgBox ( )

MessageBOX ( )

Таблица Кодирование
алгоритмических структур «ветвление» и «выбор» Кодирование алгоритмической
структуры «ветвление»

Visual Basic .NET

Visual

Visual ..Ј#

Turbo Delphi

If Условие Then
Серия 1 E1se
Серия 2.
End If

if
  (Условие)
Серия
[e1se
Серия

if
  (Условие)
Серия
[e1se
Серия 2;

If Условие
Then begin
Серия 1 end
[E1se begin
Сеоия 2 endl ;

Кодирование алгоритмической структуры
«выбор»

Visual Basic .NET

Visual С#

Visual Ј#

Turbo Delphi

Select Case Выражение
Case Условие] Серия 1
Саве Условие 2 Серия 2
[Сазе E1se
Серия ]
End Select

switch
  (Выражение) {case список 1 констант: Серия 1 ; break ; case список 2
  констант: Серия 2; break ;
[default: Серия; break ;

swit:ch (Выражение)
{case СпИСОК 1 констант: Серия ; break ; case список 2 констант:
Серия 2; break ;
[ default: Серия ;
  break ;

Сазе Выражение 0f список
  1 констант: begin
Серия 1 end ; список 2
  констант: begin
Серия 2 end ;
[Else begin
Серия end; end ;

Таблица
Кодирование алгоритмической структуры «цикл»
Кодирование
алгоритмической структуры «цикл со счетчиком»

Visual Basic .NET
E'or  То
КовЗнач [ Step шаг]
'Ге_по [ :икг.а
Next [Счетчик]

              Visual
  С#                                Visual Ј#
for (int Счетчик for (int Счетчик
  Счетчик < НачЗнач; Счетчик < НачЗнач;  Счетчик
Тело цикла;                           Тело цикла;

Turbo Delphi
For to конЗнач Do begin Тело цикла end ;

Visual
  Basic .NET
Тело цикла
Loop Whi1e
  УСЛОВИ()
'I'PJ!0
Loop Until Условие

Visual С#

do
Толо цикла;
whi1e (Условие) ;

Visual Ј#
do
Тело ЦИкла;
while (Условие) ,

Turbo Delphi
Repea t
Тело цикла;
Unti1 Условие;

Кодирование алгоритмической структуры «цикл с
предусловием»

Visual
  Basic .NET
Do While YCJIOPV-1Q
Тело цикла Loop
Do Unti1 Условие
Толо ЦИК Ла
Loop

Visual С#
Whi1e (УСЛОВИ.е)
Тело цикла;

Visual Ј#
While
  (Условие)
ТОЛО ЦИКЛа,•

Turbo Delphi while Условие do
ело цикла;

Кодирование
алгоритмической структуры «цикл с постусловием»

Словарь
компьютерных терминов

B10S

Программы начальной
  загрузки, находящиеся в микросхеме памяти (англ. «Basic lnput/Output System»
  — базовая система ввода/вывода)

ВШ-Вау

Оптический диск повышенной
  информационной емкости (англ. «B1ue-Ray» — голубой луч)

со

Компакт-диск (англ. «Compact Disk»)

CDFS

Файловая система для
  работы с оптическими дисками, предназначенная для использования под
  управлением различных операционных систем (англ. «Compact Disk File System» —
  файловая система для компакт-дисков)

DDR

тип модулей (англ. «Double Data
  Rate» — удвоенная скорость передачи данных). Модули памяти DDR имеют 1 84
  разъема

ODR2

Тип модулей оперативной
  памяти, которые обладают меньшим энергопотреблением, чем модули DDR, и
  поэтому могут иметь большую частоту. Модули памяти DDR2 имеют 240 разъемов

DVD

Цифровой универсальный диск (англ. «Digital Versatile
Disk„ )

ext3

Журналируемая файловая
  система для операционной системы Linux (англ. «ext3» — 3-я расширенная
  файловая система)

РАТ

Таблица размещения файлов (англ. «File Allocation
  Table»)

НЕ) DVD

Цифровой
  универсальный диск повышенной информационной емкости (англ. «High Definition
  DVD»)

HFS

Журналируемая файловая
  система для операционной системы Мас 0S (англ. «Hierarchical File System» —
  иерархическая файловая система)

Словарь компьютерных
терминов                                                                               387

NTFS

Журналируемая файловая
  система для операционной системы Windows (англ. “New Technology File System»
  — файловая система новой технологии)

Система самотестирования компьютера
  при включении (англ. «Power Оп Setf Test» )

ReiserFS

Журналируемая файловая система для
  операционной системы Linux (англ. «ReiserFS» — файловая система Райзера).

SFX

Самораспаковывающийся архив
(англ. «SelF-eXtracting»)

Файловая система для работы с файлами на оптических дисках (англ.
  «Universal Disk Format» — универсальный дисковый формат)

Кластер

логическая единица
  хранения данных в таблице размещения файлов, объединяющая группу секторов
  (англ. «cluster»)

Мультисессия

При записи СО- или  можно записывать файлы в несколько сессий (приемов)

Полевой транзистор

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

Синергетика

Наука о самоорганизующихся системах в неживой и живой природе,
  обменивающихся веществом, энергией и информацией с окружающей средой

Хакер

Компьютерный
  злоумышленник, КОТОРЫЙ организует сетевые атаки на Интернет-серверы, а также
  проникает на них с неблаговидными целями

Учебное
издание
Угринович
Николай Дмитриевич
ИНФОРМАТИКА и
ИКТ
Учебник для
10 класса
Профильный
уровень
Ведущий
редактор О. Полежаева
Художник С.
Инфантэ
Художественный
редактор О. Лапко
Корректор Е.
Клитина
Компьютерная
верстка Л. Катуркина
Подписано в
печать 22.01.08. Формат 60х90 116
Бумага
офсетная. Усл. печ. л. 24,5
Тираж 25 ООО
экз. Заказ 400
Издательство
«БИНОМ. Лаборатория знаний»
Адрес для переписки: 125167, Москва,
проезд Аэропорта, З Телефон: (499) 157-5272. E-mail: Lbz@aha.ru http://www.Lbz.ru
при участии 000 «ЭМПРЕЗА»
Отпечатано с
готовых файлов заказчика в ОАО «ИПК
«Ульяновский
дом печати». 432980, г. Ульяновск, ул. Гончарова, l4

ИНФОРМАТИКА

ИМЕЕТСЯ В ПРОДАЖЕ

Угринович Н. Д. Исследование информационных моделей.
Элективный курс : учебное пособие / Н. Д. Угринович. —2-е изд., испр. — 2006. 200 с. : ил.
Данное учебное пособие является частью УМК наряду с
компьютерным практикумом на CD-ROM. Курс учит создавать и исследовать
информационные модели из различных предметных областей с использованием систем
объектно-ориентированного программирования и электронных таблиц.

На CD-ROM
представлены: практикум по построению и исследованию моделей в форме проектов
на языках Visual Basic и Delphi, а также компьютерных моделей в электронных
таблицах; дистрибутивы систем объектно-ориентированного программирования Visuat
Basic и Delphi, а также электронных таблиц StarOffice Caic и 0penOffice Сак.
Для учащихся старших классов информационно-технологического,
физико-математического и естественно-научного профилей.
Угринович Н. Д. Исследование информационных моделей.
Элективный курс компьютерный практикум на CD-ROM / Н. Д. Угринович. 2-е изд., испр. — 2006. — 200 с. :
ил.
CD-ROM включает интерактивный практикум, содержащий
указания по выполнению практических заданий и ответы на них, т. е. готовые
проекты на языках Visual Basic и Delphi. На CD-ROM размещено программное
обеспечение, необходимое для реализации компьютерного практикума, а именно
свободно распространяемые версии систем программирования Visual Basic и Delphi,
а также файлы электронных таблиц.
ИНФОРМАТИКА

ИМЕЕТСЯ В ПРОДАЖЕ

Монахов М. Ю. Учимся проектировать на
компьютере. Элективный курс : практикум / М. Ю. Монахов, С. Л. Солодов, Г. Е.
Монахова. — 2-е изд., испр. — 2006. — 172 с. : ил.

Практикум обеспечивает
преподавание курса компьютерного проектирования в старших классах.
Практикум позволяет освоить основы современных
компьютерных технологий проектирования и дизайна. Рассмотрены компьютерные
системы проектирования AutoCAD и 3D Studio МАХ. Главы практикума представляют
собой законченные учебные модули, каждый из которых ВКЛЮЧаеТ в себя краткую
теорию по теме, типовые практические работы, вопросы для самоконтроля и
проверочные задания.
для учащихся старших классов физикоматематического,
естественно-научного, технологического профилей и универсального обучения.
МАТЕМАТИКА

ИМЕЕТСЯ В ПРОДАЖЕ

Андреева Е. В. Математические основы
информагии. Элективный курс : учебное пособие / Е. В. Андреева, Л. Л. Босова,
И. Н. Фалина. 2-е изд., испр. —2007. —328 с. : ил.
Учебное пособие входит в УМК для
старших классов наряду с методическим пособием и хрестоматией.

Материал раскрывает
взаимосвязь математики и информатики, показывает, как развитие одной из этих
научных областей стимулировало развитие другой. Дается углубленное
представление о математическом аппарате, используемом в информатике,
демонстрируется, как реЗУЛЬТаТЫ, полученные в математике, послужили источником
новых идей и результатов в теории алгоритмов, программировании и в других
разделах информатики.
для учащихся старших классов
информационно-технологического, физико-математического и естественно-научного
профилей, желающих расширить свои теоретические представления о математике в
информатике и информатике в математике.

  л     т Е Р А Т У Р А Д Л Я ш
• ИНФОРМАТИКА

ИМЕЕТСЯ В ПРОДАЖЕ

Залогова Л. А. Компьютерная графика.
Элективный курс : учебное пособие / Л. А. Залогова 2-е изд. —2007. —212 с. : 16 с. ил. :
ил.

Учебное пособие входит в УМК
для старших классов наряду с практикумом.
В учебном пособии рассмотрены вопросы представления
графических изображений, описания цветовых опенков на мониторе и принтере,
форматы графических файлов, описаны основные возможности редакторов векторной
графики CorelDBAW и растровой графики Adobe Photoshop.
Для учащихся старших классов физико-математического,
естественно-научного, социально-гуманитарного и технологического профилей.

Николай Дмитриевич Угринович методист, заведующий
лабораторией информатики Московского института открытого образования, кандидат
педагогических наук, автор учебного и программно-методического комплекса по
курсу «Информатика и ИКТ», который включает учебники для 7—11 классов,
элективный курс, методическое пособие для учителей, электронные материалы.
Данный учебник для 10 класса предназначен
для обучения информатике и ИКТ на профильном уровне.

Вы получите прочные знания по:

архитектуре компьютера и методам защиты информации

системам счисления и понятию информации

логике и логическим основам компьютера
Вы научитесь программировать на четырех
языках объектноориентированного программирования:

Visual Basic

Delphi

Visual СА  Visua| Ј#
Учебник рекомендуется для изучения в 10
классах информационнотехнологического и физико-математического профилей.
ISB.N*' 978-5-94774-828-4

[1] -1 •

file_name: 81_1- Информатика и ИКТ. 10 кл. Профильный ур._Угринович Н.Д_2008 -387с.pdf

alt: Н. Д, Угринович

alt: БИНОМ Н, Д, Угринович ИНФОРМАТИКА

alt: ББК 32.97 У27 Угринович Н.

alt: З. 2.3. Логические функции .

alt: Переменные .

alt: Устройства ввода долговременная память

alt: Разъем для процессораСеверный мост

alt: AGPx8, частота которой 66 МГц х 8 528

alt: Тестирование системной платы

alt: ФИ. •

alt: Однако в настоящее время увеличение разрядности процессоров (а следовательно, производительности) практически нецелесообразно, так как только сейчас происходит переход от 32-битовых операционных систем и приложений к…

alt: Рис. 1.9. Производительность процессора

alt: Таблица 1. 1. Оперативная память

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

alt: Рис. 1.11. Установка размера и местоположения виртуальной памяти 4

alt: Физика-10 (ГГ В процессе записи информации на гибкие и жесткие магнитные диски головка дисковода с сердечником из магнитомягкого материала (малая остаточная намагниченность) перемещается вдоль магнитного…

alt: CD-R (до 7,8 Мбайт/с). Запись

alt: USB, и подключаются к последовательно-