- •Работает
- •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.5. Примеры подпрограмм, оформленных в отдельные библиотечные модули
Модуль для работы с массивами
Unit RabMas;
interface
const mmax=10;
type vek=array[1..nmax] of extended; mat=array[1..nmax] of vek;
//Процедура умножения двух квадратных (nxn) матриц A и B Procedure Pmat(const A,B:mat; Var C:mat; n:Word);
// Процедура вывода матрицы А в текстовый файл Lw Procedure Vivod(const A:mat; n,m:Word; Var Lw:TextFile);
implementation
Procedure Pmat; // повторение заголовка без параметров Var i,j,k:Word; begin
for i:=1 to n do for j:=1 to n do begin c[i,j]:=0; for k:=1 to n do
c[i,j]:=c[i,j]+a[i,k]*b[k,j];
end;
end;
Procedure Vivod; // повторение заголовка Var i,j:Word; begin
for i:=1 to n do begin
for j:=1 to m do
Write(Lw,a[i,j]:8:4); Writeln(Lw); end;
end; end.
Пример программы, использующей модуль RabMas:
Unit P1;
Interface
Implementation Uses RabMas;
Procedure TForm1.Button1Click(Sender:Tobject);
Var x,y,z:mat;
n:word; f:textfile;
begin
n:=. . .
x[i,j]:= . . .//вычисления или ввод матриц x, y
y[i,j]:= . . .
Assignfile(f,'Mass.out');
Rewrite(f);
Writeln(f,'Полученная матрица:'); Pmat(x,y,z,n); // вычисления z=x-y
Vivod(z,n,n,f); // вывод z в файл f
Closefile(f);
End;
Модуль для выдачи таблицы значений функций
Unit Tab;
interface
type Tfun = function(x:extended):extended; Procedure Tabf(a,b:extended; n:word; f:Tfun; var Lw:textFile);
implementation Procedure Tabf;
Var x,h:extended; i:word;
begin h:=(b-a)/n; x:=a; for i:=0 to n do begin
writeln(Lw, x:6:2, f(x):8:4); x:=x+h; end;
end; end.
Пример программы, использующей модуль Tab.
Unit unit1;
interface implementation
Uses Tab; Var M:word;
M
n
cos nx
n!
// Вычисление s( x) = 2 (-1)
n=0
Function Sum(x:extended):extended, Var s,w:extended; n:word;
begin
w:=1; s:=1; for n:=1 to M do
begin
w:=-w/n;
s:=s+cos(n*x)*w; end; result:=s; end;
Procedure TForm1.Button1Click(Sender:Tobject);
Var f:textFile; begin
Assignfile(f,'P2.out'); Rewrite(f); M:=8;
writeln(f,' x sum(x) ');
Tabf(0,2,5,sum,f);
CloseFile(f);
end;
В результате работы данной программы в текстовом файле Р2.out будет распечатана таблица:
x sum(x)
0.00 0.0508
0.40 0.3254
0.80 0.7122
1.20 0.8676
1.60 1.8711
2.00 2.6998
ЛЕКЦИЯ 10. ИСПОЛЬЗОВАНИЕ ПЕРЕМЕННЫХ ТИПА
Множества
10.1. Понятие множества
В математике под множеством понимается неупорядоченный набор
различных однотипных элементов. Весь набор элементов Q={oi, о2, conj
называется пространством элементов. Различные наборы, например:
А={о2, о4, о], о5}, В={а>4, о], а>з}, .... называется множествами.
Пустое множество не содержит ни одного элемента.
Для работы с множествами в Паскале введен специальный тип переменных - set of:
Type <имя типа> = set of <базовый тип>;
Var a, b, c : <имя типа>;
здесь <базовый тип> - любой порядковый тип, кроме word, integer, longint, т.е. (перечисляемый, интервальный, char, byte, boolean). Максимальное количество элементов в множестве - 256. Примеры описаний множеств: type bukva=set of ('a'..'z');
simv=set of char;
cifra=set of byte;
Var a, b : bukva; c, d : simv;
e, g : cifra;
// Задать множество из трех букв // Задать множество из 3 чисел // Добавить в множество Е элемент 5 // Пустое множество
Begin
c:=['u', V, 'z']; e:=[1,2,0];
g:=e+[5];
d:=[ ];
End;