Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Programming_basics_2011.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
449 Кб
Скачать
☆

Загальні відомості

Програма мовою Сі – це послідовність препроцесорних дирек­тив, описів та визначень глобальних змінних та функцій.

Базові типи змінних. Для визначення змінних цілого типу даних використовують ключові слова char, int, short, long. Слова signed, unsigned позначають знакове чи беззнакове ціле число, за умовчанням всі числа є знакові. Для визначення змінних дійсного типу даних використовують ключові слова float, double, long double.

У мові Сі визначені наступні арифметичні типи даних:

Тип даних Розмір Діапазон значень

char 1 байт від -128 до +127

unsigned char 1 байт від 0 до 255

int 2 байта від -32768 до +32767

unsigned int 2 байта від 0 до 65535

long 4 байта від -215 до +215-1

unsigned long 4 байта від 0 до +216-1

float 4 байта від ± 3.410-38 до ±3.410+38

double 8 байт від ±1.710-308 до ±1.710+308

long double 10 байт від ±3.410-4932 до ±3.410+4932

Константи цілого типу за умовчанням мають тип int. Для завдання константи типу long дописується символ L або l, для завдання константи типу unsigned – символ U або u (234L, 456u, 23456Lu), для завдання константи в 8-й системі числення (СЧ) на початку константи дописується 0, в 16-й СЧ – 0х (020, 0х4а).

Константи дійсного типу за умовчанням мають тип double. Для зав­дання константи типу float дописується символ F або f, для завдан­ня константи типу long double дописується символ L або l: 23.4f, 4.56E-2L.

Препроцесорні директиви.  Директиви препроцесора – це за­писані в тексті програми інструкції, які починаються з нового рядка зі знаку #. Ці директиви виконуються препроцесором до компіляції програми, доповнюючи вхідний текст програми.

Директива #include включає в текст програми зміст зазначе­ного файлу. Ця директива має дві форми:

#include "ім'я_файлу"

#include <ім'я_файлу>

Директива #define виконує заміну ідентифікаторів констант­тами або будь-якою послідовністю операторів (виразів), що найчас­тіше використовуються. Синтаксис директиви #define такий:

#define ідентифікатор  рядок_заміщення

Заміни в тексті можна відмінити за допомогою директиви:

#undef ідентифікатор

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

#define W 80

#undef W

Елементарні введення та виведення даних.

Форматоване виведення даних здійснюється функцією:

printf(рядок_формату, список_виведення);

Cписок_виведення може містити константи, змінні та будь-які вирази, розділені комами. Рядок_формату записується в подвійних лапках і може містити: послідовність звичайних символів, що виво­дяться на екран; спеціальні символи, що керують розміщенням даних на екрані (ESC–послідовності); спеціфікатори формату даних.

Спеціфікатори формату – це наступна послідовність:

%[-][довжина поля][.точність][l або L] специфікатор_типу

де  [-] – зсув даних, що виводяться, до лівого краю поля; [довжина поля] – кількість позицій для виведення; [.точність] – кількість цифр дробової частини дійсних чисел, чи кількість символів, що виводяться, для рядків; l або L – позначка для чисел типу long, double, long double.

Для виведення даних використовують такі специфікатори типів:

%c – ціле число типу char, int, short у вигляді символу;

%d – ціле число типу char, int, short у 10-ій системі числення (СЧ);

%u – беззнакове ціле число у 10-ій СЧ;

%o – ціле число у 8-ій СЧ;

%x – ціле число в 16-ій СЧ;

%ld – ціле число типу long int у 10-ій СЧ;

%lo – ціле число типу long int у 8-ій СЧ;

%lx – ціле число типу long int у 16-ій СЧ;

%f – дійсне число типу float;

%e – дійсне число типу float в експоненціальній формі;

%lf – дійсне число типу doublе;

%le – дійсне число типу doublе в експоненціальній формі;

%Lf – дійсне число типу long double;

%Le – дійсне число типу long double в експоненціальній формі;

%s – рядок;

%p – адреса.

Форматоване введення даних здійснюється функцією:

scanf(рядок_формату, список_введення);

Список_введення може містити тільки адреси змінних, раніш визначених у програмі. Рядок_формату записується в подвійних лапках і може містити тільки специфікатори типів даних.

Функція scanf() здійснює введення чисел, символів та рядків з клавіатури до натискання клавіші <Enter> або до виявлення першого неприпустимого символу у вхідному потоці.

int a; float b; char с; char st[20];

scanf("%d %f %c %s",&a,&b,&c,st);

printf("a=%d, b=%f, c=%c st=%s \n",a,b,c,st);

Неформатоване  введення  символів здійснюється функціями getchar(), getch(), getche(), а неформатоване  виведення сим­волів – putchar(), putch().

char c1,с2,с3;

c1=getchar();   c2=getch();   c3=getche();

putchar(c1);    putch(c2);    

Неформатоване введення рядків виконується функцією gets(), а неформатоване виведення рядків – puts().

char st1[20]; gets(st1); puts(st1);

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

\n новий рядок;

\t горизонтальна табуляція;

\a дзвоник (сигнал);

\' одиночні лапки;

\" подвійні лапки;

\\ нахилена вліво риска;

\? знак питання.

Умовний  оператор if…else обирає один з двох варіантів виразів обчислень та має такий синтаксис:

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