Студопедия

КАТЕГОРИИ:


Архитектура-(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)

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




Оператор For позволяет организовать выполнение какого-либо другого оператора заранее заданное число раз. Существуют 2 варианта этого опера­тора:

For <управляюцая переменная>:= <Start> to <Finish> do <one-

Ро* <упра»лякщая переменная>:= <Start> downto <Finish> do <оператор>;.

Управляющая переменная позволяет ограничить количество расчетов заданного оператора, которое зависит от значений выражений <start> и <Pinish>. Выражение <start> определяет начальное значение управляю­щей переменной, выражение <Finish> - конечное значение. При каждой итерации управляющая переменная увеличивается на единицу в первом опе-


раторе и уменьшает свое значение на единицу во втором операторе. Как только значение управляющей переменной превзойдет значение <Finish> в первом операторе (станет меньше во втором операторе), цикл прекращается. Выражения <start> и <Finish> должны возвращать значения порядкового типа, соответственно Управляющая переменная> должна также иметь порядковый тип. Например,

FOR I:= 1 ГО 10 DO Y:=sin(X);

FOR I:- 10 DOWNTO 1 DO X:=sin(X);

Если в самом начале цикла значение <Finish> будет больше, чем зна­чение <start> для первого оператора, или значение <Finish> меньше, чем <start> для второго оператора, то не будет выполнено ни одной итерации.

В Delphi скорость выполнения циклических вычислений оптимизирова­на, поэтому имеют место ограничения на управляющую переменную, кото­рая должна:

• иметь порядковый тип;

• быть объявлена в том же блоке, в котором помещен цикл, т. е. должна
быть локальной.

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

Пусть требуется рассчитать табл. 10 и построить на экране дисплея гра­фику =f(x) = sm(x). Шаг изменения координат* и_у графика зададим в пик­селах и пусть, h = 1. В данном случае имеют место два типа графиков: физи­ческий и дисплейный. Пусть X, У, Н - координаты и шаг физического гра­фика, х, у, h - координаты и шаг дисплейного графика. Прежде чем рисовать график, необходимо выполнить преобразование физических координат в дисплейные (или масштабирование) так, чтобы дисплейный график верно отражал процесс, смоделированный физическим графиком. Физический график начинается в точке х = а и заканчивается в точке х = b.

Пусть дис­плейный график начинается в точке Х = хпи продолжается до точки X = хк (рис. 16). Выберем следующую схему построения дисплейного графика:

• используя заданное А, находим текущее значение х;

• рассчитываем Я и находим значение физической переменной X;

• определяем У;

• преобразуем У в у;

• на экране дисплея отображаем полученную точку (х,у).

Введем масштаб ту и запишем соотношение у = туУ. Так как данное со­отношение справедливо для любой точки графика, необходимо, чтобы оно выполнялось и при значении утт = ту Утах (все значения у будут воспроиз­водиться на экране). Из этого соотношения можно определить масштаб my,
Максимальное значение F^ в данном случае для функции равно 1, а для дисплейного графика ут^ задается, в общем случае, произвольно.

У,

Дисплейный график (без учета направления оси ординат)


"*"

Физический график

 

Дисплейный график ртраженный по вертикали)

X

Рис. 16

Теперь найдем соотношение между х и X (или между А и Я, что одно и то же). Примем, чтобы количество точек по оси абсцисс для дисплейного и физического графиков было одинаковым. Чтобы это выполнялось, необхо­димо согласовать значение шага Н для физического графика с выбранным h для дисплейного графика. Запишем

откуда следует обозначив тх , получим требуемое

 

соотношение Я = mxh.





Для размещения графика понадобится компонент TImage (страница Ad. ditional). Форма примера 4 приводится на рис. 17. Какие объекты используй ются в данном примере, можно найти в тексте программы.

Рис. 17


Рис. 18 Текст программы приведен ниже.

Компонент TImage используется для рисования графических объектов и геометрических фигур. Полезным свойством компонента TImage является Canvas (холст), которое включает, в частности, свойства Pen, Brush. Канва имеет методы: MoveTo (используется для перемещения невидимого графи! ческого курсора в заданную точку) и LineTo (позволяет рисовать линии)! Эти два метода используются для рисования графика на канве TImage. Кем ординаты задаются в пикселах, горизонтальная ось направлена слева напра-J во, вертикальная - сверху вниз. Вариант решения задачи приводится на рис] 18. Выбраны следующие размеры для Image 1: Width = 305, Height = 154. Осы абсцисс проведена при значении у0 = 75.


unit prim4; interface

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls;

TForm1 class (TForm) Panel1: TPanel;

Button1: TButton;

BitBtnl: TBitBtn;

Edit1: TEdit;

Label1 Edit2: Label2 image1 Label3 Bevel1

TLabel; TEdit; TLabel; TImage; TLabel;: TBevel;

procedure Edit1KeyPress (Sender: TObject; var Key: Char); procedure Button1Click (Sender: TObject);

end;

var Form1: TForm1;




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


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


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



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




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