Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическое занятие №1234 по си++.docx
Скачиваний:
9
Добавлен:
08.11.2018
Размер:
787.62 Кб
Скачать

5.2. Определение переменных программы

Для реализации алгоритма нам будут нужны только переменные для хранения значений координат x и y. В условиях задания не приведены требования к точности вычислений, рисунок представлен с довольно невысокой точностью, поэтому для этих переменных было бы достаточно типа float. Но в соответствии с общим стилем программирования на C выберем для них тип double.

5.3. Разработка текста программы

Текст программы начинается с включения файла:

#include <stdio.h>

т.к. нам обязательно понадобятся функции стандартного ввода-вывода, которые описаны в этом файле. Можно использовать потоковый ввод-вывод, подключив заголовочный файл iostream.

Далее идет заголовок и открытие главной функции:

int main(void) {

и объявление переменных, определенных в пункте 5.2.

double x, y;

Для каждой координаты выводится приглашение на ее ввод и вводится ее значение:

printf("Введите координату x >");

scanf("%lf",&x);

printf("Введите координату y >");

scanf("%lf",&y);

Введенные значения координат выводятся на экран:

printf("x=%6.3lf; y=%6.3lf\n",x,y);

Далее идет проверка условий попадания точки в область. Оба условия проверяются одним выражением. Поскольку точка попадает в область, если выполняются оба условия вместе, условия в выражении соединены операцией "логическое И":

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

Если значение логического выражения в условном операторе истинно, то выводится сообщение про попадание:

printf("Точка попадает в область\n");

В противном случае выводится сообщение про непопадание:

else printf("Точка не попадает в область\n");

Полный текст программы приведен ниже.

/****************************************************/

/* Практическое занятие №5 */

/* Условный оператор */

/* Пример выполнение. Вариант №30. */

/****************************************************/

#include <stdio.h>

int main(void) {

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

/* ввод координат */

printf("Введите координату x >");

scanf("%lf",&x);

printf("Введите координату y >");

scanf("%lf",&y);

/* вывод только что введенных значений */

printf("x=%6.3lf; y=%6.3lf\n",x,y);

/* проверка условий */

if ( (y>=1-x)

&& (x*x+y*y<=1) )

printf("Точка попадает в область\n");

else printf("Точка не попадает в область\n");

return 0;

}

5.4. Отладка программы

Самое важное в отладке этой программы - убедиться в том, что программа выдает правильные результаты при разных комбинациях входных данных. Следовательно, необходимо подобрать такие комбинации, которые были бы показательными для разных случаев размещения точки. Мы предлагаем такие комбинации:

1) точка лежит ниже области - (0.4, 0.4);

2) точка лежит на нижней границе области - (0.5, 0.5);

3) точка лежит внутри области - (0.7, 0.6);

4) точка лежит на верхней границе области - (0.707, 0.707);

5) точка лежит выше области - (0.8, 0.8);

6) точка лежит на правом краю области - (1.0, 0.0);

7) точка лежит на левом краю области - (0.0, 1.0);

5.5. Результаты работы программы

Ниже приведены результаты работы программы для входных данных по п.5.4:

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

Точка попадает в область