program Mas1;
uses Crt;
const n:=10;
Type Ar=array [1..n] of real;
var v:Ar;
s,max:real;
i:integer;
Begin
Clrscr;
s:=0;
max:=0;
i:=1;
For i:=1 to n do
begin
v[i]:=50*random-15;
s:=s+v[i];
If max<v[i] then max:=v[i];
end;
writeln ('S= ', s:6:2,' Max= ', max);
Readln;
End.
#include <iostream>
int main()
{
double x1, y1, x2, y2;
std::cout << "M(x1,y1): ";
std::cin >> x1 >> y1;
std::cout << "N(x2,y2): ";
std::cin >> x2 >> y2;
if ((x1 - 1) * (x1 - 1) + (y1 + 2) * (y1 + 2) == 4) std::cout << "M(" << x1 << "," << y1 << ")";
else if ((x2 - 1) * (x2 - 1) + (y2 + 2) * (y2 + 2) == 4) std::cout << "N(" << x2 << "," << y2 << ")";
else std::cout << "None of the points";
return 0;
}
ответ: 2, 2, 1, 15
Объяснение:
Поскольку переменных всего четыре, можно составить таблицу всех возможных значений (2^4=16) и рассмотреть задачи наглядно. К решению прилагаются картинки.
Задача 1:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X & Y = 1. Такое может быть только в одном случае, когда и X и Y равны 1. То есть:
(B&C&D) = 1 И (A v B v C) = 1
Для выполнения первого условия необходимо, чтобы все три переменных были 1. Из 16 возможных вариантов остается только 2 (обозначены светло-зеленым). В этих двух вариантах второе условие выполняется автоматически (либо A, либо B, либо C - равны 1).
ответ: 2
Задача 2:
Пусть (A v B v C) - X , ( B & C & D) - Y.
Тогда X v Y = 0. Такое может быть только в одном случае, когда и X и Y равны 0. То есть:
(B&C&D) = 0 И (A v B v C) = 0
Рассмотрим второе условие. Для его выполнения необходимо, чтобы A,B и C были равны нулю. Из 16 возможных вариантов остается 2. Первое условие для этих двух вариантов выполняется автоматически (либо B, либо C, либо D - равны 0).
ответ: 2
Задача 3:
Здесь три скобки, объединенные между собой дизъюнкцией (логическое ИЛИ). Результат равен нулю. То есть ни одна скобка не должна быть равна единице (или все три скобки должны быть равны нулю):
(A -> C) = 0 И (B & A)=0 И (D -> B & C)=0
Рассмотрим третье условие:
(D -> B & C) = 0
У конъюнкции (&) приоритет выше, значит, это первое действие. Вторым будет выполняться импликация. Импликация дает ноль только в том случае, когда левое значение (D) равно единице, а правое нулю. Выделим те варианты, когда это выполняется (светло-зеленым): когда D равно единице, а B&C - нулю (то есть когда одно из них равно нулю).
Далее рассмотрим, когда выполняется второе условие (из уже оставшихся 6 вариантов):
(B & A) = 0 (либо B либо A должны быть равны нулю)
Отметим оставшиеся варианты темно-зеленым.
Осталось первое условие: (A -> C) = 0.
Как мы уже говорили, импликация дает ноль только в том случае, когда левое значение (A) равно единице, а правое (C) - нулю. Оставшийся один вариант отмечен синим.
ответ: 1
Задача 4:
Пусть (A & B & C) - X, (C & D) - Y. Тогда:
X -> Y = 1
В таблице истинности для импликации только один вариант дает ноль. Следовательно, нужно исключить лишь его. Остальные варианты будут решением. Рассмотрим, сколько решений имеет логическое уравнение X -> Y = 0, затем из всех возможных вариантов (16, поскольку 4 переменных) вычтем найденное количество.
Импликация дает ноль только в том случае, когда левое значение (X) равно единице, а правое нулю.
Перепишем условие:
X = 1 И Y =0
(A & B & C) = 1 И (C & D) =0
Первое условие выполняется только в том случае, когда A,B и C равны единице. Таких вариантов два (светло-зеленые). Также либо C либо D должны быть равны нулю. Остается один вариант.
Вспомним, что мы решали обратную задачу. Следовательно, итоговый ответ будет: 16-1=15
ответ: 15
Примечание: решать можно и другими возможно, более простыми. Здесь лишь показан один из путей решения.
Два в одном:
var
a: array [1..10] of integer;
s, i, max: integer;
begin
max:= - 16;
for i:= 1 to 10 do
begin
a[i]:= random(50) - 15;
writeln(a[i]);
s:= s + a[i];
if a[i] > max then max:= a[i];
end;
writeln('Сумма элементов массива: ', s);
writeln('Максимальный элемент массива: ', max);
end.