Сутність і призначення функцій

Функції користувача і класи пам'яті.

Тип String в консольних додатках.

Б) Перетворення з String в просту змінну типу char.

А) Перетворення з масиву char в String і навпаки.

Як згадувалося вище, для перетворення масиву char до типу String досить просто привласнити його змінної типу String:

Зворотне ж перетворення автоматично не робиться. Для його здійснення використовується метод c_str () типу String. Він створює тимчасовий масив char, який створюється тільки на час виполненіяоператора. що містить цей метод:

// WinExec - запуск програми з заданим ім'ям

// Функція WinExec вимагає, щоб ім'я було масивом char

Якщо ж потрібно використовувати отриманий масив char в подальшій програмі, його треба скопіювати в "постійний" (оголошений) масив char:

Таким чином, для введення масивів char в віконних додатках необхідно використовувати функцію strcpy і метод c_str ():

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

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

в) Перетворення String і числових типів.

Функції перетворення були описані вище в темі "Функції введення-виведення, Введення-виведення в віконних додатках":

String IntToStr (int x); - int à String

int StrToInt (String S); - String à int

double StrToFloat (String S); - String à double

String FloatToStr (double x); - double à String

String FloatToStrF (double x, Format, int p, int d);

- double à String із зазначенням формату і точності.

int i = StrToInt (s); // i = 123; автоматичного

// перетворення String в тип int не відбувається

// (хоча навпаки - відбувається)

Приклад 2: Вивести в один рядок Memo1 змінні N1 і N2 типу int, розділяючи їх пропуском:

// явне перетворення типів необхідно,

// інакше знак + не був би витлумачений по типу String

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

(Цей рядок може бути додана автоматично).

Для консольного вводу-виводу String повинен бути перетворений в масив char і / або навпаки (див. Вище). Зокрема, введення з консолі краще проводити спочатку в допоміжний масив char, а вже звідти (якщо потрібно) - в String.

Завдання 9. У введеної з консолі рядку замінити всі прогалини на символи підкреслення, використовуючи тип String.

puts ( "Vvedite stroku s probelami:");

for (i = 1; i<=t.Length(); i++)

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

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

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

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

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

На відміну від інших мов програмування високого рівня в мові Сі немає поділу на підпрограми-процедури та підпрограми-функції, тут будь-яка підпрограма є функцією.

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

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

Схожі статті