Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Чтение данных из файла в Дельфи подобно аналогичной процедуре в Паскале.



Создайте файл данных следующей последовательностью: File/New/Other/Text. В окне редактора кода появится новая закладка File1.txt.

Напишите какой-либо текст, например, «Первая текстовая строка».

Из палитры компонентов “Dialogs” выберете компонент OpenDialog и поместите его на форму. Место для этого компонента на форме выбрать произвольно, поскольку при исполнении программы он не будет видим.

Поместите на форму кнопку запуска и компонент Memo.

В редакторе кода напишите следующий код:

procedure TForm1.Button1Click(Sender: TObject);

var f1: textfile;

s: string;

begin

if OpenDialog1.Execute then

assignfile (f1, OpenDialog1.FileName);

reset(f1);

readln(f1, s);

memo1.Lines.Add(s);

closefile(f1);

end;.

Помните, что часть из приведенного кода автоматически генерируется при двойном щелчке на кнопке запуска. Запустите программу на исполнение. При нажатии кнопки запуска возникнет окно диалога. Следует найти файл text1.txt (он должен быть предварительно сохранен в Вашем каталоге), выделить его и нажать кнопку Открыть. Файл откроется для чтения, будет прочитана первая строка и выведена в поле Memo. После этого файл закроется. Сравните эту операцию с тем, что делалось в лабораторных работах 1, 2 при открытии файлов в Паскале и найдите различия в кодах.

При чтении переменных типа real или integer следует помнить, что для правильного восприятия их программой следует делать преобразование типов переменных.

Дополните существующий файл данных text1.txt строчкой данных, например: 3.14 4 5 7. Обратите внимание, что различные переменные отделяются друг от друга пробелом (одним или несколькими), а десятичная часть от целой отделяется точкой, а не запятой, как она выводится в поле Memo. Раздел описания переменных дополните описанием четырех переменных: a, b, c, d: real;. После кода чтения первой строки допишите код чтения четырех переменных типа real: readln(f1, a, b, c, d), а раздел вывода дополните кодом memo1.Lines.Add(floatToStr(a)).

Организация Меню. Для запуска программ на исполнение возможно использование не только кнопок, но и, например, меню. Чтобы создать меню положите на форму компонент MaimMenu из стандартной палитры компонентов. Этот компонент также не будет виден при исполнении программы, и его разместить можно произвольно. При двойном щелчке на пиктограмме этого компонента на форме появляется диалоговое окно по созданию меню. После ввода нужной Вам архитектуры меню и закрытия диалога создания меню на форме появится созданное меню. При выборе какого-либо компонента меню и нажатии левой кнопкой мышки в окне редактора кода будет сгенерирована заготовка кода, который будет исполняться при нажатии соответствующего пункта меню в режиме исполнения программы.

Построение графиков в компоненте Chart. Положите на форму компонент Chart изпалитры компонентов Additional. Подготовьте его для вывода одного или нескольких графиков следующим образом. Дважды щелкните левой кнопкой мыши на компоненте. При этом появится окно редактирование графической формы (Editing Chart1). В меню активируйте Chart, Series, как показано на рис. 6, а. Нажмите кнопку Add (добавить). В появившемся окне формы графика выберите тип графика Line и нажмите Ok. В окне редактирования появится новая строка с названием Series 1. Компонент Chart1 подготовлен к приёму в него одного графика. Если нужно построить одновременно несколько графиков, нажимая кнопку Add, можно добавить столько графиков, сколько требуется для решения задачи. Не выходя из режима редактирования формы графического изображения, попробуйте сменить форму графика и цвет линии, дважды щелкая на соответствующую пиктограмму. Убрать лишний график можно командой удаления Delete. Перейдите на закладку 3D – рисование объемных графиков и уберите галочку в поле, расположенном слева от надписи 3 Dimensions. Убрать сопровождение графика таблицей чисел («легенда» - Legend) можно, перейдя на соответствующую закладку и убрав «птичку», расположенную слева от слова Visible. Закройте окно редактирования формы графика, нажав кнопку Close. Компонент Chart1 активирован и готов к приёму информации для построения графиков. Признак готовности – появления графика случайных чисел в поле компонента Chart1 в режиме разработки программы. Если такого графика нет - Chart1 не активирован.

 

Рис. 6. Окно редактирования графической формы (Editing Chart1): а ‑ компонент Chart1 не активирован; б ‑ возможен вывод в Chart1 одного графика

Перейдите в окно кода программы и допишите код вывода информации в виде графика.

Пример построения графика функции. Пусть нужно вывести на график зависимость тока генератора импульсных токов (ГИТ). Эта зависимость описывается формулой для периодического процесса:

,

где g ‑ показатель процесса - , а R, C и L – активное сопротивление, ёмкость и индуктивность ГИТ; g может принимать значения от 0 до числа меньше чем 1; t¢ - приведенное время (одного периода) изменяется от 0 до 2p; I0 – максимальное амплитудное значение тока при R=0.

Код программы будет выглядеть следующим образом:

procedure TForm1.N2Click(Sender: TObject);

var gamma, I0, t, I, stepT, a, Imax, Imin: real;

n, Nstep: integer;

Begin

Nstep: =StrToInt(LabeledEdit1.Text); {Ввод числа шагов по времени}

Gamma: =StrToFloat(LabeledEdit2.Text);

I0: =StrToFloat(LabeledEdit3.Text);

StepT: =2*pi/Nstep; {Вычисление шага по времени}

Chart1.Series[0].Clear; {Очистка графика}

Imax: =0; Imin: =0;

Memo1.Clear; {Очистка поля вывода}

for n: =0 to Nstep do

begin

t: =n*StepT; {Вычисление текущего времени}

a: =sqrt(1-sqr(gamma));

I: =I0/a*exp(-gamma*t)*sin(a*t); {Вычисление тока}

Chart1.Series[0].AddXY(t, I, '', clteecolor); {Вывод графика}

Chart1.Series[1].AddXY(t, 0, '', clteecolor); {Вывод нулевой линии}

if I> Imax then Imax: =I; {Нахождение максимума тока}

if I< Imin then Imin: =I; {Нахождение минимума тока}

end ;

{Вывод в поле Memo1 данных в фиксированном формате}

Memo1.Lines.Add('Imax= '+FloatToStrF(Imax, ffFixed, 3, 2)+' кА');

Memo1.Lines.Add('Imin= '+FloatToStrF(Imin, ffFixed, 3, 2)+' кА');

Memo1.Lines.Add('Imax/I0= '+FloatToStrF(Imax/I0*100, ffFixed, 3, 1)+' %');

Memo1.Lines.Add('Imin/I0= '+FloatToStrF(-Imin/I0*100, ffFixed, 3, 1)+' %');

end ;.

При выводе отдельной точки графика с помощью процедуры Chart1.Series[0].AddXY(t, I, '', clteecolor); в определении номера серии графика стоит 0, а не 1, как при редактировании (рис. 6, б). Это связано с тем, что все номера в Дельфи начинаются с 0, а не с 1. В круглых скобках функции добавления на график точки с координатами Х и У (AddXY) ставится сначала текущее значение абсциссы Х (в данном случае это t), затем ордината Y (I). Два следующих значения рекомендуется просто скопировать. Они означают соответственно, что дополнительных надписей под значениями ординат на графике делаться не будет, а цвет графика будет такой, каким он определен при редактировании формы графика рис. 6, б (clTeeColor - цвет дерева цветов).

При выводе в моле Memo чисел, для которых заранее известен порядок их величины, удобно пользоваться функцией преобразования FloatToStrF( ), вместо FloatToStr( ). В списке фактических переменных этой функции последовательно ставятся: 1) - само число, которое нужно преобразовать в строку; 2) - тип формата вывода (в данном случае это фиксированный формат ffFixed); 3) - число цифр до запятой; 4) - число цифр после запятой. Более подробно о работе этой функции, как и любой другой, можно прочитать в справке, которая вызывается нажатием клавиш Ctrl-F1, когда курсор установлен где-то на функции.

Обратите внимание на то, что в списке параметров функции Memo1.Lines.Add( ) может быть, по определению, только одна строковая переменная. Превращение нескольких разных строковых переменных в одну строку достигается применением операции сложения строк (конкатенация). Для обозначения операции сложения используется знак «+» (как при обычном арифметическом сложении).

Порядок выполнения работы

1. Прочитать описание и проделать самостоятельно различные пункты описания работы, добившись достаточной скорости проектирования.

2. Получить задание у преподавателя на исследование функциональной зависимости какого-либо процесса высоковольтной техники.

3. Написать и отладить программу заданной функции и проследить зависимость её от различных входных параметров.

Отчет по лабораторной работе состоит в работающей программе по заданию теме, заданной преподавателем, сохраненной в каталоге lab5. Всего в каталоге должно находиться минимум семь файлов.

Контрольные вопросы

1. Как ввести шкалу номинальных напряжений в компонент ComboBox.

2. Как выбрать какое-либо номинальное напряжение из шкалы номинальных напряжений, записанной в ComboBox? Приведите пример кода программы для получения в программу любого выбранного в режиме исполнения напряжения.

3. Как использовать свойство ItemIndex компонента ComboBox для того, чтобы выбранное значение было присвоено какой-либо переменной программы? Чему равно первое значение этого свойства?

4. Как использовать компонент ListBox, например, для вывода выбранных аппаратов высокого напряжения и дальнейшего расчета их параметров? Приведите примеры.

5. Для чего служит компонент Memo?

6. Как вывести в поле Memo целочисленную переменную, переменную с плавающей запятой, строку, размерность величины?

7. Как преобразовать переменную с плавающей запятой, чтобы при выводе в поле Memo она имела заданное число знаков после запятой?

8. Как вставить в поле Memo линейки прокрутки, для того чтобы было можно просматривать список выходных результатов, превышающий размер поля?

9. Как сделать меню, подобное меню текстового редактора Word?

10. Как запустить программу на исполнение, используя главное меню?

11. Как без ошибок сгенерировать заготовку какой-либо процедуры, запускаемой на исполнение из главного меню?

12. Какой компонент пригоден для вывода в него графиков?

13. Как активировать компонент Chart?

14. В чем заключаются различия обозначения номера серии в редакторе редактирования компонента Chart и в программном коде?

15. Как трехмерный график превратить в двухмерный?

16. Как изменить цвет выводимого графика?

17. Как убрать «легенду» с графика?

18. Какие типы графиков можно построить в стандартном компоненте Сhart? Как изменить тип графика?

19. Как изменить толщину линий, размер и форму расчетных точек при выводе графиков типа Line?

 

Лабораторная работа 6


Поделиться:



Популярное:

  1. CASE-средства проектирования баз данных
  2. I. Краткое изложение данных истории болезни
  3. SWIFT как система передачи данных.
  4. АМИЛОИДОЗ ПОЧЕК - одно из проявлений амилоидоза внутренних органов – системного заболевания, характеризующегося отложением в различных органах патологического белковоподобного вещества – амилоида.
  5. АППРОКСИМАЦИЯ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ
  6. Архитектура производственной базы данных реального времени
  7. Базы данных в Visual Basic и VBA. Самоучитель
  8. В разделе о намеренно созданных сообществах мы раскроем несколько здравых принципов для установки солнечных батарей, ветряных мельниц и гидроустановок.
  9. В условиях применения компьютерной обработки данных
  10. Ввод исходных оперативных данных
  11. Возможности файловой системы NTFS по ограничению доступа к файлам и каталогам
  12. Вопрос 4. Построение логической модели данных


Последнее изменение этой страницы: 2016-05-28; Просмотров: 675; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.024 с.)
Главная | Случайная страница | Обратная связь