Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Новая методичка.rtf
Скачиваний:
6
Добавлен:
22.07.2019
Размер:
7.64 Mб
Скачать

Form1 (Unit1)

Var Form1: tForm1; X,y,s,r,p:real;

Implementation

uses Unit2; {$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

//Сумма X+Y

begin S:=x+y; end;

procedure TForm1.Button2Click(Sender: TObject);

//Ввод X,Y

begin x:=StrToFloat(Edit1.text);

y:=StrToFloat(Edit2.text) end;

procedure TForm1.Button3Click(Sender: TObject);

//ВызовForm2

begin Button3.Enabled:=True;

Form2.Show; Button5.SetFocus end;

procedure TForm1.Button4Click(Sender: TObject);

//Разность X-Y

begin R:=x-y end;

procedure TForm1.Button5Click(Sender: TObject);//Вывод R,S

begin Form2.Edit1.Text:=FloatToStr(R);

Form2.Edit2.Text:=FloatToStr(S); end;

end.

Form2 (Unit2)

Implementation

uses Unit1; {$R *.DFM}

procedure TForm2.Button2Click(Sender: TObject); //Выход

begin Form1.Close end;

procedure TForm2.Button1Click(Sender: TObject);

//Произведение X*Y

begin P:=x*y; end;

procedure TForm2.Button3Click(Sender: TObject); //Вывод P

begin Edit3.Text:=FloatToStr(P); end;

end.

  1. Сохранить все сделанное командой File/Save All.

  2. Запустить программу (Run). При успешном запуске программы на экране появится окно Form1 с компонентами:

  1. В окна редакторов Edit1 и Edit2 ввести значение переменных X и Y. Замечание: в числах с дробной частью вводить символ “.”, а не “,”.

  2. Нажать на кнопки в следующей последовательности:

Ввод X, Y”;

Сумма X+Y”;

Разность X-Y”;

Вывод R, S”;

Вызов Form2”;

  1. Активизировать щелчком мыши Form2 и нажать на кнопки в следующей последовательности:

Умножение X*Y”;

Вывод P”;

Вид Form2 после выполнения:

  1. Просмотреть результаты.

  2. Для завершения работы нажать кнопку “Выход”.

Лабораторная работа №4

Алгоритмизация и программирование решения типовых задач циклической структуры

Цель работы:

  • изучить основные типы циклов процедурного программирования,

  • получить навыки программирования вложенных циклов.

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

Пример 4.1. Поиск всех делителей целого числа

Постановка задачи: дано натуральное число, найти все его делители. Вид формы с компонентами:

Процедура обработки щелчка на кнопке "Расчет"

procedure TForm1.Button1Click(Sender:TObject);

Var X ,I: integer;

pol : integer; {половина исследуемого числа}

tec : integer; {текущее значение делителя}

begin ListBox1.Items.Clear; {очистка списка}

x := abs (StrToInt(Edit1.Text));

pol := x div 2; {половина числа}

tec := 2; {минимальный делитель} i := 0;

while tec <= pol do

begin

if x mod tec=0 then begin

Inc (I);{следующий номер делителя}

ListBox1.Items.Add(IntToStr(i)+

 делитель равен’+IntToStr(tec)); end;

inc(tec); end;

if I=0 then ListBox1.Items.Add(‘простое число’);

end;

Пример 4.2

Нахождение наибольшего общего делителя (НОД) и

наименьшего общего кратного (НОК) двух чисел

Вид формы с компонентами:

Процедура обработки щелчка на кнопке “Расчет

procedure TForm1.Button1Click(Sender: TObject);