
- •Міністерство освіти і науки, молоді та спорту україни Національний університет “Львівська політехніка” Кафедра програмного забезпечення
- •Інструкція
- •1. Правила оформлення та оцінювання роботи
- •Представлення множин числами (бітові маски)
- •3. Пошук наближених коренів системи нелінійних рівнянь
- •4. Деякі відомості з лінійної алгебри
- •5. Пошук перестановок послідовності символів
- •6. Програма з графічним інтерфейсом
- •Варіанти контрольної роботи
6. Програма з графічним інтерфейсом
Створенню застосування Windows Forms Application, розміщенню компонентів (текстових вікон, кнопок, прапорців) на формі та засобам задавання обробників подій присвячена лабораторна № 2 з дисципліни «Основи програмування». Побудова графічного інтерфейсу програм, що реалізують завдання контрольної роботи полягає в тому, що дані зчитуються з компонентів (типово з текстових полів) і результат обчислень теж відображається у текстових полях. Весь основний код може бути оформлений як обробник певної події, наприклад, події натиснення на кнопку (можна розробити консольне застосування і його код перенести згодом у код методу button1_Click застосування Windows Forms з тією різницею, що дані тут зчитуються без застосування cin та cout).
Основною задачею при переході від консольних застосувань до Windows Forms є перетворення типів даних – дані, які користувач записує у текстові поля, потрібно звести до типу int або double, і навпаки – результат, що є цілого або дійсного типу, необхідно перетворити в рядок для відображення його у текстовому полі.
Для цього застосовуємо клас Convert, що містить наступні потрібні нам методи:
ToString() – перетворює значення довільного числового типу у String.
ToDouble() – перетворює рядок у число типу double.
ToSingle() – перетворює рядок у число типу float.
ToInt32() – перетворює рядок у число типу int.
Приклад. На формі є два текстові поля та кнопка. У поле, помічене словом Number, користувач вводить ціле число. При натисненні кнопки “Double” рядок, записаний у верхнє поле, перетворюється у ціле число, множиться на 2, знову перетворюється у рядок і заноситься в текстове поле, помічене словом “Result”. Код-обробник події натиснення на кнопку:
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
int n;
n = Convert::ToInt32(textBox1->Text);
n = n*2;
textBox2->Text = n.ToString();
}
Результат показаний на рис. 6.
Рис. 6 Перетворення рядка в число і числа в рядок
Варіанти контрольної роботи
Варіант 1
1. Знайти трицифрове число, квадрат якого дорівнює 5-ому степеню суми чисел, визначених його цифрами. З цифр знайденого числа утворити множину А.
2. За допомогою правила Крамера розв’язати СЛАР:
З одержаних розв’язків сформувати множину В.
3. Знайти перетин множин А та В.
4. З клавіатури задається текстовий рядок, що являє собою математичний вираз. Написати програму, яка знаходить у цьому виразі тригонометричні функції і представляє їхні аргументи в радіанах, якщо вони задані цілими числами.
Варіант 2
1. Знайти всі прості числа виду nn + 1, менші за 1019. З цих чисел сформувати множину А.
2. Використовуючи обернену матрицю, розв’язати СЛАР:
З одержаних розв’язків сформувати множину В.
3. Знайти різницю множин А та В.
4. З клавіатури задається текст. Написати програму, яка вилучає з цього тексту зайві пробільні символи (слова мають розділятися лише одним пробілом).
Варіант 3
1. Знайти пари цілих чисел x та y від 1 до 60, для яких (x2+y2)/49 є цілим числом. Зі знайдених чисел сформувати множину А.
2. Використовуючи алгоритм Гауса, розв’язати СЛАР:
З одержаних розв’язків сформувати множину В.
3. Знайти різницю множин В та А.
4. З клавіатури задається текст. Написати програму, яка перевіряє, чи заданий текст відповідає синтаксису одного з циклів у мові С++.
Варіант 4
1. Цифри всіх цілих чисел від 1 до 10, записаних підряд, утворюють число. Викреслити з цього числа 5 цифр так, щоб число, утворене залишеними цифрами, було найменшим. З викреслених цифр утворити множину А.
2.
Знайти алгебраїчні доповнення матриці
та утворити з них множину В.
3. Знайти об’єднання множин А та В.
4. Дано 10 тестових питань з С++ (варіантів відповідей 4, правильних з них може бути від 0 до 4). Представити цю інформацію у зручному для програмного опрацювання вигляді. Написати програму-тест, яка приймає відповіді користувача та підраховує кількість набраних ним балів. Логіку оцінювання продумати самостійно, з міркувань якнайменшої можливості впливу вгадування на позитивну оцінку.
Варіант 5
1. Знайти всі натуральні числа k<50 такі, що вираз 2*36n + k*23n+1 – 1 при всіх n (n<5) ділиться на 7. Сформувати зі знайдених чисел множину А.
2. З клавіатури задається матриця 4*4, що містить елементи від 0 до 5. Обчислити попарні скалярні добутки її стовпців і з них сформувати множину В.
3. Вилучити з множини А її мінімальний елемент, а з множини В – максимальний.
4. З клавіатури задається текст. Написати програму, яка перевіряє, чи заданий текст є функцією С++. Перевірку зробити за такими ознаками: функція має тип повернення, ім’я, що відповідає вимогам, круглі дужки з параметрами, фігурні дужки і оператор return, якщо тип повернення не void. Тіло функції може бути довільним, зокрема пустим.
Варіант 6
1. Для параболи на проміжку [0,1] знайти значення похідної у десяти рівновіддалених точках. Із заокруглених знайдених значень сформувати множину А.
2.
Знайти всі мінори матриці
і сформувати з них множину В.
3. Видалити з множини А максимальний елемент множини В.
4. З клавіатури задається послідовність символів. Написати програму, яка виводить на екран всі можливі перестановки введених символів, що є приголосними.
Варіант 7
1.
Порахувати значення виразу
.
З перших 6 цифр після крапки сформувати
множину А, що не містить повторених
елементів.
2. З клавіатури задається матриця розміром 5*7. Всі елементи цієї матриці, що відрізняються від середнього значення всіх елементів більше ніж на 10%, замінити нулями. Сформувати множину В з ненульових елементів матриці.
3. Додати до множини А елемент множини В, найближчий до середнього арифметичного її елементів.
4. З клавіатури задається текст. Написати програму, яка перевіряє, чи заданий текст є записом дійсного числа.
Варіант 8
1. Знайти всі пари простих чисел p і q (обидва числа не перевищують 100), що задовольняють рівність p2 – 2q2 = 1. Зі знайдених чисел сформувати множину А.
2. З клавіатури задається матриця розміром 4*4 та вектор розміром 4*1. Знайти добуток матриці та вектора і з елементів результуючого масиву сформувати множину В.
3. Додати до множини А мінімальний і максимальний елемент множини В.
4. З клавіатури задається текст. Написати програму, яка перевіряє, чи заданий текст може бути описом структури С++.
Варіант 9
1. Не застосовуючи вбудованих функцій, знайти корінь довільного степеня з довільного числа, введеного з клавіатури. З чотирьох перших цифр дробової частини знайденого числа сформувати множину А.
2. З клавіатури задаються дві квадратні матриці однакового розміру. Знайти добуток цих матриць, суму елементів результату по рядках і з елементів результуючого вектора сформувати множину В.
3. Видалити з множини А мінімальний елемент множини В.
4. З клавіатури задається послідовність символів. Написати програму, яка виводить на екран всі можливі перестановки введених символів.
Варіант 10
1. З клавіатури вводяться коефіцієнти, що визначають параболу та пряму. Знайти координати точок їх перетину та сформувати з них множину А.
2. Знайти головні мінори введеної з клавіатури матриці цілих чисел від -10 до 10 розміром 5*5 і сформувати з них множину В.
3. Видалити з множини В максимальний елемент множини А.
4. З клавіатури задається послідовність символів. Написати програму, яка виводить на екран всі можливі перестановки введених символів, що не є цифрами.
Варіант 11
1. З клавіатури вводиться послідовність натуральних чисел. Знайти їхній найбільший спільний дільник. Зі знайденого числа та чотирьох найближчих до нього натуральних чисел сформувати множину А.
2. З клавіатури задаються координати 6 векторів у просторі. Знайти їхні попарні векторні добутки і сформувати з координат цих векторних добутків множину В.
3. Видалити з множини В мінімальний елемент множини А.
4. З клавіатури задається послідовність символів. Написати програму, яка виводить на екран всі можливі перестановки введених символів, що не є великими латинськими літерами.
Варіант 12
1. З клавіатури вводиться радіус кола з центром у початку координат. Знайти координати точок перетину кола із графіком гіперболи та сформувати з них множину А.
2. Програмно визначити кількість лінійно незалежних рівнянь у системі
і з коефіцієнтів лінійно незалежних рівнянь сформувати множину В.
3. Знайти перетин доповнення до множини А з множиною В.
4. З клавіатури задається послідовність символів. Написати програму, яка перевіряє, чи ця послідовність є коректним записом часу (в якості роздільника може використовуватися двокрапка чи крапка).
Варіант 13
1. З клавіатури вводяться коефіцієнти, що визначають параболу. Знайти координати точок її перетину з експонентою та сформувати з них множину А.
2. З клавіатури задається матриця розміром 5*5. Знайти всі її мінори 3-го порядку та сформувати з них множину В.
3. Введене з клавіатури число вилучити з множини А, якщо воно є елементом і множини А, і множини В.
4. З клавіатури вводиться текст. Написати програму для підрахунку кількості «смайликів». Під «смайликом» розуміємо послідовність символів, що відповідає наступним вимогам:
Перший символ є «:» або «;»
Далі слідує довільна кількість (зокрема і нуль) символів «-»
Закінчується послідовність одним чи більше символом (,),[,]
Жодні інші символи не допускаються.
Приклади: :), ;-----------[[[[[[[
Варіант 14
1. З клавіатури вводиться радіус кола з центром у початку координат. Знайти координати точок перетину кола із синусоїдою на проміжку від 0 до π та сформувати з них множину А.
2. З клавіатури задаються дві матриці розміром 5*5. Знайти детермінант їхньої суми, а також найменші та найбільші елементи цих матриць. Зі знайдених значень сформувати множину В.
3. Введене з клавіатури число вилучити з множини А, якщо воно є елементом множини А, але не є елементом множини В.
4. З клавіатури задається послідовність символів. Написати програму, яка шукає в цьому тексті номери мобільних телефонів і виводить їх на екран.
Варіант 15
1. З клавіатури вводяться коефіцієнти, що визначають дві параболи. Знайти координати точок їх перетину та сформувати з них множину А.
2. З клавіатури вводяться три квадратні матриці, розмір яких не перевищує N. Знайти перманент кожної з матриць (перманент обчислюється, як детермінант, однак без чергування знаків). Зі знайдених значень сформувати множину В.
3. Утворити множину С з найменших елементів множин А та В.
4. З клавіатури задається послідовність символів. Написати програму, яка виводить на екран всі можливі комбінації з двох символів з множини заданих.
Варіант 16
1. З клавіатури задається натуральне число R. Знайти цілочисельні ординати точок, що потрапляють всередину сфери з радіусом R.
2. З клавіатури задається квадратна матриця розміром, що не перевищує N. Знайти детермінант цієї матриці. З абсолютного значення залишку від ділення заокругленого знайденого числа на 3 і найближчих сусідніх цілих чисел сформувати матрицю В.
3. Перевірити, чи введене з клавіатури число належить різниці множин А і В.
4. З клавіатури задається текстовий рядок, що являє собою коректний арифметичний вираз і може містити арифметичні оператори (+,–, *, /), круглі дужки та цифри. Написати програму, яка обчислює значення виразу.
Варіант 17
1. З клавіатури вводяться коефіцієнти, що визначають параболу. Знайти координати точок її перетину з синусоїдою та сформувати з них множину А.
2. З клавіатури задається матриця розміром 5*5. Знайти всі її мінори 2-го порядку та сформувати з них множину В.
3. Утворити множину С з найбільших елементів множин А та В.
4. З клавіатури задається послідовність символів, що формує вираз типу (a + b + c + … +x)^2. Написати програму, яка представляє цей вираз у вигляді суми.
Варіант 18
1. З клавіатури вводиться радіус кола з центром у початку координат. Знайти координати точок перетину кола з експонентою і сформувати з них множину А.
2. З клавіатури задаються дві матриці розміром 5*5. Знайти детермінант їхнього добутку, а також всі елементи другої матриці, більші за середнє значення першої матриці. Зі знайдених значень сформувати множину В.
3. Знайти доповнення до множини А.
4. З клавіатури задають послідовність символів. Написати програму для пошуку в ній дати поточного року (датою вважаємо запис, де першим вказане число, тоді – місяць і рік (4 чи 2 цифри), а роздільниками є символи «/», «.» або «-»).
Варіант 19
1. З клавіатури вводиться радіуси та координати центрів двох кіл. Знайти координати точок перетину цих кіл і сформувати з них множину А.
2. З клавіатури задається матриця розміром 5*5. Знайти її ранг і середні значення по стовпцях. Зі знайдених заокруглених значень утворити множину В.
3. Знайти доповнення до множини В.
4. З клавіатури задається послідовність символів. Написати програму, яка перевіряє, чи ця послідовність є коректним записом дати (датою вважаємо запис, де першим вказане число, після – місяць, а тоді рік (4 чи 2 цифри), причому роздільниками можуть бути символи «/», «.» і «-»).
Варіант 20
1. З клавіатури задають радіус кола з центром в точці (0,0). Знайти координати точок перетину кола з кубічною параболою та сформувати з них множину А.
2. З клавіатури задається матриця розміром 5*5. Програмно сформувати для неї верхню трикутну матрицю, з елементів якої утворити множину В.
3. Знайти перетин доповнення до множини В з множиною А.
4. З клавіатури задається послідовність символів. Написати програму, що всі числа у цій послідовності заміняє їхнім словесним записом, якщо остання цифра – не 1 (наприклад, 42 записує як сорок два, але 41 залишає без змін).
Варіант 21
1. З клавіатури вводиться радіус кола з центром у початку координат. Знайти координати точок перетину кола із графіком функції у = ln(x) і сформувати з них множину А.
2. З клавіатури задаються 6 наборів коефіцієнтів, що визначають прямі у просторі. Сформувати множину В з абсцис всіх точок перетину цих прямих.
3. Знайти різницю доповнення до множини А і множини В.
4. З клавіатури задається послідовність символів. Написати програму, яка заміняє числове представлення часу в цій послідовності англійськими словами (наприклад, замість 12.05 записує five past twelve).
Варіант 22
1. З клавіатури вводиться радіус і координати центра кола. Знайти координати точок перетину кола із графіком функції у = е-х і сформувати з них множину А.
2. З клавіатури задаються координати 4 векторів у просторі. Вивести на екран кути між усіма парами векторів у градусах і сформувати множину В з тих із них, що потрапляють в діапазон від 1 до 30 градусів.
3. Знайти перетин доповнення до множини В і множини А.
4. З клавіатури задається послідовність символів. Написати програму, яка заміняє натуральні числа в цій послідовності римськими цифрами.
Варіант 23
1. Знайти дійсний корінь кубічного рівняння, заданого своїми коефіцієнтами.
2. З клавіатури задаються координати 3 векторів на площині. Знайти координати перпендикулярних їм векторів і сформувати з них множину В.
3. Перевірити, чи введене з клавіатури число належить множині А.
4. З клавіатури задають послідовність символів. Написати програму для пошуку в цій послідовності львівських поштових індексів (79ххх) та виводу їх на екран.
Варіант 24
1. З клавіатури задаються коефіцієнти, що визначають пряму на площині. Знайти координати точок перетину цієї прямої з гіперболою та сформувати з них множину А.
2. З клавіатури задається послідовність координат точок на площині. Визначити, чи багатокутник, який утворюється шляхом послідовного з’єднання цих точок відрізками, є опуклим. Якщо так, визначити його площу.
3. Перевірити, чи введене з клавіатури число належить множині В.
4. З клавіатури задається послідовність символів, що є коректним алгебраїчним виразом. Написати програму для зведення подібних доданків у цьому виразі за заданою змінною.
Варіант 25
1. З клавіатури задається число N. Знайти цілочисельні абсциси точок (x, y, z), для яких значення функції z = x2 + y2 не перевищує N.
2. З клавіатури вводяться координати точок, що задають відрізки на площині. Визначити точки перетину цих відрізків і утворити з їхніх абсцис множину В.
3. Перевірити, чи введене з клавіатури число належить множинам А і В одночасно.
4. З клавіатури задається текстовий рядок, що являє собою арифметичний вираз і може складатися з арифметичних операторів (+,–, *, /), круглих дужок і цифр. Написати програму, яка перевіряє коректність виразу. Вираз вважатимемо коректним, якщо в ньому правильно розміщені дужки, бінарні оператори розміщені між операндами, а числа записані лише за допомогою цифр.