Програмування та вирішення інженерно-технічних задач за допомогою мови С++

Поняття, властивості, способи представлення алгоритму. Основні блоки для зображення його схем. Базові символи і конструкції. Основні типи даних. Арифметичні вирази. Програмування розгалужених обчислювальних процесів на С++. Визначення умовного оператора.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 06.08.2010
Размер файла 75,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

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

Національний Гірничий Університет

Курсова робота

з дисципліни:

Обчислювальна техніка та програмування

Тема: Програмування та вирішення інженерно-технічних задач на ПЕОМ

Зміст

1. Завдання № 1

1.1 Теоретична частина завдання № 1

1.1.1 Поняття алгоритму

1.1.2 Властивості алгоритму

1.1.3 Способи представлення алгоритмів

1.1.4 Основні блоки для зображення схем алгоритмів

1.2 Практична частина завдання № 1

1.2.1 Формульний алгоритм

1.2.2 Схема алгоритму

2. Завдання № 2

2.1 Теоретична частина завдання № 2

2.1.1 Базові символи та конструкції

2.1.2 Основні типи даних

2.1.3 Параметри цілочисельних типів

2.1.4 Дійсні типи даних

2.1.5 Параметри дійсних типів даних

2.1.6 Арифметичні вирази

2.1.7 Операції відношення та логічні операції

2.1.8 Операції присвоєння

2.2 Практична частина завдання № 2

2.2.1 Запис операторів присвоювання

3. Завдання № 3

3.1 Теоретична частина завдання № 3

3.1.1 Складові оператори

3.1.2 Програмування розгалужених обчислювальних процесів

3.1.3 Визначення умовного оператора

3.1.4 Умовний оператор switch()

3.1.5 Вложені умовні оператори

3.1.6 Оператор вводу та виводу інформації

3.2 Практична частина завдання № 3

3.2.1 Формульний алгоритм

3.2.2 Схема алгоритму

3.2.3 Таблиця символічних імен

3.2.4 Програма на С++ та результати рішення

Використана література

Вступ

Мова С++ створена Денісом Рітчи на початку 70-х років в Bell Laboratory американської корпорації АТ&Т, є одною з універсальних мов програмування. Мова С++ рахується мовою системного програмування, точніше сказати вона є найбільш ефективною при рішенні задач системного програмування, хоч при написанні прикладних програм вона теж дуже ефективна та практична. Серед переваг мови С++ можна відмітити переносимість програм, написаних на мові С++ на інші комп'ютери різної архітектури, з однієї операційної системи на іншу, лаконічність запису алгоритмів, хорошу читаємість програм, можливість отримати ефективний код програми. Зручність мови С++ основана на тому що вона одночасно являється мовою високого рівня та мовою що має повний конструктивний набір структурного програмування, вона підтримує модульність, блокову структуру програм, можливість роздільної компіляції модулів. В той же час мова С++ має набір засобів низького рівня , які дозволяють мати зручний доступ до апаратних ресурсів комп'ютера, дозволяючи добратися до кожного біта пам'яті.

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

1. Завдання №1

1.1 Теоретична частина завдання 1

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

1.1.1 Поняття алгоритму

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

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

Такі правила прийнято називати алгоритмами.

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

Слово алгоритм походить від латинської форми написання імені арабського математика IX в. Аль-Хорезмі, котрий першим сформулював правила виконання чотирьох арифметичних дій над багатозначними числами.

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

1.1.2 Властивості алгоритмів

1. Дискретність. Це властивість алгоритму представляти процес виконання задачі, як послідовність простих дій. Кожна дія виконується за кінцевий відрізок часу, тобто перетворення початкових даних в кінцевий результат виконується в часі дискретно.

2. Зрозумілість. Алгоритм має бути чітким, в ньому не повинно виникати неоднозначностей.

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

4. Масовість. Алгоритм виконання завдання розробляється таким чином, щоб його можна було використати для вирішення цілого класу задач, що будуть відрізнятися лише початковими даними.

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

6. Універсальність. Алгоритм має бути складений таким чином, щоб його міг виконати будь який виконавець, не вдумуючись в програму, при цьому отримавши вірний результат.

1.1.3 Способи представлення алгоритмів

Алгоритми можуть бути представлені: у вигляді таблиці, описані як система словесних правил (лексикографічний або словесно кроковий спосіб запису алгоритму), представлені алгоритмічною мовою у вигляді послідовності операторів ( програмний спосіб ), формульні, або з допомогою графічного зображення у формі блок-схем ( графічний або геометричний спосіб запису алгоритму ).

Слід зауважити, що графічному способу подання алгоритмів надається перевага через його простоту, наочність та зрозумілість. Блок-схема алгоритму зображає послідовність блоків, з'єднаних між собою стрілками, які вказують послідовність виконання і зв'язок між блоками. Всередині блоків записується їх короткий зміст.

Блок-схема це спосіб представлення алгоритму в графічній формі, у вигляді геометричних фігур, сполучених між собою лініями ( стрілками ). Форма блока визначає тип дії, а текст всередині блоку дає детальне пояснення конкретної дії.

Стрілки на лініях, що сполучають блоки схеми, вказують послідовність виконання команд, передбачених алгоритмом. Блок-схеми, за рахунок наочності спрощують створення ефективних алгоритмів, розуміння роботи вже створених, а як наслідок і їх оптимізацію. Існуючі стандарти на типи блоків дозволяють легко адаптувати алгоритми, створені у вигляді блок-схем до будь-яких існуючих на сьогоднішній день мов програмування.

Зображення блоків у алгоритмі, їх розміри, товщина ліній, кут нахилу ліній та інше, регламентуються Державним стандартом “ Схеми алгоритмів, програм, даних і систем”, а саме : 19.701-90( ISO 5807-85 ).

Блоки у блок-схемі з'єднуються лініями потоків. У кожен блок може входити не менше однієї лінії, з блоку ж ( окрім логічного ) може виходити лише одна лінія потоку. З логічного блоку завжди виходить дві лінії потоку: одна у випадку виконання умови а інша при невиконанні цієї умови, для зрозумілості бажано щоб лінії потоку не перетинались.

1.1.4 Основні блоки для зображення схем алгоритмів

Таблиця 1

Зображення

Дія

Пояснення

1

Термінатор

Вхід в систему з зовнішнього середовища або вихід із схеми

2

Процес

Виконання арифметичних дій або групи дій

3

Рішення

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

4

Ввід-вивід

інформації

Ввід-вивід інформації без визначення пристрою

5

Документ

Вивід інформації на папір

6

Дисплей

Вивід інформації на дисплей

7

Ручний ввід

Ввід інформації з

клавіатури

8

Перевизначений

процес

Використовування раніше виробленої функції та процедур

9

Між блочний

з'єднувач в межі

сторінки

Показує розрив лінії потоку схеми і перенос її в інше місце сторінки

10

Між сторінковий

з'єднувач

Перехід схеми на іншу сторінку

11

Початок циклу

Для організації циклічних процесів

12

Кінець циклу

Для організації циклічних процесів

Види обчислювальних процесів:

– лінійно-обчислювальні процеси - в ньому дії виконуються послідовно, одна за одною без відхилень;

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

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

1.2 Практична частина завдання № 1

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

bІ - z 1 a 7

a = ------- ; x = -- + vy + ab ; y = vz + -- ; z = sin --- р ;

sin(b/2)І tІ b 13

t = ? + sin (a - іvb) - ln yІ ; b = 4,5 ?v| z | .

Формульний алгоритм - це певна послідовність виконання математичних виразів логічно зв'язаних між собою, він повинен бути сформульований чітко та зрозуміло і бути виконаний в стовпчик один за другим у правильній послідовності.

1.2.1 Формульний алгоритм

1. Ввести значення р;

7

2. z <= sin --- ;

13

3. b <= 4,5 ?v|z| ;

bІ - z

4. a <= ------- ;

sin (b/2)І

a

5. y <= vz + -- ;

b

1

6. x <= -- + vy + ab ;

7. t <= ? + sin(a - іvb) - ln yІ ;

8. Вивід р, z, b, a, y, t.

Далі згідно формульного алгоритму виконуємо побудову схеми алгоритму. Блок-схеми розташовуються один за другим в стовпчик та повинні бути з'єднані між собою стрілками які вказують послідовність команд даного алгоритму.

1.2.2 Схема алгоритму

2. Завдання № 2

2.1 Теоретична частина завдання № 2

Визначити базові символи та конструкції. Основні типи даних. Арифметичні та логічні вирази. Обґрунтувати правила їх формування, запису та виконання. Оператори: прості та складові. Проаналізувати прості оператори: оператори присвоювання.

2.1.1 Базові символи та конструкції основні типи даних

Базові символи та конструкції:

1) Абетка: символи A|a|,B|b|,C|c|,D|d|,0,1,2,…9 (великі та малі літери);

2) Знаки операцій: +; --; /; *; =.

3) Розподільні знаки: . , , , ; , : , ( , ) , [ , ] , { , } , = , _ , ..

4) Слова користувача: В23; obr_mn

5) Слова зарезервовані.

2.1.2 Основні типи даних

Кожне дане програми ( змінна або константа ) має певний тип, “ тип ”-- задає обсяг оперативної пам'яті, яка виділяється для збереження цього даного, визначає діапазон допустимих значень даного та встановлює операції, які можуть виконуватись з цим даним. Тип змінних у С++ програмах завжди вказується явно в їх описах, а тип констант встановлюється компілятором автоматично за формою запису константи в програмі.

Всі типи в мові С++ можна поділити на три групи:

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

– агреговані ( або складені ) типи, які формуються за встановленими правилами з наборів скалярних типів; до агрегованих типів належать масиви, структури та об'єднання;

– тип ”функція”, що оголошує функції із заданим складом параметрів і встановленим типом значення, яке повертає функція.

Арифметичні типи можна поділити ще на дві групи:

– цілочисельні типи, дані яких можуть набувати тільки цілих значень ( знакових або без знакових ) і зберігаються в форматах встановлених для цілих чисел;

– дійсні типи, дані яких є дійсними числами і зберігаються в оперативній пам'яті в форматах чисел з плаваючою точкою.

Крім цього, типи даних поділяють на базові ( ще їх називають: основні, фундаментальні ) похідні. Базовими вважаються типи: сhar, int, float, double, а також типи утворені з них через застосування модифікаторів: short, long, signed, unsigned: їх також називають -- класифікатори типів). Особливим базовим типом є void - порожній або невизначений тип. Тип void, зокрема застосовують в оголошеннях функцій, щоб зазначити що функція не повертає ніякого значення. Похідними вважаються вказівникові типи, агреговані типи та функції, Всі вони формуються з використанням базових типів.

Цілочисельними типами є - сhar та int.

Основним типом для роботи з цілочисельними даним є тип int ( від integer- ціле число ). Згідно зі стандартом мови С++ розмір типу іnt відповідає розміру машинного слова, властивому програмно-апаратній платформі конкретної системи програмування, Для переважної більшості сучасних комп'ютерів розмір int становить 2 або 4 байти, зокрема в середовищі Borland С++ дані з типом int мають розмір 2 байти ( 16 біт ).

До типу int можна застосувати модифікатори long ( довге ціле ) та short ( коротке ціле ). Модифікатор типу long вказує, що дане буде займати не менше як байти ( у більшості систем програмування типу long int має розмір саме 4 байти ). Модифікатор short вказує, що дане неповинне перевищувати розміп типу int ( у більшості випадків тип short int займає 2 байти ). В таблиці вказані діапазони допустимих значень цілих чисел. Тип int та його модифікації є знаковими типами, це означає що один біт ( здебільшого найстарший ) двійкового коду займає знак.

Прийнято що знак плюс - позначається нулем, а знак мінус - одиницею. Від'ємні цілі числа у більшості комп'ютерних галізацій зберігаються в доповню вальному коді. Якщо певні дані набувають тільки додатних значень, то можна вдвічі збільшити діапазон їх додатних значень, оголосивши такі дані з модифікатором unsigned - без знаковий. У без знакових даних біт знака розглядається як звичайний числовий біт. Стандарт С++ також підтримує модифікатор signed, який підкреслює що дане є знаком, проте в оголошеннях змінних записи signed int використовують рідко, оскільки тип int завжди є знаковим. Обидва модифікатори signed, unsigned можна застосовувати і до даних з типами long int або short int.

2.1.3 Параметри цілочисельних типів

Таблиця 2

Тип даних

Розмір в бітах

Діапазон значень

unsigned char

8

0…255

char

8

- 128 … 127

enum

16

- 32768 … 32767

unsigned int

16

0 … 65535

unsigned short

16

- 32768 … 32767

int

16

- 32768 … 32767

unsigned long

32

0 … 4294967295

long

32

- 2147483648 … 2147483648

float

32

- 3.4E - 38 … 3.4E + 38

double

64

1.7E - 308 … 1.7E + 308

long double

80

- 3.4E - 4932 … 3.4E + 4932

Стандарт С-99 ввів ще один цілий тип long long int ( дуже довге ціле ), призначений для комп'ютерів які підтримують 64 - розрядні ( 8 - байтові ) цілі числа. До цього типу теж можна застосувати модифікатор unsigned.

Тип сhar - цілочисельний тип. У переважній більшості реалізацій С++ дані з типом сhar займають один байт оперативної пам'яті ( хоча є системи у яких тип сhar двобаштовий ) і розглядається як знакові цілі числа. До типу сhar можна застосувати модифікатори signed та unsigned. Модифікатор signedявно встановлює знаковість даного з типом сhar, а модифікатор unsigned робить його без знаковим. Оскільки тип сhar належить до цілих типів , то він сумісний з усіма арифметичними типами.

Але основним застосуванням типу сhar є збереження кодів символів у символьних рядках.

2.1.4 Дійсні типи даних

Для збереження й опрацювання дійсних чисел ( тобто чисел, що складаються з цілої та дробової частин ) мова С++ підтримує три дійсних типи: float, double та long double. Стандарт С++ не задає внутрішніх форм збереження даних для цих типів і точних діапазонів їх значень -вони визначаються конкретними реалізаціями, встановлено тільки що тип float повинен мати точність не менше 6-ти значущих десяткових цифр, а типи double та long не менше 10 - значущих десяткових цифр.

У Borland C++ для збереження даних усіх дійсних типів застосовується формат чисел з плаваючою крапкою. Такий формат встановлює, що число (Х) складається з двох частин: мантиси (m) і порядку (p). Старший біт числа займає знак мантиси, за ним записується двійковий порядок числа, а потім - сама мантиса. Мантиса зберігається в нормалізованій формі, тобто старшою цифрою мантиси завжди є двійкова одиниця ( нормалізація мантис виконується шляхом зсуву їх уліво з відповідним зменшенням значення порядку ). Розміри мантиси і порядку для трьох дійсних типів є різними, вони визначають точність чисел і діапазон їх значень.

2.1.5 Параметри дійсних типів

Таблиця 3

Тип

Розміри

Точність мантиси(до десятків)

Діапазон

десяткового

порядку

загальні

( байти )

Р(біти)

m(біти )

float

4

8

23

7

від -38 до 38

double

8

11

52

16

від -308 до 308

long double

10

15

64

20

від -4932 до 4932

Зокрема, дані з типом double займають в оперативній пам'яті 8 байтів, з них 53 біти відведено для мантиси, а решту - для порядку. Такий розділ дає змогу зберігати дійсні числа з точністю, що відповідає приблизно 16 - десятковим цифрам.

2.1.6 Арифметичні вирази

До арифметичних дій в мові С++ відносяться:

- віднімання;

+ додавання;

* множення;

/ ділення;

%ділення по модулю;

++ збільшення на одиницю ( increment );

- - зменшення на одиницю (decrement );

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

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

Тому коли операція ділення застосовується до цілих змінних або символьних змінних, залишок відкидається. Так наприклад 11/3 буде дорівнювати 11/3 = 3, а вираз 1/2 буде рівним 1/2 = 0.

Операція ділення по модулю % видає залишок від цілочисельного ділення, вона може застосовуватись тільки до цілочисельних змінних. В наступному прикладі визначається ціла частина та залишок від ділення двох цілих чисел.

include <stdio.h>

/ *приклад */

main( )

{

int x,y;

printf ( “ ввід діленого та дільника : “ );

skanf ( “ %d%d ”, &x,&y);

printf ( “\n ціла частина %d\n”, x\y);

printf ( “ залишок від ділення %d\n “, x%y);

}

Мова С++ має ще дві дуже корисні операції це операція “++” яка додає одиницю до операнда, та “- -” яка віднімає одиницю від операнда.

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

Пріоритет виконання дій в арифметичних виразах має такий вигляд :

– Обчислення первинного арифметичного виразу ( вираз який знаходиться в дужках );

- Обчислення функції;

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

– Дії додавання та віднімання мають також однаковий пріорітет та виконуються

зліва направо;

Для зміни порядку виконання дій в мові С++ використовують круглі дужки.

Приклади написання в мові С++ деяких функцій:

|x| -> abs(x);

vx -> sqrt(x);

lnx -> log(x);

lgx -> log10(x);

sinx -> sin(x);

cosx -> cos(x);

аx -> pow(a,x)

2.1.7 Операції відношення та логічні операції

Програми на С++ повинні вміти приймати рішення самостійно, тому для прийняття таких рішень в програмах С++ використовують логічні вирази. Логічні оператори можуть повертати два значення true - ( так ), false -( ні ).

Повний список логічних операцій в мові С++ наступний:

<менше, ( true ) коли значення правого виразу більше значення лівого;

<= менше або дорівнює,( true ) коли значення лівого виразу менше або дорівнює правому;

>більше, ( true ) коли значення лівого виразу більше значення правого;

>= більше або дорівнюэ, ( true )коли значення лівого виразу більше або дорівнює правому;

== дорівнює, ( true ) коли значення лівого аргументу дорівнює значеню правого;

!= не дорівнює,( false ) коли значення лівого аргументу не дорівнює значенню правого;

&& та ( AND ),

|| або ( OR ),

! ні ( NOT ).

Оператор “==” використовується для перевірки рівності двох значень.

Оператори “більше” та “менше” з їхньою допомогою можна порівнювати значення виразів. Оператори “більше або дорівнює чи “менше або дорівнює” з їхньою допомогою можна порівняти значення виразів та визначити ті випадки коли вирази рівні між собою. Також часто використовуються оператори ( І ) та ( АБО ) відповідно ( &&), ( || ) як правило використовуються з іншими операторами. Оператор ( != ) використовується для перевірки рівності значень виразів, та приймає істинне значення коли вони відмінні.

2.1.8 Оператори присвоєння

Оператори - основні конструктивні компоненти програм, призначені для виконання встановлених дій. Саме через оператори реалізують послідовність кроків алгоритму розв'язання задачі. Мова С++ має невеликий, але дуже потужний та ефективний за своїми функціональними можливостями набір операторів.

За конструкцією всі оператори можна поділити на дві групи:

– прості оператори, до складу яких не входять інші оператори;

- складені оператори, обов'язковими компонентами яких є внутрішні (вкладені) оператори.

В мові С++ окрім стандартного оператора присвоєння «=» є ще декілька операторів: +=, -=, *=, /=, %=, &=, |=, ^=, <<=, >>=. Запис x+=a еквівалентна запису x=x+a, тобто значення x збільшилось на a. Аналогічно працюють й інші оператори:

x =a присвоїти x значення a

x+ =a збільшити значення x на a

x- =a зменшити значення x на a

x* =a помножити x на a

x/ =a поділити x на a

x%=a замінити x на залишок від ділення на a

Всі ці операції звертаються за силкою на змінну, що стоїть зліва від оператора присвоєння. При цьому якщо в арифметичній інструкції є декілька операторів, то вони виконуються зліва направо. Оператори присвоєння мають більш низький пріоритет, ніж оператори +, -, *, /, %, тобто виконуються після цих операторів ( якщо не має дужок ).

2.2 Практичне завдання номер №2

Записати на мові С++ оператори присвоєння обчислення виразів згідно завдання номер 1.

z = (sin(7.0/13.0))*pi;

b = pow(exp(z*z),1.0/4.0);

a = (b*b-z)/pow(sin(b/2),2);

y = pow(z+(a/b),1/5);

x = 0.5+pow((y+a*b),1.0/6.0);

t = exp(3/x*a)+(sin(a-(pow(b,1.0/3.0)))-(log(y*y)));

3. Завдання № 3

3.1 Теоретична частина завдання № 3

Складові оператори. Обґрунтувати програмування розгалужених обчислювальних процесів. Визначити умовний оператор. Вложені умовні оператори. Обґрунтувати використання оператора CASE. Визначити запис операторів процедур вводу та виводу інформації і призначення їх елементів.

3.1.1 Складові оператори

Оператор - це інструкція, записана по правилах мови програмування. У мові С++ оператори можуть виконувати інформаційні функції. "Складений" оператор представляє собою два або більше операторів. Його також називають "блоком".

Синтаксис : {

[<оператори>] )

Дія складеного оператора полягає в обов'язковому послідовному виконанні операторів, які містяться між { та }, за виключенням тих випадків, коли який-небудь оператор явно не передасть управління в інше місце програми:

if {i>0)

{

printf ('i == %\n',i);

i--;

}

3.1.2 Програмування розгалужених обчислювальних процесів

Розгалужені обчислювальні процеси

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

Рисунок 1- Блок схема розгалуженого обчислювального процесу.

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

3.1.3 Визначення умовного оператора

Умовні оператори

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

Умовні оператори починається з if після якого записується в круглих душках (умова), після умови записується оператор:

if (умова) оператор; - коротка форма запису.

Рисунок 2 - Коротка форма запису

Виконання оператора умовної форм запису, якщо умова виконується «Так», то виконується після неї (оператор) - «Ні».

if (умова) оператор 1; else оператор 2;


Рисунок 3 - Стандартна форма запису

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

У мові С++ з умовними операторами є спосіб заміни операторів if і else - умовного оператора операція умови вони мають таку форму запису:

(умовний вираз) вираз 1 ; вираз 2.

Є такі умовні оператори, як оператор if() та оператор switch().

1. Умовний оператор if() дозволяє виконувати різні блоки команд в залежності від того, виконується певна умова, чи ні. Умова вказується аргументом оператора if(), після чого йде блок команд, які виконуються при істинній умові.

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

Приклад програми «Ділення на нуль» з оператором if()

# include <iostream>

using namespace std;

int main (){

double x,y;

cout<<"x=";

cin>>x;

cout<<"y=;

if(y!=0) cout<<"x/y="<<x/y<<"\n"; // if(y)cout<<"x/y="<<x/y<<"/n";

else cout<<"Ділення на нуль!\n";

return 0;

}

3.1.4 Умовний оператор switch()

В умовному операторі switch() перевіряється значення деякого виразу (аргумент оператора switch() ). В залежності від значення виразу виконуються різні блоки команд. Можливі значення виразу (число чи символ) вказуються після ключового слова case. В блоці default розміщуються команди, що виконуються у випадку, коли жодне з представлених в case - блоках значень не реалізоване.

Приклад програми « Числа Фібоначі» з оператором switch()

# include <iostream>

int n;

cout<<"Введіть число від 0 до 10: ";

cin>>n;

switch(n){

case 0:

cuot<<"Користувачем введений нуль!\n";

break;

case 1:

case 2:

case 3:

case 5:

case 8:

cout<<"Введене число Фібоначі!\n";

break;

default:

cout<<"Введене ціле число!\n";}

return 0;}

3.1.5 Вложені умовні оператори

Інколи бувають випадки коли в одному умовному операторі знаходяться ще один або декілька умовних операторів, такі оператори називаються вложені умовні оператори. Внутрішнім оператором if може бути вкладений if. Стандарт С-89 гарантував можливість 15 рівнів вкладення, а стандарт С-99 збільшив глибину вкладення до 127. Проте велика кількість вкладень заплутує програму і ускладнює пошук помилок, тому на практиці рідко застосовують глибину вкладень, більшу за 10. Оскільки оператори if мають дві форми: повну і неповну, то в разі вкладення операторів може виникнути ситуація, коли конструкцій if більше, ніж else. За правилами замовчування кожна else-частина умовного оператора пов'язується з найближчим if. Якщо ж else повинно відноситись до одного з попередніх if, то треба застосувати фігурні дужки { }, щоб виділити в блок попередню операторну частину. Наведемо два приклади:

/*Приклад 1 Вкладення умовних операторів*/

if () /* зовнішній if */

if ( beg==0) /* вкладений if */

max = c ;

else /* від вкладеного if */

max += c; else/* від зовнішнього if */

if (beg=0) {/* вкладений неповний if */

max = (c + b)/2; c = b; }

/* Приклад 2. Вкладення умовних операторів if */

if { c<=b ) {/* зовнішнійif */

if (beg==0 ){ /* вкладений неповний if */

max =(c+b)/2;

c = b; }

}

} else /* від зовнішнього if */

if ( beg==0 } /* вкладений if */

max = c ;

else/* від вкладеного if */

max += c ;

Обидва фрагменти програми реалізують однакові дії. Зміна виразу умови в зовнішньому операторі if у прикладі 2 призвела до необхідності введення додаткових фігурних дужок, якими охоплюється вкладений неповний if. Без цих дужок конструкція першого else пов'язувалась би з умовою beg = 0, а не з умовою с <= b, як цього вимагає задача.

3.1.6 Оператор вводу та виводу інформації

Функція виводить рядок символів, як вони записані поки не зустрінеться специфікація перетворення типів, яка має форму запису:

cuot<< “Come up and C++ me some time.”;

Інформація, розміщена в дужках, є повідомлення яке повинно бути виведено на екран. Позначення << вказано на то, що цей оператор відправляє даний рядок в об'єкт cuot. Цей символ вказує на напрямок потоку інформації. Якщо змінна string є строчкою яку потрібно вивести на екран ми можемо скористатися оператором:

cuot<< string

Вихідні данні є потоком, іншими словам, послідовність символів. Цей потік уявляє об'єкт cout, властивості які вказані в файлі iostream.

Потік С++ - це послідовність даних, що передається з одного каталогу в інший.

Оператор добування з потоку позначається “<<”.Який працює із стандартним потоком виводу символів, а відправка інформацій в потік виконується оператором

сin >>, який працює із стандартним потоком.

Сама функція воду інформації має запис сin >>,змінна;

Приклад: Ввести а.

сin >> а.

сin >> а >> b >> c;

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

1. Пропуск між символьною змінною та числом являється обов'язковим.

2. Потік воду ігнорує пропуски.

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

Приклад:

# include <iostream.h>

void main ( ) ;

{ clouble x,z,y,sum;

char c1,c2,c3; // ввести три числа через пропуск

cin>>x>>z>>y;

sum = x+y+z;

clouble SR: // визначити середнє значення

SR=sum/3;

cin>> c1>>c2>>c3// ввести символьні зміні с1,с2,с3

}

24

3.2 Практична частина завдання 3

Розробити схему алгоритму, таблицю символічних імен, набрати і підлагодити програму обчислення виразів (розгалужений обчислювальний процес).

ln (vx + e ) + v |sin( bx + ax )| якщо z + b/a < x + b

y =

aіx+ 1/2bx - xІ za

------------ + -- якщо z + b/a ? x + b

ax- bxІ b

z=іvxІ+a - sinІ(ax)і; x=vcosІ(aі+b);

1- 4,7bІ

a = ------- ; b = ln e.

іvb - 8,3

3.2.1 Формульний алгоритм

1) Ввід р;

2) b <= ln e;

1-4,7bІ

3) a <= ------;

іvb-8,3

4) x <= vcosІ(aі+b);

5) z< = іvxІ + a - sinІ(ax)і ;

6) f <= z + b/a;

7) k <= x+ b;

8) f<k

aіx + 1/2bx - xІ za

y<=ln(vx+e)+ vsin(bx+ax) y <= ------------ + ---

ax-bxІ b

9) Вивід р, b, a, x, z, y.

3.2.2 Схема алгоритму

Н ні

так

y<= ln( vx + e ) + vsin(bx + ax)

3.2.3 Таблиця символічних імен

Математичне ім'я

Символьне

ім'я

Значення змінної за змістом

Змінна

тип

значення

р

b

a

x

z

f

k

рі

b

a

x

z

f

k

Змінна

Змінна

Змінна

Змінна

Змінна

Змінна

Змінна

дійсне

дійсне

дійсне

дійсне

дійсне

дійсне

дійсне

вхідне

обчислюється

обчислюється

обчислюється

обчислюється

обчислюється

обчислюється

3.2.4 Програма записана на мові С++

# include <math.h>;

# include <iostream.h>;

# include <conio.h>;

void main( )

{

float pi,b,a,x,z,f,k,y;

cout <<" Ввести значення pi=";

cin >>pi;

b=log(exp(sin(pi/7.0)));

a=(1.0-4.7*b*b)/(-pow(-b+8.3,1.0/3.0));

x=pow(pow(cos(a*a*a+b),2),1.0/5.0);

z=pow(x*x+a,1.0/3.0)-pow(sin(pow(a*x,3.0)),2.0);

f=z+b/a;

k=x+b;

if (f<k) y=log(pow(x,1.0/2.0)+exp(x+x))+pow(abs(sin(b*x+a*x)),1.0/2.0);

else y=(((a*a*a*x)+(1/2*b*x)-(x*x))/(a*x-b*x*x))+(z*a)/b;

cout <<" Курсова робота завдання -№3;\n";

cout <<" Варіант № 18;\n";

cout <<" Група АУк-08-2;\n";

cout <<" Соловйова Дмитра Сергійовича ;\n";

cout <<"\n";

cout <<" Вхідні дані: "<<"\n"<<"\t"<<"\t"<<"pi="<<pi <<"\n";

cout <<"\n";

cout <<" Результати рішення : "<<"\n"<<"\t"<<"\t"<<"b="<<b <<"\n"<<"\t" <<"\t";

cout <<"a="<<a <<"\n" <<"\t"<<"\t" <<"x="<<x <<"\n"<<"\t" <<"\t";

cout <<"z="<<z <<"\n"<<"\t"<<"\t" <<"f="<<f <<"\n" <<"\t" <<"\t";

cout <<"y="<<y <<"\n" <<"\t" <<"\t" <<"k="<<k <<"\n";

}

Результати рішення

Курсова робота завдання №3;

Варіант № 18;

Група АУк-0802;

Соловйова Дмитра Сергійовича;

Вхідні дані :

рі = 3.14

Результати рішення :

b = 0.4336

а = -0.0583

х = 0.96192

z = 0.9535

f = -6.0577

k = 1.3956

Висновок

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

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

Список літератури

1. Н. Франка С++: учебный курс - СПб: Питер.

2. Страуструб Б. Язык программирования С++. - 3-е изд. - СПб.: << Невский диалект >>, 1999.

3. Березин Б.М. Березин С.Б. << Навчальний курс С и С++ >>, М.:Диало- Мифи; 1996.

4. Буно Бабо -- << Просто и ясно о С++ >> : Перевод с английского - М.:

БИНОМ. 1996 - 416с.

5. Т.А Палвовская, Ю.А. Щупак <<С и С++ структурное программирование >>. Практикум. __ СПб.: Пиер, 2002. - 240с.

6. В.В. Подбельский, С.С++ Фомин -- << Програмирование на язике СИ>>: учеб. Посоие. - 2-е доп. Изд. - М.: Финанси и статистика, 1963 - 600с.

7. Н. Стивен << Язык программирования на С++>> Учебное пособие \ В.П. Аведин, А.Н. Бобровский и друг. Под редакцией А.Д. Хомоненко. - СПб,: 1999.-- 256с.


Подобные документы

  • Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.

    лекция [445,0 K], добавлен 24.07.2014

  • Основні поняття мови програмування Паскаль, синтаксис. Поняття і види алгоритму; елементи, що використовуються при побудові описів програм: символи, слова, вирази, команди. Рекомендації щодо інсталяції. Вимоги до апаратного та програмного забезпечення.

    творческая работа [1,3 M], добавлен 01.02.2011

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

    курсовая работа [510,9 K], добавлен 14.03.2013

  • Поняття та основні властивості алгоритму. Реалізація програми здійснюється за допомогою написаного раніше тексту (вихідного коду). Особливості середовища програмування Турбо Паскаль. Питання синтаксичної правильності та самодокументованості тексту.

    практическая работа [1023,8 K], добавлен 03.07.2014

  • Сутність та характеристика обліку касових операцій. Програмування та алгоритмічні мови, його основи сутність та основні особливості. Технічні характеристики. Визначення структури вхідних та вихідних даних. Вимоги до технічних засобів. Опис алгоритмів.

    курсовая работа [357,5 K], добавлен 13.02.2009

  • Характеристика мови програмування VBA (Visual Basic for Application): можливості й засоби. Використання редактора Visual Basic. Створення та виконання VBA-програм. Типи даних, змінні й константи, операції й вирази. Керуючі оператори, процедури й функції.

    реферат [29,9 K], добавлен 28.06.2011

  • Визначення та способи представлення графів. Основні алгоритми на графах. Побудова мінімального остового дерева. Алгоритми Прима та Дейкстри. Модель Флойда-Уоршалла. Огляд можливостей мови програмування. Опис функцій програмної моделі, інтерфейс програми.

    дипломная работа [563,7 K], добавлен 03.08.2014

  • Базові типи змінних. Елементарний ввід-вивід. Умовні оператори та оператори множинного вибору. Основні функції вводу даних із клавіатури scanf, gets, getchar. Визначення основних (базових) типів даних. Вивід повідомлення при невірно заданому ключі.

    контрольная работа [74,6 K], добавлен 03.10.2010

  • Мова C++ є як одна з найпоширеніших сучасних мов програмування. Базові засоби мови С++, її специфічні риси. Технологія складу програм, специфіка організації процесу програмування. Модульне програмування. Особливості об’єктно-орієнтованого програмування.

    курсовая работа [49,6 K], добавлен 26.03.2010

  • Об'єктно-орієнтоване програмування за допомогою Delphi. Основні види проекцій. Поняття контексту відображення та пристрою в бібліотеці OpenGL. Побудова сфери засобами OpenGL: лістинг програми. Алгоритм операції збільшення та зменшення зображення.

    контрольная работа [268,6 K], добавлен 20.09.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.