Вы находитесь на странице: 1из 240

Информатика

А.Н. Адекенова, А.А. Ермекова, Ю.С. Пряничникова

10

Нур-Султан
2021
УДК 373.167.1
ББК 32.973 я72
А 29

Разработан согласно Образовательной программе


АОО «Назарбаев Интеллектуальные школы» – NIS-Programme

А 29 Адекенова А.Н., Ермекова А.А., Пряничникова Ю.С.


Информатика: Учебник для 10 класса Назарбаев Интеллектуальных школ (пробная версия)
разработан по учебной программе предмета «Информатика» для 6-10 классов, версия 11,
2018 год. – Нур-Султан: АОО «Назарбаев Интеллектуальные школы» 2021. – 240 с., ил.

ISBN 978-601-348-136-4

УДК 373.167.1
ББК 32.973 я72

ISBN 978-601-348-136-4 © АОО «Назарбаев Интеллектуальные школы», 2021


© Shutterstock, Inc., 2003 -2021
Введение

В наше время большие объемы информации содержатся в базах данных, и эти данные из
бумажного формата постепенно перешли в электронный вид. Они могут храниться как на цифровых
носителях, так и в Интернете. Этот учебник поможет тебе узнать принципы работы магнитных,
оптических и твердотельных устройств хранения данных, научит разбираться в принципах передачи
информации в сети, где важную роль играют понятия «протокол TCP/IP» и сетевые устройства:
коммутаторы, концентраторы, маршрутизаторы, прокси-сервера, мосты, без которых работа
локальной или глобальной сети невозможна.
Учебник включает в себя восемь разделов.
Первый раздел «Память» посвящен вопросам хранения данных на разных носителях. Ты узнаешь
о принципах работы магнитных, оптических и твердотельных устройств хранения данных и сможешь
распознавать такие виды памяти как SRAM и DRAM.
Второй раздел «Сеть и безопасность» поможет ответить на актуальный вопрос современности:
какие киберугрозы существуют и почему необходимо «защищаться» от киберугроз. Также этот раздел
раскроет особенности сетевых устройств, которые участвуют в процессе передачи информации
в сети. Ты подробно узнаешь принципы передачи информации по сети, и на практике применишь
разные сетевые команды. Например, определять IP-адрес своего компьютера.
В третьем и четвертом разделе учебника раскрыты вопросы сайтостроения. Уроки этих разделов
посвящены инструментам разработки веб-сайтов, изучив которые можно создавать собственный
сайт, используя CMS, WYSIWYG и HTML.
Пятый раздел «Массивы (C#)» требует наличие навыков программирования в объектно-
ориентированной среде C#. Программированию структурированных данных, представленных
в виде одномерных массивов в интегрированной среде Visual Studio C# 2017, посвящен раздел 5.
Шестой раздел «Базы данных в ООП (C#)» раскрывает практические методы работы с базами, так
как работа с базами данных является важнейшим навыком в работе с компьютером, то специалисты
данной области становятся более востребованными. В этом разделе ты узнаешь, как связаны между
собой интегрированная среда Visual Studio C# 2017 и технология ADO.Net. Ты научишься создавать
собственное приложение для работы с таблицей базы данных MS ACCESS.
Разделы 7, 8 посвящены этапам разработки приложения. Материал этих разделов закрепит
практические навыки, полученные в предыдущих разделах и научит правильно исследовать
вопросы проектирования, разрабатывать приложения с использованием базы данных, массивов
и других структур данных.
В конце каждого раздела имеются вопросы и задания, которые помогут понять, насколько
хорошо усвоен материал уроков. Сложные задания отмечены значком (*), исследовательские
задачи расположены в конце каждой темы.
Главные идеи учебника заключаются в формировании практических навыков, необходимых
в будущем. Он поможет тебе научиться обрабатывать информацию, представленную
в различном виде, и углубить практические навыки программирования в интегрированной среде
Visual Studio C# 2017. Желаем успехов в изучении информатики!
ПАМЯТЬ КОМПЬЮТЕРА

Внутренняя память Внешняя память

ОЗУ КЭШ ПЗУ Магнитные Оптические Твердотельные

DRAM SRAM SSD


НГМД НЖМД

CD DVD Blu-ray

4
1. ПАМЯТЬ

● Когда появился цифровой носитель Ты уже знаешь:


информации?
● Как цифровые носители сохраняют ● виды памяти компьютера;
и передают информацию? ● характеристики памяти компьютера.
● Как выбрать цифровой носитель
информации? Ты узнаешь:
● Из каких частей состоит жесткий диск? ● принципы работы устройств хранения данных,
● По какому принципу информация включая магнитные, оптические
записывается и считывается с жесткого и твердотельные;
диска? ● о различиях между SRAM и DRAM.
● Какой диск выбрать при покупке
компьютера: SSD или HDD? Межпредметная связь
● В чем отличие SSD от HDD?
В этом разделе ты познакомишься с динамической
● Каков принцип записи данных и статической памятью компьютера. Полученные
на оптические диски? знания о принципе работы динами­ческой и стати-
● Какой тип оперативной памяти выбрать? ческой памяти ты можешь применить при изуче-
● Чем отличается динамическая память от нии предмета «Физика» в 10 классе.
статической?

5
Цифровые носители информации
1.1
Ты уже знаком с понятием память компьютера и знаешь, что память
компьютера можно разделить на внутреннюю и внешнюю.
Когда появился цифровой ЗАДАНИЕ 1. Назови устройства, которые относятся к внешней/внутренней
носитель информации? памяти компьютера.
Как цифровые носители
сохраняют и передают ОЗУ DVD-диск Жесткий диск
информацию?

CD-диск Кэш-память ПЗУ

В 8 классе ты изучал иерархию памяти компьютера, внутреннюю па-


мять и ее характеристики.
ЗАДАНИЕ 2. Рассмотри схему иерархии памяти компьютера и объясни, как
взаимосвязаны характеристики: размер, стоимость, скорость доступа памяти
компьютера.

Регистры процессора

Быстродействие
Стоимость
Кэш-память
Объем

Основная память

Внешняя память

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

Рис. 1. Ткацкий станок Ж. Жаккара с перфокартами

6
Задумывался ли ты когда-нибудь о том, как выглядел первый цифровой Знаешь ли ты?
носитель информации, какой объем информации он мог хранить? Компания IBM в 2002 году
Предшественником современных цифровых носителей информации изучала возможность созда-
ния перфокарты размером
была перфокарта. с почтовую марку, которая
Это носитель информации из тонкого картона, данные на котором ко- могла бы содержать до 25
дировались с помощью проделанных в определенных точках отверстий. миллионов страниц инфор-
мации. У них это получилось
Первая перфокарта появилась в 1804 году для ткацкого станка, ее со- с помощью технологии
здал изобретатель Жозеф Жаккар. С помощью перфокарт Жаккар мог Millipede, которая работает
формировать самые разные узоры на тканях (рис. 1). на том же принципе, что и
перфокарты. Только теперь
Идею использования перфокарт для хранения данных предложил информация хранится не на
Герман Холлерит, занимаясь проблемами обработки статистических дан- листах картона, а на тонкой
ных переписи населения. Он изобрел своеобразный носитель инфор- полимерной пленке.
мации – перфокарту, которая почти в неизменном виде использовалась
примерно сто лет.

ЗАДАНИЕ 3. Используя интернет-ресурсы, ответь на вопросы.


1. Кто является создателем магнитной ленты?
2. В каком году и в какой стране была изобретена магнитная лента?
3. Объясни принцип записи информации на магнитную ленту.
4. *Исследуй области применения магнитной ленты в настоящее время.

В современном мире существует большое количество цифровых


носителей.

Хранение данных – это, по сути, запись цифровой информации на


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

7
Цифровые носители подразделяются на три категории.

Магнитные Оптические Твердотельные


Принцип записи информации
Принцип записи информации на Принцип работы оптических дисков Твердотельный накопитель ис-
магнитный накопитель заключа- основан на использовании лазера. пользует флэш-память (микро-
ется в намагничивании участков В процессе записи лазер оставляет схемы) для хранения данных.
носителя. след на оптичес­ком носителе. При
Одни магнитные поля воспринима- считывании информации использу-
ются как 1, обратные – 0. ется лазерный луч меньшей мощно-
сти.
Примеры носителей информации
FDD – Floppy Disk Drive (НГМД – CD (compact disk) SSD (Solid State drive)
накопитель на гибких магнитных DVD (digital video disk)
дисках) BD (Blu-ray disk)

HDD – Hard Disk Drive


(НЖМД – накопитель на жестких
магнитных дисках; винчестер)

ЗАДАНИЕ 4. Исследуй принцип работы голографических накопителей инфор-


мации.

ПРОВЕРЬ СЕБЯ
1. Назови виды памяти компьютера.
2. Объясни различия между ПЗУ и ОЗУ.
3. Используя схему иерархии памяти компьютера, сравни внутренние
и внешние устройства памяти компьютера.
4. Назови принцип записи информации для жесткого диска.
5. *Объясни, по какой причине магнитная лента до сих пор используется
в Центрах хранения данных (Data Center).

8
Принцип работы жесткого магнитного диска
1.2
Покупая новый компьютер, мы обращаем внимание на его различные
характеристики: процессор, ОЗУ, видеокарту и т.д. Немалую роль при
выборе компьютера играет жесткий диск и его характеристики.
– Кто и в каком году изобрел жесткий диск? Из каких частей состоит
– Как информация хранится на нем? жесткий диск?
По какому принципу ин-
формация записывается
и считывается с жесткого
диска?

Знаешь ли ты?
5 февраля 1956 года пос­
тупил в продажу первый в
мире жесткий диск – IBM
350 Disk Storage Unit.

ЗАДАНИЕ 1. 1. Найди информацию о первом жестком диске.


2. Почему жесткий диск называют «винчестер»?

Жесткий магнитный диск представляет собой несколько отдельных


дисков (пластин из алюминия с магнитным покрытием), которые заклю-
чены в металлическом корпусе и вращаются с высокой скоростью вокруг
одной оси.
Жесткие диски различаются между собой следующими характерис­
тиками:
– емкость – количество информации, помещающееся на диске;
– быстродействие – скорость чтения и записи информации (чем
меньше время доступа, тем быстрее будет работать диск);
– интерфейс (тип контроллера), к которому должен присоединять­ся
жесткий диск.
Различают три основных интерфейса подключения: IDE, SATA, SСSI.
SATA
IDE и SATA – это различные типы интерфейсов для подключения
устройств хранения (например, жестких дисков) к материнской плате
компьютера. SATA обозначает Serial Advanced Technology Attachment (или
Serial ATA), а IDE также называется Parallel ATA или PATA. SATA является
более новым стандартом, а диски SATA работают быстрее, чем диски
PATA (IDE).

IDE

9
ЗАДАНИЕ 2. 1. Сравни характеристики SATA и IDE интерфейсов.

SATA (Serial Advanced Technology


IDE (Integrated Drive Electronics)
Интерфейс Attachment)
Параллельный интерфейс передачи
(способ подключения) Последовательный интерфейс
данных
передачи данных
Год создания 1986 2003
Скорость передачи Передача данных со скоростью Передача данных со скоростью
данных интерфейса до 133 МБ/с до 6 ГБ/с
Возможность добавле-
ния/удаления компо-
Нет Да
нентов во время работы
компьютера

Кабель подключения

Ленточный, широкий, состоит


из 40 проводников Ширина не более 1 см
Кабель SATA компактнее, чем IDE

2*. Изучи различия интерфейсов SATA, SATA2, SATA3.

SСSI (Small Computer System Interface) – интерфейс малых компью-


терных систем, представляет собой набор стандартных электронных
интерфейсов, которые позволяют одновременно подключать к компью-
теру множество устройств, включая жесткие диски, сканеры, приводы
CD-ROM/RW, принтеры.

Сервопривод коромысла
Магнитный диск

Шпиндель

Коромысло Конфигурационные
перемычки
Головка

Рис. 1. Жесткий диск Корпус Интерфейсный разъем

10
ЗАДАНИЕ 3. Рассмотри изображение (рис. 1) и изучи основные детали, из
которых состоит жесткий диск.

Принцип записи информации на жесткий диск заключается в намагни-


чивании участков поверхности диска. Магнитные диски устанавливаются
на ось (вал) электродвигателя.
Данные записываются и считываются с помощью головок записи/счи-
тывания, перемещаемых вдоль радиуса дисков. Запись производится на
обе поверхности пластины.
Структуру диска можно представить следующим образом:
– информация на диске располагается вдоль дорожки; Сектор – это участок
– каждая дорожка содержит определенное количество секторов. дорожки, хранящий
Каждый сектор имеет адрес для обеспечения прямого доступа (запись/ минимальное
считывание) к нему. Адрес сектора включает номер стороны диска, номер количество
дорожки и номер сектора на дорожке. информации, которое
может быть считано
Для обеспечения работы операционной системы на жестком диске или записано на него.
создается файловая система, которая использует сектора для хранения
файлов. Сектора обычно объединяются файловой системой в кластеры. сектор
Кластер является минимальной областью файловой системы, предназна- кластер
ченной для хранения информации. Он может состоять как из одного, так
и из нескольких секторов. Размер кластера зависит от файловой системы
и емкости жесткого диска.

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


• низкоуровневое форматирование (физическое) – подготовка физи­
ческой структуры носителя, т.е. разделение на дорожки и сектора;
• процесс разбиения включает в себя разделение жесткого диска на
логические тома для хранения данных;
• форматирование высокого уровня (логическое) – создается разметка
файловой системы на логическом диске или в разделе диска.
дорожка
Форматирование диска обычно выполняется с помощью специальных
утилит.
Форматирование разделяется на быстрое и обычное. При быстром
форматировании стирается информация об адресе файла, но сам файл Кластер – это
остается. При обычном форматировании вся информация заменяется логическая единица
нулями. жесткого диска,
минимальный блок,
выделяемый для
ЗАДАНИЕ 4. 1. Арман отформатировал жесткий диск и считает, что не сможет записи файла.
восстановить свои данные.
А) Обсуди с одноклассником, в каком случае данные можно восстановить.
В) Изучи, какие существуют программы для восстановления данных.
2. Работник отдела переписи населения хранит все данные на компьютере, на
котором имеется только один логический жесткий диск С. При сбое в работе
операционной системы работнику пришлось переустановить систему. В резуль-
тате все данные, которые он хранил на рабочем столе, исчезли.
А) Назови причину исчезновения данных.

11
В) Предложи вариант, который позволит сохранить данные при переуста­
новке ОС.

В процессе форматирования жесткий диск можно разделить на логичес­


кие диски. Разделение жесткого диска на логические разделы условно и
служит для удобства работы с жестким диском. Данные, которые хранятся
отдельно от операционной системы, сохраняются при ее переустановке.
Логические диски упрощают хранение информации на компьютере. Так,
Форматирование диск C обычно используется для хранения файлов операционной системы
диска – это процесс, и установленных программ, а логические диски, например, диск D, – для
во время которого
музыки, фильмов и т.д.
происходит разметка
устройства хранения
Устройства и диски (3)
данных (жесткий
диск, твердотельный Acer (C:) Диск (D:)
накопитель и др.).
586 ГБ свободно из 715 ГБ 16,7 ГБ свободно из 19,5 ГБ
Диск (E:)

172 ГБ свободно из 195 ГБ


Логический диск
(раздел) – область Рис. 2
хранения информации
на жестком диске, ЗАДАНИЕ 5. 1. Определи по рисунку 2 общий объем жесткого диска и объем
обозначаемая основного диска.
латинскими буквами. 2. Укажи преимущество использования нескольких логических дисков.

ЗАДАНИЕ 6. 1. Исследуй способы (утилиты) разбиения жесткого диска на


логические диски.
2. Изучи, можно ли «низкоуровневое форматирование» жесткого диска прово-
дить в домашних условиях.

ПРОВЕРЬ СЕБЯ
1. Перечисли части жесткого диска.
2. Опиши принцип записи информации на жесткий диск.
3. Назови различия между кластером и сектором.
4. Объясни, что происходит в процессе форматирования жесткого диска.
5. Назови различия быстрого и обычного форматирования жесткого диска.
6. *За последние 10 лет существенно увеличился объем жесткого диска.
Объясни, почему.

12
Принцип работы твердотельного
и оптического дисков 1.3
Твердотельный накопитель (SSD) – это новое поколение устройств
хранения данных, используемых в компьютерах. SSD-накопители заменя- Какой диск выбрать при
покупке компьютера: SSD
ют традиционные механические жесткие диски, используя флэш-память. или HDD?
Это значительно увеличивает быстродействие компьютера из-за быстрого В чем отличие SSD от HDD?
доступа для чтения и высокой пропускной способности флэш-памяти. Каковы принципы запи-
В настоящее время твердотельные накопители используются как в ноут- си данных на оптические
диски?
буках, нетбуках, планшетах, так и в стационарных компьютерах.

В чем различие между твердотельными и жесткими дисками?


Разница между ними заключается в технологии, используемой для
хранения и извлечения данных. SSD-накопители хранят данные в ми-
кросхемах вместо вращающихся металлических дисков или магнитных
лент HDD. Сравнивая два вида жестких дисков, можно сделать выводы,
что HDD дешевле, и ты можешь получить больше места для хранения
данных. Однако твердотельные накопители быстрее, легче, долговечнее
и потребляют меньше энергии. SSD могут сократить время загрузки данных
с 35 до 10 секунд. Скорость записи для жесткого диска может быть в диа-
пазоне 50-120 Мбит/с по сравнению с 200-500 Мбит/с для SSD. Жесткий
диск может выполнять от 50 до 200 операций ввода-вывода в секунду,
в то время как сопоставимый SSD может выполнять до 90 000 операций.

ЗАДАНИЕ 1. Заполни таблицу в тетради, используя информацию о SSD и HDD- SSD (Solid State Drive) –
накопителях. компьютерное
энергонезависимое
Скорость Энерго­ немеханическое
Емкость Стоимость
работы потребление запоминающее
HDD устройство на основе
микросхем памяти.
SSD

Как работает SSD-накопитель? SSD


Флэш-накопитель является примером технологии твердотельного на- 2.5''
копителя. Контроллер
SSD – это более крупное и более сложное устройство, объединяю-
щее пулы флэш-памяти NAND. Тип хранилища, также встречающийся
в MP3-плеерах и цифровых камерах. В отличие от ОЗУ, которое не сох­
раняет данные при выключении компьютера, флэш-память SSD является
энергонезависимой.
Процессами чтения и записи, шифрования, сжатия данных и другими
управляет контроллер SSD, который включает в себя микропроцессор.
Производительность SSD-накопителя зависит от контроллера, кото-
рый стоит в SSD. Его работой управляет специальная программа, которая NAND пулы
«вшита» в контроллер. Интерфейс
подключения
Кэш-память
13
Знаешь ли ты? При использовании твердотельных накопителей каждый блок данных
В 1988 году компания Intel доступен с той же скоростью, что и любой другой блок, независимо от
выпустила первые коммер- его местоположения на диске. Это является большим преимуществом
ческие чипы флэш-памяти SSD-накопителя по сравнению с HDD-дисками.
типа NOR, которые исполь-
зовались в первом SSD-
SSD-накопители могут записывать данные только в пустые блоки.
накопителе Flashdisk. Со временем, когда SSD заполняется, запись на диск становится более
сложной и медленной.

NAND – тип флэш- ЗАДАНИЕ 2. Ниже приведены характеристики SSD-накопителей. Расположи


памяти, который осно­ номера характеристик в два столбца.
ван на работе логи­чес­
Преимущества SSD Недостатки SSD
кого элемента NOT AND
и хранит свое состоя­ние
зарядки, даже если она
не включена, что делает
NAND типом энерго­ 1. Включаются мгновенно, не требуют раскрутки.
неза­ви­симой памяти. 2. Износ ячеек.
3. Высокая скорость доступа к данным.
4. Высокая стоимость.
Пул флэш-памяти –
выделенный блок или
5. Скорость передачи данных значительно выше.
несколько блоков 6. Невозможность восстановить утерянные данные после формати-
памяти. рования.
7. Не требуется дефрагментация.
8. Небольшой объем по сравнению с HDD-диском.
Интерфейс
9. Беззвучная работа.
подключения
SSD-носителя –
10. Более выносливы в плане температуры, ударов и вибраций по
способ соединения сравнению с HDD-дисками.
между носителем и 11. Небольшое энергопотребление.
контроллером.

Строение CD-R диска


Основу любого оптического диска составляет прозрач-
ная бесцветная подложка, изготовленная из прочного
пластика (поликарбоната).

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


на так называемый активный слой в виде последова-
тельности нулей и единиц. В процессе записи лазерный
Основа
луч оставляет на активном слое след (пит или впадина),
Активный слой
который затем можно прочитать с помощью лазера
Отражающий слой
Защитный слой меньшей мощности, чем при записи.

Отражающий, который отражает луч лазера на считывающее


устройство. Чаще всего его изготавливают из алюминия.
Далее на отражающий слой наносится защитный слой.

14
Информация считывается с рабочей стороны дис- спиральная поверхность
ка через прозрачную основу. дорожка
DVD-диски могут иметь два активных слоя. впадина
(пит)
Активный слой – это тонкий слой органичес­кого
красителя, который под действием высокой тем-
пературы лазера образует темные непрозрачные
области, которые при считывании интерпретируют-
ся как нули. Области, не подвергшиеся воздействию
лазера, соответствуют единице. У перезаписываемых
оптических дисков, а также Blu-ray дисков активный
слой выполнен из специального сплава.
Накопители на
ЗАДАНИЕ 3. Используя интернет-ресурсы, исследуй различия между оптичес­ оптических дисках –
кими носителями, представленными на схеме. Информацию представь в тетради вид носителей
в виде таблицы. информации, на
которых информация
записывается
ОПТИЧЕСКИЕ НОСИТЕЛИ и читается с помощью
лазера.

СD DVD Blu-ray
Знаешь ли ты?
Первый CD-диск был соз-
дан в 1979 году компаниями
Для однократной
Только Для многократной Philips и Sony. Изначально
записи и многократ­ного
для чтения записи такой диск мог вместить до
чтения 650 Мб информации или 74
минуты аудио. Есть предпо-
CD-ROM CD-R CD-RW BD-R ложение, что разработчики
учитывали объем так, чтобы
DVD-ROM DVD-R DVD-RW BD-RE на диске поместилась 9 сим-
фония Бетховена, которая
длилась 74 минуты. На тот
момент самое популярное
музыкальное произведение
в Японии (по результатам
ПРОВЕРЬ СЕБЯ специального опроса).

1. Объясни принцип работы SSD-накопителя.


2. Назови преимущества и недостатки SSD-накопителя.
3. Опиши назначение контроллера в SSD-накопителе.
4. Перечисли, из каких частей состоит оптический диск.
5. Объясни принцип записи информации на оптический носитель.
6. *На какие характеристики необходимо обратить внимание при покупке
SSD-накопителя?

15
Виды оперативной памяти
1.4
Из курса 8 класса ты уже знаешь, что оперативное запоминающее
устройство (ОЗУ), или оперативная память, является энергозависимой
памятью. После выключения компьютера данные и инструкции, храня-
Какой тип оперативной щиеся в ОЗУ, теряются. ОЗУ предназначена для временного хранения
памяти выбрать? данных и используется для хранения операционной системы и любых
документов, программ, которые работают.
Содержимое ОЗУ можно изменить в любое время, просто перезаписав
его другими данными и/или инструкциями.
Чем больше оперативная память компьютера, тем больше данных и
программ он может хранить одновременно. Оперативная память также
может быть легко обновлена в отличие от других видов внутренней па-
мяти.
Оперативную память иначе называют «произвольный доступ», по-
скольку данные могут храниться и быть доступны из любой части памя-
ти. Состоит ОЗУ из ячеек памяти, где каждая ячейка имеет собственный
адрес, другими словами, оперативная память представляет собой массив
пронумерованных ячеек.
Адресация памяти –
ЗАДАНИЕ 1. Из представленного списка характеристик назови те, которые
способ доступа
относятся к:
к данным, хранящимся
в ячейках памяти. А) ОЗУ;
В) ПЗУ.
1. Энергонезависима.
2. Используется для чтения и записи информации.
3. После выключения компьютера информация не изменяется.
4. Используется только для чтения.
5. Энергозависима.
6. Служит для хранения программ начальной загрузки компьютера и тести-
рования его узлов.

По мере того, как развивались компьютеры, развивалась и память


компьютера.
На схеме (рис. 1) представлены поколения устройств, память устройств
и их изобретатели.

Аналитическая машина Бэббиджа


Перфокарта,
Жозеф Жаккар 1 поколение компьютеров
Магнитный барабан (drum memory),
Густав Таушек
2 поколение компьютеров
Память на магнитных сердечниках,
3-4 поколения компьютеров
Джей Форрестер
Микросхемы
DRAM с одним транзистором,
Роберт Деннард;
SRAM, Джон Шмидт
Рис. 1
16
ЗАДАНИЕ 2
1. По схеме проследи историю развития внутренней памяти компьютера.
2. Используя интернет-ресурсы, узнай, в каком году были изобретены: RAM
– магнитный барабан;
– память на магнитных сердечниках;
– память на основе микросхем; SRAM DRAM
– *флэш-память.

В современных компьютерах используются полупроводниковые моду-


ли памяти с произвольным доступом. Оперативную память делят на два линия адреса
основных типа: динамическую (DRAM) и статистическую (SRAM).
DRAM (Dynamic Random Access Memory) память состоит из ячеек,
транзистор
в каждой из которых можно хранить определенный объем данных.
Ячейка памяти представляет один бит данных. Другими словами, это

линия данных
транзистор и конденсатор, которые соединены в пару для создания ячей-
ки памяти. Конденсатор содержит бит информации – 0 или 1. Транзистор
действует как переключатель, который позволяет схеме управления на конденсатор
микросхеме памяти считывать конденсатор или изменять его состояние
(рис. 2).
DRAM (англ. Dynamic Random Access Memory – динамическая память) –
тип энергозависимой полупроводниковой памяти с произвольным до- Рис. 2. Схема ячейки
памяти DRAM
ступом к данным (возможностью доступа к данным, хранящимся в про-
извольных ячейках памяти).
Конденсатор – это маленький сосуд, способный хранить электроны.
1 – в ячейке памяти конденсатор заполнен электронами; 0 – опусто-
шается.
Основной недостаток конденсатора – это утечка. В течение нескольких
миллисекунд конденсатор становится пустым. Поэтому, чтобы динами-
ческая память работала, либо центральный процессор, либо контроллер Конденсатор –
памяти должны зарядить все конденсаторы, удерживающие единицу, это устройство,
которое способно
прежде чем они разрядятся. Для этого контроллер памяти считывает
накапливать в себе
память и затем записывает ее обратно. Эта операция обновления проис-
заряд электрического
ходит автоматически тысячи раз в секунду. тока и передавать его
Оперативная память представлена модулем из микросхем и устанав- другим элементам
ливается в специальный разъем на материнской плате. в электроцепи.
При выборе ОЗУ необходимо учитывать не только основные характе-
ристики (объем и время доступа к данным), но и тип модуля ОЗУ, который
должен соответствовать специальному разъему на материнской плате.
SIMM и DIMM – это типы разъема памяти.
SIMM – Single In-line Memory Module (односторонний модуль памяти,
одностороннее расположение выводов). SIMM – это устаревший стандарт
модулей памяти DRAM, который больше не используется. SIMM имеет 72
контакта для подключения к материнской плате и поддерживает 32-бит-
ную передачу данных.
DIMM – Dual In-Line Memory Module (двусторонний модуль памяти,
двустороннее расположение выводов). В модуле DIMM контакты распо-
ложены с двух сторон платы.
В современных компьютерах используются DIMM модули, которые
поддерживают 64-битную передачу данных.
17
Различные материнские платы могут поддерживать разные типы архи-
тектур памяти. Типы DIMM архитектуры имеют от одного до трех вырезов
на модуле памяти. Они предотвращают от неправильного выбора и не-
правильной установки модулей памяти на материнскую плату.

ЗАДАНИЕ 3. 1. Рассмотри рисунок и определи сходства и различия между


архитектурами DRAM-памяти.
2. Могут ли на одной материнской плате использоваться различные архитектуры?
Почему?

DDR DDR2
184 контакта 240 контактов

DDR3 DDR4
240 контактов 260 контактов

Знаешь ли ты? ЗАДАНИЕ 4. 1. Используя интернет-ресурсы, исследуй этапы развития типов


Тайминг оперативной па- DRAM-памяти.
мяти – показатель задерж- 2. Назови основные характеристики, которые изменились в процессе развития
ки данных при их переносе типов памяти компьютера (DDR-DDR4).
между модулями RAM. Чем
он ниже, тем быстрее пере-
носится информация.
ПРОВЕРЬ СЕБЯ
1. Назови память, которая использовалась в аналитической машине Чарльза
Бэббиджа.
2. Перечисли типы памяти, на которые делится оперативная память.
3. Объясни особенности DRAM-памяти.
4. Определи роль конденсатора и транзистора в работе DRAM.
5. Сравни технические характеристики двух типов DRAM-памяти. Сформу-
лируй преимущества памяти типа DDR4.

Описание DDR3 DDR4


Скорость передачи данных 800-2133 Мбит/с 1600-3200 Мбит/с
Напряжение 1,5 В 1,2 В
Максимальный объем
до 32 Гб до 128 Гб
памяти
6. Олжасу необходимо купить игровой компьютер. Назови характеристики
внутренней памяти компьютера, которые необходимо учитывать при
покупке ПК.

18
Виды оперативной памяти
1.5
SRAM (Static Random Access Memory) – статистическое оперативное
запоминающее устройство. Это форма полупроводниковой памяти, ши-
роко используемая в электронике, микропроцессорах и общих вычис- Чем динамическая память
лительных системах. отличается от статистичес­
кой?
В SRAM есть две ключевые особенности:
1) статическая память;
2) произвольный доступ.
Данные хранятся статически – это означает, что они хранятся в по-
лупроводниковой памяти без необходимости обновления, пока питание
подается на память.
Произвольный доступ – данные с ячеек памяти могут записываться
или считываться в любом порядке.
SRAM-память основана на работе триггеров. Триггер – это элемент на
транзисторах, может находиться в двух состояниях – 0 и 1 – и изменять
свое состояние по входному сигналу. Триггер служит ячейкой памяти,
который хранит один бит информации. Любой триггер можно создать из Триггер – ячейка
трех основных логических элементов (И, ИЛИ, НЕ). оперативной памяти,
простейшее устройство,
SRAM использует базовые ячейки памяти со встроенными механиз-
которое выполняет
мами обратной связи, которые содержат сохраненное значение, пока логическую функцию
устройство включено. с обратной связью.
Основным примером механизма обратной связи является пара инвер-
торов, которые связаны перекрестно, так что выход одного инвертора
становится входом другого инвертора.
Схема для отдельной ячейки SRAM-памяти обычно содержит четыре Q
транзистора в виде двух инверторов с перекрестными связями.
В этом формате схема имеет два стабильных состояния, которые соот- Механизм обратной
ветствуют логическим состояниям 0 и 1. связи
В дополнение к четырем транзисторам в базовой ячейке памяти
требуются еще два транзистора для контроля доступа к ячейке памяти во
Транзистор –
время операций чтения и записи. Всего получается шесть транзисторов полупроводниковый
(6Т). прибор,
Ячейки расположены в виде матрицы, каждая ячейка адресуется ин- предназначенный
дивидуально. для усиления
электрического тока
WL Совокупность транзисторов
и управления им.
Vdd занимает больше места, чем кон-
денсаторы, из которых состоит
динамическая память, что ста-
новится причиной ограничения
памяти в объеме, следовательно,
и в цене SRAM-память является
дорогой памятью. Триггеры не
bitline

bitline

нуждаются в обновлении, пото-


му что переключение триггера из

19
одного состояния в другое происходит очень быстро. Это и позволяет
SRAM-памяти работать наравне с процессором.

ЗАДАНИЕ 1. Выбери верное утверждение. Исправь ложное на истинное


утверждение.

№ Утверждение Истина Ложь


1 SRAM-память является статической памятью.
2 SRAM-память является медленной памятью.
SRAM-память имеет две ключевые особенности:
3
статическая память и последовательный дос­туп.
При произвольном доступе данные из ячеек памяти могут записываться
4
или считываться в строгом порядке.
5 В базовой ячейке памяти требуются еще два дополнительных транзистора.
6 Каждая ячейка SRAM-памяти адресуется индивидуально.
Пример механизма обратной связи: выход одного инвертора становится
7
входом другого инвертора.

SRAM поддерживает постоянную передачу данных без необходимости


периодического обновления модуля памяти. Поэтому модули SRAM пре-
доставляют более быстрый доступ к данным и используются как кэш-па-
мять. Другими словами, кэш-память используется для сокращения вре-
мени доступа к данным из основной памяти.
Кэш-память – это
Обычно она интегрируется в материнскую плату и напрямую встроена
компьютерная память
небольшого размера,
в процессор или основную оперативную память (RAM).
которая обеспечивает
высокоскоростной Кэш-память
доступ к данным Центральный Основная Внешняя
процессор память память
процессора и хранит
часто используемые
компьютерные
Устройство управления (УУ) центрального процессора автоматически
программы,
приложения и данные.
проверяет кэш-память на наличие инструкций перед запросом данных
из основной памяти. Это экономит затрачиваемое время на получение
инструкций и данных из ОЗУ. Передача данных или инструкций из кэш-па-
мяти и обратно занимает меньше времени, чем передача из основной
памяти.
Кэш-память разделяют на три основных уровня: первый (L1), второй
СКОРОСТЬ ЦП
(L2) и третий (L3).
ОБЪЕМ Кэш-память первого уровня – это самая быстрая память из трех уров-
L1
ней. Обычно содержит данные, которые чаще всего используются про-
L2
цессором.
L3
Второй уровень кэш-памяти медленнее, чем кэш L1, но больше по
ОЗУ
размеру.
Кэш-память 3-го уровня – это самая большая кэш-память, а также самая
медленная.
Для того чтобы узнать объем кэш-памяти компьютера, необходимо
выполнить следующие действия:
Диспетчер задач (Ctrl+Shift+Esc) → Производительность.

20
ЗАДАНИЕ 2. 1. Заполни пропуски. Используй слова для справок.
А. Кэш-память – это … память процессора. ЦП Intel(R) Core(TM) i5-3470 CPU @ 3.20GHz
Используется % 100%
В. Значения из кэш-памяти извлекаются напрямую, без обращения
к … памяти.
С. Кэш используется в качестве буфера для ускорения обмена данными
между процессором и ….
Слова для справок: оперативная память, основная память, высокоскорост- 60 секунд
ная память. Использование Скорость Базовая скорость: 3,20 ГГц
54% 3,40 ГГц
2. Подсчитай общий объем кэш-памяти на изображении справа.
Сокетов: 1
Ядра: 4
Процессы Потоки Дескрипторы Логических процессоров: 4

3. Определи взаимосвязь между объемом и скоростью доступа к данным 181 2016 71391 Виртуализация:
Поддержка Hyper-V:
Отключено
Да

для каждого уровня кэш-памяти.


Время работы Кэш L1: 256 КБ
5:03:56:44 Кэш L2: 1,0 МБ

4. Определи объем кэш-памяти своего компьютера.


Кэш L3: 6,0 МБ

ЗАДАНИЕ 3. 1. Перечисли различия между SRAM и DRAM-памятью.


2. Назови преимущества и недостатки SRAM-памяти. Рис. 1.

Статистическая память Динамическая память


SRAM DRAM
Каждая ячейка хранит бит в схеме из Каждая ячейка хранит бит в схеме из
транзисторов. транзистора и конденсатора.
Используется в качестве кэш-памяти. Используется в качестве ОЗУ.

Требуется периодическое обновление


Не требует обновления данных. данных для их хранения.
Пока на SRAM есть питание, она будет Процесс обновления данных
хранить данные. увеличивает энергопотребление
по сравнению с SRAM.
Занимает больше места, быстрее, по- Занимает меньше места, медленнее,
требляет меньше энергии, дороже, чем потребляет больше энергии,
DRAM. дешевле, чем SRAM.

Статистическую память делят на три типа: синхронная, асинхронная,


конвейерная.
Основное различие между асинхронным и синхронным типами памяти
заключается в доступе к ячейкам памяти. В асинхронном типе операции ЗАДАНИЕ 4. Исследуй
чтения и записи могут произойти в любой момент времени. В синхрон­ конвейерный тип стати-
ном – все операции чтения и записи синхронизируются с тактовым сиг­ ческой памяти.
налом. Другими словами, операция начинается в ожидаемое время.

ПРОВЕРЬ СЕБЯ
1. Объясни особенность SRAM-памяти. 6. Выбери истинное утверждение:
2. Определи роль транзистора в работе SRAM. A. SRAM – статистическая память, а DRAM –
динамическая.
3. Назови основное отличие памяти SRAM от B. SRAM медленнее по сравнению с DRAM.
DRAM. C. SRAM потребляет больше энергии, чем
4. Перечисли недостатки SRAM-памяти. DRAM.
D. SRAM использует больше транзисторов на
5. Назови основное преимущество SRAM-памяти.
бит памяти по сравнению с DRAM.
E. SRAM дороже, чем DRAM.
7. Объясни, почему SRAM-память используется в качестве кэш-памяти.
8. Перечисли различия трех уровней кэш-памяти.

21
Подводим итоги
1. Назови устройства внутренней памяти компьютера.
2. Перечисли основные характеристики памяти компьютера.
3. Объясни, как быстродействие памяти зависит от ее объема.
4. Установи соответствие типа носителя и принципа его работы.

Накопитель информации Принцип записи


А. Принцип записи информации заключается в намагничивании
1. Твердотельный накопитель
участков носителя.
2. Магнитный накопитель В. Принцип работы основан на использовании лазера.
С. Накопитель использует флэш-память (микросхемы) для хране-
3. Оптический накопитель
ния данных.

5. Перечисли части жесткого диска (рис. 1).


2

1
Рис. 1.

3
6
4

7 5

8
9

6. Установи соответствие между словами и буквами на рис. 2.


1. Кластер.
2. Дорожка.
3. Сектор.
А

В
Рис. 2.

22
7. Назови различия между понятиями «кластер» и «сектор».
8. Опиши принцип работы твердотельных накопителей.
9. Сформулируй преимущества SSD-дисков.
10. Объясни роль контроллера в SSD-диске.
11. Выбери верные утверждения.
a) SSD-диски требуют раскрутки;
b) у SSD-дисков высокая скорость доступа к данным;
c) SSD-диски стоят дешевле по сравнению с магнитными жесткими дисками;
d) у SSD-дисков высокая скорость передачи данных;
e) для SSD-дисков не требуется дефрагментация.

12. Сформулируй определение для SRAM/DRAM-памяти и перечисли их характеристики.

Характеристика SRAM DRAM


Определение
Скорость выше
Размер площади больше
Постоянное электропитание для сохранения данных
Использует больше транзисторов
Дороже по цене
Используется в основной памяти
Используется в кэш-памяти

23
Модель локальной сети клиент – сервер

клиент – клиент

Звезда

Проводная сеть Кольцо


Топология сети

Шина

Mesh
LAN
Коммутатор
Устройства локаль-
ной сети Концентратор

Рабочая станция
Беспроводная сеть

NIC (network interface card)

MAC-address
КОМПЬЮТЕРНАЯ СЕТЬ
HTTP

HTTPS

SMTP Протоколы

POP3

IMAP

FTP
WAN

Прикладной уровень
ТСР/ІР
Транспортный уровень

Сетевой уровень

Канальный уровень

IPv4 ІР address Маршрутизатор

IPv6

24
2. СЕТЬ И БЕЗОПАСНОСТЬ

● Почему необходимо «защищаться» Ты уже знаешь:


от киберугроз?
● Сколько времени потребуется, чтобы ● виды вредоносных программ;
взломать твой пароль? ● топологию сетей;
● Какой компьютер выбрать ● архитектуру сетей.
путешественнику?
● Как устроена локальная сеть? Ты узнаешь:
● Проводная или беспроводная локальная ● как объединить проводную и беспроводную
сеть? сети;
● Как узнать «физический адрес» ● как узнать «физический адрес» компьютера;
компьютера?
● как осуществляются соединение и обмен
● Какие устройства используются для данными между двумя компьютерами в сети.
отправки данных в сети?
● Какие сетевые устройства нужны для Межпредметная связь
подключения к глобальной сети?
В данном разделе ты подробнее узнаешь о сете-
● Как стать анонимным пользователем
вых технологиях, способах защиты от киберугроз.
сети?
Сможешь назвать характеристики компьютерной
● Как передаются данные через сеть? системы для определенного пользователя.
● Как информация в сети находит
получателя?
● Какие существуют правила отправки
сообщений?
● Чем различаются протоколы HTTP
и HTTPS?
● Как протокол TCP/IP управляет
передачей данных?

25
2.1 Управление кибербезопасностью
В наши дни киберпреступления создают множество проблем для обще-
ства. Только за последние несколько лет были украдены данные миллио-
Почему необходимо «за- нов кредитных карт. Взломы случаются благодаря ошибкам и уязвимостям
щищаться» от киберугроз? в программном и аппаратном обеспечении. Кибератаки обычно нацелены
Сколько времени потре- на доступ, изменение или уничтожение конфиденциальной информации,
буется, чтобы взломать вымогательство денег у пользователей.
твой пароль? Основные области кибербезопасности:
1) информационная безопасность;
2) сетевая безопасность.
Информационная безопасность защищает данные пользователей
от несанкционированного доступа и кражи личных данных.
Основные методы, используемые для этого:
а) идентификация, аутентификация и авторизация пользователя;
б) криптография;
в) антивирус.
Сетевая безопасность включает в себя действия по обеспечению
защиты, надежности, целостности и безопасности сети.
Компоненты сетевой безопасности включают в себя:
а) антивирус;
б) брандмауэр,
в) системы предотвращения вторжений (IPS).
Как совершаются киберпреступления?
Вирусы
Из курса информатики за 8 класс ты
Киберугрозы
узнал, что существуют специальные ком-
пьютерные программы-вирусы, которые
могут внедряться в код других программ
и распространять свои копии, тем самым Вирусы Фишинг DDoS
приносить вред компьютерной системе.
Кибербезопасность –
меры защиты систем, ЗАДАНИЕ 1. 1. Объясни, как вирусы распространяются между компьютерами.
сетей и програм­
2. Объясни различия между вирусами, червями и троянами.
мных приложений от
3. Опиши последствия, к которым могут привести компьютерные вирусы.
цифровых атак.
4. Назови ряд мер, которые помогут тебе защитить компьютерную систему
от вирусов.

Фишинг
Идентификация – Что такое фишинговая атака?
процесс распознавания Цель фишинга заключается в краже конфиденциальных данных, таких
или установления
как данные для входа в систему (логин и пароль), номера кредитных карт
личности по его
идентификатору (ID). и т.д., и использовании их в своих целях.
Мошенники создают поддельный веб-сайт, который выглядит, как
обычный сайт. Попытки фишинга чаще всего начинаются с того, что элек-
тронное письмо пытается получить конфиденциальную информацию по-
средством какого-либо взаимодействия с пользователем, например, путем
нажатия на вредоносную ссылку или загрузки зараженного вложения,

26
получения скидки при покупке и т.д. Большое количество злоумышлен-
ников используют фишинговые методы из-за того, что они эффективны
и просты в использовании. Прежде чем вводить личные данные на
сайте, убедись, что в адресной строке браузера указан верный адрес.
ЗАДАНИЕ 2. 1. Рассмотри примеры ссылок: nis.edu.kz, w-google.com, vkrontakte.
com, edmodo.com.
2. Обсуди с одноклассником следующие вопросы:
1) Что такое фишинговые ссылки?
2) Стоит ли переходить по таким ссылкам?
3) К чему может привести переход по данным ссылкам? Вид Опи- Способ
4) Как можно обезопасить себя от фишинговых писем? угрозы сание защиты
3. Заполни таблицу в тетради. Вирусы
Фишинг
ЗАДАНИЕ 3. Рассмотри ситуации и ответь на вопросы.
1. Тебе пришло письмо на электронную почту следующего содержания:
«Для подтверждения того, что Вы являетесь настоящим пользователем Facebook,
перейдите по ссылке https://Fasebook.com/id45187309». Стоит ли переходить по
данной ссылке? Обоснуй свой ответ.
2. Мама Саши забыла выйти из почты на домашнем компьютере.
Играя на компьютере, Саша решил просмотреть почту мамы и увидел новое
письмо от неизвестного отправителя, в котором говорилось о начислении бо-
нусов в онлайн-магазине http://technocom-bonus.online. Саша не задумываясь
перешел по ссылке и заполнил в форме личные данные, включая логин, пароль Аутентификация –
и данные бонусной карты. процедура проверки
1) Что не следовало делать Саше? Почему? подлинности
2) Какие последствия могут возникнуть в результате действий Саши? Обоснуй пользователя, процесса
свой ответ. или устройства.
3) Какому виду угрозы был подвергнут компьютер Саши? Механизм сравнения
4) Предложи несколько советов, которые помогут защитить систему от такого входящего запроса с
вида угроз. набором имеющихся
3. Не так давно в прокат вышла новая компьютерная игра «IQ-game». В учетных данных.
компьютерном магазине данная игра продавалась по очень высокой стоимости,
поэтому Куаныш решил скачать ее в Интернете. В сети, перейдя по первой ссылке,
Куаныш увидел надпись: «Игра «IQ-game» бесплатная, и скачать ее можно по
Авторизация –
ссылке ниже».
предоставление
После скачивания файла на компьютер Куаныш обнаружил потерю некоторых
определенных прав для
программ и системных файлов.
пользователя.
1) Что произошло при скачивании файла на компьютер?
2) Что не следовало делать Куанышу?
DDoS-атака
С помощью вирусов хакеры могут управлять множеством компьюте-
ров, атаковать и отключать веб-сайты. Это называется распределенная
атака типа «отказ в обслуживании» (Distributed Denial of Service, сокр.
DDoS). При такой атаке хакеры перегружают серверы большим коли-
чеством запросов, которые идут одновременно с многих компьютеров.
Знаешь ли ты?
Сервер может обработать ограниченное количество запросов в день,
но если их количество увеличивается, сервер перегружается и пере- Наиболее популярный па-
роль «qwerty» возглавляет
стает работать. В настоящее время злоумышленники производят атаку топ 25 самых популярных
на потенциально уязвимые страницы сайта, т.е. скрипты, расходующие паролей.
большое количество ресурсов и предоставляющие большие по размеру
27
ответы. Для предотвращения таких видов атак сетевые администраторы
используют комплекс защитных мер: анализируют вид трафика, который
вызвал перегрузку сети, блокируют адреса такого трафика, используют
специальные сервисы защиты.
Признаки DDoS-атаки:
• журнал действий пользователей сервера содержит большое ко-
личество запросов одного типа из разных источников к одному сервису;
• резкое увеличение входящего трафика;
• многократное повторение однотипных действий пользователей на
одном и том же ресурсе (переход на веб-страницу, скачивание файла);
• некорректная работа сервера – «зависание», некорректное завер-
шение работы и т.д.
Атаки на пароли
Другим видом кибератак является атака на пароли пользователей.
Атаки на пароли Хакер может получить доступ к информации о паролях пользователя,
используя социальную инженерию, угадывая или получая доступ к базе
паролей. Злоумышленник может «угадать» пароль случайным или систе-
Полный перебор матическим образом.
(англ. brute force) – Помимо двух описанных выше способов, существует специальное
злоумышленник про-
веряет все возможные
программное обеспечение – keylogger, которое относится к програм-
пароли, пока не будет мам-шпионам. Назначение этой программы – сохранять и передавать ло-
найден правильный. гины и пароли учетных записей пользователей, кошельков и т.д. Keylogger
фиксирует все нажатия клавиш и передает хакеру конфиденциальную
Полный по словарю
информацию, в том числе платежные данные пользователя.
(англ. dictionary attack) – Каким должен быть надежный пароль?
словарь общих паролей Надежный пароль должен содержать не менее 8 символов, состоять
используется для из комбинации букв различных регистров, цифр и спецсимволов.
получения доступа Также не рекомендуется использовать предыдущий пароль, одинако-
к компьютеру. вый пароль для различных аккаунтов, сообщать кому-либо свой пароль,
хранить пароль в доступном для всех месте, сохранять пароль в брау­зере.

ЗАДАНИЕ 4. 1. Рассмотри несколько вариантов паролей и назови наиболее


надежный из них.
А. 123QWERTY B. iloVeFootball C. Passw0rd# D. F#$9Dsltr12&
ЗАДАНИЕ 5. И з у ч и
по­нятие шифрование и 2. Нуржан решил использовать номер своего телефона в качестве пароля
объясни различие между от личного кабинета в онлайн-банке.
симметричным и асим- 1) Как ты считаешь, является ли такой пароль надежным?
метричным шифровани- 2) Какой пароль ты бы посоветовал использовать Нуржану? Почему?
ем. 3. *Как проверить, насколько твой пароль надежен?

ПРОВЕРЬ СЕБЯ
1. Назови основные угрозы сети. 4. Назови методы защиты компьютерной системы
от вирусов.
2. Объясни принцип фишинговой атаки.
5. Опиши признаки DDoS-атаки.
3. Приведи пример надежного пароля.
6. *Обсуди методы обеспечения собственной ин-
формационной безопасности.

28
Компьютерные системы
2.2
В наши дни компьютеры играют большую роль в жизни человека,
потому что делают ее проще. В каждом современном офисе есть компью-
теры, которые помогают людям работать быстрее. Студенты и школьники Какой компьютер выбрать
используют компьютеры для обучения. путешественнику?

ЗАДАНИЕ 1. 1. Обсуди с одноклассником типы компьютерных систем: ноутбук,


нетбук, персональный компьютер, моноблок, планшетный ПК, карманный ПК,
Компьютерная
портативная игровая система, смартфон.
система – система,
2. Какое из устройств ты используешь для обучения, развлечений или игр?
которая включает в
3. Чем отличаются эти устройства друг от друга?
себя все аппаратное
4. Как ты считаешь, сколько всего существует видов компьютерных систем?
и программное
5. Дай определение компьютерной системе.
обеспечение для
ЗАДАНИЕ 2. Существуют различные виды компьютерных систем: выполнения задач
пользователей.
a) персональный компьютер;
b) планшет;
c) суперкомпьютер;
Знаешь ли ты?
d) моноблок;
e) сервер и другие. Суперкомпьютер Tianhe-2
Каждое из этих устройств имеет свои характеристики и назначение. находится в Национальном
суперкомпьютерном центре
Подбери устройство в соответствии с его описанием.
в Гуанчжоу, Китай, имеет
3,12 миллиона ядер (33,86
Описание и характеристики устройства петафлопса).
1. Это компьютер, который предоставляет свои ресурсы другим компью-
терам. Примером таких компьютеров могут служить компьютеры, на которых
Википедия хранит свою энциклопедию. Этот компьютер находит страницу,
которую вы ищете, и отправляет ее вам.
2. Компьютер представляет собой монитор, собранный с системным блоком
в одном корпусе. По размерам и весу он несильно отличается от обычного
ЖК-монитора, но при этом представляет собой вполне полноценный компью-
тер. Он подходит для решения повседневных задач и занимает меньше места
по сравнению с персональным компьютером.
3. Это очень дорогие, очень быстрые и самые мощные компьютеры в мире,
большие по размеру. Эти устройства оптимизированы для выполнения несколь- FLOPS (от англ.
ких программ с очень высокой скоростью и состоят из тысяч процессоров. Floating point Opera­
Выполняют до десяти триллионов индивидуальных вычислений каждую секунду. tions Per Second) –
Они используются в научно-исследовательских центрах. внесистемная единица,
показывающая,
4. Это портативный компьютер, который использует сенсорный экран в ка- сколько операций с
честве основного устройства ввода. Совмещает в себе качества ноутбука и плавающей запятой
смартфона. Большинство устройств такого типа немного меньше по размеру и в секунду выполняет
весят меньше, чем средний ноутбук. супер­компьютер.
Мэйнфреймы во многом похожи на суперкомпьютеры, но основное 1 петафлопс –
их отличие заключается в том, что суперкомпьютер использует всю свою 1015 операций
мощь, чтобы сосредоточиться на очень небольшом количестве задач, в секунду
(1 000 000 000 000 000,
в то время как мэйнфрейм предназначен для выполнения миллионов
один квадриллион).
операций одновременно. В силу своего характера мейнфреймы часто
29
используются крупными организациями для массовой обработки дан-
ных, таких как перепись населения, статистика отрасли и потребителей,
планирование ресурсов предприятия или обработка транзакций.
Противоположный мэйнфрейму – мини-компьютер, который позволяет
пользователю хранить данные и выполнять простые команды и задачи.
В основе работы мини-компьютера – микроконтроллер. Микрокон-
троллер – это компьютер на одной микросхеме, который предназначен
для управления различными электронными устройствами. Многие такие
системы известны как встроенные системы. Например, компьютер в ав-
томобиле – это встроенная система, или микроконтроллер Arduino.

ЗАДАНИЕ 3. Обсуди с одноклассником назначение мэйнфрейма, мини-


ЗАДАНИЕ 5. С о з д а й компьютера, настольного компьютера, ноутбука и смартфона.
буклет с описанием об-
ласти использования и Как ты считаешь, почему существует такое большое количество различ-
техни­чес­кими характе- ных компьютерных систем? Все дело в том, что компьютеры, как правило,
ристиками для одной из классифицируют по размеру и мощности, а задачи, которые пользователи
следующих компьютер- решают с помощью компьютерных систем, разнообразны:
ных систем (рис. 1). • доступ и хранение информации;
• общение с помощью компьютера;
Компьютерные • развлечение и досуг;
системы • обучение;
• покупки в Интернете и т.д.
Нетбук Так, обычный смартфон может помочь найти или сохранить данные,
передать файлы, а вот для игры с друзьями необходимы более мощный
Ultra-Mobile PC
компьютер или специальная игровая приставка. Компьютеры с большей
Ультрабук мощностью используются для решения более сложных задач.
Неттоп ЗАДАНИЕ 4. Существует большое количество пользователей компьютерных
Моноблок систем: инженеры, банковские сотрудники, путешественники, бизнесмены и т.д.
Обсуди с одноклассником, какая компьютерная система подойдет для профессий
Суперкомпьютер из таблицы ниже и обоснуй свой ответ. Заполни таблицу в тетради.
Планшет Профессия Компьютерная система Обоснование
Инженер автомобильного завода
StickPC
Путешественник
Смартфон Учитель
Таксист
Рис. 1 Научный сотрудник метеостанции

ПРОВЕРЬ СЕБЯ
1. Объясни, почему путешествующему журналисту 3. Опиши компьютерную систему, которую ты
достаточно работать на ноутбуке, а архитектору будешь использовать:
необходим более мощный компьютер. а) для поиска информации в сети Интернет;
b) для сетевой игры с друзьями;
2. Назови различия между суперкомпьютером и
c) для написания программы на объектно-
мэйнфреймом.
ориентированном языке.
4. Перечисли основные компоненты компьютерной системы.
5. Назови отличия ультрабука от нетбука.

30
Принцип организации локальной сети
2.3
В 7 и 8 классе ты изучил основные понятия компьютерной сети. И зна-
ешь, что компьютерная сеть – это совокупность двух или более компью-
теров, соединенных каналами передачи информации. Когда компьютеры Как устроена локальная
подключены к сети, люди могут обмениваться файлами или ресурсами, сеть?
иметь общий доступ к устройствам, программам, базам данных и т.д.

ЗАДАНИЕ 1. Марат работает учителем информатики в школе. Для проведения


практического задания он подготовил файлы, которые необходимо разослать
всем учащимся.
1. Как ты считаешь, какой из способов передачи данных будет более эффектив-
ным: передача данных с помощью flash-накопителя или компьютерной сети?
Обоснуй ответ.
2. Обсуди с классом преимущества компьютерной сети.
LAN
3. Назови недостатки компьютерной сети.
Знаешь ли ты?
Для того, чтобы системному администратору настроить работу сети, ему Существует специальность
в первую очередь необходимо выбрать способ объединения устройств «сетевой администратор» –
в сети. человек, ответст­венный за
работу локальной сети. Он
Ниже приведены топологии компьютерных сетей.
обеспечивает контроль фи-
зической связи, настройку
ЗАДАНИЕ 2. Рассмотри характеристики и распредели их в соответствии с сетевого оборудования,
каждой топологией. об­щего дос­тупа к ресурсам.

Топология «Звезда» Топология «Шина» Топология «Кольцо»

Сеть легко настроить. Каждый узел подключен Новые узлы могут быть легко
к двум другим устройствам. добавлены в сеть.
Каждый узел в сети получает
Имеет более высокую
все данные, отправленные по Требуется меньше кабеля
производительность,
сети, – это угроза безопасности. по сравнению с топологией
поскольку сообщение
«Звезда», что делает установку
Сложно найти неисправность, передается только
дешевле.
вся сеть выходит из строя, если предполагаемому получателю.
поврежден центральный кабель. Данные в сети перемещаются Каждый узел подключен
в одном направлении, каждый отдельно, поэтому отказ одного
Если центральный компьютер узел принимает данные по узла или его канала (среды
выйдет из строя, вся сеть очереди, пока узел назначения передачи) не влияет на другие
перестанет работать. не примет его. узлы.
31
Топология Mesh, или, другими словами, ячеистая сеть. В такой тополо-
Локальная сеть гии каждый узел имеет соединение со всеми остальными узлами в сети.
(Local Area Network, Настройка сети, в которой каждый компьютер и сетевое устройство
сокр. LAN) – взаимосвязаны друг с другом, что позволяет распределять большинство
компьютерная сеть,
передач, даже если одно из соединений прерывается. Эта топология обыч-
которая соединяет
компьютеры
но используется для организации беспроводных сетей.
Преимущества
на небольших
расстояниях. • Управляет большими объемами трафика, потому что несколько
устройств могут передавать данные одновременно.
• Отказ одного устройства не приводит к разрыву сети или передаче
данных.
WAN – более 1000 км • Добавление дополнительных устройств не нарушает передачу данных
(страна, континент)
между другими устройствами.
MAN – до 10 км Недостатки
(город) • Стоимость внедрения выше, чем в других сетевых топологиях, что
LAN – до 1 км делает этот вариант менее желательным.
(здание) • Построение и поддержание топологии сложно и отнимает много
PAN – времени.
квадратный метр • Вероятность избыточных подключений высока, что увеличивает за-
(один пользователь)
траты и снижает эффективность.
Локальная компьютерная сеть объединяет в рабочие группы до
нес­кольких десятков, сотен компьютеров для одной или нескольких
организаций.
ЗАДАНИЕ 3. О б с у д и
Создание и использование локальной сети вызвано необходимостью
недостатки локальных
компьютерных сетей. быстрого обмена различной информацией, одновременного использо-
вания программ, совместного использования ресурсов компьютеров и
ЗАДАНИЕ 4. И з у ч и оборудования, подключенного к сети.
принцип организации Преимущества локальных сетей:
гибридной топологии. • централизованное обслуживание и обновление ПО – сетевые
Определи ее преимуще- администраторы могут обновлять программное обеспечение по сети;
ства и недостатки. • централизованная безопасность – антивирусное программное
обеспечение и брандмауэры могут быть внедрены в сети, помогая защи-
тить пользовательские файлы от угроз;
• мониторинг пользователей – сетевые администраторы могут
отслеживать и ограничивать деятельность пользователей сети;
• уровни доступа – разным пользователям могут быть предоставлены
разные права доступа, что позволяет администраторам сети ограничивать
доступ к определенным файлам.

ПРОВЕРЬ СЕБЯ
HYBRID 1. Приведи пример организаций, которые используют локальную сеть.
2. Перечисли каналы связи. Объясни, в чем их отличие.
3. Назови особенности каждой топологии. Как ты считаешь, какая из то-
пологий наиболее подходит для организации локальной сети офиса?
Объясни, почему.
4. Существует два способа организации локальных сетей: «одноранговая
сеть» и «клиент-сервер». Объясни их особенности.

32
Принцип организации локальной сети
2.4
После того, как системный администратор определил количество
устройств в сети, способ организации сети, ему необходимо выбрать тех-
нологию подключения между компьютерами и схему построения сети Проводная или беспро­
для прокладки проводов, а также дополнительные сетевые устройства. водная локальная сеть?
Для организации локальной сети каждый компьютер должен обладать
Интернет
сетевым адаптером или сетевой картой.
Сетевые карты позволяют настольным и портативным компьютерам
подключаться к сети. Большинство современных компьютеров имеют
встроенную сетевую карту и беспроводную сетевую карту, что позволяет
Компьютер учителя
выбрать любой проводной или беспроводной метод подключения. Мо-
бильные устройства, планшеты, смартфоны имеют только беспроводную
сетевую карту, обеспечивающую беспроводное соединение.
Коммутатор
• Сетевая карта предлагает интерфейсный порт для проводного
соединения.
• Беспроводной сетевой адаптер обеспечивает радио-приемопере-
датчик для беспроводного подключения.

ЗАДАНИЕ 1. Сети могут быть классифицированы как проводные или беспро-


водные. Компьютеры учащихся
Илья, выполняя домашнее задание, допустил несколь- Локальная сеть
ко ошибок в утверждениях о беспроводной сети. Сетевая карта –
1) Найди и исправь ошибки. устройство, которое
провод­ная беспро­вод­ устанавливается на
2) Заполни таблицу. сеть ная сеть
материнской плате
1. Пользователи могут свободно перемещаться и оставаться на связи. и обеспечивает
2. Сложно добавить новые узлы, для этого необходимо останавливать работу подключение к сети.
всей сети.
3. Сигналы беспроводной связи имеют ограниченную дальность, обычно не
более 50 метров.
4. Скорость передачи данных в беспроводной сети быстрее, чем в проводных
сетях.
5. Пользователь привязан к конкретному месту.
6. Можно подключить несколько устройств без необходимости дополнительного
оборудования.
7. Соединение не такое стабильное, как у проводных сетей. Ethernet (от англ.
8. Беспроводная сеть более защищенная, чем проводная. ether – «эфир» и
network – «сеть») –
Преимущества Недостатки технология, которая
используется в
проводных локальных
сетях. Первоначальный
Ethernet и Wi-Fi – две наиболее распространенные технологии пере- принцип работы этой
дачи информации, используемые в локальных сетях. технологии – все
Ethernet – это сетевой протокол, который управляет передачей данных передаваемое одним
по проводной локальной сети. Технически это называется протоколом узлом одновременно
IEEE 802.3 (от англ. Institute of Electrical and Electronics Engineers). Прото- принимается всеми
кол развивался и улучшался с течением времени, и на сегодняшний день остальными.
скорость передачи данных – гигабит в секунду.

33
В настоящее время существуют три спецификации скорости передачи:
Знаешь ли ты? • классический Ethernet (10 Мбит/c);
Роберт Метклаф изобрел • Fast Ethernet (100 Мбит/c);
Ethernet в 1973 году для • Gigabit Ethernet (1 Гбит/c).
того, чтобы к одному лазер- Компьютеры могут устанавливать беспроводное соединение, если
ному принтеру подключить
у них есть беспроводной сетевой адаптер.
как можно больше компью-
теров. Беспроводная сеть использует беспроводные сигналы Wi-Fi для со­
е­динения узлов. Сигналы Wi-Fi используют радиочастоты в диапазонах
2,4 ГГц и 5 ГГц.
Беспроводной адаптер преобразует данные в радиосигнал, а беспро-
водной приемник декодирует их, чтобы компьютер мог их понять.

ЗАДАНИЕ 2. 1. Изучи характеристики радиочастот, используемых Wi-Fi в диа­


пазонах 2,4 ГГц и 5 ГГц.
2. Обсуди их различия.

Диапазон Площадь покрытия Скорость передачи данных Количество устройств


2,4 ГГц Большая площадь покрытия Низкая скорость передачи данных Большее количество
5 ГГц Меньшая площадь покрытия Скорость выше Меньшее количество

3. *Исследуй способы изменения диапазона на домашнем роутере.


Сетевой коммутатор –
устройство Каждый узел беспроводной сети имеет радио-приемопередатчик, кото-
предназначено для
рый позволяет ему подключаться к беспроводной точке доступа (Wireless
соединения нескольких
узлов компьютерной Access Point, сокр. WAP).
сети в пределах сети WAP могут быть физически подключены по проводам к сетевым устрой-
или нескольких частей ствам или беспроводным способом с другими WAP.
(сегментов) сети. Волновые полосы Wi-Fi могут быть разделены на каналы или под-
частоты. WAP используют несколько каналов, чтобы позволить многим
устройствам соединяться без проводов, не мешая их передаче друг другу.
WAP – устройство, ЗАДАНИЕ 3. Сигналы Wi-Fi представляют угрозу безопасности.
которое создает Назови угрозы безопасности и объясни, как можно решить проблемы с безо-
беспроводную пасностью.
локальную сеть обычно
в офисе или большом
здании. Точка доступа
подключается к
ПРОВЕРЬ СЕБЯ
проводному устройству
через кабель Ethernet 1. Приведи примеры двух технологий передачи информации в сети. Назови
и передает сигнал Wi-Fi их различие.
в назначенную область.
2. Объясни, какое устройство должно быть обязательно установлено
в компьютере для подключения его к сети.
3. Объясни назначение WAP устройства.
4. Перечисли преимущества и недостатки беспроводных сетей.
5. *Исследуй понятия и приведи примеры активного и пассивного обору-
дования сети.

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

MAC ID: 6CB311506E30

Каждое устройство в сети имеет уникальный адрес – MAC-адрес (англ.


Media Access Control). MAC-адрес –
уникальный адрес
Персональный компьютер, смартфон, планшет, телевизор или любое
сетевой карты
устройство для выхода в сеть используют MAC-адрес. Ноутбук имеет две устройства.
сетевые карты: первая – для подключения через кабель, вторая – под-
ключение через Wi-Fi. Каждая из карт имеет свой уникальный MAC-адрес.
Не существует двух компьютеров с одинаковым MAC-адресом.
На компьютере MAC-адрес представлен в виде уникального кода,
встроенного в сетевую карту. MAC-адрес состоит из 48 бит данных, обычно
записанных в виде 12 шестнадцатеричных символов.

MAC-адрес используется для автоматического определения отправи-


теля и получателя в сети. Часто его называют «физический адрес» ком-
пьютера.

Для того чтобы узнать MAC-адрес своего устрой- Выполнить


ства (ОС Windows), необходимо выполнить следующие
действия. Введите имя программы, папки, документа или
Запускаем командную строку. Для этого нужно на- ресурса Интернета, которые требуется открыть.

жать сочетание клавиш Windows+R, в открывшемся Открыть:


окне → cmd → ОК → ipconfig/all.
Данный способ, помимо MAC-адреса, дает полную
информацию по сетевому устройству. ОК Отмена Обзор...

35
ЗАДАНИЕ 1. Используя команду ipconfig /all, определи MAC-адрес («физи­чес­
кий адрес») устройства.
Для организации компьютерной сети важно определить требования
к сети и ее масштаб. Так как от размера сети и ее назначения зависит
выбор необходимого оборудования сети.

Концентратор (англ. Hub) – сетевое устройство-повторитель сигнала


в проводной сети. Его основное назначение – объединить рабочие стан-
ции сети Ethernet в один общий сектор.
Коммутатор (англ. Switch) выполняет ту же роль, что и концентратор.

Так в чем их отличие?

ЗАДАНИЕ 2. На первой схеме в качестве устройства, которое объединяет


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

Концентратор

Адрес
ПК 5, МАС 5
Отправитель получателя Коммутатор
МАС 5

ПК 1, МАС 1

ПК 4, МАС 4
ПК 1, МАС 1 ПК 3, МАС 3

ПК 2, МАС 2 ПК 2, МАС 2
ПК 3, МАС 3
1 схема 2 схема

1. Сформулируй определение для каждого устройства.


2. Опиши принципы передачи данных по сети при объединении устройств:
а) с помощью концентратора;
б) с помощью коммутатора.
Используй следующие фразы:
• Устройство сети … предназначено для … .
• Устройство принимает сигнал, поступивший из …, и распределяет его
по … .

Концентратор передает данные на все устройства в сети, что пере-


гружает сеть, так как данные доставляются на каждый персональный
компьютер. Кроме этого, существует угроза неразрешенного доступа

36
к информации и возможность ее хищения, данные доступны всем ком-
пьютерам сети. Концентратор не может контролировать трафик данных.
Сегодня концентраторы практически не используются для организации
сети. Однако данное устройство вполне подойдет для подключения
нескольких игровых приставок для игры с использованием проводной
локальной сети.
Коммутатор выполняет ту же роль, что и концентратор, но он более Знаешь ли ты?
эффективный, поскольку хранит MAC-адреса устройств в сети, фильтрует Существует несколько ви-
и отправляет пакеты с данными по нужному адресу. Это делает отправку дов Ethernet-коммутаторов:
данных более эффективной. Другими словами, сетевой адаптер получает модульные, фиксированные,
свои пакеты, доставленные на коммутатор, независимо от другого сетевого неуправляемые, частично
управляемые, управляемые.
адаптера, подключенного к этому коммутатору, что уменьшает нагрузку
сети и обеспечивает более высокую пропускную способность.
Если, например, в сетевой игре много данных, передаваемых между
компьютерами, то переключение может уменьшить задержку. Коммутатор
снижает энергопотребление сети и повышает ее производительность.
Но стоит такое устройство дороже, чем концентратор.

ЗАДАНИЕ 3. 1. Как ты считаешь, работа какого из двух устройств более


эффективна? Объясни, почему.
2. Изучи описание данных устройств и сформулируй преимущества и недостатки
каждого.
Заполни таблицу.
Устройство Описание Преимущества Недостатки

3. С работой какой организации можно сравнить работу коммутатора? Объясни,


почему.

ЗАДАНИЕ 4. Исследуй назначение устройства Repeater (повторитель).

ПРОВЕРЬ СЕБЯ
1. Перечисли устройства, которые используются для организации работы
локальной сети.
2. Объясни, как коммутатор определяет, на какое устройство отправить
данные.
3. Назови команду, которая позволит просмотреть физический адрес ком-
пьютера (ОС Windows).
4. Сформулируй назначение MAC-адреса. Как ты считаешь, почему
MAC-адрес на сетевой карте представлен шестнадцатеричными симво-
лами, а не двоичным кодом?
5. Объясни различия между устройствами сети: коммутатор и концентратор.
6. *Исследуй характеристики, на которые необходимо обращать внимание
при покупке коммутатора.

37
Устройства сети
2.6
Азамат работает системным администратором в фирме, где имеется
два отдела. В каждом отделе компьютеры объединены в локальную сеть
Какие сетевые устройства с помощью коммутатора. Его задача – объединить два отдела в единую
нужны для подключения сеть, другими словами, организовать передачу данных между устройства-
к глобальной сети? ми двух отделов (двух подсетей).
Как стать анонимным Для решения задачи системного администратора необходимо исполь-
пользователем сети? зовать сетевое устройство мост.

ЗАДАНИЕ 1. 1. Рассмотри изображение. Предположи, каково назначение


устройства мост.
2. Будет ли данное устройство передавать данные так же, как концентратор/
коммутатор?

Концентратор Концентратор

Мост

Мост (англ. Bridge) – это сетевое устройство, которое пересылает дан-


Мост – устройство сети
ные на основе MAC-адресов. Он перенаправляет трафик между двумя
для соединения двух
отдельных сетей LAN подсетями, только когда адреса отправителя и получателя находятся
в единую сеть. в разных сетях. Другими словами, мост позволяет объединять несколько
локальных сетей в одну и обеспечивает связь между ними, тем самым
позволяя им работать, как одна сеть.
Мост ищет принимающее устройство перед отправкой сообщения. Это
означает, что он не будет отправлять сообщение, если принимающего
компьютера там нет. Мост проверит, получил ли получатель сообщение.
Это уменьшает ненужные передачи данных и повышает производитель-
ность сети.
Рассмотрим другую ситуацию: в офисе имеется три персональных
компьютера и пять ноутбуков. Системному администратору необходи-
мо создать локальную сеть и обеспечить выход в сеть Интернет всем
устройствам. В данном случае устройство маршрутизатор позволит ре-
шить задачу системного администратора – объединить все устройства
и обеспечить соединение с сетью Интернет. В отличие от коммутатора
и концентратора, которые имеют только один сетевой интерфейс LAN
и используются для организации локальных сетей, маршрутизатор имеет
38
встроенный ADSL-модем, а беспроводные маршрутизаторы имеют встро-
енную Wi-Fi точку доступа.

Маршрутизатор (англ. Router) – это более сложное многофункцио­


нальное устройство, которое обычно включает в себя возможности кон-
центраторов и коммутаторов. Маршрутизаторы имеют WAN-порт (1), или 1
ADSL-порт, для подключения кабеля провайдера и до четырех портов LAN
(2) для подсоединения сетевых устройств по технологии Ethernet.
2
Если количество подключаемых устройств не превышает количество
портов на маршрутизаторе, то он оказывается единственным компонен-
том, который необходим для развертки локальной сети. Провайдер –
• Маршрутизаторы отфильтровывают сетевой трафик по определен- компания, которая
ному протоколу, а не по адресу пакета. предоставляет доступ
к информационным
• Маршрутизаторы делят сети логически, а не физически.
сетевым службам.
• В более сложных сетях общая эффективность повышается за счет
использования маршрутизаторов.

ЗАДАНИЕ 2. Рассмотри пример локальной сети.


1. Перечисли устройства, с помощью которых орга-
низована локальная сеть.
2. Укажи устройства, которые подключены
к сети: 2
a) с помощью проводов;
б) по Wi-Fi каналу.

3. Какое из устройств (1 или 2) является коммутатором,


а какое – маршрутизатором? Обоснуй свой ответ. 1
4. Будет ли доступна сеть Интернет для всей локальной
сети, если убрать устройство 2? Объясни свой ответ.

Маршрутизаторы используют таблицы марш-


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

IP-адрес состоит из двух частей: сеть и узел.


Сеть – это та часть IP, которая не меняется во всей сети, и все адреса
узлов (хостов) сети начинаются с номера сети. Знаешь ли ты?
Узел – это изменяющаяся часть IP-адреса. Каждое устройство имеет Винт Серф в 1977 году при-
свой уникальный адрес в сети. думал интернет-протокол
IPv4.
Существует два вида IP-адресов: динамический и статический.
Статический IP-адрес закреплен за пользователем сети и при подклю-
чении устройства к сети не изменяется. Динамический IP-адрес, наоборот,
изменяется при каждом подключении к сети. Это необходимо потому, что

39
чаще всего у провайдеров набор IP-адресов ограничен, и когда новое
устройство подключается к сети, ему выдается свободный IP-адрес.
IP-адрес выполняет две основные функции: определяет сеть и устрой-
ство в сети.

0..255 0..255 0..255 0..255

IP-адрес: 193.162.210.116
a.b.c.d
номер сети + номер
компьютера в сети

Класс Номер Количество


а Номер сети Количество сетей
сети компьютера компьютеров
А 1-126 а b.c.d 126 16777214
В 128-191 a.b c.d 16384 65534
С 192-223 a.b.c d 2097151 254

ЗАДАНИЕ 3. 1. Назови различия между статическими и динамическими


IP-адресами.
2. Рассмотри таблицу, укажи различия между классом А и классом С.
3. IP-адрес 192.168.10.104. Назови номер сети и номер компьютера.
4. Для просмотра IP-адреса твоего компьютера (ОС Windows) ты можешь исполь-
зовать уже известную тебе команду в командной строке ipconfig/all. Определи
IP-адрес твоего компьютера и его класс.

Метод адресации IP-адреса с использованием четырех наборов цифр


называется IPv4. Благодаря увеличению числа подключенных к Интер-
нету устройств IPv4 исчерпал свои адреса. Была представлена новая
версия, IPv6, что значительно увеличило число возможных адресов до
триллионов.
ЗАДАНИЕ 4. Рассмотри характеристики двух версий IP-адресов. Назови раз-
личия между двумя методами адресации IPv4 и IPv6.

IPv6
IPv4
Размер адреса: 128 бит
Размер адреса: 32 бита Формат адреса: шестнадцате-
Формат адреса: ричное обозначение
десятичное обозначение Количество адресов: 2128
Количество адресов: 232 Пример адреса:
Пример адреса: 2001: 0db8: 85a3: 0000: 0000:
192.168.0.104 8a2e: 0370: 7334

40
Каждый IP-адрес несет информацию о наименовании страны и региона
абонента, его провайдере и номере компьютера в сети.
Существуют сайты, которые блокируют просмотр веб-страниц по гео­
графическому положению.
Для того чтобы просматривать такие страницы, существует прокси-
сервер (proxy-server), что означает «посредник» между пользователем
и сетью Интернет. Каждый прокси-сервер имеет свой IP-адрес, поэтому,
когда пользователь подключается к прокси-серверу, все запросы переда-
ются по сети через его IP-адрес. Таким образом пользователь становится
анонимным и получает возможность просматривать заблокированные
страницы.
Основные функции прокси-сервера:
1. Мониторинг и фильтрация данных (сервис позволяет фильтровать
данные по различным параметрам, например, фильтровать контент). Знаешь ли ты?
2. Ускорение загрузки веб-сайтов (сервис извлекает контент из кэша, Для объединения сетей,
который был сохранен, когда пользователь делал предыдущий запрос). использующих различные
3. Анонимность (конечный сервер получает запрос от прокси- протоколы или технологии,
сервера, а не от пользователя, таким образом IP-адрес будет скрыт используется устройство се-
от того компьютера, куда поступает запрос, но для самого прокси-сервера тевой шлюз.
он останется видимым, даже если соединение с сервером зашифровано).
Прокси-сервер обеспечивает более быстрый доступ к запрашивае-
мым ресурсам и высокую безопасность за счет того, что содержимое
веб-страниц сканируется на наличие шпионского или вредоносного ПО
и нежелательные сайты блокируются. Тем не менее, в некоторых случаях
может случиться так, что провайдер услуг легко найдет пароли, веб-сайты
браузера или любые защищенные данные.
ЗАДАНИЕ 5. Заполни таблицу в тетради и обсуди с одноклас­сником преиму-
щества и недостатки прокси-сервера.

Прокси-сервер
Преимущества Недостатки

ПРОВЕРЬ СЕБЯ
1. Сравни устройства сети коммутатор и маршрутизатор. Назови их сходства
и различия.
2. Определи различия между мостом и маршрутизатором.
3. Объясни, каким образом маршрутизатор определяет, на какое устройство
отправить данные.
4. Назови различия между: a) динамическим и статическим IP-адресом;
b) IPv4 и IPv6.
5. Перечисли основные функции прокси-сервера.
6. *Исследуй, на какие характеристики необходимо обращать внимание
при покупке маршрутизатора.

41
Принцип пакетной обработки
2.7
ЗАДАНИЕ 1. Рассмотри пример отправки файла с компьютера А на компьютер
В. Рассмотри изображение.
Как передаются данные
через сеть?
Как информация в сети
находит получателя?

Исходное сообщение
отправителя на
компьютере А
Разбиение сообщения на части – пакеты
Компьютер А

- заголовок пакета
- пакет полезной нагрузки
1 2 3 4

Сборка пакетов на компьютере В

Компьютер В

1. Какой из компьютеров является отправителем/получателем?


2. Опиши этапы процесса отправки файла с одного компьютера на другой.
3. На какие части разделено сообщение, отправляемое компьютером А?
4. Как ты считаешь, что необходимо указать на пакетах, чтобы они дошли
до получателя?

Данные по сети передаются небольшими частями – пакетами. Это


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

42
1. Данные разбиваются на пакеты.
2. Каждый пакет имеет адрес отправителя, адрес получателя и полез-
ную нагрузку (данные).
3. Если для данных требуется несколько фрагментов, то отмечается
порядок каждого пакета.
4. Пакеты, отправленные в сеть, перемещаются с маршрутизатора на
маршрутизатор по разным путям (задается маршрутизатором). Поэтому
время доставки каждого пакета может отличаться.
5. Как только пакеты приходят на компьютер получателя, они упоря-
дочиваются.
6. С компьютера получателя отправляется сообщение, которое ука-
зывает, что сообщение было получено.
7. Если нет подтверждающего сообщения, отправитель передает дан-
ные снова.
Коммутация пакетов обеспечивает полное поступление сообщений без Пример
Отправитель:
замедления работы сети. При коммутации пакетов не требуется предва-
MAC-адрес:
рительной процедуры установления соединения. Если получатель обна-
1A-22-C3-48-5F
ружит, что пакеты отсутствуют, он может запросить повторную отправку IP-адрес: 102.231.4.189
только этих пакетов. Это избавляет от необходимости повторной отправки 1/4, 1 – это номер
всего сообщения, что особенно полезно, если сообщение представляет пакета, 4 – количество
собой большой файл, например, видеофайл. пакетов
Получатель:
ЗАДАНИЕ 2. Обсуди с одноклассником преимущества пакетной передачи MAC-адрес:
информации. 00-17-4F-08-5D-69
Каждый пакет состоит из двух частей: IP-адрес: 98.1.232.99
• заголовок – включает IP-адреса отправителя и получателя, номер
пакета, общее количество пакетов, содержащихся в сообщении;
• полезная нагрузка – данные сообщения.
Другими словами, заголовок является конвертом, а полезная нагрузка – это то,
что человек отправляет внутри конверта.

ЗАДАНИЕ 3. Арману необходимо передать файл


Сауле объемом 2 Мбайта.
Максимальный объем каждого пакета – 64 Кбайта.
1. Определи, на сколько пакетов будет разделено
сообщение Армана.
2. Назови, что будет содержать каждый пакет дан-
ных.

Отправитель:
MAC-адрес: …………………
IP-адрес: ……………………. MAC-адрес: MAC-адрес:
1/…, 1 – это номер пакета, … – количество пакетов 3A-00-C8-18-СF 7B-12-3C-18-1F
Получатель: IP-адрес: 108.132.4.187 IP-адрес: 103.201.5.189
MAC-адрес: ………………………….
Компьютер Армана Компьютер Сауле
IP-адрес: …………………………

3. *Объясни, как понять, что все пакеты дошли до адресата.

43
Пакеты отправляются индивидуально по сети и объединяются, чтобы
преобразовать сообщение на другом конце.
Пакеты могут или не могут следовать по одному и тому же маршруту –
они отправляются по тому маршруту, который позволяет самую быструю
передачу. Следовательно, пакеты могут поступать не по порядку. Компью-
тер получателя принимает и собирает их в правильном порядке.
ЗАДАНИЕ 4. 1. Исследуй понятие коммутация каналов.
2. Обсуди недостатки и преимущества коммутации каналов.
3. Сравни коммутацию пакетов и коммутацию каналов.

Отправитель
Пакетная коммутация
Промежуточный
узел
D C В А А А

D В
А

C
C В

C
В
D
А

Получатель

D D
D C В А

ПРОВЕРЬ СЕБЯ
1. Объясни, каким способом данные передаются по сети.
2. Перечисли, из каких частей состоит пакет.
3. Назови, как происходит коммутация каналов.
4. Укажи преимущества пакетной передачи данных.
5. Укажи истинное высказывание, в ложном исправь ошибки.
1) Все пакеты отправляются по одному маршруту.
2) Пакеты, которые поступают на компьютер получателя, могут поступать
не по порядку.
3) Для отправки пакетов при коммутации пакетов достаточно указать
только MAC-адрес.
4) В заголовке пакета указывается количество пакетов, для того чтобы
запросить повторную отправку всех пакетов.
6. *Как ты считаешь, достаточно ли данных в заголовке пакета, если нет, то
что еще необходимо добавить?

44
Протоколы TCP/IP
2.8
Все устройства, подключенные к сети для обмена данными между узла-
ми, должны следовать определенному набору правил. Правила отправки
и получения данных называются протоколами. Какие существуют правила
Эти правила определены в сетевом программном обеспечении. Дру- отправки сообщений?
гими словами, любая программа, работающая в сети, должна придержи- Чем отличается протокол
ваться определенных правил приема и передачи данных. HTTP от HTTPS?
Как протокол TCP/IP управ-
Например, для работы электронной почты нужно не только правильно ляет передачей данных?
сформировать пакеты, но и сформулировать правила отправки и по-
лучения писем электронной почты. Для этого используются протоколы
электронной почты.
Название протокола Назначение
SMTP
Простой протокол отправки электронных писем
(Simple Mail Transfer Protocol)
POP3
Протокол получения электронных писем
(Post Office Protocol 3)
Протокол доступа к сообщениям в Интернете.
Интернет-протокол, используемый почтовыми
клиентами для получения сообщений электрон-
IMAP ной почты с почтового сервера через соединение
(Internet Message Access TCP/IP.
Protocol) IMAP является одним из самых распространенных
протоколов для получения электронной почты.
IMAP синхронизирует сообщения на всех устрой-
ствах.

ЗАДАНИЕ 1. Опиши процесс передачи сообщения, используя названия


протоколов.

2
3
1

К веб-протоколам относятся протоколы HTTP и FTP.


HTTP (англ. Hyper Text Transfer Protocol) является базовым протоколом,
используемым Всемирной паутиной, который определяет, какие дей-
ствия веб-серверы и браузеры должны выполнять в ответ на различные
команды. HTTP предоставляет стандартные правила для взаимодействия
веб-браузеров и серверов.

45
ЗАДАНИЕ 2. Рассмотри изображения. Сформулируй различия между HTTP
и HTTPS.

HTTP HTTPS

Пароль: Пароль:
admin12345 admin12345 40yZ58n0KY admin12345

Браузер Сервер Браузер Сервер


Отправляет Получает Отправляет Получает
admin12345 admin12345 admin12345 admin12345

Хакер Хакер
Перехватывает Перехватывает
admin12345 40yZ58n0KY

FTP (англ. File Transfer Protocol) – протокол передачи файлов. Стан-


дартный сетевой протокол, используемый для передачи файлов между
клиентом и сервером в компьютерной сети. FTP построен на архитектуре
модели клиент-сервер с использованием отдельных соединений управ-
ления и передачи данных между компьютерами сети.
Надежную передачу и управление пакетами между компьютерами
обеспечивает протокол ТСР/IP.
Протокол определяет:
1. Какие данные будут переданы.
2. Адрес отправителя и адрес получателя.
3. Дошли данные до адресата или нет.
Другими словами, все сети, которые подключаются к Интернету, ис-
Протокол ТСР – пользуют для соединения и передачи данных ТСР/IP протокол. Этот про-
протокол управления токол помогает определить, как конкретный компьютер должен быть
передачей данных
подключен к Интернету и как должны передаваться данные.
(обеспечивает
и контролирует Стек протоколов TCP/IP – это набор сетевых протоколов для пере-
надежную передачу дачи данных.
информации по сети). Стек протоколов указывает на то, как протоколы будут взаимодейство-
Протокол IP – вать друг с другом.
интернет-протокол, Стек протоколов TCP/IP включает в себя четыре уровня. На каждом
или протокол уровне имеются свои протоколы.
маршрутизации Все они управляют передачей данных одновременно. За счет того, что
(определяет в у каждого есть свои правила, они работают без перебоев и конфликтов.
передаваемых данных Прикладной уровень (англ. application layer) располагается на верхнем
адрес и содержимое). уровне четырехуровневой модели TCP/IP. Прикладной уровень обеспе-
чивает приложения стандартизированным обменом данными. Его про-
токолы включают в себя HTTP, FTP, POP3, SMTP.
Прикладной уровень определяет протоколы приложений TCP/IP
и гарантирует, что данные отправляются в формате, который будет

46
понятен получателю, что позволяет пользователям взаимодействовать Прикладной
с программным приложением, например, электронная почта.
HTTP, FTP, POP3, SMTP
Транспортный уровень отвечает за поддержание связи по сети. Он
определяет, сколько данных должно быть отправлено, куда и с какой ско- Транспортный
ростью. Этот уровень основан на сообщении, полученном от прикладного TCP, UDP
уровня. Это помогает гарантировать, что блоки данных доставляются без
ошибок и в правильной последовательности. Сетевой
Данный уровень использует два различных транспортных протокола: IP
TCP и UDP.
Канальный
TCP UDP Ethernet
TCP-протокол обеспечивает надежную и Протокол UDP позволяет очень бы-
безошибочную связь между двумя ком- стро передавать данные по сети, так
пьютерами в сети. как в нем определен самый мини-
TCP-протокол разделяет данные на паке- мальный набор функций, необходи-
ты, затем нумерует их, что позволяет по- мый для передачи данных. В резуль-
лучателю правильно разместить данные тате чего безопасность и надежная
на другом конце, подтверждает получе- доставка не гарантируются. Пакеты
ние пришедших к нему по сети пакетов, поступают к получателю в любом
ожидает подтверждение о получении порядке, могут быть потеряны, либо
отправленных им пакетов, отправляет продублированы. Протокол UDP
следующие данные в случае отсутствия полезен, когда нет необходимости
ошибок. Вследствие того, что данный обеспечивать безопасность пере-
протокол TCP содержит большой набор дачи данных.
функций, он требует больших затрат вре-
мени.

ЗАДАНИЕ 3. 1. Изучи характеристики TCP и UDP протоколов.


2. Перечисли особенности данных протоколов. 198.32.3.21: 80
3. Укажи их преимущества и недостатки. IP-адрес номер порта

Сетевой уровень включает IP-протокол и отвечает за пересылку, сокет


маршрутизацию и адресацию пакетов, определяет лучший путь достав-
ки данных. На данном уровне данные передаются между сетями в форме Про­ Номер
пакетов. По сети отправляются различные типы данных. Чтобы убедиться, токол порта
что данные обрабатываются правильной программой, например, запрос FTP 20
веб-сайта обрабатывается веб-сервером, к IP-адресу необходимо SFTP 989
добавить номер порта. Когда пакет отправляется на другой компьютер, SMTP 25
на этом уровне ему назначается IP-адрес отправителя и получателя.
HTTP 80 или 8080
Помимо IP-адреса к пакету добавляется номер порта, образуя сокет.
HTTPS 443
Номер порта идентифицирует приложение на компьютере, которое
необходимо для загрузки пакетов. POP3 110
Сокет обеспечивает прямое соединение с процессом или приложением IMAP 143
на компьютере получателя. Telnet 23
Сокет привязан к номеру порта, поэтому уровень TCP может иденти-
фицировать приложение, которому предназначены данные для отправки.
Физический уровень (уровень сетевого интерфейса), или канальный
уровень, состоит из протоколов, которые работают на сетевых компонен-
тах, которые соединяют устройства сети. Протоколы на этом нижнем уров-
не включают Ethernet для локальных сетей (LAN) и протокол разрешения
47
Знаешь ли ты? адресов (ARP). На данном уровне MAC-адрес отправителя и получателя
TCP/IP протокол появил- добавляется к пакетам, позволяя направлять их на определенный сетевой
ся в результате научно- интерфейс. Этот уровень определяет, как данные должны передаваться
исследовательских разра- физически через сеть, отвечает за передачу данных между двумя устрой-
боток (Advanced Research
Project Agency, ARPA) прави-
ствами в одной сети.
тельства США в 1970-х годах.
ЗАДАНИЕ 4. Каждый из уровней TCP/IP стека имеет свое назначение.
Изучи функции каждого из уровней в тексте учебника и заполни таблицу
в тетради.

Название уровня Назначение Какие протоколы используются

ЗАДАНИЕ 5. Исследуй отличия и сходства протоколов TCP и OSI моделей.

Модель OSI Модель TCP/IP


7. Прикладной
6. Представления 4. Прикладной
5. Сеансовый
4. Транспортный 3. Транспортный
3. Сетевой 2. Сетевой
2. Канальный
1. Канальный
1. Физический

ПРОВЕРЬ СЕБЯ
1. Объясни, для чего необходим протокол при передаче данных по сети.
2. Назови протоколы, которые обеспечивают отправку и прием сообщений
через сеть.
3. Объясни назначение TCP/IP протокола.
4. Перечисли, из каких частей состоит TCP/IP стек. Поясни назначение каж-
дого уровня.
5. Укажи, какие протоколы используются на прикладном уровне.
6. Объясни, для чего при отправке сообщения необходимо указывать номер
порта.
7. Перечисли, из каких частей состоит сокет, сформулируй его назначение.
8. *Укажи уровень TCP/IP стека, на котором используется маршрутизатор.

48
Подводим итоги
1. Назови основные области кибербезопасности.
2. Определи по изображениям тип атаки и назови способы защиты.

1 2

посетители
сайта

3. Укажи различия между мейнфреймом и микроконтроллером.


4. Объясни принцип работы ячеистой топологии, укажи ее преимущества.
5. Перечисли устройства сети, назови их отличия и особенности.
6. Назови устройство, которое использует MAC-адрес для отправки пакетов.
7. IP-адрес – 121.118.12.104. Определи, к какому классу сети относится данный IP-адрес, назови номер
сети и номер компьютера.
8. Закончи сообщение: «Для того, чтобы передача информации от одного компьютера к другому
не занимала сеть надолго, файлы по сети передаются небольшими частями – …».
9. При отправке пакета ему были присвоены следующие значения. Определи, что пропущено.
Отправитель: Получатель:
MAC-адрес: 5A-22-13-47-7F IP-адрес: 98.1.232.99
IP-адрес: 103.221.5.188
Количество пакетов – 1
10. Приведи пример ситуации, когда необходимо использовать прокси-сервер.
11. Объясни, как маршрутизатор определяет устройство, на которое необходимо отправить данные.
12. Объясни назначение каждого уровня стека протоколов TCP/IP.
Прикладной
13. Назови протокол, соответствующий каждому уровню TCP/IP стека.

Транспортный

Сетевой

Канальный

49
Joomla
CMS
WordPress
Автоматизированная
разработка сайта
WIX
WYSIWIG
CK Editor

Методы разработки
сайта

Идея сайта

Разработка с помощью
языков программирования

КАК СОЗДАТЬ ВЕБ-САЙТ HTML

Python

JavaScript
Дизайн
PHP

Страницы сайта

50
3. СОЗДАНИЕ САЙТА

● Какие существуют способы создания Ты уже знаешь:


веб-сайтов?
● С чего начать разработку веб-сайта? ● что такое веб-страница и веб-сайт;
● Какой CMS выбрать? ● какую программу нужно использовать, чтобы
просмотреть веб-сайт;
● Как создать сайт с помощью
конструктора? ● для чего нужен URL-адрес, из каких частей
состоит URL-адрес;
● Как улучшить навигацию по сайту?
● как создать анимацию.
● Как сделать сайт привлекательным и
интерактивным?
Ты узнаешь:
● как разработать веб-сайт, не имея навыков
программирования;
● в чем различие между CMS и WYSIWYG;
● как добавить на сайт объекты мультимедиа
и анимации.

Межпредметная связь
В этом разделе ты изучишь способы и инструменты
разработки сайта для различных предметных обла-
стей.

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

ЗАДАНИЕ 1. 1. Назови программу на твоем компьютере, которая позволяет


просматривать веб-страницы. Приведи примеры таких программ.
2. Объясни, что такое URL-адрес.
3. Назови части, из которых состоит URL-адрес.
4. Назови адрес веб-сайта твоей школы.
Веб-сайт –
5. Назови основные элементы этого веб-сайта.
местоположение
6. Обсуди с одноклассником, какие ресурсы тебе доступны на веб-сайте твоей
в Интернете,
школы.
состоящее из одной
или нескольких веб- https://www.nis.edu.kz/cpi/file/1.pdf
страниц, доступных по
одному адресу. 1 2 3 4

Веб-сайт представляет собой совокупность веб-страниц, связанных


между собой общей темой, дизайном, совокупностью гиперссылок между
страницами, которая позволяет перемещаться по всем страницам веб-
сайта.
Например, nis.edu.kz – это веб-сайт, который состоит из множества
nis.edu.kz веб-страниц, содержащих информацию о школах сети НИШ и других
департаментов.
Задумываясь о разработке нового веб-сайта, многие могут подумать,
что эта область предназначена только для опытных веб-профессионалов
и программистов. Может возникнуть несколько вопросов, например,
какой сайт нам нужен для рекламы магазина или для более сложной
системы, какой бюджет мы имеем, как защитить сайт, кто будет посетителем
сайта и о многом другом.
Знаешь ли ты? Существуют ручные и автоматизированные методы разработки сайтов.
Первый метод заключается в том, что ты самостоятельно разрабатываешь
В 1995 году пользовате-
лям был представлен пер-
свой сайт, используя языки программирования. Второй метод не требует
вый программный ком- определенных навыков в программировании. Для разработки сайтов ис-
плекс управления сайтом пользуется специальное программное обеспечение, которое позволяет
«Vignette». создавать сайт автоматически.

ЗАДАНИЕ 2. Асхат занимается разведением собак и не имеет опыта в разработ-


ке сайтов. Он решил создать тематический сайт – блог, который будет посвящен
его любимой теме – собаководству.
Сравни два метода разработки сайтов и посоветуй, что выбрать Асхату, для того
чтобы создать собственный сайт самостоятельно.

52
МЕТОДЫ РАЗРАБОТКИ САЙТА

Разработка с помощью языков


Автоматизированная разработка
программирования

– Не требует изучения языков программирования – Широкий диапазон возможностей при


– Большой выбор шаблонов разработке функционала сайта
– Ограниченность в возможностях (некоторые – Не нужно подстраиваться под возможности
дополнительные функции могут быть платными) конструкторов
– Посторонняя реклама – Необходимо изучать языки программирования

В этом разделе ты изучишь способы автоматизированной разработки CMS (англ. Content


сайтов. К таким методам можно отнести разработку веб-сайта с помощью Management
CMS или WYSIWYG. System) – система
CMS – это веб-приложение, которое предоставляет все необходимые управления контентом,
компьютерная
модули и инструменты для управления онлайн-контентом, облегчает со-
программа или
здание и обслуживание веб-сайтов. Существует большое количество CMS, программный комплекс
как платных, так и бесплатных. управления сайтом.
К наиболее популярным и бесплатным CMS можно отнести Joomla и CMS обеспечивает
WordPress. процесс создания,
WYSIWYG относится к программному обеспечению, которое точно редактирования
представляет конечный результат на этапе разработки. и управления
Например, программа Photoshop является графической программой содержимым сайта
WYSIWYG, потому что она может отображать изображения на экране так (документы, видео,
же, как они будут выглядеть при печати на бумаге. изображения и так
далее).
Большинство программ веб-разработки называются WYSIWYG-редак-
торами, поскольку они показывают, как будут выглядеть веб-страницы
при их создании разработчиком.
Проще говоря, WYSIWYG означает, что то, что вы видите на экране
компьютера, когда редактируете свой веб-сайт, это именно то, что будет
отображено в веб-браузере.
В любой конструктор входит: набор тематических шаблонов, виджеты,
готовые контентные блоки и множество других функциональных воз-
можностей, которые позволяют быстро управлять контентом. Пример
веб-конструктора – WIX.
ЗАДАНИЕ 3. 1. Прочти текст ниже, изучи преимущества и недостатки CMS и
WYSIWYG.
2. Заполни сравнительную таблицу в тетради.

Преимущества Недостатки
CMS WYSIWYG («wiz-ee-
WYSIWYG wig», англ. What You
See Is hat You Get) –
WYSIWYG имеет большое количество преимуществ, она проста в ис- это программа-
редактор, позволяющая
пользовании и позволяет создавать сайт за короткое время. Кроме того,
разработчику увидеть
подойдет людям, незнакомым с веб-технологиями, для создания простых конечный результат.
одностраничных сайтов или визиток.
53
Для создания более сложной системы, крупного проекта конструктор
не подойдет. К тому же ограничения в редактировании структуры кода
сайта не позволят сделать сайт уникальным и отличающимся от других,
Знаешь ли ты? невозможно будет перенести сайт на другой хостинг или конструктор
Первый веб-сайт был создан
сайтов.
британским ученым Тимом CMS помогает создавать новые страницы в короткие сроки и управлять
Бернерсом-Ли и запущен 6 контентом веб-сайта с помощью удобного интерфейса. CMS – это более
августа 1991 года. сложная платформа, которая обычно представлена в виде решения с
Просмотреть первый веб-
открытым исходным кодом. Это означает отсутствие ограничений с точ-
сайт можно по ссылке:
http://info.cern.ch/hypertext/ ки зрения веб-дизайна и настройки. Чаще всего CMS является выбором
WWW/TheProject.html людей, желающих получить в итоге качественный сайт, отличающийся
уникальным дизайном и оригинальным содержанием. Тем не менее у
CMS есть и недостатки, например, низкая скорость загрузки сайта. Сайт,
созданный на CMS, требует использования множества дополнительных
функций, что приводит к медленному открытию страниц в Интернете.

Не защищено | info.cern.ch/hypertext/WWW/TheProject.html

World Wide Web


The WorldWideWeb (W3) is a wide-area hypermedia information retrieval initiative aiming to give universal access to a large universe of documents.
Everything there is online about W3 is linked directly or indirectly to this document, including an executive summary of the project, Mailing lists ,
Policy , November's W3 news , Frequently Asked Questions .

What's out there?


Pointers to the world's online information, subjects , W3 servers, etc.
Help
on the browser you are using
Software Products
A list of W3 project components and their current state. (e.g. Line Mode ,X11 Viola , NeXTStep , Servers , Tools , Mail robot , Library )
Technical
Details of protocols, formats, program internals etc
Bibliography
Paper documentation on W3 and references.
People
A list of some people involved in the project.
History
A summary of the history of the project.
How can I help ?
If you would like to support the web..
Getting code
Getting the code by anonymous FTP , etc.

ЗАДАНИЕ 4. Исследуй способ, который позволит узнать, на каком CMS сделан


сайт.

ПРОВЕРЬ СЕБЯ
1. Назови способы разработки веб-сайтов.
2. Объясни, в чем различие между CMS и WYSIWYG.
3. Кратко объясни преимущества и недостатки CMS и WYSIWYG.
4. Объясни назначение WYSIWYG-редакторов для создания сайтов.
5. Подумай и объясни, на что необходимо обращать внимание при разра-
ботке сайта для онлайн-магазина.

54
Разработка веб-сайта в CMS
3.2
На прошлом уроке ты узнал, что необязательно быть программистом
для того, чтобы создать сайт.
Прежде чем создать сайт с помощью CMS, необходимо пройти не- С чего начать разработку
сколько этапов: веб-сайта?
1. Определить вид сайта. Существует несколько видов сайтов: блог, Какой CMS выбрать?
лэндинг, интернет-магазин, сайт-каталог, корпоративный сайт и другие.
2. Выбрать платформу CMS.
3. Выбрать дизайн и определить содержание сайта на выбранной плат-
форме.
Для Асхата основной задачей является создание блог-сайта, на кото-
ром он сможет делиться информацией о своих питомцах, особенностях
ухода за ними и т.д.
В зависимости от контента интернет-блоги можно разделить на не-
сколько видов:
Блог – сайт, на
• фотоблог – контент фото, картинки, гифки;
котором публикуются
• влог – короткие видео в соответствии с выбранной темой блога; авторские материалы
• текстовый – статьи и комментарии к ним; и систематически
• блог подкаст – общение с подписчиками; добавляются записи на
• и другие. определенную тему.

ЗАДАНИЕ 1. Обсуди с одноклассником, какой вид блога выбрать Асхату.


Почему?

ЗАДАНИЕ 2. 1. Изучи основные характеристики наиболее популярных CMS


программ.
2. Обсуди их с одноклассником.

WordPress Joomla
WordPress – это бесплатное програм­ Joomla – второе широко используемое
мное обеспечение, которое включает бесплатное ПО после WordPress для Плагин – програм­
плагины, виджеты и темы, которые создания сайта. Имеет множество тем мный компонент
делают WordPress полностью настраи­ и плагинов и идеально подходит для или модуль, который
ваемым и расширяемым. WordPress сайтов электронной коммерции. добавляет опреде­
идеально подходит для небольших Устанавливается медленнее, чем ленную функцию
(блогов) и средних сайтов. WordPress. Joomla имеет гораздо боль- к существующей
Простая и быстрая установка, доступ- ше встроенных функций меню, чем компьютерной
ный интерфейс. Разработка сайта в WordPress, что может быть сложно для программе и предназ­
WordPress не требует каких-либо на- новичка. начен для расширения
выков. По этой причине WordPress ре- ее возможностей.
комендуется для начинающих.
Хостинг – компания,
которая размещает
сайт на веб-сервере
и делает его
доступным для других
пользователей сети
Интернет.

55
Чтобы создать сайт на WordPress, необходимо перейти на сайт
Доменное имя, или
домен – имя сайта https://wordpress.com/ и зарегистрироваться.
в сети Интернет, На https://wordpress.com/ ты получишь бесплатный поддомен для
которое пользователь своего сайта в формате http://имя_сайта.wordpress.com.
вводит в адресной Разработчик может в любое время изменить имя домена. Система
строке браузера для предложит несколько вариантов хостинга и доменов. От того, какой
перехода на сайт. хостинг ты выберешь, будет зависеть его стоимость.

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


petashatblog.org Продление подписки: Ꝑ1 170,00 /год
Приобрести платные услуги

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


petashatblog.supplies Продление подписки: Ꝑ1 170,00 /год Приобрести платные услуги

ЗАДАНИЕ 3. 1. Определи тему и вид твоего будущего сайта.


Если ты допустил
ошибку в имени сайта 2. Зарегистрируйся на сайте https://wordpress.com/.
или решил изменить 3. Укажи имя твоего веб-сайта и выбери бесплатный хостинг.
название, необходимо
перейти ко вкладке Чтобы создать первую страницу сайта, необходимо выполнить следующие шаги:
Тариф → Домены → Главная → Страницы → Создать страницу
Изменить адрес
сайта. Мои сайты Читалка Написать

Сменить сайт Настройки экрана

Мой сайт
Страницы
Создавайте, редактируйте и управляйте страницами вашего сайта.

Бесплатный домен
Опубликовано 0 Черновики 0 Запланировано 0 В корзине 3
с годовым Обновление
тарифным планом

Главная На главной странице отображаются ваши последние записи.

Статистика

Платные услуги Бесплатно

Записи

Медиафайлы

Страницы

Все страницы

Вы еще не опубликовали ни одной


Поиск Добавить новую

Комментарии
Блоки Паттерны
Обратная связь страницы.
TEXT Опубликовать первую страницу?
Jetpack

Внешний вид
Создать страницу
Абзац Заголовок Список Плагины

Далее тебе будет предложено несколько вариантов шаблонов для


Цитата Код Классический
того, чтобы создать свою страницу: пустая страница, страница блога и т.д.
Страницы сайта состоят из блоков.
Форматиро- Выдержка Таблица
Для добавления блока нужно нажать на инструмент. Добавить блоки.
ванный Выбрать тип блока:
– параграф, – галерея,
– изображение, – заголовок и другие.
– цитата,
Стих Markdown SintaxHighighter
Code

56
Для каждого блока можно изменить шрифт, размер, цвет текста, его
Настольный ПК
расположение, вид блока, размер, расположение на странице и т.д.
4. Выбери шаблон и заполни его контентом. Настольный ПК
5. Выбери шаблон для твоей страницы.
6. Добавь блок Текст. Измени его цвет, шрифт, размер, начертание. Планшет
7. Просмотри, как созданная страница будет выглядеть на планшете или теле-
фоне. Телефон
8. Назови различия между видом страницы для настольного ПК и видом для
мобильного телефона. Поиск и социальны...
9. Опубликуй свою первую страницу, поделись ссылкой с одноклассниками.

Для того чтобы добавить новые страницы, необходимо перейти на


вкладку Предпросмотр Опубликовать
Сайт → Страницы → Добавить страницу.
Кнопка Предпросмотр
Страницы позволит просмотреть,
Опубликовано Черновики Отложенные Удалённые как будет выглядеть
страница на различных
На главной странице отображаются ваши последние записи. устройствах.

Страницы Добавить страницу


Кнопка Перейти на сайт
Блог о шарпеях позволит открыть
10 минут назад
страницу в браузере.

ЗАДАНИЕ 4. Добавь страницы к своему сайту.

Разрабатывая свой блог, Асхат решил добавить возможность оставлять


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

1 Перейди на вкладку 3
Главная. Блог о шарпеях
24 минуты назад
Администратор WP
Редактировать

Просмотреть страницу
4 Для пункта Обсуждение выбери → Статистика
Разрешить комментарии.
2 Выбери Страницы. Копировать страницу
Обсуждение Копировать ссылку

Медиафайлы Разрешить комментарии Удалить


Страницы
Атрибуты страницы
Все страницы
Добавить новую Родительская страница

Комментарии
Порядок 0

57
5 Обнови страницу. 6 Предложи одноклассникам добавить комментарии к твоей странице.

Добавить комментарии
Обновить
Введите свой комментарий...

7 Просмотри
комментарии. Заполните поля или щелкните по значку, чтобы оставить свой комментарий.

В разделе E-mail (обязательно) (Адрес никогда не будет опубликован)

Комментарии ты Имя (обязательно)


сможешь про­ Сайт
смотреть получен-
ные сообщения от Уведомлять меня о новых комментариях по почте. Отправить комментарий
одноклассников. Уведомлять меня о новых записях по почте.

8 Изучи способы редактирования полученных комментариев:


одобренный, спам-комментарий, удалить и т.д.

Комментарии
Просматривайте, отвечайте и управляйте всеми комментариями на вашем сайте.

Всё Новые Самые старые Массовое редактирование

Данные пользователя
через несколько секунд

Блог о шарпеях

Здравствуйте!

Одобренный Спам-комментарий Удалить Нравится Редактировать Ответить

ЗАДАНИЕ 5. 1. Исследуй опцию Массовое редак- Массовое редактирование

Иконка сайта – тирование в разделе Главная → Комментарии.


Сайт
значок, который 2. Измени иконку сайта. Страницы
отображается на Записи
вкладке браузера. Медиафайлы

Комментарии
Удалить Изменить изображение
Обратная связь

ПРОВЕРЬ СЕБЯ
1. Перечисли последовательность шагов для разработки сайта на WordPress.
2. Назови вкладки меню WordPress.
3. Объясни, как опубликовать созданный сайт.
4. Перечисли, какие шаблоны для создания страниц ты использовал для
создания своего сайта, назови их особенности.
5. Объясни, как добавить возможность пользователям оставлять коммен-
тарии на сайте.
58
Разработка веб-сайта в WYSIWYG
3.3
Другой инструмент, которым может воспользоваться Асхат для
создания своего сайта, – это конструктор. Существует большое количество
конструкторов. Одним из наиболее популярных является WIX. Как создать сайт с помо-
щью конструктора?
Чтобы создать сайт на WIX, необходимо: Какой конструктор вы-
брать?
1. Зарегистрироваться на сайте.
2. Выбрать шаблон.
3. Заполнить шаблон контентом (текст, картинки, видео и т.д.).
4. Доработать дизайн.
5. Подключить домен.
6. Опубликовать.

Одним из главных достоинств данного конструктора является большое


количество готовых дизайнерских шаблонов и возможность подключения
различных приложений, часть из которых бесплатны.
Например, онлайн-чат, форум, соцсети и другие.
ЗАДАНИЕ 1. 1. Зарегистрируйся на сайте https://www.wix.com/
2. Выбери тип сайта и способ его создания (автоматически или самостоятельно
в редакторе).
3. Выбери шаблон для своего сайта.

Прежде чем заполнить сайт контентом, изучи основные элементы Шаблон – форма,
управления и интерфейс конструктора WIX. которая используется
в качестве руководства
Обрати внимание на вкладку Меню и страницы, с помощью которой
для создания сайта.
можно просмотреть, добавить, удалить, изменить страницы сайта. Шаблон контролирует
общий вид и макет
Меню сайта ? ç сайта. Он обеспечи­
Меню сайта вает структуру, которая
Страницы блога
объединяет общие
Главная
элементы, модули и
Смена страниц
стили.
Блог

Обо мне
Полоски – части
страницы, которые
Фотоальбомы клиентов
необходимы для
оформления дизайна
Контакты
страницы.

ЗАДАНИЕ 2. Изучи способы смены страниц сайта.

С помощью кнопки Редактировать текст ты можешь изменить основные


настройки текста: выбрать заголовок, изменить размер шрифта и другие.

59
ЗАДАНИЕ 3. 1. Рассмотри настройки текста.
Настройка текста
2. Измени заголовок для твоего сайта, шрифт и размер текста.
Стили 3. Изучи настройки Эффекты и Интервалы.
Заголовок 2 4. Назови различия между интервалом -0,1 и 0,7.

Шрифты
Страницы сайта разделены на блоки: header, content и footer.
Georgia
Header обычно отображается на всех страницах сайта и содержит лого-
Размер шрифта (пикс.)
тип, название, меню сайта, content – основную информацию, разделенную
на полоски и ленту блога, а footer – контакты.
24
Для редактирования дизайна страницы правой кнопкой мыши можно
В I U
вызвать панель инструментов, с помощью которой ты сможешь редак-
тировать элементы сайта.
Обрати внимание на то, что для различных частей сайта представлены
различные параметры и настройки.
Эффекты
ЗАДАНИЕ 4. 1. Изучи настройки для различных частей страницы.
Интервалы
2. Измени дизайн страницы твоего сайта для блока header.
3. Добавь страницы при необходимости.

HEADER Для того чтобы создать несколько страниц с одинаковым дизай-


ном, необходимо нажать правой кнопкой мыши на полоске и отметить
На всех страницах
CONTENT
Прежде чем опубликовать сайт, его необходимо сохранить. Так-
FOOTER же ты можешь просмотреть созданную страницу, нажав на кнопку
Предпросмотр на панели настроек в верхней части окна.
Перед публикацией сайта система предложит выбрать веб-адрес сайта.
Адрес бесплатного сайта – имясайта.wixsite.com.

На страницы сайта можно добавить функцию просмотра количества


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

ЗАДАНИЕ 5. 1. Опубликуй свой сайт.


2. Для подключения и настройки возможности просмотра посетителей подключи
приложение Visitor Analytics.

а) В редакторе слева кликни по App Market .

Введи название приложения Visitor Analytics → Добавить на сайт →


Добавить.
b) Для изменения настроек приложения → Настроить → Settings (настройки)
→ All visitors (все посетители).
3. Поделись ссылкой твоего сайта с одноклассниками.
4. Просмотри количество посетителей твоего сайта.

60
Visitor Analytics
Знаешь ли ты?
Visitor counter
Main Wix Artificial Design Intelli­
Settings What to show a counter on your site? gence (ADI) – платформа,
All visitors которая сочетает дизайн
Layouts All visitors веб-сайта и создание кон-
тента с искусственным
00000 Design Page visits
интеллектом. Эта техноло-
Unique visitors
Text гия позволяет создавать
Visits by country веб-сайты за считанные
минуты на основании ин-
Visits by city
Support формации о пользователе
Most visited pages и вариантах дизайна.
Upgrade
Recently added pages

Don't display on website

Чат посетителей – режим, который включается автоматически после


добавления чата Wix на сайт. Он позволяет анонимным посетителям об-
щаться с тобой напрямую через сайт.

ЗАДАНИЕ 6. 1. Добавь чат на страницу сайта → Добавить → WIX чат.


2. Исследуй и измени настройки чата.
3. Сохрани и опубликуй сайт.
4. Перейди в Настройки → Панель управления → Входящие.
5. Просмотри входящие сообщения.
6. Ответь на сообщения посетителей сайта.

ПРОВЕРЬ СЕБЯ
1. Перечисли типы сайтов, которые доступны для создания в конструкторе
WIX.
2. Объясни, из каких частей состоит страница сайта.
3. Объясни различия между header и footer.
4. Перечисли настройки текста, которые доступны в конструкторе WIX.

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

Если ты запланировал создать несколько страниц для сайта, то меню


Поиск сайта поможет быстро переключаться между страницами. В конструкторе
WIX Меню сайта имеется во всех шаблонах.
Полоска
Для лучшей навигации по сайту рекомендуется размещать меню на
Текст всех страницах сайта. Для этого в редакторе предусмотрен параметр
Фото показывать на всех страницах. На всех
страницах
Кнопка
Галерея ЗАДАНИЕ 1. 1. Измени макет меню.
Оформление 2. Отредактируй название страниц в меню.
Интерактив
3. *Добавь ссылку на другой веб-сайт.

Бокс
My dog – is my friend.
Списки и сетки
Видео и аудио My little pet
Меню Настроить Переход по страницам

Горизонтальное меню

Home Фотогалерея Отправь мне сообщение

Для лучшей навигации по странице можно добавить якорь. Другими


Веб-сайт – словами, указатель на части веб-страницы, который предоставляет воз-
местоположение можность быстрого перехода между частями страницы. Якорь можно
в Интернете, добавить к кнопкам, тексту, формам и другим компонентам.
состоящее из одной
или нескольких веб-
Куда ведет этот элемент?
страниц, доступных по
одному адресу.
Нет Направьте посетителей наверх или
вниз страницы
Веб-адрес
На страницу
Якорь
Наверх/вниз
страницы
Наверх Вниз
Документ
Эл.почта
Номер телефона
Промобокс

Отменить Сохранить

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

Добавить → Кнопку → Выбрать стиль кнопки → Кнопка иконка

Ссылка → Наверх / Вниз


Или создать якорь и выбрать его в качестве метки для перемещения.
Добавить → Еще → Якоря → Переместить в нужную часть сайта
Быстрое перемещение по якорям, размещенным на сайте, можно со- Якорное меню
здать с помощью элемента редактора Якорное меню. Наверх страницы
Добавить → Еще → Якорное меню Фотогалерея
Мое местоположение
Contact
ЗАДАНИЕ 2. 1. Добавь на странице сайта две кнопки для перехода Наверх/ Настроить
Вниз по странице.
2. Измени дизайн и внешний вид кнопки.
3. Для каждого раздела Меню размести якорь на странице (якорь необходимо Якорь, или якорная
разместить в части страницы, на которую указывает Меню). ссылка – невидимая
4. Добавь в Меню ссылки на якоря. метка на странице
5. Измени Стиль смены страниц. сайта, указатель для
6. Создай Якорное меню и размести его на странице сайта. навигации на сайте.
7. *Объясни различия между Меню и Якорным меню.

Сделать сайт индивидуальным и запоминающимся тебе поможет


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

ЗАДАНИЕ 3. 1. Перечисли виды графики, которые ты знаешь.


2. Назови особенности векторной графики.
3. Объясни, почему векторная графика – наиболее подходящий вид графики
при разработке сайта.
4. Укажи недостатки векторной графики. Знаешь ли ты?

Логотип сайта поможет сделать твой сайт узнаваемым и запоминаю- 85% покупателей делают
свой выбор на основе цвета.
щимся среди других.
В галерее редактора собрано и разделено по категориям большое
количество векторных изображений.
Чтобы добавить логотип на свою страницу, нужно выполнить несколько
простых шагов:
1. Меню → Добавить.
2. Выбрать пункт Графика. Текст Избранное

3. Выбрать категорию и изображение. Фото Значки


4. Разместить его в нужной области страницы. Галерея Животные и природа
Если в галерее нет подходящего изображения, то
Графика Логотипы и значки
ты можешь его создать и добавить на свою страницу
самостоятельно. Фигура Персонажи

63
ЗАДАНИЕ 4. 1. Создай логотип и загрузи его на свою страницу.
Таблица представляет
собой сетку, 2. Поэкспериментируй с настройками графики.
состоящую из
вертикальных столбцов Представить большой объем информации на странице сайта и сделать
и горизонтальных его доступным можно с помощью элемента Списки и таблицы, а используя
строк. Ячейки таблицы красочные макеты и готовые изображения, можно сделать его наиболее
могут содержать в себе привлекательным.
текст, графику и другие Добавить → Списки и таблицы → Выбрать шаблон →
элементы. Заполнить контент
Изменения дизайна одного из элементов повторяющегося списка
автоматически применяются к другим элементам этого списка. Напри-
мер, если изменить дизайн одного из элементов, изменения отобразятся
на всех элементах этого списка.

ЗАДАНИЕ 5. 1. Перейди к вкладке Добавить → Списки и таблицы.


Заменить Настроить 2. Исследуй виды макетов для Списков и таблиц.
3. Выбери макет для своего сайта.
4. Добавь элементы.
5. Измени порядок элементов макета.
Кадрировать 6. Загрузи фотографии для твоего сайта, измени их настройки.
7. Сохрани и опубликуй изменения на сайте.
Улучшить
Обрати внимание: загрузив свое фото, ты можешь изменить его настройки,
например, добавить текст, фильтр, удалить фон и т.д.
Фильтры
ЗАДАНИЕ 6. Добавь календарь на страницу своего сайта.

Настроить

ПРОВЕРЬ СЕБЯ
Удалить фон 1. Перечисли способы навигации по сайту. Какой из них для тебя наиболее
удобный? Почему?

Текст 2. Объясни, для чего нужно создавать Меню на сайте.


3. Укажи особенность Якорного меню.
Слои 4. Назови макеты Меню, которые можно создать в редакторе WIX.
5. Перечисли особенности элемента Списки и таблицы.
Фон 6. Объясни, как добавить свое изображение на сайт, как изменить его
настройки.

64
Внедрение анимации на веб-сайт
3.5
Анимация всегда впечатляет посетителей сайта. Анимация на сайте
может помочь быстро и легко объяснить сложные идеи, а также направить
действия пользователей с помощью соответствующих инструкций. Этот Как сделать сайт интер­
факт можно использовать, чтобы привлечь внимание посетителей сайта активным?
и сориентировать при его использовании.
В конструкторе WIX добавить анимацию можно к тексту, кнопке или
картинкам. Анимация –
Рассмотри пример создания анимации для заголовка сайта. быстрая смена
Для добавления эффектов анимации нужно перейти в режим редак- последовательности
изображений, которая
тирования текста и выбрать параметр Анимация Редактировать текст  . создает иллюзию
движения.
Чтобы анимировать текст, существует большой выбор настроек ани-
мации.
ЗАДАНИЕ 1. 1. Выбери блок текста на своей странице. Animation Settings
2. Изучи виды анимации, которые доступны в редакторе.
3. Добавь анимацию к тексту. < Назад

4. Измени настройки анимации.


5. Перейди на вкладку Предпросмотр, чтобы увидеть результат. Уменьшение

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


Интенсивность
ния текста, длительность анимации.
Средне
Задержка анимации укажет на момент времени, в который она будет
запущена. Длительность (сек.)
Аналогично можно настроить анимацию для других элементов сайта,
например, для изображений, кнопок или иконок.
Для более привлекательного визуального эффекта можно настроить Задержка (сек.)
анимацию для группы элементов. Для этого необходимо предварительно
объединить элементы в группу.
Для группировки элементов нужно выделить элементы (Ctrl/Shift) Только первый раз

и нажать кнопку Сгруппировать Сгруппировать .


Обрати внимание на то, что полоски не могут быть сгруппированы.
ЗАДАНИЕ 2. 1. Сгруппируй текст и картинки.
2. Добавь анимацию к группе элементов.
3. Просмотри результат.
4. Разгруппируй элементы.
5. Настрой анимацию для каждого элемента отдельно.
Знаешь ли ты?
Как ты уже заметил, в редакторе настройка анимации – это стандарт-
ный процесс для всех элементов. Помимо такого вида анимации, в ре- Существует вид компьютер-
ной графики Stop-motion.
дакторе существует возможность создавать слайд-шоу, используя любое Данный вид графики осно-
количество слайдов. Показ слайдов можно использовать, например, для ван на покадровом фотогра-
демонстрации тематических изображений. фировании.
Для добавления слайд-шоу на страницы сайта нужно выполнить
нес­колько простых действий.
1. Подготовить изображения для слайд-шоу.
2. Добавить → Интерактив → Выбрать способ демонстрации слайд-
шоу (На весь экран, Слайд-шоу в боксе, Меняющиеся). 65
Дизайн бокса
ЗАДАНИЕ 3. 1. Добавь на страницу сайта Слайд-шоу.
2. Поэкспериментируй с тремя способами демонстрации слайд-шоу и объясни
Граница различия между ними.
3. Изучи характеристики динамического бокса.
Уголки
4. Измени настройки дизайна динамического бокса.
Тень 5. Изучи способы добавления видео на сайт и добавь видео.

Видеомейкер В конструкторе ты можешь создать собственное видео, используя


Создавайте собственные
видео
изображения, музыку и текст. Медиа → Видеомейкер
Настройка видео

Контент Дизайн Музыка Информация о бизнесе


Динамический бокс,
или меняющийся МЕДИАФАЙЛЫ (00/15)
бокс – содержимое
его изменяется, когда Добавьте хотя бы
пользователь наводит одно фото или видео.
мышкой на бокс.
ТЕКСТ
Текст в начале видео Второй текст
Добавьте первый текст Добавьте второй текст

Третий текст Текст в конце видео


Добавьте третий текст Добавьте последний текст

Вперед

ЗАДАНИЕ 4. Из курса 7 класса ты уже знаком с понятием анимация.


1. Объясни принцип построения GIF-изображения.
2. Назови особенности анимированных изображений.
3. Укажи, в каких программах можно создать анимацию.

Чтобы создать уникальный дизайн, ты можешь создать свою анимацию


и добавить ее на страницу сайта.
Действия ЗАДАНИЕ 5. 1. Создай приветствие для своей страницы и сохрани его как
GIF-анимацию в знакомой тебе программе.
Редактировать 2. Открой в редакторе WIX вкладку Добавить → Фото → Мои загрузки.
3. Загрузи файл, измени настройки и добавь на страницу сайта.
Настроить
4. Перейди в предпросмотр страницы.
5. Измени настройки дизайна GIF-анимации. Заменить трек
Создать видео
Аудиоплеер

Вырезать фон ЗАДАНИЕ 6. Добавь на сайт Аудиоплеер. Track Name – Artist Name
00:00 / 01:04

ПРОВЕРЬ СЕБЯ
1. Объясни, для чего некоторые разработчики сайта используют анимацию на своих страницах.
2. Перечисли виды анимации, которые доступны в редакторе WIX.
3. Объясни, что необходимо сделать, чтобы настроить анимацию для группы элементов.
4. Назови способы демонстрации слайд-шоу.
5. Перечисли шаги, которые помогут добавить файлы анимации на сайт в конструкторе WIX.

66
Подводим итоги
1. Определи названия методов разработки сайта по их описанию. Назови их различия.

Система управления контентом, компьютерная программа или программный комплекс


1 управления сайтом.

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

2. Перечисли преимущества и недостатки создания сайта с помощью CMS/WYSIWYG.


3. Приведи примеры видов сайтов. Назови их различия.
4. На изображении представлены режимы редактирования сайта: редактор
компьютерной версии и редактор мобильной версии.
Объясни, почему необходимо учитывать различные способы представления сайта.

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

My dog – is my friend.

My little pet

Home Фотогалерея Отправь мне сообщение

Все о породе собак шарпей

Рост Масса Шерсть Характер


46-51 см 25-30 кг короткая, жест- преданный,
кая, щетинистая, привязчивый,
без подшерстка самостоятельный

6. Объясни, для чего необходимо добавлять на сайт «Меню сайта».


7. Назови способы, которые позволят сделать сайт более привлекательным.
8. Укажи, с какими сложностями ты столкнулся при разработке сайта на CMS/ WYSIWYG.
9. Назови метод разработки сайта, который показался тебе наиболее быстрым и простым. Почему?
10. Обсуди с одноклассником критерии, которые помогут тебе оценить разработанный сайт.

67
Головная часть <HEAD>...</HEAD>
Структура документа
Тело HTML кода <BODY>...</BODY>

Заголовки <Hn>...</Hn>

Параграфы <P>...</P>

Шрифты <FONT>...</FONT>
Форматирование текста
<B>...</B>

Начертания <TR>...</TR> <I>...</I>

<U>...</U>

Дизайн <marquee>...</marquee>
<HTML>...</HTML>

внутренние <STYLE>...</STYLE>
CSS стили
внешние .CSS file

<TABLE>...</TABLE>

<TH>...</TH>
Таблицы
<TD>...</TD>

<TR>...</TR>

маркированные <UL>...</UL>
Списки
нумерованные <OL>...</OL>

Блочная верстка <DIV>...</DIV>

статичные <frameset>...</frameset>
Фреймы
плавающие <iframe> … </iframe>

68
4. HTML
● Почему стоит выбрать ручную верстку, Ты уже знаешь:
а не конструктор сайтов?
● Какова структура HTML-документа? ● понятия локальной и глобальной сети;
● Как использовать НТМL-теги при ● основные понятия глобальной сети: веб-страница,
форматировании текста веб-страницы? веб-сервер, веб-сайт, веб-браузер;
● Как создать нумерованный или ● назначения URL и DNS;
маркированный список на веб- ● как передавать информацию по сети;
странице? ● как работать с графикой и звуком;
● Как использовать CSS при разработке ● как монтировать видеоклипы;
веб-страницы? ● как внедрять мультимедиа в ООП.
● Как изменится веб-страница после
применения блочной верстки? Ты узнаешь:
● Как вставить мультимедиа объекты
на веб-страницу? ● о преимуществах и недостатках ручной
верстки;
● Как организовать переходы между веб-
страницами? ● о структуре HTML-документа;
● Как создать многостраничный веб-сайт? ● об основных тегах, предназначенных для
форматирования текста;
● Как комбинировать
● как создавать нумерованные и маркированные
автоматизированный и ручной методы
списки;
разработки веб-сайтов?
● как использовать каскадные таблицы стилей
при дизайне веб-сайта;
● в каких случаях используются таблицы, блочная
верстка и фреймы;
● как осуществлять переходы между веб-
страницами;
● как совместить автоматизированный и ручной
методы разработки веб-сайтов.

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

69
Структура HTML-документа. Основные теги
4.1 форматирования текста в HTML

Почему стоит выбрать ЗАДАНИЕ 1. Назови, какие методы разработки веб-сайтов изображены на
ручную верстку, а не кон- рисунке, и укажи их преимущества и недостатки.
структор веб-сайтов?
Какова структура HTML-
документа?
Как использовать НТМL-
теги при форматировании
текста веб-страницы?

HTML (HyperText Markup Language) – язык разметки (маркировки) ги-


пертекста. HTML не является языком программирования, он создан для
разметки веб-страниц. С помощью языка разметки браузер получает
инструкции об отображении текстов, мультимедиа и других элементов
страницы на экране. Необходимо помнить, что отображение одного и
того же кода может отличаться при использовании не только разных
браузеров, но и их версий. Поэтому после разработки HTML-документа
необходимо провести тестирование страницы на разных браузерах.
Перечислим преимущества использования ручной верстки по сравне-
нию с версиями, использующими CMS-систему. Из предыдущего раздела
ты знаешь, что CMS представляет собой информационную систему, или
программное обеспечение, предназначенное для совместного процесса
создания, редактирования и управления содержимым документа.
1. HTML-документы меньше по размеру.
2. Разработанные HTML средствами документы загружаются и рабо-
тают значительно быстрее и расходуют меньше серверных ресурсов.
3. В HTML-документах отсутствуют дополнительные коды, добавляемые
CMS-системами.
4. HTML-документы не требуют обновлений среды загрузки или
отдельных модулей.
5. Простой способ создания резервных копий, то есть достаточно пря-
мого копирования папок с HTML и используемых мультимедиа файлов.
Также возможно копирование файлов на хостинги.
6. Низкая стоимость разработки всего сайта и аренды хостинга.
7. Не нарушается целостность HTML-документа, так как информация
хранится непосредственно в теле страницы.
Наряду с преимуществами существуют недостатки HTML-документов,
а именно:
1. Сложность редактирования каждой страницы.
2. Для работы с документами требуются базовые знания HTML.
70
ЗАДАНИЕ 2. Используя Интернет, дополни список преимуществ и недостатков
HTML-документов по сравнению с CMS-версиями. Ответ оформи в виде таблицы
или постера.
HTML-документ создается в простом текстовом редакторе и не требует
специальной среды разработки. Расширение файлов: HTM, HTML. Код
разметки в HTML состоит из «тегов». Название тега заключается в угло-
вые скобки «<» и «>». Различают открывающиеся и закрывающиеся теги.
Отличие в том, что закрывающиеся теги имеют символ «/». Также теги
делятся на парные и непарные. Парные теги показывают диапазон влияния
правила <название тега> … </название тега> и являются «контейнером».
Непарные теги сразу содержат название, атрибуты и являются только
открывающимися <название тега, атрибуты, их значения>. Парные теги
должны быть вложенными.
Структура HTML-документа состоит из двух частей: головной и «тела».

Теги в HTML Описание тегов Пример использования тегов Результат выполнения


<html>… Корневой элемент Присутствует во всех
</html> HTML-документах
<head> Теги, указанные в этом разделе, <head> 1) Настройка кодиров-
… не отображаются на странице и <meta charset="utf-8"> ки текста: возможность
</head> описывают необходимые сти- <title>Моя первая програм- отображения Юникода;
ли, связи между файлами и т.д., ма</title> 2) определение заго-
влияющие на дизайн страницы. </head> ловка страницы.
<body> Раздел, в котором формируется <body> Отображение абзаца
… содержание страницы. Правила, <p align=center> «Привет, МИР!» с вы-
</body> установленные тегами в данном Привет, МИР!!! равниванием по цен-
разделе, отображаются на стра- </p> тру.
нице. </body>

Код программы Результат выполнения в браузере


<html>
<head>
<meta charset="utf-8">
<title> Моя первая программа </title> Привет, МИР!!!
</head>
<body>
<p align=center>
Привет, МИР!!!
</p>
</body>
<html>

ЗАДАНИЕ 3. Набери предложенный выше код в текстовом редакторе, сохрани


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

71
Основные теги редактирования текста

Пример использо-
Назначение Тег Атрибуты Результат
вания тега
1 Установка <Hn>…</ Align – положение за- <H1 align=center>
уровня заго- Hn>, 1≤n≤6. головка на странице. Привет!
Привет!
ловков Значения: </H1>
left, right, center, justify.

2 Рисование <HR> - Аlign – определяет <HR align=center


горизон- (непарный выравнивание линии; color=red
тальной тег) - color – цвет линии; noshade size=3px
линии - noshade – рисует ли- width=70%>
нию без трехмерных
эффектов;
- size – толщина линии;
- width – ширина
линии.
3 Переход на <BR> <p align=center>
новую стро- Привет, МИР!!!
Привет, МИР!!!
ку аналогич- <BR> Привет, мой Привет, мой город!
но клавише город!
ENTER </p>
Теги форматирования текста
4 Установка <Font> - Сolor – устанавливает <p><font size="5"
шрифтов на … цвет текста; color="red"
определен- </Font> - face – определяет face="Arial">Мое
ный диапа- гарнитуру шрифта; хобби</font>фут-
зон текста - size – задает размер бол. Я занимаюсь
шрифта в условных этим видом спорта
единицах. с 5 лет. </p>
5 Курсив
<I>...</I> <I>Привет</I> Привет
(italic)
6 Жирный
<B> ...</B> <B> Привет</B> Привет
(bold)
7 Подчер-
кивание <U> ...</U> <U> Привет</U> Привет
(underline)
8 Зачеркива-
ние (strike <S> ...</S> <S>Привет</S> Привет
out)
9 Верхний
<SUP></
индекс x<SUP>2</SUP> x2
SUP>
(superscript)
10 Нижний
<SUB>…</ Н<SUB> 2 </
индекс H 2O
SUB> SUB>О
(subscript)

ЗАДАНИЕ 4. Найди тег для изменения цвета фона страницы в Интернете.


Составь список цветов, используемых при разработке веб-страницы.

72
ЗАДАНИЕ 5. Создай веб-страницу аналогично представленной на рисунке,
озаглавь страницу «Страница обо мне».

Моё хобби!

В свободное время я люблю заниматься спортом. Мне нравятся активные виды


спорта, например, волейбол, баскетбол, катание на коньках и роликах. Но больше
всего я люблю футбол. Я болею за футбольный клуб «Шахтёр».
Я с ребятами много времени провожу на футбольном поле.

ЗАДАНИЕ 6. Добавь на веб-страницу следующие теги форматирования текста


и посмотри их эффект:
<strong>, <em>, <mark>, <small>, <del>, <ins>, <sub>, <sup>.

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Выбери альтернативный тег 2) Выбери альтернативный тег 3) Выбери альтернативный тег
тегу <B>…</B>. тегу <I>…</I>. тегу <U>…</U>.
a) <em>…</em> a) <em>…</em> a) <em>…</em>
b) <strong>… </strong> b) <strong>… </strong> b) <strong>… </strong>
c) <ins>…</ins> c) <ins>…</ins> c) <ins>…</ins>
d) <del> …</del> d) <del> …</del> d) <del> …</del>
e) <mark>…</mark> e) <mark>…</mark> e) <mark>…</mark>

2. Установи соответствие между тегами и их назначениями.


1 <body bgcolor=red>…</body> A Установка курсивного шрифта
2 <font color=red> B Задание цвета фона
3 <I>text</I> C Установка цвета текста
4 <p>text</p> D Заголовок текста
5 <H1>text</H1> E Абзац текста
3. Выбери верные ответы для форматирования 5*. Создай веб-страницу о своем хобби.
текста: Привет! Критерии оценивания:
a) <I><B>Привет!</B></I> 1) Установить фон веб-страницы.
b) <U><B>Привет!</B></U> 2) Использовать заголовок по центру.
c) <em><strong>Привет!</strong></em> 3) Использовать не менее двух абзацев.
d) <em><B>Привет!</B></em> 4) Форматировать текст: цвет, размер, стиль шрифта.
e) <ins><B>Привет!</B></ins> 5) Использовать начертания шрифтов: курсив,
полужирный и подчеркнутый.
4*. Разъясни атрибуты тега <HR> и добавь его для
6) Использовать разделительную линию.
отображения горизонтальной линии без трех-
7) Использовать переход на новую строку в абзаце.
мерного эффекта.
<HR - align=right color =red size=5 width=75%>

73
Структурирование информации в HTML
4.2
ЗАДАНИЕ 1. Сравни варианты представления данных на веб-странице и обсуди
с одноклас­сником преимущества использования каждого из них.
Как создать нумерован-
ный или маркированный
Прейскурант цен на платные услуги,
список на веб-странице? Прейскурант цен на платные услуги,
Как создать таблицу
оказываемые спортивным
оказываемые спортивным
на веб-странице? клубом «Мұрагер»
клубом «Мұрагер» (цены указаны в тенге за месяц – 8 посещений)
(цены указаны в тенге за месяц – 8 посещений)
Стоимость
Вид спорта Направления
1) Гимнастика: (в тг.)
• спортивная - 5000; Спортивная 5000
• художественная - 6000; Гимнастика Художественная 6000
• акробатическая - 7000.
2) Борьба: Акробатическая 7000
○ вольная -10 000; Вольная 10 000
○ греко-римская –12 000; Борьба Греко-римская 12 000
○ дзюдо - 15 000.
Дзюдо 15 000
3) Теннис:
▪ большой – 15 000; Большой 15 000
Теннис
▪ настольный – 12 000. Настольный 12 000

а) b)

Для создания списков используются два парных тега.


Описание тегов Пример исполь­
Теги в HTML Результат выполнения
и атрибутов зования тегов
<UL> Маркированный список <ul type= “disc”>
<LI> …</LI> атрибут TYPE со следующи- <li>футбол</li>
… ми значениями: <li>хоккей</li> Пример использования атрибута disk в маркированном списке:

</UL> - type = “disc” (●); </ul> ● Футбол


● Хоккей
- type = “circle” (○); Пример использования атрибута circle в маркированном списке:
- type = “square” (□). o Футбол
o Хоккей
Пример использования атрибута square в маркированном списке:
■ Футбол
■ Хоккей

<OL> Нумерованный список <ol type= “1”>


<LI> …</LI> атрибут TYPE со следующи- <li>Зимние виды
… ми значениями: спорта</li> Пример использования атрибута «1» в маркированном списке:

</OL> - арабские числа TYPE= “1”; <li>Летние виды 1. Футбол


2. Хоккей
- прописные буквы латин- спорта</li> Пример использования атрибута «А» в маркированном списке:
ского алфавита TYPE= “A”; </ol> А. Футбол
В. Хоккей
- строчные буквы латин- Пример использования атрибута «а» в маркированном списке:
ского алфавита TYPE= “a”; a. Футбол

- римские числа в верхнем


b. Хоккей
Пример использования атрибута «I» в маркированном списке:
регистре TYPE= “I”; I. Футбол
- римские числа в нижнем II. Хоккей

регистре TYPE= “i”.


Пример использования атрибута «і» в маркированном списке:
i. Футбол
ii. Хоккей

74
ЗАДАНИЕ 2. Создай веб-страницу для рисунка (а) задания 1 по образцу.

<!DOCTYPE html>
<html>
<head> Виды спорта
<title>Lists</title> 1. Зимние виды спорта:
• фигурное катание;
</head> • хоккей;
<body> 2. Летние виды спорта:
<H1 align=center><font color=”red”>Виды спорта</font></H1> o пляжный волейбол;
o футбол;
<OL> 3. Единоборства:
<LI><font color=”red”>Зимние виды спорта:</font></LI> ▪ джиу-джитсу;
<UL type=”disc”> ▪ женская борьба;
▪ борьба на поясах.
<I><font color=”blue”>
Выбери спорт по душе!
<LI>фигурное катание;</LI>
<LI>хоккей;</LI>
</font></I>
</UL> ЗАДАНИЕ 3. Обсуди, какими данными
<LI><font color=”red”>Летние виды спорта:</font></LI> можно заполнить предложенные таблицы.
<UL type=”circle”> Обрати внимание на структуру таблиц.
<I><font color=”green”>
<LI>пляжный волейбол;</LI> 1
<LI>футбол;</LI>
</font></I>
</UL>
<LI><font color=”red”>Единоборства:</font></LI>
<UL type=”square”>
<I><font color=”gold”> 2
<LI>джиу-джитсу;</LI>
<LI>женская борьба;</LI>
<LI>борьба на поясах.</LI>
</font></I>
</UL>
</OL> 3
<U> <font color=”red”>Выбери спорт по душе!</font></U>
</font></p>
</body>
</html>

Теги Пример Результат выполнения программного кода


<caption>…</caption> <table>
Парный тег <table>…</ <caption> Образец таблицы
table> – создание </caption>
таблицы <tr> Образец таблицы
Поле1 Поле2 Поле3
<th>Поле1</th> Инфо1 Инфо2 Инфо3
<th>…</th> – для <th>Поле2</th>
создания столбцов <th>Поле3</th>
заголовка </tr>
<td>… </td> – для <tr>
создания столбцов <td>Инфо1</td>
<td>Инфо2</td>
<tr>…</tr> – для
<td>Инфо3</td>
создания строк
</tr>
</table>

75
Чтобы установить границы таблицы и другие параметры, необходимо
использовать следующие атрибуты:
Атрибут Описание Пример
align определяет выравнивание таблицы align=center
background задает фоновый рисунок в таблице background=”C:/1.png”
bgcolor цвет фона таблицы bgcolor=yellow
border толщина рамки в пикселях border="3"
bordercolor цвет рамки bordercolor=red
cellpadding отступ от рамки до содержимого ячейки cellpadding="2"
cellspacing расстояние между ячейками cellspacing="5"
cols число колонок в таблице Редко используемый атрибут
frame сообщает браузеру, как отображать границы вокруг таблицы. frame="vsides"
Значения:
void - не рисовать границы;
border - граница вокруг таблицы;
above - граница по верхнему краю таблицы;
below - граница снизу таблицы;
hsides - добавлять только горизонтальные границы;
vsides - рисовать только вертикальные границы;
rhs - граница только на правой стороне таблицы;
lhs - граница только на левой стороне таблицы;
border - граница вокруг таблицы;
above - граница по верхнему краю таблицы;
below - граница снизу таблицы;
hsides - добавлять только горизонтальные границы;
vsides - рисовать только вертикальные границы;
rhs - граница только на правой стороне таблицы;
lhs - граница только на левой стороне таблицы.
height высота таблицы height=70%
rules сообщает браузеру, где отображать границы между ячейками Редко используемый атрибут
summary краткое описание таблицы Редко используемый атрибут
width ширина таблицы width=70%

<table border=“1”>
<tr> ЗАДАНИЕ 4. При создании сложных таблиц используются атрибуты rowspan
<td rowspan=“3”>span 3 и colspan. Набери предложенный ниже код и определи назначение каждого из
rows</td>
<td colspan=“3”>span 3 атрибутов. Используй их при создании таблиц на своей веб-странице.
columns</td>
</tr> ЗАДАНИЕ 5. Изучи предложенные коды и результаты выполнения HTML-
<tr> файлов, установи соответствия. Обоснуй свой ответ.
<td>H</td>
<td>T</td> 1 <table border=“1”> А
<td rowspan=“2”>span 2 <tr>
rows</td>
</tr> <th>Имя</th><th
<tr> colspan=“2”> Телефон </th> ФИО Телефон
<td>M</td> </tr> Петя Иванов 123 45 67 234 56 78
<td>L</td> <tr>
</tr>
<tr> <td>Петя Иванов</
<td colspan=“4”>span 4 td><td>123 45 67</td>
columns</td> <td>234 56 78</td>
</tr> </tr>
</table> </table>
76
2 <table border=“1”> В
<tr>
<th>Имя</th><td>Пе-
тя Иванов</td> ФИО Петя Иванов Знаешь ли ты?
</tr> 123 45 67 Тимоти Джон Бернерс-Ли,
<tr> Телефон будучи сотрудником Евро-
<th rowspan=“2”>- 234 56 78
пейской лаборатории по
Телефон</th><td>123 45 ядерным исследованиям
67</td> Conseil Européen pour la
</tr> Recherche Nucléaire (CERN),
<tr><td>234 56 78</ в 1989 году создал первую
td></tr> версию HTML для формати-
</table> рования научных докумен-
тов. Данная система была
ЗАДАНИЕ 6. Создай веб-страницу для рисунка (б) задания 1, используя раз- предназначена для внутрен-
личные атрибуты тегов таблиц. него документооборота. В
1991 году язык разметки
<html> гипертекста был доработан
<head> и применен для передачи
<meta charset="utf-8"> данных во Всемирной пау-
Вид спорта Направления <title>Страница обо мне</ тине. На сегодняшний день
title> большей популярностью
Зимние виды фигурное катание
спорта </head> пользуется XML (eXtensible
хоккей Markup Language). Также
<body>
Летние виды пляжный волейбол <table border="1"> использование JavaScript
спорта расширяет возможности
футбол <tr>
дизайна веб-страницы.
джиу-джитсу <th>Вид спорта</th><th>На-
Единоборства женская борьба правления</th>
</tr>
борьба на поясах
<tr>
<td rowspan="2">Зимние
виды спорта</td><td>фигурное
катание</td>
</tr>
<tr><td>хоккей</td></tr>
<tr>
<td rowspan="2">Летние
виды спорта</td><td>пляжный
волейбол
</tr>
<tr><td>футбол</td></tr>
<tr>
<td rowspan="3">Единобор-
ства</td><td>джиу-джитсу</td>
</tr>
<tr><td>женская борьба</
td></tr>
<tr><td>борьба на поя-
сах</td></tr>
</table>
</body>
<html>
ЗАДАНИЕ 7. Дополни веб-страницу о хобби, созданную на прошлом уроке,
информацией в виде списков и таблиц.

77
ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Выбери тег для определения наименования таблицы:
a) <table>…</table>;
b) <name>…</name>;
c) <caption>…</caption>;
d) <th>…</th>;
e) <tr>…</tr>.
2) Выбери атрибут для определения фонового рисунка в таблице:
a) background; b) bgcolor; c) bordercolor; d) cellpadding; e) summary.
3) Выбери атрибут для определения отступа от рамки до содержимого ячейки:
a) background; b) bgcolor; c) bordercolor; d) cellpadding; e) summary.
4) Выбери атрибут для объединения ячеек строки:
a) rows; b) colspan; c) columns; d) rowspan; e) collspan.
5) Выбери атрибут для объединения ячеек столбца:
a) rows; b) colspan; c) columns; d) rowspan; e) collspan.
2. Классифицируй предложенные теги:
1) для создания списков;
2) для создания таблицы.
A) <UL>…</UL>
B) <TH>…</TH>
C) <OL>…</OL>
D) <TR>…</TR>
E) <TD>…</TD>
3. Выбери истинные утверждения.
A) Атрибуты colspan и rowspan используются для объединения ячеек строк и столбцов соответ-
ственно.
B) Вackground, bgcolor, bordercolor используются для задания парамет­ров фона таблицы.
C) Наименование таблицы можно задать тегами <caption>…</caption> и <name>…</name>.
D) Нумерованные списки создаются с помощью тега <UL>…</UL>, а маркированные – с помощью
тега <OL>…</OL>.
E) Для создания столбца с заголовком используется тег <TD>…</TD>.

4*. Напиши код для создания таблицы и заполни своими данными.

5*. Дан текст. Структурируй его в виде списка или таблицы, напиши соответствующий HTML-код.
Вид спорта – совокупность спортивных соревнований со схожими правилами и одинаковыми при-
знаками. Зимние виды спорта: хоккей, фигурное катание. Летние виды спорта: катание на роликах,
волейбол, футбол.

78
Применение CSS при разработке веб-сайтов
4.3
ЗАДАНИЕ 1. Айбар решил создать веб-сайт из нескольких веб-страниц. Он
хотел бы использовать единый дизайн для таблиц, текста и других элементов.
Посоветуй способ решения проблемы. Как использовать CSS при
разработке веб-страницы?
CSS (Cascading Style Sheets) – каскадные таблицы стилей, предназна-
ченные для установки индивидуальных цветов, фона, окантовки и прочих
свойств.
Существует три способа задания стилей:
1) Внешний (External CSS). Стили, используемые в дизайне веб-стра-
ницы, хранятся в отдельном файле формата CSS и при необходимости
подключаются в HTML-код с помощью тега <link>, который не будет
отображаться на странице и, следовательно, находиться между парным
тегом <head> … </head>. Этот способ удобен для установки одинаковых
стилей нескольких веб-страниц, содержащихся на одном веб-сайте, или
же для нескольких веб-страниц, имеющих схожую тематику или направ-
ление. Преимуществом использования каскадных таблиц стилей является
автоматическое изменение стилей при их редактировании в CSS-файле,
что позволяет разработчикам экономить время при написании HTML-кода.
Также выделение стилей в отдельный файл позволяет сделать HTML-код
намного проще и понятнее. Пример кода:
1.html Имя_файла.css
… p {color: green;}
<head>
...
<link rel=“stylesheet” href=“Путь/Имя_файла.css”>
</head>
<body>
<p>Текст</p>
</body>

2) Внутренний (Internal CSS). Стили, используемые в дизайне веб-стра-


ницы, прописаны в головной части файла с помощью тега <style>. Этот
способ подходит для оформления одностраничных сайтов.

… … …
<head> <head> <head>
… … …
<style> <style> <style>
p {color:green;} .st1 {color:green;} #st2 {color:green;}
</style> </style> </style>
</head> </head> </head>
<body> <body> <body>
<p>Текст</p> <p class=”st1”>Текст</p> <p id=”st2”>Текст</p>
</body> </body> </body>
… … …

79
… 3) Встроенный (InLineCSS). Также стили можно указывать через атрибут
<head> style для каждого тега отдельно. Этот способ используется при необхо-
… димости подавления ранее указанных стилей, либо при их однократном
</head> использовании.
<body>
<p style=“color:green;”> ЗАДАНИЕ 2. Изучи ниже предложенный код и определи стиль класса st1.
Текст</p> Запиши стиль класса st2, указанный для второй половины текста: цвет – синий,
</body> кегль – 16, стиль – Arial. Определи представленный способ подключения CSS и
</html> используй другие способы.

1.html st.css
<html> .st1 {
<head> color: red;
<link rel=”stylesheet” href=”st.css”> font-size: 14px;
</head> font-family: Times New Roman;
<body> }
<p><font class=”st1”>Сегодня прекрасный день!!</font>
<font class=”st2”>У меня хорошее настроение!</font></p>
</body>
</html>

ЗАДАНИЕ 3. Изучи предложенный HTML-код и оптимизируй его. Поэкспе-


риментируй со стилями таблиц на компьютере. Определи сходства и различия
таблиц.
Padding – определяет
значение полей вокруг <html>
содержимого элемента. <head>
<style>
table, td, th {
Cellspacing – border: 4px outset blue;
определяет расстояние border-spacing: 5px;
между внешними }
границами ячеек. .st1 { border-collapse: collapse; }
При использовании </style>
атрибута «border» </head>
толщина границы
принимается <body>
в расчет. <table>
<tr><th>Имя</th><th>Фамилия</th></tr>
<tr><td>Айбар</td><td>Ахметов</td></tr>
<tr><td>Арслан</td><td>Нурланов</td></tr>
</table>
<br>
<table class="st1">
<tr><th>Имя</th><th>Фамилия</th></tr>
<tr><td>Айбар</td><td>Ахметов</td></tr>
<tr><td>Арслан</td><td>Нурланов</td></tr>
</table>
</body>
</html>
</EXP>

80
ЗАДАНИЕ 4. Изучи HTML-код и определи статус каждого члена семьи.
HTML-код Результат выполнения
<html> Имя Фамилия Статус
<head>
<style> Нурлан Ахметов
table { Арзу Ахметова
width: 70%;
border-collapse: collapse; Айбар Ахметов
} Айна Ахметова
td, th {
border: 1px solid #98bf21;
padding: 3px 7px 2px 7px;
}
th {
text-align: left;
padding: 5px;
background-color: #A7C942;
color: #fff;
}
.alt td { background-color: #EAF2D3; }
</style>
</head>
<body>
<table>
<tr><th>Имя</th><th>Фамилия</th><th>Статус</th></tr>
<tr class=”alt”><td>Нурлан</td><td>Ахметов</td><td>отец</
td></tr>
<tr><td>Арзу</td><td>Ахметова</td><td>мама</td></tr>
<tr><td>Айбар</td><td>Ахметов</td><td>сын</td></tr>
<tr class=”alt”><td>Айна</td><td>Ахметова</td>дочь<td></
td></tr>
</table>
</body>

ЗАДАНИЕ 5. На основе предложенных HTML-кодов создай новый код: фон


таблицы – серый, двойная рамка синего цвета, цвет текста – зеленый. Добавь
заголовок к таблице и протестируй код на компьютере, используй внешний
(External CSS) способ.

HTML-код Результаты
<html> Заголовок 1 Заголовок 2
<head>
<style type=”text/css”> Ячейка 3 Ячейка 4
TABLE {
background: white;
color: white;
}
TD, TH {
background: maroon;
padding: 5px; }
</style>
</head>

81
<body>
<table cellspacing=”1”>
<tr><th>Заголовок 1</th><th>Заголовок 2 </th></tr>
<tr><td>Ячейка 3</td><td>Ячейка 4 </td></tr>
</table>
</body>
</html>
<html>
Заголовок 1 Заголовок 2
<head>
<style type=”text/css”> Ячейка 3 Ячейка 4
TABLE {
background: #dc0;
border: 5px double #000;
}
TD, TH {
padding: 5px;
border: 1px solid #fff;
}
</style>
</head>
<body>
<table>
<tr><th>Заголовок 1</th><th>Заголовок 2 </th></tr>
<tr><td>Ячейка 3</td><td>Ячейка 4 </td></tr>
</table>
</body>
</html>

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Определи способ записи CSS стилей. Стили, 3) Определи способ записи CSS стилей. Стили,
используемые в дизайне веб-страницы, хра- используемые в дизайне веб-страницы, ука-
нятся в отдельном файле формата CSS и при заны через атрибут style для каждого тега
необходимости подключаются в HTML-код с отдельно.
помощью тега <link>. a) внедренный;
a) внедренный; b) внешний (External CSS);
b) внешний (External CSS); c) внутренний (Internal CSS);
c) внутренний (Internal CSS); d) определяемый;
d) определяемый; e) встроенный (InLineCSS).
e) встроенный (InLineCSS).
4) … – определяет значение полей вокруг со-
2) Определи способ записи CSS стилей. Стили, держимого элемента.
используемые в дизайне веб-страницы, про- a) double;
писаны в головной части файла с помощью b) padding;
тега <style>. c) cellspacing;
a) внедренный; d) separate;
b) внешний (External CSS); e) collapse.
c) внутренний (Internal CSS);
d) определяемый;
e) встроенный (InLineCSS).

82
5) … – подавляет одну границу, и у таблиц имеется одна общая граница.
a) double;
b) padding;
c) cellspacing;
d) separate;
e) collapse.

2. Установи соответствие.

1 border-color: red green blue; A

2 border-color: red green; B

3 border-color: red blue green gold; C

3. Классифицируй предложенные CSS стили.

1 border: solid 4px;


2 color: red;
3 font-size: 14px;
4 border-color: red green;
5 border-collapse: collapse;
A: форматирование текста;
B: форматирование таблицы.

4. Выполни тест (выбери несколько верных ответов).


1) Определяет стиль границ таблицы: 3) Определяет цвет границ ячеек таблицы:
a) dashed; a) color: red;
b) padding; b) table red blue green;
c) groove; c) table red;
d) separate; d) border-color: red green blue;
e) collapse. e) border-color: red.
2) Определяет вид границ между ячейками:
a) dashed;
b) padding;
c) groove;
d) separate;
e) collapse.

83
4) Предложенный CSS стиль соответствует:
<style type="text/css">
TABLE {
background: grey;
border: double blue;
color: green;
}
</style>
a) серый фон ячеек, пунктирная рамка синего цвета;
b) серый фон ячеек, двойная рамка синего цвета;
c) цвет текста – зеленый;
d) цвет текста – серый;
e) двойная рамка серого цвета.
5) Установка CSS стиля для тегов в веб-странице внутренним (Internal CSS) способом:
a) <link rel="stylesheet" href="st.css">;
b) <font class="st1">;
c) <p style="color:green;">;
d) <font id="st1">;
e) <font id="#st1">.

5*. Изучи веб-страницу и определи использованные CSS стили.

Имя Фамилия
Айбар Ахметов
Арслан Нурланов

84
Блочная верстка веб-страницы
4.4
ЗАДАНИЕ 1. Рекламной компании необходимо создать информационный сайт,
опираясь на предыдущий опыт. Предложи решение для разработчиков.
Как изменится веб-стра-
ница после применения
блочной верстки?

Для выделения фрагмента веб-страницы и изменения его внешнего Box-sizing – свойства


вида предназначен тег блочной верстки <div>. Обычно на странице рас- «width» и «height»
полагают несколько блоков разных стилей, поэтому параметры целесо­ задают размеры не
образно указывать с помощью CSS стиля. Для указания соответствующего содержания, а блока.
стиля в теге <div> используют атрибуты «class» или «id». Альтернативой
блочной верстки является таблица, но ее возможности ограничены, на- Position
пример, с ее помощью наложение блоков друг на друга, их произволь- устанавливает способ
ное размещение на странице или другие варианты невозможны, так как позиционирования
положение ячеек таблицы, их количество фиксировано. элемента относительно
С помощью блочной верстки возможно создание красочной, структу- окна браузера или
рированной веб-страницы. Блоки могут иметь различные размеры, цвета, других объектов на
обрамления, расположение. В них можно включать любые другие теги. веб-странице.
Разберем примеры блочной верстки.
В данном примере рассмотрена вложенность блоков. Фрагментиро-
вание первым способом будет организовано таким образом, что блок Margin задает внешние
отступы элемента от
шириной во всю страницу будет содержать три блока, во втором спо-
других объектов.
собе – четыре блока по 25% ширины страницы, а они в свою очередь
содержат разноцветные блоки с разными стилями. Такое структуриро-
вание документа исключает сдвиг блоков и способствует эстетическому Display – способ
оформлению веб-страницы. размещения блоков
по горизонтали.

85
Рассмотрим параметры атрибута border.
Атрибут Описание Пример
none или hidden отменяет границу Без границ

dotted рамка из точек 1 Блок

dashed рамка из тире 2 Блок

solid простая линия 3 Блок

double двойная рамка 2 Блок

groove рифленая 3D граница

ridge, inset, outset различные 3D эффекты рамки 2 Блок

применяется значение родительского


inherit 2 Блок
элемента

Вorder-width – толщина рамки.


Задается в пикселях (px) или указываются thin, medium, thick.
Ширина блока или таблицы может задаваться конкретными числовыми
значениями в px или %, а также width: calc(значение1 –/+ значение2) –
вычисляемая ширина блока.

1 способ 2 способ
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
< style type=”text/css”> <style type="text/css">
div { box-sizing: border-box; } .block1
.my_boks { {
position: relative; width: 100%; float: left;
width: 100%; }
display: block; .block2 {
margin: 0 auto; float: left; width: 25%;
padding: 0; }
text-align: center; .block3 {
} margin: 10px; padding: 10px;
.my_boks1, .my_boks2, .my_boks3 { border: 1px solid grey;
margin: 10px; height: 200px;
padding: 20px 10px; border: 5px dashed Violet;
width: calc(33% - 24px); background:SlateBlue;
display: inline-block; color: White;
} font-weight: 600;
}
86
1 способ 2 способ
.my_boks1 .block4 {
{ margin: 10px; padding: 10px;
background-color: DodgerBlue; border: 5px dotted Red;
border: 5px dotted Violet; } margin-top: 20%;
.my_boks2 height: 300px;
{ background:Pink;
background-color: MediumSeaGreen; color: DodgerBlue;
border: 5px dotted Green; font-weight:600; }
} </style>
.my_boks3 </head>
{ <body>
background-color: Pink; <div class="block1">
border: 5px dotted SlateBlue; <div class="block2">
} <div class="block3">
</style> Блок 1
</head> </div>
<body> </div>
<div class=”my_boks”> <div class="block2">
<div class=”my_boks1”>1 Блок</div> <div class="block4">
<div class=”my_boks2”>2 Блок</div> Блок 2
<div class=”my_boks3”>3 Блок</div> </div>
</div> </div>
</body> <div class="block2">
</html> <div class="block3">
Блок 3
Результат </div>
</div>
<div class="block2">
<div class="block4">
1 Блок 2 Блок 3 Блок Блок 4
</div>
</div>
</div>
<div style="clear: both;"></div>
</body>
</html>

Результат

Блок 1 Блок 3
Блок 2 Блок 4

87
Стили границ блоков ручной верстки идентичны атрибутам формати-
рования границ таблицы.
Для форматирования текста также можно использовать:
Атрибут Значение Описание
font-weight: значение (от 100 до 900) или указать “bold/normal” устанавливает полужирный шрифт
font-family: Times New Roman (название стиля шрифта) устанавливает стиль шрифта
font-style: italic устанавливает курсивный шрифт
blink мигающий текст
line-through перечеркнутый текст
text-
overline линия находится над текстом
decoration:
underline подчеркнутый текст
none отменяет все эффекты
xx-small соответствующий размер в HTML=1
small соответствующий размер в HTML=2
medium соответствующий размер в HTML=3
font-size:
large соответствующий размер в HTML=4
x-large соответствующий размер в HTML=5
xx-large соответствующий размер в HTML=6

Также размер можно указать в px, pt, %, реже – в em, ex.

ЗАДАНИЕ 2. Используя один из предложенных выше HTML-кодов, заполни


информацию о себе и своих друзьях.

ЗАДАНИЕ 3. Помоги Айбару создать веб-страницу для рисунка задания 1,


используя блочную верстку.

Доска объявлений
1001 мелочь
Продаются полезные
в хозяйстве предметы. Спешите!
Molotok.kz
Стройматериалы по выгодной
цене!
Нарасхват!
Кондитерские и хлебобулочные
изделия!

ЗАДАНИЕ 4. При использовании нумерованных и маркированных списков


пункты располагаются по вертикали. Применив блочную верстку, расположи
пункты списка по горизонтали.
88
ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Для блочной верстки используется тег: 3) … – устанавливает способ позиционирования
a) <Table>…</Table>; элемента относительно окна браузера или
b) <DIV>…</DIV>; других объектов на веб-странице:
c) <OL>…</OL>; a) рadding;
d) <UL>…</UL>; b) вox-sizing;
e) <HR>. c) рosition;
d) мargin;
2) … – свойства «width» и «height» задают раз- e) display.
меры не содержания, а блока:
a) рadding; 4) … – способ размещения блоков по горизон-
b) вox-sizing; тали:
c) рosition; a) рadding;
d) мargin; b) вox-sizing;
e) display. c) рosition;
d) мargin;
e) display.
5) … – задает внешние отступы элемента от других объектов:
a) рadding;
b) вox-sizing;
c) рosition;
d) мargin;
e) display.
2. Выбери истинные утверждения.
1) Атрибуты форматирования границ таблицы можно применять при форматировании границ блоков.
2) Блоки можно располагать только по вертикали.
3) Блоки можно располагать только по горизонтали.
4) Блоки можно накладывать друг на друга.
5) К блокам можно применять CSS стили.
3. Установи соответствие.

.my_boks1 { background- 1 Блок


1 color: DodgerBlue; border: A
5px dotted blue;}

89
.my_boks1 {background- 1 Блок
2 color: Pink; border: 5px B
dotted blue;}

.my_boks1 {background- 1 Блок


3 color:yellow; border: 5px C
dotted blue;}

4*. Найди ошибку в HTML-коде, сравнив с результатом его выполнения.


HTML-код Результат
<style>
div { box-sizing: border-box; }
.my_boks {
position: relative;
width: 50%;
display: block;
text-align: center;
border: 5px dotted Blue;
} 1 Блок
.my_boks1, .my_boks2, .my_boks3 {
margin: 10px;
padding: 20px 10px;
width: calc(55% - 24px);
display: inline-block;
}
.my_boks1 { background-color: DodgerBlue;
border: 5px dotted Red; }
</style>
<div class="my_boks">
<div class="my_boks1">1 Блок</div>
</div>

5*. Запиши коды для следующего описания веб-страницы.


Фон страницы – розовый. Заголовок соответствует контенту страницы. Расположены три разноцвет-
ных больших блока с пунктирными контрастными рамками. Форматирование текста: Ж, К, Ч, стиль и
размер шрифта – произвольный. Каждый блок включает короткий текст с выравниванием по левому,
правому краям и по центру.

90
Внедрение мультимедиа средствами HTML
4.5
ЗАДАНИЕ 1. Объясни важность использования изображения, музыкальных
и видеофайлов при создании веб-сайтов.
Как вставить мультимедиа
объекты на веб-страницу?

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


непарный тег <img scr …>, например, <img src="1.png">. Если в кавычках
указано только имя файла, значит, он находится в текущем каталоге. За-
пись пути к файлу "/img/1.png" предполагает расположение графического
изображения в папке «img». Если графический файл и HTML-документ
находятся на разных дисках, то указывается полный путь к файлу, включая
наименование диска.
В случае отсутствия файла по указанному пути или неверной записи
имени файла изображение не отображается на экране, поэтому реко-
мендуется запись тега с атрибутом «ALT»: <img src="/img/1.png" alt="Это
место для изображения">. Использование атрибута «ALT» дает понять, что
тег <img scr …> работает корректно, но есть проблемы при отображении
изображения.
Указание полного пути к файлу, расположенному на компьютере, на-
зывается абсолютной ссылкой. Для вставки изображений с различных
сайтов используются относительные ссылки, например, <img src="https://
my_lessons.com/img/1.png">.

91
Атрибут Значение Описание Пример
top, bottom, Аналогично текстовым редакторам
<img src="/img/1.png"
align middle, left и задает обтекание изображения тек-
align="right">
right стом и возможные значения
<img src="/img/1.png"
border px, % Задает ширину рамки изображения
border="2px">
<img src="/img/1.png"
height px, % Задает высоту изображения
height="200px">
<img src="/img/1.png"
width px, % Задает ширину изображения
width="200px">
Задает горизонтальный (слева и <img src="/img/1.png" hspace
hspace px, %
справа) отступ изображения ="5px">
Задает вертикальный (сверху и сни- <img src="/img/1.png" vspace
vspace px, %
зу) отступ изображения ="5px">

Значение атрибутов можно указывать без измерений, например, <img


src="/img/1.png" width="200">.
Также для вставки изображений можно использовать таблицу или
блочную верстку.

Код Результат

<table>
<tr>
<td> <img src="1.jpg" width="200"
height="200" alt=" Это место для изображения
"> </td>
<td> <img src="2.jpg" width="200"
height="200" alt=" Это место для изображения
"> </td>
</tr>
</table>


<style>
div.background {
position: fixed;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
}

img {
position: absolute;
top: 0;
left: 0;

92
При дизайне веб-страницы используют фоно-
right: 0; вый рисунок:
bottom: 0;
margin: auto; …
min-width: 50%; <head>

min-height: 50%;
<style>
} body {
</style> background: url(D:/2/1.jpg);
… color: #fff;
<body> }
<div class="background"> </style>
<img src="/2/2.jpg"> </head>
</div> <body>
</body> <p>...</p>
</html> </body>

ЗАДАНИЕ 2. Создай таблицу, состоящую из трех колонок, расположенных


в один ряд. Вставь в каждую ячейку изображение размером 200х200px. Добавь
название таблицы. При вставке изображений используй абсолютную и относи-
тельную ссылки.

ЗАДАНИЕ 3. Проведи эксперимент по внедрению gif-анимации на веб-


страницу.
Для привлечения внимания пользователей в рекламной отрасли часто
используют «бегущую строку». С помощью тега <marquee>…</marquee>
можно создать бегущую строку с динамичным текстом или рисунком.
<marquee direction="down" style="color: red; font-size: 20px; font-weight:
bolder; line-height: 150%; text-shadow: red 0px 1px 1px;">Бегущая строка
сверху вниз</marquee>.

ЗАДАНИЕ 4. Добавь изображение на ранее созданную веб-страницу о хобби.


Выполни обтекание картинки текстом. Используя интернет-ресурсы, определи
назначение атрибута «margin».

ЗАДАНИЕ 5. Осуществи обтекание изображения текстом с помощью блочной


верстки.

ЗАДАНИЕ 6. Добавь в HTML-документ о хобби бегущую строку, состоящую из


изображений.
К мультимедиа файлам относятся видео и аудиофайлы, для их вставки
используются следующие теги:
<audio src="URL"> </audio> <video>
или <source src="URL1">
<audio> <source src="URL2">
<source src="URL1"> <source src="URL3">
<source src="URL2"> </video>
<source src="URL3">
</audio>

93
Рассмотрим атрибуты для вставки аудио и видеофайлов.
Атрибут Описание
autoplay Автоматическое воспроизведение мультимедиа после его загрузки
controls Вывод панели управления к мультимедиа
loop Многократное воспроизведение файла
height Высота области воспроизведения видео
width Ширина области воспроизведения видео
preload Используется для загрузки мультимедиа вместе с загрузкой веб-страницы
src Указывает путь к воспроизводимому файлу

Пример внедрения видео и аудиофайлов на веб-страницу.

Фрагмент HTML-кода Результат


<video width="400" controls>
<source src="D:/2/1.mp4"
type="video/mp4">
</video>

<audio controls>
<source src=»D:/2/1.mp3»
type=»audio/mpeg»>
Your browser does not support the
audio element.
</audio>

Существует огромное количество форматов мультимедиа файлов.


Видеоформаты: MPG, MPEG, AVI, WMV, MOV, RM, RAM, SWF, FLV, OGG,
WEBM, MP4.
Аудиоформаты: MID, MIDI, RM, RAM, WMA, AAC, WAV, OGG, MP3.

ЗАДАНИЕ 7. Несмотря на большое количество форматов графических и муль-


тимедиа файлов, зачастую в веб-дизайне используют графические файлы фор-
матов JPG, PNG, аудиофайлы формата MP3 и видеофайлы формата MP4. Объясни
причину популярности данных форматов файлов.

ЗАДАНИЕ 8. Используй видео или аудиофайлы на веб-странице о своем хобби.


94
ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Атрибут для указания пути к файлу: 3) Атрибут вывода панели управления к муль-
a) src; d) margin; тимедиа:
b) scr; e) loop. a) loop; d) preload;
c) puth; b) controls; e) src.
c) autoplay;
2) Тег добавления «бегущей строки»:
a) <img>; 4) Атрибут для многократного воспроизведения
b) <string>…</string>; файла:
c) <div>…</div>; a) loop; d) preload;
d) <marquee>…</marquee>; b) controls; e) src.
e) <run string string>…</run string>. c) autoplay;

5) Добавление изображения в бегущую строку:


a) <marquee bgcolor="#00FF33" width="500px" height=»15px"> Изображение </marquee>;
b) <marquee direction="right">Изображение</marquee>;
c) <marquee direction="right" scrollamount="4"><img src="путь к файлу" border="0"/> </marquee>;
d) <marquee direction="up" bgcolor="#00FF33" width="150px" height="50px"><br /> Изображе-
ние</marquee>;
e) <marquee behavior="alternate" direction="right" scrollamount="1" bgcolor="#00FF33" width="500px"
height="20px">Изображение<a target="_blank" href=»http://mail.ru/" title="путь">Изображение</
a> </marquee>.
2. Установи соответствие.
<video width="400" controls>
Загрузка файла видео без панели управления,
1 <source src="mov_bbb.mp4" type="video/ A
длина видеоплеера – 400 пикселей
mp4">
<video height="400" controls>
Загрузка файла видео без панели управления,
2 <source src="mov_bbb.mp" type="video/ B
ширина видеоплеера – 400 пикселей
mp4">
<video height="400">
Загрузка файла видео с панелью управления,
3 <source src="mov_bbb.mp4" type="video/ C
ширина видеоплеера – 400 пикселей
mp4">
<video width="400" controls>
Загрузка файла видео с панелью управления,
4 <source src="mov_bbb.mp4" type="video/ D
длина видеоплеера – 400 пикселей
mp4">
3. Классифицируй форматы файлов:
1) MP4; 2) WMA; 3) PNG; 4) MP3; 5) WMV; 6) MOV; 7) MID; 8) JPG; 9) GIF; 10) AVI.
A) аудио; B) видео; C) графические.

4. Найди ошибки в HTML-коде.

HTML-код Результат

<video width="400" controls>


<source src="D:/2/1.mp4" type="video/
mp4">
</video>

5*. Запиши фрагмент HTML-кода для вставки видео размером 300х500 с выводом панели управления
с многократным повторением.
95
Использование гиперссылок на веб-сайте
4.6
ЗАДАНИЕ 1. Айбар увлекается футболом. Ему необходимо разработать сайт
болельщиков клуба. Сайт будет включать главную страницу, отражающую но-
Как организовать пере- вости о жизни клуба, состав игроков, переход на их страничку в социальных
ходы между веб-страни- сетях, график проведения игр, встреч с болельщиками. Помоги ему разработать
цами?
прототип будущего сайта.

Каждый день миллионы пользователей осуществляют поиск информа-


ции в Интернете. Как мы знаем, веб-браузер – программное обеспечение,
предназначенное для просмотра веб-страниц (электронных файлов фор-
мата HTML). После ввода и обработки запроса, введенного в поисковой
строке, перед пользователем появляется список рекомендуемых ресурсов,
при клике мыши происходит переход на веб-страницу. Таким образом,
просмотр HTML-документов в веб-браузере организован с помощью
гиперссылок.
В основе разработки веб-сайтов лежат ссылки, позволяющие осуще-
ствить переход между веб-страницами. Также ссылку можно организовать
на файл любого типа, расположенный на текущем или внешнем ресурсе.
Для создания гиперссылок используется парный тег <a>…</a>, обяза-
тельным атрибутом которого является href, задающий URL-адрес. Ссылка
включает в себя указатель и адресную часть. Указатель – видимая для
пользователя часть, которая может быть представлена в виде текста или
изображения, а адресная часть содержит адрес ресурса, к которому будет
выполнен переход.

96
URL (Uniform Resource Locator) – унифицированный адрес ресурса,
который имеет следующий формат: протокол://имя сервера: порт/путь.

Каждый протокол имеет свое назначение: Протокол – набор


– File – осуществляет доступ к файлу с локального диска устройства; соглашений, который
– HTTP – доступ к веб-странице по протоколу HTTP; определяет правила
– HTTPS – протокол HTTP, использующий шифрование, то есть пе- обмена данными в сети
Интернет.
редача данных имеет высокую степень защиты;
– FTP – осуществляет запрос на получение файлов, например, муль-
тимедиа;
– MailTo – организует почтовое соединение с указанием адресата.
Для указания адреса расположения необходимого ресурса использу-
ется абсолютный или относительный путь.
При использовании абсолютной ссылки необходимо указать адрес,
начиная с протокола. Такой вид ссылки часто используется для связи
с внешними ресурсами. В случае организации перехода между веб-
страницами внутри одного сайта лучше использовать относительные
ссылки, так как они короче и не загромождают код.
Рассмотрим некоторые атрибуты тега <a>…</a>.

№ Атрибут Описание Пример


1 download Информирует о необходимости загруз­ки файла <a href="/images/football.png"
при клике мышью по ссылке download><img src="/images/
football.png" alt="football"></a>
2 href Указывает на адрес ресурса, на который происхо- <a href="https://google.
дит ссылка com">Google</a>
3 hreflang Дает возможность поиска ресурсов на языке <a href="https://google.com"
пользователя hreflang="ru">Google</a>
4 target Указывает режим загрузки ссылаемого ресурса. <a href="https://google.com" target_
Возможные значения: blank> Google</a>
– self – загрузка файла в текущее окно;
– blank – загрузка файла в новое окно браузера;
– parent – загрузка файла во фрейм-родитель;
– top – загружается в полное окно браузера.

В качестве гиперссылки может выступать изображение.

Фрагмент Результат
<a href="http://livetv.sx/
allupcomingsports/1/" target="_
blank"><img src="https://uchebnik.
mos.ru/system_2/lesson_templates/
covers/001/650/045/original/s1200.
jpg" width="350" height="200"
alt="Football"></a>

97
ЗАДАНИЕ 2. Создай несколько веб-страниц о своем хобби и организуй связь
с главной страницей. Для этого используй нумерованный или маркированный
список, содержащий гиперссылки.
При работе с документами большого объема для перемещения
по веб-страницам актуально применение гиперссылки в виде закладки,
называемой якорем. Якорь устанавливается в два этапа: сначала опреде-
ляется закладка на странице и ей присваивается имя через атрибут "id",
затем с помощью атрибута "href" тега <a>…</a> выполняется переход.
Указание имени закладки в атрибуте "href" осуществляется с помощью
символа "#".

ЗАДАНИЕ 3. Протестируй предложенный HTML-код. Вместо параграфов, со-


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

<!DOCTYPE html> Результат выполнения HTML-кода


<html>
<head>
<meta charset="utf-8">
<title>Название документа</title>
<style> Для использования якоря целесообразно иметь текст
#navbar { большого объема.
margin: 0; Лионель
padding: 0; Месси
list-style-type: none; Диего
width: 100px; Марадона
}
#navbar li { Лионель Месси
border-left: 10px solid SlateBlue; Игрок сборной Аргентины.
border-bottom: 2px solid SlateBlue; Диего Марадона
} Аргентинская легенда.
#navbar a {
background-color: Pink;
color: Blue;
padding: 5px;
text-decoration: none;
font-weight: bold;
display: block;
}
</style>
</head>
<body bgcolor=Moccasin>
<H3>Для использования якоря целесообразно иметь текст большого объема.</H3>
<ul id="navbar">
<li><a href="#messi">Лионель Месси</a></li>
<li><a href="#diego">Диего Марадона</a></li>
</ul>
<h2 id="messi">Лионель Месси</h2>
<p>Игрок сборной Аргентины.</p>
<h2 id="diego">Диего Марадона</h2>
<p>Аргентинская легенда.</p>
</body>
</html>

98
ЗАДАНИЕ 4. Используя следующие образцы гиперссылок, выполни:
– открытие чата скайп: <a href="skype:aibar_a?chat">Skype</a>
– открытие электронной почты: <a href="mailto:aibar@mail.ru" target="_blank"
rel="noopener noreferrer">Email Us</a>

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Тег, используемый для переходов между 4) Атрибут, указывающий режим загрузки
веб-страницами: ссылаемого ресурса:
a) <HR>; a) download;
b) <BR>; b) href;
c) <A>…</A>; c) hreflang;
d) <AA>…</AA>; d) target;
e) <AR>...</AR>. e) blank.
2) Атрибут, используемый для поиска ресурсов
на языке пользователя: 5) Атрибут, определяющий адрес ресурса, на
a) download; который происходит ссылка:
b) href; a) download;
c) hreflang; b) href;
d) target; c) hreflang;
e) blank. d) target;
3) Атрибут, информирующий о необходимости e) blank.
загрузки файла при клике мышью по ссылке:
a) download;
b) href;
c) hreflang;
d) target;
e) blank.
2. Заполни пропуски в предложенных HTML-кодах:
<a href="skype:aibar_a?chat">________________</a>
<a href="mailto:aibar@mail.ru" target="_blank" rel="noopener noreferrer">________</a>
3. Установи соответствие.
1 _self A Загрузка файла во фрейм-родитель
2 _blank B Загрузка файла в полное окно браузера
3 _parent C Загрузка файла в новое окно браузера
4 _top D Загрузка файла в текущее окно

4. Выполни алгоритм на компьютере:


1) создай таблицу 1х3;
2) вставь в каждую ячейку изображение цветов;
3) подготовь 3 файла или ссылки на веб-сайты о цветах;
4) в качестве гиперссылки используй изображения;
5) при клике мышью на изображение должен осуществляться переход на соответствующий файл
с описанием цветов или веб-сайт.
5*. Организуй отправку сообщения на WhatsApp, ссылку на социальные сети или Instagram.

99
Разработка веб-сайта. Фреймы
4.7
ЗАДАНИЕ 1. Айбар создал прототип будущего веб-сайта для болельщиков
футбольного клуба и представил макет друзьям. Теперь ему требуется помощь
Как создать многостра- в подборе оптимального решения для разработки веб-сайта. Используя ра-
ничный веб-сайт? нее полученные знания, дай рекомендации Айбару по использованию тегов в
HTML-коде.

ЛОГОТИП СЛАЙД ШОУ

БЕГУЩАЯ СТРОКА

Гиперссылки:
1) Новости
2) О турнирах
Содержимое HTML-документа
3) О команде
4) О болельщиках
5) Контакты

Фреймы – Ранее ты познакомился с блочной версткой документа. Альтернатив-


HTML-элементы, ным вариантом разделения основного окна браузера на независимые
с помощью которых окна, которые отображают информацию независимо друг от друга, яв-
можно разделить ляется использование фреймов. В отличие от тегов <div>…</div> или
окно веб-браузера <table>…</table>, тег <frame>…</frame> дает возможность отображения
на несколько
HTML-файлов в каждом из окон.
независимых окон,
Деление окна браузера на независимые окна осуществляется с помо-
в каждое из которых
можно загрузить щью тега <frameset>, который имеет два атрибута:
отдельный HTML- rows – количество горизонтальных фреймов;
документ. cols – количество вертикальных фреймов.
Рассмотрим способы деления окна браузера на области.

Способ Описание Пример


Указание количества <frameset cols/rows="Х, Y">…</frameset>, <frameset cols="300, 200"> или
пикселей где Х, Y – количество пикселей <frameset rows="100, 200, 300">
Указание процентного <frameset cols/rows="Х%, Y%">…</ <frameset cols="30%,70%"> или
соотношения frameset>, где Х, Y, причем X+Y=100. <frameset rows="20%, 60%, 20%">
Указание числового соот- <frameset cols/rows="Х*, Y*">…</ <frameset rows="2*, 3*">
ношения frameset>, где Х, Y – числа.
Комбинирование спосо- <frameset cols/rows="X*, Y, Z%, XX*"> …</ <frameset rows="2*,100, 15%, 4*">
бов frameset> …</frameset>

Для отмены режима фрейма используют тег <noframes>… </noframes>.


Рассмотрим пример использования фрейма.

100
Результат запуска HTML-файла
<!DOCTYPE html>
<html>
<head> Загрузка заголовка или бегущей строки

<meta charset="UTF-8">
<title>Использование фреймов</title>
</head> Список Загрузка контента
<frameset rows="150, *" border="10" увлечений

bordercolor="red" frameborder="1"
• Спорт
• Танцы

frameborder="yes">
• Пение

<frame src="frame_top.html" noresize>


<frameset cols="20%, 80%">
<frame src="frame_left.html">
<frame src="frame_right.html">
Результат после клика мыши по ссылке «Спорт»
</frameset>
</frameset>
</html>
Загрузка заголовка или бегущей строки

В этом примере рассмотрен вло- Список Список спортивных кружков


женный фрейм, то есть окно браузе- увлечений
• Спорт
• Футбол
• Баскетбол
ра поделено на два горизонтальных • Танцы
• Пение
• Волейбол

фрейма, нижнее окно также поделено


на две области, но уже вертикально.
Необходимо отметить, что загру-
жаемые во фреймы HTML-докумен-
ты должны быть созданы заранее и храниться в текущем каталоге, либо
с помощью атрибута src="путь/имя файла" указать полный путь к файлу.
Наряду со статичными фреймами можно использовать плавающие
фреймы – тег <iframe>…</iframe>. Они просты в написании, и HTML-файл
можно отображать в любой области веб-страницы, также есть возмож-
ность указания произвольных размеров фрейма.
Рассмотри атрибуты данного тега.

Атрибут Описание
src Ссылка на URL-aдpec отображаемой во фрейме страницы
height Высота окна плавающего фрейма (px или %)
width Ширина окна плавающего фрейма (px или %)
name Имя фрейма для обращения в ссылках
frameborder Обрамление у фреймов (0 – отсутствует/1 – присутствует)
marginwidth Отступ слева и справа от содержания до границы фрейма
marginheight Отступ сверху и снизу от содержания до границы фрейма
scrolling Полоса прокрутки фрейма (yes/no, auto)
allowfullscreen Полноэкранный режим
hspace Горизонтальный отступ от фрейма до окружающего контента
vspace Вертикальный отступ от фрейма до окружающего контента
align Выравнивание фрейма

101
Рассмотрим пример плавающего фрейма.

<iframe src="https://www.nis.edu.
kz/" width="250" height="250"
frameborder="yes" style="border:red
5px dotted" margin: -13px 10px 20px
-18px;></iframe>

Фреймы в настоящее время не так актуальны, так как наряду с пре-


имуществами, такими как загрузка нескольких HTML-документов, есть
<!DOCTYPE html>
<html>
и недостатки, например, не все браузеры корректно отражают содержи-
<head> мое фреймов, поэтому на сегодняшний день в веб-разработке используют
<meta Asynchronous Javascript and XML (Ajax).
charset="UTF-8">
<title>Работа с пла- ЗАДАНИЕ 2. Изучи предложенный HTML-код и измени его таким образом,
вающим фреймом</ чтобы при клике мышью по ссылке в плавающий фрейм загружалось изобра-
title> жение hobby.png, расположенное на диске D: в папке «Рисунки».
</head>
<body>
<iframe src="football. ЗАДАНИЕ 3. Напиши тег для загрузки веб-страницы http://www.1.ru в область
html" name="ball" окна размером 250х250px с пунктирным обрамлением синего цвета толщиной
width="200" 5px.
height="200">
ЗАДАНИЕ 4. Выясни, возможно ли внедрение мультимедиа в плавающий
</iframe>
фрейм.
<a href="###">Ball</
a>
ЗАДАНИЕ 5. Разработай веб-сайт, соответствующий ранее созданному про-
</body>
тотипу в задании 1. Для рационального распределения пространства на веб-
</html>
странице используй фреймы.

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.

1) Для создания статичного фрейма использу- 2) Для создания динамического фрейма исполь-
ется тег: зуется тег:
a) <frameset>…</frameset>; a) <frameset>…</frameset>;
b) <frame>…</frame>; b) <frame>…</frame>;
c) <set>…</set>; c) <set>…</set>;
d) <section>…</section>; d) <section>…</section>;
e) <iframe>…</iframe>. e) <iframe>…</iframe>.
3) Определи способ разделения окна браузера на области: <frameset rows="2*, 3*">:
a) указание числового соотношения облас­тей;
b) указание процентного соотношения областей;
c) указание количества пикселей;
d) комбинированный способ;
e) отмена режима фрейма.
102
4) Определи числовое соотношение между 5) Определи количество фреймов после выпол-
фреймами: нения тега:
<frameset cols="3*, 20%, 2*">…</frameset> <frameset cols="20%, 80%">…</frameset>
a) 1:3; a) 3;
b) 3:1; b) 4;
c) 2:3; c) 2;
d) 3:2; d) 1;
e) 5:20. e) 5.

2. Установи соответствие.
1 name A Горизонтальный отступ от фрейма до окружающего контента
2 scrolling B Отступ слева и справа от содержания до границы фрейма
3 hspace C Полоса прокрутки фрейма (yes/no, auto)
4 marginwidth D Имя фрейма для обращения в ссылках

3. Выбери способ создания горизонтальных фреймов:


a) <frameset rows="20%, 80%">
b) <frameset cols="20%, 40%, 40%">
c) <frameset rows="20%, 40%, *">
d) <frameset cols="40%, 40%, 20%">

4. Выбор вариантов для пропусков.


1 style="border: red 5px dotted" A Наличие границ фрейма
2 margin: -13px 10px 20px -18px B Загрузка файла, расположенного в указанной папке
3 frameborder="yes" C Параметры границ фрейма
4 src="D:/1/4.jpg" D Отступы от содержания до границ фрейма

5*. Напиши HTML-код для создания веб-страницы.

Загрузка заголовка или бегущей строки

Список Список спортивных Список спортивного


увлечений кружков инвентаря для футбола
• Спорт • Футбол • Мячи
• Танцы • Баскетбол • Насосы
• Пение • Волейбол • Ворота
• Форма
• Бутсы

103
Подводим итоги
1. Установи соответствие.

1 <p>…</p> A Определяет шесть разных уровней заголовка


2 <a>…</a> B Создает нумерованный список
3 <OL>…</OL> C Предназначен для создания гиперссылок
4 <H1>…</H1> D Определяет текстовый абзац

2. Для организации нумерованных и маркированных списков используются теги:


a) <OL>…</OL>
b) <A>…</A>
c) <P>…</P>
d) <UL>…</UL>
e) <LI>…<LI>

3. Найди истинное утверждение:


a) Тег <a>…</a> используется для вставки изображения.
b) С помощью атрибута HREF тега <a>…</a> указывает путь к файлу.
c) Тег <a>…</a> используется для создания гиперссылок.
d) С помощью атрибута SRC тега <a>…</a> указывает путь к файлу.
e) С помощью атрибута SRC тега <img>…</img> указывает путь к файлу.

4. Напиши HTML-код для создания таблицы по образцу.

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

Это пример блочной


верстки.
Это пример блочной
верстки.

Ниже приведены CSS стили. Выбери соответствующие результату CSS стили.


A B
.blockA .blockB
{ {
width: 200px; width: 200px;
background: #fc0; background: #ccc;
padding: 5px; padding: 5px;
border: 5px dotted Violet; padding-right: 20px;
float: left; border: 5px dashed Violet;
position: relative; float: left;
top: 40px; }
left: -70px;
}
104
6. Пройди тест.
1) Тег для вставки изображения на веб-страницу:
a) <a>…</a>;
b) <a img>;
c) <img>;
d) <img>…</img>;
e) <jpg>.

2) Выбери тег вставки графического файла JPG из текущего каталога:


a) <jpg src="girl.jpg">;
b) <img src="girl.jpg">;
c) <img href="girl.jpg">;
d) <img src="1/girl.jpg">;
e) <a img src="1/girl.jpg">.

3) Атрибут «ALT» тега вставки изображения на веб-страницу необходим для:


a) вставки видео при щелчке по изображению;
b) гиперссылки на изображение;
c) дублирующего текста для изображения;
d) альтернативного текста для изображения;
e) подписи изображения.

7. Установи соответствие.

1 controls A Используется для загрузки мультимедиа вместе с загрузкой веб-страницы


2 src B Многократное воспроизведение файла
3 loop C Вывод панели управления к мультимедиа
4 preload D Указывает путь к воспроизводимому файлу

8. Объясни результат выполнения следующего тега:


<a href="about_me.html"><img src="images/girl.png" width="200" height="250" alt="Inkar"></a>

9. Выбери варианты деления окна браузера на две независимые области:


a) <frameset cols="3*, 20%, 2*">…</frameset>;
b) <frameset cols="20%, 80%">…</frameset>;
c) <frameset rows="2*, 3*"> …</frameset>;
d) <frameset rows="2*, 3*, 200"> …</frameset>;
e) <frameset rows="2*, 100, 20%"> …</frameset>.

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

105
Объектно-ориентированные C++, Visual Basic, Delphi, Java

Декларативные

Логические Функциональные

Пролог Лисп

Непроцедурные

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Процедурные

Высокого уровня Низкого уровня


(машинно-независимые) (машинно-зависимые)

Фортран, Бейсик, Паскаль, Си Ассемблер

106
5. МАССИВЫ (C#)

● Чем отличаются языки Ты уже знаешь:


программирования друг от друга?
● Какой язык программирования выбрать ● как разрабатывать приложения в объектно-
для проекта? ориентированной среде, используя визуальные
компоненты;
● Как оптимизировать код?
● как различать процедурное и объектно-
● Можно ли книгу считать массивом? ориентированное программирование;
● Когда можно использовать массивы на ● как сохранять данные различного типа
C#? в объектно-ориентированной среде.
● Как выполнять трассировку массива?
Ты узнаешь, как:
Одномерный массив ● различать низкоуровневые и высокоуровневые
Значение элемента Индекс элемента языки программирования;
массива массива ● выбирать язык программирования для своего
проекта;
1 2 3 4 5 6 7 8 9
● использовать одномерный массив для
7 -5 9 1 0 -2 4 3 6 обработки большого количества данных;
● оптимизировать код программы с помощью
№ i array A[i] массивов;
10 1 -9 ● использовать компоненты ООП для реализации
2 5 алгоритма обработки массива;
3 -31 ● выполнять трассировку программы с
4 16 использованием одномерного массива.
5 -46
6 -45
7 17
8 -39
9 -34
10 6

107
Языки программирования
5.1
В мире нет такого языка программирования, на котором разработ-
чики не смогли бы написать плохую программу.
Чем отличаются языки Larry Flon
программирования?
Из известной легенды о Вавилонской башне ты знаешь, что строитель-
ство башни было прервано богом, который заставил людей заговорить
Язык програм­ на разных языках, из-за чего они перестали понимать друг друга. Сегодня
миро­вания – насчитывается огромное количество языков программирования, и они
формальный язык, разрабатываются программистами. Каждый год появляются новые языки
предназначенный для
программирования, и в то же время некоторые языки программирования
записи компьютерных
постепенно теряют свою актуальность и со временем вообще перестают
программ.
использоваться.

ЗАДАНИЕ 1. 1. Почему некоторые языки программирования перестают


JavaScript 18,4% использоваться программистами?
Java 15,4% 2. Сделай свое предположение о причинах популярности некоторых языков
C# 13,7%
программирования (рис. 1).
Python 13,2%
PHP 10,8%
ЗАДАНИЕ 2. Проведи эксперимент. Определи самые популярные языки про-
C++ 5,8%
TypeScript 4,4% граммирования. Почему эти языки стали самыми востребованными сегодня?
Swift 2,8%
Kotlin 2,7% Существует множество классификаций языков программирования
Ruby 2,4% по различным критериям. Самое простое деление – это деление языков
Go 1,8% программирования на языки высокого и низкого уровня. Эволюцию раз-
1C 1,7%
C 1,5%
вития языков программирования можно представить в виде пяти поко-
Scala 1,1% лений (рис. 2).

Рис. 1. График самых Эволюция языков программирования


популярных языков
программирования
(2020) 1 поколение 4 поколение 5 поколение
2 поколение 3 поколение
Начало Начало Середина
(1950-1960) 60-е годы
50-х годов 70-х годов 90-х годов
Языки низкого Языки высо-
Языки низкого Языки высо- Языки высо-
уровня кого уровня
уровня кого уровня кого уровня

Непроцедур- Скриптовые
Язык низкого Машинные Ассемблер,
Процедурные ные языки, языки, язык
уровня – языки програм- макроас­
языки объектно-ори- искусственного
мирования семблер
программирование с ентированные интеллекта
помощью двоичных
машинных кодов. Рис. 2. Эволюция языков программирования
К языкам низкого
уровня относятся: Рассмотрим особенности каждого поколения.
программирование Первое поколение (машинный язык)
в машинных Языки низкого уровня часто называют машинными языками. Исто-
кодах, ассемблер, рически сложилось так, что на первых компьютерах программировали
макроассемблер. с помощью двоичных машинных кодов. Программировать было довольно
трудно и долго. Языки низкого уровня ориентировались на определенный
108
тип процессора и учитывали его особенности, поэтому для того, чтобы Язык высокого
перенести программу, написанную на ассемблере, на другую аппаратную уровня – програм­ми­
платформу, ее нужно было почти полностью переписать. Различия при- ро­вание с использова­
сутствовали и в синтаксисе программ под разные компиляторы. нием команд, понят­
Языками низкого уровня пользуются преимущественно для написания ных человеку, где
небольших системных программ, драйверов устройств, модулей стыков команды не зависят от
с нестандартным оборудованием, программирования специализирован- внутренних машинных
ных микропроцессоров, когда немаловажным является компактность, кодов компьютера
быстродействие и возможность прямого доступа к аппаратным ресурсам. любого типа.
Второе поколение (ассемблер)
Появились в 1950-е годы для перехода в выражениях языка от низко­
уровневых машинных понятий к тому, как обычно мыслит программист
(рис. 3).
Язык ассемблера – язык, в котором двоичные и шестнадцатеричные Знаешь ли ты?
коды стали заменяться буквенными обозначениями, которые называются Мнемоника – краткое обо-
мнемоники. Программа из языка ассемблера переводилась в машинный значение команды, обычно
код при помощи программы-транслятора, которая называется ассемблер состоящее из трех-четырех
латинских букв, представ-
(данная программа дала название языку).
ляющих сокращение от
Подведем небольшие итоги по языкам низкого уровня. Как и любой английского названия ко-
язык, они имеют свои плюсы и минусы. манды: ADD – addition (сло-
Минусы языков низкого уровня: жение); MOV – move (пере-
– предназначены для определенного типа компьютера; слать) и т.д.
– представляют собой двоичный код, поэтому сложны для восприя­тия
человеком. Иногда для упрощения программу записывают в шестнад-
цатеричном коде, который переводится в двоичный непосредственно
микропроцессором;
SECTION.text
– сложны для изучения и решения прикладных задач, поэтому дос­ org 0x100
тупны только специалистам, то есть людям, которые непосредственно mov ah, 0x9
занимаются программированием «железа». mov dx, hello
int 0x21
Плюсы: mov ax, 0x4c00
– машинные языки хороши для детального понимания функциони- int 0x21
рования конкретной машины, именно на них разрабатываются самые SECTION.data
hello: db «Hello, world!»,
быстрые программы, например, пишутся основы для операционных 0xD, 0xA.
систем;
– высокая скорость выполнения программы, написанной на машин- Рис. 3. Пример
программы на
ном языке, объясняется тем, что код такой программы содержит только
ассемблере
самые необходимые команды, поэтому он по объему гораздо меньше,
чем программы, написанные на языках высокого уровня. Это значит, что и
ресурсы памяти тратятся гораздо меньше, и выполняется такая программа
значительно быстрее.
Третье поколение (процедурные языки)
Языки третьего поколения унаследовали все достоинства языков вто-
рого поколения и дополнили их.
1) Простота и понятность использования.
2) Независимость от конкретного компьютера – это достигалось тем,
что теперь между пользователем и архитектурой ЭВМ была операцион-
ная система.

109
Знаешь ли ты? 3) Возможность использования специальных синтаксических приемов
Рейтинг черной утки – программы стали более сложными, в них появились блоки команд,
Самым крупным сайтом, объединенные в процедуры и функции.
посвященным програм- 4) Модульность программ – написание отдельных процедур и функ-
мам с открытым исход-
ным кодом, является сайт
ций для решения отдельных маленьких задач позволило использовать их
Black Duck (Черная утка) повторно в других проектах.
blackducksoftware.com. Недостаток некоторых языков высокого уровня состоит в большом раз-
Практически половина про- мере программ по сравнению с программами на языках низкого уровня.
грамм (46%) написана на C В то же время текст программ на языке высокого уровня гораздо меньше,
(январь 2019 года). Это по-
нятно, потому что С – язык но в байтах код, написанный на ассемблере, будет более компактным
общения программистов. (рис. 4). Поэтому языки высокого уровня преимущественно используют
Это единственный язык, для создания программного обеспечения для компьютеров и вычисли-
компилятор которого есть тельных устройств с большим объемом памяти.
на всех платформах – от
встроенных систем до су-
Подавляющее большинство языков третьего поколения (C++,
перкомпьютеров. Basic, Pascal, Ada, Cobol) успешно применяется и сегодня для написания
«быстрых программ» и операционных систем.
На данном этапе развития языков программирования были введены
#include <iostream>
using namespace std; следующие понятия: процедура и функция.
int main(int, arg, char** argv) {
long long n;
Четвертое поколение (непроцедурные языки)
cin >> n;
for (long long i = 0; I < n; i++) {
Фактически языки программирования этого поколения стали этапом
cin >> a[i]; дальнейшего развития процедурных языков, которые получили новую
}
long long premax = min(a[0], концепцию – концепцию объектно-ориентированных языков. Написание
программы теперь представлялось в виде последовательности создания
a[1]);
cout << premax << " ";
экземпляров объектов и использования их методов. К четвертому поко-
long long maxa = max(a[0], a[1]);
for (long long i = 2; i < n; i++) {


if (a[i]> = maxa) {
premax = maxa; лению языков программирования относятся: 1C, JavaScript, SQL, Prolog,


maxa = a[i];
} else { Python.

}
premax = max(premax, a[i]); К четвертому поколению также относят появление и развитие декла-

}
cout << premax << " "; ративного программирования, в основе которого лежат декларативные
}
return 0; языки программирования. В декларативном программировании зада-
ется спецификация решения задачи, то есть дается описание того, что
Рис. 4. Пример представляет собой проблема и какой ожидается результат. Программы,
программы на С++ созданные с помощью декларативного языка, не содержат переменные
и операторы присваивания. К декларативным языкам можно отнести
SQL и HTML.

VBScript – язык для JavaScript – прототипо- ActionScript – объектно- SQL (англ. S tructured
написания скриптов ориентированный ориентированный язык Query Language – «Струк­
(микропрограмм- сценарный язык программирования, турированный язык
макросов) как в MS программирования. который добавляет запросов») – универсаль­
Windows, так и для Используется для интерактивность, ный компьютерный
приложений MS OFFICE. создания WEB-форм. обработку данных язык, применяемый
в содержимое Flash- в реляционных базах
приложений. данных.

Пятое поколение (языки искусственного интеллекта)


Языки программирования, основанные на решении проблем, используя
ограничения, данные программе, вместо того, чтобы использовать алго-
ритм, написанный программистом. Большинство основанных на ограни-
чении логических языков программирования и некоторые декларативные
110
языки – языки пятого поколения. Языки пятого поколения разработаны, Знаешь ли ты?
чтобы заставить компьютер решить данную проблему без программиста. Язык программирования
Таким образом, программист должен волноваться только о том, какие Ada был назван в честь
проблемы должны быть решены, и что условия нужно соблюдать, не первой женщины-програм-
миста Ады Лавлейс (дочери
переживая по поводу того, как осуществить установленный порядок или
поэта Байрона, графини),
алгоритм, чтобы решить их. Языки пятого поколения используются, глав- известной созданием опи-
ным образом, в исследовании искусственного интеллекта. Пролог, OPS5 сания вычислительной
и Меркурий – примеры языков пятого поколения. На сегодня нейронные машины, проект которой
сети и технологии Big DATA используют языки пятого поколения. был разработан Чарльзом
Бэббиджем. Она составила
первую в мире программу
ЗАДАНИЕ 3. Подумай, какое поколение языков применяется, когда необходи-
для этой машины.
мо использовать оформление документов, например, создать собственный сайт
или веб-страничку.

ПРОВЕРЬ СЕБЯ
1. Найди соответствие между характеристиками и уровнем языка програм-
мирования.
Языки низкого уровня Языки высокого уровня

A. Доступ ко всем возможностям процессора. Ада Лавлейс


B. Требуется очень хорошо понимать устройство компьютера. Первая женщина-
C. Особенности конкретных компьютерных архитектур не учитываются. программист
D. Результирующая программа не может быть перенесена на компьютер
с другим типом процессора.
E. Создаваемые программы на уровне исходных текстов легко перено-
сятся на другие платформы.
F. Для перевода отдельных инструкций программы служат трансляторы.
G. Легко определить и идентифицировать ошибку.
H. Применяются для написания системных приложений.
2. Приведи примеры непроцедурных языков программирования. Назови
поколение, к которому они относятся.
3. Приведи примеры процедурных языков программирования (рис. 5).
4. * Назови, в чем отличие декларативных языков программирования от
императивных.
5. Заполни таблицу.
Рис. 5. Многообразие
Поколение Пример кода Язык программирования языков программи­
Первое рования
Второе
Третье
Четвертое

111
Выбор ПО для проектной деятельности
5.2
Человек должен делать выбор. В этом и состоит его сила – в могу-
ществе его решений.
Как выбрать программное Пауло Коэльо
обеспечение для своего
проекта? На прошлом уроке ты узнал о классификации и поколениях языков
программирования.
Огромное многообразие языков программирования иногда приводит
к сложностям выбора языка программирования при создании проекта.
Необходимо выяснить, от каких факторов будет зависеть выбор опреде-
ленного языка программирования.
Конечно, на изучение разных языков программирования требуется
время. Необходимости в изучении всех языков программирования нет.
Давай постараемся разобраться в выборе языка программирования, ис-
пользуя информацию из таблицы 1.
Таблица 1
Классификация языков программирования по типам решаемых задач
Тип задачи Пример решаемых проблем Язык программирования
• Программирование интеллекта в компьютер-
ных играх, интеллектуальные системы инфор-
Задачи искусственного мационной безопасности.
Lips, Prolog, Common Lisp,
интеллекта, экспертная • Автономное планирование и составление
Refal, Planner, QLisp
система расписаний.
• Медицинская диагностика.
• Распознавание естественного языка.
Задачи вычислительного • Вычислить корни квадратного уравнения. Algol, Fortran, Basic Cobol,
характера • Найти площадь многоугольника. Ada, PL/1, Pascal, Piton
Разработка программ с • Программа тестирования знаний учащихся. Visual Basic
графическим интерфей- • Самоучитель английского языка. VB.NET
сом, мультимедийные • Электронный словарь. Delphi
программы • Обучающие игры. Visual Studio C#
• Программы контроля, тестирования и
Разработка системных
диагнос­тики.
программ: операцион-
• Драйвер для подключения устройств, BIOS. Assembler, С, C++, Smalltalk,
ной системы, драйверов,
• Компиляторы и интерпретаторы языков Java
антивирусных программ,
высокого уровня.
архиваторов и др.
• Вирусы. Макровирусы, антивирусы.
Оформление документов.
Организация виртуаль- • Разработка онлайн-магазина для продажи HTML, Perl, Informix 4GL,
ных трехмерных интер- товара. Natural, DDL, DSDL, SEQUEL
фейсов в Интернете. • Сайт-визитка, виртуальный тур по музею. SQL, MySQL
Разработка БД

Современная техника не может работать без соответствующего про-


граммного обеспечения (ПО). Чтобы компьютер выполнял те или иные
задачи, на него должны быть установлены программы, содержащие ал-
горитмы выполнения этих задач. Сегодня ПО как по назначению, так и
по количеству многообразно. Перед пользователями и программистами

112
возникает задача выбора среды работы или среды разработки. На выбор Знаешь ли ты?
влияют качество ПО, его цена (платное или бесплатное), перспективность В 1991 году в армии США
развития, предоставление технической поддержки. была развернута система
В настоящее время наряду с понятием «программа» используется по- DART (Dynamic Analysis and
Replanning) для обеспече-
нятие «приложение». Между ними нет принципиальной разницы. Про- ния автоматизированного
грамма – это одна единица, а приложение – это совокупность программ, планирования поставок
решающих совместно одну или несколько близких задач. Однако данное и составления графиков
деление может быть достаточно условным в связи с тем, что большинство перевозок на основе ис-
даже очень простых программ обычно включает различные библиотеки. кусственного интеллекта.
Приложение окупило трид­
С другой стороны, выделить из приложения какую-либо программу так, цатилетние инвестиции в
чтобы она работала самостоятельно, может быть невозможно. искусственный интеллект,
сделанные этим агентством.
ЗАДАНИЕ 1. Вспомни виды программного обеспечения (рис. 1) и определи
для каждого вида ПО один пример.

Программное обеспечение ЭВМ

Системное ПО Инструментальное ПО Прикладное ПО

Языки и систе- Общего Экспертная система –


Базовое ПО Сервисное ПО мы програм­ назначения программа для
мирования компьютера, которая
Проблемно-ори- оперирует знаниями
Операционные Интегриро- ентированные
системы (ОС) в определенной
ванные среды предметной области
программиро- Издательские
Оболочки ОС вания системы с целью выработки
рекомендаций или
Сетевые ОС Программные Мультимедиа решения проблем.
комплексы
Информацион-
но-поисковые Искусственный
интеллект – область
Поисковые Диагнос­ Антивирусные Архива­ Прочие науки, занимающаяся
в сети тика программы торы созданием машин
и компьютерных
Рис. 1. Виды программного обеспечения программ,
обладающих
интеллектом. Она
ЗАДАНИЕ 2. Почему в последнее десятилетие большую популярность приоб- связана с задачей
рели языки веб-дизайна? использования
компьютеров
ЗАДАНИЕ 3. Как ты считаешь, какой фактор стал основной причиной востре- для понимания
бованности этих языков? человеческого
интеллекта.
Мы часто приобретаем прикладное программное обеспечение.
На что в первую очередь следует обращать внимание при выборе
прикладного ПО? Перечислим некоторые показатели оценки программ,
которые условно можно разделить на четыре группы: функциональные
показатели, технологические, технические требования и требования
к разработчику (рис. 2). Часто надо делать выбор между брендом и ценой,

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

Функциональные возможности программ: Технологические параметры программ:


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

Рис. 2. Показатели Виды ПО по способу использования и распространения


оценки программ Ты знаешь, что еще одним важным вопросом при приобретении про-
граммного обеспечения является вопрос авторских прав на владение ПО,
то есть кто им будет пользоваться и на каких основаниях. Давай вспомним
способы использования и распространения программного обеспечения.
Бесплатно распространяемые программы, открытые ПО (Free)
Их разрешается свободно распространять, копировать и использовать
без доплаты. При этом создатель компонента может брать оплату за от-
дельные услуги софта.
Рекламное ПО (Adware)
Допускается использование без внесения денег. Внутри содержатся
рекламные ролики или функции, которые открываются только при ус-
ловии покупки.
Условно-бесплатное (Shareware)
Один пользователь использует его для личных потребностей. Для ре-
гулярного использования компанией любого размера предусмотрена
оплата или запрет на работу.
Скрипт без внесения финансовых средств (Trial)
Ограничено время, которое позволяет пользоваться программным
обеспечением. Все функции работают в течение 10-30 суток, или 10-30
запусков. Потом потребуется ввести ключ и оплатить.
Коммерческое условно-бесплатное (Demo)
Софт, который определенный период раздается без оплаты. После
окончания действия пробной версии блокируется работа программы,
продолжить можно только после покупки.
Коммерческое закрытое ПО
Это частная собственность авторов. Получить его можно только при
условии соблюдения указанных требований владельцев. Среди таких ус-
ловий может быть денежная компенсация. Выдается без исходного кода.

114
ЗАДАНИЕ 4. Тебе необходимо установить антивирусную программу на домаш-
ний компьютер. В Интернете предлагают бесплатную версию на определенный
короткий срок и платную версию известного уже на рынке бренда. Что бы ты
выбрал? Аргументируй свой ответ, используя показатели оценки программ.

ПРОВЕРЬ СЕБЯ
1. Выбери для каждой ситуации вид программного обеспечения.
Предлагаемый вид программного обеспечения
При- При-
Ситуация Систем- Систем- Инстру- кладное кладное
ное ное сер- менталь- общего специа-
базовое висное ное назначе- лизиро-
ния ванное
1. Семья готовит большой праздник в честь
юбилея дедушки. Арману хочется сделать
приятное для своего деда: приготовить
видеопоздравление. Какое программное
обеспечение ты можешь ему посовето-
вать?
2. В небольшой фирме работают около
20 человек. Секретарю часто приходится
готовить информацию о сотрудниках:
например, домашний адрес, список
мужчин, работающих в фирме. Какое
программное обеспечение можно поре-
комендовать?
3. На уроках физики приходится решать
задачи, используя сложную формулу,
и строить по их данным график. Часто
пользуются калькулятором. Посоветуй ПО
для решения этой проблемы.
4. Алим получил заказ от фирмы на раз-
работку рекламного баннера, который
будет размещаться на улицах города.
Какое программное обеспечение ему
необходимо?
5. Семья приобрела новый ноутбук. Посове-
туй программное обеспечение, которое
нужно установить в первую очередь.
6. Катя имеет собственный небольшой
бизнес. Ей посоветовали создать сайт для
продажи своих изделий. Какое програм­
мное обеспечение ей необходимо
использовать?
7. Ноутбук часто используют для поиска
информации в Интернете. Однако это не
всегда безопасно. Посоветуй программы
для таких случаев.

115
Предлагаемый вид программного обеспечения
При- При-
Ситуация Систем- Систем- Инстру- кладное кладное
ное ное сер- менталь- общего специа-
базовое висное ное назначе- лизиро-
ния ванное
9. Арман – дизайнер интерьера. Он часто
выезжает на заказы и разрабатывает
дизайн. Ему приходится все рисовать
«вручную». Посоветуй ему програм­мное
обеспечение, которое помогло бы в
разработке дизайна квартиры.
10. Выбери программное обеспечение для
создания мобильного приложения, кото-
рое помогало бы людям с ограниченны-
ми возможностями найти подработку на
дому.

2. Объясни, чем отличается программа от приложения. Приведи примеры программ и приложений.


3. Назови основные показатели оценки прикладного программного обеспечения. Объясни, как на твой
выбор влияют технические требования ПО, если тебе необходимо сделать выбор операционной
системы для своего ноутбука.
4. *Проведи небольшое исследование. Изучи следующие программы:
1) ABBYY FineReader 11;
2) Promt Professional 9.5.
Выполни оценку программ по функциональным и техническим требованиям. Свое исследование
можешь представить в следующей таблице.

Показатель оценки ПО
Функциональные Перечень ABBYY FineReader 11 Promt Professional 9.5
возможности решаемых задач
• требуемый объем
внешней памяти;
• требуемый объем
Технические требова- оперативной памяти,
ния: быстродействие
системы;
• работа в сети, исполь-
зуемые протоколы.
Требования к разработ-
• стоимость лицензий
чику пакета:

116
Структуры данных. Массивы
5.3
ЗАДАНИЕ 1. 1. Подумай и определи, что общего на этих рисунках (рис. 1 а, b, с).

Зачем нужны массивы?

Рис. 1

a) очередь b) карандаши в пачке с) книжная полка

2. Подумай, что нужно знать, чтобы определить:


a) Под какими номерами в очереди стоят девушки?
b) Какой по счету в коробке коричневый карандаш? Массив – группа
с) Какая книга стоит четвертой на этой полке? переменных одного
типа, имеющих общее
В последовательности данных (очередь, карандаши в пачке, полка имя и расположенных
с книгами) представлены однотипные данные, и положение каждого эле- в ячейках памяти
рядом. Каждая ячейка
мента в этой последовательности определяется порядковым номером.
с переменной имеет
Например, девушки стоят в очереди с порядковыми номерами 1, 2, 3, 4, 7, индекс – порядковый
а всего в очереди 12 человек. Эти примеры демонстрируют, как можно номер.
создавать структуры данных – массивы. Мы изучим массивы и научимся
определять, когда их лучше всего использовать.
Рассмотрим задачу вычисления среднего возраста учеников класса из Размер массива –
10 человек. Для этого нужно объявить десять переменных, которые будут количество элементов
хранить значение возраста. в массиве.

//Объявление переменных хранение возраста Если нужно найти средний возраст не 10, а 100 уче-
десяти человек ников или 2000? Кроме того, если в процессе написа-
int age1 = 30; int age6 = 21; ния программы количество требуемых переменных
int age7 = 21; int age2 = 21; неизвестно, то придется существенно усложнять код.
int age8 = 19; int age3 = 21; Проблема: как обработать большое количество
int age9 = 16; int age4 = 21; данных?
int age10 = 29; int age5 = 21;
//Вычисление и вывод среднего возраста
int sum = age1 + age2 + age3 + age4 +age5 + age6 + Номер элемента в
age7 + age8 + age9 +age10; массиве называется
float avg = (float)sum / 10; cout << "Средний возраст
индексом.
равен " << avg << " лет\n";

Эффективно решить эту, а также много дру-


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

Рис. 2
117
Особенности массива:
Нумерация элементов • все элементы имеют один тип;
массива в С# начинается
с НУЛЯ!
• весь массив имеет одно имя;
• все элементы расположены в памяти рядом.
Таким образом, можно дать одно имя целой группе ячеек памяти,
расположенных рядом (рис. 3). Каждая ячейка памяти будет иметь свой
порядковый номер – индекс, и если эти ячейки располагаются в один
Индексы
ряд, то для обозначения порядкового номера ячейки будет достаточ-
Элемент
Первый (с индек- но одного индекса (одномерный массив). Но если ячейки располагаются
индекс сом 8) в два и больше рядов, то каждая ячейка будет иметь номер строки и номер
столбца, то есть два индекса – двумерный массив (рис. 4). Например, книгу
0 1 2 3 4 5 6 7 8 9
можно считать массивом, потому что каждая страница имеет порядковый
номер, и на каждой странице есть текстовая информация.
Длина массива равна 10 В языке С++ индекс первого элемента равен 0, а индекс последнего –
N-1, где N – это размер массива.
Рис. 3. Структура
одномерного Базовые алгоритмы работы с массивами:
массива – заполнение массива и вывод элементов массива;
– суммирование элементов массива;
– поиск элемента;
– нахождение максимального или минимального элемента массива;
– сортировка массива.

Одномерный массив – группа переменных одного типа, в которой


положение элемента массива задается одним индексом.
A[0][0] A[0][1] A[0][2] A[0][3] A[0][4]

1 2 3 4 5
A[1][0] A[1][1] A[1][2] A[1][3] A[1][4]

6 7 8 9 10
A[2][0] A[2][1] A[2][2] A[2][3] A[2][4]
Двумерный массив – группа переменных одного типа,
11 12 13 14 15 в которой положение элемента массива задается двумя
A[3][0] A[3][1] A[3][2] A[3][3] A[3][4]
индексами: номером строки и номером столбца.
16 17 18 19 20

Рис. 4. Структура Зачем объявлять (описывать) массив? Для выделения места в памяти.
двумерного массива
Чтобы в программе обращаться к элементам массива по имени, знать,
какие данные в нем будут храниться, необходимо его объявить.

Как объявить (описать) массив?


ПРАВИЛО:
прежде всего при ра- Для объявления массива используется операция new.
боте с массивом необ- 1 способ. Стандартный.
ходимо его объявить
(описать)! Тип Имя Размер массива
элементов массива (количество элементов)

int[] A = new int[5];


2 способ. С использованием константы.
cons t int N = 5;
int[ ] mas = new int[N];
118
3 способ. Инициализация массива, т.е. присвоение начальных значений
элементам массива.
int[ ] m1 = new int[ ] { 8, -3, 4, 6 };
s tring[ ] m2 = {‘фамилия’, ‘Имя’, ‘Отчество’);
char[ ] C = new char[3] { 'A', '1', 'Ю' };

Как заполнить массив? Заполнение массива

1 способ. Заполнение случайными числами (random).


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

и компонент textBox1 (рис. 5).


private void button1_Click(object sender, EventArgs e)
{ Рис. 5. Интерфейс
textBox1.Text = «»; приложения
int[] a = new int[4];//объявили одномерный массив а из 4 элементов
for (int i = 0; i < 4; i++)
{ a[i] = new Random().Next(10*i, 200) ;// случайным образом
заполняем
textBox1.Text+= a[i].ToS tring() +« »; //выводим массив в тек-
стовое поле
}

2 способ. Заполнение по формуле.


textBox1.Text = "";
int [] a = new int[4];//объявили одномерный массив а из 4 элементов
for (int i = 0; i < 4; i++)
{ a[i] = i*2+1 ;// заполняем по формуле
textBox1.Text+= a[i].ToS tring() +" "; //выводим массив в тек-
стовое поле
}
3 способ. Заполнение «вручную».
Заполнение массива

На форме расположены компоненты label1, textbox1, button1. Пользо-


ватель вводит числа в текстовое поле, и после нажатия на кнопку «Пока- 3 4 67 89

зать» эти значения выводятся в label1 и сохраняются в массиве a (рис. 6). Показать

private void button1_Click(object sender, EventArgs e) 3 4 67 89


{ label1.Text = "";
s tring s; // строка со значениями, которые вводятся в текстовое поле
s = textBox1.Text; // пользователь вводит числа в текстовое поле, Рис. 6. Интерфейс
приложения
и они сохраняются в строке s
int d; // переменная хранит количество введенных чисел
d = s.Length; // функция определяет длину строки (количество вве-
денных чисел)
int[] a = new int[100];//объявили одномерный массив из 100 эле-
ментов,
//так как мы не знаем, сколько элементов введет пользователь
for (int i = 0; i < d; i++)
{ label1.Text += s[i].ToS tring(); // показать каждый элемент
строки s
119
a[i] = Convert.ToInt32(s[i]); // сохранить в массиве а
}
}

a[0] a[1] a[2] a[3] ЗАДАНИЕ 2. 1. Определи формулу, если в массиве представлены следующие
1 3 5 7 значения:
2. Запиши код программы.
a. Объяви массив S из 10 целых чисел.
b. Открой цикл для заполнения массива.
c. Запиши формулу для заполнения массива четными числами 2, 4, 6, 8, … .

ЗАДАНИЕ 3. 1. Создай приложение, в котором массив из 10 целых чисел


заполняется после нажатия на кнопку «Заполнить» следующими значе-
ниями: 0, 3, 6, 9, 12, 15, 18, … .
2. Измени самостоятельно код программы так, чтобы можно было вводить
вещественный тип данных в массив, например, такие значения, как: 3,5; 0,89; -9;
0,345; 8,09.
3. Реализуй код для задания 2.2.с, в котором массив заполняется четными
числами.

ПРОВЕРЬ СЕБЯ
1. Дай определения понятиям «массив», «размер массива», «индекс»,
«одномерный массив».
2. Приведи примеры ситуаций, когда для решения задачи требуется
использовать массив. Какие преимущества дает использование структу-
рированных данных, таких как массив?
3. Назови способы описания массива. Определи для обоих случаев имя
массива, размер массива, тип данных.
Пример 1 Пример 2
char D[4] = { ‘1’, ‘1’, ‘Ю’, ‘Ю’}; cons t int K = 10;
int W [ K ];
4. В каких методах можно быстро заполнить массив без участия пользова-
теля? В чем преимущество и недостаток такого метода заполнения?
5. Назови компоненты, которые можно использовать для ввода и вывода
элементов массива.
6. * Подумай, какие значения будут сформированы в массиве в следующем
примере:
for (int i = 0; i < 4; i++)
{ a[i] = i*3/2 +1 ;// заполняем по формуле
textBox1.Text+= a[i].ToS tring() +" ";

120
Использование массива для оптимизации
кода 5.4
Выигрыш за счет использования оптимизации может быть более Зачем нужна оптимизация
важным, чем последствия от изменения поведения программы. кода и как массив поможет
Преждевременная оптимизация – это корень всех бед. оптимизировать код?
Кнут

ЗАДАНИЕ 1. 1. Назови, для чего необходимо объявление массива.


2. Определи, верно ли описан массив. Объясни свой ответ.
float A[4] = { A, -3, D, 6 };
Назови имя массива, размер массива, значение элемента с индексом 3.
3. Изучи представленный код:
for (int i = 0; i < 4; i++)
a[i] = new Random().Next(10*i, 400);
a) Назови способ заполнения массива.
b) Назови минимальное и максимальное число, которое может быть в этом
массиве.
c) Определи количество элементов в представленном массиве.
Оптимизация кода –
Любая программа должна быть правильной (выдавать верный резуль- различные методы
тат). Но также важно, насколько быстро работает программа, особенно преобразования
когда обрабатывается большое количество данных. Попробуем разо- кода ради улучшения
браться, что зависит в этом случае от программиста. Рассмотрим ручную его характеристик
(высокоуровневую) оптимизацию, которую выполняет программист, когда и повышения
пишет исходный код программы на языке программирования. эффективности.
Цель оптимизации: уменьшение объема кода, объема используемой
программой оперативной памяти, ускорение работы программы, умень-
шение количества операций ввода-вывода.
Главное из требований, которые обычно предъявляются к методу оп- Знаешь ли ты?
тимизации, – оптимизированная программа должна иметь тот же верный Существует низкоуровне-
результат, что и неоптимизированная программа. вая оптимизация, которую
На примере задачи о зарплате сотрудников рассмотрим процесс оп- не проводит программист.
Оптимизатором может быть
тимизации кода и попробуем понять, зачем нужна оптимизация и как как отдельное программное
использование массива позволит оптимизировать код. средство, так и встроенный
На фирме работают 10 сотрудников. Надо рассчитать общую сумму компилятор (т.е. оптимизи-
зарплаты, которую нужно выплатить. рующий компилятор). Оп-
тимизация производится на
Например, можно сделать объявление: float a1, a2, a3, a4, a5, a6, a7, a8,
этапе превращения исход-
a9, a10; и пользоваться этими переменными. ного кода в набор машин-
ных команд.
ЗАДАНИЕ 2. Рассмотри три способа решения задачи (рис. 1 a, b, c), представ-
ленных в виде блок-схем.
a) Выбери самый оптимальный способ решения (т.е. тот, который занимает
меньшее количество строк кодирования, не выполняет повторяющиеся
коды, использует меньше переменных).
b) Изучи стратегии оптимизации кода (рис. 2) и принципы «хорошего стиля»
при работе с массивами (рис. 3).
c) Определи, при каком из представленных способов решения нарушается
«хороший стиль» работы с массивом.

121
Начало Начало Начало

Введи зарплату i=0, 9 Введи количество


10 сотрудников сотрудников, N

A[i] S=0
А1, А2, А3, А4, А5,
Стратегии А6, А7, А8, А9, А10
оптимизации кода i=0, N
S= 0
Выбери правильно S=A1+A2+A3+…+A10
A[i]
место в программе для i=0, 9
оптимизации
“Сумма =”, S
S=S+A[i] S=S+A[i]
Избавься от лишних
обращений к памяти
(ввод, вывод) Конец
“Сумма =”, S “Сумма =”, S
Выбирай эффективные Рис. 1 a. Первый
алгоритмы и структуры способ (без массива) Конец Конец
данных
Рис. 1 b. Второй Рис. 1 c. Третий
Используй при необ- способ с использова­ способ с использова­
ходимости временные
нием двух циклов и нием переменной N
переменные для хра-
массива и массива
нения промежуточных
результатов

Избавься «Хороший стиль» при работе с массивами


от лишних циклов
Количество элементов массива следует задавать с помощью
Рис. 2. Стратегии константы. Далее в программе всюду следует использовать эту
оптимизации кода константу, а не явно количество элементов.

Следует стремиться разделять такие задачи, как:


а) присваивание значений элементам массива;
б) вычисление чего-либо по элементам массива или преобразование
массива (решение содержательной задачи);
в) вывод результата.

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


программе, обрабатывающей массив: цикл при вводе элементов,
Рис. 3 цикл при обработке и цикл при выводе результата.

Итак:
1) Массивы сокращают длину описания (представьте, что таких пе-
ременных вам понадобится 1000 штук).
2) Индексы элементов массива можно вычислять.
Например, допустимы следующие обращения к элементам массива x:
x[i] – обращение к элементу массива, индекс которого хранится в пе-
ременной i.
x[2*2] – обращение к 4-му элементу массива.
122
x[2*i] – индексом является удвоенное значение переменной i.
x[i+1] – индекс – арифметическое выражение.
x[random(10)+1] – случайный элемент массива.
x[y[i]] – в качестве индекса берется число, хранящееся в i элементе
другого массива. Если значение y[i] не попадает в диапазон 1…10, то int n=100;
такое обращение в зависимости вызовет ошибку. int sum=0;
for(int i=1; i<=100; i++)
ЗАДАНИЕ 3. a) Сравни два кода и определи, что выполняет каждый код. sum=sum+i;
Объясни, какой из кодов будет работать быстрее и почему. cout<<sum;
b) Подумай, какая формула была использована в одном из кодов.
int n=100;
c) Создай собственный оптимальный код для подсчета суммы n-первых членов
int sum;
арифметической прогрессии.
sum=n*(n+1)/2;
cout<<sum;
Оптимизация кода
– +
1) Многочисленные сложные оптимизации могут 1) Уменьшение количества операций ввода-
сильно замедлить процесс компиляции. вывода приводит к уменьшению объема кода
2) Современные, навороченные синтаксически и се- и ускорению программы, так как процесс ком-
мантически языки имеют множество тонкостей, и пиляции происходит быстрее.
программист должен их знать и учитывать. 2) Так как количество переменных минимизиру-
3) На оптимизацию придется расходовать дополни- ется, объем оперативной памяти уменьшается,
тельное время. это также ускоряет процесс выполнения про-
граммы.

ПРОВЕРЬ СЕБЯ x=0;


for(i=1; i<=n; ++i)
1. Дай определение понятия «оптимизация кода» и перечисли ее виды. { x=x+0.05;
2. Сравни коды, представленные на рис. 4 а и 4 b. На каком рисунке код y=(a*a*a+c)*x*x+b*b*x;
является оптимизированным и почему? Какие стратегии оптимизации cout<<x<<y;}
кода, на твой взгляд, применяли на рис. 4 b?
Рис. 4 a
3. Как сохранить все значения переменной y (рис. 4 a)?
4. Назови цель оптимизации кода. x=0;
5. Перечисли преимущества и недостатки в оптимизации кода. a3c=a*a*a+c;
b2=b*b;
6. Укажи истинность или ложность следующих утверждений: for(i=1; i<=n; i++)
a) массив может хранить много различных типов данных; { x=x+0.05;
b) индексы массива должны иметь тип float; y=a3c*x*x+b2*x;
c) если список инициализации содержит начальных значений больше, cout<<x<<y;
чем элементов массива, то это ошибка. }
7. Напиши следующие операторы для массива М:
a) объяви константу arS с начальным значением 10; Рис. 4 b
b) объяви массив M типа double с количеством элементов arS, значения
элементов массива которого равны 8, -3, 4, 6, 9.8, 8, 9.8, 7, 7, 3.
c) запиши значение четвертого элемента массива М;
d) присвой значение 3.333 девятому элементу массива М;
f) присвой значение седьмому элементу массива M сумму значений
первого и пятого элемента.

123
Обработка элементов одномерного массива.
5.5 Сумма элементов массива
ЗАДАНИЕ 1. 1. Назови принципы «хорошего стиля» работы с массивами.
2. Определи стратегии, позволяющие программисту оптимизировать код.
Как находить сумму эле-
3. Изучи блок-схемы, представленные на рисунках 1, 2, 3.
ментов массива?
a) Назови имя и размер одномерного массива в каждом представленном
случае.
b) Назови, что общего в этих трех алгоритмах и в чем различие.
c) Определи, что вычисляет каждая из представленных блок-схем.

S= 0 S= 0 S= 0

i=0, N i=1, N i=1, N

S=S+A[i] A[i]>0 Yes A[i] mod 2 =0 Yes


Примечание:
a mod b – функция, No No
определяющая S+=A[i] S+=A[i]
“Сумма =”, S
остаток от деления a
на число b.
Рис. 1
S S
Рис. 2 Рис. 3
На прошлом уроке ты узнал о стратегиях, позволяющих сделать код
S= 0
оптимизированным. Использование структуры данных массива также
приводит к значительному сокращению кода. Для лучшего понимания
i=0, N
работы программы с массивом выполним пошаговую трассировку ал-
горитма нахождения суммы зарплаты сотрудников (рис. 4). Введем n=5,
S=S+A[i] а в качестве элементов массива введем значения: 15, 5, 0, -25, 10. Заполним
трассировочную таблицу (рис. 4).
В практических примерах с массивом мы использовали компонент
“Сумма =”, S textbox. Однако гораздо удобнее работать со специальным компонен-
том, позволяющим работать с данными в табличном виде. Он позволит
Трассировочная таблица вводить элементы массива и визуализировать их ввод и вывод. Изучим
компонент DataGridView и его свойства и используем на практике этот
n i A[i] S компонент для реализации задачи про зарплату сотрудников.
5 0 0 0
Установи компонент DataGridView на форме и выполни пошагово дей-
5 0 15 15
ствия, показанные на рис. 5-8.
5 1 5 20
5 2 0 20 dataGridView1 System.Windows.Forms.DataGridView Правка столбцов

5 3 -25 -5
Выбранные столбцы: Свойства

5 4 10 5 CausesValidation True
CellBorderStyle Single
ClipboardCopyMode EnableWithAutoH
Рис. 4. Блок-схема ColumnHeadersBorderStyle Raised
нахождения суммы ColumnHeadersDefaultCellStyle DataGridViewCell
N элементов массива ColumnHeadersHeight 18
ColumnHeadersHeightSizeMode AutoSize
ColumnHeadersVisible True Добавить Удалить
Column (Коллекция) ... Ок Отмена
ContextMenuStrip (нет)

Рис. 5. Свойство Columns Рис. 6. Укажи в окне «Добавить


124 столбец» наименование столбца
Добавить столбец Правка столбцов Класс DataGridView
Столбец DataBound Выбранные столбцы Свойства непривязанного столбца позволяет настраивать
Столбцы в DataSource Возраст
ячейки, строки,
Внешний вид
DefaultCellStyle DataGridViewCellStyle { } столбцы и границы
HeaderText
ToolTipText
Возраст данных в табличном
Visible True виде.
Данные
DataPropertyName (Нет)
Непривязанный столбец Макет
AutoSizeMode ColumnHeader
Имя:  Column1 DividerWidth 0
Тип: DataGridViewTextBoxColumn FillWeight 100
Frozen False
Текст заголовка: Column1 HeaderText
Видимый Только чтение Зафиксирован Текст в ячейке заголовка столбца.
Добавить... Удалить

Добавить Отмена ОК Отмена

Рис. 7. В этом окне можно Рис. 8. Задай заголовок «Возраст»


установить необходимое через окно свойств
количество столбцов
Одномерный массив
ЗАДАНИЕ 2. «Одномерный массив». Создай приложение с интерфейсом, Элементы
представленным на рисунке 9. Это приложение позволит тебе лучше изучить массива Вывод массива

возможности компонента DataGridView. 6


66543
6
1. Расположи на форме компонент DataGridView с одним столбцом «Элементы 5

массива» и с компонентами button и label, как показано на образце (рис. 9). 4

2. Двойным щелком по форме вызови событие и пропиши в нем следующий 3

код:

private void Form1_Load(object sender, EventArgs e)


Рис. 9. Интерфейс
{
приложения
dataGridView1.ColumnCount = 1;
«Одномерный
dataGridView1.RowCount = 5;
массив»
}

3. Для кнопки «Вывод массива» пропиши следующий код:

private void button1_Click(object sender, EventArgs e)


{ label1.Text = ""; //очистим текст в компоненте label.
int[] a = new int[5]; // описываем одномерный массив a и резерви-
руем 5 ячеек для чисел целого типа.
for (int i = 0; i < 5; i++)// открываем цикл для преобразования
введенных пользователем чисел из символьного типа в целое число.
{ a[i]=Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value); );
// берем каждую отдельную ячейку таблицы и преобразуем ее в число,
которое сохраняется в a[i]
label1.Text+= a[i].ToS tring()+" ";// выводим в компонент label
введенные пользователем числа, предварительно преобразовав их в те-
стовый тип из целого типа.
}
}

4. Запусти приложение и введи 5 чисел в массив. Посмотри правильность


выполнения программы (рис. 9).

125
ЗАДАНИЕ 3. Приложение «Зарплата сотрудников».
1. Создай интерфейс приложения, как показано на рис. 10.

Зарплата сотрудников
Введите количество сотрудников
Зарплата
сотрудника 5
200000 textbox1
120000 Найти общую сумму

120000
930000
300000
label1
190000
Рис. 10. Интерфейс
dataGridView1
приложения
«Зарплата
сотрудников»

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


формы.

Зарплата сотрудников
DataGridView Задачи
Зарплата
сотрудника Выбери источник данных: (нет)
Правка столбцов...
Добавить столбец
Включить добавление

Рис. 11. Установка Включить правку

параметров Выключить удаление

компонента Включить возможность изменения порядка столбцов

DataGridView Закрепить в родительском контейнере

Двойным щелчком по форме вызови событие и пропиши код:


private void Form1_Load(object sender, EventArgs e)
{
dataGridView1.ColumnCount = 1; //создаем один столбец
}

3. Опиши переменную n – количество сотрудников, такое же количество строк


должно быть в таблице.
Примечание Создай проект «Зарплата сотрудников», используя блок-схему решения задачи
Для того чтобы коли­ (рис. 1).
чество строк было
такое же, какое поль­ public partial class Form1 : Form
зователь введет коли­ { int n; // описываем переменную n – количество сотрудников, то
чество сотруд­ников, есть количество строк.
необходимо вызвать public Form1()
событие textBox1_
KeyUp у компонента 4. Установи для компонента таблицы DataGridView следующие параметры (убрать
textbox1, в котором галочку с «Включить добавление»).
задаем количество
строк в таблице.

126
private void textBox1_KeyUp(object sender, KeyEventArgs e)
{
int n;// количество сотрудников.
n = Convert.ToInt32(textBox1.Text);
dataGridView1.RowCount = n; // количество строк в таблице.
}

5. Пропиши основной код суммирования зарплаты для кнопки «Найти общую


сумму».
private void button1_Click(object sender, EventArgs e)
{
n = Convert.ToInt32(textBox1.Text);
int sum = 0;
label1.Text = ""; //очищаем метку для вывода суммы, иначе
при каждом вызове события к предыдущей сумме будет «приклеиваться»
новая сумма.
int[] a = new int[n];// описываем массив из целых элемен-
тов размером n.
for (int i = 0; i < n; i++)
{
a[i] = Convert.ToInt32(dataGridView1.Rows[i].Cells[0].Value);
sum += a[i]; //суммируем элементы массива.
}
label1.Text+= sum.ToS tring(); //выводим общую сумму.
}

6. Запусти приложение на выполнение и проверь результат.

ПРОВЕРЬ СЕБЯ
1. Асем прописала следующий код: dataGridView1.ColumnCount = 3; dataGridView1.RowCount = 1;
Объясни, какая структура таблицы будет представлена на форме.
2. Назови, что будет выполнено в результате реализации следующего кода:
s=0; d=0;
for (int k = 0; k < n; k++)
{if(x[k]<0) s+=x[k];
if(x[k]>0) d+=x[k];
3. Определи назначение этого кода:
P=0;
for (int k = 0; k < n; k++)
if(x[k]<0) P=k;
A. Находится сумма элементов массива.
B. Вычисляется сумма положительных элементов массива.
C. Количество отрицательных элементов массива.
D. Количество положительных элементов массива.
E. Индекс последнего отрицательного элемента.
4. Опиши три массива с одинаковым количеством элементов, заданным константой. Значения элемен-
тов первого массива должны вводиться с клавиатуры, второго – быть равными номерам элементов,
третьего – быть случайными целыми числами в диапазоне от 0 до 10. После заполнения выведи
элементы каждого массива.

127
Обработка элементов одномерного массива.
5.6 Поиск элементов

Как реализовать поиск Спору нет, если ищешь, то всегда что-нибудь найдешь, но совсем
в массиве? не обязательно то, что искал.
Джон Толкин

ЗАДАНИЕ 1
a) Расставь строки программы в правильном порядке и определи условие задачи.
1 { sum+=a[i]; } 4 if (a[i]<0) 7 if (!sum)
2 cout<<"sum = "<<sum; 5 cout<<"no numbers < 0"; 8 for (int i=0; i<n; i++)
3 else 6 int sum=0;
M [1] = 2.5; b) Определи количество и значения элементов массива М для следующей
M [2] = 8; последовательности кодов.
M [3] = 2*M[2]+M[1].
Поиском называют действия по нахождению нужной информации. Так
как в массиве хранится большое количество данных, алгоритмы поиска
сводятся к базовым алгоритмам, которые могут лежать в основе других
Внимание! В задачах на задач на поиски, таких как:
поиск элемента проверяй – нахождение количества элементов, удовлетворяющих условию.
ситуацию, когда элемент Например: положительных, четных, нечетных, кратных определенному
может отсутствовать в числу в массиве и др.;
массиве. В этом случае
создай сообщение, что
– нахождение максимального и минимального элемента в массиве;
данного элемента нет! – нахождение элементов, стоящих на четных (нечетных) местах.
Разберем один пример организации поиска.

ЗАДАНИЕ 2. Приложение «Отбор в секцию баскетбола».


Разработай приложение «Отбор на баскетбол», где пользователь вводит рост,
который необходимо найти в заданном списке с заданными значениями роста
10 учеников. Программа выдает сообщение: «Есть ученики с таким ростом» или
«С таким ростом учеников нет».

Шаг 1. Расположи компоненты на форме, как показано в Шаг 2. Организуй заполнение массива случайным
образце на рис. 1. образом.

Отбор на баскетбол
listBox1 Введите рост

Найти int[] A = new int[10];


bool f_is;
// результат: если f_is=true, то элемент при-
label1 сутствует в массиве.
for (int i = 0; i < 10; i++)
A[i] = new Random().Next(i+5)+150+i;
// заполнение массива со значениями в диапазоне
от 155 до 172.

Рис. 1. Интерфейс приложения «Отбор на


баскетбол»

128
Шаг 3. Код на кнопку «Найти». Шаг 4. Запусти приложение на выполнение (рис. 2).
private void button1_Click(object sender,
EventArgs e)
{ int[] A = new int[10];
Отбор на баскетбол
bool f_is;
for (int i = 0; i < 10; i++) 153
155 Введите рост
A[i] = new Random().Next(i+5)+150+i; 156
160
170
int num; // num - искомый элемент
161
num = Convert.ToInt32 (textBox1.Text); 163
165
Найти
lis tBox1.Items.Clear();
166
f_is = false; // поиск 168
for (int i = 0; i < 10; i++) НЕТ УЧЕНИКОВ С ТАКИМ РОСТОМ
{lis tBox1.Items.Add(A[i].ToS tring());
if (num == A[i])
f_is = true;
} Рис. 2. Запуск приложения на выполнение
if (f_is) label1.Text=«ЕСТЬ УЧЕНИКИ С ТАКИМ РОС­
ТОМ»; else label1.Text=«С ТАКИМ РОСТОМ УЧЕНИКОВ
НЕТ»;
}

ЗАДАНИЕ 3. Назови назначение логической переменной f_is (код на кнопку


«Найти») и объясни код:

if (f_is) label1.Text="ЕСТЬ УЧЕНИКИ С ТАКИМ РОСТОМ"; else label1.


Text="С ТАКИМ РОСТОМ УЧЕНИКОВ НЕТ";

ЗАДАНИЕ 4. 1. Подумай и реализуй в приложении возможность ввода коли-


чества учеников (рис. 3).

Отбор на баскетбол

152 Введите количество учеников


154
155 4
157
Введите рост
154

Найти
Рис. 3. Интерфейс
приложения с
ЕСТЬ УЧЕНИКИ С ТАКИМ РОСТОМ вводом количества
учеников
2.** Организуй защиту ввода данных: например, чтобы количество учеников было
более одного и не было отрицательным.

ЗАДАНИЕ 4. «Количество отобранных учеников».


Измени приложение «Отбор на баскетбол» так, чтобы в нем вычислялось коли-
чество учеников, рост которых выше 170 см.
Примечание: Для вычисления количества учеников используй формулу K++; где
int K=0 устанавливается перед циклом.

ЗАДАНИЕ 5. «Средний рост учеников».


Измени приложение «Отбор на баскетбол» так, чтобы после ввода значения роста
R вычислялось: а) средний рост учеников этого класса; b) количество учеников,
у которых рост выше среднего.
129
ПРОВЕРЬ СЕБЯ
1. Создай приложение «Количество нулей». Одномерный массив заполняется 15 числами со случайными
значениями в диапазоне от 0 до 90. Найди количество нулей в этом массиве. Если они отсутствуют,
программа должна выдавать об этом сообщение.
Например: Количество нулей в массиве: 2.
2. Арман начал создавать приложение «Мальчики и девочки». Помоги Арману дописать код, чтобы
вычислялось количество мальчиков.

Мальчики и девочки

m Показать
m
v
v Количество мальчиков 3
m
v

private void button1_Click(object sender, EventArgs e)


{
char[] B = new char[6] {‘m’,‘m’,‘v’,‘v’,‘m’,‘v’} ;
int k, i;
k = 0;
for ________________________________________________[1]
{ lis tBox1.Items.Add(B[i].ToS tring());
________________________________________________[2]

_________________________________________________[3]
3. Дан массив int X[6] = {1, 4, -8, -3, 4, 6 };
Какое значение будет выведено в результате применения для этого массива следующего кода:
s=1;
for (int k = 0; k < 6; k++)
{if(x[k]<0) s*=x[k];
4. **Создай приложение «Числа, кратные трем». В одномерном массиве определи количество чисел,
кратных 3, которые находятся на четных местах в массиве.

130
Обработка элементов одномерного массива.
Поиск максимального и минимального 5.7
элемента
Как найти максимальный
Кто хочет – ищет способ, кто не хочет – ищет причину. и минимальный элемент
в массиве?

ЗАДАНИЕ 1. Найди ошибки в следующем коде.


int[] A = new int[6] { 0, 2, 4, 7, 9 }; Number_X=0
for (int count = 0; count <= 6; ++count)
lis tBox1.Items.Add(A[i].ToS tring()); i=0, 19

ЗАДАНИЕ 2. Выполни анализ блок-схемы на рисунке 1.


Определи следующие данные: R[i]=X True
a) имя массива, размер массива, переменная индекса массива; False
b) назови назначение переменной Number_X, переменной X; Number_X=Number_X+1
c) покажи в блок-схеме алгоритмические структуры: цикл, раз-
ветвление;
d) назови оператор цикла, который используется в этой
блок-схеме (рис. 1).
No Number_X=0 Yes

Часто встречаются ситуации, когда нужно выбрать са-


мого старшего или самого младшего ученика в заданном В массиве нет “Число”, Х,
списке. Решение таких задач сводится к алгоритмам нахож- числа Х “присутствует”
дения максимального и минимального элемента в массиве
заданных однотипных значений.

ЗАДАНИЕ 3. Изучи с помощью трассировочной таблицы ре- Рис 1. Блок-схема 1


зультат выполнения алгоритма блок-схемы на рисунке 2, если
массив А заполнен предварительно числами: Max=A[0]

int [] A=new int[] {3,7,8,-8}. i=1, N

Проверка
N I A[I] MAX A[i]>Max True
условия
4 0 3 3 False

1 7 7 7>3 (да) Max=A[i]


2 8 8 8>7 (да)
3 -8 8 -8>8 (нет)
8 Max

Рис. 2. Блок-схема 2
ЗАДАНИЕ 4. Приложение «Поиск максимального и минимального
элемента».
1. Создай новый проект, предварительно сохранив его в отдельной папке.
a) Установи на форме элементы управления, как показано в образце (рис. 3).
Для выбора максимального или минимального элемента используй независимые
переключатели checkBox1, checkBox2.

131
Поиск максимального и минимального Пропиши глобальные переменные в разделе public
lis tBox1 Введите элемент partial
Очистить
Добавить
public partial class Form1 : Form
{ int[] A = new int[100]; //задай пред-
Найти варительно массив из 100 элементов.
Максимальный Минимальный
int i=0;
label1 label4 int max, min;
int n;

Рис. 3. Интерфейс b) Программируем кнопку «Добавить».


приложения «Поиск
максимального private void button1_Click(object sender, EventArgs e)
и минимального {A[i] = Convert.ToInt32(textBox2.Text); // вводим значение эле-
элемента» мента массива и закидываем его в массив А.
lis tBox1.Items.Add(A[i].ToS tring());// отображаем его в списке
i++; //увеличиваем счетчик для следующего элемента
n = i; // запоминаем в переменной n общее количество введенных
элементов.
}

c) Программируем кнопку «Очистить».


private void button3_Click(object sender, EventArgs e)
{ textBox2.Clear(); }

d) Программируем кнопку «Найти».


private void button2_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{ max = A[0];
for(i=0; i<n;i++)
{ if (A[i] >= max) max = A[i]; }
label1.Text = max.ToS tring();
}
if (checkBox2.Checked)
{ min = A[0];
for (i = 0; i < n; i++)
{ if (A[i] < min) min = A[i]; }
label4.Text = min.ToS tring(); } }

e) Протестируй программу, как показано в образце (рис. 4).

Поиск максимального и минимального


45 Введите элемент
23 Очистить
-90
-45 Добавить
23

Найти

Рис. 4. Запуск Максимальный Минимальный

приложения на 45 -90
выполнение

132
ЗАДАНИЕ 5. 1. Подумай, как реализовать поиск количества элементов, которые
равны максимальному элементу в массиве.
2. Реализуй алгоритм обмена местами максимального и минимального элемента.

ПРОВЕРЬ СЕБЯ
1. Назови номера строк, в которых допущена ошибка.
1. { for(int i=0; i<n; i++)
2. { max = A[0];
3. if (A[i] >= max) max = A[i]; }
4. label1.Text = Convert.ToInt32(max);
5. }
2. Cоздай приложение «Кто старше?». Приложение определяет возраст самого старшего ученика в
классе. В классе – 12 учеников, возраст которых пользователь вводит вручную.
3. Создай приложение «Самая высокая температура января», используя данные из рисунка.
Янв 1 2 3 4 5

-15° -12° -11° -10° -10°


-18° -15° -13° -11° -11°
6 7 8 9 10 11 12

-10° -10° -10° -13° -11° -10° -10°


-11° -11° -13° -15° -19° -20° -21°
Рис. 5

4. Изучи представленный код. Сравни этот код с блок-схемой на рис. 2. Оцени представленный код с
точки зрения оптимальности.
1. imax=0; imin=0;
2. for(i=1; i<n; i++){
3. if(a[i]<a[imin]) imin=i;
4. if(a[i]>a[imax]) imax=i;
5. }
6. label1.Text = Convert.ToInt32(a[imin]);
7. label2.Text = Convert.ToInt32(a[imax]);

133
Обработка элементов одномерного массива.
5.8 Максимальный и минимальный элемент
На прошлом уроке ты реализовал приложение, в котором произво-
Какие задачи можно ре- дился поиск максимального или минимального элемента массива. Однако
шать с алгоритмами обра- есть задачи, когда нужно определить не только значение, но и номер
ботки массива?
позиции минимального или максимального элемента.

Знаешь ли ты?
ЗАДАНИЕ 1. a) Создай приложение «Поиск номера минимального элемента»,
используя в качестве образца рис. 1.
Data Scientis t – специалист
по обработке, анализу и Примечание: ты можешь
Введите 5 целых чисел и щелкните на Поиск.
хранению больших масси- взять приложение,
вов данных, так называемых 20 5 10 12 99 созданное на прошлом
«Big Data». Профессия Data уроке, за основу этого
Scientis t – «ученый по дан- Поиск
приложения.
ным» – официально зареги-
стрирована в 2010 г. Первое Минимальный элемент массива: 5
упоминание термина «data Номер элемента: 2
science» встречается в книге Рис. 1. Образец интерфейса
Петера Наура в 1974 г.

N, Max=0 b) Выполни самостоятельно трассировку для алгоритма на рис. 2, если


float [] X=new int[] {3.6, -7.8, 8.9, 0}.
Max=A[0]
N I A[I] MAX NMax Проверка условия
i=1, N 4 0 3.6 3.6 0

A[i]>Max True
False
Max=A[i]

NMax=i ЗАДАНИЕ 2. Игра TeleBingo


В Казахстане популярна игра TeleBingo. Создай приложение, которое
проверяет твой билет на количество совпадений на выигрышные но-
мера. Познакомься с условиями TeleBingo.
Max, NMax Условия игры.
Розыгрыш проводится с помощью лототрона и игровых шаров, пронумеро-
Рис. 2. Блок-схема 2 ванных от 1 до 90. На билете – 15 чисел в диапазоне от 1 до 90, расположенных
в 3 линии и 9 столбцов (рис. 3). В первом столбце могут быть числа от 1 до 9,
во втором – от 10 до 19 и т.д.
Комбинация чисел в билете уже сформирована. Во время розыгрыша ло-
тотрон случайным образом выбирает выигрышные номера. Игроки отмечают
совпавшие номера на билетах.
«Совпали 13 номеров»
13 чисел совпали с числами, выпавшими в розыгрыше до момента опреде-
ления выигрыша.
«Совпали 14 номеров»
Рис. 3. Лотерея игры 14 чисел совпали с числами, выпавшими в розыгрыше до момента опреде-
TeleBingo ления выигрыша.
«Bingo»
15 чисел совпали с числами, выпавшими в розыгрыше после 34 хода (на 35,
36 и т.д.).
134
1. Распредели этапы решения задачи про лотерею в правильном порядке.
1. Если количество 2. Сравним наши номера
совпадений больше 13 – с призовыми номерами 3. Сформируем массив 4. Заполним массив из
ПОБЕДА, если нет – и подсчитаем количество из 30 случайных чисел. 30 заданных чисел.
вы проиграли. совпадений.
2. Реализуй приложение «TeleBingo». Подумай, какой способ заполнения массива
будет эффективным в данном примере.
Инструкции к выполнению заданию
Используй заданные на примере готовой лотереи значения: 7, 8, 11, 15, 20, 24,
26, 29, 37, 39, 31, 35, 41, 49, 40, 42, 50, 53, 62, 66, 67, 67, 78, 78, 71, 73, 83, 90, 80, 87.
Создай массив В для хранения этих данных.
• Организуй случайную генерацию 36 чисел в диапазонах: от 1 до 9, от 10 до
20, от 21 до 30, от 31 до 40, от 41 до 50, от 51 до 60, от 61 до 70, и т.д. Сохрани
их в массиве А.
• Организуй проверку наличия элементов массива В в массиве А.
• Создай переменную K для подсчета совпадений.
Проверь количество совпадений: если оно больше 13, то необходимо вывести
сообщение для игрока, что его лотерея выиграла.

ПРОВЕРЬ СЕБЯ
1. Дан массив int A[6] = {1, 4, 8, -3, 4, 6 }; 2. Массив X необходимо заполнить значениями,
Определи, какое значение будет выведено в которые вычисляются по формулам, представ-
результате применения для этого массива сле- ленным в таблице 1.
дующего кода: Определи для каждого варианта (A, B, C, D, E)
s=1; значения массива X, размер массива, если ис-
for (int k = 0; k < 5; k++) пользуется следующий цикл:
{if(x[k]<0) s*=x[k]; for ( k=0; k<6; k++ )
{…………………… }
Таблица 1
A B C D E
X[k] = k X[k] = 2*k X[k] = 2*k - 1 X[k] = 2*k + 1 X[k] = 2*(k + 1)
3. Задан массив X[N]. Какое условие надо поставить вместо многоточия, чтобы найти сумму положи-
тельных элементов массива в переменной S?
int S = 0;
for (int k=0; k<N; k++ )
if ( . . . ) S = S + X[k];
4. Изучи представленный код и назови: элементы управления, свойства, методы, алгоритмические
структуры. Определи назначение данного кода.
private void button2_Click(object sender, EventArgs e)
{
if (checkBox1.Checked)
{ max = A[0];
for(i=0; i<n; i++)
{ if (A[i] >= max) max = A[i]; }
label1.Text = max.ToS tring();
}
5. Напиши код, который заполнит массив А размером 5 целыми числами в диапазоне от 12 до 25 и
выведет массив в текстовое поле.
for (int i = 0; i < _____; i++)
{ a[i] = ________________________________________________;
textBox1.________________________________________________;
}
135
Трассировка массива
5.9
Ничего не принимай на веру, когда есть возможность проверить
Зачем нужна трассировка самому.
алгоритма с массивом? Редьярд Киплинг

ЗАДАНИЕ 1. a) Назови способы представления алгоритма решения задач,


Трассировка – метод в которых нет необходимости применять язык программирования.
пошагового выполне­ b) Определи преимущества и недостатки выполнения трассировки программного
ния программы кода.
с отсле­живанием c) Задан массив со следующими значениями:
значений всех x[0] = 2, x[1] = 8, x[2] = 10, x[3] = 3, x[4] = 2, x[5] = -6.
переменных. Определи результат выполнения кода для следующих случаев A, B, C:
A B C
int s=0; int Kmax=0; int s=0;
for (i=0; i< n; i++) for ( int k=1;k<n; k++) for (int i=0; i<3;i++)
s=s+x[i]; if (x[k]>x[Kmax] ) s=s+x[i]-x[6-i];
s=s/n; Kmax=k; cout<<s;
cout<<s; cout<<x[Kmax];

Рассмотри пример выполнения трассировки задачи с массивом, пред-


ставленным в графическом виде (рис. 1). Напомним, что заполнение трас-
сировочной таблицы происходит по строкам. Введем X=4 и будем счи-
тать, что элементы массива уже заданы элементами, представленными
Number_X=0 в таблице.
i=0, 19 0 1 2 3 4
6 12 -9 4 2
Трассировочная таблица
R[i]=X True
Шаг I R[I] Условие NumberX Х
False
Number_X=Number_X+1 1 0 0 4
2 0 6 6=4 (нет) 0 4
3 1 12 12=4 (нет) 0 4
4 2 -9 -9=4 (нет) 0 4
No Number_X=0 Yes 5 3 4 4=4 (да) 1 4
6 4 2 2=4 (нет) 1 4
В массиве нет «Число», Х 7 1=0 (нет) 4
числа Х «присутствует» Вывод:
8
Число 4 в массиве присутствует один раз.

Рис. 1 ЗАДАНИЕ 2. Определи назначение алгоритма задания 1 и выполни трассировку


алгоритма, если будет введено число X=0. Какое сообщение в этом случае будет
выведено на экран?

ЗАДАНИЕ 3. Сформулируй задание для данного алгоритма (рис. 2). Реализуй


проект этого алгоритма в объектно-ориентированной среде.

136
Допиши код в пропущенные строки 1, 2: S= 0
private void button1_Click(object sender, EventArgs e)
{ n = Convert.ToInt32(textBox1.Text); i=1, N
int s = 0;
label1.Text = "";
int[] a = new int[n]; A[i]>0 Yes

for (int i = 0; i < n; i++) No


S+=A[i]
{ a[i]=Convert.ToInt32
(dataGridView1.Rows[i].Cells[0].Value);
_______________________________________(1)
s += a[i]; //суммируем элементы массива S
}
Рис. 2
label1.Text= ____________________; (2) }
Создай трассировочную таблицу для этой задачи и заполни ее.
Введи n=5, а в качестве элементов массива введи значения: 15, 5, 0, -25, 10.
n i A[i] Условие s
5

На предыдущих уроках мы изучили разные алгоритмы обработки мас-


сива. Рассмотрим алгоритм удаления в одномерном массиве элемента, max = A[0]; N_max=0;
например, с максимальным значением. for(i=0; i<n; i++)
Решение. Анализ постановки задачи позволяет выделить две после­ {
дова­тельно решаемые задачи: поиск элемента с максимальным значением if (A[i] >= max)
и удаление этого значения из массива. {
max = A[i];
Алгоритм первой задачи был рассмотрен ранее на одном из уроков:
N_max=I;
нахождение максимального элемента. }
В этом алгоритме были определены максимальный элемент массива label1.Text = max.
ToS tring()+ " "
и номер максимального значения N_max. Можно увидеть, что макси-
+N_max.Tos tring();
мальное значение можно определить как элемент А[N_max].
Удаление элемента из массива приводит к уменьшению количества
элементов массива за счет их перемещения на позицию удаляемого.

i 0 1 2 3 4 Пусть в массиве int[] A = new


A[i] 2 4 13 5 7 int[5]; заданы элементы:

Удалить for (i = N_max; i <= n-1; i++)


максимальный элемент {
A[i] = A[i + 1];
}
n--;// количество элементов уменьшилось на 1

Максимальное значение в этом примере равно 13. После удаления


количество элементов данного массива уменьшится на 1 и станет рав-
ным 4, а массив примет вид (2, 4, 5, 7). Для удаления элемента из массива
необходимо знать его номер, например, N_max. Удаление производится
путем сдвига на одну позицию влево всех следующих за удаляемым эле-
ментов А[i]=А[i+1]. Этот сдвиг должен осуществляться под управлением
137
цикла, который должен начинаться с N_max до n-1. Цикл завершит свою
работу, когда последний элемент массива сдвинется на место предпо-
следнего элемента.

ЗАДАНИЕ 4. Разработай приложение «Удаление максимального элемента»


(рис. 3).

Удаление максимального элемента

Введите элемент Добавить

2
4 Удалить
13
5 Показать новый массив
7
Рис. 3. Интерфейс
приложения 2 4 5 7
«Удаление
максимального
элемента»
Инструкция к выполнению

Шаг 1 Разработай дизайн приложения, как показано в образце (рис. 3).

Шаг 2 Восстанови код добавления элемента массива в список lis tBox1 из урока


5.7 «Обработка элементов одномерного массива. Поиск максимального
и минимального элемента».

Шаг 3 Закодируй кнопку «Удалить».


private void button2_Click(object sender, EventArgs e)
{ label1.Text = " ";
// найти максимальный элемент
if (checkBox1.Checked)
{ max = A[0]; N_max = 0;
for (i = 0; i < n; i++)
{ if (A[i] >= max) { max = A[i]; N_max = i; }
}
//удаляем максимальный элемент
for (i = N_max; i <= n-2; i++)
{
A[i] = A[i + 1];
}
n--;// количество элементов уменьшилось на 1.
// выводим новый массив
for (i = 0; i < n; i++)
{
label1.Text += A[i].ToS tring()+" ";
}
}

138
Выполни трассировку программного кода приложения «Удаление Шаг 4
максимального элемента» (для фрагмента кода, выделенного зеленой
заливкой) со следующими данными: n=4.

i 0 1 2 3
A[i] 9 9 6 5

Шаг I A[I] max N_max Условие

ПРОВЕРЬ СЕБЯ n i a[i] k


5 – – 0
1. Выполни анализ трассировочной таблицы (рис. 4) и определи условие
– 1 0 1
задачи.
– 2 1 1
2. Пропиши код для трассировочной таблицы из первого вопроса. – 3 -1 1
3. Создай приложение, в котором необходимо исключить из массива А[n] – 4 -1 1
пеpвый отpицательный элемент. – 5 0 2
4. Создай приложение, в котором переставляются элементы массива в Рис. 4
обратном порядке. Выполни проверку приложения, используя данные
в таблице.
Исходный массив:
i 0 1 2 3 4 5 6 7 8 9
a 1 3 4 5 2 0 1 2 3 5
Массив после перестановки:
i 0 1 2 3 4 5 6 7 8 9
a 5 3 2 1 0 2 5 4 3 1

139
Подводим итоги

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

Машинный код Ассемблер Basic


– IF Collision THEN
0005 B4 09 7 mov AH, 09h
1 Speed := 0;
0007 BA0000r 8 mov DX, offset msg
2 Brakes := OnS tate;
00A CD21 9 int 21 h
3 END_IF;
4
5 – IF (Temp > 200.0) THEN
6 Control_S tate :=
7 Active;
8 – ELSE
9 Control_S tate :=
10 Hold;
11 PumpSpeed := 10.0;
END_IF;

2. Назови языки программирования третьего и четвертого поколения.


3. Назови, какие типы задач можно решать с помощью языков Lips, Prolog, Common Lisp, Refal.
4. Как известно, при выборе программного обеспечения существуют показатели оценки выбора ПО,
которые представлены в таблице. Распредели показатели оценки программ.
Технологические параметры
Требования к разработчику пакета Технические требования
программ

A. Наличие сервисных центров.


B. Удобство интерфейса пользователя.
C. Ограничение доступа.
D. Возможности настройки на параметры используемого оборудования (монитора, принтера,
сканера и пр.).
E. Требуемый объем внешней памяти.
F. Работа в сети, используемые протоколы.
G. Квалификация разработчика программного обеспечения, его рейтинг на рынке.
H. Качество сопровождения, наличие «горячей линии».
I. Требуемый объем оперативной памяти, быстродействие системы.
5. Задан массив A. Опиши массив.

i 0 1 2 3
A[i] ‘A’ ‘4’ ‘6’ ‘!’

6. Задан массив X[N]. Какое условие надо поставить вместо многоточия, чтобы найти количество четных
элементов массива?
S = 0;
for ( j=0; j<N; j++ )
if ( ... ) S++;

A B C D E
S / 2 == 1 S % 2 == 0 X[ j] % 2 == 1 X[ j] % 2 == 0 X[ j] / 2 == 0
140
7. Дан код программы на С++. Подумай, как можно его оптимизировать.
int a; a=Convert.ToS tring32(textBox1.Text);
if (a %4 == 0)
if(a % 100 != 0)
if(a % 400 == 0)
MessageBox.Show ("Високосный год");
else MessageBox.Show ("Невисокосный год");

8. Назови цель оптимизации и стратегии оптимизации.


9. Определи различия между высокоуровневой и низкоуровневой оптимизацией кода.
10. Выполни трассировку алгоритма (рис. 1), если заданы значения массива.

i 0 1 2 3
A[i] 5 -5 6 9

Шаг i A[i] Условие Max


Max=A[0]

i=1, N

A[i]>Max True
False
Max=A[i]

Max

Рис. 1

141
Технология ADO .NET

••• База данных Ученики

Найти

Search

Модель доступа к Data Base


данным для приложений
Microsoft.Net

BindingNavigator – TableAdapter
необязательный элемент подключается к базе
пользовательского данных и осуществляет
интерфейса запрос

BindingSource
привязан к таблице
Form1

Cus tomerBindingSource

Cus tomerTableAdapter

Выполнение запросов TableAdapter путем вызова Результаты запроса


необходимого метода для TableAdapter. подставляются
Например, Cus tomerTableAdapter.Fill() в DataTable

142
6. БАЗЫ ДАННЫХ В ООП (C#)

● Зачем подключать базу данных Ты уже знаешь:


к приложению ООП?
● Что такое технология ADO.NET? ● как разрабатывать многотабличные базы данных
в MS ACCESS;
● Как подключать базу данных
к приложению ООП? ● как различать объекты базы данных: таблицы,
запросы, отчеты, формы;
● Как использовать свойства компонентов
BindingSource и TableAdapter? ● как создавать запрос на выборку в СУБД MS
ACCESS в режиме конструктора.
● Как выполнять «сортировку»
и «фильтрацию» данных в базе данных?
Ты узнаешь:
● зачем подключают таблицу базу данных
к приложению ООП;
● какие преимущества дает создание
приложения ООП для работы с базой данных;
● о технологии ADO.NET и ее возможностях;
● какие компоненты используют для
подключения таблицы MS ACCESS
к приложению;
● зачем необходим bindingNavigator;
● какие свойства имеет BindingSource.

143
Подключение базы данных
6.1 к приложению ООП
ЗАДАНИЕ 1. 1. Назови назначение баз данных. Вспомни определения понятий:
Как и зачем подключать объекты баз данных, поля БД, записи, таблицы.
базу данных к приложе- 2. К какому виду программного обеспечения относится СУБД?
нию ООП? 3. В чем особенность реляционных баз данных?
4. Сколько записей в представленной таблице базы данных (рис. 1)?
5. Определи первичный ключ в представленной таблице базы данных.
6. Назови поля с типом данных «текстовый».

Ученик
Код Фамилия Имя Дата рождения Пол
0 Ахметов Асан 05.09.2004 муж
1 Барлыков Хасен 03.12.2003 муж
2 Сергеева Анастасия 12.04.2003 жен
Рис. 1. Пример 3 Самойлова Вероника 12.09.2003 жен
таблицы базы 4 Вахитов Умар 12.09.2009 муж
данных 5 Игорева Наталья 12.09.2009 жен

Возможности СУБД

Система управления Создание БД Сортировка данных


базами данных
(СУБД) – это комплекс
Заполнение БД Поиск информации в БД
программных средств,
необходимых для
Редактирование БД Вывод информации из БД
создания структуры
новой базы, ее
наполнения, Установка защиты БД
редактирования
содержимого Сегодня все организации используют СУБД. Однако на рынке при-
и отображения кладных ПО приложений СУБД огромное количество, и в каждом есть
информации. Примеры свои особенности работы, преимущества и недостатки. Разработчикам
СУБД: PC-File, Reflex, сложно выбрать СУБД для создания собственной информационной си-
Q&A.dBASE, Paradox
стемы. Однако, используя технологию ADO, разработанную компанией
фирмы Borland,
Fox Pro, MS Access
Microsoft, можно создавать собственное приложение со своим дизайном
компании Microsoft. и функциями, подключив к нему базу данных, разработанную в СУБД.
Технология ADO.NET представляет собой набор средств, позволяющих
осуществить доступ к любому источнику данных, тем самым давая раз-
работчику мощный механизм взаимодействия с базами данных (рис. 2).

Рис. 2. Механизм
доступа к ИСТОЧНИКИ
ПРОГРАММА ADO .NET
источникам данных ДАННЫХ

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


с помощью Visual Studio базы данных и языка C#, в которых используется
технология ADO.
144
ЗАДАНИЕ 2. Рассмотрим пошаговую инструкцию подключения базы данных, Знаешь ли ты?
созданной в MS ACCESS к приложению ООП. MySQL – бесплатная реляци-
1. Создай базу данных Ученик.accdb в Microsoft Access и в ней таблицу «Ученик» онная система управления
(рис. 3). базами данных. MySQL на-
писана на языках C и C ++.
Ученик Разработку и поддержку
MySQL осуществляет компа-
Имя поля Тип данных ния Oracle. MySQL занимает
Код Числовой лидирующую строчку в рей-
Фамилия Короткий текст тинге популярности, так как
подавляющее большинство
Имя Короткий текст сайтов хранят свои данные в
Дата рождения Дата и время базе MySQL. SQL и MySQL не
Пол Короткий текст Рис. 3. Таблица совпадают, так как SQL – это
Класс Числовой «Ученик» язык для взаимодействия с
базой данных.
2. Заполни таблицу «Ученик» 3-4 записями и сохрани базу данных в папке, где
будешь в дальнейшем хранить файлы проекта на Visual Studio 2017 (рис. 4).

Ученик
Код Фамилия Имя Дата рождения Пол Класс
0 Ахметов Асан 05.09.2004 муж 9
1 Барлыков Хасен 03.12.2003 муж 10
2 Сергеева Анастасия 12.04.2003 жен 9
3 Самойлова Вероника 12.09.2003 жен 11
4 Вахитов Умар 12.09.2009 муж 7
5 Игорева Наталья 12.09.2009 жен 7
Рис. 4. Заполнение
6 Ситков Василий 07.06.2007 муж 9
таблицы данными
3. В Visual Studio 2017 создаем проект и сохраняем в отдельной папке. Прос­
тейшим способом отображения данных является использование компонента Технология ADO
DataGridView из группы компонентов Data. Компонент является визуальным и на (ActiveXDataObjects) –
форме выглядит следующим образом. Открываем область «Задачи» и выбираем это набор объектов,
пункт «Добавить источник данных проекта» (рис. 5). при помощи которых
TableLayoutPanel
программист
Меню и панели инструментов может осуществить
DataGridView Задачи
подключение к
Выберите источник данных: (нет)
Правка столб Отсутствует серверу баз данных,
Добавить сто выборку данных или
Включить
их модификацию.
Включить
Включить
Включить
Закрепить в р

Добавить источник данных проекта... Рис. 5. Пункт


«Добавить источник
Щелкните ссылку "Добавить источник
данных проекта...", чтобы установить св...

данных проекта»

Окно настройки компонента DataGriedView определяет его возмож-


ности по редактированию данных:
«Включить редактирование» («Enable Adding»).
«Включить правку» («Enable Editing»).
«Включить удаление» («Enable Deleting»).

145
Возможность изменения последовательности столбцов:
«Включить возможность изменения порядка столбцов» («Enable
Column Reordering»);
а также возможность закрепления в контейнере-родителе.
4. Откроется «Мастер настройки источника данных». В качестве
источника выбираем «База данных», затем – «Набор данных» (рис. 6).
Мастер настройки источника данных Мастер настройки источника данных

Выбор типа источника данных Выбор модели базы данных

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

База данных Служба Объект Набор


данных

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

< Назад Далее > Готово Отмена < Назад Далее > Готово Отмена

Рис. 6. Пункт «Мастер 5. В окне «Выбор источника» выбираем «Поставщик данных .NET Framework
настройки источника для OLE DB».
данных» 6. В качестве «Имя файла базы данных» выбираем путь к созданной ранее базе
данных Ученик.mdb (Ученик.accdb) (рис. 7).

Добавить подключение

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

Источник данных
Файл базы данных Microsoft Access (OLE DB) Изменить...

Имя файла базы данных:


Выбираем созданную
C:\Users\Ainagul\Desktop\Учебник 10 класс\Приложения\Primer\Ученик.mdb Обзор... базу данных
Вход в базу данных:

Имя пользователя: Admin

Пароль:
Сохранить пароль

Дополнительно...

Проверить подключение ОК Отмена

Рис. 7. Пункт 7. Использование кнопки «Проверить подключение» («Test Connection») поз­


«Добавить источник волит убедиться в правильности введенных параметров и работоспособности
данных проекта» соединения (рис. 8).

146
Мастер настройки источника данных

Выбор подключения к базе данных

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

Добавить подключение Создать подключение...

Введите данные для подключения к выбранному источнику


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

Источник данных:
Файл базы данных Microsoft Access (OLE DB) Изменить...

Имя файла базы данных: Можно ввести пароль


Обзор... на открытие базы
данных
Вход в базу данных:
(нежелательно)
Имя пользователя: Admin

Пароль:

Сохранить пароль

Готово Отмена
Дополнительно...
HelpProvider
Рис. 8. Пункт
Проверить подключение ОК Отмена ImageList
MessageQueue
«Добавить
PerformanceCounter
подключение»

Мастер настройки источника данных


Мастер настройки источника данных
Выбор подключения к базе данных
Выбор подключения к базе данных

Какое подключение ваше приложение должно использовать для работы с базой данных?
Какое подключение ваше приложение должно использовать для работы с базой данных?
Добавить подключение
Ученик.mdb2 Создать подключение...

Microsoft Visual Studio По-видимому, эта строка подключения содержит конфиденциальные данные (например, пароль),
необходимые для создания подключения с базой даннх. Хранеие таких сведений в строке подключения
Источник данных: представляет потенциальную угрозу безопасности. Добавить конфиденциальные данные в строку
Проверка подключения подключения?
Изменить...
выполнена.
Имя файла базы данных: Нет, исключить конфиденциальные данные строки подключения. Эти данные будут заданы в
коде приложения.
Обзор...
ОК Да, включить конфиденциальные данные в строку подключения.
Вход в базу данных

Показать строку подключения, которая будет сохранена в приложении


Имя пользователя: Admin

Пароль:
Сохранить пароль

Дополнительно...

< Назад Далее > Готово Отмена


Проверить подключение ОК Отмена

Рис. 9. Пункт «Проверка подключения»

8. Выйдет окно для переноса файла базы данных в твой проект (рис. 10), нажи-
маем «Нет».

147
Мастер настройки источника данных 9. В следующем окне показана строка под-
Выбор подключения к базе данных
ключения в файле конфигурации приложения. В
нашем примере это подключение сохраняется
Какое подключение ваше приложение должно использовать для работы с базой данных? под именем «УченикConnectionString» (рис. 11).
Ученик.mdb2
Microsoft Visual Studio 10. В окне выбираем нашу таблицу «Ученик»
Выбранное подключение использует локальный
и жмем «Готово» (рис. 12).
файл данных, не относящийся к текущему проекту.
Копировать файл в проект и изменить подключение? Мастер настройки источника данных
При копировании файла данных в проект он будет
копироваться в выходной каталог проекта при каждом Сохранение подключения в файле конфигурации приложения
запуске приложения. Для получения сведений о том,
как можно управлять подобным поведением, нажмите
клавишу F1.
Хранение строк с параметрами подключений в файле конфигурации приложения облегчает
сопровождение и развертывание. Чтобы сохранить строку подключения в файле конфигурации
приложения, введите имя в это поле, а затем нажмите кнопку «Далее».
Да Нет Справка
Сохранить строку подключения в файле конфигурации приложения?
Да, сохранить подключение как:
УченикConnectionString
< Назад Далее > Готово Отмена

Выбираем «Нет»
< Назад Далее > Готово Отмена
Рис. 10. Пункт «Выбор подключения»
Рис. 11. Пункт «Сохранение подключения
Мастер настройки источника данных
в файле конфигурации приложения»
Выбор объектов базы данных

11. Установи на форме кнопку «Сохранить»


Объекты базы данных для набора данных
Таблицы
и измени текст формы на «База данных». После
Ученик
Код
этих действий форма должна выглядеть, как по-
Фамилия
Имя
казано на рис. 13.
Дата рождения
Пол
Класс
Представления

Дата
Код Фамилия Имя Пол Класс
рождения
Имя набора данных (DataSet): *
УченикDataSet

Рис. 12. Пункт «Выбор


объектов базы
данных»

Класс TableAdapter
Класс DataSet Класс BindingSource
Компонент для взаимо-
Компонент хранит на- Компонент определяет
действия между прило-
стройки подключения источник данных для
жением и базой данных
базы данных Ученик. формы.
Ученик.
Рис. 13. Установка
на форме
компонентов DataSet,
BindingSource, ученикDataSet Класс BindingSource Класс TableAdapter
TableAdapter
148
12. После запуска приложения наша база данных будет выглядеть так
(рис. 14). Класс TableAdapter –
адаптер таблиц,
База данных который обеспечивает
взаимодействие между
Дата приложением и базой
Код Фамилия Имя Пол Класс
рождения данных. Например, при
 2 Барлыков Хасен 03.12.2006 муж 10 создании TableAdapter
3 Сергеева Настя 12.04.2007 жен 9 на основе таблицы в
4 Самойлова Вероника 12.09.2009 жен 11
базе данных с именем
Ученик компонент
5 Вахитов Умар 12.09.2009 муж 7
приобретает имя
6 Игорева Наталья 12.09.2009 жен 7 ученикTableAdapter.
7 Ситков Василий 07.06.2007 муж 9
Компонент
0 Ахметов Асан 05.09.2007 муж 9
BindingSource –
• источник данных для
некоторых или всех
элементов управления
формы. В Visual Studio
Рис. 14. Вид приложения после запуска объект BindingSource
можно привязать к
Таким образом, мы вывели данные из таблицы на форму. элементу управления
с помощью
ЗАДАНИЕ 3. 1. Введи в приложение новые записи. Затем закрой приложение DataBindings –
и снова запусти. свойства, доступного в
2. Почему после запуска приложения в таблице не оказалось новых данных? окне Свойства.
Как сохранить введенные данные?
Чтобы сохранить отредактированную базу данных, создадим кнопку
ПРИМЕЧАНИЕ!
«Сохранить» и добавим ее на форму (рис. 14).
Во время разработки
некоторые действия,
например, перетаски-
Код Фамилия Имя
Дата
Пол Класс вание таблицы базы
рождения
данных из окна данных
* Сохранить в пустую форму, при-
ведут к созданию ком-
понента BindingSource,
его привязке к базово-
му источнику данных и
добавлению элементов
управления данными в
одной операции.

Пропишем код на кнопку «Сохранить».

private void Button1_Click(object sender, EventArgs e)


Имя таблицы
{ ученикTableAdapter.Update (ученикDataSet.Ученик);
«ученикDataSet.Ученик»
}

Имя файла базы данных Команда обновления

149
Код обновляет запись в нашей таблице ученикTableAdapter.
После добавления кода запусти свое приложение и попробуй изменить
любую запись и сохранить.

ПРОВЕРЬ СЕБЯ
1. Назови причины создания технологии ADO и ее назначение.
2. Создай таблицу в MS ACCESS и заполни ее следующими данными. Определи типы данных для каждого
поля. Создай приложение, которое позволит заполнить таблицу через приложение Visual Studio.

Имя Годы жизни Возраст Страна Рост, см


Джон Уильям Роган 1871-1905 34 США 264
Джон Ф. Кэррол 1932-1969 37 США 263,5
Якоб Лолл 1883-1921 38 Россия 255
Вайно Миллиринне 1909-1963 54 Финляндия 251,4
Дон Кёлер 1925-1981 56 США 248,9

3. Локальные базы данных находятся на одном (локальном) устройстве, в качестве которого может
выступать диск компьютера или сетевой диск (диск другого компьютера, работающего в сети).
Подумай и назови недостатки таких баз данных.
4. В чем отличие реляционной модели базы данных от иерархической?
5. Пропиши код, который необходим для сохранения данных в приложении при подключении таблицы
MS ACCESS.
6. Сопоставь компонент и его описание.
Этот компонент хранит настройки подключения
BindingSource
базы данных
Компонент для взаимодействия между приложе­
Класс DataSet
нием и базой данных
Компонент определяет источник данных для
TableAdapter
формы

150
Работа с записями в базе данных
6.2
ЗАДАНИЕ 1. 1. Назови свойства таблицы DataGriedView, которые используются
при подключении базы данных к приложению.
2. Представлен код { ProductTableAdapter._____________ (TovarDataSet.Produkt); Как добавлять или удалять
Назови: записи в базе данных?
a) имя файла базы данных;
b) имя таблицы, которая описана в этом примере;
c) пропущенную команду и ее назначение.
3. Расскажи о назначении технологии ADO .NET.

Form1 Компонент bindingNavigator


представляет пользовательский
интерфейс навигации и управления
для элементов управления в форме,
0 of {0} которые связаны с данными.

Рис. 1

На прошлом уроке ты научился добавлять и сохранять данные в табли-


це, подключив базу данных к приложению Visual Studio. На этом уроке
продолжим изучать возможности работы с таблицей базы данных. По-
знакомимся с компонентом bindingNavigator (рис. 1).
По умолчанию пользовательский интерфейс управления
BindingNavigator состоит из ряда кнопок ToolS trip, таких как добавление
данных, удаление данных и навигация по данным.

ЗАДАНИЕ 2. Добавление, просмотр и удаление записей с помощью Навига-


тора.
a) Открой созданное ранее приложение, где ты подключил таблицу Ученик. На
Панели элементов найди компонент bindingNavigator и размести его на форме
(рис. 2).

Данные
b) Найди свойство
0 дляBindingSource
{0} компонента bindingNavigator и установи Уче- Указатель
никBindingSource (рис. 6.3). Дата Chart
Код Фамилия Имя Пол Класс
рождения BindingNavigator
Сохранить
*
BindingSource
DataGridView
DataSet
Компоненты

Рис. 2

151
Рис. 3 Свойства
bindingNavigator1 System.Windows.Forms.BindingNavigator

(ApplicationSettings)
(DataBindings)
(Name) blindingNavigator1
AccessibleDescription
AccessibleName
AccessibleRole Default
AddNewItem bindingNavigatorAddNewItem
AllowDrop False
AllowItemReorder False
AllowMerge True
Anchor Top, Left
AutoSize True
BackColor Control
BackgroundImage (отсутствует)
BackgroundImageLayout Tile
BindingSource ученикBindingSource

Запусти приложение и протестируй работу компонента bindingNavigator


(рис. 4):
– добавь новые данные в таблицу;
– перейди на первую запись;
– удали одну запись.
База данных
1 для 7

Дата
Код Фамилия Имя Пол Сохранить
рождения
 2 Барлыков Хасен 03.12.2006 муж
3 Сергеева Настя 12.04.2007 жен
4 Самойлова Вероника 12.09.2009 жен
5 Вахитов Умар 12.09.2009 муж
6 Игорева Наталья 12.09.2009 жен
7 Ситков Василий 07.06.2007 муж
0 Ахметов Асан 05.09.2007 муж

< <

Рис. 4 ЗАДАНИЕ 3. 1. Изучи свойство AddNewItem компонента bindingNavigator.


Установи значение bindingNavigatorDeleteItem.
2. Запусти приложение и посмотри, какие изменения произошли в приложении.
Определи самостоятельно назначение этого свойства.
Как защитить данные от случайного удаления?
Чтобы пользователь случайно не удалил запись в базе данных, нужно
сделать так, чтобы перед удалением приложение спрашивало об удале-
нии записи.
Для этого перейдем к компоненту DataGridView, откроем список со-
бытий и установим обработчик для события UserDeletingRow. Двойным
152 щелчком вызови код для события (рис. 5).
Свойства Рис. 5
dataGridView1 System.Windows.Forms.DataGridView

SystemColorsChanged
TabIndexChanged
TabStopChanged
UserAddedRow
UserDeletedRow
UserDeletingRow dataGridView1_UserDeletingRow
Validated
Validating
VisibleChanged

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


и нажмет кнопку «Delete». Вписываем код для события UserDeletingRow.

private void dataGridView1_UserDeletingRow(object sender, DataGridViewRowCancelEventArgs e)


{
DialogResult dr = MessageBox.Show("Удалить запись?", "Удаление", MessageBoxButtons.
OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.Cancel)
{ e.Cancel = true;
}
}

Удаление
ЗАДАНИЕ 4. Проверь код, запусти приложение и попробуй удалить запись
(рис. 6).
Удалить запись?
Как отобразить данные в отдельном блоке?
Редактирование данных в ячейках компонента dataGridView при со-
ответствующих настройках возможно, но неудобно и нерационально. В ОК Отмена
частности, трудно проверять введенные значения на ошибки. Поэтому для
таблицы «Ученик» сделаем экранную форму, позволяющую отображать Рис. 6
данные в компонентах textBox и редактировать их.
Разместим на форме контейнер GroupBox (рис. 7).
Контейнеры
Также разместим в компоненте GroupBox пять компонентов textBox,
Указатель
как показано на рисунке 8.
FlowLayoutPanel
GroupBox
Panel
SplitContainer
TabControl
TableLayoutPanel

Рис. 7

153
Рис. 8

b) Найди свойство
0 дляBindingSource
{0} компонента bindingNavigator и установи Уче-
никBindingSource (рис. 6.3). Дата
Код Фамилия Имя Пол Класс
рождения Сохранить
*

Фамилия

Имя

Дата рождения

Пол

Класс

Теперь необходимо осуществить привязку компонентов textBox к со-


ответствующим полям таблицы «Ученик». Для этого используем свойство
из группы DataBindings – Advanced (рис. 9, 10).

Форматирование и дополнительная привязка

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

Свойство: Привязка: Режим обновления источника данных:


Общий
Tag
Text Формат
Все Не использовать форматирование, если значения из источника
Свойства отображаются без оформления.
textBox1 System.Windows.Forms.TextBox Тип формата: Образец
Без форматиро
-1234.5
Числовой
(ApplicationSettings) Валюта
(DataBindings) Дата Время Значение Null:
Экспоненциаль
(Advanced) Пользоват.
Tag (нет)
Text ученикBindingSource - Фамилия
(Name) textBox1
AcceptsReturn False
AcceptsTab False

Рис. 9
ОК Отмена

Отсутствует
ученикBindingSource Рис. 10
Код
Фамилия
Имя
Дата рождения
Пол
В пункте «Привязка» выбери первое поле «Фамилия». Аналогично
Другие источники данных свяжи другие текстовые поля с полями «Имя», «Дата рождения», «Пол»
(рис. 11).
Добавить источник данных проекта... Запусти приложение и выполни тестирование работы кода (рис. 12).
В данный момент данные привязаны к
‘Фамилия’

Рис. 11

154
База данных
Рис. 12

1 для 7

Дата
Код Фамилия Имя Пол
рождения
 2 Барлыков Хасен 03.12.2006 муж
3 Сергеева Настя 12.04.2007 жен Сохранить

4 Самойлова Вероника 12.09.2009 жен


5 Вахитов Умар 12.09.2009 муж
6 Игорева Наталья 12.09.2009 жен
7 Ситков Василий 07.06.2007 муж
0 Ахметов Асан 05.09.2007 муж

< <

Фамилия Барлыков

Имя Хасен

Дата рождения 03.12.2006

Пол муж

Класс 10

ПРОВЕРЬ СЕБЯ
1. Назови назначение компонента bindingNavigator и объясни свойство bindingNavigatorAddNewItem.
2. Определи последовательность связывания компонента bindingNavigator с таблицей базы данных.
Какое свойство необходимо использовать в этом случае?
3. Назови назначение события UserDeletingRow компонента DataGridView.
4. Объясни строки следующего кода.
DialogResult dr = MessageBox.Show («Удалить запись?», «Удаление», MessageBoxButtons.
OKCancel, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button2);
if (dr == DialogResult.Cancel)
{ e.Cancel = true;
}

5. Назови свойство компонента textbox, которое позволяет отображать в текстовом поле поля таблицы
базы данных.
6. Объясни назначение следующего кода:
this.абитуриентTableAdapter.Update(this.dataBaseIPSDataSet.Абитуриент);

155
Извлечение информации из базы данных
6.3
Кто ищет, тому назначено блуждать.
Как организовать сорти- Иоганн В. Гете
ровку и фильтрацию дан-
ных? ЗАДАНИЕ 1. 1. Назови назначение сортировки данных, которая производится
в таблицах базы данных MS ACCESS.
2. Покажи на рис. 1 инструменты организации сортировки и фильтрации данных
в таблице.

Файл Главная Создание Внешние данные Работа с базами данных Поля Таблица

Вырезать По возрастанию Выделение Создать Итоги


Копировать По убыванию Дополнительно Сохранить Орфография
Режим Вставить Фильтр Обновить
Формат по образцу Удалить сортировку Фильтр все Удалить Дополнительно
Режимы Буфер обмена Сортировка и фильтр Записи

Рис. 1 3. Назови основную цель сортировки и фильтрации данных. В каких случаях они
необходимы?
Итак, база данных уже разработана. Операция сортировки данных ис-
пользуется всегда для удобства нахождения нужной информации. Когда
на экране (или на бумаге) отображается таблица, гораздо легче найти
нужную строку, если эти строки упорядочены.
Сортировка и Фильтры позволяют отобразить или скрыть информацию в таблице
фильтрация – это два в соответствии с выбранными критериями. При этом структура таблицы
метода, позволяющих остается неизменной. Ты можешь сохранять фильтры и обмениваться
настроить представле­ ими с другими пользователями, у которых есть доступ к соответствующей
ние данных в таблице. таблице.
Использовать одно­ Как сортировать данные в таблице по конкретному полю?
временно оба метода
1. Мы продолжаем работать с таблицей Ученик. В нашей таблице
невозможно, поэтому
нужно определить,
были определены поля: «Код», «Фамилия», «Имя», «Дата рождения»,
какой из них подходит «Пол», «Класс».
в конкретном случае. 2. Выполним сортировку данных по полю «Фамилия».
С помощью сортиров­ 3. Создадим на форме кнопку «Сортировать» и кнопку «Отмена».
ки можно упорядочить Компонент BindingSource упрощает привязку элементов управле-
все данные или их ния в форме к данным. Это достигается путем подключения компонен-
часть по возрастанию та BindingSource к источнику данных с помощью свойства DataSource.
или убыванию. Источники данных, привязанные к BindingSource компоненту, также мож-
но перемещать и управлять ими с помощью класса BindingNavigator,
который предоставляет пользовательский интерфейс.

156
Основные способы сортировки
Свойство Sort
Данные По возрастанию ASC По убыванию DESC компонента
Текст От А до Z , от А до Я От Z до А, от Я до А BindingSource является
От наименьшего От наибольшего чувствительной к
Числа к наибольшему к наименьшему регистру строкой,
От 1 до 100 От 100 до 1 которая указывает
Дата и время От старых к новым От новых к старым имена столбцов,
используемых для
сортировки строк, а
Cортировать по возрастанию также направление
ученикBindingSource.Sort = "имя поля ASC"; сортировки. Столбцы
Сортировать по убыванию сортируются по
ученикBindingSource.Sort = "имя поля DESC "; возрастанию по
где ученикBindingSource – источник данных таблицы ученик умолчанию. Несколько
DESC, ASC – указатели вида сортировки столбцов могут быть
разделены запятыми,
До сортировки например, «S tate,
ZipCode DESC».
База данных
1 для 7

Дата
Код Фамилия Имя Пол Сохранить
рождения
 2 Барлыков Хасен 03.12.2006 муж
3 Сергеева Настя 12.04.2007 жен Сортировать
4 Самойлова Вероника 12.09.2009 жен
5 Вахитов Умар 12.09.2009 муж Отмена
6 Игорева Наталья 12.09.2009 жен
7 Ситков Василий 07.06.2007 муж
0 Ахметов Асан 05.09.2007 муж

< < Рис. 2

После сортировки

База данных
1 для 7

Дата
Код Фамилия Имя Пол Сохранить
рождения
 7 Ситков Василий 07.06.2007 муж
3 Сергеева Настя 12.04.2007 жен Сортировать
4 Самойлова Вероника 12.09.2009 жен
6 Игорева Наталья 12.09.2009 жен Отмена
5 Вахитов Умар 12.09.2009 муж
2 Барлыков Хасен 03.12.2006 муж
0 Ахметов Асан 05.09.2007 муж

< < Рис. 3

157
Код на кнопку «Сортировать» (рис. 2, 3).
private void button2_Click(object sender, EventArgs e)
{

ученикBindingSource.Sort = "Фамилия DESC"; // по полю Фамилия


сортировать по убыванию от Я до А
}

Код на кнопку «Отмена».


private void button4_Click(object sender, EventArgs e)
{
ученикBindingSource.Sort =null;
}

ЗАДАНИЕ 2. 1. Создай в приложении возможность сортировки по полям «Фа-


милия», «Имя», «Пол», «Класс».
2. Добавь переключатели выбора вида сортировки «по возрастанию», «по убы-
ванию» (рис. 4).

База данных
Рис. 4
1 для 8

Дата
Код Фамилия Имя Пол Сохранить
рождения
 1 Ахметов Асан 05.09.2004 муж Сортировать
2 Барлыков Хасен 03.12.2006 муж Фамилия
Имя
3 Сергеева Настя 12.04.2007 жен
Пол
4 Самойлова Вероника 12.09.2009 жен
5 Вахитов Умар 12.09.2009 муж По возрастанию
По убыванию
6 Игорева Наталья 12.09.2009 жен
7 Ситков Василий 07.06.2007 муж
Сортировать
Cвойство Filter • 0 Ахметов Асан 05.09.2007 муж
позволяет Отмена
< <
просматривать
подмножество
DataSource. Когда Как фильтровать данные в таблице?
значение фильтра а) Размести на форме textbox. В это поле будет вводиться значение
равно null, тогда для фильтрации. Например, как показано в образце, фильтрация будет
BindingSource осуществляться по полю «Фамилия» (рис. 5, 6).
передает это свойство
в базовый список.
b) Пропиши код на кнопку «Ок». В этом примере фильтрация была
Если ты установишь выполнена по текстовому полю.
это свойство во private void button2_Click(object sender, EventArgs e)
время инициализации
объекта, вызов { ученикBindingSource.Filter = "Фамилия LIKE’%" + textBox5.Text +
будет отложен "%’";
до завершения }
инициализации.
c) Запусти приложение и протестируй работу кнопки. Запрограммируй
кнопку «Отмена».
158
Рис. 5

b) Найди свойство
0 дляBindingSource
{0} компонента bindingNavigator и установи Уче-
никBindingSource (рис. 6.3). Дата
Код Фамилия Имя Пол Класс Сохранить
рождения
*
Сортировать

Отмена

textBox5.Text
Фильтр
Фамилия Введите фамилию

Имя
Ок textBox6.Text
Дата рождения
Введите класс
Пол

Класс Ок

private void
button2_
Click(object
База данных sender, EventArgs
b) Найди свойство
1 BindingSource
для 1 компонента bindingNavigator и установи Уче- e)
никBindingSource (рис. 6.3). Дата
Код Фамилия Имя Пол Сохранить { уче-
рождения
7 Ситков Василий 07.06.2007 муж
никBindingSource.
Filter = "Фамилия

• Сортировать
LIKE’%" + textBox5.
Text + "%’";
Отмена }

< <

Фильтр
Фамилия Ситков Введите фамилию Си

Имя Василий
Ок ученикBindingSource.Filter= null;
Дата рождения 07.06.2007
Введите класс
Пол муж

Класс 9 Ок

Рис. 6

d) Создай фильтр по числовому полю «Класс».


private void button5_Click_1(object sender, EventArgs e)
{ ученикBindingSource.Filter= "Класс =" + Convert.ToInt32(textBox6.Text);
}

Если необходимо фильтровать данные по 9 классу, то в этом случае в


таблице будут отображены данные только по 9 классу (рис. 7).
159
База данных
b) Найди свойство
1 дляBindingSource
3 компонента bindingNavigator и установи Уче- Фильтрация по числово-
никBindingSource (рис. 6.3). Дата
му полю «Класс»
Код Фамилия Имя Пол Сохранить
рождения
 3 Сергеева Настя 12.04.2007 жен
7 Ситков Василий 07.06.2007 муж Сортировать
0 Ахметов Асан 05.09.2007 муж

Отмена
< <

Фильтр
Фамилия Сергеева Введите фамилию Условие фильтрации по
полю «Класс»
Имя Настя
Ок
Дата рождения 12.04.2007
Введите класс 9
Пол жен

Класс 9 Ок

Рис. 7 ЗАДАНИЕ 3. 1. Введи в поле фильтрации данных полную фамилию, затем


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

ПРОВЕРЬ СЕБЯ
1. Объясни, чем отличается сортировка от фильтрации.
2. Подумай, что будет отображено, если условие фильтрации будет следующим: в textBox6.Text поль-
зователь ввел значение 8:
ученикBindingSource.Filter= "Класс >" + Convert.ToInt32(textBox6.Text);
3. Выбери значения, которые будут отфильтрованы по условию фильтра:
ученикBindingSource.Filter = «Отчество LIKE ‘%» + «Ах» + «%’»;
a) Ахметов; b) Сахатов; c) Ахметов; d) Пахомов.
4. Выбери компонент для взаимодействия между приложением и базой данных:
a) Dataset; b) TableAdapter; c) BindingSource; d) bindingNavigator; e) DataSource.
5. Компонент, представляющий пользовательский интерфейс навигации и управления для элементов
управления в форме, которые связаны с данными:
1. Dataset; 2. TableAdapter; 3. BindingSource; 4. bindingNavigator; 5. DataSource.
Как будут расположены записи в таблице после команды “ученикBindingSource.Sort = «Рост
ASC»;”?
Таблица1
Код Фамилия Имя Класс Адрес Дата рождения Рост Вес
1 Иванов Иван 9А ул. Ленина, д.1 12.03.1993 156 50
2 Петров Петр 9А ул. Транспортная, д.5 06.11.1992 167 62
3 Третьяков Павел 9Б ул. Транспортная, д.7 21.05.1993 160 55
4 Самусев Дмитрий 9Б ул. Пушкина, д.8 14.01.1993 170 59
5 Базан Михаил 9В ул. Дачная, д.28 07.07.1993 168 67

160
Извлечение информации из базы данных
6.4
На этом уроке ты научишься вносить новые данные в таблицу базы
данных только с помощью отдельного окна. Ввод данных через форму
Как организовать поиск
значительно удобнее табличного ввода данных, так как пользователь данных?
допускает меньше ошибок, видит вводимые значения в отдельном поле
и при необходимости может организовать защиту ввода от некорректных
данных.
Как добавить новую форму ввода данных в проект?
a) Добавляем новую форму в проект (рис. 1). Проект => Добавить
форму Windows.
В появившемся окне переименовываем форму в «AddForm» (рис. 2).
Рис. 1
Microsoft Visual Studio
Проект
Добавить форму Windows

Добавление нового элемента - база данных

Установленные Сортировка: По умолчанию Поиск (Ctrl+E)

Элементы Visual C# Тип: Элементы Visual C#


WPF Пустая форма Windows Forms
Code
Data
General
Форма Windows Forms Элементы Visual C#
Windows Forms

В сети

Имя AddForm.cs
Добавить Отмена Рис. 2

161
b) Изменяем заголовок формы и добавляем на форму компоненты
(рис. 3).

Компонент Значение Свойство “Text”


groupBox Добавление данных
Добавление данных
label1 Фамилия
Фамилия label2 Имя
Имя label3 Дата рождения
label4 Пол
Дата рождения label5 Класс
Пол
textBox1 Фамилия
textBox2 Имя
Класс textBox3 Дата рождения
textBox4 Пол
Добавить Закрыть textBox5 Класс
Button1 Добавить
Button2 Закрыть

Рис. 3 Код кнопки «Закрыть».


private void button2_Click(object sender, EventArgs e)
{ Close();//закрыть окно
}

c) На главной форме установим кнопку «Добавить» (рис. 4).

b) Найди свойство
0 дляBindingSource
{0} компонента bindingNavigator и установи Уче-
никBindingSource (рис. 6.3). Дата
Код Фамилия Имя Пол Класс
рождения Сохранить
*

Добавить

Рис. 4 private void button1_Click(object sender, EventArgs e)


{ AddForm af = new AddForm();// создаем компонент af
(форма AddForm)
af.Owner = this;
af.Show(); //показать новую форму
}

d) Чтобы обработчик событий на кнопке «Добавить» выполнил до-


бавление верно, необходимо внести следующие изменения.
Вызови окно «Обозреватель решений», найди файл Form1.Designer.cs
и измени модификаторы доступа «private» на «public» (рис. 5).

162
Обозреватель решений

Обозреватель решений — поиск (Ctrl+;)


Измени модификаторы доступа «private»
на «public» нижеуказанных
Решение "База данных2" (проектов: 1)
База данных2 public System.Windows.Forms.DataGridView dataGridView1;
Properties public testDataSet testDataSet;
public System.Windows.Forms.BindingSource contactsBindingSource;
Ссылки public testDataSetTableAdapters.contactsTableAdapter;
AddForm.cs private System.Windows.Forms.DataGridViewTextBoxColumn ddDataGridViewTextBoxColumn;

App.config
Form1.cs
Form1.Designer.cs
Form1.resx
Program.cs
SearchForm.cs
testDataSet.xsd
testDataSet.Designer.cs
testDataSet.xsc Рис. 5
testDataSet.xss

Это нужно для того, чтобы твоя база данных была доступна для разных
манипуляций во всех создаваемых тобой формах.
e) Программируем на форме AddForm кнопку «Добавить» (рис. 6).

private void button1_Click(object sender, EventArgs e)


{ Form1 main = this.Owner as Form1; Добавление данных
if (main != null) Фамилия
{DataRow nRow = main.ученикDataSet.Tables[0].NewRow(); Имя
int rc = main.dataGridView1.RowCount + 1; Дата рождения
nRow[0] = rc;
Пол
nRow[1] = textBox1.Text;
Класс
nRow[2] = textBox2.Text;
nRow[3] = textBox3.Text; Добавить Закрыть
nRow[4] = textBox4.Text;
nRow[5] = textBox4.Text;
main.ученикDataSet.Tables[0].Rows.
Рис. 6
Add(nRow);
main.ученикTableAdapter.Update(main.ученикDataSet.Уче-
ник);
main.ученикDataSet.Tables[0].AcceptChanges();
main.dataGridView1.Refresh();
textBox1.Text = «»;
textBox2.Text = «»;
textBox3.Text = «»;
textBox4.Text = «»;
textBox5.Text = «»;
}
}

Разберем код построчно.

Form1 main = this.Owner as Form1; /*делаем текущую форму активной, так как таблица на-
ходится на другой форме, таким образом main становится именем главной формы, на которой
находится таблица с данными

163
if (main != null) // если она не пуста, т.е. существует и не удалена
{ DataRow nRow = main.ученикDataSet.Tables[0].NewRow(); //nRow – элемент таблицы ученик
int rc = main.dataGridView1.RowCount + 1; //создаем переменную rc – количество строк в
таблице dataGridView1 добавляем одну строку
nRow[0] = rc;
nRow[1] = textBox1.Text; // введенные данные в текстовое поле (фамилия) отправля-
ются в первый столбец таблицы
nRow[2] = textBox2.Text; // введенные данные в текстовое поле (имя) отправляются
во второй столбец таблицы

nRow[3] = textBox3.Text; // введенные данные в текстовое поле (дата рождения) от-


правляются в третий столбец таблицы

nRow[4] = textBox4.Text; // введенные данные в текстовое поле (пол) отправляются


в четвертый столбец таблицы

nRow[5] = textBox4.Text; // введенные данные в текстовое поле (класс) отправляются


в пятый столбец таблицы
main.ученикDataSet.Tables[0].Rows.Add(nRow); //данные добавляются в таблицу базы данных
Ученик
main.ученикTableAdapter.Update(main.ученикDataSet.Ученик); //данные обновляются в таблице
Ученик базы данных Ученик
main.ученикDataSet.Tables[0].AcceptChanges();
main.dataGridView1.Refresh(); //обновить данные в таблице

textBox1.Text = ""; //очистить после добавления поля ввода


textBox2.Text = "";
textBox3.Text = "";
textBox4.Text = "";
textBox5.Text = "";

} //закрыть условие
} // закрыть процедуру button1_Click

f) Проверь работу приложения. Добавь несколько новых записей


через новую форму добавления записей.
Как организовать поиск данных и подсчитать количество найденных
записей?
Реализуем самый универсальный поиск по всем полям таблицы. Поиск
отличается от фильтрации. Если фильтр отображает необходимые дан-
ные по условию для конкретного поля, то поиск будет выделять цветом
найденные записи и может искать данные одновременно по всем полям.
Если добавить подсчет данных, то можно реализовать подсчет количества
найденных записей.
a) Добавь в проект новую форму с именем «SearchForm» (рис. 7).
b) Разработай дизайн формы окна «Поиск данных».
с) Запрограммируй кнопку «Найти». Попробуй самостоятельно
разобрать каждую строку кода.

164
b) Найди свойство
0 дляBindingSource
{0} компонента bindingNavigator и установи Уче-
никBindingSource (рис. 6.3). Дата
Код Фамилия Имя Пол Класс
рождения Сохранить
*

Добавить

private void button3_Click_1(object sender, EventArgs e) Поиск


{ SearchForm sf = new SearchForm();
sf.Owner = this;
sf.Show();
} Рис. 7

private void button1_Click(object sender, EventArgs e)


{ Поиск данных
int k = 0;//количество найденных данных Введите данные для поиска
Form1 main = this.Owner as Form1;
if (main != null)
{ Найти Очистить Закрыть
for (int i = 0; i < main.dataGridView1.RowCount;
i++)
{ Рис. 8
main.dataGridView1.Rows[1].Selected = false;

for (int j = 0; j < main.dataGridView1.


ColumnCount; j++)

if (main.dataGridView1.Rows[i].Cells[j].
Value != null)

if (main.dataGridView1.Rows[i].Cells[j].Value.
ToS tring().Contains(textBox1.Text))
{ main.dataGridView1.Rows[i].Selected
= true; k++; break; }
}
label2.Text= "Найдено" + k.ToS tring()+ "совпаде-
ний";
}
}

Образец выполнения поиска данных (рис. 9, 10). Рис. 9

Поиск данных Поиск данных


Введите данные для поиска Введите данные для поиска

жен жен

Найти Очистить Закрыть Найти Очистить Закрыть

Найдено 7 совпадений

165
b) Найди свойство
1 BindingSource
для 9 компонента bindingNavigator и установи Уче-
никBindingSource (рис. 6.3).
Дата
Код Фамилия Имя Пол Класс
рождения
 3 Сергеева Ирина 12.03.2003 жен 11
4 Михайлова Татьяна 07.02.2005 жен 10

Рис. 10
ЗАДАНИЕ 1. 1. Протестируй работу кода для данных из разных полей: напри-
мер, «Фамилия», «Имя», «Дата рождения», «Класс».
2. Подумай и выполни самостоятельно, взяв за основу предоставленный код
поиска, поиск данных только по полю «Фамилия». Какие изменения ты внесешь
в этом случае в код программы и почему?

ПРОВЕРЬ СЕБЯ
1. Назови способ изменения заголовков таблицы DataGridView.
2. Сопоставь компонент с описанием.
HeaderText можно ли изменять ширину столбца
Width задает название столбца
Visible ширина столбца
Resizable скрывает заголовок или наоборот

3. Назови назначение метода UserDeletingRow. В каких случаях и для какого


элемента управления мы его можем вызвать?
Удаление
4. Пропиши код для вызова окна со следующими параметрами (рис. 11).

Удалить запись? 5. Объясни назначение следующего кода, предварительно расположив


строки в правильной последовательности. Прокомментируй каждую
строку кода.
ОК Отмена
private void button1_Click(object sender, EventArgs e)
Рис. 11 {
1. af.Show();
2. AddForm af = new AddForm();
3. af.Owner = this; }

166
Разработка приложения с использованием
базы данных в ООП 6.5
Если у вас возникают трудности, значит, вы просто чего-то не умеете,
но это поправимо! Какие приложения с ис-
Джилл Конрат пользованием БД мы мо-
жем создавать?

Итак, ты уже знаешь, как подключать базу данных к интегрированной


среде разработки MicrosoftVisualStudio 2017. На завершающем уроке по-
пробуй применить ранее полученные знания, чтобы создать собственное
приложение. Но вначале поговорим о технологии обработки базы данных.
По технологии обработки базы данных делятся на централизованные и
распределенные. Централизованная база данных хранится в памяти одной
машины (рис. 2).
ПО ТЕХНОЛОГИИ ОБРАБОТКИ

Централизованные Распределенные
(хранятся в памяти одной (состоят из нескольких, возможно,
вычислительной системы, возможен пересекающих или даже
распределенный доступ к данным) дублирующих друг друга частей,
хранимых в различных ЭВМ
Здесь располагались: вычислительной сети)
СУБД, прикладные Большая ЭВМ
программы или мини-ЭВМ
Файл-сервер
БД
БД

Клиенты файлы файлы


СУБД
СУБД файлы Рис. 1. Эдгар Кодд
СУБД
Терминал 3 Клиент_3
Терминал 1 Терминал 4 Клиент_1
Терминал 2 Клиент_2
Рис. 2

Распределенная база данных располагается на нескольких машинах


Знаешь ли ты?
вычислительной сети. С помощью Access создаются и эксплуатируются
личные базы данных небольшого объема или базы данных организа- В 1968 году была введена в
эксплуатацию первая про-
ций с относительно небольшим объемом данных. Но для обслуживания мышленная СУБД – система
крупных промышленных информационных систем MS Access не годится. IMS фирмы IBM. Большой
Небольшие организации могут разрабатывать собственные приложе- вклад в развитие теории
ния, в которых будет интерфейс с функциями поиска, адаптированными баз данных внес американ-
ский математик Э.Ф. Кодд,
под особенности конкретной организации. Например, реальные прода- который получил в 1981
жи билетов на авиарейсы не могут состоять только из одной таблицы, году премию Тьюринга за
поэтому такие информационные системы гораздо сложнее. Подобные создание реляционной мо-
информационные системы разрабатываются в интегрированной среде дели базы данных.
разработки MicrosoftVisualStudio 2017, к которой подключаются таблицы
базы данных (рис. 3).
167
Продажа авиабилетов
Авиарейсы Пассажиры Билеты

№ авиарейса 548-455
Авиакомпания Аэрофлот Аэропорт прибытия MIAMI
Аэропорт отправления Moscow Время отправления 17-35
Дата отправления 21.01.2020 Стоимость 15000
Количество мест 247 Добавить

Аэропорт Аэропорт Дата Время Количество


ID рейса Авиакомпания Стоимость
отправления прибытия отправления отпарвления мест
123-004 Аеroflot Domodedovo Male 11.12.2017 14:00 146/150 21000
123-006 Аеroflot New-York Domodedovo 05.12.2017 10:00 128/130 28000
123-005 Аеroflot Amsterdam Domodedovo 10.12.2017 15:00 137/145 25000
123-008 Emirates Domodedovo Adler 06.06.2017 13:00 120/120 7000
123-007 Аеroflot Domodedovo New-York 10.12.2017 18:00 124/130 27000
123-009 Emirates Domodedovo Krasnodar 05.06.2017 13:00 120/120 6000
123-011 Emirates Domodedovo Kurumych 05.06.2017 13:00 119/120 6000
 123-010 Emirates Kurumych Domodedovo 05.06.2017 14:00 120/120 6000
123-013 Emirates Domodedovo Novosibirsk 12.11.2017 10:00 120/120 8000
123-014 Emirates Novosibirsk Domodedovo 13.11.2017 09:00 120/120 8000
123-016 Аеroflot Domodedovo Pulkovo 28.05.2017 08:00 120/120 5000
123-015 Аеroflot Novosibirsk Pulkovo 05.06.2017 08:00 120/120 9000
123-012 Emirates Krasnidar Domodedovo 05.06.2017 13:00 120/120 6000
123-008 Emirates Adler Domodedovo 06.06.2017 13:00 120/120 7000

Поиск по аэропорту прибытия: Найти Поиск по номеру авиарейса: ___-___ Найти


Удалить рейс 123-006 Удалить Удалить все

Рис. 3. Пример
информационной Создавать приложения с подключением базы данных можно для любой
системы «Продажа сферы деятельности человека. Ты знаешь, что справочники – это приклад-
авиабилетов», разра­ ные объекты синхронизации. Они позволяют хранить в информационной
ботанной в интегри­ базе данные, имеющие одинаковую структуру и списочный характер. На-
рованной среде пример, в справочнике «Крылатые фразы» может храниться информация
MicrosoftVisualStudio о крылатом выражении (категория, источник, тема и текст выражения).
2017 Программа должна выполнять следующие функции:
– ввод данных (категория, источник, тема и текст выражения);
– добавление данных через отдельную форму;
– сохранение и считывание данных (отображение);
– удаление выражения из базы данных;
– сортировка крылатых выражений по алфавиту и отмена сортировки;
– поиск выражений по выбранным полям и по ключевому слову в
тексте фразы.
Немаловажной частью готового программного продукта является поль-
зовательский интерфейс. Он должен быть простым, понятным любому
пользователю, и главное, чтобы пользователь мог без труда воспользо-
ваться всеми функциями программы. Образец пользовательского интер-

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

ЗАДАНИЕ 1. 1. Продумай интерфейс для приложения «Крылатые фразы» и


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

ЗАДАНИЕ 2. Приложение «Итоги спортивных игр»


Создай базу данных «Итоги спортивных игр». В качестве данных используй струк-
туру таблицы. Разработай приложение в интегрированной среде разработки
MicrosoftVisualStudio 2017, в котором будут реализованы основные функции с
базой данных.

№ Команда Забито Пропущено Всего очков


1 Chelsea 16 7 9
2 Arsenal 24 2 22
3 Manchester United 12 9 3
4 Newcastle 26 6 20

Функции, которые необходимо реализовать в приложении:


1) создана таблица БД в MS ACCESS и заполнена 3-4 записями;
2) база данных подключена к приложению, и данные отображаются в отдельном
окне на главной форме;
3) реализована навигация по записям (перемещение на первую и последнюю
записи, добавление записи, удаление записи);
4) реализована функция сохранения данных;
5) реализован вызов формы добавления из главного окна приложения;
6) выполняется добавление данных через форму;
7) реализована сортировка по возрастанию и убыванию забитых голов;
8) созданы запросы для вывода на экран записей, отображающих информацию:
– количество команд, которые забили больше 15 голов;
– название команд, которые пропустили меньше 3 голов;
– количество команд, названия которых начинаются на букву M.
9) *Подсчитать общее количество забитых всеми командами голов.
Приложение «Сотрудники фирмы»

Создай базу данных «Сотрудники фирмы». В качестве данных используй струк-


туру таблицы. Разработай приложение в интегрированной среде разработки
MicrosoftVisualStudio 2017, в котором будут реализованы основные функции с
базой данных.
№ Фамилия Имя Должность Номер телефона
1 Ахметов Зейнолла завхоз 2-13
2 Орлов Петр инженер ТБ 1-25
3 Темиров Уахит директор 2-22
4 Самойлова Наталья секретарь 1-15

169
Функции, которые необходимо реализовать в приложении:
1) создана таблица БД в MS ACCESS и заполнена 3-4 записями;
2) база данных подключена к приложению, и данные отображаются в отдельном
окне на главной форме;
3) реализована навигация по записям (перемещение на первую и последнюю
записи, добавление записи, удаление записи);
4) реализован вызов формы добавления из главного окна приложения;
5) выполняется добавление данных через форму;
6) реализована сортировка фамилий сотрудников;
7) реализована фильтрация данных по полям: «Фамилия», «Должность», «Номер
телефона»;
8) реализован поиск данных по полям: «Должность», «Номер телефона».
Выполняется подсчет найденных совпадений.
9) *Подсчитать количество сотрудников с фамилиями, начинающимися на букву А.

Приложение «Академики»
Создай приложение «Академики». В качестве данных используй структу-
ру таблицы. Разработай приложение в интегрированной среде разработки
MicrosoftVisualStudio 2017, в котором будут реализованы основные функции с
базой данных.

№ Фамилия Дата рождения Специализация Пол Год присвоения звания


1 Александрович А.И. 22.01.1976 поэт м 2011
2 Алпысов М.И. 28.02.1974 физиолог м 2010
3 Кулаковская Т.Н. 17.02.1979 агрохимик-почвовед ж 2000
4 Судник М.Р. 08.11.1970 языковед м 1999

Функции, которые необходимо реализовать в приложении:


1) создана таблица БД в MS ACCESS и заполнена 3-4 записями;
2) база данных подключена к приложению, и данные отображаются в отдельном
окне на главной форме;
3) реализована навигация по записям (перемещение на первую и последнюю
записи, добавление записи, удаление записи);
4) реализован вызов формы добавления из главного окна приложения;
5) выполняется добавление данных через форму;
6) реализована сортировка фамилий академиков;
7) созданы запросы для вывода на экран записей, отображающих информацию:
– об академиках-физиологах, необходимо подсчитать их количество;
– об ученых, получивших звание академика до 2000 года;
– об академиках-поэтах.
8) * Подсчитать количество академиков мужчин.

Приложение «Коллекция старинных монет»


Создай базу данных «Коллекция старинных монет». В качестве данных ис-
пользуй структуру таблицы. Разработай приложение в интегрированной среде
разработки MicrosoftVisualStudio 2017, в котором будут реализованы основные
функции с базой данных.
№ Название монеты Страна Материал Масса
1 Денарий Италия серебро 29
2 Дирхем Восток серебро 27,2
3 Дукат Италия золото 3,537
4 Златник Русь золото 3,5
5 Империал Россия золото 0,1

170
Функции, которые необходимо реализовать в приложении:
1) создана таблица БД в MS ACCESS и заполнена 3-4 записями;
2) база данных подключена к приложению, и данные отображаются в отдельном
окне на главной форме;
3) реализована навигация по записям (перемещение на первую и последнюю
записи, добавление записи, удаление записи);
4) реализован вызов формы добавления из главного окна приложения;
5) выполняется добавление данных через форму;
6) реализована сортировка монет по возрастанию массы;
7) созданы запросы для вывода на экран записей, отображающих информацию:
– количество монет из золота;
– количество монет с массой более 20 грамм;
– монеты, которые были изготовлены в России;
– монеты, названия которых начинаются на определенную букву (пользова-
тель вводит искомую букву).

ПРОВЕРЬ СЕБЯ
Расположи этапы подключения базы данных к приложению ООП в правильном порядке.
1. В окне «Выбор источника» выбрать «Другое» 4. Расположить на форме компонент DataGriedView.
и Поставщик данных, пос­тавить «Поставщик
5. Вызвать задачи через правую кнопку
данных .NET Framework для OLE DB».
DataGriedView.
Мастер настройки источника данных

Выбор подключения к базе данных


DataGridView Задачи
Добавить подключение Выбери источник данных: ученикBindingSource
Правка столбцов...
Добавить столбец

6. Выбрать в свойствах «Добавить источник дан-


ных проекта».

Добавить источник данных проекта...


В данный момент данные привязаны к
‘ученикBindingSource’

2. Создать таблицу с помощью конструктора. 7. Выбрать тип источника: база данных.


Мастер настройки источника данных
3. На форме в компоненте DataGriedView загрузят-
ся данные. Выбор типа источника данных

Источник данных для приложения.

База данных Служба Объект


Дата
Код Фамилия Имя Пол
рождения
*

< <

171
8. Сохранить приложение в папке, где расположен файл базы данных.
9. Выбрать объекты базы данных для набора данных.
Мастер настройки источника данных

Объекты базы данных для набора данных

< Назад Далее > Готово Отмена

10. Запустить Visual Studio 2017.


11. В «Имя сервера или файла» вписать путь к нашему файлу базы данных Access (который создали в
первом пункте). Проверить подключение и нажать «ОК».
Microsoft Visual Studio

Проверка подключения выполнена.

ОК

12. Выйдет окно для переноса файла базы данных в твой проект, нажать «Нет».
13. Сохранить базу данных MS ACCESS.
14. Выбрать источник данных и набор данных.
Мастер настройки источника данных

Выбор модели базы данных

Укажите тип модели базы данных, которую следует использовать.

172
Подводим итоги
1. Назови механизм доступа к любому источнику данных, что дает разработчику возможность
взаимодействия с базами данных.
2. Опиши, используя
рисунок 1, назначение
каждого класса: bD_PremiaDataSet премииBindingSource премииTableAdapter
bd_PremiaDataSet,
премииBindingSource, Компонент Назначение
премииTableAdapter. bd_PremiaDataSet
премииBindingSource
премииTableAdapter

3. Укажи назначение компонента Рис. 1


BindingSource (рис. 2).
0 of {0}
Рис. 2
4. Назови назначение класса TableAdapter:
a) хранит настройки подключения базы данных;
b) определяет источник данных для формы;
c) компонент для взаимодействия между приложением и базой данных;
d) язык для взаимодействия с базой данных;
e) предоставляет навигацию для элементов управления.

5. Компонент, который определяет источник данных для формы:


a) Dataset; b) TableAdapter; c) BindingSource; d) ВindingNavigator; e) DataSource.

6. Компонент, хранящий настройки подключения базы данных:


a) Dataset; b) TableAdapter; с) BindingSource; d) ВindingNavigator; e) DataSource.

7. Назови недостающий код, чтобы записи в таблице 1 (рис. 3) расположились по возрастанию в поле
«Вес».
Таблица1BindingSource.________ = «_____________»;

Таблица1
Код Фамилия Имя Класс Адрес Дата рождения Рост Вес
1 Иванов Иван 9А ул. Ленина, д.1 12.03.1993 156 50
2 Петров Петр 9А ул. Транспортная, д.5 06.11.1992 167 62
3 Третьяков Павел 9Б ул. Транспортная, д.7 21.05.1993 160 55
4 Самусев Дмитрий 9Б ул. Пушкина, д.8 14.01.1993 170 59
5 Базан Михаил 9В ул. Дачная, д.28 07.07.1993 168 67

Рис. 3
8. Допиши код, который отфильтрует в таблице 1 учеников ростом выше 160 см.
Таблица1BindingSource.________ = «_____________»;

9. Определи назначение события UserDeletingRow у компонента dataGridView.


Приведи пример его использования.
173
Опрос

Интервью Анкетирование

Наблюдение Эксперимент

Своевременность

МЕТОДЫ СБОРА
Точность
ДАННЫХ

Псевдокод Достаточность

ВИДЫ ОЦЕНКА
ПРЕДСТАВЛЕНИЯ ПРОЕКТИРОВАНИЕ КАЧЕСТВА
АЛГОРИТМОВ ИНФОРМАЦИИ

Блок-схема Релевантность

ВОПРОСЫ Актуальность
Программный
код
Надежность

Возможные Преимущества и ограничения


пути решения будущей системы

Проблемы Требования
старой системы к АО и ПО

Функциональные требования
будущей системы

174
7. ПРОЕКТИРОВАНИЕ

● Как осуществлять сбор, поиск, отбор Ты уже знаешь:


информации?
● Как проверить качество информации? ● как решать практические задачи в ООП;
● Как определить функциональные ● как использовать алгоритм ветвления при
требования будущей системы? решении задач;
● Какие могут быть преимущества и ● как использовать циклы при решении задач;
ограничения будущей системы? ● как использовать одномерные массивы при
● Как осуществить поиск возможных решении задач;
решений? ● как создавать мультимедийные приложения;
● Как разрабатывать прототип для ● назначение прототипов.
решения задачи?
● Как выбирать подходящее ПО? Ты узнаешь:
● Как писать алгоритмы для решения ● какие существуют методы сбора информации;
поставленной задачи?
● как оценивать качество информации;
● Как представлять модули алгоритма
● на какие вопросы необходимо ответить при
в виде блок-схем, псевдокода,
проведении системного анализа;
программного кода?
● какие методы прототипирования используются
● Как использовать логические операции
на стадии проектирования;
в ООП?
● о преимуществах использования блок-схем,
псевдокода, программного кода при
представлении алгоритмов;
● как использовать логические операции в ООП.

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

175
Методы сбора и характеристики качества
7.1 информации
ЗАДАНИЕ 1. На рисунках показаны два метода сбора информации. Назови их
Как осуществлять сбор, и приведи примеры использования. Определи их отличительные особенности.
поиск, отбор информа-
ции?
Как проверить качество
информации?

Наблюдение –
изучение поведения
объектов или
процессов в
привычных для
них условиях, без На сегодняшний день проектная деятельность занимает одну из важ-
вмешательства ных позиций среди молодежи и в обществе в целом, так как посредством
наблюдателя. разработки проекта у каждого появляется возможность раскрыть свои
способности, поделиться идеями, найти единомышленников и получить
готовый продукт, который будет приносить пользу. Множество привычных
Эксперимент – для нас вещей в быту, в области развлечений были придуманы в рамках
изучение поведения
участия в конкурсах разного уровня. Проектная деятельность не только
объектов или
процессов в способствует личному росту участников, но и продвигает вперед науку,
специально созданных технику, информационные технологии. Таким образом, ты также можешь
условиях с активным внести свой вклад в развитие общества.
участием наблюдателя. Перед непосредственной разработкой проекта к нему необходимо
тщательно подготовиться, а именно – провести правильный сбор, по-
иск и отбор информации, затем, проведя системный анализ, определить
Изучение докумен­
проблему и только после этого приступать к проектированию. Сегодня
тации – получение
достоверной на уроке ты изучишь методы сбора информации. С некоторыми из них
информации о ты уже знаком и применял на практике.
текущем состоянии
объекта или процесса ЗАДАНИЕ 2. Жансуйеру необходимо подготовить проект по биологии. Он
исследования. провел сбор информации и после системного анализа выявил проблему среди
одноклассников. Оказалось, что многие его друзья любят фастфуд и не представ-
ляют поход в кино без попкорна и газированной воды. Таким образом, он решил
провести исследование и показать важность правильного питания в подростко-
вом возрасте. Сделай предположение, какие методы сбора информации были
использованы, каким образом была определена проблема и по каким критериям
можно оценить качество собранной информации.
При анализе полученной информации требуется оценка ее качества, то
есть нам необходимо понять, насколько данные полезны при подготовке
Опрос – сбор мнений к созданию программного приложения. При оценке качества данных
людей относительно опираются на следующие характеристики: своевременность, точность,
интересующей достаточность, надежность, актуальность, релевантность.
области, сервиса или
товара, выявление их ЗАДАНИЕ 3. Мама Жансуйера работает диетологом, и ей необходимо создать
предпочтений. приложение по контролю веса. Помоги Жансуйеру выбрать подходящие методы
сбора информации.

176
ПРОВЕРЬ СЕБЯ Интервью – диалог
между двумя и более
1. Пройди тест. людьми, в ходе
1) Определи способ сбора информации, при котором необходимо которого интервьюер
изучить различные журналы, бланки, прайс-листы: получает наиболее
a) интервью; полные ответы на свои
b) опрос; вопросы, возможно
c) изучение документации; использование
d) наблюдение; уточняющих вопросов.
e) эксперимент.
2) Диалог между двумя и более людьми, в ходе которого интервьюер Анкетирование –
получает наиболее полные ответы на свои вопросы, возможно исполь- метод опроса,
зование уточняющих вопросов, называют: используемый
a) интервью; для составления
b) опрос; развернутых вопросов
c) изучение документации; и получения более
d) наблюдение; полной информации.
e) эксперимент.
3) Изучение поведения объектов или процессов в специально создан-
ных условиях с активным участием наблюдателя называется: Изучение
a) интервью; литературы, прессы –
b) опрос; получение известных
c) изучение документации; ранее фактов об
d) наблюдение; исследуемом объекте
e) эксперимент. или процессе.

4) Сбор мнений людей относительно интересующей области, сервиса


или товара, выявление их предпочтений называют:
a) интервью;
b) опрос;
c) изучение документации;
d) наблюдение;
e) эксперимент.
5) Изучение поведения объектов или процессов в привычных для них
условиях, без вмешательства наблюдателя называют:
a) интервью;
b) опрос; Своевременность –
c) изучение документации; обеспечение доступа
d) наблюдение; к информации не
e) эксперимент. позднее момента
решения задачи.
2. Установи соответствие.
1 Своевременность A Информация, полученная из официальных
источников, документов, актов, законов Точность – степень
2 Точность B Соответствие информации потребностям поль- близости имеющейся
зователя при решении поставленной задачи информации к
3 Достаточность C Зависимость информации от скорости измене- реальному состоянию
ния ситуации и времени с момента ее получения объекта или процесса.
4 Надежность D Степень близости имеющейся информации к
реальному состоянию объекта или процесса

177
Достаточность –
5 Актуальность E Минимальный набор свойств, характерных для
минимальный набор
данного объекта или процесса, необходимый для
свойств, характерных решения поставленной задачи
для данного объекта
6 Релевантность F Обеспечение доступа к информации не позднее
или процесса, момента решения задачи
необходимый для
решения поставленной
задачи. 3. Для определения мнения жителей жилого комплекса «Шаңырақ» по
поводу строительства нового спортивного комплекса в их районе ме-
неджеры строительной компании решили использовать опрос. Обоснуй
Надежность – правильность их выбора или предложи альтернативный метод сбора
информация, информации.
полученная из 4. Определи истинность утверждения: «Для массового опроса населения
официальных используется интервью».
источников,
документов, актов, 5*. Жансуйер осуществляет поиск информации в Интернете – «казахские
законов и др. национальные блюда» – и получает следующий перечень ответов на
запрос.

Актуальность –
зависимость
информации от
скорости изменения
ситуации и времени с
момента ее получения.

Релевантность –
соответствие
информации
потребностям
пользователя при
решении поставленной
задачи.

Релевантная ли данная информация?

178
Подготовка к проекту
7.2
ЗАДАНИЕ 1. Жансуйер продолжает работать над проектом создания приложе-
ния по контролю веса. Помоги ему составить вопросы для интервью с клиентом.
Как определить функцио-
Прежде чем приступить к моделированию будущей системы, необхо- нальные требования буду-
димо ответить на ряд вопросов: щей системы?
Какие могут быть пре­
1) Как работает текущая система? имущества и ограничения
2) Какие данные обрабатываются: входные или выходные? будущей системы?
2) В чем проблема нынешней системы? Как осуществить поиск
3) Какие существуют возможные решения? возможных решений?
4) Какие проблемы возникают при реализации каждого из возможных
решений?
Разберем вопросы на примере контроля веса диетологом. При сборе
информации необходимо провести анализ документации для понимания,
каким образом работает нынешняя система, то есть изучить журнал реги-
страции данных учащихся на начало и конец учебного года, виды работ,
проводимых для профилактики здорового питания и других мероприятий.
На данном этапе можно сделать выводы, какой вид принимают данные,
как они обрабатываются и хранятся.
Рассмотрим журнал диетолога и определим входные и выходные дан-
ные.
Входные данные (вво-
дятся с клавиатуры):
1. ФИО – текст.
2. ИИН – число.
3. Класс – текст.
4. Пол – текст.
5. Вес – число.
6. Рост – число.
Выходные данные (рас-
чет по формулам):
1. Идеальный вес по-
считан по формуле Купера
– число.
2. Заключение – текст (сравнение реального веса с идеальным весом).
Далее для определения проблем текущей системы можно провести
интервью с диетологом и задать ему ряд вопросов, например:

– Как Вы проводите сбор данных? – Что Вас не устраивает в текущей


– Дважды в год учащиеся проходят меди- системе?
цинский осмотр, где замеряются их рост и вес. – Вся информация хранится на школьном
– Как хранятся данные? компьютере, и нет возможности работать
– Мы работаем с электронными табли- удаленно.
цами и храним информацию на компьютере в
медицинском кабинете.
После выявления проблем текущей системы необходимо определить
несколько возможных решений.
179
– Давайте обсудим несколько вариан- но, также желательно, чтобы учащиеся могли
тов реализации программного продукта, использовать данный продукт для получения
например, использование макросов в элек- рекомендаций от диетолога.
тронных таблицах. – В таком случае предлагаю создание
– Я не специалист, поэтому не знакома с информационного веб-сайта с подключе-
понятием «макрос», но и электронная таблица нием базы данных. Вы сможете работать
имеет свои ограничения. с базой данных учащихся и публиковать
– Тогда второй вариант – это создание различные объявления, рекомендации.
ин­формационной системы в офлайн-режиме. – Этот вариант полностью удовлетворя-
– Мы уже обсуждали трудности нынешней ет мои требования, остановимся на нем.
системы. Мне бы хотелось работать удален-

Продолжая интервью с клиентом, необходимо определить требования


к будущей системе.

– Какие требования к будущей системе пример, дата посещения, учащиеся с большим


Вы предъявляете? перевесом или недовесом, находящиеся в группе
– Хотелось бы иметь красочный веб-сайт с риска, и т.д.
подписанными кнопками и ссылками на другие – Возможна запись дополнительной инфор-
страницы, сопровождаемые подсказками. мации во время посещения врача.
– Также необходимо создание форм для – Я бы хотел предложить Вам разгра-
каждого учащегося с указанием дня посещения ничение роли пользователей и админи-
врача, параметров роста, веса и заключения о стратора: только администратор мо-
состоянии веса (норма/перевес). жет вносить изменения на веб-сайте и в
– Желательно иметь возможность редак- базе данных, остальные участники могут
тирования базы данных учащихся: добавление, просматривать материал, участвовать в
удаление и т.д. форуме и оставлять свои вопросы.
– Очень важно организовать поиск и сорти- – Да, я согласна, отличная идея.
ровку данных по определенным признакам, на-

Следующим этапом системного анализа является выбор программного


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

– Можете перечислить характеристи- – У меня установлена ОС Windows 7.


ки своего компьютера или Вы предпочита- Чаще всего мне нравится работать в Mozilla
ете работать за ноутбуком? Firefox, но иногда возникает необходимость
– Да, я предпочитаю ноутбук, так как использования Google Chrome.
могу носить его с собой и работать с ним в – Спасибо, что уделили время. Давайте
различных местах. У меня не самые лучшие составим список требований к будущему
характеристики, например, жесткий диск – программному продукту и заверим его
512 Гб, оперативная память – 8 ГБ. Вашей подписью.
– Этих характеристик достаточно для – Да, конечно, тогда у нас не будет взаим-
работы с БД в онлайн-режиме. Что насчет ных претензий.
операционной системы? В каких браузерах
Вы предпочитаете работать?

180
ЗАДАНИЕ 2. Помоги Жансуйеру составить список функциональных требований
и ограничений будущей системы. Определи ее преимущества.

Функциональ- Преимущества
ные требования Требования и ограничения Системный
будущей к АО и ПО будущей анализ
системы системы

ЗАДАНИЕ 3. Помоги Жансуйеру создать блок-схему работы текущей системы.

ПРОВЕРЬ СЕБЯ
1. Пройди тест.
1) Входные данные – это:
a) данные, необходимые для работы системы, получаемые с помощью устройств ввода;
b) данные, выводимые системой после обработки входных данных;
c) данные, вычисляемые по определенным математическим формулам;
d) данные, вводимые с клавиатуры для их дальнейшей обработки.
2) Выходные данные – это:
a) данные, необходимые для работы системы, получаемые с помощью устройств ввода;
b) данные, выводимые системой после обработки входных данных;
c) данные, вычисляемые по определенным математическим формулам;
d) данные, вводимые с клавиатуры для их дальнейшей обработки.
3) Технические характеристики к аппаратному обеспечению включают в себя:
a) характеристики всех устройств, подключенных к компьютеру;
b) характеристики устройств, используемых при работе с будущей системой;
c) характеристики устройств, необходимых для ввода информации;
d) характеристики устройств, необходимых для вывода информации.
4) Технические характеристики к программному обеспечению включают в себя:
a) перечень программ, установленных на компьютере, и их краткое описание;
b) перечень программ, используемых для ввода данных;
c) перечень программ, используемых для вывода данных;
d) перечень программ, используемых при работе с будущей системой, и их краткое описание.
2. Установи соответствие.
1) Создание дружелюбного интерфейса.
1 A Входные данные
2) Разграничение ролей: гость, администратор.
2 Фамилия, вес, рост, пол учащегося B Выходные данные
3 Допустимо 5000 записей в год C Список функциональных требований
4 Идеальный вес учащегося D Ограничение количества записей в год

3. Объясни важность обсуждения возможных решений реализации будущей системы.


4*. Объясни важность создания блок-схемы работы текущей системы.
5*. Предложи 2-3 возможных решения для создания обучающей игры по английскому языку для уча-
щихся начальных классов.

181
Моделирование
7.3
ЗАДАНИЕ 1. Жансуйер решил самостоятельно выстроить последовательность
этапов разработки проекта. Проверь его работу. В случае наличия ошибок укажи
на них и предложи верный вариант.
Как разрабатывать прото-
тип для решения задачи?
Как выбирать подходящее
ПО?

Прототип сайта –
схематическое
представление
его страниц,
представленное в
структурированном
виде. В зависимости
от ситуации
моделирования
возможна частичная Сегодня на уроке в процессе моделирования ты будешь создавать
или полная имитация прототипы главной страницы веб-сайта, форм ввода данных с клавиатуры
работы интерактивных и вывода информации на экран или на печатное устройство. Напомним,
элементов.
что называют прототипом, в нашем случае – веб-сайта.
Преимущества прототипирования:
– согласование функционала будущей системы клиентом и разработ-
чиком;
– визуальное представление дизайна;
– учет времени и бюджета, необходимого на разработку сайта;
– избежание возможных концептуальных ошибок и ошибок юзабилити
при непосредственной разработке проекта.
Различают следующие методы прототипирования:
– Wireframes;
– Prototype;
– Mockup.
Wireframes – это простой эскиз, чаще всего черно-белый, предназна-
ченный для структурирования функциональных требований будущей си-
стемы, отражающий взаимодействие основных элементов интерфейса и
навигации сайта друг с другом, не является шаблоном дизайна.

ЗАДАНИЕ 2. Найди информацию о следующих методах прототипирования:


Prototype, Mockup. Заполни таблицу в рабочей тетради.
182
Метод Детализация Инструменты Применение Особенности
Бумага, карандаш, Визуализация набора
Wireframes Низкая специальные онлайн- функциональных требо- Простой набросок
программы ваний к системе
Prototype Средняя/высокая ? ? Динамичный
Mockup Средняя/высокая ? ? Статичный

ЗАДАНИЕ 3. Найди информацию о правилах юзабилити при разработке


веб-сайта.

ЗАДАНИЕ 4. Опираясь на ранее созданный список функциональных требо-


ваний к будущей системе, помоги Жансуйеру разработать прототип главной
веб-страницы школьного диетолога.
При моделировании воспользуйся следующими критериями:
1) Содержание:
– соответствующее название, например, «Денсаулық – зор байлық!»;
– ссылки на другие страницы, например, на рекомендации по контро-
лю веса или рецепты правильного питания;
– логотип.
2) Расположение:
– элементов хорошо продумано, например, заголовок, использование
логотипа компании и т.д.;
– элементы расположены с учетом юзабилити;
– размер шрифта текста читаемый, соизмерим с другими элементами.
3) Цветовая гамма:
– цвета элементов сочетаются между собой;
Словарь данных –
– важная информация выделена отдельным цветом; структурированное
– присутствуют эффекты. представление полей
4) Присутствие мультимедиа: таблиц базы данных с
– размеры и расположение видео/аудиоматериалов сочетаются с указанием ключевых
другими элементами; полей, типов,
– возможность запуска, прокрутки, остановки. размеров данных,
После разработки прототипа веб-сайта необходимо определиться с примеров допустимых
программным обеспечением для создания программного продукта. На- и ошибочных данных
пример, Жансуйеру необходимо использовать бесплатный хостинг для и необходимых
примечаний.
оформления веб-страниц и создания базы данных с помощью MySQL.
Также для соединения базы данных с веб-сайтом можно воспользоваться
фрагментами программных кодов на PHP, свободно распространяемых
в сети Интернет. Оформление веб-сайта можно осуществить средствами
HTML и CSS.
Перед выполнением практической работы необходимо создать сло-
варь данных.
В словаре данных должны быть отражены все таблицы базы данных.

ЗАДАНИЕ 5. Помоги Жансуйеру определить структуру базы данных и составить


словарь данных.

183
ЗАДАНИЕ 6. Помоги Жансуйеру смоделировать формы ввода и вывода ин-
формации на примере заполнения полей базы данных или вывода информации
по определенным параметрам.

ПРОВЕРЬ СЕБЯ
1. Пройди тест.
1) Существует … метода прототипирования.
a) 1; b) 2; c) 3; d) 4.

2) Wireframes – это:
a) детализированный дизайн веб-сайта с возможностью тестирования некоторых возможностей;
b) простой макет с упором на структуру содержания веб-сайта;
c) макет, дизайн сайта без указания деталей.
3) Mockup – это:
a) детализированный дизайн веб-сайта с возможностью тестирования некоторых возможностей;
b) простой макет с упором на структуру содержания веб-сайта;
c) макет, дизайн сайта без указания деталей.
4) Prototype – это:
a) детализированный дизайн веб-сайта с возможностью тестирования некоторых возможностей;
b) простой макет с упором на структуру содержания веб-сайта;
c) макет, дизайн сайта без указания деталей.
5) Словарь данных – это:
a) типы данных всех полей таблиц базы данных;
b) структурированное представление полей таблиц базы данных с указанием ключевых полей,
типов, размеров данных, примеров допустимых и ошибочных данных и необходимых приме-
чаний;
c) структурированное представление таблиц базы данных с указанием ключевых полей.

2. Установи соответствие между методами прототипирования и их описаниями.


1 Wireframes A Макет, недетализированный дизайн сайта
2 Prototype B Простой макет с упором на структуру содержания веб-сайта
Детализированный дизайн веб-сайта с возможностью
3 Mockup C
тестирования некоторых возможностей

3. Установи соответствие между качественными компонентами и их описаниями.


1 Удовлетворенность A Информация соответствует запросу
2 Эффективность B Ориентация на веб-сайте после долгого отсутствия
Нет помех от чрезмерного количества эффектов, рекламы и
3 Запоминаемость C
видео на веб-странице
Эмоциональное восприятие информации: подходящий
4 Ошибки D
дизайн, форма представления информации и т.д.
Количество опечаток, недочетов, неработоспособность
5 Релевантность E
кнопок, мультимедиа и т.д.

4*. Нарисуй эскиз главного окна обучающей игры по английскому языку для учащихся начальных
классов.
5*. Создай формы ввода-вывода информации для обучающей игры по английскому языку для учащихся
начальных классов.

184
Алгоритмизация
7.4
ЗАДАНИЕ 1. Изучи предложенный алгоритм снижения веса и определи его
вид и форму представления. Нарисуй блок-схему, соответствующую алгоритму.
Как писать алгоритмы для

ПРАВИЛА
решения поставленной
1 2
Пить негазированную Поесть за 1 час до
воду во время начала занятий, задачи?
ТРЕНИРОВКИ тренировки отказаться от
голодных диет
Как представлять модули
для быстрого похудения алгоритма в виде блок-
схем, псевдокода, про-

3 4 5
граммного кода?
Не есть в течение Наращивать нагрузку При построении
2 часов после постепенно тренировки
тренировки учитывать свой
образ жизни

6 Заниматься
регулярно (5-7 7 Использовать
высокоинтен- 8 Тренировать
нужно все тело,
раз в неделю), сивные кардио- а не отдельную
не менее 45 и силовые группу мышц
минут тренировки Алгоритм

9 Уменьшать паузы
для отдыха между
Количество подходов
для похудения
При адаптации
орга­низма
Словесная форма
подходами увеличить до 5-6, к нагрузкам
а повторов – менять програм­
до 8-20 му тренировки Блок-схема

Как ты знаешь, алгоритм можно представить в словесном виде, в виде Псевдокод


блок-схемы, псевдокода и программного кода. Рассмотрим преимущества
Программный код
и недостатки каждого из них. Например, словесная форма алгоритма не
требует каких-либо специальных знаний для описания хода действий,
но поиск ошибок усложнен. Блок-схема – графическое представление
алгоритма – позволяет визуально представить информацию, и написание
программного кода в соответствии с этой формой алгоритма приводит
к меньшему количеству ошибок. Это наиболее подходящая форма пред-
ставления укрупненных и детальных алгоритмов. Псевдокод состоит из Архитектура
ключевых слов языков программирования, но здесь можно отражать фон Неймана
лишь процесс без описания переменных и не требуется строгая запись,
как в программном коде. Назначение псевдокода в том, чтобы любой Принцип
человек, независимо от опыта программирования, мог прочитать алго- Принцип однород-
однородности
ритм и адаптировать под любой язык программирования. Недостатком ности памяти
памяти
такой формы является сложность представления укрупненных алгоритмов.
Вышеперечисленные формы алгоритма нельзя выполнить на компьюте- Принцип
программного
ре, поэтому конечный вариант разрабатывается в виде программного
управления
кода. Вспомним принцип архитектуры фон Неймана: вся информация на
компьютере хранится и обрабатывается в виде нулей и единиц. Для пе- Принцип
ревода программного кода реализованных на языках программирования адресности
в последовательность нулей и единиц (машинный код) предусмотрены
трансляторы (переводчики): компиляторы и интерпретаторы.
Приведем пример представления одного и того же алгоритма в разных
формах.
185
Псевдокод Блок-схема Программный код
height <-- 168 Начало #include <ios tream>
weight <-- 85 #include <s tring>
gender<-- “male” using namespace s td;
height = 168
IF gender=male int main()
Weight_1<--(4* {
weight <--85
height/2.54-128)*0.453 int height=168;
ELSE int weight= 85;
Weight_1<--(3.5* gender <--“male” float weight_1;
height/2.54-108)*0.453 s tring gender= “male”;
END IF weight_1 = if (gender==“male”)
gender = Нет (4*height/2.54-128)
OUTPUT Weight_1 male weight_1=(4*
*0.453
height/2.54-128)*0.453;
Да else
weight_1=(3.5*
weight_1 <-- height/2.54-108)*0.453;
(3.5*height/2.54-108)*0.453 cout<<weight_1<<endl;
Конец sys tem (“pause“);
return 0;
}

Определим значение переменных для нескольких учащихся, изменяя


значения входных данных.
№ учащегося height weight gender weight_1
1 169 85 male 62.57
2 180 75 female 63.43
3 175 65 male 66.85
4 165 89 female 54.07
5 168 78 male 61.86

ЗАДАНИЕ 2. Добавь условие в программный код по определению веса для


вывода соответствующего сообщения: «перевес/недовес/норма».

ЗАДАНИЕ 3. Проведи эксперимент: добавь в программный код цикл с парамет­


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

ЗАДАНИЕ 4. Жансуйер решил создать программное обеспечение по контролю


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

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

186
ПРОВЕРЬ СЕБЯ
1. Пройди тест.
1) Сколько существует видов алгоритма?
a) 1; b) 2; c) 3; d) 4.
2) Сколько существует форм представления алгоритма?
a) 1; b) 2; c) 3; d) 4.
3) … – состоит из ключевых слов языков программирования, но здесь можно отражать лишь
процесс без описания переменных, и не требуется строгая запись, как в программном коде.
a) алгоритм;
b) блок-схема;
c) оператор;
d) псевдокод.
4) Pascal, C++, Java – … языки программирования.
a) декларативный;
b) императивный;
c) смешанный.
5) SQL, Prolog, HTML – … языки программирования.
a) декларативный;
b) императивный;
c) смешанный.
2. Установи соответствие между блок-схемами и их названиями.

1 A Условие

2 B Цикл с параметром

3 C Действие

4 D Начало/конец

3. Изучи предложенную форму и установи соответствие между компонентами и их назначениями.


Form1 1 Text1, Text2 A Для вызова события
2 Label1, Label2 B Для ввода данных
Text1

Text2

label1 3 Button1 C Для отображения результата или ком-


label2 ментария на экране
button1

4*. Объясни возможность использования одномерного массива в програм­мном коде урока по контролю
веса.
5*. Объясни возможность использования базы данных в программном коде урока по контролю веса,
предложи ее структуру.

187
Логические операции в ООП
7.5
ЗАДАНИЕ 1. Чаще всего логические задачи решаются с помощью кругов
Эйлера. Ранее ты использовал три базовые логические операции: инверсия (¬A),
Как использовать логичес­ конъюнкция (A*B), дизъюнкция (A+B).
кие операции в ООП?

А А
Анимация – это
быстрая смена А
последовательности
изображений, которая В В
создает иллюзию
движения.
А А * В А + В

При пересечении нескольких множеств работает закон включения-


исключения.
Для двух множеств: |A|+|B|–(A∩B)
Для трех множеств: |A   B   C|=|A|+|B|+|C|–|A∩B|–|B∩C|–|A∩C|+|A∩B∩C|.

A A∩B B

B C

1) Придумай логическую задачу для одноклассника с применением закона


включения-исключения для
– двух множеств;
– трех множеств.
В программировании логические операции используются в разветвляющемся
алгоритме, например, определение суммы четных и отрицательных элементов
одномерного массива в С++ можно записать: If (a[i]%2==0 && a[i]<0) s+=a[i];
Примечание: 2) Запиши условие для определения числа Х, принадлежащего промежуткам:
для каждого промежут- [-5,8]; (-4,5); [-6;7).
ка составь отдельное 3) Напиши программный код на С++ или в консоли С# для следующей задачи.
условие. Дан массив целых чисел. Выведи на экран элементы массива, которые при де-
лении на 5 имеют остаток 1 или 2.
Использование логических операций в условном операторе в объектно-
ориентированном программировании аналогично структурным языкам,
например, в С# так же, как в С++. Но также имеются два компонента:
RadioButton (переключатель) и CheckBox (флажок), с помощью которых
можно выбрать один или несколько объектов. С помощью переключате-
ля можно выбрать только один объект из предложенных (дизъюнкция),
а флажок предназначен для выбора нескольких объектов (конъюнкция).
Оба компонента имеют два состояния: установлен/сброшен.
188
Перечислим основные свойства для данных компонентов.
Свойство RadioButton CheckBox
Text Текст, поясняющий назначение компонента
TextAllign Выравнивание текста:
- MiddleCenter
- MiddleLeft
- MiddleRight
Checked При установленном состоянии значение =True, иначе =False
CheckAllign Выравнивание компонента
TopLeft
MiddleLeft
Enabled При истинном значении компонент доступен, при ложном – неактивен
Visible При истинном значении компонент отображается на форме, при ложном –
скрыт
AutoCheck Автоматическая смена состояния компонента (установлен/сброшен)
FlatS tyle Стиль компонента. Принимает три значения:
1) обычный - Standard
2) плоский - Flat
3) всплывающий – Popup
Приведем пример применения данных компонентов для разных спо-
собов ввода элементов массива и определения минимума, максимума в
последовательности (C#).
Рассмотрим три различных способа определения элементов массива:
массив случайных чисел, массив, заданный в программном коде, ввод
элементов массива с клавиатуры. Для выбора соответствующего спосо-
ба будем использовать компонент RadioButton. Также с его помощью
продемонстрируем вывод на экран результатов поиска максимального
элемента и суммы элементов массива.
Стадия разработки Стадия компиляции

Использование переключателей и флажков Использование переключателей и флажков

Массив случайных чисел Массив случайных чисел 4


Определение массива в программном коде Определение массива в программном коде -8
6
Ввод массива с клавиатуры Ввод массива с клавиатуры 3
-7
Сформированный массив: 4 -8 6 3 -7 18 18

Максимум элементов Результат1 Максимум элементов =18


Сумма элеметов Результат2 Сумма элеметов =16

Массив Подсчет Очистить Массив Подсчет Очистить

189
Код программы:

namespace WindowsFormsApplication3
{
public partial class Form1 : Form
{
int[] B; //Объявление массива
int n, k = 0;
private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
richTextBox1.Visible = false; //скрыть компонент
label3.Text = "";
}

private void Form1_Load(object sender, EventArgs e)


{
richTextBox1.Visible = false;
label3.Text = "";
label1.Visible = false;
label2.Visible = false;
}
private void radioButton3_CheckedChanged(object sender, EventArgs e)
{
richTextBox1.Visible = radioButton3.Checked;
label3.Text = "";
}
private void radioButton2_CheckedChanged(object sender, EventArgs e)
{
richTextBox1.Visible = false;
label3.Text = "";
}
private void button2_Click(object sender, EventArgs e)
{
if (checkBox1.Checked) label1.Visible = true;
if (checkBox2.Checked) label2.Visible = true;
}
private void button3_Click(object sender, EventArgs e)
{
richTextBox1.Visible = false;
label3.Text = "";
label1.Visible = false;
label2.Visible = false;
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
if (radioButton1.Checked)
{
//Массив случайных чисел
Random rnd = new Random();
B = new int[10];

190
label3.Text = "";
for (int i = 0; i <= 9; i++)
{
B[i] = rnd.Next(1, 10);
label3.Text = label3.Text + Convert.ToS tring(B[i]) +
" "; //вывод массива
}
label1.Text = " =" + B.Max();
label2.Text = " =" + B.Sum();
}
else if (radioButton2.Checked)
{
//Определение массива в программном коде
int[] B = new int[6] { 12, 5, 8, 23, 45, 6 };
int m = B.Length;
label3.Text = "";
for (int i = 0; i <= m - 1; i++)
label3.Text = label3.Text + " " + Convert.ToS tring(B[i]);
//вывод массива
label1.Text = " =" + B.Max();
label2.Text = " =" + B.Sum();
}
else if (radioButton3.Checked)
{
//Ввод массива с клавиатуры
n = Convert.ToInt32(richTextBox1.Lines.Count());
B = new int[n];
int s = 0;
label3.Text = "";
for (int i = 0; i <= n - 1; i++)
{
B[i] = Convert.ToInt32(richTextBox1.Lines[i]);
label3.Text = label3.Text + " " + Convert.ToS tring(B[i]);//вывод
массива
}
label1.Text = " =" + B.Max();
label2.Text = " =" + B.Sum();
}
}
}
}

ЗАДАНИЕ 2. Найди в Интернете дополнительную информацию о свойствах


RadioButton, CheckBox.

ЗАДАНИЕ 3. Замени поиск максимума в последовательности и суммы элемен-


тов на подсчет количества отрицательных четных и положительных нечетных
чисел. Соответственно, замени надписи компонентов.

ЗАДАНИЕ 4. Жансуйер продолжает разработку приложения по контролю


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

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

Введите значения
Рост

Вес

Результат

Вывести отчет на экран

Отправить рекомендации на почту

Старт

ПРОВЕРЬ СЕБЯ
1. Пройди тест.
1) Выбери компонент, эквивалентный логической операции «ИЛИ»:
a) RichTextBox; b) RadioButton; c) Button; d) CheckBox.
2) Выбери компонент, эквивалентный логической операции «И»:
a) RichTextBox; b) RadioButton; c) Button; d) CheckBox.
3) Выбери свойство, значение которого равно Popup, если компонент RadioButton1
Вывести отчет на экран имеет «всплывающий» вид.
a) FlatS tyle; b) Visible; c) Enabled; d) Checked.
4) Выбери свойство, значение которого равно True, если компонент RadioButton1 отображен на
форме.
a) FlatS tyle; b) Visible; c) Enabled; d) Checked.
5) Выбери свойство, значение которого равно True, если компонент RadioButton1 выделен.
a) FlatS tyle; b) Visible; c) Enabled; d) Checked.
2. Установи соответствие между свойствами компонентов RadioButton/CheckBox и их описаниями.
При истинном значении компонент отображается
1 Enabled A
на форме, при ложном – скрыт
2 Visible B Выравнивание текста
При истинном значении компонент доступен, при
3 Text C
ложном – неактивен
4 TextAllign D Текст, поясняющий назначение компонента

3. В задании 4 определи компонент, позволяющий выполнить последовательный вывод нескольких


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

192
Подводим итоги
1. Пройди тест.
1) … – изучение поведения объектов или процессов в привычных для них условиях, без вмешательства
наблюдателя.
a) наблюдение; b) эксперимент; c) интервью; d) опрос.
2) … – изучение поведения объектов или процессов в специально созданных условиях с активным
участием наблюдателя.
a) наблюдение; b) эксперимент; c) интервью; d) опрос.
3) … – диалог между двумя и более людьми, в ходе которого интервьюер получает наиболее полные
ответы на свои вопросы, возможно использование уточняющих вопросов.
a) наблюдение; b) эксперимент; c) интервью; d) опрос.
4) … – сбор мнений людей относительно интересующей области, сервиса или товара, выявление их
предпочтений.
a) анкетирование; b) эксперимент; c) интервью; d) опрос.
5) … – метод, используемый для составления развернутых вопросов и получения более полной
информации.
a) анкетирование; b) эксперимент; c) интервью; d) опрос.
2. Установи соответствие между характеристиками оценки качества информации и их описаниями.
1 Своевременность A Степень близости имеющейся информации к реальному состоянию объек-
та или процесса
2 Точность B Соответствие информации потребностям пользователя при решении по-
ставленной задачи
3 Достаточность C Минимальный набор свойств, характерных данному объекту или процессу,
необходимый для решения поставленной задачи
4 Надежность D Обеспечение доступа к информации не позднее момента решения задачи
5 Релевантность E Информация, полученная из официальных источников, документов, актов,
законов и др.

3. Оцени предложенную информацию, поставь в соответствующих столбцах «√/х».


На уроке физики при изучении темы «Теория относительности» Инкар говорит, что Эйнштейн родился
14 марта 1879.
Характеристики Истина Ложь
Надежность
Точность
Релевантность
Актуальность

4. Тема проекта, над которой работает Инкар: «Создание мобильного приложения оповещения о
возможных преградах и помехах для людей с нарушениями зрения».
Помоги ей:
– составить вопросы к интервью с учетом будущих функциональных требований к информационной
системе;
– с учетом правил юзабилити нарисовать прототип к проекту;
– составить блок-схему определения преград и помех с учетом расстояния до препятствия. В целях
предупреждения о преградах и помехах используй звуковые сигналы;
– рассмотри возможность использования компонентов RadioButton и CheckBox в проекте.
193
Оглавление и навигация
Тезаурус
по тексту

WordArt и буквица Нумерация страниц

Автоматическое добавление
Математические формулы
подписей

Документация

РАЗРАБОТКА ПРОЕКТА

Программирование Тестирование

Виды Трассировочная Методы


Работа с файлами тестирования таблица тестирования

Приложение с БД Альфа-тест

Создание анимации Бета-тест


в ООП
Юзабилити-тест
Разработка обучающей
программы
Промежуточные
данные

Допустимые Ошибочные Граничные

Черный ящик

Белый ящик

Серый ящик

194
8. РАЗРАБОТКА ПРОЕКТА

● Как использовать различные типы и Ты уже знаешь:


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

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

195
Работа с файлами
8.1
ЗАДАНИЕ 1. Определи тип (целый или вещественный) выражений.
a) 2+0.0 d) 5.02 g) trunc(-5.6)
Как использовать различ- b) 20/4 e) √4+√16 h) ceil(-2.3)
ные типы и структуры дан-
c) √4 f) cos(90)
ных при решении задач?
Как записать или считать ЗАДАНИЕ 2. Проверь программный код на компьютере и определи раз-
информацию из файла? ницу между математическими функциями Floor(), Ceiling(), Round(),
Truncate().

Floor(), Ceiling(), Round(), Truncate() namespace WindowsFormsApplication1


{
Результат математической операции
public partial class Form1 : Form
Floor Round
{
public Form1()
Ceiling Truncate {
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
label1.Text = Sys tem.Convert.ToS tring(Math.Floor(2.3));
}
private void button2_Click(object sender, EventArgs e)
{
N label1.Text = Sys tem.Convert.ToS tring(Math.
Ceiling(2.3));
}
i=1; 10 private void button3_Click(object sender, EventArgs e)
{
label1.Text = Sys tem.Convert.ToS tring(Math.Round(2.3));
A[i]
K }
private void button4_Click(object sender, EventArgs e)
{
Модуль
(Ост(A[i]/N))=
label1.Text = Sys tem.Convert.ToS tring(Math.
1 или 2 Truncate(2.3));
}
}
}
K=K+1

ЗАДАНИЕ 3. При определении переменной m – вещественной, а n – целой


i A[i] K Результат определи правильно записанные операторы присваивания. В случае необходи-
1 -8 мости исправь ошибки и проверь свою работу в консольном приложении.
2 7
a) m=5*n-1; d) m=round(m); g) m=m%5;
3 6
b) n=m+5; e) n=n/2; h) n=pow(pow(n,1/2),2);
4 -11 c) n=5.0; f) m=m/2; i) n=ceil(m);
5 -5
6 4 ЗАДАНИЕ 4. Cлева представлен фрагмент блок-схемы алгоритма обработки
7 -3 элементов одномерного массива. Реализуй ее на компьютере, заполни трас-
8 7
сировочную таблицу при N=5.
9 -8
10 6 Ранее мы рассматривали использование различных типов данных и
структур, таких как одномерные массивы, строки. Сегодня на уроке раз-
берем работу с файлами: чтение и запись данных.
196
private void button1_Click(object sender, EventArgs e) Работа с файлами

{ TextBox1
listBox1.Items.Add(textBox1.Text);
listBox1 rich TextBox1
}

private void button2_Click(object sender, EventArgs e)


{
string[] countries = { "Бразилия", "Аргентина", "Чили",
"Уругвай", "Колумбия" };
Добавление Загрузка
listBox1.Items.AddRange(countries); элемента
Загрузка rtf
картинки

using (System.IO.StreamWriter sw = new System. Перезапись


файла
Сохранение в
файл
IO.StreamWriter("D:\\A1\\1.txt"))
{ Чтение из
файла
for (int i = 0; i < listBox1.Items.Count; i++)
sw.WriteLine(listBox1.Items[i].ToString());
}
}

private void button3_Click(object sender, EventArgs e)


{
listBox1.Items.Clear();
using (System.IO.StreamReader s1 = new System.IO.StreamReader("D:\\A1\\2.txt"))
{
while (!s1.EndOfStream)
{
listBox1.Items.Add(s1.ReadLine());
}
}
}

private void button4_Click(object sender, EventArgs e)


{
SaveFileDialog saveFile1 = new SaveFileDialog();

saveFile1.DefaultExt = "*.rtf";
saveFile1.Filter = "RTF Files|*.rtf";
if (saveFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
saveFile1.FileName.Length > 0)
{
richTextBox1.SaveFile(saveFile1.FileName);
}
}

private void button5_Click(object sender, EventArgs e)


{
OpenFileDialog openFile1 = new OpenFileDialog();

openFile1.DefaultExt = "*.rtf";
openFile1.Filter = "RTF Files|*.rtf";
if (openFile1.ShowDialog() == System.Windows.Forms.DialogResult.OK &&
openFile1.FileName.Length > 0)
{
richTextBox1.LoadFile(openFile1.FileName);
}
}

private void button6_Click(object sender, EventArgs e)


{
pictureBox1.Image = Image.FromFile("D:\\A1\\1.png");
}
}

197
C помощью окон OpenFileDialog и SaveFileDialog можно выбрать
файл для открытия или сохранить файл в определенную папку, задав
имя и указав формат. Необходимо помнить, что компонент richTextBox
обрабатывает файлы формата rtf.
Метод LoadFile дает возможность загрузить выбранный файл в указан-
ный компонент, в нашем случае – в richTextBox1. Также с помощью метода
SaveFile можно сохранить файл в определенную папку.
Загрузка изображения в компонент pictureBox происходит путем изме-
нения его свойства Image: Image.FromFile("Абсолютный или относительный
путь к файлу");

ЗАДАНИЕ 5. Реализуй предложенный код «Работа с файлами» на компьюте-


ре, разместив необходимые компоненты на форме. Дай логические названия
командным кнопкам.

ЗАДАНИЕ 6. Изображение внедрено в компонент PictureBox через установку


свойства Image в окне свойств. Выполни эту же работу программным путем:

private void Form1_Load(object sender, EventArgs e)


{
pictureBox1.Image = Image.FromFile("D:\\A1\\fon.png");
}

Отредактируй файл fon.png в графическом редакторе и проверь оба способа


загрузки изображения в компонент PictureBox.

ЗАДАНИЕ 7. Если удалить папку "D:\\A1\\fon.png" или переместить файл


в другое место, то изображение не будет отражаться в компоненте pictureBox.
Предложи решение проблемы. Определи разницу между абсолютным и отно-
сительным путями к файлу.

ЗАДАНИЕ 8. Выполни работу на компьютере.


a) Дан массив целых чисел: 3, -4, 5, -7, 8, 9, -10. Запиши данные в текстовый файл
в предложенном виде.
b) Дан массив строк: красный, синий, зеленый, оранжевый, пурпурный. Создай
папку и в ней текстовый файл, запиши элементы массива построчно.

ЗАДАНИЕ 9. Приступи к реализации своего проекта, анализ которого ты провел


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

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Математическая функция Floor() необходима для:
a) округления вещественного числа в сторону меньшего целого числа;
b) округления вещественного числа в сторону большего целого числа;
c) округления вещественного числа в зависимости от значения дробной части в сторону меньшего
или большего целого числа;
d) отбрасывания дробной части вещественного числа.

198
2) Математическая функция Round() необходима для:
a) округления вещественного числа в сторону меньшего целого числа;
b) округления вещественного числа в сторону большего целого числа;
c) округления вещественного числа в зависимости от значения дробной части в сторону меньшего
или большего целого числа;
d) отбрасывания дробной части вещественного числа.
3) Математическая функция Celling() необходима для:
a) округления вещественного числа в сторону меньшего целого числа;
b) округления вещественного числа в сторону большего целого числа;
c) округления вещественного числа в зависимости от значения дробной части в сторону меньшего
или большего целого числа;
d) отбрасывания дробной части вещественного числа.
4) Математическая функция Truncate() необходима для:
a) округления вещественного числа в сторону меньшего целого числа;
b) округления вещественного числа в сторону большего целого числа;
c) округления вещественного числа в зависимости от значения дробной части в сторону меньшего
или большего целого числа;
d) отбрасывания дробной части вещественного числа.
5) При использовании математических функций применяют библиотеку:
a) Math; b) Cmath; c) C++Math; d) MathC.
2. Установи соответствие между функциями работы с файлами и их назначениями.

1 OpenFileDialog A окно для сохранения файла


2 SaveFileDialog B метод сохранения файла
3 LoadFile C окно для открытия файла
4 SaveFile D метод для загрузки файла

3. Определи истинность высказывания: «Компонент RichtextBox обрабатывает файлы формата rtf».


4*. Определи изображение, которое будет загружено первым в компонент PictureBox1.
private void Form1_Load(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile("D:\\A1\\fon.png");
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = Image.FromFile("D:\\A1\\1.png");
}
5*. Определи очередность загрузки изображений в компоненты PictureBox1, PictureBox2, PictureBox3.
private void Form1_Load(object sender, EventArgs e)
{
pictureBox3.Image = Image.FromFile("D:\\A1\\5.png");
pictureBox1.Image = Image.FromFile("D:\\A1\\3.png");
}
private void button1_Click(object sender, EventArgs e)
{
pictureBox2.Image = Image.FromFile("D:\\A1\\4.png");
}

199
Использование базы данных в проекте
8.2
ЗАДАНИЕ 1. Айбару необходимо создать БД для магазина по продаже бытовой
техники. Помоги ему разработать структуру данных с указанием их типов и связей
Как использовать базу между таблицами. Выбери подходящую СУБД для разработки информационной
данных в проектной дея-
системы в онлайн-режиме.
тельности?

адачи наименование категории продажа счет товара сотрудники реклама продавцы клиенты На сегодняшнем уроке рассмотрим исполь-
Имя Наименование модели
Ноутбуки
зование базы данных при разработке проекта.
Ноутбуки HP Pavilion dv6-6153sr (QA955EA) Например, нам необходимо создать простую си-
Нетбуки
Игровые приставки
HP Pavilion g7-1254sr (A3A74EA)
ASUS X53U (90N58Y128W1653601)
стему по учету оценок учащихся на параллели
Серверы Apple MacBook Air (MC504RS) 10-х классов. Создадим базу данных, используя
Персональные компьютеры Apple MacBook Air (MC965RS)
Apple MacBook Pro (MC721RS)
MS Access.
ASUS X53BR (90N8SI218W2112601)
ASUS X53SD-SX695R (90N3ESD44V Схема данных Students
Новая запись
Имя поля Тип данных
ID Счетчик
Fam Короткий текст
Name Короткий текст
Проверка работоспособности
Grade Короткий текст
ID_Sub Короткий текст

Схема данных Students Subjects


Имя поля Тип данных
ID_Sub Короткий текст
Subject Короткий текст
Редактировать Добавить Удалить
Mark Короткий текст

Файл Главная Создание Внешние данные Работа с базами данных Конструктор

Все объекты А... Схема данных

Поиск... Students Subjects


1
Form1.cs* Form1.cs (Design)* Таблицы ID ID_Sub
Students Fam Subject
Subjects Name Mark
База данных учащихся
Grade
ID_Sub
Выборка из таблицы

listBox1 Добавление учащихся

Добавление предметов с оценками

Удаление учащихся

Предлагаем программный код подключения


Удаление предметов по коду

Выборка из двух таблиц

базы данных в ООП на примере С#.


На форме будут расположены следующие
компоненты: TextBox, ListBox, Button, Label.
Фамилия Предмет
Имя Оценка
Класс
ID_Sub

200
Для подключения базы данных с расширением ACCDB используется
вариант 2, для работы с базой данных формата MDB – вариант 1.
// вариант 1
public static string connectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=Students.mdb;";
// вариант 2
public static string connectString = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=Students.accdb;";

// поле - ссылка на экземпляр класса OleDbConnection для соединения с БД


private OleDbConnection myConnection;
// конструктор класса формы
public Form1()
{
InitializeComponent();

// создаем экземпляр класса OleDbConnection


myConnection = new OleDbConnection(connectString);

// открываем соединение с БД
myConnection.Open();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// закрываем соединение с БД
myConnection.Close();
}

Для использования запроса в одной таблице и вывода результата на


экран используется следующий программный код:

private void button1_Click(object sender, EventArgs e)


{
// текст запроса
string query = "SELECT Name, Grade FROM Students Where Fam=’Исина’";

// создаем объект OleDbCommand для выполнения запроса к БД MS Access


OleDbCommand command = new OleDbCommand(query, myConnection);

// получаем объект OleDbDataReader для чтения табличного результата запроса


SELECT
OleDbDataReader reader = command.ExecuteReader();

// очищаем listBox1
listBox1.Items.Clear();

// в цикле построчно читаем ответ от БД


while (reader.Read())
{
// выводим данные столбцов текущей строки в listBox1
listBox1.Items.Add(reader[0].ToString() + " " + reader[1].ToString() + " ");
}

// закрываем OleDbDataReader
reader.Close();
}

201
Для добавления учащихся в базу данных воспользуемся следующим
программным кодом:

private void button2_Click(object sender, EventArgs e)


{
string Fam = textBox2.Text;
string Name = textBox5.Text;
string Grade = textBox6.Text;
string query = "INSERT INTO Students (Fam, Name, Grade) VALUES(‘" + Fam + "’,
‘" + Name + "’, ‘" + Grade + "’)";
OleDbCommand command = new OleDbCommand(query, myConnection);
command.ExecuteNonQuery();

Удаление учащихся, имеющих имя, вводимое с клавиатуры, выполня-


ется по следующему запросу:

private void button3_Click(object sender, EventArgs e)


{
string Name = textBox5.Text;

string query = "DELETE FROM Students WHERE Name=" + "’" + Name + "’";

OleDbCommand command = new OleDbCommand(query, myConnection);


command.ExecuteNonQuery();
}

Добавление новых предметов с соответствующими им оценками


выполняется в данной процедуре:

private void button5_Click(object sender, EventArgs e)


{
string Subject = textBox3.Text;
string Mark = textBox4.Text;
string ID_Sub = textBox7.Text;
string query = "INSERT INTO Subjects (ID_Sub, Subject, Mark) VALUES(‘" + ID_
Sub + "’, ‘" + Subject + "’, "+ Mark + ")";
OleDbCommand command = new OleDbCommand(query, myConnection);
command.ExecuteNonQuery();

button5_Click(sender, e);//вывод БД на экран


}

Также возможно удаление ошибочных предметов или оценок:


private void button4_Click(object sender, EventArgs e)
{
string ID_Sub = textBox7.Text;
string query = "DELETE FROM Subjects WHERE ID_Sub=" + "’" + ID_Sub + "’";
OleDbCommand command = new OleDbCommand(query, myConnection);
command.ExecuteNonQuery();
button4_Click(sender, e);//вывод БД на экран
}

202
Чтобы организовать запрос с использованием данных из двух таблиц,
например, вывод имени учащейся с фамилией «Исина» и предмета «Ин-
форматика» с оценкой «5», код аналогичен запросу кнопки «выборка из
таблицы», но с некоторыми изменениями.
Объявление переменной:
string ID_Sub = textBox7.Text;

Новый запрос:

string query = "SELECT Students.Name, Students.Grade, Subjects.Subject, Subjects.Mark


FROM Students, Subjects Where Students.Fam=’Исина’ AND Subjects.ID_Sub=’"+ID_Sub+"’";

При выводе результата запроса на экран добавить соответствующее


количество индексов:
// выводим данные столбцов текущей строки в listBox1
listBox1.Items.Add(reader[0].ToString() + " " + reader[1].ToString() + " " + reader[2].
ToString() + " " + reader[3].ToString() + " ");

ЗАДАНИЕ 2. Продолжи реализацию собственного проекта, добавь в него базу


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

ЗАДАНИЕ 3. Внеси изменения в предложенную БД и запиши свои запросы


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

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Определи назначение myConnection.Open():
a) открывает базу данных;
b) открывает файл;
c) открывает приложение;
d) запускает исполнительный файл.
2) Определи назначение myConnection.Close():
a) закрывает базу данных;
b) закрывает файл;
c) закрывает приложение;
d) закрывает форму.

203
3) Определи назначение
OleDbCommand command = new OleDbCommand(query, myConnection):
a) создает объект для выполнения запроса;
b) создает объект для удаления запроса;
c) создает объект для чтения результата запроса;
d) создает объект для записи результата запроса.

4) Определи назначение
OleDbDataReader reader = command.ExecuteReader():
a) создает объект для выполнения запроса;
b) создает объект для удаления запроса;
c) создает объект для чтения результата запроса;
d) создает объект для записи результата запроса.
5) Определи назначение
string ID_Sub = textBox1.Text:
a) определяет порядковый номер записи;
b) определяет количество записей БД;
c) определяет количество полей БД;
d) определяет количество запросов.
2. Установи соответствие между запросами и их назначениями.

Удаление записей в таблицу,


1 SELECT … FROM …Where … A
удовлетворяющих параметрам
2 DELETE FROM … WHERE … B Вставка записи в таблицу БД
3 Выборка записей таблицы, удов-
INSERT INTO … (…) VALUES … C
летворяющих параметрам

3. Определи истинность утверждения: «Файл MS Access имеет расширение ACCDB».


4*. Определи связи данных в предложенной БД.

Students Subjects
ID ID_Sub
Fam Subject
Name Mark
Grade
ID_Sub


5*. Определи результат выполнения процедуры.
string query = "INSERT INTO Students (Fam, Name, Grade) VALUES(‘" + Fam + "’, ‘" + Name
+ "’, ‘" + Grade + "’)";

204
Использование базы данных в проекте
8.3
ЗАДАНИЕ 1. Айбару необходимо разработать информационный веб-сайт,
содержащий простую базу данных. Помоги ему создать прототип интерфейса
с указанием основных тегов HTML и CSS стилей. Как создать веб-страницу
средствами HTML и CSS?
Мой родной край Как создать базу данных в
file:///D:/web.html MySQL?
Мой родной край – Казахстан Как соединить базу данных
с веб-страницей?
Достопримечательности Заповедники Курорты

На прошлом уроке ты научился использовать базу данных в ООП, но


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

https://cp.beget.ru/main

Хостинг Поддержка Баланс Аккаунт


FreeHosting

Общая информация Используйте все возможности панели управления. Мы можем


предложить вам еще больше сервисов для развития вашего
Бесплатный хостинг проекта и автоматизации процессов.
Все возможности панели управления
Логин:
ID Пользователя: Файловый FTP Сайты MySQL
Персональные данные: менеджер
Управление 1 из 1 1 из 1
Тарифный план: аккаунтами
Количество файлов:

CMS Домены и DNS BackUp


Тех. информация поддоны
Установка
систем
Сервер: управления

Общая нагрузка за 24 часа


Переход CronTab Почта Сервисы
на платный
хостинг Планировщик
заданий

205
например, beget.com, который позволит редактировать содержимое
Примеры SQL-запросов файлов и базы данных в онлайн-режиме.
Данный хостинг предоставляет бесплатную регистрацию аккаунта
Вывод записей из с некоторыми ограничениями, например, имеется возможность создания
таблицы с упорядочи­
ванием
только одной базы данных или нет возможности использования
электронной почты и т.д. Тем не менее, предоставляемых бесплатных
SELECT Name, Grade услуг достаточно для изучения основ веб-программирования и создания
FROM Students ORDER
BY Grade
информационного веб-сайта в рамках проектной деятельности на уроках
SELECT ID, Name, информатики.
Grade FROM Students После успешной регистрации ты сможешь создавать HTML и PHP файлы,
ORDER BY ID DESC используя файловый менеджер, а для создания базы данных необходимо
использовать пункт меню MySQL.
Подсчет количества Файловый менеджер имеет интуитивно понятный интерфейс, также
записей внизу есть строка с подсказками сочетаний клавиш, используемых при
SELECT COUNT(*) FROM работе с файлами. Рассмотрим возможность создания базы данных и
Subjects выберем пункт меню MySQL. При создании новой базы данных необходимо
указать имя и пароль, которые в дальнейшем будут использованы для
Конструкция AND NOT соединения с веб-сайтом.
(И НЕ)
SELECT * FROM Управление базами данных MySQL
Students, Subjects
По умолчанию каждая база данных (БД) создается с доступом localhost. Это означает, что доступ к БД возможен
WHERE Subjects.
лишь с сервера, на котором расположены сайты. Этот доступ необходим для работы phpMyAdmin.
Subject = "Математи-
ка" AND NOT Subjects.
Mark <5 Имя базы: ufb77010_ Пароль:

Конструкция IS NULL Комментарий:


(Пустое поле)
Сохранить пароль для phpMyAdmin
SELECT ID_Sub,
Subject FROM Добавить Использовано БД 0 из 1
Subjects WHERE Mark
IS NULL
Базы данных Комментарий Размер БД

Нет баз данных

После создания новой базы данных или выбора режима редактирова-


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

Рекомендация
Сервер localhost » База данных ufb77010_base
Структура SQL Поиск Запрос по шаблону Экспорт Импорт Операции Процедуры Триггеры Дизайнер
Недавнее Избранное
Таблиц в базе данных не обнаружено.
ufb77010_base
Создать таблицу

Имя: Количество столбцов: 4

206
free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры
Недавнее Избранное
Структура таблицы Связи

ufb77010_base
Новая # Имя Тип Сравнение Атрибуты Null По умолчанию Комментарии Дополнительно Действие
Students 1 ID int(11) Нет Нет Изменить Удалить Еще
2 fam varchar(15) utf8_general_ci Нет Нет Изменить Удалить Еще
3 name varchar(10) utf8_general_ci Нет Нет Изменить Удалить Еще
4 grade varchar(3) utf8_general_ci Нет Нет Изменить Удалить Еще
5 ID_sub int(11) Нет Нет Изменить Удалить Еще

Отметить все С отмеченными: Обзор Изменить Удалить Первичный Уникальный Индекс Полнотекстовый
Печать Анализ структуры таблицы Переместить поля Нормировать
Добавить 1 поле(я) после ID_sub Вперед

Индексы
Действие Имя индекса Тип Уникальный Упакован Столбец Уникальных элементов Сравнение Null Комментарий
Изменить Удалить PRIMARY BTREE Да Нет ID 0 A Нет

Создать индекс для 1 столбца/ов Вперед

free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Столбец Тип Функция Null Значение

ufb77010_base ID int(11)
Новая
Students fam varchar(15)

name varchar(10)

grade varchar(3)

ID_sub int(11)

Вперед

free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Выполнить SQL-запрос(ы) к таблице ufb77010_base.Students:


ufb77010_base
1 SELECT * FROM 'Students' WHERE fam="Ахметов";|
Новая
Students

SELECT* SELECT INSERT UPDATE DELETE Очистить Формат


Получить автосохраненный запрос
Связать параметры

[ Разделитель ; ] Показать данный запрос снова Оставить после запроса Откат после завершения Включить проверку внешних ключей

Во вкладке «Обзор» ты сможешь увидеть результаты выполнения


SQL-запросов. С помощью вкладки «Структура» можно определить струк-
туру таблицы базы данных и длину, тип полей. После заполнения таблицы
ее содержимое также можно посмотреть во вкладке «Обзор».
207
free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Отобразить поле запроса

ufb77010_base
Отображение строк 0 - 0 (1 всего, Запрос занял 0.0004 сек.)
Новая
Students SELECT * FROM 'Students' WHERE fam="Ахметов"

Профилирование [Построчное редактирование] [Изменить] [Анализ SQL запроса] [Создать

Показать все | Количество строк: 25 Фильтровать строки: Поиск в таблице

Отметить все С отмеченными: Изменить Копировать Удалить Экспорт

Показать все | Количество строк: 25 Фильтровать строки: Поиск в таблице

Использование результатов запроса


Печать В буфер обмена Экспорт Отобразить график Создать представление

Конструкция LIKE
Для соединения базы данных с веб-сайтом необходимо создать файл
«index.php» и записать программный код:
SELECT Fam, Name
FROM Students WHERE <html>
Name like “Петр” <head>
SELECT Fam, Name <meta charset=»utf-8»>
FROM Students WHERE <body>
Name like “Т%” <?php
SELECT Fam, Name $dbconnect = mysql_connect («localhost», «имя БД», «пароль БД»);
FROM Students WHERE if (!$dbconnect)
Name like “%е%” {
SELECT Fam, Name echo («Нет соединения»);
FROM Students WHERE }
Name like “%м» if(@mysql_select_db(«имя БД»))
{
echo («Соединение с БД прошло успешно»);
Конструкция BETWEEN }
SELECT Name, Subject else die(«Нет соединения»);
FROM Students, ?>
Subjects WHERE </body>
Subjects.Mark </head>
BETWEEN 3 AND 4 <body>
Содержимое сайта
</body>
</html>

Обрати внимание, что в данном программном коде тег <body>…


</body> используется дважды: один раз он содержится в теге <head>…
</head>, второй раз – как самостоятельный тег. При использовании тега
<head>…</head> его содержимое не выводится на экран, но при про-
верке соединения веб-сайта с базой данных предусмотрен вывод соот-
ветствующего сообщения на экран, для этого был использован первый
тег <body>…</body>.
В данном примере показан самый простой способ проверки соеди-
нения базы данных с веб-сайтом. В дальнейшем при изучении основ
веб-программирования, а именно – использования JavaScript, PHP, ты
208
сможешь применить другие способы соединения и обмена данными
с базой данных через веб-сайт.

ЗАДАНИЕ 2. Используя хостинг beget.com, создай базу данных, состоящую из


нескольких таблиц:
– определи структуру базы данных;
– определи структуру таблиц: длину и типы полей;
– заполни соответствующие поля таблиц;
– запиши несколько SQL-запросов, изученных ранее;
– результат выполнения SQL-запросов посмотри во вкладке «Обзор».

ЗАДАНИЕ 3. Выполни проверку успешного соединения ранее созданной базы


данных с веб-сайтом, выведи на экран соответствующее сообщение.

ЗАДАНИЕ 4. Адаптируй базу данных, созданную на уроке, под собственный


проект.

ВОПРОСЫ И ЗАДАНИЯ
1. Изучи предложенные изображения и пройди тест.
free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Структура таблицы Связи


ufb77010_base
Новая # Имя Тип Сравнение Атрибуты Null По умолчанию Комментарии Дополнительно Действие
Students 1 ID int(11) Нет Нет Изменить Удалить Еще
Subjects 2 fam varchar(15) utf8_general_ci Нет Нет Изменить Удалить Еще
3 name int(11) Нет Нет Изменить Удалить Еще

Отметить все С отмеченными: Обзор Изменить Удалить Первичный Уникальный Индекс Полнотекстовый

Печать Анализ структуры таблицы Переместить поля Нормировать


Добавить 1 поле(я) послеmark Вперед

Индексы
Действие Имя индекса Тип Уникальный Упакован Столбец Уникальных элементов Сравнение Null Комментарий
Изменить Удалить PRIMARY BTREE Да Нет ID_sub 0 A Нет
Изменить Удалить PRIMARY BTREE Нет Нет ID_sub 0 A Нет

Создать индекс для 1 столбца/ов Вперед

free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Структура таблицы Связи


ufb77010_base
# Имя Тип Сравнение Атрибуты Null По умолчанию Комментарии Дополнительно Действие
Новая
Students 1 ID int(11) Нет Нет Изменить Удалить Еще
Subjects 2 fam varchar(15) utf8_general_ci Нет Нет Изменить Удалить Еще
3 name varchar(10) utf8_general_ci Нет Нет Изменить Удалить Еще
4 grade varchar(3) utf8_general_ci Нет Нет Изменить Удалить Еще
5 ID_sub int(11) Нет Нет Изменить Удалить Еще

Отметить все С отмеченными: Обзор Изменить Удалить Первичный Уникальный Индекс Полнотекстовый
Печать Анализ структуры таблицы Переместить поля Нормировать
Добавить 1 поле(я) после ID_sub Вперед

Действие Имя индекса Тип Уникальный Упакован Столбец Уникальных элементов Сравнение Null Комментарий
Изменить Удалить PRIMARY BTREE Да Нет ID_sub 2 A Нет
Изменить Удалить ID BTREE Нет Нет ID_sub 2 A Нет

Создать индекс для 1 столбца/ов Вперед

209
1) Определи количество таблиц БД:
a) 1; b) 2; c) 3; d) 4.
2) Определи первичный ключ таблицы Subjects:
a) ID_sub; b) ID; c) subject; d) mark.
3) Определи количество полей в таблице Subjects:
a) 1; b) 2; c) 3; d) 4.
4) Определи количество полей целочисленного типа в таблице Subjects:
a) 1; b) 2; c) 3; d) 4.
5) Определи причину, по которой поля ID и ID_sub целочисленного типа:
a) один из них – вторичный ключ для другой таблицы;
b) они – первичные поля в своих таблицах;
c) счетчики;
d) тип поля не имеет значения.
2. Определи истинность утверждения: «Тестирование веб-сайта можно выполнять на персональном
компьютере без доступа к Интернету»:
a) истина;
b) ложь.
3. Изучи предложенное изображение и определи возможные SQL-запросы.
free19.beget.com/loclhost/

Сервер localhost » База данных ufb77010_base » Таблица: Students


Обзор Структура SQL Поиск Вставить Экспорт Импорт Операции Триггеры

Отобразить поле запроса

ufb77010_base
Отображение строк 0 - 0 (1 всего, Запрос занял 0.0006 сек.)
Новая
Students SELECT * FROM 'Students' WHERE fam="Ахметов"
Subjects
Профилирование [Построчное редактирование] [Изменить] [Анализ SQL запроса] [Создать PHP-код] [Обновить]

Показать все | Количество строк: 25 Фильтровать строки: Поиск в таблице

Отметить все С отмеченными: Изменить Копировать Удалить Экспорт

4*. Проведи эксперимент: скопируй ссылку на сайт в браузер и измени регистр при наборе имени папки,
сделай соответствующий вывод.
5*. Заполни пропуски в PHP коде, используемом при соединении базы данных с веб-сайтом.
$dbconnect = mysql_connect («______________», «__________», «______»);

210
Создание простой анимации средствами ООП
8.4
ЗАДАНИЕ 1. Айбару необходимо вставить мультимедиа в проект. Помоги
ему внедрить изображение, видео- и аудиофайлы на форму в объектно-
ориентированной среде программирования. Перечисли необходимые компо- Как создавать анимацию
ненты и напиши соответствующие фрагменты программного кода для вставки средствами ООП?
мультимедиа-объектов.

Часто возникает необходимость добавления анимационных эффектов Вставка медиа

при создании проектов. На уроках информатики в 7-м классе ты созда-


вал прос­тую анимацию с помощью графических редакторов в онлайн-
режиме.
Сегодня ты научишься применять компоненты ООП при создании про- Импорт файла

стой анимации.
1) На форме необходимо расположить следующие компоненты:
PictureBox1 (Отображение картинок), Button1 (Старт), Button2 (Остановка),
Timer (Указание последовательности картинок).
2) Необходимые для анимации файлы должны быть вложены в папку
bin\debug текущего проекта на С# в отдельной папке с произвольным
названием.
Упорядочить Открыть Добавить в библиотеку Общий доступ Электронная почта Записать на оптичес

Избранное
Загрузки
Недавние места
Рабочий стол

Библиотеки
Видео
Документы

Упорядочить Добавить в библиотеку Общий доступ Показ слайдов Записать на оптичес

Избранное
Загрузки
Недавние места
Рабочий стол

1 2 3 4
Библиотеки

3) Подобрать размеры компонента PictureBox1 под картинки и распо-


ложить кнопки на свое усмотрение.
4) Подписать соответственно кнопки: «Старт»/ «Стоп».
Form1 1

Старт Старт

Стоп Стоп

Стадия разработки Результат выполнения


211
5) Прописать коды.
Для кнопки «Старт»:
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled=true;
timer1.Interval = timer1.Interval - 10; //интервал смены картинок
}
}
Для кнопки «Стоп»:
private void button2_Click(object sender, EventArgs e)
{
timer1.Enabled = false;
}
Для таймера:
private void timer1_Tick(object sender, EventArgs e)
{
if (k < 4)
k++;
else k = 1;
this.Text = Convert.ToString(k);
string pathFile = Application.StartupPath + @"/1/" + Convert.ToString(k) +
".jpg";
if (System.IO.File.Exists(pathFile))
pictureBox1.Image = Image.FromFile(@"1/" + Convert.ToString(k) + ".jpg");
}

ЗАДАНИЕ 2. Реализуй предложенный программный код на компьютере.


Замени изображения на собственные, создай простую анимацию.

Второй вариант создания простой анимации: рисование фигур по таймеру:

using System.Windows.Forms;
namespace WindowsFormsApplication5
{
public partial class Form1 : Form
{
public Form1()
{
// определение размера окна для вывода анимации
InitializeComponent();
ClientSize = new Size(600, 600);
// определение центра окна
var CenterX = ClientSize.Width / 2;
var CenterY = ClientSize.Height / 2;
// размер выводимой фигуры в пикселях
var size = 100;
var radius = Math.Min(ClientSize.Width, ClientSize.Height) / 3;
// определение интервала времени, таймера
var time = 0;
var timer = new Timer();
timer.Interval = 500;
// выполнение действий на каждый тик таймера
timer.Tick += (sender, args) =>
{
time++;
var graphics = CreateGraphics();

212
graphics.TranslateTransform(CenterX, CenterY);
graphics.RotateTransform(time * 360f / 8);
graphics.FillRectangle(Brushes.Red, radius - size / 2, -size / 2, size,
size);

};
//запуск таймера для воспроизведения анимации
timer.Start();
}
static void Main()
//запуск формы
{
Application.Run(new Form1());
}
}

Результат выполнения: Form1 Form1

ЗАДАНИЕ 3. Реализуй предложенный


программный код на компьютере. Поме-
няй цвет и форму фигуры.

ЗАДАНИЕ 4. Во время прорисовки


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

timer.Tick += (sender, args) =>


{

Заменить на:
timer.Tick += (sender, args) =>
{
time++;
Invalidate();
};
Добавить следующий код после строки timer.Start();
Paint += (sender, args) =>
{
for (int i = 0; i <= time; i++)
{
args.Graphics.TranslateTransform(CenterX, CenterY);
args.Graphics.RotateTransform(i * 360f / 8);
args.Graphics.FillRectangle(Brushes.Green, radius - size / 2,
-size / 2, size, size);
args.Graphics.ResetTransform();
}
};

213
Запусти заново программу на выполнение и попробуй поочередно миними-
зировать окно и разворачивать его. Сравни результат с предыдущей версией.
Объясни разницу.
При наличии мерцания при перерисовке добавь DoubleBuffered = true;
После строк
public Form1()
{
ЗАДАНИЕ 5. Внеси изменения в предложенную программу для получения
результата, как на рис. 1.

ЗАДАНИЕ 6. Добавь простую анимацию в собственный проект.

Большим рывком в области компьютерной анимации является фото-


реалистичная анимация человека. В современной киноиндустрии созда-
ются фильмы с использованием фантастических персонажей, животных,
мультяшных игрушек и людей. Многие разработчики специального про-
Рис. 1 граммного обеспечения добиваются генерации эпизодов, показывающих
фотореалистичного персонажа-человека с правдоподобными движени-
ями, жестикуляцией, одеждой, волосами, усложненным естественным
фоном. При достижении реалистичности анимации зритель не сможет
отличить игру настоящих актеров от компьютерной графики.
Но достижения в области компьютерной графики имеют и отрица-
тельные последствия, например, появится возможность подделки видео
и фотоматериалов в качестве улик, так как будет сложно доказать монтаж
или использование эффектов.
Фотореалистичная компьютерная анимация может быть разделена на
две подкатегории:
– реальный фотореализм с использованием захвата движения при
создании виртуального объекта. Актеры переодеваются в персонажей
и выполняют необходимые движения, затем эти видеофрагменты исполь-
зуются при создании анимации;
– стилизованный фотореализм. Персонажи нарисованы с помощью
графических редакторов и воспроизведены с помощью рендеринга.

214
ВОПРОСЫ И ЗАДАНИЯ
1. Изучи предложенный фрагмент программного кода и пройди тест.
if (k < 4)
k++;
else k = 1;
this.Text = Convert.ToString(k);
s1tring pathFile = Application.StartupPath + @"/1/" + Convert.ToString(k)
+ ".jpg";
if (System.IO.File.Exists(pathFile))
pictureBox1.Image = Image.FromFile(@"1/" + Convert.ToString(k) +
".jpg");

1) Определи вид ссылки, указывающей путь к графическому файлу:
a) прямая; b) косвенная; c) абсолютная; d) относительная.
2) Определи расширение графического файла:
a) jpg; b) jpeg; c) png; d) bmp.
3) Определи тип переменной k:
a) float; b) string; c) int; d) bool.
4) Определи тип имени графического файла, указанный в ссылке:
a) float; b) string; c) int; d) bool.
5) Определи количество изображений, чередующихся в анимации:
a) 2; b) 3; c) 4; d) 5.
2. Установи соответствие.
args.Graphics.RotateTransform(i * 360f / 12);
1 A 10 красных кругов
args.Graphics.FillEllipse(Brushes.Green, radius - size / 2, -size / 2, size, size);
args.Graphics.RotateTransform(i * 360f / 10);
2 B 6 желтых квадратиков
args.Graphics.FillEllipse(Brushes.Red, radius - size / 2, -size / 2, size, size);
args.Graphics.RotateTransform(i * 360f / 8);
3 args.Graphics.FillRectangle(Brushes.Green, radius - size / 2, -size / 2, size, C 12 зеленых кругов
size);
args.Graphics.RotateTransform(i * 360f / 6);
4 args.Graphics.FillRectangle(Brushes.Yellow, radius - size / 2, -size / 2, size, D 8 зеленых квадратиков
size);
3. Определи истинность утверждения: «С помощью относительной ссылки можно указать путь к не-
скольким файлам».
4*. Объясни назначение символа “@” в относительной ссылке:
string pathFile = Application.StartupPath + @"/1/" + Convert.ToString(k) + ".jpg";
5*. Воспроизведи предложенную на рисунке простую анимацию.
Form1
Добавь кнопку для остановки анимации.

Старт

215
Оптимизация кода
8.5
ЗАДАНИЕ 1. Айбару необходимо ввести с клавиатуры 15 чисел и найти суммы
положительных и отрицательных чисел. Он использовал 17 переменных веще-
Как оптимизировать про-
ственного типа, каждое из чисел вводил с клавиатуры, проверял знак числа и
граммный код?
находил соответствующие суммы. Помоги ему оптимизировать программный
код.

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


нии конечного результата и не учитываем эффективность алгоритма. Это
объясняется тем, что в основном решать приходится небольшие задачи,
которые компилируются мощными компьютерами. Оптимизация кода
необходима при обработке большого количества данных, например, базы
данных населения города, или при выполнении действий над большими
числами, трансляции программы в онлайн-режиме.
Рассмотрим некоторые способы оптимизации программного кода:
– использование операции сложения вместо умножения;
– возведение в степень можно заменить умножением;
– по возможности не использовать тип long long, а заменить на long
или int;
– замена условного оператора if (условие) на оператор выбора case
в С++ намного эффективнее;
– объединение циклов при использовании одинакового диапазона;
– замена цикла с параметром на цикл с условием;
– сокращение количества используемых переменных;
– по возможности сократить количество операторов ввода-вывода;
– заменить повторяющиеся действия подпрограммами;
– при выборе языка программирования обращать внимание на воз-
можности компилятора.
Приведем наиболее распространенные алгоритмы.
Пример № 1
Даны два числа вещественного типа. Поменять их местами. Решим
задачу двумя способами: с использованием дополнительной переменной
и с использованием арифметических операций.

Form1.cs Form1.cs [Конструктор]

Первое число Первое число Первое число


5 -4

Второе число Второе число Второе число


-4 5

Старт Старт Старт

216
private void button1_Click(object sender, private void button2_Click(object sender,
EventArgs e) EventArgs e)
{ {
int a, b, c; int a, b, c;
a = Convert.ToInt32(textBox1. a = Convert.ToInt32(textBox1.
Text); Text);
b = Convert.ToInt32(textBox2. b = Convert.ToInt32(textBox2.
Text); Text);
c=a; a = a + b;
a=b; b = a - b;
b=c; a = a - b;
textBox1.Text = Convert. textBox1.Text = Convert.
ToString(a); ToString(a);
textBox2.Text = Convert. textBox2.Text = Convert.
ToString(b); ToString(b);
} }

Пример № 2
Дано N-целое число. Найти сумму первых N-чисел. Решим задачу двумя
способами: с использованием оператора цикла с параметром и с исполь-
зованием формулы.
Form1.cs Form1.cs [Конструктор]

Количество чисел
Количество чисел Количество чисел
7 7

Результат: Результат: 28

Сумма чисел Сумма чисел Сумма чисел

private void button1_Click(object sender, private void button2_Click(object sender,


EventArgs e) EventArgs e)
{ {
int n, i, s = 0; int n, i, s = 0;
n = Convert.ToInt32(textBox1. n = Convert.ToInt32(textBox1.
Text); Text);
for (i = 1; i <= n; i++) label2.Text=Convert.ToString((1 +
s = s + i; n) / 2 * n);
label2.Text = Convert. }
ToString(s);
}

Пример № 3
Дан массив целых чисел. Найти сумму множителей элементов массива
и постоянной величины.
В неоптимизированном программном коде выполняется умножение
элемента на постоянную величину, результат складывается с предыдущим
значением суммы.
В оптимизированном варианте сокращено количество умножений.
Сначала найдена сумма элементов массива в цикле, далее конечный ре-
зультат умножили на постоянную величину.
217
Form1.cs Form1.cs [Конструктор]

Массив задан заранее в коде программы


Массив задан заранее в коде программы 12
5
8
23
45
6

Результат: 1980
Результат:

Вычислить Вычислить

private void button1_Click(object sender, private void button1_Click2(object sender,


EventArgs e) EventArgs e)
{ {
int [] Q = new int[6] {12, 5, int [] Q = new int[6] {12, 5,
8, 23, 45,6}; 8, 23, 45,6};
int m= Q.Length; int m= Q.Length;
int i, s = 0; int i, s = 0;
for (i = 0; i <= m - 1; i++) for (i = 0; i <= m - 1; i++)
richTextBox1. richTextBox1.
Text= richTextBox1.Text+Convert. Text= richTextBox1.Text+Convert.
ToString(Q[i])+"\n"; ToString(Q[i])+"\n";
for (i = 0; i <= m - 1; i++) for (i = 0; i <= m - 1; i++)
s = s + Q[i] * 20; s = s + Q[i] * 20;
label3.Text = label3.Text label3.Text = label3.Text
+ « « + Convert.ToString(s); + " " + Convert.ToString(s);
}

ЗАДАНИЕ 2. Определи наиболее эффективный программный код, обоснуй


свой ответ.

S=0; S=0; S=0;


for (int i=1; i<=n; i++) for (int i=1; i<=n;i++) for (int i=1; i<=n; i++)
S=S+ i*10+b*10; S=S+ (i+b)*10; S=S + (i+b);
S=S*10;

ЗАДАНИЕ 3. Определи наиболее эффективное описание массива, обоснуй


свой ответ.

int a[100]; int a[5]; cin >>n; cin >>n; int a[];
int a[n-1]; int a[n];

ЗАДАНИЕ 4. Оптимизируй ниже предложенный программный код и реализуй


его в объектно-ориентированном приложении, определи необходимые компо-
ненты.
private void button1_Click(object sender, EventArgs e)
{
const int n = 5;
int p = 1, s = 0;
for (int i = 1; i < n; i++)
s = s + i;
for (int k = 1; k < n; k++)
p = p * k;
label1.Text= Convert.ToString(s * p);
218
ЗАДАНИЕ 5. Выбери один из программных кодов, реализуй его через кон-
сольное приложение. Заполни соответствующую трассировочную таблицу.

x=10; for (int i=3;i<=10;i++) int a=0, b=10, i=0;


for (int i=1;i <=5;i++){ if( i % 2==0) while (a>2*b)
cout<<i << “ “<< x; { {
x=x-2; s=s+i; i=i+2;
} cout<< s<<“ “<< i; a=a+1;
} }
a=a*2;
cout << a<<” ”<< i;
}
i x Экран результата i s Экран результата i a Экран результата
1 10 1 10 3 0 30 2 1 21
… … … … … … … … …

ЗАДАНИЕ 6. Напиши программный код в консольном приложении с исполь-


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

ЗАДАНИЕ 7. Оптимизируй программный код собственного проекта.

ВОПРОСЫ И ЗАДАНИЯ
1. Выбери более эффективный алгоритм и обоснуй свой ответ.
1 2
S=0;
for(i=0;i<=100; i++) S=(1+100)/2.0*100;
S=S+i;

2. Определи истинность утверждения: «Использование полной записи условного оператора намного


эффективнее, чем повторное использование условного оператора».
3. Определи истинность утверждения: «Использование логических операций в условном операторе
оптимизирует программный код».
4*. Выбери более эффективный алгоритм и обоснуй свой ответ.
1 2
for(i=0;i<10;i++) for(i=0;i<100;i+=10)
Label1.Text= Label1.Text + Convert. Label1.Text= Label1.Text + Convert.
ToString(i*10); ToString(i));

5*. Выбери более эффективный алгоритм и обоснуй свой ответ.


1 2
for(i=0;i<1000; i++) for(j=0;i<10000; j++)
for(j=0;i<10000;j++) for(i=0;i<1000;i++)
s=s+1; s=s+1;

219
Тестирование
8.6
ЗАДАНИЕ 1. Айбару необходимо найти ошибку в программном коде, обраба-
тывающем элементы массива. Посоветуй быстрый способ обнаружения ошибки.
Как осуществить трасси-
ровку алгоритма с исполь-
зованием промежуточных Input Input
величин?

Software Software

Output Output
Black-Box Testing White-Box Testing

На протяжении всего времени, пока ты изучаешь курс информатики,


тебе приходится выполнять тестирование программ. Независимо от языка
программирования любой программный продукт требует проверки с ис-
пользованием разных методов. Например, в 9-м классе ты познакомился с
тестированием с помощью «черного» и «белого» ящиков, видами ошибок:
синтаксической, логической. Синтаксическая ошибка допускается при на-
писании операторов или переменных, а логическая ошибка предполагает
неверный ход решения задачи.
ТЕСТИРОВАНИЕ
Кроме методов «черного», «серого», «белого» ящиков, различают такие
виды тестирования, как альфа, бета, юзабилити.
Модерируемое – Альфа-тестирование проводится на поздних стадиях разработки про-
с участием человека дукта, обычно не самим разработчиком. Это могут быть его коллеги внутри
(модератора), кото- организации с использованием «черного» и «белого» ящиков. Такой вид
рый дает задания и тестирования проводится для выявления ошибок, ознакомления с функ-
при необходимости
циональными возможностями в целях улучшения качества программного
задает уточняющие
обеспечения.
вопросы.
Бета-тестирование проводится добровольцами методом «черного»
ящика, которые участвуют в эксперименте чаще всего из любопытства.
Немодерируемое – На этой стадии проверяется работоспособность всей системы. Произво-
специализирован-
дитель не несет никакой ответственности в случае нанесения ущерба во
ный сервис выполня-
ет раздачу заданий и
время тестирования.
обеспечивает обрат- Юзабилити-тестирование (ЮТ) предполагает проверку комфортной
ную связь в автома- работы в разработанном интерфейсе. Задача респондентов – проверить
тическом режиме работоспособность всех командных кнопок, меню, всплывающих окон,
без участия допол- форм ввода-вывода. За их работой наблюдает эксперт, который ведет
нительного человека соответствующие записи.
(модератора). В зависимости от места проведения различают очное и дистанционное
тестирование. По целям:
– эксплораторное – проверяет соответствие функциональных воз-
можностей программного продукта ожиданиям пользователей;
– проверочное – проводят для выявления ошибок, проблем и сте-
пени эффективности готового продукта;

220
– сравнительное – проводят для сравнительного анализа готового
продукта с предыдущими версиями.
Во избежание ошибок в алгоритме при проверке его работоспособ-
ности используют промежуточные данные. Их можно поделить на три
категории: допустимые, граничные, ошибочные. Для наглядного пред-
ставления и анализа данных используют трассировочную таблицу.
Рассмотрим пример построения трассировочной таблицы для алго-
ритма с использованием одномерного массива.
Дан массив целых чисел и число N, введенное с клавиатуры. Нужно
вывести количество элементов массива, остаток деления которых на N
равен 1 или 2.

private void button1_Click(object sender, EventArgs e) N=4;


{ I A[i] |K| L
int[] Q = new int[10] { 1, -4, -7, 8, -10, 12, -14,
-17, 20, 21 }; 0 1 1
int i, n, k, L = 0; 1 -4 0
int m = Q.Length; 2 -7 3
//ввод строки с клавиатуры и преобразование в целое
n = Convert.ToInt32(textBox1.Text); 3 8 0
if (n <= 0) n = Math.Abs(n); 4 -10 2
5 12 0
for (i = 0; i <= m - 1; i++)
{ 6 -14 2
k = Q[i] % n; 7 -17 1
if (Math.Abs(k) == 1 || Math.Abs(k) == 2) L++; 8 20 0
richTextBox2.Text = richTextBox2.Text + Convert.
ToString(Q[i]) + "\t"+ Convert.ToString(k)+"\t "+ Convert. 9 21 1
ToString(L)+"\n"; Количество= 5
}

ЗАДАНИЕ 2. Ниже представлен псевдокод. Реализуй его в консольном при-


ложении или используя возможность ООП.
Заполни трассировочную
Odd_c ← 0 таблицу для следующих
Even_c ← 0 входных данных.
REPEAT
REPEAT Value Even_c Odd_c OUTPUT
OUTPUT “Enter a whole number
between 0 and 100. Enter a negative whole 5
number to finish” 6
INPUT v 7
UNTIL v<= 100 AND v=INT(v)
IF (v/2)=INT(v/2) 2
THEN -1
OUTPUT “Even”
Even_c ← Even_c+1
ELSE
OUTPUT “Odd”
Odd_c ← Odd_c+1
END IF
UNTIL v < 0

221
ЗАДАНИЕ 3. (a) Слева представлен псевдокод алгоритма сортировки элементов
1 A=@(10, 5, 9, 52, 3, 14) в массиве. Реализуй его в консольном приложении или используя возможность
2 Num = A_с-1 ООП. Составь и заполни трассировочную таблицу.
3 Do { (b) Объясни назначение строк 7-10.
4 Flag=false (c) Объясни назначение и укажи тип переменной Flag.
5 i=0 (d) Объясни разницу между символами «=» и «eq», хотя оба чаще всего читаются,
как «equals».
6 Do{
7 If (A[i]>A[i+1]) ЗАДАНИЕ 4. Приведенный ниже алгоритм переупорядочивает числа, храня-
8 t=A[i] щиеся в одномерном массиве с именем arr. k – это целочисленная переменная,
9 A[i]= A[i+1]
используемая в качестве индекса, который идентифицирует элементы в списке.
t – это переменная, которая используется как временное хранилище для чисел
10 A[i+1]=t из массива arr.
11 Flag=true k←1
12 } While k < 10 Do
If arr [k] > arr [k+1] Then
13 i++
t ← arr [k]
14 } UNTIL (i eq Num) arr [k] ← arr [k+1]
15 }UNTIL (Flag eq false) arr [k+1] ← t
Endif
k ←k+1
End while
(a) Реализуй его в консольном приложении или используя возможность ООП.
Составь и заполни трассировочную таблицу.
Нужно показать только те значения, которые меняются на определенном этапе.
k t arr
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10]
43 25 37 81 18 70 64 96 52 4
… … … … … … … … … … … …
(b) Как изменятся данные при k=10?
(c) Как изменятся элементы массива arr[1], arr[9], arr[10]?

ЗАДАНИЕ 5. Протестируй программный код собственного проекта с использо-


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

Способ
№ Цель Ожидаемый результат Фактический результат
тестирования
Проверка добавле- Добавить логин и 1) После регистрации по- 1 попытка: запись не была
ния логина и пароля пароль через форму явится соответствующее добавлена в БД, неверно
1 пользователя в БД регистрации. сообщение. указан путь к файлу.
при регистрации. 2) В базе данных появится
соответствующая запись. 2 попытка: проведена
успешно.

ВОПРОСЫ И ЗАДАНИЯ
1. Пройди тест.
1) Определи вид тестирования: пользователю предоставлен программный код, и он может вносить
изменения при обнаружении ошибки:
a) «черный» ящик; b) «белый» ящик; c) «серый» ящик; d) юзабилити.
222
2) Определи вид тестирования: пользователю 4) Определи вид тестирования: …проводится до-
предоставлен только исполняемый файл, и он бровольцами методом «черного» ящика, кото-
не может вносить изменения при обнаружении рые участвуют в эксперименте из любопытства.
ошибки: На этой стадии проверяется работоспособность
a) «черный» ящик; c) «серый» ящик; всей работы системы. Производитель не несет
b) «белый» ящик; d) юзабилити. никакой ответственности в случае нанесения
ущерба во время тестирования:
3) Определи вид тестирования: …проводится на a) бета-тестирование; c) «серый» ящик;
поздних стадиях разработки продукта, обычно не b) альфа-тестирование; d) юзабилити.
самим разработчиком, это могут быть его коллеги
внутри организации с использованием «черно- 5) Определи вид тестирования: …предполагает
го» и «белого» ящиков. Такой вид тестирования проверку комфортной работы в разработанном
проводится для выявления ошибок, ознакомле- интерфейсе:
ния с функциональными возможностями в целях a) бета-тестирование;
улучшения качества программного обеспечения: b) альфа-тестирование;
a) бета-тестирование; c) «серый» ящик; c) «серый» ящик;
b) альфа-тестирование; d) юзабилити. d) юзабилити.
2. Установи соответствие: Х – вещественное число, принадлежащее промежутку [-5;5].
1 Ошибочные данные A -5, 5
2 Граничные данные B 2.5, -3.6
3 Допустимые данные C -90, 45
3. Определи виды тестирования для каждой группы. 1 модерируемое
1) по форме проведения; 2 немодерируемое
2) юзабилити; 3 эксплораторное
3) по целям тестирования. 4 проверочное
5 сравнительное
6 очное
7 дистанционное

4*. Составь и заполни трассировочную таблицу для вывода промежуточных значений следующего
псевдокода:
FUNCTION Factorial(n)
Factorial←n* Factorial(n-1) Начало
END FUNCTION
OUTPUT Factorial(6)
N
5*. Дана блок-схема. Реализуй ее в консольном
приложении, составь и заполни трассировочную
i=1; 10
таблицу.
Нет
A[i] K>0 Нет сов­
падений
Да
A[i] = N
К

Да
Конец
К=К+1

223
Документация
8.7
ЗАДАНИЕ 1. Айбару необходимо создать руководство для пользователя
с указанием основных инструкций по эксплуатации программного продукта.
Как создать документа- Посоветуй подходящее программное обеспечение, перечисли его функциональ-
цию для пользователя по
ные возможности.
эксплуатации програм­
много продукта?
В 9-м классе ты использовал текстовый редактор для оформления до-
кументации для менеджера, умеешь создавать оглавление, устанавливать
разрывы разделов и страниц, вставлять таблицу.
Сегодня на уроке мы продолжим знакомство с возможностями тек-
стового редактора.
Создание оглавления облегчает навигацию по документу. Для этого
можно использовать
ранее созданные заго- Дизайн Макет Ссылки Рассылки Рецензирование Вид
ловки. Удобнее всего
Линейка Одна страница
использовать боковое Сетка Несколько страниц
меню навигации, для Область навигации
Масштаб 100%
По ширине страницы
этого воспользуемся Показать Масштаб
пунктом меню «Вид».
Структура Линейка При правильном создании оглавления ты сможешь свободно пере-
Режим Разметка Веб-
чтения страницы документ
Черновик Сетка
Область навиг
двигаться по документу.
Режимы Показать
Документ легко редактировать при автоматической вставке подписей
Навигация
создаваемых объектов.
1) Вставить нужный объект: таблицы, изображения, формулы.
Поиск в документе

2) Перейти в меню Ссылки → Вставить название.


Заголовки Страницы Результаты

3) Нажать кнопку «Автоназвание».


4) Выбрать соответствующее название, при необходимости можно
использовать ползунок.
5) Далее нажать кнопку «Создать» и дать имя, соответствующее шаб­
лону.
6) С помощью кнопки «ОК» закрепить настройки и при необходи-
мости выбрать необходимую подпись.
Файл Главная Вставка Дизайн Макет Ссылки Рассылки Рецензирование Вид

Вставить
название

1 Название

Название:
Рисунок 1
Параметры
подпись: Рисунок
положение: Под выделенным объектом

Исключить подпись из названия


Создать... Удалить Нумерация...

Автоназвание... ОК Отмена

224
Автоназвание Автоназвание 4 Таблица 1
Добавлять название при вставке объекта: Добавлять название при вставке объекта:
1 3
Bitmap Image Bitmap Image
Microsoft Equation 3.0 Microsoft Equation 3.0 2 4
Package Package
Package Package Новое название
System Monitor Control System Monitor Control
Windows Media Player Windows Media PlayerНазвание: 5 Рисунок 1
WizCombo Class WizCombo Class
WordPad Document WordPad Document

Параметры Параметры ОК Отмена


подпись: Рис. подпись: Рис.

положение: Над объектом положение: Над объектом

–b ± √ b2 – 4ac
Создать... Нумерация... Создать... Нумерация...
6
x=
ОК Отмена ОК Отмена 2a
2 3
Формула 1
Для вставки ссылки на любой автоматически подпи- Перекрестные ссылки
санный объект воспользуемся пунктом меню: Вставка → Тип ссылки: Вставить ссылку на:
Ссылки → Перекрестная ссылка. Далее в окне выполнить Рисунок
Сноска
Название целиком

настройки.
Добавить слово «выше» или «ниже»
Концевая сноска
Рис.
Рисунок
Таблица
Формула
Ссылки Рассылки Рецензирование Вид Что вы хотите сделать?
Управление источниками Список иллюстраций
Стиль: АРА Обновить таблицу
Вставить Вставить Пометить
ссылку Список литературы название Перекрестная ссылка элемент
Ссылки и списки литературы Названия

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


Вставить Отмена

зование колонтитулов, содержащих дополнительную ин-


формацию об авторе или о содержимом, также возможна
нумерация страниц. Обычно возникают проблемы с нуме- Особый колонтитул для первой страницы
рацией первой страницы или пропуска нескольких. При Разные колонтитулы для четных и нечетных страниц
использовании пункта «Нумерация страниц» стоит обратить Показать текст документа
внимание на следующие настройки.
При оформлении текста стоит обратить внимание на наборы стилей.
Ты мог применять шаблон стилей при подготовке презентаций в Microsoft
PowerPoint. В текстовом редакторе Micrisift Word имеется аналогичная
функция: Главная→ Стили, наборы стилей расположены во вкладке Ди-
зайн.
Очень часто возникает необходимость использования сносок для ком-
ментария непонятных терминов или ссылок на автора или интернет-ре-
сурс: Ссылки → Вставить сноску, далее продолжить набор содержимого
сноски.
При наборе текста бывает необходимость контроля количества слов/
символов, страниц. Это можно сделать с помощью строки состояния внизу
текстового редактора нажатием правой кнопки мыши на одной из запи-
сей. В появившемся контекстном меню выбираются необходимые пункты,
например, количество символов, раздел и т.д.
К грамотному оформлению документа относится умение пользоваться
тезаурусом – словарем синонимов. Его использование добавит разнообра-
зие в твой текст. Воспользуемся вкладкой Рецензирование →Тезаурус, или,
вызвав на слове контекстное меню, выбрать пункт синонимы →Тезаурус.
225
Вырезать
Копировать
Файл Главная Вставка Дизайн Макет Ссылки Рассылки Рецензирование Вид
Параметры вставки:

Правописание Тезаурус Статистика Интеллектуальный Перевод Язык Создать Шрифт...


поиск примечание
Абзац...
Правописание Подробные сведения Язык
Интеллектуальный поиск
Синонимы (нет вариантов)
Рассмотрим возможность примене- Перевод Тезаурус...
ния колонок. Чтобы напечатать текст в Гиперссылка...

две и более колонки, необходимо вос- Создать примечание

пользоваться: Макет → Колонки → Дру-


гие колонки. Далее выбрать количество колонок и при необходимости
установить разделитель. Для перехода к следующей колонке используем
сочетание клавиш: CTRL+SHIFT+Enter. Перед настройкой параметров и
после окончания работы необходимо выполнить разрыв разделов.
Файл Главная Вставка Дизайн Макет Колонны
Разрывы Тип
Файл Главная Вставка Дизайн Макет Ссылк Поля Ориентация Размер Колонки
Номера строк
Расстановка пе
Разрывы Одна Две Три Слева Справа
Одна Разделитель
Число столбцов: 3
Номера строк
Поля Ориентация Размер Колонки Ширина и промежуток Образец
Две
Расстановка переносов номер: ширина: промежуток:
1: 4,67 см 1,25 см
Параметры страницы Три 2 4,67 см 1,25 см
3: 4,67 см
Слева столбцы одинаковой ширины

Применить: ко всему документу Новый столбец


Справа
ОК Отмена
Другие столбцы...

«Черные пятна» Стали люди сильные, как боги, Мы давно освоили планету.
Океан седой гремит набатно. И судьба Земли у них в руках. Широко шагает новый век.
Он таит обиду в глубине, Но темнеют страшные ожоги На Земле уж белых пятен нету,
Черные раскачивая пятна, У земного шара на боках. Черные сотрешь ли, человек?
На крутой разгневанной волне.
А. Плотников

Поиск Добавит изящества в документ исполь-


Рецензирование Вид Справка Acrobat Формат фигуры зование надписей WordArt и буквицы:
Заливка текста Направление текста Вставка → Текст → WordArt. Сначала не-
Контур текста Выровнять текст
Замещающий обходимо выбрать подходящую фигуру,
а затем во вкладке «Формат» можно вы-
Текстовые эффекты Создать связь текст

полнить форматирование.
Специальные возможности
Тень

Отражение

Подсветка

Рельеф Без преобразования

Поворот объемной фигуры abcde

Преобразовать Траектория движения

226
Справа от пункта WordArt ты сможешь увидеть вставку буквицы.
Пример применения буквицы: Строка подписи
Дата и время

Е
Ескендір Буквица
Объект
желгі Македония жерінде Ескендір деген патша болыпты. Ескендір
таққа отырысымен-ақ маңайындағы көрші мемлекеттерді жаулап Нет
алуды ойлайды. Әр жасаған шабуылы сәтті болған сайын, дүние жүзін В тексте
бағындырғысы келеді.
Күндердің бір күні Ескендір әскерімен шөл далаға тап болады, бір тамшы На поле
су да таба алмайды. Бір уақытта Ескендір бір сәулені көріп қалып, жанына
Параметры буквицы...
барады. Мөлдір бұлақты көргенде ол өз көзіне өзі сенбей, бірден әскерін ертіп,
шөлдерін қандыруға шақырады.
Ескендір тәтті суға тойған соң: «ғажап,мына жердің суында ерекше тәтті
дәм бар екен, демек бұл жердің өзі де қасиетті болмақ! Қайтсем де бұл жер
менікі болуы керек» – деп ойлайды...
Абай Құнанбайұлы

ЗАДАНИЕ 2. Найди алгоритм вставки формул в текстовый документ в Интер-


нете и подготовь дидактический материал демонстрации решения квадратного
уравнения.

ЗАДАНИЕ 3. Скачай небольшой текст из Интернета и скопируй его в текстовый


документ, включи просмотр непечатных символов ¶. Выполни замену мягких
переносов на жесткие. Для этого следуй инструкции:
1) выдели фрагмент текста;
2) нажми сочетание клавиш: Ctrl+F;
3) нажми на треугольник в углу поля ввода;
4) нажми на кнопку «Больше»;
5) установи поочередно курсор в поля «Найти»/ «Заменить на», нажми на тре­
угольник кнопки «Специальный» → в первом случае выбери «Мягкий перенос»,
во втором – «Разрыв строки».

ЗАДАНИЕ 4. Используй полученные на уроке знания при подготовке доку-


ментации собственного проекта.

ВОПРОСЫ И ЗАДАНИЯ
1. Пройди тест.
1) Для определения области навигации заранее необходимо задать:
a) колонки; b) абзацы; c) заголовки; d) буквицы.
2) Скриншот соответствует установке:
Тип

Одна Две Три Слева Справа

a) колонки; b) абзацы; c) заголовки; d) буквицы.

227
3) WordArt предназначен для:
a) добавления формулы;
b) добавления рисунка;
c) добавления фигурного текста;
d) добавления колонок.
4) Тезаурус – это:
a) словарь иностранных слов;
b) словарь синонимов;
c) словарь антонимов;
d) сноски.
5) Для установки буквицы необходимо выбрать раздел в пункте меню «Вставка»:
a) иллюстрации;
b) ссылки;
c) колонтитулы;
d) текст.
2. Установи соответствие между скриншотами и их назначениями.

1 Колонки A

1
2 WordArt B ⋅ x3 − 4 ⋅ x2
2
3 Буквица C

4 Формула D

3. Выбери два верных ответа: В группе «Текст» пункта меню «Вставка» расположены:
a) SmartArt;
b) WordArt;
c) символ;
d) буквица.
4*. Определи правильный порядок действий в предложенном алгоритме автоматической вставки
подписей.
1) Нажать кнопку «Автоназвание».
2) Перейти в меню Ссылки → Вставить название.
3) Вставить нужный объект: таблицы, изображения, формулы.
4) Далее нажать кнопку «Создать» и дать имя, соответствующее шаблону.
5) Выбрать соответствующее название, при необходимости можно использовать ползунок.
6) С помощью кнопки «ОК» закрепить настройки и при необходимости выбрать необходимую
подпись.
5*. Раздели текст «Ескендір» равномерно на три колонки в соответствии с определенными абзацами,
при этом заголовок не должен быть в колонках.

228
Ограничение доступа в систему
8.8
ЗАДАНИЕ 1. Айбару необходимо ограничить доступ к разработанному про-
граммному продукту. Посоветуй методы защиты информации, которые ты при-
менял ранее. Как защитить проект от
несанкционированного
Защита информации от несанкционированного доступа является таким доступа?
же важным этапом, как и разработка самого программного продукта. Ты
знаешь, что использование надежного пароля является одним из методов
ограничения доступа к данным.
Напомним, как можно установить пароль на текстовый документ или
электронную таблицу:
1) Файл → Сведения → Защита документа → Зашифровать с использо-
ванием пароля.

Сведения Сведения Шифрование документа


Создать
Защита документа Шифрование содержимого этого файла
Ограничить ре...
Открыть
Защита
Все могут открывать,
копировать и изменять Пароль: 1. Ограничения на
Сохранить документа форматирование
Пометить как окончательный
Сохранить как Пометка документа как окончательного и Внимание! Забытый пароль восстановить
нередактируемого невозможно. Список паролей рекомендуется
Печать хранить в надежном месте. Настройки...
Зашифровать с использованием пароля
Защита документа паролем Следует также помнить, что при вводе пароля
Общий доступ
учитывается регистр букв. 2. Ограничения на
Экспорт Ограничить редактирование редактирование
Управление типами изменений, которые
разрешено вносить пользователям ОК Отмена
Закрыть
Добавить цифровую подпись
Обеспечение целостности документа путем
добавления невидимой цифровой подписи
Учетная запись

Также возможна защита архивированных файлов. Этот способ наибо-


лее простой и удобный для защиты резервной копии проекта. 3. Включение защиты
Для этого следуем инструкции:
1) Выбрать необходимые файлы и вызвать контекстное меню.
2) Выбрать из списка пункт «Добавить в архив…».
3) Нажать кнопку: «Установить пароль».
4) Необходимо дважды набрать пароль и подтвердить нажатием
кнопки «ОК».
Открыть Имя и параметры архива Ввод пароля
Открыть в новом окне
Общие Дополнительно Опции Файлы Резервные копии Время Комментарий
Открыть в Visual Studio Архивация с паролем
Имя архива: Обзор...
Общий доступ
opera autoupdate.rar
Восстановить прежнюю версию
Профиль по умолчанию Метод обновления: Введите пароль:
Добавить в библиотеку
Профили... Добавить с заменой файлов
Добавить в архив...
Добавить в архив "opera autoupdate.rar" Формат архива: Параметры архивации Введите пароль еще раз (для проверки):
RAR RAR4 ZIP Удалить файлы после архивации
Добавить в архив и отправить по e-mail...
Создать самораспаковывающийся архив
Добавить в архив "opera autoupdate.rar" и отправить по e-mail Метод сжатия: Создать непрерывный архив
Отображать пароль пр вводе
Обычный Добавить данные для восстановления
Отправить Шифровать имена файлов
Размер словаря: Протестировать файлы после архивации
Вырезать Заблокировать архив
32 МБ
Копировать
Разделить на тома размером:
Создать ярлык МБ Установить пароль... Упорядочить пароли...
Удалить
Переименовать ОК Отмена Справка
ОК Отмена Справка
Свойства

229
В проектной деятельности часто используют базу данных, поэтому
очень важно уметь защищать ее от просмотра и редактирования. Для
ограничения входа в базу данных необходимо выполнить следующие
действия:
1) Открыть базу данных MS Access монопольно, для этого выбрать
Файл → Открыть → Кнопка Открыть (режим – Монопольно).
2) Файл → Сведения → Зашифровать с использованием пароля.
3) В окне Задание пароля базы данных задать пароль.
Открытие файла базы данных

Сведения Сведения
Создать
Students
Открыть

Сохранить Сжать и восстановить


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

Закрыть Зашифровать с использованием пароля


Использование пароля для ограничения к базе данных.
Зашифровать с Файлы в формате Microsoft Access 2007 и более поздних
Учетная использованием пароля версий будут зашифрованы.
запись

Задание пароля базы данных

Пароль
Имя файла: Students Microsoft Access ***
Сервис
Подтверждение
Открыть Отмена

Открыть
Открыть для чтения ***
Монопольно
Монопольно для чтения
Показать предыдущие версии ОК Отмена

4) Для снятия пароля необходимо заново войти в режим «Монополь-


но».
5) Файл → Сведения → Расшифровать базу данных.
Для защиты файла формата PDF (кроссплатформенный формат, со-
держащий текст, отсканированные рисунки и т.д.) необходимо загрузить
бесплатную программу pdf24 и выполнить следующий алгоритм:
1) Выбрать PDF конструктор (PDF Creator).
2) Выбрать файл, который надо конвертировать в PDF формат или
защитить от копирования.
3) Нажать на значок дискеты (в правом верхнем углу).
4) Из вариантов сохранения выбрать «Настраиваемый».
5) Выбрать пункт «Безопасность».
PDF24 Launcher
6) Для защиты файла от копирования до-
статочно выбрать пункт «Использовать безо-
PDF Creator Файловые Сжать PDF-файлы пасные настройки» и задать пароль.
7) Для защиты файла от просмотра и
инструменты

PDF Reader Помощник Онлайн


копирования дополнительно выбрать «Тре-
PDF-принтера PDF-инструменты
бовать пароль для открытия» и указать пароль.
Конвертировать Факс PDF24 Отправить
PDF онлайн факсом

Импорт из сканера Снимок экрана Распознать текст


или камеры

230
Свойства формата Свойства формата
PDF PDF – Portable Document Format PDF PDF – Portable Document Format
Основное Основное
Инфо Инфо
Безопасность Основное Безопасность
Безопасность
Разрешение Разрешение
Сжатие Качество PDF Хорошее Сжатие Использовать
Водяные знаки Водяные знаки безопасные настройки
Номера страниц PDF стандарт PDF 1.7 Номера страниц
Бумага Бумага Пароль для шифрования
Наложение Автоматический Ни одного Наложение
Вложение Глубина шифрования 256 Бит
поворот страницы Вложение
Подпись (ЭЦП) Подпись (ЭЦП) Разрешения
Цветовая модель RGB Печатать
Обрезать Обрезать Редактировать
PDF/Х PDF/Х Реструктурировать
PDF/А Преобразование цвета Ни одного PDF/А Копировать текст и изображения
PS Оптимизировано для PS Заполнять формы
web Добавлять и изменять комментарии
EPS EPS
Сохранить аннотации Требовать пароль для
PCL PCL открытия
PNG PNG Пароль для открытия
JPEG Инфо JPEG
BMP BMP
PCX Список источников PCX
TIFF Автор TIFF
PSD Заголовок PSD
TXT TXT
Все страницы Страница по Продолжить Все страницы Страница по Продолжить
Профили: Хорошее Новый Отмена Профили: Хорошее Новый Отмена

Необходимо защитить приложение, созданное в ООП. Рассмотрим


случай, когда пользователь должен ввести кодовое слово. При верном
вводе произойдет переход на стартовую страницу приложения, в про-
тивном случае на экран будет выведено сообщение о неверном вводе и
приложение закроется.
Мы используем две формы, на которых будут расположены: Form1,
Button1, PictureBox1; Form2, Label1, PictureBox1. Для форм лучше опреде-
лить значение свойства StartPosition=CenterScreen, тогда при старте обе
формы будут отражаться по центру экрана.

Защита данных Приложение

Неверный ввод данных! Узнайте кодовое слово у разработчика


Добро пожаловать! и повторите ввод.

ОК

Старт

Код программы на С#:

namespace WindowsFormsApplication6
{
public partial class Form1 : Form
{
string k=»students»;
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
//string ss = (textBox1.Text).ToUpper();
string ss = (textBox1.Text).ToLower();

231
if (ss == k)
{
Hide();
Form2 Приложение = new Form2();
Приложение.ShowDialog();
Close();
}
else
{
MessageBox.Show("Неверный ввод данных! Узнайте ко-
довое слово у разработчика и повторите ввод.");
// Close();

}
}
}
}

ЗАДАНИЕ 2. Защити собственную базу данных паролем.

ЗАДАНИЕ 3. Конвертируй документацию для пользователей по эксплуатации


программного продукта в PDF формат и защити файл паролем.

ЗАДАНИЕ 4. Найди в Интернете информацию, как снять защиту с PDF-файла.

ЗАДАНИЕ 5. Создай архив, состоящий из 4-5 файлов, и установи пароль.

ЗАДАНИЕ 6. Примени предложенные на уроке методы защиты данных для


защиты собственного проекта.

ВОПРОСЫ И ЗАДАНИЯ
1. Выполни тест.
1) Определи форматы файлов, для которых 2) Определи форматы файлов, для которых
можно установить пароль: можно установить пароль:
Ввод пароля
Шифрование документа
Архивация с паролем
Шифрование содержимого этого файла
Пароль:
Введите пароль:

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

ОК Отмена
Упорядочить пароли...

a) DOCX; b) RAR; c) TXT; d) PDF. ОК Отмена Справка

a) DOCX; b) RAR; c) TXT; d) PDF.

232
3) Определи форматы файлов, для которых можно уста- 5) Определи форматы файлов, для
новить пароль: которых можно установить пароль:
Защита данных
Задание пароля базы данных

Пароль
***
Подтверждение
***

ОК Отмена

a) DOCX; b) RAR; c) TXT; d) PDF.


4) Определи форматы файлов, для которых можно уста- Старт
новить пароль:
a) DOCX;
Свойства формата

PDF PDF – Portable Document Format

b) RAR;
Основное
Инфо Безопасность
Безопасность

c) TXT;
Разрешение
Сжатие Использовать
Водяные знаки безопасные настройки
Номера страниц
Бумага
Наложение
Пароль для шифрования
d) PDF.
Глубина шифрования 256 Бит
Вложение
Подпись (ЭЦП) Разрешения Печатать
Обрезать Редактировать
PDF/Х Реструктурировать
PDF/А Копировать текст и изображения
Заполнять формы
PS Добавлять и изменять комментарии
EPS
Требовать пароль для
PCL открытия
PNG Пароль для открытия
JPEG
BMP
PCX
TIFF
PSD
TXT
Все страницы Страница по Продолжить
Профили: Хорошее Новый Отмена

a) DOCX; b) RAR; c) TXT; d) PDF.


2. Установи соответствие.
1 DOCX A архивный файл
2 RAR B кроссплатформенный формат
3 ACCDB C текстовый файл Microsoft Office
4 PDF D файл MS Access

3. Определи истинность высказывания: «Архивные файлы уменьшают риск заражения файлов


вирусами».
4*. Определи верный порядок действий в алгоритме шифрования документа паролем:
a) защита документа;
b) файл;
c) зашифровать с использованием пароля;
d) сведения.
5*. Определи способы хранения паролей десяти пользователей.

233
Подводим итоги

1. Пройди тест.
1) Определи тип данных: Math.sqrt(25)+pow(2.3,2):
a) int; b) float; c) bool; d) string.
2) Определи тип выходных данных:

int[] Q = new int[6] {12, 5, 8, 23, 45,6};


int m= Q.Length;
label1.Text = "Кол-во эл-тов " + Convert.ToString(m)+"\n";
for (int i = 0; i <= m - 1; i++)
{
label1.Text = label1.Text + " " + Convert.ToString(Round(Q[i]));

}

a) int; b) float; c) bool; d) string.
3) Определи метод сохранения файла:
a) OpenFileDialog;
b) LoadFile;
c) SaveFileDialog;
d) SaveFile.
4) Определи назначение объекта OleDbCommand:
a) выполняет запрос БД;
b) добавляет новые записи в таблицу БД;
c) осуществляет чтение табличного результата запроса Select;
d) удаляет записи в таблице БД.
5) Определи метод сохранения файла:
a) OpenFileDialog;
b) SaveFileDialog;
c) LoadFile;
d) SaveFile.

2. Установи соответствие.
1 PictureBox A Диалоговое окно
2 OpenFileDialog B Image.FromFile(@"1/" + Convert.ToString(k) + ".jpg");
3 OleDbDataReader C Объект для загрузки изображения
4 PictureBox1.Image D Чтение результата запроса SELECT

3. Определи истинность высказывания: «Запрос выводит предметы и оценки, соответствующие ученице


по фамилии Исина».
string query = "SELECT Subjects.Subject, Subjects.Mark
FROM Students, Subjects Where Students.Fam=’Исина’ Схема данных

AND Subjects.ID_Sub=’"+ID_Sub+"’";
Предметы Ученики
Предмет_ID ИИН
4. Определи первичные и внешние ключи БД. Объясни, почему Предмет Фамилия
Имя
между таблицами БД определено отношение «Один ко многим». Предмет_ID
Дата рождения

234
5. Алгоритм представлен в виде блок-схемы.
Заполни трассировочную таблицу. N

i A[i] S Результат
i=1; 10
1 -2 -
2 -3
A[i] S
3 2
4 3
5 4 A[i] четное
6 16 и отрица­
тельное
7 -8
8 -7 Да
9 7
10 13 S=S+A[i]

6. Определи наиболее эффективный программный код, обоснуй свой ответ.

S=0; S=0; S=0;


for (int i=1; i<=n;i++) for (int i=1; i<=n;i++) for (int i=1; i<=n;i++)
S=S+ i*10+b*10; S=S+ (i+b)*10; S=S+ (i+b);
S=S*10;

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

args.Graphics.RotateTransform(i * 360f / 10);

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


if (k < 3)
k++;
else k = 1;
this.Text = Convert.ToString(k);
string pathFile = Application.StartupPath + @"/1/" + Convert.ToString(k) + ".jpg";

9. Изучи таблицу и определи количество записей и полей.

10. Заполни пропуск в PHP коде.

$dbconnect = ____________ ("localhost", "имя БД", "пароль БД");

235
Глоссарий

1 петафлопс – 1015 операций в HTML-атрибуты передают Активный слой – тонкий слой


секунду (1 000 000 000 000 000, браузеру настройки элементов органического красителя,
один квадриллион). страницы. Атрибуты позволяют который под действием высокой
применить разные стили и температуры лазера образует
CMS (англ. Content Management темные непрозрачные области,
System) – система управления эффекты к веб-странице с
которые при считывании
контентом, компьютерная помощью одних и тех же тегов.
интерпретируются, как нули.
программа или программный MAC-адрес – уникальный адрес А области, не подвергшиеся
комплекс управления сайтом. сетевой карты устройства. воздействию лазера,
соответствуют единице. У
CSS (Cascading Style Sheets) – NAND – тип флэш-памяти, перезаписываемых оптических
каскадные таблицы стилей, который основан на работе дисков, а также Blu-ray дисков
предназначенные для установки логического элемента NOT AND активный слой выполнен из
индивидуальных цветов, фона,
и хранит свое состояние зарядки, специального сплава.
окантовки и прочих свойств.
даже если она не включена, Актуальность – зависимость
DRAM (англ. dynamic что делает NAND типом информации от скорости
random access memory – энергонезависимой памяти. изменения ситуации и времени с
динамическая память с момента ее получения.
SRAM – статическое
произвольным доступом) –
запоминающее устройство Анимация – быстрая
тип компьютерной памяти,
памяти, которое сохраняет биты смена последовательности
отличающийся использованием
данных в своей памяти до тех изображений, которая создает
полупроводниковых материалов, иллюзию движения.
энергозависимостью и пор, пока подается питание.
возможностью доступа к данным, Анкетирование – метод опроса,
SSD (Solid State Drive) –
хранящимся в произвольных используемый для составления
компьютерное энергонезави­
ячейках памяти. развернутых вопросов и
симое немеханическое получения более полной
Ethernet (англ. от ether – «эфир» запоминающее устройство на информации.
и network – «сеть») – технология, основе микросхем памяти.
Аутентификация – процедура
которая используется в
WAP – устройство, которое проверки подлинности
проводных локальных сетях. пользователя, процесса или
создает беспроводную
Первоначальный принцип устройства. Механизм сравнения
локальную сеть обычно в
работы этой технологии – все, входящего запроса с набором
офисе или большом здании.
передаваемое одним узлом, имеющихся учетных данных.
Точка доступа подключается к
одновременно принимается
проводному устройству через Блог – сайт, на котором
всеми остальными.
кабель Ethernet и передает сигнал публикуют авторские материалы
FLOPS (от англ. Floating Wi-Fi в назначенную область. и систематически добавляются
point Operations Per Second) записи на определенную тему.
– внесистемная единица, WYSIWYG ("wiz-ee-wig",
англ. What You See Is hat You Блочная верстка веб-страницы
показывающая, сколько используется для применения
операций с плавающей Get) – программа-редактор,
различных стилей к отдельным
запятой в секунду выполняет позволяющая разработчику фрагментам веб-страницы.
суперкомпьютер. увидеть конечный результат.
Веб-сайт – местоположение в
HTML (HyperText Markup Авторизация – предоставление Интернете, состоящее из одной
Language) – язык разметки определенных прав для или нескольких веб-страниц,
(маркировки) гипертекста. пользователя. доступных по одному адресу.
236
Динамический бокс, Искусственный интеллект – Номер элемента в массиве
или меняющийся бокс – область науки, занимающаяся называется индексом.
содержимое его изменяется, созданием машин и
Опрос – сбор мнений людей
когда пользователь наводит компьютерных программ,
относительно интересующей
мышкой на бокс. обладающих интеллектом. Она
области, сервиса или товара,
связана с задачей использования
Доменное имя, или домен – выявление их предпочтений.
компьютеров для понимания
имя сайта в сети Интернет, Оптимизация кода – различные
человеческого интеллекта.
которое пользователь вводит методы преобразования кода для
в адресной строке браузера для Кибербезопасность – меры улучшения его характеристик и
перехода на сайт. защиты систем, сетей и повышения эффективности.
программных приложений от
Достаточность – минимальный цифровых атак. Пакетная коммутация –
набор свойств, характерных обеспечивает доставку пакетов
данному объекту или процессу, Кластер – логическая единица данных между устройствами
необходимый для решения жесткого диска, минимальный через сеть.
поставленной задачи. блок, выделяемый для записи
файла. Перфокарта – карта стандартной
Жесткий диск (HDD) – формы для записи электронной
устройство хранения данных, Компьютерная система – информации при помощи
использует одну или несколько система, которая включает в себя кодового расположения
жестких, быстро вращающихся все аппаратное и программное отверстий.
обеспечение для выполнения
пластин, покрытых магнитным Плагин – программный
задач пользователей.
материалом. компонент, или модуль, который
Логический диск (раздел) – добавляет определенную
Идентификация – процесс
область хранения информации функцию к существующей
распознавания или установления
на жестком диске, обозначаемая компьютерной программе и
личности по его идентификатору
латинскими буквами. предназначен для расширения ее
(ID).
Локальная сеть возможностей.
Изучение документации –
(Local Area Network, сокр. LAN) – Полоски – части страницы,
получение достоверной
компьютерная сеть, которая которые необходимы для
информации о текущем
соединяет компьютеры на оформления дизайна страницы.
состоянии объекта или процесса небольших расстояниях.
исследования. Провайдер – компания,
Массив – группа переменных которая предоставляет доступ
Изучение литературы, прессы – одного типа, имеющих общее к информационным сетевым
получение известных ранее имя и расположенных в ячейках службам.
фактов об исследуемом объекте памяти рядом. Каждая ячейка
или процессе. с переменной имеет индекс – Протокол IP – интернет-
протокол, или протокол
Иконка сайта – значок, который порядковый номер.
маршрутизации (определяет в
отображается на вкладке Мост – устройство сети для передаваемых данных адрес и
браузера. соединения двух отдельных сетей содержимое).
Интервью – диалог между двумя LAN в единую сеть.
Протокол ТСР – протокол
и более людьми, в ходе которого Наблюдение – изучение управления передачей данных
интервьюер получает наиболее поведения объектов или (обеспечивает и контролирует
полные ответы на свои вопросы, процессов в привычных для них надежную передачу информации
возможно использование условиях без вмешательства по сети).
уточняющих вопросов. наблюдателя.
Прототип сайта – схематическое
Интерфейс подключения Надежность – информация, представление его страниц
SSD-носителя – способ полученная из официальных в структурированном виде.
соединения между носителем и источников, документов, актов, В зависимости от ситуации
контроллером. законов и др. моделирования возможна
237
частичная или полная имитация Теги аналогичны операторам Экспертная система –
работы интерактивных в языках программирования и программа для компьютера,
элементов. различают открывающиеся и которая оперирует знаниями
закрывающиеся теги. Отличие в определенной предметной
Размер массива – количество в том, что закрывающиеся теги области с целью выработки
элементов в массиве. имеют «/». Также теги делятся на рекомендаций или решения
парные и непарные. проблем.
Релевантность – соответствие
информации потребностям Технология ADO (ActiveXData Язык ассемблера – язык,
Objects) – набор объектов, при в котором двоичные и
пользователя при решении
помощи которых программист
поставленной задачи. шестнадцатеричные коды
может осуществить подключение
стали заменяться буквенными
Своевременность – обеспечение к серверу баз данных, выборку
обозначениями, которые
доступа к информации не данных или их модификацию.
называются мнемоники.
позднее момента решения Точность – степень близости Программа из языка ассемблера
задачи. имеющейся информации к переводилась в машинный
реальному состоянию объекта код при помощи программы-
Сектор – участок дорожки, или процесса. транслятора, которая называется
хранящий минимальное
Трассировка – метод пошагового ассемблер (данная программа
количество информации, дала название языку).
выполнения программы с
которое может быть считано или отслеживанием значений всех
записано на него. Язык высокого уровня –
переменных.
программирование с
Сетевая карта – устройство, Форматирование диска – использованием команд,
которое устанавливается процесс, во время которого понятных человеку, где команды
на материнской плате и происходит разметка устройства не зависят от внутренних
обеспечивает подключение к хранения данных (жесткий диск, машинных кодов компьютера
твердотельный накопитель и др.). любого типа.
сети.
Хостинг – компания, которая Язык низкого уровня –
Сетевой коммутатор – размещает сайт на веб-сервере и программирование с помощью
устройство предназначено для делает его доступным для других двоичных машинных кодов.
соединения нескольких узлов пользователей сети Интернет.
К языкам низкого уровня
компьютерной сети в пределах Шаблон – форма, которая относятся: программирование
сети или нескольких частей используется в качестве в машинных кодах, ассемблер,
(сегментов) сети. руководства для создания сайта. макроассемблер.
Шаблон контролирует общий вид
Система управления базами Язык программирования –
и макет сайта. Он обеспечивает
данных (СУБД) – комплекс структуру, которая объединяет формальный язык,
программных средств, общие элементы, модули и стили. предназначенный для записи
необходимых для создания компьютерных программ.
Эксперимент – изучение
структуры новой базы, ее Якорь, или якорная ссылка –
поведения объектов или
наполнения, редактирования процессов в специально невидимая метка на странице
содержимого и отображения созданных условиях с активным сайта, указатель для навигации на
информации. участием наблюдателя. сайте.
Содержание
1. ПАМЯТЬ . .............................................................5 5.4 Использование массива для
1.1 Цифровые носители информации....................... 6 оптимизации кода................................................... 121
1.2 Принцип работы жесткого магнитного диска.... 9 5.5 Обработка элементов одномерного
1.3 Принцип работы твердотельного и массива. Сумма элементов массива............... 124
оптического дисков...................................................13 5.6 Обработка элементов одномерного
массива. Поиск элементов.................................. 128
1.4 Виды оперативной памяти.....................................16
5.7 Обработка элементов одномерного
1.5 Виды оперативной памяти.....................................19
массива. Поиск максимального
Подводим итоги......................................................................22
и минимального элемента................................... 131
5.8 Обработка элементов одномерного
2. СЕТЬ И БЕЗОПАСНОСТЬ ............................... 25
массива. Максимальный и минимальный
2.1 Управление кибербезопасностью......................26 элемент.......................................................................... 134
2.2 Компьютерные системы..........................................29 5.9 Трассировка массива............................................. 136
2.3 Принцип организации локальной сети...........31 Подводим итоги................................................................... 140
2.4 Принцип организации локальной сети...........33
2.5 Компоненты локальной сети.................................35 6. БАЗЫ ДАННЫХ В ООП (C#)........................ 143
2.6 Устройства сети............................................................38 6.1 Подключение базы данных
2.7 Принцип пакетной обработки.............................42 к приложению ООП................................................ 144
2.8 Протоколы TCP/IP . ....................................................45 6.2 Работа с записями в базе данных.................... 151
Подводим итоги......................................................................49 6.3 Извлечение информации из базы
данных ......................................................................... 156
3. СОЗДАНИЕ САЙТА ........................................ 51 6.4 Извлечение информации из базы данных... 161
3.1 Инструменты разработки веб-сайтов...............52 6.5 Разработка приложения с
3.2 Разработка веб-сайта в CMS.................................55 использованием базы данных в ООП............ 167
3.3 Разработка веб-сайта в WYSIWYG .....................59 Подводим итоги................................................................... 173
3.4 Внедрение мультимедиа на веб-сайт...............62
7. ПРОЕКТИРОВАНИЕ...................................... 175
3.5 Внедрение анимации на веб-сайт......................65
7.1 Методы сбора и характеристики
Подводим итоги......................................................................67
качества информации........................................... 176
4. HTML.................................................................. 69 7.2 Подготовка к проекту............................................ 179
7.3 Моделирование........................................................ 182
4.1 Структура HTML-документа. Основные теги
7.4 Алгоритмизация....................................................... 185
форматирования текста в HTML..........................70
7.5 Логические операции в ООП............................. 188
4.2 Структурирование информации в HTML........74
Подводим итоги................................................................... 193
4.3 Применение CSS при разработке
веб-сайтов......................................................................79
8. РАЗРАБОТКА ПРОЕКТА . ............................. 195
4.4 Блочная верстка веб-страницы...........................85
8.1 Работа с файлами..................................................... 196
4.5 Внедрение мультимедиа
средствами HTML........................................................91 8.2 Использование базы данных в проекте....... 200
4.6 Использование гиперссылок на 8.3 Использование базы данных в проекте....... 205
веб-сайте.........................................................................96 8.4 Создание простой анимации
средствами ООП....................................................... 211
4.7 Разработка веб-сайта. Фреймы......................... 100
8.5 Оптимизация кода................................................... 216
Подводим итоги................................................................... 104
8.6 Тестирование............................................................. 220
5. МАССИВЫ (C#) . ............................................ 107 8.7 Документация............................................................ 224
5.1 Языки программирования................................... 108 8.8 Ограничение доступа в систему....................... 229
Подводим итоги................................................................... 234
5.2 Выбор ПО для проектной деятельности....... 112
5.3 Структуры данных. Массивы ............................. 117 ГЛОССАРИЙ.......................................................... 236
239
Учебное издание

Адекенова Айгуль Науканбаевна


Ермекова Айнагуль Амангельдиновна
Пряничникова Юлия Сергеевна

Информатика

Учебник для 10 класса


Назарбаев Интеллектуальных школ

(пробная версия)

Методист Е.А. Вьюшкова


Редактор Ж.А. Дюсенова
Художники А.Б. Тажмиев, А. Менжанкызы
Технический редактор С. Жапарова
Корректор Т.В. Величко
Дизайнер-верстальщик Б.К. Бегалина

ИБ №1113-А

Подписано в печать 21.09.2021 г.


Формат 84х108/16. Бумага офсетная.
Гарнитура «Hypatia Sans Pro». Печать офсетная.
Усл.-печ. л. 25,2. Усл. кр.-отт. 100,8. Уч.-изд. л. 11,0. Тираж 214 экз. Заказ №___

010000, г. Нур-Султан, ул. Хусейн бен Талал, здание 21/1,


АОО «Назарбаев Интеллектуальные школы»

По вопросам приобретения и доставки обращаться по телефонам:


+7 (7172) 235-235; +7 701 0235 235,
или в интернет-магазин: store@nis.edu.kz, @NIS_OQÝLYQ, NISoqýlyq

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