Лекции по информатике учебно методическое пособие
Скачать 0.99 Mb.
|
подпрограммы функции (используются как опе- ранды в выражениях) и процедуры (используются как операторы). Общую структуру подпрограмм можно представить следующим об- разом: Тело подпрограммы – это операторы, которые программируют ту часть алгоритма, которая выделена в данный модуль. Формальные параметры – это те переменные в теле подпрограммы, значения ко- торых надо будет перед началом работы этого модуля получить из основной программы. Заголовок: имя и формальные параметры Тело подпрограммы Признак окончания подпрограммы 76 В инструкции по вызову указывается имя подпрограммы и фактические параметры, то есть значения формальных параметров, с которыми следует выполнить тело подпрограммы в данном месте. Пример. Дан массив целых чисел {a i },i=1, 2, ..., 15. Программа должна вычислять произведение двух сумм некоторых элементов массива {a i }. Так как операции, которые следует выполнить для сум- мирования, не зависят от конкретных значений используемых чисел, алгоритм суммирования, чтобы не повторять его дважды, можно оформить в виде подпрограммы. Поскольку по условию задачи ко- нечным результатом должно быть произведение сумм, а не каждая из них по отдельности, подпрограмму можно оформить по типу подпро- граммы-функции. Алгоритм, по которому будет составляться про- грамма, представляем в псевдокоде: Функция СУММА(i1,i2) начало: s = 0 начало цикла для i = i1 до i2 s = s + a(i) конец цикла СУММА = s Конец функции Начало программы вывести на экран("введите значения массива А") начало цикла для j = 1 до 15 ввести с клавиатуры а(j) конец цикла вывести на экран ("введите границы индексов первой суммы") ввести с клавиатуры g, w вывести на экран ("введите границы индексов второй суммы") ввести с клавиатуры t, l р:= СУММА(g,w) * СУММА(t,l) вывести на экран ("произведение равно", р) Конец программы В программу введены константы: g = 1; w = 12; t = 8; l = 15. Это – фактические параметры, которые надо использовать вместо формальных параметров i1 и i2 при вычислении значения p. В ре- зультате переменная p примет значение произведения сумм элемен- тов с 1 по 12 и с 8 по 15 из массива {a i }. При использовании технологии «сверху вниз» разработка про- граммы начинается с последовательной детализации алгоритма на 77 всѐ более мелкие части до тех пор, пока получатся такие модули, для которых можно написать конкретные команды. Затем составляется текст основной программы, в которой вместо фрагментов, выделен- ных в подпрограммы, ставят «заглушки». Это подпрограммы, в кото- рых вместо реально нужных операторов ставят сигнальные печати или ввод результатов, которые должна была сосчитать эта подпро- грамма. Таким образом проверяют и отлаживают последовательность действий в основном алгоритме. Затем подпрограммы-заглушки по очереди заменяют на соответствующие алгоритму подпрограммы, отлаживают и тестируют их. Такая технология облегчает создание программы, уменьшает количество ошибок и облегчает нахождение допущенных ошибок. Считается, что программа оптимального по размерам модуля целиком должна помещаться на экране дисплея. При использовании технологии «снизу вверх» в первую оче- редь определяются и разрабатываются вспомогательные модули, ко- торые потребуются для проектируемой программы. После того, как все модули отлажены, из них, как из кубиков, в соответствии с на- чальным алгоритмом собирается основная программа. 7.2. Основные принципы структурного программирования (программирование без GO TO) Структурное программирование – методология и технология разработки программных комплексов, основанная на принципах мо- дульного программирования и программирования "сверху-вниз". Алгоритм задачи представляется как композиция только трѐх базовых типов алгоритмов: линейных, ветвлений и циклов. Эти кон- струкции могут быть соединены или вложены друг в друга произ- вольным образом, но никаких других способов управления последо- вательностью выполнения операций не используется. Основные языки программирования, использующие структур- ную технологию: – Ада, Си – языки общего назначения; – Бейсик (до Visual Basic); – КОБОЛ – для экономических задач (много операторов, об- легчающих манипуляции с файлами); – Фортран, Паскаль, ПЛ/1 – для вычислительных задач (удоб- ные средства для записи формул). 78 7.3. Основные понятия объектно - ориентированного программирования Объектно-ориентированное программирование (ООП) при- меняют при программировании разных манипуляций над объектами. Например, при составлении программ управления размерами и поло- жением окон Windows, листами книги Excel, файлами и т. п. Основные термины и понятия объектно-ориентированного программирования: – моделируемая система состоит из объектов. Объекты могут быть вложены друг в друга, например, объект «лист Excel» – это часть объекта «книга Excel»; – объекты каким-то образом взаимодействуют между собой; – каждый объект характеризуется своим состоянием и поведе- нием. Состояние объекта задаѐтся значением некоторых его свойств. Например, объекты типа «книга Excel» имеют свойства: имя, размер, открыта/закрыта и т. п. Действия, которые можно выполнять над объектом или которые он сам может выполнять, называются мето- дами.Например, объект типа «книга Excel» можно открыть, закрыть, переименовать, перенести в другую папку и т. п. После каждого дей- ствия изменяются какие-то свойства объекта. Класс объектов – шаблон, определяющий основные свойства, методы и события группы объектов, объединяемых в класс. Это же можно сформулировать другими словами: это множество объектов, имеющих общее поведение и общую структуру. События – ситуации, в которых надо программировать какой- то отклик объекта. Например, что делать, когда над гиперссылкой или кнопкой расположен курсор, когда щѐлкает курсор, когда проис- ходит двойной щелчок. Наследование – порождает иерархию объектов. Оно может быть смоделировано с помощью таксонометрической классификаци- онной схемы (иерархии). В основном классе (родителе) можно вы- делять подклассы (потомки). Они состоят из объектов, входящих в класс родителя и обладают наряду со всеми его характеристиками дополнительной группой свойств, которых у других объектов класса- родителя нет. Пример: класс-родитель – окна Windows, подклассы – диалоговые окна, окна документов, окна папок. Подклассы окон до- кументов – окна документов Word, окна документов Excel, окна до- кументов PowerPoint и т. п. 79 Инкапсуляция – сокрытие деталей программ, создающих и манипулирующих объектами. Создание объектов, манипулирование ими осуществляется программами языка ООП. Программист указы- вает в своей программе только то, что и с каким объектом нужно сде- лать, или какой результат нужно получить. То есть объекты рассмат- риваются как «чѐрные ящики». Такой способ упрощает разработку программы и еѐ модификацию. Полиморфизм –.для выполнения одного и того же типа дейст- вий в разных подклассах одного класса можно использовать одно и то же имя, хотя это действие реализуется разными внутренними ме- тодами (программами). Например, действие «трансформация объек- та», которое программист обозначает этим термином для фигур, вхо- дящих в разные подклассы класса «геометрические фигуры», выпол- няется по разным формулам, следовательно, его выполняют разные программы (методы). Другими словами это означает способность объектов выбирать внутренний метод самостоятельно, исходя из типа их данных. Основные языки ООП: – С++ – для системного программирования; – Java, JavaScript, PHP, Perl – для разработки сценариев в ди- намических Veb-страницах; – Simula – первый язык, построенный по принципам ООП; – Delphi (Object Pascal) – удобен для программирования баз данных. 7.4. Этапы решения задач на компьютере 1. Постановка задачи: – сбор информации о задаче; – описание исходных данных и конечных целей; – определение формы выдачи результатов. 2. Анализ и исследование модели задачи: – анализ существующих аналогов; – анализ технических и программных средств; – разработка математической модели; – разработка структур данных. 3. Разработка алгоритма: – выбор метода проектирования алгоритма; 80 – выбор формы записи алгоритма (блок-схема, псевдокод и т. п. – выбор тестов и метода тестирования; – проектирование алгоритма. 4. Программирование: – выбор языка программирования; – уточнение способа организации данных; – запись алгоритма на выбранном языке. 5. Отладка и тестирование: – синтаксическая отладка: исправление ошибок в форме за- писи конструкций; – отладка семантики и логической структуры: семантика – система правил истолкования отдельных конструкций языка, напри- мер проверка правильности организации циклов, ветвлений и т. п., соответствия типов переменных в выражениях, логическая структу- ра – правильная последовательность обработки данных; – тестовые расчѐты и анализ результатов тестирования; – совершенствование программы. Деятельность, направленная на исправление ошибок в программной системе, называется отладкой. Тестирование – прогон отлаженной программы на эталонных вариантах исходных данных, для которых заранее известны результаты (см. п.5.3.). 6. Анализ результатов тестирования и, если нужно, уточне- ние модели и повторение п. п. 2 – 5. 7. Сопровождение программы: составление документации по математической модели, алгоритму, программе, набору тестов, ис- пользованию готовой программы и т. п. 7.5. Вопросы для самопроверки по теме 7 Задание № 1. Выберите правильные варианты: при проектировании программного обеспечения используют подходы: 1. сверху-вниз 2. снизу-вверх 3. слева-направо 4. справа-налево Задание № 2. Ошибка в форме записи программы – это ____ ошибка. 81 Задание № 3. Ошибка в последовательности обработки данных, орга- низации циклов, ветвлений, соответствий типов переменных, исполь- зуемых в выражениях, – это ____ ошибка. Задание № 4. Укажите типовые алгоритмические структуры, исполь- зуемые при структурном программировании. Задание № 5. Укажите различие между формальными и фактически- ми параметрами подпрограмм. Задание № 6. Укажите, какие из приведенных терминов являются ба- зовыми понятиями в объектно-ориентированном подходе к програм- мированию: 1. объект 2. свойство 3. метод обработки 4. инструкции 5. данные 6. модель 7. событие 8. класс объектов Задание № 7. Какой методологии программирования присуще поня- тие "Иерархия классов? Задание № 8. . Набор операторов, выполняющих заданное действие и не зависящих от других частей исходного кода, – это ____. Задание № 9. Выделите принципы, которые можно использовать при разработке программ методом структурного программирования: 1. принцип модульной разработки сложных программ; 2. использование композиции трѐх базовых структур при запи- си алгоритма - линейных, ветвлений и циклов; 3. использование композиции двух базовых структур при запи- си алгоритма - ветвлений и циклов; 4. использование большого количества подпрограмм. Задание № 10. Объясните смысл понятий, используемых в методоло- гии объектно-ориентированного программирования: объект, класс, ме- тод, наследование, полиморфизм, инкапсуляция. 82 8. ЛОКАЛЬНЫЕ И ГЛОБАЛЬНЫЕ СЕТИ ЭВМ МЕТОДЫ ЗАЩИТЫ ИНФОРМАЦИИ 8.1. Классификация вычислительных сетей Компьютерная сеть – это два или больше компьютеров, свя- занных каналами передачи информации. Цель создания сетей – обес- печение совместного доступа к сетевым ресурсам. Виды сетей по географическому признаку и размерам: – локальная: сеть предприятия или учреждения, в которой ра- бочие станции распределены на расстоянии не более 300-500м. Обо- значается аббревиатурами ЛВС или LAN (Local Areal Net); – региональные и корпоративные: объединяют компьютеры большого региона или филиалы учреждений, разбросанные в преде- лах города, большого географического региона, страны. Обозначает- ся аббревиатурой MAN. (Metropolitan Areal Net); – глобальные: объединяют всех абонентов (LAN и MAN) вне зависимости от места их расположения: страны, континента, всей земли, например, Интернет. Обозначается аббревиатурой WAN. (World Areal Net). Виды сетей по возможностям передачи сигналов: – узкополосные: канал связи может передавать только один сигнал в любой момент времени (телефонная линия); – широкополосные: одновременно можно передавать несколь- ко сигналов, используя для каждого свою частоту передачи (кабель- ное телевидение). 8.2. Виды сетевых ресурсов – аппаратные: общий принтер, общий жѐсткий диск для хра- нения программ и данных отдельных пользователей; – программные: для выполнения сложных и длительных рас- чѐтов можно подключиться к мощной ЭВМ, послать на неѐ задание на расчѐты и исходные данные, и, по окончании расчѐтов просто по- лучить готовые результаты. – информационные:всевозможные справочные данные, архи- вы научных работ, книг и т. п. 83 Виды каналов передачи информации: – специальные кабели: коаксиальный кабель, оптоволоконный кабель (самая надѐжная и быстрая связь), витая пара – телефонный кабель; – электромагнитные волны разных частот: спутниковая связь, подключение ноутбуков, мобильных телефонов; Важнейшая характеристика канала – скорость передачи ин- формации. В ЛВС обычно от 10 до 100 Мбит/сек., в крупных сетях – __________ ** На скорость передачи информации влияет также тип ее коди- ровки: чем короче кодировка символов, тем меньше бит она содер- жит и, следовательно, тем быстрее она передается по тому же самому каналу. 8.3. Топология и архитектура вычислительных сетей Топология сети – это логический и физический способ соеди- нения компьютеров. Различают следующие базовые варианты топо- логий: – одноранговая: все компьютеры имеют одинаковые права (обычно до 10 рабочих станций); – сети на основе сервера: сервер – это компьютер, на котором хранится информация, необходимая разным пользователям или же выполняющий работы по поддержанию связи между компьютерами. Другое значение этого термина – программа, выполняющая запросы с рабочих станций на доступ к ресурсам. Рабочая станция (кли- ент) – это внутренний компьютер ЛВС. Другое значение этого тер- мина – программа, создающая запрос серверу на какие-либо ресурсы; Защитное покрытие Оптическое волокно Стеклянное покрытие Оптоволоконный кабель Защитное покрытие Внешний проводник Изоляция Внутренний проводник Коаксиальный кабель 84 – линейная (шинная) топология: соединяющий кабель по- следовательно проходит от одного компьютера к другому: – кольцевая топология: – звездообразная топология: – полносвязанная (сетевая топология): имеется много путей, по которым можно переслать сообщение с одного компьютера на другой. Архитектура сети – это понятие, которое включает в себя топологию сети, состав ее устройств, правила их взаимодействия, ко- дирование, адресацию и передачу информации, управление потоком сообщений, контроль ошибок, анализ работы в аварийных ситуациях. Основные виды архитектур (физический уровень): – Ethernet: широковещательная сеть, т.е. все рабочие станции могут принимать все сообщения. Топология линейная или звездооб- разная. 85 – Token Ring: топология кольцевая. Каждый узел ожидает сво- ей очереди на посылку сообщения. – FDDI: высокоскоростная передача данных по оптоволокон- ным линиям. Топология смешанная (кольцевая + древовидная) – ATM: передача цифровых данных, видеоинформации и голо- са по одним и тем же линиям. – Wi-Fi, IrDa: беспроводная (радиорелейная) связь. 8.4. Программное обеспечение вычислительных сетей Сетевые протоколы – это наборы правил для обмена инфор- мацией в сети и разработки сетевого оборудования. Более подробно их можно определить как стандарты, которые определяют формы представления и способы пересылки разных типов сообщений между компьютерами, а также правила совместной работы различного обо- рудования в сетях, необходимые при создании этого оборудования. Совокупность протоколов, которые используют компьютеры при работе в сети, обозначается термином стек. Традиционно стек делится на 7 уровней, функции которых определяются эталонной моделью взаимодействия открытых систем (сетевая модель OSI – Open System Interconnection): – Физический уровень (1): процедуры управления аппаратурой передачи данных и подключѐнным к ней каналам связи. Примеры протоколов: Ethernet, Arc net, Token Ring. – |