КаталогИндекс раздела
НазадОглавлениеВперед


Лабораторная работа ╧5

Условный оператор в языке С

1. Цель работы

     Целью лабораторной работы является получение практических навыков в работе с условным оператором и разветвленными алгоритмами в языке C.

2. Темы для предварительной проработки

3. Задания для выполнения

     Построить программу, которая вводит координаты точки (x, y) и определяет, попадает ли точка в заштрихованную область на рисунке, который соответствует Вашему варианту. Попадание на границу области считать попаданием в область.

4. Варианты индивидуальных заданий

 1        2        3        4        5        6        7        8        9       10      
11       12       13       14       15       16       17       18       19       20      
21       22       23       24       25       26       27       28       29       30      

5. Пример решения задачи (вариант 30)

5.1. Разработка алгоритма решения.

     Первым шагом алгоритма должен быть ввод координат точки: x и y. Для большего удобства при анализе результатов можно вывести введенные значения на экран.      Исследование изображения на рисунке-задании дает нам основание утверждать, что целевая область образуется пересечением: прямой с коэффициентом -1 и смещением +1 и окружности с центром в начале координат и радиусом 1, как показано на рисунке справа

     Уравнение этой прямой:
     y=-x+1

     Уравнение окружности:
     x2+y2=1

     Для проверки попадания точки в заданную область нужно проверить условия того, что:
     1). Точка лежит выше прямой или на ней, т.е.:
     y>=-x+1
     2). Точка лежит внутри окружности или на ней, т.е.:
     x2+y2<=1
     Точка лежит в области, если выполняются оба условия, если же не выполняется хотя бы одно из них, точка лежит вне области. Следовательно, эти условия должны быть объединены логической операцией "И".

     Схема алгоритма приведена на рисунке ниже.

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

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

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

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

    #include <stdio.h>
т.к. нам обязательно понадобятся функции стандартного ввода-вывода, которые описаны в этом файле.

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

    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
Точка попадает в область

5.6. Выводы

     При выполнении лабораторной работы изучены вопросы:


КаталогИндекс раздела
НазадОглавлениеВперед