Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор цикла While




End.

Implementation

{$R *.DFM}

procedure TForm1.Edit1KeyPress (Sender: TObject;

var Key: Char); begin

if not (key in [‘0'..'9,'-','.',#8]) then key:=#0; end;

procedure TForm1.Button1Click (Sender: TObject); var a,b:real;

xn,xk,у0,yk:integer; mx,my:real; x,y,ymax:real; i: integer; begin

xn:=15;

xk:=280;

УО:=75;

yk:=70;

a:=StrToFloat(Edit1,Text); b:=StrToFloat{Edit2,Text); ymax:=1.0;

{Зададим цвет и толщину пера} Imagel.Canvas.Pen.Color:=clBlack; Imagel.Canvas.Pen.Width:-1;

{Закрасим цветом фона предыдущий график) Imagel.Canvas.Brush.Color:=clWhite; Imagel.canvas.Rectangle(0,0,Imagel.Width, Imagel.Height);

{Рисуем оси координат} Imagel,Canvas.MoveTo(xn,yO);


 




Imagel.Canvas.LineTo(xk,yO); Imagel.Canvas.MoveTo(xn,yO+yk); Imagel.Canvas.LineTo(xn,yO-yk);

{Проверяем, введено ли b < a}

if b<=a then begin

Label3.Caption:= 'Графика нет'; Exit;

end else Label3.Caption:=’’;

{Устанавливаем цвет и толщину карандаша для графика}

Imagel.Canvas.Pen.Color:=clRed; Image1.Canvas.Pen.Width:=2; mx:=(b-a)/(xk-xn); my:=yk/ymax;

{Устанавливаем начальную точку графика} Imagel.Canvas.MoveTo(xn,yO-round(my*sin(a)));

{Строим график в цикле for} for i:-l to xk-xn do begin

y:=my*sin(x);

Imagel.Canvas.LineTo(xn+i,yO-round(y));

end;

end;

В обработчике событий OnKeyPress учтено, что вводятся вещественные числа. Используемая функция Round(2) преобразует вещественное число z в целое с предварительным округлением. Для того чтобы возможно было неоднократное построение графика, необходимо стирать предыдущий гра-: фик.

В отличие от оператора For, оператор цикла while используется, когда заранее неизвестно число выполняемых итераций. Этот оператор записывав ется так: While <логическое выражение> do <оператор>;.

Итерации выполняются до тех пор, пока логическое выражение остается истинным. Если с самого начала значение логического выражения ложно, тя оператор while будет пропущен.

ПРИМЕР ПРИЛОЖЕНИЯ 5

Найти все делители целого числа X, кроме единицы и самого числа. Воспользуемся простейшим алгоритмом. Будем перебирать все делители; начиная с числа 2, и проверять, делится ли нацело заданное число X. Оче­видно, последний делитель, который следует проверять, равен половине


пела X. Если ни одного делителя не найдено, то число простое. Будем ис-довать ТОЛЬКо положительные числа. Воспользуемся в этом примере компонентом TListBox. Форма с вариантом решения задачи приведена на ряс. 19.

Рис. 19

Интерфейсный элемент TListBox позволяет представить список объек­тов (свойство Items), чаще всего строк (класс TStrings), из которых можно выбрать один элемент. Если список не умещается на экране, то возможна его прокрутка по вертикали. Список можно представлять не только в один стол­бец - число столбцов задается свойством Columns. Если Columns > 1, то разрешается и горизонтальная прокрутка элементов. Элементы списка мо­гут, например, динамически добавляться. При этом используется свойство Items с соответствующим методом Add (Items. Add) - добавить. Какой эле­мент выбран, запоминается в свойстве Itemlndex. Можно задать одновре­менный выбор нескольких элементов в списке с помощью свойства MultiSe-lect Компонент имеет много других разнообразных свойств, что делает его удобным для отображения данных (например, свойство Sorted позволяет представлять список в алфавитном порядке и др.).

Ниже приводится программа для примера 5.

unit prim5;




Поделиться с друзьями:


Дата добавления: 2014-12-29; Просмотров: 254; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.008 сек.