Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_ 1Si.doc
Скачиваний:
5
Добавлен:
07.03.2016
Размер:
202.75 Кб
Скачать

Дійсні числа

Для виводу (і для вводу) дійсних чисел використовуються три формата: %f, %e та %g. В таблиці показані приклади використання формату %f.

приклад виводу

результат

коментар

printf("[%f]", 123.45);

[123.450000]

Мінімально можливе поле, 6 знаків в дробовій частині.

printf("[%9.3f]", 123.45);

[ 123.450]

Всього 9 позицій, из них 3 – для дробової частини, вирівнювання вправо.

printf("[%-9.3f]", 123.45);

[123.450 ]

Всього 9 позицій, из них 3 – для дробової частини, вирівнювання вліво.

printf("[%6.4f]", 123.45);

[123.4500]

Число не поміщається в задані 6 позицій (4 цифри в дробовій частині), тому область виводу розширюється.

Формат %e застосовується в наукових розрахунках для виведення дуже великих або дуже маленьких чисел, наприклад, розміру атома або відстані до Сонця. З поданням числа в так званому стандартному вигляді (з виділеною мантисою та порядком). Наприклад, число 123,45 може бути записано в стандартному вигляді як 123.45 = 1.2345×102 . Тут 1.2345 – мантисса (вона завжди знаходиться в інтервалі від 1 до 10), а 2 – порядок (мантиса множиться на 10 в цьому ступені). При ввиводі по формату %e також можна задати число позицій, які відводяться для виводу числа, і число цифр у дробовій частині мантиси. Порядок завжди вказується у вигляді двох цифр, перед якими стоїть буква е і знак порядку (плюс або мінус).

приклад виводу

результат

коментар

printf("[%e]", 123.45);

[ 1.234500e+02]

Мінімально можливе поле, 6 знаків в дробовій частині мантиси.

printf("[%12.3e]", 123.45);

[ 1.234e+02]

Всього 12 позицій, із них 3 – для дробової частини мантиси, вирівнювання вправо.

printf("[%-12.3e]", 123.45);

[ 1.234e+02 ]

Всього 12 позицій, із них 3 – для дробової частини мантиси, вирівнювання вліво.

Структура Сі-програми

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

У мові Сі вихідні файли бувають двох типів:

  • заголовні, або h-файли;

  • файли реалізації, або Cи-файли.

Імена заголовних файлів мають розширення ".h". Імена файлів реализації мають розширення ".c" для мови Сі та ".cpp", ".cxx" або ".cc" для мови C++.

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

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

Рядок опису int x; який визначає цілочисельну змінну x, є помилковим. Замість цього слід використовувати опис

extern int x;

що означає, що змінна x визначена десь у файлі реалізації (у якому - невідомо). Слово extern (зовнішня) лише повідомляє інформацію про зовнішню змінну, але не визначає цю змінну.

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

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

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

#include <stdio.h>

(stdio - від слів standard input/output). Ім’я h-файлу записується в кутові дужки, якщо цей h-файл є частиною стандартної Сі-бібліотеки та розташований в одному із системних каталогів. Імена h-файлів, створених самим програмістом в рамках проекту та розташованих у поточному каталозі, вказуються у подвійних дужках, наприклад,

#include "abcd.h"

Препроцесор - це програма попередньої обробки тексту безпосередньо перед трансляцією. Команди препроцесора називаються директивами. Директиви препроцесора містять символ дієз # на початку рядка. Препроцесор використовується в основному для підключення h -файлів. У Сі також дуже часто використовується директива # define використовується для задання символічних імен констант. Так, рядок

#define PI 3.14159265

задає символічне ім'я PI для константи 3,14159265. Після цього ім'я PI можна використовувати замість числового значення. Препроцесор знаходить всі входження слова PI в текст і замінює їх на константу. Таким чином, препроцесор здійснює підміну одного тексту іншим. Необхідність використання препроцесора завжди свідчить про недостатню виразність мови. Так, в будь-якому Ассемблері засоби препроцесорування використовуються досить інтенсивно. У Сі по можливості слід уникати надмірного захоплення командами препроцесора - це ускладнює розуміння тексту програми і часто веде до важкого виправляння помилок. У C + + можна обійтися без використання директив #define для завдання констант.

Наприклад, в C + + константу PI можна задати за допомогою нормального опису const double PI = 3.14159265;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]