В
Все
Б
Биология
Б
Беларуская мова
У
Українська мова
А
Алгебра
Р
Русский язык
О
ОБЖ
И
История
Ф
Физика
Қ
Қазақ тiлi
О
Окружающий мир
Э
Экономика
Н
Немецкий язык
Х
Химия
П
Право
П
Психология
Д
Другие предметы
Л
Литература
Г
География
Ф
Французский язык
М
Математика
М
Музыка
А
Английский язык
М
МХК
У
Українська література
И
Информатика
О
Обществознание
Г
Геометрия
Віка579
Віка579
06.11.2022 01:04 •  Информатика

дорешать задание на тему мат. логика и множества Сколь­ко су­ще­ству­ет раз­лич­ных на­бо­ров зна­че­ний ло­ги­че­ских пе­ре­мен­ных x1, x2, ..x7, y1, y2, ..y7, ко­то­рые удо­вле­тво­ря­ют всем пе­ре­чис­лен­ным ниже усло­ви­ям?
(¬x1 ∨ y1) → (¬x2 ∧ y2) = 1
(¬x2 ∨ y2) → (¬x3 ∧y3) = 1

(¬x6 ∨ y6) → (¬x7 ∧ y7) = 1
В от­ве­те не нужно пе­ре­чис­лять все раз­лич­ные на­бо­ры зна­че­ний пе­ре­мен­ных x1, x2, ..x7, y1, y2, ..y7, при ко­то­рых вы­пол­не­на дан­ная си­сте­ма ра­венств. В ка­че­стве от­ве­та Вам нужно ука­зать ко­ли­че­ство таких на­бо­ров.

Я получил для первого условия 7 решений
и получил 3 решения для 7 переменных x и 3 решения для 7 переменных y
А как дальше решать эту задачу?

Показать ответ
Ответ:
Kukla228
Kukla228
10.08.2022 16:56

Если мы хотим вывести числа от 0 до 1, то мы пишем следующее :

1

2

3

var a : integer;

a := random;

Т.е. random без всего.

Бывают случаи когда хочется иметь промежуток(диапазон) чисел. Допустим от -23 до 5, как его задать ?

Для начала мы складываем 23 и 5 без учета знаков и прибавляем 1(всегда) , у нас будет 29. Теперь пишем

1

2

3

var a : integer;

a := random(29);

Но это вернет нам числа от 0 до 28, теперь просто надо вычесть 23, не учитывая знаков. Так для промежутка c отрицательными числами.

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

1

2

3

5 до 29 = 29 - 5 + 1 = random(25) + 5

 

-1 до 13 = 13 + 1 + 1 = random(15) - 1

Так же есть формула для всех случаев:

1

x := random(max-min+1)+min; // тут уже все знаки учитываются

Т.е. если нам нужен диапазон отрицательных чисел, например от -5 до -10, то мы пишем:

1

2

3

// -5 это максимальное значение, потому что оно больше -10, а -10 это минимальное

 

random(-5-(-10)+1)+(-10) // все знаки учитываются

В основном random и randomize в pascal используются вместе. Если использовать random отдельно, то у нас будут случайные числа постоянно одинаковы.

Допустим у нас есть код :

1

2

3

4

5

6

var a : integer;

begin

  a := random(10);

  writeln(a);

  readln;

end;

И при запуске программы у нас выведется допустим 3. И если мы запустим заново, то у нас снова выведется 3 и так при каждом запуске.

Для этого и используется randomize, чтобы числа не повторялись :

1

2

3

4

5

6

7

var a : integer;

begin

  randomize; // пишем до использование random()

  a := random(10);

  writeln(a);

  readln;

end;

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

0,0(0 оценок)
Ответ:
krutoipatan2003
krutoipatan2003
30.08.2021 20:11

Объяснение:

uses GraphABC,Events,Utils;                 //необходимые библиотеки подключены

var pr,px,py,kx,ky,ku,pc,s: integer;          //переменные: положение ракетки, координаты мяча, коэффициенты отражения, положение ракетки компьютера

 

procedure KeyDown(Key: integer);           //процедура обработки нажтия клавиши

begin

 case Key of

VK_Up: if pr>10 then pr:=pr-10;           //если вверх, и если ракетка не достигла края экрана, сместить координаты ракетки на 10 вверх

VK_Down: if pr<490 then pr:=pr+10;        //то же, только вниз

 end;

end;

 

procedure Pm;                             //процедура определения координат мячика

begin

if px<10 then

  begin

  kx:=kx*(-1);                //если достиг стенки левой - поменять коэффициент смещения по х на противоположный

  s:=random(2);

  if s=1 then ky:=ky*(-1);

  end;

if (py<10) or (py>490) then ky:=ky*(-1);  //если достиг стенки верхней или нижней - поменять коэффициент смещения на противоположный

if px>590 then                            //если достиг правой (игрока) стенки, проверяем

  if (py>pr-20) and (py<pr+20) then kx:=kx*(-1) else  //если координаты мяча совпадают с координатами ракетки, меняем коэффициент смешения по х на противоположный

  begin                                 //иначе

  showmessage('Вы упустили мячик!');    //выводим сообщение

  inc(ku);                              //увеличиваем счетчик упущенных мячей

  px:=15;                               //возвращаем мяч в исходную позицию у противоположной стенки

  py:=250;

  end;

px:=px+kx;                               //смещаем координаты на коэффициенты смещения

py:=py+ky;

end;

 

begin

lockdrawing;                            //запрет прорисовки в окне (мигание убираем)

setwindowsize(600,500);                 //размер окна

kx:=5; ky:=1; px:=15; py:=250; pr:=250; //задаем координаты смещения и позицию мяча

repeat                                  //цикл с постусловием

 clearwindow;                          //очистить окно

 setbrushcolor(clgreen);               //цвет кисти зеленый

 rectangle(5,5,595,495);               //прямоугольник - поле

 Pm;                                   //процедура определения координат мяча

 setbrushcolor(clwhite);               //цвет кисти - белый

 circle(px,py,10);                     //мяч

 OnKeyDown:=KeyDown;                   //процедура нажатия клавиши

 pc:=py;                               //ракетка противника следует за мячом неотступно...

 setbrushcolor(clblack);               //цвет кисти - черный

 rectangle(592,pr-20,597,pr+20);       //ракетки

 rectangle(3,pc-20,8,pc+20);

 sleep(25);                             //задержка

 redraw;                               //перерисовка

until ku=5;                             //цикл повторяется до 5 пропущенных мячей

end.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота