
- •Работает
- •1.1. История создания эвм.
- •1.3. Размещение данных и программ в памяти пэвм.
- •1.4.Файловая система хранения информации
- •1.5.Операционная система.
- •Лекция 2. Как составляются и выполняются программы в системе delphi
- •2.1. Понятие алгоритма и способы его записи
- •2.2. Общая характеристика языка Паскаль
- •2.3. Как составляется программа в системе Delphi
- •2.4. Наша первая программа реализует линейный алгоритм
- •3.1. Данные и их типы.
- •3.2. Операции над переменными основных скалярных типов
- •Алгоритмов
- •4.1. Понятие разветвляющегося алгоритма
- •4.2. Оператор условия if
- •4.3. Оператор выбора Case
- •4.4. Некоторые возможности, предоставляемые Delphi для организации разветвлений
- •Лекция 5. Составление и програмирование циклических алгоритмов
- •5.1. Понятие цикла
- •5.2. Оператор Repeat...Until
- •5.3. Оператор While...Do
- •5.4. Оператор For...Do
- •5.5. Вложенные циклы
- •5.6. Примеры некоторых часто встречающихся циклических алгоритмов Вычисление заданного члена рекуррентной последовательности
- •Вычисления сумм с использованием рекуррентной последовательности
- •6.1. Ошибки на этапе компиляции
- •6.4. Защищенные блоки
- •6.5. Некоторые стандартные типы исключительных ситуаций
- •6.6. Инициирование собственных исключительных ситуаций
- •6.7. Примеры фрагментов программ
- •Лекция 7. Составление программ с использованием массивов
- •7.1. Понятие массива
- •7.2. Некоторые возможности ввода-вывода в Delphi
- •7.3. Примеры часто встречающихся алгоритмов работы с массивами Сумма n элементов одномерного массива:
- •Произведение диагональных элементов квадратной матрицы:
- •Нахождение максимального элемента одномерного массива:
- •8.1. Статическое и динамическое распределение оперативной памяти
- •8.2. Понятие указателя
- •8.3. Наложение переменных
- •8.4. Динамическое распределение памяти
- •8.5. Организация динамических массивов
- •9.1. Понятие подпрограммы
- •9.2. Описание подпрограмм
- •9.3. Передача данных между подпрограммой и вызывающей ее программой
- •9.4. Оформление подпрограмм в библиотечный модуль
- •9.5. Примеры подпрограмм, оформленных в отдельные библиотечные модули
- •Пример программы, использующей модуль RabMas:
- •Множества
- •10.1. Понятие множества
- •10.2. Операции над множествами
- •10.3. Примеры работы с множествами
- •Interface
- •11.1. Зачем нужны строки
- •11.2. Описание переменных строкового типа «Короткие строки»
- •11.3. Основные операции над переменными строкового типа
- •11.4. Некоторые процедуры и функции обработки строк
- •11.5. Примеры алгоритмов обработки строк
- •Лекция 12. Программирование с использованием записей
- •12.1. Понятие записи
- •12.2. Операции над записями
- •12.3. Использование записей для работы с комплексными числами
- •13.1. Понятие файла
- •13.2. Операции над файлами
- •13.2.1. Типизированные файлы
- •13.2.2. Текстовые файлы
- •13.3. Подпрограммы работы с файлами
- •13.4. Компоненты tOpenDialog и tSaveDialog
- •Лекция 14. Программирование с отображением графической информации
- •14.1. Как рисуются изображения
- •14.2. Построение графиков с помощью компонента tChart
- •Лекция 15. Программирование с использованием рекурсии
- •15.1. Понятие рекурсии
- •15.2. Примеры рекурсивных вычислений
- •16.1. Организация работы с базами данных
- •16.2. Поиск в массиве записей
- •16.3. Сортировка массивов
- •16.3.1. Метод пузырька
- •16.3.2. Метод прямого выбора
- •16.3.3. Метод Шелла
- •16.3.4. Метод Хоара (Hoare)
- •17.1. Работа со списками
- •17.2. Добавление нового элемента в список на заданную позицию
- •17.3. Удаления элемента с заданным номером
- •17.4. Пример программы
- •Лекция 18. Связанные списки на основе рекурсивных данных
- •18.1. Что такое стек и очередь
- •18.2. Понятие рекурсивных данных и однонаправленные списки
- •18.3. Процедуры для работы со стеками
- •18.4. Процедуры для работы с односвязными очередями
- •18.5. Работа с двухсвязными очередями
- •18.6. Процедуры для работы с двусвязными очередями
- •19.1. Основные понятия и определения
- •19.2. Прямые методы решения слау
- •19.3. Итерационные методы решения слау
- •20.1. Зачем нужна аппроксимация функций?
- •20.3. Какие бывают многочлены и способы интерполяции?
- •20.4. Что такое среднеквадратичная аппроксимация?
- •20.5. Метод наименьших квадратов (мнк)
- •21.1. Формулы численного дифференцирования
- •21.2. Формулы численного интегрирования
- •22.1. Как решаются нелинейные уравнения
- •22.2. Итерационные методы уточнения корней
- •22.2.2. Метод Ньютона
- •23.1. Постановка задач оптимизации, их классификация
- •23.2. Методы нахождения минимума функции одной переменной
- •24.1. Задачи для обыкновенных дифференциальных уравнений
- •24.2. Основные положения метода сеток для решения задачи Коши
- •24.3. Многошаговые схемы Адамса
- •Литература
9.1. Понятие подпрограммы
Каждый, кто сталкивается с компьютером, с удивлением обнаруживает, что компьютер знает и умеет выполнить многое из того, что умеет человек. Так, он, оказывается, умеет играть в шахматы, обыграет вас в карты, не хуже врача поставит диагноз, даст юридическую консультацию, поможет советом изобретателю новой техники, решит сложную математическую задачу, и еще много чего, о чем вы даже не подозреваете. Спрашивается, почему компьютер все это знает? Вот вы тоже кое-что знаете, почему? Потому что вас учили: с момента рождения, в вашу память закладывали различные навыки. У компьютера, (кстати, как и у человека) имеется два уровня памяти - оперативная и долговременная. Компьютер тоже учат. Уже при рождении в его долговременную память закладывают разные знания в виде программ, которые в нужный момент вызываются в оперативную память и подаются на процессор для выполнения тех или иных действий.
Для того, чтобы учить компьютер, имеется мощное средство - библиотека стандартных подпрограмм, которую каждый программист может дополнять по своему желанию если освоит способ ее организации. Подпрограмма является базовым элементом при программировании.
При решении многих задач, часто требуется производить вычисления по одним и тем же алгоритмам при различных исходных данных. Для облегчения программирования в языках программирования такие алгоритмы оформляются в виде подпрограмм.
Подпрограмма - это последовательность операторов, оформленная таким образом, что ее можно вызвать по имени из любой программы, которую вы составляете, передать ей определенные параметры и, получив, требуемый результат, продолжить вычисления.
9.2. Описание подпрограмм
В языке Паскаль имеется два типа подпрограмм: Процедуры (Procedure) и функции (Function).
Оформление программ в виде процедур и функций производится в соответствии со структурой на Рис. 9.1., где
<имяП>, <имяФ> - имя подпрограммы;
<список формальных параметров> - содержит перечисление имен с указанием их типов, например:
May (x,y : extended; var m, k : integer; const s : string);
Через эти параметры осуществляется обмен информацией между подпрограммой и той программой, которая к ней обращается.
В отличие от процедуры, для имени функции <имяФ> указан ее тип <типФ>, а через ключевое слово Result имени присваивается результат вычислений, имеющий тип <типФ>.
Структура подпрограммы - процедуры Procedure <имяП>(<список формальных параметров>); const . . . type . . . var . . .
procedure ИП(. . .); // раздел описаний локальных begin // констант, типов, переменных
. . . // и подпрограмм
end;
function ИФ(. . .):ТФ; begin end;
begin
. . . // раздел выполняемых операторов процедуры
end;
Структура подпрограммы - функции Function <имяФ>(<список формальных параметров>):<типФ>; Const . . .
Type . . . // раздел описаний локальных
var . . . // констант, типов, переменных и
Procedure ИП(. . .); // подпрограмм begin
End;
Function ИФ(. . .):ТФ;
begin End;
begin
. . . // раздел выполняемых операторов функции
Result:= <результат>;
end;
Рис 9.1.
Вызов подпрограммы - процедуры из какой либо программы производится оператором вида:
имяП(<список фактических параметров>);
Здесь <список фактических параметров> содержит перечисление имен данных в вызывающей программе, которые соответствуют списку формальных параметров, причем каждый фактический параметр должен иметь тот же тип, что и соответствующий ему формальный. Следует отметить, что список формальных параметров может отсутствовать.
Вызов подпрограммы - функции, в отличие от процедуры, может быть осуществлен разными способами, например:
У:=имяФ(<список фактических параметров>);
Здесь переменная y должна иметь тип <типФ>, или
s:=z* имяФ(<сп. факт .пар .1>)+у/имяФ(<сп. факт .пар .2>);
Здесь вызов функции производится внутри арифметического выражения с разными фактическими параметрами.
Рекомендуется оформлять подпрограмму в виде функции в том случае, когда результатом является значение одной переменной.