Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!