Слайд 1Вирази та операції
Вираз – послідовність операндів, об’єднаних знаками
операцій та круглими дужками. Операнди – об’єкти, над якими виконуються
операції; операції – задають дії над операндами.
Приклад:
0.5*(z+w)>=(z-u)/(w-u) kor=sin(x)-2*exp(x-0.7)
Класифікація операцій:
1) за кількістю операндів
– Унарні (-A)
Бінарні (A+B)
Тринарні ((A)?B:C)
Слайд 2
2) за видом дій
–
арифметичні
операції присвоювання;
операції відношення;
логічні;
порозрядні( побітові), інші.
за пріоритетом поділяють на 16
рівнів. Найвищий мають операції звертання до функції, до елементу масиву, структури; потім – інкремент та декремент,…., арифметичні, .., відношення,.., кома
Порядок виконання – за приоритетом та залежно від асоціативності.
Порядок можно змінювати за допомогою круглих дужок.
Приклад: x<=5.7*(x-y)/(cos(y)-sin(x))
Слайд 4Операції присвоювання
Унарні операції присвоювання
++ інкремент (збільшує значення на 1)
-- декремент ( зменшує на 1)
++ К (префіксна форма) К++ (постфіксна форма)
Приклад: sum+=n (sum=sum+n); k+=1 (k++ або k=k+1)
В мові Сі допускаються присвоювання виду : a=(b=c=1)+1;
Приклад:
int data1, data2, data3;
data1=data2=data3=68;
Слайд 5Бінарні операції присвоювання
Слайд 6Операції порівняння
В мові Сі немає логічного типу (булевого), тому результатом
умовного виразу є цілочисельне арифметичне значення. "Істинно" - це ненульова
величина, а "хибно" - це нуль.
Приклади:
#include xVoid main() ( приоритет == нижчий. Результат
{ буде істиним, коли обидві операції
int tr, fal; порівняння одночасно будуть
tr=(111<=115); /* вираз істинний */ істиними або хибними)
fal=(111>115); /* вираз хибний */
printf("true - %d false - %d \n",tr,fal);
}
Слайд 8Стандартні математичні функції
Підключення бібліотеки директивою препроцесора
# include
Всі функції мають тип double. Аргумент
теж типу double.
Приклад
Y=sin(0.5*x)+sqrt(0.3e-2)*pow(2.0,x-1);
Можливо створювати макроси з параметрами (не плутати з функціями!), що оброблюються препроцесором.
Приклад
#define ABS(x) ((x)<0 ? -(x) :(x)) /* абсолютне значення*/
Основні математичні функції
Слайд 10Етапи розв'язання задач на комп'ютері
Постановка задачі мовою чітко визначених математичних
понять. Суть поставленої задачі, необхідні початкові дані та інформацію, що
вважається результатами розв'язання.
Побудова математичної моделі. Створюється інформаційна математична модель об'єкта, і чим достовірніше вона відображає реальні сторони об'єкта, тим точніші одержані результати.
Розробка алгоритму, тобто послідовності вказівок для розв'язання задачі, відбувається на основі побудованої математичної моделі. При створенні складних алгоритмів застосовується метод покрокової розробки, сутність якого полягає в тому, що алгоритм розробляється «зверху донизу»: необхідно розбити алгоритм на окремі частини, кожна з яких розв‘язує свою самостійну підзадачу, і об'єднати ці підзадачі в єдине ціле.
Складання програми. Алгоритм має бути записаний мовою програмування. Може здійснюватися теж за принципом «зверху донизу», що дозволяє одержати добре структуровану програму, читання і розуміння якої значно полегшене.
Компіляція програми.
Компонування програми.
Налагодження програми. Полягає в підготовці системи тестів, які містять набір вихідних даних, що мають відомий результат.
Експлуатація програми. Програма, що має відповідну документацію, може бути тиражована і запропонована іншим користувачам.
Слайд 11Основи алгоритмізації
Алгоритм - це чітко визначена послідовність дій, які спрямовані
на досягнення поставленої мети або розв'язання задачі певного типу.
Властивості алгоритмів:
Зрозумілість.
5. Скінченність.
Масовість. 6. Дискретність.
Однозначність. 7. Ефективність
Правильність..
Способи представлення алгоритмів:
описані як система словесних правил;
представлені алгоритмічною мовою у вигляді послідовності операторів;
за допомогою графічного зображення у формі блок-схем.
Слайд 12Блок-схеми
Блок-схема - це спосіб представлення алгоритму в графічній формі, у
вигляді геометричних фігур, сполучених між собою лініями (стрілками).
Основні елементи
Основні види блок-схем :
прості (нерозгалужені);
розгалужені;
циклічні;
з підпрограмами;
змішані.
Слайд 13Базові алгоритмічні конструкції
Виділяють три базові алгоритмічні конструкції:
Лінійні алгоритми;
Алгоритми розгалуженої структури;
Алгоритми
циклічної структури.
Лінійний алгоритм Розгалужений алгоритм
Циклічний алгоритм
Слайд 14Приклад найпростіших типових алгоритмів
Приклад 1. Обчислити значення функції y =
ax2-sinx, якщо х є [-1; 2]; hx = 0,5; a
= 10,5, та знайти кількість додатних значень функції. У цьому прикладі проста змінна х є аргументом функції, який змінюється з кроком hx.
Слайд 15Оператори
Оператори - це основні елементи, з яких "будуються" програми, призначені
для
виконання встановлених дій.
За конструкцією оператори поділяють на групи:
прості, складені.
За характером дій:
- оператори-вирази;
- умовні оператори;
- переходу;
- циклу.
Окремий вид складеного оператора – блок. Це група довільних операторів, об’єднаних фігурними дужками {….}. Всередені блоку можна оголошувати локальні змінні.
{ double tm;
tm=u; u=v; v=tm;
}
Слайд 16Оператори-вирази
Кожен допустимий вираз, що закінчується ;
clrscr(); z=3.5*x;
Виділяють:
оператори присвоєння
та оператори звертання до функцій.
Умовні оператори
Реалізують розгалуження процесу виконання програми.
Використовують два види : if , switch
Слайд 17Оператор розгалуження if
Оператор розгалуження призначений для виконання тих або інших
дій в залежності від істинності або хибності деякої умови.
Синтаксис
оператора : if (<умова>) <оператор1>;
[else <оператор2;>]
Умова хибна, якщо вона дорівнює нулю, в інших випадках вона істинна
Скорочений запис if (вираз) оператор;
Вкладення умовних операторів. За правилами – кожна else-частина умовного оператора пов’язується з найближчим if (інакше використовуємо фігурні дужки).
Слайд 18Приклад
/* програма виводить результат ділення двох дійсних чисел */
#include
void main()
{
float a,b,c;
printf("Введiть число a :\n");
scanf("%f",&a);
printf("Введiть число b :\n");
scanf("%f",&b);
if
(b==0) printf("Дiлення да нуль !\n");
else
{
c=a/b;
printf("a : b == %g",c);
};
}
Призначений для
переривання роботи оператора вибору і операторів
циклу.
Перериває виконання внутрішніх операторів switch і передає керування
оператору, наступному за оператором вибору.
Якщо оператор break викликається в тілі циклу, то виконання циклу
відразу припиняється і керування переходить до оператора, наступного
за оператором циклу.
Оператор break
Оператор switch
Синтаксис :
switch()
{
case :
;
break;
case :
;
break;
..............................................................
case :
;
break;
[default:
;]
}
switch(i) {
case -1: n++;
break;
case 0: z++;
break;
case 1: p++;
break;
}
За відсутності операторів break відбувається послідовне виконання всіх внутрішніх операторів, починаючи з вибраної гілки розгалуження.