- •Первый семестр
- •Дальнейшее обучение программированию (по семестрам)
- •Рекомендуемая литература
- •I семестр Лекция 1
- •1.1 Алгоритм. Понятие алгоритма
- •1.2 Алгоритмические языки
- •1.3 Запись алгоритма
- •1.4 Элементарные структуры
- •Лекция 2
- •2.1. Договоренности о синтаксисе
- •2.2. Текст программы на Turbo Pascal
- •2.3 Элементарные операции
- •2.4. Таблица перевода для структур
- •Алгоритм:
- •Текст программы
- •2.5 Практические рекомендации по решению задач
- •3.2. Частные случаи для структуры цикла
- •3.3 Массивы
- •Лекция 4
- •4.0 Требования к защите бальных задач
- •4.1 Начало систематического изложения Turbo Pascal (tp)
- •Лекция 5
- •5.1 Простые типы данных
- •5.1.1 Перечислимый тип
- •5.1.2 Интервальный тип
- •5.1.3 Целочисленные типы
- •5.1.4 Данные типа char
- •5.1.6 Вещественные типы данных
- •Лекция 6
- •6.1 Структура программы на Паскале
- •6.2 Процедуры для стандартного ввода/вывода
- •6.3 Массивы. Регулярный тип
- •6.4 Для работы с массивами – шаблоны
- •Лекция 7
- •7.1 Строки
- •7.2 Записи
- •Лекция 8
- •8.1 Множества
- •8.2 Файлы
- •8.3 Процедуры открытия и закрытия файлов:
- •8.4 Процедуры ввода/вывода:
- •Лекция 9
- •9.1 Текстовые файлы.
- •9.2 Проект программы:
- •9.3 Простейший сканер.
- •9.4 Копия любого файла
- •Лекция 10
- •10.1 Процедуры и функции
- •10.2 Передача параметров в процедуры и функции
- •10.3 Глобальные переменные. Перекрытие (экранирование)
- •10.4 Процедурные типы
- •10.6 Рекурсия. Косвенная рекурсия
- •Лекция 11
- •11.1 Статическая и динамическая память программы
- •11.2 Динамическая память (куча, heap) с точки зрения тр
- •11.3 Операции над указателями
- •11.4 Пояснения с помощью картинки
- •11.5 Динамическая цепочка
- •Лекция 12
- •12.1 Цикл жизни программы. Проект программы
- •12.2 Характеристики качества программ
- •12.3 Программное окружение
- •12.4 Модули
- •Пример Печать данного перечислимого типа. Вот простой пример модуля (пусть имя файла с представленным ниже текстом My_Unit.Pas):
- •12.5 Обзор модуля System
- •12.5.1 Процедуры и функции, обслуживающие файловую систему
- •Лекция 13
- •13.1 Модуль crt - средства работы с экраном, клавиатурой и др.
- •13.2 Обзор примеров программ
- •13.3 Процедуры и функции модуля Crt
- •Лекция 14
- •14.1 Модуль dos - работа с файловой системой.
- •14.1.1 Прерывания.
- •14.1.2 Процедуры и функции модуля Dos
- •Лекция 15
- •15.1 Модуль Graph.
- •15.1.1 Общие сведения:
2.5 Практические рекомендации по решению задач
Вы получили задачу, сформулированную на русском языке. Прежде чем приступать к ее решению, постарайтесь вдуматься в условие задачи и точно его понять. Затем следует продумать, какие исходные данные и в каком порядке потребуются при решении задачи и что собой будет представлять результат работы будущей программы. Следует, также, продумать сюжет взаимодействия пользователя с Вашей программой (интерфейс пользователя). Интерфейс пользователя должен быть удобным и простым.
Особое внимание следует уделить обозначениям, используемым в алгоритме. Имена объектов алгоритма должны соответствовать смыслу обозначаемых ими объектов, но не забывайте, что эти же имена нужно будет использовать и в тексте программы на ТР, поэтому позаботьтесь о том, чтобы эти имена были допустимы в языке ТР.
Продумайте решение задачи и постарайтесь его изложить на русском языке. Пока не будет полной уверенности в правильности Вашего решения не начинайте детализацию сверху вниз с записью на языке схем алгоритмов. Только полностью закончив детализацию алгоритма, садитесь за компьютер.
2.6. Понятие о файловой системе
В современных операционных системах хорошо развиты средства поддержки файловой системы. Для уверенной работы за ПК необходимо уметь ориентироваться в существующей файловой структуре и выполнять основные операции поддержки файловой системы – создание , удаление, переименование, копирование и перенос файлов и папок.
2.7. Интегрированная среда ТР
Для создания программ на языке ТР необходимо освоить работу в интегрированной среде ТР. Интегрированная среда ТР содержит встроенный редактор, транслятор и сервисные средства. Необходимо научиться набирать и редактировать текст программ, компилировать, выполнять и просматривать результаты работы программы.
Лекция 3
3.1 Проект программы
В профессиональные обязанности прикладного математика входит создание проекта программы. В самом общем случае проект программы включает в себя следующие позиции:
Точная формулировка задачи, включая разработку будущего интерфейса пользователя, с описанием входных и выходных данных.
Выбор типов данных, соответствующих параметрам объекта исследования, выбор имен констант, переменных, процедур и функций, соответствующих этим параметрам и описывающих функционирование объекта исследования.
Создание структур данных, моделирующих взаимосвязь параметров объекта исследования.
Разработка иерархии алгоритмов и подалгоритмов (процедур и функций), обрабатывающих созданные структуры данных.
Разработка алгоритма решения задачи.
Каждый из перечисленных пунктов требует глубокого осмысления и будет уточняться по мере изложения материала текущего курса. Попробуйте на базе материала 1 и 2 лекций при выполнении лабораторных работ максимально проработать позиции проекта программы.
3.2. Частные случаи для структуры цикла
Полный цикл с) пункта 1.4 редко используется при разработке алгоритмов. При решении конкретных задач используются частные случаи этого цикла, в которых отсутствует один из блоков – либо Ф1, либо Ф2. Можно строго математически доказать, что этих двух частных случаев цикла достаточно для организации любого цикла.
Решим такую задачу: написать программу, вычисляющую сумму
S=1-1/2+1/3-1/4+1/5-1/6-...+1/999-1/n.
В этом решении использован полный цикл. Однако, нетрудно видеть, что подалгоритм «Накопление» можно реализовать по-другому. Сравните представленные ниже реализации:
Обратите внимание на то, что тело цикла с постусловием обязательно будет выполнено хотя бы один раз при любом значении n и начальном значении параметра цикла i, тогда как при начальном значении параметра цикла i > n тело цикла с предусловием не будет выполнено ни разу.
Для реализации цикла с предусловием на языке ТР (как и на многих других языках) удобнее вместо условия выхода из цикла использовать условие продолжения цикла (напоминаю, в блоке решения стрелка влево всегда помечается значением «истина», стрелка вправо – значением «ложь»):
Можно доказать эквивалентность полного цикла и цикла с постусловием. Действительно, каждый цикл с постусловием является частным случаем полного цикла. Вот иллюстрация к доказательству факта, что любой полный цикл может быть организован как цикл с постусловием:
Приведем решения поставленной задачи с использованием частных случаев полного цикла:
Цикл с постусловием |
Цикл с предусловием |
readln(n); S=0; Zn=1; I=1; repeat S=S+Zn/I; Zn=-Zn; I=I+1 until I>n; writeln(S) |
readln(n); S=0; Zn=1; I=1; while not(I>n) do begin S=S+Zn/I; Zn=-Zn; I=I+1; end; writeln(S) |
Если в решении задачи заранее известно количество повторений тела цикла (в нашей задаче n), можно упростить изображение структуры, указав лишь операции в теле цикла и границы изменения параметра цикла – начальное значение, конечное значение и шаг. Такой цикл называется циклом с параметром. На языке ТР имеется оператор цикла с параметром.
В решении задачи параметром цикла может оказаться любая переменная, соответствующая какому-либо параметру объекта исследования. Однако, решение можно всегда переформулировать так, что параметром цикла будет служить номер итерации (повторения выполнения тела цикла). В этом случае параметр цикла будет изменяться всегда от 1 до максимального номера итерации с шагом 1.