Напишемо дуже просту програму, яка буде при запуску відраховувати від 10 до 1, при досягненні 0 програма завершиться. Для цього створимо новий проєкт в Visual Studio (як створити проєкт дивись тут) і назвемо його, наприклад, CountdownTimer. В файлі з кодом напишемо "каркас" програми:
#include <stdio.h>int main() { //початок тіла програмиsystem("chcp 65001 > nul"); //команда для підтримки виводу тексту українськоюreturn 0;}
Тепер, в основному тілі програми ми почергово запишемо команду printf() з текстом, який вказує скільки залишилось до кінця відліку:
#include <stdio.h>int main() {system("chcp 65001 > nul");printf("До вибуху залишилось...\n");
printf("10 секунд\n");
printf("9 секунд\n");
printf("8 секунд\n");
printf("7 секунд\n");
printf("6 секунд\n");
printf("5 секунд\n");
printf("4 секунди\n");
printf("3 секунди\n");
printf("2 секунди\n");
printf("1 секунда\n");
printf("БУУУУММММ!!!!");return 0;}
Зверніть увагу! В кінці кожного виведеного тексту прописано знак переносу рядка - \n. Без нього весь текст виведеться одним рядком.
Скомпілюйте і запустіть код. Що не так? Весь текст одразу ж виводиться і програма завершує виконання, а це не зовсім те, що нам необхідно, авжеж? Нам необхідно зробити щоб після виведення в консоль кожного рядка була пауза в одну секунду. Виправимо код:
#include <stdio.h>#include <windows.h> //додамо такий рядокint main() {system("chcp 65001 > nul");printf("До вибуху залишилось...\n");printf("10 секунд\n");Sleep(1000); // Затримка 1 секундуprintf("9 секунд\n");Sleep(1000);printf("8 секунд\n");Sleep(1000);printf("7 секунд\n");Sleep(1000);printf("6 секунд\n");Sleep(1000);printf("5 секунд\n");Sleep(1000);printf("4 секунди\n");Sleep(1000);printf("3 секунди\n");Sleep(1000);printf("2 секунди\n");Sleep(1000);printf("1 секунда\n");Sleep(1000);printf("БУУУУММММ!!!!");return 0;}
Чудово, тепер все в порядку. Але що ми зробили? Сама по собі, мова програмування Сі не вміє робити паузи, тому ми підключили команди операційної системи (в цьому випадку Windows) - #include <windows.h>. Далі ми викликали команду Віндовса Sleep(1000). Ця команда робить паузу, вказану в дужках - 1000 мілісекунд (рівно 1 сек).
Наша програма дуже проста, хоча код вийшов доволі довгим. Але не переймайтеся через це — мова Сі має спеціальні конструкції, які допомагають скорочувати та впорядковувати код у подібних випадках. Просто продовжуйте навчання, і незабаром ви навчитеся писати більш складні, а головне — корисні програми. Вдачі! ;-)
