1. Введение
Понятия алгоритма, ЭВМ, программы и данных, стандартных подпрограмм и языков программирования высокого уровня, транслятора и основных этапов решения задач на ЭВМ. Синтаксис и семантика языка программирования, лексемы и понятия, синтаксические диаграммы и языковая машина.
2. Элементы языка Паскаль
Алфавит Паскаля и правила записи Паскаль-программ. Понятие типа, стандартные типы данных, переменные и константы, операции и стандартные функции. Выражения и старшинство операций. Понятие оператора (элементарного и структурированного), операторы присваивания, ввода и вывода, составной и условный операторы, операторы выбора. Общий вид Паскаль-программы.
3. Средства для построения итеративных программ
Управление вычислениями и блок-схемы. Операторы цикла: операторы цикла с условием на продолжение, операторы цикла с условием на окончание, операторы цикла с параметрами.
4. Разработка программ со структурированными данными
Простые типы данных, определяемые программистом, отрезки типов, типы, заданные перечислением значений. Конструкторы составных типов, записи, массивы, матрицы и таблицы. Идентичные и согласованные типы.
5. Разработка программ с подпрограммами
Процедуры, их описания и операторы вызова. Формальные и фактические параметры, правила их соответствия. Изменения действия - параметры-значения. Получение результатов - параметры-переменные. Вычисление единственного значения - функции. Блоки, области действия описаний и области существования объектов, локальные и нелокальные объекты. Рекурсия. Понятие глубины рекурсии - текущей и максимальной. Поколения переменных. Достоинства и недостатки рекурсивного представления алгоритмов.
6. Методы разработки качественных программ
Понятие качества программы: правильность,
эффективность, надежность, наглядность. Доказательство свойств программ:
внешняя спецификация программы, метод промежуточных утверждений. Доказательство
свойств программ со структурированными данными. Метод структурной индукции.
Методы повышения эффективности простых и итеративных программ. Пошаговая
разработка итеративных программ. Использование процедур и функций для пошаговой
разработки программ: нисходящий и восходящий подходы.
2. Линейная нотация и способы задания синтаксиса (/4/ - 1, /7/ - N 1.16, 1.17).
3. Логический и литерный типы (/5/ - 1; /7/ - N1.6-1.11).
4. Составной и условный операторы (/5/ - 2; /7/ - N1.2-1.5, 1.12-1.15).
5. Оператор цикла с условием на продолжение (/5/ - 3-6; /7/ - Т 2.1-2.51).
6. Пошаговая разработка программ. Часовая контрольная на составление программы для обработки последовательности переменной длины.
7. Разбор результатов контрольной работы. Понятие стандартного и определяемого типа. Определение констант и простых типов (/7/ - N 2.53-2.54).
8. Типы массивов и записей (/5/ - 7,8; /7/ - N 4.1-4.22).
9. Операторы циклов с параметрами(/5/ - 7-9; /7/ - N 3.1-3.27).
10. Процедуры. Параметры-значения и параметры-переменные (/5/ - 11; /7/ - варианты 1а задач N 5.1-5.6).
11. Функции, их отличия от процедур (/5/ - 11; /7/ - варианты 1б задач N 5.1-5.6).
12. Закрепление материала. Обработка матриц и таблиц с использованием процедур и функций (/5/ - 9-11; /7/ - N 5.7-5.26).
13. Итоговая контрольная. Состоит
из вопроса по языку и двух задач. Одна из них аналогична задаче из первой
контрольной, а другая - это задача обработки таблиц или матриц с использованием
процедур и функций с параметрами.
2-й семестр
7. Дополнительные средства языка Паскаль и вопросы реализации внеязыковых типов данных
Метки и операторы перехода, их дисциплинированное употребление. Необходимость объединения типов - записи с вариантами. Типы множеств. Типы файлов. Процедуры и функции как параметры. Типы стеков и очередей. Реализация стеков и очередей с помощью массивов и записей. Указательные типы и генерация элементов памяти. Использование указателей и динамических переменных для реализации стеков и очередей.
8. Язык и система Турбо-Паскаль
Компилятор и интегрированная среда Турбо-Паскаль. Особенности типов данных языка Турбо-Паскаль, целые, вещественные и строковые типы, процедурные типы, текстовые, типизированные и нетипизированные файлы. Абсолютные переменные и типизированные константы. Приведение типов значений и переменных. Управляемая компиляция, опции и директивы. Включение файлов. Модули и проектирование программ. Стандартные модули. Программирование с перекрытиями. Объектно-ориентированное программирование. Тестирование и отладка программ.
9. Элементы языка Фортран
Алфавит Фортрана, константы и имена. Правила записи Фортран-программ. Типы и размеры значений. Массивы и расположение их элементов. Описания и возможность умолчаний, задание начальных значений. Эквивалентность переменных. Выражения и встроенные функции. Операторы присваивания. Операторы управления вычислениями: операторы безусловных и вычисляемых переходов, условные операторы, операторы продолжения и останова, циклы. Форматы, форматные ввод и вывод, список вывода и неявные циклы. Простые программы на Фортране, описательная и операторная части, операторные функции.
10. Модульное программирование на Фортране
Модульная структура программы на Фортране: головной модуль, модули-подпрограммы, модули-функции. Организация памяти в модульной программе, локальные и общие переменные, блоки общих переменных, модули инициализации.
11. Особенности решения задач на Фортране
Средства отладки Фортран-программ:
диагностика ошибок, пакеты и операторы отладки. Разработка наглядных Фортран-программ.
Защитное программирование на Фортране. Реализация сложно структурированных
данных на языке Фортран. Нисходящее проектирование Фортран-программ.
1. Использование процедур и функций для пошаговой разработки программ (/5/ - 9-11; /7/ - N 5.7-5.26).
2. Рекурсивные процедуры и функции (/5/ - 12; /7/ - N 6.12-6.23).
3. Множества и файлы (/7/ - N 8.1-8.29).
4. Организация динамической памяти и ее использование для реализации списков и деревьев (/7/ - N 7.1-7.15).
5. Основные конструкции языка Фортран (в сравнении с аналогичными конструкциями языка Паскаль) (/4/ - N 135-255).
6. Организация ввода-вывода (/4/ - N 271-348).
7. Модульное программирование на Фортране (/4/ - N 360-386).
8. Итоговая контрольная. Состоит из двух задач: одна - это задача на составление Фортран-программы для обработки последовательности переменной длины, а другая - Паскаль-программа для обработки последовательности таблиц или матриц.
9. Зачет.
Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.:Наука,1988.
Белецки Я. Фортран 77.- М.: Высшая школа,1991.
Касьянов В.Н. Основы программирования на языке Паскаль. - Новосибирск: НГУ, 1987.
Касьянов В.Н., Сабельфельд В.К. Сборник заданий по программированию. - Новосибирск: НГУ, 1986.
Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ. - М.: Наука, 1986.
Сборник упражнений по программированию на языке Паскаль / Агафонов В.Н., Поттосин И.В., Бежанова М.М., Сабельфельд В.К. - Новосибирск: НГУ, 1985.
Вирт Н. Алгоритмы + структуры данных = программы. - М.:Мир,1985.
Грис Д. Наука программирования. - М.:Мир,1984.
Йенсен К., Вирт Н. Паскаль. Руководство для пользователя и описание языка. - М.:Финансы и статистика, 1982.
Уэзерелл Ч. Этюды для программирования. - М.: Мир, 1982.
Джонс Ж., Харроу К. Решение задач
в системе Турбо-Паскаль.- М.: Финансы и статистика, 1991.
Программу составил
проф. В.Н. Касьянов