ттттт. Практическая работа Работа с интерфейсом среды программирования Delphi. Создание простого проекта. Запуск программ на выполнение
Скачать 2.63 Mb.
|
Практическая работа №5. Составление программ на Delphi с использованием циклических алгоритмов.Цель урока: сформировать навыки по использованию циклических алгоритмов. Теоретический материал. While, или цикл с предусловиемWhile — это цикл, в котором условие стоит перед телом. Причем тело цикла выполняется тогда и только тогда, когда условие true; как только условие становится false, выполнение цикла прекращается. While имеет формат: while < условие> do <оператор 1>; {Пока … делай ….} Данный цикл подходит только для одного оператора, если же вы хотите использовать несколько операторов в своем коде, вам следует заключить их в операторные скобки —begin и end; Repeat, или цикл с постусловиемRepeat — полная противоположность while. Repeat — это цикл, в котором условие стоит после тела . Причем оно выполняется тогда и только тогда, когда результат условия 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. Вторая форма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.
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.
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. Домашнее задание. Выполнить отчет по проделанной работе. Отчет должен включать следующие разделы: Задание. Блок-схема. Листинг программы. Интерфейс программы. Тесты. |