Информатика и информационные технологии
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
1. Информатика и информационные технологии
Предмет и задачи информатики
Информатика – это техническая наука, систематизирующая приемы создания, хранения, воспроизведения, обработки и передачи данных средствами вычислительной техники, а также принципы функционирования этих средств и методы управления ими.
Из этого определения видно, что информатика очень близка к технологии, поэтому ее предмет нередко называют информационной технологией.
Предмет информатики составляют следующие понятия:
• аппаратное обеспечение средств вычислительной техники;
• программное обеспечение средств вычислительной техники;
• средства взаимодействия аппаратного и программного обеспечения;
• средства взаимодействия человека с аппаратными и программными средствами.
Как видно из этого списка, в информатике особое внимание уделяется вопросам взаимодействия. Для этого даже есть специальное понятие – интерфейс. Методы и средства взаимодействия человека с аппаратными и программными средствами называют пользовательским интерфейсом. Соответственно, существуют аппаратные интерфейсы, программные интерфейсы и аппаратно-программные интерфейсы.
Основной задачей информатики является систематизация приемов и методов работы с аппаратными и программными средствами вычислительной техники. Цель систематизации состоит в выделении, внедрении и развитии передовых, наиболее эффективных технологий в автоматизации этапов работы с данными, а также в методическом обеспечении новых технологических исследований.
Информатика – практическая наука. Ее достижения должны проходить подтверждение практикой и приниматься в тех случаях, когда они соответствуют критерию повышения эффективности. В составе основной задачи информатики сегодня можно выделить следующие направления для практических приложений:
• архитектура вычислительных систем (приемы и методы построения систем, предназначенных для автоматической обработки данных);
• интерфейсы вычислительных систем (приемы и методы управления аппаратным и программным обеспечением);
• программирование (приемы, методы и средства разработки компьютерных программ);
• преобразование данных (приемы и методы преобразования структур данных);
• защита информации (обобщение приемов, разработка методов и средств защиты данных);
• автоматизация (функционирование программно-аппаратных средств без участия человека);
• стандартизация (обеспечение совместимости между аппаратными и программными средствами, а также между форматами представления данных, относящихся к различным типам вычислительных систем).
Слово информатика происходит от французского слова Informatique, образованного в результате объединения терминов Informacion (информация) и Automatique (автоматика), что выражает ее суть как науки об автоматической обработке информации. Кроме Франции термин информатика используется в ряде стран Восточной Европы. В то же время в большинстве стран Западной Европы и США используется другой термин – Computer Science (наука о средствах вычислительной техники).
Элементы теории информации
Понятие об информации
Несмотря на то, что с понятием информации мы сталкиваемся ежедневно, строгого и общепризнанного ее определения до сих пор не существует, поэтому вместо определения обычно используют понятие об информации. Понятия, в отличие от определений, не даются однозначно, а вводятся на примерах, причем каждая научная дисциплина делает это по-своему, выделяя в качестве основных компонентов те, которые наилучшим образом соответствуют ее предмету и задачам. При этом типична ситуация, когда понятие об информации, введенное в рамках одной научной дисциплины, может опровергаться конкретными примерами и фактами, полученными в рамках другой науки. Например, представление об информации как о совокупности данных, повышающих уровень знаний об объективной реальности окружающего мира, характерное для естественных наук, может быть опровергнуто в рамках социальных наук. Нередки также случаи, когда исходные компоненты, составляющие понятие информации, подменяют свойствами информационных объектов, например, когда понятие информации вводят как совокупность данных, которые «могут быть усвоены и преобразованы в знания».
Для информатики как технической науки понятие информации не может основываться на таких антропоцентрических понятиях, как знание, и не может опираться только на объективность фактов и свидетельств. Средства вычислительной техники обладают способностью обрабатывать информацию автоматически, без участия человека, и ни о каком знании или незнании здесь речь идти не может. Эти средства могут работать с искусственной, абстрактной и даже с ложной информацией, не имеющей объективного отражения ни в природе, ни в обществе.
Поэтому мы даем новое определение информации, основанное на ранее продемонстрированном факте взаимодействия данных и методов в момент ее образования.
Информация – это продукт взаимодействия данных и адекватных им методов.
Мы рассмотрим пример, в свое время использованный Норбертом Винером для того, чтобы показать, как информация отдельных членов популяции становится информацией общества.
Допустим, я нахожусь в лесах вдвоем со смышленым дикарем, который не может говорить на моем языке и на языке которого я тоже не могу говорить. Даже без какого-либо условного языка знаков, известного нам обоим, я могу многое узнать от него. Мне нужно лишь быть особо внимательным в те моменты, когда он обнаруживает признаки волнения или интереса. Тогда я должен посмотреть вокруг, особенно в направлении его взгляда, и запомнить все, что я увижу и услышу. Не пройдет много времени, как я открою, какие предметы представляются важными для него, — не потому, что он сообщил мне о них словами, но потому, что я сам их заметил. Иначе говоря, сигнал, лишенный внутреннего содержания, может приобрести для моего спутника смысл по тому, что наблюдает он в данный момент, и может приобрести для меня смысл по тому, что наблюдаю я в данный момент. Способность дикаря замечать моменты моего особенно активного внимания сама по себе образует язык, возможности которого столь же разнообразны, как и диапазон впечатлений, доступных нам обоим. Н. Винер. Кибернетика
Анализируя этот пример, мы видим, что здесь речь идет о данных и методах. Прежде всего, здесь автор прямо говорит о целой группе методов, связанных с наблюдением и анализом, и даже приводит вариант конкретного алгоритма, адекватного рамкам его гипотетического эксперимента (посмотреть, запомнить, открыть...).
Рассмотрим данное выше определение информации и обратим внимание на следующие обстоятельства.
Динамический характер информации. Информация не является статичным объектом — она динамически меняется и существует только в момент взаимодействия данных и методов. Все прочее время она пребывает в состоянии данных. Таким образом, информация существует только в момент протекания информационного процесса. Все остальное время она содержится в виде данных.
Требование адекватности методов. Одни и те же данные могут в момент потребления поставлять разную информацию в зависимости от степени адекватности взаимодействующих с ними методов. Например, для человека, не владеющего китайским языком, письмо, полученное из Пекина, дает только ту информацию, которую можно получить методом наблюдения (количество страниц, цвет и сорт бумаги, наличие незнакомых символов и т. п.). Все это информация, но это не вся информация, заключенная в письме. Использование более адекватных методов даст иную информацию.
Диалектический характер взаимодействия данных и методов. Обратим внимание на то, что данные являются объективными, поскольку это результат регистрации объективно существовавших сигналов, вызванных изменениями в материальных телах или полях. В то же время, методы являются субъективными. В основе искусственных методов лежат алгоритмы (упорядоченные последовательности команд), составленные и подготовленные людьми (субъектами). В основе естественных методов лежат биологические свойства субъектов информационного процесса. Таким образом, информация возникает и существует в момент диалектического взаимодействия объективных данных и субъективных методов.
Свойства информации
Итак, информация является динамическим объектом, образующимся в момент взаимодействия объективных данных и субъективных методов. Как и всякий объект, она обладает свойствами (объекты различимы по своим свойствам). Характерной особенностью информации, отличающей ее от других объектов природы и общества, является отмеченный выше дуализм: на свойства информации влияют как свойства данных, составляющих ее содержательную часть, так и свойства методов, взаимодействующих с данными в ходе информационного процесса. По окончании процесса свойства информации переносятся на свойства новых данных, то есть свойства методов могут переходить на свойства данных.
Можно привести немало разнообразных свойств информации. Каждая научная дисциплина рассматривает те свойства, которые ей наиболее важны. С точки зрения информатики наиболее важными представляются следующие свойства: объективность, полнота, достоверность, адекватность, доступность и актуальность информации.
Объективность и субъективность информации. Понятие объективности информации является относительным. Это понятно, если учесть, что методы являются субъективными. Более объективной принято считать ту информацию, в которую методы вносят меньший субъективный элемент. Так, например, принято считать, что в результате наблюдения фотоснимка природного объекта или явления образуется более объективная информация, чем в результате наблюдения рисунка того же объекта, выполненного человеком. В ходе информационного процесса степень объективности информации всегда понижается. Это свойство учитывают, например, в правовых дисциплинах, где по-разному обрабатываются показания лиц, непосредственно наблюдавших события или получивших информацию косвенным путем (посредством умозаключений или со слов третьих лиц). В не меньшей степени объективность информации учитывают в исторических дисциплинах. Одни и те же события, зафиксированные в исторических документах разных стран и народов, выглядят совершенно по-разному. У историков имеются свои методы для тестирования объективности исторических данных и создания новых, более достоверных данных путем сопоставления, фильтрации и селекции исходных данных. Обратим внимание на то, что здесь речь идет не о повышении объективности данных, а о повышении их достоверности (это совсем другое свойство).
Полнота информации. Полнота информации во многом характеризует качество информации и определяет достаточность данных для принятия решений или для создания новых данных на основе имеющихся. Чем полнее данные, тем шире диапазон методов, которые можно использовать, тем проще подобрать метод, вносящий минимум погрешностей в ход информационного процесса.
Достоверность информации. Данные возникают в момент регистрации сигналов, но не все сигналы являются «полезными» – всегда присутствует какой-то уровень посторонних сигналов, в результате чего полезные данные сопровождаются определенным уровнем «информационного шума». Если полезный сигнал зарегистрирован более четко, чем посторонние сигналы, достоверность информации может быть более высокой. При увеличении уровня шумов достоверность информации снижается. В этом случае для передачи того же количества информации требуется использовать либо больше данных, либо более сложные методы.
Адекватность информации – это степень соответствия реальному объективному состоянию дела. Неадекватная информация может образовываться при создании новой информации на основе неполных или недостоверных данных. Однако и полные, и достоверные данные могут приводить к созданию неадекватной информации в случае применения к ним неадекватных методов.
Доступность информации – мера возможности получить ту или иную информацию. На степень доступности информации влияют одновременно как доступность данных, так и доступность адекватных методов для их интерпретации. Отсутствие доступа к данным или отсутствие адекватных методов обработки данных приводит к одинаковому результату: информация оказывается недоступной. Отсутствие адекватных методов для работы с данными во многих случаях приводит к применению неадекватных методов, в результате чего образуется неполная, неадекватная или недостоверная информация.
Актуальность информации – это степень соответствия информации текущему моменту времени. Нередко с актуальностью, как и с полнотой, связывают коммерческую ценность информации. Поскольку информационные процессы растянуты во времени, то достоверная и адекватная, но устаревшая информация может приводить к ошибочным решениям. Необходимость поиска (или разработки) адекватного метода для работы с данными может приводить к такой задержке в получении информации, что она становится неактуальной и ненужной. На этом, в частности, основаны многие современные системы шифрования данных с открытым ключом. Лица, не владеющие ключом (методом) для чтения данных, могут заняться поиском ключа, поскольку алгоритм его работы доступен, но продолжительность этого поиска столь велика, что за время работы информация теряет актуальность и, соответственно, связанную с ней практическую ценность.
Данные и операции с данными
Данные – диалектическая составная часть информации. Они представляют собой зарегистрированные сигналы. При этом физический метод регистрации может быть любым: механическое перемещение физических тел, изменение их формы или параметров качества поверхности, изменение электрических, магнитных, оптических характеристик, химического состава и (или) характера химических связей, изменение состояния электронной системы и многое другое.
В ходе информационного процесса данные преобразуются из одного вида в другой с помощью методов. Обработка данных включает в себя множество различных операций. По мере развития научно-технического прогресса и общего усложнения связей в человеческом обществе трудозатраты на обработку данных неуклонно возрастают. Прежде всего, это связано с постоянным усложнением условий управления производством и обществом. Второй фактор, также вызывающий общее увеличение объемов обрабатываемых данных, тоже связан с научно-техническим прогрессом, а именно с быстрыми темпами появления и внедрения новых носителей данных, средств их хранения и доставки.
В структуре возможных операций с данными можно выделить следующие основные:
• сбор данных – накопление информации с целью обеспечения достаточной полноты для принятия решений;
• формализация данных – приведение данных, поступающих из разных источников, к одинаковой форме, чтобы сделать их сопоставимыми между собой, то есть повысить их уровень доступности;
• фильтрация данных – отсеивание «лишних» данных, в которых нет необходимости для принятия решений; при этом должен уменьшаться уровень «шума», а достоверность и адекватность данных должны возрастать;
• сортировка данных – упорядочение данных по заданному признаку с целью удобства использования; повышает доступность информации;
• архивация данных – организация хранения данных в удобной и легкодоступной форме; служит для снижения экономических затрат по хранению данных и повышает общую надежность информационного процесса в целом;
• защита данных – комплекс мер, направленных на предотвращение утраты, воспроизведения и модификации данных;
• транспортировка данных – прием и передача (доставка и поставка) данных между удаленными участниками информационного процесса; при этом источник данных в информатике принято называть сервером, а потребителя — клиентом;
• преобразование данных – перевод данных из одной формы в другую или из одной структуры в другую. Преобразование данных часто связано с изменением типа носителя: например книги можно хранить в обычной бумажной форме, но можно использовать для этого и электронную форму, и микрофотопленку. Необходимость в многократном преобразовании данных возникает также при их транспортировке, особенно если она осуществляется средствами, не предназначенными для транспортировки данного вида данных. В качестве примера можно упомянуть, что для транспортировки цифровых потоков данных по каналам телефонных сетей (которые изначально были ориентированы только на передачу аналоговых сигналов в узком диапазоне частот) необходимо преобразование цифровых данных в некое подобие звуковых сигналов, чем и занимаются специальные устройства — телефонные модемы.
Методы представления информации – кодирование
Для автоматизации работы с данными, относящимися к различным типам, очень важно унифицировать их форму представления – для этого обычно используется прием кодирования, то есть выражение данных одного типа через данные другого типа. Естественные человеческие языки – это не что иное, как системы кодирования понятий для выражения мыслей посредством речи. К языкам близко примыкают азбуки (системы кодирования компонентов языка с помощью графических символов).
Та же проблема универсального средства кодирования достаточно успешно реализуется в отдельных отраслях техники, науки и культуры. В качестве примеров можно привести систему записи математических выражений, телеграфную азбуку, морскую флажковую азбуку, систему Брайля для слепых и многое другое.
Своя система существует и в вычислительной технике — она называется двоичным кодированием и основана на представлении данных последовательностью всего двух знаков: 0 и 1. Эти знаки называются двоичными цифрами, по-английски – binary digit или, сокращенно, bit (бит).
Одним битом могут быть выражены два понятия: 0 или 1 (да или нет, черное или белое, истина или ложь и т. п.). Если количество битов увеличить до двух, то уже можно выразить четыре различных понятия:
00, 01, 10, 11
Тремя битами можно закодировать восемь различных значений:
000, 001, 010, 011, 100, 101, 110, 111
Увеличивая на единицу количество разрядов в системе двоичного кодирования, мы увеличиваем в два раза количество значений, которое может быть выражено в данной системе, то есть общая формула имеет вид:
N=2m,
где N – количество независимых кодируемых значений; m – разрядность двоичного кодирования, принятая в данной системе.
Измерение информации
В содержательном подходе количество информации, заключенное в сообщении, определяется объемом знаний, который это сообщение несет получающему его человеку.
С «практической» точки зрения информация – это знания, которые мы получаем из внешнего мира. Количество информации, заключенное в сообщении, должно быть тем больше, чем больше оно пополняет наши знания.
За единицу измерения информации принимается 1 бит. Проблема измерения информации исследована в теории информации, основатель которой – Клод Шеннон.
В теории информации для бита дается следующее определение: Сообщение, уменьшающее неопределенность знания в два раза, несет 1 бит информации.
Поясним это определение на примерах.
Допустим, вы бросаете монету, загадывая, что выпадет: орел или решка. Есть всего два возможных результата бросания монеты. Причем ни один из этих результатов не имеет преимущества перед другим. В таком случае говорят, что они равновероятны. В случае с монетой перед ее подбрасыванием неопределенность знания о результате равна двум.
Игральный же кубик с шестью гранями может с равной вероятностью упасть на любую из них. Значит, неопределенность знания о результате бросания кубика равна шести.
Еще пример: спортсмены-лыжники перед забегом путем жеребьевки определяют свои порядковые номера на старте. Допустим, что имеется 100 участников соревнований, тогда неопределенность знания спортсмена о своем номере до жеребьевки равна 100.
Следовательно, можно сказать так: Неопределенность знания о результате некоторого события (бросание монеты или игрального кубика, вытаскивание жребия и др.) – это количество возможных результатов.
Вернемся к примеру с монетой. После того как вы бросили монету и посмотрели на нее, вы получили зрительное сообщение, что выпал, например, орел. Определился один из двух возможных результатов. Неопределенность знания уменьшилась в два раза: было два варианта, остался один. Значит, узнав результат бросания монеты, вы получили 1 бит информации.
Таким образом, сообщение об одном из двух равновероятных результатов некоторого события несет 1 бит информации.
Пусть в некотором сообщении содержатся сведения о том, что произошло одно из N равновероятных событий. Тогда количество информации i, содержащееся в сообщении о том, что произошло одно из N равновероятных событий, можно определить из формулы Хартли: N=2i. Данная формула является показательным уравнением относительно неизвестного i. Решение такого уравнения имеет вид: i=log2N – логарифм N по основанию 2.
Пример. При игре в кости используется кубик с шестью гранями. Сколько битов информации получает игрок при каждом бросании кубика? Решение: Выпадение каждой грани кубика равновероятно. Поэтому количество информации от одного результата бросания находится из уравнения: 2i=6. Поэтому результат равен log26 = 2,585.
Алфавитный (объемный) подход к измерению информации позволяет определить количество информации, заключенной в тексте, записанном с помощью некоторого алфавита. Если допустить, что все символы алфавита встречаются в тексте с одинаковой частотой (равновероятно), то количество информации, которое несет каждый символ, вычисляется по формуле Хартли: i=log2N, где N – мощность алфавита или количество символов в нем. Например, в 2-символьном алфавите каждый символ «весит» 1 бит информации (log22=1); в 4-символьном алфавите каждый символ несет 2 бита информации (log24=2); в 8-символьном – 3 бита (log28=3) и т.д.
Числовая информация и ее кодирование
Целые числа кодируются двоичным кодом достаточно просто – достаточно взять целое число и делить его пополам до тех пор, пока в остатке не образуется ноль или единица. Совокупность остатков от каждого деления, записанная справа налево вместе с последним остатком, и образует двоичный аналог десятичного числа.
19:2=9+1
9:2=4+1
4:2=2+0
2:2=1+0
1:2=0+1
Таким образом, 19₁₀ = 10011₂.
Для кодирования целых чисел от 0 до 255 достаточно иметь 8 разрядов двоичного кода (8 бит). Шестнадцать бит позволяют закодировать целые числа от 0 до 65 535, а 24 бита – уже более 16,5 млн разных значений.
Для кодирования действительных чисел с двойной точностью (double precision) используют 64-разрядное кодирование, т.е. для кодирования числа отводится 64 бита или 8 байтов. При этом число предварительно преобразуется в нормализованную форму:
1234567 = 0,1234567 · 10⁷.
Первая часть числа называется мантиссой, а вторая – характеристикой или порядком. В данном случае число 0,1234567 является мантиссой, а 7 – порядком числа. Большую часть из 64 бит отводят для хранения мантиссы (вместе со знаком) и некоторое фиксированное количество разрядов отводят для хранения порядка (тоже со знаком).
Текстовая информация и ее кодирование
Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию. Восьми двоичных разрядов достаточно для кодирования 256 различных символов. Этого хватит, чтобы выразить различными комбинациями восьми битов все символы английского и русского языков, как строчные, так и прописные, а также знаки препинания, символы основных арифметических действий и некоторые общепринятые специальные символы, например символ «§».
Технически это выглядит очень просто, однако всегда существовали достаточно веские организационные сложности. В первые годы развития вычислительной техники они были связаны с отсутствием необходимых стандартов, а в настоящее время вызваны, наоборот, изобилием одновременно действующих и противоречивых стандартов. Для того чтобы весь мир одинаково кодировал текстовые данные, нужны единые таблицы кодирования, а это пока невозможно из-за противоречий между символами национальных алфавитов, а также противоречий корпоративного характера.
Для английского языка, захватившего де-факто нишу международного средства общения, противоречия уже сняты. Институт стандартизации США (ANSI – American National Standard Institute) ввел в действие систему кодирования ASCII (American Standard Code for Information Interchange – стандартный код информационного обмена США). В системе ASCII закреплены две таблицы кодирования – базовая и расширенная. Базовая таблица закрепляет значения кодов от 0 до 127 (см. рис. 1.1), а расширенная относится к символам с номерами от 128 до 255.
Рис 1.1. Базовая таблица ASCII кодов
Первые 32 кода базовой таблицы, начиная с нулевого, отданы производителям аппаратных средств (в первую очередь производителям компьютеров и печатающих устройств). В этой области размещаются так называемые управляющие коды, которым не соответствуют никакие символы языков, и, соответственно, эти коды не выводятся ни на экран, ни на устройства печати, но ими можно управлять тем, как производится вывод прочих данных.
Начиная с кода 32 по код 127, размещены коды символов английского алфавита, знаков препинания, цифр, арифметических действий и некоторых вспомогательных символов. Код 32 соответствует пробелу.
Кодировка символов русского языка, известная как кодировка Windows-1251, была введена «извне» – компанией Microsoft, но, учитывая широкое распространение операционных систем и других продуктов этой компании в России, она глубоко закрепилась и нашла широкое распространение. Эта кодировка используется на большинстве локальных компьютеров, работающих на платформе Windows.
Если проанализировать организационные трудности, связанные с созданием единой системы кодирования текстовых данных, то можно прийти к выводу, что они вызваны ограниченным набором кодов (256). В то же время очевидно, что если, например, кодировать символы не восьмиразрядными двоичными числами, а числами с большим количеством разрядов, то и диапазон возможных значений кодов станет намного больше. Такая система, основанная на 16-разрядном кодировании символов, получила название универсальной – UNICODE. Шестнадцать разрядов позволяют обеспечить уникальные коды для 65536 различных символов – этого поля достаточно для размещения в одной таблице символов большинства языков планеты.
Несмотря на тривиальную очевидность такого подхода, простой механический переход на данную систему долгое время сдерживался из-за недостаточных ресурсов средств вычислительной техники (в системе кодирования UNICODE все текстовые документы автоматически становятся вдвое длиннее). Во второй половине 90-х годов технические средства достигли необходимого уровня обеспеченности ресурсами, и сегодня мы наблюдаем постепенный перевод документов и программных средств на универсальную систему кодирования. О широкой распространенности UNICODE говорит и тот факт, что более половины веб-сайтов в 2010 году используют эту систему кодирования.
Графическая информация и ее кодирование
Если рассмотреть с помощью увеличительного стекла черно-белое графическое изображение, напечатанное в газете или книге, то можно увидеть, что оно состоит из мельчайших точек, образующих характерный узор, называемый растром.
Поскольку линейные координаты и индивидуальные свойства каждой точки (яркость) можно выразить с помощью целых чисел, то можно сказать, что растровое кодирование позволяет использовать двоичный код для представления графических данных. Общепринятым на сегодняшний день считается представление черно-белых иллюстраций в виде комбинации точек с 256 градациями серого цвета, и, таким образом, для кодирования яркости любой точки обычно достаточно восьмиразрядного двоичного числа.
Для кодирования цветных графических изображений применяется принцип декомпозиции произвольного цвета на основные составляющие. В качестве таких составляющих используют три основных цвета: красный (Red, R), зеленый (Green, G) и синий (Blue, B). На практике считается (хотя теоретически это не совсем так), что любой цвет, видимый человеческим глазом, можно получить путем механического смешения этих трех основных цветов. Такая система кодирования называется системой RGB по первым буквам названий основных цветов.
Если для кодирования яркости каждой из основных составляющих использовать по 256 значений (восемь двоичных разрядов), как это принято для полутоновых черно-белых изображений, то на кодирование цвета одной точки надо затратить 24 разряда. При этом система кодирования обеспечивает однозначное определение 16,5 млн различных цветов, что на самом деле близко к чувствительности человеческого глаза. Режим представления цветной графики с использованием 24 двоичных разрядов называется полноцветным (True Color).
Каждому из основных цветов можно поставить в соответствие дополнительный цвет, то есть цвет, дополняющий основной цвет до белого. Нетрудно заметить, что для любого из основных цветов дополнительным будет цвет, образованный суммой пары остальных основных цветов. Соответственно, дополнительными цветами являются: голубой (Cyan, C), пурпурный (Magenta, M) и желтый (Yellow, Y). Принцип декомпозиции произвольного цвета на составляющие компоненты можно применять не только для основных цветов, но и для дополнительных, то есть любой цвет можно представить в виде суммы голубой, пурпурной и желтой составляющей. Такой метод кодирования цвета принят в полиграфии, но в полиграфии используется еще и четвертая краска – черная (Black, K). Поэтому данная система кодирования обозначается четырьмя буквами CMYK (черный цвет обозначается буквой К, потому что буква В уже занята синим цветом), и для представления цветной графики в этой системе надо иметь 32 двоичных разряда. Такой режим тоже называется полноцветным (True Color).
Если уменьшить количество двоичных разрядов, используемых для кодирования цвета каждой точки, то можно сократить объем данных, но при этом диапазон кодируемых цветов заметно сокращается. Кодирование цветной графики 16-разрядными двоичными числами называется режимом High Color.
При кодировании информации о цвете с помощью восьми бит данных можно передать только 256 цветовых оттенков. Такой метод кодирования цвета называется индексным. Смысл названия в том, что, поскольку 256 значений совершенно недостаточно, чтобы передать весь диапазон цветов, доступный человеческому глазу, код каждой точки растра выражает не цвет сам по себе, а только его номер (индекс) в некоей справочной таблице, называемой палитрой. Разумеется, эта палитра должна прикладываться к графическим данным — без нее нельзя воспользоваться методами воспроизведения информации на экране или бумаге.
Звуковая информация и ее кодирование
Приемы и методы работы со звуковой информацией пришли в вычислительную технику наиболее поздно. К тому же, в отличие от числовых, текстовых и графических данных, у звукозаписей не было столь же длительной и проверенной истории кодирования. В итоге методы кодирования звуковой информации двоичным кодом далеки от стандартизации. Множество отдельных компаний разработали свои корпоративные стандарты, но если говорить обобщенно, то можно выделить два основных направления.
Метод FM (Frequency Modulation) основан на том, что теоретически любой сложный звук можно разложить на последовательность простейших гармонических сигналов разных частот, каждый из которых представляет собой правильную синусоиду, а следовательно, может быть описан числовыми параметрами, то есть кодом. В природе звуковые сигналы имеют непрерывный спектр, то есть являются аналоговыми. Их разложение в гармонические ряды и представление в виде дискретных цифровых сигналов выполняют специальные устройства – аналогово-цифровые преобразователи (АЦП). Обратное преобразование для воспроизведения звука, закодированного числовым кодом, выполняют цифро-аналоговые преобразователи (ЦАП). При таких преобразованиях неизбежны потери информации, связанные с методом кодирования. Данный метод кодирования обеспечивает достаточно компактный код, и потому он нашел применение еще в те годы, когда ресурсы средств вычислительной техники были явно недостаточны. В наши дни качество цифрового звука находится на весьма высоком уровне, что открыло возможности для его повсеместного использования.
Метод таблично-волнового (Wave-Table) синтеза использует образцы звуков множества различных инструментов, которые хранятся в заранее подготовленных таблицах. В технике такие образцы называют сэмплами. Числовые коды выражают тип инструмента, номер его модели, высоту тона, продолжительность и интенсивность звука, динамику его изменения, некоторые параметры среды, в которой происходит звучание, а также прочие параметры, характеризующие особенности звука. Поскольку в качестве образцов используются «реальные» звуки, то качество звука, полученного в результате синтеза, получается очень высоким и приближается к качеству звучания реальных музыкальных инструментов.
Единицы представления данных
Существует множество систем представления данных. С одной из них, принятой в информатике и вычислительной технике, двоичным кодом, мы уже познакомились. Наименьшей единицей такого представления является бит (двоичный разряд).
Совокупность двоичных разрядов, выражающих числовые или иные данные, образует некий битовый рисунок. Практика показывает, что с битовым представлением удобнее работать, если этот рисунок имеет регулярную форму. В настоящее время в качестве таких форм используются группы из восьми битов, которые называются байтами.
Понятие о байте как группе взаимосвязанных битов появилось вместе с первыми образцами электронной вычислительной техники. Долгое время оно было машиннозависимым, то есть для разных вычислительных машин длина байта была разной. Только в конце 60-х годов понятие байта стало универсальным и машиннонезависимым.
Выше мы видели, что во многих случаях целесообразно использовать не восьмиразрядное кодирование, а 16-разрядное, 24-разрядное, 32-разрядное и более. Группа из 16 взаимосвязанных бит (двух взаимосвязанных байтов) в информатике называется словом. Соответственно, группы из четырех взаимосвязанных байтов (32 разряда) называются удвоенным словом, группы из восьми байтов (64 разряда) – учетверенным словом, группы из шестнадцати байтов (128 разрядов) – увосьмеренным словом. Пока, на сегодняшний день, такой системы обозначения достаточно.
Единицы измерения данных
Существует много различных систем и единиц измерения данных. Каждая научная дисциплина и каждая область человеческой деятельности может использовать свои, наиболее удобные или традиционно устоявшиеся единицы. В информатике для измерения данных используют тот факт, что разные типы данных имеют универсальное двоичное представление и потому вводят свои единицы данных, основанные на нем.
Наименьшей единицей измерения является байт. Поскольку одним байтом, как правило, кодируется один символ текстовой информации, то для текстовых документов размер в байтах соответствует лексическому объему в символах (пока исключение представляет рассмотренная выше универсальная кодировка UNICODE).
Более крупная единица измерения – килобайт (Кбайт). Условно можно считать, что 1 Кбайт примерно равен 1000 байт. Условность связана с тем, что для вычислительной техники, работающей с двоичными числами, более удобно представление чисел в виде степени двойки и потому на самом деле 1 Кбайт равен 210 байт (1024 байт). Однако всюду, где это не принципиально, с инженерной погрешностью (до 3%) «забывают» о «лишних» байтах.
В килобайтах измеряют сравнительно небольшие объемы данных. Условно можно считать, что одна страница неформатированного машинописного текста составляет около двух килобайт.
Более крупные единицы измерения данных образуются добавлением префиксов мега-, гига– тера-; в более крупных единицах пока нет практической надобности.
1 Мбайт = 1024 Кбайт = 1020 байт
1 Гбайт = 1024 Мбайт = 1030 байт
1 Тбайт = 1024 Гбайт = 1040 байт
Особо обратим внимание на то, что при переходе к более крупным единицам «инженерная» погрешность, связанная с округлением, накапливается и становится недопустимой, поэтому на старших единицах измерения округление производится реже.
Единицы хранения данных
В качестве единицы хранения данных принят объект переменной длины, называемый файлом. Файл – это последовательность произвольного числа байтов, обладающая уникальным собственным именем. Обычно в отдельном файле хранят данные, относящиеся к одному типу. В этом случае тип данных определяет тип файла.
Проще всего представить себе файл в виде безразмерного канцелярского досье, в которое можно по желанию добавлять содержимое или извлекать его оттуда. Поскольку в определении файла нет ограничений на размер, можно представить себе файл, имеющий 0 байт (пустой файл), и файл, имеющий любое число байтов.
В определении файла особое внимание уделяется имени. Оно фактически несет в себе адресные данные, без которых данные, хранящиеся в файле, не станут информацией из-за отсутствия метода доступа к ним.
Подведение итогов
Все процессы в природе сопровождаются сигналами. Зарегистрированные сигналы образуют данные. Данные преобразуются, транспортируются и потребляются с помощью методов. При взаимодействии данных и адекватных им методов образуется информация. Информация – это динамический объект, образующийся в ходе информационного процесса. Он отражает диалектическую связь между объективными данными и субъективными методами. Свойства информации зависят как от свойств данных, так и от свойств методов.
Данные различаются типами, что связано с различиями в физической природе сигналов, при регистрации которых образовались данные. В качестве средства хранения и транспортировки данных используются носители данных. Для удобства операций с данными их структурируют. Наиболее широко используются следующие структуры: линейная, табличная и иерархическая – они различаются методом адресации к данным. При сохранении данных образуются данные нового типа – адресные данные.
Вопросами систематизации приемов и методов создания, хранения, воспроизведения, обработки и передачи данных средствами вычислительной техники занимается техническая наука – информатика. С целью унификации приемов и методов работы с данными в вычислительной технике применяется универсальная система кодирования данных, называемая двоичным кодом. Элементарной единицей представления данных в двоичном коде является двоичный разряд (бит). Другой, более крупной единицей представления данных является байт.
Основной единицей хранения данных является файл. Файл представляет собой последовательность байтов, имеющую собственное имя. Совокупность файлов образует файловую структуру, которая, как правило, относится к иерархическому типу. Полный адрес файла в файловой структуре является уникальным и включает в себя собственное имя файла и путь доступа к нему.
Оглавление
2. Общие сведения об архитектуре ПК
Основные составные части ПК
Для персональных компьютеров обязательно наличие монитора и ряда других периферийных устройств. Устройство называется периферийным, если оно внешнее по отношению к системному блоку. К периферийным устройствам относятся монитор, клавиатура, мышь, принтер, сканер и другие.
Для персонального компьютера устройство называется внутренним, если оно находится внутри системного блока. В системном блоке ПК находятся:
• материнская (системная) плата,
• процессор,
• различная память (ОЗУ – оперативно запоминающее устройство или оперативная память, ПЗУ – жесткий диск),
• интерфейсы периферийных устройств и др.
Центральный процессор (ЦП; также центральное процессорное устройство – ЦПУ; англ. central processing unit, CPU, дословно – центральное обрабатывающее устройство) – электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (код программ), главная часть аппаратного обеспечения компьютера или программируемого логического контроллера. Иногда называют микропроцессором или просто процессором.
Ниже приведена схема системного блока:
Рис. 1.2. Схема системного блока
Организация памяти
Компьютерная память (устройство хранения информации, запоминающее устройство) – часть вычислительной машины, физическое устройство или среда для хранения данных, используемая в вычислениях, в течение определенного времени. Память, как и центральный процессор, является неизменной частью компьютера с 1940-х. В вычислительных устройствах она имеет иерархическую структуру и обычно предполагает использование нескольких запоминающих устройств, имеющих различные характеристики.
Рис. 1.3. Виды запоминающих устройств
Структурно-функциональная схема ПК
Исторически первой архитектурой вычислительных систем является принцип фон Неймана, который заключается в следующем:
• однородность памяти – данные и программный код хранятся в одной памяти (рис. 1.4);
• адресность – память состоит из пронумерованных ячеек, к каждой из которых имеется прямой доступ;
• программное управление – процессор исполняет команды, из которых состоит программа.
Рис. 1.4. Структурно-функциональная схема компьютера
Архитектура фон Неймана сыграла выдающуюся роль в создании компьютеров, но она имела ряд существенных недостатков: наличие узких мест – невозможность одновременного доступа к данным и коду, а также отсутствие защиты данных. Поэтому в современных компьютерах используются другие архитектуры компьютеров:
• CISC (от англ. complex instruction set computer – «компьютер с полным набором команд») – архитектура процессора с большим количеством команд;
• RISC (от англ. reduced instruction set computing) – архитектура с сокращенным набором команд;
• MISC (от англ. minimal instruction set computing) – архитектура с минимальным набором команд;
• VLIW (от англ. very long instruction word – «очень длинная машинная команда») – архитектура с длинной машинной командой, в которой указывается параллельность выполнения вычислений.
Многие современные процессоры, например, Intel и AMD являются гибридными (CISC + RISC). Кроме того, современные процессоры состоят из нескольких ядер и поддерживают параллельные вычисления.
Производительность компьютера
Тактовая частота – частота синхронизирующих импульсов синхронной электронной схемы, то есть количество синхронизирующих тактов, поступающих извне на вход схемы за одну секунду. Обычно термин употребляется применительно к компонентам компьютерных систем. В самом первом приближении тактовая частота характеризует производительность подсистемы (процессора, памяти и пр.), то есть количество выполняемых операций в секунду.
Вычислительная мощность компьютера – это количественная характеристика скорости выполнения определенных операций на компьютере. Чаще всего вычислительная мощность измеряется во флопсах (количество операций с плавающей запятой в секунду), а также производными от нее. На данный момент принято причислять к суперкомпьютерам системы с вычислительной мощностью более 10 терафлопсов (10*1012 или десять триллионов флопсов; для сравнения – среднестатистический современный настольный компьютер имеет производительность порядка 0.1 терафлопса).
Методы сбора, обмена, хранения и обработки информации
В современном мире появляется много информации, нуждающейся в предварительной обработке, которую человеку трудно сделать (например, математические вычисления).
Возможность хранения больших объемов информации и ее обработки, появление Интернета и Всемирной паутины (World Wide Web) делают информацию легко доступной каждому человеку на планете. В настоящее время информация, накопленная цивилизацией, активно переводится на электронные носители. Далее она с легкостью может циркулировать по глобальным сетям.
В последние десятилетия достижения человека во всех сферах его деятельности, в том числе в области науки и техники, обеспечиваются поиском, сбором, обменом, хранением и переработкой больших объемов информации. Передача и переработка информации осуществляется, прежде всего, на основных «информационных магистралях», объединяющих ключевые этапы профессиональной деятельности человека. В строительстве такими этапами профессиональной деятельности являются изыскание, проектирование, производство строительных материалов, конструкций, воздвижение и оборудование объекта, его эксплуатация, реконструкция, утилизация. Не менее важны потоки информации на тех информационных коммуникациях, на которых обеспечивается успешное и разумное достижение целей строительства: соответствие требованиям устойчивого развития общества и экологии, государственное и правовое регулирование, инвестиции и страхование, экономика и организация труда.
У человечества есть мощный, удачный инструмент целенаправленной, организованной работы с большими потоками информации – это компьютер. Поэтому сегодня информатизацию общества справедливо отождествляют с использованием компьютерной техники.
Для организованного хранения и передачи информации разрабатываются целесообразные правила и универсальные форматы. Они должны быть удобными и обеспечивать разрешенную доступность к любой информации в любой точке планеты и в любое время.
Информационное общество – концепция постиндустриального общества; новая историческая фаза развития цивилизации, в которой главными продуктами производства являются информация и знания. Это общество, в котором большинство работающих занято производством, хранением, переработкой и реализацией информации, особенно высшей ее формы – знаний.
Информационно-коммуникационные технологии (ИКТ) – совокупность методов, производственных процессов и программно-технических средств, интегрированных с целью сбора, обработки, хранения, распространения, отображения и использования информации в интересах ее пользователей.
Базы знаний
База знаний – организованная совокупность знаний, относящихся к какой-нибудь предметной области.
Знанием является проверенный практикой результат познания действительности. Иначе говоря, знание – это накопленные человечеством истины, факты, принципы и прочие объекты познания. Поэтому в отличие от базы данных, в базе знаний располагаются познаваемые сведения, содержащиеся в документах, книгах, статьях, отчетах.
Основная идея создания базы знаний состоит в том, чтобы взять опыт человека-эксперта в какой-либо области (строительства, мелиорации, водного хозяйства и т.д.) и, по возможности, с минимальными добавлениями, перенести его на более формальный язык представления знаний.
Итак, база знаний содержит структурированную информацию, покрывающую некоторую область знаний, для использования человеком с конкретной целью. Современные базы знаний работают совместно с системами поиска информации, имеют классификационную структуру и формат представления знаний.
Простые базы знаний могут использоваться для создания экспертных систем хранения данных в организации: документации, руководств, статей технического обеспечения. Главная цель создания таких баз – помочь менее опытным людям найти уже существующее описание способа решения какой-либо проблемы.
Информационная безопасность
Информационная безопасность – это защищенность информации и поддерживающей инфраструктуры от случайных или преднамеренных воздействий естественного или искусственного характера, чреватых нанесением ущерба владельцам или пользователям информации и поддерживающей инфраструктуры. Информационная безопасность не сводится исключительно к защите информации. Субъект информационных отношений может пострадать (понести убытки) не только от несанкционированного доступа, но и от поломки системы, вызвавшей перерыв в обслуживании клиентов. Более того, для многих открытых организаций (например, учебных) собственно защита информации не стоит на первом месте.
Под безопасностью информации понимается такое ее состояние, при котором исключается возможность просмотра, изменения или уничтожения информации лицами, не имеющими на это права, а также утечки информации за счет побочных электромагнитных излучений и наводок, специальных устройств перехвата (уничтожения) при передаче между объектами вычислительной техники.
Защита информации – это совокупность мероприятий, направленных на обеспечение конфиденциальности и целостности обрабатываемой информации, а также доступности информации для пользователей.
Конфиденциальность – сохранение в секрете критичной информации, доступ к которой ограничен узким кругом пользователей (отдельных лиц или организаций).
Целостность – свойство, при наличии которого информация сохраняет заранее определенные вид и качество.
Доступность – такое состояние информации, когда она находится в том виде, месте и времени, которые необходимы пользователю, и в то время, когда она ему необходима.
Цель защиты информации является сведение к минимуму потерь в управлении, вызванных нарушением целостности данных, их конфиденциальности или недоступности информации для потребителей.
Электронно-образовательные среды
Электронная информационно-образовательная среда образовательной организации включает электронные информационные ресурсы, электронные образовательные ресурсы, совокупность информационных технологий, телекоммуникационных технологий, соответствующих технологических средств и обеспечивает освоение обучающимися образовательных программ в полном объеме независимо от места нахождения обучающихся.
Электронная информационно-образовательная среда обеспечивает:
• доступ к учебным планам, рабочим программам дисциплин (модулей), практик
• доступ к изданиям электронных библиотечных систем и электронным образовательным ресурсам, указанным в рабочих программах
• фиксацию хода образовательного процесса, результатов промежуточной аттестации и результатов освоения программы
• проведение всех видов занятий, процедур оценки результатов обучения, реализация которых предусмотрена с применением электронного обучения, дистанционных образовательных технологий
• формирование электронного портфолио обучающегося, в том числе сохранение работ обучающегося, рецензий и оценок на эти работы со стороны любых участников образовательного процесса
• взаимодействие между участниками образовательного процесса, в том числе синхронное и (или) асинхронное взаимодействие посредством сети «Интернет».
Электронная информационно-образовательная среда должна обеспечивать проведение всех видов занятий, процедур оценки результатов обучения, реализация которых предусмотрена с применением электронного обучения.
Процесс разработки электронной информационно-образовательной среды МГСУ пока не завершен. Частью ЭИОС МГСУ является давно функционирующий образовательный портал для студентов, обучающихся в Институте дистанционного образования (ИДО). Доступ на этот портал осуществляется по ссылке https://cito.mgsu.ru/. Среди новшеств ЭИОС МГСУ можно отметить создание личного кабинета студента и личного кабинета работника. Личный кабинет работника можно найти по ссылке http://mgsu.ru/employees/. Здесь также можно ознакомиться с расписанием того или иного преподавателя. Теперь используя личный кабинет работника, преподаватель может руководить курсовой работой/курсовым проектом студента, что включает в себя задание темы проекта, прием работ в виде файлов, полученных от студента, консультации по выполнению работы, ответы на вопросы, оценивание результатов работы. Также преподаватель может отправить письмо студенту или другому преподавателю, используя корпоративную электронную почту. Адрес электронной почты преподавателя формируется следующим образом: фамилияинициалы@mgsu.ru, например, преподаватель Иванов Аркадий Борисович будет иметь следующий почтовый адрес: ivanovab@mgsu.ru.
Личный кабинет студента функционирует следующим образом. Для входа в личный кабинет студента необходимо ввести свое имя и пароль. Имя и пароль присылаются студенту из деканата, т.е. студент не может сам зарегистрироваться.
Личный кабинет студента включает в себя личные данные студента: ФИО, телефон, email, фото. Помимо этого личный кабинет студента имеет несколько разделов. В разделе Информационные сообщения публикуется информация от деканата. Это может быть оповещение о проведении какого-то мероприятия и изменении расписания. В разделе Обо мне находятся данные студента: статус, форма обучения, направление подготовки.
В разделе Информация о договорах можно найти информацию о договорах между студентом и МГСУ и об их оплате. В разделе Посещаемость фиксируется время прихода и ухода студента из здания МГСУ. Это время определяется по кампусным картам. В разделе Индивидуальные достижения студент может внести данные о своих достижениях (грамоты, дипломы, сертификаты и т.п.). Следующий раздел называется Анкетирование и служит, в частности, для оценивания работы преподавателей. Последний раздел называется Курсовые проекты и работы. Именно в этом разделе студент может присылать свои файлы с курсовым проектом или работой, а также консультироваться с руководителем проекта – преподавателем.
Алгоритмические конструкции. Модели
На всех этих этапах работы с информацией используются не только технические, аппаратные средства, но и математические, в том числе алгоритмические конструкции. Но наиболее наукоемким, максимально ориентированным на математический арсенал является этап обработки (переработки) информации. Введем определение понятия модели.
Модель – это образ или отражение какого-либо процесса или явления, полученное с помощью специальных средств.
Средства моделирования классифицируются на: математические, технические, компьютерные и т. д. Заменяя в определении модели специальные средства на соответствующий тип, получим определение соответствующей модели.
Математическая модель – это образ или отражение какого-либо процесса или явления с помощью математических средств. Математическое моделирование – это процесс получения математической модели.
Виды моделей взаимосвязаны между собой. К примеру, компьютерная модель не обходится без математической модели. Целенаправленную переработку информации об объекте отождествляют с процедурой формирования и "испытания" его математической модели, или с математическим моделированием. На этом этапе главным образом формулируются и решаются математические задачи. Академик АН СССР А.А. Самарский в свое время назвал этап переработки информации «интеллектуальным ядром» современных информационных технологий, в котором математическое моделирование играет роль наукоемкого фильтра, преобразующего «информационное сырье в готовый продукт, т.е. в точное знание».
Для формирования информационного образа знаний и фактов, сведений, данных об окружающей нас действительности, создаются их информационные модели. При формировании информационной модели важно различать определяющие и несущественные характеристики объекта, окружающие его факторы, влияющие, слабо влияющие или вообще не влияющие на его конкретное рассматриваемое проявление. Отвлечение от несущественных деталей принято называть абстрагированием. Абстрагирование является одним из важнейших инструментов при построении модели в какой-либо предметной области. Конечно, при абстрагировании осуществляется определенное искажение картины реальной действительности. Однако концентрация внимания на наиболее важных аспектах, атрибутах позволяет выявить определенные свойства, закономерности и, следовательно, понять сущность изучаемого объекта, явления.
Адекватная модель – это модель, достаточно верно отражающая важнейшие особенности реальных объектов или явлений; она позволяет спрогнозировать поведение объекта в той или иной ситуации, описать процесс развития явления во времени, вовремя получить и использовать нужную информацию. Построение модели является наиболее важным, наиболее сложным и наиболее творческим этапом при изучении и передаче информации о любых объектах или явлениях. Разработка и использование модели с пользой требует объединенных усилий высококвалифицированных специалистов в конкретной предметной области и специалистов в области математики и информатики.
Понятие алгоритма
Алгоритм – это определенный набор операций, позволяющий получить результат. Собственно решение задачи в этом случае представляет собой реализацию определенного алгоритма. Построение алгоритма представляет весьма сложный творческий процесс, на который иногда затрачивается длительное время. Искушенные люди отождествляют создание алгоритмов с искусством, различают и ценят удачные алгоритмические приемы и разработки.
Важным средством записи алгоритмов являются алгоритмические языки. Дело в том, что компьютер воспринимает и исполняет только алгоритмы, заданные в виде свойственных ему двоичных, машинных кодов. Однако, этот естественный для компьютеров, обладающий всеми необходимыми свойствами способ задания алгоритмов неоправданно очень сложен для использования человеком, не являющимся профессионалом в области компьютерной техники. Поэтому в информатике применяется ряд специальных способов и приемов записи алгоритмов, которые приводят нас к новому понятию – алгоритмическим языкам.
Алгоритмический языком называют средства, позволяющие описать тот или иной алгоритм. На данный момент в мире существует не один десяток алгоритмических языков и их число увеличивается. В зависимости от признака, существует несколько вариантов классификации алгоритмических языков. Компьютерной программой называют запись алгоритма на одном из алгоритмических языков.
Наличие алгоритма формализует процесс решения задачи, исключает рассуждение исполнителя. Использование алгоритма дает возможность решать задачу формально, механически исполняя команды алгоритма в указанной последовательности. Целесообразность предусматриваемых алгоритмом действий обеспечивается точным анализом со стороны того, кто составляет алгоритм.
Оглавление
3. Прикладное программное обеспечение для решения практических и инженерных задач
Информационные процессы в строительстве и их осуществление с помощью технических и программных средств
Информационные технологии играют очень важную роль в жизни современного общества. Они затрагивают все отрасли жизнедеятельности человека. С помощью информационных технологий повышается профессионализм и квалифицированность сотрудников. На сегодняшний день невозможно представить наше общество без информационных технологий. Они пришли даже в такую консервативную отрасль экономики, как строительство. Передовые строительные компании уже понимают, какую пользу могут принести инвестиции в это направление.
Строительные компании стремятся использовать IP-телефонию, которая позволяет обеспечивать удаленные площадки телефонной связью. Канал связи также можно организовать посредством технологий Wi-Fi и сетей сотовой подвижной связи четвертого поколения 4G LTE, 4.5G LTE Advanced. Мобильная связь 4G LTE делает возможной скорость передачи данных до 100 Мбит/с, а с технологией LTE Advanced устройства достигают скорости до 1 Гбит/с. Мобильная связь пятого поколения 5G находится на стадии тестирования. Также можно установить радиовышки, задействовать спутниковую связь или протянуть оптический кабель, но это дорого, и имеет смысл, только если объект рассчитан на долгий срок строительства. С помощью Интернета можно объединить все удаленные площадки посредством VPN с АТС в центральном офисе и обеспечить их внутренними номерами, что позволит звонить коллегам по внутренней связи бесплатно, а это сэкономит расходы на связь. Помимо IP-телефонии, в строительном бизнесе стали использовать видеоконференцсвязь, позволяющую сократить затраты на командировки. Видеоконференцсвязь помогает организовать деловое общение между сотрудниками компании без необходимости их личного присутствия в офисе. Необходимым инструментом является и электронная почта. Строительный бизнес нуждается в быстром обмене информацией между сотрудниками. Например, генеральному директору нужно назначить встречи и совещания или разослать своим сотрудникам важные сообщения. Для этого используется синхронизация электронной почты, календарей и контактов на мобильных устройствах посредством Microsoft Exchange. Вся важная бизнес-информация хранится на сервере, который производит резервное копирование. При потере телефона сотрудник компании не лишится всех своих контактов. Вся записная книжка и встречи быстро загружаются в новый смартфон.
Таким образом, можно отметить, что современная строительная площадка представляет собой мини-офис, требующий высокого уровня ИТ-обслуживания. После оснащения площадки на нее периодически выезжают ИТ-администраторы, или организуются службы технической поддержки, специалисты которых могут прийти на помощь удаленно, по звонку.
В строительной отрасли все больше появляется сотрудников, умеющих работать с различным программным продуктами, такими как AutoCAD, Microsoft Project. В области взаимодействия с заказчиками и партнерами в России появились проектные банки, т.е. интернет-платформы, с помощью которых можно обмениваться чертежами. Сначала их размещают в Интернете, а затем обмен идет непосредственно ссылками. В проектном банке есть дополнительная возможность – это распечатки любого чертежа. Также российские строительные компании начали участвовать и в электронных тендерах, которые значительно экономят средства и делают процесс торгов прозрачным.
На Западе эти продукты распространены уже давно, в России же считается, что перечисленные информационные технологии используются только продвинутыми компаниями. Для того чтобы преодолеть отставание от зарубежных стран в области внедрения информационных технологий Минстрой РФ приступил к внедрению технологии информационного моделирования зданий (BIM – Building Information Modeling) в области промышленного и гражданского строительства. В Великобритании, например, уже с 2016 года применение BIM-технологий – обязательное требование для госзаказа. В США разработана специальная нормативная база, поддерживающая применение BIM. Активно пропагандируют внедрение информационного моделирования Финляндия, Норвегия, Нидерланды, Дания, Германия, Франция, Южная Корея, Сингапур, Гонконг. Во всех этих странах действует определенная госпрограмма: на уровне государства либо на уровне отдельных министерств, отдельных крупных государственных заказчиков.
BIM – процесс информационного моделирования объекта. Применение информационной модели здания существенно облегчает работу с объектом. В отличие от традиционных систем компьютерного проектирования, создающих геометрические образы, результатом BIM моделирования здания является цифровая модель как объекта, так и процесса его строительства. Обычно работа по созданию информационной модели здания ведется как бы в два этапа. Сначала разрабатываются первичные элементы проектирования: окна, двери, плиты перекрытий, лифты и многое другое, что имеет непосредственное отношение к зданию, но производится вне рамок стройплощадки и при возведении объекта не делится на части. Затем происходит моделирование того, что создается на стройплощадке. Это фундаменты, стены, крыши, навесные фасады и т.п. Построенная специалистами информационная модель проектируемого объекта становится основой и используется для создания рабочей документации, разработки и изготовления строительных конструкций и деталей, комплектации объекта, заказа и монтажа технологического оборудования, экономических расчетов, организации возведения самого здания, а также решения вопросов последующей эксплуатации. Информационная модель существует в течение всего срока существования здания. Содержащаяся в ней информация может изменяться, дополняться, заменяться в зависимости от текущего состояния здания. Такой подход в проектировании, когда объект рассматривается не только в пространстве, но и во времени, то есть «3D плюс время», часто называют 4D, а «4D плюс информацию» принято обозначать уже 5D. Технология BIM помогает достичь высокой скорости и качества строительства, а также сэкономить бюджетные средства. Например, при создании сложнейшего по форме и внутреннему оснащению нового корпуса Музея искусств в американском городе Денвере для организации взаимодействия субподрядчиков при проектировании и возведении каркаса здания (металл и железобетон) и разработке и монтаже сантехнических и электрических систем была использована специально разработанная для этого объекта информационная модель. Применение BIM сократило срок строительства на 14 месяцев и привело к экономии примерно 400 тысяч долларов при сметной стоимости объекта в 70 миллионов долларов. В России применение технологии информационного моделирования при проектировании и строительстве АЭС позволило снизить стоимость объекта на 1,687 миллиарда рублей: 1 миллиард рублей был сэкономлен за счет сокращения сроков строительства на 5 месяцев, а еще 687 миллионов рублей – за счет оптимизации организационно-технологических решений. При этом затраты организации на разработку информационной модели объекта составили 18 миллионов. Примером использования BIM технологии в Санкт-Петербурге является сцена Мариинского театра.
Главным достижением BIM технологии является – возможность добиться практически полного соответствия эксплуатационных характеристик нового здания требованиям заказчика. Это происходит за счет того, что технология BIM позволяет воссоздать объект со всеми конструкциями, материалами, инженерным оснащением и отладить на виртуальной модели основные проектные решения. Другими способами такая проверка проектных решений на правильность не осуществима, если только просто построить макет здания в натуральную величину. До использования BIM технологии правильность проектных расчетов проверялась на созданном объекте, когда исправить что-либо было уже невозможно. Таким образом, технология BIM – это виртуальная копия здания, в которую можно внести неограниченное количество «уточнений».
Несмотря на то, что BIM технологии приводят к значительной экономии средств, исключению ошибок при проектировании, сокращению затраченного на проект времени, возможности внести коррективы на любом этапе строительства, большого интереса к BIM в строительных компаниях пока нет. Поэтому Минстрой предполагает вложить значительные средства в развитие BIM-проектирования и обучение персонала. Планируется, что BIM-технологии должны пронизывать весь процесс: от проектировщика до рабочего. Также планируется перевести всю проектную документацию по госзаказам на BIM, и тогда в другом формате проекты просто не будут приниматься на экспертизу. Максимально упростить переход на информационное моделирование в строительстве предполагается при помощи интеграции национальной платформы BIM c интегрированной автоматизированной информационной системой обеспечения градостроительной деятельности (ИСОГД).
К новейшему использованию информационных технологий относится и использование 3D принтера в строительстве. Первое в мире здание офиса, созданное при помощи 3D-печати появилось в Дубае в этом году. Проект обошелся на 50% дешевле, чем традиционное строительство аналогичного здания. Здание находится в центре города и получило название «Офис будущего». В нем расположится временная штаб-квартира Дубайского фонда будущего – организации, которая и инициировала данный проект.
Площадь одноэтажного здания составляет около 250 кв. м. С целью обеспечения устойчивости конструкции крышу сделали округленной. Здание полностью пригодно для работы людей: в нем есть электричество, телекоммуникации, водоснабжение и кондиционирование воздуха. Для создания постройки использовался 3D-принтер высотой 6 м, длиной 37 м и шириной 12 м. При строительстве использовались специальная цементная смесь и материалы, разработанные и произведенные в ОАЭ и США. Испытания на надежность стройматериалов проводились в Китае и Великобритании. Создание конструкции заняло 17 дней, еще два ушло на оформление офиса внутри. Стратегия развития Дубая предполагает, что к 2030 году 25% зданий в ОАЭ будет создано с помощью 3D-принтера.
Таким образом, можно отметить, что изменения в мировой строительной индустрии происходят стремительно. В связи с этим Агентство стратегических инициатив и Московская школа управления «Сколково» издали «Атлас новых профессий», в котором специалисты постарались предугадать, какими навыками должны будут обладать работники, чтобы состояться на рынке труда, в том числе и в сфере строительства. Авторы «Атласа» считают самыми перспективными профессии, связанные с цифровыми технологиями. Это проектирование и подготовка производства с помощью современных компьютерных программ, оснащение квартир «умными» технологиями, а также удаленное управление строительством. Большим плюсом таких работников станет владение программированием, умение управлять роботами, экологическое и творческое мышление. По мнению авторов исследования, уже до 2020 года такими незаменимыми работниками станут:
• Специалист по перестройке и усилению старых строительных конструкций, который будет оценивать, насколько обветшало здание, и искать новые решения, с помощью каких современных технологий его можно восстановить;
• Специалист по модернизации строительных технологий – тот, кто может использовать новые материалы при реконструкции зданий, применять современные решения при проектировании всех коммуникаций внутри дома;
• Прораб-вотчер – специалист, который будет способен оценивать, как идет строительство, и исправлять недостатки процесса, фактически не выходя из офиса, применяя цифровые технологии;
• BIM (Building Information Modeling)-менеджер-проектировщик – эта профессия востребована уже сейчас;
• Проектировщик доступной среды – обустраивает пространство с учетом возможностей детей, пенсионеров и людей с ограниченными возможностями;
• Экоаналитик в строительстве – анализирует строящийся объект с точки зрения его влияния на окружающую среду, консультирует компании для выбора наименее вредных по воздействию на окружающую среду решений.
После 2020 года возможно появятся еще две профессии: проектировщик 3D-печати в строительстве и архитектор «энергонулевых» домов, который будет проектировать энергетически автономные дома за счет использования энергоэффективных материалов.
Для того чтобы вышеперечисленные профессии заполнили рынок в ближайшие годы, необходима и перестройка российских технических вузов, и инвестиции в строительную отрасль, и пересмотр нормативной базы. Уже сейчас в университетах появилась такая специальность, как «применение информационных технологий в строительстве», которая готовит будущих специалистов в этой области.
Введение в электронные таблицы
Для представления данных в удобном виде используют таблицы. Компьютер позволяет представлять их в электронной форме, а это дает возможность не только отображать, но и обрабатывать данные. Класс программ, используемых для этой цели, называется электронными таблицами. Особенность электронных таблиц заключается в возможности применения формул для описания связи между значениями различных ячеек. Расчет по заданным формулам выполняется автоматически. Изменение содержимого какой-либо ячейки приводит к пересчету значений всех ячеек, которые с ней связаны формульными отношениями, и тем самым к обновлению всей таблицы в соответствии с изменившимися данными.
Применение электронных таблиц упрощает работу с данными и позволяет получать результаты без проведения расчетов вручную или специального программирования. Наиболее широкое применение электронные таблицы нашли в экономических и бухгалтерских расчетах, но и в инженерных задачах электронные таблицы можно использовать эффективно, например, для:
• проведения однотипных расчетов над большими наборами данных;
• автоматизации итоговых вычислений;
• решения задач путем подбора значений параметров, табулирования формул;
• обработки результатов экспериментов;
• проведения поиска оптимальных значений параметров;
• подготовки табличных документов;
• построения диаграмм и графиков по имеющимся данным.
Одним из наиболее распространенных средств работы с документами, имеющими табличную структуру, является программа Microsoft Excel.
Основные понятия электронных таблиц
Программа Microsoft Excel предназначена для работы с таблицами данных, преимущественно числовых. При формировании таблицы выполняют ввод, редактирование и форматирование текстовых и числовых данных, а также формул. Наличие средств автоматизации облегчает эти операции. Созданная таблица может быть выведена на печать.
Интерфейс
Интерфейс программы Excel содержит ленту с вкладками Главная, Вставка, Разметка страницы, Формулы, Данные, Рецензирование, Вид, Надстройки, Team.
Рис. 2.1. Лента программы Excel
Пользователь может добавлять свои вкладки на ленту. Для этого щелкните где-нибудь на ленте правой кнопкой мыши и выберете Настройка панели быстрого доступа.
Рабочая книга и рабочий лист. Строки, столбцы, ячейки
Документ Excel называется рабочей книгой. Рабочая книга представляет собой набор рабочих листов, каждый из которых имеет табличную структуру и может содержать одну или несколько таблиц. В окне документа в программе Excel отображается только текущий рабочий лист, с которым и ведется работа. Каждый рабочий лист имеет название, которое отображается на ярлычке листа, отображаемом в его нижней части. С помощью ярлычков можно переключаться к другим рабочим листам, входящим в ту же самую рабочую книгу. Чтобы переименовать рабочий лист, надо дважды щелкнуть на его ярлычке. На рисунке текущий лист имеет имя Лист3 (рис. 2.2).
Рис. 2.2. Рабочие листы программы Excel
Рабочий лист состоит из строк и столбцов. Столбцы озаглавлены прописными латинскими буквами A, B, C, … и, далее, двухбуквенными комбинациями AA, AB, AC,.... В ранних версиях программы, до Microsoft Excel 2007, рабочий лист мог содержать до 256 столбцов и до 65 536 строк. В современных версиях программы действуют ограничения на 1 048 576 строк и 16 384 столбцов. Нумерация столбцов начинается с А, строки нумеруются с 1.
Ячейки и их адресация. На пересечении столбцов и строк образуются ячейки таблицы. Они являются минимальными элементами для хранения данных. Обозначение отдельной ячейки сочетает в себе номера столбца и строки (в этом порядке), на пересечении которых она расположена, например: A1 или DE234. Обозначение ячейки (ее номер) выполняет функции ее адреса. Адреса ячеек используются при записи формул, определяющих взаимосвязь между значениями, расположенными в разных ячейках.
Одна из ячеек всегда является активной и выделяется рамкой активной ячейки (рис. 2.3). На рисунке активной является ячейка D4. Эта рамка в программе Excel играет роль курсора. Операции ввода и редактирования всегда производятся в активной ячейке. Переместить рамку активной ячейки можно с помощью курсорных клавиш или указателя мыши.
Рис. 2.3. Активная ячейка D4
Диапазон ячеек. На данные, расположенные в соседних ячейках, можно ссылаться в формулах как на единое целое. Такую группу ячеек называют диапазоном. Наиболее часто используют прямоугольные диапазоны, образующиеся на пересечении группы последовательно идущих строк и группы последовательно идущих столбцов. Диапазон ячеек обозначают, указывая через двоеточие номера ячеек, расположенных в противоположных углах прямоугольника, например: A1:D4.
Рис. 2.4. Выделенный диапазон A1:D4
Если требуется выделить прямоугольный диапазон ячеек, это можно сделать протягиванием указателя от одной угловой ячейки до противоположной по диагонали. Рамка текущей ячейки при этом расширяется, охватывая весь выбранный диапазон. Чтобы выбрать столбец или строку целиком, следует щелкнуть на заголовке столбца (строки). Протягиванием указателя по заголовкам можно выбрать несколько идущих подряд столбцов или строк.
Ввод, редактирование и форматирование данных
Отдельная ячейка может содержать данные, относящиеся к одному из трех типов: текст, число или формула, а также оставаться пустой. Программа Excel при сохранении рабочей книги записывает в файл только прямоугольную область рабочих листов, примыкающую к левому верхнему углу (ячейка A1) и содержащую все заполненные ячейки.
Тип данных, размещаемых в ячейке, определяется автоматически при вводе. Если эти данные можно интерпретировать как число, программа Excel так и делает. В противном случае данные рассматриваются как текст. Ввод формулы всегда начинается с символа «=» (знака равенства).
Ввод текста и чисел. Ввод данных осуществляют непосредственно в текущую ячейку или в строку формул, располагающуюся в верхней части окна программы под лентой.
Рис. 2.5. Ввод формулы в ячейку B2
Место ввода отмечается текстовым курсором. Если начать ввод нажатием алфавитно-цифровых клавиш, данные из текущей ячейки заменяются вводимым текстом. Если щелкнуть на строке формул или дважды на текущей ячейке, старое содержимое ячейки не удаляется и появляется возможность его редактирования. Вводимые данные в любом случае отображаются как в ячейке, так и в строке формул. В данном примере мы вводим формулу для вычисления .
Чтобы завершить ввод, сохранив введенные данные, используют кнопку Ввод в строке формул или клавишу ENTER. Чтобы отменить внесенные изменения и восстановить прежнее значение ячейки, используют кнопку Отмена в строке формул или клавишу ESC. Для очистки текущей ячейки или выделенного диапазона проще всего использовать клавишу DELETE.
Форматирование содержимого ячеек. Текстовые данные по умолчанию выравниваются по левому краю ячейки, а числа — по правому. Чтобы изменить формат отображения данных в текущей ячейке или выбранном диапазоне, используют команды вкладки ленты Главная, а также окно Формат ячеек, которое можно вызвать из контекстного меню выделенного диапазона ячеек командой Формат ячеек. Вкладки этого диалогового окна позволяют выбирать формат записи данных (количество знаков после запятой, указание денежной единицы, способ записи даты и пр.), задавать направление текста и метод его выравнивания, определять шрифт и начертание символов, управлять отображением и видом рамок, задавать фоновый цвет.
Например, введем в ячейке B2 число 4500. Обратите внимание, что при вводе это число было выровнено по правому краю. Теперь установим для этого числа денежный формат (сумма в рублях). Вызовем контекстное меню для этой ячейки и далее команду Формат ячеек.
Рис. 2.6. Изменение формата ячейки
В открывшемся диалоговом окне установим числовой формат как денежный и уменьшим количество отображаемых знаков после десятичной точки от 2 до 0. Далее можно нажать OK.
Рис. 2.7. Диалоговое окно «Формат ячеек»
Число теперь отображено в денежном формате.
Рис. 2.8. Отображение ячейки с денежным форматом
Приведем пример форматов, в которых можно вводить даты.
Рис. 2.9. Отображение ячейки в формате «дата»
Обратите внимание, что в первом случае дата воспринимается как число, так как она выровнена по правому краю, а во втором случае дата воспринимается как текст, так как она выровнена по левому краю.
Введем число 0,8 в ячейку B1. Обратите внимание на то, что целая часть числа отделяется от дробной части числа запятой.
Рис. 2.10. Отображение ячейки в формате «процентный»
Введем в ячейку D1 это же число, но затем поменяем формат числа на процентный. Значение поменяется на 80%.
Содержание электронной таблицы
Формулы
Вычисления в таблицах программы Excel осуществляются при помощи формул. Формула может содержать числовые константы, ссылки на ячейки и функции Excel, соединенные знаками математических операций. Скобки позволяют изменять стандартный порядок выполнения действий. Если ячейка содержит формулу, то в рабочем листе отображается текущий результат вычисления этой формулы. Если сделать ячейку текущей, то сама формула отображается в строке формул. Ввод формулы всегда начинается с символа «=» (знака равенства).
Рис. 2.11. Ввод формулы в ячейку B2
В данном примере мы вычисляем , что равно 17,3.
Правило использования формул в программе Excel состоит в том, что, если значение ячейки действительно зависит от других ячеек таблицы, всегда следует использовать формулу, даже если операцию легко можно выполнить в «уме». Это гарантирует, что последующее редактирование таблицы не нарушит ее целостности и правильности производимых в ней вычислений.
Ссылки на ячейки
Формула может содержать ссылки, то есть адреса ячеек, содержимое которых используется в вычислениях. Это означает, что результат вычисления формулы зависит от числа, находящегося в другой ячейке. Ячейка, содержащая формулу, таким образом, является зависимой. Значение, отображаемое в ячейке с формулой, пересчитывается при изменении значения ячейки, на которую указывает ссылка.
Ссылку на ячейку можно задать разными способами. Во-первых, адрес ячейки можно ввести вручную. Другой способ состоит в щелчке на нужной ячейке или выборе диапазона, адрес которого требуется ввести. Ячейка или диапазон при этом выделяются пунктирной рамкой.
Рис. 2.12. Ввод формулы, имеющей ссылку на другую ячейку
В данном примере мы в ячейку B2 вводим ссылку на ячейку A1. Вместо того чтобы явно вводить A1, мы щелкаем на самой ячейке A1 и она выделяется пунктирной рамкой.
Для редактирования формулы следует дважды щелкнуть на соответствующей ячейке. При этом ячейки (диапазоны), от которых зависит значение формулы, выделяются на рабочем листе синими рамками, а сами ссылки отображаются в ячейке и в строке формул тем же цветом. Это облегчает редактирование и проверку правильности формул. В данном примере в ячейке B2 введена формула A2^(1/3), что позволяет вычислить корень третьей степени из числа, записанного в ячейку A2.
Рис. 2.13. Редактирование формулы
Абсолютные и относительные ссылки
По умолчанию ссылки на ячейки в формулах рассматриваются как относительные. Это означает, что при копировании формулы адреса в ссылках автоматически изменяются в соответствии с относительным расположением исходной ячейки и создаваемой копии.
Пусть, например, в ячейке В2 имеется ссылка на ячейку А3. В относительном представлении можно сказать, что ссылка указывает на ячейку, которая располагается на один столбец левее и на одну строку ниже данной.
Рис. 2.14. Относительная ссылка на ячейку A3
Если формула будет скопирована в другую ячейку, то такое относительное указание ссылки сохранится. Например, при копировании формулы в ячейку C2 ссылка будет продолжать указывать на ячейку, располагающуюся левее и ниже, в данном случае на ячейку B3. В ячейке C2 будет располагаться значение .
Рис. 2.15. Копирование формулы с относительной ссылкой
При абсолютной адресации адреса ссылок при копировании не изменяются, так что ячейка, на которую указывает ссылка, рассматривается как нетабличная. Для изменения способа адресации при редактировании формулы надо выделить ссылку на ячейку и нажать клавишу F4. Элементы номера ячейки, использующие абсолютную адресацию, предваряются символом $. Например, при последовательных нажатиях клавиши F4 номер ячейки A1 будет записываться как A1, $A$1, A$1 и $A1. В случае задания A$1 номер столбца A будет относительным, а номер строки 1 будет абсолютным, так как перед 1 поставлен знак $. В случае задания $A1 номер столбца A будет абсолютным, а номер строки 1 будет относительным. В случае задания $A$1 и номер строки ячейки, и номер столбца будут абсолютными.
В данном примере в ячейке B2 записана абсолютная ссылка на ячейку A3. Поэтому при копировании этой формулы в ячейку С2 значение функции не поменяется (оно останется равным –0,7568), так как ссылка на ячейку A3 абсолютная.
Рис. 2.16. Копирование формулы с абсолютной ссылкой
Копирование содержимого ячеек
Копирование и перемещение ячеек в программе Excel можно осуществлять методом перетаскивания или через буфер обмена. При работе с небольшим числом ячеек удобно использовать первый метод, при работе с большими диапазонами – второй. Обращаем внимание на то, что можно копировать не только данные, но и формулы, записанные внутри ячеек.
Метод перетаскивания. Чтобы методом перетаскивания скопировать текущую ячейку (выделенный диапазон) вместе с содержимым, следует навести указатель мыши на правый нижний угол ячейки (маркер заполнения) и перетащить ячейку в соседние ячейки.
Чтобы переместить текущую ячейку (выделенный диапазон) вместе с содержимым, следует навести указатель мыши на рамку текущей ячейки (он примет вид четырех стрелок, пересекающихся под прямым углом). Теперь ячейку можно перетащить в любое место рабочего листа (точка вставки помечается всплывающей подсказкой).
Для выбора способа выполнения этой операции, а также для более надежного контроля над ней рекомендуется использовать специальное перетаскивание с помощью правой кнопки мыши. В этом случае при отпускании кнопки мыши появляется специальное меню, в котором можно выбрать конкретную выполняемую операцию: Переместить, Копировать и т.д. В данном примере число 3 из ячейки C1 перетаскивается с помощью правой кнопки мыши в ячейку B3.
Рис. 2.17. Перетаскивание/копирование содержимого ячейки с помощью правой кнопки мыши, нажатой на рамке ячейки
Выделение диапазона. Для копирования группы ячеек или помещения ее в буфер обмена необходимо уметь выделять диапазон ячеек. Выделить диапазон ячеек можно несколькими способами. Предположим, мы хотим выделить диапазон ячеек A1:C8.
Самый простой способ – это выбрать сначала ячейку A1, далее нажать левую кнопку мыши внутри ячейки A1 и, не отпуская мышь, переместить мышь вправо и вниз (или вниз и вправо), пока не будет выделен весь диапазон.
Более сложные способы подходят для больших диапазонов. Выберем сначала ячейку A1. Затем надо перейти на ячейку C8 при нажатой клавише Shift. Третий способ – самый продвинутый. Выберем сначала ячейку A1. Удерживая нажатыми клавиши Shift и Ctrl, надо нажать клавишу стрелка вниз, при этом будет выделен весь первый столбец данного диапазона. Далее, продолжая удерживать нажатыми клавиши Shift и Ctrl, надо нажать на клавишу стрелка вправо для выделения всего диапазона. Естественно, в последнем способе можно поменять последовательность выделения: сначала выделить всю первую строку диапазона (нажать стрелка вправо), а затем продолжить выделение вниз (нажать стрелка вниз).
Применение буфера обмена. Передача информации через буфер обмена имеет в программе Excel определенные особенности, связанные со сложностью контроля над этой операцией. Вначале необходимо выделить копируемый (вырезаемый) диапазон и дать команду на его помещение в буфер обмена: Главная→Буфер обмена→Копировать или Главная→Буфер обмена→Вырезать.
Рис. 2.18. Помещение содержимого ячейки в буфер обмена
В данном примере число 3 из ячейки C1 помещается в буфер обмена. Вставка данных в рабочий лист возможна лишь немедленно после их помещения в буфер обмена. Попытка выполнить любую другую операцию приводит к отмене начатого процесса копирования или перемещения. Однако утраты данных не происходит, поскольку «вырезанные» данные удаляются из места их исходного размещения только в момент выполнения вставки.
Место вставки определяется путем указания ячейки, соответствующей верхнему левому углу диапазона, помещенного в буфер обмена, или путем выделения диапазона, который по размерам в точности равен копируемому (перемещаемому). Вставка выполняется командой Главная→Буфер обмена→Вставить.
Рис. 2.19. Вставка из буфера обмена
Для управления способом вставки можно использовать команду Главная→Буфер обмена→Вставить→Специальная вставка. В этом случае правила вставки данных из буфера обмена задаются в открывшемся диалоговом окне. Для копирования, вырезания, вставки и специальной вставки можно пользоваться, помимо вышеописанных команд, командами контекстного меню ячеек. Напомним, что контекстное меню ячейки или диапазона ячеек можно вызвать нажатием правой кнопки мыши.
Автоматизация ввода
Так как таблицы часто содержат повторяющиеся или однотипные данные, программа Excel содержит средства автоматизации ввода. К числу предоставляемых средств относятся: автозавершение, автозаполнение числами и автозаполнение формулами.
Автозавершение. Для автоматизации ввода текстовых данных используется метод автозавершения. Его применяют при вводе в ячейки одного столбца рабочего листа текстовых строк, среди которых есть повторяющиеся. В ходе ввода текстовых данных в очередную ячейку программа Excel проверяет соответствие введенных символов строкам, имеющемся в этом столбце выше. Если обнаружено однозначное совпадение, введенный текст автоматически дополняется. Нажатие клавиши ENTER подтверждает операцию автозавершения, в противном случае ввод можно продолжать, не обращая внимания на предлагаемый вариант.
Рис. 2.20. Автозавершение слова «Новогиреево»
В приведенном примере для заполнения ячейки B3 можно использовать автозавершение, так как слово Новогиреево уже было введено в ячейке B2.
Можно прервать работу средства автозавершения, оставив в столбце пустую ячейку. И наоборот, чтобы использовать возможности средства автозавершения, заполненные ячейки должны идти подряд, без промежутков между ними.
Автозаполнение числами. При работе с числами используется метод автозаполнения. В правом нижнем углу рамки текущей ячейки имеется черный квадратик — маркер заполнения. При наведении на него указатель мыши (он обычно имеет вид толстого белого креста) приобретает форму тонкого черного крестика. Перетаскивание маркера заполнения рассматривается как операция «размножения» содержимого ячейки в горизонтальном или вертикальном направлении.
Если ячейка содержит число (в том числе дату, денежную сумму), то при перетаскивании маркера происходит копирование ячеек или их заполнение арифметической прогрессией. Для выбора способа автозаполнения следует производить специальное перетаскивание с использованием правой кнопки мыши (вызова контекстного меню).
Пусть, например, ячейка A1 содержит число 1. Наведите указатель мыши на маркер заполнения, нажмите правую кнопку мыши и перетащите маркер заполнения так, чтобы рамка охватила ячейки A1, В1 и С1, и отпустите кнопку мыши. Если теперь выбрать в открывшемся меню пункт Копировать ячейки, все ячейки будут содержать число 1. Если же выбрать пункт Заполнить, то в ячейках окажутся числа 1, 2 и 3.
Рис. 2.21. Заполнение/копирование с помощью правой кнопки мыши, нажатой на маркере заполнения
Чтобы точно сформулировать условия заполнения ячеек, следует дать команду Главная→Редактирование→Заполнить→Прогрессия. В открывшемся диалоговом окне Прогрессия выбирается тип прогрессии, величина шага и предельное значение.
Рис. 2.22. Диалоговое окно «Прогрессия»
В данном примере в диалоговом окне мы выбрали шаг арифметической прогрессии равным 0,1 и предельное значение прогрессии 2.
После щелчка на кнопке ОК программа Excel автоматически заполняет ячейки в соответствии с заданными правилами.
Рис. 2.23. Получившаяся прогрессия
Автозаполнение формулами. Эта операция выполняется так же, как автозаполнение числами. Ее особенность заключается в необходимости копирования ссылок на другие ячейки. В ходе автозаполнения во внимание принимается характер ссылок в формуле: относительные ссылки изменяются в соответствии с относительным расположением копии и оригинала, абсолютные остаются без изменений.
Для примера предположим, что значения в третьем столбце рабочего листа (столбце С) вычисляются как суммы значений в соответствующих ячейках столбцов A и B. Введем в ячейку С1 формулу =A1+B1. Теперь скопируем эту формулу методом автозаполнения во все ячейки третьего столбца таблицы. Благодаря относительной адресации формула будет правильной для всех ячеек данного столбца.
Рис. 2.24. Копирование формулы методом автозаполнения
В табл. 2.1 приведены правила обновления ссылок при автозаполнении вдоль строки или вдоль столбца.
Таблица 2.1.
Правила обновления ссылок при автозаполнении
Ссылка в исходной ячейке
Ссылка в следующей ячейке
При заполнении вправо
При заполнении вниз
A1 (относительная)
B1
A2
$A1 (абсолютная по столбцу)
$A1
$A2
A$1 (абсолютная по строке)
B$1
A$1
$A$1 (абсолютная)
$A$1
$A$1
Использование стандартных функций
Стандартные функции используются в программе Excel только в формулах. Вызов функции состоит в указании в формуле имени функции, после которого в скобках указывается список параметров. Отдельные параметры (аргументы функции) разделяются в списке точкой с запятой. В качестве параметра может использоваться число, адрес ячейки или произвольное выражение, для вычисления которого также могут использоваться функции.
В режиме ввода формулы в левой части строки формул, где раньше располагался номер текущей ячейки, появляется раскрывающийся список функций. Он содержит десять функций, которые использовались последними, а также пункт Другие функции.
Использование мастера функций. При выборе пункта Другие функции запускается Мастер функций, облегчающий выбор нужной функции.
Рис. 2.25. Мастер функций
В раскрывающемся списке Категория выбирается категория, к которой относится функция (если определить категорию затруднительно, используют пункт Полный алфавитный перечень), а в списке Выберите функцию — конкретная функция данной категории. После щелчка на кнопке ОК имя функции заносится в строку формул вместе со скобками, ограничивающими список параметров. Текстовый курсор устанавливается между этими скобками. Вызвать Мастер функций можно и проще, щелчком на кнопке Вставка функции в строке формул.
Аргументы функции. Как только имя функции выбрано, на экране появляется диалоговое окно Аргументы функции. Это окно, в частности, содержит значение, которое получится, если немедленно закончить ввод формулы.
Рис. 2.26. Диалоговое окно «Аргументы функции»
Все диалоговые окна программы Excel, которые требуют указания номеров или диапазонов ячеек, содержат кнопки, присоединенные к соответствующим полям. При щелчке на такой кнопке диалоговое окно сворачивается до минимально возможного размера, что облегчает выбор нужной ячейки (диапазона) с помощью щелчка или протягивания.
Рис. 2.27. Сворачивание диалогового окна «Аргументы функции» для последующего выбора диапазона
В данном примере мы выбираем диапазон A1:A7 для последующего подсчета суммы этих чисел с помощью функции СУММ().
Применение электронных таблиц для расчетов
В научно-технической деятельности программу Excel трудно рассматривать как основной вычислительный инструмент. Однако ее удобно применять в тех случаях, когда требуется быстрая обработка больших объемов данных. Она полезна для выполнения таких операций, как статистическая обработка и анализ данных, решение задач оптимизации, построение диаграмм и графиков. Для такого рода задач применяют как основные средства программы Excel, так и дополнительные (надстройки).
Итоговые вычисления и статистические функции
Итоговые вычисления предполагают получение числовых характеристик, описывающих определенный набор данных в целом. Например, возможно вычисление суммы значений, входящих в набор, среднего значения и других статистических характеристик, количества или доли элементов набора, удовлетворяющих определенным условиям. Проведение итоговых вычислений в программе Excel выполняется при помощи встроенных функций. Особенность использования таких итоговых функций состоит в том, что при их задании программа пытается «угадать», в каких ячейках заключен обрабатываемый набор данных, и задать параметры функции автоматически.
В качестве параметра итоговой функции обычно задается некоторый диапазон ячеек, размер которого определяется автоматически. Выбранный диапазон рассматривается как отдельный параметр («массив»), и в вычислениях используются все ячейки, составляющие его.
Суммирование. Для итоговых вычислений применяют ограниченный набор функций, наиболее типичной из которых является функция суммирования (СУММ). Доступ к этой и к некоторым другим функциям можно получить непосредственно с вкладки Главная (Главная→Редактирование→Автосумма).
Рис. 2.28. Доступ к итоговым функциям на вкладке Главная→Редактирование
Диапазон суммирования, выбираемый автоматически, включает ячейки с данными, расположенные над текущей ячейкой (предпочтительнее) или слева от нее и образующие непрерывный блок. При неоднозначности выбора используется диапазон, непосредственно примыкающий к текущей ячейке. Автоматический подбор диапазона не исключает возможности редактирования формулы. Можно переопределить диапазон, который был выбран автоматически, а также задать дополнительные параметры функции.
Функции для итоговых вычислений. Прочие функции для итоговых вычислений могут быть либо выбраны из того же меню, что и функция суммирования, либо введены обычным образом. Все эти функции относятся к категории Статистические. В их число входят функции ДИСП (вычисляет дисперсию), МАКС (максимальное число в диапазоне), СРЗНАЧ (среднее арифметическое значение чисел диапазона), СЧЁТ (подсчитывает количество числовых значений в наборе данных) и др. Функции, предназначенные для выполнения итоговых вычислений, часто применяют при использовании таблицы Excel в качестве базы данных, а именно на фоне фильтрации записей или при создании сводных таблиц.
Рассмотрим примеры. С помощью статистической функции СЧЁТЕСЛИ можно подсчитать количество ячеек, отвечающих определенному условию. Два обязательных аргумента этой функции разделяются точкой с запятой. Например, формула =СЧЁТЕСЛИ(В2:B5;”>55”) находит количество ячеек со значением больше 55 в ячейках B2–B5, =СЧЁТЕСЛИ(В2:B5;”<>45”) находит количество ячеек со значением не равным 45, =СЧЁТЕСЛИ(A2:A5;"*") находит количество ячеек, которые содержат любой текст. Подстановочный знак "*" обозначает любое количество любых символов. Формула =СЧЁТЕСЛИ(С1:С5;"?????ов") вычисляет количество ячеек, строка в которых содержит ровно 7 знаков и заканчивается буквами "ов", в диапазоне С1–С5. Подставочный знак "?" обозначает отдельный символ.
Рис. 2.29. Применение функции СЧЁТЕСЛИ
Аналогично используется функция СУММЕСЛИ. Здесь мы подсчитываем сумму элементов, удовлетворяющих определенному условию. Например команда =СУММЕСЛИ(A1:A7;">0") подсчитывает сумму положительных элементов, входящих в диапазон A1:A7.
Использование надстроек
Надстройки – это специальные средства, расширяющие возможности программы Excel. На практике именно надстройки делают программу Excel удобной для использования в научно-технической работе. Хотя эти средства считаются внешними, дополнительными, доступ к ним осуществляется при помощи обычных команд вкладок ленты (обычно через вкладки Формулы или Данные).
Вот основные надстройки, поставляемые вместе с программой Excel.
Пакет анализа. Обеспечивает дополнительные возможности анализа наборов данных. Выбор конкретного метода анализа осуществляется в диалоговом окне Анализ данных, которое открывается командой Данные→Анализ→Анализ данных.
Поиск решения. Эта надстройка используется для решения задач оптимизации. Ячейки, для которых подбираются оптимальные значения и задаются ограничения, выбираются в диалоговом окне Параметры поиска решения, которое открывают при помощи команды Данные→Анализ→Поиск решения.
Рис. 2.30. Надстройки «Анализ данных» и «Поиск решения» в группе Анализ
Анализ данных будет доступен только после подключения соответствующей надстройки. Подключить или отключить надстройки можно с помощью команд диалогового окна Файл→Параметры→Надстройки. Далее, перейдя в Управление, мы должны выбрать необходимые нам надстройки.
Рис. 2.31. Подключение надстроек
Подключение надстроек увеличивает нагрузку на вычислительную систему, поэтому обычно рекомендуют подключать только те надстройки, которые реально используются.
Построение диаграмм и графиков
В программе Excel термин «диаграмма» используется для обозначения всех видов графического представления числовых данных. Построение графического изображения производится на основе ряда данных. Так называют группу ячеек с данными в пределах отдельной строки или столбца. На одной диаграмме можно отображать несколько рядов данных (рис. 2.32).
Рис. 2.32. Пример таблицы с данными
Диаграмма представляет собой вставной объект, внедренный на один из листов рабочей книги. Она может располагаться на том же листе, на котором находятся данные, или на любом другом листе (часто для отображения диаграммы отводят отдельный лист). Диаграмма сохраняет связь с данными, на основе которых она построена, и при обновлении этих данных немедленно изменяет свой вид.
Для построения диаграммы обычно используют окно Вставка диаграммы, запускаемое командой Вставка→Диаграммы→Создать диаграмму. Элементы управления для создания отдельных видов диаграмм доступны в группе Вставка→Диаграммы.
Часто удобно заранее выделить область, содержащую данные, которые будут отображаться на диаграмме, но задать эту информацию можно и после вставки диаграммы.
Выбор типа диаграммы
При использовании окна Вставка диаграммы выбор ее типа осуществляется именно в этом окне.
Рис. 2.33. Диалоговое окно «Вставка диаграммы»
При использовании кнопок быстрой вставки диаграмм выбор осуществляется при вставке, без вывода отдельного окна.
Рис. 2.34. Имеющиеся диаграммы на вкладке Вставка в группе Диаграммы
Выберем тип диаграммы График→График с маркерами. Если до этого данные не были выбраны, то после выбора типа диаграммы появится пустая диаграмма.
Выбор данных
Если диапазон данных был выбран заранее, то в книгу будет добавлена диаграмма, визуализирующая выбранные данные. Если же данные выбраны не были, их можно задать командой контекстного меню (пустой) диаграммы Выбрать данные.
Рис. 2.35. Выбор данных для построения диаграммы при помощи контекстного меню
Кроме того, после выбора типа диаграммы задать набор данных для нее можно командой Конструктор→Данные→Выбрать данные. При выборе данных для диаграммы появляется окно Выбор источника данных.
Рис. 2.36. Выбор данных для построения диаграммы в диалоговом окне «Выбор источника данных»
Далее мышкой можно выделить необходимый диапазон (для данного примера A1:D6). Окно Выбор источника данных после выделения диапазона данных тут же изменит свой вид и заполнится рядами, которые войдут в диаграмму:
Рис. 2.37. Окно «Выбор источника данных», заполненное рядами данных
Справа будут отображаться значения по горизонтальной оси графика (в данном случае это месяцы). Наш график с маркерами будет выглядеть таким образом:
Рис. 2.38. Пример диаграммы типа «График с маркерами»
Если данные не образуют единой группы, то информацию для отрисовки отдельных рядов данных задают, добавляя новые ряды в поле Элементы легенды (ряды).
Вот как будет выглядеть диаграмма типа Гистограмма с группировкой для этого же набора данных:
Рис. 2.39. Пример диаграммы типа «Гистограмма с группировкой» с группировкой по месяцам
Предположим теперь, что мы хотим изобразить на горизонтальной оси не месяцы, а типы расходов (питание, одежда и транспорт). Для этого мы можем для данной диаграммы вызвать команду Конструктор→Данные→Строка/Столбец, которая поменяет параметр, по которому группируются данные с колонки A на строчку 1.
Рис. 2.40. Пример работы с конструктором диаграммы: перемена группировки с помощью кнопки Строка↔Столбец
В результате гистограмма будет выглядеть таким образом:
Рис. 2.41. Пример диаграммы типа «Гистограмма с группировкой» с группировкой по типам расходов
Оформление диаграммы
Вставленную диаграмму можно изменить. Она состоит из набора отдельных элементов, таких как сами графики (ряды данных), оси координат, заголовок диаграммы, область построения и пр. При щелчке на элементе диаграммы он выделяется маркерами, а при наведении на него указателя мыши — описывается всплывающей подсказкой.
Иногда для акцентирования внимания на определенных данных графика используют подписи данных. Добавим подписи данных для месяца Март (зеленый цвет). Щелкнем по зеленому столбцу данных в поле диаграммы, вызовем контекстное меню и далее выберем Добавить подписи данных. Данные за март месяц отобразятся на диаграмме:
Рис. 2.42. Подписи данных для марта
Оформление диаграммы можно изменить, используя контекстное меню диаграммы и ее элементов, а также вкладки группы Работа с диаграммами.
При настройке оформления диаграммы обычно задаются:
• название диаграммы, подписи осей (вкладка Макет→Подписи);
• отображение и маркировка осей координат (вкладка Макет→Оси→Оси);
• отображение сетки линий, параллельных осям координат (вкладка Макет→Оси→Сетка);
• описание построенных графиков (вкладка Макет→Подписи→Легенда);
• отображение надписей, соответствующих отдельным элементам данных на графике (вкладка Макет→Подписи→Подписи данных);
• представление данных, использованных при построении графика, в виде таблицы (вкладка Макет→Подписи→Таблица данных).
Чтобы удалить диаграмму, можно удалить рабочий лист, на котором она расположена (команда Удалить в контекстном меню листа), или выбрать диаграмму, внедренную в рабочий лист с данными, и нажать клавишу DELETE.
Сортировка
Сортировка данных в программе Excel возможна по одному столбцу или по нескольким столбцам.
Рис. 2.43. Таблица с данными для сортировки
Сортировка по одному столбцу
Чтобы отсортировать по одной колонке (например, Фамилия), надо выполнить следующие шаги. Выделите любую ячейку, в той колонке, которую вы хотите отсортировать. Чтобы отсортировать данные в порядке возрастания, на вкладке Данные найдите группу Сортировка и Фильтр и щелкните на значке АЯ. В результате вся таблица будет отсортирована. Чтобы отсортировать данные таблицы в порядке убывания данных, щелкните на значке ЯА.
В результате сортировки по возрастанию получим таблицу:
Рис. 2.44. Таблица с данными после сортировки по столбцу «Фамилия»
Сортировка по нескольким столбцам
Чтобы отсортировать таблицу по нескольким столбцам, надо выполнить следующие шаги. На вкладке Данные найдите группу Сортировка и Фильтр и далее выберите Сортировка. Появится диалоговое окно сортировки.
Рис. 2.45. Сортировка с помощью диалогового окна «Сортировка»
Из выпадающего меню выберите имя первого столбца, по которому нужно осуществить сортировку (в данном примере: по фамилии). Чтобы добавить сортировку по второму столбцу, щелкните на кнопке Добавить уровень (ряд). Во второй строчке выберите из выпадающего окна имя второго столбца, по которому нужно выполнить сортировку (в данном примере: продажи). Выйдите из диалогового окна сортировки, нажав кнопку OK.
Рис. 2.46. Добавление второго столбца, по которому будет производиться сортировка, в диалоговом окне «Сортировка»
Записи таблицы теперь отсортированы по первому столбцу (фамилия) и по второму столбцу (продажи).
Рис. 2.47. Данные таблицы, отсортированные по двум столбцам «Фамилия» и «Продажи»
Фильтрация данных
Фильтрацию данных используют, если необходимо отобразить записи, которые удовлетворяют некоторому критерию.
Выберите любую ячейку в том диапазоне данных, который нужно отфильтровать. На вкладке Данные в группе Сортировка и Фильтр выберите Фильтр (в виде воронки). На первой строчке таблицы появятся небольшие вкладки со стрелками. Щелкните на стрелке в колонке с названием Страна (третья колонка).
Рис. 2.48. Результат выбора фильтра (воронки) на вкладке Данные в группе Сортировка и Фильтр
Щелкните теперь на флажке Выделить все, чтобы очистить все флажки от галочек, а затем включите флажок (поставьте галочку) около названия страны Россия.
Рис. 2.49. Установка фильтра по стране Россия
Щелкните OK. Как мы видим, сейчас таблица отображает данные только по стране Россия.
Рис. 2.50. Таблица после установки фильтра по стране Россия
Теперь в получившейся таблице щелкните на стрелке в колонке Квартал. Опять очистите (отключите) все флажки, а затем включите флажок, который находится около Кварт 1. Нажмите OK.
Рис. 2.51. Установка фильтра по кварталу Кв. 1
Теперь программа нам отображает данные по продажам в стране Россия, которые были осуществлены в 1-м квартале.
Рис. 2.52. Таблица после установки двух фильтров по стране Россия и по кварталу Кв. 1
Чтобы убрать фильтр, на вкладке Данные в группе Сортировка и Фильтр, выберете Очистить. Чтобы убрать и фильтр, и стрелки, нажмите Фильтр в группе Сортировка и Фильтр.
Простейшие базы данных
Простейшая база данных состоит из одной таблицы. Строчки в этой таблице называются записями, а столбцы называются полями.
При работе с простейшими базами данными можно успешно использовать некоторые функции программы Excel. При работе с базами данных важно уметь делать запросы. Рассмотрим пример такого запроса.
Рассмотрим пример таблицы, записанной в диапазоне E4:G7. Заметим, что в первой колонке этой таблицы стоят идентификаторы компьютеров или ключи (в терминологии теории баз данных). В ячейке A2 запишем ключ, который нас интересует 104.
Для этого диапазона данных применим функцию ВПР (вертикальный просмотр) из ячейки B2. Вызовем эту функцию с такими аргументами ВПР(A2; $E$4:$G$7;3). Первый аргумент этой функции это ключ, который мы ищем в данной таблице. Он записан в ячейке A2. Вторым аргументом функции ВПР является рассматриваемый диапазон данных $E$4:$G$7. Здесь удобнее задавать абсолютные ссылки. В качестве третьего аргумента мы указываем номер столбца в таблице, в котором содержится интересующая нас информация. В данном случае нас интересует данные, записанные в третьем столбце таблицы: Продукт. Четвертый аргумент функции ВПР необязательный. Он показывает, что должно быть выведено, если результаты запроса окажутся пустыми. В результате выполнения функции ВПР в ячейке B2 появится продукт Принтер.
Рис. 2.53. Поиск в таблице с помощью функции ВПР
Далее перетащим результаты поиска из ячейки B2 вниз до ячейки B5. Когда мы выполняем перетаскивание этой формулы, абсолютная ссылка $E$4:$G$7 не меняется, но относительная ссылка A2 меняется на A3, A4, и т.д.
Рис. 2.54. Копирование результатов поиска, выполненного с помощью функции ВПР
Презентации и принципы их создания
Работа с макетами и образцами слайдов
При открытии программы PowerPoint появляется пустая презентация с одним слайдом, содержащим два текстовых контейнера для заполнения. Исполнив теперь команду Главная→Слайды→Макет, мы можем убедиться в том, что первый слайд презентации имеет макет с названием Титульный слайд.
Рис. 2.55. Макеты слайдов на вкладке Главная
Здесь же мы видим, что существуют другие варианты макетов слайдов, например, Рисунок с подписью, Заголовок и объект, Пустой слайд.
Для создания нового слайда щелкнем на кнопке Главная→Слайды→Создать слайд. По умолчанию будет создан новый слайд с макетом Заголовок и объект. Поменяем макет нового слайда на Пустой слайд. При этом мы увидим, что все текстовые контейнеры с этого слайда исчезли. В соответствии с названием этого макета он не содержит никаких контейнеров.
Вставим в нашу презентацию еще один пустой слайд.
Далее мы будем работать с Образцом слайдов. Образец слайдов содержит всю информацию о теме и дизайне наших слайдов в презентации. Это информация включает в себя, например, цвет фона, шрифт, размеры и расположение контейнеров, а также других объектов, которые будут появляться на каждом слайде вашей презентации. Каждая новая презентация уже имеет свой образец, установленный по умолчанию. Вы можете внести изменения в этот образец и эти изменения будут применены к каждому слайду вашей презентации. Это позволит нам сократить время на подготовку презентации, так как мы можем теперь делать изменения стиля презентации только один раз – в Образце слайдов – и эти изменения будут отражены на каждом слайде данного макета.
Остановимся на слайде 2, который сейчас имеет макет Пустой слайд. Сделаем стилевые изменения в этом макете с помощью Образца слайдов. Выбрав слайд 2, далее перейдем на вкладку Вид и далее выберем Образец слайдов.
Рис. 2.56. Вход в Образец слайдов с помощью кнопки Образец слайдов на вкладке Вид
После нажатия на кнопку Образец слайдов мы входим в режим редактирования образца. Обратите внимание на то, что в этом режиме слева от вкладки Главная, появляется вкладка Образец Слайдов.
Рис. 2.57. Режим Образец слайдов для пустого слайда
Теперь мы можем вносить изменения в стиль нашего слайда. В данном случае мы можем поместить на образец тот дизайн, который мог бы появиться на каждом слайде, входящем в макет Пустой образец. Например, сделаем такие изменения. Изменим параметр Стиль фона и установим его как стиль 2 (по умолчанию, был выбран бесцветный стиль). Параметр Стиль фона может быть найден на вкладке Образец слайдов, в группе Фон. После выбора стиля 2 мы увидим, что фон образца слайда был окрашен в светло-коричневый цвет. Выйдем теперь из редактирования образца слайдов, нажав на красную кнопку Закрыть режим образца.
Рис. 2.58. Закрытие режима образца
После выхода из режима образца мы увидим, что цвет фона поменялся не только на слайде 2, но и на слайде 3, который имел тот же макет Пустой образец. Теперь, поняв принцип работы с образцом слайдов, мы внесем еще изменения в стиле слайдов 2 и 3 с макетом Пустой образец. Зайдем опять в Вид→Образец слайдов. В нижних колонтитулах слайда найдем дату и выберем для даты более крупный шрифт. Аналогично, поменяем формат шрифта для номера страницы. В среднем нижнем колонтитуле запишем крупными буквами Москва – МГСУ. Сравним то, что было, с тем, что мы получили после изменения формата:
Рис. 2.59. Пример редактирования образца слайдов
Выйдем из образца слайдов, нажав на кнопку Закрыть режим образца. Мы увидим, что изображение на слайдах 2 и 3 не поменялось, несмотря на то, что мы сделали изменения в образце. Для того чтобы отобразить колонтитулы, нам нужно включить их отображение на слайдах. По умолчанию отображение колонтитулов выключено.
Перейдем на вкладку Вставка, далее перейдем в группу Текст и в этой группе найдем Колонтитулы. Появится диалоговое окно Колонтитулы.
Рис. 2.60. Настройка диалогового окна Колонтитулы
Щелкнем теперь по всем флажкам, так как нам нужно показать дату, номер слайда, нижний колонтитул, и мы не хотим отображать колонтитулы на титульном листе. Далее нажнем на кнопке Применить ко всем, что сделает эти настройки активными для все слайдов презентации. В результате мы получим желаемое изображение слайдов 2 и 3.
Рис. 2.61. Отображение слайдов с макетом Пустой слайд после редактирования образца слайдов
Теперь мы можем сделать изменения и в стиле слайда 1, т.е. титульного листа. Выберем этот слайд и далее перейдем в редактор Образец слайдов.
Предлагаемые изменения в стиле титульного слайда показаны ниже. Обратите внимание, что этот стиль будет активен только для одного слайда (первого), так как именно первый слайд был расположен на макете Титульный слайд.
Рис. 2.62. Отображение титульного слайда после редактирования образца слайдов
Оглавление
4. Простейшие вычисления в программах MATLAB и OCTAVE. Арифметические выражения
Интерфейс программы
Команды в программе MATLAB или OCTAVE можно вводить непосредственно из командной строки. Командная строка располагается в командном окне Command Window. Командная строка начинается со знака >> и возле этого знака стоит мигающий курсор. Это означает, что программа MATLAB свободна и ждет ввода команды. Можно, например, ввести команду
2+3
и после этого нажать на клавишу ввод ENTER.
Обратите внимание, что пользователь НЕ должен ставить >> перед командой.
Также исполняемые команды или целую программу сначала можно записать (набрать) внутри файла-редактора, а затем запустить этой файл на исполнение. У программы есть свой специальный редактор, который позволит вам набрать текст вашей программы (ваши команды). Этот файл можно открыть из меню по команде File→New→M-file. Обратите внимание, что файлы, которые предназначены для исполнения программой MATLAB, имеют расширение *.m, поэтому их называют M-файлами. После набора программы этот файл следует сохранить. Имя файла должно содержать только латинские буквы и цифры. Имя файла должно начинаться с латинской буквы. Имя файла не может содержать пробелы. Например, Lab5 – допустимое имя файла, а имя dabbb 12 не является допустимым, так как имя файла содержит пробел.
Запустить файл (программу) на исполнение можно разными способами. Перед запуском программы убедитесь, что MATLAB «свободен» и в командном окне присутствует приглашение >>. Если приглашения в командной строке нет, то это означает, что MATLAB находится в процессе выполнения старой программы, которая была запущена до этого. В этом случае можно прервать старую программу, нажав CTRL+C.
Итак, если приглашение есть, то запустить программу можно, нажав зеленую кнопку в виде треугольника в меню редактора.
Рис. 3.1. Набор текста программы в файле-редакторе и зеленая кнопка для запуска программы на исполнение
Если ваш файл не был сохранен до этого, то программа предложит сначала сохранить это файл на диске.
В любом случае важно понимать, что программа MATLAB в любой момент времени может распознавать файлы, находящиеся только в текущей директории. Имя текущей директории Current Directory указано посередине вверху окна программы MATLAB.
Рис. 3.2. Текущая папка C:\Users\User\Documents\MATLAB
Убедитесь в том, что имя текущей папки совпадает с именем папки, в которой сохранен ваш *.m файл. Иначе при запуске программы с помощью нажатия зеленого треугольника будет предложено поменять имя текущей папки на имя той папки, в которой был сохранен запускаемый файл.
Запустить *.m файл на исполнение можно также, указав его имя непосредственно в командной строке и нажав клавишу ENTER:
Рис. 3.3. Запуск программы Lab5.m на исполнение из командной строки
После имени файла ставить его расширение *.m не нужно. При этом способе запуска особенно важно убедиться в том, что имя текущей папки совпадает с именем папки, в которой был сохранен файл с текстом вашей программы. Иначе программа выдаст сообщение об ошибке, что файл не найден.
Теперь коснемся того, как выводятся в программе MATLAB результаты вычислений на экран монитора. Результаты вычислений, конечно, выводятся в командное окно программы. Если после команды
>> 4-1
мы сразу нажмем клавишу ENTER, то результаты вычисления незамедлительно отобразятся на экране:
>> 4-1
ans =
3
Однако, если после команды 4-1 поставить точку с запятой, то результаты вычислений не будут выводится на экран, хотя сами вычисления программой MATLAB выполняться будут.
>> 4-1;
Подавление вывода результатов вычислений на экран с помощью точки с запятой часто бывает удобным, если вычисления являются промежуточными и их очень много. В этом случае, чтобы не загромождать командное окно ненужной информацией, вывод на экран подавляется. Как правило, на экран выводится только заключительный результат вычислений, который интересует нас.
Отметим также полезность клавиши ↑, которая перелистывает команды, выполненные системой ранее, т.е. запущенные ранее. Эту клавишу удобно использовать для повторного выполнения одних и тех же команд, для того чтобы не набирать их в командной строке заново. Также ее удобно использовать для исправления команд, набранных неправильно и запущенных с ошибкой вследствие их неправильности. В этом случае можно с помощью клавиши ↑ вернуть команду, набранную ранее, и исправить ее. При этом набирать полностью эту команду заново не нужно.
Понятие числа
Центральным понятием всех математических систем является математическое выражение. Оно задает то, что должно быть вычислено в численном (реже символьном) виде. Примеры простых математических выражений могут быть представлены так:
2+3
2.301*sin(x)
4+ехр(3)/5
sqrt(y)/2
sin(pi/2)
Математические выражения строятся на основе чисел, констант, переменных, операторов, функций и разных спецзнаков.
Число – простейший объект языка MATLAB, представляющий количественные данные. Числа можно считать константами, имена которых совпадают с их значениями. Числа используются в общепринятом представлении о них. Они могут быть целыми, дробными, с фиксированной и плавающей точкой. Представление с плавающей точкой соответствует научному формату. В этом формате число X представляется в виде , где Y – число с фиксированной точкой и называется мантиссой, а d – целое число и называется порядком. Ниже приводятся примеры представления различных чисел:
0 5 –4
3.341 0.00001 123.456е-24 –234.456е10
Числа 3.341 и 0.00001 записаны как числа с фиксированной точкой или в фиксированном формате, а числа 123.456е–24, –234.456е10 записаны как числа с плавающей точкой или в экспоненциальном формате.
Как нетрудно заметить, целая часть отделяется от дробной части точкой. Для отделения порядка числа от мантиссы используется символ е для обозначения основания степени равного 10. При этом каждое вещественное число принимает по модулю значения из диапазона [10-308,10308], количество значащих цифр при этом теоретически достигает 16–17. Это дает возможность единообразно представить данные, с которыми выполняются операции, в памяти компьютера в формате double (в формате с двойной точностью).
Форматы чисел
При отображении числовых результатов на экране монитора в режиме, который действует «по умолчанию», часть значащих цифр отбрасывается согласно установленному формату вывода (нормализованной форме), ограничивающим количество отображаемых значащих цифр. Этот формат строится по определенным правилам:
• целые числа отображаются с не более чем с 9 цифрами;
• вещественные числа с фиксированной точкой – не более чем с 4 цифрами в дробной части;
• очень большие или очень маленькие (в том числе по модулю) числа отображаются в формате с плавающей точкой и пятью значащими цифрами.
Такая форма представления не всегда удобна. Поэтому при работе с числовыми данными можно задавать различные форматы представления чисел. Однако в любом случае все вычисления проводятся с предельной, так называемой двойной, точностью (double).
Для установки формата представления чисел в командном окне программы используется команда
>> format name, где name – имя формата.
Для числовых данных name может быть следующим сообщением:
• short – короткое представление в фиксированном формате; используется по умолчанию для вывода вещественных чисел и предусматривает отображение только четырех десятичных цифр после десятичной точки; это формат, который действует по умолчанию. Пример:
>> pi
ans =
3.1416
• short e – короткое представление в экспоненциальном формате (научном формате) (5 знаков мантиссы и 3 знака порядка). Пример:
>> format short e
>> pi
ans =
3.1416e+00
• long – длинное представление в фиксированном формате (15 десятичных цифр). Пример:
>> format long
>> pi
ans =
3.141592653589793
• long e – длинное представление в экспоненциальном формате (15 знаков мантиссы и 3 знака порядка);
• short g и long g – представляют собой гибрид между соответствующими форматами вывода с фиксированной и плавающей точкой;
• rat или rational – для отображения вещественных чисел в виде обыкновенных дробей. Пример:
>> format rat
>> pi
ans =
355/113
• hex – представление чисел в шестнадцатеричной форме;
• bank – представление для денежных единиц, сохраняя в дробной части числа два знака, соответствующие мелким денежным единицам.
Таблица 3.1 поясняет вышеперечисленные форматы вывода числовых данных для отображения чисел и y=1.2345е–6.
Таблица 3.1
Форматы вывода числовых данных в системе MATLAB.
Команда формата
y=1.2345е–6
format short
1.7321
0.0000
format short e
1.7321e+00
1.2345E-006
format long
1.732050807568877
0.000001234500000
format long e
1.732050807568877e+00
1.234500000000000E-006
format rational
1351/780
1/810045
format bank
1.73
0.00
Форма записи в программе MATLAB или OCTAVE выглядит так:
>> format short
>> x=sqrt(3)
x =
1.7321
Обратите внимание, что задание формата сказывается только на форме вывода чисел. Вычисления все равно будут происходить в формате двойной точности, а ввод чисел возможен в любом удобном для пользователя виде.
Константы и переменные. Системные переменные
Константа – это предварительно определенное числовое или символьное значение, представленное уникальным именем. Числа (например, 1, –2 и 1.23) являются безымянными числовыми константами.
Символьная константа (char) – это цепочка символов, заключенных в апострофы, например: 'Hello my friend!', 'Привет', '2+3'. Если в апострофы помещено математическое выражение, то оно не вычисляется и рассматривается просто как цепочка символов. Так что '2+3' не будет возвращать число 5. Однако с помощью специальных функций преобразования символьные выражения могут быть преобразованы в вычисляемые. Следует помнить и то, что пробел является полноценным символом.
Переменные – это имеющие имена объекты, способные хранить некоторые, обычно разные по значению, данные. В зависимости от этих данных переменные могут быть числовыми или символьными, векторными или матричными.
Имя переменной – это ее идентификатор. На выбор имени переменных накладываются ограничения:
• имя обязательно должно начинаться с буквы английского алфавита; имя не должно содержать букв русского алфавита;
• в имени не должно быть пробела;
• в имени кроме букв можно использовать цифры и символ подчеркивания;
• недопустимо включать в имена переменных пробелы и специальные знаки, например +, ., –, *, /;
• большие (заглавные) и малые (строчные) буквы в именах различаются;
• имя не должно совпадать с зарезервированными в системе именами встроенных процедур, функций, переменных, например, max, sum и т.д.
Желательно использовать содержательные имена для обозначений переменных, например speed_l для переменной, обозначающей скорость первого объекта. Переменные могут быть обычными и индексированными, то есть элементами векторов или матриц. Могут использоваться и символьные переменные, причем символьные значения заключаются в апострофы, например s='Demo'.
Системные переменные в MATLAB/OCTAVE задаются самой системой при ее загрузке и могут переопределяться пользователем. Основные системные переменные, применяемые в системе MATLAB/OCTAVE, указаны ниже:
• i или j – мнимая единица ( );
• pi – число π – 3.141592653589793;
• eps – погрешность операций над числами с плавающей точкой ( );
• realmin – наименьшее число с плавающей точкой (2-1022 =2.2251е-308);
• realmax – наибольшее число с плавающей точкой (21023 =1.7977е+308);
• inf – значение машинной бесконечности (∞);
• ans – переменная, хранящая результат последней операции и обычно вызывающая его отображение на экране дисплея;
• NaN – указание на нечисловой характер данных (Not-a-Number), неопределенный результат (0/0, ∞/∞ и т.д.).
Ниже приведены примеры использования системных переменных:
>> 2*pi
ans =
6.2832
>> eps
ans =
2.2204е-016
>> realmin
ans=
2.2251e-308
>> realmax
ans=
1.7977e+308
>>1/0
ans=
Inf
>>0/0
ans =
NaN
Системные переменные могут переопределяться. Можно задать системной переменной eps иное значение, например eps=0.0001. Однако важно то, что их значения по умолчанию всегда задаются сразу после загрузки системы. Поэтому неопределенными в отличие от обычных переменных системные переменные не могут быть никогда.
Типы переменных заранее не декларируются. Они определяются выражением, значение которого присваивается переменной. Так, если это выражение – вектор или матрица, то переменная будет векторной или матричной.
Оператор присваивания
В системе MATLAB/OCTAVE можно задавать переменным определенные значения. Для этого используется операция присваивания, вводимая знаком равенства = :
Имя_переменной = Выражение
Эта запись определяет запись оператора присваивания. Оператор присваивания действует справа налево. Сначала вычисляется выражение, стоящее справа от знака присваивания, а затем результат действия сохраняется в переменной, стоящей слева от знака присваивания.
Если переменная явным образом не задана, то в таких случаях MATLAB/OCTAVE сам назначает такую переменную ans (от английского слова answer – ответ), которой присваивается результат и значение которой затем выводится на экран. Полученное значение можно использовать в последующих вычислениях, но нужно помнить, что значение ans изменяется после каждого вызова команды без оператора присваивания. Переменная ans – относится к системным переменным.
>>sqrt(9)
ans=
3
Арифметические операции
Простейшие действия, которые совершаются над числовыми данными – это вычисление выражений с использованием знаков арифметических операций. В таблице 3.2 представлены знаки арифметических операций в MATLAB/OCTAVE.
Таблица 3.2
Арифметические операции в MATLAB/OCTAVE
Знак операции
Действие
Знак операции
Действие
+
сложение
/
Деление слева направо
–
вычитание
\
Деление справа налево
*
умножение
^
Возведение в степень
Для работы с комплексными числами используются те же операции (+, –, *, /, \), однако комплексные числа в выражениях необходимо заключать в круглые скобки.
Порядок выполнения арифметических операций зависит от соответствующего приоритета. Ниже представлены действия от самого высокого приоритета к самому низкому:
1. возведение в степень;
2. умножение и деление;
3. сложение и вычитание.
Выполнение операций одинакового приоритета происходит в порядке слева направо. Для изменения порядка выполнения операций используются круглые скобки.
Операторы и функции
Оператор – это специальное обозначение для определенной операции над данными – операндами. Операторы используются совместно с операндами. Например, в выражении 4+3 знак + является оператором сложения, а числа 4 и 3 – операндами.
Операторы являются весьма распространенными объектами математических выражений и языков программирования. Полный список операторов можно получить, используя команду help ops.
Функции – это имеющие уникальные имена объекты, выполняющие определенные преобразования своих аргументов и при этом возвращающие результаты этих преобразований. Возврат результата – отличительная черта функций. При этом результат вычисления функции с одним выходным параметром подставляется на место ее вызова, что позволяет использовать функции в математических выражениях, например функцию sin() в выражении 2*sin(pi/2).
Функции в общем случае имеют список входных аргументов (параметров), заключенный в круглые скобки. Например, функция Бесселя записывается как bessel(NU, X). В данном случае список параметров содержит два аргумента – NU и X.
Итак, запомним, что входные аргументы или параметры функции заключаются в круглые скобки и, если их несколько, они разделяются запятыми. Входные параметры функции в круглых скобках записываются сразу же после названия функции, т.е. после названия функции должна следовать только открывающаяся круглая скобка.
Пример. Запишем выражение на языке MATLAB. Ответом служит выражение
sin(x)^2
или
(sin(x))^2.
Обратите внимание, что после названия функции sin следует открывающаяся скобка.
Если функция возвращает несколько значений, то она записывается в виде
[Yl, Y2....]=func(Xl, X2...), где Yl, Y2,... – список выходных параметров и XI, Х2.... — список входных аргументов (параметров). Итак, выходные параметры функции, если их несколько, заключаются в квадратные скобки и перечисляются через запятую или пробел.
Со списком элементарных функций можно ознакомиться, выполнив команду help elfun, а со списком специальных функций – с помощью команды help specfun.
Функции могут быть встроенными (внутренними) и внешними, или m-функциями. Так, встроенными являются наиболее распространенные элементарные функции, например, sin(x) и ехр(у), тогда как функция sinh(x) является внешней функцией. Внешние функции содержат свои определения в m-файлах. Встроенные функции хранятся в откомпилированном ядре системы MATLAB, в силу чего они выполняются предельно быстро.
Ниже приведена таблица 3.3 с некоторыми элементарными математическими функциями.
Таблица 3.3
Некоторые элементарные математические функции.
Обозначение
Выполняемое действие
Тригонометрические и гиперболические функции
sin(x), cos(x), tan(x), cot(x)
синус, косинус, тангенс и котангенс. Области определения и значений могут быть комплексными. Аргумент х задается в радианах
sec(x), csc(x)
секанс и косеканс. Области определения и значений могут быть комплексными.
asin(x), acos(x), atan(x), acot(x), asec(x), acsc(x)
обратные тригонометрические функции: арксинус, арккосинус, арктангенс, арккотангенс, арксеканс и арккосеканс. Области определения и значений могут быть комплексными. Результат возвращается в радианах
sinh(x), cosh(x), tanh(x), coth(x), sech(x), csch(x)
гиперболические тригонометрические функции: гиперболический синус, косинус, тангенс, котангенс, секанс и косеканс. Области определения и значений могут быть комплексными.
asinh(x), acosh(x), atanh(x), acoth(x), asech(x), acsch(x)
Обратные гиперболические тригонометрические функции. Области определения и значений могут быть комплексными.
Логарифмические функции и показательные функции
exp(x)
экспоненциальная функция . Области определения и значений могут быть комплексными.
pow2(x)
показательная функция по основанию 2 – . Области определения и значений могут быть комплексными.
log(x)
натуральный логарифм . Области определения и значений могут быть комплексными.
log10(x)
десятичный логарифм . Области определения и значений могут быть комплексными.
log2(x)
логарифм по основанию 2 – . Области определения и значений могут быть комплексными.
sqrt(x)
корень квадратный из числа x – . Области определения и значений могут быть комплексными, например,
>> a=sqrt(-1)
a=0+1i % мнимая единица
>> b=sqrt(-5)
b=0+2.2361i
Комплексные функции
abs(x)
модуль числа x
conj(x)
комплексно-сопряженное число для х.
imag(x)
мнимая часть комплексного аргумента x
real(x)
действительная часть комплексного аргумента x
isreal(x)
K=isreal(A) равно 1, если х – вещественное число и равно 0 в любом другом случае.
Функции округления и вычисления остатков
fix(x)
округление вещественного значения в сторону нуля (т.е. просто отбрасывает дробную часть).
floor(x)
округление вещественного значения до ближайшего целого слева от х, т.е. в сторону –inf (т.е. до ближайшего меньшего числа). У комплексных аргументов мнимые и вещественные части округляются независимо.
ceil(x)
округление вещественного значения до ближайшего целого справа от х, т.е. в сторону inf (т.е. до ближайшего большего числа).
round(x)
округление х до ближайшего целого.
mod(x, y)
modulus – возвращает остаток от деления X на Y в соответствии с определением остатка, принятым в алгебре, и имеет тот же знак , что и Y:
>> a=mod(5,3); % a=2, a=5-3
>> a=mod(-5,3); % a=1, a=-5-(-6)=-5+6=1
>> a=mod(-5,-3);% a=-2, a=-5-(-3)=-5+ 3=-2
>> a=mod(5,-3); , % a=-1 a=-5-(-3)=5-6=-1
>> a=mod(5,0); % a=5
>> a=mod(5,5); % a=0
rem(x, y)
remainder (остаток) возвращает остаток от деления X на Y и имеет тот же знак, что и Х:
>> b=rem(5,3); % b=2, b=5-3
>> b=rem(-5,3); % b=-2, b=-5-(-3)=-5+3=-2
>> b=rem(-5,-3); % b=-2, b=-5-(-3)=-5+ 3=-2
>> b=rem(5,-3); % b=2, b=5-3=2
>> a= rem (5,0); % a=NaN
>> a= rem (5,5); % a=0
sign(x)
функция знака числа; возвращает –1, если x<0, 0, если x=0 и 1, если x>0.
Напомним понятие остатка от деления, принятого в алгебре: пусть а – делимое, b – делитель, q – неполное частное, r – остаток. Тогда
, где ,
где N – множество всех натуральных чисел, Z – множество всех целых чисел.
Именно это определение принято в алгебре, и именно относительно такого понимания остатка сформулирована теорема о единственности пары и для любой пары чисел и (теорема о делении с остатком).
Такому пониманию остатка соответствует функция mod(), в случае если делитель (второй параметр функции) положителен.
В том случае, если делитель отрицателен, для понимания результата достаточно мысленно повернуть числовую ось на 180°:
mod(x, y) возвращает x-n*y при y не равным 0, где n=floor(x/y).
В отличие от функции mod() функция rem() построена на определении частного по отношению к ближайшему целому в направлении нуля:
rem(x, y) возвращает x-n*y при y не равным 0, где n=fix(x/y).
Сообщения об ошибках и исправление ошибок
Важное значение при диалоге с системой MATLAB/OCTAVE имеет диагностика ошибок. Вряд ли есть пользователь, помнящий точное написание тысяч операторов и функций, входящих в систему и в пакеты прикладных программ. Поэтому никто не застрахован от ошибочного написания математических выражений или команд. MATLAB/OCTAVE диагностирует вводимые команды и выражения и выдает соответствующие сообщения об ошибках или предупреждения.
Рассмотрим еще ряд примеров. Введем, к примеру, ошибочное выражение
>> sqr(2)
и нажмем клавишу ENTER. Система сообщит об ошибке:
Undefined function or variable 'sqr'.
Это сообщение говорит о том, что не определена функция или переменная, и указывает, какая именно – sqr. Чтобы исправить ошибку, можно просто набрать правильное выражение. Однако в случае громоздкого выражения лучше воспользоваться встроенным редактором выражений.
1. Прежнее выражение, содержащее ошибку, можно опять вернуть в строку ввода, воспользовавшись клавишей управления курсором вверх ↑ для перелистывания предыдущих строк
>> sqr(2)
2. Переведем курсор влево на имя «неизвестной» переменной и нажмем клавишу Tab. Система выведет подсказку, анализируя уже введенные символы. Из предложенных системой вариантов выбираем sqrt. Выражение примет следующий вид:
>> sqrt(2)
ans= 1.4142
Если бы был только один вариант окончания введенных символов, то после нажатия клавиши Tab система бы закончила наш ввод. Вычисления дают ожидаемый результат – значение квадратного корня из двух.
В системе MATLAB/OCTAVE внешние определения используются точно так же, как и встроенные функции и операторы. Никаких дополнительных указаний на их применение делать не надо. Достаточно лишь позаботиться о том, чтобы используемые определения действительно существовали в виде файлов с расширением .m. Впрочем, если вы забудете об этом или введете имя несуществующего определения, то система отреагирует на это звуковым сигналом (звонком) и выводом сообщения об ошибке:
>> hsin(1)
Undefined function or variable 'hsin'
Did you mean:
>> sinh(1)
ans= 1.1752
В этом примере мы забыли (нарочно), какое имя имеет внешняя функция, вычисляющая гиперболический синус. Система подсказала, что функция или переменная с именем hsin не определена ни как внутренняя, ни как m-функция. Далее система, пытаясь исправить действия пользователя, спрашивает «Вы имели в виду:» и предлагает исправленный вариант: sinh(1).
Иногда в ходе вывода результатов вычислений появляется сокращение NaN (от слов Not a Number – не число). Оно обозначает неопределенность, например вида 0/0 или Inf/Inf, где Inf – системная переменная со значением машинной бесконечности. Могут появляться и различные предупреждения об ошибках (на английском языке). Например, при делении на 0 конечного числа в более ранних версиях MATLAB появлялось предупреждение "Warning: Divide by Zero." ("Внимание: Деление на ноль").
Вообще говоря, в MATLAB/OCTAVE надо отличать предупреждение об ошибке от сообщения о ней. Предупреждения (обычно после слова Warning) не останавливают вычисления и лишь предупреждают пользователя о том, что диагностируемая ошибка способна повлиять на ход вычислений. Сообщение об ошибке (Error) останавливает вычисления.
Векторно-матричные операции
Основным видом данных, которые используются в системе MATLAB/OCTAVE, являются матрицы. Матрицы широко применяются в сложных математических расчетах, например при решении задач линейной алгебры и математического моделирования статических и динамических систем и объектов. Они являются основой автоматического составления и решения уравнений состояния объектов и систем.
Основные понятия
Напомним, что двумерный массив чисел или математических выражений принято называть матрицей. Одномерный массив называют вектором. Примеры векторов и матриц даны ниже:
• [1, 2, 3, 4] — вектор-строка из 4 элементов;
• Матрица размера 3×4 (три строки и четыре столбца)
1
2
3
4
5
6
7
8
9
8
7
6
Векторы и матрицы характеризуются размерностью и размером. Размерность определяет структурную организацию массивов:
• у строки размерность 1,
• у страницы размерность 2,
• у куба размерность 3 и т. д.
Поэтому вектор является одномерным массивом, а матрица представляет собой двумерный массив с размерностью 2. MATLAB допускает задание и использование массивов с более высокой размерностью, но мы пока ограничимся только одномерными и двумерными массивами – векторами и матрицами.
Размер вектора – это число его элементов, а размер матрицы определяется числом ее строк m и столбцов n. Обычно размер матрицы указывают как m х n. Матрица называется квадратной, если m = n, то есть число строк матрицы равно числу ее столбцов.
Важно отметить, что даже обычные числа и переменные в MATLAB/OCTAVE рассматриваются как матрицы размера 1×1, что дает единообразные формы и методы проведения операций над обычными числами и массивами. Данная операция обычно называется векторизацией. Векторизация обеспечивает и упрощение записи операций, производимых одновременно над всеми элементами векторов и матриц, и существенное повышение скорости их выполнения. Это также означает, что большинство функций может работать с аргументами в виде векторов и матриц.
Все массивы (матрицы и вектора) имеют имя. Правила, по которым присваиваются им имена такие же, как и для переменных. Дополнительно условимся обозначать матрицы заглавными (прописными) буквами, а вектора, т.е. матрицы из одного столбца или строки – малыми (строчными) буквами. Это соглашение необязательно, но его удобно использовать.
Формирование векторов и матриц
Описанные выше простые правила вычислений с простыми переменными распространяются и на гораздо более сложные вычисления с векторами, матрицами и массивами. При этом MATLAB/OCTAVE по умолчанию предполагает, что каждая заданная переменная – это вектор, матрица или массив. Все определяется конкретным значением переменной. Например, если задано х=1, то это значит, что х – это вектор с единственным элементом, имеющим значение 1.
При формировании векторов и матриц используются различные способы:
• поэлементный ввод;
• через вычисление элементов;
• используя специальные функции.
Рассмотрим различные способы формирования векторов и матриц на примерах.
1. Задание вектор-строки (одномерного массива). Значения следует перечислить в квадратных скобках, разделяя пробелами или запятыми, используя оператор присваивания. Рассмотрим, как можно задать вектор-строку из трех элементов
>>v1=[l 2 3]
v1=
1 2 3
Оператор присваивания задает вектор-строку v1, который имеет три элемента со значениями 1, 2 и 3. После ввода вектора система выводит его на экран дисплея. Задав вектор v2=[1,2,3], мы получим тот же результат:
>> v2=[1,2,3]
v2 =
1 2 3
Таким образом, для задания компонент вектора-строки используются квадратные скобки, в которых числовые данные отделяются друг от друга пробелами или запятыми.
2. Задание вектор-столбца (одномерного массива)
>> v=[-3; 4; –1]
v =
–3
4
–1
Таким образом, для задания компонент вектора-столбца используется тот же прием, что и для вектор-строки, но в качестве разделителей данных выступают точки с запятыми. Знак «точка с запятой» фактически начинает новую строку у вектора-столбца или у матрицы.
3. Задание матрицы требует указания нескольких строк. Ввод элементов матрицы осуществляется в квадратных скобках, при этом элементы строки отделяются друг от друга пробелом или запятой, а сами строки разделяются между собой точкой с запятой.
Также знак «точка с запятой» в конце ввода команды предотвращает вывод матрицы или вектора (и вообще результата любой операции) на экран дисплея. Так, ввод
>> А=[1 2;3 4];
задает квадратную матрицу 2 на 2, но не выводит ее на экран. После этого матрицу A можно вывести на экран, исполнив команду, которая содержит только имя переменной (без точки с запятой):
>> А
А =
1 2
3 4
Второй вариант задания той же матрицы использует для разделения строк нажатие клавиши Enter:
>>A=[1 2
3 4];
4. Ввод путем объединения нескольких векторов. Результатом выполнения следующего фрагмента программы
>> a=[1 2 3];
>> b=[4 5 6];
>> c=[a b];
будет вектор с, содержащий элементы:
1 2 3 4 5 6
Результатом выполнения фрагмента программы
>> a=[1 2];
>> b=[3 4];
>> C=[a; b]
станет матрица C, имеющая вид
1 2
3 4
Описанный способ позволяет выполнить операцию конкатенации – объединения малых матриц в большую.
5. Ввод элементов матриц и векторов в виде арифметических выражений, содержащих любые доступные системе функции, например:
>> v= [2+2/(3+4) exp(5) sqrt(l0)];
>> v
v = 2.2857 148.4132 3.1623
6. Ввод вектора, элементы которого образуют арифметическую прогрессию.
Очень часто необходимо произвести формирование упорядоченных числовых последовательностей. Такие последовательности нужны, например, для создания векторов со значениями аргументов и некой функции для построении ее графика. Для этого в MATLAB/OCTAVE используется оператор : (двоеточие):
Начальное_значение:Шаг:Конечное_значение
Данная конструкция порождает возрастающую последовательность чисел, которая начинается с начального значения, идет с заданным шагом и завершается конечным значением. Если Шаг не задан, то он принимает значение 1 (единица). Примеры применения оператора : даны ниже:
>> 1:5
ans =
1 2 3 4 5
>> k=0:2:10
k =
0 2 4 6 8 10
>> l= 10:-2:2
l =
10 8 6 4 2
>> v=0:pi/2:2*pi;
>> v
v =
0 1.5708 3.1416 4.7124 6.2832
>> x= l:-.2:0
x =
1.0000 0.8000 0.6000 0.4000 0.2000 0
>>5:2
ans=
Empty matrix:1-by-0
Оператор : – один из наиболее часто используемых операторов в системе MATLAB/OCTAVE.
Итак, оператор : использует следующие правила для создания векторов:
j:k – то же, что и [j.j+l,..., k];
j:k – пустой вектор, если j>k;
j:i:k – то же, что и [j, j+i , j+2i ,.....k];
7. Формирование матриц и векторов определенного вида при помощи функций.
Имеется ряд особых функций для задания векторов и матриц:
• zeros(m, n) – прямоугольная матрица с нулевыми элементами, где m – число строк, n – число столбцов.
• zeros(m) – квадратная матрица m на m с нулевыми элементами.
• ones(m, n) – прямоугольная матрица m на n, состоящая из единиц;
• ones(m) – квадратная матрица m на m, состоящая из единиц;
• eye(m, n) – прямоугольная матрица m на n с 1 по главной диагонали, остальные элементы равны 0.
• eye(m) – квадратная матрица m на m, состоящая из 1, расположенных на главной диагонали; остальные элементы равны 0. Такая матрица называется в математике единичной матрицей.
• diag(A) – извлечение главной диагонали матрицы A.
• diag(A, m) – извлечение любой диагонали матрицы A, m – номер извлекаемой диагонали. Диагонали отсчитываются вверх (при положительных m) или вниз (при отрицательных m) от главной диагонали, у которой по умолчанию номер равен 0).
• magic(n) – задает магическую матрицу размера n на n, у которой сумма всех столбцов, всех строк и даже диагоналей равна одному и тому же числу.
Пример 1. ones(1,3) задает вектор-строку из единиц (1 1 1). оnes(3,1) задает вектор-столбец, состоящий из единиц. zeros(3) задает нулевую матрицу (матрицу, состоящую из нулей) из трех строк и трех столбцов, еуе(3,3) задает единичную матрицу из трех строк и трех столбцов.
Любую из этих матриц можно подобрать «под размер» другой матрицы с помощью функции size. Функция sizе возвращает (вычисляет) количество строк и столбцов в матрице, т.е. ее размер.
Пример 2. E=eye(size(A)) – единичная матрица, размер которой совпадает с размером матрицы А, причем А не обязана быть квадратной. Если A не квадратная матрица, то элементы с одинаковыми индексами будут равны единице, а остальные – нулю.
Пример 3. Функция magic(n) задает магическую матрицу размера n на n, у которой сумма элементов всех столбцов, всех строк и даже диагоналей равна одному и тому же числу:
>>M=magic(4)
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>>sum(M) % сумма элементов в каждом столбце
ans=
34 34 34 34
>>sum(M') %сумма элементов в каждом столбце транспонированной матрицы
ans=
34 34 34 34
>>sum(diag(M)) %сумма элементов на главной диагонали
ans=
34
Здесь мы использовали функцию sum, которая вычисляет сумму элементов, входящих в массив, функцию diag, которая извлекает главную диагональ из матрицы, и оператор транспонирования матрицы '.
Операция транспонирования
Операция транспонирования обозначается апострофом '. Например
>>v=[3 1 –2];
>> h=v'
h =
3
1
–2
В данном случае произошло преобразование строки v в столбец h. Аналогично, с помощью операции транспонирования, можно преобразовать столбец в строку.
Операция транспонирования применяется, конечно, и по отношению к матрицам. Например:
>> A=[1 2; 3 4]
A =
1 2
3 4
>> A'
ans =
1 3
2 4
Обращение к элементам вектора и матрицы
1. Обращение к конкретному значению (элементу). При обращении к элементу вектора указывается имя массива и порядковый номер элемента в круглых скобках. Например, v(1) адресуется к первому элементу одномерного массива v.
Обращение к элементу матрицы имеет вид: A(m, n), где m – номер строки элемента, n – номер столбца.
Например, если задать
>> А
8 1 6
3 5 7
4 9 2
>>A(2, 2)
ans=
5
то результат будет равен 5, так как элемент, стоящий на второй строке во втором столбце, равен 5.
Если нужно присвоить элементу M(i, j), новое значение х, следует использовать оператор присваивания
M(i, j)=x;
Например, если элементу М(2, 2) надо присвоить значение 10, следует записать
>> М(2, 2)=10
Выражение М(i) с одним индексом дает доступ к элементам матрицы, развернутым в один столбец. Такая матрица образуется из исходной, если последовательно выписать ее столбцы от первого до последнего внутри одного большого столбца. Тогда индекс i укажет на номер элемента внутри получившегося большого столбца.
Следующий пример поясняет такой доступ к элементам матрицы М:
>> М=[1 2 3; 4 5 6; 7 8 9]
М =
1 2 3
4 5 6
7 8 9
>> М(2)
ans =
4
>> M(8)
ans =
6
>> M(9)
ans =
9
>> М(5)=100;
>> М
М =
1 2 3
4 100 6
7 8 9
2. Обращение к столбцу (строке) матрицы. Для выделения заданного столбца матрицы задаем в круглых скобках номер нужного столбца, а для того чтобы показать, что нужны элементы всех строк, используем двоеточие. Например, чтобы просмотреть столбец номер 3 из матрицы M, используем команду:
>> M(:,3)
ans =
3
6
9
Выделение заданной строки матрицы выполняется аналогичным образом. Выделяем строку 2:
>> М(2,:)
ans =
4 100 6
Ниже показано, как выбирать с помощью оператора : строки, столбцы и элементы из векторов, матриц и многомерных массивов:
А(:, j) – это j-й столбец из матрицы А;
А(i,:) – это i-я строка из матрицы А;
А(:,:) – эквивалент двумерного массива. В данном случае выбирается вся матрица А;
А(j:k) – это определенные элементы матрицы А, которая была предварительно записана в один столбец;
А(:) – записывает все элементы массива А в виде одного столбца.
Удаление столбцов и строк матриц
Для формирования матриц и выполнения ряда матричных операций возникает необходимость удаления отдельных столбцов и строк из матрицы. Для этого используются пустые квадратные скобки []. Пустые квадратные скобки фактически означают пустой массив, не содержащий ни одного элемента.
Проделаем это с матрицей М:
>> М=[1 2 3; 4 5 6; 7 8 9]
М =
1 2 3
4 5 6
7 8 9
Удалим второй столбец, используя оператор : (двоеточие):
>> М(:,2)=[ ]
М =
1 3
4 6
7 9
А теперь, используя оператор : (двоеточие), удалим вторую строку:
>> М(2,:)=[ ]
М =
1 3
7 9
Как мы видим, для удаления определенного блока из матрицы, например, строчки или столбца, надо использовать операцию присваивания, в которой этому блоку матрицы присваивается пустой массив, т.е. он исчезает или удаляется.
Арифметические операции над матрицами и векторами
Операции сложения и вычитания естественным образом распространяются на вектора и матрицы. При сложении (вычитании) двух векторов или матриц операнды должны иметь одинаковый размер. Например, можно вычесть из вектора-столбца 3×1 вектор-столбец с таким же размером 3×1, но нельзя вычесть из вектора 3×1 матрицу с размером 3×2.
Пример 1.
>> x=[1 2 3]; y=[3 5 7];
>> x+y
ans =
4 7 10
Очевидно, что операция сложения двух векторов (матриц) одинакового размера фактически сводится к сложению отдельных элементов этих двух векторов (матриц).
Пример 2.
>> A=[3 2; 5 4]; B=[1 2; 6 3];
>> A-B
ans =
2 0
–1 1
Здесь мы производим вычитание элементов матрицы B из соответствующих элементов матрицы A.
Пример 3.
>> A+x
Matrix dimensions must agree
Последняя операция заканчивается ошибкой «Размеры матриц должны быть согласованы», так как нельзя сложить матрицу размером 2×2 с вектором-строкой размером 1×3.
Далее мы рассмотрим операцию сложения скаляра с вектором или матрицей. В этом случае к каждому элементу вектора (матрицы) прибавляется этот скаляр.
Пример 4.
>> x+6
ans =
7 8 9
Аналогичным образом, можно определить операцию вычитания скаляра из каждого элемента матрицы или вычитания каждого элемента матрицы из скаляра.
Пример 5.
>> 6-x
ans =
5 4 3
Теперь перейдем к операции умножения. Легче всего определить операцию умножения скаляра на вектор (матрицу). Пи этом каждый элемент вектора (матрицы) умножается на этот скаляр.
Пример 7.
>> g=[3 9 1]
g =
3 9 1
>> 2*g
ans =
6 18 2
При умножении матрицу на матрицу, и как частный случай, при умножении матрицы на вектор, мы должны убедиться в том, что размеры операндов согласованы. А именно, при умножении X*Y количество столбцов в матрице X должно равняться количеству строк в матрице Y. Например, мы можем перемножить матрицу X размером 3×3 на вектор-столбец размером 3×1.
Пример 8.
>> X=[2 4 1; 3 5 2; 0 –3 2];
>> Y=[9; 1; 5];
>> X*Y
ans =
27
42
7
Результатом умножения матрицы на вектор-столбец является, как мы видим, вектор-столбец. В данном случае мы перемножаем матрицу 3×3 на вектор 3×1 и в результате получаем вектор-столбец 3×1. В общем случае действует такое правило перемножения двух матриц:
Если размер X равен pxq, а размер Y равен qxr, то при перемножении X*Y результат будет иметь размер pxr.
Пример 9.
>> X=[2 4 1; 3 5 2; 0 –3 2];
>> Y=[9, 1, 5];
>> X*Y
Error using *
Incorrect dimensions for matrix multiplication.
В этом примере мы пытаемся перемножить матрицу размером 3×3 на вектор-строку размером 1×3 и в результате получаем сообщение об ошибке, так как размеры операндов не являются согласованными.
Обратите внимание, что в соответствии с правилом перемножения матриц мы можем перемножить вектор-строку на вектор-столбец, если оба этих вектора имеют одинаковое количество элементов. В результате мы получим число 1×1, которое равно скалярному произведению данных векторов. Рассмотрим пример перемножения строки 1×3 на столбец 3×1.
Пример 10.
>> x=[10 9 5]; y=[8; 4; 5]
y =
8
4
5
>> x*y
ans =
141
Скалярное произведение двух векторов определяется как сумма произведений соответствующих компонент (элементов) двух векторов. В данном случае скалярное произведение равно 10*8+9*4+5*5=141.
Отметим, что скалярное произведение в программе MATLAB можно найти и при помощи специальной функции dot. Так, команда dot(x, y) вычислит то же самое скалярное произведение векторов x и y.
Если мы перемножим столбец 3×1 на строку 1×3, то в результате мы получим матрицу 3×3.
Пример 11.
>> y*x
ans =
80 72 40
40 36 20
50 45 25
Рассмотренные операции сложения (вычитания) и умножения можно, конечно, объединять в более сложные выражения.
Пример 12.
>> A=[5 0; 6 1]; B=[1 1; 2 2];
>> C=A+2*B
C =
7 2
10 5
В результирующей матрице C элемент C(2,1) равен 10, потому что 6+2*2=10.
Отдельно стоит рассмотреть операцию деления вектора (матрицы) на скаляр. В этом случае, очевидно, каждый элемент вектора (матрицы) будет поделен на этот скаляр.
Пример 13.
>> q=[8 4 2]
q =
8 4 2
>> q/2
ans =
4 2 1
Однако при попытке разделить число на вектор (матрицу) система выдаст сообщение об ошибке.
Пример 14.
>> 2/q
Error using /
Matrix dimensions must agree.
Мы получаем сообщение об ошибке «размеры матриц не согласованы».
Рассмотрим теперь операцию возведения матрицы в степень. Операция возведения матрицы в (положительную) степень сводится к операции умножения. Например, операция A^2 равносильна умножению матрицы A на себя, т.е. A*A. В этом случае, очевидно, нужно потребовать, чтобы матрица была квадратной (с одинаковым количеством строк и столбцов), иначе размеры матриц, участвующих в перемножении, не будут согласованы.
Пример 15.
>> A=[2 4; –1 3]
A =
2 4
–1 3
>> A^2
ans =
0 20
–5 5
>> A*A
ans =
0 20
–5 5
Как мы видим, результат один и тот же.
Важной операцией в линейной алгебре является нахождение обратной матрицы.
Обратная матрица – это такая матрица, которая при перемножении на исходную дает единичную матрицу. Обратная матрица, конечно, может быть определена только для квадратной матрицы.
В программе MATLAB обратная матрица может быть найдена с помощью операции возведения в степень –1. Например, команда A^-1 вычисляет обратную матрицу для матрицы A. При этом, если перемножить A^-1 на исходную матрицу A, то результатом будет единичная матрица.
Пример 16.
>> A=[7 5; 1 9]
A =
7 5
1 9
>> A^(-1)
ans =
0.1552 –0.0862
–0.0172 0.1207
>> A^(-1)*A
ans =
1.0000 0.0000
0.0000 1.0000
Единичная матрица – это матрица, в которой на главной диагонали стоят единицы, остальные элементы единичной матрицы равны нулю.
Обратная матрица также может быть найдена с помощью функции inv. Например, команда inv(A) вычислит обратную матрицу для исходной матрицы A.
Операция деления матрицы на матрицу и деления матрицы на вектор, вообще говоря, в линейной алгебре не определена. Но программа MATLAB по-своему определяет эти операции. Например, операция правого деления / сводится к операции умножения матриц следующим образом:
Операция X/Y равносильна умножению X*Y^-1.
Аналогичным образом определяется операция левого деления \:
Операция X\Y равносильна умножению X^-1*Y.
Операции покомпонентного умножения, деления, возведения в степень
Программа MATLAB поддерживает операции покомпонентного умножения двух векторов (матриц). Эта операция обозначается .*, то есть перед знаком умножения ставится точка. При использовании этой операции над двумя векторами (матрицами) соответствующие компоненты этих векторов (матриц) просто перемножаются. В этом случае, очевидно, что операнды должны иметь одинаковый размер. Например, нельзя перемножить с точкой матрицу 3×3 на вектор 3×1. Однако можно перемножить с точкой вектор 1×3 на вектор 1×3.
Пример 1.
>> x=[5 3 6]; y=[2 3 1];
>> x.*y
ans =
10 9 6
Здесь мы перемножаем с точкой вектор-строку на вектор-строку и получаем в ответе тоже вектор-строку с таким же количеством элементов. Очевидно, результат правильный, так как 5*2=10, 3*3=9, 6*1=6.
Операция возведения вектора (матрицы) в степень с точкой определяется аналогичным образом. При этом каждый элемент вектора (матрицы) возводится в эту степень.
Пример 2.
>> x=[-5, –1, 1, 5];
>> x.^2
ans =
25 1 1 25
Здесь каждый элемент вектора-строки 1×4 был возведен в квадрат.
При операции деления с точкой каждый элемент первой матрицы (вектора) делится на соответствующий элемент второй матрицы (вектора).
Пример 3.
>> A=[25 15; 10 8]
A =
25 15
10 8
>> B=[5 3; 2 4]
B =
5 3
2 4
>> С=A./B
С =
5 5
5 2
Проверим правильность вычислений. Очевидно, что 25/5=5, 15/3=5, 10/2=5, 8/4=2. Поэтому результирующая матрица будет иметь компоненты 5, 5, 5, 2.
В заключение отметим, что обычные математические функции также могут быть применены к векторам и матрицам. При этом данная функция вычисляется для каждого элемента вектора (матрицы) и в результате получается вектор (матрица) такого же размера.
Пример 4.
>> x=[0, pi/2, pi, 3*pi/2, 2*pi]
x =
0 1.5708 3.1416 4.7124 6.2832
>> sin(x)
ans =
0 1.0000 0.0000 –1.0000 –0.0000
Здесь для каждого элемента вектора-строки x была вычислена функция синус. Очевидно, что данный вектор x мы могли бы задать с помощью операции двоеточие
>> x=0:pi/2:2*pi
x =
0 1.5708 3.1416 4.7124 6.2832
В заключение мы приводим таблицу с функциями, которые оказываются полезными при работе с массивами.
Таблица 3.4
Полезные функции, при работе с массивами
Функция
Описание
sum(x)
находит сумму всех элементов массива x
prod(x)
находит произведение всех элементов массива x
max(x)
находит максимальный элемент массива x
min(x)
находит минимальный элемент массива x
sort(x)
сортирует элементы массива x в порядке возрастания
x'
операция транспонирования массива x. В частности, если x – столбец, то x' – строка, если x – строка, то x' – столбец.
Оглавление
5. Построение графиков и поверхностей
Одно из важных достоинств системы MATLAB/OCTAVE – обилие инструментов визуализации результатов вычислений, начиная от команд построения простых графиков функций одной переменной в декартовой системе координат и кончая комбинированными и презентационными графиками с элементами анимации, а также средствами проектирования графического пользовательского интерфейса (GUI). Особое внимание в системе уделено трехмерной графике с функциональной окраской отображаемых фигур и имитацией различных световых эффектов.
Все возможности системы реализованы в виде графических объектов. Возможности работы с этими объектами бывают двух видов:
• с использованием стандартных функций. В этом случае система создает стандартные графические объекты, настройки которых пользователю доступны в ограниченном виде. Это так называемая высокоуровневая графика.
• с использованием низкоуровневой дескрипторной графики, которая позволяет при необходимости работать напрямую с графическими объектами (элементами управления, кнопками и т.д.).
Интерфейс графического окна
В графическом окне в основном происходит отображение линий, поверхностей в координатном пространстве. Окно можно отобразить, используя команду figure, результат которой с отображением сетки, представлен на рисунке 3.4.
>>figure
>> grid on % отображение координатной сетки
Рис. 3.4. Вид графического окна
Графическое окно состоит из строки стандартного заголовка (Figure 1), строки главного меню (Uimenu), стандартной панели инструментов (Uitoolbar), панели инструментов "Камера" (Camera), а также рабочей области, где отображается графическая информация.
Главное меню (Uimenu) по умолчанию состоит из семи пунктов: File, Edit, View, Insert, Tools, Window и Help.
File (Файл)
Пункт меню File содержит команды для общей работы с файлами и представлен на рисунке 3.5.
Рис. 3.5. Пункт главного меню File.
Первая группа команд позволяет создать (New) файлы системы MATLAB, в том числе и новое графическое окно (Figure), открыть (Open…) диалоговое окно для выбора необходимого файла. Команда Close закрывает графическое окно.
Следующие команды Save и Save As… используются для сохранения графического окна в файле с расширением .fig, а также при необходимости в любом графическом формате. Generate Code… позволяет создать (сгенерировать) программу-функцию с программным кодом для создания графического окна с определением необходимых характеристик.
Import Data… для загрузки файла с данными.
Save Workspase As… для сохранения рабочего пространства в файл.
Команда Preference… открывает одноименное диалоговое окно для изменения настроек системы MATLAB.
Export Setup… позволяет выполнить все необходимые настройки для сохранения графического окна во внешних файлах различного формата в виде векторной (emf, eps, ai) или растровой (bmp, tif, jpg, png и т.д.) графики.
Print Preiew… – команда, создающая окна предварительного просмотра с возможностью установления необходимых параметров для печати.
Print… – команда вызова диалогового окна, с помощью которого запускается процесс печати.
Edit (Редактирование)
Пункт меню Edit, показанный на рисунке 3.6, позволяет редактировать объекты графического окна.
Первые восемь команд совпадают по назначению с соответствующими командами меню редактирования рабочего стола, но применяются к графическим объектам.
Команда Copy Figure копирует рабочую область графического окна в буфер обмена в формате, определенным с помощью окна Preferences (Figure Copy Template – Copy Options), которое непосредственно может быть вызвано командой Copy Options.
Рис. 3.6. Пункт главного меню Edit.
Следующий блок команд позволяет вызвать редактор свойств для:
• Figure Properties… – настройки свойств графического окна;
• Axes Properties… – настройки свойств координатного пространства;
• Current Object Properties… – настройки свойств текущего объекта;
• Colormap – настройки свойств цветовой палитры графического окна.
Find File – поиск необходимых файлов.
Последняя группа команд относится к очистке графического окна (Figure), командного окна (Command Window), истории команд (Command History), рабочего пространства (Workspace).
View (Вид)
С помощью команд меню View (рис. 3.7) можно управлять видимостью соответствующих панелей:
• Figure Toolbar – стандартная панель инструментов графического окна;
• Camera Toolbar – панель инструментов Камера, выполняющая операции для изменения точки наблюдения в интерактивном режиме;
• Plot Edit Toolbar – панель инструментов для редактирования элементов графики в окне;
Figure Palette – выбор элементов для аннотирования (пояснения) и вида графического объекта (2D, 3D).
Plot Browser – вывод окна обзора используемых графических объектов.
Property Editor – вывод окна настройки редактора свойств с возможностью получить доступ к полному набору свойств More Properties.
Рис. 3.7. Пункт главного меню View.
Insert (Вставка)
Команды меню Insert (рис. 3.8) предназначены для создания объектов в рабочем поле графического окна.
Рис. 3.8. Пункт главного меню Insert.
В первой группе находятся команды, которые позволяют вставить:
• необходимые подписи для оси X (XLabel), Y (YLabel) и Z (ZLabel);
• заголовок (Title) в текущее координатное пространство.
Во второй группе находятся команды, которые позволяют вставить легенду (Legend), свойства которой напрямую зависят от свойств соответствующих линий в координатном пространстве, и шкалу цветовой палитры (Colorbar). Эти объекты можно перемещать в пределах графического окна.
Третья группа позволяет помещать в слой аннотации графического окна линию (Line), стрелку (Arrow), подпись к стрелке (Text Arrow), двойную стрелку (Double Arrow), Текст (Textbox), прямоугольник (Rectangle) и эллипс (Ellipse). Важной особенностью этих объектов является то, что они не масштабируются при изменении положения координатного пространства и угла наблюдения. Они используются на завершающем этапе оформления результатов работы.
Последняя группа позволяет создать координатное пространство (Axes) произвольного размера и источник света (Light).
Tools (Инструменты)
Меню Tools, показанное на рисунке 3.9, позволяет осуществлять интерактивное редактирование объектов, находящихся в графическом окне.
Рис. 3.9. Пункт главного меню Tools.
Включение/Отключение режима редактирования происходит через команду (Edit Plot). При активизации режима редактирования можно выделять графические объекты и изменять их свойства с помощью команд контекстно-зависимого меню.
Команды Zoom In (Увеличения) и Zoom Out (Уменьшения) включают режимы интерактивного изменения области координатного пространства соответственно. Щелчок левой клавиши мыши приводит к увеличению или уменьшению изображения. Противоположное действие происходит при щелчке правой клавиши мыши.
Команда Pan (Панорамирование) позволяет перемещать объект в пределах окна.
Команда Rotate 3D (Вращение) изменяет точку наблюдения, т.е. значения азимута и высоты. Во время изменения точки наблюдения в нижнем левом углу графического окна отображаются текущие значения этих углов.
Data Cursor (Данные) – команда отображения координат необходимых (ключевых) точек графика.
Brush (Кисть) – команда заливки данных выбранным цветом.
Link (Соответствие) – команда вызывает редактор для определения соответствия переменных/выражений и их графического отображения.
Reset View (Сброс настроек) – команда восстановления первоначального изображения.
Options (Опции) – общее окно настройки вышеописанных параметров.
Следующая группа команд позволяет работать с различными элементами сетки: Pin To Axes – привязка к осям, Snap To Layout Grid – привязка к сетке и View Layout Grid – отобразить сетку для визуального позиционирования размещаемых объектов.
Четвертая группа команд позволяет установить режим интеллектуальной настройки (Smart Align and Distribute) выравнивания и взаимного расположения объектов, либо выполнить ручную настройку этих характеристик: выравнивание (Align) объектов по горизонтали и вертикали, расстояние (Distribute) между объектами.
Последние две команды Basic Fitting и Data Statistics – открывают одноименные диалоговые окна для построения сглаживающих кривых до 10-го порядка и отображения статистических данных соответственно.
Пункт меню Desktop (рис. 3.10) позволяет скрыть все строчки меню для увеличения рабочей области графического окна.
Рис. 3.10. Пункт главного меню Desktop.
Команды меню Window (Окно) на рисунке 3.11 позволяют переключаться между созданными графическими окнами (Figure 1), m-файлами и командным окном (0 MATLAB Command Window).
Рис. 3.11. Пункт главного меню Window.
Меню Help (Справка) на рисунке 3.12 содержит команды, обеспечивающие доступ к справочной информации по графическим возможностям системы MATLAB, с объяснением возможных действий с объектом графического окна.
Рис. 3.12. Пункт главного меню Help.
Панель инструментов (Uitoolbar) выполняет традиционную функцию быстрого доступа к командам главного меню.
Элементы для оформления графиков, которые облегчают восприятие графической информации, можно добавлять не только непосредственно в графическом окне, но и с помощью выполнения специальных команд, например, из командного окна:
• hold on (hold off) – включает (отключает) возможность изображения нескольких графиков на одних координатных осях;
• grid on (grid off) – нанесение (отключение) линий сетки на график;
• title(‘заголовок’) – вывод заголовка графика;
• xlabel(‘подпись под осью x’), ylabel(‘подпись под осью y’) – соответственно подписи осей х и у;
• text(m, n,’надпись’) – надпись в заданном месте рисунка, m и n – координаты точки на графике, справа и сверху от которой будет расположена надпись (координаты точки задаются в тех же единицах измерения, что и координаты осей графика);
• legend(‘легенда 1’, ‘легенда 2’, … , ‘легенда n’, k) – легенды для каждого из n-графиков; k – местоположение легенды;
• subplot(m, n, p) – это функция разделения графического окна MATLAB на несколько подокон с различными графиками, где m и n – число частей по вертикали и по горизонтали, на которые делится графическое окно, p – номер подокна в котором нужно отобразить график. Пример того как выглядит окно при выполнении функции subplot показан на рисунке 3.13.
Рис. 3.13. Действие команды subplot(2,2, p)
Команды, приводящие к такому результату:
>> figure;
>> subplot(2,2,1)
>> grid on
>> xlabel('X');
>> ylabel('Y');
>> title('subplot(2,2,1)')
>> subplot(2,2,2)
>> grid on
>> xlabel('X');
>> ylabel('Y');
>> title('subplot(2,2,2)')
>> subplot(2,2,3)
>> grid on
>> xlabel('X');
>> ylabel('Y');
>> title('subplot(2,2,3)')
>> subplot(2,2,4)
>> grid on
>> xlabel('X');
>> ylabel('Y');
>> title('subplot(2,2,4)')
Рассмотренные выше команды можно легко набрать в командном режиме (из командной строки).
Графики функций одной переменной
Функции одной переменной у(х) находят широкое применение в практике математических и других расчетов, а также в технике компьютерного моделирования. Для отображения таких функций используются графики в декартовой (прямоугольной) системе координат. При этом обычно строятся две оси – горизонтальная X и вертикальная Y. Далее задаются координаты нескольких точек графика функции вдоль этих осей, которые записываются в массивах х и у, соответственно. Эти точки являются узловыми точками графика функции у(х). Далее точки соединяются друг с другом отрезками прямых, т.е. при построении графика осуществляется линейная интерполяция между узловыми точками. Поскольку MATLAB – матричная система, совокупность точек у(х) задается векторами х и y одинакового размера.
Команда plot служит для построения графиков функций в декартовой системе координат. Эта команда имеет ряд параметров, рассматриваемых ниже.
• plot (x, y) – строит график функции у(х), координаты точек которой (х, у) берутся из векторов одинакового размера x и y. Если X или Y – матрица, то строится семейство графиков по данным, содержащимся в колонках матрицы.
Приведенный ниже пример иллюстрирует построение графиков двух функций – sin(x) и cos(x). Значения этих функций содержатся в матрице Y, а значения аргумента х хранятся в векторе х:
>> х=[0 1 2 3 4 5];
>> Y=[sin(x);cos(x)];
>> subplot(1,2,1)
>> plot(x, Y)
На рисунке 3.14a показан график функций из этого примера. В данном случае отчетливо видно, что график состоит из отрезков, так как была использована линейная интерполяция между точками. Если вам нужно, чтобы отображаемая функция имела вид гладкой кривой, необходимо увеличить количество узловых точек:
>> х=0:0.01:5;
>> Y=[sin(x);cos(x)];
>> subplot(1,2,2)
>> plot(x, Y)
Получившийся график изображен на рисунке 3.14b.
Рис. 3.14. Графики двух функций в декартовой системе координат с небольшим количеством точек a и с большим количеством точек b.
• plot(Y) – строит график у(i), где значения у берутся из столбцов матрицы, a i представляет собой индекс соответствующего элемента.
>>y=magic(4)
y=
16 2 3 13
5 11 10 8
9 7 6 12
4 14 15 1
>> plot(y)
Результат показан на рис. 3.15а.
• Если y содержит комплексные элементы, то выполняется команда plot (real(y), imag(y)), т.е. мнимая часть комплексного числа строится как функция от действительной части комплексного числа.
Пример использования команды plot(Y):
>> х=-2*pi:0.02:2*pi;
>> y=sin(x)+i*cos(3*x);
>> plot(y)
Соответствующий график показан на рисунке 3.15b.
a. y – "магический квадрат"
b. y с комплексными элементами
Рис. 3.15. График функции, представляющий результат выполнения команды plot(y)
• plot(X, Y, S) – аналогична команде plot(X, Y), но определенные характеристики линии графика можно задавать с помощью строковой константы S.
Значениями константы S могут быть символы из таблицы 3.5:
Таблица 3.5
Параметры для управления цветом, видом маркеров и стилем линий графиков
Параметр
Обозначение
(управляющий символ)
Тип линии
сплошная (по умолчанию)
–
пунктирная
:
штриховая
––
штрихпунктирная
–.
Цвет линии
красный (от англ. red)
r
желтый (от англ. yellow)
y
зеленый (от англ. green)
g
синий (от англ. blue)
b
голубой /циановый/ (от англ. cyan)
c
розовый /малиновый/ (от англ. magenta)
m
черный (от англ. black)
k
белый (от англ. white)
w
Тип маркера
точка (жирная точка)
.
кружок
о
крестик (косоугольный крестик)
x
плюс (прямоугольный крестик)
+
звездочка (восьмиконечная снежинка)
*
квадратик
s
ромбик
d
отсутствие маркера
none
треугольник вершиной вниз
v
треугольник вершиной вверх
^
треугольник вершиной влево
<
треугольник вершиной вправо
>
пятиконечная звезда
p
шестиконечная звезда
h
Таким образом, с помощью строковой константы S можно изменять цвет линии, представлять узловые точки различными отметками (точка, окружность, крест, треугольник с разной ориентацией вершины и т.д.) и менять тип линии графика. Например, plot(x, y,’r-.’) нарисует линию красным цветом r и эта линия будет штрихпунктирной (знак –.).
• рlot (X1, Y1, S1, Х2, Y2, S2, ХЗ, Y3, S3,...) – эта команда строит на одном графике ряд линий, представленных данными вида (X, Y, S), где X и Y – векторы или матрицы, a S – строки, которые определяют тип линии, цвет линии и тип маркера для отображения представляемых точек.
С помощью такой конструкции возможно построение, например, графика функции линией, цвет которой отличается от цвета узловых точек. Так, если надо построить график функции линией синего цвета с красными точками, то вначале можно задать построение графика с точками красного цвета (без линии), а затем графика только линии синего цвета (без точек) (см. рис. 3.16)
>>x=0:0.1:2*pi;
>>y=cos(x);
>>plot(x, y,'r.', x, y,'-b')
Рис. 3.16. График функции с линией синего цвета и красными точками
При отсутствии указания на цвет линий и точек он выбирается автоматически из таблицы цветов (белый исключается). Если линий больше шести, то выбор цветов повторяется. Для монохромных систем линии выделяются стилем.
Для построения графиков функций со значениями х и у, изменяющимися в широких пределах, нередко используются логарифмические /полулогарифмические масштабы. Для этого предназначены функции semilogx (логарифмический масштаб по оси Х), semilogy (логарифмический масштаб по оси Y) и loglog (логарифмический масштаб по обеим осям). Синтаксис этих команд аналогичен ранее рассмотренному для функции plot(...). Неравномерное расположение линий координатной сетки указывает на логарифмический масштаб осей.
Трехмерная графика в MATLAB
Система MATLAB предоставляет обширные возможности визуализации трехмерных графических объектов. Рассмотрим лишь несколько функций, которые нам понадобятся для решения практических задач, связанные с построением графиков функций двух переменных (поверхностей в пространстве).
Общий алгоритм визуализации функций
Порядок действий при построении графиков функций двух переменных аналогичен последовательности при построении графика с одной переменной, который мы уже рассмотрели. Поэтому сформулируем общий алгоритм для построения графиков:
• задаются массивы аргументов;
• вычисляется массив соответствующих значений функции;
• вызывается специальная функция для вывода графика на экран;
• график оформляется, т.е. на графике отображается поясняющая информация (название графика, заголовки осей, соответствие цветов значениям функции, изменение палитры цветов и т.д.).
Рассмотрим более подробно, каким образом формируются необходимые матрицы, используемые при визуализации поверхности.
1. Задаются значения аргументов x и y.
2. Во всех точках с координатами вычисляется значение функции . Для всех таких точек i=1,2,..., M имеем соответствующие массивы точек.
3. Соответствующие функции системы MATLAB проводят через эти точки гладкую поверхность и отображают ее проекцию на экран монитора компьютера.
Наиболее часто для вычисления аргументов используется разбиение области определения функции , в виде прямоугольной сетки. Для описания такой сетки в MATLAB необходимо создать две матрицы, которые мы будем обозначать здесь через X и Y. Число строк в этих матрицах равно количеству узлов разбиения отрезка [ymin, ymax], а число столбцов – количеству узлов разбиения отрезка [xmin, xmax]. При этом все столбцы матрицы X одинаковые и содержат координаты узлов разбиения отрезка [xmin, xmax], а строки матрицы Y также все одинаковые и содержат координаты узлов разбиения отрезка [ymin, ymax]. Для формирования таких матриц используется функция meshgrid, имеющая следующий синтаксис:
[X Y]=meshgrid(x, y)
где x и y – векторы, содержащие координаты узлов сетки (табличных точек) вдоль координат x и y соответственно (рис. 3.17).
Рис. 3.17. Результат действия функции meshgrid
В дальнейшем в каждом узле полученной таким образом прямоугольной сетки вычисляются значения функции и сохраняются в соответствующей матрице Z.
Функции для построения поверхностей.
Система MATLAB располагает набором функций, применяемых для построения трехмерных графиков:
plot3 – применяется для построения поверхности в виде линий, получаемых сечением поверхности плоскостями, параллельными плоскости y0z;
mesh – применяется для построения каркасной поверхности или иначе проволочного каркаса (wireframe), который образуется путем соединения точек поверхности с ближайшими соседями отрезками прямых;
surf – применяется для построения каркасной поверхности, каждая клетка которой закрашивается определенным цветом, что позволяет значительно улучшить восприятие поверхности;
Рассмотрим в качестве примера задачу отображения функции при и . Для ее решения воспользуемся surf (рис. 3.18)
>> x=-2:0.1:2;
>> y=-1:0.1:1;
>> [X, Y]=meshgrid(x, y);
>> Z=exp(-X.^2-Y.^2);
>> figure
>> surf(X, Y, Z);
>> xlabel (' ось X');
>> ylabel (' ось Y');
>> zlabel (' ось Z');
>> title ('поверхность surf');
Рис. 3.18. Построение поверхности функцией surf с добавлением в графическом окне цветовой палитры.
Все трехмерные графики, рассмотренные ранее, визуализировались, по сути, лишь из одной точки обзора, т.е. оси координат x, y и z на изображении всегда были ориентированы (повернуты) одинаково. Тем не менее, в системе MATLAB имеется возможность, изменяя точку обзора, рассмотреть созданное изображение с разных сторон.
Точка обзора – это позиция, с которой пользователь видит трехмерное изображение. Расположение точки обзора определяется двумя параметрами: азимутом (az) и углом возвышения (el). Азимут это угол, изменение которого означает вращение плоскости x0y вокруг оси 0z против хода часовой стрелки; отсчитывается от оси, направленной противоположно оси y, в направлении против часовой стрелки. Углом возвышения называется угол между отрезком, направленным из начала координат в точку обзора и плоскостью x0y. Заметим, что расстояние от точки обзора до изображения при этом не учитывается.
По умолчанию для функций mesh и surf установлены значения az=–37.5 (322.5 градусов) и el=30 (градусов). Убедиться в этом можно посредством функции view, обратившись к ней должным образом:
>> [az, el]=view
az =
–37.5000
el =
30
Изменения точки обзора можно выполнить через меню графического окна (например, через панель инструментов Camera) или с использованием дескрипторной графики.
Дескрипторная графика
Пользователь MATLAB имеет ряд возможностей для построения графиков функций и визуализации данных:
• высокоуровневые графические функции (plot, surf, mesh и многие другие);
• интерактивную среду Plotting Tools, компонента которой Plot Editor (редактор графиков) также позволяет изменять свойства элементов графика;
• специализированные функции и средства ToolBox для графического отображения характеристик исследуемых объектов и результатов.
Этого набора оказывается недостаточно, если приложение должно осуществить вывод графических результатов в готовом виде, не предполагающем их дальнейшую правку в редакторе графиков. В этом случае использование дескрипторной графики и низкоуровневых графических функций дает возможность полного контроля над элементами графиков.
Итак, дескрипторная графика будет полезна создателям собственных приложений. Ее понимание обязательно для эффективного написания приложений с графическим интерфейсом пользователя.
Рассмотрим пример:
>>x = 0:0.2:10;
>>y = cos(x);
>>plot(x, y,'LineWidth',2,'Marker','o','MarkerSize',10)
В данном примере при построении графика функцией plot заданы следующие свойства линии:
• LineWidth – толщина линии 2 пт.;
• Marker – вид маркера в виде кружка 'o';
• MarkerSize – размер маркера 10 пт.
Знание свойств графических объектов полезно и тем, кто не планирует заниматься программированием сложных приложений, но хочет получать графические результаты без их дальнейшей модификации в редакторе графиков.
В этой связи приведем ниже еще один пример (рис. 3.19).
>> x=0:0.1:2*pi;
>> y=cos(x);
>> hplot=plot(x, y,'r.', x, y,'-b');
>> set(hplot,'linewidth',1,'markersize',12);
В данном случае команда plot через узловые точки проводит отрезки прямых линий с координатами x, y. Прямые линии в системе MATLAB представляют собой объекты типа line. Эти объекты имеют очень большое количество свойств и характеристик, которые можно менять. Доступ к этим объектам осуществляется посредством их дескрипторов.
Командой hplot=plot(x, y) создается графический объект и переменной hplot присваивается значение дескриптора графического объекта типа line, использованного для построения графика функции y=cos(x).
Затем данный дескриптор передается в качестве параметра функции set для опознания конкретного графического объекта и задания значений соответствующих свойств объекта.
В рассматриваемом примере было установлено значение свойства 'linewidth' (толщина линии) равным 1 (по умолчанию 0.5) и размер маркера 'markersize' – 12 (по умолчанию 6). График, полученный в результате изменения толщины линии и размера маркера, представлен на рисунке 3.19.
Рис. 3.19. График функции y=cos(x) на интервале (толщина кривой 1 пиксель и размер маркера 12).
Оглавление
6. Сравнения, логические операции, операторы ветвления в MATLAB/OCTAVE
В этой лекции мы будем рассматривать логические операции и операции отношения. Результатом этих операций является логическая переменная, которая принимает значение Истина (True) или Ложь (False) и занимает в памяти 1 байт.
Операторы отношения и их функции
Операторы отношения служат для сравнения двух величин, векторов или матриц между собой. Все операторы отношения и соответствующие им функции имеют два операнда, например х и у, и записываются, как показано в таблице 3.6.
Таблица 3.6
Операторы и функции отношения
Название операции отношения
Оператор
Функция
Пример
Равно
= =
eq
x = = y или eq (x, y)
He равно
~ =
ne
x ~= y или ne(x, y)
Меньше чем
<
lt
x
gt
x>y или gt(x, y)
Меньше или равно
<=
le
x<=y или le(x, y)
Больше или равно
>=
ge
x>=y или ge(x, y)
Данные операторы выполняют поэлементное сравнение векторов или матриц одинакового размера и возвращают значение 1 (True – Истина), если элементы идентичны, и значение 0 (False – Ложь) в противном случае.
Рассмотрим возможные ситуации.
1. Если операнды – действительные числа, то применение операторов отношения тривиально:
>> 2==2
ans =
1
>> 2 ~= 2
ans =
0
>> 5 > 3
ans =
1
2. Если один из операндов – скаляр, а другой – массив, то происходит сравнение всех элементов массива со значением скаляра:
M=
–1 0
1 2
>> М>=0 % Сравнение матрицы М с 0
ans =
0 1
1 1
3. В общем случае при сравнении двух массивов операторы отношения сравнивают два массива одного размера и выдают результат в виде массива того же размера:
>> М>[0 1;0.1 0]
ans =
0 0
1 1
Таким образом, спектр применения операторов отношения в системе MATLAB/OCTAVE шире, чем в обычных языках программирования, поскольку операндами являются не только числа, но и векторы, матрицы и массивы.
Логические операции
Мы рассмотрели простые операции отношения. При формировании сложных логических высказываний используют логические операции.
Поэлементные логические операции
Поэлементные (element-wise) логические операции над элементами одинаковых по размеру массивов реализованы в виде логических функций и соответствующих им операторов. Они представлены в таблице 3.7.
Таблица 3.7
Логические функции и операторы MATLAB
Название
Функция
Оператор
Пример
Логическое умножение (конъюнкция) И (AND)
and
&
x&y или and(x, y)
Логическое сложение (дизъюнкция) ИЛИ (OR)
or
–
x|y или or(x, y)
Логическое отрицание (инверсия) НЕ (NOT)
not
~
~x или not(x)
Исключающее ИЛИ (eXclusive OR)
xоr
xоr(x, y)
Истинно (верно), если в заданном векторе есть хотя бы один ненулевой элемент
any
any(x)
Верно, если все элементы вектора не равны нулю
all
all(x)
Логические операции определяют свои операнды как «истинные», если числовые значения элементов отличны от нуля, и «ложные», если элементы соответственно равны нулю.
Рассмотрим действие нескольких операций на примере. Пусть
>>А=[1 2 3]; В=[1 0 0];
Логическое И – операция бинарная (с двумя операндами). Результат операции «Логическое И» равен 1 («истина»), если соответствующие элементы операндов не равны 0; во всех остальных случаях операция «Логическое И» возвращает значение 0 («ложь»).
>> A&B
ans =
1 0 0
>>and(A, B)
ans =
1 0 0
Логическое ИЛИ – операция бинарная (с двумя операндами). Результат операции «Логическое ИЛИ» равен 0 («ложь»), если соответствующие элементы операндов равны 0, во всех остальных случаях операция «Логическое ИЛИ» возвращает значение 1 («истина»).
>> А|В
ans =
1 1 1
>> or(A, B)
ans=
1 1 1
>>or([1 0 1],[0 0 0])
ans=
1 0 1
Логическое НЕ – операция унарная (с одним операндом). Операция «Логическое НЕ» инвертирует ложь на истину и наоборот, т.е. если ее операндом является ненулевое число, то эта операция возвращает 0, а если операнд нулевой, то тогда значением рассматриваемой операции будет единица.
>> ~A
ans =
0 0 0
>> ~B
ans =
0 1 1
>> not(B)
ans=
0 1 1
Исключающее ИЛИ – операция бинарная (с двумя операндами). Результат операции «Исключающее ИЛИ» равен 0 («ложь»), если соответствующие элементы операндов имеют равное значение, во всех остальных случаях операция «Исключающее ИЛИ» возвращает значение 1 («истина»).
>> xor(A, B)
ans =
0 1 1
>>xor([1 0 1],[1 1 1])
ans=
0 1 0
Более наглядное представление о работе логических операторов дает таблица истинности 3.8, где в качестве операндов используются значения 0 и 1.
Таблица 3.8
Работа логических операторов и функций. Таблица истинности
x
y
x&y and(x, y)
x|y or(x, y)
~x not(x)
xor(x, y)
1
1
1
1
1
1
1
1
1
1
1
1
Рассмотрим еще примеры. Зададим x и y:
>>x=5; y=2;
>>x<3 && y>0
ans =
0
Здесь мы использовали операцию &&, но она эквивалентна &. Число 5 не меньше 3, поэтому результатом логического выражения x<3 является ложь. Далее, 2>0, поэтому результатом логического выражения y>0 является истина. Но ложь и истина при использовании конъюнкции дают ложь. Поэтому в результате мы получили 0 – ложь.
>>x>3 || y<0
ans =
1
В этом примере мы использовали операцию ||, но она эквивалентна |. Число 5 больше 3, поэтому результатом логического выражения x>3 является истина. Далее, 2<0 является ложным выражением, поэтому результатом логического выражения y<0 является ложь. Истина и ложь при использовании дизъюнкции дают истину. Поэтому в результате мы получили 1 – истина.
Приоритет операций
В одном выражении можно использовать все рассмотренные операции (арифметические, логические, операции сравнения), при этом последовательность выполнения операций определяется их расположением внутри выражения, их приоритетом и наличием круглых скобок (круглые скобки используются, в частности, для изменения приоритета операций в математических выражениях, причем степень вложения скобок не ограничивается).
Например, пусть x=3, y=5 и z=9. Тогда
>> (x, >=, ==, ~=);
• Поэлементное "И" (&);
• Поэлементное "ИЛИ"(|);
Обратите внимание, что операция ИЛИ имеет более низкий приоритет по сравнению с операцией И.
Операторы ветвления
Алгоритмы структурного программирования могут быть построены с использованием трех структур: следования, выбора и повторения. До сих пор мы использовали только структуру следование, в которой все инструкции выполнялись в линейном порядке друг за другом. Сейчас же, подробно рассмотрев логические операции и отношения, мы можем перейти к изучению следующей управляющей структуры – ветвления и ее реализации на языке MATLAB/OCTAVE.
Стоит обратить внимание, что управляющие структуры ветвления на языке MATLAB/OCTAVE удобнее записывать в m-файлах.
К операторам ветвления относятся три структуры:
if end – структура с единственным выбором (неполное ветвление);
if else end – структура с двойным выбором (полное ветвление);
switch – структура с множественным выбором.
Структура выбора if end (ЕСЛИ)
Структура if end используется тогда, когда надо выполнить одно или несколько действий в зависимости от выполнения заданного условия:
if условие
Инструкция_1
Инструкция_2
…
Инструкция_N
еnd
Здесь условие это произвольное выражение, содержащее операции сравнения и логические операции, например, x>2 & x<10.
Если условие принимает значение истинно (единица), то выполняются инструкции, которые располагаются в теле управляющей конструкции (до end). В противном случае управление передается на следующую инструкцию после end. Логическое выражение в языке MATLAB может возвращать массив логических значений. В этом случае истинность условия наступает, когда истинны (не равны нулю) все элементы массива. Условие считается ложным, если хотя бы один элемент такого массива равен нулю или при использовании пустого массива.
Рассмотрим пример использования этой конструкции.
Пример 1. Определим, находятся ли введенные пользователем точки в заштрихованной области, изображенной на рисунке 3.20.
Рис. 3.20. Пример использования конструкции if..end для определения положения точки
Для организации диалога пользователя с программой в системе MATLAB воспользуемся командой для ввода числовой и символьной информации input().
Для ввода числовой информации синтаксис команды input имеет вид:
имя_переменной= input('текст приглашения');
В этом случае числовое значение, которое введет пользователь в ответ на приглашение, будет присвоено переменной с именем имя_переменной.
Для ввода символьной информации (строчки) синтаксис команды имеет вид:
имя_переменной= input('текст приглашения','s');
В этом случае введенный пользователем текст рассматривается как строка символов, которая возвращается функцией input и присваивается переменной с именем имя_переменной.
Для вывода результатов вычисления воспользуемся функцией disp(выражение). Через эту функцию можно выводить и поясняющий текст. В этом случае аргумент должен быть строкой, заключенной в апострофы:
x=input('Введите координату X ');
y=input('Введите координату Y ');
t = x^2+y^2 >= 1;
if and(t, and(abs(x)<=1, abs(y)<=1))
disp(' Точка внутри закрашенной области');
disp('x= '); disp(x);
disp('y= '); disp(y);
end
Инструкции, находящиеся внутри условия if end, будут выполняться, только если логическая переменная t=1 (истина), abs(x)<=1 и abs(y)<=1. Выполнение данной программы будет выглядеть так:
>>Введите координату X 0.9
>>Введите координату Y 0.8
Точка внутри закрашенной области
x=
0.9000
y=
0.8000
Структуру выбора if end можно записать и в одну строку, отделяя условие и инструкции друг от друга с помощью запятой или точки с запятой:
if условие , Инструкция_1, Инструкция_2, …; Инструкция_N; end
Чаще такую запись используют в случае, если конструкция выбора содержит одну инструкцию:
if and(t, and(abs(x)<=1, abs(y)<=1)), disp('Точка внутри области'); end
Структура выбора if else end (ЕСЛИ ИНАЧЕ)
Структура выбора if else end применяется для определения полного ветвления, в котором в зависимости от результата условия будет выполняться только один блок инструкций. Синтаксис этой конструкции:
if условие
Инструкция_true_1
Инструкция_ true_2
…
Инструкция_ true_N
else
Инструкция_false_1
Инструкция_ false _2
…
Инструкция_ false _N
…
end
При выполнении простейшего фрагмента программы
A=[1 2; 3 0];
if A
b=1;
else
b=2;
end
получим, что переменная b примет значение 2, потому что матрица A содержит один нулевой элемент, в результате чего все условие считается ложным. Отметим, что запись типа if A по своему действию полностью эквивалентна записи if A~=0 (если A не равно нулю).
Усложним задачу для примера, рассмотренного выше.
Пример 2. Требуется определить, находится ли введенная точка в зеленой зоне или внутри круга (в бежевой зоне) (рис. 3.21)
Рис. 3.21. Пример использования конструкции if…else ...end для определения положения точки
x=input('Введите координату X ');
y=input('Введите координату Y ');
t = x^2+y^2 >= 1;
if and(abs(x)<=1, abs(y)<=1)
if t
disp(' Точка внутри зеленой области');
disp('x= '); disp(x);
disp('y= '); disp(y);
else
disp(' Точка внутри круга');
disp('x= '); disp(x);
disp('y= '); disp(y);
end
end
Теперь при вводе любых значений и мы получим ответ, где находится точка.
Обратите внимание, что в этом примере условие if – else – end вложено внутри условия if – end.
Конструкции повторения (циклы)
Векторный подход системы MATLAB/OCTAVE позволяет создавать компактные и быстродействующие программы. Однако возникают ситуации, когда требуется задание инструкций, которые должны быть повторены определенное количество раз. Для этой ситуации в языке MATLAB/OCTAVE существует две структуры повторения или цикла: for….end и while…end.
Структура повторения, иначе называемая циклом (loop), задает процесс выполнения инструкций, составляющих тело цикла, определенное количество раз. Если логика решения задачи позволяет определить количество повторений, то в этом случае используют структуру for….end. Если же количество повторений заранее неизвестно, то в этом случае необходимо сформулировать условие, которое будет определять, продолжить или завершить выполнение цикла, и после этого использовать структуру while…end. Операторы цикла можно вводить как в командном режиме (интерактивном), так и в текстах на m-языке. При вводе цикла в командном режиме символ готовности MATLAB/OCTAVE появится только тогда, когда конструкция будет завершена зарезервированным словом end.
Структура цикла for….end
Рассмотрим структуру for….end. Эта структура имеет две формы:
for параметр_цикла = начальное_значение:шаг:конечное_значение
Инструкции
еnd
или
for параметр_цикла = переменная
Инструкции (тело цикла)
end
Параметр_цикла – это переменная, имя которой выбирает программист по соответствующим правилам присвоения имен, рассмотренных ранее. Параметр_цикла является счетчиком количества повторений или количеством шагов цикла.
Шаг – это приращение изменения параметра_цикла. Шаг может быть положительным или отрицательным, вещественным или целым. Если он равен 1, то в этом случае шаг можно не задавать.
Начальное_значение и конечное_значение – границы отрезка, в которых с заданным шагом изменяется параметр_цикла.
Тело цикла – набор инструкций, заключенных между for….end. Инструкции могут разделяться между собой точкой с запятой (;), запятой (,) или нажатием клавиши ENTER для перехода на новую строку.
Цикл начинается с того, что проверяется условие: конечное_значение>=начальное_значение при положительном шаге или конечное_значение<=начальное_значение при отрицательном шаге. Если условие выполняется, то происходит выполнение инструкций, находящихся в теле цикла. Цикл завершает свою работу, как только параметр_цикла превысит конечное_значение при положительном шаге или станет меньше конечного значения при отрицательном шаге. При этом параметр_цикла сохраняет последнее значение, при котором выполнялся цикл. После чего управление передается на инструкцию после end.
Пример. Для X, принимающего последовательно значения 1, 3, 5, вычислим значения .
for x=1:2:5
y=x^2
end
x
Результат кода:
y=
1
y=
9
y=
25
x=
5
Пример. Рассмотрим пример вычисления частичной суммы , состоящей из 10 слагаемых, . Для подсчета суммы нужно ввести дополнительную переменную, которая хранит значение суммы, и в начале ее обнулить. Обозначим эту переменную . Тогда программа может выглядеть таким образом:
clc
s=0;
for k=1:10
s=s+1/k^2;
end
disp('это сумма');
disp(s)
Обратите внимание, что если мы распечатываем строчку, то ее нужно заключить в кавычки, так как это строковая переменная. Если же мы выводим на экран число (в данном случае s), то эту переменную заключать в кавычки не надо. После выполнения этой программы будет выведено число 1.5498.
Пример. Рассмотрим пример вычисления количества положительных элементов в массиве. Массив задается пользователем. Для того чтобы посчитать количество, мы должны ввести дополнительную переменную, которая будет хранить значение этого количества, и в начале обнулить эту переменную. Обозначим ее k. Тогда программа может выглядеть таким образом:
clc
C = [2 –2 3 4 5 –2 5 –8 0 10];
k=0;
n = length(C);
for i=1:n
if C(i)>0
k=k+1;
end
end
disp('это количество');
disp(k)
Обратите внимание, что мы используем условие if внутри цикла for. Нулевой элемент не считается положительным, поэтому количество положительных чисел для данного примера равно 6.
Если нам нужно рассмотреть в цикле только элементы с нечетными номерами или только элементы с четными номерами, то мы можем использовать циклы
for i=1:2:n
% заполняем цикл
end
и
for i=2:2:n
% заполняем цикл
end
При использовании второй формы оператора цикла for….end параметр_цикла принимает значение из очередного столбца переменной (вектора или матрицы), и соответственно, число повторов этого цикла равно числу столбцов в переменной. Например, зададим переменную x=[1 4 6 8 11] в виде вектора. Присвоив вектор x параметру_цикла k, цикл будет выполняться 5 раз с соответствующими значениями параметра k=1, k=4 и т.д.
x=[1 4 6 8 11];
for k=x
y=k*2;
end
В результате y примет последовательно значения 2, 8, 12, 16 и 22.
В качестве переменной в цикле может использоваться и матрица:
A=[1 2; 3 4];
for x=A
disp(x);
end
Количество повторений такого цикла совпадает с количеством столбцов матрицы A, т.е. в рассматриваемом примере цикл повторится два раза. На каждом шаге цикла переменная цикла x принимает значение очередного столбца матрицы, т.е. переменная цикла является вектором-столбцом. Так, например, приведенный ниже фрагмент программы вычисляет последовательно вектор-столбец y, значение которого равно квадрату соответствующих значений вектора-столбца матрицы А:
A=[1 2; 3 4];
for x=A
y=x.^2
end
y=
1
9
y=
4
16
Структура цикла while …end
Важной особенностью этой структуры является то, что инструкции, расположенные в теле цикла, начинают выполняться и повторно выполняются только в том случае, если некоторое заданное условие истинно. Как только условие становится ложным, происходит выход из структуры повторения. При этом возможна ситуация, когда условие принимает значение «ложь» при входе в цикл, тогда цикл не будет выполняться ни разу и управление будет передано на инструкцию, стоящую после цикла (после end).
Структура цикла с условием имеет следующие формы:
while логическое_выражение
Инструкции
end
while переменная
Инструкции
end
Логическое_выражение – это любое распознанное MATLAB/OCTAVE выражение, которое может включать операции сравнения и логические операции. Цикл while будет выполняться, пока результатом логического выражения будет истина.
Переменная в цикле while может быть логического класса, арифметического класса двойной точности или символьного класса. Цикл while в этом случае будет выполняться, если переменная не содержит пустой массив или элементы с нулевыми значениями.
Рассмотрим пример вычисления частичной суммы ряда .
Для решения этой задачи нам понадобится несколько переменных, начальные значения которых надо определить до выполнения цикла. Начальные значения присваиваются, исходя из логики решаемой задачи.
• для вычисления суммы введем переменную s. Во время выполнения цикла будет происходить последовательное накопление результата вычисления в переменную s. Начальное значение суммы s=0. Если цикл не будет выполняться, s останется с нулевым значением.
• переменная k, которая должна последовательно принимать значения с шагом 1. Начальное значение k=1.
• переменная u, равная значению очередного значения члена ряда (u=1./k^2). Начальное значение u при k=1 равно 1 (u=1), так как 1/1^2=1.
Решение задачи происходит в процессе многократных вычислений k, u и s, поэтому будем использовать цикл. Так как ряд является бесконечным, необходимо условие, определяющее, сколько членов ряда нам надо просуммировать. Для данного класса задач это условие связано с точностью вычислений. Условием останова в данном случае будет требование к суммированию только тех членов ряда, которые больше некоторого заранее заданного числа (в данном случае это 10–8). Как только очередное слагаемое станет меньше этого числа, условие, стоящее после ключевого слова while, становится ложным и суммирование прекращается.
s=0; k=1; u=1;
while u>1.e-8
s=s+u;
k=k+1;
u=1./k^2;
end
Досрочное прерывание цикла
При решении задач может возникнуть ситуация нецелесообразности дальнейшего выполнения цикла. В этом случае используют команды досрочного прерывания циклов.
• команда break осуществляет выход из структуры повторения. Это позволяет размещать фактическое условие останова внутри тела цикла, а не в его заголовке. В таком случае в заголовке цикла можно писать всегда истинное выражение, например, while 1. Если оператор break применяется во вложенном цикле, то он осуществляет выход только лишь из внутреннего цикла.
• команда continue прерывает выполнение лишь текущего шага цикла, т.е. позволяет перейти к следующей итерации в операторах циклов for и while, игнорируя все операторы, которые следуют за ним в теле цикла. Если оператор continue встречается во вложенном цикле, то осуществляется переход к следующей итерации основного цикла.
Пример. Для иллюстрации действия команд прерывания рассмотрим такую задачу. Пользователь последовательно вводит в командную строку числа. Нужно подсчитать, сколько из введенных чисел являются простыми.
Простое число – это положительное целое число, которое не имеет других делителей кроме 1 и самого себя. Функцией проверки числа, является ли оно простым или составным, в MATLAB является isprime(число). Функция возвращает либо подтверждение (истина), либо отрицание (ложь) этого факта.
В программе будем использовать break; если пользователь введет нуль (0) или отрицательное число, тогда цикл завершит свою работу.
Если очередное введенное число не является простым, тогда операции, связанные с формированием ответа и подсчета количества простых чисел, выполнять не надо. Для этой ситуации воспользуемся оператором continue.
Программу сохраним в m-файле с именем num_prime.m
num=0; % счетчик простых чисел
% для формирования результата rez вначале равна пустой строке
rez=' ';
while 1 % количество чисел заранее неизвестно
p=input('Введите положительное число (для выхода из программы – 0): ');
if p <= 0
disp(' Ввод чисел завершен ')
break; % Выход из цикла while
end
if ~isprime(p)
continue % переход к вводу нового числа
end
s=['Введено простое число: ' num2str(p)];
disp(s);
num=num+1; % наращивание счетчика
%сцепление строк для формирования ответа
rez=[rez num2str(p) ' '];
end % закрываем цикл while
%формируем отчет
if num %если количество простых чисел не ноль
s=['Количество простых чисел ' num2str(num)];
disp(s);
result=['Простые числа: ' rez];
disp(result)
else
disp('Простых чисел нет ')
end
Результат работы m-файла num_prime.m
>> num_prime
Введите положительное число (для выхода из программы –0): 4
Введите положительное число (для выхода из программы –0): 5
Введено простое число: 5
Введите положительное число (для выхода из программы –0): 9
Введите положительное число (для выхода из программы –0): 7
Введено простое число: 7
Введите положительное число (для выхода из программы –0): 0
Ввод чисел завершен
Количество простых чисел 2
Простые числа:
5 7
Функция num2str преобразовывает число в строчку. В результате выполнения команды
s=['Введено простое число: ' num2str(p)];
две строчки будут объединены в одну строчку, сообщающую какое простое число было введено.
Пример. Рассмотрим еще один пример на использование циклов и оператора условия if. Это игра «Угадай число». В этой игре компьютер загадывает число, используя генератор случайных чисел rand, а пользователь его отгадывает. Будем для простоты считать, что загадано целое число в пределах от 1 до 10. В программе число, которое было загадано, обозначено переменной a, а число, которое вводит пользователь, обозначено как b. Если переменная b равна переменной а, то игра заканчивается, так как в этом случае число было угадано. Если эти числа не равны, то дается еще попытка угадать число. Переменная attempt считает количество попыток, которое было затрачено, для того чтобы отгадать число. Обратите внимание, что строка или текст, который выводится на экран, заключается в одинарные кавычки, так как это строковая переменная, а не число.
clc
a = rand(1); %% случайное число
a = a*10;
a = fix(a); %% округление
a = a+1;
disp('Число от 1 до 10 загадано');
disp('Игра начинается');
attempt=0;
while 1
disp('Введите ваше число от 1 до 10');
b = input(' ');
attempt = attempt + 1;
if a==b
disp('Вы угадали число');
disp('Поздравляем');
break;
else
disp('Число не угадано');
end
end
disp('Количество попыток:');
disp(attempt);
В начале программы функция rand генерирует случайное число от 0 до 1. Если мы увеличим это случайное число в 10 раз, то это уже будет случайное число от 0 до 10, но оно не будет целым. Функция fix округляет это число до целого в сторону уменьшения. После выполнения функции fix мы получим случайное целое число от 0 до 9. После увеличения на единицу мы получим целое число от 1 до 10.
Игра реализована в виде цикла while, в котором пользователь вводит свои числа-догадки. Мы прерываем цикл while командой break (и тем самым заканчиваем игру).
Оглавление
1. Информатика и информационные технологии
2. Общие сведения об архитектуре ПК
3. Прикладное программное обеспечение для решения практических и инженерных задач
4. Простейшие вычисления в программах MATLAB и OCTAVE. Арифметические выражения
5. Построение графиков и поверхностей
6. Сравнения, логические операции, операторы ветвления в MATLAB/OCTAVE
Поиск
Найти
Закладки