Міністерство освіти і науки
Національний університет “Львівська політехніка”
Кафедра ЕОМ
/
Звіт
з лабораторної роботи № 4
з дисципліни: “Основи алгоритмізації та програмування”
на тему: “Довідкова система інтегрованого середовища Visual C++ 2005. Розв'язування на С найпростіших задач із використанням умовних операторів та операторів циклу”
Мета лабораторної роботи
Познайомитися із довідковою системою інтегрованого середовища Visual C++ 2005.
Познайомитися із умовними операторами та операторами циклу мови програмування С.
Теоретичні відомості
Довідкова система інтегрованого середовища Visual C++ 2005
Довідкову систему інтегрованого середовища Visual C++ 2005 можна запустити через меню Help середовища.
Вибираємо пункт Contents і отримуємо вікно Search - Microsoft Visual Studio 2005 Documentation - Microsoft Document Explorer. Воно представляє розроблену фірмою Майкрософт систему доступу до документації із розробки програм у Visual Studio - MSDN (Microsoft Developer Network). Доступ до документації може здійснюватися як через глобальну мережу Інтернет (MSDN Online), так i в локальному режимі до документації встановленої на комп'ютері (Local Help).
В лівій зоні цього вікна (Contents) представлено "дерево" документів, які є в довідковій системі.
"Помандруємо" по цьому "дереві": розкриємо Development Tools and Languages - Інструменти та мови розробки, після цього - Visual Studio i нарешті - Visual C++. Отримаємо такий вигляд вікна:
Тепер в галузцi Visual C++ розкриємо Reference - Посилання, у ньому розкриємо C/C++ Language, а в ньому С Language Reference. Отримуємо розділи, які містять довідку з мови програмування С.
Розкривши у ньому Elements of C i тепер вибравши C Keywords, отримаємо довідку з ключових слів мови програмування С.
Аналогічно можна отримати довідку з інших розділів мови С.
Довідкова система включає дуже багато розділів, але при виконанні лабораторних робіт із цього курсу ми переважно будемо використовувати довідку, яка буде стосуватися мови програмування С та інтегрованого середовища розробки (розділ довідки Integrated Development Environtment for Visual Studio).
Інша можливість системи допомоги Visual Studio 2005 Documentation задається з допомогою підсистеми Index. Для запуску цієї підсистеми необхідно клацнути мишкою на іконці Index в третьому рядку вікна Microsoft Visual Studio 2005 Documentation - Microsoft Document Explorer. У лівій зоні вікна у віконечку Look for набираємо назву елемента мови, довідку з якого необхідно отримати. Наприклад, отримаємо довідку з бібліотечної функції sin.
У підвікні Index Results ... висвітлюються знайдено теми, які відповідають шуканому елементу. У цьому конкретному прикладі таких теми 3. Вибравши тему sin, sinf, sinh, sinhf (CRT) - отримаємо довідку з цих функцій.
Ще одна можливість отримати довідку полягає в наступному. У вікні Visual Studio 2005 у вікні з текстом програми встановлюємо курсор на елемент тексту програми довідку з якого необхідно отримати i натискаємо на клавішу F1. Наприклад, встановивши курсор на ім'я функції printf, отримаємо довідку з printf.
Встановивши курсор на ім'я директиви include, отримаємо довідку з include.
В інтегрованому середовищі Visual Studio 2005, точніше у вбудованому текстовому редакторі Visual Studio, є ще один цікавий засіб допомоги - контекстна підказка. Вона спрацьовує як під час вводу тексту програми, так i під час перегляду тексту програми. Продемонструємо це такими прикладами. Якщо курсор навести на ім'я функції printf, то поряд з цим іменем в прямокутнику з'явиться, так званий, прототип функції printf, а, якщо курсор навести на змінну - то опис її типу.
Умовні оператори мови програмування С
Важливу роль в мові програмування С грає складовий оператор. Складовий оператор (його також називають блоком) - це зручна абстракція мови, яка дозволяє об'єднати декілька інших операторів в єдину "конструкцію", яка буде тепер розглядатися як один оператор. Складовий оператор часто використовується в умовних операторах та операторах циклу. Синтаксис складового оператора:
{ список_описів список_операторів }
Як список_описів так і список_операторів є необов'язковими. Але якщо присутній список_описів, то він має розміщатися перед списком операторів. Список_описів складається з одного чи декількох описів, список_операторів складається із одного чи декількох операторів.
Приклад складового оператора (блока), в якому присутні як описи так і оператори:
{
double res, xl, x2, x3;
xl = 4.5; x2 = 5.6; x3 = 7.8;
res = ( xl + x2 + x3 ) / 3;
return 0;
}
Інший приклад демонструє умовний оператор, в якому використовується складовий оператор (в якому є лише оператори):
if ( i > 0 )
{
line[i] = x;
x++;
i--;
}
Умовний оператор мови С може записуватися в одній із двох наступних синтаксичних форм:
if ( вираз ) оператор
або
if ( вираз ) оператор else оператор
У першій формі, якщо вираз має значення true (ненульове значення ), то оператор виконується. А якщо ж вираз має значення false, то оператор ігнорується. У другій формі, в якій використовується else, другий оператор виконується, коли значення виразу є false.
В обох формах після завершення виконання оператора if управління передається наступному оператору програми, за винятком випадку, коли оператор містить оператори break, continue чи goto.
Нижче приведено приклад оператора if:
if ( i > 0 )
y = x / i;
else
{
x = i;
y = f( x );
}
У цьому прикладі виконується оператор " y = x/i; ", якщо значення i є більше за нуль. Якщо ж i менше чи рівне нулю, то виконуються оператори " x = i; " та " y = f(x); ".
У випадку вкладеного оператора if доцільно використовувати фігурні дужки, Щоб згрупувати оператори у складовий оператор і, таким чином, явно вказати ваші наміри. Якщо дужки відсутні, компілятор співставляє найближчий if, що відповідає else.
if ( i > 0 ) /* Без дужок */
if ( j > i )
x = j;
else
x = i;
У цьому прикладі, якщо значення i буде менше чи рівне нулю, то х не отримає жодного значення.
Якщо дужки вставити таким чином:
if ( i > 0 )
{ /* З дужками */
if ( j > i )
x = j;
}
else
x = i;
У цьому прикладі у дужки взятий внутрішній оператор if і тепер else уже відноситься до зовнішнього if.
У цьому прикладі, якщо значення i буде менше чи рівне нулю, то х отримає значення i.
Оператори циклу мови програмування С
Цикли дозволяють повторяти виконання окремих операторів чи групи операторів. В мові програмування С є три оператори циклу - while, do-while та for.
Оператор while має такий синтаксис:
while ( вираз ) оператор
Вираз має бути арифметичного чи вказівного типу. Виконання відбувається наступним чином:
Обчислюється вираз.
Якщо на початку вираз має значення false, то оператор while не виконується і управління передається наступному оператору програми.
Якщо ж вираз є true (ненульовий), то тіло циклу (оператор) виконується і процес повторюється починаючи з пункту 1.
Оператор while може також достроково завершуватися коли в тілі циклу виконуються оператори break, return чи goto.
З допомогою оператора continue можна достроково завершувати чергову ітерацію, оминаючи решта операторів циклу.
Нижче є приклад оператора while:
while ( i <= 10 )
{
string1[i] = string2[i];
i = i + 1;
}
Оператор do-while на відміну від оператора while перевіряє умову не на початку циклу а в кінці. Він має такий синтаксис:
do оператор while ( вираз );
Вираз має бути арифметичного чи вказівного типу. Виконання відбувається наступним чином:
Виконується оператор тіла циклу.
Після цього обчислюється вираз. Якщо вираз має значення false, то виконання оператора do-while завершується і управління передається наступному оператору програми.
Якщо ж вираз є true (ненульовий), то процес повторюється починаючи з пункту 1.
Приклад оператора do-while:
do
{
y = f( x );
x--;
} while ( x > 0 );
Оператор for дозволяє повторювати виконання оператора чи складового оператора задану кількість раз. Тіло оператора for виконується нуль чи більше раз поки вираз, який задає умову не стане рівний false. Можна також задати вираз, який задає початкове значення та вираз, що змінює значення під час виконання оператора циклу for.
Оператор for має такий синтаксис:
for ( вираз_1 ; вираз_2 ; вираз_3 ) оператор
вираз_1 задає початкове значення параметра циклу
вираз_2 задає умову завершення циклу
вираз_3 задає модифікатор параметра циклу
Кожен із цих виразів не є обов'язковим.
Виконання оператора for здійснюється наступним чином:
Обчислюється вираз_1, якщо він присутній. Він задає початкове значення параметру циклу. Нема жодних обмежень на тип цього виразу.
Якщо присутній вираз_2, то він обчислюється . Цей вираз має бути арифметичного чи вказівного типу. Його обчислення відбувається на кожній ітерації. При цьому може бути три випадки:
Якщо вираз_2 має значення true (ненульове), то оператор (тіло циклу) виконується. Після цього обчислюється вираз_3 (якщо присутній). Він обчислюється на кожній ітерації. Нема жодних обмежень на тип цього виразу. Тепер процес знову продовжується починаючи з обчислення виразу_2.
Якщо вираз_2 відсутній, то вважається, що його значення є true і виконання відбувається так само як у попередньому випадку. Такий цикл має завершуватися з допомогою операторів break, return чи goto, які мають бути в тілі циклу.
Якщо вираз_2 має значення false (0), то виконання оператора циклу завершується і управління передається наступному оператору програми.
Оператор for може також завершуватися операторами break, return чи goto, присутніми в тілі циклу. Я кщо в тілі циклу присутній оператор continue, то його виконання приводить до повторного обчислення виразу_3 і нової ітерації циклу.
А такий оператор
for( ;; );
утворює нескінчений цикл.
Приклад, який демонструє застосування оператора for:
for ( i = space = tab = 0; i < MAX; i++ )
{
if ( line[i] == ' ' )
space++;
if ( line[i] == '\t' )
{
tab++;
line[i] = ' ';
}
}
В цьому прикладі підраховується кількість пробілів (' ') і символів табуляції ('\t') в масиві символів з іменем line і кожен символ табуляції заміщається пробілом. Спочатку i, space та tab присвоюється значення 0. Тоді порівнюється чи значення i менше за MAX, і тіло циклу виконується. В залежності від значення line[i] виконується тіло одного із операторів if чи не виконується жодного. Тоді i інкрементується (збільшується на 1) і порівнюється з MAX; тіло циклу повторно виконується поки i буде менше за MAX.
Опис засобів довідкової системи інтегрованого середовища Visual C++ 2005
Підсистема Contents – "дерево" документiв, якi є в довiдковiй системi.
Підсистема Index – пошук по бібліотеці.
Контекстна довідка – якщо встановити курсор на елемент тексту прогами та натиснути F1, то отримаємо довідку з цього елементу.
Контекстна підказка – якщо курсор навести на iм'я функцiї, то поряд з цим iменем в прямокутнику з'явиться, так званий, прототип функцiї, а, якщо курсор навести на змiнну - то опис її типу.
Індивідуальні завдання
2-3. Задане натуральне число n. Обчислити:
2+
2+…+
2
n коренів
3-3. Визначити старшу цифру у десятковому записі цілого невід'ємного числа n.
Хід виконання роботи
Ознайомлення із довідковою системою інтегрованого середовища Visual C++ 2005.
Ознайомлення з умовними операторами та операторами циклу мови C.
Підготування текстів програм, у яких використовують умовні оператори та оператори циклу, їх відлагодження та отримання результатів роботи програм.
Тексти програм
2-3
#include <stdio.h>
#include <math.h>
int main()
{
setlocale(0, "");
int n;
do
{
printf("Введiть кiлькiсть коренiв: ");
scanf_s("%d", &n);
if (n < 0)
printf("Кiлькiсть коренiв не може бути вiд\'ємною!\n");
if (n == 0)
printf("Кiлькiсть коренiв не може бути 0!\n");
} while (n <= 0);
double y;
for (y = sqrt(2); n > 1; n--)
y = sqrt(2 + y);
printf("Результат: %.16f\n", y);
getch();
return 0;
}
3-3
#include <stdio.h>
int main()
{
setlocale(0, "");
long long n;
do
{
printf("n=");
scanf_s("%lld", &n);
if (n < 0)
printf("Програма працює тiльки з невiд\'ємними числами\n");
} while (n < 0);
int x;
do
{
x = n % 10;
n /= 10;
} while (n > 0);
printf("Найбiльша цифра: %d\n", x);
getch();
return 0;
}
Результати роботи програм
2-3
/
3-3
/
Висновок
Я познайомитися із довідковою системою інтегрованого середовища Visual C++ 2005. Я користуватися засобами довідкової системи, а саме підсистемою Contents, підсистемою Index, контекстною довідкою та контекстною підказкою. Я познайомився із умовними операторами та операторами циклу мови програмування С. Умовними операторами є if та else. Операторами циклу є while, do-while та for. Я створив дві програми на мові C, в яких використав умовні оператори та оператори циклу.