- •Лабораторна робота № 1 Операційна система Windows, робота з файлами і каталогами
- •1. Зміст домашньої підготовки
- •Програма Explorer для роботи з файлами і каталогами
- •2. Порядок виконання роботи
- •4. Контрольні запитання
- •Лабораторна робота № 2 Редагування тексту, таблиць і формул в ms Word
- •1. Зміст домашньої підготовки
- •2. Порядок виконання роботи
- •Лабораторна робота № 3 Робота з електронними таблицями в ms Excel
- •1. Зміст домашньої підготовки
- •2. Порядок виконання роботи
- •4. Контрольні запитання
- •4. Контрольні запитання
- •Лабораторна робота № 4 Математичні розрахунки і побудова графіків в Mathcad
- •1. Зміст домашньої підготовки
- •2. Порядок виконання роботи
- •If (умова, вираз1, вираз2)
- •4. Контрольні запитання
- •Лабораторна робота № 5 Математичні розрахунки і побудова графіків функцій в Maple
- •1. Зміст домашньої підготовки
- •У зошит для звітів запишіть тему і мету лабораторної роботи.
- •2. Порядок виконання роботи
- •5.1. Прості обчислення
- •5.2. Приклади застосування функцій
- •4. Контрольні запитання
- •Лабораторна робота № 6 Основи роботи в MatLab та моделювання електричних кіл в Simulink
- •1. Зміст домашньої підготовки
- •У зошит для звітів запишіть тему і мету лабораторної роботи.
- •2. Порядок виконання роботи
- •6.1. Загальні відомості
- •6.2. Операції з масивами
- •6.3. Моделювання в Simulink
- •4. Контрольні запитання
- •Лабораторна робота № 7 Створення векторних зображень в ms Visio
- •1. Зміст домашньої підготовки
- •У зошит для звітів запишіть тему і мету лабораторної роботи.
- •2. Порядок виконання роботи
- •7.1 Структурна схема
- •7.2 Граф
- •7.3 Алгоритм
- •4. Контрольні запитання
- •Лабораторна робота № 8 Лінійний алгоритм
- •1. Варіанти індивідуальних завдань
- •2. Методичні поради до виконання роботи
- •Консольний варіант програми
- •Віконний варіант програми
- •4. Контрольні запитання
- •Лабораторна робота № 9 Розгалужений алгоритм
- •1. Варіанти індивідуальних завдань
- •2. Методичні вказівки до виконання роботи
- •4. Контрольні запитання
- •Лабораторна робота № 10 Циклічний алгоритм в задачах дослідження функції
- •1. Варіанти індивідуальних завдань
- •2. Методичні вказівки виконання роботи
- •4. Контрольні запитання
- •Лабораторна робота № 11 Сортування одновимірного масиву
- •1. Постановка задачі
- •4. Методичні вказівки виконання роботи
- •4. Контрольні запитання
- •Література Основна
- •Додаткова
4. Методичні вказівки виконання роботи
Розглянемо деякі питання написання програми на прикладі програми, яка в - елементному масиві випадкових цілих чисел з діапазону [k,m) переносить всі мінімальні і за ними всі максимальні числа на початок масиву, після чого всі останні числа впорядковує за зростанням або спаданням за вибором користувача.
Вікно програми показане на рис. 8.1, з якого видно, що для введення величин , , застосовані компоненти TextBox. Вибір напрямку упорядкування забезпечують дві радіо-кнопки. Три наступні компонента TextBox заабезпечують виведення первинного масиву, масиву після перестановки екстремальних елементів на початок масиву і виведення обробленого масиву. Створення масиву і всі операції з масивом виконуються після натиснення керуючої кнопки з надписом "Обчислити".
Рис. 8.1. Вікно програми
Величини a, b, n, qExt і масив V об’явимо полями класу Form1: int a, b, n, qExt; int[] V; Змінна qExt призначена для зберігання загальної кількості мінімальних і максимальних (тобто екстремальних) чисел масиву V. Виведення початкових (за замовченням) значень величин a, b, n зробимо в методі-конструкторі форми:
public Form1()
{
InitializeComponent();
numericUpDown1.Value = 1;
numericUpDown2.Value = 6;
numericUpDown3.Value = 50;
}
Керуючий метод-процедура цієї програми button1_Click викликає метод введення даних InpData, створює n-елементний масив V, методом FillMas заповнює масив цілими випадковими числами, методом Out1Mas виводить початковий масив (до обробки) на екран, виконує перестановку екстремальних чисел методом Perestanovka, методом Out2Mas виводить на екран масив з переставленими елементами, методом SortMas закінчує обробку масиву упорядкуванням (n - qExt) останніх чисел і виведить оброблений масив на екран методом Out3Mas. Текст процедури button1_Click такий:
private void button1_Click(object sender, EventArgs e)
{
InpData(out k, out m, out n);
int[] V = new int[n];
FillMas(k, m, n, V);
Out1Mas(V);
Perestanovka(out qExt, V);
Out2Mas(V);
SortMas(qExt, V);
Out3Mas(V);
}
Тексти всіх згаданих методів приведені нижче:
private void InpData(out int k, out int m, out int n)
{
k = Convert.ToInt32(numericUpDown1.Value);
m = Convert.ToInt32(numericUpDown2.Value);
n = Convert.ToInt32(numericUpDown3.Value);
}
private void FillMas(int k, int m, int n, int[] V)
{
Random rnd = new Random();
for (int i = 0; i < n; i++)
V[i] = rnd.Next(k, m);
}
private void Out1Mas(int[] V)
{
textBox4.Clear();
for (int i = 0; i < n; i++)
textBox4.AppendText
(string.Format(" {0} {1} \n", i, V[i]));
}
private void Perestanovka(out int qExt, int[] V )
{
int min, max, buf;
// значення min, max
min = V[0]; max = V[0];
foreach (int x in V)
{
if (x < min) min = x;
if (x > max) max = x;
}
//кількість qext екстремумів min, max і їх перестановка
qExt = 0;
for (int i = 0; i <= V.Length - 1; i++)
{ //перестановка мінімальних елементів
if (V[i] == min)
{
qExt += 1;
buf = V[qExt - 1];
V[qExt - 1] = V[i];
V[i] = buf;
}
}
for (int i = qExt; i <= V.Length - 1; i++)
{ //перестановка максимальних елементів
if (V[i] == max)
{
qExt += 1;
buf = V[qExt - 1];
V[qExt - 1] = V[i];
V[i] = buf;
}
}
}
private void Out2Mas(int[] V)
{
textBox5.Clear();
for (int i = 0; i < n; i++)
textBox5.AppendText
(string.Format(" {0} {1} \n", i, V[i]));
}
private void SortMas(int qExt, int[] V)
{
int min, max, index, buf;
//упорядкування за зростанням
if (radioButton1.Checked)
{
for (int i = qExt; i <= V.Length - 2; i++)
{
min = V[i];
index = i;
for (int j = i; j <= V.Length - 1; j++)
{
if (V[j] < min)
{
min = V[j];
index = j;
}
}
buf = V[i];
V[i] = V[index];
V[index] = buf;
}
}
//упорядкування за спаданням
if (radioButton2.Checked)
{
for (int i = qExt; i <= V.Length - 2; i++)
{
max = V[i];
index = i;
for (int j = i; j <= V.Length - 1; j++)
{
if (V[j] > max)
{
max = V[j];
index = j;
}
}
buf = V[i];
V[i] = V[index];
V[index] = buf;
}
}
}
private void Out3Mas(int[] V)
{
textBox6.Clear();
for (int i = 0; i < n; i++)
textBox6.AppendText
(string.Format(" {0} {1} \n", i, V[i]));
}
5. Зміст звіту
Номер, тема і мета лабораторної роботи.
Стислі теоретичні відомості.
Постановка задачі.
Текст програми відповідно до завдання з коментарями та результатами.
Висновки.
