Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
IZVP_lab-novi.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
16.14 Mб
Скачать

Контрольні питання

  1. Яке призначення вікна навігатора класів?

  2. З яких файлів складається проект програми?

  3. Для чого призначена бібліотека vcl.h?

  4. За допомогою яких клавіш викликають шаблони коду?

Лабораторна робота №2

Тема: Створення консольних програм у C++ Builder

Мета: Навчитись створювати консольні програми у C++ Builder

Завдання: Створити консольну програму, яка вибирає випадковим чином число від 1 до 10, та дає можливість користувачу відгадати це число за три спроби.

Завдання для самостійного виконання: Створити консольну програму, яка отримує від користувача три дробових числа, порівнює їх та виводить найбільше з чисел.

ХІД РОБОТИ

1. З меню File вибрати команду New | Other Application і на вкладці New діалогового вікна New Items, що з'явилося клацнути на значку Console Wizard (рис. 1). В результаті цих дій на екрані з'явиться

Рис. 1. Щоб приступити до створення консольного програми, треба натиснути на значку Console Wizard

2. У вікні Console Wizard (рис. 2) можна вибрати мову програмування і вказати, чи буде використовуватися та або інша бібліотека. Після того, як будуть задані параметри створюваного консольної програми, треба натиснути на кнопці ОК. В результаті C++ Builder створить проект консольної програми і на екрані з'явиться вікно редактора коду, в якому знаходиться шаблон консольної програми — функція main (рис. 3).

Рис. 2. У вікні Console Wizard треба задати характеристики консольного програма

Починається консольна програма директивою #pragma hdrstop, яка забороняє виконання попередній компіляції файлів, що підключаються. Після цієї директиви треба вставити директиви #include. забезпечуючі підключення необхідних бібліотек (наприклад #include <stdio.h>). Директива #pragma argsused відключає попередження компілятора про те, що аргументи, вказані в заголовку функції, не використовуються.

Рис. 3. Шаблон консольної програми

Короткі теоретичні відомості

Слід звернути увагу на те, що консольна програма розробляється в Windows, а виконується як програма DOS. В DOS і Windows букви російського алфавіту мають різні коди (в DOS використовується кодування ASCII, а в Windows — ANSI). Це приводить до того, що консольна програма замість кириличних повідомлень виводить "абракадабру".

Проблему виводу повідомлень кирилиці консольними додатками можна вирішити, розробивши функцію перекодувала Ansi-рядка в рядок ASCII. Якщо цю функцію назвати rus, то інструкція виводу повідомлення може виглядати, наприклад, так:

printf( rus("Швидкість: %3.2f км/годину), v);

Як приклад консольної програми в лістингу 1 приведена програма "Вгадай число", яка для виводу повідомлень використовує функцію RUS. Значення функції rus — рядок символів у кодуванні ASCII, відповідний рядку, отриманому як параметр.

Лістинг 1. Приклад консольної програми

#pragma hdrstop

#include <stdio.h>

#include <conio.h> // для доступу до getch()

#include <stdlib.h> // для доступу до srand() rand()

#include <time.h> // для доступу до time_t і time()

char* rus (char* st) ; // перетворить Ansi-рядок в рядок ASCII

#pragma argsused

int main(int argc, char* argv[])

{

int comp, // число, "задумане" комп'ютером

igrok, // варіант гравця

n=0; // число спроб

// ГВЧ — генератор випадкових чисел

time_t t; // поточний час (для ініціалізації ГВЧ)

srand( (unsigned) time (&t)) ; // ініціалізація ГВЧ

comp = rand () % 10 + 1;

puts ( rus ( " \nКомпьютер \"задумав\" число від 1 до 10. ") ) ;

puts ( rus ( "Ви повинні його вгадати за три спроби."));

do

{

printf ("->") ;

scanf("%і", &igrok) ;

n++;

}

while (igrok !=comp && n<3) ;

if (igrok = comp)

printf( rus("ВИ ВИГРАЛИ!")) ;

else {

puts ( rus ("Ви програли. ") ) ;

printf( rus("Комп'ютер \"задумав\" число %d"), comp) ;

}

printf(rus("\nДля завершення натискуйте будь-яку клавішу. .."));

getch();

return 0;

}

Функція rus перетворить Ansi-рядок в рядок ASCII і може використовуватися для виводу повідомлень на російській мові в консольних програмах.

char* rus (char* st)

{

unsigned char* р = st;

/* при оголошенні символів як char російські букви

кодуються від’ємними числами */

while ( *р)

{

if (*р >= 192) // тут російська буква

if (*р<= 239) // А, Би ...Я, а, би ...п

*р -=64;

else // р ... я

*р -= 16;

р++;

} return st;

}

Компіляція консольної програми виконується звичайним способом, тобто вибором з меню Project команди Compile.

Після успішної компіляції програма може бути запущена вибором з меню Run команди Run. При запуску консольної програми на екрані з'являється стандартне вікно командного рядка. На рис. 4 приведений вид вікна командного рядка, в якому працює консольна програма, створена в C++ Builder.

Процес збереження проекту консольної програми стандартний. В результаті вибору з меню File команди Save Project на екрані спочатку з'являється вікно Save Project, в якому потрібно ввести ім'я проекту, а потім — вікно Save Utit, в якому треба задати ім'я модуля.

Отримати доступ до модуля консольної програми (тексту програми) для того, щоб внести зміни в програму, дещо складніше. Спочатку, вибравши в меню File команду Open Project, потрібно відкрити файл проекту. Потім треба відкрити вікно Project Manager (команда View | Project Manager) розкрити список файлів, вибрати срр-файл і з контекстного меню вибрати команду Open (або зробити подвійне натиснення на імені срр-файла) (рис. 5).

Рис.4. Вікно командного рядка, в якому працює консольна програма

Рис. 5. Щоб внести зміни в програму, треба у вікні Project Manager

вибрати срр-файл і з контекстного меню вибрати команду Open.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]