Главная страница
Навигация по странице:

  • Цель лабораторной работы

  • Repeat until

  • While

  • фывфыв. Практикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей


    Скачать 1.39 Mb.
    НазваниеПрактикум по дисциплине Разработка приложений в визуальных средах для студентов специальностей
    Анкорфывфыв
    Дата24.03.2021
    Размер1.39 Mb.
    Формат файлаdoc
    Имя файлаLaboratorny_praktikum_chast1_Elektronny_ebntu.doc
    ТипПрактикум
    #187875
    страница5 из 24
    1   2   3   4   5   6   7   8   9   ...   24

    ЛАБОРАТОРНАЯ РАБОТА 3

    Разработка приложения, реализующего циклический вычислительный процесс




    Цель лабораторной работы: изучить средства отладки программ в среде Delphi. Составить и отладить программу для циклического вычислительного процесса.

    1. Краткие сведения



    1.1. Операторы организации циклов Repeat, While, For
    Под циклом понимается многократное выполнение одних и тех же операторов при различных значениях промежуточных данных. Число повторений может быть задано в явной или неявной форме. Для организации повторений в языке Pascal предусмотрены операторы Repeat, While и For.

    Оператор Repeat имеет форму:
    Repeat

    <операторы>

    until <условие>;
    и организует повторение операторов, помещенных между ключевыми словами repeat и until, до тех пор, пока не выполнится <условие>=true, после чего управление передается следующему за циклом оператору.

    Оператор While имеет форму:

    While<условие >do

    begin

    <операторы>

    end;
    и организует повторение операторов, помещенных между begin и end, до тех пор, пока не выполнится <условие>=false. Заметим, что если <условие>=false при первом входе в цикл, то <операторы> не выполнятся ни разу, в отличие от оператора Repeat, в котором хотя бы один раз они выполнятся.

    Оператор For имеет форму:

    For i := i1 to i2 do

    begin

    <операторы>

    end;
    и организует повторное вычисление операторов при нарастающем изменении переменной цикла i от начального значения i1 до конечного i2 с шагом, равным единице. Заметим, что если i2>il, то <операторы> не выполнятся ни разу.

    Модификация оператора имеет вид:
    For i := i2 downto i1 do

    begin

    <операторы>

    end;
    и организует повторение вычислений при убывающем изменении i на единицу.
    1.2. Средства отладки программ в Delphi
    В написанной программе после ее запуска, как правило, обнаруживаются ошибки. Ошибки первого уровня (ошибки компиляции) связаны с неправильной записью операторов (орфографические и/или синтаксические ошибки). При обнаружении ошибки компилятор Delphi останавливается напротив первого оператора, в котором обнаружена ошибка. В нижней части экрана появляется текстовое окно, содержащее сведения обо всех ошибках, найденных в проекте. Каждая строка этого окна содержит имя файла, в котором найдена ошибка, номер строки с ошибкой и характер ошибки. Для быстрого перехода к интересующей ошибке необходимо дважды щелкнуть на строке с ее описанием.

    Для получения более полной информации о характере ошибки необходимо обратится к HELP нажатием клавиши F1. Следует обратить внимание на то, что одна ошибка может повлечь за собой другие, которые исчезнут при ее исправлении. Поэтому следует исправлять ошибки последовательно, сверху вниз и, после исправления каждой ошибки компилировать программу снова.

    Ошибки второго уровня - ошибки времени выполнения. Они связаны с ошибками выбранного алгоритма решения или с неправильной программной реализацией алгоритма. Эти ошибки проявляются в том, что результат расчета оказывается неверным, либо происходит переполнение (деление на нуль) и др. Поэтому перед использованием отлаженной программы ее необходимо протестировать, т.е. сделать просчеты при таких комбинациях исходных данных, для которых заранее известен результат. Если тестовые расчеты указывают на ошибку, то для еепоиска следует использовать встроенные средства отладки среды Delphi.

    В простейшем случае для локализации места ошибки рекомендуется поступать следующим образом. В окне редактирования текста установить курсор в строке перед проверяемым участком, выделить этот оператор, нажатием мышью на полосе слева от текста программы, нажать клавишу F4 (выполнение до курсора). При этом выполнение программ будет остановлено на строке, содержащей курсор. Теперь можно увидеть, чему равны значения интересующих переменных. Для этого нужно поместить на переменную курсор и в качестве подсказки на экране будет высвечено ее значение. В другом варианте требуется нажатие комбинации клавиш Ctrl-F7 и в появившемся диалоговом окне указать интересующую переменную (с помощью данного окна можно также изменить значение переменной во время выполнения программы).

    Нажимая клавишу F7 (пошаговое выполнение), можно построчно выполнять программу, контролируя изменение тех или иных переменных и правильность вычислений. Если курсор находится внутри цикла, то после нажатия F4 расчет останавливается после одного выполнения тела цикла. Для продолжения расчетов следует нажать мышью на команде меню Run.

    Нажимая клавишу F8 можно продолжать отладку не заходя внутрь процедур и функций.
    1.3. Пример выполнения задания
    Задание: написать и отладить программу, которая выводит таблицу значений функций S(x) для х изменяющихся в интервале от x1 до x2 с шагом h.
    .
    Форма приложения приведена на рисунке 3.1.



    Рисунок 3.1 – Форма приложения
    Текст программы:
    Unit LabRab_3;

    Interface

    Uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls,

    Forms, Dialogs, StdCtrls, ExtCtrls;
    Type

    TForm1=class(TForm)

    Memo1:TMemo;

    Button1: TButton;

    Label1: TLabel;

    Label2: TLabel;

    Label3: TLabel;

    Label4: TLabel;

    Edit1:TEdit;

    Edit2:TEdit;

    Edit3:TEdit;

    Edit4:TEdit;

    procedure FormСreate(Sender: TObject);

    procedure Button1Сlick(Sender: TObject);

    private

    {Private declarations}

    public

    {Public declarations}

    end;

    var

    Form1:TForm1;

    Implementation

    Uses Math;

    {$R *.dfm}
    procedure TForm1.FormCreate(Sender: TObject);

    begin

    Edit1.Text := ’0’;

    Edit2.Text : = '2';

    Edit3.Text := '5';

    Edit4.Text := '0,25';

    Memo1.Clear;

    Memo1.Lines.Add('Результаты ст. гр. 107218 Юртаева Т.А.');
    Procedure TForm1.Button1Click(Sender: TObject);

    Var

    x1, x2, x, h, a, s : extended;

    N, k, c : integer;

    begin

    xl := StrToFloal(Edit1.Text);

    Memo1.Lines.Add('x1 = ' + Edit1.Text);

    x2 := StrToFloat(Edit2.Text);

    Memo1.Lines Add('x2 = ' + Edit2.Text);

    N := StrToInt(Edit3.Text);

    Memo1.Lines.Add(‘N = ' + Edit3.Text);

    h := StrToFloat(Edit4.Text);

    Memo1.Lines.Add(‘H = ' + Edit4.Text);

    x := x1;

    Repeat

    s := 0;

    for k :=1 to N do

    begin

    if (k mod 2) = 0 then c:= 1 else c:= -1;

    a := c * Power(x, k) / k;

    s := s + a;

    end;

    Memo1.Lines.Add('npи x = ' + FloatToStrF(x, ffFixed, 6, 2) + #9 +

    ' сумма = ' + FloalToStrF(s, ffFixed, 6, 2));

    x := x+h;

    until x>x2;

    end;

    end.
    Послe отладки программы составьте тест (N=2, X1=0, X2=1, h=3), установите курсор на первый оператор (N:= ), нажмите клавишу F4. После этого нажимая клавишу F7, выполните пошаговую отладку программы и проследите, как меняются все переменные в процессе выполнения.

    1   2   3   4   5   6   7   8   9   ...   24


    написать администратору сайта