Задачи и упражнения.


1. Пусть b1, b2, b3 — переменные логического типа. Записать оператор if и операторы присваивания, которые выполняют те же действия, что и оператор

b1= b2 || b3.

Решение: if (b2) b1=true; else b1=b3;

2. Нарисовать область плоскости, в которой и только в которой для вещественных величин x и y следующее логическое выражение истинно:

а) (fabs(x) < 1) > (fabs(y) < 1);

б) ! (fabs(x) < 1 ) = = (fabs(y) < 1);

в) ! (( fabs(x) < 1 ) = = (fabs(y) < 1)).

Указания к решению. Для величин логического типа следующие выражения истинны: true > false, true = = true, false = = false,
! true = = false, true = = ! false.

a) Надо найти область плоскости, в которой и только в которой одновременно первое неравенство истинно, а второе ложно, т. е. такие точки, для которых выражение (fabs(x)<1) && (fabs(y)>=1) истинно.

б) !(fabs(x) < 1) равносильно неравенству (fabs(x) >= 1). Поэтому надо найти область плоскости, в которой и только в которой выражение (fabs(x)>=1) &&( fabs(y)<1) ||( fabs(x)<1) &&( fabs(y)>=1) истинно.

в) Сначала определяем область, в которой и только в которой выражение (fabs(x)<1) && ( fabs(y)<1) ||( fabs(x)>=1) && (fabs(y)>=1) истиннo. Это был бы ответ, если бы не было операции отрицания. Операция отрицания в качестве ответа оставит точки, не вошедшие в эту область.

3. Записать следующее логическое выражение, используя операции логического умножения и сложения (&& , || ) и не используя сравнение логических величин:

а) (y>x) = = (x>0);

б) (y > x) > !(x > 0).

Решение: a) (y > x) && ( x> 0) || (y <= x) && (x <= 0);

б) y>x && x>0.

4. Не используя логических операций, записать выражение, принимающее значение true тогда и только тогда, когда точка плоскости с координатами (x, y) принадлежит первой четверти, включая и оси координат, или третьей четверти, не включая оси координат.

Решение: (x>=0) = = (y>=0).

5. Пусть bool b1, b2, b3, b4; Записать оператор if и операторы присваивания, которые выполняют те же действия, что и следующий оператор:

а) b1= b2 && b3;

б) b1=b2 || b3 && b4;

в) b1=(b2 || b3) && b4;

г) b1= !(b2 && b3 || b4).

6. Записать с помощью логических операций и оператора присваивания,не используя оператор if:

bool b1, b2, b3,r;

if (!b1) r=false;

else if (!b2) r=false;

else r=b3;

7. Объяснить работу следующей программы:

float x,y; bool lg; cin>>x>>y;

while (!(x==100 && y==100))

{ lg=x>0; cout<<"x>0 "<<lg<<" y>0 "<<(y>0)<<" "<<(lg > (y>0));

if (lg > (y>0)) cout<<" YES ";

else cout<<" NO";

cin>>x>>y;

}

8. Записать следующее логическое выражение, используя логические операции и не используя сравнение логических величин:

a) !((y > x) > (x>0));

б) (y > x) != (x > 0) ;

в) ! (y > x) > (x > 0).

Нарисовать область плоскости, в которой и только в которой записанное логическое выражение истинно.

9. Записать логическое выражениес помощью сравнения логических величин, не используя операций && и ||:

а) x*x+y*y > 1 && y <= x;

б) x*x+y* y> 1 && y <= x || x*x+y*y <= 1 && y > x;

в) x>0 && y > 0 || x <= 0 && y <= 0.

Нарисовать область плоскости, в которой и только в которой записанное логическое выражение истинно.

10. Пусть B1= x*x – y*y < 4; B2= y>0;

а)Записать логическое выражение B1 && B2, используя сравнение булевских величин и не используя логических операций.

б) Записать выражение B1<B2, не используя сравнение булевских величин.

11. Нарисовать область плоскости, в которой и только в которой для вещественных x и y следующее логическое выражение истинно:

а) (fabs(x) > 1) > (fabs(y)> 1);

б) ! (fabs(x) > 1 ) = = (fabs(y)> 1);

в) ! (( fabs(x) > 1 ) = = (fabs(y) > 1)).

12. Операторы

int x=8, y=4;

cout <<(x&y)<<", "<<(x&&y)<<", "<<(x|y)<<", "<<(x||y)

<<", "<<(y<x<1)<<", "<<(x<y<1)<<endl;

выведут 0, 1, 12, 1, 0, 1. Объяснить результат.

13. Объяснить выполнение printf("%c %d %c %d\n", a, a, b, b); Результат, как и раньше, зависит от объявления и от введенных величин.

Вариант 1. Переменные объявлены int a, b; и вводим два числа — 97 и 120. Тогда будет выведено a 97 x 120, т. е. по формату %c выводятся символы, коды которых хранятся в переменных a и b, а по формату %d — эти целые числа, которые интерпретируются как коды символов.

Вариант 2. Этот же результат получим, если объявим char a, b; и введём два символа — a и x.

14. Что будет выведено и почему:

а) char ch; cin>>ch; cout<< (ch*2); если введём 1? d?:

б) char CH=1; cout<<” “<<(CH*2);

в) char ch2=’1’; cout<<” “<<(ch2*2);

г) printf (“ \n %c %d %c %d %c %d”, ch, ch, CH, CH, ch2, ch2);

Объявление и инициализация такие, как в а), б), в).

д) int ci; cin>>ci; printf(“\n %c %d”, ci,ci); если введём 40?

Глава 5
МАТРИЦЫ (ДВУХМЕРНЫЕ МАССИВЫ)



Дата добавления: 2016-07-18; просмотров: 1867;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.