Учебник Информатика 11 класс Пупцев

На сайте Учебник-Школа.ком ученик найдет электронные учебники ФГОС и рабочие тетради в формате pdf (пдф). Данные книги можно бесплатно скачать для ознакомления, а также читать онлайн с компьютера или планшета (смартфона, телефона).
Учебник Информатика 11 класс Пупцев - 2014-2015-2016-2017 год:


Читать онлайн (cкачать в формате PDF) - Щелкни!
<Вернуться> | <Пояснение: Как скачать?>

Текст из книги:
Учебное пособие для 11 класса общеобразовательных учреждений с белорусским и русским языками обучения с 12-летним сроком обучения (базовый и повышенный уровни) Допущено Министерством образования Республики Беларусь 2-е издание, дополненное Минск «Народная асвета» 2008 УДК 004(075.3=161.1) ББК 32.81я721 И74 Авторы: А. Е. Пупцев — главы 1,2,4, 6, Н. П. Макарова — главы 2, 3, Г. А. Заборовский — глава 5, А. А. Черняк — глава 5 Рецензенты: кафедра прикладной математики и информатики Белорусского государственного педагогического университета им. Максима Танка (зав. кафедрой, канд. физ.-мат. наук, доцент А. А. Бейда), кафедра экономической информатики Белорусского государственного аграрного технического университета (зав. кафедрой, канд. пед. наук, доцент О.Л. Сапун), учитель информатики высшей категории СШ № 209 г. Минска Л. И. Мосткова Информатика : учеб., пособие для 11 -го кл. общеобразоват. учреж-И74 дений с белорус, и рус. яз. обучения с 12-летним сроком обучения (базовый и повышенный уровни) / А. Е. Пупцев [и др.]. — 2-е изд., дополненное. — Минск : Нар. асвета, 2008. — 223 с.: ил. ISBN 978-985-12-1998-4. УДК 004(075.3=161.1) ББК 32.81я721 ISBN 978-985-12-1998-4 © Оформление. УП « Народная асвета », 2008 От авторов Уважаемый старшеклассник! В этом году Вы продолжите углублять свои знания в области информационных технологий, начнете осваивать основы программирования. Данное пособие содержит материал для изучения информатики на базовом и повышенном уровнях. Учебный материал, предназначенный для изучения на повышенном уровне, отмечен звездочкой (*). Учебное пособие состоит из шести глав. Изучив главу 1 «Информационные модели, системы и технологии». Вы углубите знания в области построения и использования информационных моделей, расширите представления об информационных системах и технологиях. В главе 2 «Аппаратное и программное обеспечение компьютера» содержится материал об архитектуре современного компьютера, дается классификация программного обеспечения, рассматриваются возможности различных операционных систем. В главе 3 «Основы поограммирования» Вы познакомитесь со средой программирования, с основными алгоритмическими структурами, графическими возможностями языка программирования Паскаль. Освоив азбуку программирования. Вы сможете решать задачи из разных предметных областей и сфер человеческой деятельности, помогая в учебе себе, товарищам, в работе — учителям, родителям. Глава 4 «Технология обработки информации в системах управления базами данных» изучается на повышенном уровне. Она познакомит Вас с возможностями системы управления базами данных Microsoft Access. В процессе изучения материала главы Вы будете создавать таблицы, формы, отчеты в базе данных. Научитесь использовать фильтры, выполнять сортировку данных и создавать различного вида запросы. От авторов Материал главы 5 «Вычислительные методы и технологии» предназначен для изучения на повышенном уровне. Изучив его, Вы познакомитесь с использованием универсальной математической системы Mathcad для решения уравнений, систем уравнений, неравенств, а также построения графиков функций. Глава 6 «Коммуникационные технологии» содержит материал о средствах обмена информацией в режиме реального времени в сети Интернет, о способах и скорости передачи информации в сети, о телекоммуникациях в сфере образования, культуры, коммерческой и рекламной деятельности. Чтобы облегчить усвоение учебного материала, новые понятия в тексте выделены синим цветом. Материал, на который следует обратить внимание, отмечен значком Q . Главы учебного пособия разбиты на параграфы, а параграфы — на пункты. К некоторым пунктам и параграфам предложены контрольные вопросы, для практической работы даны упражнения. Желаем успехов в изучении информационных технологий и основ программирования. ГЛАВА ИНШОРМАЦИОННЫЕ МОДЕЛИ, СИСТЕМЫ И ТЕХНОЛОГИИ § 1. Информация. Представление и измерение информации 1.1. Понятие информации. Виды и свойства информации Жизнь человека постоянно связана с информацией, которую он получает из окружающего мира. Информация является фундаментальным понятием и не имеет строгого определения. Свое видение этого понятия предлагают многие науки; философия, антропология, физика, биология, экономика, информатика и др. Термин «информация» произошел от латинского слова informatio, что означает разъяснение, осведомление, изложение. Информация такое же важное понятие, как и материя. Н. Винер писал: «Информация — это информация, а не материя или энергия». Вещество и энергия, материя в целом, никуда не исчезают, а только переходят из одной формы в другую. В отличие от них информация может появляться и исчезать. Физика изучает информацию, присущую процессам, существующим в неорганическом мире. Биология рассматривает информацию о живой природе, а экономическая информация отражает социально-экономические процессы. Под информацией в информатике будем понимать сведения, отражающие свойства и состояния объектов, явлений и процессов в природе, обществе, технических системах, которые уменьшают степень неопределенности и неполноту знаний о них. На рисунке 1.1 представлены некоторые существующие классификации видов информации по различным признакам. Эффективность использования информации человеком во многом зависит от ее качества. Качество информации определяется такими ее свойствами, как достоверность, полнота, актуальность, полезность, понятность и др. Достоверность информации определяется ее способностью отображать реальное состояние объектов или процессов. Глава 1. Информационные модели, системы и технологии Информация ’1^ По форме восприятия 1 Визуальная i i i Звуковая 1 Тактильная ; Обонятельная i Вкусовая i iSS6sa6SitiS^^iiS6^SSS86eSSiiSeSSi^^BB;eiiiS66SS По форме представления Текстовая Числовая Г рафическая Музыкальная Комбинированная По общественному значению Массовая: повседневная, общественно-политическая, эстетическая идр. Специальная: научная, техническая, управленческая и др. %S56iiS^^iS^SbSiSSSS6iSti5^SS^^S^i6iiSS^S5SSi^SiSiS£i^ySi8i По качеству проявления Полезная Бесполезная Дезинформация По целям использования Нормативная Плановая Справочная Отчетная Аналитическая Рис. 1.1 Полнота информации означает, что ее достаточно дая принятия получателем правильных решений или формирования объективных выводов. Актуальность информации определяется степенью ее ценности в данный момент времени. Информация является полезной, если получатель может на ее основе решать все требуемые задачи. Понятность характеризует степень восприятия информации получателем. 1.2. Представление информации Представление информации в живой природе и технике осуществляется в различных формах. Одной из форм представления информации и обмена ею между людьми являются языки. Языки разделяются на еапественьые и ф()р.,1алъные. Люди используют естественные языки, например белорусский, русский, английский и т. д. В основе естественных языков лежит алфавит, который состоит из определенного набора знаков. Таким образом, язык является знаковой системой. В каждом языке существуют правила для работы с ним. В устной речи на естественном языке элементами информации являются слова, в письменной — буквы или иероглифы. Кроме естественных языков, человек для представления информации и обмена ею использует формальные языки: азбука Морзе, языки программирования, языки представления химических, математических формул, язык музыки (нотная грамота) и др. Формальные языки — это языки, придуманные и разработанные человеком ддя определенных целей. В отличие от естественных языков формальные состоят из специальных знаков и записываются с помощью строгих правил синтаксиса и грамматики. Информация передается от источника к приемнику с помощью сигналов, например электрических, световых, звуковых. Сигнал (от латинского signum — знак) — изменяющийся во времени физический процесс, с помощью которого передается сообщение. Сообщение — форма представления информации в виде совокупности знаков (символов). В современном компьютере обрабатывается числовая, текстовая, графическая и звуковая информация. Процессор обрабатывает информацию, представленную в цифровой форме. Задачей устройств ввода—вывода компьютера в зависимости от их назначения является преобразование информации в форму, понятную компьютеру или человеку. Мы уже знакомились с понятием кодирования информации и формами представления числовой, текстовой и графической информации в компьютере. Под кодированием информации понимается процесс ее преобразования в соответствии с определенными правилами. В результате этого процесса изменяется форма представления информации. Процесс, обратный кодированию, называют декодированием. Числовая информация в компьютере представляется в двоичной системе счисления. Для кодирования текстовой информации в компьютере используются кодовые таблицы, например ASCII или Unicode. Нам уже известно из базового курса информатики, что таблица ASCII поддерживает 8-разрядный двоичный код. Это значит, что каждый символ закодирован последовательностью из 8 нулей и единиц. Глава 1. Информационные модели, системы и технологии ______ Мы знаем, что существует два вида представления изображений: растровое и векторное. Растровое изображение — это совокупность точек (пикселей). Координаты каждой точки и ее свойства: цвет, яркость —■ выражаются с помощью двоичного кода. Векторное изображение хранится в виде совокупности числовых значений свойств объектов изображения, которые представлены в двоичном коде. Звук представляет собой волну, которая характеризуется частотой и амплитудой. Двоичное кодирование звуковой информации в компьютере заключается в представлении звуковой волны в виде последовательности нулей и единиц. Компьютерное устройство, например микрофон, преобразует звуковую волну в электрический сигнал, который затем преобразуется в цифровую форму. 1.3. Измерение информации Рассматривая измерение информации, мы будем использовать понятие данные. Данные — это информация, представленная в формализованном виде, пригодном для автоматической обработки техническими устройствами, при участии человека. Для измерения информации применим синтаксический подход. Определение количества информации при этом подходе предполагает рассмотрение носителей информации, способов представления и кодирования информации, скорости ее передачи и др. При этом подходе для измерения информации применяется параметр — объем данных Кд. Для передачи информации используются сообщения. Объем данных Кд в сообщении, закодированном с помощью знаковой системы, определяется числом знаков (символов), умножаемым на количество информации, которое выделено под один знак. Минимальное количество информации, для кодирования которой достаточно одного двоичного разряда, называют битом (bit). Слово «бит» сформировано из двух английских слов: binary — двоичный, digit — знак. Бит может принимать только два значения: О или I. Для удобства используется единица измерения количества информации — байт (byte), который состоит из 8 последовательных бит: I байт = 2® бит = 8 бит. § 2. Информационные модели При работе с большими объемами информации используются и более крупные единицы измерения объема данных: 1 кбайт (килобайт) = 1024 байт = 2’° байт; 1 Мбайт (мегабайт) = 1024 кбайт = 2^° байт; 1 Гбайт (гигабайт) = 1024 Мбайт = 2®° байт; 1 Тбайт (терабайт) = 1024 Гбайт = 2'^° байт. 1. Что понимается под информацией в информатике? 2. Какие виды информации Вы знаете? 3. Назовите основные свойства информации. 4. Для чего человек использует естественные и формальные языки? Приведите примеры таких языков. 5. Как представляется в компьютере информация различных видов? 6. Какие единицы измерения информации при синтаксическом подходе Вы знаете? 7. Что такое бит и байт? Упражнения 1. Ответьте на вопрос, что больше: а) 9 бит или 1 байт; б) 1 кбайт или 1000 байт; в) 2®°байт или 1 Тбайт; г) 1025 Мбайт или 1 Гбайт. 2. Определите емкость типичных носителей информации компьютера, которые Вы используете в кабинете информатики: а) винчестер (жесткий диск); в) CD диск; б) DVD диск; г) Flash-память. § S. Информационные модели Понятия модель и моделирование не являются для нас новыми. Под моделью понимается объект, используемый с какой-то целью вместо другого объекта. Процесс моделирования позволяет создавать и исследовать разные модели. Модели могут быть разделены на два больших класса: материальные и информационные. Информационная модель — это совокупность информации, описывающая наиболее существенные свойства, состояния объекта, процесса, явления, представленная в знаковой или образной форме. Знаковая информационная модель представляет собой описание объекта, процесса на каком-либо естественном или формальном языке, а образная модель представляется в виде рисунков, фотографий, схем и т. д. Глава 1. Информационные модели, системы и технологии Информационная модель размещается на определенном носителе информации: бумаге, видеопленке, магнитном диске и др. Виды информационных моделей представлены на рисунке 1.2. Человек на протяжении всей жизни составляет описания предметов, объектов, ситуаций, происшествий на естественном языке. При составлении модели на этом языке необходимо ясно и понятно формулировать предложения, использовать проверенные факты, нужные понятия и термины. Примерами словесных моделей является информация в учебниках, произведения художественной литературы, сводки происшествий и др. Для создания словесных описаний на компьютере мы используем текстовые редакторы, с помощью которых создаются текстовые документы. При разработке словесного описания необходимо иметь объект — текст, среду для набора текста, например текстовый редактор Word, определить параметры оформления текста: тип шрифта, размер, начертание, абзацный отступ и т. д. Многие модели, представленные на естественном языке, описывают последовательности действий, процессов и представляются в виде алгоритмов. Информационные модели, содержащие описания на формальном языке, содержат математические и химические формулы, алгоритмы, представленные на языках программирования и т. д. Например, формулы математики описывают соотношения между количественными характеристиками объекта моделирования на математическом языке. К графическим информационным моделям относятся схемы, карты, чертежи, планы, графики и др. Широкое распространение получили табличные информационные модели. В табличных моделях информация может размещаться разными способами: «объект — свойство», «объект — объект». В таблице вида «объект — свойство» в ячейках первого столбца располагаются названия объектов (например, «Дата» в таблице «Погода»), а в остальных столбцах размещаются их свойства (информация о температуре, давлении, влажности). Погода Дата Температура, '’С Давление, мм рт. ст. Влажность, % 29.06.07 22 745 79 30.06.07 24 747 73 1.07.07 27 748 68 2.07.07 29 744 78 3.07.07 25 745 77 В таблице вида «объект — объект» в первой строке размещаются объекты (например, «Высказывание Л и й» в «Таблице истинности логической операции И»), а в последующих строках — значения их свойств («Истина» или «Ложь»), Таблица истинности логической операции И Высказывание Высказывание Высказывание А В Л и 5 Истина Истина Истина Истина Ложь Ложь Ложь Истина Ложь Ложь Ложь Ложь Для более полного описания свойств или характеристик какого-либо объекта может использоваться несколько информационных моделей разных видов. Пример. Описание химического вещества «углекислый газ». Вид модели Модель Описание на естественном языке Бесцветный газ, молекула которого состоит из одного атома углерода и двух атомов кислорода. Относительно хорошо растворим в воде, образует слабую угольную кислоту. Описание на формальном языке СО2 Графическая модель (схема) ш 1. Что понимается под моделью? 2. Какой процесс называют моделированием? 3. Какая модель называется информационной? 4. Какие виды информационных моделей Вам известны? 5. Приведите примеры информационных моделей, описанных на естественном языке и на формальном языке. 6. Какие модели относятся к графическим информационным моделям? Приведите примеры графических моделей. 7. Приведите примеры табличных информационных моделей. Упражнения 1. Ответьте на вопрос, к какому виду информационных моделей относятся эти модели; а) а = = 2/?sina; ос б) описание автомобильной аварии очевидцем; в) ПЕРИОДИЧЕСКАЯ СИСТЕМА ХИМИЧЕСКИХ ЭЛЕМЕНТОВ Д.И.МЕНДЕЛЕЕВА 2. В табличном процессоре Excel создайте таблицу. Название книги Цена, р. Количество книг на складе, шт. Продано, шт. Сумма, р. Компьютерный дизайн 39 000 203 15 Интернет для всех 15 000 502 37 СУБД Access 25 000 240 32 Редактор Word 18 000 379 48 ОС Windows ХР 26 000 233 26 Электронная почта 10 000 387 25 Итого § 3. Информ~ационные системы и технологии Проведите необходимые вычисления для пустых ячеек. Постройте столбчатую диаграмму, отражающую продажу книг. Модели каких видов Вы получили? *3.Создайте в текстовом редакторе рисунок а и схему б. Какого вида информационные модели Вы получили? а) § 3. Информационные системы и технологии 3.1. Системы и информационные системы Человек соприкасается с различными по своему назначению системами в быту, на производстве, в образовании, медицине и других сферах деятельности. Системы существуют в живой и неживой природе. Они состоят из различных элементов; планет, рек, растений, животных, людей, технических устройств, деталей механизмов, информационных ресурсов, математических уравнений и т. д. Слово «система» {systerna) имеет греческое происхождение и означает целое, состоящее из частей. Мы часто встречаем такие слова и словосочетания, как биосистема, экологическая система, государственная система, система обучения, система социального обеспечения, система здравоохранения и т. д. Практически любой работающий механизм или устройство (компьютер, телевизор, автомобиль, банкомат) можно назвать сложной системой. Разные науки подходят к определению системы по-разному, поэтому строгого определения этого понятия не существует. Под системой будем понимать целостную совокупность элементов, которые находятся в определенных связях или отношениях друг с другом. В курсе информатики мы уже знакомились с разными системами: операционными, файловыми, системами управления базами данных и т. д. Добавление к понятию «система» слова «информационная» позволяет определить ее основное функциональное назначение — работа с информацией. Информационная система (ИС) — совокупность средств и методов сохранения, обработки, поиска и вьщачи информации, обслуживаемая и используемая человеком. Широкое применение ИС на основе вычислительной техники началось во второй половине XX в. Вначале информационные системы обрабатывали расчетные бухгалтерские документы. Затем еще одной их функцией стала быстрая подготовка отчетности на производстве. Последние десятилетия XX в. ознаменовались появлением ИС управленческого назначения, что способствовало проведению эффективного контроля управленческих решений. В настоящее время информационные системы позволяют принимать стратегические решения при управлении производством, в науке, распределять материальные и информационные ресурсы, обеспечивать конкурентоспособность предприятий различных форм собственности. Возможности информационно-поисковых (справочных) систем, географических и обучающих информационных систем нам уже известны из базового курса информатики. Любая современная информационная система состоит из подсистем, включающих техническое, программное, информационное, организационное и правовое обеспечения. Техническое обеспечение включает в себя комплекс технических средств, обеспечивающих работу ИС: компьютеры разных моделей, устройства сбора, накопления, обработки, вьщачи и передачи информации, различная оргтехника и т. д. Программное обеспечение ИС представляет собой совокупность компьютерных программ, математических методов обработки информации, предназначенных для реализации необходимых системе целей и задач. Информационное обеспечение ИС имеет единую систему классификации и кодирования информации, унифицированные системы документов, создаваемых согласно международным и государственным стандартам. Организационное и правовое обеспечения ИС включают в себя определение порядка работы обслуживающего персонала, правовые нормы, регламентирующие порядок получения информации и доступа к ней пользователей. 3.S. Технологии и информационные технологии Определение информационных технологий тесно связано с понятием «технология». Термин «технология» происходит от греческого слова techne — наука об умении, мастерстве, искусстве. Этот термин имеет множество значений. § 3. Информационные системы и технологии В узком смысле под технологией понимают процесс функционирования определенных орудий производства, методы, приемы и режимы работы механизмов, станков, различной аппаратуры. В более широком смысле с помощью технологий описываются многие производственные, экономические, социальные, культурные и другие процессы, происходящие в обществе. Целью технологии материального производства является выпуск продукции, целью информационной технологии — создание информации, используемой человеком. Понятие «информационные технологии» впервые было применено в конце 50-х годов XX в. в Англии и США, однако его активное использование началось в 80-е годы XX в., когда под влиянием новых технологий в обществе начали широко использовать термин «информация». Под информационной технологией (ИТ) понимается процесс, состоящий из методов, способов и приемов, позволяющих осуществлять обработку, хранение, передачу, поиск и выдачу информации. Технология обработки текстовой информации ЭТАПЫ Ввод текста I Редактирование i 1 Форматирование i J Вывод j . текста i 1 1 документа • • • дикумун 1 а i на печать ^ • • • • • • -аад,------- действия Форматирование абзацев Задание параметров страницы I • • • ЭЛЕМЕНТАРНЫЕ ОПЕРАЦИИ Выбор к ТП||Г""ТГГГ'Т Задание • • • Определение размера бумаги ориентации ] отступа на странице 9 Рис. 1.3 Глава 1. Информационные модели, системы и технологии____ В широком смысле ИТ часто рассматривают как совокупность действий по осуществлению информационных процессов во всех сферах человеческой деятельности: производственной, управленческой, финансовой, научной, социальной, культурной. Информационную технологию, описывающую процесс, можно представить в виде иерархической структуры, разделив ее на этапы, действия и элементарные операции. Например, технология обработки текстовой информации содержит следующие этапы, действия и элементарные операции (рис. 1.3). Компьютерные информационные технологии классифицируют по методам, способам и приемам обработки информации, представленной в разной форме. Эта классификация показана на рисунке 1.4. Технология работы с базами данных Технология работы с электронными таблицами Технология обработки текстовой информации Информационные технологии Технология создания веб-страниц Рис. 1.4 Технология обработки графической информации Мультимедийные технологии Классификация технологий является трудной задачей. Например, мультимедийная технология включает в себя технологию обработки текстовой и графической информации, а сетевая технология — технологию создания веб-страниц. Различие между информационными системами и информационными технологиями является очень важным. Следует четко понимать, что в основе информационной технологии лежит, преяоде всего, процесс, выполнение которого построено на основе методов и способов деятельности, а в основе информационной системы лежат программные и технические средства. Например, независимо от того, какие информационные системы мы используем при работе с базами данных, действия и операции эффективного поиска информации в них, которые отражает технология работы с базами данных, являются одинаковыми. § 3. Информационные системы и технологии Когда мы говорим о технологии обработки текстовой информации, мы можем не связывать ее с конкретной компьютерной программой, так как такое понятие этой технологии, как редактирование текста, является общим для любых компьютерных программ, в которых обрабатывается текстовая информация. 1. Что понимается под системой? 2. Какую систему называют информационной? 3. Из каких подсистем состоит современная информационная система? 4. Что понимается под технологией? 5. Какую технологию называют информационной? 6. Назовите ИТ, которые Вы знаете. 7. В чем различие между информационными системами и информационными технологиями? ГЛАВА АППАРАТНОЕ И ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ КОМПЬЮТЕРА § 4. Архитектура компьютера 4.1. Общее представление об архитектуре компьютера Архитектура компьютера определяется конструкцией и структурной организацией его функциональных блоков (компонентов), описанием принципов их работы и взаимодействия на аппаратном и программном уровнях. Архитектура компьютера часто разделяется на отдельные части: аппаратную, программную, сетевую архитектуру и др. Она обеспечивает пользователю возможность подключения различных устройств и их замены, а также совместимость аппаратного, программного и информационного обеспечения. Назначение основных устройств современного компьютера, логическая схема взаимосвязи его функциональных блоков нам уже известны из базового курса информатики. * Классификация архитектуры компьютера может базироваться на характере информационных связей между процессором, памятью и устройствами ввода— вывода. Основываясь на данной классификации, архитектуру всего многообразия персональных компьютеров и электронных вычислительных машин можно представить двумя типами структур: • структуры использования каналов ввода—вывода (рис. 2.1); • магистральной структуры (рис. 2.2). Первый тип структуры предполагает, что между центральным процессором и оперативной памятью существует непосредственная связь. Связь межлу центральным процессором и устройствами ввода—вывода, а также между памятью и этими устройствами осуществляется с помощью специальных процессоров, которые называют каналами ввода—вывода. Это позволяет выполнять одновременно несколько операций ввода—вывода (см. рис. 2.1). Второй тип структуры предполагает, что взаимодействие центрального процессора, памяти и устройств ввода—вывода выполняется через единое подключение к системной магистрали (см. рис. 2.2). Системная магистраль используется для передачи данных и адресов. Рассматривая архитектуру компьютеров, следует выделить особенности использования компьютерной памяти. Отметим, что существует несколько подходов к хранению команд программ и данных в памяти компьютера. § 4. Архитектура компьютера / V / Рис. 2.2 Устройства ввода—вывода Рис. 2.1 Один подход предложил известный американский ученый Джон фон Нейман (1903—^^1957). При этом подходе выполняемые команды программ и данные хранятся в одной и той же области памяти. Команды указывают, что необходимо выполнить и адреса данных, которые необходимо использовать. Подход Неймана позволил упростить устройство процессора. Другой подход предполагает, что данные и программы используют разные области памяти. Это позволяет выполнять несколько параллельных операций; пока одна команда выполняется, вторая выбирается для выполнения. * В следующих параграфах систематизируем и углубим наши знания о таких основных функциональных компонентах компьютера, как процессоры, виды памяти, типы внешних устройств. 1. Что понимается под архитектурой компьютера? *2. Какими двумя типами архитектуры могут быть представлены персональные компьютеры и ЭВМ? 4.2. Процессоры и их характеристики Нам уже известно, что центре льным устройством любого компьютера является процессор, который располагается на материнской плате, размещенной в системном блоке. Процессор представляет собой устройство, предназначенное для обработки данных, которые находятся в его регистрах, в оперативной памяти, а также данных, размещенных во внешних портах процессора. Для установки процессора на системной плате предназначен разъем, который называется сокет. Сокеты различаются по числу контактов и их расположению. Глава 2. Аппаратное и программное обеспечение компьютера___ Существуют различные типы процессоров. Например, корпорация Intel предлагает процессоры Celeron, Pentium, а корпорация AMD — Duron и Athlon и т. д. У каждого типа процессоров есть свои достоинства и недостатки. Обычно выбор процессора основан на соотношении между ценой и производительностью для определенного круга задач. Наиболее важными характеристиками современных процессоров является тактовая частота, разрядность, рабочее напряжение, размер кэшпамяти. Исполнение каждой команды в процессоре занимает определенное количество тактов. Чем выше частота тактов, тем большее число команд может выполнить процессор в единицу времени. Тактовая частота измеряется в герцах (Гц) и более крупных единицах мегагерцах (МГц) и гигагерцах (ГГц). 1 МГц равен одному миллиону тактов в секунду, а 1 ГГц — одному миллиарду тактов в секунду. Таким образом, тактовая частота определяет важную характеристику процессора — его быстродействие. Разрядность процессора показывает, сколько бит данных он может обработать в своих регистрах за один такт. Разрядность процессоров современных компьютеров 32 бит или 64 бит. Рабочее напряжение процессора (измеряется в вольтах) обеспечивает материнская плата. С развитием вычислительной техники происходило постоянное снижение рабочего напряжения от 5 В до 3 В, что позволило повысить производительность процессора. Нам уже известно назначение кэш-памяти для ускорения работы внешних устройств компьютера. Процессор также использует внутри себя кэш-память. Это снижает количество обращений процессора к оперативной памяти компьютера. Повышенный объем кэш-памяти имеют высокопроизводительные процессоры. Например, для процессора Pentium применен кэш объемом 16 кбайт. Разделение микропроцессоров в зависимости от фирмы-производителя используется достаточно часто. В таблице 1 представлены некоторые характеристики процессоров. ^ Таблица 1 Производитель Тип микропроцессора Тактовая частота микропроцессора, ГГц Кэш, кбайт Разрядность, бит Intel Р4-661 3,6 2048 64 Intel Celeron 3,33 512 64 AMD Athlon 64 3,5 128 4-512 64 AMD Semptron 3,4 1284-256 64 § 4. Архитектура компьютера 1. Для чего предназначен процессор? 2. Назовите характеристики современных процессоров. 3. Процессоры каких типов производятся в настоящее время? 4.3. Виды памяти компьютера Одним из важнейших компонентов компьютера является его память, В памяти компьютера хранятся программы и данные. Существуют различные способы классификации памяти. Компьютерная память может быть разделена по скорости доступа к ней (медленная или быстрая), по времени хранения данных (долговременная, кратковременная, постоянная) и др. Рассмотрим внутреннюю (электронную) и внешнюю память компьютера (рис. 2.3). Оперативная память используется в основном для размещения выполняемых пользователем программ и данных в течение всего времени работы компьютера. Кроме этого, в оперативную память после включения компьютера записываются некоторые программы операционной системы. Эта часть оперативной памяти во время сеанса работы недоступна пользовательским программам. Постоянная память содержит данные, используемые при работе с компьютером, которые при его отключении сохраняются. Содержимое ПЗУ записывается при изготовлении компьютера и не допускает корректировки в процессе эксплуатации. Если такая корректировка необходима, используются перепрограммируемые постоянные запоминающие устройства (ППЗУ). Перепрограммирование информации может осуществляться как в самом компьютере в ходе его эксплу- Рис. 2.3 Глава 2. Аппаратное и программное обеспечение компьютера__ атации (такая технология называется флэш-технологией), так и вне его (с помощью специальных устройств, называемых программаторами). Для ускорения работы компьютера разработчиками была создана быстрая по времени доступа кэш-память. Идея использования кэш-памяти строится на том, что в ней хранятся наиболее часто используемые данные. Каким бы ни был объем внутренней памяти компьютера, его всегда не хватает. В связи с этим большие объемы информации хранятся на внешней памяти, которая размещается на магнитных и оптических щсшх (см. рис. 2.3). К магнитным носителям информации относятся жесткий диск (винчестер) и гибкие диски (дискеты). В настоящее время помимо магнитных дисков широко используются оптические (лазерные) диски. Оптические компакт-диски делятся на CD-ROM (CD-R) (от английского Compact Disk-Read Only Memory — компакт-диск, предназначенный только для чтения) и CD-RW (от английского Compact Disk-Rewritable — перезаписывающийся компакт-диск), а также DVD (от английского Digital Video Disk — цифровой видеодиск). Объем информации, хранящийся на оптических дисках, может в настоящее время достигать 17 Гбайт и более. В качестве внешней памяти широко используется также (рлэш-память. * Компакт-диск CD-R представляет собой прозрачный полимерный диск, на одной стороне которого напыляется светоотражающий слой алюминия. Дополнительно этот слой защищается от повреждений слоем прозрачного лака. Компакт-диск CD-RW производится с помощью более сложной технологии. Слой красителя, размещенного на таком диске, может менять свои характеристики при нагреве лазерным лучом. Дорожки оптических дисков, на которые записываются данные, имеют спиральную форму (рис. 2.4, а), дорожки магнитных дисков — кольцевидную (рис. 2.4, б). Рис. 2.4 § 4. Архитектура компьютера Информация на магнитном диске располагается на дорожках, которые разделены на секторы. В одном секторе дорожки может быть размещено 128 байт, 256 байт, 512 байт или 1024 байт. Для сохранения файла дисковое пространство вьщеляется кластерами. Кластер является минимальной единицей размещения информации на диске и состоит из одного или нескольких Сектор Дорожка Кластер Рис. 2.5 смежных секторов дорожки (рис. 2.5). Если дня размещения файла смежных кластеров не хватает, то для него вьщеляются другие несмежные кластеры. В результате возникает фрагментирование, которое снижает скорость считывания файла. * 1. Как подразделяется память по способу размещения? 2. Из каких частей состоит внутренняя память компьютера? 3. Для чего используется оперативная и постоянная память компьютера? 4. Какие виды оптических дисков вам известны? *5. Как располагается информация на магнитных дисках? 4.4. Внешние типовые устройства Современный компьютер имеет различные внешние типовые (периферийные) устройства. Они могут использоваться для ввода, вывода информации или обеспечивать выполнение сразу двух этих функций. Например, модем, даже если он встроенный, передает информацию от компьютера в сеть и наоборот. Ввод и вывод информации могут выполняться с помощью специальных ин-пгеракпшвных досок, подключенных к компьютеру. Интерактивная доска — это устройство, позволяющее лектору или докладчику объединить два различных инструмента: экран для отображения информации и обычную маркерную доску. Такая доска может быть также разделена на две области: одна область служит для отображения информации, а другая содержит специальные элементы для управления этой доской и ввода информации. Калодое устройство ввода или вывода информации подключается с помощью специального кабеля к контроллеру этого устройства через соответствующий порт (разъем). В некоторых случаях контроллер может быть размещен прямо на устройстве. С назначением и типами портов мы знакомились ранее в курсе информатики. Глава 2. Аппаратное и программное обеспечение компьютера Внешние устройства ввода данных Устройства клавиатурного ввода данных Клавиатура Рис. 2.6 Устройства бесклавиатурного ввода данных Сканер Микрофон Сенсорные устройства Цифровые фотоаппараты и видеокамеры Устройства- манипуляторы Мышь Трекбол Джойстик Внешние устройства ввода информации предназначены для передачи информации в компьютер и представляют эту информацию в понятной для компьютера форме. Для систематизации знаний об устройствах ввода данных представим их классификацию на рисунке 2.6. Среди устройств ввода данных в компьютер нам уже знакомы клавиатура, микрофон, мышь и сканер. К устройствам бесклавиатурного ввода данных в компьютер относятся также сенсорные устройства. Эти устройства способны распознавать зрительные образы, звуки, прикосновения, уровень температуры и т. д. В настоящее время сенсорные устройства широко используются в робототехнике и при разработке искусственного интеллекта. Наиболее часто встречающимися на практике сенсорными устройствами являются: оптические перья, сенсорные интерактивные экраны, графические планшеты (дигитайзеры), сенсорная клавиатура. Внешние устройства вывода информации предназначены для передачи информации из компьютера и преобразуют эту информацию в форму, понятную человеку. В настоящее время существуют мониторы с вакуумным кинескопом (электронно-лучевой трубкой) и жидкокристаллические мониторы. Толщина жидкокристаллического монитора составляет только 15—20 % от толщины традиционного монитора. Существуют принтеры нескольких типов: матричные, струйные и лазерные. Выбор принтера зависит от объема печати, качества печатаемых документов и др. § 4. Архитектура компьютера Внешние устройства вывода данных ^ . 1 Мониторы Принтеры, Устройства звукового вывода плоттеры (звуковые колонки, наушники ) : Рис. 2.7 Матричные принтеры работают медленно по сравнению с другими. Струйные принтеры позволяют получать документы хорошего качества, в том числе и цветные. Если количество печатаемых документов очень большое, лучше использовать лазерный принтер. Для вывода графических документов большого размера (схем, карт) используются плоттеры. Для систематизации знаний об устройствах вывода данных представим их классификацию на рисунке 2.7. Обычно периферийные устройства компьютера подключаются к нему с помощью проводов. Однако в настоящее время развивается технология беспроводного соединения устройств Bluetooth. Она позволяет разным устройствам обмениваться информацией, присоединяться к компьютерным сетям, управлять бытовой техникой. Технология Bluetooth использует небольшие приемопередатчики малого радиуса действия (до 100 м), встроенные в устройства или подключаемые через свободный порт. В отличие от связи между устройствами, которая базируется на инфракрасном излучении в зоне прямой видимости, связь с помощью технологии Bluetooth может осуществляться между устройствами, разделенными препятствиями. 1. Для чего предназначены устройства ввода и вывода информации в компьютер? 2. Перечислите типовые внешние устройства: а) ввода информации; б) вывода информации; в) ввода и вывода информации. *4.5. Выбор аппаратного обеспечения компьютера Рассмотрим некоторые основные подходы к выбору аппаратного обеспечения. Компьютеры могут быть собраны в широко известных фирмах-производителях, например IBM, Hewlett Packart и др. Тогда они имеют специальные товарные знаки. Эти товарные знаки указывают на изготовителя компьютера, являются определенной гарантией оказания разных сервисных услуг пользователю. Глава 2. Аппаратное и программное обеспечение компьютера Компьютеры, сборка которых производилась на неизвестных фирмах, должнь иметь сертификаты. Важными являются сертификаты на совместимость, энерго сбережение, внешнее излучение и др. При выборе конфигурации компьютера пользователь обращает внимание ш различные блоки и устройства: • тип микропроцессора и материнской платы; • объем оперативной памяти; • объем внешней памяти и состав устройств, относящихся к ней; • тип видеомонитора и видеоадаптера; • тип принтера, клавиатуры, мыши, модема и других дополнительных устройств. Нам уже известно, что производительность компьютера отражается в характеристиках его процессора (тактовая частота, разрядность, количество регистров, объем кэш-памяти) и зависит от наличия сопроцессора, объема ОЗУ и его быстродействия, пропускной способности системной и локальной шины, быстродействия накопителей на жестких дисках, объема памяти видеоадаптера и т. д. Компьютерные блоки и устройства постоянно совершенствуются, улучшаются многие их характеристики. При выборе микропроцессора старого типа следует помнить, что его быстродействие уступает более новым современным типам. Оперативная память компьютера должна быть достаточно большой, например 256 Мбайт, что позволит работать с разнообразным программным обеспечением. Винчестер в компьютере, конечно, должен иметь гигабайты памяти. Следует обратить внимание на время доступа к информации при работе с ним (8—10 мс). При выборе видеомонитора необходимо уточнить его цветность, тип, размер экрана, разрешающую способность и др. Стоимость монитора часто составляет 25 % и более от стоимости всего компьютера. Частота кадровой развертки менее 70 Гц приводит к мерцанию экрана и плохо влияет на зрение. Монитор при работе излучает (ультрафиолетовое и радиоизлучение). Имеет место и электростатическое поле. Поэтому рекомендуется использовать фильтры (сеточные, пленочные или стеклянные). Чем современнее монитор, тем уровень его излучения меньше. При выборе принтера следует сразу решить, каким он будет: черно-белым или цветным, с узкой или широкой кареткой. Самые лучшие принтеры на данный момент лазерные. Они имеют высокую разрешающую способность и скорость печати. При этом лазерные принтеры — самые дорогие. Печать хорошего качества § 5. Программное обеспечение компьютера могут предложить и более дешевые современные струйные принтеры. Их выбор оправдан, если количество распечатываемых документов невелико, так как высока стоимость расходных материалов. 1. На какие функциональные блоки и устройства следует обратить внимание пользователю при подборе конфигурации компьютера? 2. Какие факторы влияют на производительность компьютера? 5. Программное обеспечение компьютера Основу компьютера наряду с его аппаратным обеспечением (от английского hardware ■— твердое изделие) составляет программное обеспечение (от английского software — мягкое изделие, что подчеркивает возможность программного обеспечения модифицироваться, изменяться). Программное обеспечение (ПО) — совокупность программ, используемых в компьютере. Под программным обеспечением также поднимают область деятельности по его проектированию и разработке, которая включает в себя технологию проектирования программ, методы тестирования, методы доказательства правильности, методы документирования программ и др. Являясь неотъемлемой частью компьютерной системы, программное обеспечение определяет сферу применения конкретного компьютера. Используя имеющееся программное обеспечение и устанавливая на компьютере новые программы, можно превратить его в рабочее место бухгалтера или конструктора, директора школы или агронома, решать различные задачи: готовить рефераты, редактировать документы, отправлять письма и др. Программы выполняют функцию обработки информации. Каждая программа предназначена для решения определенной задачи. При этом она тесно взаимодействует с аппаратными устройствами компьютера; центральным процессором, устройствами ввода—вывода, запоминающим устройством и др. Программа, также накиданные, хранится в памяти компьютера в двоичном коде. В составе программного обеспечения компьютера можно выделить четыре уровня; базовое, системное, инструментальное и прикладное ПО (рис. 2.8). Базовое программное обеспечение образует самый низкий уровень программного обеспечения. Его назначение — обеспечение взаимодействия с базовыми аппаратными средствами, которые хранятся в специальных микросхемах (ПЗУ). В ПЗУ хранятся некоторые константы (например, л), программы для вычисления стандартных функций, программа тестирования компьютера при его включении. Программы системного уровня выполняют посреднические функции между аппаратурой компьютера, базовым ПО и другими программами. В состав системного ПО входят операционные системы; средства обеспечения пользовательского Глава 2. Аппаратное и программное обеспечение компьютера Программное обеспечение Прикладное Текстовые, табличные процессоры; СУБД; средства компьютерной графики; презентационные средства; САПР; средства коммуникаций; обучающие программы, игры Инструментальное Трансляторы, отладчики; интегрированные среды разработки программ; языки программирования Системное Операционные системы, системные оболочки; программы диагностики и обслуживания; антивирусные программы; архиваторы Базовое Константы, стандартные подпрограммы постоянно запоминающего устройства Рис. 2.8 интерфейса; утилиты (от латинского utilitas — польза) — средства проверки, наладки и настройки компьютерной системы; драйверы — программы, расширяющие возможности операционной системы по управлению устройствами ввода—вывода, оперативной памятью, позволяющие подключать к компьютеру новые устройства; файловые менеджеры (диспетчеры файлов); архиваторы; программы обеспечения компьютерной безопасности (антивирусное программное обеспечение) и др. Инструментальное ПО предназначено для разработки другого программного обеспечения (системного и прикладного). Примеры специализированных инструментальных сред: • инструментальная среда Cyber Book (система создания гипертекстовых мультимедийных книг) позволяет визуализировать гипертекст, содержащий ссылки на текст, мультимедийные объекты и программы; • интегрированные среды разработки приложений Borland Pascal 7.0, Visual Basic, Delphi, С-ь+. § 5. Программное обеспечение компьютера При кладной уровень образуют программы для решения конкретных задач. Сюда относятся текстовые и графические редакторы, табличные и текстовые процессоры, издательские системы, системы управления базами данных, системы автоматизированного проектирования, экспертные и бухгалтерские системы, Web-редакторы, браузеры, системы видеомонтажа, геоинформационные системы и др. Данная классификация программного обеспечения построена на основе назначения программ каждого уровня. Известна и другая классификация, основанная на длительности нахождения программ в оперативной памяти. В соответствии с ней программы делят на резидентные и нерезидентные. Резидентные программы находятся в памяти постоянно (например, операционные системы, антивирусные программы), нерезидентные — только в процессе выполнения (например, прикладные программы). Программное обеспечение классифицируется также по стоимости. Различают программы, распространяемые платно, бесплатно, условно-бесплатно. Большинство программ распространяется на коммерческой основе. При этом набор дискет или компакт-дисков с записанной программой называется дистрибутивом. Некоторые программы распространяются бесплатно (freeware), например через глобальную компьютерную сеть Internet, электронные доски объявлений (BBS) и т. д. Условно-бесплатные программы (shareware) предоставляются, как правило, для использования в определенный период (например, 30 дней) на бесплатной основе. Для систематического использования предлагается заплатить определенную сумму, затем пользователь получает регистрационный ключ, позволяющий использовать программу в полном объеме. Производители некоторых программ делают их защищенными от копирования или предоставляют право их копирования на ограниченное количество компьютеров. В нарушение прав производителей программных средств создаются пиратские копии программ, которые обычно распространяются на компакт-дисках без сопроводительной документации. Качество работы таких программ, как правило, низкое. Распространение и использование пиратских копий программ является нарушением закона. 1. Какие уровни программного обеспечения Вам известны? 2. К какому уровню программных средств относятся программы, обеспечивающие работу сканера? Принтера? Глава 2. Аппаратное и программное обеспечение компьютера 6. Операционные системы Операционная система (ОС) — комплекс программ системного уровн5 предназначенный для функционирования всех устройств компьютера и поддержк работы его программ. ОС выполняет две основные функции: обеспечение пользе вателю-программисту удобств при работе с компьютером и повышение эффектив ности использования компьютера путем рационального управления его ресурсамг В настоящее время наиболее распространенными являются следующие ОС Windows (различные версии, разработчик — фирма Microsoft, США) Мае 01 (разные версии для персональных компьютеров Macintosh, разработчик — фир ма Apple, США), Linux (разработчик — Линукс Торвалдс, Финляндия). Linux — современная Unix-подобная многопользовательская сетевая опера ционная 32-разрядная система с сетевой оконной графической системой X Window System для персональных компьютеров и рабочих станций. ОС Linux поддерживает протоколы сети Internet, работает с сетями на базе Novell и MS Windows. Все компоненты системы распространяются бесплатно с правом установки для неограниченного числа пользователей. ОС Linux широко распространена на платформам Intel PC, DEC АХР, Power Macintosh и др. Основная часть системы может работать на 8 Мбайт памяти. С утилитами Linux занимает 10—20 Мбайт на жестком диске. ОС Windows — современная удобная операционная система для старших моделей персональных компьютеров IBM PC. Эта система может использоваться на компьютерах с оперативной памятью более 2 Мбайт и памятью на жестких дисках не менее 80 Мбайт. Перенос информации с одного компьютера на другой возможен при наличии в них совместимых ОС. Компьютеры серии IBM PC и компьютеры Macintosh несовместимы на уровне программного обеспечения. Основные отличительные особенности современных ОС: дружественный графический (унифицированный пользовательский) интерфейс, где в различные программы заложены одинаковые принципы работы; автоматическое подключение новых устройств и программ (ОС сама выполняет настройку нового оборудования; такой принцип работы получил название «plug and play» — «подключи и используй»); многозадачность (единый программный интерфейс, который позволяет выполнять работу одновременно в нескольких программах, окнах, переносить информацию из одной программы в другую; многозадачный режим работы требует от ОС умения разделять память между программами и данными); режим полного соответствия (формирование такого же изображения, как на экране монитора, принцип WYSIWYG — «What You See Is What You Get»). Последний режим работы является отличительным признаком современных сред визуального программирования (Delphi, Visual Basic и др.). § 6. Операционные системы ОС хранится на диске (обычно, С:\), который называют системным, а также на системной дискете или компакт-диске. Основные функции ОС связаны с обеспечением различных интерфейсов: пользователя (меиеду пользователем и аппаратно-программными средствами), аппаратно-программного (между аппаратным и программным обеспечением) и программного (между разными видами ПО). В процессе работы ОС осуществляет диалог с пользователем, обеспечивает реакцию компьютера на ошибки и аварийные ситуации, обслуживает работу всей компьютерной системы. В составе ОС можно выделить программы (модули), предназначенные для: организации и обслуживания файловой системы, работы с устройствами компьютера (драйверы устройств), выполнения вводимых пользователем команд (командный процессор), обеспечения графического интерфейса пользователя (с помощью пиктограмм), обслуживания дисков, работы в сети (сервисные программы, утилиты), получения справочной информации об ОС (справочная система). Часть ОС компьютера, постоянно находящаяся в оперативной памяти и управляющая всей ОС, образует ядро ОС, без которого невозможна организация работы на компьютере. Автоматическая загрузка ОС происходит при включении компьютера. Этапы загрузки ОС: 1. При включении компьютера обеспечивается запуск программы BIOS (Basic Input/Output System — базовая система ввода—вывода) и тестирование всех его устройств. Программа BIOS хранится в ПЗУ. Результаты работы программы BIOS можно увидеть, если приостановить загрузку ОС, нажав клавишу Pause/Break. 2. Загрузка ОС с системного диска в оперативную память: с помощью программы Master Boot (загрузчик ОС), которая находится в специальном загрузочном секторе системного диска. Если системный диск отсутствует, на экран вьщается сообщение Non system disk, загрузка ОС прекращается, работа пользователя невозможна. 3. Передача управления командному процессору, отображение графического интерфейса. Компьютер готов к работе. Дальнейшая работа пользователя осуществляется под управлением ОС. Для решения конкретной задачи на компьютере требуется выбрать подходящую программу и приступить к работе в ней. Например, для копирования файлов используются средства ОС, предназначенные для работы с файлами (Проводник, файловые менеджеры); для редактирования текстового документа — прикладные программы (текстовый редактор). 1. Что такое операционная система? 2. Какие основные функции ОС? 3. Какие этапы загрузки ОС Вы знаете? основы ПРОГРАММИРОВАНИЯ § 7. Языки программирования Решение задачи с помощью компьютера можно разбить на ряд этапов, носящих общий характер (хотя возможна некоторая их корректировка): • построение математической модели изучаемого объекта и осуществление математической постановки задачи; выбор метода решения задачи; разработка алгоритма решения задачи; составление программы решения задачи и ее реализация на компьютере; тестирование и отладка программы; непосредственное решение задачи на компьютере. Для описания алгоритмов решения задач широко используются языки программирования, специально созданные для записи программ. Язык программирования строится на совокупности трех составляющих: алфавита, синтаксиса (жестких правил написания объектов языка) и семантики (правил их использования). Паскаль — один из популярных языков программирования. Названный в честь французского математика и философа Блеза Паскаля (1623—1662), он был создан как учебный язык программирования в 1971 г. Никлаусом Виртом в Высшей технической школе в Цюрихе. Среди достоинств языка выделяются: простота освоения (незначительный объем базовых понятий; несложный синтаксис); распространенность (выполнение программы практически на всех современных ПК); возможность развития (разработка на его основе современной среды визуального программирования Delphi, азы программирования в которой будут постигаться в 12-м классе на повышенном уровне обучения). Средствами языка Паскаль можно составлять программы для автоматического решения задач различной тематики и направленности: построение графиков функций, выполнение расчетов, организация экспериментов, ведение диалога, обучение и контроль знаний, программная реализация трансляторов, компьютерная графика и др. Процесс создания программы в общем случае предполагает: 32 Глава 2. Аппаратное и программное обеспечение компьютера Упражнения 1. Приостановите загрузку ОС, изучите информацию, которая выводится на экран, и заполните следующую таблицу: Тип процессора Тактовая частота процессора Количество жестких дисков Объем жестких дисков Наличие дисководов гибких дисков, их параметры Объем ОЗУ Тип монитора 2. Представьте в виде таблицы способы запуска программы Проводник, указав методы запуска и элементы уравнения: Метод запуска Элемент управления 1. Через контекстное меню кнопки Пуск Кнопка Пуск 34 Глава 3. Основы программирования • ввод текста программы в компьютер, его редактирование и длительное хранение в виде отдельного файла; • перевод исходного текста на машинный язык с помощью специальной программы (такие программы называют трансляторами); • использование стандартных библиотек, реализующих различные стандартные подпрограммы; • обращение к системе подсказок и помощи. Для создания программы используются интегрированные среды программирования (ИСП), которые включают в себя сам язык программирования и средства разработки программ. Такие среды позволяют повысить эффективность программирования. В состав современной ИСП входят текстовый редактор, транслятор, редактор связей, библиотеки подпрограмм, система помощи и подсказок. Некоторые ИСП содержат еще один компонент — отладчик (специальную программу, которая позволяет в пошаговом режиме анализировать работу созданной программы, что облегчает процесс отладки крупных программ). Популярные среды программирования: Turbo Basic, Turbo Pascal, Turbo C, Borland Pascal, Borland Delphi, Microsoft Visual Basic, Borland C-M-. Познакомимся c работой в интегрированной среде программирования Borland Pascal (BP), позволяющей создавать программы для ОС Windows. В среде ВР процесс разработки программы содержит следующие этапы: • создание программного файла с расширением .pas; • обработка программы (компиляция и редактирование связей), приводящая к формированию выполняемого ехе-файла; • выполнение программы (обработка данных). 7.1. Главное окно интегрированной среды программирования Borland Pascal Для вызова интегрированной среды Borland Pascal (BP) необходимо запустить на выполнение файл bp.exe (он находится в подпапке BIN папки ВР). На рисунке 3.1 показан вид главного окна после загрузки программы. Верхняя строка экрана — строка заголовка, ниже — строка основного меню и окно редактора. На основном экране могут появляться другие окна, например окно помощи, компиляции, результатов работы программы и т. д. § 7. Языки программирования Гстрокп заголовка Г Строка moi но ГСтрока подсказки \ Гокно редактора ^'.11 ,. Ill' I ■ l«41i 1», ■wi»' >■ ДЦЧЯВ1Ц|11МД.Л^^.Ц ^ .ЛИ^Л)!.* Ч..' .i.") Рис. 3.1 с помощью МЫШИ ИЛИ клавиши F10 (и курсорных клавиш) можно открыть тот или иной пункт меню. Пункт меню Назначение File (Alt-bF) Выполнение операций с файлами текстов программ Edit (Alt-ТЕ) Выполнение операций редактирования текста программы Search (Alt-I-S) Поиск фрагментов текста Run (Alt-HR) Запуск на выполнение программы, находящейся в окне редактора Compile (AlH-C) Выполнение команд, связанных с компиляцией и компоновкой программы Debug (Alt-bD) Выполнение команд, связанных с отладкой программы Options (Alt-TO) Выполнение команд, связанных с управлением параметрами компиляции и среды программирования Window (Alt-I-W) Выполнение команд управления окнами Help (Alt-HH) Выполнение команд получения справочной информации об языковых средствах языка Паскаль и возможностях ИСП Основные команды, содержащиеся в меню, приведены в Приложении 1. Окно редактора предназначено для создания и редактирования текстов программ. Одновременно могут быть открыты несколько окон (файлов). Для перехода от одного окна к другому используют клавишу F6. 36 ■ г 1ава 3. Основы программирования Нижняя строка главного окна — информационная; здесь размещаются подсказки по назначению функциональных клавиш, которые упрощают работу в интегрированной среде. Последовательность действий в среде программирования ВР при работе с новой или набранной ранее программой может быть такой: • запуск интегрированной среды программирования; • закрытие окна программы (Window— Close, или Alt-I-F3); • установка текущего каталога (File — Change Dir); • создание окна для ввода текста новой программы (File — New). Вновь создаваемый файл всегда имеет имя NONAME.PAS (оно отображается на верхней рамке окна редактора); • присвоение имени файлу, в котором будет храниться текст программы (File — Save As); • открытие (загрузка в окно редактора) программного файла (File — Load, или F3); • сохранение текста программы с прежним именем (File — Save, или F2); • компиляция и запуск программы на выполнение (Run — Run, или Ctrl+F9); • завершение работы программы при ее «зацикливании» (Ctrl-fBreak); • просмотр окна вывода результатов выполнения программы (Debug— User screen, или Alt+F5); • завершение работы с ИСП (File — Exit, или Alt-fX). 7.S. Редактирование текста программы Выполнению программы предшествует подготовительная работа компьютера, направленная на выявление синтаксических и логических ошибок. Если при наборе текста программы допущены синтаксические ошибки, их можно устранить путем редактирования отдельных символов или части строки. Для этого следует поместить курсор в нужную позицию конкретной строки и внести исправления. При наборе и редактировании текста программы можно использовать такие возможности текстового редактора, как копирование, перенос и удаление выделенных фрагментов (так же, как это делается в текстовом редакторе). Копировать фрагменты текста можно из одного окна (файла) в другое. 7.3. Обращение к справочной системе Help Установим курсор на интересующее нас зарезервированное слово (например, в программе PRIVET выберем слово Writeln) и с помощью комбинации клавиш CtrU-Fl вызовем справку по выбранному слову. § 7^ Язьжи п^ог£ам^ 37 Program PRIVET; Begin Writeln ('Здравствуйте! '); Writeln('Начинаем изучать язык'); Writeln('программирования Паскаль'); End. При нажатии клавиши F1 можно вызвать справочную систему Help среды программирования и получить нужную информацию о режимах работы в ней (например, о правилах редактирования программы). Если нажать клавишу F1 после появления сообщения об ошибке, то будет получена расшифровка сообщения с указанием возможных причин возникновения ошибки (правда, на английском языке). Справочная информация представляет собой текстовый фрагмент и может быть скопирована и помещена в окно редактора в место, определенное расположением курсора. Таким образом, можно заимствовать из справочной системы примеры программ и обучаться по ним самостоятельно. 7.4. Компиляция и выполнение программы Команда Compile из пункта меню Compile предназначена для преобразования программы из файла типа .pas, отображаемого в активном окне редактора, в ЕХЕ-файл с выполняемой программой (файл с расширением EXE). Команда Run (меню Run) позволяет осуществить одновременно несколько операций: компиляцию, компоновку (редактирование связей) и выполнение программы. Если программа уже была откомпилирована, команда Run осуществляет лишь запуск программы на выполнение. 7.5. Отладка программы При написании программы могут быть допущены ошибки, которые относятся к одному из типов: 1. Ошибки компиляции — они связаны с нарушением синтаксиса языка Паскаль (неправильное использование разделителей, неверное описание идентификаторов, использование неописанных переменных, неверный тип данных и т. д.). При наличии ошибки такого рода во время трансляции программы происходит позиционирование курсора на месте ошибки и на экране появляется сообщение об ошибке: Error номер (код) ошибки: Смысл (характер) ошибки. Например, сообщение Error 2: Identifier expected, означает, что на месте позиционирования курсора должен находиться идентификатор («требуется идентификатор»). 38 Г|ава 3. Основы программирования 2. Ошибки выполнения — появляются при нарушении семантических правил языка Паскаль (попытка деления на нуль, извлечения квадратного корня из отрицательного числа и др.). При наличии ошибки такого рода программа завершает свою работу и выводит сообщение об ошибке. Например, сообщение Error 200: Division by zero, означает, что предпринята попытка деления на нуль. Сообщения об ошибках во время компиляции и выполнения программы приведены в Приложении 2. 3. .Логические ошибки — они связаны с неверной постановкой задачи или ошибкой в алгоритме на уровне использования алгоритмических конструкций. Эти ошибки наиболее сложно обнаружить, однако они могут быть выявлены на этапе отладки программы. Процесс поиска и исправления ошибок программы называется отладкой, процесс проверки правильности ее функционирования во всем диапазоне допустимых значений исходных данных — тестированием программы. Итак, программа разработана, введена с помощью текстового редактора среды программирования в компьютер, сохранена на диске, откомпилирована и выполнен ее запуск. Вы ввели некоторые данные и получили результат. Однако не спешите кричать «Эврика!». Это можно сделать, лишь когда Вы уверены, что результат правильный. Для этого нужно протестировать программу, придавая исходным данным значения, близкие к реальным, и сравнивая полученные результаты с ожидаемыми (полученными при устных вычислениях, на электронном калькуляторе или из надежных источников). Каждый тест представляет собой совокупность исходных данных, для которых известен результат. Познакомимся с технологией отладки программ на примере программы VITEBSK: Program VITEBSK; Begin Writeln('Витебский чугунолитейно-машиностроительный завод ’ ) ; Writeln ('существовал в г. Витебске с 1877 г. по 1940 г.’); Writeln ( ' Затем на базе его бьш создан завод Вистан.'); Writeln('Предшественник Вистана работал ',1940-1877,' года'); Readln; End. § 7. Язьжи программирования 39 Предположим, что при ее наборе допущены ошибки: Progra VITEBSK {опущены буква т, символ ; и Begin} Write('Витебский чугунолитейно-машиностроительный завод); {Опущено "In" и нет символа '} Witeln ('существовал в г. Витебске с 1877 г. по 1940 г.') {Ошибка в операторе Writeln и нет ;} Writeln(' Затем на базе его бьш создан завод Вистан.'); Writeln('Предшественник Вистана работал, 1840-1877, года'); {Плохой список вывода} Redln; {Пропущена буква а} End {Отсутствует точка} При запуске программы на выполнение будут последовательно появляться сообщения об ошибках. Обдумаем причины возникновения ошибок, внесем в текст программы соответствующие правки и будем запускать программу до тех пор, пока не получим ожидаемый результат. Ошибка Действия пользователя Error 36: BEGIN expected. Требуется Begin Написать Begin перед первым оператором Write Error 36: BEGIN expected. Требуется Begin Правильно написать ключевое слово Program Error 85: expected. Требуется Дописать «;» в конец заголовка программы Error 8: String constant exceeds line. Строковая константа превышает размеры строки Закрыть список вывода символом «апостроф» (') Error 3: Unknown identifier. Неизвестный идентификатор Исправить служебное слово Writeln под курсором Error 85: expected. Требуется Дописать «;» в конец строки выше курсора Error 3: Unknown identifier. Неизвестный идентификатор Исправить служебное слово Readln под курсором Error 10: Unexpected end of file. Неожиданный конец файла Поставить точку в конце программы 40 Глава 3. Основы программирования у.эдю^я««шйч«;матайажяз8йша-»ги№г^эдшагд^аздв^ум-4:1^ш.и5жи;.; _1_ C:\Wiii(lowr;\;iy‘;((:tirt;'\(:in(1,cxe Витебский чугунолитейно-машиностроительный заводсуществовал в г. Витебске с 1877 г. по 1 940 г. Затем на базе его был создан завод Вистан. Предшественник Вистана работал ,1 840-1 877, года Рис. 3.2 После очередного запуска программы получим результат, представленный на рисунке 3.2. Сравнивая результаты работы программы с ожидаемыми, замечаем, что после вывода текста «Витебский чугунолитейно-машиностроительный завод» курсор остается в этой же строке и не переходит на новую строку. Изменим оператор Write (' Витебский ...'); на Writeln (' Витебский ...' ) Вновь запустим программу на выполнение и проследим за дальнейшим выводом: остается неясным, сколько же лет работал предшественник Вистана (результат вычитания чисел не выводится на экран). Причиной этого является неверное оформление списка вывода в последнем операторе вывода; вычисляемое выражение не должно содержаться в апострофах. Внесем исправления в программу и вновь запустим ее на выполнение; результат работы программы: Предшественник Вистана работал -37 года (отрицательное число). Проверим, как записаны уменьшаемое и вычитаемое, и находим ошибку в записи числа 1940. Исправляем оператор вывода. Повторный запуск программы выдает уже правильные результаты (рис. 3.3). Эврика! nj C;\Win(low!i\Sv!;teiii37V:trKl,cxt; [ ^ Витебский чугунолитейно-машиностроительный заводсуществовал в г. Витебске с 1 877 г. по 1 940 г. Затем на базе его был создан завод Вистан. Предшественник Вистана работал ,1840-1877, года Витебский чугунолитейно-машиностроительный завод существовал в г. Витебске с 1877 г. по i 940 г. Затем на базе его был создан завод Вистан. Предшественник Вистана работал ,1840-1877, года Витебский чугунолитейно-машиностроительный завод существовал в г. Витебске с 1 877 г. по 1 940 г. Затем на базе его был создан завод Вистан. Предшественник Вистана работал -37 года Витебский чугунолитейно-машиностроительный завод существовал в г. Витебске с 1 877 г. по 1 940 г. Затем на базе его был создан завод Вистан. Предшественник Вистана работал 63 года Рис. 3.3 § 8. Основные объекты языка Программирования Паскаль 41 1. Что такое язык программирования? Среда программирования? 2. Почему среду программирования Borland Pascal называют интегрированной? Из каких компонентов она образуется? 3. Какое расширение имеет файл в языке Паскаль? 4. Каковы функции текстового редактора среды программирования? 5. Как запустить программу на выполнение? 6. Что такое отладка программы? § 8. Основные объекты языка программирования Паскаль 8.1. Алфавит языка В основе языка программирования Паскаль лежит определенная совокупность символов, образующих алфавит языка; буквы латинские (строчные и прописные); цифры (арабские от О до 9); символы операций (арифметических -г - * / и логических = > <); разделители и прочие символы (.,;(){}[]' пробел и др.). Из символов алфавита формируются; слова (константы, переменные) — последовательность символов, образованная по определенным правилам; выражения — группы слов, объединенные с помощью символов алфавита и имеющие определенный смысл; операторы — предложения для описания некоторых операций в процессе обработки данных; программы — записи алгоритмов на языке программирования. S.S. Величины Конкретная величина в информатике определяется именем и совокупностью ее допустимых значений. В алгоритмах и программах к величинам относятся константы, переменные, обращения к функциям, выражения. Значения, которые может принимать величина, принадлежат к некоторому вполне определенному множеству (целые числа, дробные числа, логические константы или др.). Множество значений величины определяет ее тип. При представлении в памяти компьютера всякая величина имеет вполне определенное (текущее) значение. Идентификаторы — зарезервированные (служебные) слова, имена пользователя (имена констант, переменных, программ, процедур, функций). 42 Глава 3. Основы программирования тйшлажт Зарезервированные слова составляют основу языка программирования Паскаль и имеют строго определенное значение. Сюда относятся, например, идентификаторы: program, const, var, if, then, else, begin, end, and, case, not, of, while, uses, for, do, downto, div, mod, or, string, array, procedure, function и др. Эти служебные слова нельзя использовать в качестве имен переменных, которые задает пользователь (программист). Стандартные идентификаторы (True, False, Integer, Real, Byte, Boolean, Char, Sin, Cos, Round, Length, Read, Write, Delete и др.), смысл и способ использования которых определены правилами языка программирования, можно, но не рекомендуется использовать в иных целях. Идентификатор пользователя записывается в виде последовательности латинских букв, цифр и символа подчеркивания, начиная с буквы или символа подчеркивания. Примеры идентификаторов: ALFA, as_, mmm, PriMeR, Y7 0, _5. Записи 2_б, X+Y, MMNOGA не являются идентификаторами, так как первая начинается с цифры, а остальные содержат недопустимые символы («-1-» и русскую букву «И»). В записи идентификаторов прописные и строчные буквы не различаются, например opera. Opera, OPERA, OPeRa обозначают один и тот же идентификатор. При выборе идентификатора обычно стремятся отразить в нем его назначение. Это облегчает понимание программы и является признаком хорошего стиля программирования. Так, для обозначения скорости самолета удобно использовать, например, идентификаторы V, V0, Speed, Flugzeug, avion; для обозначения номера дня недели — d, day. Tag, jour; месяца — m, month, Monat, mois; года— g, year, Jahr, annee или другие. |i Если в математике выражение аЬ понимают как произведение переменных а и Ь, где опущен знак умножения, то в программировании аЬ — идентификатор (имя некоторой переменной). Упражнения 1. Подберите подходящие идентификаторы для обозначения: а) имени, фамилии, возраста ученика; б) стоимости линейки, тетради и карандаша; в) объема и длительности звучания музыкальной композиции; г) углов четырехугольника; д) размера начисленной заработной платы; *е) радиуса, длины окружности, площади круга; *ж) синуса и косинуса угла у. § 8. Основные объекты языка программирования Паскаль 43 2. Укажите слова, которые не могут являться идентификаторами пользователя (объясните почему); а) ABCdEFgH б) Intal в) omeSga г) 4ТОМ д)_5(аз) е) Ьл ж) Read Me з) Begin и) КЛАСС к) Xi л) ЯКПЕХ м) а-1 *3. Предположим, что идентификатор должен содержать ровно 3 символа. Сколько разных идентификаторов можно получить, если использовать: а) две буквы X и Y б) буквы X, Y и цифру 5 в) букву X и цифры 1 и 2 8.2.1. Константы К стандартным типам в языке Паскаль относятся величины: числа, логические величины, строки. Познакомимся с числовыми величинами. KoHCTainbi — это величины, которые определены при написании программы и не изменяют своего значения в процессе ее выполнения. Константы бывают неименованные и именованные. Именованная константа представляет собой идентификатор, который сопоставлен с конкретным значением, например д=9.8, х=-2.3, к=25. Тип константы может быть определен по ее внешнему виду, например 25; 423; 0; -26; 1000; 4-17 — целые константы; 9.8; -2.3; 1.5; -15.28; 0.0; -0.6Е05; .25; 4Е2; 2.5Е+4; -21Е-7 — вещественные константы. Для записи целых констант используют цифры, которым может предшествовать знак «4-» или «-». В вещественных константах (они соответствуют действительным числам в математике) присутствует точка, которая разделяет целую и дробную части числа, или буква Е. Использование Е приводит к представлению числа в показательной форме записи: запись гпЕр соответствует числу т-10‘"; например, 4Е2 4-10" =400 1Е6 1-10® = 1000000 -2.35Е + 4 -26.3Е - 3 -2,35-10^ =-23500 -26,3-10-® =-0.0263 Упражнения 1. По внешнему виду константы определите ее тип: а) 32320 б)-4.0 в) 17 д)-1-724003 е)-15.723Е-3 ж) -324ЕН-35 и)-Ь5 к) -t-7777. ЗЕ-01 л) -17Е-10 г) 25ЕЗ з) 45.263 44 Глава 3. Основы программирования *2. Какие записи являются числовыми константами в языке Паскаль? а) +1 д) 56Е+9 и) 4+2 н) -ЕЗ с) 0.333... б) 56,5 е) 45АЗ к)-11111 о) Е15 т) VIII в)1.234,56 ж)0. (3) л)34*2 п)1/12 у) sqrt(2) г) 45.56-2 з) .-5 м) Х=2 р)+7.7 Ф) pi 8.S.S. Переменные Переменные — это величины, которым присваиваются значения в процессе выполнения программы. Они могут изменять свои значения. Переменная задается тремя составляющими: именем, значением, типом. Тип переменной выбирается на основании требуемого диапазона и точности представления данных. Любая константа, переменная, значение функции и выражение в языке Паскаль имеют определенный тип. Тип определяет следующие характеристики объекта: множество допустимых значений, допустимый набор операций, формат внутреннего представления и объем занимаемой памяти. Принадлежность того или иного объекта к определенному типу осуществляется с помощью специальных команд описания (декларации, объявления). Каждому типу соответствует уникальное ключевое слово: Тип Ключевое слово Объем памяти (байт) Диапазон значений Целый Byte 1 0 .. 255 Word 2 0 .. 65535 Integer 2 -32768 .. 32767 Longint 4 -2147483648 .. 2147483647 Вещественный Real 6 2,9- 10'®®..1,7- 10®® _J- Каждая переменная программы должна быть непременно объявлена до момента своего использования в программе! § 8. Основные объекты языка программирования Паскаль 8.3. Арифметические операции Вы уже знаете, что тип величины определяет допустимый для нее набор операций. Числовым величинам присущи следующие операции: + сложение - вычитание * умножение / деление Div целочисленное деление Mod остаток от деления Операции умножения и деления имеют более высокий приоритет, чем сложение и вычитание, и выполняются раньше. Результат выполнения операции зависит как от самой операции, так и от типа используемых в ней величин (операндов): Операция Действие Типы операндов Тип результата -1- Сложение Целый или вещественный Целый или вещественный - Вычитание Целый или вещественный Целый или вещественный * Умножение Целый или вещественный Целый или вещественный / Деление Целый или вещественный Вещественный Div Целочисленное деление Целый Целый Mod Остаток от целочисленного деления Целый Целый Для операций +, -, * тип результата может оказаться целым (если оба операнда целочисленные) или вещественным (если хотя бы один операнд вещественный). Операции div и mod используются как операции целочисленного деления для получения соответственно целой части и остатка от деления. Так, результатом выполнения операции а div Ь будет [а/Ь] , а mod Ь — остаток от деления а на Ь. 1лава 3. Основы программирования Пример 1. Найти результат выполнения операции целочисленного деления и остаток от деления числа а на число Ь при а = 30, Ь - 7. 30div7=4 3017_ '28 [t-2 — 30 mod 7 = 2 Пример 2. Определить тип результата выполнения арифметических операций: 4,5+ 1,5 = 6,0; 1 = 2,5; 17- 14 = 3; 5-2=10; 7+ 12=19; 3,0-7 = -4,0. Для выполнения задания используем таблицу, предложенную в данном пункте. 4.5 + 1.5=6.0; 3.0-7=-4.0; 5/2=2.5 (вещественный тип). 5*2=10; 17-14=3; 7+12=19 (целый тип результата). 8.4. Стандартные подпрограммы В состав библиотеки, которая поставляется вместе со средой программирования, входят стандартные (встроенные) подпрограммы (процедуры и функции). Из набора стандартных подпрограмм для обработки информации одного назначения составляются модули. Каждый модуль имеет свое имя (System, Crt, Graph, Printer и др.). Доступ к процедурам и функциям модуля осуществляется при его подключении (см. п. 12.1). Подпрограммы модуля System используются по умолчанию, и поэтому для их применения не требуется дополнительное подключение. Использование подпрограмм модуля позволяет избежать ненужного программирования многих стандартных функций. Описание и назначение некоторых числовых функций, которыми мы будем пользоваться при программировании, приводятся в таблице; Подпрограмма (функция) Назначение Тип аргумента х (формального параметра) Тип результата Abs(х) \х\ Целый, вещественный Целый, вещественный Arctan(х) arctg X Целый, вещественный Вещественный Sin(х) sin X Целый, вещественный Вещественный § 8. Основные объекты языка программирования Паскаль Продолжение Подпрограмма (функция) Назначение Тип аргумента х (формального параметра) Тип результата Cos(х) COS X Целый, вещественный Вещественный Ехр(х) е* Целый, вещественный Вещественный Ln (х) In X, X > 0 Целый, вещественный Вещественный Sqr(X) Х2 Целый, вещественный Целый, вещественный Sqrt(х) \fx,x>0 Целый, вещественный Вещественный Int(х) [х] целая часть числа Целый, вещественный Вещественный Frac(x) {х} дробная часть числа Целый, вещественный Вещественный Trunc(х) [х] целая часть числа Целый, вещественный Целый Round(х) Округление до ближайшего целого Целый, вещественный Целый Для обращения к конкретной стандартной функции следует записать в выражении ее имя и конкретный фактический параметр, который должен соответствовать требованиям этой подпрограммы. Так, для вычисления sin а можно написать sin (alfa), для вычисления \[Ъ — sqrt (5) . Примеры выполнения функций Trunc и Round: trunc(pi)=3, trunc (-3.9) =-3, round(pi)=3, round (-3.9) =-4. 1. Во время работы с редактором текста в интегрированной среде программирования можно ознакомиться с требованиями к параметрам функций, если установить курсор клавиатуры на имени функции и нажать комбинацию клавиш CTRL+F1. 2. В тригонометрических функциях аргумент задается в радианах. Глава 3. Основы программирования 1. Что такое константа? Переменная? Идентификатор? 2. Как задается имя переменной? 3. Как записываются целые константы? Вещественные константы? 5. Какие арифметические операции определены в языке Паскаль? 6. Какие стандартные числовые функции имеются в языке Паскаль? Упражнения 1. Определите результат выполнения операции и его тип; а) 13 div 2 б) 13" mod 2 в) 18 div 23 д) 2*3.1 е)18/2 ж)5 + 7 2. Определите результаты выполнения функции при х = 2\ г) 18 mod 23 з)15.3-7.3 а) sin (х-2) г) trunc (х) ж) int(х/1.5) к) arctan(1-х) и)fгас(х/3) б) sqrt(2*х) д)cos (х/2-1) з) round (х+1.2) л)ехр (х-2) о)trunc(х+10.9) в) sqr(1-х) е)abs (х-10) и)abs (х-4) м)int (х-0.3) п)trunc(х-10.1) 8.5. Арифметические выражения Арифметические выражения представляют собой аналог алгебраических выражений в математике. Они состоят из операндов (переменных, констант, функций), символов операций и круглых скобок (если это требуется). Операции выполняются над операндами. 1. Символы операций ни в коем случае нельзя опускать, например произведение аЬ в языке Паскаль записывается в виде а*Ь. 2. В языке Паскаль отсутствует операция возведения в степень. Для вычисления х" используют определение степени, умножая х на себя п раз, или свойства логарифмической и экспоненциальной функций, записывая х" в виде арифметического выражения: EXP(N*LN(X)), что соответствует I записи е"'""". Примеры арифметических выражений: а)103.8-Х 6)4/7 в)а+5.б r)5*(X+Y) д)х/з1п(х) e)sqrt(a*b) При вычислении выражений операции выполняются в таком порядке: 1) вычисление значений стандартных функций; 2) умножение и деление; 3) сложение и вычитание. Например, (для каждого выражения указывается порядок выполнения операций); 8. Основные объекты языка Ф ФФФФ® х+у а*х*х+Ь*х+с @ ф ®@® 2* (5-х)+3/7*к ®@ ф 1+4/(а*Ь) Операции в выражении при одинаковом приоритете выполняются в порядке записи слева направо. Круглые скобки позволяют изменить порядок вычисления выражения. Сравним с примером выражения без скобок: Ф@®@® 2*5-х+3/7*к В состав арифметических выражений могут входить также стандартные функции языка Паскаль. Их аргументами могут быть другие выражения. Например, sqrt(4*х+2.5); sin((x+alpha)/pi)+sqrt(x*x+l.5); a*cos(pi-alfa/4); sin(sin(x)). Тип значения арифметического выражения зависит от типа используемых в нем величин, операций, функций. Пример. Определить тип арифметических выражений А+Х, В+ (C+D) /Р, А*В, Х-Р, А/Х согласно описанию: Const Х=10; Р=3.5; Var А:Integer; B,C,D; Real; Результат: тип выражения А+Х — целый (так как А и X целые), а тип выражений B+(C+D)/P, А*В, Х-Р, А/Х — вещественный. Упражнения 1. Запишите математические выражения средствами языка Паскаль: в) sin а cos р - cos а sin р а) 2^3 г) TiR^ а+ Ь , ч б) + ж) \Jb^ - 4ас 2а + Ь д) ай sin а з) -j- аЬс е) sinx + cosx - - *2. Пусть X, Y — вещественные. К, Р -делите тип результата операции: а) 1-К б) Х+2 в) Y-0.5 е) Y*K ж) 2*К з) Х+Р X + 1 О +/ -1,5(х-3) i) 'Ja'^ +b^ - 2abcosX целочисленные переменные. Опре- м г) к/Р и) Р+К д) Р+1/3 к) 10/К Глава 3. Основы программирования *3. Удалите лишние скобки; а) ((а/Ь)*с)*d б) а+ (Ь*с) -3 г) (((2/х)-4)+5) в) (а*(Ь/с*(х*у)/z)) *4. Запишите арифметические выражения языка Паскаль, значениями которых являются: а) площадь квадрата, периметр которого равен Р\ б) площадь круга, если длина ограничивающей его окружности равна L; в) длина стороны равностороннего треугольника, площадь которого равна 5. § 9. Структура программы Программа на языке Паскаль состоит из двух разделов; раздела описаний и раздела операторов. Раздел описаний — это декларативная (описательная) часть программы; включает имя программы, описание констант, переменных и др. Раздел операторов — выполняемая часть программы, которая всегда начинается словом Begin и заканчивается словом End. PROGRAM CONST VAR BEGIN ... — тело программы END. 1. В действительности, тело программы может состоять из большего количества разделов описаний. С некоторыми из них мы познакомимся позже. 2. В программе может отсутствовать любая часть, кроме раздела операторов. Заголовок программы; PROGRAM название ; PROGRAM — ключевое слово заголовка программы; название — идентификатор пользователя; CONST — ключевое слово описания констант; VAR — ключевое слово описания переменньк, используемых в программе; BEGIN — начало исполняемых операторов; END. — конец программы (обратите внимание на синтаксис; операторы разделяются символом «;», программа заканчивается символом «.»). Примеры описаний Результаты описаний констант: CONST V=10;A=4.6Е-4; Y=17.3; К=-5; V, К — константы целого типа; А, Y — константы вещественного типа переменных: VAR XX,V0:Real; К,N,Pr:Integer; XX, V0 — переменные вещественного типа; К, N, Рг — переменные целого типа CONST Time=31.5; G=1.9; P=15 ; VAR Year:Word; Money:Longint; SI,S2:Real; Объявление констант Time и G со значениями 31,5 и 1,9 вещественного типа, Р со значением 15 — целого типа. Переменные Year, Money — целого типа; S1, S2 — вещественного типа Всякий объявленный в программе идентификатор должен быть уникальным. Так, например, недопустимым является объявление: ! Var X: Real; X: Integer; Итак, описание констант осуществляется в разделе описания констант CONST, а описание переменных — в разделе описания переменных VAR: Описание констант Описание переменных CONST имя1 = значение! ; имя2 = значение2 ; VAR имя1 : тип1 ; имя2 : тип2 ; имя1, имя2, ...— имена констант, по которым будет осуществляться обращение к ним в программе имя1, имя2,... — имена переменных, по которым будет осуществляться обращение к ним в программе; тип1, тип2,... — их типы. Несколько величин одного типа перечисляются через запятую: Var a,b/c:Real; В тексте программы могут присутствовать комментарии, которые важны для документирования (пояснения) программы. Комментарий — произвольный текст, ограниченный с обеих сторон фигурными скобками или круглыми скобками и символом *, например {Это комментарий} и (* Это комментарий *). При выполнении программы комментарии не учитываются. Комментарий может размещаться в любом месте программы. Глава 3. Основы программирования Пример программы с комментариями: {Программа сравнения физических Земли} Program Astronomy; характеристик Солнца и CONSTMS=2E30; PS=1.416; MZ=5.976Е24; PZ=5.518; VAR dsZ,Om,Op:Real; (Объявление констант} (Солнце: масса} {плотность} (Земля: масса} {плотность} (Объявление переменных} (dsZ — длительность суток на (От — отношение масс, Ор — отношение плотностей} Земле' Begin End. Операторы выполняемой части программы рекомендуется записывать в отдельных строчках с отступами, как, например, в программе VITEBSK (п. 7.5). Это способствует наглядности программы и упрощает понимание отдельных элементов оператора. 1. Какова общая структура программы на языке Паскаль? 2. Какие служебные (зарезервированные) слова Вы знаете? 3. Что является заголовком, символом начала и конца программы? 4. Каково назначение разделов Var, Const? Упражнение Определите типы описанных констант и переменных, предложите возможные значения переменных: Const Year=2000; ST1=2000.0; ST2=2E3; ST3=0.2E4; Time=2.3; M=-15; ABBA=4; Bel=+100; Var Telephone, Money, Number: Integer; Price, Secret: Real; DIA: Longint; Zap: Byte; Mass, Mini: Real; Mas, INTER: Word; § 10. Ввод — вывод данных § 1 □. Ввод — вывод данных 1 ал. Вывод приведенные в § 7 программы PRIVET и VITEBSK предусматривают вывод на экран монитора некоторого текста. Для этой цели используются две стандартные процедуры; Writeln и Write. Writeln (Список вывода) ; — стандартная процедура, которая используется для вывода данных на экран. Значения выводятся в порядке их записи в списке вывода (рис. 3.4). Затем курсор переходит в начало следуюгцей строки. Write (Список вывода); —стандартная процедура для вывода данных на экран без перевода курсора на новую строку. Целые числа выводятся в привычной (естественной) форме, а вещественные с помощью мантиссы и порядка (в показательной форме с нормализованной мантиссой); тЕр, где т — мантисса, р — порядок, I < т < 10 (одна позиция в целой части и десять позиций в дробной части), р выводится со знаком «-)-» или «-» и далее в две позиции. Примеры вывода с указанием местонахождения курсора после выполнения операторов вывода даны в таблице; Оператор Результат выполнения Writeln('Ответ: sqrt(5)); Ответ; 2.2360679775Е-Г00 □ Writeln('Введите число'); Введите число □ 1лава 3. Основы программирования Продолжение Оператор Результат выполнения Write ('Х='); х=П Write(X, при Y=-3, Х=5 (X, Y описаны как Integer) 5,-ЗП Write (2+3); 5П Writeln('Дано: а= ' , а); Writeln('Ь=', Ь); Writeln('а + Ь = а+Ь); приа=-34.б, Ь=126.93 (а, Ь описаны как Real) Дано: а= -3.4600000000Е-)-01 Ь= 1.2693000000Е-Ю2 a-f b= 9.2330000000E-t-01 □ Writeln(0.2-0.01); 1.9000000000Е-01 □ Writeln; Переход на новую строку 10.S. Форматный вывод Процедура вывода позволяет задать требуемый ввд записи данных из списка вывода. Такой вывод называют форматным. При этом значения переменных выводятся в определенное количество позиций. 1) Вывод целого числа. Число после символа «;» (это число называют «формат») определяет количество символов, выделяемых на вывод значения выражения на экран. Если выводимое число содержит меньше символов, чем указано в формате, число сдвигается вправо, а левые позиции заполняются пробелами. Если количество символов выводимого числа больше, чем допускает формат, число выводится с минимально возможным количеством символов. Например, при описании Var К: Integer; и К = 153: Оператор Вывод Оператор Вывод Writeln(К); 153 □ Write(К;5); __153П Write(К); 153П Write(К:2); 153П § 10. Ввод — вывод данных Символ «_» в начале строки в данном случае используется для изображения пробела, а символ «□» указывает место расположения курсора после вывода информации. 2) Вывод вещественного числа. Формат имеет вид с ; d (рис. 3.5), где с — общее количество позиций, d — количество позиций (знаков) после запятой: V c-d- 1 d J Рис. 3.5 Если d содержит меньше позиций, чем требуется для вывода числа, происходит его округление до требуемого числа знаков; при с < d вьщерживаются требования формата для дробной части выводимого числа, а целая часть выводится в минимально возможное количество знаков. Пример форматного вывода вещественного числа; Описание Значение Оператор вывода Вывод Write(X); -2.9568400000E-b01 □ Write(X:10:5); _-29.56840n Write(X:10:2); -29.57 □ Var X:Real; X = -29.5684 Write(X:4:0); _-30D Write(X:0:3); -29.568 □ Write(X:0;0); -30 □ Write(X:7:1); __-29.6Q Примеры вывода: 1. При описании Var I,N: Integer; K:LongInt; и значениях переменных /= 123, N= 12345, К= 1234567 результаты вывода имеют вид: Глава 3. Основы программирования Оператор Вывод Writeln(I:5,N:7,',',К); 123 12345,1234567 □ Writeln(1:10) ; 123 □ Writeln (I) ; 123 □ 2. При описании Var X, Y: Real; и X = 123.456, Y = -65.4321 результаты вывода имеют вид: Операторы Вывод Writeln(X:10:3,Y:15:7); Writeln(X:10:4,Y:20:6); Writeln(X); 123.456 _ _ -65.4321000 123.4560 -65.432100 1.2345600000E-102 □ 3. При описании Var X, В, С : Integer; A:Real; и Х=7, А=3.2, В=5, С=25 результаты вывода имеют вид: Операторы Вывод Write(X); Writeln (' ответ a='); Writeln (' ответ a=', X); Write (A: 0:1, ',B, '+A=', (sqrt(C)-bA) :0:1) ; 7 ответ a= ответ a=7 3.2,5-1-А=8.2П 4. В соответствии с оператором Write (2*3) ; на экран монитора будет выведено: 6П Упражнение Определите, что будет выведено на экран после выполнения следующих операторов (если Ь=12.4; С=-1.5): а) Write ('Ь=',Ь, ', С=') ; б) Writeln (Ь-ьС, ' = ', (Ь+С) :7:2); в) Writeln(С:0:5, ',Ь); г) Write (Ь,С); § 10. Ввод — вывод данных 1 □.3. Ввод Для ввода значений переменных с клавиатуры используют две стандартные процедуры ввода: Read и Readln. Read (Список ввода); — стандартная процедура, которая после последнего введенного значения оставляет курсор в строке ввода. Readln (Список ввода); — стандартная процедура, которая после завершения ввода значения переменной переведет курсор в начало следующей строки. При наличии в списке ввода нескольких идентификаторов соответствующие значения после запуска программы следует вводить через пробел) ы) или нажимая после каждого значения клавишу Enter. При этом соответствующей переменной будет присвоено очередное по порядку значение. При выполнении оператора ввода программа приостанавливает работу, пока пользователем не будут введены необходимые значения переменных. Более комфортным для пользователя является сопрово>вдение ввода данных приглашением к вводу, например; Write('п1='); Readln(nl); Write('п2='); Readln(п2); Результат выполнения операторов при п1=10, п2=17; п1=10 п2=17 □ Пример. Составить программу, которая запросит два целых числа и одно вещественное. Var п1,п2:Integer; X:Real; Begin Readln(nl,п2); Write('X='); Readln(X); End. Глава 3. Основы программирования После запуска программы на выполнение она приостанавливает работу в ожидании ввода двух целых чисел. После ввода с клавиатуры через пробел чисел 10 и 17 и нажатия клавиши Enter произойдет присваивание переменным п 1, п2 значений 10 и 17 соответственно. Затем на экран выводится сообщение Х= и программа вновь приостанавливает работу в ожидании ввода уже вещественного числа. В нашем примере это -4.7. После его ввода значение передается в область оперативной памяти переменной X. Результат работы фрагмента программы: Ввод данных завершается нажатием клавиши Enter. Упражнение Найдите ошибки при использовании процедур ввода; а) Read(i, х, у: 5:1); б) Readln(х+у, i); в) Read (100, х, sqrt(y)); г) Readln (i); §11. Оператор присваивания Оператор присваивания позволяет назначить переменной определенное значение, помещая это значение в соответствующую ячейку памяти (старое значение при этом стирается). Вид (формат) оператора присваивания: Переменная:= выражение;, где : = — символ присваивания. Оператор задает значение переменной, имя которой записано в левой части оператора присваивания. Порядок выполнения оператора присваивания: 1) вычисляется значение выражения в правой части оператора; при этом тип результата выражения должен совпадать с типом переменной в левой части оператора или являться подмножеством типа переменной (говорят, что типы переменной и выражения должны быть совместимыми); 2) результат выражения присваивается переменной в левой части оператора (т. е. копируется в область памяти, которая выделена этой переменной). Схематически порядок выполнения оператора присваивания можно изобразить так: Идентификатор ■<-----------выражение ; . Примеры операторов присваивания даны в таблице: Оператор Результат выполнения оператора X:=9; Переменной X присваивается значение 9 Y:=(a+b)*x/(c-d) ; (а + Ь)х После вычисления значения выражения — его резуль- «V" С — и тат присваивается переменной Y A:=A-H; Переменная А увеличит свое значение на 1. Например, при Л = 5 результат выполнения оператора: А = 6 Важно, что числовые значения идентификаторов а, Ь, с, d, х должны быть определены до их первого использования в программе в составе других операторов: они могут задаваться с помощью операторов ввода, или как константы в разделе констант, или с помощью отдельных операторов присваивания. Пример 1. Составить программу, которая по заданным четвертным отметкам ученика по некоторому предмету определит среднюю годовую отметку. Program God_l; {отметка за год} Const а=7; Ь=8; {а, Ь — отметки за 1-ю и 2-ю четверти} с=9; d=9; {с, d — отметки за 3-ю и 4-ю четверти} Var у: Real; Begin Write ('Средняя годовая отметка:'); у: = (a-i-b-bc+d) /4; Writeln(у:О:1); End. Здесь все значения задаются в разделе описания констант Const. Для вычисления значения у при других значениях а, Ь, с, d следует внести соответствующие изменения в раздел описания констант и вновь запустить программу на выполнение. Program God_2 ; Var a,b,c,d: Integer; у: Real; Begin a:=7; b:=8; Глава 3. Основы программирования с:=9; d:=9; Write('Средняя годовая отметка; '); у:=(a+b+c+d)/4; Writeln(у:О:1); End. Здесь значения переменных а, Ь, с, d задаются в программе с помощью операторов присваивания. Для вычислЬния значения у при других значениях а, Ь, с, d следует изменить операторы присваивания и вновь запустить программу на выполнение. Program God_3; Var a,b,c,d: Integer; у: Real; Begin Writeln ('Введите отметки:'); Write ('за 1-ю четверть='); Readln(а); Write ('за 2-ю четверть='); Readln(Ь); Write ('за Readln(с); Write ('за Readln(d); у:= (a-rb+c-bd) /4; Writeln('Средняя годовая отметка=',у:О;1); End. Здесь значения всех используемых переменных вводятся по одному числу с помощью оператора ввода Readln. Для вычисления значения у при других значениях а, Ь, с, d следует вновь запустить программу на выполнение и ввести новые числовые значения. -ю четверть= -ю четверть=' Program God_4; Var a,b,c,d: Integer; у: Real; Begin Writeln('Введите отметки'); Readln(a,b,c,d); у: = (a+b-t-c+d) /4; Writeln('Средняя годовая отметка=', у:0:1); End. Здесь значения всех используемых переменных вводятся с помощью одного оператора ввода Readln. Для вычисления значения у при других значениях а, Ь, с, d следует вновь запустить программу на выполнение и ввести новые числовые значения. Присваивание переменной целого типа выражения вещественного типа запрещается! * Если в арифметическом выражении содержатся повторяющиеся вычисления, целесообразно ввести дополнительную переменную для хранения результата повторяющегося фрагмента и использовать ее в программе. Напри- , + l,4sinA:^ 5\li+x^ 2 мер, в формуле у =-----;—^-----------— вычисление х встречается пять ^/ь раз и два раза сваивания: ^/Г -ь . В этом случае можно ввести три оператора при- К:=х*х; S:=sqrt(1+К); у:= (К-Г1.4*sin (К) )/S-5*S/K; * Пример 2. Составить программу «Калькулятор», которая должна запрашивать у пользователя два целых числа и затем вычислять их сумму, разность, произведение и частное. Дано: а, Ь — заданные числа. Найти: S — их сумма, R — разность, Р — произведение, С — частное. S = а + Ь, R = а - Ь, Р = а-Ь, Связь: c = f- При: а, Ь — целые числа. Так как а и 6 — целые числа, то при описании присвоим им тип integer. Сумма, разность и произведение целых чисел также являются целыми числами. Поэтому переменные S, R я Р опишем тоже как Integer. Частное — действительное число (это видно, например, из записи 2;4=0,5). С учетом требований к типам переменных, участвующих в операции, переменную С опишем как Real. Глава 3. Основы программирования Получим программу: Program Calculi; Var a,b,S,R,Р: Integer; С: Real; Begin Writeln('Введите два целых числа' Readln(a,b); S:=a+b; R:=a-b; P:=a*b; C:=a/b; Writeln (a, ' + ',b, ' = ',S); Writeln (a, '-',b, ' =',R); Writeln (a, ,b, ' = P); Writeln (a, '/',b, ' = ',C:0:2); End. Для проверки правильности составления программы выполним ее многократно для различных пар целых чисел. Когда при очередном запуске программы введем б О Enter, на экране появится сообщение (рис. 3.6). Возникшая ошибка свидетельствует о невозможности выполнения операции деления на нуль. В данной программе нужно предупредить пользователя, напри- F1 Hejp I Accept the npttinas in Рис. 3.6 мер с помощью вывода на экран соответствующего сообщения, о недопустимости ввода нуля в качестве второго числа: Writeln('Введите два целых числа'); Writeln('Пожалуйста, не вводите О для второго числа!'); Readln(а,Ь); ^Пример 3. Составить программу решения задачи: «Определить, на какой высоте и на каком расстоянии от места броска окажется через время t (с) мяч, брошенный под углом а к горизонту с начальной скоростью Vq Дано\ Vq — начальная скорость; t (с) — время полета; а (в градусах) — угол броска. Найти: х (м) — расстояние от места броска; г/ (м) — высота полета. X = (Пц cosa)C Связь: у = (Wq sin а) t ■ (1) При: О < а < 90, 0<По <20, />0. 180 Метод: Выполнить расчет по формулам (1) при ограничениях (2). При этом следует выполнить перевод значения а из градусной меры в радианную: а = “ ’ При г/ < о будем считать, что мяч лежит на земле. Положим, что данные корректны и проверка ограничений (2) не требуется. Ниже даны графическое представление алгоритма решения задачи (рис. 3.7) и программа на языке Паскаль. Program BROSOK; Const g=9.8; Var VO,t,alfa,X,у: Real; Begin Write('введите скорость '); Рис. 3.7 С L Начало X (2) J Ввод Uq, t, a I ~ 7 a ;= a • я /180 x:= {Vf)Cosa)t, gC y:={vQS\na)t--— L X Вывод X, у С X Конец 7 Глава 3. Основы программирования Readln(VO); Write('введите время '); Readln(t); Write('введите угол '); Readln(alfa); alfa:=alfa*pi/180; x:=V0*cos(alfa)*t; y:=V0*sin(alfa)*t-g*t*t/2; Writeln('x=',X:0:1); Writeln('Y=',y:0:1); End. * Программист может поручить компьютеру формирование значений переменных в виде случайных чисел. Для этой цели используются стандартные функции: Random — для получения случайного действительного числа на промежутке (0; 1) и Random (п) — для получения случайного целого числа на отрезке [0; п—1]. Данным функциям в программе предшествует процедура Randomize, которая позволяет при повторном запуске программы получить новые случайные числа. Пример 4. Составить программу вычисления среднего возраста двух случайных прохожих. Программа будет иметь вид: Program SR LET; Var a,b: Integer; C: Real; Begin Randomize; {Пусть заданные числа принадлежат отрезку [1; 100]} а:=Random(10 0) -Ы; b:=Random (100)-Г1; C:=(a-t-b) /2; Writeln('Средний возраст=',С:0:1); End. Пример 5. Составить программу замены значений переменных а к Ь (пусть дано: а = 3, 6 = 5; требуется получить: а = 5, 6 = 3). Запись команд присваивания а: =Ь; Ь: =а; приведет к получению неверного результата: а-Ь = Ъ (убедитесь в этом!). исваивания На практике для решения задач обмена, как правило, используют еще один объект. Например, для обмена содержимого стакана и чашки, куда налита питьевая вода (газированная и негазированная соответственно), требуется третий предмет, например кружка. Поступим так: заменим значение переменной а на значение переменной Ь и наоборот. Для этого запомним в некоторой новой переменной, например с, значение переменной а (с:=а;); затем переменной а присвоим значение переменной Ь (а:=Ь;); переменной Ь присвоим значение переменной с (Ь:=с;) , таким образом, значение переменной Ь станет равным а. Задача решена: с:=а; а:=Ь; Ь:=с; (переменные а, Ь, с должны быть одного типа). I 1. Для чего используется оператор присваивания? [ 2. Какой формат имеет оператор присваивания? I 3. Каков порядок выполнения оператора присваивания? I *4. Можно ли получить решение примера 5 без использования дополнительной I переменной? Упражнения 1. Напишите программу вычисления значения выражения с использованием наименьшего количества операторов: ч -Ь± Jb‘^-4ac = —т,— в) Z = -у б) й! = л/(д +{У1 -У2? *г) у-Ъх^ + 1у? — 2х^ -Н 9х — 4 2. 5 + \ху\ Составьте программы решения задач: а) Андрей положил в сберегательный банк определенную денежную сумму под простые проценты. Определите, какова будет сумма вклада через один год. б) Семья Николая планирует провеети выходные на озере Нарочь. Рассчитайте стоимость проезда всей семьи в автомобильном транспорте, если известна стоимость билета в междугороднем автобусе. Стоимость билета в экспрессе на 50 % дороже, чем в междугороднем автобусе, а в маршрутном такси — на 60 % дороже, чем в экспрессе. Требуется приобрести два полных билета и два детских со скидкой 50 %. *в) Нужно купить обои для оклеивания двух стен, размером ахЬ ш каждая. Известна стоимость одного рулона обоев длиной 12 м и шириной 1 м. Определите стоимость обоев. 3. Зак. 170. § 12. Текстовый и графический режимы 1 S.1. Текстовый режим При выполнении программы вывод информации на экран может осуществляться в одном из двух режимов; текстовом или графическом. После загрузки среды программирования Borland Pascal экран находится в текстовом режиме. Текстовый экран представляет собой совокупность строк, которые разбиваются на позиции. В каждой позиции можно разместить один знак, координаты которого (горизонтальная и вертикальная) задаются двумя целыми числами: номером позиции в строке и номером строки, например точка экрана (40,12) находится в 40-й позиции 12-й строки (рис. 3.8). Чаще всего на экране в текстовом режиме размещается 25 строк по 80 знаков в каждой (возможны и другие текстовые режимы, например 50 строк по 80 знаков). Для управления режимами экрана, цветовой гаммой, звуком, кодами клавиатуры и др. используются подпрограммы модуля CRT (или OPCRT — проверьте имя Вашей библиотеки!). Для подключения модуля укажем его имя в разделе описания модулей, который размещается в описательной части сразу после заголовка программы: USES CRT; . После этого пользователю доступны следующие процедуры и функции: (1,1) 40 (80,1) Рис. 3.8 Подпрограмма Назначение Пример ClrScr; Очистка экрана (заполнение цветом фона) и размещение курсора в левом верхнем углу ClrScr; Delay(х); Приостановка выполнения программы на X миллисекунд (практически значение х зависит от тактовой частоты процессора) Delay(1000); GotoXY(X,Y); Установка курсора в позицию экрана с координатами {X, У) Вывод текста, начиная с позиции (30,12): GotoXY(30,12); Writeln('Здравствуйте!'); § 12. Текстовый и графический режимы Продолжение Подпрограмма Назначение Пример Sound(S); Включение внутреннего ди- Звучание звука с задержкой: намика и генерация звука {включение звукового сигнала ча- с частотой тона 5 Гц: вось- стотой 1200 Гц} МИ нотам до, ре, ми, ... пер- Sound(1200); вой октавы соответствуют ча- (задержка звучания на время стоты: 262, 294, 330, 349, 1000 мс} 392, 440, 494, 524. При переходе к соседней октаве частоты изменяются в два раза Delay{1000); NoSound; Выключение динамика NoSound; TextColor(C); Установка цвета символов С Вывод цветного текста: (0 — черный, 1 — синий, 2 — TextColor(2); зеленый, 3 — голубой, 4 — GotoXY(30,5); красный, 5 — фиолетовый. Writeln('Здравствуйте!'); 6 — коричневый, 7 — свет- TextColor(1); ло-серый, 8 — темно-серый. GotoXY(27,б); 9 — ярко-синий, 10 — ярко- Writeln('Начинаем изучать'); зеленый, 11 — ярко-голубой, TextColor(14); 12 — розовый, 13 — малино- GotoXY(34,7); вый, 14 — желтый, 15 — бе- Writeln('язык') ; лый, 128 — мерцание сим- GotoXY(27,8); вола) Writeln('программирования'); TextColor(4); GotoXY (33,9); Writeln{'Паскаль'); TextBack- Установка цвета фона С (8 TextBackGround(4); Ground(C); неярких цветов с номерами от 0 до 7) Пример. Написать программу исполнения музыкальной фразы «Жили у бабуси» (фа-ми-ре-до-соль-соль). Звучание должно сопровождаться выводом текста (как в «Караоке»). Программа будет такой: Program Kleine_Musik; Uses Crt; Begin Глава 3. Основы программирования ClrScr; Randomize; Sound(349); Delay(lOOO); Sound(330); Delay(lOOO); GotoXY(30,5); TextColor(2); Write('Жили'); Sound(294); Delay(1000); Sound(262); Delay(lOOO); GotoXY(30,6); TextColor(4 + 128) ; {Мерцание букв красного цвета} Write('у бабуси'); Sound(392); Delay(2000); Sound(392); Delay (2000); NoSound; Writeln ('Выход - клавиша Enter'); Readln; End. Упражнения 1. Напишите программу для получения собственной музыкальной композиции. 2. Напишите программу вывода на экран монитора красочно оформленного текста с музыкальным сопровождением (например, компьютерной открытки-поздравления «Лучшему другу в день рождения»). 1 S.S. Графический режим Всякое графическое изображение представляет собой совокупность точек ~ пикселей. Каждая из них задается своими координатами и цветом. Количество отображаемых на экране пикселей называют разрешающей способностью (разрешением) графического экрана. Разрешение экрана может быть различным в зависимости от типа графического адаптера (печатной платы, на которой размещаются электронные компоненты видеодисплея) и графического драйвера (специальной программы, которая осуществляет управление графичес- (0.0) 150 (639, 0) КИМ адаптером). Рассмотрим программирование графики в стандартном видеорежиме среды программирования Borland Pascal, который поддерживается современными компьютерами: 640 X 480 X 16 (640 точек по горизонтали, 480 точек по вертикали, 16 цветов). Графический экран как совокупность точек (пикселей) координатной плоскости изображен на рисунке 3.9. Каждая точка (позиция) экрана задается номером § 12. Текстовый и графический режимы пикселя по горизонтали и вертикали. Например, пиксель (150, 120) находится в 150-м столбце и 120-й строке. Для управления графическим экраном предназначен модуль GRAPH. Сам модуль представляет собой отдельный файл Graph.tpu. При программировании он должен быть доступным для компилятора. Также доступным (для запуска программ) должен быть драйвер EGAVGA.bgi. Для упрощения программирования скопируем файл Graph.tpu и драйвер EGAVGA.bgi в рабочую папку. Файл Graph.tpu хранится в папке UNITS, а файл EGAVGA.bgi — в папке BGI, вложенной в папку BR Для работы необходимо выполнить следующие действия: 1. Подключить модуль GRAPH — USES GRAPH; 2. Выполнить инициализацию графического режима (переход в графический режим); а) в разделе описания переменных описать две целочисленные переменные для указания драйвера и режима работы графического адаптера, например gd и gr соответственно; Var gd,gr: Integer; б) в разделе операторов установить графический режим с помощью процедуры INITGRAPH: Begin gd:=DETECT; INITGRAPH(gd,gr,''); 3. Выполнить графические построения. 4. В конце программы выполнить возврат в текстовый режим с помощью процедуры CLOSEGRAPH: Readln; {задержка результата на экране монитора} CloseGraph; End. Общий вид процедуры INITGRAPH: INITGRAPH (дрг1Йвер, режим, путь) ;. Здесь «путь» — полный путь к папке, в которой хранится нужный графический драйвер. Так как требуемый графический драйвер мы скопировали в текущую рабочую папку, путь будем представлять как «пустую строку». Для задания типа драйвера используем режим автоопределения DETECT. * При инициализации графического режима можно написать конкретный путь к файлам драйверов, например initGraph (драйвер, режим. Глава 3. Основы программирования i 'C:\BP\BGI');. В этом случае предварительное копирование файлов I Graph.tpu и EgaVga.bgi в рабочую папку не требуется, j Можно также соответствующим образом настроить среду программирова-1 ния ВР: для этого в режиме среды Options — Directories — Unit directories j указывается каталог, в котором размещаются требуемые файлы; например I C:\BP\UNITS; \BP\BGL * § 13. Создание изображений 13.1. Задание цвета Прежде чем приступить к рисованию, художник готовит чистый холст и краски. При рисовании на языке Паскаль холст (фон рисунка) можно очистить с помощью процедуры ClearDevice;. При этом холст заполняется фоновым цветом (по умолчанию черным). Для выбора цвета фона, на котором будет выполняться рисунок, используется процедура SetBkColor: SetBkColor (номер цвета); . Эта процедура изменяет цвет фона, не изменяя изображений (в отличие от процедуры ClearDevice, которая стирает все изображения). Для выбора цвета изображения используется процедура SetColor: SetColor (номер цвета); . 1. При инициализации графического режима экран автоматически очищается (заполняется фоновым цветом). 2. В программе вначале задается цвет изображения, и лишь затем используются средства для получения этого изображения! Цвет выбирается из таблицы цветов (см. п. 12.1), например процедурой SetColor (4);. 13.S. Построение графических примитивов Объект Изображение Запись на языке Паскаль Точка заданного цвета X PutPixel (Х,У,цвет); Y § 13. Создание изображений 71 Продолжение Объект Изображение Запись на языке Паскаль Отрезок прямой с заданными координатами его начала и конца XI Х2 Line(XI,Y1,X2,Y2); ИЛИ Line(X2,Y2,X1,Yl); Прямоугольник с заданными координатами его диагональных точек XI Х2 Y1 Y2 :0 Rectangle (X1,Y1,X2, Y2) ; Закрашенный прямоугольник с заданными координатами его диагональных точек XI Х2 Y1 Y2 :И Ваг(XI,Y1,X2,Y2); Окружность заданного радиуса с заданными координатами центра Circle(X,Y,R) Пример 1. С помощью рисунка 3.10 составить программу получения на экране монитора изображения прямоугольного треугольника и точки желтого цвета на зеленом фоне. Программа будет такой: Program Triangle; Uses Graph; Var a,b: Integer; Глава 3. Основы программирования О Begin О 240 400 639 а:=Detect; InitGraph(а,b,''); SetBkColor(2); SetColor (14); Line (240,70,240,270); Line (240,270,400,27 0); Line (240,70,400,270); PutPixel(400,70,14); Readln; CloseGraph; End, Пример 2. C помощью рисунка 3.11 составить программу получения на экране монитора изображения снежной бабы (белого цвета на синем фоне). Программа будет такой; Program BABA; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph (a,b, ' ' SetBkColor(1); SetColor (15); Circle(320,60,30); Circle (320,140,50); Circle(320,260,70); Readln; CloseGraph; End. Пример 3. C помощью рисунка 3.12 составить программу получения на экране монитора изображения головы робота. Программа будет такой: Program ROBOT; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b,''); SetBkColor(1); 320 639 320 639 § 13. Создание изображений MoveTo(X,Y); MoveRel(dX,dY) LineTo(X,Y); LineRel(dX,dY) SetColor (15); {голова} Rectangle(270,180,370,300); {уши} Rectangle(240,220,270,260) ; Rectangle(370,220,400,260) ; Readln; CloseGraph; End. * 1. При построении линейных изображений, состоящих из последовательно соединенных отрезков, удобно использовать процедуры: Перемещение текущего указателя в точку с координатами (X,Y) Перемещение указателя от точки (X,Y) до точки (X+dX, Y+dY) Построение отрезка от текущей точки в точку (X,Y) Построение отрезка от текущей точки (X,Y) до точки (X-bdX,Y+dY) 1 Положение текущей точки зависит от графического оператора, который был ! выполнен последним. Например, после оператора Line (0, 0, 70, 50); I текущейстановитсяточка(70,50);послеоператораРибР1хе1 (30, 90); — I точка (30, 90). Пример 4. С помощью рисунка 3.13 составить программу получения изображения прямоугольной трапеции. Программа будет такой: Program TRAPECIA_1; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b,' MoveTo (240, 60); LineTo (240,2 00); {вниз} LineTo(450,200); {вправо} LineTo(350,60); {влево вверх LineTo (240, 60); {влево} Readln; CloseGraph; End. 240 350 450 639 Глава 3. Основы программирования Второй вариант решения примера 4 (с использованием процедуры LineRel): Program TRAPECIA_2; Uses Graph; Var a,b: Integer; Begin a:=Detect;InitGraph(a,b,''); MoveTo(240,60); LineRel(0,140); LineRel(210,0); LineRel(-100,-140);LineRel(-110,0); Readln; CloseGraph; End. 2. Язык Паскаль позволяет изображать линии разнообразных стилей (по ширине и начертанию — внешнему виду). Установка стиля производится с помощью процедуры SetLineStyle (вид линии, шаблон, толщина линии); . Будем считать шаблон равным нулю. Остальные значения могут быть такими: вид линии: сплошная линия (0), точечная (1), штрихпунктирная (2), пунктирная (3); толщина линии: нормальной толщины (1), тройной толщины (3). Например, SetLineStyle (0,0,3) ; {Задание линии большой толщины} SetLineStyle (3,0,1) ; (Задание пунктирной линии нормальной толщины}. 3. Возможно совместное подключение модулей Crt и Graph и использование в одной программе подпрограмм обоих модулей. Например, для замедления процесса рисования можно использовать процедуру Delay: Program CRT_GRAPH; Uses Crt,Graph; Var a,b: Integer; Begin ... LineTo(240,200) ; Delay(200) ; LineTo(450,200);Delay(300) ; Readln; CloseGraph; End. * Упражнения 1. Испытайте приведенные в примерах обходимыми деталями: —4 программы, дополните рисунки не- а) у снежной бабы (см. рис. 3.11) изобразите глаза-пуговки, нос-морковь; б) дорисуйте роботу (см. рис. 3.12) глаза прямоугольной формы, нос, рот, антенны; вместо процедуры Rectangle используйте процедуру Ваг. 2. Напишите программы получения изображений; При выполнении изображений используйте различные стили: в прямоугольнике изобразите, например, диагонали пунктирной линией. *3. Получите с помощью счетчика случайных чисел координаты трех точек графического экрана — вершин треугольника — и изобразите его. 3.3. Построение сложных графических объектов Объект Изображение Запись на языке Паскаль Дуга окружности текущего цвета —^2 V-'' Arc (X, Y, а^, аг, R) ; (X,Y) — координаты центра дуги, R — радиус дуги окружности ..-•"Van (x,y)l Дуга эллипса текущего цвета / ^RX Ellipse (X, Y,ai,a2,RX,RY) ; (X,Y) — координаты центра эллипса, RX, RY — длины горизонтальной и вертикальной полуосей (большого и малого радиусов) (X, У) Здесь tt], «2 — начальный и конечный углы, которые образуют концы дуги с горизонтальной осью (отсчитываются против хода часовой стрелки). Глава 3. Основы программирования О 130 320 510 639 150 250 639 Пример 1. Составить программу получения изображения эллипса с центром в точке (320, 240) и длинами полуосей 190 и 80 (рис. 3.14). Программа будет такой: Program ELIPS; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b,''); Ellipse(320,240,0,360,190,80) Readln; CloseGraph; End. Пример 2. Составить программу получения изображения «левой» полуокружности с центром в точке (250, 200) и радиусом 100 (рис. 3.15). Программа будет такой: Program POLUOKR; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b,''); Arc(250,200,90,270,100); Readln; CloseGraph; End. 13.4. Заполнение областей изображения Вы уже знаете, каким образом в языке Паскаль изображается закрашенный прямоугольник. Имеются другие средства для закрашивания («заливки») замкнутых областей. Будем понимать под заливкой заполнение некоторым узором (цветом или штриховкой различного вида) области изображения, ограниченной контуром (непрерывной замкнутой линией). Пусть на экране монитора получено изображение некоторого замкнутого контура с использованием цвета С {С — цвет контура области) и задана некоторая точка экрана (X, Y). Если данная точка принадлежит области, ограниченной контуром, то эта область может быть заполнена текущим цветом с помощью процедуры FloodFill (X,Y,C) Если точка находится вне области, происходит заполнение внешней к контуру области. Для выбора стиля (шаблона и цвета) заполнения области используется процедура SetFillStyle: SetFillStyle(шаблон, цвет заполнения);. Значения шаблона задаются равными: О (сплошной цвет фона), 1 (сплошной текущий цвет), 2—6 (штриховка различной толщины и наклона), 7—9 (заполнение клеткой различной толщины и наклона), 10—И (заполнение точками, густо или редко расположенными). При использовании процедуры SetFillStyle цвет заполнения может быть не равен цвету контура. Пример 1. С помощью рисунка 3.16 написать программу заполнения прямоугольного треугольника белым цветом (с контуром желтого цвета на зеленом фоне). Программа будет такой: Program Triangle_l; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b, SetBkColor(2);SetColor (14 Line(240,70,240,270) ; Line(240,270,400,270); Line (240,70,400,270); FloodFill(320,200,14); Readln; CloseGraph; End. Пример 2. C помощью рисунка 3.16 написать программу заполнения прямоугольного треугольника красным цветом (с контуром желтого цвета на зеленом фоне). Скорректируем программу Triangle_l: 240 320 400 639 {корректировка программы Triangle_l^ Line (240,70,400,270); SetFillStyle(1,4); {сплошной красный цвет заливки} FloodFill (320,260, 14); *Пример 3. С помощью рисунка 3.17 написать программу заполнения прямоугольной трапеции штриховкой светло-серого цвета нормальной толщины. Программа будет такой: LineTo (240,60); SetFillStyle(3,7); FloodFill(350,175,1); Readln; CloseGraph; End. Пример 4. C помощью рисунка 3.18 напишите программу заполнения окружности желтым цветом, которая после нажатия на клавишу Enter изменяет цвет заливки на зеленый. Программа будет такой: Program CIRC; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph(a,b,''); SetColor(14);{желтый контур} Circle(320,175,100); 0 320 639 § 13. Создание изображений {желтая заливка) SetFillStyle(1,14); FloodFill(320,175,14); Readln; ClearDevice; SetColor(14) ; Circle(320,175, 50) ; SetFillStyle (1,2); FloodFill(320,175,14); Readln; CloseGraph; End. В языке Паскаль существуют специальные средства для заполнения эллипса, секторов круга и эллипса, параллелепипеда. (очистка экрана} (желтый контур} (зеленая заливка] Объект Изображение Запись на языке Паскаль Эллипс, закрашенный текущим узором и цветом заполнения FillEllipse(X,Y,RX,RY); где (X,Y) — координаты центра эллипса, RX, RY — длины горизонтальной и вертикальной полуосей Сектор круга, заполненный текущим узором PieSlice(X,Y, а^,аг, R) ; где (X,Y) — координаты центра, а,, аг — начальный и конечный углы сектора, R — его радиус Сектор эллипса, закрашенный цветом по текущему шаблону Sector (X,Y,ai,a2,RX,RY) ; где (X,Y) — координаты центра эллипса, RX, RY — длины горизонтальной и вертикальной полуосей, а;, ag — начальный и конечный углы сектора Параллелепипед, передняя грань которого может быть закрашена по текущему шаблону (XI,Y1)^ ZD Bar3D(Xl,Yl,X2,Y2,D,Top); где (XI, Yl), (Х2, Y2) — координаты диагональных точек передней грани (прямоугольника), D — ширина боковой грани. Тор — признак отображения верхней грани (TRUE — отображать, FALSE — не отображать) (X2,Y2) Глава 3. Основы программирования Пример 5. Написать программу получения изображения геометрических объектов на экране монитора (рис. 3.19). Программа будет такой: Program PRIM; Uses Graph; Var a,b: Integer; Begin a:=Detect; InitGraph (a,b, ' '); SetBkColor (1); SetColor(14); SetFillStyle(1,12); FillEllipse(300,200,30,50); SetFillStyle(1,10); PieSlice (300,140,315,225,20); SetFillStyle(1,8); Sector (300,300,45,135,100,50); Line (50, 450, 600,450); SetFillStyle(l,2); Bar3D(200,400,100,450,20,True); SetFillStyle(1,4); Bar3D(400,450,450,350,50,True); Readln; CloseGraph; End. * Рис. 3.19 {синий цвет фона} {желтый контур} {розовая заливка} {эллипс} {ярко-зеленый} {сектор} {темно-серый} {сектор эллипса} {зеленый закрашенный} {параллелепипед} {красный закрашенный) {параллелепипед} 1. В каких режимах может выполняться вывод информации на экран монитора? 2. Какова разрешающая способность экрана при выводе графической информации на Вашем компьютере? 3. Каково назначение процедур InitGraph и CloseGraph? Упражнения 1. Напишите программу получения изображения (на выбор): а) 0 б) Ч Ф Д) 14. Работа с текстом е) л) ж) м) 3) и) о) ж к) *2. Случайным образом разместите на экране треугольник и изобразите его медианы. § 14. Работа с текстом 14.1. Отображение текста В графическом режиме на экран можно выводить только текстовую информацию. Для этих целей используются стандартные подпрограммы: OutText (' текст ') ; — текст выводится на экран монитора, начиная с текущей позиции указателя (графического курсора). OutTextXY (X, Y, 'текст') ; — текст выводится на экран монитора, начиная с позиции (X, Y). Пример. Дополнить программу построения треугольника Triangle (п.13.2) выводом текста «Прямоугольный треугольник» (коричневым цветом) ниже изображения, начиная с позиции (220, 330). Дополнение программы: SetColor(6); OutTextXY(220,330, 'Прямоугольный треугольник'); . *14.S. Установка шрифта и стиля Для изменения внешнего вида выводимого текста (ориентации, направления вывода, размера символов) используется процедура SetTextStyle: SetTextStyle (шрифт, ориентация, размер); . Для параметра «шрифт» определены значения: 0 (обычный матричный шрифт), I (полужирный шрифт), 2 (тонкий шрифт), 3 (рубленый шрифт), 4 (готический шрифт). Значения параметра «ориентация»: 0 (обычное горизонтальное отображение текста), 1 (каждый символ повернут на 90” в направлении против хода часовой стрелки, при этом текст отображается снизу вверх); 2 (отображение текста в горизонтальном направлении слева направо). Значения параметра «размер»: от О до 10. Использование процедуры SetTextStyle требует наличия в текущем каталоге файлов шрифтов *.chr. Пример SetTextStyle (0,0,5); OutText('Горизонтальный вывод большими буквами'); SetTextStyle(0,1,1); OutText ('Вертикальный вывод'); Упражнение Напишите программы вывода изображений: а) плаката «Программирование — вторая грамотность»; *б) текста программы вычисления суммы двух чисел, значения которых вводятся с клавиатуры; *в) расписания уроков на понедельник. § 15. Алгоритмическая структура ВЕТВЛЕНИЕ в языке Паскаль выделяются два класса операторов: простые и структурные. Простой оператор не содержит в своей записи других операторов, а его выполнение не связано с анализом некоторых условий (программа выполняется последовательно: от первого оператора ко второму, от второго — к третьему и т. д.). Структурный оператор содержит в своем составе другие операторы, порядок выполнения которых определяется некоторыми условиями. К первому классу относятся оператор присваивания и операторы обращения к процедурам, ко второму — условный оператор (оператор ветвления), операторы выбора, цикла (If, Case, While, For). Несколько операторов с помощью операторных скобок Begin и End объединяются в составной оператор. С помощью простых операторов можно реализовать линейные алгоритмы, с помощью условного оператора и оператора выбора — разветвляющиеся алгоритмы, с помощью операторов цикла — циклические алгоритмы. Параграфы 15, 16 посвящены изучению структурных операторов языка программирования Паскаль. § 15. Алгоритмическая структура ВЕТВЛЕНИЕ 15.1. Логические величины и выражения Довольно часто на поставленный вопрос мы получаем ответ «да» или «нет». Величины, которые могут принимать одно из двух значений «истина» (TRUE) или «ложь» (FALSE), называют логическими. Им соответствует логический тип данных, который в языке Паскаль описывается как Boolean. Значение логического типа занимает в памяти I байт: FALSE — О, TRUE — 1. Допустимые операции для логического типа данных: операции сравнения (отношения) и логические операции. Арифметические выражения можно сравнивать между собой с помощью операций сравнения. Эти операции известны нам из курса математики. В языке Паскаль им соответствуют операции сравнения: = (равно), <> (не равно), > (больше), >= (больше или равно, т. е., не меньше), < (меньше), <= (не больше). С помощью операций сравнения строятся выражения сравнения, например, х=5; а>Ь; а*х-ь3<=0; 7-хо5*с; а>=Ь*с; omega В (числовые значения величин Л и В вводятся с клавиатуры). Программа на языке Паскаль может быть такой: Program TRU_FA1; Var А,В: Real; Z: Boolean; Begin Write ('Введите число A='); Readln(A); Write ('Введите число В='); Readln(В); Z:=A>B; Writeln('A>B? ', Z) ; End. После запуска программы введем числа 5 (оно будет передано переменной А) и 3 (передается переменной В). Результат работы программы: А>В? True (действительно, 5 > 3 — истинное неравенство). Если ввести числа О и 4,8, результат будет таким: А>В? False Глава 3. Основы программирования Пример 2. Составить программу проверки: правильно ли пользователь даст ответ на вопрос: «Когда был основан город Минск?» Программа на языке Паскаль может быть такой: Program TRU_FA2; Var G: Integer; Z: Boolean; Begin Writeln('Когда был основан город Минск?'); Readln(G); Z:=G=1067; Writeln (Z) ; End. Выражение называется логическим, если результатом его вычисления является логическое значение: TRUE или FALSE. Логические выражения строятся с помощью допустимых операндов и логических операций AND (И), OR (ИЛИ), NOT (НЕ). Примеры логических выражений: (а>Ь) and (а>с) ; (Х<=1) or (Y>5) and (а>2); (4*Х-1>0) and (Х-ь2<3) ; not (a=b) . Операции сравнения имеют низший приоритет по сравнению с другими операциями, поэтому отношения в логических выражениях заключают в скобки. Ниже записаны логические операции от высшего приоритета к низшему (операции высшего приоритета выполняются в первую очередь): Операция Действие NOT Отрицание, или логическое НЕ AND Логическое умножение, или логическое И OR Логическое сложение, или логическое ИЛИ Результаты выполнения логических операций (Т — истина, F — ложь) приведены в следующей таблице: X Y Логическая операция NOT X X AND Y X OR Y Т Т F Т Т Т F F F Т F Т Т F Т F F т- F F итмическая ВЕТВЛЕНИЕ Пример 3. Определить порядок вычисления значения логического выражения (4*Х-1>0) and (Х+2<3). Сначала вычисляется значение выражения 4*Х-1, затем оно сравнивается с числом О и определяется истинность условия 4*Х-1>0; аналогично для логического выражения X-i-2<3; затем вычисляется значение всего выражения в зависимости от значений каждого выражения; X 4*Х-1>0 Х+2<3 (4*Х-1>0) and (х+2<3) 5 19>0 ^ Тше 7<3 False True and False ^ False 0.5 1 >0 ^ True 2.5<3 ^ True True and True ^ True Z:-{x>=6) and (х<=19); Пример 4, Написать программу, проверяющую, верно ли, что человек, возраст которого X, является школьником. Задача сводится к проверке условия 6 < х < 19. Программа на языке Паскаль может быть записана следующим образом; Program LOGIST; Var х: Byte; L,P,Z: Boolean; Begin Write('Возраст='); Readln (x); L:=x>=6; 1 P:=x<=19; У Z:=L and P;J Writeln('3TO школьник? Z); End. Результаты работы программы после двух запусков; Возраст=34 Это школьник? False Возраст=15 Это школьник? True Упражнения 1. Запишите выражение средствами языка Паскаль; а) а < 1 б) {х — af + {у — bf < в)|х —а|<8 г)0<а<1 д) 0,1 0; г) Федор может купить на заданную денежную сумму нужное количество тетрадей (стоимость одной тетради, их количество и имеющаяся сумма вводятся с клавиатуры). 15.S. Условный оператор При решении задач часто возникает необходимость в зависимости от выполнения или невыполнения некоторого условия выполнять то либо другое действие (последовательность действий). Такая форма организации действий в алгоритмах называется ветвлением. Ветвление в Паскале реализуется с помощью условного оператора IF, который позволяет выбрать для последующего выполнения один из вариантов вычислений либо не выбрать ни одного. В языке Паскаль существуют две формы записи команды ветвления: сокращенная IF Р THEN S; (рис. 3.20, а) и полная IF Р THEN S1 ELSE S2; (рис. 3.20, б). Здесь Р — условие разветвления (логическое выражение или выражение отношения), S, Si, — выполняемые операторы. ^Условие Р называют простым, если оно содержит единственное выражение отношения, и составным, если оно состоит из нескольких выражений отношения, соединенных логическими операциями. В составных условиях выражения отношения заключаются в круглые скобки. Примеры простых условий: а>Ь, 5+х=3, Примеры составных условий: (х+у=5) and (2*x*sin(х)<5.5) (х<у) or not (y z IF Да 3 THEN S; Нет Рис. 3.21 Порядок выполнения операторов приводится на рисунке 3.21. Так, в сокращенной конструкции, если условие Р истинно, выполняется оператор S, а затем — оператор, следующий за оператором IF. Если по одной из ветвей после служебных слов THEN и (или) ELSE требуется выполнить более одного оператора, их ограничивают операторными скобками BEGIN ... END и рассматривают как составной оператор. Например, в программе, определяющей наибольшее число из двух заданных чисел: [а, если а > Ь, [Ь, если а < Ь, условный оператор будет выглядеть так: If а>Ь Then х:=а Else х:=Ь; Если требуется определить наибольшее число х из двух заданных чисел а и Ь и вывести его номер k: X = X = a, если а> Ь, b, если а < 6; k = fl, если а > Ь, [2, если а < Ь, условный оператор в программе на языке Паскаль будет таким: If а>Ь Then Begin х:=а; к:=1; End Else Begin x:=b; k:=2; End; Пример I. Записать условный оператор для программы, позволяющей определить наибольшее число среди трех заданных чисел. Ниже показаны возможные взаимные расположения на числовой прямой точек, соответствующих числам а, Ь, с. 1 Глава 3. Основы программирования 1 а 1 ь 1 1 с 1 1 а 1 1 с 1 1 ь 1 1 Ь 1 1 а 1 1 С 1 I ь 1 с 1 1 а 1 с 1 1 а 1 1 ь 1 с 1 Ь а Условный оператор может выглядеть следующим образом: If а>Ь Then IF а>с Then х:=а Else х;=с; If ac Then x:=b Else x:=c; * Использование логической операции and может сделать наш оператор более компактным; If (а>Ь) and (а>с) Then х:=а;... * Пример 2. Написать программу, моделирующую работу пожарного датчика в помещении: программа должна выводить сообщение «Пожароопасная ситуация», если температура в комнате превысит 60 °С; если температура не более 60 °С, датчик «молчит». На языке Паскаль программа решения задачи может выглядеть так: Program OGON; Var Т: Real; Begin Write ('Т=');Readln(Т); If Т>60 then Writeln ('Пожароопасная ситуация'); End. Пример 3. Написать программу, которая позволит определить, является ли человек, возраст которого х, школьником. Задача сводится к проверке условия; 6<х< 19 (сравните с решением примера 4 п. 15.1). Program School_l; Var X: Byte; Begin Write('Возраст='); Readln(X); If X>=6 Then If X<=19 Then Writeln ('школьник'); End. * Если использовать логическую операцию and, программа будет выглядеть так: Program School_2; Var X; Byte; Begin Write ('Возраст='); Readln(X); If (X>=6) and (X<=19) Then Writeln ('школьник'); End. При мер 4. Составить программу, которая определит, на какой высоте и на каком расстоянии от места броска окажется через время t с мяч, брошенный под углом а к горизонту с начальной скоростью Wq м/с (с учетом проверки корректности исходных данных) (см. пример 3 § И). Получим программу: Program BROSOK; Const g=9.8; Var VO,t,alfa,X,у: Real; Begin Write('введите скорость Write('введите время '), Write ('введите угол '); Readln(alfа); alfa:=alfa*pi/180; If (alfa>0) and (alfa<=pi/2) and (V0>0) and (V0<=20) and (t>0) Then Begin x:=V0*cos(alfa)*t; y:=V0*sin(alfa)*t-g*t*t/2; Writeln ('x=',x); Writeln('y=',y); End; End. '); Readln(VO); Readln(t); Глава 3. Основы программирования В программе используется неполная команда ветвления: если требуемые условия не выполняются, программа не совершает никаких действий. Можно предусмотреть вывод сообп;ения о некорректных данных: If (alfa>0) and (...) ... then Begin ... End Else Writeln('Некорректные данные'); Пример 5. Написать программу для решения неравенства ах>Ь [а,Ь — действительные числа). Возможны следующие варианты ответа: 1) X > Ь/а (при а > 0); 2) х<Ь/а (при а < 0); 3) нет решений (при а = 0, Ь> 0); 4) X — любое число (при а = 0, Ь < 0). Графическое представление алгоритма решения задачи показано в виде блок-схемы на рисунке 3.22. Программа на языке Паскаль может быть такой: Program Neravenstvo; Var a,b: Real; Begin Write ('a=');Readln(a); Write ('b=');Readln(b); If a>0 Then Writeln(’x>',b/a) Else If a<0 Then Writeln('x<',b/a) Else If b>=0 Then Writeln ('нет решений') Else Writeln('x — любое число'); End. § 15. Алгоритмическая структура ВЕТВЛЕНИЕ В случае вложенных ветвлений каждое новое ключевое слово Else следует считать относящимся к ближайшему неиспользованному If. Например, If х>-5 Then If x<=6 Then y:=x*x Else y:=x*x*x Else y:=x; Этот фрагмент позволяет вычислить значение у по формуле: X, если X < - 5, У , если - 5 < X < 6, х^, если X > 6.* 1. Какие значения могут принимать переменные типа Boolean? 2. Какие операции сравнения и логические операции допустимы в языке Паскаль? 3. Что может использоваться в качестве условия в условном операторе? Упражнение Напишите программы решения задач: а) найти лучший результат в забеге на 100 м трех спортсменов; б) решить квадратное уравнение ах^ + Ьх + с = Q {аф0)\ *в) заданы три действительных числа. Выяснить, могут ли они оказаться длинами сторон некоторого треугольника; * г) определить, принадлежит ли точка (х, у) заданной области: —3 < X < 3, у < X -Ь 3, г/ < —X -Н 3, ^ —4 (рис. 3.23, а); —3 < X < 3, у < l^x -Ь 2, у > —4 (рис. 3.23, б); 2х — 4 < у < 2х -Ь 4, —2х — 4 < у < —2х -Ь 4 (рис. 3.23, в). Глава 3. Основы программирования 5.3. Оператор выбора CASE Оператор выбора (варианта) CASE представляет собой частный случай реализации структуры ВЕТВЛЕНИЕ, когда возникает необходимость выбора одного из нескольких возможных вариантов вычислений в зависимости от значений некоторого выражения (ключа, селектора). Порядок выполнения оператора CASE следующий: вычисляется значение выражения К\ полученное значение сравнивается со значениями К\, К2, KN\ если оно совпадает с одним из этих значений, то управление передается соответствующему оператору и выполнение оператора CASE завершается. Если значение выражения К не совпадает ни с одним из возможных значений, далее все зависит от типа оператора CASE: если он полный (в нем присутствует служебное слово ELSE), то управление передается команде S; в противном случае выполнение оператора завершается. Вариант записи, полученный после зачеркивания строки и блока в приведенной на рисунке 3.24 схеме, соответствует оператору выбора (или, как его еще называют, оператору варианта) в неполной (сокращенной) форме. CASE К OF К1: S1; К2: S2; KN: SN; END; выражение, определяющее значение KN — возможные значения Рис. 3.24 К - ключа; /а, /С2, ключа; 51, 52, ..., SN, 5 — выполняемые операторы (простые или составные). Селектор К представляет собой выражение порядкового типа. К порядковому типу относятся целочисленный, логический и символьный типы. С последним мы познакомимся в 12-м классе. В языке Паскаль допускается использование нескольких возможных значений ключей, разделенных запятой (перечисление значений) или двумя точками (диапазон значений); например: § 15. Алгоритмическая структура ВЕТВЛЕНИЕ Var I: Integer; If 1=1 Then A:=X+Y; If 1=2 Then A:=X-Y; If (I>=3) and (I<=5) Then A:=X*Y; If (I>5) and (I<8) Then A:=X/Y; Case I of 1: A: =X+Y; 2: A: =X-Y; 3. .5: A: =X*Y; 6,7: A: =X/Y; End; Пример I. Составить программу, которая проверит, делится ли заданное натуральное число на 7. Пусть X — заданное натуральное число. Составим выражение сравнения: X mod 7 = 0. Используем это выражение в качестве селектора; его возможные значения; True, False. Ниже приводятся два варианта использования оператора выбора (в полной и неполной формах); Program PRIM_1; Var X : Longint; Begin Write('Введите натуральное число '); Readln(x); Case X mod 7 = 0 of True: Writeln ('делится на 7'); False: Writeln ('не делится на 7'); End; Case X mod 7 = 0 of True: Writeln ( 'делится на 7 ' ) Else Writeln ('не делится на 7'); End; End. Пример 2. Составить программу, которая по номеру дня недели определит его название. При написании программы на языке Паскаль можно использовать условный оператор IF: If Num=l Then Writeln('Понедельник') Else if Num=2 Then Writeln{'Вторник') Else if Num=3 Then Writeln('Среда') Else if Num=4 Then Writeln ('Четверг') Else if Num=5 Then Writeln('Пятница') Else if Num=6 Then Writeln('Суббота') Else if Num=7 then Writeln('Воскресенье') Else Writeln ('Это не номер дня недели'); Использование оператора Case делает программу более компактной; Program Day; Var Num: Byte; Begin Writeln ('Введите номер дня недели'); Readln(Num); Case Num of 1: Writeln ( 'Понедельник') ; 2 : Writeln ('Вторник') ; 3 : Writeln ( ' Среда'); 4 : Writeln ('Четверг'); 5: Writeln ('Пятница'); 6: Writeln ('Суббота'); 7 : Writeln ('Воскресенье') Else Writeln ('Это не номер дня недели'); End; End. Пример 3. Составить программу, которая для заданных номеров месяца и года позволит определить количество дней в этом месяце. Дано: month, year — номера месяца и года. Найти: kol_days — количество дней в этом месяце. Связь: kol_days = < 31, если month - 1 или 3, или 5, или 7, или 8, или 10, или 12, 30, если month = 4 или 6, или 9, или 11, 29, если month = 2 и year — високосный, 28, если month = 2 и year — невисокосный. § 15. Алгоритмическая структура ВЕТВЛЕНИЕ year — високосный, если year делится без остатка на 4, кроме тех, которые делятся на 100 и не делятся на 400. Например, 1900 год — невисокосный, 2000 год — високосный. Будем считать, что данные корректны. Program Days; Var Year: Integer; month,kol_days: Byte; Sto: Boolean; Begin Write('Введите номер месяца '); Readln(month); Case month of 1,3,5, 7, 8,10, 12 4,6,9,11 2 kol_days:=31; kol_days:=30; Begin {февраль} Write('Введите номер года '); Readln(Year); Sto:=(Year mod 100)=0; if ( (Sto=True) and (Year mod 400 =0)) or ( (Sto==False) and (Year mod 4=0) ) Then kol_days:=29 Else kol_days:=28; End; End; Writeln(kol_days) ; End. 1. Какова структура условного оператора? * Оператора выбора? 2. Каков порядок выполнения условного оператора? * Оператора выбора? Упражнение Напишите программы решения следующих задач: а) программа предлагает ввести возраст человека и выводит, к какой группе он относится: дошкольник, ученик, работник, пенсионер; б) программа предлагает ввести число k полных лет человека (от 1 до 120) и выводит фразу: «Вам k лет». Например, при ^ = 3 фраза будет такой: «Вам три года», при ^=18 — «Вам 18 лет», при k = 101 — «Вам 101 год»; в) программа предлагает ввести номер года и выводит в римской системе нумерации век, к которому относится заданный год; Глава 3. Основы программирования г) программа предлагает ввести текущее время и выводит период суток (день, ночь, утро, вечер); *д) таблица К- Купера позволяет определить степень физической подготовленности человека в зависимости от суммы очков, набранных им на занятиях по физической культуре за неделю: Сумма очков, набранных за неделю Степень физической подготовленности Юноша Девушка Не менее 75 Не менее 65 Превосходная 51—74 41—64 Отличная 32—50 27—40 Хорошая 21—31 16—26 Удовлетворительная 10—20 8—15 Плохая Меньше 10 Меньше 8 Очень плохая Программа предлагает ввести сумму набранных очков, уточняет, кто их набрал (юноша или девушка), и выводит на экран компьютера степень физической подготовленности. § 1 Б. Алгоритмическая структура ПОВТОРЕНИЕ 16.1. Цикл с предусловием WHILE Мы часто встречаем алгоритмы, в которых одно и то же действие или группа действий повторяется до тех пор, пока выполняется некоторое условие. При составлении программ на языке Паскаль повторяющиеся действия можно реализовать с помощью операторов цикла. Одним из них является цикл While : While Р do S; . Его принято называть «цикл с предусловием», так как проверка условия выполнения цикла осуществляется до выполнения операторов, входящих в состав тела цикла. В общем виде графически работа оператора представлена на рисунке 3.25. Здесь Р — логическое выражение (условие выполнения цикла); S — оператор (простой или составной), который выполняется, если Р истинно, — тело цикла. Использование цикла WHILE оправдано, когда количество повторений-операторов тела цикла заранее неизвест- но и зависит от истинности условия Р, которое проверяется в начале тела цикла. Это количество может быть равно нулю (если еще до первого попадания в цикл условие Р оказалось ложным). Например, согласно фрагменту программы Readln(К); While К<=5 do Begin Writeln('Делай ',К); К:=К+1; End; ^ Тело цикла на экран компьютера при /С=3 будет выведено; Делай 3 Делай 4 Делай 5 При /С= 5 тело цикла будет выполняться один раз, а при Д= 10 (/(> 5) — ни одного раза. Пример 1. Написать программу нахождения первой (старшей) цифры заданного натурального числа п. Идея алгоритма основана на последовательном делении на 10 числа п и получаемых частных от деления (рис. 3.26); процесс деления закончится, когда будет получено частное, меньшее 10. На языке Паскаль программа может выглядеть так; {заданное число} {искомая цифра} 32395 10 5 3239 10 9 323 10 3 32 2 Ж 3 J Рис. 3.26 Program ONE; Var n; Longint; C: Longint; Begin Write ('n='); Readln(n); C: =n ; While 09 do C:=C div 10; Writeln('Первая цифра=',С); End. Анализируя программу, можно заметить, что тело цикла может выполняться различное количество раз; ни одного (например, при вводе чисел 2, 8 или другого, не большего 9), 1 (для двузначных чисел), 2 (для трехзначных) и т. д. Использование цикла While в данном случае вполне уместно. Глава 3. Основы программирования Пример 2. Написать программу вычисления значений функции У = ^ при х= I; 1,1; 1,2; 1,3; ...; 2. Графическое представление алгоритма решения задачи показано в виде блок-схемы на рисунке 3.27. Будем последовательно подставлять в формулу У = ^ вместо X значения 1; 1,1; ...; 2, вычислять соответствующие значения у, каждое полученное значение у выводить на экран. Программа на языке Паскаль может быть такой; Program FUNCT_1; Var х,у: Real; Begin X: =1 ; While x<=2 do Begin y:=l/x; Writeln(y:0:5); x:=x+0.1; End; End. Рис. 3.27 Переменной x вначале присваивается значение 1. Так как условие 1 < 2 истинно, выполняется тело цикла: вычисляется и выводится на экран значение у, значение переменной х увеличивается на 0,1. Условие 1,1 < 2 истинно, поэтому выполняется тело цикла для значения х - 1,1; х становится равным 1,2; и т. д. Последний раз тело цикла выполнится при х = 2. Затем значение переменной х становится равным 2,1; условие 2,1 < 2 ложно, выполнение цикла завершается. Обратите внимание на то, что на экран не выводится значение функции в последней точке х = 2. Это связано с особенностью представления числовой информации (в частности, вещественных чисел) в памяти компьютера. Для получения требуемого вывода рекомендуется записать в заголовке цикла условие в виде: While x<=b+h/2 do ..., где h — дробный шаг изменения значения х (в данном случае условие: х<=2.05). *Пример 3. Написать программу проверки того, можно ли разделить поровну между тремя первоклассниками имеющиеся конфеты (ребята еще не умеют ни умножать, ни делить). Пусть п — количество купленных конфет, которые необходимо разделить на 3. Это можно сделать, если остаток от деления я на 3 равен нулю, и нельзя в противном случае. Будем считать, что данные корректны: п > 0. Так как дети не умеют делить, предложим им раскладывать конфеты в три кучки, добавляя в каяздую по очереди по одной конфете (количество конфет при этом будет уменьшаться на 3). Если после очередного этапа раскладывания не останется ни одной конфеты, значит, деление возможно, если кому-то не хватило конфеты — невозможно. Запишем программу на языке Паскаль. Здесь тело цикла содержит единственную команду п:=п-3: Program VKUSNO; Var n: Integer; Begin Write('Число конфет='); Readln(n); While n>0 do n:=n-3; if n=0 Then Write('можно ') Else Write('нельзя '); Writeln('разделить'); End. Пример 4. Имеется фрагмент программы суммирования квадратов десяти последовательных натуральных чисел (рис. 3.28), в котором Женя допустил ошибки. При запуске программа зависает, и Евгений вынужден прерывать ее работу принудительно (Ctrl -Н Break). Разобраться в причинах зависания. Рис. 3.28 S:=0; п:=1; While п<=10 do S:=S+k; Writeln (S); Анализ 1. Зависание программы свидетельствует о наличии так называемого «зацикливания»: мы имеем дело с бесконечным циклом, в котором условие выхода из цикла, в данном случае « > 10, не наступает, пока не будет выполнено принудительное завершение работы программы. Проследим изменение значений переменной п в заголовке цикла. Первоначально п-\. Условие 1<=10 истин- но, поэтому происходит вхождение в цикл и выполняется команда присваивания S:=S+k;. Значение п не изменяется, и компьютер постоянно проверяет справедливость истинного условия 1<=10. Итак, первая ошибка связана с неправильной организацией работы счетчика гг. автор задал начальное и конечное значения, а значение шага не определил. Устранение ошибки 1. Добавим в тело цикла команду присваивания для увеличения значения я на 1: m=n-i-l. Это приведет к необходимости организации составного оператора Begin ... End (рис. 3.29). После внесения изменений и запуска программы зацикливание не наблюдается, однако на экран выводится неверный результат (число 0). Рис. 3.29 S:=0; п:=1; While п<=10 do Begin S:=S-rk; n:=n+l; End; Writeln (S); Анализ 2. Обратим внимание, как осуществляется суммирование. Вначале S = о и затем в цикле должна накапливаться сумма путем добавления квадратов чисел 1, 2, ..., 10. Запись команды S:=S-rk; говорит о том, что в переменной S накапливаются значения переменной k, которая не задается и не изменяется. Сами суммируемые числа обозначены в программе переменной п, которую и следует записать в теле цикла вместо k. Устранение ошибки 2. Заменим команду S :=S+k; на S :=S-i-n; (рис. 3.30). Рис. 3.30 S:=0; п:=1; While п<=10 do Begin S:=S-l-n; n:=n+l; End; Writeln (S); Анализ 3. В программе есть еще одна ошибка, связанная с несоответствием алгоритма условию задачи: программа вычисляет сумму десяти последовательных чисел вместо суммы их квадратов. § 16. Алгоритмическая структура ПОВТОРЕНИЕ Устранение ошибки 3. Заменим команду S :=S+n; на S :=S+n*n; (рис. 3. 31). Рис. 3.31 S:=0; п:=1; While п<=10 do Begin S:=S+n*n; n:=n+l; End; Writeln (S); Пример 5. Написать фрагмент программы, который выполняется до тех пор, пока не будет введено нужное число, например А, удовлетворяющее условию 00) and (A=0 do Begin N:=N-3; s:=s+l; End; Глава 3. Основы программирования в) вычислить сумму 1 +1/2+1/3+ ... + Xjn (значение п вводится с клавиатуры); г) вычислить значения функций г/ = sin х и у = cos х на отрезке [ — 1; 1 ] с шагом 0,1. Результат вывести в таблицу вида X sin X cos X *д) подсчитать количество ковриков квадратной формы, которые понадобятся, чтобы покрыть ими пол комнаты прямоугольной формы (размеры комнаты вводятся с клавиатуры). Например, если размеры комнаты 300 см х 750 см, то понадобится 4 коврика (рис. 3.32). 300 300 150 О о Ю со Рис. 3.32 16.S. Цикл с параметром FOR Для организации циклических действий в программах можно использовать оператор FOR. Использование цикла FOR оправдано, когда количество повторений цикла заранее (т. е. еще до начала выполнения цикла) известно. В общем виде графически работа оператора представлена на рисунке 3.33. Форма записи этого оператора такова: FOR или ТО do S; FOR DOWNTO do S; где I — идентификатор (параметр цикла), счетчик количества повторений цикла; — выражение, позволяющее определить начальное (первое) значение I; — выражение для определения последнего (конечного) значения I; ТО — служебное слово, определяющее шаг изменения параметра цикла I равным 1; DOWNTO — служебное слово, определяющее шаг изменения параметра цикла I равным —1; S — оператор (простой или составной) — тело цикла; := — составной символ (имеет смысл «от»). Переменная I должна быть порядкового типа; совместимые по типу с переменной I. выражения. 1 16. Алгоритмическая сг а ПОВТОРЕНИЕ FOR — оператор цикла с параметром (шагом). Здесь тело цикла повторяется для всех значений параметра I, определенного в границах [1^ (отсюда и название цикла). Порядок его выполнения: вычисляются значения выражений и параметр цикла принимает последовательно все значения от начального до конечного; для каждого из них выполняется тело цикла. Служебное слово ТО в записи оператора цикла предполагает, что при этом значение параметра цикла на каждом шаге увеличивается на 1. Служебное слово DOWNTO предполагает, что 1„ач > 1кон и значение параметра уменьшается на 1. При нарушении этих условий цикл выполняться не будет. После выхода из цикла значение параметра цикла не всегда определено, что следует учитывать при разработке циклических программ. Пример 1. Смоделировать работу сберегательного банка. Известно, что банк ежемесячно начисляет Р % на сумму вклада, причем начиная со второго месяца проценты начисляются на накопленную сумму с учетом процентов. Написать программу вычисления денежной суммы, которая окажется на счету по истечении года (первоначальная сумма вводится с клавиатуры). Считать, что данные корректны. Дано: S — первоначальная сумма, Р — ежемесячная процентная ставка. Найти: S2, ..., S12 — сумма на счету в конце 1-го, 2-го, ..., 12-го меся- цев. Связь: S„ = S„_i • (1 -ь jIq), So = S, где и = 1, 2, 3, ..., 12. При: S > 0; 3 < Р < 50. Будем считать, что данные корректны. Метод: Первоначально подставим в правую часть формулы значение S и найдем Sj (сумму по истечении одного месяца). При подстановке Sj. в правую часть формулы найдем значение S2 (сумму по истечении двух месяцев) и т. д. Такие действия проделаем 12 раз. Для подсчета количества прошедших месяцев введем переменную g. Анализ алгоритма свидетельствует о возможности его реализации с помощью цикла FOR (в алгоритме присутствует целочисленная переменная g, для которой известны начальное значение 1, конечное — 12, шаг изменения 1). Графическое представление алгоритма решения задачи показано на рисунке 3.34. Программа на языке Паскаль может быть такой: Program Pribyl; Var S: Real; P,g; Integer; Глава 3. Основы программирования сумма=' 0:2) Begin Write('Начальная Readln(S); Write('Ставка P(%)=') Readln(P); For g:=l To 12 do Begin S:=S*(1+P/lOO); Writeln(g,':',S End; End. Пример 2. Составить программу отсчета времени, оставшегося до начала спектакля; программа должна предложить ввести оставшееся время (в секундах) и выводить на экран отсчет времени в обратном порядке. Когда отсчет окажется равным нулю, программа должна вывести текст «Начало спектакля. Вход воспрещен!!!». Программа на языке Паскаль может быть такой; Program Nachalo; Uses CRT; Var T,S: Integer; ^ Begin Write ('Время до начала (c)='); Readln (T); For S:=T downto 0 do Begin ClrScr; GotoXY(40,10); Write(S); Delay(lOOO); End; GotoXY (35,15); TextColor (4); Writeln ('Начало спектакля.'); Writeln ('Вход воспрещен!!!'); End. Пример 3. Известен возраст ка>вдого конкурсанта фестиваля «Славянский базар». Составить программу, определяющую средний возраст конкурсантов. Пусть возраст конкурсантов задается как число полных лет. Введем обозначения; К — общее количество конкурсантов, V — возраст очередного конкурсанта, S — суммарный возраст, SK — средний возраст конкурсантов. Тогда SK = § 16. Алгоритмиче^ская структура ПОВТОРЕНИЕ Найдем вначале суммарный возраст, выполняя постепенное суммирование с переменной 5 значения возраста V очередного конкурсанта. Первоначально 5 = 0. Переменная 5 играет роль сумматора, куда по очереди добавляются значения V. Получим программу: Program FEST; Var K,V,i; Integer; S: Longint; SV: Real; Begin Write ('Сколько конкурсантов='); Readln(К); {Пока 3=0} (Для каждого конкурсанта} {вводим возраст} {и суммируем его} S: =0 ; For i:=l to К do Begin Readln(V); S:=S+V; End; SV:=S/K; Writeln('SV=',SV:0:1); End. При программировании можно выбирать различные варианты алгоритмических структур. Например, вычисление значений функции г/ = sin х на отрезке [0; 2] с шагом 0,1 можно задать такими вариантами записи операторов; 1) х:=0; while х<=2.05 do begin y:=sin(x); writeln (x: о : 1,у:5:1) ; x:=x+0.1; end; 2) x:=0; for k;=l to 21 do begin y:=sin(x); writeln (x: 0 :1, у: 5 :1) ; x:=x-i-0.1; end; 3) a:=0.1; for k;=0 to 20 do begin x:=a*k; y:=sin(x); writeln (x:0:1,у:5:1) ; end; Упражнение Напишите программы решения следующих задач: а) вывести на экран квадраты натуральных чисел от 1 до 50; б) определить среднее значение температуры воздуха в некоторой местности за пдней; *в) вывести на экран монитора значения выражения 2", где л = 1,2, 3, 4,..., 17; г) известны результаты соревнования по прыжкам в высоту п учеников. Найдите суммарный результат. Глава 3. Основы программирования 16.3. Смешанные алгоритмы Алгоритм, содержащий алгоритмические структуры ВЕТВЛЕНИЕ и ЦИКЛ, называют смешанным. В языке Паскаль тело цикла может содержать любые операторы (как простые, так и структурные). При программировании таких алгоритмов следует следить за сохранением вложенности алгоритмических структур. *Пример I. Настя выбрала в магазине открытки двух типов; по цене М р. для поздравления мальчиков и по цене D р. для поздравления девочек. Всего у Насти R р. Составить программу, которая позволит получить все возможные варианты покупок, где будут истрачены все имеющиеся у Насти деньги. Дано: R {р.) — общая денежная сумма; М (р.), D (р.) — стоимости открыток для мальчиков и девочек. Найти: КМ, KD — количество открыток для мальчиков и девочек соответственно. Связь: M*KM-bD*KD=R. Метод: Будем перебирать значения КМ от О (наименьшее количество открыток; все деньги тратятся на открытки для девочек) до (наибольшее количество открыток; все деньги тратятся на покупку открыток для мальчиков). Тогда KD= (R-M*KM) /D. Если КР — целое число, получен вариант покупки. Так как Настя на сумму R может не купить ни одной открытки, введем логическую переменную Yes, которой присвоим значение True, если покупка возможна. Получим программу: Program New_Year; Var M,D,R,KM: Integer; KD: Real; Yes: Boolean; Begin Write ('Всего денег='); Readln(R); Writeln('Стоимости открыток:'); Write('для мальчиков '); Readln(М); Write('для девочек '); Readln(D); Yes:=False; For KM:=0 To R div M do Begin KD:=(R-M*KM)/D; If KD=Trunc(KD) Then Begin ПОВТОРЕНИЕ Yes:=True; Writeln(KM,', ', Trunc(KD)); End; End; If Yes=False Then Writeln ('Покупка невозможна'); End.* Пример 2. Написать программу нахождения среди трехзначных чисел таких чисел, сумма старшей и младшей цифры каждого из которых равна вводимому с клавиатуры числу. Пусть X — заданное число. Трехзначное число С удовлетворяет условию 100<С<999. Будем перебирать все числа, удовлетворяющие этому условию, т. е. искать сумму m + S, где ш — младшая цифра, равная остатку от деления С на 10, S — старшая цифра, равная целой части от деления С на 100. Если т + s = X, выведем число С на экран. Логическая переменная Yes предназначена для отслеживания случая отсутствия искомых чисел. Получим программу: Program _3; Var C,X,m,s: Integer; Yes: Boolean; Begin Write ('Заданное число='); Readln(X); Yes:=False; For C:=100 To 999 do Begin m:=C mod 10; \ s:=C diV 100; If m-t-s=X Then Begin Yes:=True; Writeln(C); End; End; If Yes=False Then Writeln ('Таких чисел нет'); End. Глава 3. Основы программирования Для решения задач часто бывает необходимо организовать перебор нескольких значений переменных, что приводит к так называемым вложенным циклам. При этом каждый внутренний цикл должен быть полностью вложен во все внешние по отношению к нему циклы (рис. 3.35). For i:=l to 5 do Begin... <-------------- For j :=1 to 9 do Begin... ч-For k;=l to 12 do Begin... End;... End;... —— End; <---------- Пример 3. Составить программу вывода таблицы умножения каждого натурального числа от 1 до 9 на 2, 3, 4, ..., 9 (таблицы Пифагора) (рис. 3.36). Программа на языке Паскаль может выглядеть следующим образом: Program Tablica; Var х,у; byte; Begin For x:=l to 9 do {1-Й сомножитель} Begin For y:=l to 9 do {2-Й сомножитель} Write(x*y;3) ; {вывод x*y} Writeln; {переход на новую строку End; End. вложенный цикл Рис. 3.36 г<сл>п • • • Рис. 3.35 внешний цикл 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 9 18 27 36 45- 54 63 72 81 эитмическая структур, а ПОВТОРЕНИЕ Пример 4. Написать программу подсчета количества двузначных чисел, кото рые делятся на сумму своих цифр. __ Будем рассматривать искомые числа в виде совокупности цифр аЬ и, пере бирая их различные возможные значения, формировать число X = 10а + й, а также сумму цифр S = а + Ь. Количество искомых чисел обозначим К. Графическое представление алгоритма решения задачи показано в виде блок-схемы на рисунке 3.37. Получим программу: Program Liki; Var a,b,x,S: Byte; К: Integer; Begin К: =0 ; {a — старшая цифра, b — младшая цифра} For a:=l to 9 do For b:=0 to 9 do Begin x:=10*a-bb; {x — двузначное число} S :=a-i-b; {S — сумма цифр числа} If X mod S=0 then Begin {если число X делится на сумму цифр, считаем его} К := К-Ы; (и выводим на экран} ,-Write (х,' '); End; End; (перевод курсора на новую строку} Writeln; {вывод общего количества чисел} Writeln('Всего чисел: ',К); End. Связь: * Пример 5. Написать программу решения задачи: «Хозяйство должно разлить весь собранный березовый сок в банки объемом 3 л, 5 л, 10 л. Определить, можно ли это сделать и сколько банок каждого вида понадобится (считать, что количество банок неограниченно). Получить вариант разлива с наименьшим количеством использованных банок». Дано: L (л) — объем собранного сока. Найти: а, Ь, с — количество банок соответственно объемом 3 л, 5 л, 10 л. ^За + 5Ь + 10с = L, [а + Ь + с min. Разлить весь сок в банки полностью нельзя, если данное уравнение не имеет решений в целых неотрицательных числах. При: L — целое число. Метод: 1. Для получения варианта разлива сока в десятилитровые банки будем перебирать значения переменной г от минимального 0 до максимального j^^j. Останутся не разлитыми P = L — lOz (л) сока, которые следует разлить в банки объемом 5 л; для этого будем перебирать значения переменной у от 0 до j^^j. Для разлива в трехлитровые банки останется х = Р— Бу (л) сока. Пусть t - Если t — целое число, одно из решений задачи получено; его можно вывести на экран компьютера. Факт получения решения будем фиксировать логической переменной Yes, которой присвоим значение True. По значению Yes при завершении работы программы будем судить, требуется ли вывести сообщение «Разлив невозможен». 2. Для получения наилучшего варианта разлива будем сравнивать общее количество использованных банок K=t + у + z со значением некоторой переменной min. Эту переменную будем использовать ддя хранения наименьшего значения суммы: тш= К, если справедливо неравенство: К< min. Одновременно запомним в переменных а, Ь, с соответствующие значения t, у, z. Первоначально будем полагать значение min равным достаточно большому целому числу {Maxint). Получим следующую программу: Program Rasliv; Var L, у, z, Р, min. К, t, а, b, с, X: Integer; хЗ: Real; Yes: Boolean; Begin Write('Всего сока='); Readln(L); Yes:=False; min:=MaxInt;{Max Int=32767} For z:=0 To L div 10 do Begin P:=L-10*z;, For y:=0 To P div 5 do Begin x;=P-5*y; x3:=x/3; t:=Trunc(x3); If x3=t Then Begin Yes:=True; Writeln (t, ', ',y, ', ' ,z) ; K;=t+y+z; If K:сущихся объектов Рассмотрим два способа решения задач моделирования движений средствами языка программирования; 1. «Нарисуй — сотри — и нарисуй в новом месте». Этот способ реализовать легко; нужно организовать цикл, задав координаты для перемещения объекта в требуемом направлении; в теле цикла нужно предусмотреть очистку экрана, изображение объекта в новом месте и приостановку выполнения программы. 2. «Нарисуй — закрась цветом фона — и нарисуй в новом месте». Здесь объект прорисовывается на старом месте дважды; вначале требуемым цветом, а затем цветом фона. Пример 1. Написать программу перемещения красного квадрата по черному экрану слева направо. Способ I Program DVIG_1; Uses Crt, Graph; Var a,b,x; Integer; Begin a;=Detect; InitGraph(a,b,''); For x:=0 to 639 do Begin SetFillStyle (1,4); {красный} Bar(x,200,x+10,210) ; Delay (1000); ClearDevice; {очистка экрана} End; Readln; CloseGraph; End. Способ 2 Program DVIG_2; Uses Crt, Graph; Var a,b,x: Integer; Begin a:=Detect; InitGraph(a,b,''); For x:=0 to 639 do Begin SetFillStyle(1, 4) ; {красный} Bar(x,200,x+10,210) ; Delay (1000); SetFillStyle(1,0) ; {черный} Bar(x,200,x+10,210) ; End; Readln; CloseGraph; End. Гиава 3. Основы программирования *Если завершение перемещения объекта нужно связать с действиями пользователя (например, с нажатием на клавишу), удобно использовать функцию KeyPressed модуля Crt. Функция возвращает значение TRUE, если нажата какая-либо клавиша: While not KeyPressed Do (пока не нажата клавиша, делать ...). Пример 2. Написать программу вертикального перемещения шарика (от верхней границы экрана к нижней и обратно и т. д.), пока не будет нажата любая клавиша. Пока не нажата какая-либо клавиша, программа должна многократно выполнять следующие действия; рисовать красный круг, закрашивать его на старом месте цветом фона (черным), ординату у (центра круга) увеличивать па dy = 1, рисовать новый круг и т. д. Когда круг коснется нижней или верхней границы экрана, значение dy изменится на противоположное и круг изменит направление движения. После нажатия любой клавиши работа программы будет завершена. Программа на языке Паскаль может выглядеть следующим образом; Program PADENIE; Uses Crt, Graph; Const R=10; x=320; Var a,b,y,dy; Integer; Begin a:=Detect; InitGraph(a,b,''); y:=R; dy:=:l; While not KeyPressed do Begin SetFillStyle(1,4); {красный} PieSlice(x,у,0,360,R); Delay(100); SetFillStyle(1,0); {черный} PieSlice(x,у,0,360,R); y:=y-i-dy; If (y=640-R) or (y=R) Then dy;=-dy; End; CloseGraph; End. * Упражнения 1. Испытайте программы из п. 17.2, выберите подходящие цвета, скорости перемещения. Обратите внимание, что программа PADENIE моделирует движение шарика в туннеле белого цвета. Измените программу для перемещения шарика в однородной среде (например, на синем фоне). 2. Примените наиболее понятный Вам метод для моделирования: а) горизонтального перемещения отрезка; б) вертикального падения теннисного мячика. 7.3. Решение практических задач. Деловая графика С целью автоматизации построения различных видов графиков и диаграмм, которые представляют интерес для коммерческих пользователей, разрабатываются системы деловой графики, представляющие собой технологию создания изображений с сопровождающим их текстом. Программы деловой графики могут входить в интегрированные программные пакеты (например, в Microsoft Excel), а могут использоваться и самостоятельно (PowerPoint, пакет «Галактика»). Рассмотрим примеры решения практических задач с использованием графических возможностей языка программирования Паскаль. Пример I. Магазин канцелярских товаров за день продал известное количество тетрадей, карандашей и ручек. Построить круговую диаграмму, позволяющую определить, какой товар пользовался в течение дня наибольшим спросом. Пусть Т, К, R — количество проданных тетрадей, карандашей и ручек соответственно. Суммарное количество проданных товаров составляет S = Т + К + R единиц товара. Тогда на круге, который составляет 360 градусов, на одну единицу товара приходится g = градусов, на проданные тетради — gT = g*T градусов, на карандаши — gK=g*K градусов, на ручки — остальные. Таким образом, для построения диаграммы нужно разбить круг на три сектора в соответствии с произведенными расчетами. R„ — радиус окружности, на которой будем выполнять построения. Получим следующую программу: Program MAGAZIN; Uses Crt, Graph; Const Ro=100; Var a, b, T,K,R,S,gT,gK: Integer; g: Real; Begin {радиус окружности] Глава 3. Основы программирования ClrScr; GotoXY (35,5); Writeln ('Сколько продано тетрадей, карандашей, ручек?'); GotoXY(45,6); Readln(Т,К,R); S:=T+K+R; g:=360/S; gT;=Round(G*T); gK:=Round(G*K); a:=Detect; InitGraph(a,b,''); SetFillStyle (1,14) ; ,, PieSlice(300,200,0,gT,Ro); Bar(450,150,500,200); OutTextXY(510,170,'тетради'); SetFillStyle(1,2); PieSlice(300,200,gT,gT+gK,Ro); Bar(450,230,500,280); OutTextXY(510,250,'карандаши'); SetFillStyle (1,4); PieSlice(300,200,gT+gK, 360, Ro); Bar(450,310,500,360); OutTextXY(510,330,'ручки'); Readln; CloseGraph; End. [желтый} . зеленый J [красный} Пример 2. Написать программу построения диаграмм роста вкладов с простыми и сложными процентами. Программа должна запросить начальную денежную сумму и вывести диаграммы. При начислении простых процентов будем пользоваться формулой ~ ^гг-1 ^ ^0 100 ’ а при начислении сложных процентов — формулой *(l + Yoo), где Sq — первоначальная сумма, р — ежемесячная процентная ставка. Будем изображать результаты расчетов в виде столбчатых диаграмм — прямоугольников (для простых процентов — желтого цвета, а для сложных — зеленого цвета). В программе будем использовать одинаковую процентную ставку Р % по каждому виду вклада и проследим перспективу роста вклада на один год (12 месяцев). Программа будет такой: Program Pribil; Uses Crt, Graph; ConstK=12; {12 месяцев} P=30; {30%} Var S,S0,SK: Real; h,m,a,b: Integer; Begin ClrScr; GotoXY (10,3); Write ('Начальная сумма(>=20000) = ') ; GotoXY(40,3); Readln(SO); If S0<=100000 Then S0:=int(SO/10000) Else S0:=int(SO/100000); {масштаб} S:=S0; SK:=S0; a;=Detect; InitGraph(a,b,''); ClearDevice; Line(0,400,640,400); h:=10; For m:=l to К do {m—номер месяца} Begin S:=S+S0*P/100; h:=h+10; SetFillStyle(1,14); {желтый} Bar(h, 400-Round(S) , h+10,400) ; SK:=SK*(1+P/lOO); h:=h+10; SetFillStyle(1,2); {зеленый} Bar (h, 4 00-Round(SK),h+10,400) ; End; Readln; CloseGraph; End. Ha рисунке 3.40 приводятся результаты работы программы Pribil для S = 1 000 000 р. При построении изображений на графическом экране возникают проблемы, связанные с его ограниченными размерами и 3 43 Глава 3. Основы программирования ориентацией осей, отличающейся от декартовой системы координат. Это требует масштабирования изображений и перерасчета реальных координат в координаты графического экрана. Пример 3. Написать программу построения графика функции у = ах + Ь. Решение этой задачи распадается на следующие этапы: • получение изображения системы координат на экране (рис. 3.41); • выбор на осях единиц масштаба и градуирование осей с указанием предельных (наибольшего и наименьшего) значений аргумента и результата; • вычисление значений функции у на отрезке х„,а,;] и получение координат точек графика (х, у)\ • преобразование точек графика (х, у) в систему координат экрана (xj, ^i); • вывод точек графика на экран. Этап I. 1) Пусть точка экрана (320, 240) соответствует началу системы координат. Тогда для получения изображения оси абсцисс достаточно провести отрезок через точки (0, 240) и (639, 240), оси ординат —■ через точки (320, 0) и (320, 479). 2) Укажем направление оси абсцисс ОХ путем соединения точки (639, 240) и точек (635, 235) и (635, 245); направление оси ординат OY укажем, соединив точку (320, 0) с точками (315, 5) и (325, 5). 3) Укажем начало координат путем вывода текста «О» в точку (300, 250), подпишем оси координат: «X» в точке (625, 225) и. «У» в точке (330, 5). Этап 2. Выберем масштаб по оси ОХ равным восьми точкам (пикселям) экрана. Так как общее количество точек экрана по оси ОХ равно 640, то мы можем пометить на этой оси 80 точек: будем делать это с помощью вертикальных отрезков длиной 4 пикселя. Предельные значения аргумента обозначим путем вывода на экран текста: «—39» — возле крайней точки слева вдоль оси ОХ и «39» — возле крайней точки справа. Таким образом, X„,in = —39, Xmax= 39. Масштаб по оси OY примем равным шести пикселям. Пометим 80 точек на этой оси горизонтальными отрезками длиной 6 пикселей. Выделим путем вывода текста «—39» и «39» граничные точки, соответствующие наименьшему и наибольшему значениям функции в области экрана. к О- - X X Рис. 3.41 Этап 3. Будем перебирать значения аргумента х^ от —39 до 39 с шагом 0,1, вычислять значения функции у2= ах2 + Ь. Этап 4. Полученные координаты точки графика функции (Хг, г/г) следует преобразовать в координаты точки (xj, у^) относительно координат экрана, смещая значения Хг и г/г относительно начала координат (320, 240) с учетом масштаба по каждой оси; х1=х2*8+320; у1=240-б*у2. При реализации описанного алгоритма на языке Паскаль следует выполнить правильный выбор типов данных. Так, например, переменные х2, у2 — вещественного типа, х1,у1 — целого типа. Получим программу: Program LINE_AXB; Uses Graph; Var m,n,X,Y,xl,yl: Integer; x2,y2,a,b: Real; BEGIN Writeln('Построение графика функции Write('a='); Readln(a); Write('b='); Readln(b); m:=Detect; InitGraph(m,n,''); Line (0,240, 639,240); Line (320,0,320,479); Line (639,240,635,235); Line (639,240,635,245); OutTextXY (625,225, 'X'); Line (320,0,315,5); Line (320, 0,325,5); OutTextXY (330,5, 'Y’); OutTextXY (300,250, 'O'); X: =8 ; While X<=639 Do Begin For Y:=-2 To 2 Do Putpixel(X,240+Y,7); X:=X-h8; y=ax+b'); {Ось OX} (Ось OY} - {Стрелка \ для оси OX} {Стрелка / для оси OX} {Вывод текста 'X'} {Стрелка / для оси OY} {Стрелка \ для оси OY} {Вывод текста 'Y'} {Вывод текста 'О'} {8 — масштаб по оси ОХ} {Градуирование оси ОХ} Глава 3. Основы программирования {6 — масштаб по оси OY} {Градуирование оси 0Y} End; Y:=6; While Y<=479 Do Begin For X:=-3 To 3 Do Putpixel(320+X,Y,7); Y:=Y+6; End; {Вывод no оси OX предельных значений аргумента OutTextXY(8,250, '-39' ); OutTextXY(620,250,'39'); {Вывод по оси OY предельных значений функции} OutTextXY (290,470, '-39'); OutTextXY(295,б,'39'); х2;=-39; While Х2<=39 Do Begin у2:=а*х2+Ь; х1:=Round(х2*8+320) у1:=Round(240-б*у2) Putpixel(х1,у1,7); х2;=х2+0.1; End; Readln; CloseGraph; { (х2,у2) — точка графика) {функции} {(х1,у1) — точка графика) {в системе координат) {экрана} End. В результате выполнения программы при а--2, Ь=17 пол}Д1ится следующий график (рис. 3.42). Упражнение Семейный бюджет Даниила на октябрь составил X р. Статьи расходов за месяц следующие: К (р.) — квартплата, Р (р.) — питание членов семьи, Д(р.) — культурная программа, Д (р.) — прочие расходы. Неиспользованная сумма — N (р.). Изобразите расходы семьи в виде диаграммы: а) круговой; б) столбчатой. Рис. 3.42 * § 18. Подпрограммы пользователя Часто в процессе разработки алгоритма обнаруживаются одинаковые части (фрагменты). Оформив их в виде вспомогательных алгоритмов, Вы можете неоднократно в случае необходимости обращаться к этим алгоритмам и выполнять требуемые действия. В виде вспомогательных алгоритмов удобно оформлять также отдельные самостоятельные части алгоритма, полученные при разбиении большой задачи на более мелкие подзадачи. Такой подход носит название структурного или блочного (модульного) программирования и является одной из концептуальных особенностей языка Паскаль. Объем программы благодаря этому сокращается, а сама программа становится более наглядной («читабельной»), упрощается ее отладка. Вы уже знакомы с некоторыми стандартными подпрограммами языка Паскаль. Существует возможность создания подпрограмм самим программистом. Такие подпрограммы называют подпрограммами пользователя. Глава 3. Основы программирования 18.1. Описание подпрограмм пользователя Правила языка Паскаль требуют обязательного описания всех используемых в программе подпрограмм пользователя. При первоначальном ознакомлении со структурой программы на языке Паскаль в § 9 было отмечено, что данная структура не является полной. Мы уже расширяли ее при изучении графических возможностей языка. И вновь дополнение; в конце описательной части дае-Тся описание используемых в программе подпрограмм пользователя. Уточненная структура программы на языке Паскаль с учетом описания подпрограмм пользователя имеет вид, показанный на рисунке 3.43. Подпрограммы пользователя бывают двух видов: процедуры и функции. Рис. 3.43 18.2. Процедуры Описание процедуры пользователя имеет вид, показанный на рисунке 3.44. При описании в заголовке процедуры можно указать список переменных (параметров), передаваемых в нее извне. Эти параметры называют формальными, так как они не связаны ни с какими конкретными значениями. Имя_процедуры — уникальный идентификатор. Параметры-аргументы (их называют параметрами-значениями) описываются так; Аргумент ; тип ;. Их значения задаются на входе в процедуру. Получить из процедуры значения результатов можно с помощью параметров-переменных. Для указания того, что некоторый параметр является результирующим (параметром-переменной), перед его именем записывают служебное слово (директиву) VAR. пользователя Procedure Имя процедуры (список формальных параметров); Var описание локальных переменных; Begin End; ■=)i Аргументы (параметры-значения) и результаты (параметры-переменные) ) Заголовок процедуры ШР! зок \ /ры в Рис. 3.44 . Например, в заголовке процедуры Procedure PRIMA(X;Integer;А:Real; Var P:Real;Var krinteger); подразумевается, что в процедуре используются два входных параметра (параметра-значения): X целого типа и А вегцественного типа; в результате выполнения процедуры будут получены значения двух переменных (параметров-переменных): Р вещественного типа и k целого типа. При использовании процедур различают глобальные и локальные переменные: глобальные описываются в основной программе (они доступны из любого объекта программы), локальные — описываются в процедуре (они доступны только в пределах той подпрограммы, где они описаны). Заголовок процедуры может иметь вид: Procedure Имя_процедуры; Здесь формальные параметры отсутствуют. Например, Procedure Print; Begin Writeln ('-----------------') ; End; Обращение к процедуре (вызов) осуществляется путем указания ее имени и списка фактических параметров: Имя__процедуры (список фактических параметров) ; Фактические параметры — это конкретные величины, подставляемые вместо формальных параметров. Глава 3. Основы программирования Процедура вызывается как отдельный оператор. При использовании процедуры необходимо следовать определенным требованиям: I 1. Количество фактических параметров должно совпадать с количеством j формальных параметров в описании процедуры. j 2. Порядок записи фактических параметров должен соответствовать поряд-I ку записи формальных параметров. I 3. Типы фактических и формальных параметров-переменных должны совпа-! дать. Типы фактических и формальных параметров-значений должны быть i совместимыми. Фактические параметры-значения представляют собой константы, имена переменных, выражения соответствующего типа; фактические параметры-переменные — имена переменных соответствующего типа. Примеры обращения к процедуре PRIMA: PRIMAdOO, -1.3, Y, М) ; PRIMA(V, L, G, KOL); PRIMA(0, S*S, FACT, Т) ; PRIMA(N div 2, OPEL, RENAULT, MARKA); Фактические параметры-значения V, N должны быть описаны в программе как целые; L, S, OPEL — как целые или вещественные (Byte, Word, Integer, Longint, Real); фактические параметры-переменные Y, G, FACT, RENAULT — как вещественные (Real); M, KOL, T, MARKA — как целые (integer). Схема обращения к процедуре PRIMA представлена на рисунке 3.45. Ф Из основной программы в процедуру передаются значения параметров-значений и параметров-переменных. Например, при обращении PRIMA(100, -1.3, Y, М) ; выполняется присваивание: X: =100; А:=-1.3; P:=Y; к:=М; ® Выполняются операторы, входящие в состав тела процедуры (для нашего примера в процедуре формируются значения переменных Р, к). Ф Полученные значения параметров-результатов передаются в основную программу соответствующим переменным. В нашем случае выполняется присваивание: Y:=P; М:=к; ® Продолжается выполнение основной программы. Пример 1. Требуется сделать ограду для двух земельных участков, имеющих форму прямоугольников, если для каждого участка заданы его площадь и периметр. Написать программу определения длины секций ограды. § 18. Подпрограммы пользователя Дано: Si , Pi — площадь и периметр первого участка, S2 , Р2 — площадь и периметр второго участка. Найти: Ui , bi — длины границ первого участка, ^2 , ^2 — длины границ второго участка. Связь: Для участка прямоугольной формы с площадью S и периметром Р числовые значения длин границ а и Ь определяются из системы ^аЬ = S, [2(а + Ь) = Р^ 1 О- При: - 45 > 0. Как видно, решение задачи сводится к двукратному вычислению корней квадратного уравнения. Входные данные: 5, Р — площадь и периметр прямоугольника (вещественные числа). Так как в качестве результатов будут получены значения двух переменных (а, Ь — длины сторон прямоугольника, вещественные числа), возможно использование процедуры пользователя. которая сводится к решению квадратного уравнения - у х -н 5 Глава 3. Основы программирования Рис. 3.46 Графическое представление алгоритма решения задачи показано в виде блок-схемы на рисунке 3.46. Программа будет такой: Program OGRADA; Var SI,Pi,S2,Р2,al,Ы,а2,Ь2: Real; Y: Boolean; {Описание процедуры} Procedure ST (S,P: Real; Var a,b: Real; Var Y: Boolean); Var d: Real; Begin Y;=False; d:=P*P/4-4*S; If d>=0 Then Begin Y:=True; d:=sqrt(d); § 18. Подпрограммы пользователя a:=(P/2-d)/2; b:=(P/2+d)/2; End Else Writeln('Ошибка в данных'); End; {Основная программа} Begin Write CSl Pl='); Readln (SI, PI) ; Write CS2 P2='); Readln (S2, P2) ; ST (SI,Pl,al,bl,Y); If Y=True Then Begin ST(S2,P2,a2,b2,Y); If Y=True Then Writeln(al:7:1, bl:7:1,a2:7:1,b2:7:1); End; End. Упражнение Напишите программу определения наибольшего числа среди четырех заданных чисел. 18.3. Функции Описание функций пользователя имеет вид, показанный на рисунке 3.47. В заголовке функции формальные параметры могут отсутствовать. Параметры-значения (аргументы) описываются так же, как и в процедуре: Аргумент : тип;. Их значения задаются на входе в функцию. Результирующей переменной является идентификатор Имя_функции. Тип значения, присваиваемого идентификатору функции, называют типом функции (он указывается в конце заголовка функции после символа «:»). Например, в заголовке функции Function FUNC (X: Integer; А: Real) : Integer; подразумевается, что в процедуре-функции используются два входных параметра (параметры-значения); X целого типа и А вещественного типа; в результате ее выполнения будет получено значение переменной FUNC (параметр-переменная) целого типа. Само значение результата FUNC формируется в теле функции с помощью оператора присваивания. Function Имя_функции (список формальных параметров); тип функции; Var описание л\кальных переменных; Begin Имя_функции := знач||ние; End; Тело функции Результат ) Аргументы (параметры-значения) Рис. 3.47 Обращение к функции (вызов) осуществляется путем указания ее имени и списка фактических параметров; Имя_функции (список фактических параметров). Функция, в отличие от процецуры, может быть вызвана только в составе некоторого выражения. При этом необходимо следовать определенным требованиям (см. требования, описанные в п. 18.2). Фактические параметры-значения представляют собой константы, имена переменных, выражения соответствующего типа, фактический результат — значение идентификатора функции. Примеры обращения к функции FUNC; M:=FUNC(5, -1.3); Writeln(FUNC (V, L)); P:=FUNC(0, S*S)+FUNC(K,2); Write (FUNC (N div 2, Info) : 5); Переменные К, V, N должны быть описаны в программе как целые (Integer, Byte и др.), М, Р, L, S, Info — как целые или вещественные. Схема выполнения функции пользователя дана на рисунке 3.48. Ф Из основной программы в функцию передаются значения параметров-аргументов. Например, при обращении M:=FUNC (5, —1.3); выполняется присваивание; X: =5; А:=-1.3 ; (D Выполняются операторы, входящие в состав тела функции (для нашего примера в функции формируется значение переменной FUNC). ® Полученное значение параметра-результата передается в основную программу в вызывающее выражение (это значение передается переменной М). © Продолжается выполнение основйой программы. Пример 1. Для создания парковой зоны предполагается объединить три земельных участка. Составить программу определения площади зоны отдыха, если длины границ участков заданы (данные корректны) (рис. 3.49). Дано: а, Ь, с, d, e,f,g — длины границ участков. Найти: S — суммарная площадь участков. Связь: S = S, Ч- S2 4- S3 , где Sj, S2, S3 — площади участков. Как видно из рисунка, решение задачи сводится к вычислению площадей треугольников по формуле Герона. Имеет смысл вычисление площади оформить в виде подпрограммы пользователя. Входные данные для подпрограммы: х, у, z — длины сторон треугольника, результат „„„ „ X + у + Z где р = —I— S = л1р{р-х){р-у){р-г), Так как результатом выполнения подпрограммы является единственное значение (площадь), относящееся к простому типу, будем использовать функцию пользователя. Графическое представление алгоритма решения задачи показано в виде блок-схемы на рисунке 3.50. Глава 3. Основы программирования Программа будет такой: Program Plosha; Var а,b,с,d,е,f,g, S,S1,S2,S3: Real; Function PL(x,y,z: Real): Real; Var P: Real; Begin P:=(x+y+z)/2; PL:=sqrt(P*(P-x)*(P-y)*(P-z)); End; Begin Writeln ('Введите длины границ участков') Readln(a,b,c,d,e,f,g); SI:=PL(a,b,f) S2:=PL(f, c,g) ; ^ S3:=PL(g,d,e) ; f PL(g,d,e); S:=S1+S2+S3; Writeln(S:0 : 2) End. Рис. 3.50 Упражнение Напишите программы решения след1ующих задач: а) случайным образом задаются координаты трех точек на плоскости. Требуется определить: образуют ли они треугольник, и если образуют, то его тип (равнобедренный, равносторонний, разносторонний); б) для заданных вещественных чисел х и у необходимо вычислить тах(х, у) + тах(х + у, х — у), где тах(а, Ь) — наибольшее значение чисел а и 6; в) назовем автобусный билет (это шестизначное число) «счастливым», если сумма его цифр делится на 7. Определить, являются ли билеты, которые компостируют два друга, «счастливыми». ГЛАВА ТЕХНОЛОГИЯ ОБРАБОЖИ ИНШОРМАЦИИ В СИСТЕМЕ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ § 19. Системы управления базами данных в современном мире сложность информации постоянно возрастает. Для автоматизации хранения и поиска необходимой информации создаются и применяются системы управления базами данных и базы данных. Из курса информатики вам уже известны эти понятия. Напомним, что базы данных (БД) — это взаимосвязанные и организованные определенным образом данные, отображающие состояние объектов и отношения между ними в определенной предметной области. Под системой управления базами данных (СУБД) понимается совокупность программных и языковых средств, предназначенных для создания и обработки баз данных. СУБД и БД применяются во всех сферах деятельности человека для обработки и хранения информации. В различных отраслях производства используются базы данных, содержащие информацию о промышленных и сельскохозяйственных изделиях, товарах, договорных обязательствах, поставщиках и заказчиках. В научно-исследовательских институтах и конструкторских бюро создаются базы данных, хранящие информацию о физических свойствах материалов, проектных решениях и др. В современных поликлиниках и больницах используются СУБД для создания и обработки баз данных, описывающих истории болезней пациентов, результаты проведенных исследований состояния их здоровья. В настоящее время разработано около сотни разных СУБД. Нам предстоит познакомиться с возможностями СУБД Access, которая предназначена для работы с реляционной моделью организации данных (от английского relation — отношение). В реляционной модели данные организованы в виде совокупности таблиц, между которыми устанавливаются связи. Назначение таких связей и порядок их задания мы рассмотрим в дальнейшем в § 22. Реляционная модель баз данных была предложена в конце 60-х годов XX в. Эдгаром Коддом. Первая версия СУБД Access была создана в начале 90-х годов XX в. Глава 4. Технология обработки информации в СУБД Поле 1 Поле 2 Поле 3 Поле 4 Поле 5 Поле 6 1 1 руппа товара iHaiiMeHosahHc товарз! Ксли^ествс i 1 Цена 1 Дата поступления Ос-^аток Запись 1 т ВЯЙЯ Туфли мужские 1 121 iio3 0ogpj 1 12.02.20071 0 Запись 2 Обувь Кроссовки мужские i ' 240! 75 000р ! 15.02.20071 В Запись 3 Обувь Сапоги женские 46 202 000р. 18.02.2007 и Запись 4 Обувь Ботинки мужские 115 65 000р. 01.03.2007 н Запись 5 Обувь Туфли жешжие 14 150 ЮОр. 02.03.2007 0 ш 0 Ор □ 1 Г F1» Рис. 4.1 Каждая таблица состоит из записей и полей, например таблица «Товар» базы данных «Магазин» (рис. 4.1). Запись представляет собой строку таблицы базы данных, а поле — это столбец такой таблицы. Для описания поля используются следующие характеристики: имя, тип, размер, формат данных поля. В таблице «Товар» представлены шесть полей и пять записей. Каждое поле имеет свое имя, в нем хранятся данные определенного типа. Поле Количество содержит числовые данные. Поля Группа товара и Наименование товара являются текстовыми данными. Поле Цена является денежным типом данных и содержит цену товара в белорусских рублях. Поле Дата поступления содержит информацию о дате поступления товара в магазин. Поле Остаток является логическим типом данных и принимает значение Да (Истина), если товар присутствует на складе магазина. Нет (Ложь) — товар не присутствует. Более полное описание типов полей рассмотрим в § 21. Информация, хранимая в базах данных, должна быть структурирована, актуальна, обновляема и доступна пользователю. 1. Что называют базами данных? 2. Какие системы называют системами управления базами данных? 3. Что называют записью и полем в таблице базы данных? 4. Как описывается поле в таблице базы данных? § SQ. Основные элементы интерфейса СУБД Access СУБД Access после ее установки может загружаться с Рабочего стола двой- ным щелчком левой клавишем мыши по ярлыку или через систему меню; кнопка Пуск ^ Программы ^ Microsoft office ^ Microsoft Access. После запуска СУБД Access откроем базу данных. Для этого выполним цепочку команд: Файл ^ Открыть ^ в окне Открытие файла базы данных укажем файл базы данных, например Магазин.mdb ^ Открыть. Основные элементы интерфейса окна показаны на рисунке 4.2. На панели Стандартная размещаются основные инструменты, используемые при работе с базой данных. Часть инструментов этой панели аналогична панели Стандартная текстового редактора Word, а вторая часть предназначена для работы с базой данных. Применение этих инструментов мы рассмотрим в дальнейшем. В окне База данных расположены ее объекты: Таблицы, Запросы, Формы, Отчеты и др. Все эти объекты, если они создавались, хранятся в общем файле базы данных на диске с расширением .mdb. При работе с каждым из объектов они имеют свое окно, как показано на рисунке 4.2. Рис. 4.2 ^jiaBa4JexHOJiorH!Hjo6ga^^ Рассмотрим назначение каждого объекта. Таблицы являются основным объектом базы данных, который предназначен для хранения данных. Таблицы состоят из записей и полей. На основе таблиц создаются остальные объекты базы данных. Как правило, для решения сложных задач одной таблицы недостаточно. Поэтому в базе данных присутствует сразу несколько таблиц, связанных между собой. Запросы предоставляют возможность отобрать данные из таблиц на основании определенных условий. Формы отображают данные из таблиц или запросов. С помощью форм удобно вводить данные в таблицы. Отчеты предназначены для создания документа, построенного на информации, отобранной из базы данных. Отчеты можно просмотреть на экране, распечатать на принтере. 1. Как загрузить СУБД Access и открыть готовую базу данных? 2. Перечислите основные элементы интерфейса СУБД. 3. Какие объекты присутствуют в окне База данных? 4. Для чего предназначен объект Таблица? § 21. Создание таблицы базы данных S1.1. Проектирование баз данных Изучение возможностей СУБД Access начнем с проектирования базы данных. Таблица является основным объектом базы данных. База данных может содержать одну или несколько связанных таблиц в зависимости от требований, предъявляемых разработчиком. На основании таблиц создаются остальные объекты базы данных. Пример. Необходимо спроектировать базу данных «Библиотека дисков» (файл Library_disk.mdb), содержащую сведения об использовании CD и DVD дисков из личной библиотеки пользователя. Основной задачей использования базы данных «Библиотека дисков» является отслеживание выдачи дисков всем желающим клиентам. Проведя анализ необходимой для хранения информации, попытаемся сначала расположить ее в одной таблице, цоля которой разделим на три группы: сведения о клиентах, сведения о наличии дисков и сведения о выдаче дисков. Структура таблицы базы данных в этом случае должна иметь следующий вид: §21. Создание таблицы базы данных Имя поля Тип данных Фамилия Текстовый Сведения о клиентах Имя Текстовый Адрес Текстовый Телефон Текстовый Электронная почта Текстовый Название диска Текстовый Сведения о дисках Тип диска Текстовый Стоимость диска Денежный Дата выдачи Дата/время Сведения о выдаче дисков Отметка о возврате Логический Наполнять данными таблицу, имеющую представленную структуру, достаточно неудобно. Например, при выдаче нескольких дисков для одного клиента будет необходимо многократно повторять информацию о нем; фамилию, имя, адрес и т. д., что приведет к неоправданному увеличению размера таблицы и может повысить вероятность ошибок при вводе информации. Для повышения эффективности при работе с создаваемой базой данных необходимо выполнить процесс нормализации. Для этого разделим одну таблицу на три: «Клиенты», «Диски», «Выдача дисков». Опишем структуру каждой таблицы. „ ^ ^ Таблица «Клиенты» Имя поля Тип данных Имя поля Тип данных Код клиента Счетчик Адрес Текстовый Фамилия Текстовый Телефон Текстовый Имя Текстовый Электронная почта Текстовый Таблица «^l^^cки» Имя поля Тип данных Имя поля Тип данных Код диска Счетчик Тип диска Текстовый Названиедгиска Текстовый Стоимость диска Денежный Глава 4. Технология обработки информации в СУБД Таблица «Вьщача дисков» Имя поля Тип данных Имя поля Тип данных Код вьщачи Счетчик Дата вьщачи Дата/время Код клиента Числовой Отметка о возврате Логический Код диска Числовой В представленных таблицах впервые присутствуют данные Счетчик. Он применяется для хранения целых числовых значений, которые СУБД Access увеличивает при переходе к каждой новой записи. Счетчик может использоваться в качестве уникального идентификатора записи таблицы, в которой не предусмотрено другой такой величины. В нашем случае Код клиента, Код диска и Код выдачи будут уникальными идентификаторами, которые позволят легко отличить одного клиента от другого, один диск от другого и присвоить уникальные специальные значения канодой выдаче дисков. Поля Код клиента. Код диска в дальнейшем будут использованы для установки связей между таблицами, которые мы рассмотрим позже в § 22. Перед началом создания таблиц необходимо с помощью цепочки команд в СУБД Access создать новую базу данных; Файл Создать Новая база данных ^ в окне Файл новой базы данных указать имя файла базы, например Li-brary_disk ^ Открыть. Создание таблицы логически разделяется на два этапа: • создание структуры таблицы; имена полей, типы данных, размер и формат полей; • ввод в таблицу необходимой информации. СУБД Access позволяет создавать структуру таблицы тремя способами в режиме Конструктора, Мастера или Таблицы (путем ввода данных) (рис. 4.3). Рассмотрим работу режимов Мастер и Конструктор. В режиме Таблицы ввод данных производится в пустую таблицу. ’^Открыть Конструктор ■ а Создать | X | Рис. 4.3 1*И! К1.И«1^ИИ : (liVlil /l.llMIhlX hdf'iy, ?(шо) f-Hn)[^ I Запросы Создание таблицы в режиме конструкторе) Создание таблицы с помощью мастера Создание таблицы путем ввода данных § 21. Создание таблицы базы данных S1 .S. Создание структуры таблицы в режиме Мастера В режиме Мастера удобно создавать структуру таблицы, в которой используются ставдартные имена полей и типы данных в этих полях. Мастер вначале предлагает выбрать образец таблицы, а затем отобрать поля для нее. Пример. Создать в режиме Мастера структуру таблицы «Клиенты». Для выполнения этого задания необходимо: 1. Выбрать объект Таблицы в окне База данных и щелкнуть два раза левой клавишей мыши по тексту Создание таблицы с помощью мастера. 2. Выбрать образец таблицы «Клиенты», образцы полей перенести с помощью стрелок из окна Образцы полей в окно Поля новой таблицы, как показано на рисунке 4.4. Имя перенесенного поля может быть изменено с помощью кнопки Переименовать поле... . Cp3/i,cihmc 1а6лн||, Выберите образцы таблиц для применения при создании собственной таблицы. Выберите категорию и образец таблицы, а затем нужные образцы полей. Допускается выбор полей из нескольких таблиц. Если заранее неясно, будет ли использоваться поле или нет, лучше добавить это поле в таблицу. Его несложно будет удалить позднее. Рис. 4.4 0Деаовые 0Личные Образцы таблиц: Список рассылки Контакты Сотрудники Товары Образцы полей: ганизацияИлиОтдеЯ ■ Г срод |06ластьКрайРеспу6лу ПочтовыйИндекс Страна/регион | ДолжностьПолучател НомерТелефона I Внутренний 1Z] ЕЗ Ш Поля новой таблицы: : КодКлИента Шя Фамилия Адрес Телефон Электронная почта Переименовать поле.. j Отмена j '[ Далее'] Сотово 3. Щелкнуть левой клавишей мыши по кнопке Далее ^ задать имя таблицы, например «Клиенты», и установить флажок Пользователь определяет ключ самостоятельно ^ выбрать поле с уникальными дЛя каждой записи данными, дяя нашего примера — это КодКлиента ^ Готово. В результате откроется окно сформированной таблицы «Клиенты», которую можно заполнять информацией (рис. 4.5). Ш Клиенты : та6лж1,а КодКлиента Имя Фамилия Адрес I Телефон [Электронная почта Рис. 4.5 I ^ 1 , |1"_ ГЙ'] Р -Г- ИЗ 1 Типданных i?i Счетчик Текстовый Текстовый Текстовый Текстовый Текстовый Глава 4. Технология обработки информации в СУБД______________ Созданная Мастером структура таблицы «Клиенты» представлена на рисунке 4.6. Желательно, чтобы каждая таблица имела ключ — одно или несколько полей, содержимое которых уникально для каждой записи. В случае отсутствия ключевого поля затрудняется поиск записей в таблице, так как в ней могут встречаться клиенты с одинаковыми фамилиями, адресами и даже телефонными номерами. Для таблицы «Клиенты» таким полем является КодКлиента. Тип данных этого поля — Счетчик. В нашей таблице каждый клиент будет иметь уникальный номер, и никакие две записи в этой таблице не будут одинаковыми. Мастер определяет тип данных полей самостоятельно в зависимости от названия без предварительного определения этих типов пользователем. В дальнейшем в режиме Конструктора тип поля может быть изменен. Рис. 4.6 Имя поля Тип данных -м Код диска Название диска Тип диска ______ [► Стоимость диска Счетчик Текстовый Текстовый Денежный_____|| Свойства по; Общие Формат поля Число десятичных знаков А Маска ввода Подпись Значение по умолчанию Условие на значение Сообщение об ошибке Обязательное поле Индексированное поле Смарт-теги 21.3. Создание структуры таблицы в режиме Конструктора Режим Конструктора предоставляет пользователю возможность самостоятельно описывать и изменять структуру таблицы. После двойного щелчка левой клавишей мыши по строке Создание таблицы в режиме Конструктора (см. рис. 4.3) Конструктор открывает специальное окно, в котором необходимо описать поля. Пример. Создать с помощью Конструктора таблицу «Диски», которая должна содержать четыре поля, для каждого поля требуется ввести имя, тип данных и в нижней части окна определить свойства поля, как показано на рисунке 4.7. При вводе типов данных и свойств полей пользователю необходимо использовать раскрывающиеся списки (см. рис. 4.7). В таблице «Диски» ключевым полем является Код диска. Чтобы это поле ста- Текстовыи Поле MEMO Числовой Дата/время Счетчик Логичеосий Попе объаста OL Гиперссылка Мастер подстано ■ Нет Нет Рис. 4.7 ло ключевым, достаточно в режиме Конструктора поместить курсор в выбранное поле и нажать кнопку Ключевое поле на панели Базы данных или выполнить команды меню Правка ^ Ключевое поле. Если необходимо определить сразу несколько ключевых полей, то сле/]ует вьщелить нужные строки и нажать кнопку Ключевое поле. Повторные аналогичные действия отменяют признак ключевого поля. СУБД Access допускает использование различных типов данных. Основные типы данных и их описание приведены в следующей таблице. Тип данных Описание типа данных Числовой Содержит произвольные числовые значения Текстовый Текстовые, числовые данные, не требующие вычислений. Длина поля не превосходит 255 символов Поле MEMO Текстовые данные большого объема. Длина поля не превосходит 65 535 символов Дата/время Представление даты и времени в различных форматах Денежный Числовые денежные значения Логический Логические значения Гиперссылка Ссылка на некоторый документ или файл Объект OLE Документы различных типов, подготовленные в Word, Excel, точечные рисунки и др. Назначение поля Счетчик уже рассматривалось нами ранее. После завершения описания таблицы она сохраняется с помощью цепочки команд; Файл —> Сохранить как ^ указать имя таблицы, например Диски -> Ок. Созданные в Мастере таблица «Клиенты» и в Конструкторе таблица «Диски» добавляются в окно Базы данных. 21.4. Ввод и редактирование данных в таблице После завершения работы по созданию структуры таблицы пользователь может в режиме Таблицы приступить к заполнению таблицы данными. Для этого необходимо сделать двойной щелчок левой клавишей мыши по названию таблицы в окне Базы данных, например «Клиенты». '■ Ввод данных в таблицу базы данных и их редактирование осуществляется непосредственно в соответствующей ячейке таблицы. Действия по вводу и редакти- Ш Клиенты : таблица eJoi® |КодКлиента Фамилия 1 Имя 1 Адрес I Телефон 1 Электронная почта ♦; 1 Сидоров Вася i ул. Плеханова, д. 20 ; 2954321 Sidor@tut.by + 2 Симончик : Валя ул. Васнецова, д.З, кв.89 2961736 |sim@mail.ru | + ! 3'Титов Алексей ул. Жилуновича, д.6 ; 2474331 lTitov@tut.by I + 1 4! Смирнов Александр )уп. Ванеева, д.6, кв. 5 ; 2912345 imal@tut.by I +: 5: Иванов i Павел ул. Кошевого, д.13, кв.5 i 2916754 iPivan@mail.ru Ж I I (Счвтчи(^1 1 Заикь; 1М1 i Г Рис. 4.8 рованию аналогичны заполнению и редактированию данных в таблице текстового редактора Word (рис. 4.8). Для удаления в таблице одной записи необходимо выбрать режим Таблица, установить курсор в любое поле удаляемой записи и сделать щелчок левой клавишей мыши по кнопке Удалить запись . Для удаления нескольких записей одновременно их необходимо вначале вьщелить, а затем выполнить последовательность действий, описанных выше. Добавление записей в таблицу осуществляется в режиме Таблица. При этом новая запись добавляется в конец таблицы. После завершения ввода данных в таблицу или их редактирования таблица сохраняется с помощью цепочки команд Файл Сохранить. 1. Как создать структуру таблицы в режиме Мастера? 2. Можно ли изменить имя поля в режиме Мастера? 3. Как создать структуру таблицы в режиме Конструктора? 4. Что понимается под ключевым полем в таблице? Для чего применяется ключевое поле? 5. Какие типы данных допускается использовать в СУБД Access? 6. Как записи добавляются в таблицу и удаляются из нее? Упражнения 1. Создайте однотабличную базу данных «Страны», которая содержит таблицу «Страны 2002». Для этого: структуру таблицы а) Опишите (рис. 4.9). б) Введите (рис. 4.10). в таблицу данные fc Страны 2002 : таблица Имя поля Страна Столица Население^ _ Площадь (кв км) Язык Часть света Тип данных Текстовый Текстовый Числовой Числовой I Текстовый Текстовый ш Рис. 4.9 fe Страны 2002 таблица Г1(са']!х1 Страна Столица 1 Население | Площадь (кв км) Язык 1 Часть света | ► Австралия Канберра 19500000: 7687000 Английский (Австралия и Океания: Австрия Вена 8100000! 83800 Немецкий 1 Европа 1 Алжир Алжир 31400000: 2382000 Арабский 1 Африка 1 Аргентина Буэноо-Айрес 37900000: 2767000 Испанский 1 Южная Америка i Беларусь Минск 9900000! 207600 Белорусский, русский f Европа f Бразилия Бразилия 1 1747000001 8512000 Португальский 1 Южная Америка f Великобритания Лондон 59700000! 244100 Английский i Европа 1 Вьетнам Ханой 80200000: 329600 Вьетнамский [ Азия 1 Египет Каир 70300000! 1002000 Арабский ! Африка 1 Индия Дели : 8496000001 3288000 Хинди 1 Азия ! Канада Оттава 31300000: 9976000 Английский, французский ! Северная Америка i Китай Пекин 12944000! 9561000 Китайский 1 Азия ! Люксембург Люксембург 400000! 2600 Немецкий, французский i Европа 1 Польша Варшава I '38500000I 312700 Польский !Европа 1 Россия Москва ! 148600000! 17075400 Русский 1 Европа, Азия i США ^ Вашингтон ! 288500000: 9364000 Английский 1 Северная Америка i Тунис Тунис 9700000! 164000 Арабский 1 Африка f Украина Киев 48700000; " 603700! Украинский 1 Европа 1: Рис. 4.10 2. Создайте базу данных «Библиотека дисков» (файл Library disk.mdb), содержащую три таблицы «Клиенты», «Диски», «Выдача дисков», как показано на рисунке 4.11, а, б, в. iv Клиенты : таблица ШхВ1 : |:К0д1ййййта4: ФШйЛЙя!! I Имя I Адрес + 1 1| Сидоров !Вася ; ул. Плеханова, д. 20 2954321 ! + : 2 Симончик !Валя [ул. Васнецова, д.З, кв.89 ' 2961736 1 + | 31 Титов I Алексей ул. Жилуновича, д.6 : 2474331 j +J_ 4( Смирнов (Александр jyn. Ванеева, д.6, кв. 5 ! 2912345 +! 5* Иванов IПавел ул. Кошевого, д.13, кв.5 2916754 ♦ I (Счетчик)! Рис. 4.11, а, 6 Ш* Диски : таблица 1 Код диска Название диска I Тип писка I Стоимость лиска f| > *1 1 Комплект словарей ICD-R 15 000.00р. II 2 Текстовые редакторы CD-R 10 000.00р. + I 3 Пираты Карибского моря DVD 18 000.00р. + 1 4 Валерий Меладзе DVD 7 000.00р. 5 Группа Сябры DVD 6 000.00р. 6 Дима Колдун DVD 9 000.00р. т I (Счетчик) 1 Запись: Ги1 ^ \ \ i 6 | Глава 4. Технология обработки информации в СУБД Рис. 4.11, в Выдача ДИСКОВ : таблица Код выдачи КодКпианта вод диска 1 Дага выдачи ! Отмежа о возв()ите ЛЙ 1 4 5| 19.02,200г1 0 2 5 6' 20.02.2007; 0 3 3 5 21.02.20071 Е1 4 2 1| 24.02.2007; 0 5 5 5 13.03.2007: В 6 1 2 15.03.2007i □ 7 1 6 24.04.2007: □ 8 1 3 12.06.2007 □ т. (Счетчик) 0 0. : В ^Запись; CEljj 1 ГШШЖ1 из 8 § SS. Связывание таблиц базы данных Установление связей в СУБД Access дает возможность автоматически соединять данные из разных таблиц. Процесс установки связей между таблицами называют построением схемы базы данных. Для установления связей между двумя таблицами необходимо определить в каждой из них поля для этого связывания. Эти поля не обязательно могут иметь одинаковые имена, но должны содержать однотипные данные. Пример. Установить связь между двумя таблицами «Покупатель» и «Заказы» в базе данных Trade.mdb. Структура каждой таблицы представлена на рисунке 4.12. В таблице «Покупатель» ключевым полем является поле Код покупателя. Данное поле является счетчиком и содержит уникальные значения для каждой записи этой таблицы. Поле данной таблицы назовем первичным ключом. Если каждый покупатель делает только один заказ, то в таблице «Заказы» поле Код покупателя будет содержать неповторяющиеся данные и должно быть определено как ключевое поле. В таблице «Заказы» ключевое поле Код покупателя будем называть внешним ключом. В этом случае тип связи, установленный между первичным и внешним ключами, называют связью один к одному. Этот тип связи представлен Рис. 4.12 . на рисунке 4.13. Код покупателя Номер заказа Дата заказа Адрес § 22. Связывание таблиц базы данных 1 1 Город Страна Код покупателя Номер заказа Дата заказа Адрес Рис. 4.13 Если в таблице «Заказы» один покупатель делает несколько заказов, то поле Код покупателя уже не будет уникальным. Получается, что данные в этом поле повторяются многократно. В этом случае ключевым полем с уникальными данными должно быть определено другое поле, например поле Номер заказа. В данном случае тип связи, установленный между одноименными полями Код покупателя в обеих таблицах, называют связью один ко многим, как показано на рисунке 4.14. Рис. 4.14 ■■■■■■■■Hi Код покупателя Код покупателя Город Номер заказа Страна Дата заказа Адрес Для создания Схемы данных в СУБД Access необходимо выполнить следующее; 1. Открыть многотабличную базу данных, для которой между таблицами устанавливаются связи, например базу данных trade.mdb. ____ 2. Щелкнуть левой клавишей мыши по значку Схема данных или выполнить цепочку команд Сервис —» Схема данных на панели Стандартная. 3. Выделить первую таблицу, для которой устанавливается связь в окне Добавление таблицы. Для данного примера это-таблица «Покупатель». 4. Щелкнуть левой клавишей мыши по кнопке Добавить. На экране будет отображена таблица, которую мы добавили. 5. Выделить таблицу, которую требуется добавить в Схему данных (в нашем случае это таблица «Заказы»), и щелкнуть левой клавишей мыши по кнопке Закрыть. 6. В окне таблицы «Покупатель» щелкнуть левой клавишей мыши на поле Код покупателя, которое будет использоваться для установки связи, и перетянуть его на совпадающее поле таблицы «Заказы». Рис. 4.15 Глава 4. Технология обработки информации в СУБД Изменение связей Таблица/запрос: Связанная таблица/запрос: ОК Г~1 каскадное обновление связанных полей f~~j каскадное удаление связанных записей Тип отношения: один-ко-многим Покупатель Заказы \ Код покупателя Д1 Код покупателя -^1 1 Отмена Объединение... 1 111 Новое.. г 1'/110беспвчение целостности данных! 7. В окне Изменение связей установить флажок Обеспечение целостности данных, затем щелкнуть левой клавишей мыши по кнопке ОК (рис. 4.15). В результате выполненных действий в окне Схема данных два связанных поля соединятся линией, как показано на рисунке 4.14. В дальнейшем для сохранения созданных связей необходимо щелкнуть левой клавишей мыши по кнопке Сохранить и закрыть окно Схема данных. Созданные связи в дальнейшем можно удалить в окне Схема данных, щелкнув левой клавишей мыши по линии связи, чтобы вьщелить ее, а затем нажать клавишу Delete (Удалить) на клавиатуре. Двойной щелчок левой клавишей мыши по линии связи приведет к открытию окна Изменение связей, в котором схема базы данных может быть изменена. 1. Для чего необходимо связывать таблицы базы данных? 2. Какими свойствами должны обладать связываемые поля? 3. Какие типы связей существуют между таблицами? 4. Что понимается под схемой базы данных? Упражнение В базе данных «Библиотека дисков» свяжите таблицы «Клиенты», «Диски», «Вьщача дисков» (см. рис. 4.11). Результат выполнения задания дан на рисунке 4.16. § 23. Модификация структуры таблицы Клиенть! КодКлиента Имя Фамилия Адрес Телефон Электронная почта |КОДВ1^ЧИ Код диска КодКлиента Название диска Код диска Тип диска Дата выдачи Стоимость диска Отметка о возврате Рис. 4.16 § S3. Модификация структуры таблицы После создания базы данных и в процессе работы с ней проектировщик базы данных может обнаружить, что структура таблиц требует некоторых изменений. В этом случае ему необходимо выполнить модификацию ее структуры. Под модификацией структуры таблицы будем понимать удаление из нее существующих полей, добавление новых полей, изменение имени, типа, размера, формата данных поля. В СУБД Access модификация структуры таблицы осуществляется в режиме Конструктора. Для модификации структуры таблицы необходимо: 1. Открыть базу данных, содержащую таблицу, структуру которой необходимо изменить. 2. Щелкнуть левой клавишей мыши по нужной таблице в окне База данных. 3. Щелкнуть левой клавишей мыши по кнопке Конструктор ^Конструктор чтобы открыть описание структуры таблицы в режиме Конструктора. Пример. Модифицировать структуру таблицы «Страны 2002» в режиме Конструктора, представленную на рисунке 4.17, в структуру, показанную на рисунке 4.18. Ш Страны 2002 : таблица 1- Имя поля 1 Тип данных I Страна i Текстовый 1 Столица Текстовый Население Числовой Площадь (кв км) Числовой : Язык i Текстовый ( Часть света Декстовый Ш Страны 2002 : таблица Имя поля I Тмпданных Страна Столица Население Площадь {кв км) Плотность населения Язык I Текстовый Текстовый Числовой Числовой ;Числовой Текстовый Рис. 4.17 Рис. 4.18 Глава 4. Технология обработки информации в СУБД___________ Проведя анализ двух структур, заметим, что нам требуется удалить из старой структуры поле Часть света, а в модифицированной структуре описать новое числовое поле Плотность населения. Для удаления поля в режиме Конструктора следует: 1. Установить текстовый курсор в удаляемую строку Часть света. 2. Щелкнуть левой клавишей мыши по кнопке Удалить строки т на панели Стандартная или выполнить цепочку команд меню; Правка Удалить строки. Необходимо помнить, что при удалении поля все содержащиеся в нем данные удаляются. Для вставки поля в режиме Конструктора требуется: 1. Установить текстовый курсор в поле строки, над которой будет расположено новое поле. Для нашего примера это будет поле Язык. 2. Щелкнуть левой клавишей мыши по кнопке Добавить строки нели Стандартная или выполнить цепочку команд меню; Вставка Строки. 3. После вставки новой (пустой) строки в нее вносятся необходимые данные. Изменение имени поля осуществляется при редактировании соответствующей ячейки в столбце Имя поля (см. рис. 4.17). Изменение типа данных в режиме Конструктора выполняется с помощью выпадающих меню столбца Тип данных, а изменение подтипов, формата и размера данных производится в окне Свойства поля. 1. Что понимается под модификацией структуры таблицьг? 2. Как изменяются имя, тип, размер, формат данных поля в СУБД Access? Упражнение Откройте базу данных «Озера Беларуси», содержащую таблицу «Озера» (рис. 4.19). >3 на па- р Озера : таблица Название Площадь (кв км) Макс глубина (м) Объем воды (млн куб м) ► Нарочь 79,6 24,8 710 Свирь [_ 22,28 8,7 104 Мядель 16.2 24.6 102 Дрывяты i mi 12 224 Струсто _ i 13 23 94 Снуды i 22 16,5 108 Поцех ! 1,35 9,1 4 Свитязь ! 2,24 15 8 Недрово 4 3,72 12,2 18 Войсо J 4,88 9,1 14 Рис. 4.19 ^ 24, Создание и заполнение формы Я Озера : таблица ■Mali к Имя поля Тип данных Ш ► Название Текстовый В Площадь (кв км) ^Меловой ——- Ш Макс глубина (м) Числовой я Объем воды (млн куб м) Числовой ш ш ш а1 ■ Озера : таблица ИВ щ Имя поля I Тип данных Описание т Название озера ! Текстовый □ Площадь ! Числовой кв км Длина I Числовой км Ширина I •Аловой КМ zi Макс глубина ( Числовой м ш Объем воды ; Числовой млн куб м ш Рис. 4.20 В специальном столбце Описание укажите единицы измерения. Модифицируйте структуру таблицы «Озера»: измените имена полей, добавьте поля Ширина, Длина. Результат выполнения задания показан на рисунке 4.20. § S4. Создание и заполнение формы 24.1. Возможности создания формы в СУБД Access При работе с таблицей базы данных пользователь для удобства может представить данные таблицы на экране монитора в такой последовательности, в которой ему необходимо (удобно). Для этого создается форма, с помощью которой в дальнейшем можно вводить, редактировать и просматривать данные. Формы отображают данные из таблиц или запросов и создаются на их основе. Рассмотрим создание формы по таблице. При этом достаточно иметь структуру таблицы. Впоследствии данные в таблицу могут быть введены через эту форму. СУБД Access позволяет создавать формы* в режиме Мастера и Конструктора. При подготовке формы необходимо в окне Базы данных выполнить цепочку команд: Формы Создать "О Создать В открывшемся окне Новая форма предлагаются два основных способа: Конструктор и Мастер форм, а также Автоформы в столбец, ленточная, табличная сводная таблица, сводная диаграмма и др., как показано на рисунке 4.21. В окне Новая форма следует выбрать в качестве источника данных нужную таб- Рис. 4.21 ГлмаДЛЪшолоп^^ i Конструктор П1 Автоматическое создание форм с полями, расположенными в оЯин столбец. Выберите в качестве источника данных таблицу или запрос: |Автоформа:ленточная !Двтоформа;табличная !Автофориа; сводная таблица ! Автоформа; сводная диаграмма ‘ Диаграмма [Сводная таблица !Озера| V > I OK лицу или запрос. Это особенно важно, если форма создается в многотабличной базе данных или в ней уже создано несколько запросов. Быстрое создание форм обеспечивают Мастер форм и Автоформы, однако этот способ не всегда устраивает пользователя и часто ограничивает возможности оформления форм. S4.S. Создание с|эормы в Конструкторе Создание формы с помощью Конструктора является более сложным процессом, чем с помощью Мастера форм. Для создания формы в режиме Конструктора нужно выполнить цепочку команд: 1. Выбрать Формы ^ Создать в окне База данных ^ указать пункт меню Конструктор в окне Новая форма, а также выбрать источник данных—таблицу, например «Озера», на основании которой строится форма. В результате выполненных действий откроется окно для конструирования формы и специальное окно со списком полей таблицы, как показано на рисунке 4.22. 2. Перетянуть с помощью мыши из Списка полей в Область данных необходимые поля таблицы, например Название. Если список полей не откроется одновременно с Областью данных, он может быть открыт с помощью специального значка Список полей на панели Стандартная. Этот значок представлен на рисунке 4.22. При перетягивании каждого поля в Область данных в нем располагаются Надпись (имя) и Текстовое поле (данные). Если размер Области данных недостаточен, его можно изменить аналогично тому, как это делается при изменении размера любого окна. § 24. Создание и заполнение формы I ■ ■ Г Список полей Р Озера Название Площадь (кв км) Макс глубина (м) Объем воды (млн куб м) й ■€ Область данных Ьа йпание: 1 .1. ,i _ J }Название i 1^ Г“ ^ т .г 1 - 1 НадписьЦ. Гтекстовое поле®—! i 3 .А ■ I Границы формы Рис. 4.22 Если элементы Надпись и Текстовое поле не полностью отображаются в форме, например «Объем воды (млн куб. м)», то могут быть изменены их размеры. Пользователь также может изменять положение этих элементов в Области данных и их расположение относительно друг друга. Эти изменения могут быть выполнены с помощью маркеров и мыши после выделения нужных элементов (рис. 4.23). Работать с элементами Над- пись и Текстовое поле в области данных надо очень аккуратно. При перемещении элементов следует обращать внимание на сетку и линейки по горизонтали и вертикали. Сделав щелчок левой клавишей мыши внутри Надписи, пользователь может отредактировать ее текст. После завершения переноса полей из Списка полей и завершения их размещения с помощью кнопки Автоформат на панели Стандартная пользователь может выбрать стиль оформления формы. Название _;Названис I Маркеры изменения размеров элементов ИИ* Рис. 4.23 Ппава 4. Технология обработки информации в СУБД Завершение конструирования формы заканчивается ее сохранением. Формы, созданные в Мастере форм, могут быть изменены в Конструкторе. 1. Для чего создаются и используются формы? 2. Какие способы создания формы предлагает СУБД Access? Упражнение Откройте готовые базы данных. Создайте формы, используя Конструктор. а) База данных «Озера Беларуси», содержащая таблицу «Озера» (см. рис. 4.19). Результат выполнения задания дан на рисунке 4.24. Рис. 4.24 б) База данных «Страны», содержащая таблицу «Страны 2002» (рис. 4.25). Страны 2002 • таблица 1- linjiXJ Страна Плошадь (KD КМ) 1 Чнсгь снега | 1 II Австралия Австрия 1Канберра | 19500000 i Вена | 81ОСЮОО 7687000 [Английский _ _ ; 838001 Немецкий [Австралия и Океания|Точечный рисунок Ш| [Европа |Точечныйрисунок || Алжир |Алжир j 31400000 2382000 Арабсшй Африка Точечный рисунок Аргентина I Буэнос-Айрес| 37900000 2767000 Испанский Южная Америка Точечный рисунок Беларусь |Минск j 9900000^ 207600 Белорусский, русский Европа Точечный рисунок Бразилия ^Бразилия I 174700000 8512000 Португальс1»1й Южная Америка Точечный рисунок 1 Великобритания !Лондон ] 59700000 244100 Английский Европа Точечный рисунок Вьетнам !ханой ! 80200000 329600 Вьетнамский Азия Точечный рисунок Египет •^ир I ^00000 1002000 Арабский Африка Точечный рисунок Индия Л^Дели 849600000 3288000 Хинди Азия Точечный рисунок Канада 10ттава ! 31300000 9976000 Английский, французский Северная Америка Точечный рисунок Китай 1Пекин 1 1294400000 9561000 Китайский Азия Точечный рисунок Люксембург 1 Люксембург 400000 2600 Немецкий, французский Европа Точечный рисунок Польша Варшава j 38500000 312700 Польский Европа Точечный рисунок Россия Ш 1 148600000 17075400 Русский Европа Азия Точечный рисунок США ^Вашингтон 288500000 9364000 Английский Северная Америка Точечный рисунок Тунис Гтунис j 9700000 164000 Арабский Африка Точечный рисунок Украина 603700 Украинский Европа Точечный рисунок Франция Г 59700000 551600 Французский Европа Точечный рисунок 1 Чили (Сантьяго j 15600000 |'^ 1 6 ^ 75700 Испанский Южная Америка 1 Точечный рисунок Рис. 4.25 § 25.Использование фильтров Результат выполнения задания показан на рисунке 4.26. Страны Рис. 4.26 j^CiiMiHi ■ ■ ;{Беларусъ ЛСп>1ШЦа - л.|Минск Флаг Рапись: 114 f Т1 Р 5 П>ТЙ'1|Т*! И5 20 § S5. Использование фильтров При работе с таблицами базы данных обычно на экране монитора необходимо отобразить не все записи, а отобранные по определенным критериям. Для отбора записей таблицы по определенным критериям в СУБД Access используются фильтры. Рассмотрим применение фильтров на конкретной однотабличной учебной базе данных «Яблоки». Таблица этой базы представлена на рисунке 4.27. Рис. 4.27 и Я6.ЛОКИ ; таблица - ” ;Х Сорт яблок 1 Масса плода (г) | Период созревания || Белый налив 100: Июль Старк Эрлист 90 •: Август Ранний сладкий 801 Август 1 JШтgифeль I 1201 Сентябрь Антоновка 1 150! Сентябрь I Минский 1 2001 Октябрь _ 1 Банановый 1 1201 Октябрь 1 Малиновый 1 120■Сентябрь Мантэт 1301 Август _ 1 Запись: [iljj i | I FFnei-9 СУБД Access предлагает пользователю различные способы фильтрации: по выделенным данным, по заданному условию и др. Выполнение фильтрации по вьщеленным данным рассмотрим на примере. Пример 1. Отобразить на экране монитора записи таблицы базы данных, которые содержат сведения о яблоках, созревающих в сентябре. Глава 4. Технология обработки информации в СУБД Яблоки : таблица Сорт яблок Масса плода (г) ! Период созревания ► Штрифель ' 120 Антоновка 150 Сентябрь Малиновый 120 Сентябрь * шяЛшшшшшшшт Рис. 4.28 |~3апись; [ГГ) ^ | 1 [TJmIRs] из 3 (Фильтр) Для выполнения задания необходимо: 1. Щелкнуть левой клавишей мыши на любой ячейке столбца Период созре вания со значением «Сентябрь». 2. Щелкнуть левой клавишей мыши по кнопке Фильтр по выделенному или выполнить цепочку команд: Записи ^ Фильтр ^ Фильтр по выделенному. В результате на экране монитора появится окно с таблицей, содержащей все записи, имеющие в поле Период созревания значения «Сентябрь», как показано на рисунке 4.28. При сохранении полученной таблицы последний установленный фильтр запоминается СУБД Access и потом может быть снова применен. Для отключения установленного фильтра можно воспользоваться кнопкой Удалить фильтр на панели Стандартная. Повторное нажатие этой кнопки приводит к применению к таблице последнего фильтра. Фильтрацию по заданному условию удобно задавать после сделанного щелчка левой клавишей мыши по кнопке Изменить фильтр ная или выполнив цепочку команд: Записи ^ Фильт|Г на панели Стандарт-Изменить фильтр. В итоге откроется окно Фильтр, в котором задаются условия (рис. 4.29). Фильтрацию данных по заданному условию покажем на примере. Пример 2. Отобразить на экране монитора записи таблицы базы данных, которые содержат сведения о яблоках, созревающих в сентябре и имеющих массу 120 г. С помощью выпадающих меню в окне Фильтр зададим условие «Масса плода (г) =120 и Период созревания = Сентябрь» (см. рис. 4.29). в Яблоки: фильтр Сорт яблок Масса плода (г) | Период ссвревания Рис. 4.29 1, Найти дИли 7 120 У : "Сентябрь" > 25. Использование ^иль^о^ ® Яблоки : таблица 0®® Сорт яблок Масса плода (г) Период созревания М > 1 ШтоисЬель 1 120: Сентябрь 1 Малиновый 120! Сентябрь ■ * 1 Запись: 1 И 1 '< ' I 1 [ V 1 из 2 (Фильтр) После применения фильтра получим таблицу, содержащую две записи, как показано на рисунке 4.30. Н1. Для чего используются фильтры? 2. Какие операции фильтрации предлагает пользователю СУБД Access? Упражнение Создайте однотабличную базу данных «Аквариумные рыбки». Структура таблицы и ее содержание даны на рисунках 4.31 и 4.32. в Аквариумные рыбки ; таблица Рис. 4.31 Имя поля Тип данных Название рыбки Место происхождения Длина (см) Текстовый Текстовый : Числовой V 1| Аквариумные рыбки ; таблица Рис. 4.32 Выполните отбор а) фильтрацию по б) фильтрацию по в) фильтрацию по г) фильтрацию по Название рыбки 1 Место происхождения | Длина (см) ► Гамбузия Южная Америка 5 Плятипецилиус черный 1 Мексика Зеленый меченосец «Мексика 11 Тетра-фон-рио 1 Южная Америка j . Бархатный гирардинус Южная Америка 5 Макропод «Китай i 9 Гурами жемчужный i Индия ! 10 Лялиус 1Индия i Неон «Южная Америка 4 ■ |зашсы |Н14 И 1 I- и» 9 нужных записей таблицы, используя: вьщеленному «Южная Америка»; выделенному «Индия»; условию «Китай» или «Индия»; условию «Южная Америка» и Длина (см) >3. Глава 4. Технология обработки информации в СУБД § 26. Поиск данных с помощью запросов S6.1. Запрос на выборку данных по одной таблице Поиск информации в базах данных выполняется через запросы. С помощью запроса СУБД Access выбирает и отображает записи из таблиц базы данных, которые отвечают заданным условиям. Запрос может формироваться на основе одной либо нескольких связанных таблиц или запросов, построенных ранее. СУБД Access поддерживает создание запросов на выборку с помощью Мастера и Конструктора. Покажем, как осуществляется поиск информации на примерах создания запросов на основе таблицы «Кольца» базы данных «Украшения из драгоценных металлов», которая представлена на рисунке 4.33. Пример I. Выполнить поиск информации в таблице базы данных, который покажет сведения о металле, камне и цене драгоценных колец. Для создания соответствующего запроса необходимо выполнить следующие действия: 1. Щелкнуть левой клавишей мыши по кнопке Запросы в окне Базы данных. 2. Дваяоды щелкнуть левой клавишей мыши на строке Создание запроса с помощью конструктора или выполнить цепочку Создать ^ Конструктор Ок. Рис. 4.33 ц_ 3 Кольца: таблица Ы®®' Металл Проба Камень Цена ► Белое золото i 750«Бриллиант 3 060 000,00р. Желтое золото 585«Бриллиант 2 025 000,00р. Белое золото 585 Бриллиант 1 020 000,00р. Серебро ! 925«Гранат 630 000,00р. Красное золото 1 750 «Сапфир 1 260 000,00р. Желтое золото 585 Сапфир 1 710 000,00р. Серебро 585 «Оникс 900 000,00р. Красное золото 585 Бриллиант 2 229 000,00р. Белое золото 750 Бриллиант 1 680 000,00р. Красное золото 585 Янтарь 468 000,00р. Серебро 925 Гранат 702 000,00р. Серебро 925 Гранат 576 000,00р. Красное золото ! 925'Бриллиант 6 525 000,00р. О! ! 0,00р 1 Запись; 11 « ; I § 26. Поиск данных с помощью запросов Имя таблицы: Сортировка: Вывод на экран: Условие отбора: или: Металл Камень V Кольца Кольца Кольца.* Металл 0 .... ......м... Проба П ^ 1 Камень < i Цена 1.— : :. " ' ' '.i Рис. 4.34 3. В окне Добавление таблицы выбрать таблицу с именем Кольца и щелкнуть левой клавишей мыши по кнопке Добавить. 4. В результате выполненных действий откроется окно Запрос на выборку Конструктора, как показано на рисунке 4.34. В этом окне в строке Поле необходимо щелкнуть левой клавишей мыши по кнопке со стрелкой. Из открывающегося списка требуется последовательно выбирать поля, по которым будет формироваться запрос; Металл, Камень, Цена. Установка флажка в выбранном столбце строки Вывод на экран позволит вывести на экран монитора информацию, которая содержится в соответствующих полях таблицы (в нашем примере: Металл, Камень, Цена). В результате выполнения запроса на экране монитора появится временная таблица (рис. 4.35), которую при необходимости можно сохранить. Пример 2. Осуществить поиск информации в таблице базы данных, который покажет сведения о камне всех серебряных колец, цена которых больше 660 000 р. Рис. 4.35 б» Кольца Запрос! : запрос на выборку шШт ш i Металл Камень Цена Белое золото Бриллиант 3 060 000,00р. Желтое золото Бриллиант . 125 000,00р. Белое золото Бриллиант 1 020 000,00р. Серебро Гранат 630 000,00р. Красное золото Сапфир 1 260 000,00р. Желтое золото Сапфир 1 710 000,00р. Серебро Оникс 900 000,00р. Красное золото Бриллиант 2 229 000,00р. Белое золото Бриллиант 1 680 000,00р. Красное золото Янтарь 468 000,00р. Серебро Гранат 702 000,00р. Глава 4. Технология обработки информации в СУБД Поле: Имя таблицы: Сортировка: Вывод на экран; Условие отбора: или: Рис. 4.36 Металл Камень цена Кольца Кольца Кольца "Серебро" I>660000| V В этом примере необходимо выполнить запрос Металл=«Серебро» и Цена > 660 000. в окне Конструктора запроса в строке Условие отбора сформируем запрос, как показано на рисунке 4.36. Для формирования данного запроса в Конструкторе необходимо: 1. В строке Поле щелкнуть левой клавишей мыши по кнопке со стрелкой. Из открывающегося списка последовательно выбрать поля, по которым будет формироваться запрос; Металл, Камень, Цена. 2. Установить флажок в выбранном столбце строки Вывод на экран. Это позволит вывести на экран монитора информацию, которая содержится в соответствующих полях таблицы базы. 3. Ввести необходимые значения в соответствующем столбце строки Условие отбора, как показано на рисунке 4.36. В результате выполнения запроса на экране монитора появится временная таблица (рис. 4.37). Кольца Запрос! : запрос на выборку Рис. 4.37 Металл Камень Серебро Серебро 1 Оникс ■Гранат Цена 900 000,00р. 702 ООО.ООру о'оор. из 2 Формирование запросов по двум либо нескольким связанным таблицам осуществляется аналогично. При этом в строке Имя таблицы необходимо указать таблицы, данные из которых будут использоваться в запросе. 1. Для чего используются запросы? 2. На основе каких объектов СУБД Access формируется запрос? § 26. Поиск данных с помощью запросов Упражнения 1. Откройте таблицу «Страны 2002» базы данных «Страны» (см. рис. 4.25) и создайте запросы по этой таблице; а) простой запрос, содержащий все записи полей Страна, Столица, Население, Язык; б) запрос, имеющий записи с полями Страна и Население<« 10 млн человек»; в) запрос с записями Столица и Язык = «арабский». 2. Откройте таблицу «Озера» базы данных «Озера» (см. рис. 4.19) и создайте запросы по этой таблице: а) простой запрос, содержащий все записи полей Название, Площадь (кв км), Макс глубина (м); б) запрос, имеющий записи с полями Название, Объем воды (млн куб м)>10 и Объем воды (млн куб м) < 20. S6.2. Параметрический запрос Создание параметрического запроса облегчает работу пользователя, так как не требует постоянного изменения структуры запроса в окне Конструктора. Параметрический запрос — это запрос, при выполнении которого пользо-^*1 вателю необходимо ввести значение требуемого ему параметра. Пример. Предположим, что у нас имеется база данных, содержащая таблицу «Водопад», которая представлена на рисунке 4.38. Необходимо осуществить поиск информации, содержащей сведения о всех водопадах конкретной страны. Создание параметрического запроса начинается с конструирования простого запроса по выбору. В данном примере пользователю необходимо при каждом I Водопад : таблица Рис. 4.38 Код [Т^вание водопада 1: Анхель 2 Утигард 3 Мутарази 4 Йосемирский 5 Эспеландс 6 Мардалсфосс 7 Кукенан 8 Сатерленд 9 Киле (Счетчшг) Страна Высота (м i i Венесуэла 1054 1 Норвегия 8001 Зимбабве 7621 США 739 i Норвегия 7031 Норвегия 657; Венесуэла Новая Зеландия Норвегия 610j 580’ 561 I О I Запись; | И | 1 из 9 Глава 4. Технология обработки информации в СУБД Поле; Имя таблицы; Сортировка; Вывод на экран; Условие отбора; или; Название водопада Страна Высота (м) Водопад Водопад Водопад Р1 0 0 [Введите название страны] Рис. 4.39 Рис. 4.40 Введите значение параметра Введите название страны IНорвегия! — J 1 1 ОК J Отиена | Рис. 4.41 Запрос4 : запрос на выборку 1 Название водопада f Страна 1 Высота (ш , ► Утигард : Норвегия 800 Эспеландс 1 Норвегия 703 Мардалсфосс Норвегия 657 Киле Норвегия 561 выполнении запроса вводить название страны. Поэтому в строке Условие отбора указывается текст подсказки в квадратных скобках [Введите название страны], как показано на рисунке 4.39. При выполнении параметрического запроса открывается специальное окно для ввода названия страны, например «Норвегия» (рис. 4.40). В результате выполнения запроса на экране монитора появляется таблица, содержащая сведения о водопадах Норвегии, как представлено на рисунке 4.41. S6.3. Вычисления в запросе При формировании запросов иногда требуется получить информацию, которая содержит вычисления, полученные в результате выполнения арифметических операций. Для выполнения таких запросов могут быть использованы арифметические Выражения. § 26. Поиск данных с помощью запросов Поле: Имя таблицы; Г рупповая операция: Сортировка: Вывод на экран: Условие отбора: или: Название водопада Страна Высота(км): [Высота (м)]/1000 Водопад Водопад Группировка Группировка Г руппировка P1 Р?1 0 I < ! V > Рис. 4.42 Пр (чмер 3. В таблице «Водопад» (см. рис. 4.38) определить высоту всех водопадов в километрах. Для создания такого запроса в строке Поле записывается арифметическое выражение «[Высота (м)]/Ю00» с пояснительным текстом «Высота (км)», как представлено на рисунке 4.42. После выполнения запроса с выражением на экране монитора появляется таблица, представленная на рисунке 4.43. При написании выражений пользователь может воспользоваться возможностями окна Построитель выражений, которое открывается после щелчка левой клавишей мыши по кнопке Построить Рис. 4.43 ^ Запрос! : запрос на выборку 1 Название водопада Страна 1 Высота(км) ! Анхель Венесуэла 1,0541 1 1— Йосемитский США 0,739 Кукенан Венесуэла 0.R1 ’’ Киле Норвегия 0,561 ; 1 Мутарази Зимбабве 0,7621 } ! 1 Мардалсфосс Норвегия 0,6571 1 Сатерленд НоваяЗеландия 0,58! Утигард Норвегия 0,8 Эспеландс Норвегия ) 0,7031| ; Запись! ОШ] [ гСЕШ ' ‘ «5 9 1 1. Для чего используется параметрический запрос? 2. Могут ли в запросах использоваться вычисления? Глава 4. Технология обработки информации в СУБД Поле Имя таблицы Сортировка Вывод на экран Условие отбора или Рис. 4.44 Металл Камень Масса в граммах: [Масса бриллианта (карат)]*0,2 ^ Кольца Кольца В а "бриллиант". Упражнение Создайте запрос с Выражением на основе таблицы «Кольца» базы данных «Украшения из драгоценных металлов» (см. рис. 4.33). Переведите с помощью Выражения массу бриллиантов из каратов в граммы, как показано в окне Конструктора запросов. Необходимый запрос показан на рисунке 4.44. § 27. Сортировка записей в таблице Довольно часто при работе с таблицами базы данных возникает необходимость упорядочить их записи в определенной последовательности, т.е. отсортировать. С понятием сортировки данных мы уже знакомились ранее. Под сортировкой записей в таблице базы данных будем понимать процесс их упорядочения в определенной последовательности по значению одного из полей. В зависимости от типа данных в поле (числовое, текстовое или др.), определенных для сортировки, все записи в таблице базы данных размещаются; ® по величине числа, если тип данных числовой; ® по алфавиту, если тип данных текстовый (символьный); ® по дате и времени, если данные в поле содержат значения даты и времени. Записи в таблице базы данных сортируются по значению ключевого поля. Если ключевое поле не задано, то в таблице базы данных записи хранятся в том порядке, в каком они были введены. СУБД Access предоставляет пользователям возможность сортировать записи в таблице. Для сортировки записей по данным конкретного поля необходимо установить курсор в любую строку соответствующего столбца и сделать щелчок левой клавишей мышш по одной из кнопок на панели Стандартная: Сортировка по возрастанию, Сортировка по убыванию. ^^^^Со£™£овка^запкте Ш Города : таблица РИ Рис. 4.45 Название города Численность населения Страна ► Дакка 8539500 Бангладеш Лондон 7393800 Великобритания Дели 10009200 Индия Джакарта 10810400 Индонезия Карачи 10272500 Пакистан Манила 101332001 Филиппины Мехико 8656800: Мексика Москва 8376000- Россия Сеул 111532001 Республика Корея 3ai писы (и j 1 — Ш[И11ИЭ15 Продемонстрируем процесс сортировки записей в таблице «Население городов мира», фрагмент которой представлен на рисунке 4.45. Пример. Отсортировать записи таблицы «Города» по данным поля Название города, расположив записи в алфавитном порядке. 1. Щелкнем левой клавишей мыши в любой строке поля Название города. 2. Щелкнем левой клавишей мыши по кнопке Сортировка по возрастанию А Я4 или выполним цепочку команд: Записи ^ Сортировка ^ Сортировка по возрастанию. Фрагмент результата сортировки представлен на рисунке 4.46. Рис. 4.46 Города ; таблица Название города |Численность населения I Страна Дакка Дели Джакарта Карачи Лондон Манила Мехико Москва Сеул Запись: 1 IKlmt 8539500 10009200; 10810400 10272500 7393800 10133200 8656800 8376000 11153200 из 15 Бангладеш Индия Индонезия Пакистан Великобритания Филиппины Мексика Россия Республика Корея Глава 4. Технология обработки информации в СУБД 1. Для чего используется сортировка данных? 2. Какой процесс называют сортировкой записей таблицы базы данных? Упражнения 1. 2. Откройте таблицу «Страны 2002» базы данных «Страны» (см. рис. 4.25) и выполните сортировку записей в этой таблице: а) расположите записи поля Страна в алфавитном порядке; б) расположите записи поля Население в порядке возрастания; в) упорядочьте записи поля Площадь в порядке убывания. Создайте базу данных «Реки Беларуси», фрагмент таблицы которой показан на рисунке 4.47: г— - ш Реки : таблица МИри1 □ Название Площадь бассейна (кв км) Длина (км) 1 Густота речной сети (км/кв км) Щ Ловать 219001 5361 0,45 ^ j Днепр 504000; 22011 0,39 Вилия 25100; 498; 0,44 Западный Буг 39400, 772 0,42 Сож 42140; 6481 0,38 Припять 1210001 761 1 0,42 Березина 24500; 6131 0,3 Неман 98200; 937; 0,47 Западная Двина 87900; 10201 0,45 * 0 J3a СН) I 1 t ► 1 ►! из 9 Рис. 4.47 а) упорядочьте записи поля Длина (км) в порядке возрастания; б) расположите записи поля Густота речной сети (км/кв км) в порядке убывания. § 28. Создание отчетов Одним из способов просмотра и распечатки итоговых сведений из базы данных является создание отчетов. Под отчетом понимается документ, содержание которого формируется по определенному запросу на основе информации, размещенной в базе данных. В отчетах данные представляются в удобном виде. Отчеты выводятся на экран монитора или печатаются на принтере. § 28. Создание отчетов СУБД Access предоставляет пользователю несколько способов создания Отчета: Автоотчет, Мастер отчетов и Конструктор. Отчеты являются самостоятельными объектами базы данных и формируются на основании таблиц или запросов. После просмотра полученного отчета он может быть сохранен. Рассмотрим создание отчета с помощью Мастера на примере многотабличной базы данных «Библиотека дисков». При.мер, Создать отчет, содержащий сведения из трех таблиц базы данных «Библиотека дисков» (см. рис. 4.11). Из таблицы «Клиенты» выбрать фамилию клиента, его имя, телефон, из таблицы «Диски» — название диска, а из таблицы «Выдача дисков» — дату выдачи и отметку о возврате. Для этого необходимо выполнить следующие действия: 1. Открыть базу данных «Библиотека дисков» и дващды щелкнуть левой клавишей мыши по надписи Создание отчета с помощью мастера в окне Базы данных. 2. В окне Создание отчетов, поочередно активизируя название таблиц базы данных в списке Таблицы и запросы, перенести все необходимые поля из окна Доступные поля в окно Выбранные поля, как показано на рисунке 4.48. 3. В окне Создание отчетов, последовательно нажимая кнопку Далее, можно при необходимости указать вид представления данных, уровень их группировки. Создание отчетов Рис. 4.48 1а6лицы и запросы Даблица: Выдача дисков Доступные ПОЛЯ! i Код выдачи i КодКлиента Код диска Выберите поля для отчета. Допускается шбор нескольких таблиц или запросов. Выбранные поля; Ш| Фамилия ____ )Имя Г>>“| ; Телефон ^ I Название диска Ш|Дата выдачи I IS: Отметка о возврате Глава 4. Технология обработки информации в СУБД Клиенты Фамилия Имя Телефон Сидоров Вася 2954321 Название диска Дата выдачи Отметка о возвра те Рис. 4.49 Дима Колдун Текстовые редакторы 24.04.2007 15.03.2007 выбрать порядок сортировки, например по дате выдачи дисков, макет размещения данных и стиль оформления данных, например по левому краю 1, Строгий, а в последнем окне нажать кнопку Готово. В результате на экране монитора отображается отчет, фрагмент которого представлен на рисунке 4.49. Созданный отчет может размещаться сразу на нескольких страницах и быть выведен в книжной либо альбомной форме, аналогично документу текстового редактора Word с помощью цепочки команд меню: Файл ^ Печать ^ ... . Подготовка отчета с помощью Конструктора осуществляется несколько иначе. Вначале пользователь может создать и сохранить отчет с помощью Мастера. Затем в окне Конструктора можно изменить расположение элементов в отчете, удалить некоторые элементы, изменить или отредактировать надписи и т. д. 1. Для чего используются отчеты в базах данных? 2. Что называют отчетом в базе данных? 3. Какие объекты базы данных являются источниками для создания отчетов? Упражнение Откройте таблицу «Страны 2002» базы данных «Страны» (см. рис. 4.25) и создайте отчет в СУБД Access с помощью Мастера. Результат выполнения задания показан на рисунке 4.50. 2002 Страна Рис. 4.50 Австрия Беларусь Россия Население Площадь (кв км) 8100000 83855 9900000 207600 148600000 17075400 ВЫЧИСЛИТЕЛЬНЫЕ МЕТОДЫ И ТЕХНОЛОГИИ L к ГЛАВА § 29. Основы работы в системе Mathcad 29.1. □сновные элементы интерфейса Mathcad является универсальной системой компьютерной математики. В ней сочетаются эффективные методы вычислений, символьные преобразования, программирование, визуализация и анимация результатов с простотой записи выражений. Интерфейс Mathcad достаточно прост, чтобы пользователь смог быстро освоить основные приемы работы. После запуска открывается окно, основные элементы которого представлены на рисунке 5.1. Главное меню Mathcad отличается от аналогичного в Excel лишь двумя специфичными пунктами Math (Математика) и Symbolics (Символьные операции), очень похожи и панели инструментов Стандартная и Форматирование. Конечно, Mathcad имеет гораздо большие возможности обработки и визуализации данных по сравнению с табличным процессором Excel. [ Панель Стандартная | [ Панель Форматирование! Ч—. Ч. ———i. у ' л Mathcad Professionat - [Olvved.mcd] -И П‘ X (3 ■' Н ; # Q. vT ВЯИЕ№!65КСЛ Normal т 1? 4,1 100^ т f ] V ’ MS Sans Serif •^10 В / 1 *—; ^ 1". ■, -''v Документ Mathcad может содержать: \С£зй математические выражения, текстовые блоки, графические области... f(x) ;= x-sin(x) С Рабочий лист ют I sm(2- 2-71 = 6.283 z) —>2-sin(z)-cos(z) ~Ь Press FI for help, AUTO NUM Page 1 Рис. 5.1 Глава 5. Вычислительные методы и технологии Calculator sin cos tan In log Рис. 5.2 n! n Square Root \ i |x| jT T ± ^ ^ -fe '.Y 7 8 4 5 6 X 12 3 + . 0 - = Graph ® Math ® Calculus (xj @4' И ^ ^ ОО ft !ш ш й ^ г 2 ТТ Вт М Ш Boolean > A V Ф Ввод математических выражений в системе Mathcad напоминает их запись в тетради. Упрощению ввода способствуют шаблоны и специализированные панели инструментов (рис. 5.2). По мере необходимости они вызываются с помощью меню View (Вид) или панели Math (Математика). Размещение панелей, их форму и размеры можно настраивать. Панели содержат наиболее часто используемые функции, конструкции и отсутствующие на клавиатуре символы операций. Панель Calculator (Калькулятор) дает возможность вводить простейшие операции; арифметические действия, возведение в степень и извлечение корня, вычисление модуля и тригонометрических функций; панель Calculus (Матанализ) — производные, интегралы, суммы, произведения; панель Boolean (Логические) — логические операции. Панель Graph (Графики) помогает строить разнообразные графики. Многие кнопки панелей продублированы так называемыми «горячими клавишами», которые подсказываются при подведении курсора к символу на панели (см. рис. 5.2). S9.S. Основы работы в среде Mathcad Документ Mathcad представляет собой рабочий лист, на котором размещаются блоки трех типов; математические выражения, фрагменты текста и графические области. Текстовые блоки размещаются произвольно. Их часто используют для комментариев. Расположение математических выражений и графических областей определяется порядком исполнения; слева направо, сверху вниз. Блоки можно выделять, перемещать по рабочему листу, копировать в буфер обмена, вставлять в документ. Место ввода очередного блока указывается курсором, который вне блоков имеет вид красного крестика (см. рис. 5.1). § 29. Основы работы в системе Mathcad Ввод текста начинают с кавычек «“», при этом курсор превращается в красную вертикальную черточку | (текстовый курсор). Текст, который вводится без начальных кавычек, воспринимается системой как математическое выражение, при этом курсор в зависимости от места в выражении принимает одну из форм !__i__1( формульный курсор). Математические выражения содержат переменные, константы, операторы, функции и управляющие структуры. Имена (идентификаторы) переменных, констант и функций составляются из букв (латинских или греческих) и цифр. Первым символом должна быть буква. Mathcad различает строчные и прописные буквы: например, by. By и BY — разные имена. Переменным до их использования необходимо присвоить значения. В качестве оператора присваивания, как и в языке Паскаль, используется знак «:=», который вводится нажатием клавиши «:» (двоеточие на клавиатуре). Такое присваивание называют локальным, оно действует до нового присваивания. Для вычисления и вывода значения выражения, константы или переменной предназначен знак «=» (равно). Попытка использовать переменную до присваивания значения приводит к ошибке. При этом будет выведено сообщение: «Переменная или функция не определена» (рис. 5.3). Значения глобальных переменных известны в любом месте документа, в том числе и до точки их объявления. Для глобального присваивания предназначен знак «=», который вводится с панели инструментов Evaluation (Вычисления). Некоторые переменные (их называют системными или встроенными — Build-In) определены в самой системе, например л: = 3,142, g = 9,807 м/с^, точность TOL. Конечно, их можно переопределить присвоением нового значения, например задать ускорение свободного падения на Луне g= 1,62 и/с?. Рассмотрим простейшие приемы работы в системе Mathcad. Ввод и редактирование текстов и математических выражений напоминает аналогичные действия в текстовом редакторе Word. 5 + Z = This variable or function is not defined above. Рис. 5.3 I В Mathcad дробная часть от целой в десятичной дроби отделяется точкой. I Отсутствующие на клавиатуре символы (например, п) вводятся с панелей I инструментов. Пример 1. Вычислить значение выражения 1,5‘у. Наберем последовательность символов 1.5*л/7 и завершим ее знаком равно «=». Щелкнем левой клавишей мыши в любом месте рабочего листа. Получим результат в виде 1.5-у = 0.673. Глава 5. Вычислительные методы и технологии Для удаления или замены символа его выделяют формульным курсором с помощью мыши и клавиш управления курсором, при этом выделенный символ находится внутри синего уголка. Направление уголка изменяют клавишей Ins. На группу символов выделение распространяют клавишей Пробел. Пример 2. Скопировать и отредактировать выражение из примера 1. Выделим блок с созданным выражением, скопируем в буфер обмена (Ctrl-rC), а затем три раза вставим на рабочий лист (Ctrl-fV). Перемещая формульный курсор, выполним удаления, вставки и замены символов в копиях в соответствии с приведенными образцами: 2— = 1.257 5 2 71 + 1 3 5-г 1 = 0.46 (тг + l)-5 3-(5-г 1)-3 = 1.381. Пример 3. Вычислить значения выражений \а-Ь\, а®, л/б, , sin с+ tgc при а = 2, Ь = 5, с = п1б. Присвоим значения переменным: а := 2 Ь := 5 TZ с := — 6 Наберем выражения, вводя символы операций вычисления модуля, возведения в степень, извлечения корня и тригонометрические функции с панелей инструментов, и получим результаты вычислений: 1а-Ь| = 3 = 32 /Ь = 2.236 а^ -г = 3.072 sin(c) -г tan(c) = 1.077 Пример 4. Ввести и отформатировать текст Простейшие вычисления. Установим курсор (красный крестик) на свободное место. Введем кавычки «“» и наберем текст Простейшие вычисления. Выделим текст. С помощью панели Форматирование или меню Format (Формат)Text (Текст) установим следующие параметры текста: шрифт Arial Суг, курсивный, 12 пт, цвет синий. 1. Какие типы блоков может содержать документ Mathcad? 2. Какой вид может принимать курсор? 3. Какой вид принимает курсор в блоке математических выражений? 4. Какие клавиши используются при выделении частей выражения? § 30. функции. Символьные операции Упражнение Вычислите значение выражения: а) 5-* +3'^ 6^7^ в) + Vs ; д) (2Vl5 + V6f-V7(V2+Vs); ж) Ve + V^ • л/б - V^; и) со5(0,2я) + 10,5 - tg(0,8)l; 2.72-0,8- ' 0,4-“7-1,5’ ^ 5V3 7’ е) 1,5-2 +2-2 + VU; 3) |sin(0,lл) - sin(0,4n)[; к) tg(0,23) • фт{1,5) -cos(0,2). f(5) = -18 X ;= 10 f(x) = 22 fm(x) := lf(x)| lp(x) := — f (x) +5 dx fm(5) = 18 fp(5) = 8 fm(x) = 22 fp(x) = 18 173 § 30. функции. Символьные операции В математике функцией называют закон, по которому каждому значению х ставится в соответствие определенное значение у. Основным способом задания функции является формула. Mathcad предлагает большой набор встроенных функций, вызываемых командой Insert ^ Function (Вставка ^ Функция) или кнопкой f(x) на панели Стандартная. Можно создавать и собственные функции. Они определяются так: имя (аргументы) := выражение. Слева после имени в скобках перечисляются аргументы, а справа после знака присваивания записывается выражение, которое может содержать переменные, константы, формулы и функции. Пример 1. Определить функции f{x) = x^ - 7х - 8, /т{х)=|/(х)| и fp{x) = /'(х) + 5 и вычислить их значения при х = 5их=10. Введем имя и аргумент первой функции, знак присваивания и выражение: f(x) ;= х^ - 7-х - 8 При вычислении значений функции возможны два способа передачи значений аргументов: непосредственная подстановка и предварительное присваивание: Во второй функции/ш(х) используем модуль, а в третьей fp{x) — производную первой: Глава 5. Вычислительные методы и технологии Шаблон производной —■ вызывается с панели Calculus (Матанализ). di Пример 2. Определить функцию y{t, х) = Лсоз(а)/ - kx), описывающую зависимость смещения точки волны от времени t и расстояния х до источника. Вычислить ее значения при / = х = 0и^=1,х=1. Переменные Л, со и ^ являются параметрами. Присвоим им значения до задания функции; А := 10 (В := 2 к := 3 Аргументами функции являются переменные / их. Укажем их в левой части определения функции в скобках. Вычислим значения y{t, х): y(t,x) := A-cos(co-t - к-х) у(0,0) = 10 у(1,1) = 5.403 Система Mathcad позволяет не только производить разнообразные вычисления, но и выполнять символьные операции, результатом которых являются не числа, а формулы. Для символьного преобразования и вывода выражений предназначен знак «-^» (стрелка), который вводится с панелей инструментов Evaluation, Symbolic или комбинацией клавищ Ctrl-e. (точка). Пример 3. Вывести формулы производных функций/(х) = х® и/(х) = х • sin Зх. Вызовем шаблон производной и введем в него первую функцию; —5-х"^ dx Вторую функцию сначала определим, а затем введем в шаблон производной; f(x) ;= x-sin(3-x) dx -f(x) ^ sin(3-x) -b 3-x-cos(3-x) Отметим, что символьные операции весьма полезны. Однако далеко не всегда вид полученных формул оправдывает наши ожидания (вместо упрощения может получиться усложнение). Поэтому следует указывать тип преобразования, выбирая подходящие варианты на панели Symbolic (Символьные операции). Преобразование Simplify (Упростить) предназначено для приведения подобных слагаемых, приведения дробей к общему знаменателю, использования тригонометрических тождеств; 19 93 1767 х-4 -г 2-х - 5 simplify ^ 3-х - 4 § 30. функции. Символьные операции Преобразование Expand (Расширить) используется для раскрытия скобок, разложения по степеням: 3 3 2 2 3 (х + у) expand,X —> х +3-х-у + 3-х-у +у sin(2-x) expand,х —> 2-sin(x)-cos(x) Преобразование Collect (Собрать) позволяет группировать подобные; 2 2 2 2 X -а-у-х + 2-у -х - X collect,X —>(1-а-у)-х + Преобразование Solve (Решить) выражает указанную переменную через другие в виде формулы, т. е. аналитически решает уравнения или неравенства; б ,2 X - 4-х -Г 1 solve,X —> 2-ьЗ 1 2-3^ X -1-2-х-3>0 solve, х X < -3 1 < X При использовании преобразований Expand, Collect, Solve необходимо указывать переменную, относительно которой производится операция. К сожалению, решения имеют приемлемый вид только для простых уравнений и неравенств (например, линейных, квадратных, некоторых тригонометрических), а сложность формул часто делает их малопригодными на практике. Вместе с тем операция Solve может быть полезна для получения и анализа формул при решении уравнений и неравенств. 1. Как определяется собственная функция в Mathcad? 2. Что понимают под символьными операциями? 3. Приведите примеры символьных операций Mathcad. Упражнения 1. Определите функцию y{t)-A cos(cd0, описывающую смещение точки при колебаниях, и вычислите ее значения при t = 0 м t = 2. Амплитуда Л = 5, частота со = 3. 2. Определите функции у{х) = х^ - 5х^-г12 и z{x)-x^ + zos2x. Вычислите их производные при х = 1 и х = 2. 3. Введите и преобразуйте выражения. Сравните с образцами: (а+1) 15-(a^-l) . 1 8 5 2 --------1------------simplify ^ — а--------1--а 15 9 15 5 3 11 4 • 141 -------1— simplify ------- 19-3 7 112 176 Глава 5. Вычислительные методы и технологии cos(3-х) expand,X —> 4-cos(x) -3-cos(x) X > 4 solve, X 2-sin(x) - 1 solve,X —> —-л sin(2-x) - 1 solve,x —> —-л 6 4 X - 2-x - 5 > 0 solve,x fx < -2 ^2 х„ — убывают. При шаге +1 достаточно указать только первое и последнее значения. Пример !. Задать и вывести на экран последовательности чисел: х от 1 до 4 с шагом 0,5; у от 2 до 7 с шагом 1 и г от 0,6 до -5 с шагом -0,2. Зададим ранжированные переменные: J 1.5 2.5 3.5 -4.2 -4.4 -4.5 -4.8 Рис. 5.4 X := 1, 1.5 .. 4; j := 2 .. 7 и Z := 0.6, 0.4 .. -5. Для их вывода будем набирать имя и знак «=^». При этом на экране показывается несколько первых значений в форме таблицы. Для просмотра всех значений переменной z щелкнем мышью по таблице и воспользуемся появившейся полосой прокрутки (рис. 5.4). Ранжированная переменная применяется в качестве аргумента при построении графиков и таблиц значений функций (например, на рисунке 5.5). п := 1..5 12х- Ь на ~ 1 2 4 ~ 9 ~4 16 5 25 Рис. 5.5 Пример 2. Построить график функции f(x) = x^ промежутке [-4; 4]. S Определим функцию: f(x);=x^-12-x-5. Зададим область определения, используя ранжированную переменную с шагом 0.1; х:=-4, -3.9 .. 4. ® Укажем мышью (красным крестиком) на предполагаемое место левого верхнего угла будущего графика. Щелкнув по кнопке на панели Graph, вызовем шаблон построения графика в прямоугольной системе координат (рис. 5.6). * Введем в нижнем черном квадратике аргумент х, а в левом — функцию f{x). ® Щелкнем левой клавишей мыши за пределами области графика. Построенный график будет иметь заданный по умолчанию вид (рис. 5.7). ® Добавим оси, сетку и оцифровку шкал (рис. 5.8). Для этого двойным щелчком левой клавишей мыши по графику или командой Format Graph (Формат —> ^ График) вызовем окно форматирования. На вкладке XY-axes (Оси XY) снимем автоопределения (Autoscale и Auto Grid) и установим стиль осей Рис. 5.6 Рис. 5.7 о X f(x) Рис. 5.8 178 Глава 5. Вычислительные методы и технологии Formatting Currently Selected ... K-Y Axes T feces L^eb Defaults X-Axis Y-Axis Q Log Scale Q Log Scale 13 Slid Lines : 0 Grid Lines 13 Numbered , ; 0 Numbered О Autoscale OAutoscale Q Show Mdfkets - OShowM.^kets O^toGtid ■ OAiAoGfid Nwnber of Grids: Number of Grids; ^ - Axis Style о Boxed □ Equal Scales j Dossed (_> None OK 1 j Отмене 1 . 1 Спраш<а Formatting Currently Selected X-YAxes Traces Labels Defaults;! Legend Label Symbol Lme Color Type V/eight 1 V Q Hide Arguments pi Hide Legend Спр^ка Рис. 5.9 Рис. 5.10 (Axis Style) пересекающиеся (Crossed), сетку (Grid Lines) 4 x 5 и оцифровку шкал (Numbered) (рис. 5.9). На вкладке Traces (Линии) подберем цвет (Color) и толщину (Weight) линии (рис. 5.10). Заметим, что график будет построен, даже если не задать область определения функции. В этом случае аргумент по умолчанию изменяется от -10 до 10 с шагом 1. На одном шаблоне можно построить до 16 графиков функций, в том числе с параметрами и разными аргументами. Если аргументы разные, они вводятся через запятую в том же порядке, что и функции от них. Пример 3. Построить на одном шаблоне графики функций A{t) = lQ-bt и х(1) = H(/)sin (со/). Аргумент изменяется на промежутке [0; 20] с шагом 0,1. Параметры Ь = 0,4 и (О = 3. ® Присвоим значения параметрам; Ь:=0.4 и со;= 3. в Определим функции: сначала A(t):=10-b-t, а затем x(t):=A(t)-sin(co-t). * Зададим область определения; х:= 0, 0.1 .. 20. «> Вызовем шаблон построения графика и в нижнем черном квадратике введем аргумент /, а в левом через запятую функции A{t), x{t). • При форматировании графиков (рис. 5.11) на вкладке Traces подберем цвет и вид второй линии (trase2) ; вместо dot (точки) установим solid (сплошная). Исследуйте самостоятельно изменения графиков, задав параметры Ь = 0,3 и со = 5. b := 0.4 со := 3 A(t):=10-b-t x(t) := A(t)-sm(co-t) t:=0,0.1..20 Рис. 5.11 ‘ Пример 4. Ha одном шаблоне построить график функции f{x) = -х^ + 2х - 3 на промежутке [-8; 8] с шагом 0,1 и касательную к нему в точке а = -2. Исследовать изменения наклона касательной в точках -3; -1; 0; 1; 2. Построение касательной имеет следуюгцие особенности. * После задания функции, ее области определения и точки касания определим наклон касательной k{x), т. е. найдем производную функции. • Зададим касательную в точке а — прямую с угловым коэффициентом k{a). • В шаблон построения графика введем три аргумента х, х, а и три функции: исходную /(х), касательную ta{x) и ординату точки касания /(а) (рис. 5.12). * При форматировании графика на вкладке Trases подберем вид второй линии (trase2) сплошная (solid) и толщину (Weight) 2. Для точки касания (traseS) установим тип (Туре) точки (points) и толщину (Weight) 6. f(x) := -X + 2-х - 3 к(х) :=^f(x) dx X :=-8,-7.9..8 а ;=-2 ta(x) := к(а)-(х - а) + f(a) Рис. 5.12 IMI J: Глава 5. Вычислительные методы и технологии 1. Что называют ранжированной переменной? 2. Как задается ранжированная переменная? 3. Перечислите этапы построения графика в Mathcad. 4. Как построить несколько графиков на одном шаблоне? Упражнения 1. 2. 3. 4. Задайте и выведите на экран последовательности чисел: а) л: от -3 до 7 с шагом 0,5; б) у от 2 до -2 с шагом -0,1. Постройте график функции/(1) = sin 71 + sin 81 на промежутке [0;15], шаг 0,1. На одном шаблоне постройте график зависимости координаты точки от време- ни х(1) = 8 -ь 121 - 21^ и скорости у(1) = dx dt на промежутке [0; 5] с шагом 0,1. На одном шаблоне постройте график функции f{x) = xs'mx на промежутке [0; 12] с шагом 0,1 и касательную к нему в точке а = 5. § 3S. Решение уравнений На практике Вам неоднократно приходилось решать различные уравнения, например линейные ах + Ь = 0, квадратные ах^ + Ьх + с - 0, тригонометрические. Любое уравнение может быть приведено к виду/(х) = 0 в результате переноса всех членов в левую часть. Решить уравнение — значит найти такие значения аргумента (корни), которые обращают его в тождество. Формулы для выражения корней в аналитическом виде существуют далеко не для всех уравнений и зачастую весьма громоздки. Поэтому на практике так велика роль вычислительных методов. При нахождении корней уравнения выделяют два этапа: 1) отделение корней — поиск промежутков, которым они принадлежат; 2) уточнение корней — определение их значений с заданной точностью. В основе отделения корней лежат следующие положения. Если непрерывная на отрезке [а; 6] функция /(х) имеет на его концах противоположные знаки, то на этом отрезке находится хотя бы один корень (нуль функции), и график функции пересекает ось Ох. Если при этом функция монотонно возрастает или убывает (знак производной не изменяется), то корень на данном отрезке единственный. Таким образом, решение уравнения сводится к отысканию промежутков локализации корней и последующему их уменьшению до тех пор, пока не будет получена требуемая точность. Наиболее просто и наглядно это делается с помощью таблиц и графиков. При этом область определения и шаг изменения аргумента выбирают так, чтобы график функции /(х) отражал ее поведение на всем промежутке, содержащем искомые корни. § 32. Решение уравнений 181 Рассмотрим некоторые способы решения уравнений в Mathcad. Начнем с графического, поскольку он позволяет в наиболее простом и наглядном виде отделять и уточнять корни. Пример 1. Найти корни уравнения х - 4 cos х = О графическим способом. ® Определим функцию: f(x);=x-4‘Cos(x). Построим график функции /(х), взяв сначала широкую область определения, чтобы увидеть особенности графика и обнаружить все корни (рис. 5.13), а затем сузив ее для уточнения корней (рис. 5.14). ® Для определения численных значений корней воспользуемся инструментом Trace (Трассировка). Он вызывается щелчком правой клавишей мыши по графику и отображает координаты точек, попадающих на пересече- f(x) := X - 4-cos(x) -10,-9.9.. 10 f(x) - ; 20- |з X := -4,-3.9..2 Рис. 5.13 Рис. 5.14 ние линии, которые можно перемещать при нажатой левой клавище мыши (рис. 5.15). Для следования по точкам графика необходимо установить флажок Track Data Points (След точек данных). Отслеживая в поле Y-value минимальное по модулю значение при переходе функции через нуль, в поле X-value последовательно определим все корни: -3.6; -2.1; 1.3. Уменьшим шаг изменения аргумента в 10 раз, задав х:= -4, -3.99..2 и f(x) Рис. 5.15 X-Value -1.0 V-Vate i-2.75 3 Track Date Points C CopyX ] I CopyV j Close Глава 5. Вычислительные методы и технологии растянем с помощью мыши график для удобства наблюдения. Корни будут определены с большей точностью: -3,59; -2,13; 1,25. Mathcad содержит мощные средства решения уравнений. Некоторые из них собраны в категории Solving (Решения) и вызываются нажатием кнопки т на панели Стандартная или командой Insert ^ Function (Вставка ^ ^ Функция). пример 2. Найти корни уравнения jl-4cosx = 0 с помощью функции root(). * Определим функцию: 1(х):=х-4 • cos(x). Графическим способом отделим корни и возьмем их начальные приближения (например, -3,6; -2,1; 1,3 или даже -4; -2; 1). • Будем последовательно задавать начальные приближения и применять функцию root(f(x), х), как показано на рисунке 5.16. Рис. 5.16 f(x) := X - 4-cos(x) X := -4,-2.. 2 X := -4 root(f(x),x) = -3.595 X = root(f( -4 -3.595 X := -2 root(f(x),x) = -2.133 -2 -2.133 X ;= 1 root(f(x),x) = 1.252 0 1.252 2 1.252 Рис. 5.17 Множество начальных приближений можно задавать с помощью ранжированной переменной. При удачном выборе ее шага функция root(f(x), х) возвратит сразу все корни, причем некоторые из них могут повторяться (рис. 5.17). Точность вычислений в Mathcad задается системной переменной ТОГ (по умолчанию ТОГ = 0.001). При необходимости требуемое значение может быть присвоено непосредственно на рабочем листе или установлено на вкладке Built-in-Variables (Системные переменные) окна Math Options (Параметры), которое вызывается из меню Math (Математика). Формат отображения результата должен соответствовать установленной точности (по умолчанию: общий, 3 десятичных знака). Настройки можно сделать в окне Result Format (Формат результата), вызываемом из меню Format (Формат). Одним из самых мощных инструментов решения уравнений в Mathcad является конструкция Given — find (Дано — найти), которая, как мы увидим в дальнейшем, позволяет решать не только уравнения, но и системы уравнений и неравенств. X := -4,-3.9..4 X := -1 Given 7-cos(x - 1) = x^ - 3 find(x) = -0.891 Рис. 5.18 Пример 3. Найти корни уравнения 7 cos(x -1) = х^ - 3 с помощью конструкции Given — find. • Построим графики функций (рис. 5.18), заданных выражениями в левой и правой частях уравнения, и найдем приближенные значения корней -0,9 и 2,3. • Зададим начальное приближение первого корня, например -1. • Наберем ключевое слово Given. • Введем уравнение. Две его части связаны жирным знаком равно «=», который вводится ком- бинацией клавиш Ctrl-t-= и является оператором логического сравнения. Применим функцию find(x). Получим значение первого корня -0,891. Задав начальное приближение второго корня, например 2, получим 2,263. 1. С какой целью используют трассировку графика? 2. Назовите этапы решения уравнения с помощью функции root(). 3. Назовите этапы решения уравнения с помощью конструкции Given — find. 4. В каких случаях используется знак «=» (жирное равно)? Упражнение Найдите корни уравнения графическим способом, уточните корни с помощью функции root() и конструкции Given — find: а) 2sinx = x^ -1 на промежутке [-2; 2]; б) cos2x = 5sin(x - 1) на промежутке [0;10]; в) 3sinx= cos Зх + х на промежутке [-3; 3]; г) cos(x+ 1) = X sin X на промежутке [-2; 2]. ш 184 Глава 5. Вычислительные методы и технологии § 33. Операции с векторами и матрицами При решении широкого спектра задач в различных областях: от физики и техники (расчет сил, скоростей, электрических цепей) до экономики (оптимизация ресурсов, затрат и прибылей) и графики (обработка изображений) — используются векторы и матрицы. Матрицей называют поименованную совокупность элементов, которые размещаются в таблице и упорядочены по индексам (номерам строк и столбцов). Элементы матрицы обозначают буквами с двумя индексами а^. Первый индекс i означает номер строки, в которой расположен элемент, а второй индекс у — номер столбца. Матрицы могут быть прямоугольными (п строк, т столбцов), квадратными (рис. 5.19, а) и даже занимать одну строку или столбец. Вектор рассматривается как частный случай матрицы, его компоненты (проекции) помещают в одну строку или столбец (рис. 5.19, б). а а,2 б ЩИНЕ А = ^21 ^■22 .. а.2„ В = 62 [■••] х’ и 15^ м' m..n а„2 . ^пп у Л у X •¥ XXV 2у Рис. 5.19 Рис. 5.20 Работа с векторами и матрицами в Mathcad обеспечивается набором встроенных функций (категория Vector and Matrix), а также использованием панели инструментов Matrix (Матрица) (рис. 5.20). Векторы и матрицы задаются либо заполнением шаблона вручную, либо с использованием в качестве индексов ранжированной переменной, если возможен способ вычисления значений элементов через их индексы. 33.1. Использование операций с векторами Пример i. На тело массой т-2 кг действуют силы я F 2, проекции которых на оси координат = -I Н, = 6 Н; р2^= 7 Н, Pg// = 2 Н. Определить проекции и модуль результирующей силы, а также проекции и модуль ускорения тела. Напомним, что проекции результирующего вектора равны сумме проекций слагаемых векторов; F^ = F^^+F2^’, Fy = F^y + F.jy (рис. 5.21). Модуль вектора равен F = -г Fy . Ускорение прямо пропорционально действующей на тело силе и обратно пропорционально массе тела. § 33. Операции с векторами и матрицами insert Matrix Rows; OK Columns; i 1 Insert I Delete Cancel Рис. 5.21 Рис. 5.22 Решение задачи в Mathcad сводится к вводу векторов и действиям с ними. ® Введем векторы F, и F.^. Для этого наберем имя, затем знак операции присваивания «:=». С помощью кнопки [;••] панели Матрица или команды insert ^ Matrix (Вставка ^ Матрица) вызовем окно Insert Matrix (рис. 5.22). Укажем число строк (Rows) 2 и столбцов (Columns) 1. ® Заполним шаблоны проекциями векторов: F1 ;= ® Запишем сумму векторов и выведем ее значение. ® Для вычисления модуля вектора используем кнопку |х| панели Матрица. F := F1 + F2 F = |f| = 10 э Результат несложно проверить расчетом по формуле у6^ + 8^ = 10. ® Вектор ускорения получим делением вектора силы на массу: m := 2 F а := — m а = (Л Наконец, применим операцию нахождения модуля к вектору а: )а| = 5 186 Глава 5. Вычислительные методы и технологии На практике часто приходится решать уравнения, левая часть которых является многочленом от неизвестного х; йд ч- «[Х* ч- «зХ^ч-... ч- a„„iX"“‘ ч- а„х" = О, где показатель степени п — целое неотрицательное число, а коэффициенты многочлена Оо, Oi, ..., а„ — действительные числа. Частными случаями таких уравнений являются квадратные и кубические. Решение таких уравнений в Mathcad сводится к заполнению вектора-столбца V коэффициентами Qq, а^, й2, ..., а„ (начиная с Яд и включая нули) и применению функции polyroots(V) из категории Solving (Решения). Достоинство этого способа состоит в том, что он не требует определять начальные приближения неизвестных. Пример 2. Найти корни уравнения х^- 12хч- 3 = 0. • Зададим шаблон вектора-столбца V с числом строк 4 (на одну больше степени многочлена). Заполним его коэффициентами Uq, а^, а^,..., а„ (начиная с ад = 3 и включая нуль для отсутствующего а2Х^). в Применим функцию polyroots(V); V := f Ъ -12 о 1 polyroots (V) = 1^-3.583^ 0.251 ^ 3.332 у Конечно, это уравнение можно решить и с помощью рассмотренной ранее функции root(), но при этом потребуется задать начальные приближения, например построив график. 33.2. Использование операций с матрицами. Обработка изображений Ярким примером применения матричных операций служит обработка растровых изображений. Растровое изображение — это совокупность (матрица) пикселей, на каждый из которых в модели RGB отводится 24 бит: по 8 бит на каждый из трех основных цветов (красный, зеленый, синий). Наиболее просто обрабатывать серое изображение с глубиной цвета 8 бит, в котором каждому пикселю соответствует значение яркости от 0 до 255. Эти значения можно загрузить в матрицу и подвергнуть преобразованиям. Например, вырезание части изображения сводится к выделению фрагмента матрицы. Так получают различные графические эффекты. Сначала потренируемся создавать и фрагментировать матрицы. Для присвоения элементам матрицы значений в качестве индексов (номеров строк и столбцов) будем использовать ранжированные переменные. Индексы могут иметь только целочисленные значения и начинаться с нуля или единицы, что задается системной переменной ORIGIN ( по умолчанию ее значение равно нулю). Во многих задачах удобнее, чтобы нумерация индексов начиналась с единицы (как и строк и столбцов матриц). Это значение следует установить в начале работы на вкладке Built-in-Variables (Системные переменные) окна Math Options (Параметры) или присвоить ORIGIN := I непосредственно на рабочем листе. При мер 3. Создать матрицу Л размером 3x4 (три строки, четыре столбца), элементы которой равны сумме номеров строк и столбцов. Выделить фрагменты размером 2 X 2 из левого верхнего и правого нижнего углов матрицы. * Установим ORIGIN = I. ® Зададим ранжированные переменные i := I.. 3 и j := I.. 4, поскольку матрица имеет три строки и четыре столбца. Для задания элемента на пересечении г-й строки иу'-го столбца введем имя матрицы А, с помощью кнопки п па- нели Матрица введем индексы г, у и присвоим значение А,, у результат: i-1-j. Выведем ORIGIN := 1 i := 1..3 j := 1..4 Aij := i-bj A = /^2 3 4 5^ 3 4 5 6 4 5 6 7^ Для выделения фрагмента матрицы используем функцию submatrix из категории Vector and Matrix (Векторы и матрицы). Ее аргументы — имя исходной матрицы, индексы первой и последней строк и первого и последнего столбцов выделяемого фрагмента; бз зЛ 6s бЗ submatrix(A, 1,2,1,2) = 2 3^ fS submatrix (А, 2,3,3,4) = 3 4 6 7 Функцию submatrix можно использовать для вьщеления фрагментов с обратным порядком следования строк (столбцов). Для этого нужно поменять местами аргументы (например, индексы начальной и конечной строк). Так, в примере 1 можно получить такой фрагмент; submatrix (А, 3,2,3,4) = 6 7 5 6 188 I Глава 5. Вычислительные методы и технологии Пример 4. Загрузить изображение timer.bmp. Преобразовать его; получить фрагмент, повернуть на 180°, отразить зеркально и повернуть на 180° фрагмент изображения. Получить негативное и тонированные изображения, в Установим 0R1G1N=1. ® Применим функцию READBMP(“timer.bmp”) из категории Image Processing (Обработка изображений) для загрузки в матрицу М значений яркости пикселей изображения из файла timer.bmp. э Для определения ширины w и высоты h изображения в пикселях (т. е. количества столбцов и строк матрицы) применим функции cols и rows из категории Vector and Matrix (Векторы и матрицы) (рис. 5.23). ® Выведем исходное изображение на экран (рис. 5.24). Для этого впишем имя матрицы М в шаблон, который вызовем командой Insert ^ Picture (Вставка ^ Изображение) или нажатием кнопки Щ на панели Матрица. • Для преобразования изображения будем выделять фрагменты матриц; М1;= submatrix(M, 1, 110, 10, 60) — обрезание справа; М2;= submatrix(M, h, 1, w, 1) — поворот на 180°; М3;= submatrix(M, 80, 10, 10, 90) — вырезание, поворот на 180° и зеркальное отражение. о Выведем фрагменты изображения (рис. 5.25). Создадим матрицу фона F с яркостью пикселей, например 20, и матрицу негатива ЛА(из максимальной яркости 255 вычтем значения для каждого пикселя). i:=l..h j:=l..w Fij ;= 20 N:=(255 -M) ® Выведем негативное N и тонированные изображения (рис. 5.26). Эффект тонирования (одноцветной раскраски) изображения получается благодаря выводу матриц изображения и фона в каналы цвета RGB. Для этого в шаблон вы- ORIGIN ;= 1 М := READBMP("timer.bmp”) W ;= cols(M) w = 100 h := rows(M) h = 120 M Рис. 5.23 Рис. 5.24 Рис. 5.25 § 34, Решение систем уравнений и неравенств 189 Рис. 5.26 N M,F,F F,M,F F,F,M M,F,M вода изображения вписываются имена трех матриц: для красного, зеленого и синего цветов. HI 1. Как вводятся векторы и матрицы в системе Mathcad? I 2. Какие уравнения можно решать с помощью функции polyroots()? I 3. Что представляет собой растровое изображение? 4. Как вывести изображение на экран? I 5. Как выделить фрагмент изображения? Упражнения 1. Три вектора заданы проекциями: Л(2; 6; -1), В(6; -2; 5) и С(12; 0; 6). Определите проекции и мод^'ли векторов: D =А + В + С, Е = А- В - С. 2. Найдите корни уравнения с помощью функции polyroots(): а) -г 5x2 - 2 = 0; х"*- Зх® - Эх^ -г 12х-ь 8 = 0. 3. Загрузите матрицу изображения из файла. Определите ширину и высоту изображения в пикселях. 4. Выделите два фрагмента изображения из упражнения 3. Поверните первый фрагмент на 180°, превратите второй фрагмент в негатив. Выведите изображения на экран. § 34. Решение систем уравнений и неравенств в курсе алгебры Вы познакомились с некоторыми способами решения систем уравнений с двумя неизвестными. Решение систем с большим количеством уравнений и неизвестных весьма трудоемко и требует применения вычислительной техники. Рассмотрим сначала решение систем линейных уравнений. Напомним, что решением системы двух линейных уравнений с двумя неизвестными Глава 5. Вычислительные методы и технологии ajX + Ьуу = С;, OgX + Ь^у = Cg является упорядоченная пара значений х, у, которые обращают каждое уравнение системы в равенство. Систему п линейных уравнений с п неизвестными в общем виде записывают так: «21^1 + «22^2 + «23% + - + «2«% = ^2 - a„iXi + а„2% + ««3% + - + = к ■ Решением этой системы является упорядоченный набор значений неизвестных Х], Х2, х„ (обозначаются одной буквой х с индексом, который соответствует номеру неизвестного). Коэффициенты при неизвестных обозначены буквой с двумя индексами: первый индекс i соответствует номеру уравнения, а второй j — номеру неизвестного. Числа в правых частях уравнений обозначены буквой Ь с индексом, соответствующим номеру уравнения. Символически систему уравнений можно записать в сокращенном виде: АХ = В. Эта запись по форме напоминает простейшее линейное уравнение ах = Ь. Существенная разница заключается в том, что символами A,Xw В здесь обозначены не числа, а более сложные математические объекты: упорядоченные наборы значений (чисел). Их удобно размещать в таблицах: '«11 «12 .. ai„^ (Ь,л А = «21 «22 «2я в = ^2 X = % ч«я1 «я2 • «ЯП / х} V%J В математике такие таблицы называют матрицам:: (в программировании им соответствуют массивы). Для рещения системы п линейных уравнений с п неизвестными (матрица коэффициентов А такой системы квадратная) в Mathcad предусмотрена функция Isolve (А, В), аргументами которой являются матрица коэфициентов А и вектор-столбец В правых частей системы уравнений. ^^^^4JPeuieH№^ A := ( i 1) 1 ■ 1 1 ■ Пример 1. Решить систему уравнений 12х ~ 5^ + Z = 6, X - 2у - 7z = 2, 5х + Зу - 2z - 4. Введем матрицу коэффициентов при неизвестных А и вектор-столбец В правых частей системы уравне- Рис. 5.27 ний. Для этого наберем имя матрицы, затем знак операции присваивания «: = ». В окне Insert Matrix укажем число строк и столбцов и заполним появившийся шаблон (рис. 5.27). Для вектора В укажем число строк 3 и число столбцов 1. Применив функцию Isolve(A, В), получим решение (рис. 5.28). ^12 -5 1 3 ^ 0.594^ А := 1 -2 -7 В := 2 lsolve(A, В) = 0.176 ,5 3 -1) v4j -0.25 П Рис. 5.28 Для решения систем уравнений и неравенств с п неизвестными х,, Хг, ..., х„ используется рассмотренная ранее конструкция Given — find (Дано — найти). Наибольшая трудность при решении систем нелинейных уравнений состоит в определении начальных приближений. Они должны задаваться до блока решения, который начинается ключевым словом Given (Дано). Внутри блока помещаются уравнения, а также неравенства. Завершает блок решения функция от п аргументов find(X|,X2,."iXn)- Они перечисляются в том порядке, в котором будут выведены в вектор-столбец решения системы. Подчеркнем, что внутри блока решений используются знаки логического сравнения (<, <, >,>, жирный знак равно «=»), которые связывают левые и правые части уравнений и неравенств. Пример 2. Решить систему уравнений у — 1 = х'^ — 5х, X у + 1. Зададим начальные приближения (например, 1; 1), которые определим графическим способом (рис. 5.29). Наберем ключевое слово Given. Введем уравнения, используя операторы логического сравнения. Завершив блок функцией find(x,y), получим решение системы (рис. 5.30, а). 192 Глава 5. Вычислительные методы и технологии Рис. 5,29 х:= 1 Given у := 1 3 у - 1 = X - 5-х 2 X = у + 1 fmd(x ,у) : X := 1 у := 1 Given 3 у - 1 = X - 5-х Рис. 5.30 2 'СЕЮ 0.382 ^ X = у + 1 '2.618'' -0.854^ find(x ,у) = ^5.854 у Введем в блок решения неравенство .т > 2. Получим второе решение (рис. 5.30, б). е Третье решение (-2; 3) получим, задав начальные приближения -2; 1 либо введя в блок решения неравенство х < -1. Конструкция Given — find позволяет получать также решение простых алгебраических уравнений и систем (например, линейных, квадратных, кубических) в символьном (аналитическом) виде. В этом случае начальные приближения перед блоком решения не задаются. После символьных решений можно поставить знак вычислений «=» и получить численные решения (рис. 5.31). Given у - 1 = X - 5-х 2 X = у а- 1 1 1^ 3 1 2 3 1 7 5-х -2 - а- — 5 — 5" -2 0.382 ^ 2 2 2 2 2.618 find(x ,у) ^ 1 1 — чЗ 5.854 -0.854 J 5 3 2 5 3 2 3 - а- — 5 — 5 У 2 2 2 2 J Рис. 5.31 1. Назовите этапы решения системы п линейных уравнений с п неизвестными. 2. Назовите этапы решения систем уравнений с помощью конструкции Given — find. 3. Как задается блок решения? 4. Как получить символьное решение системы алгебраических уравнений с помощью конструкции Given — find? Упражнеиич 1. Найдите решения системы линейных уравнений; а) X, — Зх., ч- 2хо -ь 8x4 = 2, Зх, ■ 2хз + 5хз 4х, 1, 7Х) + 5x2 + 2хз ч- 8x4 = 3, 5Х( ч- 2xg — 7xg ч- 2X4 = 4; б) 2Х[ — 5x2 + Зхз ч- 2X4 = 7, ■ 5X4 = 12, 6Х[ — 4x2 + Зхз ЗХ) — 7х, ч- 5хз — 8x4 = 5, 2x'i ч- 8X2 ~ Хд ч- ЗХ4 = —9. Найдите решения системы уравнений и неравенств с помощью конструкции Given — find (начальные приближения определите графически): ч sin(4x - 1) = г/ “ 1, б) fsin(5x - 2) = у - 2, о X = cosy; [х = cosy; в)( х'^ — 2х^ = у — 3, у’ = 15х^ — 7; г) cos(3x — 1) = у — 1, X = tg(y - 1); + 4=2, = у + 3, д) ■ у+1=х\ е) ■ у -1 = х^ - Зх^, X > 0; X > 3. ГЛАВА КОММУНИКАЦИОННЫЕ ТЕХНОЛОГИИ § 35. Способы 1л скорость передачи информации Человек, животные, технические устройства при передаче и приеме информации вступают в контакт друг с другом. Этот процесс называется коммуникацией. Слово «коммуникация» произошло от латинского communicatio — сообщение, передача. . ■ шч<йцг:он;!ые те)описывают процессы передачи информации от источника к приемнику. Человек всегда стремился использовать различные способы передачи информации. Среди них выделим основные: механические движения, звуковые и электромагнитные волны, электрические напряжение и токи, электронные лазерные пучки и др. Синхронизация процессов передачи информации предполагает согласование их во времени. Передача информации в компьютерных сетях может осугцествляться беспроводным способом или с помощью кабелей трех типов: витой пары, коаксиального кабеля и оптоволоконного кабеля. Витая пара состоит из двух или более пар проводов, скрученных друг с другом. Скручивание проводов уменьшает влияние электромагнитных полей на передаваемые сигналы и повышает помехоустойчивость (рис. 6.1). Скорость передачи информации для данного типа кабеля составляет 0,25—1 Мбит/с. Коаксиальный кабель состоит из центрального изолированного проводника, поверх которого расположен другой проводник, играющий роль экрана. Этот кабель обладает высокой механической прочностью и обеспечивает скорость передачи информации 10—50 Мбит/с (рис. 6.2). В настоящее время он интенсивно заменяется новыми видами связи. Оптоволоконный кабель представляет собой тонкие стеклянные цилиндры. Скорость передачи информации для такого типа кабеля более 50 Мбит/с (рис. 6.3). Рис. 6.1 Рис. 6.2 Рис. 6.3 § 35. Способы и скорость передачи информации При передаче информации важными являются такие показатели как качество и скорость. Во время перемещения информации от источника к приемнику на нее воздействуют различные помехи. Эти помехи могут возникать из-за низкого качества линий связи, плохой работы передающей аппаратуры. В результате качество передаваемой информации ухудшается. Скорость передачи информации в компьютерных сетях во многом зависит от способа подключения к сети Интернет. Среди существующих способов подключения выделим следующие: коммутируемый доступ по телефонной линии; беспроводное мобильное соединение (GPRS); " доступ по ассиметричной абонентской линии (ADSL); беспроводная цифровая связь (Wi-Fi); доступ по выделенному каналу связи; ' спутниковый доступ и т. д. Доступ по телефонной линии (или диалап-соединение — от английского dial-up, что означает «набрать номер») нам уже известен. Скорость работы при таком способе невысокая. Она зависит от скорости приема и передачи данных с помощью модема и скорости передачи информации по магистральному каналу связи провайдера. Например, при наличии на компьютере модема, работающего со скоростью 56 Кбит/с, скорость передачи информации по телефонной линии находится в диапазоне от 35 Кбит/с до 45 Кбит/с. Беспроводное мобильное соединение с помощью специального протокола мобильной связи позволяет обеспечить среднюю скорость передачи данных от 30 Кбит/с до 40 Кбит/с. При таком соединении скорость передачи данных зависит также от типа мобильного телефона. Доступ по асимметричной абонентской линии является специальным видом подключения к сети Интернет по обычной телефонной линии, но не мешает работе телефона. Такой доступ обеспечивает передачу данных по направлению к пользователю со скоростью до 8 Мбит/с, а от пользователя до 770 Кбит/с, в зависимости от протяженности и качества линии. Беспроводная цифровая связь позволяет выполнить доступ к сети Интернет с помощью специального адаптера, который входит в стандартный комплект ноутбуков. Скорость передачи информации при таком соединении может достигать 11 Мбит/с. С 3 Ч- Какие процессы описывают коммуникационные технологии? ^ 2. Какие способы передачи информации вам известны? 3. От чего зависит скорость передачи информации в компьютерной сети? 4. Какие единицы измерения скорости передачи информации используются в компьютерной сети? Глава 6. Коммуникационные технологии ■шшшишмвям1миммямшм11мим1мг11ш1от1и1111гмтагоата*11ц;н1>11н|||и111м1ш1ми^, UMihip'/i w;'iiHiwii»wii iim iiirmiiMiiff waiwi»Mi[MiMiiiiiiiiwHiiiwtiiiii5_Рир1:5ои ■ Выберите Skype имя . alex ^ Пзроль " Повтс^зите пароль ***' gj Да. я грояитсц^-а) и пришмао .й.[цен;-ионщ.й .спсЕД?-'лгл,'' 'иПу'К"‘ ^Skype^ - Создать пользователя • Создать нового пользователя ^уре ' Зд. аррес ia!etebet@M:.t3y s Это единственный способ восстановить за&»гтый пароль. оДз, посылать мне новости мособьш ^ федпожения Skype Страна/р«-цом ' белфусь .у \ Город :Минс.<| 06ОЙТИ е Skype при запуске при’ракмы ♦ П*5чя, 1'Тмвче1->!К 1 < Иаэад [ 1 Вшти II Отмщать 1 :: J Рис. 6.4 Глава 6. Коммуникационные технологии ^ Skype " - ateks_puptsau Фа^л Account Позвонгпь Чаты Инc■фyнa^ть! Пзмсщь AfBks„Pt^tsau Эвсшт^- >та SkypeHr?d 3 Контжсты ' .-I Унабрать ■ ": Истор>!Я Добашть абшента Поиск ^онентов Sk^e й Tsofin 9 456 ЕШ пользсватепей в сети ^ Мйкь Isofin (8 сети) Skype'* чат СГЙИ QijD-eii'b *■ Tdo:-s , Доп. воздажнс СТИ у ’’ Нэстрсмси » Weks_P«ptsau г<нв1Ч>ктг , - ^ : П(»®ет ' ' ■ .... S Постаеип новую лсгг-ражы ; Гьобп : Maks Tiofin ros^MTt Скайп что ли? : ' г Д| || 1111 ||1!)Ц|'Ш)11Р _ • V В Минске ! г Ч'.о. т 05зипи'-и Д йьбрзть шрифт i •г Aieks_Piipt.sau В сети №;тсч>1я еюк1ченэ Рис. 6.5 Рис. 6.6 Для добавления контакта с новым абонентом необходимо выполнить в основном окне Skype (рис. 6.5) последовательность действий Инструменты—> Добавить контакт, а затем в окне Добавить контакт ввести нового абонента и нажать кнопку Поиск. После этого программа Skype запросит абонента, которого Вы указали, с целью получить разрешение на общение с Вами. Вызов абонента с компьютера в программе Skype выполняется двойным щелком левой клавишей мыши по необходимому контакту или одинарным щелчком этой клавишей по пиктограмме Позвонить (см. рис. 6.5). У вызываемого абонента появится сообщение о вызове. После завершения разговора необходимо щелкнуть левой клавишей мыши по кнопке Отменить звонок (см. рис. 6.5). Используя контекстное меню основного окна программы Skype, пользователь может осуществить текстовый диалог (беседу в чате) (рис. 6.6) — пункт меню Чаты, выполнить звонок с компьютера на телефон — пункт меню Позвонить (см. рис. 6.5) и т. д. Программа Skype позволяет вести телеконференцию в сети. Под телеконференцией в сети Интернет понимается одновременное общение нескольких абонентов с помощью голоса или видео. § 36. Службы сети Интернет ^Skype^ - Начать Skype конференц-звонок Рис. 6.7 Начать Skype конференц-звонок Б телеконференциях через Skype наравне с абонентами Skype могут участвовать обычные телефонные номера. Все контакты: Участни»^ (max 9 + организатор): i Щ Maks Tsofin или введите номер •гешефона iien;E:,g-^.:7v ! ■; & Белэ|| « Удалить Старт Для начала телеконференции в программе Skype необходимо выполнить последовательность действий: Позвонить Начать конференц-звонок в окне Начать Skype конференц-звонок добавить абонентов для конференции —> Старт (рис. 6.7). Телеконференция может быть осуществлена сразу с десятью абонентами. 36.3. Форумы y-M-i If г-форум’ , \vw\v-фoDy^iы) — это сайты для публичного обмена сообщениями между пользователями. В основу структуры форума положены треды (от английского thread — нить). Первое сообщение в треде задает тематику сообщений (тему для обсуждения), например Кроссворд (рис. 6.8). Затем идут первые комментарии к теме обсуждения и последовательность ответов, как показано на рисунке 6.9. Для участия в форуме требуется регистрация, а при пользовании форумом необходимо выполнять свод правил, определенных в нем. Глава 6. Коммуникационные технологии Отдельные груплы:1философы КАЖДЫЙ мох«т поапн$дт№Сз1 на »т»т фо^ум Пe^:«зтb/<»т^^вйa^тиpoiaтfe coetat пйагшсчшю» Подпи«атьея на фО{>ум В данном форуме Вы можете задать любые вопросы преподавателю и студентам Вашей группы по материалам курса, по проблемам, которые у Вас возникают. По всем техническим вопросам или проблемам обращайтесь к консультанту Л. 1 .:wTt< для 1 Обсуждение Начато Группа Ответы Последнее сообщение Кроссворд Денис Философы 2 МарЫ|) Thu 18 Oct2007. 17:03 Тест, Введение в курс. дай»: ФяЛвсофы : Алесь -Тч1йЧб 0<^2007.1Й2в проблемы при запуске теста Boris Философы 1 Мары.1 Тие 1$ Oct 21X17. 06:14 Рис. 6.8 Отдельные! группы:’ Философы [Древовидно Кроссворд • Tuesday iO Oct©bef^p7,13^ ; Перепутаны понятия "вертакаль” и "горизонталь” ©. Редактиробэть I Удалить I Ответить А Re: Кроссворд «^Aliateandi Tuesday 16 0ciober2007.1в;14 Спасибо за замечание. Исправим в ближайшее время. Показать сообщение*родителя i Редактировать I Отделить I Удалить I Отвеляь Re: Кроссворд Мзры4 Thursday 18 Octebef2007. 17:03 Исправила в Показать соо6щение-родитеп.л i Редактировать! Отделить I Удалить! Ответить [Переместить обеулэдение в _ Рис. 6.9 36.4. Новости в сети Интернвт Сеть Интернет предоставляет пользователям разнообразную информацию, содержащую новости политики, культуры, науки, техники, здравоохранения и др. Размещаться эти новости могут на сайтах ведущих телерадиокомпаний, телеграфных агентств, газет, журналов. Например, новости нашей республики мы можем прочитать на сайте Белорусского телеграфного агентства (рис. 6.10). Адрес; https://news.belta,by/ .J2jlHiE:. "Экономика Беларуси” C[^ 5ЕЯОР¥СС|СОЕ: ТШЕПРАФНОЕ АГЕНТСТВО нвджша>^гьньш исто-шпк новосгеи Фотохроника ч^тшм I Рис. 6.10 Искать ' — Бысмрый иирцхид но сои I им -- в сети Интернет существует служба сетевых новостей (Usenet), которая дает возможность пользователям пересылать сообщения и статьи на специальные электронные форумы и конференции. Посланное пользователем сообщение в соответствующую группу новостей становится доступным всем участникам дискуссии. Служба сетевых новостей позволяет организовать списки рассылки. Электронное сообщение, попавшее в список рассылки, затем отправляется всем пользователям сети, подписавшимся на этот список. Тематика группы новостей обычно определяется ее названием. Примеры некоторых таких названий приведены в таблице: Название группы Содержание темы новостей Компьютеры (comp) Обсуждение интересов компьютерных профессионалов и обычных пользователей Отдых (гес) Отдых, спорт, увлечения Наука (sci) Дискуссии, связанные с научной деятельностью Общество (soc) Обсуждение социальных и культурологических вопросов Музыка (music) Дискуссии на музыкальные темы Общение (talk) Обсуждение общих тем Для чтения электронных сообщений и статей с сервера, обслуживающего сетевые новости, можно использовать программы-браузеры, например Netscape Communicator, или специальные программы для чтения новостей: NewsXpress, Forte Agent и др. Специальный протокол передачи сетевых новостей NNTP (Net News Transfer Protocol) обеспечивает получение сетевых новостей и возможность помещения информации на доски объявлений сети. Глава 6. Коммуникационные технологии https://www.relcom.ru/Services/Servers/News/Access/Tree '' ■ 3 Переход bj •■i Р>Е/Т#СОЛЛ.|ЭУ ттшвяиапжгажша «Л* sapa4>fia 1 ? or 1S-SS s Ы0СПЦ i Иерархический список телеконференций 24.07.2007 доступно: телеконференций - 38256, иерархий - 457. * J4»ajaK' Выберите интересующую Вас иерархию телеконференций: в Русскоязычные иерархии (3) Спи1(ж 1. (2441 конф.) 2. (67 конф.) 3. гексчп (193 конф.) > Л в Нерусскоязычные иерархии (454) 1. а (3 конф.) 2. ааа (1 конф.) +7(499) 196-0720 л. аЪ (4 конф.) +7(499) 196-0820 +. (23 конф.) +7(499) 196-0823 5. acadia (2 конф.) __ Факс:+7(499} 196- 6. SCS (3 конф.) 3295 7. adass (2 конф.) 8. аЬв (5 конф.) 9. шппаИ (6 конф.) 1 Поиск 1 10. suroews (11 конф.) 11. afc (4 конф.) Искать в: 12. акт (4 конф.) ‘ YelIow-Pages.Ru 13. alabuna (20 конф.) • Relcom.Ru 14. ale (И конф.) 15. ah (19041 конф.) подробнее ^ 16. arc (4 конф.) 17.. аАаае (13 конф.) ^ ' < ■ > ^ IntBiTiet Рис. 6.11 Поддержку доступа пользователей к сетевым новостям осуществляют специализированные сайты, например сайт Релком.ру (рис. 6.11). В настоящее время широкое распространение получила Интернет-технология RSS, которая позволяет осуществлять трансляцию материалов сайта. Эта технология, используя наборы стандартных схем разметки, облегчает компьютерным программам понимание структуры размещения информации на сайтах. Технология RSS позволяет создавать список заголовков новостей, статей, анонсы. Пользователь, прочитав заголовок или анонс, решает, какой материал он будет смотреть. Это очень удобно для быстрого поиска информации на сайтах. 1. Какие службы сети Интернет Вам известны? 2. Какие функции выполняет протокол TCP/IP? 3. Какие протоколы используются при работе электронной почты? 4. Какие возможности предоставляют пользователям сети Интернет средства обмена информацией в режиме реального времени? 5. Что понимается под телеконференцией в сети Интернет? 6. Для чего используются Форумы в сети Интернет? 7. Какие типы новостей предоставляет сеть Интернет? § 37. Телекоммуникации в образовании и культуре § 37. Телекоммуникации в образовании и культуре Нам уже известно, что коммуникационные технологии описывают процессы передачи информации. Под те,!екоммуникац| ей понимается передача информации на большие расстояния, которая осуш,ествляется с помощью телеграфа, телефона, радио, телевидения, компьютерных сетей. Телекоммуникации в образовании и культуре, размещенные в сети Интернет, представляются информационными ресурсами, проектами в области образования и культуры, системами дистанционного обучения и т. д. Под информационны: и ресурсами в области образования и культуры понимаются образовательные сайты, сайты учебных учреждений и учреждений культуры, электронные каталоги библиотек, издательств, электронные материалы (книги, журналы, газеты) и т. д. Белорусские информационные ресурсы в области культуры широко представлены в сети Интернет. Среди них сайты театров, например сайт Национального академического театра им. Я. Купалы (рис. 6.12), сайты музеев идр. Огромный интерес у пользователей сети Интернет вызывают сайты международных и национальных фестивалей в области литературы, искусства, музыки, народного творчества и др. Большой популярностью в мире пользует- НАЦЫЯНАЛЬНЫ АКАДЭМ1ЧНЫ ТЭАТР1МЯ ; ЯНЮ КУПАЛЫ www.kupala-theatfe. by РЭПЕРТУАР ГАЛЕР5Я I гтцтт | СХЕМА ЗАЛЫ t I ________ТРУПА \ АДМГН1СТРАЦЫЯ ' КАНТАКТЫ НАВ1НЫ ГАСТРОЛ1 КУПАЛАУСКАГА У Л1ТВЕ 20-22 снежня Нацыянальны акадэм!чны тэатр 1мя Янк! купалы выступ1ць 3 гастролям! у В1льнюсе, Л1тва. На сцэне Штоускага нацыянальнага драматычнага тэатра Купалауск! прадстав!у спектакл! «Чорная панна Нясв1жа» А.Дударава 1 «С.В.» паводле АЛ.Чэхава. Гастрол! праводзяцца пры падтрымцы М1н!стэрства культуры Рэспубл!к! Беларусь, Пасольства Рэспубл!к! Беларусь у Л!тоускай Рэспубл!цы i Пасольства Л!твы у Беларус! у рамках мерапрыемствау да 15-й гадав!ны з дня падпюання Дагавора аб устанауленн! дыпламатычных знос1н пам1ж Беларуссю I Л!твой i Дагавора аб доугатэрм1новым супрацоун1цт8е пам!ж двума нацыянальным! тэатрам!. Партнёр гастроляу п!узавод “Ал!варыя”. Дагаворам прадугледжана арган1зацыя абменных гатроляу, сумесных пастановак спектакляу, правядэенне тэатральных фестываляу, юб1лейных мерапрыемствау, запрашэнне артыстау на працу, абмен пастановачным! трупам!. Рис. 6.12 АФ1ША Сгкгв!к 1, 5 - KIM 2 - Пам!нальная мал!тва 3 - Каханне у стьгл! барока 6 - Таполевая завея 7 - Слуга двух гаспадароу (камедыя у 2-х дзеях) (П) 9 - Паул!нка 15, 16 - Дзец! Ванюшына (П) 17 - Маэстра 19, 20 * Чорная панна Нясв!жа 21 - Вольга (П) 22 - Вечар 23 - Макбет (П) 24 - Я не паюну цябе 26 - Сымон-музыка 27 - М1ЖНАРОДНЫ ДЗЕНЬ Глава 6. Коммуникационные технологии Шяь чт imi Ш Ш О т -ш fc»5^*S5 -i^ liSiS 1ИШ- Главная m Программа s Конкурсы ■ Официально ш FIDOF ■ Пресса в Музей См. также Аккредитация прессы Средства массовой информации штжтшкш 14:32 13/07/2007 «Дайджест» автор: «Гудок» Контрасты «Славянского базара» На закрывающемся сегодня фестивале искусств побывал специальный корреспондент «Гудка». Уже шестнадцать лет каждый июль в Витебск съезжаются тысячи людей из ближнего и дальнего зарубежья. Рис. 6.13 ся сайт Международного фестиваля искусств «Славянский базар в Витебске» (рис. 6.13). С некоторыми информационными ресурсами в области образования, такими, как сайты учреждений образования, электронными каталогами библиотек, мы уже знакомились ранее. Посещение пользователями образовательных сайтов позволяет расширить и углубить их знания по различным учебным дисциплинам. Такие сайты обычно содержат большое количество учебных книг и материалов, тесты, рефераты, экзаменационные и олимпиадные задачи с решениями, анимацию различных природных явлений и процессов и др. В настоящее время большое распространение в сети получили телекоммуникационные проекты. В основном такие проекты являются учебными. Под учебным телекоммуникационным проектом понимается совместная творческая, исследовательская, учебно-познавательная, игровая деятельность участников проекта, организованная на основе компьютерной телекоммуникации. Каждый телекоммуникационный проект создается с определенными целями для решения общих для участников проекта проблем и направлен на достижение совместного результата. § 37. Телекоммуникации в образовании и культуре Рис. 6.14 МАТЕМАТИКА WWW, mathematics. ru О проекте Алгебра Планиметрия Стереометрия Функции и грофики, eSolver Алгебра on-line : Учителю Модели Математика в Интерне' On-line тесты Примером известного учебного проекта является проект «Открытый колледж», который предназначен для расширения и углубления знаний школьников по различным учебным дисциплинам: физика, математика и т. д. (рис. 6.14). Телекоммуникационные проекты во многих странах мира являются неотъемлемой частью учебного процесса. Телекоммуникационная сеть Janet объединяет все университеты Англии, а в проекте Campus-2000 принимают участие 2000 школ из разных стран. Темы телекоммуникационных проектов носят самый разнообразный характер, например культурологический — «Театр», «Праздники и обычаи народов мира» или узкопредметный — например, «Химический проект». Широкое распространение в компьютерной сети получило дистанционное обучение. Дистанционное обучение — это взаимодействие преподавателя и обучаемого на расстоянии, отражающее все присущие учебному процессу компоненты (цели, содержание, методы, организационные формы, средства обучения) и реализуемые средствами Интернет-технологий. Наиболее распространенными системами дистанционного обучения являются Moodle, Web Tutor, Stellas и др. Например, система Moodle — это система управления содержимым сайта (Course Management System — CMS), специально разработанная для создания качественных онлайн-курсов преподавателями. ^ Г^1уппы ] Отчеты ?. i Вопросы ''ТФ^ЙПЫ --£ Оценки Глава 6. Коммуникационные технологии nag'-nn ''iTre ; Рис. 6.15 2 Инф0рмаи|10нные технологии в современном обществе ^^Темз Г Информзи^ч^нмые техналоми t сабреибниам о6\дестбе S^Teer для сзмопро««рки по 1ем$ I Компвб1сна.ч «нфгфШ1и53ц«я обрЭ5о^зт1Я Республики Беларусь ^^0бсу*лзем концепцию янформаттзкуж обрззо^эния РЕ 3 Техническое обеспечение юэмпьютера Артема 2. Техническое обеспечение компьютерз >^Тест алд сэмопро1ерш по теме 2 . Ilfilfai: собрать компьютер? 4 Системное программное обеспечение ю^мпьютера ■^}Темз 5, Скютемное программное обес-лечение У^Тест для самопроверки по теме 3 Дфосс^ора №^- а кале>щарь ■4 November 2007 а а Пн Вт Ср Чт Пт Сб Во 1 ш -' ^ 5 6 7 8 9 V; U 12 13 14 15 16 i; 19 20 21 22 23 26 26 27 28 29 50 } Общие ,• события События хуроз ГруппФбые События события польооеателя Данная система состоит из отдельных учебных курсов. Под курсом в рамках системы не всегда понимается процесс обучения по какой-то заранее определенной программе. Курс может являться просто средой общения круга заинтересованных людей в рамках одной тематики. В системе Moodle существуют пять типов пользователей: администраторы, создатели курсов, преподаватели, студенты и гости. Каждый из них имеет определенные права на доступ к ресурсам системы. Например, учебный курс «Современные информационные технологии» в системе Moodle может содержать электронные учебные материалы, тематические форумы по обсуждению различных проблем, тесты для самопроверки, контрольные тесты, кроссворды (рис. 6.15). На курс обучаемые должны зарегистрироваться, координаторы курса формируют виртуальные группы обучаемых студентов или учащихся. Результаты выполнения тестов фиксируются в специальных оценочных таблицах. еЩ|! Какие информационные pecypcbi сети Интернет относятся к ресурсам в об-tsSj ласти образования и культуры? I 2. Что содержат образовательные сайты? j 3. Приведите примеры сайтов из области культуры. ! 4. Что понимается под учебным телекоммуникационным проектом? I 5. Что представляет собой дистанционное обучение? Угшяжьскис Откройте с помощью программы-браузера, сайты, содержащие информацию в области образования и культуры. Какая информация на них хранится? а) образовательные сайты: я^хг1Г^»111*11ии»-|Г|Я8г.жа>;^:ае~^дяав:.» :Jrg^s^^28г § 37. Телекоммуникации в образовании и культуре :тте?5^28г III* I ||> I II M'F 14 I ■ МИ 'ffliMiilH it iHi < iillSt ltll^lWlllWWH>BW»i|i|WillW II Астрономия https://wu'w.astrolab.ru Ресурс об объектах Вселенной https://www.astrotop.ru/ Каталог астрономических ресурсов Русский язык и литература https://www.gramma.ru/ Сайт «Культура письменной речи» https://slovar.boom.ru/ Толковый словарь современной компьютерной лексики https://bookz.ru/ Большая электронная литературная библиотека Математика https://www.mathnet.spb.ru Сайт «Элементарная математика» https://www.mathtest.ru/ Тестирование по математике для школьников Физика https://school.komi.com/ Дистанционная физическая школа https://www.fizika.ru/ Сайт «Физика.ш: учебники, тесты, лабораторные занятия». Химия https://www.chemistiy.ssu.samara.ru/ Сайт «Органическая химия» https://optimag.narod.ru/ Химия для любознательных Английский язык https://www.study.ru/ Большой портал по изучению английского языка https://www.translate.ru/ Онлайн-словарь и переводчик 6) информационные сайты в области культуры: https://www.balet.by/ Национальный академический Большой театр балета Беларуси https://www.theatre.vitebsk.by Национальный академический драматический театр им. Я. Коласа Глава 6. Коммуникационные технологии http;//www.menka-museum.com/ Беларусю дзяржауны музей дойлщства i побыту https://www.russianmuseurn.spb.ru/ Художественные музеи и картинные галереи России https://www.hist.msu.ru/ER/museum.htm Музеи мира в сети Интернет https://forums.tut.by/ Форум «Культура и искусство Беларуси» https://www.museumshome.com/ Музеи Беларуси *§ 38. Коммерческая и рекламная деятельность в сети Интернет Коммерческая деятельность в сети Интернет (электронная коммерция) является важнейшим составляютцим элементом рынка товаров и услуг. Формы электронной коммерции весьма разнообразны. К ним относятся электронные магазины, аукционы, корпоративные порталы и др. В настоящее время организация коммерческой деятельности в сети Интернет подразделяется на несколько основных видов; S предложение товаров в сетях; о системы и средства платежей; е электронная продажа товаров. Предложение товаров предполагает размещение на веб-сайтах наборов товаров, формируемых по определенным признакам. Ассортимент товаров предназначен для удовлетворения потребностей покупателей. Предлагаемые товары обычно размещаются на специальной электронной витрине. На этой витрине покупатель должен иметь возможность быстро находить необходимые товары. Многие электронные витрины содержат механизмы обработки заказов и позволяют пользователю получать итоговую квитанцию по отобранным товарам. Примером электронной витрины является витрина белорусского торгового портала shop.open.by (рис. 6.16). Системы платежей в компьютерной сети подразделяются на три основных вида: система с предоплатой, система с оплатой в момент совершения сделки и оплата по факту получения товара. В качестве средств оплаты в сети могут выступать расчетные, кредитные, интеллектуальные карты клиентов и электронные деньги. § 38. Коммерческая и рекламная деятельность в сети Интернет ^niiHiwwiii»w~‘wiMMPWiffi»iiiiiiwiHwrTM'Hifi^iiiiiiiMii^iiiwrii^^ и wHiHiiiiniiwwwniaMiw—и торговый портап поиск Р” Автоаудио, Запчасти, Безопасность, Химия и косметика, Аудио и видео й Аудио, Видео. V-/. DVD. Бытовая техника Для кухни, Для тела, Встраиваемая, Пылесосы, Холодильники, Стиральные машины,, Детский мир Предметы ухода, Детское питание. Игрушки,... расширенный поиск : Г'ви’тТин'П ВХОД паспорт Глаеная Новинки Тесты Советы Обратите внимание Форум КАК ВЫБРАТЬ НОУТБУК. ОКТЯБРЬ 2007 Самый первый ноутбук появился всего на несколько лет позже первого персонального компьютера. Правда, если первый ПК отдаленно. но напоминал сегодняшние настольные системы, то вот ноутбук больше походил на осциллограф размером с чемодан и весом более 10 кг. Изменилось ли что-нибудь с того времени? Определенно изменилось. Причем уже довольно давно. подробнее.. Новости Aloha 360 - инновационный КОРПУС компании IN-WIN Samsung создал самый тонкий s мире ЖК-телевиэор Акустическая система Формата 2.1 Doweil SP-D0Q9 - со.пидный и СТРОГИЙ трифоник Телефон Pantech передаёт звук по костям Рис. 6.16 Например, электронные деньги представляют собой чеки или сертификаты. Расчеты выполняются посредством списания определенного количества платеж-нвк единиц с одного счета и зачисления на другой. В настоящее время широко используются электронные платежные средства на основе системы обозначений денежных переводов. Например, такой вид операций предоставляет клиентам Visa и MasterCard. Большинство современных банков предоставляют возможность переводить денежные средства непосредственно с банковского счета клиента на счет торговых организаций или организаций, предоставляющих различные услуги. Например, используя банковскую карточку клиент Беларусбанка с помощью банкомата может оплатить коммунальные услуги и услуги мобильной связи. Электронная продажа товаров является наиболее сложной системой продажи и состоит из нескольких этапов: Просмотр каталога ^ Выбор товара^ Оформление заказа (рис. 6.17)^ Формы оплаты и получения товара (рис. 6.18). Реклама в сети Интернет в основном размещается на веб-сайтах, баннерах, поисковых системах, каталогах и предназначена для информирования потенциальных покупателей о свойствах и качестве товаров и услуг. Глава 6. Коммуникационные технологии Рис. 6.17 sКаталог товаров --------- Аксессуары Акустика Беспроводная Связь Двери Клавиатуры Мониторы Модемы и Сетевое оборудование Мыши Ноутбуки,, , Ноутбуки Acer Ноутбуки HP Ноутбуки Dell Ноутбук Sony Ноутбук Asus Ноутбук Apple Macbook,, ЕУ Без сортировки Toshiba Satellite L4G-14B Velcom: 8(029)3529675 МТС:(029)2701993 CrV3j0512Mb/12OGb/DVD- RW/Wi-Fi/X3100 358Mb/15.4WXGA/winXP 850 S USA I 1 836 000 p. логин: Незарег. товаров: О валюта: всего: Velcom:8\029)3529675 МТС: (02^2701993 AMD® Turi0I^AX2(1.86 Ghz,2-x ядерн1ай), 1024 Mb DDR2, 120 Gb, Шео ATI® Radeon® Xpress^250 up 256Mb, DVD±RW,%5,4" WXG^ 890 $ USA j axissstssxtsa: я .-ЯЕ' ^:щттвштш as®: USD - Ноутбук HP Compaq 6715s 890 890 итого: Нгличиыгии Оплата курьэр> вернуться в магазин » Рис. 6.18 Знакомство пользователей с рекламой в сети обычно осуществляется на двух уровнях. На первом уровне пользователь взаимодействует с внешней рекламой на основании баннеров (рис. 6.19), текстовых и графических блоков, по рекламным каталогам и информации, размещенной в поисковых системах. Такое взаимодействие пользователь не контролирует. Он сталкивается с рекламой пассивно в результате просмотра веб-сайта, посещение которого часто совершенно не связано с рекламой. На втором уровне пользователь просматривает непосредственно веб-сайт рекламодателя. Это происходит после щелчка левой клавишей мыши по баннеру или специальной рекламной ссылке. Просмотр пользователем веб-сайта рекламодателя является уже активным его знакомством с рекламой. § 38. Коммерческая и рекламная деятельность в сети Интернет 'iS WWW.OPEN.BY - Интернет портал. Главная. • Microsoft Internet Explorer ф^л Правка Вид Иабраннае Сервис Справка ' ’ . J Поиск I'liopaHboe ‘ ' И»1р;//ореп.Ьу/ И ;S I Перевод Баннер 1 На портале " Загородная недвижимость" www.PON.ru (Портал Областной Недвижимости) размещена большая база объектов: загородная недвижимость в аренду и на продажу. Загородная недвижимость постоянно обновляется, поэтому на портале представлены только актуальные объекты. В базе объектов Вы можете произвести поиск по следующим разделам: продажа загородной недвижимости, загородная недвижимость а аренду. Напомним, что вся база постоянно обновляется, поэтому на портале представлена только актуальная информация. Vt I Индекс Директ Поиск загородной недвижимости: любой рли.'.’Н Дом, Дано, :чг.'т- - Покупаю : Поиск ’ Гзрэчатрь:--Всего в базе о6ъекто8;5б87 Коттеджный поселок "РУМБОЛОВО" I район: I Всеволожский I Коттеджный I поселок I премиум-класса «РУМБОЛОВО» строится в элитном районе Мельничный Михайловское" район: Петродворец СПб 10 типов коттеджей Дома от 240 кв.м, до 340 кв.м. Цена: 3 200 у.е./кв.м, коттеджа «<Посело!< Гада»- Базг данных - Пподажа; Ручей, в 11 км от Петербурга по Дороге Лучш Жизни, пс-селск "ла"са "Elite” г. хоттеджнс d 1521 2202 11-56 (54' Баннер 2 Загородный отдых: Базы отдьгха Коммерческая недвижимость; Полезные фирмы: IlarooofiHoe с-рюитель--; "Сестрорецкие Дубки" .Агента'вэ е Ипотека район: . Курортный СПб [ 116 I сблокированный f секций ! коттеджей у берега Финского залива рядом с входом в парк «Дубки». Городской образ жизни в тихом курортном месте. Чистый морской воздух, пляж. Коттеджный поселок "Охтинское раздолье" район: Всеволожский Поселок "Охтинское раздолье” расположен в живописном месте, холмистые долины окружены густым лесом, недалеко протекает река Охта, что делает это место особенно привлекательным для любителей рыбалки. ЧгрмФгсри.я- архитактуркнее проекты Получение разрешений на строительство. W W W. eg ГС а t i t у, г и Жилой номплаис ’ Юж;-}эя Долина" Выгодное предложение от застройщика! Ипотека от ВТБ24! Рассрочка! Mezx. и .гелефон • ■V 'Л '.V. g й го п t' d с V. ги >::nnL5 на ":-1у5лэБке" Квартиры в элитном доме! Достойные соседи! Сосновый бор! Москва-река! v.'ww,bt;:>tsi:foy.ru Дка^.,емия дезелопмзн'.-а. Сэминарь! База недвижимости Все для девелопера. Обучитесь на семинаре! mbschool.ru подро'онее... подробнее... , Открытие страницы ht?p.7/p.open.by/adlr3me.php?n=acdfiS63S.what=2crier8... > internet Рис. 6.19 Рекламные сайты обычно состоят из одной или нескольких веб-страниц и содержат информацию о государственных или коммерческих организациях, предлагаемой ими продукции, товарах, услугах, которые могут заинтересовать покупателей. 1. 2. 3. 4. 5. На какие виды подразделяется коммерческая деятельность в сети Интернет? Из каких этапов состоит процесс электронной продажи товаров? Где размещается электронная реклама в сети Интернет? Что размещается на веб-сайтах рекламодателей? Что представляют собой баннеры? Приложение 1 ПРИЛОЖЕНИЕ 1 Работа в интегрированной среде программирования Borland Pascal 7.0 Меню File Назначение: выполнение операций с файлами текстов программ. Команда Назначение New Открытие окна для нового файла Open (F3) Открытие (загрузка) файла Save (F2) Сохранение файла с прежним именем Save As Сохранение файла с новым именем Save All... Сохранение файлов всех открытых окон Change dir... Установка текущего каталога Exit (Alt+X) Выход из среды программирования Меню Edit Назначение; выполнение операции редактирования текста программы. Команда Назначение Undo (Alt+Backspace) Отмена последней операции редактирования текста (откатка) Cut (Shift+Delete) Перемещение вьщеленного фрагмента текста из окна редактора в буфер обмена (промежуточную память) Copy (Ctrl+Insert) Копирование выделенного фрагмента из окна редактора в буфер обмена Paste (Shift+Insert) Копирование выделенного текста из буфера обмена в окно редактора Clear (Ctrl+Delete) Удаление выделенного фрагмента текста, минуя буфер обмена Приложение 1 Меню Search Назначение: выполнение операций поиска и замены в тексте программы. Команда Назначение Find Поиск текста Replace Поиск текста и замена его новым текстом Меню Run Назначение; выполнение команд управления ходом выполнения программы. Команда Назначение Run (Ctrl+F9) Компиляция, компоновка и выполнение программы Trace into (F7) Построчное выполнение программы Go to cursor (F4) Выполнение программы до курсора Меню Compile Назначение; выполнение команд компиляции и компоновки программы. Команда Назначение Compile (Alt+F9) Компиляция программы Information Получение информации о программе и системе Меню Debug Назначение: выполнение команд, связанных с отладкой программы. Команда Назначение User screen (Alt+F5) Открытие окна пользователя (окна вывода результатов выполнения программы) 214 Приложение 1 :i: ivj£?r$5!ZZZ;:z3E:^32 Меню Window Назначение: выполнение команд управления окнами. Команда Назначение Tile Разместить окна мозаикой Cascade Разместить окна каскадом Close all Закрыть все окна Next (F6) Перейти к следующему окну Close (Alt+F3) Закрыть активное окно Меню Help Назначение; получение справочной информации. Команда Назначение Contents Получение содержания справочной системы Index (Shift-rFl) Вызов тематического указателя Topic search (Ctrl-rFl) Вызов помощи по заданной теме Procedures and functions Получение списка процедур и функций Reserved words Получение списка ключевых слов языка Паскаль Standard units Получение списка стандартных модулей Borland Pascal Language Получение перечня основных терминов языка Паскаль Error massages Получение информации о системе сообщений об ошибках Окно текстового редактора Назначение: создание и редактирование текстов программ (ввод текста программы, удаление и вставка символов и строк, «разрезание» и «склеивание» строк, поиск и замена текста, операции с фрагментами текста). Для перемещения курсора используются курсорные клавиши, клавиши Ноше, End, PageUp, PageDown. Смена режимов ввода текста (вставка/замена) — Insert. Удаление текущей строки — Ctrl-i-Y. Приложение 1 215 Удаление символа слева от курсора (под курсором) —■ Backspace (Delete). Получение отступов в строке — Tab. Отмена последней операции редактирования текста (откатка) — Alt+Backspace. Переключение с латинского шрифта на русский — Ctrl, или левая и правая клавиши Shift, или иначе (способ переключения устанавливается при загрузке русификатора среды программирования). Максимальная ширина окна редактора составляет 78 знаков. При продолжении ввода текста он смещается влево. Приложение 2 ПРИЛОЖЕНИЕ 2 Ошибки компиляции Причина возникновения: ошибки, связанные с нарушением синтаксиса языка Паскаль. Код ошибки Характер ошибки 1 Out of memory (Компилятору не хватает памяти) 2 Identifier expected (Требуется идентификатор) На месте позиционирования курсора должен находиться идентификатор; возможно, неправильно используется зарезервированное слово 3 Unknown identifier (Неизвестный идентификатор) Идентификатор не описан или неправильно написано зарезервированное слово 4 Duplicate identifier (Повторение идентификатора) Идентификатор описан дважды 5 Syntax error (Синтаксическая огнибка) Обнаружен недопустимый символ; возможно, строка не ограничена апострофами 6 Error in real constant (Ошибка в константе вещественного типа) Неверный синтаксис константы вещественного типа 7 Error in integer (Ошибка в константе целого типа) Неверный синтаксис константы целого типа 8 String constant exceeds line (Выход строки за допустимые границы) Возможно, не закрыт апостроф строки 10 Unexpected end of file (Неожиданный конец файла) Не закрыт комментарий, или нарушена вложенность операторов Begin .. End, или количество этих операторов различно, или нет точки в конце программы И Line too long (Строка слишком длинная) Превышена длина строки (она не может превышать 127 символов) 12 Туре identifier expected (Требуется идентификатор типа) Не указан идентификатор типа приложение 2 Продолжение Код ошибки Характер ошибки 16 Disk full (Диск заполнен) Отсутствует место на диске 20 Variable identifier expected (Требуется идентификатор переменной) В указанном месте должен находиться идентификатор переменной 26 Туре mismatch (Несоответствие типов) Типы переменной и выражения, или операндов в выражении, или фактических и формальных параметров несовместимы 30 Integer constant expected (Требуется целая константа) 31 Constant expected (Требуется константа) 32 Integer or real constant expected (Требуется целая или вещественная константа) 33 Pointer Туре identifier type (Требуется идентификатор типа) 34 Invalid function result type (Недопустимый тип функции) 36 BEGIN expected (Требуется Begin) 37 END expected (Требуется End) 38 Integer expression expected (Требуется выражение типа Integer) 40 Boolean expression expected (Требуется выражение типа Boolean) 41 Operand types do not match operator (Типы операндов не соответствуют типу знака операции) 42 Error in expression (Ошибка в выражении) 43 Illegal assignment (Неправильное употребление присваивания) 50 DO expected (Требуется зарезервированное слово DO) 54 OF expected (Требуется зарезервированное слово OF) 57 THEN expected (Требуется зарезервированное слово THEN) 58 ТО or DOWNTO expected (Требуется зарезервированное слово ТО или DOWNTO) 62 Division by zero (Деление на нуль) Продолжение Код ошибки Характер ошибки 64 Cannot Read or Write variables of type (Нельзя вводить или выводить переменные этого типа) 66 String variable expected (Требуется строковая переменная) 67 String expression expected (Требуется выражение строкового типа) 71 Internal stack overflow (Внутреннее переполнение стека) 74 Constant and case types do not match (Типы консхант и выражения оператора case не соответствуют друг другу) 76 Constant out of range (Выход константы за пределы допустимого диапазона) 79 Integer or real expression expected (Требуется выражение типа Real или Integer) 85 expected (Требуется “;”) 86 expected (Требуется “:”) 87 expected (Требуется “,”) 88 “(” expected (Требуется “(”) 89 “)” expected (Требуется “)”) 90 “ = ” expected (Требуется “ = ”) 91 expected (Требуется “: = ”) 94 expected (Требуется “.”) 97 Invalid FOR control variable (Ошибочен тип переменной параметра цикла оператора FOR) 98 Integer variable expected (Требуется переменная целого типа) 100 String length mismatch (Ошибочна длина строковой переменной) 102 String constant expected (Требуется константа строкового типа) 103 Integer or real constant expected (Требуется константа типа integer или real) 106 Character expression expected (Требуется символьный тип выражения) Цдиложение 2 _'^---'.X- : 219 Продолжение Код ошибки Характер ошибки 108 Overflow in arithmetic operation (Переполнение при выполнении арифметических операций) 112 Case constant out of range (Выход значения селектора за пределы допустимых границ) ИЗ Error in statement (Ошибка в операторе) 140 Invalid floating point operation (Недопустимая операция с плавающей точкой) 143 Invalid procedure or function reference (Недопустимое обращение к процедуре или функции) 166 Procedure or function identifier expected (Требуется идентификатор процедуры или функции) " . Причина возникновения: семантические ошибки, связанные с неправильным использованием элементов и конструкций языка Паскаль. Код ошибки Характер ошибки 106 Invalid numeric format (Ошибочное арифметическое выражение для ввода) 200 Division by zero (Деление на нуль) 201 Range check error (Выход за границы допустимого диапазона) 205 Floating point overflow (Переполнение при выполнении операции с плавающей точкой) 207 Invalid floating point operation (Недопустимая операция с вещественным числом) Использование отрицательного аргумента в функции sqrt, или неверное использование функций Тшпс или Round, или неположительный аргумент в функции Ln 215 Arithmetic overflow error (Ошибка переполнения при выполнении арифметической операции) Содержание От авторов..................................................... 3 Глава П Информационные модели, системы и технологии § 1. Информация. Представление и измерение информации ....... 5 1.1. Понятие информации. Виды и свойства информации....... — 1.2. Представление информации............................. 6 1.3. Измерение информации ................................ 8 § 2. Информационные модели................................... 9 § 3. Информационные системы и технологии .................... 13 3.1. Системы и информационные системы .................. — 3.2. Технологии и информационные технологии.............. 14 Глава S Аппаратное i/i программное обеспечение компьютера § 4. Архитектура компьютера.................................. 18 4.1. Общее представление об архитектуре компьютера ....... — 4.2. Процессоры и их характеристики ..................... 19 4.3. Виды памяти компьютера.............................. 21 4.4. Внешние типовые устройства.......................... 23 *4.5. Выбор аппаратного обеспечения компьютера........... 25 *§ 5. Программное обеспечение компьютера ..................... 27 *§ 6. Операционные системы.................................... 30 Глава 3 □сновы программирования § 7. Языки программирования.................................. 33 7.1. Главное окно интегрированной среды программирования Borland Pascal................................................... 34 7.2. Редактирование текста программы .................... 36 7.3. Обращение к справочной системе Help.................. — 7.4. Компиляция и выполнение программы................... 37 7.5. Отладка программы.................................... — § 8. Основные объекты языка программирования Паскаль ........ 41 8.1. Алфавит языка .......................................... 41 8.2. Величины................................................... — 8.2.1. Константы........................................... 43 8.2.2. Переменные.......................................... 44 8.3. Арифметические операции................................... 45 8.4. Стандартные подпрограммы.................................. 46 8.5. Арифметические выражения.................................. 48 § 9. Структура программы ........................................... 50 § 10. Ввод—вывод данных............................................. 53 10.1. Вывод..................................................... — 10.2. Форматный вывод.......................................... 54 10.3. Ввод..................................................... 57 §11. Оператор присваивания ....................................... 58 § 12. Текстовый и графический режимы.............................. 66 12.1. Текстовый режим........................................... — 12.2. Графический режим........................................ 68 § 13. Создание изображений ......................................... 70 13.1. Задание цвета............................................. — 13.2. Построение графических примитивов......................... — *13.3. Построение сложных графических объектов............... 75 13.4. Заполнение областей изображения.......................... 76 § 14. Работа с текстом.............................................. 81 14.1. Отображение текста ....................................... — *14.2. Установка шрифта и стиля.............................. — § 15. Алгоритмическая структура ВЕТВЛЕНИЕ........................... 82 15.1. Логические величины и выражения ......................... 83 15.2. Условный оператор ....................................... 86 *15.3. Оператор выбора CASE.................................... 92 § 16. Алгоритмическая структура ПОВТОРЕНИЕ.......................... 96 16.1. Цикл с предусловием WHILE ................................ — 16.2. Цикл с параметром FOR................................... 102 16.3. Смешанные алгоритмы..................................... 106 § 17. Использование алгоритмических структур в графике............ 112 17.1. Графические построения.................................... — 17.2. Программирование движущихся объектов ................... 116 *17.3. Решение практических задач. Деловая графика............ 119 222 - Содержание *§ 18. Подпрограммы пользователя............................... 125 18.1. Описание подпрограмм пользователя .................. 126 18.2. Процедуры ............................................ — 18.3. Функции............................................. 131 ^ Глава 4 Технология обработки информации в системе управления базами данных §19. Системы управления базами данных.......................... 135 § 20. Основные элементы интерфейса СУБД Access................. 137 § 21. Создание таблицы базы данных............................. 138 21.1. Проектирование баз данных............................. — 21.2. Создание структуры таблицы в режиме Мастера...... 141 21.3. Создание структуры таблицы в режиме Конструктора ... 142 21.4. Ввод и редактирование данных в таблице.............. 143 §22. Связывание таблиц базы данных............................. 146 § 23. Модификация структуры таблицы............................ 149 § 24. Создание и заполнение формы.............................. 151 24.1. Возможности создания формы в СУБД Access............ — 24.2. Создание формы в Конструкторе....................... 152 §25. Использование фильтров.................................... 155 § 26. Поиск данных с помощью запросов.......................... 158 26.1. Запрос на выборку данных по одной таблице........... — 26.2. Параметрический запрос ............................. 161 26.3. Вычисления в запросе ............................... 162 § 27. Сортировка записей в таблице............................. 164 §28. Создание отчетов.......................................... 166 * Глава 5 Вычислительные методы и технологии § 29. Основы работы в системе Mathcad.......................... 169 29.1. Основные элементы интерфейса.......................... — 29.2. Основы работы в среде Mathcad....................... 170 § 30. Функции. Символьные операции............................. 173 § 31. Построение графиков...................................... 176 _ Содержание ,_______ §32. Решение уравнений ...................................... 180 § 33. Операции с векторами и матрицами....................... 184 33.1. Использование операций с векторами................. — 33.2. Использование операций с матрицами. Обработка изображений 186 § 34. Решение систем уравнений и неравенств.................. 189 Глава 6 Коммуникационные технологии § 35. Способы и скорость передачи информации ................ 194 § 36. Службы сети Интернет................................. 196 36.1. Основные службы сети Интернет и протоколы ......... — 36.2. Средства обмена информацией в режиме реального времени ... 197 36.3. Форумы .......................................... 199 36.4. Новости в сети Интернет.......................... 200 § 37. Телекоммуникации в образовании и культуре............ 203 *§ 38. Коммерческая и рекламная деятельность в сети Интернет. 208 ПРИЛОЖЕНИЕ 1............................................... 212 ПРИЛОЖЕНИЕ 2............................................... 216 223 (Название и номер школы) Учебный год Имя и фамилия ученика Состояние учебного пособия при получении Оценка ученику за пользование учебным пособием 20 / 20 / 20 / 20 / 20 / Учебное издание Пупцев Александр Евгеньевич Макарова Нина Петровна Заборовский Георгий Александрович Черняк Аркадий Александрович ИНФОРМАТИКА Учебное пособие для 11 класса общеобразовательных учреждений с русским языком обучения с 12-летним сроком обучения (базовый и повышенный уровни) 2-е издание, дополненное Зав. редакцией В. Г. Бехтина. Редакторы Н. М. Алганова, К. Л1 Лукашевич. Оформление Б. Г. Клюйко. Художественный редактор Л. В. Павленко. Технический редактор М. И. Чепловодская. Компьютерная верстка Г. А. Дудко. Корректоры Т. Н. Ведерникова, Е. П. Тхир, Д. Р. Лосик, В. С. Бабеня. Подписано в печать 12.03.2008. Формат 70 Х ЭО'/ы- Бумага офсетная. Гарнитура литературная. Офсетная печать. Уел. печ. л. 16,38. Уч.-изд. л. 11,9. Тираж 153 000 экз. Заказ 170. Издательское республиканское унитарное предприятие «Народная асвета» Министерства информации Республики Беларусь. ЛИ 02330/0131732 от 01.04.2004. 220004, Минск, проспект Победителей, 11. Республиканское унитарное предприятие «Минская фабрика цветной печати». ЛП № 02330/0056853 от 30.04.2004. 220024, Минск, Корженевского, 20.