- •Лекція 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
- •Іспит На іспит студенти повинні знати:
- •Уміти вирішувати завдання:
Тема 6. Лекція №6.2 "Основи мови Сі"
План:
- оператори введення-виводу
- пріоритети операцій
Уведення-виведення
У програмах, що наводяться нижче, використовуються такі засоби введення-виводу, як printf(), getchar(), gets(), scanf(). Приведемо характеристику цих функцій [2.4].
Прототип функції printf() має вигляд:
int printf(const char *format, ?);
Функція printf() записує в стандартний потік stdout (стандартний вихідний потік даних) значення аргументів із заданого списку аргументів відповідно до рядка форматування, що адресується параметром format. Рядок форматування складається з елементів двох типів. До елементів першого типу відносяться символи, які виводяться на екран. Елементи другого типу містять специфікації формату, визначальний спосіб відображення аргументів. Специфікація формату починається символом відсотка, за яким йде код формату. На специфікації формату можуть впливати модифікатори, задаючи ширину поля, точність і ознаку вирівнювання по лівому краю. Ціле значення, розташоване між знаком % і командою форматування, грає роль специфікації мінімальної ширини поля. Наявність цього специфікатора призводить до того, що результат буде заповнений пропусками або нулями, щоб значення, що виводиться, займало поле, ширина якого не менше заданої Сі мінімальної ширини. За умовчанням в якості заповнювача використовується пропуск (пропуски). Для заповнення нулями перед специфікацією ширини поля треба помістити нуль, тобто 0. Наприклад, специфікація формату %05d доповнить нулями ціле число, що виводиться, в якому менше п'яти цифр, щоб загальна довжина дорівнювала п'яти символам. Дія модифікатора точності залежить від коду формату, до якого він застосовується. Щоб додати модифікатор точності, слід поставити за специфікатором ширини поля десяткову точку, а після неї - необхідне значення точності (число знаків після десяткової точки). Стосовно цілих чисел модифікатор точності задає мінімальну кількість цифр, що виводяться. При необхідності перед цілим числом будуть додані нулі. Якщо модифікатор точності застосовується до рядків, то число, що йде за точкою, задає максимальну довжину поля. Наприклад, специфікація %5.7s виведе рядок завдовжки не менше п'ять, але не більше семи символів. Якщо рядок, що виводиться, виявиться довше за максимальну довжину поля, кінцеві символи будуть відсічені. За умовчанням усі значення, що виводяться, вирівнюються по правому краю: якщо ширина поля більше значення, що виводиться, то воно буде вирівняно по правому краю поля. Щоб встановити вирівнювання по лівому краю, треба поставити знак "мінус" ("-") відразу після знаку відсотка. Наприклад, специфікація формату %-10.4f забезпечить вирівнювання дійсного числа з чотирма десятковими знаками по лівому краю в 10-символьному полі. Специфікатори формату для функції printf() перераховані в таблиці. 2.3, узятою з [2.3].
|
Прототип функції scanf() має наступний вигляд:
int scanf(const char *format, ?);
Функція scanf() є функцією для введення даних загального призначення, яка читає потік stdin і зберігає інформацію в змінних, перерахованих в списку аргументів. Якщо в рядку форматування зустрінеться роздільник, то функція scanf() пропустить один або декілька роздільників у вхідному потоці. Під роздільником, або пробільним символом, мають на увазі пропуск, символ табуляції }t або роздільник рядків }n. Усі змінні повинні передаватися за допомогою своїх адрес, наприклад, за допомогою символу &. Рядок, що управляє, задається параметром format, складається з символів трьох категорій : специфікаторів формату, пробільних символів, символів, відмінних від пробільних [2.4].
Специфікація формату починається знаком % і повідомляє функції scanf() тип даного, яке буде прочитано. Специфікації формату функції scanf() приведені в таблицю.2.4.
Таблиця 2.4. | |
Специфікатори формату функції scanf() | |
Код |
Формат |
%c |
Читає один символ |
%d |
Читає десяткове ціле число |
%i |
Читає ціле число у будь-якому форматі (десяткове, вісімкове або шістнадцяткове) |
%u |
Читає десяткове ціле число типу short int |
%e |
Читає число з плаваючою точкою (і в експоненціальній формі) |
%E |
Аналогічно коду %e |
%f |
Читає число з плаваючою точкою |
%lf |
Читає десяткове число з плаваючою точкою типу double |
%F |
Аналогічно коду %f (для стандарту С99) |
%g |
Читає число з плаваючою точкою. |
%G |
Аналогічно коду %g |
%o |
Читає вісімкове число |
%x |
Читає шістнадцяткове число |
%X |
Аналогічно коду %x |
%s |
Читає рядок |
%p |
Читає покажчик |
%n |
Набуває цілого значення, рівного кількості прочитаних досі символів |
%[ ] |
Переглядає набір символів |
%% |
Читає знак відсотка |
Якщо вхідний потік містить більше заданої кількості символів, то при наступному зверненні до операції введення читання почнеться з того місця, в якому "зупинився" попередній виклик функції scanf() [2.3]. Якщо роздільник (наприклад, пропуск) зустрінеться раніше, ніж досягнута максимальна ширина поля, то введення даних завершиться. В цьому випадку функція scanf() переходить до читання наступного поля. При читанні поодиноких символів символи табуляції і роздільники рядків читаються подібно до будь-якого іншого символу.