КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |