Консольне введення даних За призначенням клавіші клавіатури можна поділити на групи: – символьні; – клавіші керування: Home, End, …, Delete та чотири стрілки;

Презентация:



Advertisements
Похожие презентации
Обмін даними з файлами У компілятор мови С не включено спецзасобів для введення/виведення даних, тому обмін даними реалізовано через бібліотечні функції.
Advertisements

Опрацювання структур у функціях Оскільки мова С інтерпретує структури як звичайні змінні, а не вказівники, можна передавати значення структури у функцію.
Консольний обмін даними Обмін інформацією з користувачем завдяки введенню даних з клавіатури та відображенню результатів виконання програми на екрані монітора.
Інформаційна система Заняття 3 Клавіатура. Exit Загальні відомості На персональних компютерах використовується стандартна клавіатура IBM PC. Клавіатура.
Вказівники Вказівник (або покажчик) – особливий тип даних, значенням якого є адреса певного байта оперативної памяті. Значення покажчика - це беззнакове.
Текстовий редактор для учнів 5 класу. Дізнатися, що таке текстовий редактор та текстовий процесор Правила вводу тексту.
Інструментальне середовище Використання функціональних клавіш та комбінацій клавіш у ТП Використання функціональних клавіш та комбінацій клавіш у ТП Використання.
Двадцяте листопада Класна робота Робота з картками Картка 1 В анаграмах зашифровані терміни. Віднови слова Юмен, купс, вонолег, вачеплюси, текстенкон.
Функції з неоголошеними параметрами Інколи у функції потрібно передати деяке число фіксованих параметрів та невизначене число додаткових. В цьому випадку.
Класи пам'яті даних. Клас пам'яті, час існування та видимість об'єкта Кожен обєкт програми (змінна, функція,...) має свій тип і клас памяті. Тип визначає.
Текстовий редактор Word Текстовий редактор Word. Створення документа Текстовий процесор-це програма призначена для введення, редагування та форматування.
Інформатика 6 клас Урок 18. Пригадаймо 1. Для чого призначені текстові процесори? 2. Які розширення імені текстових файлів ви знаєте? З. Які операції.
Фрагменти тексту та операції над ними. Способи виділення фрагментів тексту а) Горизонтальний фрагмент ЛКМ + [ Shift ] а) Горизонтальний фрагмент ЛКМ +
Урок 18 7 клас. УВЕДЕННЯ ТА РЕДАГУВАННЯ ДАНИХ В EXCEL.
Введення і редагування даних З першого символу набраного в поточній комірці, в рядку формул зявляються два знаки: червоний хрест(Відміна) і зелена галочка.
Основне меню Розміщується у вікні під рядком заголовка.
Обробка табличних даних за допомогою вбудованих функцій Далі Введення формул до електронної таблиці Excel дає можливість виконувати різні обчислення в.
Вказівники на функції В мові С імя функції є константним вказівником на перший байт виконавчого коду функції. Це адреса оперативної памяті, яка відповідає.
Сходинки до інформатики 2 клас Урок 9 Підготувала Стенгецька О.О. Підготувала Стенгецька О.О. НВК с.Бахтин НВК с.Бахтин.
Ізяславський НВК 2, Гульчак Інна Василівна ЦИКЛИ.
Транксрипт:

Консольне введення даних За призначенням клавіші клавіатури можна поділити на групи: – символьні; – клавіші керування: Home, End, …, Delete та чотири стрілки; – функціональні: F1, F2, …, F12; – шифт-клавіші: Shift, Alt, Ctrl; – перемикальні (тригерні) клавіші: NumLock, CapsLock, … – спеціальні клавіші: Pause/Break, … Керування роботою клавіатури здійснює контролер. При натисненні на клавішу контролер передає в процесор запит на переривання і номер клавіші (скен – код).

При натисненні клавіш перших трьох груп, у буфер клавіатури заноситься двобайтовий код. У разі символьних клавіш молодший байт цього коду дорівнює ASCII – коду символа. У старший байт – записується скен-код натиснутої клавіші. Якщо ж натиснуто функціональну клавішу, клавішу керування або комбінацію з клавішею Alt, Ctrl, то в буфер записується двобайтовий код, молодший байт якого дорівнює нулю, а старший – розширеному ASCII – коду клавіші. Окреме натиснення перемикальних клавіш, шифт-клавіш не змінює вміст буфера, оскільки ці клавіші призначені для розширення функцій інших.

Функції консольного введення даних На відміну від стандартних функцій потокоорієнтованого введення даних, функції введення, оголошені в, не виконують проміжної буферизації, а зчитують дані безпосередньо з буфера клавіатури ФункціяПризначення cgets()Введення символьного рядка cscanf()Форматне введення даних getch()Введення одного символа без відображення getche()Введення одного символа з відображенням getpass()Введення пароля kbhit()Перевірка натискання довільної клавіші ungetch()Повернення натискання у буфер клавіатури

Функція getch() повертає ASCII – код, якщо натиснено символьну клавішу, або нуль, якщо натиснено клавішу керування, функціональну або клавішну комбінацію. У цьому випадку потрібно ще раз викликати функцію для отримання розширеного ASCII – коду. Приклад: функція, яка відстежує натискання на клавішу Esc, клавіши стрілок, Home та End, і пересуває курсор у відповідну позицію. #include #define Esc 0x1b /*ASCII-код клавіші Esc*/ int MoveCursor (void) {

int key, x, y; int winw, winh; /*розміри вікна*/ struct text_info win; /*структура параметрів вікна*/ key = getch(); /*зчитування коду клавіші*/ If (key ==Esc) return 0; /*натиснуто Esc */ else if (key != 0) return -1; /*символьну клавішу*/ gettextinfo( &win); /*параметри активного вікна*/ winw = win.winright – win.winleft + 1; /*ширина*/ winh = win.winbottom – win.wintop + 1; /*висота*/ x = win.curx; y = win.cury; /*поточні коорд. курсора*/ switch (key = getch()) /*розширений код клавіші*/ {

case 77: if (x */ case 80: if (y<winh) y++; break; /*натиснено вниз*/ case 75: if (x>1) x--; break; /*натиснено <-*/ case 72: if (y>1) y--; break; /*натиснено вгору*/ case 71: x = 1; y = 1; break; /*натиснено Home*/ case 79: x = winw; y =winh; break; /*натиснено End*/ default: return -1; /*інша клавіша керування*/ } gotoxy (x, y); /*перенесення курсора в нову позицію*/ return 1; }

Функція kbhit () перевіряє, чи відбулось натиснення на клавіші ( точніше, чи є в буфері незчитані символи). Повертає нуль, якщо буфер порожній, та ненульове значення, якщо в буфері є символи. Звертання до функції не зупиняє виконання програми та не зчитує символів з буфера клавіатури. За допомогою функції можна забезпечити циклічне виконання потрібних дій, поки не буде натиснуто довільну клавішу: do { …… } while ( ! kbhit () );