ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ АЛГОРИТМАМИ

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Методичні вказівки до лабораторної роботи
Предмет:
Алгоритмічні мови і програмування

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” EMBED Word.Picture.8 ПРОГРАМИ З РОЗГАЛУЖЕНИМИ ТА ЦИКЛІЧНИМИ АЛГОРИТМАМИ ІНСТРУКЦІЯ ДО ЛАБОРАТОРНОЇ РОБОТИ № 6 З КУРСУ “АЛГОРИТМІЧНІ МОВИ І ПРОГРАМУВАННЯ” для студентів базових напрямків 6.170101, 6.170102, 6.170103 Львів – 2010 Програми з розгалуженими та циклічними алгоритмами: інструкція до лабораторної роботи №6 з курсу “Алгоритмічні мови і програмування” для студентів базових напрямків 6.170101, 6.170102, 6.170103. . / Укл.: В.І. Отенко, Б.Д. Будз, О.І. Гарасимчук - Львів: НУЛП, 2009.- с. Укладачі: В.І. Отенко, к.т.н., доцент, О.І. Гарасимчук, к.т.н., доцент, Б.Д. Будз, асистент. Мета роботи - вивчити інструкції мови C#. Навчитися складати та відлагоджувати розрахункові програми з розгалуженими та циклічними структурами. 1. ОСНОВНІ ТЕОРЕТИЧНІ ВІДОМОСТІ 1.1. Інструкція if Повний формат запису інструкції if має наступний вигляд: іf (умова) інструкція; else інструкція? Тут під елементом інструкція розуміється одна інструкція мови С#. Частина еlsе є необов'язковою. Замість елемента інструкція може бути використаний блок інструкцій. В цьому випадку формат запису if-інструкції приймає такий вигляд: if (умова) послідовність інструкцій else послідовність інструкцій Якщо елемент умова, який представляє собою умовний вираз, при обчисленні дасть значення ІСТИНА, буде виконана if-інструкція; в протилежному випадку — else-інструкція (якщо така існує). Обидві інструкції ніколи не виконуються. Умовний вираз, який керує виконанням if-інструкції повинне мати тип bool. 1.2. Вкладені if-інструкції Вкладені if-інструкції утворюються в тому випадку, якщо як елемент інструкція використовується інша if-інструкція. Вкладені if-інструкції дуже популярні в програмуванні. Головне тут — пам'ятати, що else-інструкція завжди відноситься до найближчої if-інструкції, яка знаходиться всередині того ж програмного блоку, але ще не зв'язана з будь-якою іншою else-інструкцією. Наприклад: if (i == 10) { if (j < 20) а = b; if (k > 100) с = d; else а = с; // Ця else-інструкція // відноситься до if(k > 100). } else а = d; // Ця else-інструкція відноситься до if (i == 10). Як затверджується в коментарях, остання else-інструкція не пов'язана з інструкцією if (j < 20), оскільки вони не знаходяться в одному блоці (не дивлячись на те що ця if-інструкція — найближча, яка не має при собі "else-пари"). Внутрішня else-інструкція пов'язана з інструкцією if (k > 100), оскільки вона — найближча і знаходиться всередині того ж блоку. 1.3. Конструкція if - еlsе - if Дуже поширеною в програмуванні конструкцією, в основі якої лежить вкладена if-інструкція, є конструкція наступного вигляду: if-else-if. Її можна представити в наступному вигляді: if {умова) інструкція; else if{ умова) інструкція; else if{ умова) інструкція; else інструкція; Тут під елементом умова розуміється умовний вираз. Умовні вирази обчислюються зверху вниз. Як тільки в якій-небудь гілці виявиться істинний результат, буде виконана інструкція, пов'язана з цією гілкою, а вся решта частина конструкції опускається. Якщо виявилося, що жодна з умов не є істинною, буде виконана остання else-інструкція (можна вважати, що вона виконує роль умови, яка діє за умовчанням). Якщо остання else-інструкція не задана, а всі решта виявилися помилковими, то взагалі ніяка дія не буде виконана. 1.4. Інструкція switсh Другою інструкцією вибору є switch. Інструкція switch забезпечує багатонаправлене розгалуження. Вона дозволяє проводити перевірку для багатьох значень змінної за один прохід замість того щоб перевіряти лише одну умову як у випадку з оператором if. Хоча багатонаправлене тестування можна реалізувати за допомогою послідовності вкладених if-інструкцій, для багатьох ситуацій інструкція switch виявляється більш ефективним розв’язком поставленої задачі. Вона працює наступним чином. Значення виразу послідовно порівнюється з константами із заданого списку. При виявленні збігу для однієї з умов порівняння виконується послідовність інструкцій, пов'язана з цією умовою. Загальний формат запису інструкції switch такий: switch (вираз) { case константа1: послідовність інструкцій break; case константа2: послідовність інструкцій break; case константаЗ: послідовність інструкцій break; default: послідовність інструкцій break; } Елемент вираз інструкції switch повинен мати цілочисельний тип (наприклад, char, byte, short або int ) або тип string. Вирази, що мають тип з плаваючою крапкою, не дозволені. Дуже часто в якості керуючого switch-виразу використовується просто змінна; case-константи повинні бути літералами, тип яких сумісний з типом заданого виразу. При цьому ніякі дві case-константи в одній switch-інструкції не можуть мати ідентичних значень. Кожна case конструкція повинна закінчуватись оператором break (або якою-небудь іншою командою виходу, наприклад return). Оператор break передає керування за межі конструкції switch. Послідовність інструкцій default-гілки виконується в тому випадку, якщо жодна із заданих case-констант не співпаде з результатом обчислення switch-виразу. Гілка default необов'язкова. Якщо вона відсутня, то при неспівпадінні результату виразу не буде виконана жодна дія жодної з case-констант. Якщо такий збіг все ж таки буде, то виконуватимуться інструкції відповідні даній case-гілці до тих пір, поки не зустрінеться інструкція break. Оператори switch не мають обмежень на кількість розділів case, які будуть в них міститись. 1.5. Цикли Цикл – це частина коду, в якому оператори виконуються по декілька разів. Такий спосіб в багатьох випадках є дуже зручним, оскільки дозволяє повторювати необхідні дії стільки разів, скільки потрібно, без необхідності переписувати відповідний код таку ж кількість разів. 1.5.1. Цикл for Він відноситься до того типу циклів, які виконуються наперед задану кількість разів і самі відповідають за організацію лічильника циклу. Загальний формат запису циклу for для повторного виконання однієї інструкції має наступний вигляд: for{ініціалізація; умова; ітерація) інструкція; Якщо цикл for призначений для повторного виконання програмного блоку, то його загальний формат виглядає так: for{ініціалізація; умова; ітерація) { послідовність інструкцій } Елемент ініціалізація звичайно являє собою інструкцію присвоєння яка встановлює керуючу змінну циклу рівну початковому значенню. Ця змінна діє як лічильник, який керує роботою циклу. Елемент умова являє собою вираз типу bool, в якому тестується значення керуючої змінної циклу. Результат цього тестування визначає виконається цикл for ще раз або ні. Елемент ітерація —- це вираз, який визначає, як змінюється значення керуючої змінної циклу після кожної ітерації. Зверніть увагу на те, що всі ці елементи циклу for повинні відділятися крапкою з комою. Цикл for буде виконуватися до тих пір, поки обчислення елемента умова дає істинний результат. Як тільки умова стане помилковою, виконання програми продовжиться з інструкції, наступної за циклом for. Керуюча змінна циклу for може змінюватися як з позитивним, так і з негативним приростом, причому величина цього приросту також може бути довільною. Важливо розуміти, що умовний вираз завжди тестується на початку виконання циклу for. Це значить, що якщо перша ж перевірка умови дасть значення Хибність код тіла циклу не виконається жодного разу. Ось приклад: |for(а=15; а < 10; а++) х += а; // Ця інструкція не буде виконана зовсім. Цей цикл ніколи не виконається, оскільки вже при вході в нього значення його керуючої змінної а більше десяти. Це робить умовний вираз (а < 10) помилковим із самого початку. Тому навіть одна ітерація цього циклу не буде виконана. Цикл for особливо корисний в тих випадках, коли відома кількість його повторень. Можливі наступні варіанти на тему циклу for Використання декількох керуючих змінних циклу Для управління циклом for можна використовувати дві або більше змінних. У цьому випадку інструкції ініціалізації і ітерації для кожної з цих змінних відокремлюються комами. Наприклад: // Використання ком в циклі for. using System; class Comma { public static void Main() { int i, j ; for(i=0, j=10; i < j; i++, j—) Console.WriteLine("i і j: " + i + " " + j); От як виглядають результати виконання цієї програми: i і j: 0 10 i і j: 1 9 i і j: 2 8 i і j: 3 7 i і j: 4 6 Тут комами відділяються дві інструкції ініціалізації і два ітераційних вирази. При вході в цикл ініціалізувалися обидві змінні — i і j . Після виконання кожної ітерації циклу змінна i інкрементується, а змінна j декрементуєтся. Використання декількох керуючих змінних в циклі іноді дозволяє спростити алгоритми. В розділах ініціалізації і ітерації циклу for можна використовувати будь-яку кількість інструкцій, але звичайно їхнє число не перевищує дві. Умовний вираз Умовним виразом, який управляє циклом for, може бути довільний допустимий вираз, що генерує результат типу bool. 1.5.2. Цикл whilе Цикл While є найбільш фундаментальним. Загальна форма циклу while має наступний вигляд: whilе (умова) інструкція; Тут під елементом інструкція розуміється або одиночна інструкція, або блок інструкцій. Роботою циклу управляє елемент умова, який представляє собою будь-який допустимий вираз типу bool. Елемент інструкція виконується до тих пір, поки умовний вираз повертає значення ІСТИНА. Як тільки ця умова стає помилковою, управління передається інструкції, яка слідує за цим циклом. Якщо при першому звертанні до циклу умова хибна, то тіло циклу не виконується жодного разу 1.5.3. Цикл do - whilе Третім циклом в С# є цикл do-while. На відміну від циклів for і while в яких умова перевіряється при вході, цикл do-while перевіряє умову при виході з циклу. Це значить, що цикл do-while завжди виконується хоча б один раз. Його загальний формат має наступний вигляд: do { інструкції; } while {умова); Не дивлячись на те що фігурні дужки необов'язкові, якщо елемент інструкції складається тільки з однієї інструкції, вони часто використовуються для покращення читабельності конструкції do-while, не припускаючи тим самим плутанину з циклом while. Цикл do-while виконується до тих пір, поки залишається істинним елемент умова який представляє собою умовний вираз. 1.5.4. Вихід з циклу Використання інструкції break для виходу з циклу За допомогою інструкції break можна організувати негайний вихід з циклу опустивши виконання коду, що залишився в його тілі, і перевірку умовного виразу. При виявленні всередині циклу інструкції break цикл завершується, а управління передається інструкції, наступній після циклу. Використання інструкції continue Крім засобу "дострокового" виходу з циклу, існує засіб "дострокового" виходу з поточної його ітерації. Цим засобом є інструкція continue. Вона примусово виконує перехід до наступної ітерації, опускаючи виконання коду, що залишився, в поточній. Інструкцію continue можна розцінювати як доповнення до більш "радикальної" інструкції break. Інструкція rеturn Інструкція return забезпечує повернення з методу. Її можна використовувати для повернення методом значення. 1.6. Наслідування Наслідування виконує ряд важливих функцій. Основна з них – це можливість повторного використання, тобто немає потреби починати кожен проект з нуля, якщо можна скористатися готовими програмними компонентами. Старі класи можуть бути адаптовані для використання в нових програмах без внесення в них кардинальних змін. Існуючий клас успадковується – з розширенням його можливостей – новим підкласом, який містить всі необхідні добавлення та зміни. Якщо базовий клас написаний ким-небудь іншим, то у вас немає можливості вносити в нього зміни, а наслідування виявляється єдиним способом його використання. Приклад програми, в якому продемонстровано як клас SubClass наслідується від класу BaseClass. using system; namespace InteritanceExample { public class BaseClass { public int nDataMember; public void SomeMethod() { Console.WriteLine(“SomeMethod()”); } } public class SubClass : BaseClass { public void SomeOtherMethod() { Console.WriteLine(“SomeOtherMethod()”); } } public class Programm { public static void Main(string[] args) { //Створення об’єкту базового класу Console.WriteLine(“Робота з об’єктом базового класу:”); BaseClass bc = new BaseClass(); bc.nDataMember = 1; bc.SomeMethod(); //Створення об’єкту підкласу Console.WriteLine(“Робота з об’єктом підкласу:”); SubClass sc = new SubClass(); sc.nDataMember = 2; sc.SomeMethod(); sc.SomeOtherMethod(); //Очікуємо підтвердження користувача Console.WriteLine(“Для завершення натисніть Enter”); Console.Read(); } } } ЗАВДАННЯ Домашня підготовка до роботи Вивчити синтаксис, призначення, принцип роботи і використання операторів мови С# та основних функцій введення-виведення. Вивчити правила побудови ідентифікаторів, виразів та присвоєння значень змінним мови С#. Скласти блок-схеми алгоритмів та програми мовою С# для табулювання функцій. Забезпечити ввід значень інтервалу, кроку і похибки табулювання з клавіатури і вивід результатів на дисплей. Дані для роботи беруться з таблиць 1 і 2 за вказівкою викладача: а) табулювання функції (див. табл.1), що вибирається залежно від значення аргумента, на проміжку [a, b] з кроком табуляції h. Таблиця 1 б) табулювання функції, представленої рядом (див. табл.2), на інтервалі [a, b] з кроком табуляції h та абсолютною похибкою d. Оцінку похибки здійснювати за значенням модуля чергового члена ряду. Таблиця 2 Рекомендована структура програми: Клас 1: Конструктор для ініціалізації змінних х та у; Метод обчислення чергового значення виразу; Метод встановлення чергового значення х; Метод повернення поточного значення х; Клас 2: (наслідує Клас 1) Конструктор для початкової ініціалізації змінних суми та к; Метод встановлення значення похибки; Метод обчислення суми (використовується виклик методу обчислення чергового значення виразу з попереднього класу); Метод повернення суми; Метод обнулення суми, чергового значення виразу та встановлення в початковий стан змінної к; Метод виводу на екран результатів: х, у, суми; Клас 3: Метод вводу початкових даних (меж табуляції, похибки, кроку); Метод табуляції (виклик методів встановлення чергового значення х та похибки, методу обчислення суми, методу повернення суми, методу виводу результатів обчислення на екран); Клас 4: Основний метод (виклик методів вводу та табуляції з Класу 3); Робота в лабораторії 1. Ознайомитися з основними засобами введення, відлагодження та компіляції програми системи програмування С#. 2. Ввести в комп'ютер програму, написану мовою С# згідно з отриманим завданням. Дані для роботи беруться з табл.1 за вказівкою викладача. 3. Відлагодити програму. При необхідності скоригувати блок-схему алгоритму та програму у відповідності з виявленими логічними та синтаксичними помилками. 4. Остаточні версії блок-схеми, програми та отримані результати занести у звіт з лабораторної роботи. 5. Здати та захистити звіт з лабораторної роботи., 3. ЗМІСТ ЗВІТУ 1. Номер і назва лабораторної роботи. 2. Повний текст завдання. 3. Остаточна версія блок-схеми алгоритму. 4. Список ідентифікаторів констант, змінних, процедур і функцій, використаних у блок-схемі алгоритму і програмі, та їх пояснення. 5. Остаточна версія програми. 6. Результати роботи програми. 7. Висновки по роботі.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!