русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Void main()


Дата додавання: 2014-11-28; переглядів: 808.


{ char x;

char *s1 = "Key y was pressed";

char *s2 = "Key n was pressed";

char *s3 = "Key Esc was pressed";

for (;;) { x=getkey();

switch (x) { case 'y': puts(s1); break;

case 'n': puts(s2); break;

case 27: puts(s3); exit(0);

}

}

}

На початку функції main() оголошується символьна змінна x, значення якої присвоюється оператором x=getkey(). Наступні рядки програми містять оголошення символьних рядків s1 і s2, які виводяться на екран за допомогою функції puts. Оператор break здійснює вихід з тіла оператора switch .

 

Для програмування циклів ми маємо оператори циклу трьох видів. Оператор циклу while найбільш простий, він має такий формат:

while (ЛВ) оператор;

Так само, як і в операторі if, ЛВ може бути логічним або цілочисловим виразом. Робота оператора - тіла циклу наступним разом повторюється, якщо ЛВ має логічне значення true або еквівалентне йому ціле значення. Тіло циклу повинно бути єдиним оператором. Якщо треба, щоб тіло циклу включало більше, ніж один оператор, застосовуємо фігурні дужки (тобто створюємо складений оператор).

Зверніть увагу на таке: якщо початкове значення ЛВ дорівнює false, оператор тіла циклу, не буде виконаний жодного разу.

Нижче наводиться приклад використання оператора while для визначення найбільшого загального дільника двох цілих чисел. Наведений текст є реалізацією відомого алгоритму Евкліда:

int a=125, b=2500, r;

while (r = a%b) { a=b; b=r; }

printf("НЗД = %d \n", b);

Зверніть увагу на те, що перевірка завершення циклу while у цьому прикладі реалізована не зовсім звичайним способом. Вираз r = a%b у другому рядку має подвійне призначення: з одного боку, він обчислює залишок від ділення (і є однієї з операцій, передбачених алгоритмом Евкліда), з іншого, він же контролює завершення циклу while. Цикл завершується, якщо залишок від ділення дорівнює нулю (нагадаємо, що число нуль діє так само, як і логічне значення false).

 

Ще один різновид оператора циклу (цикл do-while) має такий формат:

do оператор;

while (ЛВ);

Оператор, що становить тіло циклу, виконується ще раз, якщо значення ЛВ є true. Різниця між циклами while і do-while полягає у наступному. Якщо з самого початку ЛВ = false, то тіло циклу while не виконується ні разу (цикл з передумовою). Тіло циклу do-while у цьому випадку буде виконано 1 раз (цикл з постумовою).

Нижче наведено фрагмент програми, у якому для знаходження найбільшого загального дільника двох цілих чисел використовується оператор do-while.

 

int a=125, b=2500, r=a%b;

do { a=b; b=r; }

while (r = a%b);

printf("НЗД = %d \n", b);

 

Наступний приклад використання циклу do-while являє собою програму, що повертає код натиснутої клавіші. При натисканні клавіші з розширеним (двобайтовим) кодом програма виводить на екран другий, не нульовий байт. Завершення роботи програми відбувається при натисканні клавіші Esc. У програмі використовується функція отримання символу натиснутої клавіші getkey з модулю syst.h.

 

 

// Приклад 4

#include <syst.h>


<== попередня лекція | наступна лекція ==>
Void main() | Void main()


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн