Главная страница
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
qrcode

Методичка_Ч1. Методичні вказівки до лабораторного практикуму та самостійної роботи з дисципліни Програмування для студентів напрямів підготовки


НазваниеМетодичні вказівки до лабораторного практикуму та самостійної роботи з дисципліни Програмування для студентів напрямів підготовки
АнкорМетодичка Ч1.doc
Дата26.10.2016
Размер1.86 Mb.
Формат файлаdoc
Имя файлаMetodichka_Ch1.doc
ТипМетодичні вказівки
#593
страница6 из 11
КаталогОбразовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей
1   2   3   4   5   6   7   8   9   10   11

Дослідження створеного проекту

3.1.15Дослідження передачі параметрів за посиланням


Додайте до функції main() виведення значення змінної «у» до звернення до функції f3(). Запустіть програму на виконання та порівняйте значення «у» до і після звернення до функції f3().

Видаліть префікс & перед параметром «у» із списку параметрів функції f3() і знову проаналізуйте значення змінної до і після виклику f3(), а також значення проміжних результатів.

Відновіть заголовок процедури.

Зробіть висновки і зафіксуйте результати досліджень у звіті.

3.1.16Анализ передачи параметров по значению


Змініть функцію f3() таким чином, щоб після обчислення результату значення формальних параметрів «a», «b» та «x» змінювалися, наприклад, ставали нулями.

Додайте до функції main() виведення значення відповідних фактичних параметрів після звернення до зміненої функції. Запустіть програму на виконання та з’ясуйте, чи зміняться значення фактичних параметрів після звернення до зміненої функції.

Відновіть текст функції.

Зробіть висновок і зафіксуйте в звіті.

Вимоги до звіту


  • Назва роботи.

  • Мета роботи.

  • Короткі теоретичні відомості.

  • Тексти функцій програми з коментарями.

  • Результати тестування проекту у вигляді копій консолі.

  • Результати дослідження способів передачі параметрів до функції

  • Висновки.

Контрольні питання


  • Правила написання функцій.

  • Поняття «функція» та правила визначення функції.

  • Прототип функції. Завантаження прототипів бібліотечних функцій.

  • Виклик функції.

  • Способи передачі параметрів у функції.

  • Області оголошення та доступу до імен.

  • Макроси з параметрами.

  • Дати пояснення до звіту.

  • Написати функції за вимогою викладача.

Рекомендована література


  1. Берн Страуструп. Язык программированя С++. Второе дополненное издание. – М: Бином-Пресс, 2008. – 369 с

  2. Прата Стивен. Язык программирования С++. Лекции и упражнения. Учебник: Пер. с англ./Стивен Прата – СПб.:ООО «ДиаСофтЮП», 2003. –1104 с.

  3. Шилдт Герберт. Полный справ очник по С++. Пер. с англ. – М: Вільямс, 2004. 783 с.

  4. Шпак З.Я. Програмування мовою С. – Львів: Оріяна-Нова, 2012. – 432с.


4Лабораторна робота № 4.
Логічний тип даних і розгалуження у програмах


Мета роботи:

  • Ознайомитися з операціями над даними логічного типу.

  • Навчитися записувати та обчислювати логічні вирази.

  • Ознайомитися з операторами if … else та swith.

  • Створити проект, що реалізує алгоритми з розгалуженнями.

Короткі теоретичні відомостіІ

4.1.1 Логічний тип даних


У мові С такого типу не було, хоча поняття істинності та хибності, звичайно, були. Ці поняття відтворювалися за допомогою чисел. Істиною (true) вважалося довільне число, що не дорівнювало нулю, а хибність (false) позначалася нулем. Тільки у мові С++ з’явився тип bool, що використовується для даних, які можуть приймати тільки два значення – true і false. Але числові результати, як і раніше, у відповідному контексті теж можуть розглядатися як дані логічного типу, що інколи є причиною прикрих помилок.

Дані логічного типу за звичай з’являються як результат операцій порівняння. Наприклад, результатом обчислення виразу 2<3 буде true, а результат обчислення виразу sin(x)>0 може бути и true и false, в залежності від значення змінної х.

У таблиці 4.1 наведено операції порівняння, що визначені в мові С.

Таблиця 4.1 - Операції порівняння

Назва операції порівняння

Запис на мові С

Менше

<

Менше або дорівнює

<=

Більше

>

Більше або дорівнює

>=

Дорівнює

==

Не дорівнює

!=

Операції над даними логічного типу


Для даних типу bool визначені дві бінарних операції – «і» (&&) та «або» ( || ). Результати застосування цих операцій до можливих комбінацій логічних операндів наведені в таблиці 4.2. Цю таблицю слід знати, так само як і таблицю множення.

Крім бінарних, визначена одна унарна операція - «ні». У мові С ця операція позначається знаком оклику (!). Операція змінює значення логічної змінної на протилежне. Наприклад, результатом обчислення виразу !(2> 3) буде true, а результат обчислення виразу !(sin (3.1416 / 2) <> 0) буде false.

Таблиця 4.2 – Результати виконання логічних операцій

Перший операнд

Другий операнд

Логічі операції

&&

(і)

||

(або)

true

true

true

true

true

false

false

true

false

true

false

true

false

false

false

false

Логічні вирази


Вирази, в яких використовуються операнди логічного типу та операції над ними, називаються логічними. Результатом обчислення такого виразу може бути тільки true або false. Частинами логічного виразу можуть бути арифметичні вирази, які беруть участь в операціях порівняння.

Записуючи логічні вирази слід враховувати старшинство операцій. Пріоритети операцій, які можуть брати участь в логічних виразах, наведені в таблиці 4.3.

.

Таблиця 4.3 – Пріоритети операцій

Операції

Пріоритет

* / %

3

+ -

4

<< >>

5

< > <= >=

6

= = !=

7

& ^ | && ||

8,9,10,11,12


Якщо доводиться в першу чергу обчислювати операції які мають найнижчий пріоритет, то такі операції беруться в дужки.

Слід також брати до уваги, що логічні операції в С не обов’язково обчислюються повністю. Як тільки результат стає однозначним, подальші обчислення припиняються.

4.1.2 Алгоритми з розгалуженнями


У повсякденному житті ми часто зустрічаємося з такими видами алгоритмів. Наприклад, якщо йде дощ, ми беремо парасольку, а якщо мороз, надягаємо теплу куртку. Таким чином, у алгоритмі, що має розгалуження, деякі дії можуть виконуватися тільки за певних умов.

При розробці алгоритмів, що розгалужуються, корисно зображувати схеми алгоритмів, використовуючи спеціальні позначення. Схема алгоритму являє собою як би план написання програми. Складання таких схем не вимагає багато часу, але істотно підвищує продуктивність праці програміста.

Деякі умовні позначення, що використовуються при складанні схем алгоритмів, наведені в таблиці 4.4. При зображенні алгоритму окремі блоки нумеруються і з'єднуються лініями. Стрілки використовуються тільки для зворотних напрямків (вгору і ліворуч).

Таблиця 4.4 - Умовні позначення для схем алгоритмів



Начало и кінець алгоритму



Обробка інформації, наприклад, розрахунок за формулою




Перевірка умови і прийняття рішення. Після цього блоку можливі різні шляхи продовження виконання алгоритму



Зумовлений процес, наприклад, звернення до функції.



Виведення або введення інформації.


В якості прикладу розглянемо схеми алгоритму розв’язання квадратного рівняння ax2 + bx + c = 0.

На рисунку 4.1 зображено схему алгоритму, де аналізується перший коефіцієнт рівняння і приймається рішення, чи є рівняння квадратним, або воно лінійне. У першому випадку буде викликана процедура вирішення квадратного рівняння, у другому - процедура рішення лінійного рівняння.



Рисунок 4.3- Схема алгоритму аналізу коефіцієнтів квадратного рівняння

На рисунку 4.2 зображена схема алгоритму рішення лінійного рівняння. У цьому алгоритмі аналізуються значення решти коефіцієнтів. Якщо обидва вони дорівнюють нулю, то рівняння 0х + 0 = 0 задовольняє будь-яке значення х. Якщо ж b дорівнює 0, а c не дорівнює 0, то рівняння рішення не має. В інших випадках корінь рівняння визначається за формулою r =-c / b.



Рисунок 4.4 – Схема алгоритму розв'язання лінійного рівняння

Схему алгоритму розв'язання квадратного рівняння, що повинен виконуватися, якщо коефіцієнт «а» не дорівнює 0, слід скласти самостійно і привести в звіті. Алгоритм повинен передбачати аналіз дискримінанта та виведення значень дійсних або комплексних коренів.

4.1.3 Програмування розгалужень

Оператор розгалуження if…else


Оператор if ... else дозволяє вибрати один з двох можливих варіантів виконання програми. Синтаксис запису цього оператора представлений на рисунку 4.3.



Рисунок 4.5– Синтаксис оператора if … else

Виконується цей оператор наступним чином:

  • обчислюється значення умови (умова - вираз, результат якого приводиться до логічного типу);

  • якщо результат приймає значення “true”, то виконується <оператор 1>;

  • якщо результат приймає значення “false”, то виконується <оператор 2>, що розташований за словом else.

Як приклад використання цього оператора можна привести програмну реалізацію схеми алгоритму зображеного на рисунку 4.4.

void test_koef(float a, float b, float c) {

if (a==0)

// Звернення до функції рішення лінійного

lin_riv(b,c);

else

// Звернення до функції рішення квадратного рівняння

kv_riv(a,b,c);

}

Рисунок 4.4 – Програмна реалізація алгоритму аналізу коефіцієнтів квадратного рівняння

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

У деяких випадках, при невиконанні умови, що перевіряється, робити нічого не треба, тобто <оператор 2> не потрібен. У цьому випадку оператор if можна застосовувати в скороченій формі. Синтаксис скороченої форми має вигляд, представлений на рисунку 4.5.



Рисунок 4.5– Скорочена форма оператора if

Оператор if, як повний так і скорочений, може бути вкладений у інший оператор if. При цьому слід пам’ятати, що кожна else-частина пов’язується з найближчим if. Якщо ж else-частина відноситься до одного з попередніх if, то слід застосовувати фігурні дужки. Приклад використання вкладених операторів if наведено на рисунку 4.6.

Стандарт мови С гарантує можливість 15 рівнів вкладення для оператора if. Проте не слід цим зловживати. Вкладені оператори if виглядають зазвичай досить заплутано і часто є причиною виникнення логічних помилок.


Рисунок 4.6– Приклад використання вкладених операторів if

Більш зручними і наочними є ланцюжки повних операторів if, в яких після кожного слова else (за винятком останнього) знову йде повний оператор if, рисунок 4.7. Такі ланцюжки зручно використовувати при вирішенні багатоваріантних задач. Вони досить легко аналізуються, за структурою подібні до розглянутого нижче оператору swith, і їх можна застосовувати, на відміну від нього, для перевірки будь-яких умов.



Рисунок 4.7– Приклад ланцюжка повних операторів if

Умовна операція


Цю операцію називають ще теренарною операцією. Вона виконується над трьома операндами і записується так, як показано на рисунку 4.8.



Рисунок 4.8– Скорочена форма оператора if

Тут умова - це вираз, результат якого приводиться до логічного типу. Якщо результат обчислення умови приймає значення “true”, то результатом операції буде значення виразу 1. Якщо результат обчислення умови приймає значення “false”, то результатом операції буде значення виразу 2. На рисунку 4.9 наведено приклад використання вкладеного теренарного оператора у функції для розрахунку стипендії.

.

Рисунок 4.9– Приклад використання теренарного оператора

Оператор вибору swith


Конструкція swith дозволяє ефективно реалізувати численні розгалуження у тих випадках, коли вибір визначається значеннями змінної порядкового типу (int, char).

Синтаксис оператору swith представлено на рисунку 4.10.



Рисунок 4.10 – Синтаксис оператора swith

У цьому описі < вираз > - це вираз, значення якого визначає подальше виконання оператора. В окремому випадку < вираз > може бути просто змінною. Результат обчислення виразу може бути тільки ціле число або символ.

<константа > – це мітка даного варіанту, яка може бути константою або виразом. Значенням константи або результатом обчислення виразу також має бути ціле число або символ. Порядок запису міток довільний, але вони мають бути різними. Останній варіант, що починається словом default, не є обов’язковим. Мітка відділяється від оператора двокрапкою.

< оператор > визначає дії, які повинні бути виконані, якщо < вираз > приймає значення константи. В якості оператора може використовуватися і складений оператор.

Порядок виконання оператора swith описаний нижче:

  • спочатку обчислюється значення виразу;

  • далі, отримане значення послідовно порівнюється зі значеннями констант;

  • якщо значення виразу збігається з однією із міток, то виконується оператор цього варіанту і усі наступні за ним до default, якщо раніше не зустрівся оператор переривання break;

  • якщо значення виразу не збігається з жодною із міток, то виконується оператор після слова defaul, якщо ця частина присутня.

В якості прикладу (рисунок 4.11) розглянемо функцію, що опрацьовує номер варіанту вибраного з меню і відповідно до цього задає коефіцієнти квадратного рівняння. Ця функція може стати у нагоді під час тестування програми обчислення коренів квадратного рівняння. Внаслідок того, що кожний із варіантів виконується окремо і не пов'язаний з іншими, виникає необхідність кожен варіант завершувати оператором break.

Варіант default у цьому прикладі не використовується.



Рисунок 4.11 – Приклад використання оператора swith

4.1.4Оператор переходу goto


Цей оператор забезпечує перехід до іншого оператора, що позначений заданою міткою. Мітка, до якої відбувається перехід може бути розташована як до так і після оператора goto. Синтаксис оператора goto наведено на рисунку 4.12.



Рисунок 4.12– Синтаксис оператора goto

Оператор goto використовується рідко, тому що він заплутує програму і робить її малозрозумілою.
1   2   3   4   5   6   7   8   9   10   11

перейти в каталог файлов

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей

Образовательный портал Как узнать результаты егэ Стихи про летний лагерь 3агадки для детей