komplekt7
?>

Выполните задание в среде Prolog 0 Имеется информация о том, что спортсмены Игорь, Роман, Антон, Виктор, Николай имеют соответственно возраст и рост: 18 и 189, 17 и 182, 20 и 191, 21 и 185, 16 и 193. Необходимо: а) выбрать всех спортсменов выше 184 (включительно), но не выше 190; б) выбрать спортсменов моложе 20 лет, но не моложе 18 (включительно); в) выбрать всех спортсменов с ростом не ниже 186 и не старше 19 лет (включительно

Информатика

Ответы

elena-kondyreva

1 sm('Игорь',18,189).

2 sm('Роман',17,182).

3 sm('Антон',20,191).

4 sm('Виктор',21,185).

5 sm('Николай',16,193).

6 % а) выбрать всех спортсменов выше 184 (включительно), но не выше 190;

7 % ?- findall( Name, (sm(Name, Age, Height), Height >= 184, Height < 190), Xs ).

8 % б) выбрать спортсменов моложе 20 лет, но не моложе 18 (включительно);

9 % ?- findall( Name, (sm(Name, Age, Height), Age < 20, Age >= 18), Xs ).

10 % в) выбрать всех спортсменов с ростом не ниже 186 и не старше 19 лет (включительно).

11 % ?- findall( Name, (sm(Name, Age, Height), Height > 186, Age =< 19), Xs ).

kukoleva

Объяснение:

1. x = 0; y = 4

Цикл по i от 3 до 6

1) i = 3

x = x + 1 = 0 + 1 = 1

y = y + 2 = 4 + 2 = 6

2) i = 4

x = x + 1 = 1 + 1 = 2

y = y + 2 = 6 + 2 = 8

3) i = 5

x = x + 1 = 2 + 1 = 3

y = y + 2 = 8 + 2 = 10

4) i = 6

x = x + 1 = 3 + 1 = 4

y = y + 2 = 10 + 2 = 12

Конец цикла

y = y - x = 12 - 4 = 8

x = x + y = 4 + 8 = 12

Вывод y = 8

2. x = 0; y = 2

Цикл, пока y < 15

1) x = x + 1 = 0 + 1 = 1

y = y + 2 = 2 + 2 = 4 < 15

2) x = 1 + 1 = 2

y = 4 + 2 = 6 < 15

3) x = 2 + 1 = 3

y = 6 + 2 = 8 < 15

4) x = 3 + 1 = 4

y = 8 + 2 = 10 < 15

5) x = 4 + 1 = 5

y = 10 + 2 = 12 < 15

6) x = 5 + 1 = 6

y = 12 + 2 = 14 < 15

7) x = 6 + 1 = 7

y = 14 + 2 = 16 > 15

Конец цикла

y = y - x = 16 - 7 = 9

x = x + y = 7 + 9 = 16

Вывод y = 9

3. x = 0; y = 5

Цикл с постусловием

1) x = x + 1 = 0 + 1 = 1

y = y + 2 = 5 + 2 = 7

Выйти из цикла, если y > 15

y = 7 < 15

2) x = 1 + 1 = 2

y = 7 + 2 = 9 < 15

3) x = 2 + 1 = 3

y = 9 + 2 = 11 < 15

4) x = 3 + 1 = 4

y = 11 + 2 = 13 < 15

5) x = 4 + 1 = 5

y = 13 + 2 = 15

15 не больше 15, поэтому продолжаем.

6) x = 5 + 1 = 6

y = 15 + 2 = 17 > 15

Выход из цикла

y = y - x = 17 - 6 = 11

x = x + y = 6 + 11 = 17

Вывод y = 11

sherifovaelina

const

 AOper: array [0..3] of string = ('+', '-', '*', '/');

var

 a, b, Oper: Integer;

 r: Real;

begin

 Randomize;    // инициализация датчика случайных чисел

 a := Random (1001);

 b := Random (1001);

 Oper := Random (4);

 case Oper of

 0: r := a + b;

 1: r := a - b;

 2: r := a * b;

 3:if b <> 0 then begin

     r := a / b;

   end else begin

     WriteLn ('Произошла ошибка при делении на ноль');

     Exit;

   end

 else r := -1;

 end;

 WriteLn (a);

 WriteLn (b);

 WriteLn (Aoper [Oper]);

 if (r >= 0) and (r - Trunc (r) = 0) then begin   // если в результате получилось положительное целое число

   WriteLn ('yes');

   WriteLn (r :6 :0);

 end else

   WriteLn (' no');

 ReadLn;

end.

Объяснение:

r - Trunc (r) // это выделение дробной части числа

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Выполните задание в среде Prolog 0 Имеется информация о том, что спортсмены Игорь, Роман, Антон, Виктор, Николай имеют соответственно возраст и рост: 18 и 189, 17 и 182, 20 и 191, 21 и 185, 16 и 193. Необходимо: а) выбрать всех спортсменов выше 184 (включительно), но не выше 190; б) выбрать спортсменов моложе 20 лет, но не моложе 18 (включительно); в) выбрать всех спортсменов с ростом не ниже 186 и не старше 19 лет (включительно
Ваше имя (никнейм)*
Email*
Комментарий*