C#

Windows Forms

Лінійні програми

Створення віконного додатку до програм лінійної структури. Добірка завдань для відпрацювання навичок

  1. Файл, Створити, Проект
  2. На початковій сторінці: Створити проект
  3. У вікні Створення проекта: Visual C#, Додаток Windows Forms, вводимо ім'я створюваного проекту, ОК.
  4.  Після створення проекту працюємо у вікні  проекту.

 

Компоненти для форми обираємо на Панелі елементів, а властивості для них у вікні Властивості.

  1. Із панелі елементів перетягуємо у форму елементи управління, необхідні для конкретного завдання проекту
  2. Робимо його активним і у вікні Властивості вказуємо потрібні нам властивоcті елемента управління
  3. Обираємо елемент управління (наприклад, кнопку)
  4. Двічі клацаємо кнопку, щоб додати оброблювач подій Click. Відкриється редактор коду, при цьому положення курсора виявиться всередині обробника подій.
  5. Наприклад, додаємо: MessageBox.Show ("Тут пишемо коментар до завдання");
  6. Тиснемо клавішу F5 для запуску додатку. Коли додаток запущено, натиснути кнопку і перевірити, чи відображається вказана фраза
  7. Закриваємо форму Windows Forms, щоб повернутися в Visual Studio.

Є кілька способів встановити компонент на форму.

  1. Перетягніть компонент на форму, утримуючи ліву кнопку миші. При цьому компонент буде створений в тій точці, де ви його кинули, а розміри будуть установлені за замовчуванням 
  2. Двічі клацнути по кнопці компонент. При цьому компонент буде створений в довільній точці, а розміри будуть встановлені за замовчуванням. 
  3. Клацнути на потрібному компоненті, щоб виділити його. Клацнути на формі, щоб встановити компонент. При цьому компонент буде створено в тій точці, де ви клацнули, а розміри будуть встановлені за замовчуванням. 
  4. Клацнути на потрібному компоненті, щоб виділити його. Натиснути ліву кнопку миші на формі і протягнути курсор до потрібних розмірів на формі, щоб установити компонент. При цьому компонент буде створено в тій точці, де ви клацнули, а розміри будуть встановлені відповідно до змальованих на формі прямокутником. 

Деякі корисні класи з простору імен System.Windows.Forms
Приклади класів елементів управління, які можна розміщувати на формах.

  • Label (Мітка)
  • Button (Кнопка)
  • ListBox (Список)
  • CheckBox (Прапорець)
  • RadioButton (Перемикач)
  • MessageBox (Вікно повідомлень)
  • Menu (Меню)
  • TabControl (Управління вкладками)
  • Toolbar (Панель інструментів)
  • TreeView (Дерево)
  • DataGrid (Сітка даних)
  • PictureBox (Зображення)

Властивості елементів управління впливають на візуальне відображення форми.

Основні властивості:

  • Name: встановлює ім'я форми - точніше ім'я класу, який успадковується від класу Form
  • BackColor: вказує на фоновий колір форми. Клацнувши на цю властивість, ми зможемо вибрати той колір, який нам підходить зі списку запропонованих кольорів або кольорової палітри
  • BackgroundImage: вказує на фонове зображення форми
  • BackgroundImageLayout: визначає, як зображення, задане у властивості BackgroundImage, буде розташовуватися на формі.
  • ControlBox: вказує, чи відображається меню форми. В даному випадку під меню розуміється меню самого верхнього рівня, де знаходяться іконка програми, заголовок форми, а також кнопки мінімізації форми і хрестик. Якщо ця властивість має значення false, то ми не побачимо ні іконку, ні хрестика, за допомогою якого зазвичай закривається форма
  • Cursor: визначає тип курсора, який використовується на формі
  • Enabled: якщо ця властивість має значення false, то вона не зможе отримувати введення від користувача, тобто ми не зможемо натиснути на кнопки, ввести текст в текстові поля і т.д.
  • Font: задає шрифт для всієї форми і всіх поміщених на неї елементів управління. Однак, задавши у елементів форми свій шрифт, ми можемо тим самим перевизначити його
  • ForeColor: колір шрифту на формі
  • FormBorderStyle: вказує, як буде відображатися межа форми і рядок заголовка. Встановлюючи цю властивість в None можна створювати зовнішній вигляд програми довільної форми
  • HelpButton: вказує, чи відображається кнопка довідки форми
  • Icon: задає іконку форми
  • Location: визначає положення по відношенню до верхнього лівого кута екрана, якщо для властивості StartPosition встановлено значення Manual
  • MaximizeBox: вказує, чи буде доступна кнопка максимізації вікна в заголовку форми
  • MinimizeBox: вказує, чи буде доступна кнопка мінімізації вікна
  • MaximumSize: задає максимальний розмір форми
  • MinimumSize: задає мінімальний розмір форми
  • Opacity: задає прозорість форми
  • Size: визначає початковий розмір форми
  • StartPosition: вказує на початкову позицію, з якою форма з'являється на екрані
  • Text: визначає заголовок форми
  • TopMost: якщо ця властивість має значення true, то форма завжди буде знаходитися поверх інших вікон
  • Visible: чи видима форма, якщо ми хочемо приховати форму від користувача, то можемо поставити даній властивості значення false
  • WindowState: вказує, в якому стані форма буде знаходитися при запуску: в нормальному, максимізованому або мінімізованому.

Панель вкладок TabControl 

TabControl

Елемент TabControl дозволяє створити елемент управління з декількома вкладками. І кожна вкладка буде зберігати деякий набір інших елементів управління, як кнопки, текстові поля і ін. Кожна вкладка представлена класом TabPage.

Щоб налаштувати вкладки елемента TabControl використовуємо властивість TabPages. При перенесенні елемента TabControl з панелі інструментів на форму за замовчуванням створюються дві вкладки - tabPage1 і tabPage2. Змінимо їх відображення за допомогою властивості TabPages. Нам відкриється вікно редагування / додавання і видалення вкладок:

  

Кожна вкладка представляє свого роду панель, на яку ми можемо додати інші елементи управління, а також заголовок, за допомогою якого ми можемо перемикатися по вкладках. Текст заголовка задається за допомогою властивості Text.

Тип даних - це основа програмування на мові Сі Шарп. Знання типів даних дозволять вам розуміти логіку програмування. Дуже багато помилок не тільки синтаксичних, а й логічних виходить через не знання елементарних понять в типах даних.

Типи даних у C#

Тренувальні вправи

1. Обчислити периметр і площу трикутника за відомими довжинами сторін. Зобразити малюнок трикутника у віконному додатку.

private void button1_Click(object sender, EventArgse)

{
double a, b, c, S, P;
a = double.Parse(textBox1.Text);
b = double.Parse(textBox2.Text);
c = double.Parse(textBox3.Text);
P=a+b+c;
S = Math.Sqrt(P / 2 * (P / 2 - a) * (P / 2 - b) * (P /2 - c));
label6.Text = P.ToString();
label7.Text = S.ToString();
}

2. Обчислити  об’єм і площу поверхні кулі за відомим радіусом. Зобразити малюнок кулі у віконному додатку.

private void button1_Click(object sender, EventArgse)

{

double r, S, V;

r = double.Parse(textBox1.Text);

V = r * r * r * Math.PI*4/3;

S = 4 * r * r * Math.PI;
label6.Text = V.ToString();
label7.Text = S.ToString();
}

3. Обчислити опір при послідовному і паралельному з’єднанні двох резисторів із відомими опорами. Зобразити малюнки послідовного і паралельного з’єднання двох резисторів у віконному додатку.

private void button1_Click(object sender, EventArgse)

{
double r1,r2,A1,A2;
r1 = double.Parse(textBox1.Text);
r2 = double.Parse(textBox2.Text);
A1 = r1+r2;
A2 =1 /( (1 / r1) + (1 / r2));
label6.Text = A1.ToString();
label7.Text = A2.ToString();

}

4. Задача про квадрат

private void
button1_MouseClick(object sender, MouseEventArgs e)

{
double a, p, s, ro, rv;

a = double.Parse(textBox1.Text);

p = 4 * a;

s = a * a;

ro = a * Math.Sqrt(2) / 2;

rv = a / 2;

label4.Text = p.ToString();
label6.Text = s.ToString();
label10.Text = ro.ToString();
label8.Text = rv.ToString();

}

5. Задача про рівносторонній трикутник

private void  button1_MouseClick(object sender, MouseEventArgs e)

{

double a, p, s, ro, rv;

a = double.Parse(textBox1.Text);

p = 3 * a;

s = a * a * Math.Sqrt(3) / 4;

ro =a * Math.Sqrt(3) / 2;

rv = ro / 2;

label4.Text = p.ToString();

label6.Text = s.ToString();

label10.Text = ro.ToString();

label8.Text = rv.ToString();
}

6. Задача про куб

private void  button1_MouseClick(object sender, MouseEventArgse)

{

double a, sp, v, dok, dvk;
a = double.Parse(textBox1.Text);
sp = 6 * a*a;
v = a * a*a;
dok =a * Math.Sqrt(3);
dvk = a;
label5.Text = sp.ToString();
label7.Text = v.ToString();
label9.Text = dok.ToString();
label11.Text = dvk.ToString();
}

7. Задача про курочку Рябу

private void button1_Click(object sender, EventArgs e)
        {
            int k, S;
            k = int.Parse(textBox1.Text);
            S = 5 + 10 * k;
            textBox2.Text = S.ToString();
        }

Вправа 45. Із тераріуму втекли x гадюк,  y кобр та z гюрз. Довжина кожної гадюки - 1 м, кожної кобри - 1 м 30 см, а гюрзи - 1 м 15 см. Скільки повних метрів отруйних змій утекло з тераріуму? Яку довжину вони складають у сантиметрах?

private void button1_Click(object sender, EventArgs e)
        {
            double ga, ko, gy, d, dcm;
            ga = double.Parse(textBox1.Text);
            ko = double.Parse(textBox2.Text);
            gy = double.Parse(textBox3.Text);
            dcm = ga*100 + ko*130 + gy*115;
            d = (dcm - dcm % 100) / 100;
            textBox4.Text = d.ToString();
            textBox5.Text = dcm.ToString();
        }

Вправа 46. У цариці Несміяни кругле обличчя, радіус якого дорівнює R. Визначте довжину сторони такого дзеркала квадратної форми, щоб коли Несміяна милується собою, її відображення поміщалося в дзеркалі.

Вправа 74. Підприємство поклало в банк на депозитний рахунок суму в S тисяч гривень під 40% річних. Яку суму зніме підприємство в кінці року?

Вправа 75. У класі - N учнів, з них - М - хлопці. Знайдіть співвідношення у відсотках кількості хлопців до кількості дівчат цього класу.

Завдання для тематичної атестації з теми 

Опрацювати матеріал веб-сторінки із прикладом роботи з двома формами.

Готуємо проект для  тематичної атестації (Продумайте алгоритм виконання подібного завдання з використанням кількох форм чи вкладок на одній формі)

Для виконання проекту скористатися компонентом TabControl

 Зразки вкладок форм для проекту подаються тут (решту вкладок оформити подібним чином). Вкладку "Довільний трикутник" оформіть за даним зразком та додайте 4 порожні форми до кожної вказаної умови задачі (Проект, Додати форму Windows, вказати форму C#, ОК, заповніть ці форми згідно потреб задач, зразок надається).

       

Підключення 2 форми (після натиснення кнопки запуску умови задачі 1: Обчислити площу трикутника за трьома даними сторонами):

Hide();
Form2 Умова1 = new Form2();
Умова1.ShowDialog(); 
Close();

Форму 2 з розв'язком задачі програмувати аналогічно попереднім вправам

Решта - аналогічно.

 

 

 

 

 

 

Завдання для практичної роботи та тематичної атестації.

Створити екранну форму до кожної задачі (на власний розсуд, проте так, щоб відображалася умова задачі та результати її виконання).

1. Обчислити y=(a+b-c)/(b+c), якщо а=5, b=7, с=4. 

2. Введено 2 числа. Перше з них подвоїти, а друге - зменшити на 10. Отримані значення вивести на екран

3. Програма зчитує двоцифрове число і виводить  кожну цифру окремо. (Розв'язок. Скористаємося операцією знаходження остачі від ділення на 10: n%10 - отримаємо отанню цифру, потім від даного числа віднімемо останню цифру та поділимо на 10 - отримаємо першу цифру). 

4. Яку найбільшу кількість точок із цілочисельними координатами на аркуші в клітинку можна накрити квадратом зі стороною N клітинок? (Підказка: накреслимо на папері в клітинку квадратики зі сторонами 1, 2, 3, ... клітинок; у першому випадку ми закриємо 4 точки, у другому – 9, у третьому – 16...; як бачимо, ми отримуємо числа, що є точними квадратами: 2^2, 3^2, 4^2...; тому для введеного числа А потрібно вивести квадрат наступного числа)

5. У зоопарку N кліток вишикувані в ряд. У зоопарку, крім інших тварин, живуть дві мавпочки, Слава та Юра. Слава та Юра завжди були великими друзями і сиділи в сусідніх клітках, але тепер вони посварились і більше не хочуть бачити один одного. Наглядач уже зібрався переселити їх у відповідності з їх бажанням, проте виникла проблема. Слава і Юра — дуже освічені мавпочки (кожна з них закінчила аж по вісім класів!), і вони неодмінно хочуть знати, скільки всього існує способів розселити їх так, щоб їх клітки не були сусідніми, і, звичайно, їх клітки повинні бути різними. Можна вважати, що всі N кліток доступні, інші мешканці зоопарку готові переїхати куди завгодно. Наглядач спробував було порахувати сам, але збився з рахунку біля бегемотів. І цілком очевидно, що без вашої допомоги йому не обійтись! Виведіть одно число — кількість способів поселити Славу та Юру в різні клітки так, щоб ці клітки не були сусідніми. 

Розв'язання Нехай Юра вибере першу клітку. Тоді Слава може вибрати будь-яку із решти N-2 не сусідніх кліток. Якщо ж Юра вибере другу – Славі залишається вибір із N-3 кліток і т.д. Маємо спадну послідовність послідовних натуральних чисел N-2, N-3, N-4, ..., 2, 1. Знайдемо її суму за відомою формулою: S=(N-2+1)/2*(n-2)=(N-2)*(N-1)/2. Оскільки Юра та Слава можуть обмінятися місцями, то кількість варіантів зростає в 2 рази. Тобто, S=(N-2)*(N-1).

6. Дано  два дійсні числа  а  і  Ь.  Знайти їх  суму,  різницю  і  добуток.
7. Визначити,  яку платню одержить  на  фірмі  сумісник  за  виконану роботу, якщо йому нараховано  § гривень,  а податок становить  20  %. 

Практична робота № 10 для 8 класу

Тема "Складання та виконання лінійних алгоритмів опрацювання величин у середовищі програмування С#.

Завдання 1. Тривалість рейсу

Завдання 2. Квартплата