- •Модуль 1 Основи алгоритмізації та елементи мови програмування.
- •Тема 1.1 Основи алгоритмізації Характеристика та призначення с як мови для системного програмування.
- •Тема 1.2 Елементи мови,
- •Операції.
- •3. Операції.
- •Бінарні
- •4. Структура простої програми.
- •1. Константи.
- •2. Коментарі.
- •1.Константи.
- •2. Коментарі.
- •1.Типи даних – основні типи.
- •2. Опис змінних. Класи пам’яті.
- •1.Типи даних – основні типи. Опис змінних.
- •1.Операції, їх знаки, вирази.
- •2. Функції printf (), scanf ().
- •1.Операції, їх знаки, вирази.
- •2. Функції printf (), scanf ().
- •Специфікації при введенні і виведенні інформації.
- •1.Використання різних типів виразів. Використання різних типів виразів.
- •Перетворення при обчисленні виразів.
- •Модуль 2 Інструкції організації розгалужень.
- •1. Типи розгалужень. Умовний оператор if
- •1. Типи розгалужень. Умовний оператор if
- •1. Оператор вибору switch.
- •2.Оператори передачі управління
- •1. Оператор вибору switch.
- •2.Оператори передачі управління
- •Оператор goto
- •Оператор break
- •Оператор continue
- •Оператор return
- •1. Типи циклів.
- •2. Оператор for.
- •1. Типи циклів.
- •2. Оператор for.
- •Обробка масивів.
- •Оголошення масиву
- •1. Оператори while, do while.
- •1. Оператори while, do while.
- •Модуль 4 Обробка лінійних масивів.
- •2.Ініціалізація вказівників.
- •Присвоювання покажчику адреси існуючого об'єкта:
- •Присвоювання покажчику адреси області пам'яті в явному виді:
- •Присвоювання порожнього значення:
- •Виділення ділянки динамічної пам'яті й присвоювання її адреси покажчику:
- •3. Масиви та вказівники
- •Динамічні масиви.
- •Модуль 5 Обробка матриць.
- •1.Динамічні матриці.
- •2. Рядки та символи.
- •1.Динамічні матриці.
- •Модуль 6 Процедурно-орієнтоване програмування
- •Функції роботи з рядками й символами
- •2.Функції.
- •3.Прототипи та визначення.
- •4.Глобальні змінні. Дані, що повертаються з функцій.
- •5.Параметри функції. Способи передачі параметрів
- •Передача масивів як параметри
- •Модуль 7 Базові структури даних. Тема:
- •2. Ініціалізація структур.
- •3. Доступ до полів структури.
- •1. Поняття про файли. Стандартні файли.
- •2. Функція fopen().
- •1. Поняття про файли. Стандартні файли.
- •2. Функція fopen() -Відкриття файлу(потоку)
- •1. Пошук кінця файлу. Введення йз файлу. Виведення у файл
- •2. Збереження структур у файлах.
- •Пошук кінця файлу. Введення йз файлу. Виведення у файл
- •Розбір програми
- •2. Збереження структур у файлах.
- •Розбір програми з обробки файлів
Перетворення при обчисленні виразів.
При виконанні операцій виконується автоматичне перетворення типів, щоб привести операнди виразів до загального типу або щоб розширити короткі величини до розміру цілих величин, використовуваних у машинних командах. Виконання перетворення залежить від специфіки операцій і від типу операнда чи операндів.
Розглянемо загальні арифметичні перетворення:
1 .Операнди типу float перетворяться до типу double.
2.Якщо один операнд long double, то другий перетвориться до цього ж типу.
З.Якщо один операнд double, то другий також перетвориться до типу double.
4. Будь-які операнди типу char і short перетворяться до типу int. 5.Будь-які операнди unsigned char чи unsigned short перетворяться до типу unsigned int.
6.Якщо один операнд типу unsigned long, то другий перетвориться до типу unsigned long.
7.Якщо один операнд типу long, то другий перетвориться до типу long. 8.Якщо один операнд типу unsigned int, то другий операнд перетвориться до цього ж типу.
Таким чином, при обчисленні виразів операнди перетворяться до типу того операнда, що має найбільший розмір.
Приклад:
double ft, sd;
unsigned char ch;
unsigned long in;
int i;
Модуль 2 Інструкції організації розгалужень.
1. Типи розгалужень. Умовний оператор if
1. Типи розгалужень. Умовний оператор if
Умовний оператор if використається для розгалуження процесу обчислень на два напрямки. Формат оператора:
if ( вираз ) оператор_1; [else оператор_2;]
Спочатку обчислюється вираз, що може мати арифметичний тип або тип покажчика. Якщо воно не дорівнює нулю (має значення true), виконується перший оператор, інакше - другої. Після цього керування передається па оператору, що є наступним за умовним.
Одна з галузей може бути відсутнім, логічніше опускати другу галузь разом із ключовим словом else. Якщо в якій-небудь галузі потрібно виконати трохи операторів, їх необхідно укласти в блок, інакше компілятор не зможе зрозуміти, де закінчується розгалуження. Блок може містити будь-які оператори, у тому числі опису й інших умовних операторів (але не може складатися з одних описів). Необхідно враховувати, що змінна, описана в блоці, поза блоком не існує.
Приклади:
//
1//
2//
3//
4//
5
if (a<b && (a>d || a==0)) b++; else {b *= ; a = 0;}
if (a<b) {if (a<c) m = a; else m = c;} else {if (b<c) m = b; else m = c;}
if (a++) b++;
if (b>a) max = b; else max = a;
У прикладі 1 відсутня галузь el se. Подібна конструкція називається «пропуск оператора», оскільки присвоювання або виконується, або пропускається залежно від виконання умови.
Якщо потрібно перевірити кілька умов, їх поєднують знаками логічних операцій. Наприклад, вираз в прикладі 2 буде істинно в тому випадку, якщо виконається одночасно умова а<Ь и одне з умов у дужках. Якщо опустити внутрішні дужки, буде виконано спочатку логічне И, а потім -АБО.
Оператор у прикладі 3 обчислює найменше значення із трьох змінних. Фігурні дужки в цьому випадку не обов'язкові, тому що компілятор відносить частину el se до найближчого if.
Приклад 4 нагадує про те, що хоча як вираз в операторі i f найчастіше використаються операції відносини, це не обов'язково.
Донструкции, подібні до оператора в прикладі 5, простіше й наочніше записувати у вигляді умовної операції (у цьому випадку: max = (b > а) ? b : а;).
Якщо яка-небудь змінна використається тільки усередині умовного оператора, рекомендується оголосити її усередині дужок, наприклад:
If (int i = fun(t)) a -= i; else a += i:
Оголошення змінної в той момент, коли вона потрібно, тобто коли їй необхідно привласнити значення, є ознакою гарного стилю й дозволяє уникнути випадкового використання змінної до її ініціалізації. Повідомляти усередині оператора i f можна тільки одну змінну. Область її видимості починається в крапці оголошення й включає обидві галузі оператора.
___________________________________________________________________
