Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LAB2_C90.DOC
Скачиваний:
3
Добавлен:
09.11.2018
Размер:
172.54 Кб
Скачать

Комментарии к заданию

Программа должна выполнять следующие действия:

  1. Вычислять логическое выражение с операцией or для двух точек и выводить координаты точки и вычисленное значение.

  2. Вычислять логическое выражение с операцией and для двух точек и выводить координаты точки и вычисленное значение.

  3. Вычислять логическое выражение с операцией xor для двух точек и выводить координаты точки и вычисленное значение.

  4. Вычислять логическое выражение для логической формулы из правой колонки таблицы для двух точек и выводить координаты точки и вычисленное значение.

  5. Вводить координаты точек с соответствующих рисунков следует дважды: для “ИСТИНЫ” (точка попала в заштрихо­ванную область) и “ЛЖИ” (точка не попала в заштрихо­ванную область). Если точки выбраны правильно, результаты вычислений должны соответствовать предсказаниям.

Пример

Рассмотрим три неравенства: x ≥ 0, y ≥ 0, yx.

Графическая интерпретация неравенств и запись на C соответствующих отношений показана в таблице:

x≥0

y ≥ 0

y ≥x

x >= 0

y >= 0

y >= x

Соединив отношения логическими операциями or и and, получим логические выражения:

x >= 0.0 or y >= 0.0 or y >= x истинно для точек в I или II или IV квадрантах или выше прямой y=x

x >= 0.0 and y>=0.0 and y>=x истинно для точек в I квадранте и выше прямой y = x

Графическая интерпретация этих выражений и координаты двух точек, выбранных для or, и двух для and представлены в таблице:

Логическое сложение “или” (or)

Логическое умножение “и” (and)

TRUE (-1,1); FALSE  (-0.5,-1)

TRUE  (0.5,1); FALSE  (1,-1)

Программа

// «Вычисление логических выражений», вариант №

// студент группы № Дуопроцессоров П. К.

#include <stdio.h>

#include <iso646.h>

//#define stdout Out // отладка программы с выводом на экран (stdout)

#define A x >= 0.0 // неравенство А

#define B y >= 0.0 // неравенство В

#define C y >= x // неравенство С

int main(void)

{

double y,x; // объявлены все переменные

FILE *Out; //указатель на файл с результатами

Out = fopen("L2_Out.txt","w"); // открыть файл с результатами

printf( "\aor true x="); scanf("%lf",&x);

printf( "y="); scanf("%lf",&y);

fprintf(stdout, "or truex=%f\n",x);

fprintf(stdout, " y=%f\n",y);

fprintf(stdout, "or true=%i\n",

A or B or C );

//копируем предыдущие 6 строк и заменяя в них true на false, получаем новые 6 строк

printf( "\aor false x="); scanf("%lf",&x);

printf( "y="); scanf("%lf",&y);

fprintf(stdout, "or falsex=%f\n",x);

fprintf(stdout, " y=%f\n",y);

fprintf(stdout, "or false=%i\n",

A or B or C );

//теперь копируем предыдущие и заменяем or на and, and на xor, xor на формулу

fclose(Out); // закрыть файл с результатами

return 0;

}

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