Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОФОРМЛЕННЯ.doc
Скачиваний:
7
Добавлен:
01.02.2015
Размер:
444 Кб
Скачать
☆
  1. Повний текст програми

Повний текст програми, складений поєднанням окремих частин з таблиці 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”). Приділить увагу запису помилок і їх виправленню у Вашому звіті.

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

  1. Відкрити (загрузити) систему VS 2008, отримати шаблон (стр.13).

  2. Розмістити на екрані разом дві сторінки –одну з шаблоном, другу з повним текстом програми (рис. 5, стр 15).

  3. Ретельно, без помилок, розмістити у вікні з шаблоном відповідні фрагменти тексту програми.

  4. Меню View, Output – відкриється вікно для розміщення результатів.

  5. Меню Build, Rebuild – якщо все в порядку (помилки відсутні) отримаєте результат

    1. ім’я файлу - 0 erroe(s), 0 warning(s) (відсутні помилки і відсутні попередження)

    2. Rebuild All: 1 succeeded, 0 failed, 0 skipped

  6. Debug, Start Debugging / Start Without Debugging – якщо все в порядку, то на екрані з’являється чорне вікно, в якому розміщуються п’ять рядків з даними, як рекомендації користувачеві. Виконання програми зупинилося на виконанні оператора scanf_s(“%f ”, &x); (рядок тексту програми 22). Рекомендуємо ввести значення х для перевірки точності (accuracy).

  7. По курсору (він мигтить) ввести 0.785398163 (це означає x=0.785398163), Enter.

  8. Виникає вивід i = 1 x = 0.785398163 y = 1.0000

  9. Не переходячи на новий рядок увести любий символ окрім ‘s’ , наприклад ‘c’, далі Enter– курсор в вікні переміщується вниз на початок нового рядка. Так повторити ще двічі з іншими значеннями х , причому останній раз будемо мати і = 3 і згідно тексту програми буде виконуватися перехід на новий рядок і другий раз буде виводитися і = 3, тепер треба символ ‘c’ i Enter. Після цього треба ввести останнє значення х = 0 , отримати результати і в кінці їх ввести символ ‘s’ i Enter.

  10. Щоб для звіту зберегти отримані результати рекомендуємо скористуватися можливостями графічного редактора Paint та клавішею на клавіатурі ( на клавіатурі розміщена в верхньому ряду, зліва). Опишемо ці дії без зайвих дрібниць.

  11. Розмістити (перетягти) на екрані вікно (темне) з отриманими результатами, натиснути клавішу Print Screen SysRq .

  12. Пуск, Paint – відкривається вікно графічного редактора.

  13. Меню Правка, Вставить – у вікні Paint з’являється вікно з результатами.

  14. Панель графічних піктограм, піктограма Выделение, click – покажчик мишки приймає фігуру хрестика. Цім хрестиком обвести потрібний контур вікна з результатами – вікно з результатами обрамляється пунктирною рамкою.

  15. Меню Правка, Копирование – робота з вікном Paint закінчується.

  16. Відкривається документ Оформление , розміщається покажчик мишкі там, де розміститься лівий верхній кут прямокутника ( вікна результатів), 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 та інших поширених пакетів.

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

Забороняється в висновках в різних лабораторних роботах використовувати однакові та загальні фрази.

21