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

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

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

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

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

A_L1 класса Label для подписи компонента A_TB;

A_TB класса TextBox для ввода числа A;

B_L класса Label для подписи компонента B_TB;

B_TB класса TextBox для ввода числа B;

Res_L класса Label для подписи компонента Res_TB;

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

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

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

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

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

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

Значение

A_L.Text

Число &A

B_L.Text

Число &B

Res_L.Text

&Результат

Res_TB.ReadOnly

true

 

 

Calc_B.Text

Рас&чет

Опишем событие Click кнопки Calc_B2:

private void Calc_B_Click(object sender, EventArgs e)

{

int a = Convert.ToInt32(A_TB.Text);

// Получение

числа

A

int b = Convert.ToInt32(B_TB.Text);

// Получение

числа

B

int res = a+b;

// Расчет результата

Res_TB.Text = res.ToString();

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

}

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

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

12

Внешний вид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_L класса Label для подписи компонента X_TB;

X_TB класса TextBox для ввода числа x;

Y_L класса Label для подписи компонента Y_TB;

Y_TB класса TextBox для ввода числа y;

K_L класса Label для подписи компонента K_TB;

K_TB класса TextBox для вывода числа k;

M_L класса Label для подписи компонента M_TB;

M_TB класса TextBox для вывода числа m;

P_L класса Label для подписи компонента P_TB;

P_TB класса TextBox для вывода числа p;

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

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

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

13

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

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

Значение

X_L.Text

Число &X

Y_L.Text

Число &Y

K_L.Text

Число &K

K_TB.ReadOnly

true

 

 

M_L.Text

Число &M

M_TB.ReadOnly

true

 

 

P_L.Text

Число &P

P_TB.ReadOnly

true

 

 

Calc_B.Text

Рас&чет

Опишем событие Click кнопки Calc_B:

private void Calc_B_Click(object sender, EventArgs e)

{

double x,y,k,m,p;

 

x = Convert.ToDouble(X_TB.Text);

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

y = Convert.ToDouble(Y_TB.Text);

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

k = Math.Sin(2*x) + Math.Cos(3*y);

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

m = Math.Pow(Math.Log10(x)+5,2);

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

if (Math.Abs(k) > Math.Abs(m))

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

p = Math.Sqrt(k+2*m);

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

else

 

p = Math.Pow(5*k+4*m,2);

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

K_TB.Text = k.ToString();

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

M_TB.Text = m.ToString();

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

P_TB.Text = p.ToString();

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

}

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

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

14

2.3 Циклы

xi

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

программы вычисления:

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

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

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

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

X_L класса Label для подписи компонента X_TB;

X_TB класса TextBox для ввода числа x;

N_L класса Label для подписи компонента N_TB;

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

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

E_L класса Label для подписи компонента E_TB;

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

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

Sum1_L класса Label для подписи компонента Sum1_TB;

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

Sum2_L класса Label для подписи компонента Sum2_TB;

Sum2_TB класса TextBox для вывода суммы программы «б)».

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

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

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

Значение

X_L.Text

Число &X

N_L.Text

Число &N

E_L.Text

Число &E

Sum1_L.Text

&Сумма 1

Sum1_TB.ReadOnly

true

 

 

Sum2_L.Text

С&умма 2

Sum2_TB.ReadOnly

true

 

 

Calc1_B.Text

Расчет &1

Calc2_B.Text

Расчет &2

15

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

private void Calc1_B_Click(object sender, EventArgs e)

{

/* Ввод значений "x" и "n" */

int n = Convert.ToInt32(N_TB.Text); double x = Convert.ToDouble(X_TB.Text);

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

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

int f;

/* Организация цикла перебора членов ряда */ for (int i=1; i<=n; i++)

{

/* Расчет факториала */ f = 1;

for (int j=2; j<=i; j++) f *= j;

/* Расчет слагаемого и его суммирование. При расчете

слагаемого используется условный оператор для возведения -1 в требуемую степень */

sum += Math.Pow(x,i)/(((i+1)%2 == 0 ? 1 : -1)*f*(i+4));

}

Sum1_TB.Text = sum.ToString(); // Вывод результата

}

Программа «б)» во многом схожа с программой «а)» и реализуется в описании события Click кнопки Calc2_B. Реализация отличается следующими моментами:

вместо заранее заданного количества членов ряда n задается точность расчета e;

так как заранее неизвестно количество членов ряда, подлежащих суммированию, то рекомендуется применение вместо цикла for либо цикла while, либо цикла do…while, выход из которых производится при невыполне-

нии некоторого условия.

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

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

16