Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Компонент Memo



TMemo ― иная форма компонента TEdit. Memo находится на вкладке Standard. Подразумевает работу с большими текстами и может выполнять основные функции редактора (ввод и редактирование текста). Memo имеет ограничения на объем текста в 32Кб, это составляет 10-20 страниц.

Главные свойства компонента Memo

Свойство Назначение
Name Имя компонента
Text Текст, находящийся в поле Memo. Рассматривается как единое целое
Lines Текст, находящийся в поле Memo. Рассматривается как совокупность строк. Доступ к строке осуществляется по номеру
Lines.Count Количество строк в поле Memo

Например, присвоить переменной ST весь текст, находящийся в компоненте Memo можно так:

ST:=Memo1.Text;

Добавить строку:

Memo1.Lines.Add(¢Еще одна строка¢);

Переменной можно присвоить содержимое одной строки:

Stroke:=Memo1.Lines[i];

Практика

Задача

Составить программу для вычисления таблиц значений квадратов, кубов, квадратных и кубических корней, pn, p/(4n2),1/n.

Компоненты

Имя компонента Свойства компонента Значение Назначение
Form1 Caption Квадраты, кубы, кв. и куб. корни, пи*n, пи/4*(n в кв.), 1/n Заголовок формы
Label1 Caption Программа вычисляет по вашему желанию таблицы значений в заданном интервале натуральных чисел n Справочная информация для пользователя программы
Label2 Caption Задайте интервал значений натурального числа n Подсказка пользователю
Label3 Caption   Поле для вывода результатов
Edit1 Text   Поле для ввода начального значения n
Edit2 Text   Поле для ввода конечного значения n
ComboBox1 Text     Items Выберите нужное математическое выражение Квадраты Кубы Квадратные корни Кубические корни Пи*n Пи/[4*(n в кв.)] 1/n Текст в заголовке списка   Значения строк в списке
Button1 Caption Вычислить Кнопка для вычисления
Button2 Caption Выход Кнопка закрытия формы и выхода из программы

Переменные

Обозначение в программе Содержание Тип
n Текущее значение числа Целый
n1 Начальное значение интервала натуральных чисел Целый
n2 Конечное значение интервала натуральных чисел Целый

Проект формы

Текст модуля

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls, Math;

// обязательно к стандартному списку подключить библиотеку

// математических функций Math

………………………

var

Form1: TForm1;

n1,n2:Integer;{начальное и конечное значения интервала

натуральных чисел}

n:integer; // текущее значение числа

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

// процедура закрывает форму и осуществляет

// выход из программы

Form1.Close

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

// ввод начального и конечного значений интервала

// натуральных чисел

n1:=StrToInt(Edit1.Text);

n2:=StrToInt(Edit2.Text);

Case ComboBox1.ItemIndex of

0: begin

// очистка поля ввода от предыдущих значений

label3.Caption:=' ';

// если в поле со списком выбрано значение Квадраты

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// квадратов чисел

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' '+IntToStr(Sqr(n));

end;

end;

1:begin

// очистка поля ввода от предыдущих значений

label3.Caption:=' ';

// если в поле со списком выбрано значение Кубы

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// кубов чисел

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+ ' ' + IntToStr(n*n*n);

end;

end;

2:begin label3.Caption:=' ';

// если в поле со списком выбрано значение Квадратные корни

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// квадратных корней чисел

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' ' + FloatToStrF(Sqrt(n),Fffixed,10,6);

end;

end;

3:begin label3.Caption:=' ';

// функция логарифм не определена при нуле,

// поэтому сдвигаем интервал значений на единицу

If n1=0 Then begin label3.Caption:='0';n1:=n1+1; end;

// если в поле со списком выбрано значение Кубические корни

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// кубических корней чисел

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' ' + FloatToStrF(exp(1/3*ln(n)),Fffixed,10,6);

end;

end;

4:begin label3.Caption:=' ';

For n:=n1 To n2 Do

Begin

// если в поле со списком выбрано значение пи*n

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// пи*n чисел

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' '+ FloatToStrF((pi*n),Fffixed,10,6);

end;

end;

5:begin label3.Caption:=' ';

// если в поле со списком выбрано значение пи/[4*(n в кв.)]

// в цикле от n1 до n2 с шагом 1 вычисляются значения

// пи/[4*(n в кв.)]

If n1=0 Then begin

Label3.Caption:='Бесконечность'; n1:=n1+1

End;

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' '+ FloatToStrF((pi/(4*n*n)),Fffixed,10,6);

end;

end;

6:begin label3.Caption:=' ';

If n1=0 Then begin

Label3.Caption:=' Бесконечность'; n1:=n1+1

end;

// если в поле со списком выбрано значение 1/n

// в цикле от n1 до n2 с шагом 1 вычисляются значения 1/n

For n:=n1 To n2 Do

Begin

Label3.Caption:= Label3.Caption+ #13+

IntToStr(n)+' '+ FloatToStrF(1/n,Fffixed,10,6);

end;

end;

Else Exit;

end;

end;

end.

Задача

Составить программу для вычисления таблицы уклонов местности. Уклоны местности определяют при проектировании каналов, дорог, направления движения тракторных агрегатов на пашне, изучении эрозии почв. Уклоном i называют отношение превышения h между точками к горизонтальному проложению S между ними. Для вычислений воспользоваться следующими формулами:

Компоненты

Имя компонента Свойства компонент Значение Назначение
Form1 Caption Таблица уклонов Заголовок формы
Label1 Caption При проектировании каналов, дорог, направления движения тракторных агрегатов на пашне, изучении эрозии почв определяют уклоны местности. Уклоном i называют отношение превышения h между точками к горизонтальному проложению S между ними. Справочная информация для пользователя программы
Label2 Caption Интервал изменения превышений Подсказка пользователю
Edit1 Text   Нижняя граница интервала превышений
Edit2 Text   Верхняя граница интервала превышений
Label3 Caption Шаг изменения превышений Подсказка пользователю
Edit3 Text   Поле для ввода шага изменения превышений
Label4 Caption Интервал изменения горизонтальных проложений Подсказка пользователю
Edit4 Text   Нижняя граница интервала горизонтальных проложений
Edit5 Text   Верхняя граница интервала горизонтальных проложений
Label5 Caption Шаг изменения горизонтальных проложений Подсказка пользователю
Edit6 Text   Поле для ввода шага изменения горизонтальных проложений
Label6 Caption   В это поле программа выводит шапку таблицы уклонов
Memo1 Lines   ScrollBars   …..   ssBoth Компонент для вывода значений таблицы уклонов Выводить обе полосы прокрутки (вертикальную и горизонтальную)
Button1 Caption ВЫЧИСЛИТЬ Кнопка для выполнения
Button2 Caption ВЫХОД Кнопка для завершения работы программы

Переменные

Обозначение в программе Содержание Тип
h Текущее значение превышения Вещественный расширенный
h1 Нижняя граница интервала превышений Вещественный расширенный
h2 Верхняя граница интервала превышений Вещественный расширенный
s Текущее значение горизонтального проложения Вещественный расширенный
s1 Нижняя граница интервала горизонтальных проложений Вещественный расширенный
s2 Верхняя граница интервала горизонтальных проложений Вещественный расширенный
Dh Шаг изменения превышений Вещественный расширенный
Ds Шаг изменения горизонтальных проложений Вещественный расширенный
i Текущее значение уклона в тангенсах Вещественный расширенный
ig Градусная часть уклона Целый
im Минутная часть уклона Целый
Ari Текущее значение уклона в градусах Вещественный расширенный

Проект формы

Текст модуля

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Math;

// библиотека математических функций Math

// подключается программистом

……………

var

Form1: TForm1;

h1,h2: Extended; // границы интервала изменения превышений

Dh:Extended;// шаг изменения превышений

s1,s2:Extended;// интервал изменения горизонтальных проложений

Ds: Extended; // шаг изменения горизонтальных проложений

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close

end;

procedure TForm1.Button1Click(Sender: TObject);

Var i:Extended;// текущее значение уклона в тангенсах

ig:Integer; // градусная часть уклона

im:Integer; // минутная часть уклона

h,s:Extended;// текущее значение превышения и

// горизонтального проложения

ARi:Extended;// текущее значение уклона в градусах

begin

// ввод исходных данных для программы

h1:=StrToFloat(Edit1.Text);

h2:=StrToFloat(Edit2.Text);

Dh:=StrToFloat(Edit3.Text);

s1:=StrToFloat(Edit4.Text);

s2:=StrToFloat(Edit5.Text);

Ds:=StrToFloat(Edit6.Text);

// вывод шапки таблицы уклонов

Label6.Caption:='Превышение Горизонтальное проложение Уклон в тангенсах'

+ ' Уклон в гр., мин.';

// текущее значение превышения принимает значение нижней границы

h:=h1;

{ цикл выполняется, пока текущее значение превышения

не превысит значение правой верхней границы}

While h <= h2 Do

Begin

// текущее значение горизонтального проложения принимает значение

// нижней границы

s:=s1;

{ цикл выполняется, пока текущее значение горизонтального проложения

не превысит значение правой верхней границы}

While s <= s2 Do

begin

// вычисление текущего значения уклона в тангенсах

i:=h/s;

// перевод уклона в градусную меру

ARi:=ArcTan(i)/pi*180;

// выделение целой части — градусная часть уклона

ig:= Trunc(ARi);

// вычисление минутной части значения уклона

im:=Round((ARi-ig)*60);

// вывод строки таблицы уклонов

Memo1.Lines.Add(' '+ FloatToStrF(h,Fffixed,6,1) +

' | '

+ FloatToStrF(s,Fffixed,15,2) + ' | '

+ FloatToStrF(i,Fffixed,15,5) + ' | ' +

' ' + IntToStr(ig) + ' ' + IntToStr(im));

// увеличение горизонтального проложения на величину шага

s:=s+Ds;

end;

// увеличение превышения на величину шага

h:=h+Dh;

end;

end;

end.

Один из возможных результатов работы программы

Задача

Составить программу для вычисления числа е.

Известно, что сумма ряда 1+1/1!+1/2!+...+1/n! стремится к числу е. Число е=2,71828 играет важную роль в качестве основания натуральных логарифмов.

Компоненты

Имя компонента Свойства компонента Значение Назначение
Form1 Caption Число е Заголовок формы
Label1 Caption Известно, что сумма ряда 1+1/1!+1/2!+...+1/n! стремится к числу е. Число е=2,71828 играет важную роль в качестве основания натуральных логарифмов   Справочная информация для пользователя программы
Label2 Caption Точность вычисления числа е Подсказка пользователю
Edit1 Text   Поле для ввода точности вычисления числа е
Button1 Caption Вычислить Кнопка для вычисления
Button2 Caption Новые данные Кнопка для очистки введенного значения точности
Button3 Caption Выход Кнопка для завершения работы программы
Label3 Caption   Поле, в которое программа выводит вычисленное значение числа е

Переменные

Обозначение в программе Содержание Тип
n Номер члена ряда -1 Целый
e Число е Вещественный, расширенный
z Знаменатель члена ряда Длинный целый
element Текущий элемент ряда Вещественный, расширенный
T Точность вычисления числа е Вещественный, расширенный

Проект формы

Текст модуля

unit Unit1;

……………………………

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button2Click(Sender: TObject);

begin

Edit1.Clear

end;

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Close

end;

procedure TForm1.Button1Click(Sender: TObject);

Var e: Extended; // число е

element:Extended; // текущий элемент ряда

T: Extended;// точность вычисления числа е

n:Integer; // номер члена ряда -1

z:LongInt; // знаменатель члена ряда

begin

// инициализируем числом 1 значения переменных e, z, n

e:=1;

z:=1;

n:=1;

// ввод точности вычисления числа e

T:=StrToFloat(Edit1.Text);

//цикл вычисления суммы ряда для числа e

Repeat

z:=Z*n;

element:=1/z;

e:=e+element;

n:=n+1;

{ выход из цикла происходит, когда очередной член ряда

меньше или равен точности вычисления числа е}

Until T >=element;

// вывод вычисленного числа e

Label3.Caption:='число е равно: '+FloatToStrF(e,Fffixed,10,8)

end;

end.





Дата публикования: 2014-11-02; Прочитано: 458 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.03 с)...