Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
C_LAB_07_Usloviya_L18_Metodichka_ukr.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
180 Кб
Скачать
☆

Блок-схема.

Текст программы

/*----------------------------------------------------------------------------------------

Программная реализация алгоритмов разветвленной структуры

Вариант 30.

------------------------------------------------------------------------------------------*/

#include <iostream>

#include <windows.h>

using namespace std;

void main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double x, y; // координаты точки

char otv;

cout<<"x=";

cin>>x;

cout<<"y=";

cin>>y;

cout<<"\nТочка с координатами x="<<x<<" и y="<<y;

if ( (y>=1-x)&&(x*x+y*y<=1) )

cout<<" попадает в заданный диапазон";

else cout<<" не попадает в заданный диапазон";

cout<<endl;

system("pause");

}

Відладка програми

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

  1. точка лежит ниже области

(0.4, 0.4)

  1. точка лежит на нижней границе области

(0.5, 0.5);

  1. точка лежит внутри области

(0.7, 0.6);

  1. точка лежит на верхней границе области

(0.707, 0.707);

  1. точка лежит выше области

(0.8, 0.8);

  1. точка лежит на правом краю области

(1.0 0.0);

  1. точка лежит на левом краю области

(0.0 1.0);

Для зручності відладки програми, додамо в текст програми налагоджувальних операторів:

  1. Оператор циклу do . while, для того, що б для різних координат x і y не потрібно було б по новому запускати програму;

  1. Оператори cout :

/*--------------------------------------------------- отладка

cout<<"\nОпределение условий попадания в целевую область:\n";

cout<<y<<">="<<1-x<<" ? - "<<(y>=1-x)<<endl;

cout<<x*x+y*y<<"<="<<y<<" ? - "<<(x*x+y*y<=1)<<endl<<endl;

-----------------------------------------------------------*/

У цьому варіанті, ці оператори є коментарями.

У наступному варіанті вони є виконуваними операторами.

// /*---------------------------------------------------------- отладка

cout<<"\nОпределение условий попадания в целевую область:\n";

cout<<y<<">="<<1-x<<" ? - "<<(y>=1-x)<<endl;

cout<<x*x+y*y<<"<="<<y<<" ? - "<<(x*x+y*y<=1)<<endl<<endl;

// ----------------------------------------------------------------*/

Остаточний варіант програми.

#include <iostream>

#include <windows.h>

using namespace std;

void main()

{

SetConsoleCP(1251);

SetConsoleOutputCP(1251);

double x, y; // координаты точки

char otv;

do

{

cout<<"x=";

cin>>x;

cout<<"y=";

cin>>y;

/*----------------------------------------- отладка

cout<<"\nОпределение условий попадания в целевую область:\n";

cout<<y<<">="<<1-x<<" ? - "<<(y>=1-x)<<endl;

cout<<x*x+y*y<<"<="<<y<<" ? - "<<(x*x+y*y<=1)<<endl<<endl;

-------------------------------------------------*/

cout<<"\nТочка с координатами x="<<x<<" и y="<<y;

if ( (y>=1-x)&&(x*x+y*y<=1) )

cout<<" попадает в заданный диапазон";

else cout<<" не попадает в заданный диапазон";

cout<<"\nПродолжить (Y/N)?";

cin>>otv;

}while (otv=='y');

cout<<endl;

system("pause");

}

Результати роботи програми

x=0.400; y=0.400 не попадает в заданный диапазон

x= 0.500; y= 0.500 попадает в заданный диапазон

x= 0.700; y= 0.600 попадает в заданный диапазон

x= 0.707; y= 0.707 попадает в заданный диапазон

x= 0.800; y= 0.800 не попадает в заданный диапазон

x= 0.100; y= 0.000 попадает в заданный диапазон

x= 0.000; y= 1.000 попадает в заданный диапазон

Висновки

При виконанні лабораторної роботи вивчені питання:

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