- •1Технология объектно-ориентированного программирования. Объекты и их свойства.
- •2 Системы программирования. Интерпретация и компиляция.
- •3 Технология алгоритмического программирования. Основные структуры и средства языка программирования (операторы, функции, процедуры).
- •4 Технология логического программирования. Основные структуры и средства логического программирования (язык пролог).
- •5 Глобальная сеть Интернет и ее информационные ресурсы (файловые архивы, “всемирная паутина”, электронная почта, телеконференции).
- •Телеконференции
- •Файловые архивы
- •6 Основные подходы к программированию: процедурный (алгоритмический), логический, объектно-ориентированный.
- •7 Структура программного обеспечения компьютера и назначение его составных компонентов.
- •8 Основные принципы структурного программирования.
- •9 Основные типы и способы организации данных (переменные, массивы, списки).
- •10 Логические функции и их преобразования.
- •11 Основные логические операции (“и”, “или”, “не”).
- •12 Информация. Вероятностный подход к измерению количества информации.
- •13 Технология мультимедиа (аппаратные и программные средства).
- •Аппаратные средства мультимедиа
- •14 Информационная технология решения задачи с помощью компьютера: основная технологическая цепочка.
- •15 Аппаратные компоненты и программные средства компьютера.
- •16 Функциональные узлы процессорах регистры, сумматоры и др.
- •17 Системы счисления. Двоичная система счисления и ее применение в вычислительной технике.
- •18 Технология гипертекста. Компьютерные справочники и энциклопедии.
- •19 Информатизация общества. Основные этапы развития вычислительной техники.
- •20 Двоичное кодирование текста, изображения и звука.
- •Двоичный код
8 Основные принципы структурного программирования.
Рост затрат на разработку программного обеспечения заставил искать такую технологию разработки программ, которая позволила бы:
а) получать надежные программные продукты, т. е. программный код, без ошибок;
б) поручать разработку программы коллективу программистов (увеличение количества разработчиков, как правило, не приводило к сокращению времени разработки программ).
Реализация этих требований привела с одной стороны к появлению доказательного программирования. Это означает, что правильность программы должна быть по возможности доказана. Кроме того, был предложен стиль программирования, который обеспечил бы выполнение этих требований. Программа должна быть понятна коллегам-программистам и должна допускать повторное использование, должна допускать модификации таким образом, чтобы изменения в тексте программы касались бы не всего текста, а отдельных фрагментов.
Ключевая идея структурного программирования — отражение внутренней структуры алгоритма в структуре текста программы. Например, следуя Н. Вирту, реализуем алгоритм Евклида поиска наибольшего общего делителя двух целых чисел (НОД), который состоит в замене большего из двух чисел на их разность до тех пор, пока числа не станут равными. Тогда полученное число и есть искомый НОД.
Первый набросок выглядит так:
WHILE х #у DO
“заменить большее из х и у на их разность”
WEND
Здесь символ “#” означает “не равно”. Заменим теперь текст в кавычках на предложения формального языка:
WHILE х #у DO
IF х > у THEN
х : = х — у
ELSE у: = у — х
END IF
WEND
Иерархия операторов в данном фрагменте текста отражает структуру алгоритма. Первый набросок — это один оператор, который содержит другой — подчиненный “оператор” (текст в кавычках). В формальном тексте этот внутренний оператор детализирован.
Развитие идей структурного программирования привело к появлению модульного программирования. Программа разбивается на модули, соответствующие иерархии абстракций. Каждый модуль с точки зрения его внешнего функционирования соответствует какой-либо абстракции, например, операция ввода-вывода; при этом нам совершенно безразлично внутреннее устройство модуля. Более того, внутреннее устройство модуля должно быть скрыто. Такое скрытие внутренней информации модуля, защищенность от внешнего доступа, с одной стороны, гарантирует правильность функционирования модуля, с другой стороны, предоставляет возможность изменения в случае необходимости только этого модуля без изменения остальных модулей.
С внедрением в широкую практику разработки программ объектно-ориентированного программирования, впитавшего в себя идеи структурного и модульного программирования, структурное программирование стало фактом истории информатики.
9 Основные типы и способы организации данных (переменные, массивы, списки).
Базисным понятием для обсуждения организации данных, т. е. информации, подлежащей обработке, является переменная. Обычно этот термин ассоциируется с понятием переменной величины в математике. С развитием технологии программирования первоначальное значение этого термина было расширено. Сейчас под переменной понимают идентификатор (имя), который указывает на какой-либо элемент данных, а в объектно-ориентированных языках — на объект, в котором инкапсулированы (содержатся) как данные, так и процедуры.
Почти во всех современных языках переменную следует объявить, прежде чем использовать. При объявлении переменной указывается ее тип, который определяет множество допустимых значений переменной и набор допустимых действий, которые можно совершать с этой переменной. Как правило имеются базовые типы и типы, которые может задавать пользователь. Типы условно делятся на скалярные и структурные. Переменная скалярного типа указывает на одно значение, например число или символ. Переменная структурного типа состоит из некоторого числа элементов, как бы содержит в себе множество других переменных и фиксирует их взаимосвязь.
Вот как выглядит иерархия скалярных типов (классов) в языке Смолток:
В популярном языке Java имеются следующие базовые скалярные типы: четыре целочисленных, два вещественных, символьный и логический. Во многих языках используется такой тип, как указатель. Переменная этого типа содержит физический адрес, который указывает на какую-либо другую переменную.
Структурные типы языка Смолток имеют следующую иерархию:
В языке Паскаль и родственных ему языках для создания сложных структур данных используется тип “запись”, в языке С для этой же цели служит тип “структура”.