Похожие презентации:
Структура програми на мові Сі
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;
} (Самостійно зобразіть блок схему для цього варіанту.)
Так
Так
Так