Задача темы: изучить методику и получить навыки в разработке функциональности приложений, использующих сортировки текстовых данных.
Разработка: Приложение "Способы сортировки" для
Состав выполняемых функций:
Наращивание функциональности не предусматривается.
Защита данных предусматривается только от неквалифицированных действий пользователей.
В качестве входных данных используется набор переменных. Выходные данные программы – графическое отображение результатов в виде двух листбоксов в форме для SmartDevice.
Шаг 1. Разработка графического интерфейса
Используется только одна форма Form1 с одним текстовым полем, двумя
листбоксами и тремя кнопками "Добавить", "Пузырек"
и "Квик". Примерный дизайн приведен на рис.6.1.
(рис 6.1) Шаг 2. Добавление системных библиотек
using System; using System.Drawing; using System.Collections; using System.Windows.Forms; using System.Data; // добавляем библиотеку сомпонентов using System.ComponentModel;
Шаг 3. Добавляем массив переменных в состав public class Form1 :
System.Windows.Forms.Form
int[] numbers = new int[16];
Шаг 4. Создаем процедуру ввода данных в листбоксы
Для кнопки "Добавить" пишем:
private void button1_Click(object sender, System.EventArgs e)
{ // Проверка - если в текстовом поле не цифра
if (!char.IsDigit(textBox1.Text[0])) {
textBox1.Text = "Введите цифру";
MessageBox.Show("Введите цифру!","Ошибка");
return; // влзврат в вызывающую программу}
listBox1.Items.Add(textBox1.Text); // добавляем строку в листбокс 1
listBox2.Items.Add(textBox1.Text); // добавляем строку в листбокс 2
}
Шаг 5. Создаем процедуру пузырьковой сортировки
Для кнопки "Пузырек" пишем:
private void button2_Click(object sender, System.EventArgs e) {
bool flipped = false; // определяем булеву переменную со значением false
for(int i = listBox1.Items.Count - 1; i <= 0; i--) {// вложенный цикл
for(int j = 0; j < i; j++) {/* преобразуем цифры в числа Int32 и
задаем условие проверки значений по строкам */
if(Convert.ToInt32(listBox1.Items[j]) <
Convert.ToInt32(listBox1.Items[j + 1]) )
{
Object temp = listBox1.Items[j]; // определяем массив
listBox1.Items[j] = listBox1.Items[j + 1];
listBox1.Items[j + 1] = temp;
flipped = true; // переопределяем булеву переменную
}
}
if(!flipped) return;
}
}
Шаг 6. Создаем функцию сортировки "Квик"
void QuickSort(ref int[] a, int lo0, int hi0)
{
int lo = lo0;
int hi = hi0;
if(lo <= hi) {return;}
else if( lo = = hi - 1 )
{// если необходимо, меняем два соседних элемента местами
if (a[lo] < a[hi]) {
int T = a[lo];
a[lo] = a[hi];
a[hi] = T;
}
return;
}
int pivot = a[(lo + hi) / 2]; // меняем местами средний
a[(lo + hi) / 2] = a[hi]; // и верхний элементы
a[hi] = pivot;
while( lo < hi ) {
while (a[lo] <= pivot lo < hi) // слева направо
{// ищем элемент,
lo++; // больший среднего
}
while (pivot <= a[hi] lo < hi ) // справа налево
{// ищем элемент,
hi--; // меньший среднего
}
if( lo < hi ) // меняем найденные
{// элементы местами
int T = a[lo];
a[lo] = a[hi];
a[hi] = T;
}
}
a[hi0] = a[hi]; // помещаем средний элемент в центр списка
a[hi] = pivot;
QuickSort(ref a, lo0, lo-1); // рекурсивно вызываем функцию
QuickSort(ref a, hi+1, hi0);
}
Шаг 7. Создаем процедуру вызова функции сортировки "Квик"
Для кнопки "Квик" пишем:
int[] intItems = new int[listBox2.Items.Count]; /* задаем массив из значений, выбираемых в листбоксе 3 и запускаем цикл перебора значений в массиве */ for(int i = 0; i < listBox2.Items.Count; i++) / intItems[i] = Convert.ToInt32(listBox2.Items[i]); // вызываем функцию сортировки QuickSort(ref intItems, 0, listBox2.Items.Count - 1); for(int i = 0; i < listBox2.Items.Count; i++) // переписываем массив в отсортировонном виде listBox2.Items[i] = intItems[i]; }
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.