-
Повний текст програми
Повний текст програми, складений поєднанням окремих частин з таблиці 7 приведено на рис.5
// dfn.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <stdio.h>
#include <math.h>
#include <conio.h>
int _tmain(/*int argc, _TCHAR* argv[]*/)
{ char ch;
int i=0;
float x, z, y;
printf("\n Recommendation: for begininng programm tuning to input x (radian)in such order:" );
printf(" -1.55, -1.05, -0.78, 0, 0.78, 1.05, 1.55" );
printf("\n For controle accuracy Input x as radian (degree)(tg(x)=y=): ");
printf("\n 0.785398163 (45)(y=1.0), 1.047197551 (60)(y=1.732), 1.553343034 (89)(y=57.29)");
printf("\nFor stop program INPUT char 's' otherwise any, and press ENTER \n");
do { int parsedItems=scanf_s("%f",&x );
if ( parsedItems >= 1 )
{ // printf(" x=%10.9f",x);
z = cos(x); // printf(" z=%5.4f",z);
i++;
if(z==0)printf(" i=%2d x=%5.4f z=%5.4f ", i, x, z);
else { y = sin(x)/z;
printf(" i=%2d x=%5.4f y=%5.4f ", i, x, y);
}
if(i%3==0)printf(" \n i=%2d",i);
}
ch = getchar();
}while ( ch != 's' );
// printf(" \n i=%2d ", i);
_getch();
return 0;
}
Рис. 5 Перший варіант тексту програми
Наведений текст програми пройшов компіляцію, тобто ті помилки, які він міг мати, виправлені. Стадія виправлення помилок має початок, але не має кінця і програмісти змушені займатися цим все своє життя (існує окрема посада – тестувальник, щоб зайняти її треба 2-3 роки проробити на одному місці ). Для придбання практичних навиків рекомендується, маючи текст програми без помилок, ввести окремі свої помилки, познайомитися з комп’ютерними повідомленнями про них і з рекомендаціями по їх виправленню (ніколи цим не нехтувати). Але наведений текст програми не може враховуватися як закінчений. З таким текстом після деякого часу не розбереться сам її розробник. Тому потрібно (абсолютно потрібно) супроводити цей текст (як і любий текст програми) коментарями, короткими текстовими закінченими фразами. Це потребує особистого уміння (з історії листування двох славнозвісних філософів один писав другому: ”Прошу вибачення! Немає часу писати коротко”.). Без претензії на єдиний варіант на рис 6. приводиться, як приклад, коментований текст розробленої програми.
Якщо закоментувати любу строку з #include, то з’явиться повідомлення, що текст програми вимагає наявність якихось прототипів функцій. Ми вже вказували, що мова С/С++ це мова функцій і кожна функція обов’язково потребує наявності свого прототипу. Прототип функції це текст повної копії її заголовку, який використовується для контролю – їх тексти використованних типів даних повинні повністю співпадати. Такі порушення виявляються ще на стадії компіляції програми і система потребує обов’язкового їх корегування.
// dfn.cpp : Defines the entry point for the console application.
// Якщо закоментувати любу строку з #include, буде повідомлення хто користуєтося // бібліотекою
#include "stdafx.h"
#include <stdio.h> // Користуються оператори printf();, scanf(); та інши
#include <math.h> // Користуються оператори sin(x), cos(x) та інши
//#include <conio.h> стара бібліотека
int _tmain(/*int argc, _TCHAR* argv[]*/)
{ char ch; // Використання символу
int i=0; // Додаткова змінна з початковим значенням
float x, z, y; // Змінні
/* Підсказані структура даних для уведення та самі дані */
printf("\n Recommendation: for begininng programm tuning to input x (radian)in such order:" );
printf(" -1.55, -1.05, -0.78, 0, 0.78, 1.05, 1.55" );// Прийняті вхідні дані
printf("\n For controle accuracy Input x as radian (degree)(tg(x)=y=): ");
printf("\n 0.785398163 (45)(y=1.0), 1.047197551 (60)(y=1.732), 1.553343034 (89)(y=57.29)"); // Додаткові контрольні вхідні дані
printf("\nFor stop program INPUT char 's' otherwise any, and press ENTER \n");
do {int parsedItems = scanf_s("%f",&x );//Оператор scanf() c граммат. розбором
if ( parsedItems >= 1 ) // Умова продовження вводу
{ // printf(" x=%10.9f",x);
z = cos(x); // printf(" z=%5.4f",z);
i++; // Лічильник повторення виводу результатів
if(z==0)printf(" i=%2d x=%5.4f z=%5.4f ", i, x, z);
else {
y = sin(x)/z; // Знаходження tg(x) та виведення i,x,y
printf(" i=%2d x=%5.4f y=%5.4f ", i, x, y);
} if(i%3==0)printf(" \n i=%2d",i); // Виведення і на новий рядок
}
ch = getchar(); //Зупинка програми, чекання введення символу, [ENTER]
}while ( ch != 's' );//Якщо умова true-повтор циклу, якщо false- stop цикл // printf(" \n i=%2d ", i);
_getch();
return 0;
}
Рис 6 Приведені занадто докладні коментарі
Звернемо увагу на загальну структуру тексту програми (див. рис.7), яка вміщує основні оператори та їх коментарі.
//#перелік бібліотек
int main()
{ опис змінних, констант
printf(“ Перелік параметрів”);
/* 1 Блочний коментар */
do { // Рядковий коментар 3
if ( ) // Рядковий коментар 4
{ i, x, z, y // Рядковий коментар 5
/* 2 if ( ) { оператори } // …….. 6
else { оператори //……..
………….. // ……. 7
} //……. 8
оператори
*/ ……….. //…….
}
оператори //…… 9
………….
} while ( ) //……. 10
оператори //…..
…………. //…… 11
-getchr(); //…..
return 0;
}
Рис. 7 Структура тексту програми (або її частки)
Звертаємо увагу на такі особливості представлення структури тексту програми:
-
блочні коментарі типу 1 використовуються над заголовками окремих функцій, типу 2 - виділяють окремі групи операторів для тимчасового їх виключення на стадії настройки тексту програми;
-
рядкові коментарі пояснюють зміст відповідного рядка, вони не повинні перетинатися із сусідніми рядками, в кожному рядку тексту програми між кінцем рядка оператора і початком рядка коментаря треба мати не зайняту частину рядка (і чим довше вона тім краще), рядкові коментарі рекомендується починати з однакових позицій (на рис.7 – 3,4,10,11 5,8,9 6,7).
Попередня робота з подібними структурами такого рівня тексту програми може сприяти прискоренню розробки всієї програми.
7 Налагодження тексту програми (об’єм 8 – 20 рядків)
Можна вказати такі пункти налагодження тексту програми:
- виправлення всіх помилок на стадії компіляції та системного редагування;
- отримання кінцевого розміщення тексту програми з коментарями;
- представлення результатів роботи програми в запланованому вигляді;
- окремі нотатки про можливі зміни в виборі операцій, операторів, структури тексту програми.
При виконанні налагодження текста програми слід користуватися вікном (Output ) виводу результатів роботи програми. Для цього це вікно треба відкрити, виконав
View, Output Alt + 2
Для роботи зручно розмістити відкрите вікно ”Output” разом з текстом програми в одному вікні. Далі рекомендую уважно ознайомитися зі змістом файлу ”Пример работы со средой MS VS 2008” (папка ”ГЛАВНЫЕ_СПРАВКИ_2013”). Приділить увагу запису помилок і їх виправленню у Вашому звіті.
Одна з останніх порад: для прискореного придбання досвіду виконайте часткову роботу з розробленою програмою. Нижче приводиться рекомендуєма послідовність виконання цієї роботи.
-
Відкрити (загрузити) систему VS 2008, отримати шаблон (стр.13).
-
Розмістити на екрані разом дві сторінки –одну з шаблоном, другу з повним текстом програми (рис. 5, стр 15).
-
Ретельно, без помилок, розмістити у вікні з шаблоном відповідні фрагменти тексту програми.
-
Меню View, Output – відкриється вікно для розміщення результатів.
-
Меню Build, Rebuild – якщо все в порядку (помилки відсутні) отримаєте результат
-
ім’я файлу - 0 erroe(s), 0 warning(s) (відсутні помилки і відсутні попередження)
-
Rebuild All: 1 succeeded, 0 failed, 0 skipped
-
-
Debug, Start Debugging / Start Without Debugging – якщо все в порядку, то на екрані з’являється чорне вікно, в якому розміщуються п’ять рядків з даними, як рекомендації користувачеві. Виконання програми зупинилося на виконанні оператора scanf_s(“%f ”, &x); (рядок тексту програми 22). Рекомендуємо ввести значення х для перевірки точності (accuracy).
-
По курсору (він мигтить) ввести 0.785398163 (це означає x=0.785398163), Enter.
-
Виникає вивід i = 1 x = 0.785398163 y = 1.0000
-
Не переходячи на новий рядок увести любий символ окрім ‘s’ , наприклад ‘c’, далі Enter– курсор в вікні переміщується вниз на початок нового рядка. Так повторити ще двічі з іншими значеннями х , причому останній раз будемо мати і = 3 і згідно тексту програми буде виконуватися перехід на новий рядок і другий раз буде виводитися і = 3, тепер треба символ ‘c’ i Enter. Після цього треба ввести останнє значення х = 0 , отримати результати і в кінці їх ввести символ ‘s’ i Enter.
-
Щоб для звіту зберегти отримані результати рекомендуємо скористуватися можливостями графічного редактора Paint та клавішею на клавіатурі ( на клавіатурі розміщена в верхньому ряду, зліва). Опишемо ці дії без зайвих дрібниць.
-
Розмістити (перетягти) на екрані вікно (темне) з отриманими результатами, натиснути клавішу Print Screen SysRq .
-
Пуск, Paint – відкривається вікно графічного редактора.
-
Меню Правка, Вставить – у вікні Paint з’являється вікно з результатами.
-
Панель графічних піктограм, піктограма Выделение, click – покажчик мишки приймає фігуру хрестика. Цім хрестиком обвести потрібний контур вікна з результатами – вікно з результатами обрамляється пунктирною рамкою.
-
Меню Правка, Копирование – робота з вікном Paint закінчується.
-
Відкривається документ Оформление , розміщається покажчик мишкі там, де розміститься лівий верхній кут прямокутника ( вікна результатів), click правою, Вставить - в документі розміщується вікно з результатами. Можна провести корегування розміщення прямокутника з результатами в документі.
Кінцеві результати приведені на рис. 8

Рис. 8 Результати виконання додаткової роботи до лабораторної роботи № 1
8 Результати роботи та їх опис (об’єм 5 – 20 рядків або пунктів )
Вказана кількість рядків враховує тільки пояснення до результатів. Тому тут опишемо отримання результатів роботи програми, представимо самі результати та скорочене пояснення до них.
Загальні результати представлені на рис. 9

Рис. 9 Результати виконання лабораторної роботи № 1
Приведені результати на рис.9 окрім обсягу не відрізняються від результатів на рис.8. Але є одна деталь - в останньому рядку останній символ не є символ ‘s’, а тільки наявність такого символу веде до закінчення циклу do-while. Будь-який інший символ веде до повтору циклу do-while. Тому в данному разі висновок такий: наявність символу ‘_’ є і дозвіл на продовження повторів циклічних операцій існує, але команда Enter відсутня. Таку ситуацію зафіксував рис. 9.
9 Висновки (об’єм 4 – 10 рядків)
1 Розглядав багатоступеневу задачу, на кожному кроку якої можна запропонувати кількість різних можливих рішень. Як зв’язати ці рішення в один кінцевий ланцюжок, як віддати перевагу одному ланцюжку із можливих. Передбачати майбутнє на базі сучасного це тяжка задача, але вона притягує мене.
2 Затратив 6 годин на роботу з представленими матеріалами (назва матеріалів). Зрозумів, що маю слабку підготовку.
3 Познайомився з технологією оформлення звіту до лабораторної роботи.
4 Додатково користувався літературою - Г. Шилдт Полний справочник С++
(21-47, 99-117).
5 До виконання типових операцій та вибору і перетворенню типів склав свій конспект (5 аркушів комп’ютерного набору).
6 Не зміг самостійно розібратися в порівнянні виконання різних операторів циклу.
7 Запропоновано було 7 готових задач по напрямку теми лабораторної роботи. Самостійно виконав їх тільки 3 (приведені в зошиті до практичних занять з програмування).
8 Шкода що погано володію комп’ютерним виконанням графічних схем алгоритмів.
9 Маю слабку підготовку використовування типовими пакетами Word, Exсel, Paint, MS VS 2008, 2010 та інших поширених пакетів.
Висновки повинні включати основні заключення, пов’язані з темою лабораторної роботи, відображати рівень попередньої підготовки, відображати стан зошитів з практичних і самостійних задач, додаткового конспектування теоретичних та практичних питань, користування додатковою літературою.
Забороняється в висновках в різних лабораторних роботах використовувати однакові та загальні фрази.
