43400

Базові засоби мови С++. Технологія складу програм

Курсовая

Информатика, кибернетика и программирование

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

Украинкский

2013-11-04

244 KB

17 чел.

PAGE   \* MERGEFORMAT 15

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

Горлівський технікум

Донецького національного університету

Базові засоби мови С++

Технологія складу програм

Типи даних та їх об’явлення

Пояснювальна записка

КР 5.080202.12.00.000 ПЗ

Студент                                                                                                         Лисаков Д.Г.

Керівник роботи                                                                                             І.П.Сошина

Дата захисту                                                                                                   __________

Оцінка                                                                                                             __________

2009

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

Горлівський технікум

Донецького національного університету

Завдання

для курсової роботи

з алгоритмічних мов та програмування 

студенту групи 1ПМ-07  Лисакова Данила Геннадійовича

Тема завдання  Базові засоби мови С++. Технологія складу програм.  

Типи даних та їх об’явлення.

Зміст курсової роботи

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

__________________________________________________________________

Дата видачі  ________

Строк виконання   _________

                                                         Зав. Відділенням Євсєєва О.В.

                                                         Керівник роботи Сошина І.П.          

РЕФЕРАТ

Курсова робота: 20 сторінок, 0 рис., 0 табл., 4 джерел, 1 додатки

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

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

Обєкт дослідження: формування координат множень точок

Методи дослідження: інформаційний, графічний, дослідження, методи          математичного аналізу, програмування.

Графік виконання курсової роботи

Графік виконання курсової роботи розглянуто та схвалено на засіданні циклової комісії „Прикладної математики” . Протокол №1 від 01.09.2008 року. Графік виконання курсової роботи необхідно дотримуватися студенту під час виконання курсової роботи.

Назва виду діяльності

Тижні

1

2

3

4

5

6

7

8

9

10

1

Отримання теми курсової роботи

X

2

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

X

X

3.

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

Х

Х

Х

4.

Робота над теоретичними відомостями з теми курсової роботи .

Х

Х

Х

Х

Х

5.

Робота над програмою з теми курсової роботи.

Х

Х

Х

Х

Х

Х

Х

6.

Підготовка чернетки курсової роботи.

Х

Х

Х

Х

Х

Х

Х

Х

7.

Перевірка керівником курсової роботи чернетки курсової  роботи. Отримання рецензії на курсову роботу.

Х

Х

Х

Х

Х

Х

Х

Х

Х

8.

Захист курсової роботи.

Х

Х

Х

Х

Х

Х

Х

Х

Х

Х

            

(Линія перегину для електронного носія)

ЗМІСТ

Стор.

Вступ                5

Розділ 1. Базові засоби мови С++                   6

 1.1 Склад мови           6

 1.2 Оператори програм С++         6

Розділ 2. Технологія складу програм       8

Розділ 3. Програмування і склад програм модульної структури   10

  3.1 Мета модульного програмування       10

 3.2 Загальна характеристика програм модульної структури   10

 3.3 Опис і використання функцій        11

 3.4 Формальна функція         13

 3.5 Функція main          14

 3.6 Перевантаження функцій        14

 3.7 Шаблонні функції          15

 3.8 Проектування і складання програм модульної структури   17

Висновки

Перелік використаних джерел

Додаток A

ВСТУП

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

Мова С++ є продовженням і розвитком мови Сі, розробленої  Д. Рітчи на початку сімдесятих років і що набула широкого поширення. Сама ж мова С++, розроблена Бьярном Страуструпом, з’явилася лише в 1983р. До стандарту Д. Рітчи були додані нові елементи, можливості, що істотно розширили мову. Це перш за все класи, додавання яких зробило С++ однією з самих широко використовуваних об'єктно-орієнтованих мов програмування. Не дивлячись на відносно недавню розробку, мова С++ до теперішнього часу вже завоювала велику популярність, як в професійних, так і початкуючих програмістів.

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

У модульному програмуванні основна ідея полягала в тому, щоб "сховати" дані й процедури усередині незалежних програмних одиниць - модулів, тому що завдання, що зустрічаються в практиці програмування найчастіше мають складну логічну структуру або громіздкий алгоритм розв'язку. Для полегшення сприйняття таких алгоритмів їх розбивають на подзадачи, кожна з яких розглядається, як окреме завдання й може бути вирішена при заданих значеннях її аргументів. Мовою програмування це означає розбивку програми розв'язку всього завдання на окремі самостійні частини, називані програмними модулями або функціями, знаходження їх аргументів, встановлення зв'язку між ними й послідовне програмування кожної з них.  Цю ідею вперше реалізував Н. Вирт в алгоритмічній мові Modula (1975-1979 роки), а потім "підхопили" і інші, поширені в той час мови програмування. Наприклад, відомі системи програмування Turbo Pascal і Turbo С.

З появою модульного програмування парадигма програмування набула вид:

- визначите, які модулі потрібні;

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

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

РОЗДІЛ 1. БАЗОВІ ЗАСОБИ МОВИ С++

1.1 Виникнення та еволюція мови C++

Бйорн Страуструп є розробником мови С + + і творцем першого транслятора. Він - співробітник науково-дослідного обчислювального центру AT&T Bell Laboratories в Мюррей Хілл (Нью-Джерсі, США). Він отримав звання магістра математики та обчислювальної техніки в університеті м. Аарус (Данія), а докторські звання з обчислювальної техніки в кембріджскому університеті (Англія). Він спеціалізується в області розподілених систем, операційних систем, моделювання та програмування. Разом з М. А. Елліс він є автором повного керівництва по мові С + + - "Керівництво по С + + з примітками".

Безумовно С ++ багатьом зобов'язаний мові С , який зберігається як його підмножина. Збережено і всі властиві З засоби низького рівня, призначені для вирішення найбільш нагальних завдань системного програмування. С, у свою чергу, багатьом зобов'язаний своєму попередникові мови BCPL. Коментар мови BCPL був відновлений в С + +. Ще одним джерелом натхнення була мова SIMULA-67; саме з неї була запозичена концепція класів (разом c похідними класами та віртуальними функціями). Можливість в С ++ перевантаження операцій і свобода розміщення описів всюди, де може зустрічатися оператор, нагадують мову Алгол-68.

Більш ранні версії мови, які отримали назву "С з класами", використовувалися, починаючи з 1980 р. Ця мова виникла тому, що автору потрібно написати програми моделювання, керовані переривання. Мова SIMULA-67 ідеально підходить для цього, якщо не враховувати ефективність. Мова "С з класами" використовувався для великих завдань моделювання. Суворої перевірки піддалися тоді можливості написання на ньому програм, для яких важливі ресурси часу та пам'яті. У цій мові бракувало перевантаження операцій, посилань, віртуальних функцій і багатьох інших можливостей. Вперше С + + вийшов за межі дослідницької групи, в якій працював автор, у липні 1983 р., однак тоді багато можливості С ++ ще не були розроблені.

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

Спочатку С ++ був задуманий для того, щоб автору і його друзям не треба було програмувати на Асемблері, С або інших сучасних мовах високого рівня. Основне його призначення - спростити та зробити більш приємним процес програмування для окремого програміста. До недавнього часу не було плану розробки С ++ на папері. Проектування, реалізація і документування йшли паралельно. Ніколи не існувало "проекту С + +" або "Комітету з розробки С + +". Тому мова розвивався і продовжує розвиватися так, щоб подолати всі проблеми, з якими зіткнулися користувачі. Поштовхами до розвитку служать також і обговорення автором всіх проблем з його друзями і колегами.

З моменту виходу в світ першого видання цієї книги мова С + + зазнає суттєвих змін і уточнення. В основному це стосується дозволу неоднозначності при перевантаженні, зв'язуванні та управління пам'яттю. Разом з тим, були внесені незначні зміни з метою збільшити сумісність з мовою С. Були також введені деякі узагальнення і суттєві розширення, як то: множинне успадкування, функції-члени зі специфікаціями static та const, захищені члени (protected), шаблони типу і обробка особливих ситуацій. Всі ці розширення та доопрацювання були націлені на те, щоб С ++ стала мовою, на якоій можна створювати та використовувати бібліотеки. Інші розширення, введені за період між 1985 і 1991 рр. (такі як множинне успадкування, статичні функції-члени і чисті віртуальні функції), швидше з'явилися в результаті узагальнення досвіду програмування на С ++, ніж були почерпнути з інших мов. Зроблені за ці шість років розширення мови перш за все були спрямовані на підвищення виразності С++ як мови абстракції даних і об'єктно-орієнтованого програмування взагалі і як засоби для створення високоякісних бібліотек з користувацькими типами даних зокрема.

Приблизно в 1987 р. стало очевидно, що робота по стандартизації С++ неминуча і що слід негайно приступити до створення основи для неї.

Фірма AT & T Bell Laboratories внесла основний внесок в цю роботу. Близько ста представників з ладу 20 організацій вивчали і коментували те, що стало сучасною версією довідкового керівництва і вихідними матеріалами для ANSI по стандартизації. С++. Нарешті, з ініціативи фірми Hewlett-Packard в грудні 1989 р. у складі ANSI був утворений комітет X3J16. Очікується, що роботи по стандартизації С++ в ANSI (американський стандарт) стануть складовою частиною робіт по стандартизації силами ISO (Міжнародної організації по стандартизації).

1.2 Склад мови

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

Склад алгоритмічної мови

Таким чином, елементами алгоритмічної мови є:

1) Алфавіт мови С++, який включає

- прописні й рядкові латинські букви й знак підкреслення;

- арабські цифри від 0 до 9;

- спеціальні знаки “{},| []()+-/%*.\’:;&?<>=!#^

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

2) Із символів формуються лексеми мови:

- Ідентифікатори - імена об'єктів Сі-програм. В ідентифікаторі можуть бути використані латинські букви, цифри й знак підкреслення. Прописні й малі літери різняться, наприклад, PROG1, prog1 і Prog1 - три різні ідентифікатори. Першим символом повинна бути буква або знак підкреслення (але не цифра). Пробіли в ідентифікаторах не допускаються.

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

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

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

- Роздільники - скобки, крапка, кома пробільні символи.

1.3 Оператори програм С++.

Оператори в мові С++ призначені для опису дій. Будь-який оператор може бути помічений міткою. Оператори відділяються один від одного крапкою з комою.

До простих операторів мови С++ відносяться оператор привласнення, оператор введення і виведення даних, оператор переходу.

Оператор введення даних. Для введення змінних в С++ найчастіше використовується оператор:

cin>> ім'я змінної;.

Оператор виведення даних. Для виведення даних С++ використовується оператор

cout<< ім'я змінної;.

Оператор переходу має вигляд:

goto мітка;.

Цикли передбачають багатократне виконання деяких операторів що входять в тіло циклу. У мові С++ є три види операторів циклу:

ЦИКЛ-ПОКИ реалізується в мові С++ за допомогою оператора While і має наступний вигляд:

while (умова) оператор;.

Цикл - ДО реалізується в мові С++ за допомогою оператора do while і має наступний вигляд:

do { оператори;}.

while (умова);.

Цикл з параметрами в мові С++ має вигляд:

for (початкове значення змінної; кінцеве значення змінної; крок).

оператор;.

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

тип имя_массива [раздел1] [раздел2]...[розмір N];

кількість індексів ([размер1] [размер2]... [размерN]) визначає розмірність масиву

РОЗДІЛ 2. ТЕХНОЛОГІЯ СКЛАДУ ПРОГРАМ

2.1 Процедурне програмування

Процедурне (імперативне) програмування є відображенням
архітектури традиційних ЕОМ, запропонованої фон Нейманом в 40-х роках. Процедурна програма складається з послідовності операторів та речень, які керують послідовністю їх виконання. Типовими операторами є оператори присвоювання та передачі управління, оператори введення / виводу і спеціальні пропозиції для організації циклів. З них можна складати фрагменти програм і підпрограм. В основі такого програмування лежить взяття значення якоїсь змінної, вчинення над ним дії і збереження нового значення за допомогою оператора присвоювання, і так до тих пір, поки не буде отримано (і, можливо, надруковано) бажане остаточне значення.

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

До процедурних мов відносяться Basic, Cobol, Fortran, Pascal, C і Ada.

2.2 Структурне програмування

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

- Програмування повинно здійснюватися зверху-вниз;

- Весь проект повинен бути розбитий на модулі з одним входом і одним виходом;

- Логіка алгоритму і програми повинна допускати тільки три основні структури - послідовне виконання, розгалуження і повторення. Неприпустимий
оператор передачі управління в будь-яку точку програми;
- При розробці документація повинна створюватися одночасно з програмуванням, у вигляді коментарів до програми.

Мета структурного програмування - підвищення надійності програм,
забезпечення супроводу та модифікації, полегшення і прискорення розробки.

Ідеї структурного програмування з'явилися на початку 70-років в компанії
IBM, в їх розробці брали участь такі відомі вчені як Е. Дейкстра, Х. Мілс, Е. Кнут, С. Хор.
    

2.3 Функціональне програмування

Програма, розроблена з використанням функціонального (аплікативного) стилю, складається із сукупності визначень функцій. Функції, свою чергу, являють собою виклики інших функцій і пропозицій, керуючих послідовністю дзвінків. Обчислення починаються з визова деякої функції, яка в свою чергу викликає функції, що входять до її визначення і т. д. у відповідності з ієрархією визначень і структурою умовних пропозицій. Функції часто або прямо, або опосередковано визивають самі себе.
    
 Кожен виклик повертає деяке значення в викликану функцию, обчислення якої після цього триває; цей процес повторюється до тих пір, поки функція, яка почала обчислення не поверне кінцевий результат користувачеві.
   
   "Чисте" функціональне програмування не визнає присвоювання і передач управління. Повторні обчислення здійснюються через рекурсію, що є основним засобом функціонального програмування.
  
    Перша функціональна мова програмування (Лісп) була розроблена
американським вченим Дж. Маккарті (J. McCarthy) у 1958-1961 рр. на основі
алгебри облікових структур, лямбда-числення та теорії рекурсивних функцій. До теперішнього часу створені такі функціональні мови програмування як Scheme, Рефах, Haskell, Sisal.


       2.4 Логічне програмування

Логічне (реляційні) програмування виходить з того, що комп'ютер повинен вміти працювати з логічним мисленням, притаманним людині. Наприклад, в логічному програмуванні дозволений конструкція типу "визначити фірму, яка має найвищу в місті середню зарплату співробітників ", якій достатньо, щоб отримати відповідь.
      Програма в таких мовах являє собою сукупність правил (визначаючих відносини між об'єктами) і цілі (запиту). Процес виконання програми трактується як процес встановлення загально значимості логічних формул за правилами, встановленими семантикою тої чи іншої мови. Результат обчислень є побічним продуктом процедури вивода. Такий метод являє собою повну протилежність програмування на якому-небудь з процедурних мов. У реляційної програмуванні
потрібно тільки специфікувати факти, на яких ґрунтується алгоритм, а
не визначати послідовність кроків, які необхідно виконати. Прикладом логічного мови програмування можна назвати Prolog --мова, призначений для програмування додатків, що використовують засоби і методи штучного інтелекту, створення експертних систем і представлення знань.


2.
5 Об'єктно-орієнтоване програмування


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

Об'єктно-орієнтований аналіз полягає в об'єктній декомпозиції предметної області, тобто інформаційна система представляється не набором функцій, а сукупністю об'єктів, які взаємодіють один з одним. Декомпозиція - це поділ складної програмної системи на все менші і менші підсистеми, кожну з яких можна удосконалювати незалежно. Структурне проектування передбачає алгоритмічні декомпозиції, поділ алгоритмів, де кожен модуль системи виконує один з етапів загального процесу деяких автономних об'єктів, що взаємодіють один з одним, щоб забезпечити функціонування всієї системи в цілому.
       Об'єкти мають поведінку, стан, властивості, які в програм реалізуються у вигляді підпрограм (функцій). Таким чином, об'єктно-орієнтована технологія включає в себе можливості структурного підходу, але об'єктно-орієнтоване проектування в більшою мірою реалізує модель реального світу і відповідає природній логіці людського мислення. На думку автора С + +, Бйорна Страуструпа, відмінність між процедурних і об'єктно-орієнтованим стилями програмування полягає приблизно в наступному: програма на процедурній мові відображає "спосіб мислення" процесора, а на об'єктно-орієнтованій - спосіб мислення програміста. Відповідаючи вимогам сучасного програмування, об'єктно-орієнтований стиль програмування робить акцент на розробці нових типів даних, найбільш повно відповідних концепціям обраної галузі знань і завдань програми.
     Порівнюючи об'єктно-орієнтований та процедурне стиль програмування необхідно вибрати критерії порівняння. Основні критерії в оцінці програмних продуктів - складність, а основними вимогами до методологій розробки є: зручність супроводу, можливість безболісного нарощування вже існуючої програми, здатність розроблених програмних об'єктів до повторного використання. При цьому на другий план відступає така вимога, як швидке проектування початкової версії програми, тому що його втілення зазвичай не дозволяє зберегти всі інші умови. Справа в тому, що процес розробки програмного забезпечення не закінчується першою версією. Він зводиться до ітеративного розширення попередніх версій, що, в деякій мірі, і допомагає вирішувати проблему складності. У боротьбі з проблемами, що визначаються складністю програм, далі всіх просунулася об'єктно-орієнтована технологія, яка і отримала найбільше поширення. В даний час вона успішно розвивається по різних напрямках, зачіпаючи як аналіз та проектування програмних систем, так і написання самих програм. Останнє визначається як об'єктно-орієнтоване програмування і пов'язано з використанням відповідних об'єктно-орієнтованих мов. В якості прикладу мов, які підтримують об'єктно-орієнтований стиль програмування, можна навести С + +, Object Pascal, Smalltalk, Ada, Eiffel.
     Розвиток ООП практично витіснило процедурне програмування з розробки складних програмних систем.


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

Програма на мові|язиці| С++ має наступну|слідуючу| структуру:

#директиви препроцесора

. . . . . . . . .

#директиви препроцесора

функція а ( )

{оператори}

функція в ( )

{оператори}

void| main| ( )      //функція, з|із| якою зачинається|починає| виконання програми

{оператори описи привласнення

функція

порожній|пустий| оператор

складений|складовий|

вибору

циклів

переходу}

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

Завдання|задача| препроцесора - перетворення тексту програми до її компіляції. Правила препроцесорної обробки визначає програміст за допомогою директив препроцесора. Директива зачинається|починає| з|із| #. Наприклад

1) #define| - указує|вказує| правила заміни в тексті.

#define| ZERO| 0.0

Означає, що кожне використання в програмі імені ZERO| замінюватиметься на 0.0.

2) #include|< ім'я заголовного файлу> - призначена для включення|приєднання| в текст програми тексту з|із| каталога «Заголовних файлів», що поставляються разом із стандартними бібліотеками. Кожна бібліотечна функція Сі має відповідний опис в одному із заголовних файлів. Список заголовних файлів визначений стандартом мови|язика|.  Вживання|вжиток| директиви include| не підключає відповідну стандартну бібліотеку, а тільки|лише| дозволяють вставити в текст програми опису з|із| вказаного заголовного файлу. Підключення код бібліотеки здійснюється на етапі компоновки|компонування|,   тобто після|потім| компіляції. Хоча в заголовних файлах містяться|утримуються| всі описи стандартних функцій, в код програми включаються тільки|лише| ті функції, які використовуються в програмі.

Після|потім| виконання препроцесорної обробки в тексті програми не залишається жодної препроцесорної директиви. Програма є набором описів і визначень, і складається з набору функцій.  Серед цих функцій завжди має бути функція з|із| ім'ям main|. Без неї програма не може бути виконана. Перед ім'ям функції поміщаються зведення про типа|тип| повертаного функцією значення ( тип результату). Якщо функція нічого не повертає, то указується|вказує| тип void|: void| main| ( ). Кожна функція, у тому числі і main| повинна мати набір параметрів, він може бути порожнім|пустим|, тоді в дужках указується|вказує| (void|).

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

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

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

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

РОЗДІЛ 3. ТИПИ ДАНИХ

3.1 Основні типи даних у мові С++

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

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

Типи даних важливі для C + + - програмування ще й тому, що кілька базових типів тісно пов'язані з "будівельними блоками", якими оперує комп'ютер: байтах та словами. Іншими словами, C + + дозволяє програмісту задіяти ті ж самі типи даних, які використовує сам центральний процесор. Саме тому за допомогою C + + можна писати дуже ефективні програми системного рівня.

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

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

[<спеціфікатор класу пам'яті>] [Const] <спеціфікатор типу>

<ідентифікатор> [= <початкове значення>]

[<ідентифікатор> [= <початкове значення >]]... ;

Наприклад:

int a = 5, у;

const float g = 9.81, С = 0.577216;

(квадратні дужки означають необов'язковість операндів)

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

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

int main (  )

(

Слово Int, є скороченням від англ. InTeGeR - цілий. У програмах на C + + треба вживати саме скорочену форму. В першому рядку вказується, що ідентифікатор буде служити ім'ям змінної типу Int, тобто значенням цієї змінної може бути тільки ціле число, наприклад 1, 2, - 1, 0, 37 або -288.

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

3.2 Синтаксис мови С++

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

В C + + визначено сім основних типів даних. Їх назви та ключові слова, які використовуються для оголошення змінних цих типів, приведені в таблиці №3.1.

таблиця №3.1 Основні типи даних мови С++

char

Символьний

wchar_t

Символьний двубайтовий

int

Цілочисельний

float

З плаваючою крапкою

double

З плаваючою крапкою подвійної точності

bool

Логічний чи булевий

void

Без значення

В C + + перед такими типами даних, як char, int і double, дозволяється використовувати модифікатори. Модифікатор служить для зміни значення базового типу, щоб він більш точно відповідав конкретної ситуації. Ось можливі модифікатори типів:

Signed, Unsigned, Long, Short.

Модифікатори Signed, Unsigned, Long і Short можна застосовувати до цілочисельним базовим типам. Крім того, модифікатори Signed і Unsigned можна використовувати з типом Char, а модифікатор Long - з типом Double. Всі допустимі комбінації базових типів і модифікаторів наведені в таблиці. У цій таблиці також вказані гарантовані мінімальні діапазони представлені для кожного типу, що відповідають С + + стандарту ANSI / ISO. Мінімальні діапазони, представлені в таблиці. Справа в тому, що С + + - компілятор може розширити один або декілька з цих мінімумів (що й робиться в більшості випадків). Це означає, що діапазони представлення С + + - типів даних залежать від конкретної реалізації. Наприклад, для комп'ютерів, які використовують арифметику додаткових кодів (тобто майже всі сучасні комп'ютери), цілочисельний тип буде мати діапазон представлення чисел від -32 768 до 32 767. Однак у всіх випадках діапазон представлення типу short int є підмножиною діапазону типу Int, діапазон представлення якого в свою чергу є підмножиною діапазону типу long int. Аналогічними відносинами пов'язані і типи Float, Double і long double. У цьому контексті термін підмножина означає більш вузький або такий же діапазон. Таким чином, типи Int і long int можуть мати однакові діапазони, але діапазон типу Int не може бути ширшим діапазону типу long int.

Всі допустимі комбінації числових типів та їх гарантовані мінімальні діапазони подання, що відповідають С + + - стандарту ANSI / ISO зображені у таблиці №3.2.

таблиця №3.2 Всі допустимі комбінації числових типів даних у мові С++

Тип  

Мінімальний діапазон

char

Від  -128   до 127

unsigned char

Від  0  до  255

signed char

Від  -128  до  127

int

Від  32768  до  32 767

unsigned int

Від  0  до  65 535

signed int

Аналогічний типу int

short  int

Від  -32 768  до  32 767

unsigned short int

Від  0  до  65535

signed  short  int

Аналогічний типу short  int

long  int

Від  -2 147 483 648  до  2 147 483 647

signed  long  int

Аналогичен типу long  int

unsigned long  int

Від  0  до  4 294 967295

float

Від  1E-37  до  1E+37, з шестьома значащими цифрами

double

Від  1Е-37  до  1Е+37, с десятью значащими цифрами

long double

Від  1Е-37  до  1Е+37, с десятью значащими цифрами

Оскільки стандарт C + + вказує тільки мінімальний діапазон, який зобов'язаний відповідати тому чи іншому типу даних, реальні діапазони, які підтримує ваш компілятор, слід уточнити у відповідній документації. Наприклад, в таблиці наведені типові розміри значень в бітах та діапазони подання для кожного C + + типу даних в 32-розрядному середовищі (наприклад, в Windows XP).

3.3 Цілочисельний тип даних

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

Оскільки цілочисельний тип настільки важливий для програмування, в C + + визначено декілька його різновидів. Як показано в таблиці, існують короткі (short int), звичайні (Int) і довгі (long int) цілочисельні значення. Крім того, існують їх версії зі знаком і без. Змінні цілочисельного типу зі знаком можуть містити як позитивні, так і негативні значення. За стандартом передбачається використання цілочисельного типу зі знаком. Таким чином, зазначення модифікатору Signed надмірно (але допустимо), оскільки оголошення за стандартом припускає значення зі знаком. Змінні цілочисельного типу без знака можуть містити тільки позитивні значення. Для оголошення цілочисельних змінної без знаку достатньо використовувати модифікатор Unsigned.

Типові розміри значень в бітах та діапазони представлення С + +-типів даних в 32-розрядної середовищі подані у таблиці №3.3

таблиця №3.3 Розміри значень в бітах та діапазони представлення у С++

Тип

Размер в битах

Диапазон

char

8

Від -128 до 127

unsigned char

8

Від 0 до 255

signed char

8

Від -128 до 127

int

32

Від -2147483648 до 2147483647

unsigned  int

32

Від 0 до 4 294 967 295

signed int

32

Аналогічний типу int

short  int

16

Від -32 768 до 32 767

unsigned short int

16

Від  0 до 65 535

signed short  int

16

Від  -32 768 до 32 767

long int

32

Аналогічний типу int

signed long  int

32

Аналогічний типу s igned  int

unsigned long int

32

Аналогічний типу unsigned  int

float

32

Від  l,8E-38 до 3,4E+38

double

64

Від  2,2E-308 до l,8E+308

long double

64

Від  2.2E-308 до 1.8E+308

bool

-

Істина чи Брехня

w char t

16

Від  0 до 65535

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

Цілочисельні значення зі знаком використовуються в багатьох алгоритмах але максимальне число, яке можна представити зі знаком, становить лише половину від максимального числа, яке можна уявити без знаку. Розглянемо, наприклад, максимально можливе 16-розрядне ціле число (32 767):

01111111 11111111

Якби старший розряд цього значення зі знаком був встановлений рівним 1. то воно б інтерпретувати як-1 (в додатковому коді). Але якщо оголосити його як unsigned int-значення, то після встановлення його старшого розряду в 1 ми отримали б число 65 535.

Щоб зрозуміти різницю в С + +-інтерпретації цілочисельних значень зі знаком і без нього, виконаємо наступну коротку програму.

# include <iostream>

/ * Ця програма демонструє різницю між

Signed-і-Unsigned значеннями цілочисельного типу. * /

using namespace std;

int main (  )

{

short int i;  / / коротке Int-значення зі знаком

short unsigned int j;  / / коротке Int-значення без знака

J = 60000;  / / Число 60000 потрапляє в діапазон

 / / Представлення типу short unsigned int, але

/ / не потрапляє а діапазон представлення типу

/ / Short signed int.

I = J;  / / Тому після присвоювання числа 60000

/ / Змінної I воно буде інтерпретуватися

/ / Як негативне.

cout <<i «" "<<J;

Return 0;

)

При виконанні програма виведе два числа: -5536 60000

Справа в тому, що бітова комбінація, яка представляє число 60000 як коротке (Short) цілочисельне значення без знаку, інтерпретується як коротке Int - значення зі знаком як число -5536 (при 16-розрядної представленні).

В C + + передбачений скорочений спосіб оголошення Unsigned, Short і Long-значень цілочисельного типу. Це означає, що при оголошенні Int-значень достатньо використовувати слова Unsigned, Short и Long, не вказуючи тип Int, тобто тип Int мається на увазі. Наприклад, наступні дві інструкції цілочисельні змінні без знаку.

Unsigned х; unsigned int у;

3.4 Символьний тип даних

Змінні типу char призначені для зберігання ASCII-символів (наприклад A, Z або G) або інших 8-розрядних величин, Щоб поставити символ, необхідно укласти його в одинарні лапки. Наприклад, після виконання слідуючих двох інструкцій

char ch;

CH = "Х";

змінної CH буде присвоєна буква X.

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

cout << "Це міститься в змінної CH:" <<CH;

При виконанні цієї інструкції на екран буде виведено наступне.

Це міститься в змінної CH: X

Тип char може бути модифікований за допомогою модифікаторів Signed і Unsigned. Інакше кажучи, тільки конкретна реалізація визначає за замовчуванням, яким буде char -оголошення: зі знаком чи без нього. Але для більшості компіляторів оголошення типу char увазі значення зі знаком. Отже, в таких середовищах використання модифікатора Signed для char -оголошення також надмірно. Змінні типу char можна використовувати не тільки для зберігання ASCII-символів, але й для зберігання числових значень. Змінні типу CHAR можуть тримати "невеликі" цілі числа в діапазоні від -128 до 127 і тому їх можна використовувати замість Int-змінних. Наприклад, у наступній програмі char - змінна використовується для керування циклом, який виводить на екран алфавіт англійської мови.  

/ / Ця програма виводить алфавіт.

# include <iostream>

using namespace std;

int main ()

(Char letter;  / / Змінна Letter типу char

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

For (letter «" A "; Letter <=" Z "; Letter + +)

cout <<Letter;

Return 0;

)

Символ "А" видається в комп'ютері як число 65, а значення від "А" до "Z" є послідовними і розташовані в зростаючому порядку. При кожному проході через цикл значення змінної Letter інкременується. Таким чином, після першої ітерації мінлива Letter буде містити значення "B".

Тип wchar_t призначений для зберігання символів, що входять до складу більших символьних наборів. B деяких природних мовах (наприклад, китайський) визначено дуже велику кількість символів, для яких 8-розрядне подання (забезпечене типом char) досить недостатньо. Для вирішення проблем такого типу до мови С + + і був доданий тип wchar_t, який знадобиться, якщо планується виходити зі своїми програмами на міжнародний ринок.

3.5 Типи даних з плаваючою точкою

До змінних типу Float і Double звертаються або для обробки чисел із дрібною частиною, або при необхідності виконання операцій над дуже великими або дуже малими числами. Типи Float і Double розрізняються значенням найбільшого (і найменшого) числа, які можна зберігати за допомогою змінних цих типів. Зазвичай тип Double і C + + дозволяє зберігати число, приблизно в десять разів перевищує значення типу Float.

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

/ * Тут використовується теорема Піфагора для обчислення довжини гіпотенузи за заданими довжинами двох інших сторін трикутника.  * /

# include <iostream>

# include <cmath>  / / Цей заголовок необхідний для

/ / Виклику функції SQRT ().

using namespace std;

int main ()

(

double x, Y, Z;

X = 5;

У = 4;

Z = SQRT (X * X + Y * Y);  / / Функція Sqrt () є частиною

/ / Математичної С + +-бібліотеки.

cout << "Гіпотенуза дорівнює" <<Z;

Return 0;)

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

Гіпотенуза дорівнює 6.40312

Необхідно відзначити, що оскільки функція SQRT (  ) є частиною стандартної С+ +-бібліотеки функцій, то для її виклику в програму потрібно включити заголовок <math.h>.

Тип long double дозволяє працювати з дуже великими або дуже маленькими числами. Він використовується в програмах науково-дослідного характеру, наприклад, при аналізі астрономічних даних.

3.6 Тип даних bool

Тип bool (відносно недавнє доповнення до C + +) призначений для зберігання булевих (тобто Істина / Брехня) значень. В C + + визначені дві булеві константи: True і False, що є єдиними значеннями, які можуть мати змінні типу bool.

Важливо розуміти, як значення Істина / Брехня визначаються в C + +. Один з фундаментальних принципів C + + полягає в тому, що будь-яке ненульове значення інтерпретується як Істина, а нуль - як Брехня. Цей принцип повністю узгоджується з типом даних bool, оскільки будь-яке ненульовий значення, яке використовується у булевих вираженні, автоматично перетворюється на значення True, а (нуль - в значення False). Зворотне твердження також справедливо: при використанні в небулевому вираженні значення True перетворюється в число 1, а значення False - в число 0. Конвертованості нульових і ненульовий значень в їх булевих еквівалентах особливо важливо при використовуванні інструкцій управління.

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

/ / Демонстрація використання bool-значень.

# include <iostream>

using namespace std;

int main ()

(Bool b;

B = FALSE;

cout << "Значення змінної B дорівнює" <<B << "\ N";

B = True;

cout << "Значення змінної B дорівнює " <<B << "\ N";

/ / Одне bool-Значення може керувати If-інструкцією.

If (B) cout << "Це здійснимо \ N";

B = FALSE;

If (B) cout << "Це нездійснимо\ N";

/ / Результатом застосування оператора відносини

/ / Є True-або FALSE-значення.

cout << "10> 9 равно" <<(10> 9) << "\ N";

Return 0;

)

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

Значення змінної B дорівнює 0

Значення змінної B дорівнює 1

Це здійснимо.

10> 9 дорівнює 1

У цій програмі необхідно відзначити три важливих моменти.

При виведенні на екран bool-значення відображається число 0 або 1. Замість чисел можна вивести слова "FALSE" і "True".

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

If (B = = True).

Результатом виконання операції порівняння, тобто застосування оператора відносини (наприклад, "<") є булеве значення. Саме тому обчислення виразу 10> 9 дає в результаті число 1. При цьому необхідності додаткових круглих дужок в інструкції виводу

cout << "10> 9 равно" <<(10> 9) << "\ N";

пояснюється тим, що оператор "<<" має більш високий пріоритет, ніж оператор "<".

3.7 Тип Void

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

void f (  );  / / F не повертає значення

VOID * PV;  / / покажчик на об'єкт невідомого типу

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

Однак, саме на цьому обмеженні ґрунтується використання типу Void *. Він приписується параметрами функцій, які не повинні знати істинного типу цих параметрів. Тип Void * мають також безтипові об'єкти, що повертаються функціями. Для використання таких об'єктів потрібно виконати явну операцію перетворення типу. Такі функції зазвичай знаходяться на самих нижніх рівнях системи, що керують апаратними ресурсами. Наприклад:

VOID * malloc (unsigned size);

void free (VOID *);

void f ( )  / / розподіл пам'яті в стилі Сі

(

Int * PI = (Int *) malloc (10 * sizeof (Int));

CHAR * PC = (CHAR *) malloc (10);

//...

Free (PI);

Free (PC);

)

Позначення: (тип) вираз - використовується для завдання операції перетворення виразу до типу, тому перед присвоюванням pi тип Void *, повертаємий в першому виклику malloc (  ), перетворюється в тип Int. Приклад записаний в архаїчної стилі.

3.8 Літерали у мові С++

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

Літерали в C + + можуть мати будь-який базовий тип даних. Спосіб представлення кожного літерала залежить від його типу.

Символьні літерали полягають в одинарні лапки. Наприклад, 'а' та '%' є символьними літералами.

Цілочисельні літерали задаються як числа без дрібної частина. Наприклад, 10 та -100 - цілочисельні літерали.

Речові літерали повинні містити десяткову крапку, за якою слідує дрібна частина числа, наприклад 11.123. Для речових констант можна також використовувати експонентне  представлення чисел.

Всі літеральні значення мають певний тип даних. Є кілька різних цілочисельних типів, наприклад Int, short int і unsigned long int. Існує також три різних речових типу: Float, Double і long double. Цікаво, як же тоді компілятор визначає тип літерала? Наприклад, число 123.23 має тип Float або Double? Відповідь на це питання складається з двох частин.

По-перше, C + +-компілятор автоматично робить певні припущення щодо літералов.

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

За стандартом компілятор пов'язує цілочисельних літерал із сумісним і одночасно найменшим з займаної пам'яті типом даних, починаючи з типу Int. Отже, для 16-розрядних середовищ число 10 буде пов'язано з типом Int, A 103000 - з типом long int.

Єдиним винятком з правила "найменшого типу" є речові (з плаваючою точкою) константи, яким за стандартом привласнюють тип Double.

У багатьох випадках такі стандарти роботи компілятора цілком прийнятні. Однак у програміста є можливість точно визначити потрібний тип. Щоб поставити точний тип числової константи треба використовувати відповідний суфікс. Для речових типів діють такі суфікси: якщо речове число завершити літерою F, воно буде оброблятися з використанням типу Float, а якщо буквою L, мається на увазі тип long double. Для цілочисельних типів суфікс U означає використання модифікатора типу Unsigned, а суфікс L - Long. (Для завдання модифікатору unsigned long необхідно вказувати обидва суфікса U и L) типи даних та їх константи приведені у таблиці №4

таблиця №3.4 Типи даних та їх константи

Тип даних   

Приклади констант

int

1, 123, 21000, -231

long int

35000L, - 34L

unsigned int

10000U, 987U, 40000U

unsigned long

12323UL, 900000UL

float

123.23F, -3F

double

23.23, 123123.33,  -0.9976324

long  double

100l.2L

3.9 Шістнадцятирічні і восьмирічні літерали

 

Іноді зручно замість десяткової системи числення використовувати восьмирічна або шістнадцятирічна. У восьмирічній системі підставою служить число 8, а для вираження всіх чисел використовуються цифри від 0 до 7. У восьмирічній системі число 10 має те ж значення, що число 8 в десятковій. Системи відліку по заснуванню 16 називається шістнадцятирічною і використовує цифри від 0 до 9 плюс літери від А до F, що означають шістнадцятирічні "цифри" 10, 11, 12, 13, 14 і 15. Наприклад, шістнадцятирічне число 10 дорівнює числу 16 в десятковій системі. Оскільки ці дві системи числення використовуються в програмах досить часто, в мові С + + дозволено при бажанні задавати цілочисельні літерали не в десятковій, а в шістнадцятирічній або восьмирічний системі. Шістнадцятирічний літерал повинен починатися з префіксу 0х (нуль і букви х) або 0х, а восьмирічний - з нуля. Наведемо два приклади

int hex = 0xFF;   / / 255 в десятковій системі

int oct = 011;   / / 9 в десятковій системі

3. 10 Рядкові літерали

Мова C + + підтримує ще один вбудований тип літерала, іменований строковим. Рядок - це набір символів, укладених у подвійні лапки, наприклад, "це тест". При цьому хоча С + + дозволяє визначати рядкові літерали, він не має вбудованого строкового типу даних. Строки в C +  підтримуються у вигляді символьних масивів. (Крім того, стандарт  C ++ підтримує рядковий тип за допомогою бібліотечного класу String.)

СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ

  1.  Калоєров С. А. Програмування на мові С++: учбовий посібник. – Д.:  ООО «Юго – Восток, Лтд», 2004.
  2.  Буч Г. Об′єктно-орієнтований аналіз та проектування з прикладами на С++. – М.:БІНОМ, 1998.
  3.  Карпов Б., Баранова Т. С++: спеціальний довідник. – СПб.: Пітер, 2000.
  4.  Об′єктно-орієнтоване програмування в С++. Класика Computer Scince. 4-те вид./ Р. Лафоре. – СПб.: Пітер, 2004.
  5.  Подбельский В.В. Мова Си++: учбовий посібник. – 3-те вид. – М.: Фінанси та статистика, 1998.
  6.  Поль И. Об′єктно-орієнтоване програмування з використанням С++: Пер. з англ. – К.: ДіаСофт, 1995.
  7.  Сван Т. Освоєння Borland С++ 4.5. Практичний курс. – К.: Діалектика, 1996.
  8.  Стивен П. Мова програмування С++. Лекції та вправи. Підручник:     Пер. з англ. – ООО «Діасофт ЮП», 2003.
  9.  Стенлі Л. Основи програмування на С++. Т.1 /Пер. з англ. – М.: Віл′ямс.

  1.  Павловська Т.А., Щупак Ю.А. С/С++ Програмування на мові високого рівня
  2.  Стауступ Б. Мова програмування С++. – 3-те вид. / Пер. з англ. – СПб.: БІНОМ, 1999.

Додаток А

Ця програма переводить із типу даних double  в тип даних int. В програмі використовуються такі типи даних: int – кінцеве значення змінної, double – початкове значення змінної та char – показує який символ займає дана змінна .

ВІДГУК

про якість курсової роботи і готовність її до захисту

Курсова складається________________________________________

___________________________________________________________

___________________________________________________________

___________________________________________________________

Характеристика і якість текстової частини роботи ____________

___________________________________________________________

___________________________________________________________

___________________________________________________________

Недоліки __________________________________________________

___________________________________________________________

___________________________________________________________

___________________________________________________________

Висновки __________________________________________________

___________________________________________________________

___________________________________________________________

___________________________________________________________

Викладач _________________________________________________

(підпис, прізвище, ініціали)

Курсова робота заслухана комісією

«______»  __________________ 200_ р.

Оцінка «______»  (__________________)

_________________________________________________

(підпис, прізвище, ініціали)

_________________________________________________

(підпис, прізвище, ініціали)

_________________________________________________

(підпис, прізвище, ініціали)


 

А также другие работы, которые могут Вас заинтересовать

11960. Разработка проекта реинжиниринга бизнес-процессов управления кредитной задолженностью 1.04 MB
  Содержание Перечень условных обозначений 1 Теоретические аспекты управления кредитной задолженностью в деятельности банка 1.1 Состояние и проблемы рынка розничных банковских услуг в Республике Беларусь в настоящее время 1.2 Методы управления кредитной задолжен...
11961. Совершенствование технологии управления финансовыми рисками (на примере: ОАО «Сиббизнесбанк») 1.06 MB
  Дипломная работа на тему Совершенствование технологии управления финансовыми рисками на примере: ОАО Сиббизнесбанк СОДЕРЖАНИЕ Введение Глава 1. Теоретические аспекты технологии управления финансовыми рисками 1.1 Понятие и виды финансового риска 1.2 ...
11963. АНАЛИЗ ФИНАНСОВЫХ РЕЗУЛЬТАТОВ БАНКА НА ПРИМЕРЕ ОАО «ДАЛЬНЕВОСТОЧНЫЙ БАНК» 960 KB
  Дипломная работа АНАЛИЗ ФИНАНСОВЫХ РЕЗУЛЬТАТОВ БАНКА НА ПРИМЕРЕ ОАО ДАЛЬНЕВОСТОЧНЫЙ БАНК СОДЕРЖАНИЕ ВВЕДЕНИЕ ГЛАВА 1 КРЕДИТНО-ИВЕСТИЦИОННАЯ ПОЛИТИКА БАНКА 1.1 Сущность инвестиционной деятельности банков и предприятий 1.2 Сущность кредитования для банков ...
11964. Деятельность Сберегательного банка на рынке ценных бумаг (на примере ОАО «УРАЛЬСКИЙ СБЕРЕГАТЕЛЬНЫЙ БАНК РФ») 1013.46 KB
  ДИПЛОМНАЯ РАБОТА Тема: Деятельность Сберегательного банка на рынке ценных бумаг на примере ОАО УРАЛЬСКИЙ СБЕРЕГАТЕЛЬНЫЙ БАНК РФ СОДЕРЖАНИЕ ВВЕДЕНИЕ 1 ЭКОНОМИЧЕСКИЕ ОСНОВЫ ДЕЯТЕЛЬНОСТИ СБЕРЕГАТЕЛЬНОГО БАНКА НА РЫНКЕ ЦЕННЫХ БУМАГ 1.1 Участники фондового ры...
11966. Споживчий кредит та перспективи його розвитку в Україні 1.96 MB
  МАГІСТЕРСЬКА ДИПЛОМНА РОБОТА на тему Споживчий кредит та перспективи його розвитку в Україні РЕФЕРАТ Дипломна робота містить 70 сторінок 8 таблиць 6 рисунків список літератури з 88 найменувань 9 додатків на 21 стор.. €œСпоживчий кредит та перспективи його розвитку ...
11967. Обгрунтування маркетингової (ринкової) стратегії підприємства і механізмів її реалізації 529.53 KB
  2 ДИПЛОМНА РОБОТА Обгрунтування маркетингової ринкової стратегії підприємства і механізмів її реалізації Вступ Ефективність трансформаційних процесів що відбуваються в суспільстві та економіці України значною мірою залежить від ефективнос...
11968. УПРАВЛІННЯ РЕСУРСАМИ БАНКУ (НА ПРИКЛАДІ АКЦІОНЕРНОГО ТОВАРИСТВА ЗАКРИТОГО ТИПУ «АКЦІОНЕРНИЙ КОМЕРЦІЙНИЙ ПРОМИСЛОВО-ІНВЕСТИЦІЙНИЙ БАНК») 975.14 KB
  61 ДИПЛОМНА РОБОТА УПРАВЛІННЯ РЕСУРСАМИ БАНКУ НА ПРИКЛАДІ АКЦІОНЕРНОГО ТОВАРИСТВА ЗАКРИТОГО ТИПУ АКЦІОНЕРНИЙ КОМЕРЦІЙНИЙ ПРОМИСЛОВОІНВЕСТИЦІЙНИЙ БАНК Реферат Об’єкт дипломного дослідження – діяльність комерційного банку по залученню депозитн...