49
Міністерство освіти та науки України Національний технічний університет України "Київський політехнічний інститут" ІНФОРМАТИКА 1 Методичні вказівки до лабораторних робіт для студентів спеціальності "Технологія машинобудування" усіх форм навчання Київ НТУУ "КПІ" 2015

Інженерна та комп’ютерна графікаtm-mmi.kpi.ua/images/navchannia/disciplines/informatyka/Info_lab.pdf · Міністерство освіти та науки

Embed Size (px)

Citation preview

Міністерство освіти та науки України

Національний технічний університет України

"Київський політехнічний інститут"

ІНФОРМАТИКА 1

Методичні вказівки

до лабораторних робіт

для студентів спеціальності

"Технологія машинобудування"

усіх форм навчання

Київ

НТУУ "КПІ"

2015

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

2

Інформатика: методичні вказівки до лабораторних робіт для студентів

спеціальності "Технологія машинобудування" усіх форм навчання /

Електронне видання / Уклад.: Пасічник В.А., Сімута Р.Р., Лашина Ю.В.– К.:

НТУУ "КПІ", 2015. – с.

Навчальне видання

ІНФОРМАТИКА 1

Методичні вказівки

до лабораторних робіт

для студентів спеціальності

"Технологія машинобудування"

усіх форм навчання

Укладачі: Пасічник Віталій Анатолійович, д.т.н., проф.

Сімута Роман Русланович, к.т.н., ст.викл.

Лашина Юлія Вікторівна, к.т.н., асис.

Рецензенти:

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

3

Зміст

Лабораторна робота № 1 ............................................................................................................... 4

Лінійні програми. Введення-виведення даних ....................................................................... 4

Лабораторна робота № 2 ............................................................................................................. 10

Лінійний алгоритм. Числові типи даних ............................................................................... 10

Лабораторна робота № 3 ............................................................................................................. 18

Лінійний алгоритм. Логічні типи даних ................................................................................ 18

Лабораторна робота № 4 ............................................................................................................. 24

Розгалужений алгоритм. Оператор IF ................................................................................... 24

Лабораторна робота № 5 ............................................................................................................. 30

Розгалужений алгоритм. Оператор switch ............................................................................ 30

Лабораторна робота № 6 ............................................................................................................. 35

Циклічний алгоритм. Оператори циклу з відомою кількістю повторювань ........ Ошибка!

Закладка не определена. Лабораторна робота № 7 ................................................... Ошибка! Закладка не определена.

Циклічний алгоритм. Оператори циклу з наперед невідомою кількістю повторювань

......................................................................................... Ошибка! Закладка не определена. Лабораторна робота № 8 ............................................................................................................. 46

Типи-посилання. Масиви ........................................................................................................ 46

Лабораторна робота № 9 ............................................................................................................. 46

Обробка символьної інформації............................................................................................. 46

Лабораторна робота № 10 ........................................................................................................... 46

Класи. Основні поняття, створення методів ......................................................................... 46

Лабораторна робота № 11 ........................................................................................................... 46

Робота з файлами ..................................................................................................................... 46

Лабораторна робота № 12 ........................................................................................................... 46

Створення і використання бібліотек ...................................................................................... 46

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

Додаток А ..................................................................................................................................... 48

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

4

Лабораторна робота № 1

Лінійні програми. Введення-виведення даних

Мета роботи: здобуття практичних навичок створення програм мовою C# в середовищі

Microsoft Visual Studio, засвоєння використання методів класу Console для введення-

виведення даних, набуття досвіду створення найпростіших програм.

Теоретичні відомості

Microsoft Visual Studio – це інтегроване середовище розробки (integrated

development environment, IDE) різноманітних програмних додатків від найпростіших

консольних програм до операційних систем. Графічний інтерфейс користувача Microsoft

Visual Studio розроблений у концепції віконних додатків операційної системи Windows.

Після запуску IDE елементи інтерфейсу за замовчуванням розташовані так, як показано на

рис. 1.1.

Рис. 1.1 Графічний інтерфейс Microsoft Visual Studio

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

сторінкою, це місце де відображається програмний код, графічний інтерфейс програми,

яка розробляється, її ресурси тощо. Над головним вікном розташовані панелі інструментів

та головне меню. Склад, доступність та кількість інструментів залежить від типу проекту

над яким працює користувач.

В межах даного курсу комп’ютерного практикуму для створення програм

використовуватиметься шаблон проекту консольного додатку Console Application. Для

створення нового додатку необхідно у середовищі Visual Studio викликати в головному

меню команду FILE => New => Project, та обрати Console Application у діалоговому вікні

шаблонів проектів (Рис. 1.2).

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

5

Рис. 1.2 Діалогове вікно шаблонів проектів

У відповідних полях необхідно задати: назву проекту (Name), розташування файлів

проекту (Location) та назву рішення (Solution name). Після цього у вказаній теці буде

створено теку з файлами рішення (Solution) та файлами проекту (Project).

Структура програми

Після створення нового проекту у головному вікні середовища з’явиться вікно із

текстом автоматично створеного файлу Program.cs (див. лістинг 1.1).

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } }

Кожна програма починається із необов’язкової секції директив використання

using. Далі йде оголошення області імен namespace, назва якої за замовчуванням

збігається із назвою програми. Область імен містить оголошення автоматично створеного

класу Program, у складі якого знаходиться головний метод (функція) Main(), який

використовується як точка входу в програмний додаток.

Запуск програми на компіляцію та виконання виконується за допомогою команди

меню DEBUG => Start Debugging (F5). Під час компіляції автоматично створюється

виконуваний файл (*.exe) в теці проекту bin\Debug.

Змінні та константи

Лістинг 1.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

6

Дані, введені під час роботи програми зберігаються за допомогою змінних.

Змінна – це іменована область пам’яті, яка призначена для збереження даних

визначеного типу. Під час опису змінної явним чином для кожної змінної задаються її тип

та ім’я. Приклади опису цілочисельної (тип int) змінної Course, строкової (тип string)

змінної Group та дійсної (тип double) змінної AvBal представлені в лістингу 1.2.

Для збереження значень, які не змінюються в ході виконання програми,

використовуються константи. Для опису констант використовується ключове слово

const, після якого вказується тип константи, ідентифікатор та значення. В лістингу 1.2.

наведено приклад оголошення строкових констант Surname та Name, а також

цілочислової константи Year.

using System; namespace ConsoleApplication1 { class Program { static void Main() { int Course; //цілочислова змінна

string Group; //рядкова змінна double AvBal; //дійсна змінна

const string Surname = "Петренко", Name = "Петро"; //рядкові константи const int Year = 1998; //цілочислова константа } } }

Введення-виведення даних

Для введення і виведення даних у текстовому режимі консольної програми

бібліотека класів Microsoft.NET містить спеціальний клас Console. Виведення

реалізується за допомогою методів Write та WriteLine (див. лістинг 1.3). Зверніть увагу на

наступне: рядкові константи беруться у подвійні лапки, а символьні – в одинарні. Якщо за

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

перед виведенням їх необхідно об’єднати в одну за допомогою операції +.

using System; namespace ConsoleApplication1 { class Program { static void Main() { const string Surname = "Петренко", Name = "Петро";

Console.WriteLine("Лабораторна робота № 1"); Console.Write("Автор: ");

Console.WriteLine(Name +' '+ Surname); } } }

Лістинг 1.3

Лістинг 1.2

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

7

Рядкові значення зчитуються з клавіатури за допомогою методу ReadLine классу

Console, наприклад значення змінної Group може бути отримане з клавіатури так, як

показано в лістингу 1.4.

Зчитування числових значень відбувається в 2 етапи:

1. Символи, які являють собою число, вводять з клавіатури в строкову змінну.

2. Виконується перетворення з рядка в змінну відповідного типу.

Перетворення виконується за допомогою класу Convert (див. лістинг 1.4).

using System; namespace ConsoleApplication1 { class Program { static void Main() { int Course; //цілочислова змінна string Group; //рядкова змінна double AvBal; //дійсна змінна Console.WriteLine("Введіть групу:"); Group = Console.ReadLine(); /*зчитування з клавіатури значення строкової змінної*/ string buf; //оголошення «допоміжної» строкової змінної Console.Write("Введіть курс, на якому ви навчаєтесь:");//запит buf = Console.ReadLine(); //зчитування значення з клавіатури в рядкову змінну Course = Convert.ToInt32(buf);//перетворення рядка в ціле число Console.WriteLine("Введіть середній бал:"); buf = Console.ReadLine(); AvBal = Convert.ToDouble(buf); //перетворення рядка в дійсне число } } }

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Кожна змінна або константа, що використовується програмою повинна бути

описаною;

Імена змінних і констант складаються з латинських букв і цифр (першим символом

повинна бути буква);

Рекомендується після визначення констант і змінних коментарями вказувати їхнє

призначення у програмі;

Тип даних, що вводяться під час роботи програми, повинен відповідати типові

змінної,в якій зберігатиметься введене значення.

Не забувайте ставити „;” після кожного оператора програми.

Завдання

Лістинг 1.4

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

8

Створіть програму, у якій константами визначте день, місяць і рік свого народження, своє

прізвище, ім’я та по батькові. Визначте змінні, у яких будуть зберігатися: курс на якому

ви навчаєтесь, код групи, середній бал атестату про середню освіту. Виведіть на екран всю

інформацію, у вигляді, що рекомендується нижче. Перед виведенням інформації очистіть

екран.

Рекомендований вигляд результату роботи програми:

Відомості про студента 1 курсу:

Група : МТ-51 Прізвище : Коваленко Ім’я : Василь По батькові : Петрович

Дата народження: 15 жовтня 1998 року Середній бал : 4.25

Необхідною умовою допуску до захисту лабораторної роботи є наявність звіту з

лабораторної роботи, оформленого на аркушах паперу формату А4 (див. приклад).

Для захисту лабораторної роботи необхідно продемонструвати коректну роботу

розробленої програми та відповісти на контрольні запитання.

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

1. Поясніть термін «змінна». Для чого призначені змінні в програмі? Наведіть

приклади опису змінних.

2. Поясніть термін «константа». Для чого призначені константи в програмі? Наведіть

приклади опису констант.

3. Яким чином реалізується виведення даних у текстовому режимі консольної

програми? Наведіть приклад.

4. Яким чином реалізується введення даних у текстовому режимі консольної

програми? Наведіть приклад. В чому полягає особливість введення числових

даних?

5. Поясніть порядок дій зі створення консольного додатку в середовищі Microsoft

Visual Studio.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

9

Приклад оформлення звіту з лабораторної роботи

Лабораторна робота № 1

Лінійні програми. Введення-виведення даних

Мета роботи: здобуття практичних навичок створення програм мовою C# в середовищі

Microsoft Visual Studio, засвоєння використання методів класу Console для введення-

виведення даних, набуття досвіду створення найпростіших програм.

Завдання: Створіть програму, у якій константами визначте день, місяць і рік свого

народження, своє прізвище, ім’я та по батькові. Визначте змінні, у яких будуть

зберігатися: курс на якому ви навчаєтесь, код групи, середній бал атестату про середню

освіту. Виведіть на екран всю інформацію, у вигляді, що рекомендується нижче. Перед

виведенням інформації очистіть екран.

Алгоритм вирішення задачі

Рішення цієї задачі реалізується лінійним алгоритмом, який передбачає введення

початкових даних та виведення контрольної інформації на екран.

Лістинг програми

using System; namespace Lab1 { class Program { static void Main() { //... наводиться повний текст програми } }

}

Результат роботи:

Висновки: При виконанні лабораторної роботи я створив програму з лінійним

алгоритмом роботи і здобув навички введення-виведення даних.

Виконав: ст. гр. МТ-51 Перевірили:

Петренко П. П. ст. викл. Лапач С.М.

ст. викл. Лашина Ю.В.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

10

Лабораторна робота № 2

Лінійний алгоритм. Числові типи даних

Мета роботи: здобуття практичних навичок роботи зі стандартними числовими типами

даних і створення програм з лінійним алгоритмом вирішення задачі.

Теоретичні відомості

Типи даних

Кожен вираз у програмі має визначений тип. Величин без типу не існує.

Компілятор використовує інформацію про тип під час перевірки допустимості дій, які

описані в програмі.

Типи даних класифікуються за різними ознаками.

За основою будови елементу, усі типи даних можна розділити на прості, які не

мають внутрішньої структури, та структуровані, які складаються із елементів інших

типів. За ознакою створення, типи класифікують як вбудовані (стандартні) і такі, які

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

виділяється у момент оголошення, при цьому потрібний її об’єм відомий. Для даних

динамічного типу розмір даних у момент оголошення може бути невідомим, і пам’ять під

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

Вбудовані типи даних не потребують попереднього визначення. Для кожного

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

при оголошенні змінних, констант тощо. Перелік вбудованих типів наведений у табл. 3.1.

Назва Alias Діапазон Опис К-ть

біт

Логічний bool true, false

Цілі sbyte -128...127 із знаком 8

byte 0...255 без знаку 8

short -32768...32767 із знаком 16

ushort 0...65535 без знаку 16

int -2147483648... 2147483647 із знаком 32

uint 0...4294967295 без знаку 32

long -9×1018

...9×1018

із знаком 64

ulong 0...18×1018

без знаку 64

Символьний char U+0000...U+FFFF Unicode

символ

16

Дійсні float -3.4×1038

...-1.5×10−45

;

1.5×10−45

...3.4×1038

7 цифр 32

double -1.7×10308

...

-5.0×10−324

;

5.0×10−324

...

-1.7×10308

15-16 цифр;

±0; ±∞; NaN;

Epsilon

64

Фінансовий decimal (-7.9×1028

...7.9×1028

)/

(100...28

)

28-29 цифр 128

Рядковий string Обмежений об’ємом

доступної оперативної

пам’яті

Рядок із

символів

Unicode

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

11

Тип Object object Може зберігати що

завгодно

Загальний

предок

Дійсні літерали представляються тільки в десятковій системі числення, але у двох

формах: з фіксованою крапкою та з порядком. Дійсна константа із порядком записується у

вигляді мантиси і порядку. Мантиса записується зліва від знаку експоненти (Е або е), а

порядок – справа. Значення константи визначається як добуток мантиси і зведеного у

вказаний у порядку степінь числа 10 (наприклад, 1.3е2 = 1.3×102 = 130). При записі

дійсного числа може бути опущена або ціла частина, або дрібна.

Увага! Пробіли всередині числа не допускаються. Для відділення цілої частини від

дрібної використовується крапка, а не кома. Символ Е не є відомим усім із математики

числом е.

Вирази, операнди, операції

Вираз визначає порядок дій над елементами даних і складається з операндів і

операцій. Операндом може бути: константа, змінна, виклик функції, вираз у круглих

дужках. Операції визначають дії, які треба виконати над операндами.

Операції присвоювання (=, +=, -=, *= і т. ін.) задають нове значення виразу

(змінній, константі під час оголошення, властивості, індексатору чи події). Ці операції

можуть використовуватися в програмі як закінчені оператори.

Формат операції простого присвоювання (=): ідентифікатор = вираз.

Механізм виконання операції присвоювання наступний: розраховується вираз, і

його результат заноситься у пам’ять за адресою, яка визначається ім’ям ідентифікатора

(наприклад, змінної), який знаходиться зліва від знаку операції.

Для правого операнду операції присвоювання повинне існувати неявне

перетворення до типу лівого операнду.

Операції інкременту (++) та декременту (--), які ще називають операціями

збільшення та зменшення на одиницю, мають дві форми запису – префіксну, коли знак

операції записується перед операндом, та постфіксну (суфіксну?). В префіксній формі

запису спочатку змінюється операнд, а потім його значення стає результуючим значенням

виразу, а постфіксній – значенням виразу є початкове значення операнду, після чого сам

операнд змінюється. Стандартні операції інкременту та декременту існують для цілих,

символьних, дійсних і фінансових величин, а також для переліків. Лістинг 3.6.1 ілюструє

ці операції

int x = 3; int y = 8; int r = 0; r = ++x; // r == 4, x == r r = y--; // r == 8, y == 7

Арифметичне заперечення (унарний мінус, -) змінює знак операнду на

протилежний. Стандартна операція заперечення визначена для типів int, long, float,

double, decimal. До величин інших типів її можна застосовувати, якщо для них можливе

неявне перетворення до цих типів (див. рис. 3.3.1). Тип результату відповідає типу

операції.

Лістинг 3.6.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

12

Операція множення (*) повертає результат добутку двох операндів. Стандартна

операція множення визначена для типів int, uint, long, ulong, float, double,

decimal. До величин інших типів її можна застосовувати, якщо можливе неявне

перетворення до цих типів. Тип результату операції дорівнює «найбільшому» із типів

операндів, але не менше за int.

Операція ділення (/) обчислює частку від ділення першого операнду (діленого) на

другий операнд (дільника). Стандартна операція множення визначена для типів int, uint,

long, ulong, float, double, decimal. До величин інших типів її можна застосовувати,

якщо можливе неявне перетворення до цих типів. Тип результату операції дорівнює

«найбільшому» із типів операндів, але не менше за int.

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

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

DivideByZeroException. Якщо хоча б один із операндів дійсний, дрібна частина

результату ділення не відкидається (див. лістинг 2.1).

Операція залишку від ділення (%) також інтерпретується по різному для цілих,

дійсних та фінансових величин.

Якщо обидва операнди цілі числа, то результат операції обчислюється за

формулою x – (x / y)*y (пам’ятаємо, що результат ділення двох цілих чисел округлюється вниз до найближчого цілого). Тип результату операції

дорівнює «найбільшому» із типів операндів, але не менше за int.

Якщо хоча б один із операндів дійсний, результат операції обчислюється за

формулою x – n*y, де n – найбільше ціле, менше або рівне результату ділення x на y (див. лістинг 2.1).

using System; namespace Lab2 { class Program { static void Main() { int x = 11, y = 4; float z =4; Console.WriteLine(x / y); // Результат 2 Console.WriteLine(x / z); // Результат 2.75 Console.WriteLine(x % y); // Результат 3 Console.WriteLine((x-0.1) % (y-0.1)); // Результат 3.1 } } }

Операції додавання (+) та віднімання (-) повертають відповідно суму або різницю

двох операндів. Стандартні операції додавання та віднімання визначена для типів int,

uint, long, ulong, float, double, decimal. До величин інших типів її можна

застосовувати, якщо можливе неявне перетворення до цих типів. Тип результату операції

дорівнює «найбільшому» із типів операндів, але не менше за int.

Операції у виразі виконуються в певному порядку, визначеному пріоритетами

виконання операцій. Для розглянутих операцій пріоритет наступний (в порядку

зменшення):

Лістинг 2.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

13

унарні: +, -, ++x, --x (унарні плюс та мінус, префіксний інкремент та декремент);

мультиплікативні: *, /, %

адитивні: +, -

присвоювання: =, +=, -=, *= і т. ін.

Операції однакового пріоритету виконуються зліва направо. Виключення

складають операції присвоювання та умовна операція, які виконуються справа наліво.

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

Результат виконання операцій характеризується значенням та типом. Наприклад,

якщо a та b – змінні цілого типу, описані наступним чином:

int a=5, b=7 Тоді вираз a+b має значення 13 і тип int.

Математичні функції – Клас Math

Математичні функції, які доволі часто використовуються у математичних виразах

визначені у класі Math простору імен System. Основні методи та поля цього класу наведені

в таблиці 2.1.

Таблиця 2.1 Методи та поля класу Math

Метод/поле Опис

Abs Повертає абсолютне значення числа.

Acos Повертає кут, косинус якого дорівнює зазначеному числу.

Asin Повертає кут, синус якого дорівнює зазначеному числу.

Atan Повертає кут, тангенс якого дорівнює зазначеному числу.

Atan2 Повертає кут, тангенс якого дорівнює відношенню двох зазначених чисел.

Cos Повертає косинус зазначеного кута.

Cosh Повертає гіперболічний косинус зазначеного кута.

Exp Повертає число e, піднесене в зазначений ступінь.

Floor Повертає найбільше ціле число, яке менше або дорівнює заданому числу подвійної

точності з плаваючою комою.

Log Повертає натуральний логарифм (з основою e) вказаного числа.

Log10 Повертає логарифм з основою 10 вказаного числа.

Max Повертає більше з двох чисел.

Min Повертає менше з двох цілих.

Pow Повертає вказане число, піднесене в зазначений ступінь.

Round Округлює задане число з плаваючою комою подвійної точності до найближчого

цілого.

Sin Повертає синус зазначеного кута.

Sinh Повертає гіперболічний синус зазначеного кута.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

14

Sqrt Повертає квадратний корінь з вказаного числа.

Tan Повертає тангенс зазначеного кута.

Tanh Повертає гіперболічний тангенс зазначеного кута.

Truncate Обчислює цілу частину заданого числа.

E Основа натурального логарифма, яке визначається константою e.

PI Відношення довжини кола до його діаметра, яке визначається константою π.

Приклад

Завдання. Розрахувати і вивести на екран значення змінної Z, яке розраховується за

формулою:

. Значення x та y вводяться з клавіатури.

Розв’язок: sing System; namespace Lab2 { class Program { static void Main() { double x=0, y=0, z =0; Console.Write("x = "); string buf = Console.ReadLine(); x = Convert.ToDouble(buf); Console.Write("y = "); buf = Console.ReadLine(); y = Convert.ToDouble(buf); z = Math.Sqrt(Math.Pow(x, 2) + 3) / Math.Abs(y-5*Math.PI); Console.WriteLine("Z = {0}", z); Console.ReadKey(); } } }

Результат:

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Перед виконанням роботи слід обов’язково з’ясувати за якими формулами слід

розраховувати потрібні значення. В деяких варіантах ці залежності задані явно

(вар. 10, 17-19), в більшості варіантів залежність і послідовність її формування слід

отримати самостійно;

В програмах із лінійною структурою інструкції виконуються послідовно одна за

одною;

У загальному випадку програми з лінійною структурою складаються з таких

блоків: введення даних з клавіатури, обробка інформації, виведення результатів на

екран монітора;

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

15

Пам’ятайте про те, що будь-яку залежність або формулу слід записати у вигляді,

який є прийнятним для C#, тобто таку залежність слід записати у рядок, вказавши

пріоритет виконання операцій круглими дужками;

Якщо задача не вирішується одразу, слід розбити її на простіші етапи;

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

16

Варіанти завдань

1. Цілій змінній Suma присвоїти суму цифр тризначного цілого числа K, значення

якого вводиться з клавіатури.

2. Дійсній змінній Aver присвоїти середнє значення цифр тризначного цілого числа K,

значення якого вводиться з клавіатури.

3. Цілій змінній Des присвоїти першу цифру з дробової частини додатного дійсного

числа X, значення якого вводиться з клавіатури (так, якщо X =32.597, Des=5 ).

4. З клавіатури вводиться значення, яке вказує, скільки секунд пройшло від початку

доби. Це значення присвоюється змінній Sec. Визначити скільки повних годин

(Hour) і повних хвилин (Minute) пройшло до цього моменту (наприклад, якщо

Sec=13255, тоді Hour=3, Mіnute=40 , тобто, =3*3600+40*60+57 ).

5. З клавіатури вводиться кількість годин (Hour), хвилин (Mіnute) і секунд

(Sec) поточного часу. Визначити скільки всього секунд пройшло від початку

доби.

6. Визначити Angle – кут (у градусах) між положенням годинникової стрілки на

початку доби та її положенням в Hour годин, Mіnute хвилин, Sec секунд.

Значення Hour, Minute, Sec уводяться з клавіатури.

7. Визначити Hour – повну кількість годин і Mіnute – повну кількість хвилин, які

пройшли від початку доби до того моменту (в першій половині доби), коли

годинникова стрілка повернулась на Angle градусів. Значення Angle уводиться з

клавіатури.

8. Нехай Day – ціле число в межах від 1 до 365. Присвоїти цілій змінній DayWeek

значення 1,2,...,7 в залежності від того, на який день тижня припадає день Day .

День тижня для 1 січня визначається константою FіrstDay .

9. Визначити суму, різницю, добуток, частку і середнє арифметичне значення двох

цілих чисел X і Y значення яких уводяться з клавіатури.

10. З клавіатури вводяться два дійсних числа X і Y . Визначити число Z , у

відповідності з формулою: z = |(0,866*10-14

*X - 1,4123*10-12

*Y)|+|(X-Y)*10-13

|.

11. Змішали V1 літрів води, що має температуру T1, і V2 літрів води, що має

температуру T2 . Знайти об’єм Vs і температуру Ts утвореної суміші.

12. З клавіатури вводяться довжина, ширина, висота паралелепіпеда і густина

матеріалу, з якого він зроблений. Знайти площу поверхні, об’єм і масу

паралелепіпеда.

13. З клавіатури вводяться радіус, висота циліндра і густина матеріалу з якого він

зроблений. Знайти площу поверхні, об’єм і масу циліндра.

14. З клавіатури вводяться більший і менший радіуси, висота полого циліндра і

густина матеріалу з якого він зроблений. Знайти площу поверхні, об’єм і масу

такого циліндра.

15. З клавіатури вводяться радіус кулі і густина матеріалу з якого вона зроблена.

Знайти площу поверхні, об’єм і масу такої кулі.

16. З клавіатури вводяться радіус, висота конуса і густина матеріалу з якого він

зроблений. Знайти площу поверхні, об’єм і масу конуса.

17. Значення змінних X і Y ( X <> Y ) вводяться з клавіатури. Решта значень

присвоюється як константи. Розрахувати значення виразу за такою формулою:

18. Значення змінних M1,M2,R вводяться з клавіатури. Розрахувати значення виразу

за такою формулою:

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

17

19. Значення змінних X і Y вводяться з клавіатури. Розрахувати значення виразу за

такою формулою:

20. Значення змінних A,B,C є відповідними коефіцієнтами квадратного рівняння виду

Ax2+Bx+C=0 і вводяться з клавіатури. Розрахувати значення дискримінанту

квадратного рівняння.

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

1. Наведіть приклади цілочислових типів. Який об'єм пам'яті вони займають?

2. Наведіть приклади дійсних типів. Який об'єм пам'яті вони займають?

3. Що таке вираз, операнд, операція? Поясніть на прикладі.

4. Які операції ви знаєте? Наведіть приклади.

5. Прикладом проілюструйте пріоритет виконання операцій.

6. Яким чином використовуються методи класу Math для запису математичних

функцій?

7. Поясніть на прикладі використання таких методів класу Math: Pow, Sqrt, Abs,

Truncate, Exp.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

18

Лабораторна робота № 3

Лінійний алгоритм. Логічні типи даних

Мета роботи: здобуття практичних навичок роботи зі стандартними логічними типами

даних і створення програм з лінійним алгоритмом вирішення задачі.

Теоретичні відомості

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

Логічний тип bool призначений для оголошення величин, які б містили Булеві

значення true (так) та false (ні).

Наслідком виконання логічного виразу є логічне значення true або false.

Операндами логічних виразів можуть бути тільки логічні дані.

Логічними операціями є:

! – логічне заперечення «НІ»;

&& – логічне множення «І»;

|| – логічне додавання «АБО»;

^ – логічне виключне АБО.

Результат дії таких операцій наведений у таблиці істинності (табл. 4.1).

Таблиця 3.1. Таблиця істинності логічних операцій

A B ! A A && B A || B A ^ B true true false true true false true false false false true true false true true false true true false false true false false false

Приклад

Створити програму визначення наявності струму в мережі для паралельного та

послідовного підключення вимикачів.

Розв’язок

Для вирішення задачі використаємо три змінні логічного типу:

firstSwitcherON дорівнює true, якщо перший вимикач включений;

secondSwitcherON дорівнює true, якщо другий вимикач включений;

electricity дорівнює true, якщо струм є.

При оголошенні змінних вони були ініційовані, тобто їм були надані початкові

значення. Далі для випадку послідовного з’єднання була використана операція «логічне

І», а для паралельного «логічне АБО» (див. лістинг 3.1).

using System; namespace Lab3 { class Lab3 {

Лістинг 3.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

19

static void Main() { bool firstSwitcherON = true, secondSwitcherON = false; bool electricity; Console.WriteLine("Послiдовне з'єднання"); electricity = firstSwitcherON && secondSwitcherON; Console.WriteLine(electricity); Console.WriteLine("Паралельне з'єднання"); electricity = firstSwitcherON || secondSwitcherON; Console.WriteLine(electricity); Console.ReadKey(); } } }

Результат

Операції відношення і перевірки на рівність

Операції відношення (<, <=, >, >=, ==, !=) порівнюють перший операнд із другим.

Операнди повинні бути арифметичних типів. Результат операції має логічний тип і

приймає значення лише true або false. Правила розрахунку результатів наведені у

табл. 3.1

Таблиця 3.2. Результати операцій відношення

Операція Результат

x == y true, якщо x дорівнює y, інакше false

x != y true, якщо x не дорівнює y, інакше false

x < y true, якщо x менше y, інакше false

x > y true, якщо x більше y, інакше false

x <= y true, якщо x менше або дорівнює y, інакше false

x >= y true, якщо x більше або дорівнює y, інакше false

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

Умовна операція (? :) – тернарна, тобто має три операнди. Вона має формат:

операнд1 ? операнд2 : операнд3.

Перший операнд – вираз, для якого існує неявне перетворення до логічного типу.

Якщо результат першого операнду має значення true, то результатом умовної

операції буде значення другого операнду, інакше – третього операнду (див. лістинг 3.2).

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

int a = 11, b = 4; int r = b > a ? b : a;// r == 11

Пріоритет виконання операцій

Пріоритет виконання логічних операцій та операції відношення такий (в порядку

зменшення):

логічне заперечення: !

відношення: >, <, >=,<=

Лістинг 3.2

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

20

перевірки на рівність: ==, !=

виключне АБО: ^

логічне І: &&

логічне АБО: ||

умовна операція: ?

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

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Перш за все слід усвідомити, що логічну інформацію можна обробляти так само, як

і числову, тільки замість арифметичних операцій слід застосовувати логічні

операції, до яких відносяться: логічне І; логічне АБО; логічне виключне АБО;

логічне НІ;

Результатом логічного виразу завжди буде логічне дане, представлене значеннями

true або false;

Якщо до складу логічного виразу входять цілі або дійсні числа, то вони повинні

порівнюватися між собою за допомогою операцій відношення, таких як: > більше;

< менше; >= не менше; <= не більше; != не дорівнює; == дорівнює.

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

або нерівності (!=). Замість цього краще порівнювати різницю між значеннями з

похибкою, яку ви припускаєте, наприклад, замість X!=Y, записати так (X-

Y)>0.0001;

Пам’ятайте, що операції відношення та логічні операції мають певний пріоритет,

тому для уникнення помилок у логічному виразі застосовуйте круглі дужки;

Якщо до складу логічного виразу входять символьні або рядкові дані, вони повинні

порівнюватися між собою, причому саме порівнювання відбувається по символах у

відповідності до коду символу у кодовій таблиці комп’ютера;

Створюючи логічний вираз слід передбачити усі можливі варіанти, а не

обмежуватися одним знайденим рішенням;

При вирішенні завдань на шаховій дошці найчастіше слід аналізувати різницю

положення фігур, для покращення сприйняття – намалюйте шахову дошку і

проставте необхідні фігури;

При вирішенні задач на попадання точки у заштриховану зону, слід аналітично

представити геометричні елементи з яких така зона складається та порівняти

положення точки з цими елементами;

Для скорочення логічних виразів слід використовувати властивості симетричності

відносно однієї або двох осей координат;

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

21

Варіанти завдань

Примітка. Зверніть увагу на те, що усі завдання цієї лабораторної роботи повинні бути

вирішені без використання оператора IF. Результатом завжди буде логічне значення

true або false.

1. Логічній змінній Nachalo присвоїти значення true, якщо початок системи

координат попадає всередину прямокутника, координати вершин якого

визначаються дійсними змінними (X1,Y1),(X2,Y2). Значення X1,Y1,X2,Y2

вводяться з клавіатури. У програмі слід передбачити різні варіанти розташування

точок 1 і 2 на координатній площині.

2. Логічній змінній Trіangle присвоїти значення true, якщо існує трикутник,

координати вершин якого визначаються дійсними змінними

(X1,Y1),(X2,Y2),(X3,Y3). Значення X1,Y1,X2,Y2,X3,Y3 вводяться з

клавіатури.

3. З'ясувати, чи можна прямокутник зі сторонами A,B розмістити всередині

прямокутника зі сторонами C,D так, щоб кожна зі сторін одного прямокутника

була паралельна або перпендикулярна до кожної сторони іншого прямокутника.

Результат присвоїти логічній змінній Rozmіst.

4. З'ясувати, чи пройде цеглина з ребрами L,B,H у прямокутний отвір з сторонами

X,Y. Результат присвоїти логічній змінній Ce.

5. Логічній змінній Visokos присвоїти логічне значення true якщо рік є високосним.

Порядковий номер року визначається змінною Rіk. Рік є високосним, якщо його

номер ділиться на 4 без остачі, однак з років, що діляться без остачі на 100,

високосними є лише ті, які діляться без остачі на 400, тобто 1700, 1800 – не

високосні роки, 2000 – високосний рік.

6. Логічній змінній Pole присвоїти значення true, якщо поля (Hor1,Ver1) і

(Hor2,Ver2) шахової дошки мають однаковий колір

(Hor1,Ver1,Hor2,Ver2 – цілі від 1 до 8).

7. Логічній змінній Boj присвоїти значення true, якщо ферзь, розташований на полі

(Hor1,Ver1), б'є поле (Hor2,Ver2) шахової дошки

(Hor1,Ver1,Hor2,Ver2 – цілі від 1 до 8).

8. Логічній змінній Boj присвоїти значення true, якщо кінь, розташований на полі

(Hor1,Ver1), б'є поле (Hor2,Ver2) шахової дошки

(Hor1,Ver1,Hor2,Ver2 – цілі від 1 до 8).

9. З'ясувати, чи можна за один хід перемістити туру з поля (Hor1,Ver1) на поле

(Hor2,Ver2). Вважати, що тура знаходиться на дошці одна. Результат присвоїти

логічній змінній Ladya.

10. З'ясувати, чи можна за один хід перемістити слона з поля (Hor1,Ver1) на поле

(Hor2,Ver2). Вважати, що слон знаходиться на дошці один. Результат присвоїти

логічній змінній Slon.

11. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 1. Результат присвоїти

логічній змінній Target.

12. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 2. Результат присвоїти

логічній змінній Target.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

22

13. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 3. Результат присвоїти

логічній змінній Target.

14. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 4. Результат присвоїти

логічній змінній Target.

15. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 5. Результат присвоїти

логічній змінній Target.

16. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 6. Результат присвоїти

логічній змінній Target.

17. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 7. Результат присвоїти

логічній змінній Target.

18. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 8. Результат присвоїти

логічній змінній Target.

19. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 9. Результат присвоїти

логічній змінній Target.

20. З’ясувати, чи потрапляє точка з координатами X,Y, значення яких уводяться з

клавіатури до заштрихованої зони, зображеної на рис. 1, 10. Результат присвоїти

логічній змінній Target.

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

1. Наведіть приклади логічних змінних і констант.

2. Що таке логічний вираз? Поясніть на прикладі.

3. Які логічні операції ви знаєте? Наведіть приклади.

4. Які операції відношення Вам знайомі? Проілюструйте прикладом.

5. Прикладом проілюструйте пріоритет виконання логічних операцій.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

23

Рис. 1. Завдання до варіантів 11-20

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

24

Лабораторна робота № 4

Розгалужений алгоритм. Оператор IF

Мета роботи: здобуття практичних навичок створення розгалужених алгоритмів з

використанням оператора перевірки умови IF.

Теоретичні відомості

Умовний оператор if використовується для розгалуження процесу розрахунків на

два напрямки. Структурна схема оператора приведена на рис. 4.1

Рис. 4.1 Структурна схема умовного оператора if.

Формат оператора:

if ( логічний вираз ) оператор_1; [else оператор_2;]

Спочатку обчислюється логічний вираз. Якщо він має значення true, то

виконується перший оператор, інакше – другий. Після цього управління передається на

оператор, який слідує за умовним. Гілка else може бути відсутньою. Якщо у будь-якій

гілці потрібно виконати декілька операторів, їх необхідно помістити у блок за допомогою

фігурних дужок {}, інакше компілятор не зможе зрозуміти де закінчується розгалуження.

Приклади наведені у лістингу 4.1.

int a = 0, b = 1, c = 2, d = 3, max = 0; //приклад 1 if (a < 0) b = 1; //приклад 2 if (a > d || a == 0) b++; else {

b *= a; a = 10;

} //приклад 3 if (a < b)

if (a < c) min = a;

else min = c;

else if (b < c)

min = b; else

min = c; //приклад 4

Лістинг 4.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

25

if (b > a) max = b; else max = a;

У прикладі 1 відсутня гілка else. Така конструкція реалізує пропуск оператора,

оскільки присвоювання або виконується, або не виконується в залежності від виконання

умови.

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

умовних операцій. Так у прикладі 2 вираз буде істинний, якщо буде виконуватися одна із

умов в дужках.

У прикладі 3 за допомогою оператора if обчислюється найменше значення із трьох

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

ключового слова if.

Конструкції, подібні до приведеної у прикладі 4 (обчислення найбільшого з двох

чисел) простіше записувати за допомогою тернарної умовної операції, наприклад:

max = b > a ? b : a

Приклад

Завдання: Написати програму для розрахунку опору електричного ланцюга, який містить

два резистори, що можуть бути з'єднані послідовно або паралельно.

Рішення: Перед вирішенням задачі слід згадати, що загальний опір ланцюга, в залежності

від типу з'єднання, розраховується по різним формулам. Для послідовного з'єднання:

Rs=R1+R2; для паралельного з'єднання: Rs=(R1*R2)/(R1+R2). Для вирішення задачі

потрібно спочатку організувати введення з клавіатури значень опорів резисторів R1 i R2

(дійсні змінні), а також типу з'єднання (ціла змінна TZ). Результат буде присвоєний

дійсній змінній Rs, значення якої буде розраховуватися за різними залежностями.

Наприкінці буде виведено розраховане значення.

Код програми наведений в лістингу 4.2. Зверніть увагу на наступне:

перетворення типу рядок-число виконане за допомогою метода Parse, який є в

кожному стандартному арифметичному типі (раніше ми розглядали спеціальний

клас Convert, який також може бути використаний з цією метою);

для виведення результату використаний інший формат метода WriteLine, що

містить більше одного параметра. Першим параметром передається строкова

константа "Опiр ланцюга = {0} Ом", яка містить параметр {0} у фігурних дужках –

це означає, що даний параметр буде при виведенні замінений значенням першої

(нумерація починається з нуля) змінної, яка слідує після коми, тобто значенням

змінної Rs.

using System; namespace Lab4 { class Program { static void Main(string[] args) { float R1 = 1, R2 = 1, Rs = 1; byte TZ = 1; Console.Write("R1 = ");

Лістинг 4.2

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

26

string buf = Console.ReadLine(); R1 = float.Parse(buf); Console.Write("R2 = "); buf = Console.ReadLine(); R2 = float.Parse(buf); Console.Write("Тип з'єднання (1-послiдовне, 2-паралельне) "); buf = Console.ReadLine(); TZ = byte.Parse(buf); if (TZ == 1) Rs = R1 + R2; else Rs=R1*R2/(R1+R2); Console.WriteLine("Опiр ланцюга = {0} Ом", Rs); Console.ReadLine(); } } }

Результат

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Інструкція IF використовується для вибору одного з двох напрямків подальшого

ходу програми (послідовності інструкцій, які повинні виконуватися);

Вибір послідовності інструкцій відбувається під час виконання програми в

залежності від виконання або невиконання умови;

Умова – це логічна змінна, константа або вираз, що може приймати значення true

або false;

Якщо до складу логічного виразу входять дійсні числа, то не рекомендується

використовувати операції чіткої рівності (=) або нерівності (<>). Замість цього

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

X=0, краще буде так: X<0.1E-08.

Варіанти завдань

1. З клавіатури вводяться дійсні числа A,B,C, які є коефіцієнтами квадратного

рівняння виду Ax2+Bx+C=0 (при A<>0). Вивести на екран одне з повідомлень: „Рівняння має два дійсних корені”, „Рівняння має один

корінь”, „Рівняння не має дійсних коренів”.

2. Створити програму для розрахунку значення Y у відповідності до такої формули:

3. З клавіатури вводяться три числа. Якщо вони утворюють послідовність, що

збільшується – вивести на екран повідомлення „Числова послідовність

збільшується”. Якщо вони утворюють послідовність, що зменшується –

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

27

вивести на екран повідомлення „Числова послідовність зменшується”. У

протилежному випадку вивести на екран повідомлення „Невизначена числова

послідовність”.

4. Перерозподілити значення дійсних змінних X і Y таким чином, щоб у Х

опинилося більше значення, а у Y – менше. Вивести на екран результат.

5. Змінній D присвоїти максимальне значення дійсних змінних A,B,C. Вивести на

екран всі значення.

6. Змінній M присвоїти мінімальне значення змінних цілого типу I,J,K. Вивести на

екран всі значення.

7. Змінній Z присвоїти максимальне значення дійсних змінних X,Y у випадку, коли

X<0, і мінімальне значення X,Y у протилежному випадку. Вивести на екран всі

значення.

8. Змінній N присвоїти номер чверті координатної площини в яку потрапляє точка з

координатами X,Y. Вивести на екран всі значення.

9. Значення змінних A,B,C, які вводяться з клавіатури поміняти місцями так, щоб

стало: A<B<C. Вивести на екран початкову і кінцеву послідовність.

10. З клавіатури вводяться довільні дійсні числа L1,L2,L3. Проаналізувати, чи можна

утворити трикутник з такими сторонами і вивести на екран одне із повідомлень:

„Трикутник з такими сторонами не можна утворити”, „Це рівносторонній

трикутник”, „Це не рівносторонній трикутник”.

11. З клавіатури вводяться довільні дійсні числа L1,L2,L3. Проаналізувати, чи можна

утворити трикутник з такими сторонами і вивести на екран одне із повідомлень: „Трикутник з такими сторонами не можна утворити”, „Це

рівнобічний трикутник”, „Це не рівнобічний трикутник”.

12. З клавіатури вводяться довільні дійсні числа L1,L2,L3. Проаналізувати, чи можна

утворити трикутник з такими сторонами і вивести на екран одне із повідомлень: „Трикутник з такими сторонами не можна утворити”, „Це

прямокутний трикутник”, „Це не прямокутний трикутник”.

13. Написати програму визначення вартості телефонної розмови з урахуванням 20%

знижки у суботу і неділю.

14. Написати програму визначення загальної вартості покупки з урахуванням знижки.

Знижка 3% надається коли вартість покупки перевищує 500 грн. і 5% – при

вартості покупки понад 1000 грн.

15. Оптимальна вага людини визначається формулою: „Зріст(у см) – 100”. З

клавіатури ввести вагу і зріст людини. Вивести на екран повідомлення: „Вага

більша за норму”, „Вага менша за норму”, „Вага нормальна”.

Вагу будемо вважати нормальною при відхиленні від точної норми ±2,5 кг.

16. Написати програму перевірки таблиці множення від 0 до 9. Пропонувати

користувачеві вводити результат множення і виводити на екран повідомлення

„Вірно” або „Помилка”.

17. Написати програму обчислення функції, що задана графічно на рис.1, 1.

18. Написати програму обчислення функції, що задана графічно на рис.1, 2.

19. Написати програму обчислення функції, що задана графічно на рис.1, 3.

20. Написати програму обчислення функції, що задана графічно на рис.1, 4.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

28

Рис. 1. Функції до варіантів 17 - 20

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

1. Запишіть формат оператора перевірки умови IF.

2. Якого типу може бути умова в операторі IF?

3. Поясніть роботу спрощеного оператора IF. Наведіть приклади.

4. Поясніть роботу повного оператора IF. Наведіть приклади.

5. Як працюють вкладені оператори перевірки умови?

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

29

Приклад оформлення звіту з лабораторної роботи

Лабораторна робота № 4

Розгалужений алгоритм. Оператор IF

Мета роботи: здобуття практичних навичок створення розгалужених алгоритмів з

використанням оператора перевірки умови IF.

Завдання (варіант № 7)

Написати програму для обчислення значення функції,

яка задана графічно

Алгоритм вирішення задачі

Рішення цієї задачі реалізується розгалуженим алгоритмом,

який зображений нижче.

Програма: using System; namespace Lab4_1 { class Program { static void Main(string[] args) { float x=0, y=0; Console.Write("Введiть X: "); string buf = Console.ReadLine(); x = float.Parse(buf); if ((0 < x) && (x < 1)) y = 1; else y = 0; Console.WriteLine("y = " + y); Console.ReadKey(); } } }

Результат роботи:

Висновки: При виконанні лабораторної роботи я створив програму з розгалуженим

алгоритмом роботи і здобув навички роботи з оператором перевірки умови IF.

Виконав: ст. гр. МТ-51 Перевірили:

Коваленко В. П. ст. викл. Лапач С.М.

ст. викл. Лашина Ю.В.

X

Y

1

1

Початок

Увести

Х

0<X<1

Y:=1; Y:=0;

Завершення

Так Ні

Вивести

Y

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

30

Лабораторна робота № 5

Розгалужений алгоритм. Оператор switch

Мета роботи: здобуття практичних навичок створення розгалужених алгоритмів з

використанням оператора вибору switch.

Теоретичні відомості

Оператор switch (перемикач) призначений для розгалуження процесу виконання

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

реалізований за допомогою оператора switch наведений на рис. 5.1.

Формат оператора:

switch(вираз) {

case константний_вираз_1: [список_операторів_1] case константний_вираз_2: [список_операторів_2] ... case константний_вираз_n: [список_операторів_n] [default: оператори]

}

Рис. 5.1 Приклад блок-схеми алгоритму для оператора switch

Виконання оператора починається із обчислення виразу. Тип виразу може бути

будь-яким, для якого існує неявне перетворення до цілого числа, рядка або символу.

Також може бути переліком.

Потім управління передається першому оператору із списку, поміченого

константним виразом, значення якого співпадає із обчисленим. Якщо жодне значення не

співпадає, виконуються оператори, розташовані після ключового слова default, а при

Оператори 1

Оператори 2

Оператори N

Оператори

Вираз = case1

Вираз = case2

Вираз = caseN

так

так

так

ні

ні

ні

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

31

його відсутності – відбувається перехід до наступного оператора.

Кожна гілка перемикача повинна закінчуватися явним оператором переходу, а саме

операторами break, goto або return.

В межах даної роботи використовуватиметься лише оператор break. Оператор

break відноситься до групи операторів передачі управління і використовується всередині

операторів циклу або вибору для переходу в точку програми, яка знаходиться

безпосередньо за оператором, всередині якого знаходиться break.

Приклад застосування оператора switch наведено у лістингу 5.1.

double res = 0; switch (op) {

case '+': res = a + b; break; case '-': res = a - b; break; case '*': res = a * b; break; case '/': res = a / b; break; default: res = double.NaN; break;

}

Перевагу оператору switch у порівнянні з оператором if надають у тих випадках,

коли в програмі потрібно розгалуження обчислення більш ніж на два напрямки і вираз, за

значенням якого виконується перехід на ту чи іншу гілку, не є дійсним числом.

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Інструкція switch використовується для вибору одного з кількох подальших

напрямків виконання програми;

Вибір послідовності здійснюється під час виконання програми в залежності від

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

Якщо значення змінної-селектора не потрапило до списку можливих значень, тоді або

жоден з операторів не буде виконуватися, або виконається оператор, що стоїть після

default наприкінці оператора switch.

Варіанти завдань

1. Скласти програму, яка буде реагувати на натискання на клавіатурі клавіш Y і N у

будь-якому регістрі і, якщо була натиснута клавіша Y(y) – на екран виводити

повідомлення „Так”, якщо була натиснута клавіша N(n) – виводити повідомлення

„Ні”, якщо була натиснута будь-яка інша клавіша – виводити повідомлення „Вибір

не зроблено”.

2. Скласти програму, яка буде реагувати на натискання на клавіатурі клавіш зі знаками

математичних операцій (+,-,*,/). На екран повинні виводитись такі повідомлення: „Операція додавання”, „Операція віднімання”, „Операція

множення”, „Операція ділення”. У разі натискання будь-якої іншої клавіші

Лістинг 5.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

32

повинно виводитись на екран повідомлення „Уведений символ – не

математична операція”.

3. Скласти програму, яка буде відповідним чином реагувати на натискання символів

„!”, „?”, „$”, „%” і виводити на екран такі повідомлення: „Знак оклику”, „Знак питання”, „Символ долара”, „Символ відсотків”,

„Невизначений символ” – в усіх інших випадках..

4. Скласти програму, яка буде дозволяти по введеному номеру місяця визначати

кількість днів у ньому. Вважати, що рік не високосний. Програма повинна

відповідним чином реагувати на помилково введення номера місяця.

5. Скласти програму, яка у відповідь на запитання про номер місяця буде виводити на

екран інформацію про пору року або виводити повідомлення про те, що місяць з

таким номером не існує.

6. Скласти програму, яка у відповідь на запитання про екзаменаційну оцінку за

п’ятибальною шкалою буде виводити на екран такі повідомлення: „Відмінно”, „Добре”, „Задовільно”, „Незадовільно”, „Неприпустима оцінка

або символ”.

7. Скласти програму, яка у відповідь на запитання про номер дня тижня буде виводити

такі повідомлення: „Робочий день”, „Вихідний день”, „Невірний номер

дня тижня”.

8. Скласти програму, яка у відповідь на запитання про номер дня тижня буде виводити

його текстову назву, або повідомлення про невірний номер дня тижня.

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

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

10. Скласти програму, яка у відповідь на запитання про рік в межах від 2010 до 2015 буде

виводити текстовий запис року, або повідомлення про те, що рік з таким номером не

аналізується.

11. Скласти програму, яка в залежності від обраної марки круглошліфувального верстату

виводитиме його потужність та масу відповідно до таблиці 5.1.

12. Скласти програму, яка в залежності від обраної марки круглошліфувального верстату

виводитиме найбільші розміри заготовки, що встановлюється на верстаті відповідно

до таблиці 5.1.

13. Скласти програму, яка в залежності від обраної марки круглошліфувального верстату

виводитиме найбільшу довжину зовнішнього шліфування та найбільший зовнішній

діаметр шліфувального кругу відповідно до таблиці 5.1.

Таблиця 5.1. Круглошліфувальні верстати

Верстат 3У10В 3А110В 3М151 3У142 Найбільші розміри заготовки,

що встановлюється, мм:

- діаметр

100 140 200 400

- довжина 160 200 700 1000 Найбільша довжина

зовнішнього шліфування, мм 160 180 700 1000

Найбільший зовнішній діаметр

шліфувального кругу, мм 250 250 600 600

Потужність електродвигуна

приводу головного руху, кВт 1,1 2,2 10 7,5

Маса, кг 1980 2000 5600 7600

14. Скласти програму, яка в залежності від обраної марки токарного (токарного-

гвинторізного) верстату виводитиме найбільший діаметр заготовки, що обробляється

над станиною та над супортом відповідно до таблиці 5.2.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

33

15. Скласти програму, яка в залежності від обраної марки токарного (токарного-

гвинторізного) верстату виводитиме повідомлення про мінімальну та максимальну

частоту обертів шпинделя відповідно до таблиці 5.2.

16. Скласти програму, яка в залежності від обраної марки токарного (токарного-

гвинторізного) верстату виводитиме його потужність та масу відповідно до

таблиці 5.2.

Таблиця 5.2. Токарно-гвинторізні і токарні верстати

Верстат 16Т02А 16К20 16К25 1А670 Найбільший діаметр заготовки,

що обробляється, мм:

- над станиною

125 400 500 2000

- над супортом 75 220 290 1600 Частота обертів шпинделя,

об/хв 320-3200 12,5-1600 12,5-1600 1-125

Потужність електродвигуна

приводу головного руху, кВт 0,27 11 11 100

Маса, кг 35 3685 3775 120000

17. Скласти програму, яка в залежності від обраної марки вертикально-свердлильного

верстату виводитиме найбільший умовний діаметр свердлення в сталі та найбільшу

відстань від торця шпинделя до робочої поверхні столу відповідно до таблиці 5.3.

18. Скласти програму, яка в залежності від обраної марки вертикально-свердлильного

верстату виводитиме найбільший хід та частоту обертів шпинделя відповідно до

таблиці 5.3.

19. Скласти програму, яка в залежності від обраної марки вертикально-свердлильного

верстату виводитиме його потужність і масу відповідно до таблиці 5.3.

Таблиця 5.3. Вертикально-свердлильні верстати

Верстат 2Н118 2Н125 2Н135 2Н150 Найбільший умовний діаметр

свердлення в сталі, мм 18 25 35 50

Найбільша відстань від торця

шпинделя до робочої поверхні

столу, мм

650 700 750 800

Найбільший хід шпинделя, мм 150 200 250 300 Частота обертів шпинделя,

об/хв 180-2800 45-2000 31-1400 22-1000

Потужність електродвигуна

приводу головного руху, кВт 1,5 2,2 4,0 7,5

Маса, кг 450 880 1200 1870

20. Скласти програму, яка у відповідь на запитання про екзаменаційну оцінку за шкалою

ECTS (див. табл. 2 додатку А) буде виводити на екран такі повідомлення:

„Відмінно”, „Добре”, „Задовільно”, „Незадовільно”, „Не

допущено”, „Неприпустима оцінка або символ”.

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

1. Наведіть формат оператора switch.

2. Які типи даних можна використовувати в якості виразу?

3. В чому виявляється схожість і відмінність операторів switch і If?

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

34

4. Чи можливий випадок, коли жоден з операторів у операторі switch не буде

виконуватися?

5. Наведіть приклад блок-схеми алгоритму, що може бути реалізований за допомогою

оператора switch.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

35

Лабораторна робота № 6

Циклічний алгоритм. Оператор FOR

Мета роботи: здобуття практичних навичок створення циклічних алгоритмів з

використанням оператора повторювання For.

Оператори циклу

Оператори циклу використовуються для обчислень, які повторюються

багаторазово. У C# є чотири види циклів: цикл із передумовою, цикл із пост-умовою, цикл

із параметром і цикл перебору. Кожен із них складається із певної послідовності

операторів.

Блок, для виконання якого організовується цикл, називається тілом циклу. Решта

операторів служать для управління процесом повторення обчислень. Це початкові

установки, перевірка умови продовження циклу і модифікація параметру циклу. Один

прохід циклу називається ітерацією.

Початкові установки служать для того, щоб до входження в цикл задати значення

змінних, які в ньому використовуються.

Параметром циклу називається змінна, яка використовується під час перевірки

умови продовження циклу і примусово змінюється на кожній ітерації, причому, як

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

лічильником циклу. Кількість повторів такого циклу можна визначити попередньо.

Цикл із параметром for має наступний формат:

for (ініціалізація; вираз; модифікації) оператор;

Будь-яка із частин оператора for може бути опущеною (але крапки із комою

повинні бути на свої місцях!)

Ініціалізація служить для оголошення величин, які використовуються у циклі, і

присвоєння їм початкових значень. У цій частині можна записати декілька операторів,

розділених комою, наприклад:

for (int i = 0, j = 20; ...) або

int k, m; for (k = 1, m = 0; ...)

Областю дії змінних, які оголошені в частині ініціалізації циклу, є цикл.

Ініціалізація виконується один раз на початку виконання циклу.

Вираз має логічний тип і визначає умову виконання циклу. Якщо його результат

дорівнює true, то цикл виконується.

Модифікації виконуються після кожної ітерації циклу і служать як правило для

зміни параметрів циклу. У частині модифікацій можна записати декілька операторів через

кому, наприклад:

for (int i = 0, j = 20; i < 5 && j > 10; i++, j-- )...

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

36

Простий чи складений оператор є тілом циклу.

Приклад 1.

Завдання: Написати програму для виведення на екран таблицю квадратів і кубів цілих

чисел в межах від -5 до 5.

Рішення: Вирішення цієї задачі здійснюється у два етапи. На першому етапі виводиться

заголовок таблиці, а на другому - одним оператором циклу виводиться: значення базового

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

відсутня частина введення початкових даних з клавіатури (Лістинг 6.1).

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.WriteLine("x\tx^2\tx^3");

for (int i = -5; i <= 5; i++)

Console.WriteLine(i+"\t"+i*i+"\t"+Math.Pow(i,3));

Console.ReadKey();

}

}

} Результат

Приклад 2

Завдання. Вивести на екран таблицю cos(x)*sіn (y) при зміні y від 0° до 60° з кроком 10°

(виведення по горизонталі) і зміні x від 0° до 90° з кроком 15° (виведення по вертикалі).

Рішення: Вирішення цієї задачі здійснюється у два етапи. На першому етапі виводиться

заголовок таблиці – значення y, а на другому – за допомогою двох вкладених операторів

циклу for виводиться поточне значення x, розраховується і виводиться значення у, курсор

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

алгоритму наведена в Лістингу 6.2.

using System;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

int x,y;

double f;

Лістинг 6.2

Лістинг 6.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

37

for (y = 0; y <= 60; y += 10)

Console.Write("{0,8}", y); // виведення заголовку таблиці

Console.WriteLine(); // переведення рядка

for (x = 0; x <= 90; x += 15) //цикл по x

{

Console.Write("{0,2}",x); //виведення значення x

for (y = 0; y <= 60; y += 10) // вкладений цикл по y

{

//розрахунок значення функції

f = Math.Cos(x*Math.PI/180) * Math.Sin(y*Math.PI/180);

Console.Write("{0,8:0.00}",f); //виведення значення функції

} //кінець циклу по y

Console.WriteLine(); //переведення рядка

}//кінець циклу по x

Console.ReadKey();

}

}

}

Рис. 6.1. Блок-схема алгоритму вирішення задачі 2

Початок

y=0;y<=60;

y+=10

Вивести y

x=0; x<90;

x+=15

Вивести x

y=0;y<=60;

y+=10

f=Cos(x)*Sin(y)

Вивести f

Кінець

Перевести рядок

Перевести рядок

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

38

Результат

Рекомендації щодо виконання роботи

Уважно ознайомтесь з прикладами

Пам’ятайте, якщо всередину одного оператора циклу вкладений інший, то

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

початкового до кінцевого значення, скільки це вказано в оточуючому операторі

циклу

Для отримання відмінної оцінки таблиці повинні бути оформлені заголовками

Варіанти завдань

1. Вивести на екран таблицю cos(x)-sіn(y) при зміні y від 0° до 90° з кроком 15°

(виведення по горизонталі) і зміні x від 0° до 180° з кроком 30° (виведення по

вертикалі).

2. Вивести на екран таблицю 1+sіn(x),1-sіn(x),1+tg(x),1-tg(x)

(виведення по горизонталі) при зміні аргументу від 0° до 180° з кроком 15°

(виведення по вертикалі). В програмі передбачити неможливість обчислення

tg(90°).

3. Вивести на екран таблицю sіn(x)+sіn(y) при зміні y від 0° до 90° з кроком 30°

(виведення по горизонталі) і зміні x від 0° до 90° з кроком 10° (виведення по

вертикалі).

4. Вивести на екран таблицю ln(x),ex при зміні аргументу від 0 до е з кроком

e/20. В програмі передбачити неможливість обчислення ln(0).

5. Вивести на екран таблицю tg(x),сtg(x) (по горизонталі) при зміні аргументу

від 0° до 90° з кроком 5° (виведення по вертикалі). В програмі передбачити

неможливість ділення на 0.

6. Вивести на екран таблицю 1/sіn(x),1/cos(x),1/(sіn(x)·cos(x)) (по

горизонталі), при зміні аргументу від 0° до 180° з кроком 10° (виведення по

вертикалі). В програмі передбачити неможливість ділення на 0.

7. Вивести на екран таблицю множення у вигляді квадрату Піфагора. Таблицю

вивести при зменшенні множників від 10 до 1.

8. Вивести на екран таблицю множення на 7 при зростанні першого множника від 1

до 10.

9. Вивести на екран таблицю множення на 8 при зменшенні першого множника від 10

до 1.

10. Вивести на екран таблицю квадратів перших N цілих додатних непарних чисел.

Кількість таких чисел N повинна вводитись під час виконання програми.

11. Вивести на екран таблицю степенів двійки від 0 до 10.

12. Вивести на екран таблицю значень функції y=-2,4x2+5x-3 у діапазоні від -2 до 2

з кроком 0,5.

13. Вивести на екран середнє арифметичне значення довільної послідовності N дійсних

чисел. Кількість чисел і їхні значення вводяться з клавіатури.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

39

14. Вивести таблицю вартості яблук в діапазоні від 50г до 1кг з кроком 50г. Вартість

1кг яблук повинна вводитися під час роботи програми.

15. Вивести на екран таблицю значень функції y=|x-2|+|x-1| у діапазоні від -4 до

4 з кроком 0,5.

16. Вивести на екран таблицю cos(x)+sіn2(y) при зміні y від 0° до 90° з кроком

30° (виведення по горизонталі) і зміні x від 0° до 180° з кроком 15° (виведення по

вертикалі).

17. Вивести на екран таблицю sіn(x),cos(x),tg(x),ctg(x) (виведення по

горизонталі) при зміні аргументу від 0° до 180° з кроком 10° (виведення по

вертикалі). В програмі передбачити неможливість обчислення

tg(90°),ctg(0°),ctg(180°).

18. Вивести на екран таблицю sіn(x)·sіn(y) при зміні y від 0° до 90° з кроком 15°

(виведення по горизонталі) і зміні x від 0° до 90° з кроком 15° (виведення по

вертикалі).

19. Вивести на екран таблицю xa,ax при зміні a від 0 до е з кроком e/20. Значення

дійсної змінної x повинно вводитися з клавіатури.

20. Вивести на екран таблицю xn при зміні n від 1 до 5 (виведення по горизонталі) та

при зміні х від 1 до 9 з кроком 2 (виведення по вертикалі).

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

1. Формат оператора циклу for. Поясніть поняття ініціалізація, вираз, модифікації.

2. Як працюють вкладені один в один оператори циклу?

3. Поясність поняття: тіло циклу, ітерація

4. Поясність поняття: початкові установки, параметр циклу

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

40

Лабораторна робота № 7

Циклічний алгоритм. Оператори while та do …while

Мета роботи: здобуття практичних навичок створення циклічних алгоритмів з

використанням операторів повторювання while та do…while.

Теоретичні відомості

Оператор циклу із передумовою while

Цикл із передумовою має формат:

while (вираз) оператор;

Вираз повинен бути логічного типу. Наприклад, це може бути операція відношення

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

простий чи складений оператор (блок). Перевірка умови продовження циклу виконується

на кожній ітерації до тіла циклу (рис. 7.3). Виконання оператора або блока операторів, що

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

стане значення false. Якщо під час першої перевірки вираз дорівнює false, то цикл не

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

за ним оператор.

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

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

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

циклу, що впливає на умову продовження, або всередині самої умови повинна бути

функція, яка здатна змінити її значення. У іншому випадку існує ризик отримати

нескінченний цикл.

Рис. 7.1 Блок-схема реалізації циклу з передумовою

Початкові

установки

Умова

продовження

Оператор(и)

Модифікація

параметра циклу

Так

Ні

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

41

Приклад.

Завдання: Напишіть програму, яка з точністю, що введена з клавіатури розраховує

значення функції sin(x). Для цього скористайтеся такою формулою:

Рішення: для вирішення задачі скористаємось алгоритмом, наведеним на рис.7.2.

Спочатку користувач вводить з клавіатури значення x – аргумента функції та значення e –

точності розрахунку. Для розрахунку суми Sum використаємо цикл, в якому на кожній

ітерації будемо обраховувати значення доданка a за рекурентною1 формулою

(див. рис.7.2.). Умовою продовження буде результат порівняння значення доданка a на

кожній ітерації з точністю, якої необхідно досягти. До початку циклу необхідно задати

початкові установки, тобто присвоїти змінним початкові значення. Запис алгоритму

мовою програмування представлено в лістингу 7.1.

Рис. 7.2 Блок-схема вирішення задачі

1 Рекурентною називається формула, у якій нове значення змінної обчислюється із використанням її

попереднього значення.

Sum=0 a=x k=0

|a| > e

Sum += a;

Так

Ні

k++

Початок

Ввести x, e

Вивести x, Sum

Кінець

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

42

using System;

namespace ConsoleApplication1

{

class Program

{

static void Main(string[] args)

{

Console.Write("x= ");

double x = Convert.ToDouble(Console.ReadLine());

Console.Write("e= ");

double e = Convert.ToDouble(Console.ReadLine());

//Init

double Sum = 0, a = x;

int k = 0;

while (Math.Abs(a) > e)

{

Sum += a;

a *= -x * x / ((2 * k + 2) * (2 * k + 3));

k++;

}

Console.WriteLine("sin({0})={1}", x, Sum);

Console.WriteLine("sin({0})={1}",x, Math.Sin(x));

Console.ReadKey();

}

}

}

Результат

Оператор циклу із пост-умовою do while

Особливістю оператора є те, що перевірка умови продовження циклу виконується

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

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

перевірка, чи потрібно його виконувати ще раз.

Цикл із пост-умовою реалізує алгоритм, наведений на рис. 7.3, і має наступний

формат:

do оператор while вираз;

Лістинг 7.1

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

43

Спочатку виконується простий або складений оператор, який утворює тіло циклу, а

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

істинний, то тіло циклу виконується ще раз і перевірка повторюється. Цикл завершується,

коли вираз стає рівним false або в тілі циклу буде виконаний один із операторів передачі

управління. Цей вид циклу застосовується у тих випадках, коли тіло циклу необхідно

виконати хоча б раз.

Рекомендації щодо виконання роботи

При вирішенні завдань цієї лабораторної роботи слід пам’ятати по таке:

Оператор while виконується до тих пір поки умова, що слідує за while

залишається вірною;

Оператор do…while виконується хоча б один раз, оператор while може не

виконуватися жодного разу;

Якщо тіло оператора циклу while складається більше ніж з одного оператора, слід

застосовувати блок { };

Всередині операторів циклу do…while і while обов’язково повинна бути

інструкція, що впливає на умову завершення циклу. В іншому випадку ви

ризикуєте отримати нескінченний цикл.

Варіанти завдань

1. Напишіть програму, основою якої є цикл, який виводить на екран запит і

завершується тільки тоді, коли введене числове значення попадає у діапазон

визначений константами Min, Max. Перед кожним повторюванням очищувати

екран.

2. Напишіть програму, основою якої є цикл, який виводить на екран запит і

завершується тільки тоді, коли користувач увів один із символів Y,y,N,n.

3. Напишіть програму, основою якої є цикл, який виводить на екран запитання

(придумайте самостійно) і завершується тільки у випадку вірної відповіді на

запитання. У разі невірної відповіді слід очищувати екран, виводити повідомлення

про помилку і повторювати запитання.

Початкові

установки

Умова

продовження

Оператор(и)

Модифікація

параметра циклу

Так

Ні

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

44

4. Напишіть програму, яка з точністю, що введена з клавіатури розраховує число .

Для цього скористайтеся тим, що значення часткової суми послідовності 1-

1/3+1/5-1/7+1/9+... при підсумовуванні достатньо великої кількості членів

наближується до /4.

5. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln(x),(x>0). Для цього скористайтеся такою формулою:

6. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln(x),(0<x<=2). Для цього скористайтеся такою формулою:

7. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln(x),(x>1/2). Для цього скористайтеся такою формулою:

8. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln(1+x),(|x|<1). Для цього скористайтеся такою формулою:

9. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln(1-x),(|x|<1). Для цього скористайтеся такою формулою:

10. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln((1+x)/(1-x)),(|x|<1). Для цього скористайтеся такою

формулою:

11. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=ln((x+1)/(x-1)),(|x|>1). Для цього скористайтеся такою

формулою:

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

45

12. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=arctg(x),(|x|<1). Для цього скористайтеся такою формулою:

13. Напишіть програму, яка з точністю, що введена з клавіатури розраховує значення

функції y=arctg(x),(|x|<1). Для цього скористайтеся такою формулою:

14. Напишіть програму, яка з точністю, що вводиться з клавіатури знаходить суму

ряду 1+1/2+1/3+1/4+...

15. Напишіть програму, яка з точністю 0,1% знаходить суму ряду

1+1/2+1/3+1/4+...

16. Напишіть програму, яка з точністю, що вводиться з клавіатури знаходить суму

ряду 1+1/22+1/32+1/42+...

17. Напишіть програму, яка з точністю 0,05% знаходить суму ряду 1+1/2

2+1/3

2+1/4

2+...

18. Напишіть програму, яка з точністю, що вводиться з клавіатури знаходить суму

ряду (1-1/22)·(1-1/32)·(1-1/42)+...

19. Напишіть програму, яка з точністю 0,01% знаходить суму ряду (1-1/22)·(1-

1/32)·(1-1/4

2)+...

20. Напишіть програму для розрахунку значення функції

y=cos(x)+cos(x2)+cos(x

3)+…+cos(x

n), коли значення кута x (у радіанах) і

кількість членів суми n вводяться з клавіатури.

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

1. Вкажіть формат оператора циклу do…while, наведіть блок-схему алгоритму,

який він реалізує.

2. Вкажіть формат оператора циклу while, наведіть блок-схему алгоритму, який він

реалізує.

3. До яких пір буде виконуватися оператор циклу while?

4. Що є спільним і у чому полягає різниця між операторами циклу do…while і

while?

5. Яким чином можна впливати на умову завершення операторів циклу do…while і

while? Для чого це слід робити?

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

46

Лабораторна робота № 8

Типи-посилання. Масиви

Лабораторна робота № 9

Обробка символьної інформації

Лабораторна робота № 10

Класи. Основні поняття, створення методів

Лабораторна робота № 11

Робота з файлами

Лабораторна робота № 12

Створення і використання бібліотек

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

47

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

1. Павловская Т. А. C#. Программирование на языке высокого уровня. Учебник для вузов /

Т. А. Павловская. – СПб.: Питер, 2007. – 432 с.: ил.

2. Хейлсберг А., Торгерсен М., Вилтамут С., Голд П. Язык программирования C#.

Классика Computers Science. 4-е изд. – СПб. Питер, 2012. – 784 с.: ил.

3. Справочник по С# [Електронний ресурс]. Режим доступу:

https://msdn.microsoft.com/ru-ru/library/618ayhy6.aspx

Додаткова

1. Буч, Гради, Максимчук, Роберт Α., Энгл, Майкл У, Янг, Бобби Дж., Коналлен, Джим,

Хьюстон, Келли А. Объектно-ориентированный анализ и проектирование с примерами

приложений, 3-е изд.: Пер. с англ. – М.: 000 "И.Д. Вильяме", 2008. – 720 с.: ил. –

Парал. тит. англ.

2. Троэлсен, Эндрю. Язык программирования C# и платформа .NET 4.5, 6-е изд. : Пер. с

англ. – М. : ООО «И.Д. Вильямс», 2013. – 1312 с. : ил. – Парал. тит. англ.

3. Либерти Д. Программирование на C#. – Пер. с англ. – СПб: Символ-Плюс, 2003. – 688

с., ил.

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

48

Додаток А Витяг з Положення

про рейтингову систему оцінювання успішності студентів з кредитного модуля

«Інформатика 1» дисципліни „Інформатика” (1 семестр)

для напряму 6.050502 „Інженерна механіка”

Механіко-машинобудівного інституту

Рейтинг студента з дисципліни складається з балів, що він отримує за:

1) виконання і захист дванадцяти лабораторних робіт;

2) модульної контрольної роботи, яка складається з двох частин;

3) однієї розрахунково-графічної роботи.

Кожна відповідь і робота оцінюються оцінкою „А,В,С,D,E”, за яку бали нараховуються

відповідно до таблиці 1.

Таблиця 1. Розрахунок балів за оцінки контрольних заходів Назва контрольного

заходу

Кількість

контрольних

заходів

Бали за оцінки ECTS Сума

балів

(макс) A B C D E

Роботи

комп’ютерного

практикуму

12 5 4,5 4 3,5 3 60

Тест 1 МКР 1 15,0 13,5 12,0 10,5 9,0 15

Тест 2 МКР 1 15,0 13,5 12,0 10,5 9,0 15

РГР 1 10,0 9,0 8,0 7,0 6,0 10

Разом 100

Критерії оцінювання лабораторних робіт А – своєчасна підготовка, виконання й захист роботи з відповідями на всі, поставлені при

захисті запитання;

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

поставлених при захисті запитань;

C – підготовка, виконання й захист роботи з відповідями на основні, поставлені при

захисті запитання;

D – підготовка, виконання й захист роботи з відповідями на деякі, поставлені при захисті

запитання;

E – підготовка, виконання і наявність протоколу виконання роботи.

Штрафні та заохочувальні бали за:

відсутність на лабораторному / практичному занятті без поважної причини „-0,5” бали;

несвоєчасний (більше ніж на тиждень) захист лабораторної роботи „-0,5” бали;

участь в модернізації лабораторних, практичних, розрахунково-графічних робіт, тестів,

розробка презентацій лекційних занять, в тому числі іноземною мовою, може бути

відмічено додатковими балами від „+1” до „+5”.

Для отримання студентом відповідних оцінок ECTS та традиційних оцінок його

рейтингова оцінка переводиться згідно з таблицею 2:

Таблиця 2 Система оцінювання відповідно до набраних балів Рейтинг Оцінка ECTS Традиційна оцінка

95 ≤ R ≤ 100 А Відмінно

85 ≤ R < 95 B Добре

75 ≤ R < 85 C Добре

65 ≤ R < 75 D Задовільно

60 ≤ R < 65 E Задовільно

Пасічник В.А., Сімута Р.Р., Лашина Ю.В. Інформатика1. Комп’ютерний практикум, © 2014-2015

49

< 60 Fx незадовільно (на доопрацювання)

< 28 F не допущений