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

  • Ход работы.

  • Выделенный объект Вкладка окна Object Inspector Имя свойства/ имя события

  • ттттт. Практическая работа Работа с интерфейсом среды программирования Delphi. Создание простого проекта. Запуск программ на выполнение


    Скачать 2.63 Mb.
    НазваниеПрактическая работа Работа с интерфейсом среды программирования Delphi. Создание простого проекта. Запуск программ на выполнение
    Анкорттттт
    Дата30.01.2022
    Размер2.63 Mb.
    Формат файлаdoc
    Имя файла0018f8f0-cdfb5c43.doc
    ТипПрактическая работа
    #346059
    страница5 из 16
    1   2   3   4   5   6   7   8   9   ...   16

    Практическая работа №5. Составление программ на Delphi с использованием циклических алгоритмов.


    Цель урока: сформировать навыки по использованию циклических алгоритмов.

    Теоретический материал.

    While, или цикл с предусловием


    While — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается.

    While имеет формат:

    while < условие> do <оператор 1>;  {Пока … делай ….}

    Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки —begin и end;

    Repeat, или цикл с постусловием


    Repeat  — полная противоположность whileRepeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия false;как только логическое выражение становится true, выполнение цикла прекращается.

    Repeat имеет формат:

    repeat{ повторяй … }
    <оператор 1>;
    < оператор 2>;

    until {до…} <условие>

    Begin и end не требуются.

    For, или цикл с параметром


    For — это  цикл, в котором тело выполняется заданное количество раз.

    Существует две формы записи этого цикла:

    Первая форма


    for <счетчик1> := <значение1> to <конечное_значение> do <оператор1>;

    После каждой итерации значение <счетчик1> будет увеличиваться на 1.

    <значение1> — это начальное значение счетчика. Это может быть переменная или число.
    <конечное_значение> : как только значение <счетчик1> станет больше <конечное_значение>, выполнение цикла прекратится.

    Если требуется написать несколько операторов в теле цикла, используемbegin иend.

    И <счетчик1>, и <конечное_значение>, и <значение1> —  переменные целого типа.

    Чаще всего в качестве счетчика используется переменная i.

    Вторая форма


    1. for <счетчик2> := <значение2> downto <конечное_значение> do <оператор1>;

    После каждой итерации значение <счетчик2> будет уменьшатся на 1.

    <значение2> — это начальное значение счетчика.
    <конечное_значение> : как только значение <счетчик2> станет меньше <конечное_значение>, выполнение цикла прекратится.

    Ход работы.

    Задание 1.

    Создать компьютерную версию одной из головоломок Самуэля Ллойда: из заданного набора чисел надо выбрать те, сумма которых составит 50. Числа, которые избрал Ллойд для своей головоломки: 25, 27, 3, 12, 6, 15, 9, 30, 21, 19.



    Рис. 1.

    Выполнить следующие действия:

    1. После запуска программы в окне изображается список чисел Ллойда.

    2. Выбираем с помощью флажков числа и помещаем в правое окно.

    3. Сумма выбранных чисел представлена в виде надписи.

    4. Для выхода из программы необходимо щелкнуть мышью на закрывающей кнопке в строке заголовка.

    Описание плана разработки программы

    1. Открыть новый проект.

    2. Разместить на форме экземпляры компонентов: список флажков CheckListBox, надпись Label, список ListBox.

    3. Выполнить следующие действия:

    Таблица 1.

    Выделенный объект

    Вкладка окна Object Inspector

    Имя свойства/ имя события

    Действие

    Forml

    Properties

    Caption

    Установка имени формы "Головоломка"

    BorderStyle

    Задайте значение bsSingle

    CheckListBoxl

    (Вкладка Additional )

    Properties

    Items

    Задаем состав списка. Щелкнуть на кнопке построителя. Откроется окно String List editor (Редактор списка строк). Введите в список заданные числа через Enter. Нажмите кнопку OK.

    Height

    Подобрать значение так, что все числа поместились в список (без полос прокруток).

    Events

    OnClickCheck

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

    ListBox1

    (Вкладка Standard)

    Properties

    Height

    Подобрать значение так, что все числа поместились в список (без полос прокруток). Первоначально список пуст. Заполняться он будет при работе программы.

    Label1

    (Вкладка Standard)

    Properties Caption Введите текст: "Сумма: 0" Autosize Задайте значение False Alignment Задайте значение taCenter

    4. Сохраните проект, запустите и протестируйте его.

    Листинг подпрограммы

    procedure TForm1.CheckListBox1ClickCheck (Sender: TObject);

    var i, s: Integer;

    begin

    ListBox1.Clear;

    for i: = 0 to CheckListBox1.Items.Count-1 do if CheckListBox1.Checked[i] then ListBox1.Items.Add (CheckListBox1.Items[i]);

    s := 0;

    for i := 0 to ListBox1.Items.Count -1 do

    s := s + StrToInt(ListBox1.Items[i]); Label1.Caption := 'Сумма: ' + IntToStr(s); if s = 50 then

    begin

    Label1.Caption := 'Сумма:' + IntToStr (s); CheckListBox1.Enabled := False; ListBox1.Enabled := False; end;

    end;

    Задание 1.

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

    Описание плана разработки программы

    1. Открыть новый проект.

    2. Разместить на форме экземпляры компонентов: Button, Edit, Label.

    3. Выполнить следующие действия:

    Таблица 2.

    Выделенный объект

    Вкладка окна Object Inspector

    Имя свойства/ имя события

    Действие

    Forml

    Properties

    Caption

    Установка имени формы "Новый проект"

    Events

    OnCreate

    Очистить значения свойств Text текстовых полей

    Buttonl

    Properties

    Caption

    Введите название "Очистить"

    Events

    Onclick

    Очистить значения свойств Text текстовых полей

    Button2

    Properties

    Caption

    Введите название "Закрыть"

    Events

    Onclick

    Обработка события закрытия формы

    Button3

    Properties

    Caption

    Введите название "Найти первый индекс"

    Events

    Onclick

    Обработка события нахождения индекса введенного числа

    Button4

    Properties

    Caption

    Введите название "Ввести случайным образом"

    Events

    Onclick

    Ввод массива случайным образом

    Editl

    Properties

    Caption

    Очистить значение свойства Text

    Edit2

    Properties

    Caption

    Очистить значение свойства Text

    Edit3

    Properties

    Caption

    Очистить значение свойства Text

    4. Введите переменные ik, k, i : integer; s : string; a : array [1..15] of integer.

    5. Сохраните проект, запустите и протестируйте его. Листинг программы

    procedure Tform1.FormCreate(Sender: Tobject); begin

    Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; end;

    procedure Tform1.Button1Click(Sender: Tobject); begin

    Edit1.Text := ''; Edit2.Text := ''; Edit3.Text := ''; end;

    procedure Tform1.Button2Click(Sender: Tobject); begin

    close;

    end;

    procedure Tform1.Button3Click(Sender: Tobject); begin

    k := StrToInt (Edit2.Text); For i:= 1 to 15 do

    if k = a[i] then ik := i; if ik = 0 then Edit3.Text := 'number ubsent' else Edit3.Text := IntToStr (ik);

    end;

    procedure Tform1.Button4Click(Sender: Tobject); begin

    randomize;

    s := '';

    For i := 1 to 15 do begin

    a[i] := random (26); s := concat (s, IntToStr (a[i]), #32); end; Edit1.Text := s; end; end.

    Домашнее задание.

    Выполнить отчет по проделанной работе.

    Отчет должен включать следующие разделы:

    1. Задание.

    2. Блок-схема.

    3. Листинг программы.

    4. Интерфейс программы.

    5. Тесты.
    1   2   3   4   5   6   7   8   9   ...   16


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