ЛР 3 Операторы управления CSharp
.pdfКафедра спеціалізованих комп’ютерних систем
МЕТОДИЧНІ ВКАЗІВКИ
до виконання лабораторної роботи № 2
«Оператори управління C#.NET»
за курсом «Програмування»
(для студентів I курсу напрямку 6.050102 «Комп’ютерна інженерія» усіх форм навчання)
Рекомендовано на засіданні кафедри СКС
Протокол № __ від _________
Затверджено на засіданні методради ДонДТУ
Протокол № ___ від ________
Алчевськ
ДонДТУ
2012
ББК У.в6
Методичні вказівки до виконання лабораторної роботи № 2 «Оператори управління C#.NET» за курсом «Програмування» (для студ. I курсунапрямку 6.050102 «Комп’ютерна інженерія» усіх форм навчання) /Укл.: Є.Є. Бізянов, С.В. Гонтовий, А.Ю. Кривцов. - Алчевськ: ДонДТУ, 2012. – 25 с.
Розглянуто типи даних, змінні, константи і запис виражень у C#.NET. Наведено приклади виконання основних прийомів роботи, вимоги до звіту, сформульований ряд питань для самоперевірки.
Укладачі: |
Є.Є. Бізянов, доц., |
|
С.В. Гонтовий, доц. |
|
А.Ю.Кривцов, ас. |
Відповідальний редактор |
С.В. Гонтовий, доц. |
Відповідальний за випуск |
|
|
ЗМІСТ |
|
ЗМІСТ .......................................................................................................... |
|
3 |
1 УМОВНІ ОПЕРАТОРИ .......................................................................... |
4 |
|
1.1 |
Оператор if ............................................................................. |
4 |
1.2 |
Оператор switch ..................................................................... |
5 |
1.3 |
Оператор умови ?: ................................................................. |
7 |
1.4 |
Оператор безумовного переходу goto.................................. |
7 |
2 ОПЕРАТОРИ ЦИКЛІВ ........................................................................... |
8 |
|
2.1 |
Оператор for ........................................................................... |
9 |
2.2 |
Оператор while ..................................................................... |
11 |
2.3 |
Оператор do while ................................................................ |
11 |
2.4 |
Вкладені цикли .................................................................... |
12 |
2.5 |
Обчислення сум і добутків за допомогою циклів............. |
12 |
2.6 |
Оператори break та continue................................................ |
13 |
ЗАВДАННЯ ДО ЛАБОРАТОРНОЇ РОБОТИ ........................................ |
15 |
|
ВИМОГИ ДО ЗВІТУ ................................................................................ |
24 |
|
КОНТРОЛЬНІ ПИТАННЯ....................................................................... |
25 |
|
СПИСОК РЕКОМЕНДОВАНОЇ ЛІТЕРАТУРИ .................................... |
25 |
3
Мета роботи: вивчити синтаксис і типи даних, операції та оператори мови програмування C#.NET, навчитися складати програми з їх використанням.
1 УМОВНІ ОПЕРАТОРИ
Умовні оператори призначені для управління ходом виконання програми. Вони дозволяють вводити розгалуження в програмі, коли в залежності від заданої умови виконання програми виробляється по тій або іншій гілці. Іноді них називають операторами ухвалення рішення.
1.1 Оператор if
Умовний оператор if дозволяє робити обчислення, якщо виконується визначена умова.
Формат запису:
if (умова) оператор; [else оператор2;]
Цей запис можна розшифрувати так: якщо (if) умова істинна, то виконується оператор, інакше (else) виконується оператор2. Квадратні дужки вказують на необов'язковий елемент запису.
Особливості, які треба враховувати:
Умова повинна бути вкладена у круглі дужки;
Якщо потрібно виконати не один оператор, а декілька, використовуйте блок.
Приклади
if (x==0) y++; // Якщо x=0, то збільшуємо y
//на одиницю
if (y<=0 || x>2) // Якщо y менше або дорівнює 0
|
// або x більше 2, |
|
|
{ |
// то: |
|
|
y=x++; |
// 1. |
Привласнюємо |
у значення x |
x*=y; |
// 2. |
Збільшуємо x |
на одиницю |
} |
// 3. Множимо x на y й |
4
//привласнюємо результат
//операції змінній x
if |
(z>3 && a*4>=3.51) // Якщо z більш 3 й |
||
{ |
// a*4 більше або дорівнює 3.51, то: |
||
|
y += 20*x; z = y/4; // 1. |
y = y + 20x |
|
k |
= 21; |
// 2. |
z = y/4 |
} |
|
// 3. |
k = 21 |
else y = 2; |
// Інакше y = 2 |
В другому і третьому прикладах при дотриманні (істинності) умови виконується декілька операторів, тому ми застосували блок.
1.2 Оператор switch
Оператор switch (перемикач) робить зіставлення заданого значення (керуючої змінної) з безліччю констант (значень). Формат оператора:
switch (керуюча_змінна)
{
case Значення 1: оператори; break;
case Значення 2: оператори; break;
. . . . . . . .
case Значення n: оператори; break;
[default оператори;]
}
Керуюча_змінна може бути цілого типу або символом. Оператори break застосовуються для виходу з оператора
switch. Якщо значення, що перевіряється, не збігається з жодною з
5
констант, виконується варіант default (умовчання).
Приклад 1 int q;
. . .
switch (q)
{
case 0: x = 2.05*z – 3.6; y = 5*x;
break;
case 1: x = 3; y = 2; z = 1; break;
case 2: case 4:
x = 2*y – 6.7*z +1; y = 5*y – x;
z = x; break;
default: x++; y/= z; z = x+1;
}
У даному прикладі в якості керуючої змінної використовується змінна q цілого типу. Якщо q=0, то виконується розрахунок за формулами: x=2.05*z – 3.6 і y=5*x; якщо q=1, то змінним x, y і
z привласнюються значення: x=3, y=2 і z=1; якщо q=2 або |
q=4, |
то виконується розрахунок за формулами: x=2*y – 6.7*z |
+ 1, |
y=5*y – x і z = x. Якщо ж керуюча змінна q не дорівнює ні 0, ні 1, ні 2, ні 4, виконується розрахунок за формулами: x++, y/= z і z = x+1.
Приклад 2
switch (a)
{
case 0: x = 2*a; // Якщо а = 0, то: y++; // x = 2a, y = y +1
break;
6
case |
-2: |
// |
Якщо a = -2, то: |
|
x = 2; y = 3; // x = 2, y = 3 |
||||
|
break; |
|
|
|
case 1: |
// |
Якщо a = 1, |
||
case 2: |
// |
або |
a = 2, |
|
case 7: |
// |
або |
a =7, |
|
case 8: |
// |
або |
a = 8, то: |
|
|
y = 2*a –1;// |
y = |
2a - 1 |
|
break; |
|
|
|
}
Зверніть увагу на останні 4 рядки в другому прикладі. Вони вказують на те, що якщо змінна a входить у множину {1;2;7;8}, виконується оператор y = 2*a -1.
1.3 Оператор умови ?:
Оператор умови ?: являє собою коротку форму запису конструкції if … else, розглянутої нами раніше. Формат оператора:
змінна = (умова) ? варіант 1 : варіант 2;
Цей запис розшифровується так: якщо виконується умова, то змінній привласнюється значення варіант 1, у противному випадку змінній привласнюється значення варіант 2.
Приклади
x = (y < 0) ? –y : y; max = (a > b) ? a : b;
Визначите самостійно значення змінних x та max при y = - 1, 0, 15 і a = 5, b = 8; a = 10, b = 2.
1.4 Оператор безумовного переходу goto
Оператор goto (перейти к) реалізований у C#.NET як данина традиціям. Формат оператора:
goto ім'я_мітки;
7
Як тільки оператор goto зустрічається в програмі, відразу (без всяких умов) здійснюється перехід на рядок, що починається з мітки, що має ім'я ім'я_мітки. Мітка – це набір символів (цифр і/або букв). Міткам бажано давати осмислені імена.
Приклад
if (size >= 10) goto label1; else goto label2;
label1: cost *= 1.05; flag = 2; label2: bill = cost*flag;
Цей фрагмент програми працює в такий спосіб. Якщо значення змінної size більше або дорівнює 10, здійснюється перехід на рядок, позначений міткою label1 і виконуються оператори cost *= 1.05 та flag = 2. Якщо умова не виконується, здійснюється перехід на рядок, позначений міткою label2 і виконується оператор bill = cost*flag.
Оператор goto – це анахронізм, що прийшов у C#.NET з більш ранніх мов програмування, таких, як Fortran і Basic. Якщо є можливість не використовувати його, то виключайте цей оператор з своїх програм. Так, текст попереднього приклада можна записати і так:
if (size >= 10)
{cost *= 1.05; flag = 2; } bill = cost*flag;
В останньому випадку програма стала більш зрозумілою і не містить «підводних каменів».
Звичайно, з усіх правил завжди існують виключення. Так, наприклад, оператор goto можна застосовувати для виходу зі складного вкладеного циклу при виявленні помилок.
2 ОПЕРАТОРИ ЦИКЛІВ
Цикл – це послідовність дій (операторів), що повторюються. Кількість повторень задається або безпосередньо, або визначається умовою.
У C#.NET є три різновиди циклів:
8
цикл із параметром for;
цикл із передумовою while;
цикл із постумовою do while.
Кожен варіант циклу забезпечує визначені умови виконання програми, що ми розглянемо нижче.
2.1 Оператор for
Оператор циклу for дозволяє задати повторення оператора (або набору операторів) задану кількість разів. Такий цикл називають
циклом з параметром.
Формат запису оператора for наступний:
for (ініціалізація;умова;корекція) оператор;
Тут:
ініціалізація – установка початкового значення змінноїлічильника;
умова – вираження, що визначає умову, при якій цикл буде виконуватися;
корекція – зміна значення змінної-лічильника. Алгоритм роботи циклу for:
1.Обчислюється вираження ініціалізації, у результаті чого змінній-лічильникові привласнюється початкове значення.
2.Обчислюється умовне вираження. Якщо умова істинна, то виконується оператор. Якщо умова помилкова, цикл завершується.
3.Обчислюється вираження корекції, у результаті чого змінній-лічильникові привласнюється нове значення.
4.Здійснюється перехід до п.2.
Приклад 1
for (n=0;n<10;n++) cout << n << endl;
У результаті виконання приведеного оператора на екран будуть виведені цифри від 0 до 9.
Приклад 2
9
for (int j=0;j<5; j++)
{
float x = 20*Math.Sin(j); float y = 3*x;
Console.WriteLine(j, " x = ", x, " y = ",
y);
}
У даному прикладі 5 разів розраховуються і виводяться на екран значення функції x=20sin j і y=3x.
Приклад 3
for (x=1;y<=75;y=5*x++ + 10) Console.WriteLine(" x = ", x, " y = ", y);
Зверніть особливу увагу на Приклад 3. Якщо в двох попередніх прикладах для перевірки умови й корекції використовувалася змінна-лічильник циклу, то в даному випадку в якості для перевірки умови і для корекції використовується додаткова змінна y.
Приклад 4
int num = 0;
for (Console.WriteLine("Enter number"); num<=5;)
// Enter number – Уведіть число num =
Convert.ToInt16(Console.ReadLine()); Console.WriteLine("It is good number!");
//Це гарне число!
Уданому прикладі відсутня корекція. Цикл буде виконуватися доти, доки Ви не введете число, більше 5.
Приклад 5
for (float i=0;i<2;i+=0.2)
У цьому прикладі збільшення змінної-лічильника циклу здійснюється з кроком 0.2.
10