Меню
Главная
Авторизация/Регистрация
 
Главная arrow Информатика arrow Введение в программирование на языке Visual C#

Примеры решения задач

Задача 1. Даны два целых числа а и Ь. Результатами являются также два целых числа х и у. Результат х должен быть равен наименьшему из чисел а и Ь, результат у — наибольшему из а и Ь. Для нахождения значений х и у можно было бы создать два соответствующих метода, например, Min и Мах, однако следует разработать программу, содержащую единственный метод Min_max, который определяет значения результатов.

Комментарий: метод Min_max имеет четыре параметра: аа, bb, хх, уу. Первые два — это исходные данные. Перед выполнением метода этим параметрам присваиваются значения параметров, записанных в обращении к методу. Метод Min_ шах возвращает значения величин хх и уу. Перед их именами в описании процедуры стоит модификатор out, роль которого была рассмотрена выше. В листинге 138 приведен код метода Min_max.

Листинг 138

namespace WindowsApplicationl {

class Classl {

public static void Min_max(int aa, int bb, out int xx, out int

УУ)

{

if (aa > bb)

{

xx = bb; yy = aa;

}

else

{

xx = aa; yy = bb;

}

}

}

}

В рассматриваемой задаче (см. листинг 139) при первом вызове метода оператором Classl.Min_max(13, 23, out х, out у); параметрам аа и bb присваиваются значения 13 и 23, а переменные х и у приобретают новые имена, соответственно хх и уу. Все указанные в методе действия с переменными хх и уу фактически будут выполняться для переменных х и у. При повторном обращении к методу оператором Classl.Min_max(25, 15,out x,out у); вырабатываются новые значения переменных х и у (х=15, у=25).

Листинг 139

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

string a_,b_,c_,d_; int x, y,z;

Classl.Min_max(13, 23,out x,out y);

MessageBox.Show("x = " + x.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("y = " + у.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

Classl.Min_max(25, 15,out x,out y);

MessageBox.Show("x = " + x.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("y = " + у.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

a_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 1 "Окно ввода данных", -1, -1);

int а = Convert.ToIntl6(a_);

b_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 2 "Окно ввода данных", -1, -1);

int b = Convert.ToIntl6(b_);

c_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 3 "Окно ввода данных", -1, -1);

int с = Convert.Tolntl?(c_);

d_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 4 "Окно ввода данных", -1, -1);

int d = Convert.Tolntl?(d_);

Classl.Min_max(a, b,out x,out y);

MessageBox.Show("x = " + x.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("y = " + у.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

Classl.Min_max(c, d,out x,out z);

MessageBox.Show("x = " + x.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("z = " + z.ToString("n"),

MessageBoxButtons.OK, MessageBoxIcon.Information);

}

Заголовок окна", Заголовок окна",

Заголовок окна", Заголовок окна",

число

число

число

число

Заголовок

окна",

Заголовок

окна",

Заголовок

окна",

Заголовок

окна",

Задача 2. Разработать метод, который определяет наибольшее число из трех заданных.

Комментарий: в данной задаче воспользуемся встроенной функцией Мах, которая определяет максимум из двух значений. В листинге 140 приведен код метода, в котором сначала определяется максимум из двух чисел а и Ь, а затем аргументами функции Мах становятся найденное число и третье число с.

Листинг 140

namespace WindowsApplicationl

{

class Classl

{

public static double Max(double a, double b,double c )

{

double max = Math.Max(Math.Max(a, b), c); return max;

}

}

}

В основной части программы (см. листинг 141) осуществляются ввод трех чисел, вызов метода Мах и вывод результата вычислений.

Листинг 141

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

string a_, b_, c_; double rez;

a_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 1 число", "Окно ввода данных", -1, -1);

int а = Convert.ToIntl6(а_);

b_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 2 число", "Окно ввода данных", -1, -1);

int b = Convert.ToIntl6(b_);

c_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 3 число", "Окно ввода данных", -1, -1);

int с = Convert.ToIntl6(с_); rez = Classl.Max(a, b, c) ;

MessageBox.Show("rez = " + rez.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

Задача 3. Разработать метод, который возвращает котангенс числа. В листинге 142 приведен код метода, в листинге 143 его вызов.

Листинг 142

namespace WindowsApplicationl

class Classl

{

public static double Ctg(double chislo)

{

double ctg = Math.Cos (chislo) / Math.Sin (chislo) ; return ctg;

}

}

}

Листинг 143

namespace WindowsApplicationl

{

public partial class Forml : Form

{

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e)

{

string x_;

x_ = Microsoft.VisualBasic.Interaction.InputBox("Введите 1 число", "Окно ввода данных", -1, -1);

double х = Convert.ToDouble(х_); double rez = Classl.Ctg(x);

MessageBox.Show("rez = " + rez.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

Задача 4. Ввести одномерный массив из 10 целых чисел. Найти сумму и количество элементов массива, принадлежащих отрезку [0,10]. Процедуры подсчета суммы и количества элементов оформить в виде методов.

Разработка алгоритма метода F_sum, осуществляющего нахождение суммы чисел, представлена на рис. 153.

Рис. 153. Алгоритм метода F sum

Разработка алгоритма метода Р_ко1, осуществляющего нахождение количества чисел, представлена на рис. 154.

Рис. 154. Алгоритм метода F kol

Общая блок-схема решения задачи представлена на рис. 155.

Рис. 155. Общая блок-схема решения задачи В листинге 144 приведен код методов F_sum и F_kol. Листинг 144

namespace WindowsApplicationl {

class Classl {

public static int F_sum(params int[] a)

{

int sum = 0;

for (int i — 0; i < a.Length; i++) if ((a[i]>= 0) && (a[i] <= 10)) sum = sum + a[i]; return sum;

}

public static int F_kol(params int[] a)

{

int kol = 0;

for (int i — 0; i < a.Length; i++) if ( (a [i] >= 0) ScSc (a [i] <= 10))

kol=kol + 1; return kol;

}

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

Листинг 145

namespace WindowsApplicationl {

public partial class Forml : Form {

public Forml()

{

InitializeComponent();

}

private void buttonl_Click(object sender, EventArgs e) {

Random a = new Random(); int[] b = new int[10]; int s = 0; int k = 0; textBoxl.Clear();

for (int i — 0; i < b.Length; i++)

{

b[i] = a.Next(1, 20);

textBoxl.AppendText(b[i] + " ");

s = Classl.F_sum(b);

k = Classl.F_kol(b);

}

MessageBox.Show("Сумма элементов массива, принадлежащих отрезку = " + s.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

MessageBox.Show("Их количество = " + k.ToString("n"), "Заголовок окна", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

}

}

 
Если Вы заметили ошибку в тексте выделите слово и нажмите Shift + Enter
 
Популярные страницы