Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Т Е Х Н О Л О Г І Ї 10 страница




Під час виклику функції fwrite () параметр buffer є покажчик на інформацію, яка підлягає запису у файл. Ця функція записує count об'єктів завдовжки num_bytes у потік, яка адресується файловим покажчиком fp. Функція fwrite () повертає кількість записаних об'єктів, яка буде дорівнює значенню count, якщо у процесі виконання цієї операції не було помилки.

Якщо під час виклику функцій fread () і fwrite () файл був відкрито для виконання двійкової операції, то вони можуть зчитувати або записувати дані будь-якого типу. Наприклад, наведений нижче код програми записує у дисковий файл значення типу float.

Код програми В.2. Демонстрація запису у дисковий файл значення з плинною крапкою

#include <stdio.h> // Для введення/виведення

 

int main ()

{

FILE *fp;

float f = 12.23F;

if ((fp= fopen ("test","wb"))== NULL) {

printf ("Не вдається відкрити файл.\n");

return 1;

}

 

fwrite (&f, sizeof (float), 1, fp);

 

fclose (fp);

 

getch (); return 0;

}

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

За допомогою функцій fread () і fwrite () часто виконується зчитування і запис вмісту масивів або структур. Наприклад, наведений нижче код програми, використовуючи одну тільки функцію fwrite (), записує вміст масиву значень з плинною крапкою balance у файл з іменем balance. Потім за допомогою однієї тільки функції fread () програма зчитує елементи цього масиву і відображає їх на екрані.

Код програми В.3. Демонстрація механізму використання функції fwrite() для запису вміст масиву значень з плинною крапкою у файл

#include <stdio.h> // Для введення/виведення

 

int main ()

{

register int i;

FILE *fp;

float balance[100];

 

// Відкриваємо файл для запису.

if ((fp= fopen ("balance","w"))== NULL) {

printf ("Не вдається відкрити файл.\n");

return 1;

}

 

for (i=0; i<100; i++) balance[i] = (float) i;

 

// Одним махом" зберігаємо весь масив balance.

fwrite (balance, sizeof balance, 1, fp);

fclose (fp);

 

// Онулюємо масив.

for (i=0; i<100; i++) balance[i] = 0.0;

 

// Відкриваємо файл для зчитування.

if ((fp= fopen ("balance","r"))== NULL) {

printf ("Не вдається відкрити файл.\n");

return 1;

}

// Одним "махом" зчитуємо весь масив balance.

fread(balance, sizeof balance, 1, fp);

 

// Відображаємо вміст масиву.

for (i=0; i<100; i++) printf ("%f ", balance[i]);

 

fclose (fp);

 

getch (); return 0;

}

Використовувати функції fread () і fwrite () для зчитування і запису блоків даних ефективніше, ніж багато разів викликати функції fgetc () і fputc ().

В.4. Виконання операцій введення-виведення даних з довільним доступом до файлів

В.4.1. Використання функції fseek()

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

int fseek (FILE * fp, long numbytes, int origin);

У цьому записі параметр fp файловий покажчик, що повертається функцією fopen (), параметр numbytes кількість байтів щодо початкового положення, які задаються параметром origin. Параметр origin може приймати одне наступних макроімен (визначених у заголовку stdio.h).

Ім'я Призначення
SEEK_SET Пошук з початку файлу
SEEK_CUR Пошук з поточної позиції
SEEK_END Пошук з кінця файлу

Отже, щоб перемістити індикатор позиції у файлі на numbytes байтів відносно його початку, як параметр origin необхідно використовувати значення SEEK_SET. Для переміщення щодо поточної позиції використовуйте значення SEEK_CUR, а для зсуву з кінця файлу значення SEEK_END.

Нульове значення результату функції свідчить про успішне виконання функції fseek (), а ненульове – про виникнення збою. Як правило, функцію fseek () не рекомендується використовувати для файлів, відкритих у текстовому режимі, оскільки перетворення символів може призвести до помилкових переміщень індикатора позиції у файлі. Тому краще використовувати цю функцію для файлів, відкритих у двійковому режимі. Наприклад, якщо виникає потреба рахувати 234-й байт у файлі test, виконайте такий програмний код:

Код програми В.4. Демонстрація механізму використання функції fseek()

int funс1()

{

FILE *fp;

 

if ((fp= fopen ("test", "rb")) == NULL) {

printf ("Не вдається відкрити файл.\n");

exit (1);

}

 

fseek (fp, 234L SEEK_SET);

 

return getc(fp); // Зчитування одного символу розташованого

// на 234-й позиції.

}

В.4.2. Використання функції fprintf() і fscanf()

Крім розглянутих вище основних функцій введення-виведення, С-система введення-виведення містить функції fprintf () і fscanf (). Поведінка цих функцій аналогічно поведінці функцій printf () і scanf (), за винятком того, що вони працюють з файлами. Саме тому ці функції звичайно використовуються у С-програмах. Прототипи функцій fprintf () і fscanf () виглядають так:

int fprintf (FILE *fp, const char * fmt_ string,.);

int fscanf (FILE *fp, const char *fmt_ string,.);

У цьому записі параметр fp файловий покажчик, що повертається функцією fopen (). Функції fprintf () і fscanf () працюють подібно до функцій printf () і scanf () відповідно, за винятком того, що їх дія спрямована у файл, визначено параметром fp.

В.5. Видалення файлів

Функція remove () видаляє заданий файл. Її прототип виглядає так.

int remove (const char * filename);

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


Додаток Г. Особливості використання застарілого С++-компілятора

Програми, наведені у цьому навчальному посібнику, повністю відповідають стандарту ANSI/ISO для C++ і можуть бути скомпільовані практично будь-яким сучасним С++-компілятором, в т.ч. Visual C++ (Microsoft) і C++ Builder (Borland). Отже, під час використання сучасного компілятора у Вас не повинно бути проблем з компілювання програм з цього навчального посібника[90].

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

Як згадувалося в розділі 2, настанова #include містить у програму заданий заголовок. Для попередніх версій C++ під заголовками розумілися файли з розширенням *.h. Наприклад, у старій С++-програмі для внесення заголовка iostream була б використана така настанова:

#include < iostream. h>

У цьому випадку у програму був би включений заголовний файл iostream. h. Таким чином, в т.ч. у стару С++-програму заголовок, необхідно задавати ім'я файлу з розширенням *.h.

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

Оскільки сучасні заголовки необов'язково є іменами файлів, вони не повинні мати розширення *.h. Вони визначають ім'я заголовка, поміщеного у кутові дужки. Ось, наприклад, як виглядають два сучасні заголовки, що підтримуються стандартом C++.

<iostream> // Для потокового введення-виведення

< fstream >

Щоб перетворити ці "нові" заголовки в "старі" заголовні файли, достатньо додати розширення *.h.

В т.ч. сучасний заголовок у програму, потрібно пам'ятати, що його вміст відноситься до простору імен std. Як ми вже зазначали вище, простір імен це просто декларативна область. Її призначення локалізувати імена ідентифікаторів щоб уникнути колізій з іменами. Старі версії C++ поміщають імена бібліотечних функцій у глобальний простір імен, а не у простір імен std, що використовується сучасними компіляторами. Таким чином, працюючи із старим компілятором, не потрібно використовувати цю настанову: using namespace std; // Використання стандартного простору імен

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

Дві прості зміни

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

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

такою

#include < iostream. h>

Ця зміна перетворить "нову" програму в "стару". Оскільки під час використання "старого" заголовка в глобальний простір імен зчитується весь вміст заголовного файлу, необхідність у використанні namespace -настанови відпадає. Після внесення цих змін програму можна скомпілювати за допомогою старого компілятора.

Іноді доводиться вносити і інші зміни. C++ успадковує ряд заголовків з мови С. Мова С не підтримує сучасний стиль використання С++-заголовків, використовуючи замість них заголовні *.h-файли. Для дозволу зворотної сумісності стандарт C++, як і раніше, підтримує заголовні С-файли. Проте стандарт C++ також визначає сучасні заголовки, які можна використовувати замість заголовних С-файлів. У С++-версіях стандартних С-заголовків до імені С-файлу просто додається префікс 'c' і опускається розширення *.h. Наприклад, С++-заголовком для файлу math.h слугує заголовок < cmath >, а для файлу string. h – заголовок < cstring >. Незважаючи на те, що у С++-програму дозволено містити заголовний С-файл, проти такого підходу у розробників стандарту є істотні заперечення (іншими словами, це не рекомендовано). Тому у справжній книзі використовуються сучасні С++-заголовки в усіх настановах #include. Якщо Ваш компілятор не підтримує С++-заголовки для С-заголовків, просто заміните "старі" заголовні файли.


Додаток Д..NET-розширения для C++

Розроблена компанією Microsoft інтегрована оболонка.NET Framework визначає середовище, яке призначене для підтримки розробки і виконання сильно розподілених застосувань, заснованих на використанні компонентних об'єктів. Вона дає змогу "мирно співіснувати" різним мовам програмування і забезпечує безпеку, переносність програм і загальну модель програмування для платформи Windows. Незважаючи на відносну новизну оболонки.NET Framework, ймовірно, в найближчому майбутньому у цьому середовищі працюватимуть багато С++-програмісти.

Інтегрована оболонка.NET Framework надає кероване середовище, яке стежить за виконанням програми. Програма, призначена для приміщення в оболонку.NET Framework, не компілюється з метою отримання об'єктного коду програми. Натомість вона перекладається проміжною мовою Microsoft Intermediate Language (MSIL), а потім виконується під управлянням універсального засобу CLR (Common Language Runtime). Кероване виконання це механізм, який підтримує ключові переваги, пропоновані оболонкою.NET Framework.

Щоб скористатися перевагами керованого виконання, необхідно застосовувати для С++-програм спеціальний набір нестандартних ключових слів і директив препроцесора, які були визначені розробниками компанії Microsoft. Важливо розуміти, що цей додатковий набір не включений у стандарт C++ (ANSI/ISO Standard C++). Тому програмний код, у якому використовуються ці ключові слова, не можна переносити в інші середовища виконання.

Опис оболонки.NET Framework і методів С++-програмування, необхідних для її використання, виходить за рамки цього навчального посібника. Проте тут наведено короткий огляд.NET-розширення мови програмування C++ заради тих програмістів, які працюють в.NET-середовищу.

Д.1. Ключові слова.NET-середовища

Для підтримки.NET-середовища керованого виконання С++-програм Microsoft вводить в мову C++ такі ключові слова:

__abstract __box __delegate
__event __finally __gc
__identifier __interface __nogc
__pin __property __sealed
__try_cast __typeof __value

Короткий опис кожного з цих ключових слів наведений у наступних розділах.

Ключове слово __abstract

Ключове слово __ abstract використовується у поєднанні із словом __ gc під час визначення абстрактного керованого класу. Об'єкт __ abstract -класса створити не можна. Для класу, визначеного з використанням ключового слова __ abstract, необов'язково внесення в нього чисте віртуальній функції.

Ключове слово __box

Ключове слово __box укладає у спеціальну оболонку значення усередині об'єкта. Таке "упакування" дає змогу використовувати тип цього значення у коді, який вимагає, щоб даний об'єкт був виведений з класу System::Object, базового класу для всіх.NET-об'єктів.

Ключове слово __delegate

Ключове слово __ delegate визначає об'єкт-делегат, який інкапсулює покажчик на функцію усередині керованого класу (тобто класу, модифікованого ключовим словом__ gc).

Ключове слово __event

Ключове слово __ event визначає функцію, яка представляє деяку подію. Для такої функції задається тільки прототип.

Ключове слово __finally

Ключове слово __ finally це доповнення до стандартного С++-механізму оброблення виняткових ситуацій. Воно використовують для визначення блоку коду програми, який повинен виконуватися після виходу з блоків try / catch. При цьому не має значення, які умови приводять до завершення try /caten-блока. Блок__ finally повинен бути виконаний у будь-якому випадку.

Ключове слово __gc

Ключове слово __ gc визначає керований клас. Позначення " gc " є скорочення від словосполучення " g arbage c ollection" (тобто "сбирання сміття") і означає, що об'єкти цього класу автоматично піддаються процесу утилізації пам'яті, що звільняється під час роботи програми, коли вони більше не потрібні. В об'єкті відпадає необхідність у разі, коли на нього не існує жодного посилання. Об'єкти __ gc -класса повинні створюватися за допомогою оператора new. Масиви, покажчики і інтерфейси також можна визначати з використанням ключового слова__ gc.

Ключове слово __identifier

Ключове слово __ identifier дає змогу будь-якому іншому ключовому слову мови програмування C++ використовуватися як ідентифікатор. Ця можливість не призначена для широкого застосування і введена для вирішення спеціальних завдань.

Ключове слово __interface

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

Ключове слово __nogc

Ключове слово __ nogc визначає некерований клас. Оскільки такий (некерований) тип класу створюється за замовчуванням, ключове слово __ nogc використовується рідко.

Ключове слово __pin

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

Ключове слово __property

Ключове слово __ property визначає властивість, що є функцією-членом, яка дає змогу встановити або набути значення певної змінної (члена даних класу). Властивості надають зручний засіб керування доступом до закритих (private) або захищених (protected) даних.

Ключове слово __sealed

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

Ключове слово __try_cast

За допомогою ключового слова __ try_cast можна спробувати перетворити тип виразу. Якщо зроблена спроба виявиться невдалою, згенерує виняток типу

System::InvalidCastException.

Ключове слово __typeof

Ключове слово __typeof дає змогу отримати об'єкт, який інкапсулює інформацію про даного типу. Цей об'єкт є примірником класу System::Type.

Ключове слово __value

Ключове слово __ value визначає клас, який є позначенням типу. Будь-яке позначення типу містить власні значення. І цим тип __ value відрізняється від типу __ gc, який повинен виділяти пам'ять для об'єкта за допомогою оператора new. Позначення типу не представляють інтерес для "складальника сміття".

Д.2. Розширення препроцесора

Для підтримки.NET-середовища компанія Microsoft визначає директиву препроцесора using, яка використовують для імпортування метаданих у програму. Метадані містять інформацію про тип і членів класу у формі, яка не залежить від конкретної мови програмування. Таким чином, метадані забезпечують підтримку змішаного використання мов програмування. Всі керовані С++-програми повинні імпортувати бібліотеку <mscorlib.dll>, яка містить необхідні метадані для оболонки.NET Framework.

Компанія Microsoft визначає дві pragma-настанови (використовувані з директивою препроцесора #pragma), які мають відношення до оболонки.NET Framework. Перша (managed) визначає керований код. Друга (unmanaged) визначає некерований (власний, тобто притаманний даному середовищу) код. Ці настанови можуть бути використані усередині програми для селективного створення керованого і некерованого коду програми.

Використовується атрибуту attribute

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

Компілювання керованих С++-програм

На момент написання цього навчального посібника єдиний доступний компілятор, який міг обробляти програми, що орієнтуються на роботу у середовищі.NET Framework, постачався компанією Microsoft (Visual Studio.NET). Щоб скомпілювати керовану програму, необхідно використовувати команду /clr, яка передасть Вашу програму "до рук" універсального засобу Common Language Runtime.


Література

1. Александреску А. Современное проектирование на С++. Серия С++ In-Depth. tType. 3. – М.: Изд-ий дом "Вильямс", 2002. – 336 c.

2. Аммераалъ Л. STL для программистов на С++. – М.: ДМК, 1999. – 240 с.

3. Архангельский А.Я. Программирование в С++ Builder 6. – М.: ЗАО "Изд-во БИНОМ", 2004. – 1152 с.

4. Брон­штейн И.Н., Се­мен­дя­ев К.А. Спра­воч­ник по ма­те­ма­ти­ке для ин­же­не­ров и уча­щих­ся вту­зов. – 13-е изд., испр. – М.: На­ука, Гл. ред. физ.-мат. лит., 1986. – 544 с.

5. Буч Г. Объектно-ориентированный анализ и проектирование с примерами на С++. – М.: Бином, 1998. – 560 с.

6. Влиссидес Дж. Применение шаблонов проектирования. Дополнительные штрихи. – М.: Изд-ий дом "Вильямс", 2003. – 144 с.

7. Гамма Э., Хелм Р., Джонсон Р., Влиссидес Дж. Приемы об­ъектно-ориенти­рован­ного программирования. Патерны проектирования. – СПб.: Питер, 2004. – 366 с.

8. Глинський Я.М., Анохін В.Є., Ряжська В.А. С++ і С++ Builder. – Львів.: Деол, СПД Глинський, 2003. – 192 с.

9. Кениг Э., Му Б. Эффективное программирование на С++. Серия С++ In-Depth. tType. 2. – М.: Изд-ий дом "Вильямс", 2002. – 384 с.

10. Ласло М. Вычислительная геометрия и компьютерная графика на С++. – М.: Бином, 1997. – 304 с.

11. Лафоре, Роберт. Об­ъектно-ориентированное программирование в С++. Классика Computer Science. 4-е изд./ Пер. с англ. – СПб.: Питер, 2005. – 924 с.

12. Либерти Д. Освой самостоятельно С++ за 21 день. – М.: Изд-ий дом "Вильямс", 2000. – 816 с.

13. Липпман С., Лажойе Ж. Язык программирования С++. Вводный курс, 3-е изд./ Пер. с англ. – СПб.-М.: Невский диалект – ДМК Пресс, 2004. – 1104 с.

14. Павловская Т.А. Программирование на языке высокого уровня: Учебник. – СПб.: Питер, 2005. – 461 с.

15. Павловская Т.А., Щупак Ю.А. С++. Об­ъектно-ориентированное программирование: Практикум. – СПб.: Питер, 2005. – 265 с.

16. Павловская Т. С/С++. Программирование на языке высокого уровня. – СПб.: Питер, 2001. – 460 с.

17. Павловская Т., Щупак Ю. С/С++. Структурное программирование: Практикум. – СПб.: Питер, 2005. – 240 с.

18. Павловская Т., Щупак Ю. С++. Объектно-ориентированное программирование: Практикум. – СПб.: Питер, 2005. – 265 с.

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

20. Саттер Г. Решение сложных задач на С++. Серия С++ In-Depth. T. 4. – М.: Изд-ий дом "Вильямс", 2002. – 400 с.

21. Синтес, Антони. Освой самостоятельно об­ъектно-ориентированное программирование за 21 день/ Пер. с англ. – М.: Изд. дом "Вильямс", 2002. – 672 с.

22. Спра­воч­ник по элементарной ма­те­ма­ти­ке: геометрия, тригонометрия, векторная алгебра/ Под ред. члена-корр. АН УССР П.Ф. Фильчакова. – К.: На­укова думка, 1966. – 444 с.

23. Страуструп Б. Язык программирования С++. – СПб.: Бином, 1999. – 991 с.

24. Халперн, Пабло. Стандартная библиотека С++ на примерах/ Пер. с англ. – М.: Изд. дом "Вильямс", 2001. – 336 с.

25. Шаллоуэй А., Тротт Д. Шаблоны проектирования. Новый подход к объектно-ориен­ти­ро­ван­ному анализу и проектированию. – М.: Изд-ий дом "Вильямс", 2002. – 288 с.

26. Шилдт, Герберт. Искусство программирования на С++/ Пер. с англ. – СПб.: БХВ-Петербург, 2005. – 496 с.

27. Шилдт, Герберт. Полный справочник по С++, 4-е изд./ Пер. с англ. – М.: Изд. дом "Вильямс", 2006. – 800 с.

28. Шилдт, Герберт. С++: Базовый курс, 3-е изд./ Пер. с англ. – М.: Изд. дом "Вильямс", 2005. – 624 с.

29. Шилдт, Герберт. Самоучитель С++, 3-е изд./ Пер. с англ. – СПб.: БХВ-Петербург, 2005. – 688 с.

30. Штерн В. Основы С++. Методы программной инженерии. – М.: Лори, 2003. – 860 с.

31. Элджер Д. С++: библиотека программиста. – СПб.: Питер, 2000. – 320 с.

 


[1] ANSI є скороченням від англійської назви Американського Національного Інституту Стандартів, а ISO – від Міжнародної Організації Стандартів.

[2] Для мови Асемблер характерне символічне представлення реального машинного коду, який може виконувати комп'ютер.

[3] Під функцією ми розуміємо підпрограму.

[4] Точніше, С++-програма починається з виклику функції main () і зазвичай закінчується поверненням з функції main ().

[5] Більше того, мова програмування C++ дає змогу програмісту визначати власні типи даних.

[6] Необхідно пам'ятати, що Ви повинні ввести ціле число галонів, тобто число, що не містить дробової частини.

[7] Як альтернативний варіант можна використовувати декілька декларативних int -настанов – результат буде той самий.

[8] Безумовно, одна функція може викликати іншу.

[9] Стандартну бібліотеку буде розглянуто нижче, а поки помітимо, що вона є колекцією вбудованих функцій.

[10] Згадаймо, слово void використовується тільки у тому випадку, коли функція не повертає ніякого значення.

[11] Все ж таки зазвичай функцію main () розміщують першою, щоб її було легко знайти.

[12] Детальніше їх опис наведено нижче в цьому навчальному посібнику.

[13] Окрім того, стандарт мови програмування C++ підтримує рядковий тип за допомогою бібліотечного класу string, який також описаний нижче в цьому навчальному посібнику.

[14] Необхідно пам'ятати, що тут одиниця буде оброблена як значення true, а нуль – як false.

[15] Пропонуємо читачу як вправу доповнити інформацію по вивчених темах, а також ввести в цю "довідкову" систему нові теми.

[16] Нескінченні цикли можна також створювати, використовуючи настанови while або do-while, але цикл for – це традиційне вирішення переважної більшості питань.

[17] Зупинити перебір множників можна на значенні виразу i/j, оскільки число, яке перевищує i/j, вже не може бути множником значення i.

[18] Детально функція qsort() розглянута в розд. 20.

[19] Згадаймо: унарному оператору потрібен тільки один операнд.

[20] Спробуйте виконати цю програму і переконайтеся в цьому самі.

[21] Для більшості 32-розрядних компіляторів значення i збільшуватиметься на 4, а значення f – на 8.

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

[23] Інакше кожного разу після запуску програма видаватиме один і той самий "прогноз".




Поделиться с друзьями:


Дата добавления: 2014-11-29; Просмотров: 382; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.397 сек.