Решить на паскале. дан массив b (n*m). элементы массива ввести с клавиатуры. найти сумму элементов, которые больше данного числа a, но меньше данного числа с. числа a и с ввести с клавиатуры
Const n = 3; m = 4; Var B:array[1..n,1..m] of integer; i,j,A,C:integer; S:real; Begin WriteLn('Введите массив B[',n,',',m,']:'); For i:= 1 to n do For j:= 1 to m do Read(B[i,j]); Write('A = ');ReadLn(A); Write('C = ');ReadLn(C); S:=0; For i:= 1 to n do For j:= 1 to m do if (A<B[i,j])and(B[i,j]<C) then S:=S+B[i,j]; WriteLn('S = ',S); End.
Суть в том, что Эйлер развил метод (кое-какие наработки были и до него) когда множество обозначается кругом (или подмножества - в зависимости от условий) или, как вариант, если задача логическая, то кругом обозначают высказывание. В последнем случае то, что отрицает высказывание - это часть плоскости уже за кругом. Наглядно получается и удобно. Но, надо заметить, что дальнейшее развитие эти схемы получили в трудах англичанина Джона Венна, поэтому сейчас их называют диаграммами Эйлера-Венна. На них наглядно можно показать все логические действия с высказываниями. Например, умножение двух или более высказываний. Область пересечений этих высказываний - это и есть результат их умножения. По сложению - результат сложения двух высказываний это вся их область вместе взятая. И так далее. Так с диаграмм можно доказывать логические равенства или неравенства. Сам Эйлер занимался не только математикой, но ещё и физикой, астрономией и механикой. Жил в 18 веке.
Представим слова, как числа в 3сс, (где А=0, О=1, У=2.) Тогда: 00000 1место О 00001 2место
на 101 (10сс) месте будет стоять число 100 (10сс) 100 (10сс) =10201 (3сс) =ОАУАО на 125 (10сс) месте 124(10сс) =11 121 (3сс) =ОООУО на 170(10сс) месте 169(10сс) = 20021 (3сс) =УААУО на 210 месте 209 (10сс) =21202 (3сс) =УОУАУ
первое число, которое начинается с "О" =О=10000 (3сс) = =81 (10сс), номер его места =82 (10сс) последнее, которое начинается на "О" =О=12222 (3сс) = =161 (10сс), номер его места =162(10сс)
n = 3;
m = 4;
Var
B:array[1..n,1..m] of integer;
i,j,A,C:integer;
S:real;
Begin
WriteLn('Введите массив B[',n,',',m,']:');
For i:= 1 to n do
For j:= 1 to m do
Read(B[i,j]);
Write('A = ');ReadLn(A);
Write('C = ');ReadLn(C);
S:=0;
For i:= 1 to n do
For j:= 1 to m do
if (A<B[i,j])and(B[i,j]<C) then
S:=S+B[i,j];
WriteLn('S = ',S);
End.