Структура програми на мові Сі
Структура програми на мові Сі
Програма визначає, чи є три числа арифметичною прогресією.
Вміст файлу: file2.c
Найкоротша програма
Команди препроцесора
Команди препроцесора
Команди препроцесора
Команди препроцесора
Оператори мови Сі
Оператори мови Сі
Оператори мови Сі
Оператори умовного переходу 4.Оператор умовного переходу if
Повний умовний оператор
Повний умовний оператор
Скорочений умовний оператор
Скорочений умовний оператор
Скорочений умовний оператор
Вкладені оператори умовного переходу if
5. Оператор вибору switch (теж оператор умовного переходу)
5. Оператор вибору switch
732.50K
Category: programmingprogramming

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

1. Структура програми на мові Сі

<команди препроцесора>
<глобальні описи>
<функції>
• Команди препроцесора вказують на
перетворення, яким треба піддати
програму перед компілюванням.
• Функції описують сукупності дій, які буде
виконувати програма.
• Глобальні описи характеризують глобальні
об'єкти

2. Структура програми на мові Сі

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

3. Програма визначає, чи є три числа арифметичною прогресією.

початок
#include <stdio.h>
ввести 3
#include <conio.h>
числа
#include "file2.c"
Так
Ні
прогресія?
int decr;
вивести
вивести
int main(int argc, char *argv[])
різницю
«Ні»
{
кінець
int a,b,c,func(int,int,int);
printf("Введіть три числа\n"); scanf("%d%d%d",&a,&b,&c);
if (func(a,b,c))
printf("\nАрифметична прогресія з різницею: %d", decr);
else printf ("\nНе арифметична прогресія");
getch(); return 0;
}

4. Вміст файлу: file2.c

int func(int x, int y, int z)
{
extern int decr;
decr=y-x;
return (y-x==z-y);
}
Підпрограма-функція
int func(int x, int y, int z)
початок
decr=y-x
повернути
y-x==z-y
кінець

5. Найкоротша програма

main()
{
}
або
main() { }

6. Команди препроцесора

Починаються з # і повинні стояти на початку рядку
• #include, #define, #undef, #if, #ifdef, #ifndef,
#else, #endif, #pragma, #line, #error і т.д.
• #include – вносить до тексту програми вміст
файлу в те місце, де зустрічається.
#include <стандартний_файл>
#include “будь_який_файл”

7. Команди препроцесора

• #define – підставлення
#define текст1 текст2 – після зустрічі такої
команди нижче неї весь текст1 буде замінений
на текст2.
#define pi 3.14
#define begin {
#define abo ||
#define min(x,y) (x<y)?(x):(y)
#undef текст1 – відміняє відповідний останній
#define

8. Команди препроцесора

• #if, #ifdef, #ifndef, #else, #endif –
використовуються для умовної компіляції.
#ifdef pi
#include <math.h>
#define LABA 1
#else
#include "matrix.h"
#define LABA 2
#endif

9. Команди препроцесора

#if SYS == "Windows"
#include "windows.h"
#endif
• #pragma – опція(настроювання) компілятора
• #error – виведення інформації про помилку
під час компіляції і завершення компіляції
#ifndef unix
#error "Програму можно компилювати
тільки для Unix!"
#endif

10. Оператори мови Сі

1. Оператор-вираз
Будь-який вираз, який закінчується крапкою з
комою є оператором.
Виконання цього оператора зводиться до
обчислення виразу.
Будь-який оператор повертає значення. Якщо
його не використати, воно втрачається.
a++;
y=sin(x);
6+x*10;

11. Оператори мови Сі

2. Пустий оператор
• <пустий оператор>::=<пусте місце>;
Пустий оператор використовується тоді коли за
синтаксисом мови програмування повинен бути
оператор але він нам не потрібен.
;;;
if () ; else ;
If (a<0); else m=0;

12. Оператори мови Сі

3. Операторні дужки (складений оператор)
об'єднує декілька операторів в один
Використовується там, де за синтаксисом (правилами)
мови може бути тільки один оператор, а нам треба
виконати більше (послідовність операторів).
<операторні дужки>::={<оператор1>; … <операторN>;}
Приклад:
If (a>b) {a=b+2; m=sqrt(z); k=1; }
else {m=5; z=0; }
Після фігурних дужок крапка з комою не ставиться.
Якщо поставити, це буде додатковий оператор(пустий).

13. Оператори умовного переходу 4.Оператор умовного переходу if

Існують два види умовного оператору if:
• повний
• скорочений

14. Повний умовний оператор

<повний умовний оператор>::=
if (<вираз>) <оператор1>; else <оператор2>;
Спочатку вираховується значення виразу, якщо
<вираз>≠0 (true, так, правда, істина), то виконується
<оператор1>, якщо <вираз>=0 (false, ні, неправда), то
виконується <оператор2>
Так
Ні
вираз
оператор1
оператор2

15. Повний умовний оператор

if (x>25) y=43; else z=-62;
Після виразу і після else може бути тільки по одному
оператору, якщо треба більше, то використовуються
операторні дужки(оператори беруться у фігурні
дужки)
if (<вираз>) {оператор1; … операторN;}
else {оператор1; … операторM;};

16. Скорочений умовний оператор

<скорочений умовний оператор>::=
if (<вираз>) <оператор>;
Вираховується значення виразу та порівнюється з нулем.
Якщо <вираз>≠0 (true, так, правда, істина), то
виконується <оператор> і оператор if закінчується.
Якщо <вираз> дорівнює 0 (false, ні, неправда), то
оператор if закінчується.
Так
Ні
вираз
оператор

17. Скорочений умовний оператор

Якщо не потрібен оператор у випадку правдивості логічного
виразу, то після виразу оставити пустий оператор:
if (<вираз>); else<оператор>;
Вираховується значення виразу і порівнюється з нулем. Якщо
<вираз>≠0 (true, так, правда, істина), то оператор if
закінчується, якщо <вираз> дорівнює 0 (false, ні, неправда),
то виконується <оператор> і оператор if закінчується.
Так
Ні
вираз
оператор

18. Скорочений умовний оператор

З пустими операторами:
if (m==0) c=y; else;
if (b<9); else b=0;
Так
b<9
Ні
Так
Ні
k!=m
m=45
Так
m==0
Ні
x=r+4
c=y
b=0
Так
g<=m
Ні
r=76
З операторними дужками:
Вивести
«Помилка»
Ввести символ
if (k!=m) {m=45; x=r+4;}
if (g<=m); else {r=76; printf("Помилка!"); getchar(); }

19. Вкладені оператори умовного переходу if

else відноситься до першого зліва оператору if, у якого
ще не було else. Для зміни такого порядку
використовують операторні дужки.
if (a)
if (a)
if (b) op1; else op2;
{ if (b) op1; }
else op2;

20. 5. Оператор вибору switch (теж оператор умовного переходу)

switch (<вираз цілого типу>)
{ [<опис змінних>]
{[case <констант-вираз>:][{<оператор}>] }
[default: [{<оператор}>] ]
Так
Вир==конст1
}
<констант-вираз>::=<вираз>, що
складається тільки зі сталих значень.
Вираховується <вираз цілого типу>
і значення констант-виразів (повинні
бути цілими) і порівнюється між собою,
починаючі з першого констант-виразу.
Якщо знайдено співпадіння, то
виконуються всі оператори від місця
співпадіння і до кінця switch. Якщо співпадіння нема, то виконуються оператори
після default. Якщо зустрівся оператор
Ні
break
Так
break
Так
break
Так
break
Вир==конст2
Ні
Вир==конст3
Ні
Вир==констN
Ні
break, то після нього виконання оператора switch закінчується.

21. 5. Оператор вибору switch

switch (i)
{
case 0: b=0; break;
case 1:
case 2: b=12; break;
case 3+5: b=3; break;
default: b=10; g=-1;
}
default може стояти в будь якому
місці, а не тільки в кінці:
Так
i==0
Ні
i==1
Ні
i==2
Ні
i==3+5
Ні
switch (i+J)
{ case 0: b=0; J=53; break;
default: b=10; g=-1; J=-1;
case 2+3: b=12;
case 8: b=3; break;
case 9: b=27;
} (Самостійно зобразіть блок схему для цього варіанту.)
Так
Так
Так
English     Русский Rules