Реферат Курсовая Конспект
Тема 1. Обработка данных средствами электронных таблиц - раздел Электроника, Оглавление Предисловие.. 5 Тема 1. Обработка Данных Средств...
|
ОГЛАВЛЕНИЕ
Предисловие.. 5
Тема 1. Обработка данных средствами электронных таблиц.. 6
Область применения. 6
Основные понятия электронных таблиц.. 6
Общая характеристика интерфейса MS Excel. 8
Технология ввода данных в MS Excel. 10
Формулы, функции, мастер функций.. 13
Контрольные вопросы.. 16
Тема 2. Введение в технологию баз данных.. 17
Базы данных и системы управления базами данных.. 17
Основные понятия теории баз данных.. 18
Модели данных.. 18
Средства ускорения доступа к данным.. 24
Язык запросов. 26
Программные системы управления базами данных.. 27
Структура простейшей базы данных.. 29
Объекты базы данных.. 30
Режимы работы с базами данных.. 33
Разработка схемы данных.. 33
Контрольные вопросы.. 36
Тема 3. Этапы создания программ... 37
Контрольные вопросы.. 44
Тема 4. Системы и языки программирования.. 45
Системы программирования. 45
Классификация языков программирования. 46
Контрольные вопросы.. 51
Тема 5. Методологии программирования.. 52
Структурное программирование. 52
Нисходящее проектирование. 54
Концепция модульного программирования. 55
Объектно-ориентированное программирование (ООП) 55
Декларативное программирование. 56
Параллельное программирование. 56
CASE-системы.. 56
Индустрия искусственного интеллекта.. 57
Данные и знания. 58
Модели представления знаний. 59
Экспертные системы.. 62
Контрольные вопросы.. 64
Тема 6. Паскаль – структурный язык.. 65
программирования высокого уровня.. 65
Структура программы.. 65
Константы и переменные. 66
Основные типы данных.. 67
Выражения, операнды, операции.. 70
Совместимость и преобразование типов. 72
Основные операторы языка.. 72
Массивы.. 81
Процедуры и функции.. 84
Контрольные вопросы.. 87
Тема 7. Основные принципы построения.. 89
компьютерных сетей.. 89
Основные показатели качества ИВС.. 89
Виды информационно-вычислительных сетей.. 90
Контрольные вопросы.. 93
Тема 8. Способы связи компьютеров.. 94
Контрольные вопросы.. 96
Тема 9. Модель взаимодействия открытых систем OSI. 97
Физический уровень. 97
Канальный уровень. 98
Сетевой уровень. 98
Транспортный уровень. 99
Сеансовый уровень. 99
Представительский уровень. 99
Прикладной уровень. 99
Контрольные вопросы.. 100
Тема 10. Техническое и программное обеспечение ИВС.. 101
Техническое обеспечение информационно-вычислительных сетей.. 101
Серверы и рабочие станции. 101
Маршрутизаторы и коммутирующие устройства. 103
Модемы и сетевые карты.. 104
Аналоговые модемы.. 104
Модемы для цифровых каналов связи. 105
Сетевые карты.. 106
Устройства межсетевого интерфейса. 107
Программное обеспечение информационно-вычислительных сетей.. 109
Контрольные вопросы.. 110
Тема 11. Локальные вычислительные сети.. 111
Виды локальных сетей.. 111
Базовые технологии локальных сетей.. 114
Построение локальных сетей.. 115
Структуризация локальных сетей средствами канального уровня. 115
Построение локальных сетей средствами сетевого уровня. 116
Системное программное обеспечение вычислительных сетей. 117
Контрольные вопросы.. 118
Тема 12. Глобальная сеть Интернет.. 119
Основные понятия. 119
Информационные ресурсы (службы) Интернет. 119
Програмное обеспечение работы в Интернете. 122
Адресация и протоколы в Интернете. 122
Контрольные вопросы.. 125
Тема 13. Вирусы и антивирусное программное обеспечение.. 127
Свойства компьютерных вирусов. 127
Классификация вирусов. 127
Программы обнаружения и защиты от вирусов. 129
Контрольные вопросы.. 131
Библиографический список.. 131
Предисловие
Настоящее пособие посвящено изучению основ информатики. Современная информатика очень велика по объему и очень динамична. Если изучаемые в вузах курсы математики, химии и большинства других наук практически не изменяются на протяжении многих лет будущей профессиональной деятельности сегодняшнего студента, то в информатике это полностью оформившееся ядро сравнительно невелико.
В понимании некоторых людей информатика есть совокупность приемов и методов работы с компьютерами. На самом деле это не так: компьютеры являются лишь техническим средством, с помощью которого информатика реализует свой прикладной пользовательский уровень.
Информатика – комплекс научно-практических дисциплин, изучающих все аспекты получения, хранения, преобразования, передачи и использования
информации.
Данное пособие продолжает основные разделы современной информатики, рассмотренные в части 1 и очерченные стандартом дисциплины для данных специальностей.
В темах 1 и 2 рассказывается о программных системах, без которых невозможно представить себе современную информатику. Базы данных и системы управления базами данных, электронные таблицы обсуждаются в этих темах.
Тему «Алгоритм и его свойства» традиционно считают главной темой теоретической информатики, вводящей в обширные практические разделы алгоритмизации. Разработка алгоритмов и программ для решения прикладных задач является одним из важнейших направлений дисциплины и остается наиболее стабильным компонентом подготовки специалиста в вузе. Рассмотрению этапов создания программ, различных языков программирования, а также методологиям программирования посвящены темы 3, 4, 5. Основы программирования излагаются на языке Паскаль, который является основным языком, изучаемым в ходе подготовки специалистов. Этому вопросу посвящена тема 6.
Современное общество невозможно представить без сетевых технологий. Поэтому в пособии достаточно подробно рассмотрены вопросы построения компьютерных сетей, их техническое и программное обеспечение, виды сетей (темы с 7 по 12).
Тема 13 посвящена актуальной в настоящее время проблеме компьютерных вирусов, также рассмотрены некоторые свойства компьютерных вирусов, их классификация, программы обнаружения и защиты от них.
Данное пособие может быть использовано как для подготовки к лекционным занятиям по курсу «Информатика», так и для индивидуального обучения теоретическим основам информатики.
Тема 1. Обработка данных средствами электронных таблиц
Основные понятия электронных таблиц
Рабочая книга и рабочий лист. Строки и столбцы
Документ Excel называется рабочей книгой. Рабочая книга представляет собой набор рабочих листов, каждый из которых имеет табличную структуру и может содержать одну или несколько таблиц. В окне документа в программе Excel отображается только текущий рабочий лист активной рабочей книги, с которым и ведется работа. Каждый рабочий лист имеет название, которое отображается на ярлычке листа, отображаемом в его нижней части. С помощью ярлычков можно переключаться между рабочими листами, входящими в ту же рабочую книгу. Чтобы переименовать рабочий лист, надо дважды щелкнуть на его ярлычке.
Табличное пространство рабочего листа состоит из строк и столбцов. Столбцы озаглавлены прописными латинскими буквами и, далее, двухбуквенными комбинациями. Всего рабочий лист может содержать до 256 столбцов. Строки последовательно нумеруются числами, от 1 до 65536 (максимально допустимый номер строки).
Диапазон ячеек
На данные, расположенные в соседних ячейках, можно ссылаться в формулах, как на единое целое. Такую группу ячеек называют диапазоном. Наиболее часто используют прямоугольные диапазоны, образующиеся на пересечении группы последовательно идущих строк и группы последовательно идущих столбцов. Диапазон ячеек обозначают, указывая через двоеточие номера ячеек, расположенных в противоположных углах прямоугольника, например: А1:С15.
Если требуется выделить прямоугольный диапазон ячеек, то это можно сделать протягиванием указателя от одной угловой ячейки до противоположной по диагонали. Рамка текущей ячейки при этом расширяется, охватывая весь выбранный диапазон. Чтобы выбрать столбец или строку целиком, достаточно щелкнуть на заголовке столбца (строки). Протягиванием указателя по заголовкам можно выбрать несколько идущих подряд столбцов или строк.
Выделение несмежного диапазона ячеек производится с помощью мыши при нажатой клавише Ctrl.
Формулы, функции, мастер функций
Ссылки на ячейки
Пусть содержимое ячейки В2 определяется формулой А2*В1 (в строке формул задана формула = А2*В1). В ней записана операция над содержимым двух ячеек. Вместо чисел в формуле использованы имена ячеек - принято говорить ссылки на ячейки. Ссылки выполняют роль адресов ячеек, содержимое которых используется в вычислениях. Это означает, что результат расчета зависит от того, какие числа находятся в ячейках, участвующих в вычислении. Таким образом, ячейка, содержащая формулу, является зависимой. Значение в зависимой ячейке подлежит пересчету всякий раз, когда изменяются значения в ячейках, на которые указывают ссылки, входящие в формулу.
Ссылку на ячейку можно задать разными способами:
• во-первых, адрес ячейки можно ввести вручную;
• другой способ состоит в щелчке на нужной ячейке или выборе диапазона, адрес которого требуется ввести. Ячейка или диапазон при этом выделяются пунктирной рамкой.
Для редактирования формулы следует дважды щелкнуть на соответствующей ячейке. При этом ячейки (диапазоны), от которых зависит значение формулы, выделяются на рабочем листе цветными рамками, а сами ссылки отображаются в ячейке и в строке формул тем же цветом. Это облегчает редактирование и проверку правильности формул.
Относительная адресация. От метода адресации ссылок зависит, что будет с ними происходить при копировании формулы из одной ячейки в другую. По умолчанию ссылки на ячейки в формулах рассматриваются как относительные. Это означает, что адреса в ссылках при копировании формулы из одной ячейки в другую автоматически изменяются. Они приводятся в соответствие с относительным расположением исходной ячейки и создаваемой копии,
т. е. при копировании и перемещении формул происходит пересчет адресов ячеек, на которых они указывают, с учетом относительного изменения места этих формул на листе.
Поясним это обстоятельство на примере. Пусть, например, в ячейке В2 имеется ссылка на ячейку A3, которая располагается на один столбец левее и на одну строку ниже. Если формула будет скопирована в другую ячейку, то такое относительное указание ссылки сохранится. Например, при копировании формулы в ячейку H10 ссылка будет продолжать указывать на ячейку, располагающуюся левее и ниже, в данном случае на ячейку G11.
Абсолютная адресация. При абсолютной адресации адреса ссылок при копировании формулы не изменяются, так что ячейка, на которую указывает ссылка, рассматривается как постоянная. В качестве признака абсолютной ссылки в адресе используется знак $. Различают:
• полную абсолютную ссылку (знак $ ставится и перед именем столбца, и перед номером строки, например $А$8). В этом случае при копировании и перемещении адрес ячейки не меняется;
• частичную абсолютную ссылку (знак $ ставится либо перед номером строки, либо перед именем столбца, например А$8 или $А8. В данном случае при копировании и перемещении неизменной остается только одна из
координат).
Для быстрого изменения типа адресации в формулах используется функциональная клавиша F4 (при ее последовательном нажатии вид адреса, находящегося в строке ввода данных, попеременно меняется с относительного на абсолютный, с абсолютного на частично абсолютный и т. д.).
Использование стандартных функций
Стандартные функции используются в программе Excel только в формулах. Вызов функции состоит в указании в формуле имени функции, после которого в скобках указывается список параметров. Отдельные параметры разделяются в списке точкой с запятой. В качестве параметра может использоваться число, адрес ячейки или выражение.
Использование мастера функций
Если начать ввод формулы щелчком на кнопке Вставка функции (в строке формул – кнопка ), то появляется Мастер функций, облегчающий выбор нужной функции. В списке Категория выбирается категория, к которой относится функция (если определить категорию затруднительно, используют пункт Полный алфавитный перечень), а в списке Функция - конкретная функция данной категории. После щелчка на кнопке ОК имя функции заносится в строку формул вместе со скобками, ограничивающими список параметров. Текстовый курсор устанавливается между этими скобками. В левой части строки формул, где раньше располагался номер текущей ячейки, теперь появляется раскрывающийся список функций. Он содержит десять функций, которые использовались последними, а также пункт Другие функции.
Контрольные вопросы
1. Область применения электронных таблиц.
2. Что является основным элементом электронных таблиц.
3. Как обозначаются ячейки в электронных таблицах? Указать расширенный формат адреса ячейки.
4. Как присвоить собственное имя ячейки в Excel?
5. Как обозначается диапазон ячеек в электронных таблицах? Привести
примеры.
6. Сколько ячеек будет выделено при указании диапазона А3:С5 в Excel?
7. Как выделяются несмежные диапазоны ячеек в Excel? Привести пример.
8. Перечислить основные интерфейсные элементы окна MS Excel. Пояснить их назначение.
9. Перечислите способы, которыми могут быть выполнены одни и те же операции в любом приложении Windows.
10. Что такое формат ячейки в Excel и как его можно изменить?
11. Какие способы существуют в MS Excel, которые позволяют упростить и ускорить процесс ввода данных?
12. Где располагается маркер автозаполнения в MS Excel? Его назначение?
13. Как скопировать и переместить текущую ячейку в Excel? Перечислите несколько способов.
14. Как заполнить выделенные ячейки в MS Excel выбранными последовательностями?
15. Для чего используется ввод прогрессий в Excel? Как он выполняется?
16. С какого символа начинается формула в Excel и что может содержать
в себе?
17. Отличие абсолютной ссылки от относительной в Excel?
18. Как рассматриваются по умолчанию ссылки на ячейки в формулах MS Excel?
19. Что является признаком абсолютной адресации в Excel? Какие виды абсолютной адресации различают? Привести примеры.
Тема 2. Введение в технологию баз данных
Основные понятия теории баз данных
Объектом называется элемент информационной системы, сведения о котором хранятся в базе данных.
Атрибут – это информационное отображение свойств объекта. Каждый объект характеризуется некоторым набором атрибутов.
Ключевым элементом данных называется такой атрибут (или группа атрибутов), который позволяет определить значения других элементов данных.
Запись данных (англ. эквивалент record) – это совокупность значений связанных элементов данных.
Первичный ключ – это атрибут (или группа атрибутов), который уникальным образом идентифицируют каждый экземпляр объекта (запись). Вторичным ключом называется атрибут (или группа атрибутов), значение которого может повторяться для нескольких записей (экземпляров объекта). Прежде всего вторичные ключи используются в операциях поиска записей.
Процедуры хранения данных в базе должны подчиняться некоторым общим принципам, среди которых в первую очередь следует выделить:
• целостность и непротиворечивость данных, под которыми понимается как физическая сохранность данных, так и предотвращение неверного использования данных, поддержка допустимых сочетаний их значений, защита от структурных искажений и несанкционированного доступа;
• минимальная избыточность данных обозначает, что любой элемент данных должен храниться в базе в единственном виде, что позволяет избежать необходимости дублирования операций, производимых с ним.
Контрольные вопросы
1. Что означает аббревиатура СУБД?
2. Что принято называть базой данных?
3. Для чего предназначено СУБД?
4. Что называется объектом, атрибутом и ключевым элементом в теории БД?
5. Что такое первичный и вторичный ключи в БД?
6. Каким принципам должны подчиняться процедуры хранения данных в БД?
7. Перечислите модели данных в теории БД?
8. Охарактеризуйте иерархическую модель данных в СУБД.
9. Охарактеризуйте сетевую модель данных в СУБД.
10. Охарактеризуйте реляционную модель данных в СУБД.
11. Достоинства и недостатки СУБД, основанные на иерархической и сетевой моделях.
12. Как называют столбец и строку в таблице реляционной СУБД?
13. Охарактеризуйте первую, вторую и третью нормальную формы в СУБД.
14. Какие средства существуют в СУБД для ускорения доступа к данным?
15. Какой язык используется в реляционных СУБД для доступа к информации в ней?
16. Какие группы инструкций могут быть выделены в составе SQL?
17. Для чего предназначен язык описания данных?
18. Для чего предназначен язык манипулирования данными?
19. Что такое транзакция в теории БД?
20. На какие классы можно разделить все СУБД?
21. Охарактеризуйте профессиональные СУБД. Назовите их.
22. Охарактеризуйте персональные СУБД. Назовите их.
23. Что значит задать структуру БД?
24. Назовите объекты БД.
25. Охарактеризуйте таблицы БД.
26. Охарактеризуйте запросы БД. Их назначение.
27. Охарактеризуйте формы БД. Их назначение.
28. Охарактеризуйте отчеты БД. Их назначение.
29. Охарактеризуйте макросы и модули БД. Их назначение.
Контрольные вопросы
1. Перечислите этапы создания программ.
2. Что выполняется на этапе постановки задачи?
3. Что представляет собой декомпозиция?
4. Какие принципы используются на этапе построения модели?
5. На каких принципах основано структурное программирование?
6. Какие базовые структурные элементы выделяют в структурном программировании?
7. Какие две формы итерации (как элемент структурного программирования) вы знаете?
8. Что собой представляет идея структурного программирования сверху-вниз?
9. Что собой представляет идея структурного программирования снизу-вверх?
10. Что такое отладка программы?
11. Какие классы программных ошибок вы знаете и когда они выявляются?
12. Назначение тестирования программы?
13. Какие способы тестирования вы знаете?
14. Чем отличается стратегия «белого ящика» в тестировании от стратегии «черного ящика»?
Тема 4. Системы и языки программирования
Классификация языков программирования
На заре компьютерной эры машинный код был единственным средством общения человека с компьютером. Огромным достижением создателей языков программирования было то, что они сумели заставить сам компьютер работать переводчиком с этих языков на машинный код.
Существующие языки программирования можно разделить на две группы: процедурные и непроцедурные (см. рис. 4.1).
Процедурные (или алгоритмические) программы представляют из себя систему предписаний для решения конкретной задачи. Роль компьютера сводится к механическому выполнению этих предписаний.
Процедурные языки разделяют на языки низкого и высокого уровня.
Разные типы процессоров имеют разные наборы команд. Если язык программирования ориентирован на конкретный тип процессора и учитывает его особенности, то он называется языком программирования низкого уровня.
Имеется в виду, что операторы языка близки к машинному коду и ориентированы на конкретные команды процессора.
Рис. 4.1. Общая классификация языков программирования
Языки низкого уровня (машинно-ориентированные) позволяют создавать программы из машинных кодов, обычно в шестнадцатеричной форме. С ними трудно работать, но созданные с их помощью высококвалифицированным программистом программы занимают меньше места в памяти и работают быстрее. С помощью этих языков удобнее разрабатывать системные программы, драйверы (программы для управления устройствами компьютера), некоторые другие виды программ.
Языком низкого уровня (машинно-ориентированным) является Ассемблер, который просто представляет каждую команду машинного кода, но не в виде чисел, а с помощью условных символьных обозначений, называемых
мнемониками.
С помощью языков низкого уровня создаются очень эффективные и компактные программы, так как разработчик получает доступ ко всем возможностям процессора.
Языки программирования высокого уровня значительно ближе и понятнее человеку, нежели компьютеру. Особенности конкретных компьютерных архитектур в них не учитываются, поэтому создаваемые программы на уровне исходных текстов легко переносимы на другие платформы, для которых создан транслятор этого языка. Разрабатывать программы на языках высокого уровня с помощью понятных и мощных команд значительно проще, а ошибок при создании программ допускается гораздо меньше.
Основное достоинство алгоритмических языков высокого уровня - возможность описания программ решения задач в форме, максимально удобной для восприятия человеком. Но так как каждое семейство ЭВМ имеет свой собственный, специфический внутренний (машинный) язык и может выполнять лишь те команды, которые записаны на этом языке, то для перевода исходных программ на машинный язык используются специальные программы-трансляторы.
Работа всех трансляторов строится по одному из двух принципов: интерпретация или компиляция.
Интерпретация подразумевает пооператорную трансляцию и последующее выполнение оттранслированного оператора исходной программы. В связи с этим можно отметить два недостатка метода интерпретации: во-первых, интерпретирующая программа должна находиться в памяти ЭВМ в течение всего процесса выполнения исходной программы, т. е. занимать определенный объем памяти; во-вторых, процесс трансляции одного и того же оператора повторяется столько раз, сколько раз должна исполняться эта команда в программе, что резко снижает производительность работы программы.
Несмотря на указанные недостатки, трансляторы-интерпретаторы получили достаточное распространение, так как они удобны при разработке и отладке исходных программ.
При компиляции процессы трансляции и выполнения разделены во времени: сначала исходная программа полностью переводится на машинный язык (после чего наличие транслятора в оперативной памяти становится ненужным), а затем оттранслированная программа может многократно исполняться. Следовательно, для одной и той же программы трансляция методом компиляции обеспечивает более высокую производительность вычислительной системы при сокращении требуемой оперативной памяти.
Большая сложность в разработке компилятора по сравнению с интерпретатором с того же самого языка объясняется тем, что компиляция программы включает два действия: анализ, т. е. определение правильности записи исходной программы в соответствии с правилами построения языковых конструкций входного языка, и синтез – генерирование эквивалентной программы в машинных кодах. Трансляция методом компиляции требует неоднократного «просмотра» транслируемой программы, т. е. трансляторы-компиляторы являются многопроходными: при первом проходе они проверяют корректность синтаксиса языковых конструкций отдельных операторов независимо друг от друга, при последующем проходе – корректность синтаксических взаимосвязей между операторами и т. д.
Полученная в результате трансляции методом компиляции программа называется объектным модулем, который представляет собой эквивалентную программу в машинных кодах, но не «привязанную» к конкретным адресам оперативной памяти. Поэтому перед исполнением объектный модуль должен быть обработан специальной программой операционной системы (редактором связей – Link) и преобразован в загрузочный модуль.
Наряду с рассмотренными выше трансляторами-интерпретаторами и трансляторами-компиляторами на практике используются также трансляторы интерпретаторы-компиляторы, которые объединяют в себе достоинства обоих принципов трансляции: на этапе разработки и отладки программ транслятор работает в режиме интерпретатора, а после завершения процесса отладки исходная программа повторно транслируется в объектный модуль (т. е. уже методом компиляции). Это позволяет значительно упростить и ускорить процесс составления и отладки программ, а за счет последующего получения объектного модуля обеспечить более эффективное исполнение программы.
Классическое процедурное программирование требует от программиста детального описания того, как решать задачу, т. е. формулировки алгоритма и его специальной записи. При этом ожидаемые свойства результата обычно не указываются. Основные понятия языков этих групп – оператор и данные.
При процедурном подходе операторы объединяются в группы – процедуры. Структурное программирование в целом не выходит за рамки этого направления, оно лишь дополнительно фиксирует некоторые полезные приемы
технологии программирования.
Принципиально иное направление в программировании связано с методологиями (иногда говорят «парадигмами») непроцедурного программирования. К ним можно отнести объектно-ориентированное и декларативное программирование. Объектно-ориентированный язык создает окружение в виде множества независимых объектов. Каждый объект ведет себя подобно отдельному компьютеру, их можно использовать для решения задач как «черные ящики», не вникая во внутренние механизмы их функционирования. Из языков объектного программирования, популярных среди профессионалов, следует назвать прежде всего Си++, для более широкого круга программистов предпочтительны среды типа Delphi и Visual Basic.
При использовании декларативного языка программист указывает исходные информационные структуры, взаимосвязи между ними и то, какими свойствами должен обладать результат. При этом процедуру его получения («алгоритм») программист не строит (по крайней мере, в идеале). В этих языках отсутствует понятие «оператор» («команда»). Декларативные языки можно подразделить на два семейства – логические (типичный представитель – Пролог) и функциональные (Лисп).
Охарактеризуем наиболее известные языки программирования.
1.Фортран (FORmula TRANslating system – система трансляции формул); старейший и по сей день активно используемый в решении задач математической ориентации язык. Является классическим языком для программирования на ЭВМ математических и инженерных задач
2.Бейсик (Beginner's All-purpose Symbolic Instruction Code – универсальный символический код инструкций для начинающих); несмотря на многие недостатки и изобилие плохо совместимых версий – самый популярный по числу пользователей. Широко употребляется при написании простых программ.
3.Алгол (ALGOrithmic Language – алгоритмический язык); сыграл большую роль в теории, но для практического программирования сейчас почти не используется.
4.ПЛ/1 (PL/1 Programming Language – язык программирования первый); многоцелевой язык; сейчас почти не используется.
5.Паскаль (Pascal – назван в честь ученого Блеза Паскаля); чрезвычайно популярен как при изучении программирования, так и среди профессионалов. Создан в начале 70-х годов швейцарским ученым Никлаусом Виртом. Язык Паскаль первоначально разрабатывался как учебный, и, действительно, сейчас он является одним из основных языков обучения программированию в школах и вузах. Однако качества его в совокупности оказались столь высоки, что им охотно пользуются и профессиональные программисты. Не менее впечатляющей, в том числе и финансовой, удачи добился Филип Кан, француз, разработавший систему Турбо-Паскаль. Суть его идеи состояла в объединении последовательных этапов обработки программы – компиляции, редактирования связей, отладки и диагностики ошибок – в едином интерфейсе. Версии Турбо-Паскаля заполонили практически все образовательные учреждения, программистские центры и частные фирмы. На базе языка Паскаль созданы несколько более мощных языков (Модула, Ада, Дельфи).
6.Кобол (COmmon Business Oriented Language – язык, ориентированный на общий бизнес); в значительной мере вышел из употребления. Был задуман как основной язык для массовой обработки данных в сферах управления
и бизнеса.
7.АДА;является языком, победившим (май 1979 г.) в конкурсе по разработке универсального языка, проводимым Пентагоном с 1975 году. Разработчики – группа ученых во главе с Жаном Ихбиа. Победивший язык окрестили АДА, в честь Огасты Ады Лавлейс. Язык АДА – прямой наследник языка
Паскаль. Этот язык предназначен для создания и длительного (многолетнего) сопровождения больших программных систем, допускает возможность параллельной обработки, управления процессами в реальном времени и многое другое, чего трудно или невозможно достичь средствами более простых языков.
8.Си (С – «си»); широко используется при создании системного программного обеспечения. Наложил большой отпечаток на современное программирование (первая версия – 1972 г.), является очень популярным в среде разработчиков систем программного обеспечения (включая операционные системы). Си сочетает в себе черты как языка высокого уровня, так и машинно-ориентированного языка, допуская программиста ко всем машинным ресурсам, чего не обеспечивают такие языки, как Бейсик и Паскаль.
9.Си++ (С++);объектно-ориентированное расширение языка Си, созданное Бьярном Страуструпом в 1980 году. Множество новых мощных возможностей, позволивших резко повысить производительность программистов, наложилось на унаследованную от языка Си определенную низкоуровневость.
10.Дельфи (Delphi); язык объектно-ориентированного «визуального» программирования; в данный момент чрезвычайно популярен. Созданный на базе языка Паскаль специалистами фирмы Borland язык Delphi, обладая мощностью и гибкостью языков Си и Си++, превосходит их по удобству и простоте интерфейса при разработке приложений, обеспечивающих взаимодействие с базами данных и поддержку различного рода работ в рамках корпоративных сетей и сети Интернет.
11.Ява (Java); платформенно-независимый язык объектно-ориентированного программирования, чрезвычайно эффективен для создания интерактивных веб-страниц. Этот язык был создан компанией Sun в начале 90-х годов на основе СИ++. Он призван упростить разработку приложений на основе Си++ путем исключения из него всех низкоуровневых возможностей.
12.Лисп (Lisp) – функциональный язык программирования. Ориентирован на структуру данных в форме списка и позволяет организовать эффективную обработку больших объемов текстовой информации.
13.Пролог (PROgramming in LOGic – логическое программирование). Главное назначение языка – разработка интеллектуальных программ и систем. Пролог – это язык программирования, созданный специально для работы с базами знаний, основанными на фактах и правилах (одного из элементов систем искусственного интеллекта). В языке реализован механизм возврата для выполнения обратной цепочки рассуждений, при котором предполагается, что некоторые выводы или заключения истинны, а затем эти предположения проверяются в базе знаний, содержащей факты и правила логического вывода.
Если предположение не подтверждается, выполняется возврат и выдвигается новое предположение. В основу языка положена математическая модель теории исчисления предикатов.
Языки программирования для Интернета:
1. HTML.Общеизвестный язык для оформления документов. Он очень прост и содержит элементарные команды форматирования текста, добавления рисунков, задания шрифтов и цветов, организации ссылок и таблиц.
2. PERL.Он задумывался как средство эффективной обработки больших текстовых файлов, генерации текстовых отчетов и управления задачами.
По мощности Perl значительно превосходит языки типа Си. В него введено много часто используемых функций работы со строками, массивами, управление процессорами, работа с системной информацией.
3. Tcl/Tk.Этот язык ориентирован на автоматизацию рутинных процессов и состоит из мощных команд. Он независим от системы и при этом позволяет создавать программы с графическим интерфейсом.
4. VRML.Создан для организации виртуальных трехмерных интерфейсов в Интернете. Он позволяет описывать в текстовом виде различные трехмерные сцены, освещение и тени, текстуры.
Выбор языка программирования зависит от многих факторов: назначения, удобства написания исходных программ, эффективности получаемых объектных программ и т. п. Разнотипность решаемых компьютером задач и определяет многообразие языков программирования.
Контрольные вопросы
1. Что такое системы программирования и к какому классу программ они относятся?
2. Что входит в состав систем программирования?
3. На каком языке программирования создавались первые программы?
4. На какие языки подразделяются процедурные языки?
5. Охарактеризуйте языки низкого уровня.
6. Какой язык относится к языку низкого уровня?
7. Достоинства языков низкого уровня.
8. Охарактеризуйте языки высокого уровня.
9. Достоинства языков высокого уровня.
10. Приведите примеры языков высокого уровня.
11. Для чего предназначены трансляторы?
12. Чем отличается компилятор от интерпретатора?
13. Недостатки интерпретации (как вид транслятора).
14. Что представляет собой процесс компиляции программы?
15. Какие действия выполняются при компиляции?
16. Чем отличается загрузочный модуль от объектного?
17. Чем отличается процедурное программирование от непроцедурного?
18. Какие виды программирования относятся к непроцедурному
программированию?
19. Особенность декларативных языков.
20. Охарактеризуйте кратко языки программирования: Фортран, Бейсик, Паскаль, Кобол.
21. Охарактеризуйте кратко языки программирования: Ада, Си, Си++, Delphi, Java.
22. Приведите примеры объектно-ориентированных языков.
23. К какому классу языков относится язык Лисп?
24. К какому классу языков относится язык Пролог?
Тема 5. Методологии программирования
Подходы к созданию алгоритмов претерпели изменения в ходе эволюции компьютеров.
В эпоху 1-го и 2-го поколений программы составлялись из команд (машинный язык), непосредственно или почти непосредственно исполнявшихся компьютером (процессором). Такой подход в программировании, ориентированный на непосредственно выполняемые компьютером операции, можно назвать операциональным.
Декларативное программирование
Декларативный подход в разработке компьютерных программ появился в начале 70-х годов. Он не получил столь широкого применения как процедурный, поскольку был направлен на относительно узкий круг задач искусственного интеллекта. При его применении программист описывает свойства исходных данных, их взаимосвязи, свойства, которыми должен обладать результат, а не алгоритм получения результата. Разумеется, для получения результата этот алгоритм все равно нужен, но он должен порождаться автоматически той системой, которая поддерживает декларативно-ориентированный язык программирования. При логическом варианте такого подхода (прежде всего это относится к языку Пролог, PROLOG) задача описывается совокупностью фактов и правил в некотором формальном логическом языке, при функциональном варианте –
в виде функциональных соотношений между фактами (язык Лисп, LISP).
Параллельное программирование
Процедурно-ориентированное программирование развивается и в другом направлении – так называемого, параллельного программирования. В привычных алгоритмах и программах действия совершаются последовательно одно за другим. Однако логика решения множества задач вполне допускает одновременное выполнение нескольких операций, что ведет к многократному увеличению эффективности. Реализация параллельных алгоритмов на ЭВМ стала возможной с появлением многопроцессорных компьютеров, в которых специалисты видят будущее вычислительной техники.
Контрольные вопросы
1. Приведите структуры следования и ветвления (полное и неполное).
2. Приведите структуры циклов Пока и До.
3. Отличие циклов До и Пока.
4. На чем основано нисходящее проектирование?
5. Что вы можете сказать о концепции модульного проектирования?
6. Что такое объект в объектно-ориентированном программировании?
7. Три принципа объектно-ориентированного программирования.
8. Особенность декларативного программирования.
9. Перечислите методологии программирования.
10. Что такое CASE-системы?
11. В каких областях применяются экспертные системы?
12. Что входит в состав экспертной системы?
13. Отличие знаний от данных.
14. Приведите модели представления знаний.
15. Что такое продукционная модель представления знаний?
16. Что такое семантические сети в представлении знаний?
17. Что такое фреймы в представлении знаний?
18. Какие стратегии вывода для продукционной модели вы знаете?
Тема 6. Паскаль – структурный язык
Программирования высокого уровня
Структура программы
Паскаль-программа является текстовым файлом с собственным именем и с расширением .pas.
Правила языка Паскаль предусматривают единую для всех программ форму основной структуры:
Program <Имя программы>;
<Раздел описаний>
Begin
<Тело программы>
End.
Здесь слова Program, Begin и End являются служебными.
Программа заканчивается служебным словом end, после которого ставится точка. Описания величин (в разделе Const, Var) и операторы друг от друга отделяются символом «;» (точкой с запятой).
Сама запись программы в принципе может производиться вообще в одну стоку. При этом ее части должны отделяться друг от друга хотя бы одним пробелом. Однако такая запись неудобна для чтения, недостаточно наглядна, поэтому рекомендуется придерживаться приведенной структуры, а в теле программы по возможности записывать по одному оператору в строке.
Имена программы и используемых величин (констант, переменных) выбираются программистом самостоятельно в соответствии с правилами построения идентификаторов:
· идентификатор должен быть уникальным, то есть одним и тем же именем разные объекты не могут быть названы;
· идентификатор имеет ограничение по длине (зависит от конкретной реализации языка на компьютере);
· идентификатор может состоять только из символов латинского алфавита, цифр и знака подчеркивания («_»);
· идентификатор не может начинаться с цифры.
Все объекты, не являющиеся зарезервированными в Паскале, перед первым использованием в программе должны быть описаны. Это производится для того, чтобы компьютер перед выполнением программы зарезервировал память под соответствующие объекты и поставил в соответствие этим участкам памяти идентификаторы. Раздел описаний может состоять из шести подразделов:
1. Описание внешних модулей, процедур и функций (Uses);
2. Описание меток (Label);
3. Описание констант (Const);
4. Описание типов, задаваемых пользователем (Type);
5. Описание переменных (Var);
6. Описание функций и процедур (Procedure, Function).
Const
P=5.64;
Name1='Татьяна';
Name2='Виктор';
R21=6.33187E+03;
Тип константы определяется ее значением в разделе Const.
Переменная в Паскале – именованный участок памяти для хранения данных определенного типа. Значение переменной (информация в соответствующих ячейках памяти) в ходе выполнения программы может быть изменено.
Раздел описания переменных начинается служебным словом Var, после которого следуют записи следующего вида:
<Список имен переменных> : <Название типа>;
Список может состоять из нескольких имен, разделяющимися запятыми. Тип, указываемый после двоеточия, определяет, какие данные теперь могут храниться в описанных таким образом переменных.
Пример:
Var
A,B,H_22,Angle : Real;
Name3 : String;
Flag : Boolean;
I,J,K,Count : Word;
Основные типы данных
Тип данных определяет множество значений, допустимых для переменной, операции выполняемые на этих значениях, количество выделяемой памяти.
То есть переменная может принимать только значения, определяемые ее типом и участвовать только в тех операциях, которые допустимы для этого типа.
В Паскале существует пять базовых типов данных:
1) Integer (целый);
2) Real (вещественный);
3) Char (символьный);
4) String (строковый);
5) Boolean (логический).
Символьный тип
Символьный тип определяет множество символов кодовой таблицы ASCII. Каждому символу поставлено в соответствии число в диапазоне от 0 до 255.
Занимает в памяти 1 байт.
Пример
Var
s: char;
В программе значения переменных и констант типа char должны быть заключены в апострофы, например, ¢А¢, ¢а¢.
Определены следующие операции отношения: =, <>, <, >, <=, >=. Результат – логический тип.
Определены следующие стандартные функции:
Ord(s) – преобразует символ s в его код типа byte.
Pred(s) – возвращает предыдущий символ.
Succ(s) - возвращает следующий символ.
Примеры:
Ord( ¢:¢ ) = 58
Ord( ¢А¢ ) = 65
Pred( ¢Б¢ ) = А
Succ( ¢Г¢ ) = Д
Логический тип
Этот тип данных представлен двумя значениями: True и False.
Занимает в памяти 1 байт.
Пример
Var
Flag: Boolean;
Для значений True и False истинны следующие соотношения:
False < True
Ord(False) = 0
Ord(True) = 1
Succ(False) = True
Pred(True) = False
Выражения, операнды, операции
Конструкция языка, задающая порядок выполнения действий над данными, называется выражением.
Выражение состоит из операндов (константы, переменные и функции, над которыми выполняются операции), круглых скобок и знаков операций. Операции определяют действия, которые надо выполнить над операндами. Например, в выражении (x+y)*2 x, y и 2 – операнды, а «+», «*» – знаки операций.
Операции делятся на арифметические, логические, операции отношения и другие. Выражения соответственно называются арифметическими, логическими, выражениями отношения и другими.
Тип результата выражения определяется типом операндов и операциями, выполняемыми над ними.
Арифметические выражения и операции
Арифметическим называется выражение, составленное из операндов арифметического типа и использующее только знаки арифметических операций и круглые скобки.
Порядок вычисления определяется скобками и старшинством операций:
1) *, /, div, mod
2) +, -
Арифметические операции:
Операция | Замечания |
-a | Обращение знака |
a+b | Сложение операндов |
a-b | Вычитание операндов |
a*b | Умножение операндов |
a/b | Деление операндов. b<>0. Результат всегда вещественное число. |
a div b | Целочисленное деление. b<>0. a и b должны быть целыми числами. Пример: 7 div 2 = 3 |
a mod b | Остаток от целочисленного деления. b<>0. a и b должны быть целыми числами. Пример: 7 mod 2 = 1 |
Тип константы определяется ее значением, например, -152 – целая константа, 3.2Е-2 – вещественная константа.
Тип переменной задается в разделе Var.
Как правило, если оба операнда имеют целый тип, то и результат выражения имеет целый тип; если хотя бы один из операндов имеет вещественный тип, то и результат выражения имеет вещественный тип. Исключение составляет операция деления ( / ) – результат всегда вещественного типа независимо от типов операндов.
Пример. Записать арифметическое выражение и определить его тип.
Выражение будет записано: z:=(x+y)/(1-(x-y)/2)
Тип результата – вещественный, так как есть операция деления.
Совместимость и преобразование типов
Турбо Паскаль – типизированный язык, в котором осуществляется строгое соблюдение соответствия типов данных.
Два типа считаются совместимыми, если:
§ оба они есть один и тот же тип;
§ оба вещественные (любые подтипы вещественного типа);
§ оба целые (любые подтипы целого типа);
§ один – вещественный тип, второй – целочисленный;
§ один – строка, второй – символ.
Особое значение совместимость приобретает в операторах присваивания.
Существует явное и неявное преобразование типов.
При явном преобразовании типов используются функции преобразования, аргументы которых принадлежат одному типу, а результат – другому (Ord, Trunc, Round, Chr).
Неявное преобразование производится в выражениях, составленных из вещественных и целочисленных операндов; последние автоматически преобразуются к вещественному типу, и все выражение приобретает
вещественный тип.
Основные операторы языка
Оператор присваивания
Оператор используется, чтобы явно присвоить переменной результат вычисления выражения.
Формат оператора:
<Имя переменной> := <Выражение>;
Примеры:
S:=0;
Name:=’Оля’;
S:=S+1;
Выполнение оператора присваивания заключается в следующем: сначала вычисляется результат выражения, затем полученное значение записывается в переменную, имя которой стоит слева от знака присваивания.
Оператор присваивания считается верным, если тип выражения соответствует или может быть приведен к типу переменной слева от знака присваивания.
Переменной вещественного типа можно присвоить выражение вещественного или целочисленного типов. Переменной целочисленного типа можно присвоить значение выражения только целочисленного типа.
Например, если объявлены следующие переменные
Var
I, n : integer;
D : real;
то операторы присваивания
i:=n/10; – неправильный,
i:=1.0; – неправильный,
d:=i: – правильный.
Если тип выражения не соответствует типу переменной, то компилятор выдает сообщение об ошибке.
Составной оператор
Этот оператор, строго говоря, оператором не является. Дело в том, что также как арифметические действия иногда необходимо заключать в скобки, последовательности команд (операторов) тоже иногда требуют объединения. Это позволяют сделать так называемые операторные скобки.
Формат оператора:
Begin
<Оператор 1>;
<Оператор 2>;
......
<Оператор N>
End;
Составной оператор предоставляет возможность выполнить произвольное количество команд там, где подразумевается использование только одного оператора. Такая необходимость встречается довольно часто.
Оператор ввода
Формат оператора:
Read(<Список ввода>);
Readln(<Список ввода>);
Например,
read(x,y);
Оператор ввода позволяет вводить данные в переменные во время выполнения программы с клавиатуры. Элементами списка ввода являются переменные, которые должны быть заполнены значениями, введенными с клавиатуры.
Выполнение оператора ввода происходит следующим образом: ход программы приостанавливается, на экран выводится курсор, компьютер ожидает от пользователя набора данных для переменных, имена которых указаны в списке ввода. Пользователь с клавиатуры вводит необходимые значения в том порядке, в котором они требуются списком ввода, нажимает клавишу Enter.
После этого набранные данные заносятся в соответствующие им переменные, и выполнение программы продолжается.
Разница между работой операторов Read и Readln (от Read line) состоит в следующем: после выполнения Read значение следующего данного считывается с этой же строчки, а после выполнения Readln – с новой строки.
Оператор вывода
Формат оператора:
Write(<Список вывода>);
Writeln(<Список вывода>);
Например,
Write(¢Результат=¢, Pi*r*r);
Оператор вывода позволяет выводить на экран монитора данные из списка вывода. Элементами списка вывода могут являться имена переменных, констант, выражения (которые предварительно вычисляются), текст, заключенный в апострофы. Элементы списка, также как и в операторах ввода, разделяются запятыми.
Различие между операторами Write и Writeln таково: после выполнения оператора Writeln (от Write line) курсор переходит на новую строчку, а после выполнения оператора Write курсор остается на строке вывода, и следующий оператор вывода начинает вывод именно с этой позиции.
Оператор Writeln без параметров (Writeln;) реализует пропуск строки и переход к началу следующей строки.
После имени переменной или выражения через двоеточие можно указать формат числа, который задает ширину поля вывода. Для переменной целого типа – это одно число, указывающее число позиций, отводимых под целое значение (например, write(x:10);). Для переменной вещественного типа – это два числа, первое из которых указывает число позиций, отводимых под все число, включая десятичную точку, второе – число позиций, отводимых под дробную часть числа (например, write(y:7:2);). Если для вещественных величин формат вывода не задан, то значение выводится в форме с плавающей точкой.
Приведем пример использования операторов ввода и вывода:
Program Inteface;
Uses Crt;
Var
R,S : Real;
Begin
Clrscr; {Очистка экрана}
Write('Введите радиус круга '); {Печать на экране просьбы о вводе}
Readln(R); {Ввод значения в переменную R с клавиатуры}
S:=PI*SQR(R); {Вычисление площади круга }
Writeln('Площадь круга радиусом ',R,' равна ',S);
End.
Эта программа запрашивает у пользователя значение радиуса круга, вводит его значение, рассчитывает и выводит на экран величину площади круга с таким радиусом. Таким образом, появляется возможность, не внося изменений в текст программы, вводить с клавиатуры различные значения радиуса и получать соответствующие им значения площади круга. Для этого достаточно несколько раз запустить программу. Также эта программа демонстрирует следующее правило: выдача результатов должна быть прокомментирована так, чтобы был ясен смысл напечатанных чисел. Действительно, ведь можно было бы ограничиться Writeln(S), но значение выведенного программой числа в этом случае было бы ясно только тому, кто эту программу написал.
Условный оператор
Одной из основных алгоритмических структур является ветвление
(альтернатива).
Если условие выполняется, то будет выполнена инструкция «1», если нет, то – инструкция «2». Несмотря на то, что в схеме присутствуют два действия, выполнено будет только одно, так как условие либо ложно, либо истинно. Третьего не дано. Такая схема позволяет решать задачи, в которых в зависимости от сложившихся обстоятельств требуется совершить то или иное действие. Нет никакого сомнения, что число задач такого рода огромно. Более того, очень сложно придумать реально значимое задание, алгоритм выполнения которого содержал бы в себе простое прямое следование команд. Даже примитивный пример, взятый из курса математики, не может быть решен без использования ветвления: необходимо вычислить значение выражения y = 1/x. Данная функция не всегда имеет значение, то есть не для всех значений аргумента существует значение результата. Наша задача так составить алгоритм, чтобы исполнитель ни в коем случае не встал в тупик, даже при получении нуля в качестве аргумента. Сформулировать это на естественном языке нетрудно:
1. Получить значение x.
2. Если x = 0, то сообщить, что выражение значения не имеет, иначе – вычислить y как 1/x.
Таким образом используется приведенная выше алгоритмическая структура. Она может быть выражена простыми словами:
Если <условие> {Если выполняется условие}
то <действие 1> {то выполнить действие № 1 }
иначе <действие 2> {иначе – выполнить действие № 2 }
Как это записать на Паскале? Да точно так же, только по-английски.
Формат условного оператора на языке Паскаль:
If <условие>
Then <оператор 1>
Else <оператор 2>;
Обратите внимание на то, что после Then и Else стоит только один оператор. Но что делать, чтобы решить задачу, в которой по выполнению или невыполнению условия нужно совершить не одно, а несколько действий? Здесь приходит на помощь уже известный нам составной оператор. В операторные скобки можно заключить любое количество операторов.
Вариант условного оператора в этом случае:
If <условие>
Then Begin <группа операторов 1> end
Else Begin < группа операторов 2> end;
Символ «точка с запятой» не ставится перед служебным словом Else, но операторы в группах, естественно, отделяются друг от друга этим символом.
Теперь поговорим об условиях. В программах на языке Паскаль условия представляют собой логические выражения (см. выше). Это может быть как просто переменная логического типа, так и сложная последовательность высказываний, связанных логическими операциями.
Приведем пример решения задачи: «Из двух чисел выбрать наибольшее».
Составим алгоритм и программу.
Program Example;
Var
A,B,C : Real;
Begin
Writeln('Введите два числа');
Readln(A,B); {Ввод аргументов с клавиатуры}
If A>B Then C:=A Else C:=B;
{Если A>B, то результат - A, иначе результат - B}
Writeln(¢Наибольшее число равно ¢, C);
{Вывод результата на экран}
End.
Еще один классический пример: «По заданным коэффициентам решить квадратное уравнение». Эта задача сложнее, поэтому перед тем как писать программу составим алгоритм, записав его в виде блок-схемы.
Сначала вводим коэффициенты, затем вычисляем дискриминант. Теперь возникает две возможности: либо отсутствие действительных корней в случае отрицательного дискриминанта, либо эти корни можно все-таки вычислить и вывести на экран в случае неотрицательного дискриминанта (случай равенства дискриминанта нулю входит сюда же, корней – два, только они одинаковые).
При записи алгоритма на языке программирования следует учесть, что в ветви «нет» не одно действие, а три, поэтому следует применить составной оператор. Арифметические выражения не забывайте записывать в соответствии с правилами языка Паскаль. В остальном, эта программа не сложнее
предыдущей.
Program Sq1;
Var
A, B, C, D, X1, X2 : Real;
Begin
Writeln ('Введите коэффициенты квадратного уравнения');
Readln (A,B,C);
D:=B*B-4*A*C;
If D<0 Then Writeln ('Корней нет! ') Else Begin
X1:=(-B+SQRT(D))/(2*A);
X2:=(-B-SQRT(D))/(2*A);
Writeln ('X1= ', X1:8:3, ' X2= ',X2:8:3)
End
End.
В качестве оператора, который выполняется по истинности или ложности условия, может выступать условный оператор. В этом случае говорят о вложенности условных операторов. При решении такого рода задач настоятельно рекомендуется составлять блок-схему алгоритма и только потом составлять программу. Обычно при записи условных операторов на языке Паскаль (особенно при множественных ветвлениях) команды записывают уступом вправо и вниз. Это повышает наглядность и снижает потери времени на отладку.
Repeat
<оператор 1>;
<оператор 2>;
<оператор 3>;
. . .
Until <условие>;
Читается так: «Выполнять оператор 1, оператор 2. и т. д. до выполнения условия».
Здесь не требуется использование составного оператора, потому что сами слова Repeat и Until являются операторными скобками.
Begin
<Тело процедуры>
End;
Раздел описаний может иметь такие же подразделы, как и раздел описаний основной программы (описание процедур и функций – в том числе). Однако все описанные здесь объекты «видимы» лишь в этой процедуре. Они здесь локальны так же, как и имена формальных параметров. Объекты, описанные ранее в разделе описаний основной программы и не переопределенные в процедуре, называются глобальными для этой подпрограммы и доступны для
использования.
Легко заметить схожесть структуры программы целиком и любой из ее процедур. Действительно, ведь и процедура, и основная программа реализуют некий алгоритм, просто процедура не дает решения всей задачи. Отличие в заголовке и в знаке после End.
Формат описания функции:
Function <Имя функции> (<Имя форм. параметра 1>:<Тип>;
< Имя форм. параметра 2>:<Тип>) : <Тип результата>;
<Раздел описаний>
Begin
<Тело функции>
End;
В теле функции обязательно должна быть хотя бы команда присвоения такого вида: <Имя функции>:=<Выражение>;
Указанное выражение должно приводить к значению того же типа, что и тип результата функции, описанный выше.
Вызов процедуры представляет в программе самостоятельный оператор:
<Имя процедуры>(<Фактический параметр 1>, < Фактический параметр 2>);
Типы фактических параметров должны быть такими же, что и у соответствующих им формальных.
Вызов функции должен входить в выражение. При вычислении значения такого выражения функция будет вызвана, действия, находящиеся в ее теле, будут выполнены, в выражение будет подставлено значение результата
функции.
Отличие функции от процедуры:
1. Заголовок функции начинается со служебного слова Function и заканчивается указанием типа значения функции;
2. Раздел операторов функции должен содержать хотя бы один оператор присваивания имени функции;
3. Обращение к функции – не оператор, а выражение.
Приведем простейший пример использования подпрограммы.
Задача: «Найти максимальное из трех введенных чисел». Для решения воспользуемся описанием функции, принимающей значение максимального из двух чисел, которые передаются в нее в виде параметров.
Program Fn;
Uses Crt;
Var
A,B,C :Real; {глобальные переменные}
Function Max(x,y:Real):Real; {Описываем функцию Max с формальными параметрами x и y}
Begin
If x>y Then Max:=x Else Max:=y;
End;
Begin {начало основной программы}
Clrscr;
Writeln('Введите три числа');
Readln(A,B,C);
Writeln('Максимальным из всех является ', Max(Max(A,B),C));
End.
Обратите внимание на краткость тела основной программы и на прозрачность действий внутри функции. Формальным параметрам x и y при первом вызове передаются значения переменных А и В, а затем полученное и С.
Существует два способа передачи фактических параметров в подпрограмму: по значению и по ссылке. В первом случае значение фактического параметра при вызове подпрограммы присваивается локальной переменной, являющейся формальным параметром подпрограммы. Что бы потом ни происходило с локальной переменной, это никак не отразится на соответствующей глобальной. Для одних задач это благо, но иногда требуется произвести в подпрограмме действия над самими переменными, указанными в качестве фактических параметров. На помощь приходит второй способ. Происходит следующее: при обращении к подпрограмме не происходит формирования локальной переменной – формального параметра. Просто на время выполнения подпрограммы имя этой локальной переменной будет указывать на ту же область памяти, что и имя соответствующей глобальной переменной. Если в этом случае изменить локальную переменную, изменятся данные и в глобальной.
Передача параметров по ссылке отличается тем, что при описании подпрограммы перед именем переменной – формального параметра ставится служебное слово Var.
Еще один классический пример. Задача: «Расположить в порядке возрастания три целых числа».
Program Pr;
Uses Crt;
Var
S1,S2,S3 :Integer; {глобальные переменные}
Procedure Swap(Var A,B: Integer);
Var
C : Integer; {локальная переменная}
Begin
C:=A; A:=B; B:=C {меняем местами содержимое A и B}
End;
Begin {начало основной программы}
Clrscr;
Writeln('Введите три числа');
Readln(S1,S2,S3);
If S1>S2 Then Swap(S1,S2);
If S2>S3 Then Swap(S2,S3);
If S1>S2 Then Swap(S1,S2);
Writeln('Числа в порядке неубывания: ',S1,S2:4,S3:4)
End.
Контрольные вопросы
1. Приведите структуру программы на языке Паскаль.
2. Отличие константы от переменной в языке Паскаль.
3. Перечислите базовые типы данных в языке Паскаль.
4. Перечислите арифметические операции и стандартные функции над данными целого типа.
5. Перечислите арифметические операции и стандартные функции над данными вещественного типа.
6. Какие арифметические операции невозможны над данными вещественного типа.
7. Сколько памяти занимают данные целого, вещественного и символьного типа?
8. Какие значения принимают данные логического типа, и сколько места в памяти они занимают.
9. Привести таблицу истинности логических операций Not, And, Or.
10. Приведите формат оператора ввода. Приведите примеры оператора ввода.
11. Приведите формат оператора присваивания. Приведите примеры оператора присваивания.
12. Приведите формат оператора вывода. Приведите примеры оператора.
13. Для чего нужно указание формата числа в операторе вывода? Приведите примеры.
14. Приведите формат условного оператора. Приведите примеры.
15. Какие операторы цикла вы знаете?
16. Чем отличается цикл While от цикла Repeat?
17. Приведите формат оператора цикла While. Приведите пример оператора.
18. Приведите формат оператора цикла Repeat. Приведите пример оператора.
19. Приведите форматы оператора цикла For. Приведите пример оператора.
20. Чему равен шаг изменения параметра цикла (счетчика) в цикле For?
21. Что называется массивом?
22. Отличие одномерного массива от двумерного.
23. Как объявить одномерный массив?
24. Как объявить двумерный массив? Пример.
25. Приведите фрагмент ввода одномерного массива с клавиатуры.
26. Приведите фрагмент ввода двумерного массива с клавиатуры.
27. Приведите фрагмент формирования одномерного массива случайными числами и укажите, какой диапазон чисел будет использован.
28. Приведите фрагмент формирования двумерного массива случайными числами и укажите, какой диапазон чисел будет использован.
29. Приведите фрагмент вывода одномерного массива в строку.
30. Приведите фрагмент вывода двумерного массива в виде матрицы.
31. Какие виды подпрограмм вы знаете?
32. Когда используются подпрограммы?
33. Что должна иметь в своем составе любая подпрограмма?
34. Приведите формат процедуры.
35. Приведите формат функции.
36. Где объявляются локальные переменные, а где глобальные?
37. Что такое формальные и фактические параметры подпрограмм?
38. Что означает модификатор Var, стоящий перед формальным параметром?
39. Отличие процедуры от функции.
Тема 7. Основные принципы построения
Контрольные вопросы
1. Что понимают под вычислительной сетью?
2. Основное назначение вычислительных сетей.
3. Что составляют аппаратные средства сети?
4. Что включают в себя программные компоненты сети?
5. Перечислить основные показатели качества сети.
6. Что понимается под производительностью сети?
7. Что понимается под пропускной способностью сети?
8. Что понимается под безопасностью сети?
9. Что понимается под прозрачностью сети?
10. Что понимается под масштабируемостью сети?
11. Что понимается под универсальностью сети?
12. Перечислите и охарактеризуйте виды сетей в зависимости от территории.
13. Что такое корпоративная сеть?
14. Перечислите и охарактеризуйте виды сетей по принципу организации передачи данных.
15. Перечислите и охарактеризуйте виды сетей по топологии.
16. Охарактеризуйте принципы работы сетей с разными топологиями. Их достоинства и недостатки.
Контрольные вопросы
1. Перечислите способы соединения компьютеров и виды сетей.
2. Что представляет собой временная (простейшая) компьютерная сеть?
3. Что такое нуль-модем?
4. Назначение выделенных каналов связи. Как они реализуются физически?
5. Что называется распределенными сетями? Какие сети к ним относятся?
6. Что называется глобальной сетью? Приведите пример глобальной сети.
7. Что называется связью по коммутируемому каналу?
8. Что называется разделяемым (сетевым) ресурсом?
Физический уровень
На физическом уровне определяются характеристики электрических сигналов, передающих данные; физического канала связи, типы разъемов с назначением каждого контакта. Физический уровень описывает передачу битов информации по физическим каналам связи.
Функции физического уровня на компьютере выполняются сетевым
адаптером.
Транспортный уровень
На транспортном уровне решаются вопросы обеспечения надежности передачи данных, обнаружения и исправления ошибок передачи (искажение, потеря и дублирование пакетов). Сегмент – блок данных транспортного уровня.
Если качество каналов связи, например, отечественных телефонных линий, оставляет желать лучшего, то разумно использовать более развитый сервис транспортного уровня по обеспечению надежности передачи данных.
Протоколы транспортного уровня и выше реализуются программными средствами узлов сети, компонентами сетевых систем.
Сеансовый уровень
На сеансовом уровне реализуются средства синхронизации, при помощи которых в длинных передачах устанавливаются специальные контрольные точки для возможного отката в случае сбоя не в начало, а на последнюю контрольную точку. Сеансовый уровень обеспечивает управление диалогом между конечными узлами.
Отдельные протоколы сеансового уровня обычно не используются.
Его функции реализуются в протоколах прикладного уровня.
Представительский уровень
Функции уровня представления заключаются в преобразовании формы представления данных, полученных от прикладного уровня одной системы, в форму, необходимую для восприятия прикладным уровнем другой системы.
На этом уровне преодолеваются синтаксические различия в представлении и кодировке данных.
На уровне представления также обеспечивается секретность обмена данными для всех служб прикладного уровня.
Контрольные вопросы
1. Что такое протокол сети?
2. Что такое система OSI? Сколько уровней она содержит?
3. Как называются блоки данных на каждом уровне OSI?
4. Охарактеризуйте кратко физический уровень OSI.
5. Охарактеризуйте кратко канальный уровень OSI.
6. Охарактеризуйте кратко сетевой уровень OSI.
7. Охарактеризуйте кратко транспортный уровень OSI.
8. Охарактеризуйте кратко сеансовый уровень OSI.
9. Охарактеризуйте кратко представительский уровень OSI.
10. Охарактеризуйте кратко прикладной уровень OSI.
Тема 10. Техническое и программное обеспечение ИВС
Техническое обеспечение информационно-вычислительных сетей
Структурно ИВС содержит:
· компьютеры (хост-компьютеры, сетевые компьютеры, рабочие станции, серверы), размещенные в узлах сети;
· аппаратуру и каналы передачи данных, с сопутствующими им периферийными устройствами;
· интерфейсные платы и устройства (сетевые платы, модемы);
· маршрутизаторы и коммутационные устройства.
Модемы и сетевые карты
Модем (МОдулятор-ДЕМодулятор) – устройство прямого (модулятор) и обратного (демодулятор) преобразования сигналов к виду, принятому для использования в определенном канале связи.
Модемы бывают самые разные, но в первую очередь их можно разделить на аналоговые и цифровые.
Контрольные вопросы
1. Что такое сервер и рабочая станция (клиент)?
2. Перечислите и дайте краткую характеристику специализированных серверов.
3. Что такое хост-компьютеры?
4. Что такое модем и какие виды модемов вы знаете?
5. Охарактеризуйте внутренний и внешний модемы.
6. Отличие цифровых модемов от аналоговых.
7. Что представляет собой сетевая карта, перечислите основные характеристики.
8. Какие устройства межсетевого интерфейса вы знаете?
9. Назначение повторителя как устройства межсетевого интерфейса.
10. Назначение моста как устройства межсетевого интерфейса.
11. Назначение маршрутизатора как устройства межсетевого интерфейса.
12. Назначение шлюза как устройства межсетевого интерфейса.
13. Что входит в сетевое программное обеспечение?
Построение локальных сетей
Контрольные вопросы
1. Назначение локальной сети.
2. Как выполняется связь локальной сети с сетью Интернет?
3. Классификация локальных вычислительных сетей (по количеству подключенных к сети компьютеров, по территориальной расположенности, по топологии, по типам используемых компьютеров).
4. Виды локальной вычислительной сети по организации управления.
Их характеристика.
5. Отличие одноранговой сети от иерархической.
6. Отличие коммутатора от концентратора.
7. Что является основной задачей маршрутизатора?
8. Из каких частей состоит сетевая ОС?
Тема 12. Глобальная сеть Интернет
Основные понятия
Интернет представляет собой глобальную компьютерную сеть, охватывающую весь мир и содержащую гигантский объем информации по любой тематике, доступной на коммерческой основе для всех желающих. Помимо получения чисто информационных услуг через Интернет можно совершать покупки и коммерческие сделки, оплачивать счета, заказывать билеты на различные виды транспорта и др.
Интернет представляет собой объединение нескольких десятков тысяч локальных сетей, за что она и получила название СЕТЬ СЕТЕЙ. Каждая локальная сеть называется УЗЛОМ или САЙТОМ, а юридическое лицо, обеспечивающую работу сайта, – ПРОВАЙДЕРОМ. Сайт состоит из нескольких компьютеров – СЕРВЕРОВ, каждый из которых предназначен для хранения информации определенного типа и в определенном формате. Каждый сайт и сервер на сайте имеют уникальные имена, посредством которых они идентифицируются в Интернете.
Для подключения к Интернету пользователь должен заключить контракт на обслуживание с одним из провайдеров в его регионе. После этого любая работа в Интернете начинается с соединения с сайтом провайдера. Связь с провайдером может быть организована или по коммутируемому телефонному каналу с помощью модема, или с помощью постоянно действующего выделенного канала. В первом случае соединение с провайдером выполняется с помощью модема и средств удаленного доступа, во втором – просто вызовом соответствующей программы для работы в Интернете. В обоих случаях после соединения с провайдером пользователь получает доступ ко всем сайтам и компьютерам в Интернете. Открывающиеся при этом перед пользователем возможности зависят от условий контракта, заключенного с провайдером. Потенциально Интернет предоставляет информационный сервис общего назначения.
Контрольные вопросы
1. Что такое Интернет?
2. Что такое узел (сайт) и провайдер?
3. Перечислите информационные ресурсы Интернет.
4. Что такое WWW?
5. Что такое FTP?
6. Что такое E-mail?
7. Что такое IRC и ICQ?
8. Что такое Telnet?
9. Как называются программы для работы с WWW? Приведите пример такой программы.
10. Какие две системы адресов имеет каждый хост в сети?
11. Что представляет собой IP-адрес? Приведите пример.
12. Что представляет собой доменное имя хоста? Приведите пример.
13. Где в DNS-имени располагается домен более высокого уровня?
14. По каким признакам строятся домены верхнего уровня? Привести примеры.
15. Что представляет собой URL-адрес?
16. Что может указываться в качестве префикса (протокола) в URL-адресе?
17. Что представляют собой E-mаil-адреса? Привести пример.
18. Назовите основной протокол Интернета.
19. Что такое домашняя страница браузера?
20. Какие средства поиска в WWW вы знаете? Привести примеры поисковых систем.
21. Назовите протоколы работы с электронной почтой.
Тема 13. Вирусы и антивирусное программное обеспечение
Классификация вирусов
В настоящее время известно более 5000 программных вирусов, их можно классифицировать по следующим признакам (табл. 13.1 ):
· среде обитания;
· способу заражения среды обитания;
· степени воздействию;
· особенностям алгоритма.
Таблица 13.1. Классификация вирусов
ПРИЗНАКИ | ||||
Среда обитания | Способ заражения | Степень воздействия | Особенность алгоритма | |
ВИДЫ | Сетевые | Резидентные | Неопасные | Простейшие |
Файловые | Нерезидентные | Опасные | Вирусы-репликаторы | |
Загрузочные | Очень опасные | Вирусы-невидимки | ||
Файлово- загрузочные | Вирусы-мутанты |
В зависимости от среды обитаниявирусы можно разделить на сетевые, файловые, загрузочные и файлово-загрузочные. Сетевые вирусы распространяются по различным компьютерным сетям. Файловые вирусы внедряются главным образом в исполняемые модули, т. е. в файлы, имеющие расширения COM и EXE. Файловые вирусы могут внедряться и в другие типы файлов, но, как правило, записанные в таких файлах, они никогда не получают управление и, следовательно, теряют способность к размножению. Загрузочные вирусы внедряются в загрузочный сектор диска (Boot-сектор) или в сектор, содержащий программу загрузки системного диска (Master Boot Record). Файлово-загрузочные вирусы заражают как файлы, так и загрузочные сектора дисков.
По способу заражения вирусы делятся на резидентные и нерезидентные. Резидентный вирус при заражении (инфицировании) компьютера оставляет в оперативной памяти свою резидентную часть, которая потом перехватывает обращение операционной системы к объектам заражения (файлам, загрузочным секторам дисков и т. п.) и внедряется в них. Резидентные вирусы находятся в памяти и являются активными вплоть до выключения или перезагрузки компьютера. Нерезидентные вирусы не заражают память компьютера и являются активными ограниченное время.
По степени воздействия вирусы можно разделить на следующие виды:
· неопасные, не мешающие работе компьютера, но уменьшающие объем свободной оперативной памяти и памяти на дисках, действия таких вирусов проявляются в каких-либо графических или звуковых эффектах;
· опасные вирусы, которые могут привести к различным нарушениям в работе компьютера;
· очень опасные, воздействие которых может привести к потере программ, уничтожению данных, стиранию информации в системных областях диска.
По особенностям алгоритма вирусы трудно классифицировать из-за большого разнообразия. Простейшие вирусы – паразитические, они изменяют содержимое файлов и секторов диска и могут быть достаточно легко обнаружены и уничтожены. Можно отметить вирусы-репликаторы, называемые червями, которые распространяются по компьютерным сетям, вычисляют адреса сетевых компьютеров и записывают по этим адресам свои копии. Известны вирусы-невидимки, называемые стелс-вирусами, которые очень трудно обнаружить и обезвредить, так как они перехватывают обращения операционной системы к пораженным файлам и секторам дисков и подставляют вместо своего тела незараженные участки диска. Наиболее трудно обнаружить вирусы-мутанты, содержащие алгоритмы шифровки-расшифровки, благодаря которым копии одного и того же вируса не имеют ни одной повторяющейся цепочки байтов. Имеются и так называемые квазивирусные или «троянские» программы, которые хотя и не способны к самораспространению, но очень опасны, так как, маскируясь под полезную программу, разрушают загрузочный сектор и файловую систему дисков. «Макровирусы» используют возможности макроязыков в системах обработки данных (текстовые редакторы, электронные таблицы и т. д.). В настоящее время наиболее распространены макровирусы заражающие документы редакторов Microsoft Word, Excel, Access.
Контрольные вопросы
1. Способы проникновения вирусов на компьютер.
2. Перечислите признаки, по которым классифицируются вирусы.
3. Перечислите вирусы по среде обитания. Дать краткую характеристику.
4. Перечислите вирусы по способу заражения. Дать краткую характеристику.
5. Перечислите вирусы по степени воздействия. Дать краткую
характеристику.
6. Перечислите вирусы по особенностям алгоритма.
7. Дайте краткую характеристику репликаторных вирусов.
8. Дайте краткую характеристику вируса «троянский конь».
9. Дайте краткую характеристику вируса «логическая бомба».
10. Дайте краткую характеристику вирусов-мутантов.
11. Дайте краткую характеристику вируса-невидимки.
12. Перечислите виды антивирусных программ.
13. Назовите основные действия антивирусных программ- детекторов и программ-докторов.
14. Назовите основные действия антивирусных программ-ревизоров.
15. Что представляют собой антивирусные программы-фильтры и программы-вакцины (иммунизаторы).
Библиографический список
1. Кадырова, Г. Р. Информатика: учебно-методический комплекс / Г. Р. Кадырова; Ульян. гос. техн. ун-т. – Ульяновск: УлГТУ,2005.
2. Кадырова, Г. Р. Компьютерный практикум. Часть 1: учебное пособие / Г. Р. Кадырова. – Ульяновск: УлГТУ, 2006.
3. Кадырова, Г. Р. Компьютерный практикум. Часть 2: учебное пособие / Г. Р. Кадырова. – Ульяновск: УлГТУ, 2006.
4. Кадырова, Г. Р. Курс лекций по информатике. Часть 1: учебное пособие / Г. Р. Кадырова. – Ульяновск: УлГТУ, 2008.
5. Информатика : учеб. пособие для студ. / Сост.: А. В. Могилев, Н. И. Пак, Е. К. Хеннер. – М. : Издательский центр «Академия», 2003.
6. Информатика : учебник / под ред. Н. В. Макаровой. – Изд. 3-е – М. : Финансы и статистика, 2003.
– Конец работы –
Используемые теги: Тема, обработка, данных, средствами, электронных, таблиц0.088
Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Тема 1. Обработка данных средствами электронных таблиц
Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:
Твитнуть |
Новости и инфо для студентов