Написание программного кода с использованием процедур




Тексты программного кода приведены на рис. 1.7-2.

Так как в данном примере массив должен быть доступен не одной, а нескольким событийным функциям, то его необходимо сделать глобальным (видимым для всех функций), поэтому он объявляется в начале программы, до описания всех функций.

 

 

namespace WindowsFormsApplication2 { public partial class Form1: Form { public Form1() { InitializeComponent(); } double[] x; //объявление массива //функция вывода массива string PrintL(double[] x, int n) {int i=0; string y= " "; for (; i<n; i++) y = y + Convert.ToString(x[i]) + " "; y = y + "----"; return y; } void vvod(double[] x, int index, int n) { string y=""; int i; switch(index) { case 0: //ввод генератором случайных чисел Random RandomNumber1 = new Random(); for (i = 0; i<n; ++i) x[i] = RandomNumber1.Next(-5,3)*5-10; break; case 1: //ввод по формуле for (i = 0;i<n;i++) x[i] = i * 5 - 15; break; } } //функция сортировки элементов массива по возрастанию void sort1(double[] x, int n) { double box; int i, j; for (i = 0; i<(n-1);i++) for (j = i + 1; j<n; j++) if (x[i] > x[j]) {box = x[j]; x[j] = x[i]; x[i] = box; } } //Функция сортировки элементов массива по убыванию void sort2(double[] x, int n) {int i, j, m; double xmax; for (i = 0; i<n-1; i++) {xmax = x[i]; m = i; for (j = i + 1; j<n; j++) if (x[j] > xmax) {xmax = x[j]; m = j; } x[m] = x[i]; x[i] = xmax; } } //функция удаления отрицательных элементов массива void mass_udal(double[] x, int n) {int j, i; i = 0; while (i <= n) { if (x[i] < 0) { for (j = i; j < n - 1; j++) x[j] = x[j + 1]; n = n - 1; } else i++; } string y = PrintL(x, n); //вызов функции вывода результ. массива listBox2.Items.Add(y); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { int index, n; index = comboBox1.SelectedIndex; //индекс выбр-го эл-та listBox1.Items.Clear(); listBox2.Items.Clear(); n = Convert.ToInt32(textBox1.Text); //кол-во эл-тов массива x= new double[n]; vvod(x, index, n); //ввод массива в зависимости от индекса выбора string y=PrintL(x, n); //вывод исходного массива listBox1.Items.Add(y); } private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { int ind; ind = comboBox2.SelectedIndex; listBox2.Items.Clear(); int n = Convert.ToInt32(textBox1.Text); switch (ind) { case 0: sort1(x, n); //сортировка массива по возрастанию string y = PrintL(x, n); //вызов функции вывода результ. массива listBox2.Items.Add(y); break; case 1: sort2(x, n); //сортировка массива по убыв. y = PrintL(x, n); //вызов функции вывода результ. массива listBox2.Items.Add(y); break; case 2: mass_udal(x,n);//вызов функции удаления отриц. эл-тов break; } } private void button1_Click_1(object sender, EventArgs e) { Close(); } } }

Рис. 1.7-2

 

5. Выполнения приложения и получение результатов

Результаты работы программы представлены на рис. 1.7-3 и рис. 1.7-1.

Рис. 1.7-3

 

Рис. 1.7-4

 

6. Доказательство правильности работы программ

 

1.7.6. Контрольные вопросы по теме.

«Программирование алгоритмов формирования и обработки одномерных массивов»

 

 

1. Какие структуры данных известны?

2. Какую информацию должен включать оператор объявления массива?

3. Что такое массив?

4. Верно ли, что все элементы массива должны быть одного типа?

5. В чем преимущество объединения отдельных элементов в массив?

6. Каковы правила объявления массива?

7. Что такое индекс массива?

8. Что такое размер массива и размерность массива?

9. Совпадает ли размерность массива с количеством элементов в нем?

10. Может ли массив содержать один элемент?

11. Может ли массив совсем не содержать элементов?

12. Что произойдет, если индекс массива выйдет за допустимые пределы?

13. Каким образом различаются два элемента массива, имеющие одинаковые значения?

14. В каком случае можно сказать, что два массива равны?

15. Каким образом можно поменять местами значения двух массивов?

16. Может ли одномерный массив иметь больше одного индекса?

17. Можно ли в качестве индекса одномерного массива использовать выражение?

18. Почему одномерный массив иногда называют списком или вектором?

19. Приведите пример массива целых чисел, массива вещественных чисел, массива строк.

20. Какими способами инициализируется массив?

21. Как изменить размер массива, сохранив имеющиеся в нём значения?

22. Как определить размер массива в ходе выполнения программы?

23. Чем отличаются списки ListBox и ComboBox?

24. Как настраиваются свойства списков ListBox?

25. Как настраиваются свойства списков ComboBox?

26. Как добавить, изменить и удалить элемент списка?

27. Как определить элемент, выбранный пользователем?

28. Каким образом массив передается в процедуру?

29. Какие базовые алгоритмы обработки одномерных массивов известны?

30. Какие методы сортировки массивов известны?

31. В чем суть метода сортировки элементов массива выбором?

32. В чем суть метода сортировки элементов массива пузырьком?

33. Какие методы класса Array известны?

 

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-04-29 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: