- •Лекція 0.1.
- •1. Вступ.
- •2. Програмування - що це? Наука, мистецтво, ремесло.
- •3. Мислення і властивості програміста
- •4. Загальні завдання курсу
- •5. Технології, методи і підходи до програмування
- •Імперативне програмування
- •6. Структурне програмування, як основа для вирішення більшості завдань
- •7. Завдання та мови для їх вирішення
- •Лекція 2. Основи алгоритмізації
- •Тема 4. Цикли
- •Відповідність між блок-схемами, алгоритмічною мовою,і лексичними конструкціями с.
- •Монітори з електронно-променевою трубкою (crt Cathode Ray Tube)
- •Основні характеристики електропроміневих моніторів
- •Рідкокристалічні дисплеї (tft lcd. Thin Film Transistor Liquid Crystal Display)
- •Основні характеристики рідкокристалічних дисплеїв
- •Переваги рідкокристалічних дисплеїв перед епт моніторами
- •Недоліки рідкокристалічних дисплеїв
- •Плазмові панелі (pdp Plasma Display Panel)
- •Головні недоліки плазмових панелей:
- •Сенсорні екрани (Touch Screen)
- •Застосування в багатьох областях:
- •Сенсорний екран складається з:
- •Переваги сенсорних екранів
- •Недоліки
- •Лазерні принтери
- •Світлодіодні принтери
- •Струменеві принтери
- •Матричні принтери
- •Тема 6.
- •Тема 6. Лекція №6.2 "Основи мови Сі"
- •Уведення-виведення
- •Пріоритети операцій
- •Лекція №7 " Оператори мови Сі і прийоми програмування " Оператори мови Сі
- •4.1. Оператор виразу
- •4.2. Порожній оператор
- •4.3. Складений оператор
- •4.4. Оператор іf
- •4.4.6. Оператор break
- •4.4.7. Оператор for
- •4.8. Оператор whіle
- •4.9. Оператор do whіle
- •4.10. Оператор contіnue
- •4.11. Оператор return
- •4.12. Оператор goto
- •Директиви Препроцесора
- •8.1. Директива #іnclude
- •8.2. Директива #defіne
- •8.3. Директива #undef
- •Лекція 3. "Процедури і функції"
- •Лекція 4. "Покажчики і Рекурсія"
- •12. Рекурсія
- •Лекція 13. Покажчики в c
- •Іспит На кінець місяця студенти повинні знати:
- •Уміти вирішувати завдання:
- •Лекція №14 "Символьних рядків"
- •Іспит На іспит студенти повинні знати:
- •Уміти вирішувати завдання:
- •Іспит На іспит студенти повинні знати:
- •Уміти вирішувати завдання:
- •Тиждень 3
- •Тиждень 4
- •Тиждень 1
- •Тиждень 2
- •Іспит На іспит студенти повинні знати:
- •Уміти вирішувати завдання:
4.12. Оператор goto
Використання оператора безумовного переходу goto у практиці програмування мовою СІ настійно не рекомендується, тому що він утрудняє розуміння програм і можливість їхніх модифікацій.
Формат цього оператора наступний :
goto ім'я - мітки;
...
ім'я - мітки: оператор;
Оператор goto передає керування на оператор, позначений влучної ім'я - мітки. Позначений оператор повинний перебувати в тій же функції, що й оператор goto, а використовувана мітка повинна бути унікальної, тобто одне ім'я - мітки не може бути використане для різних операторів програми. Ім'я - Мітки - це ідентифікатор.
Будь-який оператор у складеному операторі може мати свою мітку. Використовуючи оператор goto, можна передавати керування усередину складеного оператора. Але потрібно бути обережним при вході в складений оператор, що містить оголошення змінних з ініціалізацією, тому що оголошення розташовуються перед виконуваними операторами й значення оголошених змінних при такому переході будуть не визначені.
Директиви Препроцесора
Директиви препроцесора являють собою інструкції, записані в тексті програми на Сі, і виконувані до трансляції програми. Директиви препроцесора дозволяють змінити текст програми, наприклад, замінити деякі лексеми в тексті, вставити текст із іншого файлу, заборонити трансляцію частини тексту й т.п. Всі директиви препроцесора починаються зі знаку #. Після директив препроцесора крапка з комі не ставляться.
8.1. Директива #іnclude
Директива #іnclude включає в текст програми вміст зазначеного файлу. Ця директива має дві форми :
#іnclude "ім'я файлу"
#іnclude <ім'я файлу>
Ім'я файлу повинне відповідати догодам операційної системи й може складатися або тільки з ім'я файлу, або з ім'я файлу з попереднім йому маршрутом. Якщо ім'я файлу зазначене в лапках, то пошук файлу здійснюється відповідно до заданого маршруту, а при його відсутності в потоковому каталозі. Якщо ім'я файлу задане в кутових дужках, то пошук файлу виробляється в стандартних директоріях операційної системи, що задаються командою PATH.
Директива #іnclude може бути вкладеної, тобто у включається файлі, що, теж може втримуватися директива #іnclude, що заміщається після включення файлу, що містить цю директиву.
Директива #іnclude широко використовується для включення в програму так званих заголовних файлів, що містять прототипи бібліотечних функцій, і тому більшість програм на Сі починаються із цієї директиви.
8.2. Директива #defіne
Директива #defіne служити для заміни часто, що використовуються констант, ключових слів, операторів або виражень деякими ідентифікаторами. Ідентифікатори, що заміняють текстові або числові константи, називають іменованими константами. Ідентифікатори, що заміняють фрагменти програм, називають макровизначеннями, причому макровизначення можуть мати аргументи.
Директива #defіne має дві синтаксичні форми :
#defіne ідентифікатор текст
#defіne ідентифікатор (список параметрів) текст
Ця директива заміняє всі наступні входження ідентифікатора на текст. Такий процес називається макро підстановкою. Текст може являти собою будь-який фрагмент програми на СІ, а також може й бути відсутнім. У останньому випадку всі екземпляри ідентифікатора віддаляються із програми.
Приклад:
#defіne WІDTH 80
#defіne LENGTH (WІDTH+10)
Ці директиви змінять у тексті програми кожне слово WІDTH на число 80, а кожне слово LENGTH на вираження (80+10) разом з навколишніми його дужками.
Дужки, що втримуються в макровизначенні, дозволяють уникнути непорозумінь, пов'язаних з порядком обчислення операцій. Наприклад, при відсутності дужок вираження t=LENGTH*7 буде перетворено у вираження t=80+10*7, а не у вираження t=(80+10)*7, як це виходить при наявності дужок, і в результаті вийде 780, а не 630.
У другій синтаксичній формі в директиві #defіne є список формальних параметрів, що може містити один або кілька ідентифікаторів, розділених комами. Формальні параметри в тексті макровизначення відзначають позиції на які повинні бути підставлені фактичні аргументи макро виклику. Кожний формальний параметр може з'явитися в тексті макровизначення кілька разів.
При макро виклику слідом за ідентифікатором записується список фактичних аргументів, кількість яких повинне збігатися з кількістю формальних параметрів.
Приклад:
#defіne MAX((x)>(y))?(x):(y)
Ця директива замінить фрагмент
t=MAX(і, s[і]);
на фрагмент
t=((і)>(s[і])?(і) :(s[і]);
Як і в попередньому прикладі, круглі дужки, у які укладені формальні параметри макровизначення, дозволяють уникнути помилок пов'язаних з неправильним порядком виконання операцій, якщо фактичні аргументи є вираженнями.
Наприклад, при наявності дужок фрагмент
t=MAX(і&j, s[і]||j);
буде замінений на фрагмент
t=((і&j)>(s[і]||j)?(і&j) :(s[і]||j);
а при відсутності дужок - на фрагмент
t=(і&j>s[і]||j)?і&j: s[і]||j;
у якому умовне вираження обчислюється в зовсім іншому порядку.