Способы организации данных
ПРОГРАММА КУРСА
Лекции
Раздел 1
Вводная часть.
· Программное и аппаратное обеспечение. Языки программирования: уровень и тип языка программирования, характеристики. Краткий обзор парадигм программирования: процедурные языки, объектно-ориентированные языки.
· Этапы разработки программного обеспечения. Жизненный цикл программного продукта.
· Характеристики разрабатываемой программы.
· Основные принципы обработки команд программы исполнителем (компьютером).
· Организация ЭВМ. Принципы построения ЭВМ, машина Фон Неймана.
Раздел 2
Понятие Данные.
· Понятие данные, информация. Свойства информации. Представление данных разного типа в компьютере: целочисленные данные и числа с плавающей точкой, строки фиксированной и переменной длины, символы, логические значения, даты. Различные варианты кодировки символов. Сравнение данных разных типов. Системы счисления. Общие понятия и конкретные системы: десятичная, двоичная, шестнадцатеричная, восьмеричная. Правила перевода числа из одной системы в другую. Устройство памяти. Адресация. Понятие переменная. Объявление (декларация) и инициализация переменных. Правила именования.
Раздел 3
Понятие Программа.
· Понятие программа, алгоритм, исполнитель.
· Типы программного обеспечения: системное, прикладное, инструментальное (средства разработчика).
· Трехуровневая модель программного продукта.
· Свойства алгоритмов. Формы представления алгоритмов: естественный язык, блок-схема, формальный язык. Составление блок-схем алгоритмов.
· Иерархическая организация программы, модульность. Область видимости и время жизни. Секции программного модуля.
· Понятия транслятор, компилятор, интерпретатор. Статическая и динамическая компиляция.
Раздел 4
Понятие Интерфейс.
· Варианты интерфейсов: UI, GUI и др. Важность правильной разработки интерфейса. Различные методы построения диалога с пользователем.
Раздел 5
Язык программирования. Переменные.
· Состав и структура языка программирования. Понятия алфавита, синтаксиса и семантики.
· Комментарии.
· Переменные. Определение имени переменной. Объявление переменной. Инициализация переменной по умолчанию и из кода.
· Область видимости и время жизни переменных. Затенение имен.
· Оператор присваивания.
· Типы переменных. Преобразование типов явное и неявное. Стандартные операции с переменными.
· Константы.
· Указатель или ссылка на переменную.
Раздел 6
Язык программирования. Операторы.
· Понятие оператора. Запись операторов. Многострочные операторы, понятие блока.
· Оператор условия. Составления условия: сравнение числовых значений, дат, строковых и логических значения. Составление сложных условий: использование логических операций OR, AND, XOR, NOT. Приоритет операций. Вложенные операторы. Оптимизация условий.
· Оператор выбора. Оптимизация оператора выбора.
· Оператор цикла: циклы с предусловием, с постусловием, с параметром. Цикл для обхода элементов группы. Понятия: тело цикла, условие цикла, счетчик, итерация. Использование счетчика цикла. Оператор досрочного выхода из цикла.
Раздел 7
Процедуры и функции.
· Декомпозиция задачи на подзадачи. Программирование сверху вниз и снизу вверх. Парадигма черного ящика. Входные и выходные данные подпрограммы.
· Понятия подпрограмма, процедура, функция. Процедуры стандартные, пользовательские, обработки событий. Описание, объявление, вызов процедуры. Библиотеки функций.
· Вызов процедуры и функции.
· Аргументы формальные и фактические. Тип аргумента. Передача аргументов по значению и по ссылке. Значение, возвращаемой функцией.
· Способы взаимодействия различных фрагментов программы. Структурная декомпозиция.
Раздел 8
Способы организации данных.
· Роль организации данных в программе.
· Понятие массива. Массивы одномерные и многомерные. Понятие индекса и элемента массива. Подсчет объема памяти занимаемой массивом. Типовые задачи с массивами: доступ к элементу, обход элементов, инициализация элементов.
· Представление текстовой информации. Понятие строка. Различные способы организации строковых данных. Работа с отдельными символами. Наиболее употребительные функции для работы со строками.
· Пользовательский тип данных (структура). Объявление и использование пользовательского типа. Совместное использование пользовательских типов данных и массивов.
· Применение списков и файлов. Однонаправленный, двунаправленный, кольцевой списки. Организация стеков различных типов.
Раздел 9