
- •1.1 Циклические структуры
- •1.2 Обработка двумерных массивов
- •1.4 Обработка типизированных файлов
- •Можно использовать одну и ту же переменную для работы с несколькими файлами, если они обрабатываются последовательно
- •1.5 Разработка приложений
- •1.6 Подключение внешних подпрограмм
- •1.7 Подключение модулей
- •1.8 Разработка многодокументных приложений
- •Раздел 2. Постановка задачи
- •2.1 Знакомство с предметной областью
- •2.2 Определение структуры и функций
- •Раздел 3. Построение структуры и диаграммы данных
- •Раздел 4. Разработка проекта
- •4.1 Принципы объектно-ориентированного программирования
- •4.2 Структурное программирование модуля
- •4.2Отладка программы
1.4 Обработка типизированных файлов
Обработка типизированных файлов
Прежде чем выполнять какие либо операции с файлом, необходимо инициализировать файл, т.е. установить связь файловой переменной f с внешним файлом на диске при помощи процедуры.
После выполнения процедуры чтения или записи в файл указатель текущей позиции в файле смещается на число позиций, равное длине прочитанного или записанного выражения. У типизированных файлов длина любого компонента строго постоянна и определяется при описании его типа. Это дает возможность организовать прямой доступ к каждой компоненте. Доступ к строкам текстового файла возможен лишь последовательно.
Чтобы избежать этой ошибки, достаточно вставить при записи в файл после каждой переменной пробел. Тогда программа при каждом чтении берет символы от пробела до пробела и правильно преобразует текстовое представление в число.
Можно использовать одну и ту же переменную для работы с несколькими файлами, если они обрабатываются последовательно
1.5 Разработка приложений
Системы быстрой разработки приложений, к которым относится Delphi,
существенно облегчают разработку программ.
Для того чтобы разработать приложение, надо определить все составные части системы: интерфейс пользователя (окна, меню, кнопки) и обработку данных. Затем определить, как приложение (разрабатываемая система) должно реагировать на те или иные действия пользователя с помощью компонентов интерфейса.
Процесс разработки интерактивной системы – приложения Delphi включает следующие этапы:
Построение визуального интерфейса: выбор форм и требуемых компонентов и размещение их на формах (кнопок, меню и пр.)
Установка при помощи Инспектора объектов свойств формы и её элементов управления.
Присоединение кода на Object Pascal к компонентам для обработки событий, инициируемых пользователем (с помощью мыши или клавиатуры), системой или другими источниками.
Компиляция исходного кода Object Pascal и ресурсов формы в исполняемый .EXE – файл, который может запускаться из среды Delphi или из Windows как отдельная программа.
Задача 1. Составить программу нахождения корней квадратного уравнения.
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, ImgList,xpman;
type
TForm1 = class(TForm)
Edit2: TEdit; Edit3: TEdit;
Button1: TButton;
Label2: TLabel; Label3: TLabel; Label4: TLabel; lbl1: TLabel;
img1: TImage;
Edit1: TEdit; Edit4: TEdit; Edit5: TEdit; Edit6: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1; a,b,c,d,x1,x2:real;
Implementation {$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
a:=strtofloat(edit1.Text); b:=strtofloat(edit2.Text) c:=strtofloat(edit3.Text);
d:=sqr(b)-4*a*c ;
if d<0 then
begin
Edit4.Text:= 'Решения Нет:';
Edit5.Text:= floattostr(d)+' дискриминант меньше 0'; end;
if d>=0 then
begin
x1:=(-b-sqrt(d))/2*a; x2:=(-b+sqrt(d))/2*a;
Edit4.Text:='X1='+ floattostr(x1); Edit5.Text:='X2='+ floattostr(x2);
Edit6.Text:='D='+floattostr(d);
end; end; end.
Задача 2. Написать программу, которая позволяет увидеть содержимое текстового файла.
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, xpman;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
Button1: TButton;
Memo1: TMemo;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.filter:='|*.txt,*.doc,*.ini,*|' ; if opendialog1.Execute then
memo1.lines.LoadFromfile(opendialog1.filename) ;
end; end.
Задача 3. Написать программу, которая позволяет посмотреть содержимое текстового файла и отредактировать его.
Код программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, xpman;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog; Button1: TButton; Memo1: TMemo;
Button2: TButton; SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
Implementation {$R *.dfm}
function Stransitooem(aStr:String): String;
begin
Result:= ' ';
if Length(aStr)>0 then begin
SetLength(Result,Length(aStr));
CharToOem(PChar(aStr),PChar(Result));
end; end;
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.filter:='|*.txt,*.doc,*.ini,*.odt,*|' ; if opendialog1.Execute then
memo1.lines.LoadFromfile(opendialog1.filename) ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
savedialog1.filter:='|*.txt,*.doc,*.ini,*|' ;
memo1.lines.savetofile(opendialog1.filename) ;
end; end.
Задача 5. Написать программу, которая осуществляет поиск заданого файла в нулевом каталоге и его подкаталогах.
Секция подключения модулей предназначена для встраивания в программу стандартных и разработанных вами библиотек подпрограмм и классов (о подпрограммах и классах читайте ниже). Эта секция состоит из зарезервированного слова uses и списка имен подключаемых библиотечных модулей. При написании программ, эмулирующих текстовый режим, подключается по крайней мере модуль SysUtils. В нем содержатся определения часто используемых типов данных и подпрограмм.