Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП Лаборатор_2011.doc
Скачиваний:
6
Добавлен:
07.02.2016
Размер:
279.04 Кб
Скачать

4 Довідкова інформація

4.1 Запис текстів програм. Стандарт знту-2003

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

Добрим розв’язанням проблеми є застосування стилю запису програм ЗНТУ. Він визначає правила запису програм мовою С/С++ і носить рекомендаційний характер. Спробуйте писати свої програми відповідно до цього стандарту і ви переконаєтеся, що це дійсно добре. Наявний досвід застосування стандарту в навчальному процесі, а також у наукових звітах і публікаціях підтверджує його ефективність. Правила стандарту не складні, вони легко запам'ятовуються й засвоюються.

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

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

2. Текст будь-якої програми мовою С/С++ являє собою деяку послідовність програмних компонентів одного з наступних видів: директив, оголошень, коментарів і функцій. Директиви являють собою команди, що управляють процесом компіляції програми. Коментарі використовуються для поліпшення зручності програм щодо читання. Вони саме є тим елементом, що дозволяє краще виконувати саме другу функцію мови програмування.

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

3. Всі директиви, що починаються символом " # " записуємо з першої позиції рядка. Наприклад:

#define M_PI pi

#ifndef _SYST_

#define _SYST_

#include <dos.h>

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

#endif

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

4. Глобальні прості оголошення також записуються з першої позиції рядка. Приклади:

using namespace std; // Розширення простору імен

const double CPU_Frequency = 2600.0;

//Глобальна константа

unsigned long STIME_1,STIME_2; // Глобальні змінні

5. Фігурні дужки, що мають глобальний статус (наприклад, дужки, які визначають тіло функції або класу), записуються у першій позиції рядка. І навпаки, тільки ті фігурні дужки, які мають глобальний статус, записуються у першій позиції рядка. Фігурна дужка, що відкриває локально обумовлений блок, зсувається вправо на кількість позицій, кратну двом. При цьому величина зсуву визначається рівнем вкладеності відповідного блоку. Дужка, що закриває блок, записується точно під відповідною відкриваючою дужкою. Якщо блок цілком міститься в одному рядку, то обидві дужки можна розташувати в цьому рядку.

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

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

Приклад правильного запису тексту програми.

class poligon //Заголовок класу, зсув на 2 позиції

{ float xc,yc,r;//Фігурна дужка має глобальний статус

int n, alfa, col;

public: // Атрибут доступу пишемо в окремому рядку

poligon();

void draw();

void rotate(int delta);

}; // Дужка має глобальний статус!

void poligon::draw() // Заголовок функції

{ int i; // пишемо з 3 позиції

float dalf,alf,al;

float x,y,rb,rb1;

rb= 0.2*r; rb1=0.8*rb;

dalf=2*pi/n; alf=alfa*pi/180;

setcolor(col);

for (i=0;i<n;i++)

{ al=alf+i*dalf; // Тіло циклу є вкладений блок

x=xc+r*cos(al); y=yc+r*sin(al);

rline(xc,yc,x,y);

rball(x,y,rb); rball(x,y,rb1);

}

}

void main() // Функція main така ж, як і інші

{ PathBGI="C:\\BC31\\BGI";

poligon P,R;

ropen();

wind.scale(-2,-1.5,2,1.5);

do { P.rotate( 1); R.rotate(-1); delay(5); } // Дужки короткого блоку пишемо в одному рядку

while(!kbhit());

pause;

rclose();

}

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

do { P.rotate( 1); R.rotate(-1); delay(5); } while ( !k bhit() );

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

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

9. Компоненти класу, об’єднання або структури записуйте у такому порядку:

а) компоненти класу;

б) конструктори;

в) деструктор;

г) функції, що перевантажують операції;

д) інші функції класу.

10. Заголовок і тіло класу, об’єднання або структури пишемо за такими ж правилами, як і заголовок і тіло функції.