
- •Работает
- •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. Многошаговые схемы Адамса
- •Литература
13.4. Компоненты tOpenDialog и tSaveDialog
Для удобства работы с файлами в Delphi имеются два специальных компонента, предназначенных для выбора требуемого файла на диске через удобное окно просмотра. Результатом этого выбора является имя и маршрут к файлу, помещаемому в переменную строкового типа
OpenDialogl.FileName или SaveDialogl.FileName
которые затем используются в процедуре AssignFile().
Компоненты TOpenDialog и TSaveDialog находятся на странице DIALOGS. Все компоненты этой страницы являются невизуальными, т.е. не видны в момент работы программы. Поэтому их можно разместить в любом удобном месте формы. Оба рассматриваемых компонента имеют идентичные свойства и отличаются только внешним видом. После вызова компонента появляется диалоговое окно, с помощью которого выбирается имя программы и путь к ней. В случае успешного завершения диалога имя выбранного файла и маршрут поиска содержaтся в свойстве FileName. Для фильтрации файлов, отображаемых в окне просмотра, используется свойство Filter, а для задания расширения файла, в случае, если оно не задано пользователем, - свойство DefaultExt. Для того, чтобы файл автоматически записывался, например, с расширением dat, в свойстве DefaultExt компонета SaveDialog запишем требуемое расширение - .dat (для текстового файла - .txt). Если необходимо изменить заголовок диалогового окна, используется свойство Title.
Пример: Создать файл, содержащий список книг. Предусмотреть возможность сортировки книг по алфавиту по фамилии автора и вывод, как всего списка, так и списка книг заданного автора.
Общий вид формы.
/' Лекции - Файлы
Вид формы после запуска программы.
/' Лекции - Файлы |
|
Сортировать! Просмотреть! |
|
Выбрать Выход |
|
Jl Close |
|
Вид формы после нажатия кнопки «Закончить». | |
/ Лекции - Файлы |
|
/
Лекции
-
Файлы 0[п][Х
unit Unitl; Листинг 13.1
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, ExtCtrls, Buttons; type
TForml = class(TForm) Buttonl: TButton; Button2: TButton; BitBtnl: TBitBtn;
Panell: TPanel;
Editl: TEdit; Edit2: TEdit; Labell: TLabel; Label2: TLabel;
Button3: TButton;
Button4: TButton; OpenDialogl: TOpenDialog; SaveDialogl: TSaveDialog; Panel2: TPanel; Button5: TButton; Button6: TButton; Button7: TButton;
Button8:
TButton; Panel3: TPanel; Button9: TButton;
Button10:
TButton;
Edit3:
TEdit;
TLabel;
TPanel; TLabel; TLabel; TMemo; TMemo;
FormCreate(Sender
TObject);
: TObject) : TObject) : TObject) : TObject) : TObject) : TObject) :
TObject) : TObject) : TObject) TObject)
Sender
Sender Sender Sender Sender Sender Sender Sender Sender
Label3 Panel4 Label4
Label5 Memo1: Memo2:
Button1Click Button3Click Button4Click Button5Click Button6Click Button2Click Button8Click Button7Click
Button9Click
procedure
procedure
procedure
procedure
procedure
procedure
procedure
procedure
procedure
Button10Click(Sender
procedure
procedure private
declarations }
declarations }
{ Private public
{ Public end;
type book=record
avt:string[20] naz:string[30] end;
var
of book;
Form1: TForm1; f:file of book; w:book;
a:array[1..100]
fname:string; n,i,k:integer;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject); begin
panell.Hide; panel2.Hide; panel3.Hide; panel4.Hide; end;
procedure TForml.ButtonlClick(Sender: TObject); begin // Создать
SaveDialogl.Title:='Создать файл';
if SaveDialogl.Execute then begin
fname:=SaveDialogl.FileName; AssignFile(f,fname); Rewrite(f); end; Panell.Show;
Buttonl.Hide; Button2.Hide; BitBtnl.Hide; end;
procedure TForml.Button3Click(Sender: TObject); begin // Ввести
w.avt:=editl.text;
w.naz:=edit2.text;
write(f,w);
editl.clear; edit2.clear; end;
procedure TForml.Button4Click(Sender: TObject); begin // Закончить
CloseFile(f);
panell.Hide; panel2.show; BitBtnl.show; end;
procedure TForml.Button5Click(Sender: TObject); begin // Сортировать reset(f); n:=0; while not eof(f) do begin n:=n+l; read(f,a[n]); end; closeFile(f);
for i:=1 to n-1 do for k:=1 to n-i do
if a[k].avt > a[k+1].avt then
begin w:=a[k]; a[k]:=a[k+1]; a[k+1]:=w; end; rewrite(f);
for i:=1 to n do write(f,a[i]); closeFile(f); end;
procedure TForm1.Button6Click(Sender: TObject); begin // Просмотреть
panel4.Show; memo1.clear; memo2.clear;
reset(f);
while not eof(f) do begin read(f,w);
memo1.lines.add(w.avt); memo2.lines.add(w.naz); end; closeFile(f); end;
procedure TForm1.Button2Click(Sender: TObject); begin // Открыть
OpenDialog1.Title:='Открыть файл';
if OpenDialog1.Execute then begin
fname:=OpenDialog1.FileName; AssignFile(f,fname);
Reset(f); end; Panel2.Show;
Button1.Hide; Button2.Hide; BitBtn1.Hide; end;
procedure TForm1.Button8Click(Sender: TObject); begin // Выход из panel2
Button1.show; Button2.show; BitBtn1.show;
panel2.Hide; end;
procedure TForm1.Button7Click(Sender: TObject); begin // Выбрать
panel2.Hide; panel3.Show; bitbtn1.Hide;
memol.clear; memo2.clear; end;
procedure TForml.Button9Click(Sender: TObject); begin // Вывести
memol.clear; memo2.clear; reset(f); while not eof(f) do begin read(f,w);
if w.avt=edit3.text then begin
memol.lines.add(w.avt); memo2.lines.add(w.naz); end;
end; closeFile(f); end;
procedure TForml.Buttonl0Click(Sender: TObject); begin // Выход из panel3 panel3.Hide; panel4.Hide;
Buttonl.show; Button2.show; BitBtnl.show; end;
end.