Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
методички по информатике / Программирование в среде Delphi (Часть 1).pdf
Скачиваний:
50
Добавлен:
27.05.2015
Размер:
1.11 Mб
Скачать

2 Примеры выполнения практических заданий

2.1 Простейшие алгоритмы

Задание: Найти сумму двух целых чисел A и B.

Для решения поставленной задачи потребуются компоненты:

A_E1 класса TEdit для ввода числа A;

B_E класса TEdit для ввода числа B;

Res_E класса TEdit для вывода результата. Данный компонент должен

быть недоступным для редактирования, что достигается путем установки свойства ReadOnly в значение True;

A_L класса TLabel для подписи компонента A_E;

B_L класса TLabel для подписи компонента B_E;

Res_L класса TLabel для подписи компонента Res_E;

Calc_B класса TButton для активизации расчета.

Установим следующие значения свойств компонентов (таблица 4):

Таблица 4 – Значения свойств компонентов для примера выполнения задания по работе с простейшими алгоритмами

Компонент.Свойство

Значение

A_L.Caption

Число &A

A_L.FocusControl

A_E

 

 

B_L.Caption

Число &B

B_L.FocusControl

B_E

 

 

Res_L.Caption

&Результат

Res_L.FocusControl

Res_E

 

 

Res_E.ReadOnly

True

Calc_B.Caption

Рас&чет

Очистим свойство «Text» у компонентов A_E, B_E и Res_E. Опишем событие OnClick кнопки Calc_B2:

procedure TForm1.Calc_BClick(Sender: TObject);

var

 

 

a,b,res : integer;

 

 

begin

 

 

a := StrToint(A_E.Text);

// Получение

числа A

b := StrToint(B_E.Text);

// Получение

числа B

1A_E является идентификатором компонента. Здесь и далее подразумевается, что у соответствующего компонента изменено свойство Name.

2Реализации алгоритмов, приводимые в примерах, не всегда оптимальны, так как направлены на раскрытие механизмов работы с компонентами.

11

res := a+b; // Расчет результата

Res_E.Text := IntToStr(res); // Вывод результата end;

Внешний вид1 и пример работы программы показаны на рисунке 1.

Рисунок 1 – Внешний вид и пример работы программы, реализующей простейшие алгоритмы

2.2 Выражения

Задание: По значениям двух переменных x и y найти значения перемен-

ных

 

k,

m,

 

p,

где

k sin 2x cos 3y ,

m lg x 5 2 ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

p

k 2m

при

 

k

 

 

m

.

 

 

 

2

 

 

 

 

 

 

 

 

 

 

при

 

k

 

 

m

 

 

 

 

 

 

 

 

 

 

5k 4m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для решения поставленной задачи потребуются компоненты:

X_E класса TEdit для ввода числа x;

Y_E класса TEdit для ввода числа y;

K_E класса TEdit для вывода числа k;

M_E класса TEdit для вывода числа m;

P_E класса TEdit для вывода числа p;

X_L класса TLabel для подписи компонента X_E;

Y_L класса TLabel для подписи компонента Y_E;

K_L класса TLabel для подписи компонента K_E;

M_L класса TLabel для подписи компонента M_E;

P_L класса TLabel для подписи компонента P_E;

Calc_B класса TButton для активизации расчета.

Установим следующие значения свойств компонентов (таблица 5):

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

12

Таблица 5 – Значения свойств компонентов для примера выполнения задания по работе с выражениями

Компонент.Свойство

Значение

X_L.Caption

Число &X

X_L.FocusControl

X_E

 

 

Y_L.Caption

Число &Y

Y_L.FocusControl

Y_E

 

 

K_L.Caption

Число &K

K_L.FocusControl

K_E

 

 

K_E.ReadOnly

True

M_L.Caption

Число &M

M_L.FocusControl

M_E

M_E.ReadOnly

True

P_L.Caption

Число &P

P_L.FocusControl

P_E

P_E.ReadOnly

True

 

 

Calc_B.Caption

Рас&чет

Очистим свойство «Text» у компонентов X_E, Y_E, K_E, M_E и P_E. Опишем событие OnClick кнопки Calc_B:

procedure TForm1.Calc_BClick(Sender: TObject);

var

 

 

x,y,k,m,p : double;

 

 

begin

 

 

x := StrToFloat(X_E.Text); //

Получение числа x

y := StrToFloat(Y_E.Text); //

Получение числа y

k := sin(2*x)+cos(3*y);

//

Расчет числа k

m := sqr(ln(x)/ln(10)+5);

//

Расчет числа m

if abs(k)>abs(m) then

//

Проверка условия

p := sqrt(k+2*m)

// Истина, расчет числа p

else

 

 

p := sqr(5*k+4*m);

// Ложь, расчет числа p

K_E.Text := FloatToStr(k);

// Вывод числа k

M_E.Text := FloatToStr(m);

//

Вывод числа m

P_E.Text := FloatToStr(p);

//

Вывод числа p

end;

 

 

Внешний вид и пример работы программы показаны на рисунке 2.

2.3 Циклы

xi

Задание: По формуле ( 1)i 1i!(i 4) члена ряда с номером i составить программы вычисления:

13

а) суммы первых n членов ряда (i = 1,2,…n);

б) суммы всех начальных членов ряда, значение которых не меньше заданного числа e.

Рисунок 2 – Внешний вид и пример работы программы, реализующей вычисления выражений

В задании обозначение i! обозначает расчет факториала. Факториал некоторого числа – это последовательное перемножение чисел начиная с 1 до заданного числа, например, 5! = 1*2*3*4*5.

Для решения поставленной задачи потребуются компоненты:

X_E класса TEdit для ввода числа x;

N_E класса TEdit для ввода числа n (программа «а)»);

E_E класса TEdit для ввода числа e (программа «б)»);

Sum1_E класса TEdit для вывода суммы программы «а)»;

Sum2_E класса TEdit для вывода суммы программы «б)»;

X_L класса TLabel для подписи компонента X_E;

N_L класса TLabel для подписи компонента N_E;

E_L класса TLabel для подписи компонента E_E;

Sum1_L класса TLabel для подписи компонента Sum1_E;

Sum2_L класса TLabel для подписи компонента Sum2_E;

Calc1_B класса TButton для активизации расчета программы «а)»;

Calc2_B класса TButton для активизации расчета программы «б)».

Установим следующие значения свойств компонентов (таблица 6):

Таблица 6 – Значения свойств компонентов для примера выполнения задания по работе с циклами

Компонент.Свойство

Значение

X_L.Caption

Число &X

X_L.FocusControl

X_E

 

 

N_L.Caption

Число &N

N_L.FocusControl

N_E

 

 

E_L.Caption

Число &E

14

Продолжение таблицы 6

Компонент.Свойство

Значение

E_L.FocusControl

E_E

Sum1_L.Caption

&Сумма 1

Sum1_L.FocusControl

Sum1_E

Sum1_E.ReadOnly

True

 

 

Sum2_L.Caption

С&умма 2

Sum2_L.FocusControl

Sum2_E

 

 

Sum2_E.ReadOnly

True

 

 

Calc1_B.Caption

Расчет &1

Calc2_B.Caption

Расчет &2

Очистим свойство «Text» у компонентов X_E, N_E, E_E, Sum1_E и

Sum2_E.

Опишем событие OnClick кнопки Calc1_B (программа «а)»):

procedure TForm1.Calc1_BClick(Sender: TObject); var

n,i,j,f,k : integer; x,sum,sx : double;

begin

{Ввод значений "x" и "n"} n := StrToInt(N_E.Text);

x := StrToFloat(X_E.Text);

{Для вычисления суммы членов ряда переменной-накопителю

необходимо изначально присвоить значение "0"} sum := 0;

{Организация цикла перебора членов ряда} for i := 1 to n do

begin

{Расчет факториала} f := 1;

for j := 2 to i do f := f*j;

{Возведение "-1" в требуемую степень} if odd(i+1) then

k := -1 else

k := 1;

{Возведение "x" в требуемую степень} sx := x;

for j := 2 to i do sx := sx*x;

{Расчет слагаемого и его суммирование} sum := sum+sx/(k*f*(i+4));

end;

{Вывод результата}

Sum1_E.Text := FloatToStr(sum); end;

15