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

Некоторые приемы работы с отладчиком



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

Run Программа выполняется без остановки на каждой строке. Эта программа эквивалентна выполнению программы вне отладчика
Step Over Программа выполняется построчно. Подпрограммы выполняются как одна строка
Trace Into Программа выполняется построчно. Также выполняется каждая строка подпрограммы
Run To Cursor Программа выполняется до той строки, на которой находится курсор в окне Редактора Кода
Program Pause Выполнение программы приостанавливается
Program Reset Выполнение программы завершается
Add Breakpoint Можно указать точки прерывания при выполнении программы
Add Watch Можно указать точки просмотра для слежения за изменением значений переменных или полей структур данных

В процессе обучения программированию очень удобно пользоваться пошаговым выполнением программы. Почему? Это позволяет посмотреть, как изменяются значения переменных, участвующих в программе, в процессе пошагового выполнения. Какую последовательность действий предпринять? Установить курсор в тексте программы на вторую исполняемую строку после Begin и запустить команду Run To Cursor (F4). Программа выполнит этот оператор и остановится. В окне Редактора Кода выполненная строка будет помечена зеленой стрелкой слева и выделена синим цветом. Если навести курсор на название какой-нибудь переменной из предшествующей части программы, рядом с курсором появится справочное окошко, где приведено значение этой переменной. Далее запустить командой Step Over (F8) следующий шаг выполнения. Будет помечена следующая строка при выполнении. С помощью курсора мыши можно посмотреть, как изменились значения переменных при выполнении этого шага программы.

Часто при отладке пользуются окном точек просмотра. Пометить переменные для просмотра можно, наведя на них курсор и выполнив команду Add Watch (Ctrl+F5). Далее следует запустить пошаговое выполнение программы. Часто окно Watch List бывает закрыто окном редактора кода. Его надо отодвинуть.

Отладочные настройки отменяются командой Program Reset.

Практика

Задача

Составить программу, определяющую по росту и весу пользователя программы, похудеть или поправиться ему нужно и на сколько килограммов.

Компоненты

Имя компонента Свойства компонентов Значение Назначение
Form1 Caption Контроль веса Заголовок формы
Label1 Caption Поле для ввода веса Подсказка пользователю
Label2 Caption Поле для ввода роста Подсказка пользователю
Label3 Caption   Поле вывода результатов работы программы
Button1 Caption Вычислить Кнопка для вычисления

Переменные

Обозначение в программе Содержание Тип
wes Вес Вещественный
Rost Рост Вещественный
opt Оптимальный вес Вещественный
d Отклонение от оптимального веса Вещественный

Проект формы

unit wtest;

…………………….

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var

wes:real; {вес}

Rost:real; {рост}

opt:real; {оптимальный вес}

d:real; {отклонение от оптимального веса}

begin

wes:=StrToFloat(Edit1.text);

Rost:=StrToFloat(Edit2.Text);

opt:=Rost-100;

if wes=opt

then

Label3.caption:='Ваш вес оптимален!'

else

if wes<opt

then

begin

d:=opt-wes;

Label3.caption:='Вам надо поправиться, на'+ FloatTostr(d)+ 'кг.';

end

else

begin

d:=wes-opt;

Label3.caption:='Надо немного похудеть, на '+ FloatTostr(d)+ 'кг.';

end;

end;

end.

Результаты работы программы

Задача

Некоторая страховая компания страхует индивидуальные дома по следующей схеме:

Стоимость страховки = Площадь * Цена_кв.м * Коэф.этажности * *Износ/100*Проценты*Курс_у.е..

Цена_кв.м:

Кирпичный коттедж — 200 у.е.

Дом из оцилированного бревна — 250 у.е.

Дом из бруса — 150 у.е.

Дом из бревен — 100 у.е.

Каркасно-щитовой — 50 у.е.

Коэффициетн этажности:

1 этаж — 1

2 этажа — 1,2

3 этаж — 1,3

Коэффициент износа:

Возраст дома:

Более 15 лет — 0,8

От 11 до15 лет — 0,6

от 6 до 10лет — 0,4

до 5 лет — 1

Проценты страхового сбора:

Количество лет страхования в данной страховой компании

Превышает 7 лет — 1 процент

От 3 до 7 лет — 2 процента

До 3 лет (включительно) — 3 процента

Компоненты

Имя компонента Свойства компонентов Значение Назначение
Form1 Caption Сумма страховки индивидуального дома Заголовок формы
Label1 Caption Программа для расчета суммы страхования индивидуального дома в некоторой страховой компании Справочная информация для пользователя программы
Label2 Caption Общая площадь (кв.м) Подсказка пользователю
Label3 Caption Год постройки Подсказка пользователю
Label4 Caption Сколько лет дом страховался в данной страховой компании Подсказка пользователю
Label5 Caption   Поле для вывода суммы страховки дома
Label6 Caption   Поле для вывода текущей даты, установленной на компьютере
Label7 Caption Курс у.е. Подсказка пользователю
Edit1 Text ….. Поле для ввода общей площади
Edit2 Text ….. Поле для ввода года постройки дома
Edit3 Text ….. Поле для ввода количества лет страхования в данной компании
Edit4 Text   Поле для ввода курса у.е.
Button1 Caption РАСЧЕТ Кнопка для вычисления суммы страховки
Button2 Caption ВЫХОД Кнопка закрытия формы и выхода из программы
ListBox1 Items Кирпичный коттедж Дом из оцилированного бревна Дом из бруса Дом из бревен Каркасно-щитовой Список для выбора типа дома
ComboBox1 Text Items Количество этажей Поле со списком

Переменные

Обозначение в программе Содержание Тип
S Общая площадь индивидуального дома Вещественный
Zena_m Цена кв. метра Денежный
Summa Сумма страхового взноса Денежный
d Текущий день Целый беззнаковый
m Текущий месяц Целый беззнаковый
Y Текущий год Целый беззнаковый
God Год постройки дома Целый беззнаковый
KE Коэффициент этажности Вещественный
Iznos Коэффициент износа Вещественный
Prozent Процент страхового взноса Вещественный
Kurs Курс у.е. Вещественный

Проект формы

Текст модуля

unit Unit1;

……………………….

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

Var S:Real; //общая площадь дома

Zena_m, Summa: currency;// цена кв.м, сумма страховки дома

d,m,Y,God: Word; // день, месяц, год страхования; год

//постройки дома

KE:Real; // коэффициент, учитывающий этажность

Iznos:Real;// коэффициент износа

Prozent:Integer; // процент страхового взноса

Kurs:Real; // курс у.е.

begin

// ввод площади дома, года постройки и курса у.е.

S:=StrToFloat(Edit1.Text);

God:=StrToInt(Edit2.Text);

Kurs:=StrToFloat(Edit4.Text);

// вывод текущей даты на форму

Label6.Caption:='Сегодня: '+DateToStr(Date);

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

//кв.м

Case ListBox1.ItemIndex of

0:Zena_m:=200;

1:Zena_m:=250;

2:Zena_m:=150;

3:Zena_m:=100;

4:Zena_m:=50;

Else Exit;

end;

// определение коэффициента этажности

// по выбранному из поля со списком числу этажей

Case ComboBox1.ItemIndex of

0:KE:=1;

1:KE:=1.2;

2:KE:=1.3;

Else Exit;

end;

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

// и помещение их в отдельные переменные: год, месяц, день

Decodedate(Date,Y,m,d);

// если разность между текущим годом и годом постройки дома

// не больше 5 лет, то износ равен 1

If Y-God<=5 Then Iznos:=1

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

// больше 5 лет и не более 10, то износ равен 0,8

Else If ((Y-God)>5) and ((Y-God)<=10)

Then Iznos:=0.8

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

// постройки дома

// не больше 15 лет, то износ равен 0,6

Else If Y-God<=15 Then Iznos:=0.6

Else

Iznos:=0.4;// иначе износ 0,4

// если дом застрахован в данной компании не более 3 лет,

// то процент страхового взноса равен 3

If StrToInt(Edit3.Text)<=3 Then Prozent:=3

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

// то процент страхового взноса равен 1

Else If StrToInt(Edit3.Text)>7 Then Prozent:=1

// иначе дом страхуется от 3 до 7 лет,

// процент страхового взноса равен 2

Else Prozent:=2;

// расчет суммы страхового взноса

Summa:=S*Zena_m*KE*Iznos/100*Prozent*Kurs;

// вывод суммы страховки на форму

Label5.Caption:='Сумма страховки Вашего дома составляет: '

+FloatToStrF(Summa,Fffixed,10,2)+' руб.'

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

Form1.Close;

end;

end.

Результаты работы программы





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



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